48 |
|
|
49 |
/* Return send right name to current task. */ |
/* Return send right name to current task. */ |
50 |
extern rtmk_port_t task_self __P ((void)); |
extern rtmk_port_t task_self __P ((void)); |
51 |
|
extern rtmk_port_t __task_self __P ((void)); |
52 |
|
|
53 |
/* Create a child task to PARENT task. Send right to new task is returned in |
/* Create a child task to PARENT task. Send right to new task is returned in |
54 |
TASKP. If INHERIT_MEMORY_P is true, new task inherits parent's memory. */ |
TASKP. If INHERIT_MEMORY_P is true, new task inherits parent's memory. */ |
55 |
extern kern_return_t task_create __P ((rtmk_port_t parent, |
extern kern_return_t task_create __P ((rtmk_port_t parent, |
56 |
bool inherit_memory_p, |
bool inherit_memory_p, |
57 |
rtmk_port_t *taskp)); |
rtmk_port_t *taskp)); |
58 |
|
extern kern_return_t __task_create __P ((rtmk_port_t parent, |
59 |
|
bool inherit_memory_p, |
60 |
|
rtmk_port_t *taskp)); |
61 |
|
|
62 |
/* Terminate TASK. All resources held by TASK is destroyed. */ |
/* Terminate TASK. All resources held by TASK is destroyed. */ |
63 |
extern kern_return_t task_terminate __P ((rtmk_port_t task)); |
extern kern_return_t task_terminate __P ((rtmk_port_t task)); |
64 |
|
extern kern_return_t __task_terminate __P ((rtmk_port_t task)); |
65 |
|
|
66 |
|
|
67 |
/* Threads. */ |
/* Threads. */ |
68 |
|
|
69 |
/* Return send right name to current executing @param thread. */ |
/* Return send right name to current executing @param thread. */ |
70 |
extern rtmk_port_t thread_self __P ((void)); |
extern rtmk_port_t thread_self __P ((void)); |
71 |
|
extern rtmk_port_t __thread_self __P ((void)); |
72 |
|
|
73 |
/* Return receive right to newly allocated reply port. */ |
/* Return receive right to newly allocated reply port. */ |
74 |
extern rtmk_port_t thread_reply_port __P ((void)); |
extern rtmk_port_t thread_reply_port __P ((void)); |
75 |
|
extern rtmk_port_t __thread_reply_port __P ((void)); |
76 |
|
|
77 |
/* Create new thread in TASK's address and IPC space. On return, *THREADP |
/* Create new thread in TASK's address and IPC space. On return, *THREADP |
78 |
will hold send right to thread. */ |
will hold send right to thread. */ |
79 |
extern kern_return_t thread_create __P ((rtmk_port_t task, |
extern kern_return_t thread_create __P ((rtmk_port_t task, |
80 |
rtmk_port_t *threadp)); |
rtmk_port_t *threadp)); |
81 |
|
extern kern_return_t __thread_create __P ((rtmk_port_t task, |
82 |
|
rtmk_port_t *threadp)); |
83 |
|
|
84 |
/* Terminate THREAD. */ |
/* Terminate THREAD. */ |
85 |
extern kern_return_t thread_terminate __P ((rtmk_port_t thread)); |
extern kern_return_t thread_terminate __P ((rtmk_port_t thread)); |
86 |
|
extern kern_return_t __thread_terminate __P ((rtmk_port_t thread)); |
87 |
|
|
88 |
/* Suspend execution of THREAD, prevent it from running. When this is called, |
/* Suspend execution of THREAD, prevent it from running. When this is called, |
89 |
the thread is no longer running (if it was). */ |
the thread is no longer running (if it was). */ |
90 |
extern kern_return_t thread_suspend __P ((rtmk_port_t thread)); |
extern kern_return_t thread_suspend __P ((rtmk_port_t thread)); |
91 |
|
extern kern_return_t __thread_suspend __P ((rtmk_port_t thread)); |
92 |
|
|
93 |
/* Resume execution of THREAD, if its suspend count drops to zero. */ |
/* Resume execution of THREAD, if its suspend count drops to zero. */ |
94 |
extern kern_return_t thread_resume __P ((rtmk_port_t thread)); |
extern kern_return_t thread_resume __P ((rtmk_port_t thread)); |
95 |
|
extern kern_return_t __thread_resume __P ((rtmk_port_t thread)); |
96 |
|
|
97 |
|
|
98 |
/* IPC. */ |
/* IPC. */ |
99 |
|
|
100 |
/* Deallocate right to PORT_NAME. */ |
/* Deallocate right to PORT_NAME. */ |
101 |
extern kern_return_t port_deallocate __P ((rtmk_port_t port_name)); |
extern kern_return_t port_deallocate __P ((rtmk_port_t port_name)); |
102 |
|
extern kern_return_t __port_deallocate __P ((rtmk_port_t port_name)); |
103 |
|
|
104 |
/* Destroy PORT_NAME. Will make the port a zombie port, until all |
/* Destroy PORT_NAME. Will make the port a zombie port, until all |
105 |
user references are droped, and the port is deallocated. */ |
user references are droped, and the port is deallocated. */ |
106 |
extern kern_return_t port_destroy __P ((rtmk_port_t port_name)); |
extern kern_return_t port_destroy __P ((rtmk_port_t port_name)); |
107 |
|
extern kern_return_t __port_destroy __P ((rtmk_port_t port_name)); |
108 |
|
|
109 |
/* Allocate a new port in TASK's IPC space. |
/* Allocate a new port in TASK's IPC space. |
110 |
If the caller is not a thread within TASK, it will not own any rights |
If the caller is not a thread within TASK, it will not own any rights |
111 |
to the port. Port name is returned in PORTP. */ |
to the port. Port name is returned in PORTP. */ |
112 |
extern kern_return_t port_allocate __P ((rtmk_port_t task, |
extern kern_return_t port_allocate __P ((rtmk_port_t task, |
113 |
rtmk_port_t *portp)); |
rtmk_port_t *portp)); |
114 |
|
extern kern_return_t __port_allocate __P ((rtmk_port_t task, |
115 |
|
rtmk_port_t *portp)); |
116 |
|
|
117 |
/* Rename OLD_NAME right name to NEW_NAME in TASK's IPC space. */ |
/* Rename OLD_NAME right name to NEW_NAME in TASK's IPC space. */ |
118 |
extern kern_return_t port_rename __P ((rtmk_port_t task, |
extern kern_return_t port_rename __P ((rtmk_port_t task, |
119 |
rtmk_port_name_t old_name, |
rtmk_port_name_t old_name, |
120 |
rtmk_port_name_t new_name)); |
rtmk_port_name_t new_name)); |
121 |
|
extern kern_return_t __port_rename __P ((rtmk_port_t task, |
122 |
|
rtmk_port_name_t old_name, |
123 |
|
rtmk_port_name_t new_name)); |
124 |
|
|
125 |
/* Send message in HDR to send_name if OPTIONS has RTMK_MSG_OPTION_SEND set. |
/* Send message in HDR to send_name if OPTIONS has RTMK_MSG_OPTION_SEND set. |
126 |
Receive message from RECV_NAME if OPTIONS has RTMK_MSG_OPTION_RECEIVE set. |
Receive message from RECV_NAME if OPTIONS has RTMK_MSG_OPTION_RECEIVE set. |
133 |
rtmk_msg_size_t recv_size, |
rtmk_msg_size_t recv_size, |
134 |
rtmk_port_t recv_name, |
rtmk_port_t recv_name, |
135 |
rtmk_msg_timeout_t timeout)); |
rtmk_msg_timeout_t timeout)); |
136 |
|
extern kern_return_t __rtmk_msg_trap __P ((struct rtmk_msg_header *hdr, |
137 |
|
rtmk_msg_option_t options, |
138 |
|
rtmk_msg_size_t send_size, |
139 |
|
rtmk_port_t send_name, |
140 |
|
rtmk_msg_size_t recv_size, |
141 |
|
rtmk_port_t recv_name, |
142 |
|
rtmk_msg_timeout_t timeout)); |
143 |
|
|
144 |
/* Send message HDR to remote port specified in message header. |
/* Send message HDR to remote port specified in message header. |
145 |
If TIMEOUT is zero, we can block forever. */ |
If TIMEOUT is zero, we can block forever. */ |
146 |
extern kern_return_t msg_send __P ((struct rtmk_msg_header *hdr, |
extern kern_return_t msg_send __P ((struct rtmk_msg_header *hdr, |
147 |
rtmk_msg_timeout_t timeout)); |
rtmk_msg_timeout_t timeout)); |
148 |
|
extern kern_return_t __msg_send __P ((struct rtmk_msg_header *hdr, |
149 |
|
rtmk_msg_timeout_t timeout)); |
150 |
|
|
151 |
/* Receive message from local port specified in message header in HDR. |
/* Receive message from local port specified in message header in HDR. |
152 |
If TIMEOUT is zero, we can block forever. */ |
If TIMEOUT is zero, we can block forever. */ |
153 |
extern kern_return_t msg_receive __P ((struct rtmk_msg_header *hdr, |
extern kern_return_t msg_receive __P ((struct rtmk_msg_header *hdr, |
154 |
rtmk_msg_timeout_t timeout)); |
rtmk_msg_timeout_t timeout)); |
155 |
|
extern kern_return_t __msg_receive __P ((struct rtmk_msg_header *hdr, |
156 |
|
rtmk_msg_timeout_t timeout)); |
157 |
|
|
158 |
/* Perform a full RPC from information in HDR. RECV_SIZE is length of |
/* Perform a full RPC from information in HDR. RECV_SIZE is length of |
159 |
receive buffer. If TIMEOUT is zero, we can block forever. */ |
receive buffer. If TIMEOUT is zero, we can block forever. */ |
160 |
extern kern_return_t msg_rpc __P ((struct rtmk_msg_header *hdr, |
extern kern_return_t msg_rpc __P ((struct rtmk_msg_header *hdr, |
161 |
rtmk_msg_size_t recv_size, |
rtmk_msg_size_t recv_size, |
162 |
rtmk_msg_timeout_t timeout)); |
rtmk_msg_timeout_t timeout)); |
163 |
|
extern kern_return_t __msg_rpc __P ((struct rtmk_msg_header *hdr, |
164 |
|
rtmk_msg_size_t recv_size, |
165 |
|
rtmk_msg_timeout_t timeout)); |
166 |
|
|
167 |
/* Perform a full RPC with thread migration (the fast path). RECV_SIZE |
/* Perform a full RPC with thread migration (the fast path). RECV_SIZE |
168 |
is length of receive buffer. */ |
is length of receive buffer. */ |
169 |
extern kern_return_t msg_migrate __P ((struct rtmk_msg_header *hdr, |
extern kern_return_t msg_migrate __P ((struct rtmk_msg_header *hdr, |
170 |
rtmk_msg_size_t recv_size)); |
rtmk_msg_size_t recv_size)); |
171 |
|
extern kern_return_t __msg_migrate __P ((struct rtmk_msg_header *hdr, |
172 |
|
rtmk_msg_size_t recv_size)); |
173 |
|
|
174 |
|
|
175 |
/* VM. */ |
/* VM. */ |
179 |
*OFFSETP, otherwise choose available memory location. */ |
*OFFSETP, otherwise choose available memory location. */ |
180 |
extern kern_return_t vm_allocate __P ((rtmk_port_t task, vm_size_t size, |
extern kern_return_t vm_allocate __P ((rtmk_port_t task, vm_size_t size, |
181 |
vm_offset_t *offsetp, int anywhere_p)); |
vm_offset_t *offsetp, int anywhere_p)); |
182 |
|
extern kern_return_t __vm_allocate __P ((rtmk_port_t task, vm_size_t size, |
183 |
|
vm_offset_t *offsetp, int anywhere_p)); |
184 |
|
|
185 |
/* Deallocate memory object at OFFSET within TASK's address space. */ |
/* Deallocate memory object at OFFSET within TASK's address space. */ |
186 |
extern kern_return_t vm_deallocate __P ((rtmk_port_t task, vm_offset_t offset)); |
extern kern_return_t vm_deallocate __P ((rtmk_port_t task, vm_offset_t offset)); |
187 |
|
extern kern_return_t __vm_deallocate __P ((rtmk_port_t task, vm_offset_t offset)); |
188 |
|
|
189 |
|
/* Write into TASKs address space at offset DST_OFFSET, from current |
190 |
|
tasks address space at SRC_OFFSET. Copy LENGTH bytes. */ |
191 |
|
extern kern_return_t vm_write __P ((rtmk_port_t task, vm_offset_t dst_offset, |
192 |
|
vm_offset_t src_offset, vm_size_t length)); |
193 |
|
extern kern_return_t __vm_write __P ((rtmk_port_t task, vm_offset_t dst_offset, |
194 |
|
vm_offset_t src_offset, vm_size_t length)); |
195 |
|
|
196 |
|
|
197 |
/* Host. */ |
/* Host. */ |
198 |
|
|
199 |
/* Reboot host. HOST_PORT must be master host port. */ |
/* Reboot host. HOST_PORT must be master host port. */ |
200 |
extern kern_return_t host_reboot __P ((rtmk_port_t host_port)); |
extern kern_return_t host_reboot __P ((rtmk_port_t host_port)); |
201 |
|
extern kern_return_t __host_reboot __P ((rtmk_port_t host_port)); |
202 |
|
|
203 |
#ifdef __cplusplus |
#ifdef __cplusplus |
204 |
}; |
}; |