|
|
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: * @OSF_COPYRIGHT@
24: */
25: /*
26: * Mach Operating System
27: * Copyright (c) 1991,1990,1989 Carnegie Mellon University
28: * All Rights Reserved.
29: *
30: * Permission to use, copy, modify and distribute this software and its
31: * documentation is hereby granted, provided that both the copyright
32: * notice and this permission notice appear in all copies of the
33: * software, derivative works or modified versions, and any portions
34: * thereof, and that both notices appear in supporting documentation.
35: *
36: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
37: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
38: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
39: *
40: * Carnegie Mellon requests users of this software to return to
41: *
42: * Software Distribution Coordinator or [email protected]
43: * School of Computer Science
44: * Carnegie Mellon University
45: * Pittsburgh PA 15213-3890
46: *
47: * any improvements or extensions that they make and grant Carnegie Mellon
48: * the rights to redistribute these changes.
49: */
50: /*
51: */
52:
53: /*
54: * File: mach/mach_host.defs
55: *
56: * Abstract:
57: * Mach host operations support. Includes processor allocation and
58: * control.
59: */
60:
61: #ifdef MACH_KERNEL
62: #include <mach_prof.h>
63: #include <advisory_pageout.h>
64: #endif /* MACH_KERNEL */
65:
66: subsystem
67: #if KERNEL_SERVER
68: KernelServer
69: #endif /* KERNEL_SERVER */
70: mach_host 200;
71:
72: /*
73: * Basic types
74: */
75:
76: #include <mach/std_types.defs>
77: #include <mach/mach_types.defs>
78: #include <mach/clock_types.defs>
79: #include <mach_debug/mach_debug_types.defs>
80:
81: /*
82: * References to host objects are returned by:
83: * mach_host_self() - trap
84: */
85:
86: /*
87: * Return information about this host.
88: */
89: routine host_info(
90: host : host_t;
91: flavor : host_flavor_t;
92: out host_info_out : host_info_t, CountInOut);
93:
94: /*
95: * Get string describing current kernel version.
96: */
97: routine host_kernel_version(
98: host : host_t;
99: out kernel_version : kernel_version_t);
100:
101: /*
102: * Get host page size
103: */
104: routine host_page_size(
105: host : host_t;
106: out page_size : vm_size_t);
107:
108: /*
109: * Allow pagers to create named entries that point to un-mapped
110: * abstract memory object. The named entries are generally mappable
111: * and can be subsetted through the mach_make_memory_entry call
112: */
113: routine mach_memory_object_memory_entry(
114: host :host_t;
115: internal :boolean_t;
116: size :vm_size_t;
117: permission :vm_prot_t;
118: pager :memory_object_t;
119: out entry_handle :mach_port_move_send_t);
120:
121:
122: /*
123: * Get defined processor slots for host
124: */
125: routine host_processor_slots(
126: host : host_t;
127: out slots : processor_slot_t);
128:
129:
130: /*
131: * Return host node number.
132: */
133: routine host_node_self(
134: host : host_t;
135: out node : int);
136:
137: /*
138: * Get service port for a processor set.
139: * Available to all.
140: */
141: routine host_get_clock_service(
142: host : host_t;
143: clock_id : clock_id_t;
144: out clock_serv : clock_serv_t);
145:
146:
147: routine kmod_get_info(
148: host : host_t;
149: out modules : kmod_args_t);
150:
151: /*
152: * Returns information about the memory allocation zones.
153: * Supported in all kernels..
154: */
155: routine host_zone_info(
156: host : host_t;
157: out names : zone_name_array_t,
158: Dealloc;
159: out info : zone_info_array_t,
160: Dealloc);
161:
162: /*
163: * Returns information about the global VP table.
164: * Only supported in MACH_VM_DEBUG kernels,
165: * otherwise returns KERN_FAILURE.
166: */
167: routine host_virtual_physical_table_info(
168: host : host_t;
169: out info : hash_info_bucket_array_t,
170: Dealloc);
171:
172: /*
173: * Returns information about the global reverse hash table.
174: * This call is only valid on MACH_IPC_DEBUG kernels.
175: * Otherwise, KERN_FAILURE is returned.
176: */
177: routine host_ipc_hash_info(
178: host : host_t;
179: out info : hash_info_bucket_array_t,
180: Dealloc);
181:
182: /*
183: * JMM - These routines should be on the host_priv port. We need
184: * to verify the move before putting them there.
185: */
186: routine enable_bluebox(
187: host : host_t;
188: in TWI_TableStart : unsigned;
189: in Desc_TableStart : unsigned);
190:
191: routine disable_bluebox(
192: host : host_t);
193:
194: /*
195: * JMM - Keep processor_set related items at the end for easy
196: * removal.
197: */
198: /*
199: * Get default processor set for host.
200: */
201: routine processor_set_default(
202: host : host_t;
203: out default_set : processor_set_name_t);
204:
205: /*
206: * Create new processor set. Returns real port for manipulations,
207: * and name port for obtaining information.
208: */
209: routine processor_set_create(
210: host : host_t;
211: out new_set : processor_set_t;
212: out new_name : processor_set_name_t);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.