
define(`has_arc', ifelse(arc_version, `none', $2, $1))
define(`no_arc', has_arc(, $1))
define(`is_arc_p', ifelse(arc_version, `p', $1, $2))
define(`is_arc_vm', ifelse(arc_version, `p', $2,
  ifelse(arc_version, `none', $2, $1)))
define(`dev_only', ifelse(use_selinux_develop, `y', $1))

divert(-1)
define(`_first', `$1');
define(`_break_cts', `
ifelse($1, `()', , `
 define(`broken_arc_version', _first$1)
 ifelse(broken_arc_version, arc_version, `define(`_broke_cts', `true')')
 _break_cts((shift$1), $2, $3)
# ifelse $1(broken_cts_versions)
')
# define _break_cts
')
define(`_put_permissive', `
ifelse(`$#', `0', , `$#', `1', `permissive $1;', `_put_permissive(shift($@))')
')

# Wraps policy that fails CTS.
# break_cts(broken_cts_versions, policies, affected_domains)
define(`break_cts', `
_break_cts($1)
ifelse(_broke_cts, `true', `_put_permissive$3', $2);
undefine(`_broke_cts')
')

divert

# Wraps policies that fails CTS.
# arc_cts_fails_release(policies, affected_scontexts)
define(`arc_cts_fails_release', `
ifelse(use_selinux_develop, `y', $1,
break_cts((`p', `q'), $1, $2))
')


define(`n_to_p_migration', `
is_arc_p(`
ifelse(use_arc_first_release_n, `y', `$1');
')
')

define(`arc_files', `{ file_type -cros_file_type }')
