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