/ src / launchd / src / protocol_jobmgr.defs
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);