machine_routines.h [plain text]
#ifndef _I386_MACHINE_ROUTINES_H_
#define _I386_MACHINE_ROUTINES_H_
#include <mach/mach_types.h>
#include <mach/boolean.h>
#include <kern/kern_types.h>
#include <pexpert/pexpert.h>
#include <sys/appleapiopts.h>
boolean_t ml_get_interrupts_enabled(void);
boolean_t ml_set_interrupts_enabled(boolean_t enable);
boolean_t ml_at_interrupt_context(void);
void ml_cause_interrupt(void);
void ml_get_timebase(unsigned long long *timestamp);
typedef void (*ipi_handler_t)(void);
kern_return_t ml_processor_register(
cpu_id_t cpu_id,
vm_offset_t start_paddr,
processor_t *processor,
ipi_handler_t *ipi_handler,
boolean_t boot_cpu);
void ml_install_interrupt_handler(
void *nub,
int source,
void *target,
IOInterruptHandler handler,
void *refCon);
#ifdef __APPLE_API_UNSTABLE
vm_offset_t
ml_static_ptovirt(
vm_offset_t);
void ml_static_mfree(
vm_offset_t,
vm_size_t);
vm_offset_t ml_vtophys(
vm_offset_t vaddr);
#endif
#ifdef __APPLE_API_PRIVATE
#if defined(PEXPERT_KERNEL_PRIVATE) || defined(MACH_KERNEL_PRIVATE)
vm_offset_t ml_io_map(
vm_offset_t phys_addr,
vm_size_t size);
vm_offset_t ml_static_malloc(
vm_size_t size);
#endif
#ifdef MACH_KERNEL_PRIVATE
#define machine_clock_assist()
void machine_idle(void);
void machine_signal_idle(
processor_t processor);
#endif
void ml_thread_policy(
thread_t thread,
unsigned policy_id,
unsigned policy_info);
#define MACHINE_GROUP 0x00000001
#define MACHINE_NETWORK_GROUP 0x10000000
#define MACHINE_NETWORK_WORKLOOP 0x00000001
#define MACHINE_NETWORK_NETISR 0x00000002
#endif
#endif