xref: /xnu-12377.81.4/tests/sched/sched_test_harness/shadow_headers/misc_needed_defines.h (revision 043036a2b3718f7f0be807e2870f8f47d3fa0796)
1 // Copyright (c) 2024 Apple Inc.  All rights reserved.
2 
3 #ifndef _MISC_NEEDED_DEFINES_H_
4 #define _MISC_NEEDED_DEFINES_H_
5 
6 #include <kern/bits.h>
7 
8 /*
9  * Include non-kernel header dependencies to make up for the equivalent kernel header
10  * dependencies which are not safe to compile in a userspace binary
11  */
12 #include <os/overflow.h>
13 #include <sys/types.h>
14 #include <os/atomic_private.h>
15 
16 /* Mock osfmk/kern/spl.h */
17 typedef int spl_t;
18 #define splsched() 0
19 #define splx(x) (void)x
20 
21 extern void panic(char *msg, ...);
22 
23 /* Mock osfmk/arm64/proc_reg.h */
24 #define MAX_PSETS 16
25 #define MAX_CPUS 64
26 
27 /* Dependencies from osfmk/mach/mach_types.h */
28 #include <mach/clock_types.h>
29 #include <mach/boolean.h>
30 #include <mach/kern_return.h>
31 #include <mach/thread_policy_private.h>
32 typedef struct task                     *task_t;
33 typedef struct thread                   *thread_t;
34 typedef struct processor                *processor_t;
35 typedef struct processor_set            *processor_set_t;
36 #define TASK_NULL               ((task_t) 0)
37 #define THREAD_NULL             ((thread_t) 0)
38 #define PROCESSOR_NULL          ((processor_t) 0)
39 #define PROCESSOR_SET_NULL      ((processor_set_t) 0)
40 
41 /* Defines from osfmk/kern/timer_call.h */
42 typedef void            *timer_call_param_t;
43 
44 /* Defines from osfmk/kern/kern_types.h */
45 typedef struct run_queue               *run_queue_t;
46 typedef struct pset_node                *pset_node_t;
47 #define PSET_NODE_NULL                  ((pset_node_t) 0)
48 
49 /* Defines from osfmk/arm/machine_routines.h */
50 typedef uint64_t sched_perfcontrol_preferred_cluster_options_t;
51 typedef enum {
52 	CLUSTER_TYPE_SMP = 0,
53 	CLUSTER_TYPE_E   = 1,
54 	CLUSTER_TYPE_P   = 2,
55 	MAX_CPU_TYPES,
56 } cluster_type_t;
57 #include <arm/cpu_topology.h>
58 #define MAX_AMP_CLUSTER_TYPES (MAX_PSET_TYPES - 1)
59 extern unsigned int ml_get_die_id(unsigned int cluster_id);
60 extern uint64_t ml_cpu_signal_deferred_get_timer(void);
61 extern unsigned int ml_get_cpu_number_type(cluster_type_t cluster_type, bool logical, bool available);
62 extern unsigned int ml_get_cluster_number_type(cluster_type_t cluster_type);
63 
64 extern struct ml_topology_info mock_topology_info;
65 #define ml_get_topology_info() (&mock_topology_info)
66 
67 /* Defines from osfmk/kern/thread.h */
68 #define assert_thread_magic(thread) do { (void)(thread); } while (0)
69 
70 /* Defines from osfmk/kern/startup.h */
71 #define TUNABLE(type_t, var, boot_arg, default_value) \
72     type_t var = default_value
73 
74 /* Defines from bsd/sys/kdebug_kernel.h */
75 #define __kdebug_only __unused
76 
77 extern processor_t master_processor;
78 
79 #define SECURITY_READ_ONLY_LATE(typ) typ
80 
81 #endif  /* _MISC_NEEDED_DEFINES_H_ */
82