xref: /xnu-12377.1.9/tests/test_utils.h (revision f6217f891ac0bb64f3d375211650a4c1ff8ca1ea)
1*f6217f89SApple OSS Distributions #ifndef XNU_DARWINTEST_UTILS_H
2*f6217f89SApple OSS Distributions #define XNU_DARWINTEST_UTILS_H
3*f6217f89SApple OSS Distributions 
4*f6217f89SApple OSS Distributions #include <stdbool.h>
5*f6217f89SApple OSS Distributions #include <sys/types.h>
6*f6217f89SApple OSS Distributions 
7*f6217f89SApple OSS Distributions /* Misc. utility functions for writing darwintests. */
8*f6217f89SApple OSS Distributions bool is_development_kernel(void);
9*f6217f89SApple OSS Distributions 
10*f6217f89SApple OSS Distributions /*
11*f6217f89SApple OSS Distributions  * Returns true if the process is translated according to sysctl.proc_translated.
12*f6217f89SApple OSS Distributions  * For example, Rosetta processes are translated processes.
13*f6217f89SApple OSS Distributions  */
14*f6217f89SApple OSS Distributions bool process_is_translated(void);
15*f6217f89SApple OSS Distributions 
16*f6217f89SApple OSS Distributions /* Launches the given helper variant as a managed process. */
17*f6217f89SApple OSS Distributions pid_t launch_background_helper(
18*f6217f89SApple OSS Distributions 	const char* variant,
19*f6217f89SApple OSS Distributions 	bool start_suspended,
20*f6217f89SApple OSS Distributions 	bool memorystatus_managed);
21*f6217f89SApple OSS Distributions /*
22*f6217f89SApple OSS Distributions  * Set the process's managed bit, so that the memorystatus subsystem treats
23*f6217f89SApple OSS Distributions  * this process like an app instead of a sysproc.
24*f6217f89SApple OSS Distributions  */
25*f6217f89SApple OSS Distributions void set_process_memorystatus_managed(pid_t pid);
26*f6217f89SApple OSS Distributions 
27*f6217f89SApple OSS Distributions #define XNU_T_META_SOC_SPECIFIC T_META_TAG("SoCSpecific")
28*f6217f89SApple OSS Distributions 
29*f6217f89SApple OSS Distributions #define XNU_T_META_REQUIRES_DEVELOPMENT_KERNEL T_META_REQUIRES_SYSCTL_EQ("kern.development", 1)
30*f6217f89SApple OSS Distributions #define XNU_T_META_REQUIRES_RELEASE_KERNEL T_META_REQUIRES_SYSCTL_EQ("kern.development", 0)
31*f6217f89SApple OSS Distributions 
32*f6217f89SApple OSS Distributions #endif /* XNU_DARWINTEST_UTILS_H */
33