diff --git a/xtoskrnl/includes/amd64/asmsup.h b/xtoskrnl/includes/amd64/asmsup.h new file mode 100644 index 0000000..7e04ab6 --- /dev/null +++ b/xtoskrnl/includes/amd64/asmsup.h @@ -0,0 +1,64 @@ +/** + * PROJECT: ExectOS + * COPYRIGHT: See COPYING.md in the top level directory + * FILE: xtoskrnl/includes/amd64/asm.h + * DESCRIPTION: AMD64 architecture assembly definitions + * DEVELOPERS: Rafal Kupiec + */ + +#ifndef __XTOSKRNL_AMD64_ASMSUP_H +#define __XTOSKRNL_AMD64_ASMSUP_H + + +/* Control Register bit definitions */ +#define CR0_PG 0x80000000 +#define CR4_PGE 0x00000080 +#define CR4_LA57 0x00001000 +#define CR4_PCIDE 0x00020000 + +/* GDT selectors */ +#define GDT_R0_CMCODE 0x08 +#define GDT_R0_CODE 0x10 +#define GDT_R0_DATA 0x18 + +/* MSR registers */ +#define X86_MSR_EFER 0xC0000080 +#define X86_MSR_EFER_LME (1 << 8) + +/* KTRAP_FRAME structure offsets */ +#define TrapXmm0 0 +#define TrapXmm1 16 +#define TrapXmm2 32 +#define TrapXmm3 48 +#define TrapXmm4 64 +#define TrapXmm5 80 +#define TrapXmm6 96 +#define TrapXmm7 112 +#define TrapXmm8 128 +#define TrapXmm9 144 +#define TrapXmm10 160 +#define TrapXmm11 176 +#define TrapXmm12 192 +#define TrapXmm13 208 +#define TrapXmm14 224 +#define TrapXmm15 240 +#define TrapMxCsr 256 +#define TrapPreviousMode 260 +#define TrapCr2 264 +#define TrapCr3 272 +#define TrapDr0 280 +#define TrapDr1 288 +#define TrapDr2 296 +#define TrapDr3 304 +#define TrapDr6 312 +#define TrapDr7 320 +#define TrapSegDs 328 +#define TrapSegEs 330 +#define TrapSegFs 332 +#define TrapSegGs 334 + +/* KTRAP_FRAME length related definitions */ +#define TRAP_FRAME_SIZE 512 +#define TRAP_REGISTERS_SIZE 176 + +#endif /* __XTOSKRNL_AMD64_ASMSUP_H */ diff --git a/xtoskrnl/includes/i686/asmsup.h b/xtoskrnl/includes/i686/asmsup.h new file mode 100644 index 0000000..7eab0f5 --- /dev/null +++ b/xtoskrnl/includes/i686/asmsup.h @@ -0,0 +1,32 @@ +/** + * PROJECT: ExectOS + * COPYRIGHT: See COPYING.md in the top level directory + * FILE: xtoskrnl/includes/i686/asm.h + * DESCRIPTION: i686 architecture assembly definitions + * DEVELOPERS: Rafal Kupiec + */ + +#ifndef __XTOSKRNL_I686_ASMSUP_H +#define __XTOSKRNL_I686_ASMSUP_H + + +/* KTRAP_FRAME structure offsets */ +#define TrapPreviousMode 0 +#define TrapCr2 4 +#define TrapCr3 8 +#define TrapDr0 12 +#define TrapDr1 16 +#define TrapDr2 20 +#define TrapDr3 24 +#define TrapDr6 28 +#define TrapDr7 32 +#define TrapSegDs 36 +#define TrapSegEs 38 +#define TrapSegFs 40 +#define TrapSegGs 42 + +/* KTRAP_FRAME length related definitions */ +#define TRAP_FRAME_SIZE 100 +#define TRAP_REGISTERS_SIZE 56 + +#endif /* __XTOSKRNL_AMD64_ASMSUP_H */