2
########################################
10
# shift the list num times
12
define(`shiftn',`ifelse($1,0,`shift($*)',`shiftn(decr($1),shift(shift($*)))')')
15
# ifndef(expr,true_block,false_block)
17
# m4 does not have this.
19
define(`ifndef',`ifdef(`$1',`$3',`$2')')
24
# dummy macro to insert a newline. used for
25
# errprint, so the close parentheses can be
28
define(`__endline__',`
31
########################################
35
# print a warning message
37
define(`refpolicywarn',`errprint(__file__:__line__: Warning: `$1'__endline__)')
39
########################################
43
# print an error message. does not
46
define(`refpolicyerr',`errprint(__file__:__line__: Error: `$1'__endline__)')
48
########################################
50
# gen_user(username, prefix, role_set, mls_defaultlevel, mls_range)
52
define(`gen_user',`dnl
53
user $1 roles { $3 }`'ifdef(`enable_mls', ` level $4 range $5')`';
56
########################################
58
# gen_context(context,mls_sensitivity,[mcs_categories])
60
define(`gen_context',`$1`'ifdef(`enable_mls',`:$2')`'')
62
########################################
64
# gen_bool(name,default_value)
67
bool $1 dflt_or_overr(`$1'_conf,$2);