xref: /xnu-12377.81.4/tests/sched/sched_test_harness/sched_edge_harness.h (revision 043036a2b3718f7f0be807e2870f8f47d3fa0796)
1 // Copyright (c) 2024 Apple Inc.  All rights reserved.
2 
3 #pragma once
4 
5 #include "sched_harness_impl.h"
6 #include "sched_clutch_harness.h"
7 /* To get sched_clutch_edge and cluster_shared_rsrc_type_t */
8 #include <kern/kern_types.h>
9 /* To get PSET_ID_INVALID */
10 #include <kern/sched_common.h>
11 
12 /* Edge trace codes */
13 extern const unsigned int EDGE_REBAL_RUNNABLE;
14 extern const unsigned int EDGE_REBAL_RUNNING;
15 extern const unsigned int EDGE_STEAL;
16 extern const unsigned int EDGE_SHOULD_YIELD;
17 
18 extern void edge_set_thread_shared_rsrc(test_thread_t thread, bool native_first);
19 
20 #pragma mark - Realtime
21 
22 extern void              sched_rt_config_set(uint8_t src, uint8_t dst, sched_clutch_edge edge);
23 extern sched_clutch_edge sched_rt_config_get(uint8_t src, uint8_t dst);
24 extern uint64_t          rt_deadline_add(uint64_t d, uint64_t e);
25 extern void              rt_pset_recompute_spill_order(int src_pset_id);
26 extern int               rt_pset_spill_search_order_at_offset(int src_pset_id, int offset);
27 extern void              sched_rt_spill_policy_set(unsigned policy);
28 extern void              sched_rt_steal_policy_set(unsigned policy);
29