|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1991,1990,1989,1988,1987 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: #ifndef _MACH_SYSCALL_SW_H_ ! 28: #define _MACH_SYSCALL_SW_H_ ! 29: ! 30: /* ! 31: * The machine-dependent "syscall_sw.h" file should ! 32: * define a macro for ! 33: * kernel_trap(trap_name, trap_number, arg_count) ! 34: * which will expand into assembly code for the ! 35: * trap. ! 36: * ! 37: * N.B.: When adding calls, do not put spaces in the macros. ! 38: */ ! 39: ! 40: #include <mach/machine/syscall_sw.h> ! 41: ! 42: /* ! 43: * These trap numbers should be taken from the ! 44: * table in <kern/syscall_sw.c>. ! 45: */ ! 46: ! 47: kernel_trap(evc_wait,-17,1) ! 48: kernel_trap(evc_wait_clear,-18,1) ! 49: ! 50: kernel_trap(mach_msg_trap,-25,7) ! 51: kernel_trap(mach_reply_port,-26,0) ! 52: kernel_trap(mach_thread_self,-27,0) ! 53: kernel_trap(mach_task_self,-28,0) ! 54: kernel_trap(mach_host_self,-29,0) ! 55: ! 56: kernel_trap(swtch_pri,-59,1) ! 57: kernel_trap(swtch,-60,0) ! 58: kernel_trap(thread_switch,-61,3) ! 59: kernel_trap(nw_update,-80,3) ! 60: kernel_trap(nw_lookup,-81,2) ! 61: kernel_trap(nw_endpoint_allocate,-82,4) ! 62: kernel_trap(nw_endpoint_deallocate,-83,1) ! 63: kernel_trap(nw_buffer_allocate,-84,2) ! 64: kernel_trap(nw_buffer_deallocate,-85,2) ! 65: kernel_trap(nw_connection_open,-86,4) ! 66: kernel_trap(nw_connection_accept,-87,3) ! 67: kernel_trap(nw_connection_close,-88,1) ! 68: kernel_trap(nw_multicast_add,-89,4) ! 69: kernel_trap(nw_multicast_drop,-90,4) ! 70: kernel_trap(nw_endpoint_status,-91,3) ! 71: kernel_trap(nw_send,-92,3) ! 72: kernel_trap(nw_receive,-93,2) ! 73: kernel_trap(nw_rpc,-94,4) ! 74: kernel_trap(nw_select,-95,3) ! 75: ! 76: ! 77: /* ! 78: * These are syscall versions of Mach kernel calls. ! 79: * They only work on local tasks. ! 80: */ ! 81: ! 82: kernel_trap(syscall_vm_map,-64,11) ! 83: kernel_trap(syscall_vm_allocate,-65,4) ! 84: kernel_trap(syscall_vm_deallocate,-66,3) ! 85: ! 86: kernel_trap(syscall_task_create,-68,3) ! 87: kernel_trap(syscall_task_terminate,-69,1) ! 88: kernel_trap(syscall_task_suspend,-70,1) ! 89: kernel_trap(syscall_task_set_special_port,-71,3) ! 90: ! 91: kernel_trap(syscall_mach_port_allocate,-72,3) ! 92: kernel_trap(syscall_mach_port_deallocate,-73,2) ! 93: kernel_trap(syscall_mach_port_insert_right,-74,4) ! 94: kernel_trap(syscall_mach_port_allocate_name,-75,3) ! 95: kernel_trap(syscall_thread_depress_abort,-76,1) ! 96: ! 97: /* These are screwing up glibc somehow. */ ! 98: /*kernel_trap(syscall_device_writev_request,-39,6)*/ ! 99: /*kernel_trap(syscall_device_write_request,-40,6)*/ ! 100: ! 101: /* ! 102: * These "Mach" traps are not implemented by the kernel; ! 103: * the emulation library and Unix server implement them. ! 104: * But they are traditionally part of libmach, and use ! 105: * the Mach trap calling conventions and numbering. ! 106: */ ! 107: ! 108: #if UNIXOID_TRAPS ! 109: ! 110: kernel_trap(task_by_pid,-33,1) ! 111: kernel_trap(pid_by_task,-34,4) ! 112: kernel_trap(init_process,-41,0) ! 113: kernel_trap(map_fd,-43,5) ! 114: kernel_trap(rfs_make_symlink,-44,3) ! 115: kernel_trap(htg_syscall,-52,3) ! 116: kernel_trap(set_ras_address,-53,2) ! 117: ! 118: #endif /* UNIXOID_TRAPS */ ! 119: ! 120: /* Traps for the old IPC interface. */ ! 121: ! 122: #if MACH_IPC_COMPAT ! 123: ! 124: kernel_trap(task_self,-10,0) ! 125: kernel_trap(thread_reply,-11,0) ! 126: kernel_trap(task_notify,-12,0) ! 127: kernel_trap(thread_self,-13,0) ! 128: kernel_trap(msg_send_trap,-20,4) ! 129: kernel_trap(msg_receive_trap,-21,5) ! 130: kernel_trap(msg_rpc_trap,-22,6) ! 131: kernel_trap(host_self,-55,0) ! 132: ! 133: #endif /* MACH_IPC_COMPAT */ ! 134: ! 135: #ifdef FIPC ! 136: kernel_trap(fipc_send,-96,4) ! 137: kernel_trap(fipc_recv,-97,5) ! 138: #endif ! 139: ! 140: #endif /* _MACH_SYSCALL_SW_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.