blob: 50a7ba7852ca572ff8b9629d165b461edb644695 [file] [log] [blame]
Joshua Brindle13cd4c82008-08-19 15:30:36 -04001/* Functions used to define policy grammar components. */
2
3#ifndef _POLICY_DEFINE_H_
4#define _POLICY_DEFINE_H_
5
6/*
7 * We need the following so we have a valid error return code in yacc
8 * when we have a parse error for a conditional rule. We can't check
9 * for NULL (ie 0) because that is a potentially valid return.
10 */
11#define COND_ERR ((avrule_t *)-1)
Joshua Brindle13cd4c82008-08-19 15:30:36 -040012#define TRUE 1
13#define FALSE 0
14
15avrule_t *define_cond_compute_type(int which);
16avrule_t *define_cond_pol_list(avrule_t *avlist, avrule_t *stmt);
17avrule_t *define_cond_te_avtab(int which);
Eric Paris516cb2a2011-03-28 14:00:19 -040018avrule_t *define_cond_filename_trans(void);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040019cond_expr_t *define_cond_expr(uint32_t expr_type, void *arg1, void* arg2);
20int define_attrib(void);
Harry Ciao16675b72011-07-25 09:23:54 +080021int define_attrib_role(void);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040022int define_av_perms(int inherits);
Harry Ciao80f26c52011-09-01 11:29:41 +080023int define_bool_tunable(int is_tunable);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040024int define_category(void);
25int define_class(void);
Eric Paris09c783c2011-12-05 13:28:51 -050026int define_default_user(int which);
27int define_default_role(int which);
Eric Paris693f5242012-12-18 11:41:25 -050028int define_default_type(int which);
Eric Paris09c783c2011-12-05 13:28:51 -050029int define_default_range(int which);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040030int define_common_perms(void);
31int define_compute_type(int which);
32int define_conditional(cond_expr_t *expr, avrule_t *t_list, avrule_t *f_list );
33int define_constraint(constraint_expr_t *expr);
34int define_dominance(void);
35int define_fs_context(unsigned int major, unsigned int minor);
36int define_fs_use(int behavior);
37int define_genfs_context(int has_type);
38int define_initial_sid_context(void);
39int define_initial_sid(void);
40int define_ipv4_node_context(void);
41int define_ipv6_node_context(void);
42int define_level(void);
43int define_netif_context(void);
44int define_permissive(void);
45int define_polcap(void);
Daniel Jurgens5b203142017-05-22 16:08:23 +030046int define_ibpkey_context(unsigned int low, unsigned int high);
Daniel Jurgens5bc05dd2017-05-22 16:08:26 +030047int define_ibendport_context(unsigned int port);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040048int define_port_context(unsigned int low, unsigned int high);
Paul Nuzzi79d10a82009-09-29 10:06:26 -040049int define_pirq_context(unsigned int pirq);
Daniel De Graaf82030de2015-03-17 16:43:23 -040050int define_iomem_context(uint64_t low, uint64_t high);
Paul Nuzzi79d10a82009-09-29 10:06:26 -040051int define_ioport_context(unsigned long low, unsigned long high);
52int define_pcidevice_context(unsigned long device);
Daniel De Graaff0290672015-03-17 16:43:24 -040053int define_devicetree_context(void);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040054int define_range_trans(int class_specified);
55int define_role_allow(void);
Harry Ciaoe95f3582011-03-25 13:51:59 +080056int define_role_trans(int class_specified);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040057int define_role_types(void);
Harry Ciao16675b72011-07-25 09:23:54 +080058int define_role_attr(void);
59int define_roleattribute(void);
Eric Paris516cb2a2011-03-28 14:00:19 -040060int define_filename_trans(void);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040061int define_sens(void);
62int define_te_avtab(int which);
Jeff Vander Stoep915fa8f2015-06-12 09:01:12 -070063int define_te_avtab_extended_perms(int which);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040064int define_typealias(void);
65int define_typeattribute(void);
Joshua Brindle45728402008-10-08 06:56:51 -040066int define_typebounds(void);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040067int define_type(int alias);
68int define_user(void);
69int define_validatetrans(constraint_expr_t *expr);
Jeff Vander Stoep10896652017-05-04 14:36:49 -070070int expand_attrib(void);
Nicolas Iooss7dcb7a52014-09-14 23:41:46 +020071int insert_id(const char *id,int push);
Joshua Brindle13cd4c82008-08-19 15:30:36 -040072int insert_separator(int push);
73role_datum_t *define_role_dom(role_datum_t *r);
74role_datum_t *merge_roles_dom(role_datum_t *r1,role_datum_t *r2);
75uintptr_t define_cexpr(uint32_t expr_type, uintptr_t arg1, uintptr_t arg2);
76
77#endif /* _POLICY_DEFINE_H_ */