Add GDT and Segments related definitions for i686
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Rafal Kupiec 2023-01-25 17:13:24 +01:00
parent a366de618f
commit 7bd67d6210
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4

View File

@ -13,6 +13,48 @@
#include <xttypes.h>
/* 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