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