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