|
|
1.1 root 1: /*
2: * Mach Operating System
3: * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
4: * All Rights Reserved.
5: *
6: * Permission to use, copy, modify and distribute this software and its
7: * documentation is hereby granted, provided that both the copyright
8: * notice and this permission notice appear in all copies of the
9: * software, derivative works or modified versions, and any portions
10: * thereof, and that both notices appear in supporting documentation.
11: *
12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15: *
16: * Carnegie Mellon requests users of this software to return to
17: *
18: * Software Distribution Coordinator or [email protected]
19: * School of Computer Science
20: * Carnegie Mellon University
21: * Pittsburgh PA 15213-3890
22: *
23: * any improvements or extensions that they make and grant Carnegie Mellon
24: * the rights to redistribute these changes.
25: */
26: /*
27: * Matchmaker definitions file for Mach kernel debugging interface.
28: */
29:
30: #ifdef MACH_KERNEL
31: #include <mach_ipc_debug.h>
32: #include <mach_vm_debug.h>
33: #include <mach_kdb.h>
34: #endif
35:
36: subsystem
37: #if KERNEL_SERVER
38: KernelServer
39: #endif /* KERNEL_SERVER */
40: mach_debug 3000;
41:
42: #include <mach/std_types.defs>
43: #include <mach/mach_types.defs>
44: #include <mach_debug/mach_debug_types.defs>
45:
46: skip; /* host_ipc_statistics */
47: skip; /* host_ipc_statistics_reset */
48: skip; /* host_callout_info */
49: skip; /* host_callout_statistics */
50: skip; /* host_callout_statistics_reset */
51:
52: /*
53: * Returns information about the memory allocation zones.
54: */
55: routine host_zone_info(
56: host : host_t;
57: out names : zone_name_array_t,
58: CountInOut, Dealloc;
59: out info : zone_info_array_t,
60: CountInOut, Dealloc);
61:
62: skip; /* host_ipc_bucket_info */
63:
64: #if !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG
65:
66: /*
67: * Returns the exact number of extant send rights
68: * for the given receive right.
69: */
70:
71: routine mach_port_get_srights(
72: task : ipc_space_t;
73: name : mach_port_name_t;
74: out srights : mach_port_rights_t);
75:
76: /*
77: * Returns information about the global reverse hash table.
78: */
79:
80: routine host_ipc_hash_info(
81: host : host_t;
82: out info : hash_info_bucket_array_t,
83: CountInOut, Dealloc);
84:
85: /*
86: * Returns information about the marequest hash table.
87: */
88:
89: routine host_ipc_marequest_info(
90: host : host_t;
91: out max_requests : unsigned;
92: out info : hash_info_bucket_array_t,
93: CountInOut, Dealloc);
94:
95: /*
96: * Returns information about an IPC space.
97: */
98:
99: routine mach_port_space_info(
100: task : ipc_space_t;
101: out info : ipc_info_space_t;
102: out table_info : ipc_info_name_array_t,
103: CountInOut, Dealloc;
104: out tree_info : ipc_info_tree_name_array_t,
105: CountInOut, Dealloc);
106:
107: /*
108: * Returns information about the dead-name requests
109: * registered with the named receive right.
110: */
111:
112: routine mach_port_dnrequest_info(
113: task : ipc_space_t;
114: name : mach_port_name_t;
115: out total : unsigned; /* total size of table */
116: out used : unsigned); /* amount used */
117:
118: #else /* !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG */
119: skip; /* mach_port_get_srights */
120: skip; /* host_ipc_hash_info */
121: skip; /* host_ipc_marequest_info */
122: skip; /* mach_port_space_info */
123: skip; /* mach_port_dnrequest_info */
124: #endif /* !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG */
125:
126: skip; /* mach_vm_region_info */
127: skip; /* vm_mapped_pages_info */
128:
129: /*
130: * Returns stack usage information:
131: * reserved Amount of stack space reserved for pcb.
132: * total Number of stacks.
133: * space Total VM space for stacks.
134: * resident Resident VM space for stacks.
135: * maxusage Maximum amount of stack used.
136: * maxstack Address in the kernel of the largest stack.
137: */
138:
139: routine host_stack_usage(
140: host : host_t;
141: out reserved : vm_size_t;
142: out total : unsigned;
143: out space : vm_size_t;
144: out resident : vm_size_t;
145: out maxusage : vm_size_t;
146: out maxstack : vm_offset_t);
147:
148: routine processor_set_stack_usage(
149: pset : processor_set_name_t;
150: out total : unsigned;
151: out space : vm_size_t;
152: out resident : vm_size_t;
153: out maxusage : vm_size_t;
154: out maxstack : vm_offset_t);
155:
156: #if !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG
157:
158: /*
159: * Returns information about the global VP table.
160: */
161:
162: routine host_virtual_physical_table_info(
163: host : host_t;
164: out info : hash_info_bucket_array_t,
165: CountInOut, Dealloc);
166:
167: #else /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */
168: skip; /* host_virtual_physical_table_info */
169: #endif /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */
170:
171: #if !defined(MACH_KDB) || MACH_KDB
172: /*
173: * Loads a symbol table for an external file into the kernel debugger.
174: * The symbol table data is an array of characters. It is assumed that
175: * the caller and the kernel debugger agree on its format.
176: */
177:
178: routine host_load_symbol_table(
179: host : host_priv_t;
180: task : task_t;
181: name : symtab_name_t;
182: symtab : pointer_t);
183:
184: #else /* !defined(MACH_KDB) || MACH_KDB */
185: skip; /* host_load_symbol_table */
186: #endif /* !defined(MACH_KDB) || MACH_KDB */
187:
188: #if !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG
189:
190: /*
191: * Return the type and address of the kernel object
192: * that the given send/receive right represents.
193: */
194:
195: routine mach_port_kernel_object(
196: task : ipc_space_t;
197: name : mach_port_name_t;
198: out object_type : unsigned;
199: out object_addr : vm_offset_t);
200:
201: #else /* !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG */
202: skip; /* mach_port_kernel_object */
203: #endif /* !defined(MACH_IPC_DEBUG) || MACH_IPC_DEBUG */
204:
205: #if !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG
206:
207: /*
208: * Returns information about a region of memory.
209: */
210:
211: routine mach_vm_region_info(
212: task : vm_task_t;
213: address : vm_address_t;
214: out region : vm_region_info_t;
215: /* avoid out-translation of the argument */
216: out object : memory_object_name_t =
217: MACH_MSG_TYPE_MOVE_SEND
218: ctype: mach_port_t);
219:
220: routine mach_vm_object_info(
221: object : memory_object_name_t;
222: out info : vm_object_info_t;
223: /* avoid out-translation of the argument */
224: out shadow : memory_object_name_t =
225: MACH_MSG_TYPE_MOVE_SEND
226: ctype: mach_port_t;
227: /* avoid out-translation of the argument */
228: out copy : memory_object_name_t =
229: MACH_MSG_TYPE_MOVE_SEND
230: ctype: mach_port_t);
231:
232: routine mach_vm_object_pages(
233: object : memory_object_name_t;
234: out pages : vm_page_info_array_t,
235: CountInOut, Dealloc);
236:
237: #else /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */
238: skip; /* mach_vm_region_info */
239: skip; /* mach_vm_object_info */
240: skip; /* mach_vm_object_pages */
241: #endif /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.