]>
Commit | Line | Data |
---|---|---|
5b0a4722 A |
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 | ||
26 | subsystem protocol_vproc 400; | |
27 | ||
28 | #include <mach/std_types.defs> | |
29 | #include <mach/mach_types.defs> | |
30 | #include "launchd_mig_types.defs" | |
ef398931 A |
31 | import "vproc.h"; |
32 | import "vproc_priv.h"; | |
33 | import "vproc_internal.h"; | |
5b0a4722 A |
34 | |
35 | type mach_port_move_send_array_t = array[] of mach_port_move_send_t | |
36 | ctype: mach_port_array_t; | |
37 | ||
38 | ||
39 | userprefix vproc_mig_; | |
40 | serverprefix job_mig_; | |
41 | ||
42 | routine create_server( | |
43 | __bs_port : job_t; | |
44 | __server_cmd : cmd_t; | |
45 | __server_uid : uid_t; | |
46 | __on_demand : boolean_t; | |
47 | out __server_port : mach_port_make_send_t); | |
48 | ||
49 | routine reboot2( | |
50 | __bs_port : job_t; | |
51 | __flags : uint64_t); | |
52 | ||
53 | routine check_in( | |
54 | __bs_port : job_t; | |
55 | __service_name : name_t; | |
56 | out __service_port : mach_port_move_receive_t); | |
57 | ||
58 | routine register2( | |
59 | __bs_port : job_t; | |
60 | __service_name : name_t; | |
61 | __service_port : mach_port_t; | |
62 | __flags : uint64_t); | |
63 | ||
64 | routine look_up2( | |
65 | __bs_port : job_t; | |
66 | __service_name : name_t; | |
67 | out __service_port : mach_port_send_t; | |
68 | __target_pid : pid_t; | |
69 | __flags : uint64_t); | |
70 | ||
71 | routine send_signal( | |
72 | __bs_port : job_t; | |
73 | sreplyport __rport : mach_port_make_send_once_t; | |
74 | __label : name_t; | |
75 | __signal : integer_t); | |
76 | ||
77 | routine parent( | |
78 | __bs_port : job_t; | |
79 | out __parent_port : mach_port_send_t); | |
80 | ||
81 | routine post_fork_ping( | |
82 | __bs_port : job_t; | |
83 | __task_port : task_t); | |
84 | ||
85 | routine info( | |
86 | __bs_port : job_t; | |
87 | out __service_names : name_array_t, dealloc; | |
88 | out __service_active : bootstrap_status_array_t, dealloc); | |
89 | ||
90 | routine subset( | |
91 | __bs_port : job_t; | |
92 | __requestor_port: mach_port_t; | |
93 | out __subset_port : mach_port_make_send_t); | |
94 | ||
95 | routine create_service( | |
96 | __bs_port : job_t; | |
97 | __service_name : name_t; | |
98 | out __service_port : mach_port_t); | |
99 | ||
100 | routine take_subset( | |
101 | __bs_port : job_t; | |
102 | out __bs_reqport : mach_port_move_send_t; | |
103 | out __bs_rcvright : mach_port_move_receive_t; | |
104 | out __outdata : pointer_t, dealloc; | |
105 | out __service_ports : mach_port_move_send_array_t, dealloc); | |
106 | ||
107 | routine getsocket( | |
108 | __bs_port : job_t; | |
109 | out __sockpath : name_t); | |
110 | ||
111 | routine spawn( | |
112 | __bs_port : job_t; | |
113 | __indata : pointer_t; | |
114 | out __pid : pid_t; | |
115 | out __obsvr_port : mach_port_make_send_t); | |
116 | ||
117 | routine wait( | |
118 | __bs_port : job_t; | |
119 | sreplyport __rport : mach_port_make_send_once_t; | |
120 | out __waitval : integer_t); | |
121 | ||
122 | routine uncork_fork( | |
123 | __bs_port : job_t); | |
124 | ||
125 | routine swap_integer( | |
126 | __bs_port : job_t; | |
127 | __inkey : vproc_gsk_t; | |
128 | __outkey : vproc_gsk_t; | |
129 | __inval : int64_t; | |
130 | out __outval : int64_t); | |
131 | ||
132 | routine set_service_policy( | |
133 | __bs_port : job_t; | |
134 | __target_pid : pid_t; | |
135 | __flags : uint64_t; | |
136 | __service : name_t); | |
137 | ||
138 | routine log( | |
139 | __bs_port : job_t; | |
140 | __pri : integer_t; | |
141 | __err : integer_t; | |
142 | __msg : logmsg_t); | |
143 | ||
144 | routine lookup_per_user_context( | |
145 | __bs_port : job_t; | |
146 | __wu : uid_t; | |
147 | out __u_cont : mach_port_t); | |
148 | ||
149 | routine move_subset( | |
150 | __bs_port : job_t; | |
151 | __target_port : mach_port_t; | |
152 | __sessiontype : name_t); | |
153 | ||
154 | routine swap_complex( | |
155 | __bs_port : job_t; | |
156 | __inkey : vproc_gsk_t; | |
157 | __outkey : vproc_gsk_t; | |
158 | __inval : pointer_t; | |
159 | out __outval : pointer_t, dealloc); | |
160 | ||
161 | routine log_drain( | |
162 | __bs_port : job_t; | |
163 | sreplyport __rport : mach_port_make_send_once_t; | |
164 | out __outval : pointer_t, dealloc); | |
165 | ||
166 | routine log_forward( | |
167 | __bs_port : job_t; | |
168 | __inval : pointer_t); | |
f36da725 A |
169 | |
170 | routine embedded_kickstart( | |
171 | __bs_port : job_t; | |
172 | __label : name_t; | |
173 | out __pid : pid_t; | |
174 | out __name_port : mach_port_t); | |
175 | ||
176 | routine embedded_wait( | |
177 | __bs_port : job_t; | |
178 | __label : name_t; | |
179 | out __waitval : integer_t); |