#define LAPIC_CMCI_INTERRUPT 0x9
#define LAPIC_PMC_SW_INTERRUPT 0x8
#define LAPIC_PM_INTERRUPT 0x7
+#define LAPIC_KICK_INTERRUPT 0x6
#define LAPIC_PMC_SWI_VECTOR (LAPIC_DEFAULT_INTERRUPT_BASE + LAPIC_PMC_SW_INTERRUPT)
#define LAPIC_TIMER_VECTOR (LAPIC_DEFAULT_INTERRUPT_BASE + LAPIC_TIMER_INTERRUPT)
{
lapic_set_intr_func(LAPIC_VECTOR(TIMER), func);
}
+/* We don't support dynamic adjustment of the LAPIC timer base vector here
+ * it's effectively incompletely supported elsewhere as well.
+ */
+static inline void lapic_timer_swi(void) {
+ __asm__ __volatile__("int %0" :: "i"(LAPIC_DEFAULT_INTERRUPT_BASE + LAPIC_TIMER_INTERRUPT):"memory");
+}
static inline void lapic_set_thermal_func(i386_intr_func_t func)
{
extern void lapic_interrupt_counts(uint64_t intrs[256]);
extern void lapic_disable_timer(void);
+extern uint8_t lapic_get_cmci_vector(void);
+
#define MAX_LAPICIDS (LAPIC_ID_MAX+1)
#ifdef MP_DEBUG
#define LAPIC_CPU_MAP_DUMP() lapic_cpu_map_dump()