60 lines
1.5 KiB
C
60 lines
1.5 KiB
C
#ifndef _KeDef_h_
|
|
#define _KeDef_h_
|
|
// calling conventions
|
|
#define HYPKERNELAPI _cdecl
|
|
#define _OPTIONAL_
|
|
#define _IN_
|
|
#define _OUT_
|
|
|
|
// null pointer
|
|
#define NULL ((void*)0)
|
|
|
|
//Struct Naming:
|
|
//AAXXXXBB
|
|
//AA: Identifier
|
|
//BB: 32 or 64 bits
|
|
//XXXX: Name
|
|
|
|
typedef unsigned int ULONG32,*PULONG32;
|
|
typedef unsigned int DWORD,*PDWORD;
|
|
typedef unsigned long long QWORD,*PQWORD;
|
|
typedef unsigned long long ULONG64,*PULONG64;
|
|
typedef unsigned char ULONG8,*PULONG8;
|
|
typedef unsigned char BYTE,*PBYTE;
|
|
typedef unsigned short ULONG16,*PULONG16;
|
|
typedef void VOID,*PVOID;
|
|
typedef char CHAR,*PCHAR;
|
|
|
|
#define GDT_SELECTOR(Index,RPL) (((Index) << 3) + (RPL))
|
|
#define GDT_SELECTOR_DUMMY GDT_SELECTOR(0,0)
|
|
#define GDT_SELECTOR_GRAPH GDT_SELECTOR(1,0)
|
|
#define GDT_SELECTOR_CODE GDT_SELECTOR(2,0)
|
|
#define GDT_SELECTOR_DATA GDT_SELECTOR(3,0)
|
|
#define GDT_SELECTOR_USER_DATA GDT_SELECTOR(4,3)
|
|
#define GDT_SELECTOR_USER_CODE GDT_SELECTOR(5,3)
|
|
#define GDT_SELECTOR_LDT GDT_SELECTOR(6,0)
|
|
#define GDT_SELECTOR_TSS GDT_SELECTOR(7,0)
|
|
|
|
#define GDT_INDEX_DUMMY 0
|
|
#define GDT_INDEX_GRAPH 1
|
|
#define GDT_INDEX_CODE 2
|
|
#define GDT_INDEX_DATA 3
|
|
#define GDT_INDEX_USER_CODE 4
|
|
#define GDT_INDEX_USER_DATA 5
|
|
#define GDT_INDEX_LDT 6
|
|
#define GDT_INDEX_TSS 7
|
|
|
|
#define KeKernelPhysicalAddress 0x30000
|
|
#define KeLoaderPhysicalAddress 0x90000
|
|
#define KeBootPhysicalAddress 0x07c00
|
|
#define KePDEBase 0x100000
|
|
#define KePTEBase 0x101000
|
|
|
|
|
|
#define GDT_DESCRIPTOR_NUMBER 128
|
|
#define IDT_GATE_NUMBER 256
|
|
#define MAXIMUM_PROCESS_NUMBER 1
|
|
#define PROCESS_STACK_MAX_SIZE 1024
|
|
|
|
#endif
|