diff --git a/sdk/xtdk/amd64/ketypes.h b/sdk/xtdk/amd64/ketypes.h index c177871..91097bc 100644 --- a/sdk/xtdk/amd64/ketypes.h +++ b/sdk/xtdk/amd64/ketypes.h @@ -13,6 +13,45 @@ #include +/* Selector masks */ +#define MODE_MASK 0x0001 +#define RPL_MASK 0x0003 + +/* GDT selector names */ +#define KGDT_NULL 0x0000 +#define KGDT_R0_CODE 0x0010 +#define KGDT_R0_DATA 0x0018 +#define KGDT_R3_CMCODE 0x0020 +#define KGDT_R3_DATA 0x0028 +#define KGDT_R3_CODE 0x0030 +#define KGDT_SYS_TSS 0x0040 +#define KGDT_R3_CMTEB 0x0050 +#define KGDT_R0_LDT 0x0060 + +/* 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) + +/* AMD64 Segment Types */ +#define AMD64_TASK_GATE 0x5 +#define AMD64_TSS 0x9 +#define AMD64_ACTIVE_TSS 0xB +#define AMD64_CALL_GATE 0xC +#define AMD64_INTERRUPT_GATE 0xE +#define AMD64_TRAP_GATE 0xF + /* Size of the exception area */ #define EXCEPTION_AREA_SIZE 64