From 6e9b3275d75e0cdbae1e8f7e4dda8880bb6346bc Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Sat, 3 Sep 2022 23:53:53 +0200 Subject: gdt & tss --- kernel/include/tss.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 kernel/include/tss.h (limited to 'kernel/include/tss.h') 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 + +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 -- cgit v1.2.3