|
|
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,1988,1987 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: #ifndef _KERN_IPC_TT_H_ ! 54: #define _KERN_IPC_TT_H_ ! 55: ! 56: #include <mach/boolean.h> ! 57: #include <mach/port.h> ! 58: #include <vm/vm_kern.h> ! 59: #include <kern/kern_types.h> ! 60: #include <kern/ipc_kobject.h> ! 61: #include <ipc/ipc_space.h> ! 62: #include <ipc/ipc_table.h> ! 63: #include <ipc/ipc_port.h> ! 64: #include <ipc/ipc_right.h> ! 65: #include <ipc/ipc_entry.h> ! 66: #include <ipc/ipc_object.h> ! 67: ! 68: ! 69: /* Initialize a task's IPC state */ ! 70: extern void ipc_task_init( ! 71: task_t task, ! 72: task_t parent); ! 73: ! 74: /* Enable a task for IPC access */ ! 75: extern void ipc_task_enable( ! 76: task_t task); ! 77: ! 78: /* Disable IPC access to a task */ ! 79: extern void ipc_task_disable( ! 80: task_t task); ! 81: ! 82: /* Clean up and destroy a task's IPC state */ ! 83: extern void ipc_task_terminate( ! 84: task_t task); ! 85: ! 86: /* Initialize a thread's IPC state */ ! 87: extern void ipc_thread_init( ! 88: thread_t thread); ! 89: ! 90: /* Clean up and destroy a thread's IPC state */ ! 91: extern void ipc_thread_terminate( ! 92: thread_t thread); ! 93: ! 94: /* Return a send right for the task's user-visible self port */ ! 95: extern ipc_port_t retrieve_task_self_fast( ! 96: task_t task); ! 97: ! 98: /* Return a send right for the thread's user-visible self port */ ! 99: extern ipc_port_t retrieve_act_self_fast( ! 100: thread_act_t); ! 101: ! 102: /* Convert from a port to a task */ ! 103: extern task_t convert_port_to_task( ! 104: ipc_port_t port); ! 105: ! 106: /* Convert from a port entry port to a task */ ! 107: extern task_t convert_port_to_task( ! 108: ipc_port_t port); ! 109: ! 110: extern boolean_t ref_task_port_locked( ! 111: ipc_port_t port, task_t *ptask); ! 112: ! 113: /* Convert from a port to a space */ ! 114: extern ipc_space_t convert_port_to_space( ! 115: ipc_port_t port); ! 116: ! 117: extern boolean_t ref_space_port_locked( ! 118: ipc_port_t port, ipc_space_t *pspace); ! 119: ! 120: /* Convert from a port to a map */ ! 121: extern vm_map_t convert_port_to_map( ! 122: ipc_port_t port); ! 123: ! 124: /* Convert from a map entry port to a map */ ! 125: extern vm_map_t convert_port_entry_to_map( ! 126: ipc_port_t port); ! 127: ! 128: /* Convert from a port to a vm_object */ ! 129: extern vm_object_t convert_port_entry_to_object( ! 130: ipc_port_t port); ! 131: ! 132: /* Convert from a port to a upl_object */ ! 133: extern upl_t convert_port_to_upl( ! 134: ipc_port_t port); ! 135: ! 136: /* Convert from a port to a thread */ ! 137: extern thread_act_t convert_port_to_act( ! 138: ipc_port_t); ! 139: ! 140: extern boolean_t ref_act_port_locked( ! 141: ipc_port_t port, thread_act_t *pthr_act); ! 142: ! 143: /* Convert from a task to a port */ ! 144: extern ipc_port_t convert_task_to_port( ! 145: task_t task); ! 146: ! 147: /* Convert from a thread to a port */ ! 148: extern ipc_port_t convert_act_to_port( thread_act_t ); ! 149: ! 150: /* Deallocate a space ref produced by convert_port_to_space */ ! 151: extern void space_deallocate( ! 152: ipc_space_t space); ! 153: ! 154: /* Allocate a reply port */ ! 155: extern mach_port_name_t mach_reply_port(void); ! 156: ! 157: /* Initialize a thread_act's ipc mechanism */ ! 158: extern void ipc_thr_act_init(task_t, thread_act_t); ! 159: ! 160: /* Disable IPC access to a thread_act */ ! 161: extern void ipc_thr_act_disable(thread_act_t); ! 162: extern void ipc_thr_act_disable_act_locked(thread_act_t); ! 163: ! 164: /* Clean up and destroy a thread_act's IPC state */ ! 165: extern void ipc_thr_act_terminate(thread_act_t); ! 166: ! 167: #endif /* _KERN_IPC_TT_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.