|
|
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) 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: * HISTORY ! 52: * $Log: mach_host.defs,v $ ! 53: * Revision 1.2.218.4 1999/03/16 17:05:39 wsanchez ! 54: * Substitute License ! 55: * ! 56: * Revision 1.2.218.3 1999/03/16 15:28:02 wsanchez ! 57: * Substitute copyright ! 58: * ! 59: * Revision 1.2.218.2 1999/03/16 10:37:38 umeshv ! 60: * Fixed errors in previous commit. ! 61: * ! 62: * Revision 1.2.218.1 1999/03/11 09:52:49 umeshv ! 63: * Added copyrights. ! 64: * ! 65: * Revision 1.2 1998/11/25 19:39:12 wsanchez ! 66: * Merged in PR-2288345 (mwatson: mach_host.defs id's offset by one) ! 67: * ! 68: * Revision 1.1.1.1.440.1 1998/11/24 19:30:54 mwatson ! 69: * Remove unused routine, now that -DNeXT is gone. ! 70: * ! 71: * Revision 1.1.1.1 1997/09/30 02:44:50 wsanchez ! 72: * Import of kernel from umeshv/kernel ! 73: * ! 74: * Revision 2.10 92/03/10 16:26:54 jsb ! 75: * From [email protected]: added host_get_boot_info. ! 76: * [92/01/08 15:01:12 jsb] ! 77: * ! 78: * Revision 2.9 92/02/19 16:07:19 elf ! 79: * Reenable thread_depress_abort. ! 80: * [92/01/20 rwd] ! 81: * ! 82: * Revision 2.8 92/01/03 20:21:13 dbg ! 83: * Add 'CountInOut' tag to routines returning variable-length ! 84: * inline arrays. Remove 'IsLong' tag from routines passing or ! 85: * returning variable-length arrays. Old routines left under ! 86: * 'xxx_' names. REMOVE THESE SOON! ! 87: * [91/11/26 dbg] ! 88: * ! 89: * Revision 2.7 91/07/31 17:53:39 dbg ! 90: * Add vm_wire and thread_wire. ! 91: * [91/07/30 17:10:17 dbg] ! 92: * ! 93: * Revision 2.6 91/05/14 16:54:32 mrt ! 94: * Correcting copyright ! 95: * ! 96: * Revision 2.5 91/02/05 17:33:20 mrt ! 97: * Changed to new Mach copyright ! 98: * [91/02/01 17:17:52 mrt] ! 99: * ! 100: * Revision 2.4 90/09/09 14:33:08 rpd ! 101: * Restored processor_set_create's out arguments. ! 102: * [90/08/30 rpd] ! 103: * ! 104: * Revision 2.3 90/08/07 18:00:21 rpd ! 105: * Removed thread_depress_abort. Changed host_processor_sets ! 106: * to use unprivileged ports. ! 107: * [90/08/06 rpd] ! 108: * ! 109: * Revision 2.2 90/06/02 14:58:17 rpd ! 110: * Created for new host/processor technology. ! 111: * [90/03/26 23:51:11 rpd] ! 112: * ! 113: * Remove KERNEL_SERVER define. Cleanup. ! 114: * [89/08/02 dlb] ! 115: * Add IsLong specifiers to variable length arguments to info calls. ! 116: * [89/08/02 dlb] ! 117: * Add thread_depress_abort. ! 118: * [89/06/20 dlb] ! 119: * ! 120: * Add processor_set_{tasks,threads}, host_processor_sets, ! 121: * host_processor_set_priv. ! 122: * [89/06/08 dlb] ! 123: * ! 124: * Add priority and policy calls. ! 125: * [89/05/12 dlb] ! 126: * ! 127: * Move type definitions to mach_types.defs, delete kernel keyword. ! 128: * [89/01/25 dlb] ! 129: * ! 130: * Moved to mach/ from kern/ ! 131: * [89/01/25 dlb] ! 132: * ! 133: * Split processor_set_default. Add task_assign_default and ! 134: * thread_assign_default. ! 135: * [88/12/21 dlb] ! 136: * ! 137: * Minor cleanups, add host_kernel_version. ! 138: * [88/12/02 dlb] ! 139: * ! 140: * Revision 2.4 89/12/22 15:54:26 rpd ! 141: * Under KERNEL_SERVER, pass the out arguments of ! 142: * processor_set_create as port_t's. They really are ! 143: * the appropriate processor set types, but processor_set_create ! 144: * does the type conversions internally. This isn't pretty. ! 145: * [89/12/15 dlb] ! 146: * ! 147: * Revision 2.3 89/10/15 02:05:40 rpd ! 148: * Minor cleanups. ! 149: * ! 150: * Revision 2.2 89/10/11 14:38:34 dlb ! 151: * Add IsLong specifiers to variable length arguments to info calls. ! 152: * Add thread_depress_abort. ! 153: * Add processor_set_{tasks,threads}, host_processor_sets, ! 154: * host_processor_set_priv. ! 155: * Add priority and policy calls. ! 156: * Split processor_set_default. Add task_assign_default and ! 157: * thread_assign_default. ! 158: * Add host_kernel_version. ! 159: * ! 160: * Revision 2.1 89/01/30 16:17:06 dlb ! 161: * Created. ! 162: * ! 163: */ ! 164: ! 165: /* ! 166: * File: mach/mach_host.defs ! 167: * ! 168: * Abstract: ! 169: * Mach host operations support. Includes processor allocation and ! 170: * control. ! 171: */ ! 172: ! 173: subsystem ! 174: #if KERNEL_SERVER && defined(MACH_IPC_FLAVOR) ! 175: KernelServer ! 176: #endif KERNEL_SERVER ! 177: mach_host 2600; ! 178: ! 179: /* ! 180: * Basic types ! 181: */ ! 182: ! 183: #include <mach/std_types.defs> ! 184: #include <mach/mach_types.defs> ! 185: ! 186: /* ! 187: * Get list of processors on this host. ! 188: */ ! 189: ! 190: routine host_processors( ! 191: host_priv : host_priv_t; ! 192: out processor_list : processor_array_t); ! 193: ! 194: /* ! 195: * Return information about this host. ! 196: */ ! 197: ! 198: routine host_info( ! 199: host : host_t; ! 200: flavor : int; ! 201: out host_info_out : host_info_t, IsLong); ! 202: ! 203: ! 204: /* ! 205: * Return information about this processor. ! 206: */ ! 207: routine processor_info( ! 208: processor : processor_t; ! 209: flavor : int; ! 210: out host : host_t; ! 211: out processor_info_out: processor_info_t, IsLong); ! 212: ! 213: /* ! 214: * Start processor. ! 215: */ ! 216: ! 217: routine processor_start( ! 218: processor : processor_t); ! 219: ! 220: /* ! 221: * Exit processor -- may not be restartable. ! 222: */ ! 223: ! 224: routine processor_exit( ! 225: processor : processor_t); ! 226: ! 227: /* ! 228: * Do something machine-dependent to processor. ! 229: */ ! 230: routine processor_control( ! 231: processor : processor_t; ! 232: processor_cmd : processor_info_t, IsLong); ! 233: ! 234: /* ! 235: * Get default processor set for host. ! 236: */ ! 237: routine processor_set_default( ! 238: host : host_t; ! 239: out default_set : processor_set_name_t); ! 240: ! 241: /* ! 242: * Create new processor set. Returns real port for manipulations, ! 243: * and name port for obtaining information. ! 244: */ ! 245: routine processor_set_create( ! 246: host : host_t; ! 247: out new_set : processor_set_t; ! 248: out new_name : processor_set_name_t); ! 249: ! 250: /* ! 251: * Destroy processor set. ! 252: */ ! 253: routine processor_set_destroy( ! 254: set : processor_set_t); ! 255: ! 256: /* ! 257: * Get information about processor set. ! 258: */ ! 259: routine processor_set_info( ! 260: set_name : processor_set_name_t; ! 261: flavor : int; ! 262: out host : host_t; ! 263: out info_out : processor_set_info_t, IsLong); ! 264: ! 265: /* ! 266: * Assign processor to processor set. ! 267: */ ! 268: routine processor_assign( ! 269: processor : processor_t; ! 270: new_set : processor_set_t; ! 271: wait : boolean_t); ! 272: ! 273: /* ! 274: * Get current assignment for processor. ! 275: */ ! 276: ! 277: routine processor_get_assignment( ! 278: processor : processor_t; ! 279: out assigned_set : processor_set_name_t); ! 280: ! 281: /* ! 282: * Assign thread to processor set. ! 283: */ ! 284: routine thread_assign( ! 285: thread : thread_t; ! 286: new_set : processor_set_t); ! 287: ! 288: /* ! 289: * Assign thread to default set. ! 290: */ ! 291: routine thread_assign_default( ! 292: thread : thread_t); ! 293: ! 294: /* ! 295: * Get current assignment for thread. ! 296: */ ! 297: routine thread_get_assignment( ! 298: thread : thread_t; ! 299: out assigned_set : processor_set_name_t); ! 300: ! 301: /* ! 302: * Assign task to processor set. ! 303: */ ! 304: routine task_assign( ! 305: task : task_t; ! 306: new_set : processor_set_t; ! 307: assign_threads : boolean_t); ! 308: /* ! 309: * Assign task to default set. ! 310: */ ! 311: routine task_assign_default( ! 312: task : task_t; ! 313: assign_threads : boolean_t); ! 314: ! 315: /* ! 316: * Get current assignment for task. ! 317: */ ! 318: routine task_get_assignment( ! 319: task : task_t; ! 320: out assigned_set : processor_set_name_t); ! 321: ! 322: /* ! 323: * Get string describing current kernel version. ! 324: */ ! 325: routine host_kernel_version( ! 326: host : host_t; ! 327: out kernel_version : kernel_version_t); ! 328: ! 329: /* ! 330: * Set priority for thread. ! 331: */ ! 332: routine thread_priority( ! 333: thread : thread_t; ! 334: priority : int; ! 335: set_max : boolean_t); ! 336: ! 337: /* ! 338: * Set max priority for thread. ! 339: */ ! 340: routine thread_max_priority( ! 341: thread : thread_t; ! 342: processor_set : processor_set_t; ! 343: max_priority : int); ! 344: ! 345: /* ! 346: * Set task priority. ! 347: */ ! 348: routine task_priority( ! 349: task : task_t; ! 350: priority : int; ! 351: change_threads : boolean_t); ! 352: ! 353: /* ! 354: * Set max priority for processor_set. ! 355: */ ! 356: routine processor_set_max_priority( ! 357: processor_set : processor_set_t; ! 358: max_priority : int; ! 359: change_threads : boolean_t); ! 360: ! 361: /* ! 362: * Set policy for thread ! 363: */ ! 364: routine thread_policy( ! 365: thread : thread_t; ! 366: policy : int; ! 367: data : int); ! 368: ! 369: /* ! 370: * Enable policy for processor set ! 371: */ ! 372: routine processor_set_policy_enable( ! 373: processor_set : processor_set_t; ! 374: policy : int); ! 375: ! 376: /* ! 377: * Disable policy for processor set ! 378: */ ! 379: routine processor_set_policy_disable( ! 380: processor_set : processor_set_t; ! 381: policy : int; ! 382: change_threads : boolean_t); ! 383: /* ! 384: * List all tasks in processor set. ! 385: */ ! 386: routine processor_set_tasks( ! 387: processor_set : processor_set_t; ! 388: out task_list : task_array_t); ! 389: ! 390: /* ! 391: * List all threads in processor set. ! 392: */ ! 393: routine processor_set_threads( ! 394: processor_set : processor_set_t; ! 395: out thread_list : thread_array_t); ! 396: ! 397: /* ! 398: * List all processor sets on host. ! 399: */ ! 400: routine host_processor_sets( ! 401: host : host_t; ! 402: out processor_sets : processor_set_name_array_t); ! 403: ! 404: /* ! 405: * Get control port for a processor set. ! 406: */ ! 407: routine host_processor_set_priv( ! 408: host_priv : host_priv_t; ! 409: set_name : processor_set_name_t; ! 410: out set : processor_set_t); ! 411: ! 412: routine thread_depress_abort( ! 413: thread : thread_t); ! 414: ! 415: skip; /* host_set_time */ ! 416: skip; /* host_adjust_time */ ! 417: skip; /* host_get_time */ ! 418: skip; /* host_reboot */ ! 419: ! 420: /* ! 421: ** Specify that the range of the virtual address space ! 422: ** of the target task must not cause page faults for ! 423: ** the indicated accesses. ! 424: ** ! 425: ** [ To unwire the pages, specify VM_PROT_NONE. ] ! 426: */ ! 427: routine vm_wire( ! 428: host_priv : host_priv_t; ! 429: task : vm_task_t; ! 430: address : vm_address_t; ! 431: size : vm_size_t; ! 432: acccess : vm_prot_t); ! 433: ! 434: skip; /* thread_wire */ ! 435: skip; /* host_info: MACH 3.0 */ ! 436: skip; /* processor_info: MACH 3.0 */ ! 437: skip; /* processor_set_info: MACH 3.0 */ ! 438: skip; /* processor_control: MACH 3.0 */ ! 439: skip; /* host_get_boot_info: MACH 3.0 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.