xref: /aosp_15_r20/external/ltp/include/lapi/acct.h (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1*49cdfc7eSAndroid Build Coastguard Worker //SPDX-License-Identifier: GPL-2.0-or-later
2*49cdfc7eSAndroid Build Coastguard Worker 
3*49cdfc7eSAndroid Build Coastguard Worker #ifndef LAPI_ACCT_H__
4*49cdfc7eSAndroid Build Coastguard Worker #define LAPI_ACCT_H__
5*49cdfc7eSAndroid Build Coastguard Worker 
6*49cdfc7eSAndroid Build Coastguard Worker #include <sys/types.h>
7*49cdfc7eSAndroid Build Coastguard Worker #include "config.h"
8*49cdfc7eSAndroid Build Coastguard Worker 
9*49cdfc7eSAndroid Build Coastguard Worker #ifdef HAVE_STRUCT_ACCT_V3
10*49cdfc7eSAndroid Build Coastguard Worker #include <sys/acct.h>
11*49cdfc7eSAndroid Build Coastguard Worker #else
12*49cdfc7eSAndroid Build Coastguard Worker 
13*49cdfc7eSAndroid Build Coastguard Worker #define ACCT_COMM 16
14*49cdfc7eSAndroid Build Coastguard Worker 
15*49cdfc7eSAndroid Build Coastguard Worker typedef uint16_t comp_t;
16*49cdfc7eSAndroid Build Coastguard Worker 
17*49cdfc7eSAndroid Build Coastguard Worker /* Fallback structures to parse the process accounting file */
18*49cdfc7eSAndroid Build Coastguard Worker struct acct {
19*49cdfc7eSAndroid Build Coastguard Worker 	char ac_flag;
20*49cdfc7eSAndroid Build Coastguard Worker 	uint16_t ac_uid;
21*49cdfc7eSAndroid Build Coastguard Worker 	uint16_t ac_gid;
22*49cdfc7eSAndroid Build Coastguard Worker 	uint16_t ac_tty;
23*49cdfc7eSAndroid Build Coastguard Worker 	uint32_t ac_btime;
24*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_utime;
25*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_stime;
26*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_etime;
27*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_mem;
28*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_io;
29*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_rw;
30*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_minflt;
31*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_majflt;
32*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_swaps;
33*49cdfc7eSAndroid Build Coastguard Worker 	uint32_t ac_exitcode;
34*49cdfc7eSAndroid Build Coastguard Worker 	char      ac_comm[ACCT_COMM+1];
35*49cdfc7eSAndroid Build Coastguard Worker 	char      ac_pad[10];
36*49cdfc7eSAndroid Build Coastguard Worker };
37*49cdfc7eSAndroid Build Coastguard Worker 
38*49cdfc7eSAndroid Build Coastguard Worker struct acct_v3 {
39*49cdfc7eSAndroid Build Coastguard Worker 	char      ac_flag;
40*49cdfc7eSAndroid Build Coastguard Worker 	char      ac_version;
41*49cdfc7eSAndroid Build Coastguard Worker 	uint16_t ac_tty;
42*49cdfc7eSAndroid Build Coastguard Worker 	uint32_t ac_exitcode;
43*49cdfc7eSAndroid Build Coastguard Worker 	uint32_t ac_uid;
44*49cdfc7eSAndroid Build Coastguard Worker 	uint32_t ac_gid;
45*49cdfc7eSAndroid Build Coastguard Worker 	uint32_t ac_pid;
46*49cdfc7eSAndroid Build Coastguard Worker 	uint32_t ac_ppid;
47*49cdfc7eSAndroid Build Coastguard Worker 	uint32_t ac_btime;
48*49cdfc7eSAndroid Build Coastguard Worker 	float     ac_etime;
49*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_utime;
50*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_stime;
51*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_mem;
52*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_io;
53*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_rw;
54*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_minflt;
55*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_majflt;
56*49cdfc7eSAndroid Build Coastguard Worker 	comp_t    ac_swaps;
57*49cdfc7eSAndroid Build Coastguard Worker 	char      ac_comm[ACCT_COMM];
58*49cdfc7eSAndroid Build Coastguard Worker };
59*49cdfc7eSAndroid Build Coastguard Worker 
60*49cdfc7eSAndroid Build Coastguard Worker /* Possible values for the ac_flag member */
61*49cdfc7eSAndroid Build Coastguard Worker enum {
62*49cdfc7eSAndroid Build Coastguard Worker 	AFORK = 0x01,
63*49cdfc7eSAndroid Build Coastguard Worker 	ASU   = 0x02,
64*49cdfc7eSAndroid Build Coastguard Worker 	ACORE = 0x08,
65*49cdfc7eSAndroid Build Coastguard Worker 	AXSIG = 0x10
66*49cdfc7eSAndroid Build Coastguard Worker };
67*49cdfc7eSAndroid Build Coastguard Worker # if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
68*49cdfc7eSAndroid Build Coastguard Worker # define ACCT_BYTEORDER  0x80
69*49cdfc7eSAndroid Build Coastguard Worker # elif __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
70*49cdfc7eSAndroid Build Coastguard Worker # define ACCT_BYTEORDER  0x00
71*49cdfc7eSAndroid Build Coastguard Worker # endif
72*49cdfc7eSAndroid Build Coastguard Worker #endif /* HAVE_STRUCT_ACCT_V3 */
73*49cdfc7eSAndroid Build Coastguard Worker 
74*49cdfc7eSAndroid Build Coastguard Worker #endif /* LAPI_ACCT_H__ */
75