7#define IDT_PRESENT 0x80
10#define IDT_RING_2 0x40
11#define IDT_RING_3 0x60
12#define IDT_INT_GATE 0x0E
13#define IDT_TRAP_GATE 0x0F
15#define IDT_KTRAP_GATE (IDT_PRESENT + IDT_RING_0 + IDT_TRAP_GATE)
16#define IDT_KINT_GATE (IDT_PRESENT + IDT_RING_0 + IDT_INT_GATE)
18#define IDT_ENTRY_CREATE(addr, selector, ist, flags) { \
20 (selector) & 0xffff, \
23 (addr) >> 16 & 0xffff, \
static void enable_interrupts()
Definition idt.h:82
static void disable_interrupts()
Definition idt.h:86
void cpu_idt_bind(void)
Definition idt.c:11
struct cpu_idt_iframe __attribute__
void cpu_idt_describe(char *buf, uint64_t bufsz)
Definition idt.c:33
unsigned short uint16_t
Definition stdint.h:5
unsigned int uint32_t
Definition stdint.h:6
unsigned long uint64_t
Definition stdint.h:7
unsigned char uint8_t
Definition stdint.h:4
uint16_t selector
Definition idt.h:31
uint8_t flags
Definition idt.h:33
uint8_t ist
Definition idt.h:32
uint16_t address_low
Definition idt.h:30
uint32_t address_high
Definition idt.h:35
uint16_t address_mid
Definition idt.h:34
uint32_t reserved
Definition idt.h:36
uint64_t rsp
Definition idt.h:51
uint64_t ss
Definition idt.h:52
uint64_t rflags
Definition idt.h:50
uint64_t cs
Definition idt.h:49
uint64_t rip
Definition idt.h:48
struct cpu_idt_iframe iframe
Definition idt.h:73
uint64_t vector
Definition idt.h:71
uint64_t rdi
Definition idt.h:66
uint64_t error_code
Definition idt.h:72
uint64_t rbx
Definition idt.h:69
uint64_t r15
Definition idt.h:57
uint64_t rdx
Definition idt.h:67
uint64_t rax
Definition idt.h:70
uint64_t rsi
Definition idt.h:65
uint64_t r12
Definition idt.h:60
uint64_t r8
Definition idt.h:64
uint64_t r10
Definition idt.h:62
uint64_t rcx
Definition idt.h:68
uint64_t r9
Definition idt.h:63
uint64_t r11
Definition idt.h:61
uint64_t r14
Definition idt.h:58
uint64_t r13
Definition idt.h:59
uint64_t base
Definition idt.h:42
uint16_t limit
Definition idt.h:41