From: Matthias Kruk Date: Wed, 25 Sep 2019 10:01:35 +0000 (+0900) Subject: Add definitions for the offsets into the TSS; change the TSS selector to 0x48 instead... X-Git-Url: https://git.corax.cc/?a=commitdiff_plain;h=86fccc74d320b8718ec4dc8ad875a405ff24bef6;p=corax Add definitions for the offsets into the TSS; change the TSS selector to 0x48 instead of (0x48 | RPL_USER) --- diff --git a/kernel/arch/defs.h b/kernel/arch/defs.h index c0a6f0e..0ddfc10 100644 --- a/kernel/arch/defs.h +++ b/kernel/arch/defs.h @@ -60,8 +60,30 @@ #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