1/* 2 * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * The contents of this file constitute Original Code as defined in and 7 * are subject to the Apple Public Source License Version 1.1 (the 8 * "License"). You may not use this file except in compliance with the 9 * License. Please obtain a copy of the License at 10 * http://www.apple.com/publicsource and read it before using this file. 11 * 12 * This Original Code and all software distributed under the License are 13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER 14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the 17 * License for the specific language governing rights and limitations 18 * under the License. 19 * 20 * @APPLE_LICENSE_HEADER_END@ 21 */ 22/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ 23/*- 24 * Copyright (c) 1990, 1993, 1994 25 * The Regents of the University of California. All rights reserved. 26 * (c) UNIX System Laboratories, Inc. 27 * All or some portions of this file are derived from material licensed 28 * to the University of California by American Telephone and Telegraph 29 * Co. or Unix System Laboratories, Inc. and are reproduced herein with 30 * the permission of UNIX System Laboratories, Inc. 31 * 32 * Redistribution and use in source and binary forms, with or without 33 * modification, are permitted provided that the following conditions 34 * are met: 35 * 1. Redistributions of source code must retain the above copyright 36 * notice, this list of conditions and the following disclaimer. 37 * 2. Redistributions in binary form must reproduce the above copyright 38 * notice, this list of conditions and the following disclaimer in the 39 * documentation and/or other materials provided with the distribution. 40 * 3. All advertising materials mentioning features or use of this software 41 * must display the following acknowledgement: 42 * This product includes software developed by the University of 43 * California, Berkeley and its contributors. 44 * 4. Neither the name of the University nor the names of its contributors 45 * may be used to endorse or promote products derived from this software 46 * without specific prior written permission. 47 * 48 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 49 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 50 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 51 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 52 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 53 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 54 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 55 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 56 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 57 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 58 * SUCH DAMAGE. 59 * 60 * @(#)acct.h 8.4 (Berkeley) 1/9/95 61 */ 62#ifndef _SYS_ACCT_H_ 63#define _SYS_ACCT_H_ 64 65#include <sys/appleapiopts.h> 66#include <sys/cdefs.h> 67/* 68 * Accounting structures; these use a comp_t type which is a 3 bits base 8 69 * exponent, 13 bit fraction ``floating point'' number. Units are 1/AHZ 70 * seconds. 71 */ 72typedef u_int16_t comp_t; 73 74struct acct { 75 char ac_comm[10]; /* command name */ 76 comp_t ac_utime; /* user time */ 77 comp_t ac_stime; /* system time */ 78 comp_t ac_etime; /* elapsed time */ 79 time_t ac_btime; /* starting time */ 80 uid_t ac_uid; /* user id */ 81 gid_t ac_gid; /* group id */ 82 u_int16_t ac_mem; /* average memory usage */ 83 comp_t ac_io; /* count of IO blocks */ 84 dev_t ac_tty; /* controlling tty */ 85 86#define AFORK 0x01 /* fork'd but not exec'd */ 87#define ASU 0x02 /* used super-user permissions */ 88#define ACOMPAT 0x04 /* used compatibility mode */ 89#define ACORE 0x08 /* dumped core */ 90#define AXSIG 0x10 /* killed by a signal */ 91 u_int8_t ac_flag; /* accounting flags */ 92}; 93 94/* 95 * 1/AHZ is the granularity of the data encoded in the comp_t fields. 96 * This is not necessarily equal to hz. 97 */ 98#define AHZ 64 99 100#ifdef KERNEL 101#ifdef __APPLE_API_PRIVATE 102extern struct vnode *acctp; 103 104__BEGIN_DECLS 105int acct_process(struct proc *p); 106__END_DECLS 107 108#endif /* __APPLE_API_PRIVATE */ 109#endif /* KERNEL */ 110 111#endif /* ! _SYS_ACCT_H_ */ 112

