diff options
Diffstat (limited to 'kernel/include/tss.h')
| -rw-r--r-- | kernel/include/tss.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/kernel/include/tss.h b/kernel/include/tss.h new file mode 100644 index 0000000..f1af6d6 --- /dev/null +++ b/kernel/include/tss.h @@ -0,0 +1,42 @@ +#ifndef TSS_H +#define TSS_H + +#include <types.h> + +struct tss_type { + uint32_t reserved1; + uint32_t rsp0_low; + uint32_t rsp0_high; + uint32_t rsp1_low; + uint32_t rsp1_high; + uint32_t rsp2_low; + uint32_t rsp2_high; + uint32_t reserved2; + uint32_t reserved3; + uint32_t ist1_low; + uint32_t ist1_high; + uint32_t ist2_low; + uint32_t ist2_high; + uint32_t ist3_low; + uint32_t ist3_high; + uint32_t ist4_low; + uint32_t ist4_high; + uint32_t ist5_low; + uint32_t ist5_high; + uint32_t ist6_low; + uint32_t ist6_high; + uint32_t ist7_low; + uint32_t ist7_high; + uint32_t reserved4; + uint32_t reserved5; + uint16_t reserved6; + uint16_t iopb; +} __attribute__((packed, aligned(4096))); +typedef struct tss_type tss_type; + +extern tss_type tss; + +void load_tss(void); +void init_tss(void); + +#endif |
