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