1 /*
2 * CDDL HEADER START
3 *
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.
7 *
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.
12 *
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]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 *
25 * Copyright 2018 Nexenta Systems, Inc. All rights reserved.
26 */
27
28 #ifndef _SYSTOKEN_H
29 #define _SYSTOKEN_H
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 #include "sysplugin.h"
36 #include <bsm/adt.h>
37
38 /*
39 * parse_context -- doc and cur are for XML input, chunk and
40 * remaining for "plain text input, i.e., the traditiona
41 * output from praudit
42 */
43
44 struct parse_context {
45 adr_t adr; /* input buffer pointers */
46 uint64_t id; /* message sequence number */
47 tosyslog_t out; /* output data */
48 };
49 typedef struct parse_context parse_context_t;
50
51 #define AU_TEXT_NAME " text "
52
53 #ifdef useless
54 /*
55 * the following *_ar_token() functions parallel the *_token()(
56 * functions defined in praudit/toktable.h
57 */
58
59 /*
60 * These tokens are the same for all versions of Solaris
61 */
62
63 /*
64 * Control tokens
65 */
66
67 extern void file_token(adr_t *, uint64_t, uint64_t);
68 extern void trailer_token(adr_t *, parse_context_t *);
69 extern void header_token(adr_t *, parse_context_t *);
70 extern void header32_ex_token(adr_t *, parse_context_t *);
71
72 /*
73 * Data tokens
74 */
75
76 extern void arbitrary_data_token(adr_t *, parse_context_t *);
77 extern void fmri_token(adr_t *, parse_context_t *);
78 extern void s5_IPC_token(adr_t *, parse_context_t *);
79 extern void path_token(adr_t *, parse_context_t *);
80 extern void subject32_token();
81 extern void process32_token();
82 extern void return_value32_token();
83 extern void text_token(adr_t *, parse_context_t *);
84 extern void opaque_token(adr_t *, parse_context_t *);
85 extern void ip_addr_token();
86 extern void ip_token(adr_t *, parse_context_t *);
87 extern void iport_token(adr_t *, parse_context_t *);
88 extern void argument32_token();
89 extern void socket_token();
90 extern void sequence_token(adr_t *, parse_context_t *);
91
92 /*
93 * Modifier tokens
94 */
95
96 extern void acl_token(adr_t *, parse_context_t *);
97 extern void attribute_token(adr_t *, parse_context_t *);
98 extern void s5_IPC_perm_token(adr_t *, parse_context_t *);
99 extern void group_token();
100 extern void label_token(adr_t *, parse_context_t *);
101 extern void privilege_token(adr_t *, parse_context_t *);
102 extern void useofpriv_token(adr_t *, parse_context_t *);
103 extern void secflags_token(adr_t *, parse_context_t *);
104 extern void zonename_token(adr_t *, parse_context_t *);
105 extern void liaison_token(adr_t *, parse_context_t *);
106 extern void newgroup_token(adr_t *, parse_context_t *);
107 extern void exec_args_token(adr_t *, parse_context_t *);
108 extern void exec_env_token(adr_t *, parse_context_t *);
109 extern void attribute32_token(adr_t *, parse_context_t *);
110 extern void useofauth_token(adr_t *, parse_context_t *);
111 extern void user_token(adr_t *, parse_context_t *);
112
113 /*
114 * X windows tokens
115 */
116
117 extern void xatom_token(adr_t *, parse_context_t *);
118 extern void xselect_token(adr_t *, parse_context_t *);
119 extern void xcolormap_token(adr_t *, parse_context_t *);
120 extern void xcursor_token(adr_t *, parse_context_t *);
121 extern void xfont_token(adr_t *, parse_context_t *);
122 extern void xgc_token(adr_t *, parse_context_t *);
123 extern void xpixmap_token(adr_t *, parse_context_t *);
124 extern void xproperty_token(adr_t *, parse_context_t *);
125 extern void xwindow_token(adr_t *, parse_context_t *);
126 extern void xclient_token(adr_t *, parse_context_t *);
127
128 /*
129 * Command tokens
130 */
131
132 extern void cmd_token(adr_t *, parse_context_t *);
133 extern void exit_token(adr_t *, parse_context_t *);
134
135 /*
136 * Miscellaneous tokens
137 */
138
139 extern void host_token(adr_t *, parse_context_t *);
140
141 /*
142 * Solaris64 tokens
143 */
144
145 extern void argument64_token(adr_t *, parse_context_t *);
146 extern void return64_token(adr_t *, parse_context_t *);
147 extern void attribute64_token(adr_t *, parse_context_t *);
148 extern void header64_token(adr_t *, parse_context_t *);
149 extern void subject64_token(adr_t *, parse_context_t *);
150 extern void process64_token(adr_t *, parse_context_t *);
151 extern void file64_token(adr_t *, parse_context_t *);
152
153 /*
154 * Extended network address tokens
155 */
156
157 extern void header64_ex_token();
158 extern void subject32_ex_token();
159 extern void process32_ex_token();
160 extern void subject64_ex_token(adr_t *, parse_context_t *);
161 extern void process64_ex_token(adr_t *, parse_context_t *);
162 extern void ip_addr_ex_token(adr_t *, parse_context_t *);
163 extern void socket_ex_token(adr_t *, parse_context_t *);
164 extern void tid_token(adr_t *, parse_context_t *);
165 extern void access_mask_token(parse_context_t *)
166 extern void wsid_token(parse_context_t *)
167 #endif
168
169 #ifdef __cplusplus
170 }
171 #endif
172
173 #endif /* _SYSTOKEN_H */