18c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android/* Functions used to define policy grammar components. */
28c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android
38c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android#ifndef _POLICY_DEFINE_H_
48c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android#define _POLICY_DEFINE_H_
58c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android
68c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android/*
78c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android * We need the following so we have a valid error return code in yacc
88c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android * when we have a parse error for a conditional rule.  We can't check
98c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android * for NULL (ie 0) because that is a potentially valid return.
108c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android */
118c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android#define COND_ERR ((avrule_t *)-1)
128c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android
138c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android#define TRUE 1
148c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android#define FALSE 0
158c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android
168c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidavrule_t *define_cond_compute_type(int which);
178c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidavrule_t *define_cond_pol_list(avrule_t *avlist, avrule_t *stmt);
188c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidavrule_t *define_cond_te_avtab(int which);
198c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidavrule_t *define_cond_filename_trans(void);
208c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidcond_expr_t *define_cond_expr(uint32_t expr_type, void *arg1, void* arg2);
218c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_attrib(void);
228c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_attrib_role(void);
238c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_av_perms(int inherits);
24cd88c5c44f93ca14828bdae024fae6e0287ba71dStephen Smalleyint define_bool_tunable(int is_tunable);
258c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_category(void);
268c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_class(void);
27ba8e9924f575e267f1503b7669fe3120d68d4e1fStephen Smalleyint define_default_user(int which);
28ba8e9924f575e267f1503b7669fe3120d68d4e1fStephen Smalleyint define_default_role(int which);
29968aed00ed981987cf96dcfd7640e6dcde5c03a0Stephen Smalleyint define_default_type(int which);
30ba8e9924f575e267f1503b7669fe3120d68d4e1fStephen Smalleyint define_default_range(int which);
318c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_common_perms(void);
328c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_compute_type(int which);
338c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_conditional(cond_expr_t *expr, avrule_t *t_list, avrule_t *f_list );
348c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_constraint(constraint_expr_t *expr);
358c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_dominance(void);
368c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_fs_context(unsigned int major, unsigned int minor);
378c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_fs_use(int behavior);
388c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_genfs_context(int has_type);
398c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_initial_sid_context(void);
408c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_initial_sid(void);
418c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_ipv4_node_context(void);
428c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_ipv6_node_context(void);
438c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_level(void);
448c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_netif_context(void);
458c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_permissive(void);
468c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_polcap(void);
478c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_port_context(unsigned int low, unsigned int high);
488c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_pirq_context(unsigned int pirq);
498c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_iomem_context(unsigned long low, unsigned long high);
508c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_ioport_context(unsigned long low, unsigned long high);
518c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_pcidevice_context(unsigned long device);
528c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_range_trans(int class_specified);
538c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_role_allow(void);
548c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_role_trans(int class_specified);
558c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_role_types(void);
568c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_role_attr(void);
578c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_roleattribute(void);
588c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_filename_trans(void);
598c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_sens(void);
608c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_te_avtab(int which);
618c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_typealias(void);
628c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_typeattribute(void);
638c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_typebounds(void);
648c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_type(int alias);
658c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_user(void);
668c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint define_validatetrans(constraint_expr_t *expr);
678c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint insert_id(char *id,int push);
688c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidint insert_separator(int push);
698c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidrole_datum_t *define_role_dom(role_datum_t *r);
708c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androidrole_datum_t *merge_roles_dom(role_datum_t *r1,role_datum_t *r2);
718c48de15b1afeb1cd01a753195a29b1a7811dbfSE Androiduintptr_t define_cexpr(uint32_t expr_type, uintptr_t arg1, uintptr_t arg2);
728c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android
738c48de15b1afeb1cd01a753195a29b1a7811dbfSE Android#endif /* _POLICY_DEFINE_H_ */
74