|
|
1.1 root 1: /*
2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
7: * Reserved. This file contains Original Code and/or Modifications of
8: * Original Code as defined in and that are subject to the Apple Public
9: * Source License Version 1.1 (the "License"). You may not use this file
10: * except in compliance with the License. Please obtain a copy of the
11: * License at http://www.apple.com/publicsource and read it before using
12: * this file.
13: *
14: * The Original Code and all software distributed under the License are
15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
19: * License for the specific language governing rights and limitations
20: * under the License.
21: *
22: * @APPLE_LICENSE_HEADER_END@
23: */
24:
25: /*
26: * Mach Operating System
27: * Copyright (c) 1986 Carnegie-Mellon University
28: * All rights reserved. The CMU software License Agreement specifies
29: * the terms and conditions for use and redistribution.
30: */
31: /*
32: * HISTORY
33: * 27-Apr-97 A.Ramesh
34: * added limited set to Rhapsody
35: *
36: * 05-Sep-91 Doug Mitchell at NeXT
37: * Made entire contents PRIVATE.
38: *
39: *
40: */
41:
42: #ifdef KERNEL_PRIVATE
43:
44: #ifndef _SYS_TABLE_
45: #define _SYS_TABLE_
46:
47: #import <sys/dkstat.h>
48: #import <machine/table.h>
49:
50: #define TBL_LOADAVG 3 /* (no index) */
51: #define TBL_ARGUMENTS 6 /* index by process ID */
52: #define TBL_PROCINFO 10 /* index by proc table slot */
53: #define TBL_MACHFACTOR 11 /* index by cpu number */
54: #define TBL_CPUINFO 12 /* (no index), generic CPU info */
55:
56: /*
57: * Machine specific table id base
58: */
59: #define TBL_MACHDEP_BASE 0x4000 /* Machine dependent codes start here */
60:
61: /*
62: * Return codes from machine dependent calls
63: */
64: #define TBL_MACHDEP_NONE 0 /* Not handled by machdep code */
65: #define TBL_MACHDEP_OKAY 1 /* Handled by machdep code */
66: #define TBL_MACHDEP_BAD -1 /* Bad status from machdep code */
67:
68:
69:
70: /*
71: * TBL_LOADAVG data layout
72: * (used by TBL_MACHFACTOR too)
73: */
74: struct tbl_loadavg
75: {
76: long tl_avenrun[3];
77: int tl_lscale; /* 0 scale when floating point */
78: };
79:
80: /*
81: * TBL_PROCINFO data layout
82: */
83: #define PI_COMLEN 19 /* length of command string */
84: struct tbl_procinfo
85: {
86: int pi_uid; /* user ID */
87: int pi_pid; /* proc ID */
88: int pi_ppid; /* parent proc ID */
89: int pi_pgrp; /* proc group ID */
90: int pi_ttyd; /* controlling terminal number */
91: int pi_status; /* process status: */
92: #define PI_EMPTY 0 /* no process */
93: #define PI_ACTIVE 1 /* active process */
94: #define PI_EXITING 2 /* exiting */
95: #define PI_ZOMBIE 3 /* zombie */
96: int pi_flag; /* other random flags */
97: char pi_comm[PI_COMLEN+1];
98: /* short command name */
99: };
100:
101: /*
102: * TBL_CPUINFO data layout
103: */
104: struct tbl_cpuinfo
105: {
106: int ci_swtch; /* # context switches */
107: int ci_intr; /* # interrupts */
108: int ci_syscall; /* # system calls */
109: int ci_traps; /* # system traps */
110: int ci_hz; /* # ticks per second */
111: int ci_phz; /* profiling hz */
112: int ci_cptime[CPUSTATES]; /* cpu state times */
113: };
114:
115:
116:
117: #ifdef KERNEL
118: /*
119: * Machine specific procedure prototypes.
120: */
121: int machine_table(int id, int index, caddr_t addr, int nel, u_int lel, int set);
122: int machine_table_setokay(int id);
123: #endif /* KERNEL */
124:
125: #endif /* _SYS_TABLE_ */
126:
127: #endif /* KERNEL_PRIVATE */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.