1/* @title: TSS */
2#pragma once
3#include <stdint.h>
4
5struct __attribute__((aligned)) tss {
6 uint32_t reserved0;
7 uint64_t rsp0; // Stack pointer for ring 0
8 uint64_t rsp1; // Stack pointer for ring 1 (optional)
9 uint64_t rsp2; // Stack pointer for ring 2 (optional)
10 uint64_t reserved1;
11 uint64_t ist1; // Interrupt Stack Table entry 1
12 uint64_t ist2; // IST2
13 uint64_t ist3; // IST3
14 uint64_t ist4; // IST4
15 uint64_t ist5; // IST5
16 uint64_t ist6; // IST6
17 uint64_t ist7; // IST7
18 uint64_t reserved2;
19 uint16_t reserved3;
20 uint16_t io_map_base; // Offset to I/O permission bitmap
21} __packed;
22