#include <sys/cdefs.h>
#include <sys/appleapiopts.h>
+#include <stdarg.h>
+
__BEGIN_DECLS
#ifdef XNU_KERNEL_PRIVATE
void ml_entropy_collect(void);
-uint64_t ml_get_timebase();
+uint64_t ml_get_timebase(void);
void ml_init_lock_timeout(void);
void ml_init_delay_spin_threshold(int);
/* Warm up a CPU to receive an interrupt */
kern_return_t ml_interrupt_prewarm(uint64_t deadline);
+/* Check if the machine layer wants to intercept a panic call */
+boolean_t ml_wants_panic_trap_to_debugger(void);
+
+/* Machine layer routine for intercepting panics */
+void ml_panic_trap_to_debugger(const char *panic_format_str,
+ va_list *panic_args,
+ unsigned int reason,
+ void *ctx,
+ uint64_t panic_options_mask,
+ unsigned long panic_caller);
#endif /* XNU_KERNEL_PRIVATE */
#ifdef KERNEL_PRIVATE
/* Check if running at interrupt context */
boolean_t ml_at_interrupt_context(void);
+#ifdef XNU_KERNEL_PRIVATE
+extern boolean_t ml_is_quiescing(void);
+extern void ml_set_is_quiescing(boolean_t);
+extern uint64_t ml_get_booter_memory_size(void);
+#endif
+
/* Zero bytes starting at a physical address */
void bzero_phys(
addr64_t phys_address,
#ifdef XNU_KERNEL_PRIVATE
boolean_t ml_fpu_avx_enabled(void);
+#if !defined(RC_HIDE_XNU_J137)
+boolean_t ml_fpu_avx512_enabled(void);
+#endif
void interrupt_latency_tracker_setup(void);
void interrupt_reset_latency_stats(void);