1 #ifndef _SYS_ACCT_H
2 #define _SYS_ACCT_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #include <features.h>
9 #include <endian.h>
10 #include <time.h>
11 #include <stdint.h>
12 
13 #define ACCT_COMM 16
14 
15 typedef uint16_t comp_t;
16 
17 struct acct {
18 	char ac_flag;
19 	uint16_t ac_uid;
20 	uint16_t ac_gid;
21 	uint16_t ac_tty;
22 	uint32_t ac_btime;
23 	comp_t ac_utime;
24 	comp_t ac_stime;
25 	comp_t ac_etime;
26 	comp_t ac_mem;
27 	comp_t ac_io;
28 	comp_t ac_rw;
29 	comp_t ac_minflt;
30 	comp_t ac_majflt;
31 	comp_t ac_swaps;
32 	uint32_t ac_exitcode;
33 	char ac_comm[ACCT_COMM+1];
34 	char ac_pad[10];
35 };
36 
37 
38 struct acct_v3 {
39 	char ac_flag;
40 	char ac_version;
41 	uint16_t ac_tty;
42 	uint32_t ac_exitcode;
43 	uint32_t ac_uid;
44 	uint32_t ac_gid;
45 	uint32_t ac_pid;
46 	uint32_t ac_ppid;
47 	uint32_t ac_btime;
48 	float ac_etime;
49 	comp_t ac_utime;
50 	comp_t ac_stime;
51 	comp_t ac_mem;
52 	comp_t ac_io;
53 	comp_t ac_rw;
54 	comp_t ac_minflt;
55 	comp_t ac_majflt;
56 	comp_t ac_swaps;
57 	char ac_comm[ACCT_COMM];
58 };
59 
60 #define AFORK 1
61 #define ASU 2
62 #define ACORE 8
63 #define AXSIG 16
64 #define ACCT_BYTEORDER (128*(__BYTE_ORDER==__BIG_ENDIAN))
65 #define AHZ 100
66 
67 int acct(const char *);
68 
69 #ifdef __cplusplus
70 }
71 #endif
72 
73 #endif
74