xref: /illumos-gate/usr/src/cmd/auditreduce/auditrd.h (revision 32e0ab73531b6e6e8957e9ecdbbd42603865f2d0)
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	_AUDITRD_H
27 #define	_AUDITRD_H
28 
29 #ifdef	__cplusplus
30 extern "C" {
31 #endif
32 
33 /*
34  * Global data for auditreduce
35  */
36 
37 /*
38  * Message selection options
39  */
40 unsigned short	m_type;		/* 'm' message type */
41 gid_t	m_groupr;		/* 'g' group-id */
42 gid_t	m_groupe;		/* 'f' effective group-id */
43 uid_t	m_usera;		/* 'u' user id */
44 uid_t	m_usere;		/* 'e' effective user-id */
45 uid_t	m_userr;		/* 'r' real user-id */
46 au_asid_t m_sid;		/* 's' session-id */
47 time_t	m_after;		/* 'a' after a time */
48 time_t	m_before;		/* 'b' before a time */
49 audit_state_t mask;		/* used with m_class */
50 char	*zonename;		/* 'z' zonename */
51 m_range_t *m_label;		/* 'l' mandatory label range */
52 int	flags;
53 int	checkflags;
54 int	socket_flag;
55 int	ip_type;
56 uchar_t	ip_ipv6[16];		/* ipv6 type object */
57 int	obj_flag;		/* 'o' object type */
58 int	obj_id;			/* object identifier */
59 gid_t	obj_group;		/* object group */
60 uid_t	obj_owner;		/* object owner */
61 int	subj_id;		/* subject identifier  */
62 char	ipc_type;		/* 'o' object type - tell what type of IPC */
63 scf_pattern_t fmri;		/* 'o' fmri value */
64 uid_t	obj_user;		/* 'o' user value */
65 
66 /*
67  * File selection options
68  */
69 char	*f_machine;		/* 'M' machine (suffix) type */
70 char	*f_root;		/* 'R' audit root */
71 char	*f_server;		/* 'S' server */
72 char	*f_outfile;		/* 'W' output file */
73 static char	*f_outtemp;	/* 'W' temporary file name */
74 int	f_all;			/* 'A' all records from a file */
75 int	f_complete;		/* 'C' only completed files */
76 int	f_delete;		/* 'D' delete when done */
77 int	f_quiet;		/* 'Q' sshhhh! */
78 int	f_verbose;		/* 'V' verbose */
79 int	f_stdin;		/* '-' read from stdin */
80 int	f_cmdline;		/* files specified on the command line */
81 int	new_mode;		/* 'N' new object selection mode */
82 
83 /*
84  * Global error reporting
85  */
86 char	*error_str;		/* current error message */
87 char	errbuf[256];		/* for creating error messages with sprintf */
88 char	*ar = "auditreduce:";
89 static int	root_pid;	/* remember original process's pid */
90 
91 /*
92  * Global control blocks
93  */
94 audit_pcb_t *audit_pcbs; /* ptr to array of pcbs that hold files (fcbs) */
95 
96 int	pcbsize;		/* size of audit_pcb[] */
97 int	pcbnum;		/* number of pcbs in audit_pcb[] that are active */
98 
99 /*
100  * Time values
101  */
102 time_t f_start;		/* time of first record written */
103 time_t f_end;		/* time of last record written */
104 time_t time_now;	/* time the program began */
105 
106 /*
107  * Global counting vars
108  */
109 int	filenum;		/* number of files to process */
110 
111 /*
112  * Global variable, class of current record being processed.
113  */
114 int global_class;
115 
116 #ifdef __cplusplus
117 }
118 #endif
119 
120 #endif	/* _AUDITRD_H */
121