16cd6a6acSopenharmony_ci/*
26cd6a6acSopenharmony_ci * Copyright 2013 Tresys Technology, LLC. All rights reserved.
36cd6a6acSopenharmony_ci *
46cd6a6acSopenharmony_ci * Redistribution and use in source and binary forms, with or without
56cd6a6acSopenharmony_ci * modification, are permitted provided that the following conditions are met:
66cd6a6acSopenharmony_ci *
76cd6a6acSopenharmony_ci *    1. Redistributions of source code must retain the above copyright notice,
86cd6a6acSopenharmony_ci *       this list of conditions and the following disclaimer.
96cd6a6acSopenharmony_ci *
106cd6a6acSopenharmony_ci *    2. Redistributions in binary form must reproduce the above copyright notice,
116cd6a6acSopenharmony_ci *       this list of conditions and the following disclaimer in the documentation
126cd6a6acSopenharmony_ci *       and/or other materials provided with the distribution.
136cd6a6acSopenharmony_ci *
146cd6a6acSopenharmony_ci * THIS SOFTWARE IS PROVIDED BY TRESYS TECHNOLOGY, LLC ``AS IS'' AND ANY EXPRESS
156cd6a6acSopenharmony_ci * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
166cd6a6acSopenharmony_ci * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
176cd6a6acSopenharmony_ci * EVENT SHALL TRESYS TECHNOLOGY, LLC OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
186cd6a6acSopenharmony_ci * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
196cd6a6acSopenharmony_ci * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
206cd6a6acSopenharmony_ci * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
216cd6a6acSopenharmony_ci * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
226cd6a6acSopenharmony_ci * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
236cd6a6acSopenharmony_ci * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
246cd6a6acSopenharmony_ci *
256cd6a6acSopenharmony_ci * The views and conclusions contained in the software and documentation are those
266cd6a6acSopenharmony_ci * of the authors and should not be interpreted as representing official policies,
276cd6a6acSopenharmony_ci * either expressed or implied, of Tresys Technology, LLC.
286cd6a6acSopenharmony_ci */
296cd6a6acSopenharmony_ci
306cd6a6acSopenharmony_ci#ifndef CIL_FLAVOR_H_
316cd6a6acSopenharmony_ci#define CIL_FLAVOR_H_
326cd6a6acSopenharmony_ci
336cd6a6acSopenharmony_ci/*
346cd6a6acSopenharmony_ci	Tree/list node types
356cd6a6acSopenharmony_ci*/
366cd6a6acSopenharmony_ci#define CIL_MIN_OP_OPERANDS 1000
376cd6a6acSopenharmony_ci#define CIL_MIN_DECLARATIVE 2000
386cd6a6acSopenharmony_ci
396cd6a6acSopenharmony_cienum cil_flavor {
406cd6a6acSopenharmony_ci	CIL_NONE = 0,
416cd6a6acSopenharmony_ci	CIL_ROOT,
426cd6a6acSopenharmony_ci	CIL_NODE,
436cd6a6acSopenharmony_ci	CIL_STRING,
446cd6a6acSopenharmony_ci	CIL_DATUM,
456cd6a6acSopenharmony_ci	CIL_LIST,
466cd6a6acSopenharmony_ci	CIL_LIST_ITEM,
476cd6a6acSopenharmony_ci	CIL_PARAM,
486cd6a6acSopenharmony_ci	CIL_ARGS,
496cd6a6acSopenharmony_ci	CIL_BLOCKINHERIT,
506cd6a6acSopenharmony_ci	CIL_BLOCKABSTRACT,
516cd6a6acSopenharmony_ci	CIL_IN,
526cd6a6acSopenharmony_ci	CIL_CALL,
536cd6a6acSopenharmony_ci	CIL_BOOLEANIF,
546cd6a6acSopenharmony_ci	CIL_TUNABLEIF,
556cd6a6acSopenharmony_ci	CIL_CONDBLOCK,
566cd6a6acSopenharmony_ci	CIL_CONDTRUE,
576cd6a6acSopenharmony_ci	CIL_CONDFALSE,
586cd6a6acSopenharmony_ci	CIL_CLASSORDER,
596cd6a6acSopenharmony_ci	CIL_CLASSCOMMON,
606cd6a6acSopenharmony_ci	CIL_CLASSMAPPING,
616cd6a6acSopenharmony_ci	CIL_CLASSPERMS,
626cd6a6acSopenharmony_ci	CIL_CLASSPERMS_SET,
636cd6a6acSopenharmony_ci	CIL_CLASSPERMISSIONSET,
646cd6a6acSopenharmony_ci	CIL_USERPREFIX,
656cd6a6acSopenharmony_ci	CIL_USERROLE,
666cd6a6acSopenharmony_ci	CIL_USERATTRIBUTESET,
676cd6a6acSopenharmony_ci	CIL_USERLEVEL,
686cd6a6acSopenharmony_ci	CIL_USERRANGE,
696cd6a6acSopenharmony_ci	CIL_USERBOUNDS,
706cd6a6acSopenharmony_ci	CIL_SELINUXUSER,
716cd6a6acSopenharmony_ci	CIL_SELINUXUSERDEFAULT,
726cd6a6acSopenharmony_ci	CIL_ROLEATTRIBUTESET,
736cd6a6acSopenharmony_ci	CIL_ROLETYPE,
746cd6a6acSopenharmony_ci	CIL_ROLEBOUNDS,
756cd6a6acSopenharmony_ci	CIL_TYPEATTRIBUTESET,
766cd6a6acSopenharmony_ci	CIL_EXPANDTYPEATTRIBUTE,
776cd6a6acSopenharmony_ci	CIL_TYPEALIASACTUAL,
786cd6a6acSopenharmony_ci	CIL_TYPEBOUNDS,
796cd6a6acSopenharmony_ci	CIL_TYPEPERMISSIVE,
806cd6a6acSopenharmony_ci	CIL_SENSALIASACTUAL,
816cd6a6acSopenharmony_ci	CIL_SENSITIVITYORDER,
826cd6a6acSopenharmony_ci	CIL_SENSCAT,
836cd6a6acSopenharmony_ci	CIL_CATALIASACTUAL,
846cd6a6acSopenharmony_ci	CIL_CATORDER,
856cd6a6acSopenharmony_ci	CIL_SIDORDER,
866cd6a6acSopenharmony_ci	CIL_ROLEALLOW,
876cd6a6acSopenharmony_ci	CIL_AVRULE,
886cd6a6acSopenharmony_ci	CIL_AVRULEX,
896cd6a6acSopenharmony_ci	CIL_ROLETRANSITION,
906cd6a6acSopenharmony_ci	CIL_TYPE_RULE,
916cd6a6acSopenharmony_ci	CIL_NAMETYPETRANSITION,
926cd6a6acSopenharmony_ci	CIL_RANGETRANSITION,
936cd6a6acSopenharmony_ci	CIL_CONSTRAIN,
946cd6a6acSopenharmony_ci	CIL_MLSCONSTRAIN,
956cd6a6acSopenharmony_ci	CIL_VALIDATETRANS,
966cd6a6acSopenharmony_ci	CIL_MLSVALIDATETRANS,
976cd6a6acSopenharmony_ci	CIL_SIDCONTEXT,
986cd6a6acSopenharmony_ci	CIL_FSUSE,
996cd6a6acSopenharmony_ci	CIL_FILECON,
1006cd6a6acSopenharmony_ci	CIL_PORTCON,
1016cd6a6acSopenharmony_ci	CIL_NODECON,
1026cd6a6acSopenharmony_ci	CIL_GENFSCON,
1036cd6a6acSopenharmony_ci	CIL_NETIFCON,
1046cd6a6acSopenharmony_ci	CIL_PIRQCON,
1056cd6a6acSopenharmony_ci	CIL_IOMEMCON,
1066cd6a6acSopenharmony_ci	CIL_IOPORTCON,
1076cd6a6acSopenharmony_ci	CIL_PCIDEVICECON,
1086cd6a6acSopenharmony_ci	CIL_DEVICETREECON,
1096cd6a6acSopenharmony_ci	CIL_DEFAULTUSER,
1106cd6a6acSopenharmony_ci	CIL_DEFAULTROLE,
1116cd6a6acSopenharmony_ci	CIL_DEFAULTTYPE,
1126cd6a6acSopenharmony_ci	CIL_DEFAULTRANGE,
1136cd6a6acSopenharmony_ci	CIL_HANDLEUNKNOWN,
1146cd6a6acSopenharmony_ci	CIL_MLS,
1156cd6a6acSopenharmony_ci	CIL_SRC_INFO,
1166cd6a6acSopenharmony_ci	CIL_IBPKEYCON,
1176cd6a6acSopenharmony_ci	CIL_IBENDPORTCON,
1186cd6a6acSopenharmony_ci
1196cd6a6acSopenharmony_ci/*
1206cd6a6acSopenharmony_ci *          boolean  constraint  set  catset
1216cd6a6acSopenharmony_ci *  dom                  X
1226cd6a6acSopenharmony_ci *  domby                X
1236cd6a6acSopenharmony_ci *  incomp               X
1246cd6a6acSopenharmony_ci *  eq         X         X
1256cd6a6acSopenharmony_ci *  ne         X         X
1266cd6a6acSopenharmony_ci *  and        X         X        X    X
1276cd6a6acSopenharmony_ci *  not        X         X        X    X
1286cd6a6acSopenharmony_ci *  or         X         X        X    X
1296cd6a6acSopenharmony_ci *  xor        X                  X    X
1306cd6a6acSopenharmony_ci *  all                           X    X
1316cd6a6acSopenharmony_ci *  range                              X
1326cd6a6acSopenharmony_ci*/
1336cd6a6acSopenharmony_ci	CIL_OP = CIL_MIN_OP_OPERANDS,
1346cd6a6acSopenharmony_ci	CIL_ALL,
1356cd6a6acSopenharmony_ci	CIL_AND,
1366cd6a6acSopenharmony_ci	CIL_OR,
1376cd6a6acSopenharmony_ci	CIL_XOR,
1386cd6a6acSopenharmony_ci	CIL_NOT,
1396cd6a6acSopenharmony_ci	CIL_EQ,
1406cd6a6acSopenharmony_ci	CIL_NEQ,
1416cd6a6acSopenharmony_ci	CIL_RANGE,
1426cd6a6acSopenharmony_ci	CIL_CONS_DOM,
1436cd6a6acSopenharmony_ci	CIL_CONS_DOMBY,
1446cd6a6acSopenharmony_ci	CIL_CONS_INCOMP,
1456cd6a6acSopenharmony_ci	CIL_CONS_OPERAND,
1466cd6a6acSopenharmony_ci	CIL_CONS_U1,
1476cd6a6acSopenharmony_ci	CIL_CONS_U2,
1486cd6a6acSopenharmony_ci	CIL_CONS_U3,
1496cd6a6acSopenharmony_ci	CIL_CONS_T1,
1506cd6a6acSopenharmony_ci	CIL_CONS_T2,
1516cd6a6acSopenharmony_ci	CIL_CONS_T3,
1526cd6a6acSopenharmony_ci	CIL_CONS_R1,
1536cd6a6acSopenharmony_ci	CIL_CONS_R2,
1546cd6a6acSopenharmony_ci	CIL_CONS_R3,
1556cd6a6acSopenharmony_ci	CIL_CONS_L1,
1566cd6a6acSopenharmony_ci	CIL_CONS_L2,
1576cd6a6acSopenharmony_ci	CIL_CONS_H1,
1586cd6a6acSopenharmony_ci	CIL_CONS_H2,
1596cd6a6acSopenharmony_ci
1606cd6a6acSopenharmony_ci	CIL_BLOCK = CIL_MIN_DECLARATIVE,
1616cd6a6acSopenharmony_ci	CIL_MACRO,
1626cd6a6acSopenharmony_ci	CIL_OPTIONAL,
1636cd6a6acSopenharmony_ci	CIL_BOOL,
1646cd6a6acSopenharmony_ci	CIL_TUNABLE,
1656cd6a6acSopenharmony_ci	CIL_PERM,
1666cd6a6acSopenharmony_ci	CIL_MAP_PERM,
1676cd6a6acSopenharmony_ci	CIL_COMMON,
1686cd6a6acSopenharmony_ci	CIL_CLASS,
1696cd6a6acSopenharmony_ci	CIL_MAP_CLASS,
1706cd6a6acSopenharmony_ci	CIL_CLASSPERMISSION,
1716cd6a6acSopenharmony_ci	CIL_USER,
1726cd6a6acSopenharmony_ci	CIL_USERATTRIBUTE,
1736cd6a6acSopenharmony_ci	CIL_ROLE,
1746cd6a6acSopenharmony_ci	CIL_ROLEATTRIBUTE,
1756cd6a6acSopenharmony_ci	CIL_TYPE,
1766cd6a6acSopenharmony_ci	CIL_TYPEATTRIBUTE,
1776cd6a6acSopenharmony_ci	CIL_TYPEALIAS,
1786cd6a6acSopenharmony_ci	CIL_SENS,
1796cd6a6acSopenharmony_ci	CIL_SENSALIAS,
1806cd6a6acSopenharmony_ci	CIL_CAT,
1816cd6a6acSopenharmony_ci	CIL_CATSET,
1826cd6a6acSopenharmony_ci	CIL_CATALIAS,
1836cd6a6acSopenharmony_ci	CIL_LEVEL,
1846cd6a6acSopenharmony_ci	CIL_LEVELRANGE,
1856cd6a6acSopenharmony_ci	CIL_SID,
1866cd6a6acSopenharmony_ci	CIL_NAME,
1876cd6a6acSopenharmony_ci	CIL_CONTEXT,
1886cd6a6acSopenharmony_ci	CIL_IPADDR,
1896cd6a6acSopenharmony_ci	CIL_POLICYCAP,
1906cd6a6acSopenharmony_ci	CIL_PERMISSIONX
1916cd6a6acSopenharmony_ci};
1926cd6a6acSopenharmony_ci
1936cd6a6acSopenharmony_ci
1946cd6a6acSopenharmony_ci#endif /* CIL_FLAVOR_H_ */
195