~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/acct.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2 /*
  3  *  BSD Process Accounting for Linux - Definitions
  4  *
  5  *  Author: Marco van Wieringen (mvw@planets.elm.net)
  6  *
  7  *  This header file contains the definitions needed to implement
  8  *  BSD-style process accounting. The kernel accounting code and all
  9  *  user-level programs that try to do something useful with the
 10  *  process accounting log must include this file.
 11  *
 12  *  Copyright (C) 1995 - 1997 Marco van Wieringen - ELM Consultancy B.V.
 13  *
 14  */
 15 
 16 #ifndef _UAPI_LINUX_ACCT_H
 17 #define _UAPI_LINUX_ACCT_H
 18 
 19 #include <linux/types.h>
 20 
 21 #include <asm/param.h>
 22 #include <asm/byteorder.h>
 23 
 24 /* 
 25  *  comp_t is a 16-bit "floating" point number with a 3-bit base 8
 26  *  exponent and a 13-bit fraction.
 27  *  comp2_t is 24-bit with 5-bit base 2 exponent and 20 bit fraction
 28  *  (leading 1 not stored).
 29  *  See linux/kernel/acct.c for the specific encoding systems used.
 30  */
 31 
 32 typedef __u16   comp_t;
 33 typedef __u32   comp2_t;
 34 
 35 /*
 36  *   accounting file record
 37  *
 38  *   This structure contains all of the information written out to the
 39  *   process accounting file whenever a process exits.
 40  */
 41 
 42 #define ACCT_COMM       16
 43 
 44 struct acct
 45 {
 46         char            ac_flag;                /* Flags */
 47         char            ac_version;             /* Always set to ACCT_VERSION */
 48         /* for binary compatibility back until 2.0 */
 49         __u16           ac_uid16;               /* LSB of Real User ID */
 50         __u16           ac_gid16;               /* LSB of Real Group ID */
 51         __u16           ac_tty;                 /* Control Terminal */
 52         /* __u32 range means times from 1970 to 2106 */
 53         __u32           ac_btime;               /* Process Creation Time */
 54         comp_t          ac_utime;               /* User Time */
 55         comp_t          ac_stime;               /* System Time */
 56         comp_t          ac_etime;               /* Elapsed Time */
 57         comp_t          ac_mem;                 /* Average Memory Usage */
 58         comp_t          ac_io;                  /* Chars Transferred */
 59         comp_t          ac_rw;                  /* Blocks Read or Written */
 60         comp_t          ac_minflt;              /* Minor Pagefaults */
 61         comp_t          ac_majflt;              /* Major Pagefaults */
 62         comp_t          ac_swaps;               /* Number of Swaps */
 63 /* m68k had no padding here. */
 64 #if !defined(CONFIG_M68K) || !defined(__KERNEL__)
 65         __u16           ac_ahz;                 /* AHZ */
 66 #endif
 67         __u32           ac_exitcode;            /* Exitcode */
 68         char            ac_comm[ACCT_COMM + 1]; /* Command Name */
 69         __u8            ac_etime_hi;            /* Elapsed Time MSB */
 70         __u16           ac_etime_lo;            /* Elapsed Time LSB */
 71         __u32           ac_uid;                 /* Real User ID */
 72         __u32           ac_gid;                 /* Real Group ID */
 73 };
 74 
 75 struct acct_v3
 76 {
 77         char            ac_flag;                /* Flags */
 78         char            ac_version;             /* Always set to ACCT_VERSION */
 79         __u16           ac_tty;                 /* Control Terminal */
 80         __u32           ac_exitcode;            /* Exitcode */
 81         __u32           ac_uid;                 /* Real User ID */
 82         __u32           ac_gid;                 /* Real Group ID */
 83         __u32           ac_pid;                 /* Process ID */
 84         __u32           ac_ppid;                /* Parent Process ID */
 85         /* __u32 range means times from 1970 to 2106 */
 86         __u32           ac_btime;               /* Process Creation Time */
 87 #ifdef __KERNEL__
 88         __u32           ac_etime;               /* Elapsed Time */
 89 #else
 90         float           ac_etime;               /* Elapsed Time */
 91 #endif
 92         comp_t          ac_utime;               /* User Time */
 93         comp_t          ac_stime;               /* System Time */
 94         comp_t          ac_mem;                 /* Average Memory Usage */
 95         comp_t          ac_io;                  /* Chars Transferred */
 96         comp_t          ac_rw;                  /* Blocks Read or Written */
 97         comp_t          ac_minflt;              /* Minor Pagefaults */
 98         comp_t          ac_majflt;              /* Major Pagefaults */
 99         comp_t          ac_swaps;               /* Number of Swaps */
100         char            ac_comm[ACCT_COMM];     /* Command Name */
101 };
102 
103 /*
104  *  accounting flags
105  */
106                                 /* bit set when the process/task ... */
107 #define AFORK           0x01    /* ... executed fork, but did not exec */
108 #define ASU             0x02    /* ... used super-user privileges */
109 #define ACOMPAT         0x04    /* ... used compatibility mode (VAX only not used) */
110 #define ACORE           0x08    /* ... dumped core */
111 #define AXSIG           0x10    /* ... was killed by a signal */
112 #define AGROUP          0x20    /* ... was the last task of the process (task group) */
113 
114 #if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
115 #define ACCT_BYTEORDER  0x80    /* accounting file is big endian */
116 #elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
117 #define ACCT_BYTEORDER  0x00    /* accounting file is little endian */
118 #else
119 #error unspecified endianness
120 #endif
121 
122 #ifndef __KERNEL__
123 #define ACCT_VERSION    2
124 #define AHZ             (HZ)
125 #endif  /* __KERNEL */
126 
127 
128 #endif /* _UAPI_LINUX_ACCT_H */
129 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php