summaryrefslogtreecommitdiffstats
path: root/include/linux/acct.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-12-16 05:34:03 +0000
committerRalf Baechle <ralf@linux-mips.org>1997-12-16 05:34:03 +0000
commit967c65a99059fd459b956c1588ce0ba227912c4e (patch)
tree8224d013ff5d255420713d05610c7efebd204d2a /include/linux/acct.h
parente20c1cc1656a66a2773bca4591a895cbc12696ff (diff)
Merge with Linux 2.1.72, part 1.
Diffstat (limited to 'include/linux/acct.h')
-rw-r--r--include/linux/acct.h97
1 files changed, 77 insertions, 20 deletions
diff --git a/include/linux/acct.h b/include/linux/acct.h
index 99fe14917..e1c96a4c1 100644
--- a/include/linux/acct.h
+++ b/include/linux/acct.h
@@ -1,29 +1,86 @@
-#ifndef __LINUX_ACCT_H
-#define __LINUX_ACCT_H
+/*
+ * BSD Process Accounting for Linux - Definitions
+ *
+ * Author: Marco van Wieringen (mvw@planets.elm.net)
+ *
+ * This header file contains the definitions needed to implement
+ * BSD-style process accounting. The kernel accounting code and all
+ * user-level programs that try to do something useful with the
+ * process accounting log must include this file.
+ *
+ * Copyright (C) 1995 - 1997 Marco van Wieringen - ELM Consultancy B.V.
+ *
+ */
-#define ACCT_COMM 16
+#ifndef _LINUX_ACCT_H
+#define _LINUX_ACCT_H
+
+#include <linux/types.h>
+
+/*
+ * comp_t is a 16-bit "floating" point number with a 3-bit base 8
+ * exponent and a 13-bit fraction. See linux/kernel/acct.c for the
+ * specific encoding system used.
+ */
+
+typedef __u16 comp_t;
+
+/*
+ * accounting file record
+ *
+ * This structure contains all of the information written out to the
+ * process accounting file whenever a process exits.
+ */
+
+#define ACCT_COMM 16
struct acct
{
- char ac_comm[ACCT_COMM]; /* Accounting command name */
- time_t ac_utime; /* Accounting user time */
- time_t ac_stime; /* Accounting system time */
- time_t ac_etime; /* Accounting elapsed time */
- time_t ac_btime; /* Beginning time */
- uid_t ac_uid; /* Accounting user ID */
- gid_t ac_gid; /* Accounting group ID */
- dev_t ac_tty; /* controlling tty */
- char ac_flag; /* Accounting flag */
- long ac_minflt; /* Accounting minor pagefaults */
- long ac_majflt; /* Accounting major pagefaults */
- long ac_exitcode; /* Accounting process exitcode */
+ char ac_flag; /* Accounting Flags */
+/*
+ * No binary format break with 2.0 - but when we hit 32bit uid we'll
+ * have to bite one
+ */
+ __u16 ac_uid; /* Accounting Real User ID */
+ __u16 ac_gid; /* Accounting Real Group ID */
+ __u16 ac_tty; /* Accounting Control Terminal */
+ __u32 ac_btime; /* Accounting Process Creation Time */
+ comp_t ac_utime; /* Accounting User Time */
+ comp_t ac_stime; /* Accounting System Time */
+ comp_t ac_etime; /* Accounting Elapsed Time */
+ comp_t ac_mem; /* Accounting Average Memory Usage */
+ comp_t ac_io; /* Accounting Chars Transferred */
+ comp_t ac_rw; /* Accounting Blocks Read or Written */
+ comp_t ac_minflt; /* Accounting Minor Pagefaults */
+ comp_t ac_majflt; /* Accounting Major Pagefaults */
+ comp_t ac_swaps; /* Accounting Number of Swaps */
+ __u32 ac_exitcode; /* Accounting Exitcode */
+ char ac_comm[ACCT_COMM + 1]; /* Accounting Command Name */
+ char ac_pad[10]; /* Accounting Padding Bytes */
};
-#define AFORK 0001 /* has executed fork, but no exec */
-#define ASU 0002 /* used super-user privileges */
-#define ACORE 0004 /* dumped core */
-#define AXSIG 0010 /* killed by a signal */
+/*
+ * accounting flags
+ */
+ /* bit set when the process ... */
+#define AFORK 0x01 /* ... executed fork, but did not exec */
+#define ASU 0x02 /* ... used super-user privileges */
+#define ACOMPAT 0x04 /* ... used compatibility mode (VAX only not used) */
+#define ACORE 0x08 /* ... dumped core */
+#define AXSIG 0x10 /* ... was killed by a signal */
-#define AHZ 100
+#define AHZ 100
+#ifdef __KERNEL__
+
+#include <linux/config.h>
+
+#ifdef CONFIG_BSD_PROCESS_ACCT
+extern int acct_process(long exitcode);
+#else
+#define acct_process(x) do { } while (0)
#endif
+
+#endif /* __KERNEL */
+
+#endif /* _LINUX_ACCT_H */