Deleted Added
full compact
acct.h (130640) acct.h (169857)
1/*-
2 * Copyright (c) 1990, 1993, 1994
3 * The Regents of the University of California. All rights reserved.
4 * (c) UNIX System Laboratories, Inc.
5 * All or some portions of this file are derived from material licensed
6 * to the University of California by American Telephone and Telegraph
7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
8 * the permission of UNIX System Laboratories, Inc.

--- 18 unchanged lines hidden (view full) ---

27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * @(#)acct.h 8.4 (Berkeley) 1/9/95
1/*-
2 * Copyright (c) 1990, 1993, 1994
3 * The Regents of the University of California. All rights reserved.
4 * (c) UNIX System Laboratories, Inc.
5 * All or some portions of this file are derived from material licensed
6 * to the University of California by American Telephone and Telegraph
7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
8 * the permission of UNIX System Laboratories, Inc.

--- 18 unchanged lines hidden (view full) ---

27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * @(#)acct.h 8.4 (Berkeley) 1/9/95
35 * $FreeBSD: head/sys/sys/acct.h 130640 2004-06-17 17:16:53Z phk $
35 * $FreeBSD: head/sys/sys/acct.h 169857 2007-05-22 06:51:38Z dds $
36 */
37
38#ifndef _SYS_ACCT_H_
39#define _SYS_ACCT_H_
40
36 */
37
38#ifndef _SYS_ACCT_H_
39#define _SYS_ACCT_H_
40
41#ifdef _KERNEL
42#define float uint32_t
43#endif
44
45#define AC_COMM_LEN 16
46
41/*
47/*
42 * Accounting structures; these use a comp_t type which is a 3 bits base 8
43 * exponent, 13 bit fraction ``floating point'' number. Units are 1/AHZ
44 * seconds.
48 * Accounting structure version 2 (current).
49 * The first byte is always zero.
50 * Time units are microseconds.
45 */
51 */
46typedef u_int16_t comp_t;
47
52
48#define AC_COMM_LEN 16
49struct acct {
53struct acctv2 {
54 uint8_t ac_zero; /* zero identifies new version */
55 uint8_t ac_version; /* record version number */
56 uint16_t ac_len; /* record length */
57
50 char ac_comm[AC_COMM_LEN]; /* command name */
58 char ac_comm[AC_COMM_LEN]; /* command name */
51 comp_t ac_utime; /* user time */
52 comp_t ac_stime; /* system time */
53 comp_t ac_etime; /* elapsed time */
59 float ac_utime; /* user time */
60 float ac_stime; /* system time */
61 float ac_etime; /* elapsed time */
54 time_t ac_btime; /* starting time */
55 uid_t ac_uid; /* user id */
56 gid_t ac_gid; /* group id */
62 time_t ac_btime; /* starting time */
63 uid_t ac_uid; /* user id */
64 gid_t ac_gid; /* group id */
57 u_int16_t ac_mem; /* average memory usage */
58 comp_t ac_io; /* count of IO blocks */
65 float ac_mem; /* average memory usage */
66 float ac_io; /* count of IO blocks */
59 __dev_t ac_tty; /* controlling tty */
60
67 __dev_t ac_tty; /* controlling tty */
68
69 uint16_t ac_len2; /* record length */
70 union {
71 __dev_t ac_align; /* force v1 compatible alignment */
72
61#define AFORK 0x01 /* forked but not exec'ed */
62/* ASU is no longer supported */
63#define ASU 0x02 /* used super-user permissions */
64#define ACOMPAT 0x04 /* used compatibility mode */
65#define ACORE 0x08 /* dumped core */
66#define AXSIG 0x10 /* killed by a signal */
73#define AFORK 0x01 /* forked but not exec'ed */
74/* ASU is no longer supported */
75#define ASU 0x02 /* used super-user permissions */
76#define ACOMPAT 0x04 /* used compatibility mode */
77#define ACORE 0x08 /* dumped core */
78#define AXSIG 0x10 /* killed by a signal */
67 u_int8_t ac_flag; /* accounting flags */
79#define ANVER 0x20 /* new record version */
80
81 uint8_t ac_flag; /* accounting flags */
82 } ac_trailer;
83
84#define ac_flagx ac_trailer.ac_flag
68};
69
85};
86
87
70/*
88/*
71 * 1/AHZ is the granularity of the data encoded in the comp_t fields.
89 * Legacy accounting structure (rev. 1.5-1.18).
90 * The first byte is always non-zero.
91 * Some fields use a comp_t type which is a 3 bits base 8
92 * exponent, 13 bit fraction ``floating point'' number.
93 * Units are 1/AHZV1 seconds.
94 */
95
96typedef uint16_t comp_t;
97
98struct acctv1 {
99 char ac_comm[AC_COMM_LEN]; /* command name */
100 comp_t ac_utime; /* user time */
101 comp_t ac_stime; /* system time */
102 comp_t ac_etime; /* elapsed time */
103 time_t ac_btime; /* starting time */
104 uid_t ac_uid; /* user id */
105 gid_t ac_gid; /* group id */
106 uint16_t ac_mem; /* average memory usage */
107 comp_t ac_io; /* count of IO blocks */
108 __dev_t ac_tty; /* controlling tty */
109 uint8_t ac_flag; /* accounting flags */
110};
111
112/*
113 * 1/AHZV1 is the granularity of the data encoded in the comp_t fields.
72 * This is not necessarily equal to hz.
73 */
114 * This is not necessarily equal to hz.
115 */
74#define AHZ 64
116#define AHZV1 64
75
76#ifdef _KERNEL
77struct thread;
78
79int acct_process(struct thread *td);
117
118#ifdef _KERNEL
119struct thread;
120
121int acct_process(struct thread *td);
122#undef float
80#endif
81
82#endif /* !_SYS_ACCT_H_ */
123#endif
124
125#endif /* !_SYS_ACCT_H_ */