43 |
# endif /* not __STDC__ */ |
# endif /* not __STDC__ */ |
44 |
#endif /* __P */ |
#endif /* __P */ |
45 |
|
|
46 |
|
/* This function initializes the rtmk runtime library. Must be called |
47 |
|
as the very first function before any other rtmk function can be used. */ |
48 |
|
extern void __rtmk_init __P ((void)); |
49 |
|
|
50 |
|
|
51 |
/* Tasks. */ |
/* Tasks. */ |
52 |
|
|
53 |
/* Return send right name to current task. */ |
/* Return send right name to current task. */ |
54 |
extern rtmk_port_t task_self __P ((void)); |
extern rtmk_port_t task_self __P ((void)); |
55 |
extern rtmk_port_t __task_self __P ((void)); |
extern rtmk_port_t __task_self __P ((void)); |
56 |
|
|
57 |
|
#define task_self() (__task_self_) |
58 |
|
#define __task_self() (__task_self_) |
59 |
|
|
60 |
|
/* Cache for above function. (to minimize syscalls). */ |
61 |
|
extern rtmk_port_t __task_self_; |
62 |
|
|
63 |
/* 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 |
64 |
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. */ |
127 |
|
|
128 |
/* Destroy PORT_NAME. Will make the port a zombie port, until all |
/* Destroy PORT_NAME. Will make the port a zombie port, until all |
129 |
user references are droped, and the port is deallocated. */ |
user references are droped, and the port is deallocated. */ |
130 |
extern kern_return_t port_destroy __P ((rtmk_port_t port_name)); |
extern kern_return_t port_destroy __P ((rtmk_port_t task_name, |
131 |
extern kern_return_t __port_destroy __P ((rtmk_port_t port_name)); |
rtmk_port_name_t port_name)); |
132 |
|
extern kern_return_t __port_destroy __P ((rtmk_port_t task_name, |
133 |
|
rtmk_port_name_t port_name)); |
134 |
|
|
135 |
/* Allocate a new port in TASK's IPC space. |
/* Allocate a new port in TASK's IPC space. |
136 |
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 |
146 |
extern kern_return_t __port_allocate_name (rtmk_port_t task, |
extern kern_return_t __port_allocate_name (rtmk_port_t task, |
147 |
rtmk_port_t port_name); |
rtmk_port_t port_name); |
148 |
|
|
149 |
|
/* Allocate a new port set. When created the port set does not |
150 |
|
contain any members. Return receive rights in PSETP. */ |
151 |
|
extern kern_return_t port_set_allocate __P ((rtmk_port_t task, |
152 |
|
rtmk_port_t *psetp)); |
153 |
|
extern kern_return_t __port_set_allocate __P ((rtmk_port_t task, |
154 |
|
rtmk_port_t *psetp)); |
155 |
|
|
156 |
|
/* Insert PORT into PORT_SET. If PORT_SET is NULL, we remove |
157 |
|
PORT from the port set it currently belongs to. */ |
158 |
|
extern kern_return_t port_move_member __P ((rtmk_port_t task, |
159 |
|
rtmk_port_t port, |
160 |
|
rtmk_port_t port_set)); |
161 |
|
extern kern_return_t __port_move_member __P ((rtmk_port_t task, |
162 |
|
rtmk_port_t port, |
163 |
|
rtmk_port_t port_set)); |
164 |
|
|
165 |
/* 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. */ |
166 |
extern kern_return_t port_rename __P ((rtmk_port_t task, |
extern kern_return_t port_rename __P ((rtmk_port_t task, |
167 |
rtmk_port_name_t old_name, |
rtmk_port_name_t old_name, |