xref: /trueos/lib/liblaunch/job.defs (revision 173913234eaf1f6529fe3f11c9ab0f45d9fb558e)
1/*
2 * Copyright (c) 1999-2004 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_APACHE_LICENSE_HEADER_START@
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 *     http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 * @APPLE_APACHE_LICENSE_HEADER_END@
19 */
20/*
21 * bootstrap -- fundamental service initiator and port server
22 * Mike DeMoney, NeXT, Inc.
23 * Copyright, 1990.  All rights reserved.
24 */
25
26subsystem job 400;
27
28#include <mach/std_types.defs>
29#include <mach/mach_types.defs>
30#include "job_types.defs"
31
32import "vproc.h";
33import "vproc_priv.h";
34import "vproc_internal.h";
35
36userprefix vproc_mig_;
37serverprefix job_mig_;
38
39routine
40create_server(
41				j			: job_t;
42				servercmd	: cmd_t;
43				serveruid	: uid_t;
44				ondemand	: boolean_t;
45out				serverport	: mach_port_make_send_t
46);
47
48routine
49reboot2(
50				j			: job_t;
51				flags		: uint64_t
52);
53
54routine
55check_in2(
56				j			: job_t;
57				servicename	: name_t;
58out				serviceport	: mach_port_move_receive_t;
59out				instanceid	: uuid_t;
60				flags		: uint64_t
61);
62
63routine
64register2(
65				j			: job_t;
66				servicename	: name_t;
67				serviceport	: mach_port_t;
68				flags		: uint64_t
69);
70
71routine
72look_up2(
73				j			: job_t;
74sreplyport		rp			: mach_port_make_send_once_t;
75				servicename	: name_t;
76out				serviceport	: mach_port_t;
77UserAuditToken	servercreds	: audit_token_t;
78				targetpid	: pid_t;
79				instanceid	: uuid_t;
80				flags		: uint64_t
81);
82
83routine
84send_signal(
85				j			: job_t;
86sreplyport		rp			: mach_port_make_send_once_t;
87				label		: name_t;
88				sig			: integer_t
89);
90
91routine
92parent(
93				j			: job_t;
94sreplyport		rp			: mach_port_make_send_once_t;
95out				parentport	: mach_port_make_send_t
96);
97
98routine
99post_fork_ping(
100				j			: job_t;
101				taskport	: task_t;
102out				asport		: mach_port_t
103);
104
105routine
106info(
107				j			: job_t;
108out				names		: name_array_t, dealloc;
109out				jobs		: name_array_t, dealloc;
110out				actives		: bootstrap_status_array_t, dealloc;
111				flags		: uint64_t
112);
113
114routine
115subset(
116				j			: job_t;
117				reqport		: mach_port_t;
118out				subsetport	: mach_port_make_send_t
119);
120
121skip; /* Formerly setup_shmem. */
122
123routine
124take_subset(
125				j			: job_t;
126out				reqport		: mach_port_move_send_t;
127out				recvport	: mach_port_move_receive_t;
128out				jobs		: pointer_t, dealloc;
129out				ports		: mach_port_move_send_array_t, dealloc
130);
131
132routine
133getsocket(
134				j			: job_t;
135out				sockpath	: name_t
136);
137
138skip; /* Formerly spawn. */
139
140skip; /* Formerly wait. */
141
142skip; /* Formerly uncork_fork. */
143
144routine
145swap_integer(
146				j			: job_t;
147				inkey		: vproc_gsk_t;
148				outkey		: vproc_gsk_t;
149				inval		: int64_t;
150out				outval		: int64_t
151);
152
153routine
154log(
155				j			: job_t;
156				pri			: integer_t;
157				err			: integer_t;
158				message		: logmsg_t
159);
160
161routine
162lookup_per_user_context(
163				j			: job_t;
164				uid			: uid_t;
165out				userbport	: mach_port_t
166);
167
168routine
169move_subset(
170				j			: job_t;
171				targetport	: mach_port_t;
172				session		: name_t;
173				asport		: mach_port_t;
174				flags		: uint64_t
175);
176
177routine
178swap_complex(
179				j			: job_t;
180				inkey		: vproc_gsk_t;
181				outkey		: vproc_gsk_t;
182				inval		: pointer_t;
183out				outval		: pointer_t, dealloc
184);
185
186routine
187log_drain(
188				j			: job_t;
189sreplyport		rp			: mach_port_make_send_once_t;
190out				outval		: pointer_t, dealloc
191);
192
193routine
194log_forward(
195				j			: job_t;
196				inval		: pointer_t
197);
198
199routine
200kickstart(
201				j			: job_t;
202				label		: name_t;
203out				pid			: pid_t;
204				flags		: natural_t
205);
206
207skip; /* Formerly embedded_wait. */
208
209routine
210lookup_children(
211				j			: job_t;
212out 			childports	: mach_port_move_send_array_t, dealloc;
213out				childnames	: name_array_t, dealloc;
214out				childprops	: bootstrap_property_array_t, dealloc
215);
216
217routine
218switch_to_session(
219				j			: job_t;
220				reqport		: mach_port_t;
221				session		: name_t;
222				asport		: mach_port_t;
223out				newbsport	: mach_port_make_send_t
224);
225
226skip; /* Formerly transaction_count_for_pid. */
227
228routine
229pid_is_managed(
230				j			: job_t;
231				pid			: pid_t;
232out				managed		: boolean_t
233);
234
235routine
236port_for_label(
237				j			: job_t;
238				label		: name_t;
239out				jport		: mach_port_make_send_t
240);
241
242routine
243init_session(
244				j			: job_t;
245				session		: name_t;
246				asport		: mach_port_t
247);
248
249routine
250set_security_session(
251				j			: job_t;
252				uuid		: uuid_t;
253				asport		: mach_port_t
254);
255
256skip; /* Formerly wait2. */
257
258skip; /* Formerly event_source_check_in. */
259
260skip; /* Formerly event_set_state. */
261
262routine
263spawn2(
264				j			: job_t;
265sreplyport		rp			: mach_port_make_send_once_t;
266				job			: pointer_t;
267				asport		: mach_port_t;
268out				outpid		: pid_t;
269out				obsrvport	: mach_port_move_receive_t
270);
271
272routine
273get_root_bootstrap(
274				j			: job_t;
275out				rootbs		: mach_port_move_send_t
276);
277
278#ifdef SHOW_LEGACY
279routine
280legacy_ipc_request(
281				j			: job_t;
282				request		: pointer_t;
283				request_fds	: mach_port_move_send_array_t;
284out				reply		: pointer_t, dealloc;
285out				reply_fds	: mach_port_move_send_array_t, dealloc;
286				asport		: mach_port_t
287);
288#endif
289
290routine
291get_listener_port_rights(
292				j			: job_t;
293out				sports		: mach_port_make_send_array_t, dealloc
294);
295
296routine
297register_gui_session(
298				j			: job_t;
299				asport		: mach_port_t
300);
301