|
Chris PeBenito |
ca83af |
########################################
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
ca83af |
# Macros for switching between source policy
|
|
Chris PeBenito |
ca83af |
# and loadable policy module support
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
ca83af |
|
|
Chris PeBenito |
ca83af |
##############################
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
ca83af |
# For adding the module statement
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
ca83af |
define(`policy_module',`
|
|
Chris PeBenito |
254bbc |
ifdef(`monolithic_policy',`',`
|
|
Chris PeBenito |
254bbc |
module $1 $2;
|
|
Chris PeBenito |
254bbc |
')
|
|
Chris PeBenito |
ca83af |
')
|
|
Chris PeBenito |
ca83af |
|
|
Chris PeBenito |
ca83af |
##############################
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
ca83af |
# For use in interfaces, to optionally insert a requires block
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
ca83af |
define(`requires_block_template',`
|
|
Chris PeBenito |
254bbc |
ifdef(`monolithic_policy',`',`
|
|
Chris PeBenito |
254bbc |
require {
|
|
Chris PeBenito |
254bbc |
$1
|
|
Chris PeBenito |
254bbc |
}
|
|
Chris PeBenito |
254bbc |
')
|
|
Chris PeBenito |
254bbc |
')
|
|
Chris PeBenito |
ca83af |
|
|
Chris PeBenito |
ca83af |
##############################
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
a9ec54 |
# In the future interfaces could be in loadable modules
|
|
Chris PeBenito |
a9ec54 |
#
|
|
Chris PeBenito |
a9ec54 |
# module_interface(name,rules)
|
|
Chris PeBenito |
a9ec54 |
#
|
|
Chris PeBenito |
a9ec54 |
define(`module_interface',`
|
|
Chris PeBenito |
a9ec54 |
define(`$1',`
|
|
Chris PeBenito |
a9ec54 |
requires_block_template(`$1'_depend)
|
|
Chris PeBenito |
a9ec54 |
$2
|
|
Chris PeBenito |
a9ec54 |
')
|
|
Chris PeBenito |
a9ec54 |
')
|
|
Chris PeBenito |
a9ec54 |
|
|
Chris PeBenito |
a9ec54 |
##############################
|
|
Chris PeBenito |
a9ec54 |
#
|
|
Chris PeBenito |
ca83af |
# Optional policy handling
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
ca83af |
define(`optional_policy',`
|
|
Chris PeBenito |
254bbc |
ifdef(`monolithic_policy',`
|
|
Chris PeBenito |
254bbc |
ifdef(`$1',$2,$3)
|
|
Chris PeBenito |
254bbc |
',`
|
|
Chris PeBenito |
254bbc |
optional {
|
|
Chris PeBenito |
254bbc |
$2
|
|
Chris PeBenito |
254bbc |
} else {
|
|
Chris PeBenito |
254bbc |
$3
|
|
Chris PeBenito |
254bbc |
}
|
|
Chris PeBenito |
254bbc |
')
|
|
Chris PeBenito |
254bbc |
')
|
|
Chris PeBenito |
ca83af |
|
|
Chris PeBenito |
ca83af |
##############################
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
ddea18 |
# Determine if we should use the default
|
|
Chris PeBenito |
ddea18 |
# tunable value as specified by the policy
|
|
Chris PeBenito |
ddea18 |
# or if the override value should be used
|
|
Chris PeBenito |
ddea18 |
#
|
|
Chris PeBenito |
ddea18 |
define(`deflt_or_overr',`ifdef(`$1',$1,$2)')
|
|
Chris PeBenito |
ddea18 |
|
|
Chris PeBenito |
ddea18 |
##############################
|
|
Chris PeBenito |
ddea18 |
#
|
|
Chris PeBenito |
ddea18 |
# Tunable declaration
|
|
Chris PeBenito |
ddea18 |
#
|
|
Chris PeBenito |
ddea18 |
define(`tunable_def',`
|
|
Chris PeBenito |
ddea18 |
ifdef(`monolithic_policy',`
|
|
Chris PeBenito |
ddea18 |
bool $1 deflt_or_overr(`$1'_conf,$2);
|
|
Chris PeBenito |
ddea18 |
',`
|
|
Chris PeBenito |
ddea18 |
# loadable module tunable
|
|
Chris PeBenito |
ddea18 |
# declaration will go here
|
|
Chris PeBenito |
ddea18 |
# for $1 $2
|
|
Chris PeBenito |
ddea18 |
')
|
|
Chris PeBenito |
ddea18 |
')
|
|
Chris PeBenito |
ddea18 |
|
|
Chris PeBenito |
ddea18 |
##############################
|
|
Chris PeBenito |
ddea18 |
#
|
|
Chris PeBenito |
ca83af |
# Tunable policy handling
|
|
Chris PeBenito |
ca83af |
#
|
|
Chris PeBenito |
ca83af |
define(`tunable_policy',`
|
|
Chris PeBenito |
254bbc |
ifdef(`monolithic_policy',`
|
|
Chris PeBenito |
254bbc |
if (`$1') {
|
|
Chris PeBenito |
254bbc |
$2
|
|
Chris PeBenito |
254bbc |
} else {
|
|
Chris PeBenito |
254bbc |
$3
|
|
Chris PeBenito |
254bbc |
}
|
|
Chris PeBenito |
254bbc |
',`
|
|
Chris PeBenito |
254bbc |
optional {
|
|
Chris PeBenito |
254bbc |
require { `$1' }
|
|
Chris PeBenito |
254bbc |
$2
|
|
Chris PeBenito |
254bbc |
} else {
|
|
Chris PeBenito |
254bbc |
$3
|
|
Chris PeBenito |
254bbc |
}
|
|
Chris PeBenito |
254bbc |
')
|
|
Chris PeBenito |
254bbc |
')
|