|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1991 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: subsystem ! 28: #if KERNEL_USER ! 29: KernelUser ! 30: #endif ! 31: #if KERNEL_SERVER ! 32: KernelServer ! 33: #endif ! 34: mach_norma 555000; ! 35: #ifdef KERNEL_USER ! 36: userprefix r_; ! 37: #endif ! 38: ! 39: #include <mach/std_types.defs> ! 40: #include <mach/mach_types.defs> ! 41: ! 42: skip; ! 43: ! 44: /* ! 45: * Specify a node upon which children tasks will be created. ! 46: * This call exists only to allow testing with unmodified servers. ! 47: * Server developers should use norma_task_create instead. ! 48: */ ! 49: routine task_set_child_node( ! 50: target_task : task_t; ! 51: child_node : int); ! 52: ! 53: /* ! 54: * THIS CALL WILL BE ELIMINATED. ! 55: * Use norma_port_location_hint(,mach_task_self(),) instead. ! 56: */ ! 57: routine norma_node_self( ! 58: host : host_t; ! 59: out node : int); ! 60: ! 61: skip; ! 62: ! 63: skip; ! 64: ! 65: skip; ! 66: ! 67: /* ! 68: * (Used to be called task_create_remote.) ! 69: * Create a task on the given node, possibly inheriting memory. ! 70: * Same inheritance semantics as task_create, including inheritance ! 71: * of initial ports and emulation library. ! 72: * Setting child_node to node_self forces local task creation. ! 73: */ ! 74: routine norma_task_create( ! 75: target_task : task_t; ! 76: inherit_memory : boolean_t; ! 77: child_node : int; ! 78: out child_task : task_t); ! 79: ! 80: /* ! 81: * Get a given special port for a given node. ! 82: * Norma special ports are defined in norma_special_ports.h; ! 83: * examples include the master device port. ! 84: * There are a limited number of slots available for system servers. ! 85: * ! 86: * XXX MAX_SPECIAL_ID should be defined in norma_special_ports.h, ! 87: * XXX not just in norma/ipc_special.c! ! 88: * (MAX_SPECIAL_ID specifies total number of slots available) ! 89: */ ! 90: routine norma_get_special_port( ! 91: host_priv : host_priv_t; ! 92: node : int; ! 93: which : int; ! 94: out port : mach_port_t); ! 95: ! 96: /* ! 97: * Set a given special port for a given node. ! 98: * See norma_get_special_port. ! 99: */ ! 100: routine norma_set_special_port( ! 101: host_priv : host_priv_t; ! 102: which : int; ! 103: port : mach_port_t); ! 104: ! 105: skip; ! 106: ! 107: skip; ! 108: ! 109: skip; ! 110: ! 111: /* ! 112: * Return best guess of port's current location. ! 113: * Guaranteed to be a node where the port once was. ! 114: * Guaranteed to be accurate if port has never moved. ! 115: * Can be used to determine residence node for hosts, tasks, threads, etc. ! 116: */ ! 117: routine norma_port_location_hint( ! 118: task : task_t; ! 119: port : mach_port_t; ! 120: out node : int);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.