diff --git a/Interrupts/linux-interrupts-1.md b/Interrupts/linux-interrupts-1.md index 411e7ee..4fbdca5 100644 --- a/Interrupts/linux-interrupts-1.md +++ b/Interrupts/linux-interrupts-1.md @@ -232,33 +232,21 @@ The `IST` or `Interrupt Stack Table` is a new mechanism in the `x86_64`. It is u The `Interrupt Descriptor Table` represented by the array of the `gate_desc` structures: ```C -extern gate_desc idt_table[]; +gate_desc idt_table[IDT_ENTRIES] __page_aligned_bss; ``` -where `gate_desc` is: +where `gate_struct` is defined as: ```C +struct gate_struct { + u16 offset_low; + u16 segment; + struct idt_bits bits; + u16 offset_middle; #ifdef CONFIG_X86_64 -... -... -... -typedef struct gate_struct64 gate_desc; -... -... -... + u32 offset_high; + u32 reserved; #endif -``` - -and `gate_struct64` defined as: - -```C -struct gate_struct64 { - u16 offset_low; - u16 segment; - unsigned ist : 3, zero0 : 5, type : 5, dpl : 2, p : 1; - u16 offset_middle; - u32 offset_high; - u32 zero1; } __attribute__((packed)); ```