1 #ifndef CPU_X86_LAPIC_H
2 #define CPU_X86_LAPIC_H
156 while (
CONFIG(X2APIC_ONLY) && i--)
165 #if !CONFIG(AP_IN_SIPI_WAIT)
static void cpu_relax(void)
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
static unsigned int cpuid_get_max_func(void)
static unsigned int cpuid_ebx(unsigned int op)
static struct cpuid_result cpuid_ext(int op, unsigned int ecx)
void __noreturn halt(void)
halt the system reliably
static __always_inline msr_t rdmsr(unsigned int index)
static __always_inline void wrmsr(unsigned int index, msr_t msr)
static __always_inline void lapic_update32(unsigned int reg, uint32_t mask, uint32_t or)
static __always_inline void x2apic_write(unsigned int reg, uint32_t v)
static __always_inline void stop_this_cpu(void)
static __always_inline void x2apic_send_ipi(uint32_t icrlow, uint32_t icrhi)
static __always_inline void xapic_write(unsigned int reg, uint32_t v)
static __always_inline unsigned int lapicid(void)
static __always_inline void lapic_send_ipi_others(uint32_t icrlow)
static __always_inline int lapic_busy(void)
static __always_inline int xapic_busy(void)
static __always_inline void lapic_write(unsigned int reg, uint32_t v)
static __always_inline void xapic_send_ipi(uint32_t icrlow, uint32_t icrhi)
static __always_inline uint32_t xapic_read(unsigned int reg)
static __always_inline uint32_t x2apic_read(unsigned int reg)
static __always_inline bool is_x2apic_mode(void)
void setup_lapic_interrupts(void)
static __always_inline void lapic_send_ipi_self(uint32_t icrlow)
static __always_inline unsigned int initial_lapicid(void)
static __always_inline uint32_t lapic_read(unsigned int reg)
static __always_inline void lapic_send_ipi(uint32_t icrlow, uint32_t apicid)
#define LAPIC_BASE_X2APIC_ENABLED
#define LAPIC_DEST_ALLBUT
#define X2APIC_MSR_BASE_ADDRESS
#define SET_LAPIC_DEST_FIELD(x)
#define X2APIC_MSR_ICR_ADDRESS
#define LAPIC_DEFAULT_BASE