X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/2d21ac55c334faf3a56e5634905ed6987fc787d4..eee3565979933af707c711411001ba11fe406a3c:/pexpert/i386/pe_interrupt.c diff --git a/pexpert/i386/pe_interrupt.c b/pexpert/i386/pe_interrupt.c index 61b306419..19b0e003f 100644 --- a/pexpert/i386/pe_interrupt.c +++ b/pexpert/i386/pe_interrupt.c @@ -28,15 +28,12 @@ #include #include #include -#include -#include - #if CONFIG_DTRACE && DEVELOPMENT #include #endif -void PE_incoming_interrupt(x86_saved_state_t *); +void PE_incoming_interrupt(int); struct i386_interrupt_handler { @@ -53,55 +50,25 @@ i386_interrupt_handler_t PE_interrupt_handler; void -PE_incoming_interrupt(x86_saved_state_t *state) +PE_incoming_interrupt(int interrupt) { i386_interrupt_handler_t *vector; - uint64_t rip; - int interrupt; - boolean_t user_mode = FALSE; - - if (is_saved_state64(state) == TRUE) { - x86_saved_state64_t *state64; - - state64 = saved_state64(state); - rip = state64->isf.rip; - interrupt = state64->isf.trapno; - user_mode = TRUE; - } else { - x86_saved_state32_t *state32; - - state32 = saved_state32(state); - if (state32->cs & 0x03) - user_mode = TRUE; - rip = state32->eip; - interrupt = state32->trapno; - } - - KERNEL_DEBUG_CONSTANT( - MACHDBG_CODE(DBG_MACH_EXCP_INTR, 0) | DBG_FUNC_START, - interrupt, (unsigned int)rip, user_mode, 0, 0); vector = &PE_interrupt_handler; #if CONFIG_DTRACE && DEVELOPMENT - DTRACE_INT5(interrupt_start, void *, vector->nub, int, 0, - void *, vector->target, IOInterruptHandler, vector->handler, - void *, vector->refCon); + DTRACE_INT5(interrupt_start, void *, vector->nub, int, 0, + void *, vector->target, IOInterruptHandler, vector->handler, + void *, vector->refCon); #endif - if (!lapic_interrupt(interrupt, state)) { - vector->handler(vector->target, NULL, vector->nub, interrupt); - } + vector->handler(vector->target, NULL, vector->nub, interrupt); #if CONFIG_DTRACE && DEVELOPMENT - DTRACE_INT5(interrupt_complete, void *, vector->nub, int, 0, - void *, vector->target, IOInterruptHandler, vector->handler, - void *, vector->refCon); + DTRACE_INT5(interrupt_complete, void *, vector->nub, int, 0, + void *, vector->target, IOInterruptHandler, vector->handler, + void *, vector->refCon); #endif - - KERNEL_DEBUG_CONSTANT( - MACHDBG_CODE(DBG_MACH_EXCP_INTR, 0) | DBG_FUNC_END, - 0, 0, 0, 0, 0); } void PE_install_interrupt_handler(void *nub,