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