1#ifndef _SYS_ACCT_H
2#define _SYS_ACCT_H
3
4#ifdef __cplusplus
5extern "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
15typedef uint16_t comp_t;
16
17struct 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
38struct 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
67int acct(const char *);
68
69#ifdef __cplusplus
70}
71#endif
72
73#endif
74