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