/* * (C) Copyright 2009 * Graeme Russ, graeme.russ@gmail.com * * (C) Copyright 2002 * Daniel Engström, Omicron Ceti AB, daniel@omicron.se * * SPDX-License-Identifier: GPL-2.0+ */ #ifndef __ASM_INTERRUPT_H_ #define __ASM_INTERRUPT_H_ 1 #include /* Architecture defined exceptions */ enum x86_exception { EXC_DE = 0, EXC_DB, EXC_NMI, EXC_BP, EXC_OF, EXC_BR, EXC_UD, EXC_NM, EXC_DF, EXC_CSO, EXC_TS, EXC_NP, EXC_SS, EXC_GP, EXC_PF, EXC_MF = 16, EXC_AC, EXC_MC, EXC_XM, EXC_VE }; /* arch/x86/cpu/interrupts.c */ void set_vector(u8 intnum, void *routine); /* Architecture specific functions */ void mask_irq(int irq); void unmask_irq(int irq); void specific_eoi(int irq); extern char exception_stack[]; /** * configure_irq_trigger() - Configure IRQ triggering * * Switch the given interrupt to be level / edge triggered * * @param int_num legacy interrupt number (3-7, 9-15) * @param is_level_triggered true for level triggered interrupt, false for * edge triggered interrupt */ void configure_irq_trigger(int int_num, bool is_level_triggered); void *x86_get_idt(void); #endif