40#define TSS_IST_EXCEPTION TSS_IST1
45#define TSS_IST_DOUBLE_FAULT TSS_IST2
50#define TSS_IST_INTERRUPT TSS_IST3
void tss_ist_load(tss_t *tss, tss_ist_t ist, stack_pointer_t *stack)
Load a stack into an IST entry.
void tss_init(tss_t *tss)
Initialize a TSS structure.
tss_ist_t
Interrupt Stack Table indices.
void tss_load(void)
Load the TSS.
#define PACKED
GCC packed attribute.
Structure to define a stack in memory.
Task State Segment structure.
uint64_t rsp1
Stack pointer to load when switching to ring 1, unused.
uint16_t iopb
Offset to the I/O permission bitmap, we set this to the size of the TSS to disable the bitmap.
uint64_t rsp0
Stack pointer to load when switching to ring 0, unused.
uint64_t rsp2
Stack pointer to load when switching to ring 2, unused.