]> git.saurik.com Git - apple/launchd.git/blob - launchd/src/protocol_jobmgr.defs
launchd-258.18.tar.gz
[apple/launchd.git] / launchd / src / protocol_jobmgr.defs
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 bootstrap 400;
27
28 #include <mach/std_types.defs>
29 #include <mach/mach_types.defs>
30 #include "launchd_mig_types.defs"
31 import "bootstrap_public.h";
32 import "bootstrap_private.h";
33
34 userprefix vproc_mig_;
35 serverprefix job_mig_;
36
37 routine create_server(
38 __bs_port : job_t;
39 __server_cmd : cmd_t;
40 __server_uid : natural_t;
41 __on_demand : boolean_t;
42 ServerAuditToken __token : audit_token_t;
43 out __server_port : mach_port_make_send_t);
44
45 skip; /* Last used in 10.4. Was bootstrap_unprivileged() */
46
47 routine check_in(
48 __bs_port : job_t;
49 __service_name : name_t;
50 ServerAuditToken __token : audit_token_t;
51 out __service_port : mach_port_move_receive_t);
52
53 routine register(
54 __bs_port : job_t;
55 ServerAuditToken __token : audit_token_t;
56 __service_name : name_t;
57 __service_port : mach_port_t);
58
59 routine look_up(
60 __bs_port : job_t;
61 ServerAuditToken __token : audit_token_t;
62 __service_name : name_t;
63 out __service_port : mach_port_send_t);
64
65 skip; /* last used in 10.4 */
66
67 routine parent(
68 __bs_port : job_t;
69 out __parent_port : mach_port_send_t);
70
71 skip; /* last used in 10.4 */
72
73 routine info(
74 __bs_port : job_t;
75 out __service_names : name_array_t, dealloc;
76 out __service_active : bootstrap_status_array_t, dealloc);
77
78 routine subset(
79 __bs_port : job_t;
80 __requestor_port: mach_port_t;
81 out __subset_port : mach_port_make_send_t);
82
83 routine create_service(
84 __bs_port : job_t;
85 __service_name : name_t;
86 out __service_port : mach_port_t);
87
88 routine transfer_subset(
89 __bs_port : job_t;
90 out __bs_reqport : mach_port_t;
91 out __bs_rcvright : mach_port_move_receive_t;
92 out __service_names : name_array_t, dealloc;
93 out __service_pids : pointer_t, dealloc;
94 out __service_ports : mach_port_array_t, dealloc);
95
96 routine getsocket(
97 __bs_port : job_t;
98 out __sockpath : name_t);
99
100 routine spawn(
101 __bs_port : job_t;
102 ServerAuditToken __token : audit_token_t;
103 __chars : _internal_string_t;
104 __argc : uint32_t;
105 __envc : uint32_t;
106 __flags : uint64_t;
107 __umask : uint16_t;
108 out __pid : pid_t;
109 out __obsvr_port : mach_port_make_send_t);
110
111 routine wait(
112 __bs_port : job_t;
113 sreplyport __rport : mach_port_make_send_once_t;
114 ServerAuditToken __token : audit_token_t;
115 out __waitval : integer_t);
116
117 routine uncork_fork(
118 __bs_port : job_t;
119 ServerAuditToken __token : audit_token_t);
120
121 /* Essentially the inverse of bootstrap_unprivileged() */
122 routine get_self(
123 __bs_port : job_t;
124 ServerAuditToken __token : audit_token_t;
125 out __job_port : mach_port_make_send_t);