xref: /xnu-12377.61.12/tests/test_utils.h (revision 4d495c6e23c53686cf65f45067f79024cf5dcee8) !
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