xref: /aosp_15_r20/external/cronet/base/ios/sim_header_shims.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2023 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_IOS_SIM_HEADER_SHIMS_H_
6*6777b538SAndroid Build Coastguard Worker #define BASE_IOS_SIM_HEADER_SHIMS_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include "build/blink_buildflags.h"
9*6777b538SAndroid Build Coastguard Worker 
10*6777b538SAndroid Build Coastguard Worker #if !BUILDFLAG(USE_BLINK)
11*6777b538SAndroid Build Coastguard Worker #error File can only be included when USE_BLINK is true
12*6777b538SAndroid Build Coastguard Worker #endif
13*6777b538SAndroid Build Coastguard Worker 
14*6777b538SAndroid Build Coastguard Worker #include <mach/kern_return.h>
15*6777b538SAndroid Build Coastguard Worker #include <mach/message.h>
16*6777b538SAndroid Build Coastguard Worker #include <stdint.h>
17*6777b538SAndroid Build Coastguard Worker #include <sys/param.h>
18*6777b538SAndroid Build Coastguard Worker 
19*6777b538SAndroid Build Coastguard Worker // This file includes the necessary headers that are not part of the
20*6777b538SAndroid Build Coastguard Worker // iOS public SDK in order to support multiprocess and memory instrumentations
21*6777b538SAndroid Build Coastguard Worker // on iOS.
22*6777b538SAndroid Build Coastguard Worker 
23*6777b538SAndroid Build Coastguard Worker __BEGIN_DECLS
24*6777b538SAndroid Build Coastguard Worker 
25*6777b538SAndroid Build Coastguard Worker #define BOOTSTRAP_MAX_NAME_LEN 128
26*6777b538SAndroid Build Coastguard Worker typedef char name_t[BOOTSTRAP_MAX_NAME_LEN];
27*6777b538SAndroid Build Coastguard Worker kern_return_t bootstrap_check_in(mach_port_t bp,
28*6777b538SAndroid Build Coastguard Worker                                  const name_t service_name,
29*6777b538SAndroid Build Coastguard Worker                                  mach_port_t* sp);
30*6777b538SAndroid Build Coastguard Worker kern_return_t bootstrap_look_up(mach_port_t bp,
31*6777b538SAndroid Build Coastguard Worker                                 const name_t service_name,
32*6777b538SAndroid Build Coastguard Worker                                 mach_port_t* sp);
33*6777b538SAndroid Build Coastguard Worker pid_t audit_token_to_pid(audit_token_t atoken);
34*6777b538SAndroid Build Coastguard Worker 
35*6777b538SAndroid Build Coastguard Worker const char* bootstrap_strerror(kern_return_t r);
36*6777b538SAndroid Build Coastguard Worker #define BOOTSTRAP_SUCCESS 0
37*6777b538SAndroid Build Coastguard Worker #define BOOTSTRAP_NOT_PRIVILEGED 1100
38*6777b538SAndroid Build Coastguard Worker #define BOOTSTRAP_NAME_IN_USE 1101
39*6777b538SAndroid Build Coastguard Worker #define BOOTSTRAP_UNKNOWN_SERVICE 1102
40*6777b538SAndroid Build Coastguard Worker #define BOOTSTRAP_SERVICE_ACTIVE 1103
41*6777b538SAndroid Build Coastguard Worker #define BOOTSTRAP_BAD_COUNT 1104
42*6777b538SAndroid Build Coastguard Worker #define BOOTSTRAP_NO_MEMORY 1105
43*6777b538SAndroid Build Coastguard Worker #define BOOTSTRAP_NO_CHILDREN 1106
44*6777b538SAndroid Build Coastguard Worker 
45*6777b538SAndroid Build Coastguard Worker // These values are copied from darwin-xnu/osfmk/mach/shared_region.h.
46*6777b538SAndroid Build Coastguard Worker // https://github.com/apple/darwin-xnu/blob/8f02f2a044b9bb1ad951987ef5bab20ec9486310/osfmk/mach/shared_region.h#L86-L87
47*6777b538SAndroid Build Coastguard Worker #define SHARED_REGION_BASE_ARM64 0x180000000ULL
48*6777b538SAndroid Build Coastguard Worker #define SHARED_REGION_SIZE_ARM64 0x100000000ULL
49*6777b538SAndroid Build Coastguard Worker 
50*6777b538SAndroid Build Coastguard Worker int proc_pidinfo(int pid,
51*6777b538SAndroid Build Coastguard Worker                  int flavor,
52*6777b538SAndroid Build Coastguard Worker                  uint64_t arg,
53*6777b538SAndroid Build Coastguard Worker                  void* buffer,
54*6777b538SAndroid Build Coastguard Worker                  int buffersize);
55*6777b538SAndroid Build Coastguard Worker int proc_pidpath(int pid, void* buffer, uint32_t buffersize);
56*6777b538SAndroid Build Coastguard Worker int proc_regionfilename(int pid,
57*6777b538SAndroid Build Coastguard Worker                         uint64_t address,
58*6777b538SAndroid Build Coastguard Worker                         void* buffer,
59*6777b538SAndroid Build Coastguard Worker                         uint32_t buffersize);
60*6777b538SAndroid Build Coastguard Worker 
61*6777b538SAndroid Build Coastguard Worker #define PROC_PIDPATHINFO_MAXSIZE (4 * MAXPATHLEN)
62*6777b538SAndroid Build Coastguard Worker 
63*6777b538SAndroid Build Coastguard Worker // These values are copied from xnu/xnu-4570.1.46/bsd/sys/proc_info.h.
64*6777b538SAndroid Build Coastguard Worker // https://opensource.apple.com/source/xnu/xnu-4570.1.46/bsd/sys/proc_info.h#L697-L710
65*6777b538SAndroid Build Coastguard Worker struct proc_fdinfo {
66*6777b538SAndroid Build Coastguard Worker   int32_t proc_fd;
67*6777b538SAndroid Build Coastguard Worker   uint32_t proc_fdtype;
68*6777b538SAndroid Build Coastguard Worker };
69*6777b538SAndroid Build Coastguard Worker #define PROC_PIDLISTFDS 1
70*6777b538SAndroid Build Coastguard Worker #define PROC_PIDLISTFD_SIZE (sizeof(struct proc_fdinfo))
71*6777b538SAndroid Build Coastguard Worker 
72*6777b538SAndroid Build Coastguard Worker __END_DECLS
73*6777b538SAndroid Build Coastguard Worker 
74*6777b538SAndroid Build Coastguard Worker #endif  // BASE_IOS_SIM_HEADER_SHIMS_H_
75