X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/39236c6e673c41db228275375ab7fdb0f837b292..813fb2f63a553c957e917ede5f119b021d6ce391:/osfmk/kern/machine.h diff --git a/osfmk/kern/machine.h b/osfmk/kern/machine.h index fcdd78f20..37d69bf88 100644 --- a/osfmk/kern/machine.h +++ b/osfmk/kern/machine.h @@ -92,9 +92,18 @@ extern void machine_idle(void); extern void machine_track_platform_idle(boolean_t); +/* Signals a processor to bring it out of idle */ extern void machine_signal_idle( processor_t processor); +/* Signals a processor to bring it out of idle unless canceled */ +extern void machine_signal_idle_deferred( + processor_t processor); + +/* Cancels an outstanding machine_signal_idle_deferred, if this is supported */ +extern void machine_signal_idle_cancel( + processor_t processor); + extern void halt_cpu(void); extern void halt_all_cpus( @@ -114,4 +123,29 @@ extern void machine_callstack( extern void consider_machine_collect(void); +/* + * Machine-dependent routine to inform platform layer and external + * CPU power management about context switches + */ + +extern void machine_thread_going_on_core(thread_t new_thread, + int urgency, + uint64_t sched_latency, + uint64_t dispatch_time); + +extern void machine_thread_going_off_core(thread_t old_thread, boolean_t thread_terminating, uint64_t last_dispatch); + +extern void machine_max_runnable_latency(uint64_t bg_max_latency, + uint64_t default_max_latency, + uint64_t realtime_max_latency); + +extern void machine_work_interval_notify(thread_t thread, + uint64_t work_id, + uint64_t start_abstime, + uint64_t finish_abstime, + uint64_t deadline_abstime, + uint64_t next_start_abstime, + uint16_t urgency, + uint32_t flags); + #endif /* _KERN_MACHINE_H_ */