1*4d495c6eSApple OSS Distributions #ifndef XNU_DARWINTEST_UTILS_H 2*4d495c6eSApple OSS Distributions #define XNU_DARWINTEST_UTILS_H 3*4d495c6eSApple OSS Distributions 4*4d495c6eSApple OSS Distributions #include <stdbool.h> 5*4d495c6eSApple OSS Distributions #include <sys/types.h> 6*4d495c6eSApple OSS Distributions 7*4d495c6eSApple OSS Distributions /* Misc. utility functions for writing darwintests. */ 8*4d495c6eSApple OSS Distributions bool is_development_kernel(void); 9*4d495c6eSApple OSS Distributions 10*4d495c6eSApple OSS Distributions /* Returns true if the Secure Page Table Monitor (SPTM) is present on the system. */ 11*4d495c6eSApple OSS Distributions bool is_sptm_enabled(void); 12*4d495c6eSApple OSS Distributions 13*4d495c6eSApple OSS Distributions /* Returns true if system-wide codesigning policy allows programs to use MAP_JIT with mmap(). */ 14*4d495c6eSApple OSS Distributions bool is_map_jit_allowed(void); 15*4d495c6eSApple OSS Distributions 16*4d495c6eSApple OSS Distributions /* 17*4d495c6eSApple OSS Distributions * Returns true if the process is translated according to sysctl.proc_translated. 18*4d495c6eSApple OSS Distributions * For example, Rosetta processes are translated processes. 19*4d495c6eSApple OSS Distributions */ 20*4d495c6eSApple OSS Distributions bool process_is_translated(void); 21*4d495c6eSApple OSS Distributions 22*4d495c6eSApple OSS Distributions /* Launches the given helper variant as a managed process. */ 23*4d495c6eSApple OSS Distributions pid_t launch_background_helper( 24*4d495c6eSApple OSS Distributions const char* variant, 25*4d495c6eSApple OSS Distributions bool start_suspended, 26*4d495c6eSApple OSS Distributions bool memorystatus_managed); 27*4d495c6eSApple OSS Distributions /* 28*4d495c6eSApple OSS Distributions * Set the process's managed bit, so that the memorystatus subsystem treats 29*4d495c6eSApple OSS Distributions * this process like an app instead of a sysproc. 30*4d495c6eSApple OSS Distributions */ 31*4d495c6eSApple OSS Distributions void set_process_memorystatus_managed(pid_t pid); 32*4d495c6eSApple OSS Distributions 33*4d495c6eSApple OSS Distributions #define XNU_T_META_SOC_SPECIFIC T_META_TAG("SoCSpecific") 34*4d495c6eSApple OSS Distributions 35*4d495c6eSApple OSS Distributions #define XNU_T_META_REQUIRES_DEVELOPMENT_KERNEL T_META_REQUIRES_SYSCTL_EQ("kern.development", 1) 36*4d495c6eSApple OSS Distributions #define XNU_T_META_REQUIRES_RELEASE_KERNEL T_META_REQUIRES_SYSCTL_EQ("kern.development", 0) 37*4d495c6eSApple OSS Distributions 38*4d495c6eSApple OSS Distributions #endif /* XNU_DARWINTEST_UTILS_H */ 39