this repo has no description
1#ifndef __XPC_BOOTSTRAP_H__
2#define __XPC_BOOTSTRAP_H__
3
4#ifndef __XPC_INDIRECT__
5#define __XPC_INDIRECT__
6#endif // __XPC_INDIRECT__
7
8#if XPC_BUILDING_LAUNCHD
9// Temporary hack to resolve conflicting availability with launchd's existing
10// internal headers.
11#pragma GCC diagnostic ignored "-Wavailability"
12#endif // XPC_BUILDING_LAUNCHD
13
14#include <xpc/base.h>
15#include <Availability.h>
16
17// <rdar://problem/13536274>
18#include <AvailabilityMacros.h>
19
20__BEGIN_DECLS;
21
22#include <mach/std_types.h>
23#include <mach/message.h>
24#include <sys/types.h>
25#include <stdbool.h>
26
27#define BOOTSTRAP_MAX_NAME_LEN 128
28#define BOOTSTRAP_MAX_CMD_LEN 512
29
30typedef char name_t[BOOTSTRAP_MAX_NAME_LEN];
31typedef char cmd_t[BOOTSTRAP_MAX_CMD_LEN];
32typedef name_t *name_array_t;
33typedef int bootstrap_status_t;
34typedef bootstrap_status_t *bootstrap_status_array_t;
35typedef unsigned int bootstrap_property_t;
36typedef bootstrap_property_t * bootstrap_property_array_t;
37
38typedef boolean_t *bool_array_t;
39
40#define BOOTSTRAP_MAX_LOOKUP_COUNT 20
41
42#define BOOTSTRAP_SUCCESS 0
43#define BOOTSTRAP_NOT_PRIVILEGED 1100
44#define BOOTSTRAP_NAME_IN_USE 1101
45#define BOOTSTRAP_UNKNOWN_SERVICE 1102
46#define BOOTSTRAP_SERVICE_ACTIVE 1103
47#define BOOTSTRAP_BAD_COUNT 1104
48#define BOOTSTRAP_NO_MEMORY 1105
49#define BOOTSTRAP_NO_CHILDREN 1106
50
51#define BOOTSTRAP_STATUS_INACTIVE 0
52#define BOOTSTRAP_STATUS_ACTIVE 1
53#define BOOTSTRAP_STATUS_ON_DEMAND 2
54
55XPC_EXPORT
56mach_port_t bootstrap_port;
57
58__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_7_0)
59XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL5
60kern_return_t
61bootstrap_create_server(mach_port_t bp, cmd_t server_cmd, uid_t server_uid,
62 boolean_t on_demand, mach_port_t *server_port);
63
64__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_7_0)
65XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL3
66kern_return_t
67bootstrap_subset(mach_port_t bp, mach_port_t requestor_port,
68 mach_port_t *subset_port);
69
70__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_2_0, __IPHONE_7_0)
71XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL2
72kern_return_t
73bootstrap_unprivileged(mach_port_t bp, mach_port_t *unpriv_port);
74
75__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
76XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL2
77kern_return_t
78bootstrap_parent(mach_port_t bp, mach_port_t *parent_port);
79
80__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_2_0, __IPHONE_7_0)
81XPC_EXPORT XPC_WARN_RESULT
82kern_return_t
83bootstrap_register(mach_port_t bp, name_t service_name, mach_port_t sp);
84
85__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_2_0, __IPHONE_7_0)
86XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL3
87kern_return_t
88bootstrap_create_service(mach_port_t bp, name_t service_name, mach_port_t *sp);
89
90__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
91XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL3
92kern_return_t
93bootstrap_check_in(mach_port_t bp, const name_t service_name, mach_port_t *sp);
94
95// Once <rdar://problem/13542045> is fixed, we can add back in XPC_WARN_RESULT.
96__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
97XPC_EXPORT XPC_NONNULL3
98kern_return_t
99bootstrap_look_up(mach_port_t bp, const name_t service_name, mach_port_t *sp);
100
101__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_2_0, __IPHONE_7_0)
102XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL2
103kern_return_t
104bootstrap_status(mach_port_t bp, name_t service_name,
105 bootstrap_status_t *service_active);
106
107__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
108XPC_EXPORT XPC_WARN_RESULT
109const char *
110bootstrap_strerror(kern_return_t r);
111
112__END_DECLS;
113
114#endif // __XPC_BOOTSTRAP_H__