diff --git a/sdk/xtdk/i686/ketypes.h b/sdk/xtdk/i686/ketypes.h index 5192f6f..1327d91 100644 --- a/sdk/xtdk/i686/ketypes.h +++ b/sdk/xtdk/i686/ketypes.h @@ -13,6 +13,48 @@ #include +/* Selector masks */ +#define MODE_MASK 0x0001 +#define RPL_MASK 0x0003 + +/* GDT selector names */ +#define KGDT_NULL 0x0000 +#define KGDT_R0_CODE 0x0008 +#define KGDT_R0_DATA 0x0010 +#define KGDT_R3_CODE 0x0018 +#define KGDT_R3_DATA 0x0020 +#define KGDT_SYS_TSS 0x0028 +#define KGDT_R0_PCR 0x0030 +#define KGDT_R3_TEB 0x0038 +#define KGDT_VDM_TILE 0x0040 +#define KGDT_R0_LDT 0x0048 +#define KGDT_DF_TSS 0x0050 +#define KGDT_NMI_TSS 0x0058 + +/* GDT descriptor privilege levels */ +#define KGDT_DPL_SYSTEM 0 +#define KGDT_DPL_USER 3 + +/* GDT descriptor properties */ +#define KGDT_DESCRIPTOR_ACCESSED 0x01 +#define KGDT_DESCRIPTOR_READ_WRITE 0x02 +#define KGDT_DESCRIPTOR_EXECUTE_READ 0x02 +#define KGDT_DESCRIPTOR_EXPAND_DOWN 0x04 +#define KGDT_DESCRIPTOR_CONFORMING 0x04 +#define KGDT_DESCRIPTOR_CODE 0x08 + +/* GDT descriptor type codes */ +#define KGDT_TYPE_CODE (0x10 | KGDT_DESCRIPTOR_CODE | KGDT_DESCRIPTOR_EXECUTE_READ) +#define KGDT_TYPE_DATA (0x10 | KGDT_DESCRIPTOR_READ_WRITE) + +/* I686 Segment Types */ +#define I686_TASK_GATE 0x5 +#define I686_TSS 0x9 +#define I686_ACTIVE_TSS 0xB +#define I686_CALL_GATE 0xC +#define I686_INTERRUPT_GATE 0xE +#define I686_TRAP_GATE 0xF + /* IOPM Definitions */ #define IOPM_COUNT 1 #define IOPM_SIZE 8192