cil_flavor.h revision bb0f8beff890195cfd459c67230c6130c86b3214
1/*
2 * Copyright 2013 Tresys Technology, LLC. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 *    1. Redistributions of source code must retain the above copyright notice,
8 *       this list of conditions and the following disclaimer.
9 *
10 *    2. Redistributions in binary form must reproduce the above copyright notice,
11 *       this list of conditions and the following disclaimer in the documentation
12 *       and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY TRESYS TECHNOLOGY, LLC ``AS IS'' AND ANY EXPRESS
15 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
17 * EVENT SHALL TRESYS TECHNOLOGY, LLC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
18 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
21 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
22 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
23 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * The views and conclusions contained in the software and documentation are those
26 * of the authors and should not be interpreted as representing official policies,
27 * either expressed or implied, of Tresys Technology, LLC.
28 */
29
30#ifndef CIL_FLAVOR_H_
31#define CIL_FLAVOR_H_
32
33/*
34	Tree/list node types
35*/
36#define CIL_MIN_OP_OPERANDS 1000
37#define CIL_MIN_DECLARATIVE 2000
38
39enum cil_flavor {
40	CIL_NONE = 0,
41	CIL_ROOT,
42	CIL_NODE,
43	CIL_STRING,
44	CIL_DATUM,
45	CIL_LIST,
46	CIL_LIST_ITEM,
47	CIL_PARAM,
48	CIL_ARGS,
49	CIL_BLOCKINHERIT,
50	CIL_BLOCKABSTRACT,
51	CIL_IN,
52	CIL_CALL,
53	CIL_BOOLEANIF,
54	CIL_TUNABLEIF,
55	CIL_CONDBLOCK,
56	CIL_CONDTRUE,
57	CIL_CONDFALSE,
58	CIL_CLASSORDER,
59	CIL_CLASSCOMMON,
60	CIL_CLASSMAPPING,
61	CIL_CLASSPERMS,
62	CIL_CLASSPERMS_SET,
63	CIL_CLASSPERMISSIONSET,
64	CIL_USERPREFIX,
65	CIL_USERROLE,
66	CIL_USERLEVEL,
67	CIL_USERRANGE,
68	CIL_USERBOUNDS,
69	CIL_SELINUXUSER,
70	CIL_SELINUXUSERDEFAULT,
71	CIL_ROLEATTRIBUTESET,
72	CIL_ROLETYPE,
73	CIL_ROLEBOUNDS,
74	CIL_TYPEATTRIBUTESET,
75	CIL_TYPEALIASACTUAL,
76	CIL_TYPEBOUNDS,
77	CIL_TYPEPERMISSIVE,
78	CIL_SENSALIASACTUAL,
79	CIL_SENSITIVITYORDER,
80	CIL_SENSCAT,
81	CIL_CATALIASACTUAL,
82	CIL_CATORDER,
83	CIL_SIDORDER,
84	CIL_ROLEALLOW,
85	CIL_AVRULE,
86	CIL_ROLETRANSITION,
87	CIL_TYPE_RULE,
88	CIL_NAMETYPETRANSITION,
89	CIL_RANGETRANSITION,
90	CIL_CONSTRAIN,
91	CIL_MLSCONSTRAIN,
92	CIL_VALIDATETRANS,
93	CIL_MLSVALIDATETRANS,
94	CIL_SIDCONTEXT,
95	CIL_FSUSE,
96	CIL_FILECON,
97	CIL_PORTCON,
98	CIL_NODECON,
99	CIL_GENFSCON,
100	CIL_NETIFCON,
101	CIL_PIRQCON,
102	CIL_IOMEMCON,
103	CIL_IOPORTCON,
104	CIL_PCIDEVICECON,
105	CIL_DEFAULTUSER,
106	CIL_DEFAULTROLE,
107	CIL_DEFAULTTYPE,
108	CIL_DEFAULTRANGE,
109	CIL_HANDLEUNKNOWN,
110	CIL_MLS,
111
112/*
113 *          boolean  constraint  set  catset
114 *  dom                  X
115 *  domby                X
116 *  incomp               X
117 *  eq         X         X
118 *  ne         X         X
119 *  and        X         X        X    X
120 *  not        X         X        X    X
121 *  or         X         X        X    X
122 *  xor        X                  X    X
123 *  all                           X    X
124 *  range                              X
125*/
126	CIL_OP = CIL_MIN_OP_OPERANDS,
127	CIL_ALL,
128	CIL_AND,
129	CIL_OR,
130	CIL_XOR,
131	CIL_NOT,
132	CIL_EQ,
133	CIL_NEQ,
134	CIL_RANGE,
135	CIL_CONS_DOM,
136	CIL_CONS_DOMBY,
137	CIL_CONS_INCOMP,
138	CIL_CONS_OPERAND,
139	CIL_CONS_U1,
140	CIL_CONS_U2,
141	CIL_CONS_U3,
142	CIL_CONS_T1,
143	CIL_CONS_T2,
144	CIL_CONS_T3,
145	CIL_CONS_R1,
146	CIL_CONS_R2,
147	CIL_CONS_R3,
148	CIL_CONS_L1,
149	CIL_CONS_L2,
150	CIL_CONS_H1,
151	CIL_CONS_H2,
152
153	CIL_BLOCK = CIL_MIN_DECLARATIVE,
154	CIL_MACRO,
155	CIL_OPTIONAL,
156	CIL_BOOL,
157	CIL_TUNABLE,
158	CIL_PERM,
159	CIL_MAP_PERM,
160	CIL_COMMON,
161	CIL_CLASS,
162	CIL_MAP_CLASS,
163	CIL_CLASSPERMISSION,
164	CIL_USER,
165	CIL_ROLE,
166	CIL_ROLEATTRIBUTE,
167	CIL_TYPE,
168	CIL_TYPEATTRIBUTE,
169	CIL_TYPEALIAS,
170	CIL_SENS,
171	CIL_SENSALIAS,
172	CIL_CAT,
173	CIL_CATSET,
174	CIL_CATALIAS,
175	CIL_LEVEL,
176	CIL_LEVELRANGE,
177	CIL_SID,
178	CIL_NAME,
179	CIL_CONTEXT,
180	CIL_IPADDR,
181	CIL_POLICYCAP,
182};
183
184
185#endif /* CIL_FLAVOR_H_ */
186