]> git.corax.cc Git - corax/commitdiff
Add definitions for the offsets into the TSS; change the TSS selector to 0x48 instead...
authorMatthias Kruk <m@m10k.eu>
Wed, 25 Sep 2019 10:01:35 +0000 (19:01 +0900)
committerMatthias Kruk <m@m10k.eu>
Wed, 25 Sep 2019 10:01:35 +0000 (19:01 +0900)
kernel/arch/defs.h

index c0a6f0ef246a428d2217ee8625817076bac5b68e..0ddfc10277199a557fa751c8ac1a983ef0bdbd9c 100644 (file)
 #define TSS_OFFSET  (IDT_OFFSET + (IDT_ENTRIES * 8))
 #define TSS_SIZE    102
 
+#define OFFSET_TSS_ESP0 4
+#define OFFSET_TSS_SS0  8
+#define OFFSET_TSS_SS1  16
+#define OFFSET_TSS_SS2  24
+#define OFFSET_TSS_CS   76
+#define OFFSET_TSS_DS   84
+#define OFFSET_TSS_ES   72
+#define OFFSET_TSS_FS   88
+#define OFFSET_TSS_GS   92
+#define OFFSET_TSS_SS   80
+
+#define CPU_ESP0        (TSS_OFFSET + OFFSET_TSS_ESP0)
+#define CPU_SS0         (TSS_OFFSET + OFFSET_TSS_SS0)
+#define CPU_SS1         (TSS_OFFSET + OFFSET_TSS_SS1)
+#define CPU_SS2         (TSS_OFFSET + OFFSET_TSS_SS2)
+#define CPU_CS          (TSS_OFFSET + OFFSET_TSS_CS)
+#define CPU_DS          (TSS_OFFSET + OFFSET_TSS_DS)
+#define CPU_ES          (TSS_OFFSET + OFFSET_TSS_ES)
+#define CPU_FS          (TSS_OFFSET + OFFSET_TSS_FS)
+#define CPU_GS          (TSS_OFFSET + OFFSET_TSS_GS)
+#define CPU_SS          (TSS_OFFSET + OFFSET_TSS_SS)
+
 /* FIXME: Should this be RPL_USER for RPL_DRIVER / RPL_SYSTEM tasks? */
-#define TSS_SEL     (0x48 | RPL_USER)
+#define TSS_SEL         (0x48)
 
 #define CR0_PG_BIT      0x80000000
 #define CR4_PSE_BIT     0x00000010