| /* | |
| * (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 <asm/types.h> | |
| #define SYS_NUM_IRQS 16 | |
| /* 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 |