Merge commit '00f1a4f432b3d8aad1aa270e91c44c57f03ef407'
[unleashed.git] / usr / src / cmd / praudit / toktable.h
blob77c11cf0ac6eadbe3c1158f203a70349ea431ae1
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _TOKTABLE_H
27 #define _TOKTABLE_H
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
34 * Solaris Audit Token Table.
37 typedef struct token_desc {
38 char *t_name; /* name of the token */
39 char *t_tagname; /* tag name */
40 int (*func)(); /* token processing function */
41 short t_type; /* token or tag type */
42 } token_desc_t;
45 #define NOFUNC (int (*)())0
47 #define MAXTOKEN 0xff
49 extern token_desc_t tokentable[];
52 * Tag types -
54 * attribute: an attribute:
55 * xxx="..."
57 * element: a simple element:
58 * <xxx> ... </xxx>
60 * enclosed: a self contained element, optionally with attributes:
61 * <xxx a="" b="" ... />
63 * extended: an element with attributes:
64 * <xxx a="" b="" ...> ... </xxx>
66 #define T_ATTRIBUTE 1 /* attribute */
67 #define T_ELEMENT 2 /* element */
68 #define T_ENCLOSED 3 /* enclosed element */
69 #define T_EXTENDED 4 /* extended element */
70 #define T_UNKNOWN 99 /* huh... */
73 * Define the kinds of tags
75 enum tagnum_t { TAG_INVALID = MAXTOKEN,
76 TAG_UID,
77 TAG_GID,
78 TAG_RUID,
79 TAG_RGID,
80 TAG_AUID,
81 TAG_PID,
82 TAG_SID,
83 TAG_TID32,
84 TAG_TID64,
85 TAG_TID32_EX,
86 TAG_TID64_EX,
87 TAG_EVMOD,
88 TAG_TOKVERS,
89 TAG_EVTYPE,
90 TAG_ISO,
91 TAG_ERRVAL,
92 TAG_RETVAL,
93 TAG_SETTYPE,
94 TAG_GROUPID,
95 TAG_XID,
96 TAG_XCUID,
97 TAG_XSELTEXT,
98 TAG_XSELTYPE,
99 TAG_XSELDATA,
100 TAG_ARGNUM,
101 TAG_ARGVAL32,
102 TAG_ARGVAL64,
103 TAG_ARGDESC,
104 TAG_MODE,
105 TAG_FSID,
106 TAG_NODEID32,
107 TAG_NODEID64,
108 TAG_DEVICE32,
109 TAG_DEVICE64,
110 TAG_SEQNUM, /* with sequence token */
111 TAG_ARGV, /* with cmd token */
112 TAG_ARGE, /* with cmd token */
113 TAG_ARG, /* with exec_args token */
114 TAG_ENV, /* with exec_env token */
115 TAG_XAT, /* with attr_path token */
116 TAG_RESULT, /* with use_of_privilege token */
117 TAG_CUID, /* with IPC_perm token */
118 TAG_CGID, /* with IPC_perm token */
119 TAG_SEQ, /* with IPC_perm token */
120 TAG_KEY, /* with IPC_perm token */
121 TAG_IPVERS, /* with ip token */
122 TAG_IPSERV, /* with ip token */
123 TAG_IPLEN, /* with ip token */
124 TAG_IPID, /* with ip token */
125 TAG_IPOFFS, /* with ip token */
126 TAG_IPTTL, /* with ip token */
127 TAG_IPPROTO, /* with ip token */
128 TAG_IPCKSUM, /* with ip token */
129 TAG_IPSRC, /* with ip token */
130 TAG_IPDEST, /* with ip token */
131 TAG_ACLTYPE, /* with acl token */
132 TAG_ACLVAL, /* with acl token */
133 TAG_SOCKTYPE, /* with socket token */
134 TAG_SOCKPORT, /* with socket token */
135 TAG_SOCKADDR, /* with socket token */
136 TAG_SOCKEXDOM, /* with socket_ex token */
137 TAG_SOCKEXTYPE, /* with socket_ex token */
138 TAG_SOCKEXLPORT, /* with socket_ex token */
139 TAG_SOCKEXLADDR, /* with socket_ex token */
140 TAG_SOCKEXFPORT, /* with socket_ex token */
141 TAG_SOCKEXFADDR, /* with socket_ex token */
142 TAG_IPCTYPE, /* with IPC token */
143 TAG_IPCID, /* with IPC token */
144 TAG_ARBPRINT, /* with arbitrary (data) token */
145 TAG_ARBTYPE, /* with arbitrary (data) token */
146 TAG_ARBCOUNT, /* with arbitrary (data) token */
147 TAG_HOSTID, /* with extended header token */
148 TAG_ZONENAME, /* with zonename token */
149 TAG_TID_TYPE, /* with tid token */
150 TAG_IP, /* with tid token, type=ip */
151 TAG_IP_LOCAL, /* with tid token, type=ip */
152 TAG_IP_REMOTE, /* with tid token, type=ip */
153 TAG_IP_ADR, /* with tid token, type=ip */
154 TAG_ACEMASK, /* with ace token */
155 TAG_ACEFLAGS, /* with ace token */
156 TAG_ACETYPE, /* with ace token */
157 TAG_ACEID, /* with ace token */
158 TAG_USERNAME, /* with user token */
159 MAXTAG
164 * These tokens are the same for all versions of Solaris
168 * Control tokens
171 extern int file_token();
172 extern int trailer_token();
173 extern int header_token();
174 extern int header32_ex_token();
177 * Data tokens
180 extern int arbitrary_data_token();
181 extern int fmri_token();
182 extern int s5_IPC_token();
183 extern int path_token();
184 extern int path_attr_token();
185 extern int subject32_token();
186 extern int process32_token();
187 extern int return_value32_token();
188 extern int text_token();
189 extern int opaque_token();
190 extern int ip_addr_token();
191 extern int ip_token();
192 extern int iport_token();
193 extern int argument32_token();
194 extern int socket_token();
195 extern int sequence_token();
198 * Modifier tokens
201 extern int acl_token();
202 extern int ace_token();
203 extern int attribute_token();
204 extern int s5_IPC_perm_token();
205 extern int group_token();
206 extern int label_token();
207 extern int privilege_token();
208 extern int useofpriv_token();
209 extern int liaison_token();
210 extern int newgroup_token();
211 extern int exec_args_token();
212 extern int exec_env_token();
213 extern int attribute32_token();
214 extern int useofauth_token();
215 extern int user_token();
216 extern int zonename_token();
217 extern int secflags_token();
220 * X windows tokens
223 extern int xatom_token();
224 extern int xselect_token();
225 extern int xcolormap_token();
226 extern int xcursor_token();
227 extern int xfont_token();
228 extern int xgc_token();
229 extern int xpixmap_token();
230 extern int xproperty_token();
231 extern int xwindow_token();
232 extern int xclient_token();
235 * Command tokens
238 extern int cmd_token();
239 extern int exit_token();
242 * Miscellaneous tokens
245 extern int host_token();
248 * Solaris64 tokens
251 extern int argument64_token();
252 extern int return_value64_token();
253 extern int attribute64_token();
254 extern int header64_token();
255 extern int subject64_token();
256 extern int process64_token();
257 extern int file64_token();
260 * Extended network address tokens
263 extern int header64_ex_token();
264 extern int subject32_ex_token();
265 extern int process32_ex_token();
266 extern int subject64_ex_token();
267 extern int process64_ex_token();
268 extern int ip_addr_ex_token();
269 extern int socket_ex_token();
270 extern int tid_token();
272 #ifdef __cplusplus
274 #endif
276 #endif /* _TOKTABLE_H */