|
|
1.1 root 1: /*
2: * Copyright (c) 2000 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: /*
23: * Mach Operating System
24: * Copyright (c) 1986 Carnegie-Mellon University
25: * All rights reserved. The CMU software License Agreement specifies
26: * the terms and conditions for use and redistribution.
27: */
28: /*
29: * HISTORY
30: * 27-Apr-97 A.Ramesh
31: * added limited set to MacOSX
32: *
33: * 05-Sep-91 Doug Mitchell at NeXT
34: * Made entire contents PRIVATE.
35: *
36: *
37: */
38:
39: #ifdef KERNEL_PRIVATE
40:
41: #ifndef _SYS_TABLE_
42: #define _SYS_TABLE_
43:
44: #include <sys/dkstat.h>
45: #include <machine/table.h>
46:
47: #define TBL_LOADAVG 3 /* (no index) */
48: #define TBL_ARGUMENTS 6 /* index by process ID */
49: #define TBL_PROCINFO 10 /* index by proc table slot */
50: #define TBL_MACHFACTOR 11 /* index by cpu number */
51: #define TBL_CPUINFO 12 /* (no index), generic CPU info */
52:
53: /*
54: * Machine specific table id base
55: */
56: #define TBL_MACHDEP_BASE 0x4000 /* Machine dependent codes start here */
57:
58: /*
59: * Return codes from machine dependent calls
60: */
61: #define TBL_MACHDEP_NONE 0 /* Not handled by machdep code */
62: #define TBL_MACHDEP_OKAY 1 /* Handled by machdep code */
63: #define TBL_MACHDEP_BAD -1 /* Bad status from machdep code */
64:
65:
66:
67: /*
68: * TBL_LOADAVG data layout
69: * (used by TBL_MACHFACTOR too)
70: */
71: struct tbl_loadavg
72: {
73: long tl_avenrun[3];
74: int tl_lscale; /* 0 scale when floating point */
75: };
76:
77: /*
78: * TBL_PROCINFO data layout
79: */
80: #define PI_COMLEN 19 /* length of command string */
81: struct tbl_procinfo
82: {
83: int pi_uid; /* user ID */
84: int pi_pid; /* proc ID */
85: int pi_ppid; /* parent proc ID */
86: int pi_pgrp; /* proc group ID */
87: int pi_ttyd; /* controlling terminal number */
88: int pi_status; /* process status: */
89: #define PI_EMPTY 0 /* no process */
90: #define PI_ACTIVE 1 /* active process */
91: #define PI_EXITING 2 /* exiting */
92: #define PI_ZOMBIE 3 /* zombie */
93: int pi_flag; /* other random flags */
94: char pi_comm[PI_COMLEN+1];
95: /* short command name */
96: };
97:
98: /*
99: * TBL_CPUINFO data layout
100: */
101: struct tbl_cpuinfo
102: {
103: int ci_swtch; /* # context switches */
104: int ci_intr; /* # interrupts */
105: int ci_syscall; /* # system calls */
106: int ci_traps; /* # system traps */
107: int ci_hz; /* # ticks per second */
108: int ci_phz; /* profiling hz */
109: int ci_cptime[CPUSTATES]; /* cpu state times */
110: };
111:
112:
113:
114: #ifdef KERNEL
115: /*
116: * Machine specific procedure prototypes.
117: */
118: int machine_table(int id, int index, caddr_t addr, int nel, u_int lel, int set);
119: int machine_table_setokay(int id);
120: #endif /* KERNEL */
121:
122: #endif /* _SYS_TABLE_ */
123:
124: #endif /* KERNEL_PRIVATE */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.