diff --git a/CMakeLists.txt b/CMakeLists.txt index c396e51..de00b31 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,6 +55,9 @@ add_definitions(-D__XTOS__) add_definitions(-DXTOS_SOURCE_DIR="${EXECTOS_SOURCE_DIR}") add_definitions(-DXTOS_BINARY_DIR="${EXECTOS_BINARY_DIR}") +# Add assembler flags +add_compiler_asmflags(-D__XTOS_ASSEMBLER__) + # Compute __FILE__ definition file(RELATIVE_PATH _PATH_PREFIX ${EXECTOS_BINARY_DIR} ${EXECTOS_SOURCE_DIR}) add_compiler_flags(-D__RELFILE__="&__FILE__[__FILE__[0] == '.' ? sizeof \\\"${_PATH_PREFIX}\\\" - 1 : sizeof XTOS_SOURCE_DIR]") diff --git a/sdk/xtdk/amd64/artypes.h b/sdk/xtdk/amd64/artypes.h index 61461a9..14d1667 100644 --- a/sdk/xtdk/amd64/artypes.h +++ b/sdk/xtdk/amd64/artypes.h @@ -127,6 +127,10 @@ #define X86_EFLAGS_VIP_MASK 0x00100000 /* Virtual Interrupt Pending */ #define X86_EFLAGS_ID_MASK 0x00200000 /* Identification */ + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* CPU vendor enumeration list */ typedef enum _CPU_VENDOR { @@ -426,4 +430,5 @@ typedef enum _TRAMPOLINE_TYPE TrampolineEnableXpa } TRAMPOLINE_TYPE, *PTRAMPOLINE_TYPE; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_AMD64_ARTYPES_H */ diff --git a/sdk/xtdk/amd64/hlfuncs.h b/sdk/xtdk/amd64/hlfuncs.h index 84954ad..ba835b1 100644 --- a/sdk/xtdk/amd64/hlfuncs.h +++ b/sdk/xtdk/amd64/hlfuncs.h @@ -15,6 +15,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Hardware layer routines forward references */ XTCLINK XTCDECL @@ -49,4 +52,5 @@ VOID HlWritePort32(IN USHORT Port, IN ULONG Value); +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_AMD64_HLFUNCS_H */ diff --git a/sdk/xtdk/amd64/hltypes.h b/sdk/xtdk/amd64/hltypes.h index 65c3bdb..c315a91 100644 --- a/sdk/xtdk/amd64/hltypes.h +++ b/sdk/xtdk/amd64/hltypes.h @@ -69,6 +69,10 @@ /* Initial stall factor */ #define INITIAL_STALL_FACTOR 100 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* APIC delivery mode enumeration list */ typedef enum _APIC_DM { @@ -317,4 +321,5 @@ typedef union _PIC_I8259_ICW4 UCHAR Bits; } PIC_I8259_ICW4, *PPIC_I8259_ICW4; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_AMD64_HLTYPES_H */ diff --git a/sdk/xtdk/amd64/ketypes.h b/sdk/xtdk/amd64/ketypes.h index 2e7aa0a..b68a06a 100644 --- a/sdk/xtdk/amd64/ketypes.h +++ b/sdk/xtdk/amd64/ketypes.h @@ -138,6 +138,10 @@ #define NPX_STATE_SCRUB 0x1 #define NPX_STATE_SWITCH 0x2 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Floating point state storing structure */ typedef struct _FLOATING_SAVE_AREA { @@ -527,4 +531,5 @@ typedef struct _THREAD_ENVIRONMENT_BLOCK THREAD_INFORMATION_BLOCK InformationBlock; } THREAD_ENVIRONMENT_BLOCK, *PTHREAD_ENVIRONMENT_BLOCK; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_AMD64_KETYPES_H */ diff --git a/sdk/xtdk/amd64/mmtypes.h b/sdk/xtdk/amd64/mmtypes.h index 8562a36..f532337 100644 --- a/sdk/xtdk/amd64/mmtypes.h +++ b/sdk/xtdk/amd64/mmtypes.h @@ -119,6 +119,10 @@ /* Number of pool tracking tables */ #define MM_POOL_TRACKING_TABLES 64 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Page size enumeration list */ typedef enum _PAGE_SIZE { @@ -344,4 +348,5 @@ typedef struct _POOL_DESCRIPTOR SIZE_T Reserved; } POOL_DESCRIPTOR, *PPOOL_DESCRIPTOR; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_AMD64_MMTYPES_H */ diff --git a/sdk/xtdk/amd64/xtstruct.h b/sdk/xtdk/amd64/xtstruct.h index 6868828..979e5ce 100644 --- a/sdk/xtdk/amd64/xtstruct.h +++ b/sdk/xtdk/amd64/xtstruct.h @@ -12,6 +12,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Architecture-specific enumeration lists forward references */ typedef enum _APIC_DM APIC_DM, *PAPIC_DM; typedef enum _APIC_DSH APIC_DSH, *PAPIC_DSH; @@ -79,4 +82,5 @@ typedef union _PIC_I8259_ICW2 PIC_I8259_ICW2, *PPIC_I8259_ICW2; typedef union _PIC_I8259_ICW3 PIC_I8259_ICW3, *PPIC_I8259_ICW3; typedef union _PIC_I8259_ICW4 PIC_I8259_ICW4, *PPIC_I8259_ICW4; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_AMD64_XTSTRUCT_H */ diff --git a/sdk/xtdk/blfuncs.h b/sdk/xtdk/blfuncs.h index 6dc2bad..aed5700 100644 --- a/sdk/xtdk/blfuncs.h +++ b/sdk/xtdk/blfuncs.h @@ -13,6 +13,9 @@ #include +/* C/C++ specific code */ +#ifndef D__XTOS_ASSEMBLER__ + /* XT BootLoader routines forward references */ XTCLINK XTCDECL @@ -21,4 +24,5 @@ BlGetXtLdrProtocol(IN PEFI_SYSTEM_TABLE SystemTable, IN EFI_HANDLE ImageHandle, OUT PXTBL_LOADER_PROTOCOL *ProtocolHandler); +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_BLFUNCS_H */ diff --git a/sdk/xtdk/bltypes.h b/sdk/xtdk/bltypes.h index c17490d..4b3f52a 100644 --- a/sdk/xtdk/bltypes.h +++ b/sdk/xtdk/bltypes.h @@ -41,6 +41,10 @@ /* TUI dialog box maximum width */ #define XTBL_TUI_MAX_DIALOG_WIDTH 100 + +/* C/C++ specific code */ +#ifndef D__XTOS_ASSEMBLER__ + /* XTLDR Routine pointers */ typedef LOADER_MEMORY_TYPE (XTCDECL *PBL_GET_MEMTYPE_ROUTINE)(IN EFI_MEMORY_TYPE EfiMemoryType); @@ -520,4 +524,5 @@ typedef struct _XTBL_LOADER_PROTOCOL } WideString; } XTBL_LOADER_PROTOCOL, *PXTBL_LOADER_PROTOCOL; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_BLTYPES_H */ diff --git a/sdk/xtdk/exfuncs.h b/sdk/xtdk/exfuncs.h index 6c42959..e76f50b 100644 --- a/sdk/xtdk/exfuncs.h +++ b/sdk/xtdk/exfuncs.h @@ -13,6 +13,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Kernel Executive routines forward references */ XTCLINK XTFASTCALL @@ -44,4 +47,5 @@ XTFASTCALL VOID ExWaitForRundownProtectionRelease(IN PEX_RUNDOWN_REFERENCE Descriptor); +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_EXFUNCS_H */ diff --git a/sdk/xtdk/extypes.h b/sdk/xtdk/extypes.h index 195d7b6..8e66c94 100644 --- a/sdk/xtdk/extypes.h +++ b/sdk/xtdk/extypes.h @@ -17,6 +17,10 @@ /* Rundown protection flags */ #define EX_RUNDOWN_ACTIVE 0x1 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Executive rundown protection structure definition */ typedef struct _EX_RUNDOWN_REFERENCE { @@ -34,4 +38,5 @@ typedef struct _EX_RUNDOWN_WAIT_BLOCK KEVENT WakeEvent; } EX_RUNDOWN_WAIT_BLOCK, *PEX_RUNDOWN_WAIT_BLOCK; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_EXTYPES_H */ diff --git a/sdk/xtdk/hlfuncs.h b/sdk/xtdk/hlfuncs.h index 87e9abe..6bb6a5f 100644 --- a/sdk/xtdk/hlfuncs.h +++ b/sdk/xtdk/hlfuncs.h @@ -14,6 +14,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Hardware layer routines forward references */ XTCLINK XTAPI @@ -48,4 +51,5 @@ VOID HlWriteRegister32(IN PVOID Register, IN ULONG Value); +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_HLFUNCS_H */ diff --git a/sdk/xtdk/hltypes.h b/sdk/xtdk/hltypes.h index 1108c42..c107154 100644 --- a/sdk/xtdk/hltypes.h +++ b/sdk/xtdk/hltypes.h @@ -179,6 +179,10 @@ #define COMPORT_REG_MSR 0x06 /* Modem Status Register */ #define COMPORT_REG_SR 0x07 /* Scratch Register */ + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Generic Address structure */ typedef struct _GENERIC_ADDRESS { @@ -450,4 +454,5 @@ typedef struct _SMBIOS3_TABLE_HEADER ULONGLONG TableAddress; } SMBIOS3_TABLE_HEADER, *PSMBIOS3_TABLE_HEADER; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_HLTYPES_H */ diff --git a/sdk/xtdk/i686/artypes.h b/sdk/xtdk/i686/artypes.h index f3b5b73..ebf4a99 100644 --- a/sdk/xtdk/i686/artypes.h +++ b/sdk/xtdk/i686/artypes.h @@ -92,6 +92,10 @@ #define X86_EFLAGS_VIP_MASK 0x00100000 /* Virtual Interrupt Pending */ #define X86_EFLAGS_ID_MASK 0x00200000 /* Identification */ + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* CPU vendor enumeration list */ typedef enum _CPU_VENDOR { @@ -390,4 +394,5 @@ typedef enum _TRAMPOLINE_TYPE TrampolineApStartup } TRAMPOLINE_TYPE, *PTRAMPOLINE_TYPE; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_I686_ARTYPES_H */ diff --git a/sdk/xtdk/i686/hlfuncs.h b/sdk/xtdk/i686/hlfuncs.h index 34d2216..79a1564 100644 --- a/sdk/xtdk/i686/hlfuncs.h +++ b/sdk/xtdk/i686/hlfuncs.h @@ -15,6 +15,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Hardware layer routines forward references */ XTCLINK XTCDECL @@ -49,4 +52,5 @@ VOID HlWritePort32(IN USHORT Port, IN ULONG Value); +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_I686_HLFUNCS_H */ diff --git a/sdk/xtdk/i686/hltypes.h b/sdk/xtdk/i686/hltypes.h index bf51ec2..65b11e8 100644 --- a/sdk/xtdk/i686/hltypes.h +++ b/sdk/xtdk/i686/hltypes.h @@ -76,6 +76,10 @@ /* Initial stall factor */ #define INITIAL_STALL_FACTOR 100 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* APIC delivery mode enumeration list */ typedef enum _APIC_DM { @@ -324,4 +328,5 @@ typedef union _PIC_I8259_ICW4 UCHAR Bits; } PIC_I8259_ICW4, *PPIC_I8259_ICW4; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_I686_HLTYPES_H */ diff --git a/sdk/xtdk/i686/ketypes.h b/sdk/xtdk/i686/ketypes.h index d8a93ed..b731a27 100644 --- a/sdk/xtdk/i686/ketypes.h +++ b/sdk/xtdk/i686/ketypes.h @@ -159,6 +159,10 @@ #define NPX_STATE_LOADED 0x0 #define NPX_STATE_UNLOADED 0xA + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Floating point state storing structure */ typedef struct _FN_SAVE_FORMAT { @@ -482,4 +486,5 @@ typedef struct _THREAD_ENVIRONMENT_BLOCK THREAD_INFORMATION_BLOCK InformationBlock; } THREAD_ENVIRONMENT_BLOCK, *PTHREAD_ENVIRONMENT_BLOCK; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_I686_KETYPES_H */ diff --git a/sdk/xtdk/i686/mmtypes.h b/sdk/xtdk/i686/mmtypes.h index 8adbe2d..2f40abb 100644 --- a/sdk/xtdk/i686/mmtypes.h +++ b/sdk/xtdk/i686/mmtypes.h @@ -117,6 +117,10 @@ /* Number of pool tracking tables */ #define MM_POOL_TRACKING_TABLES 32 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Page size enumeration list */ typedef enum _PAGE_SIZE { @@ -437,4 +441,5 @@ typedef struct _POOL_DESCRIPTOR SIZE_T Reserved; } POOL_DESCRIPTOR, *PPOOL_DESCRIPTOR; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_I686_MMTYPES_H */ diff --git a/sdk/xtdk/i686/xtstruct.h b/sdk/xtdk/i686/xtstruct.h index cb0a3d6..6da384c 100644 --- a/sdk/xtdk/i686/xtstruct.h +++ b/sdk/xtdk/i686/xtstruct.h @@ -12,6 +12,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Architecture-specific enumeration lists forward references */ typedef enum _APIC_DM APIC_DM, *PAPIC_DM; typedef enum _APIC_DSH APIC_DSH, *PAPIC_DSH; @@ -89,4 +92,5 @@ typedef union _PIC_I8259_ICW2 PIC_I8259_ICW2, *PPIC_I8259_ICW2; typedef union _PIC_I8259_ICW3 PIC_I8259_ICW3, *PPIC_I8259_ICW3; typedef union _PIC_I8259_ICW4 PIC_I8259_ICW4, *PPIC_I8259_ICW4; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_I686_XTSTRUCT_H */ diff --git a/sdk/xtdk/iotypes.h b/sdk/xtdk/iotypes.h index bff9771..071edb2 100644 --- a/sdk/xtdk/iotypes.h +++ b/sdk/xtdk/iotypes.h @@ -58,6 +58,10 @@ #define PCI_STATUS_SIGNALED_SYSTEM_ERROR 0x4000 #define PCI_STATUS_DETECTED_PARITY_ERROR 0x8000 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* PCI bridge control registers */ typedef struct _PCI_BRIDGE_CONTROL_REGISTER { @@ -214,4 +218,5 @@ typedef struct _PCI_TYPE1_DEVICE PCI_BRIDGE_CONTROL_REGISTER Bridge; } PCI_TYPE1_DEVICE, *PPCI_TYPE1_DEVICE; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_IOTYPES_H */ diff --git a/sdk/xtdk/kdfuncs.h b/sdk/xtdk/kdfuncs.h index 3274c14..b3863df 100644 --- a/sdk/xtdk/kdfuncs.h +++ b/sdk/xtdk/kdfuncs.h @@ -13,6 +13,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Kernel debugger routines forward references */ XTCLINK XTCDECL @@ -20,4 +23,5 @@ VOID DbgPrint(PCWSTR Format, ...); +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_KDFUNCS_H */ diff --git a/sdk/xtdk/kdtypes.h b/sdk/xtdk/kdtypes.h index 5ebf50a..aef0c6c 100644 --- a/sdk/xtdk/kdtypes.h +++ b/sdk/xtdk/kdtypes.h @@ -21,6 +21,10 @@ #define DEBUG_PROVIDER_COMPORT 0x00000001 #define DEBUG_PROVIDER_FRAMEBUFFER 0x00000002 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Kernel routine callbacks */ typedef XTSTATUS (XTAPI *PKD_INIT_ROUTINE)(); typedef VOID (*PKD_PRINT_ROUTINE)(IN PCWSTR Format, IN ...); @@ -42,4 +46,5 @@ typedef struct _KD_DISPATCH_TABLE RTL_PRINT_CONTEXT PrintContext; } KD_DISPATCH_TABLE, *PKD_DISPATCH_TABLE; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_KDTYPES_H */ diff --git a/sdk/xtdk/kefuncs.h b/sdk/xtdk/kefuncs.h index a531b72..1653e8b 100644 --- a/sdk/xtdk/kefuncs.h +++ b/sdk/xtdk/kefuncs.h @@ -15,6 +15,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Kernel services routines forward references */ XTCLINK XTFASTCALL @@ -159,4 +162,5 @@ XTAPI BOOLEAN KeSignalCallDpcSynchronize(IN PVOID SystemArgument); +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_KEFUNCS_H */ diff --git a/sdk/xtdk/ketypes.h b/sdk/xtdk/ketypes.h index 5729ac7..1c7d5ab 100644 --- a/sdk/xtdk/ketypes.h +++ b/sdk/xtdk/ketypes.h @@ -49,6 +49,10 @@ #define THREAD_HIGH_PRIORITY 31 #define THREAD_MAXIMUM_PRIORITY 32 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Adjust reason */ typedef enum _ADJUST_REASON { @@ -647,4 +651,5 @@ typedef struct _KUBSAN_TYPE_MISMATCH_DATA_V1 UCHAR TypeCheckKind; } KUBSAN_TYPE_MISMATCH_DATA_V1, *PKUBSAN_TYPE_MISMATCH_DATA_V1; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_KEFUNCS_H */ diff --git a/sdk/xtdk/ldrtypes.h b/sdk/xtdk/ldrtypes.h index 3a9930f..c015612 100644 --- a/sdk/xtdk/ldrtypes.h +++ b/sdk/xtdk/ldrtypes.h @@ -38,6 +38,10 @@ #define LDR_DTE_MM_LOADED 0x40000000 #define LDR_DTE_COMPAT_DATABASE_PROCESSED 0x80000000 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Loader data table entry */ typedef struct _LDR_DATA_TABLE_ENTRY { @@ -70,4 +74,5 @@ typedef struct _LDR_DATA_TABLE_ENTRY PVOID PatchInformation; } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_LDRTYPES_H */ diff --git a/sdk/xtdk/mmfuncs.h b/sdk/xtdk/mmfuncs.h index d481457..df67958 100644 --- a/sdk/xtdk/mmfuncs.h +++ b/sdk/xtdk/mmfuncs.h @@ -14,6 +14,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Memory manager routines forward references */ XTAPI XTSTATUS @@ -37,4 +40,5 @@ XTSTATUS MmFreePoolWithTag(IN PVOID VirtualAddress, IN ULONG Tag); +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_MMFUNCS_H */ diff --git a/sdk/xtdk/mmtypes.h b/sdk/xtdk/mmtypes.h index ba118ca..05ce4ee 100644 --- a/sdk/xtdk/mmtypes.h +++ b/sdk/xtdk/mmtypes.h @@ -55,6 +55,10 @@ /* Protection field shift */ #define MM_PROTECT_FIELD_SHIFT 5 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Memory manager page lists */ typedef enum _MMPAGELISTS { @@ -258,4 +262,5 @@ typedef struct _POOL_TRACKING_TABLE ULONG Tag; } POOL_TRACKING_TABLE, *PPOOL_TRACKING_TABLE; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_MMTYPES_H */ diff --git a/sdk/xtdk/potypes.h b/sdk/xtdk/potypes.h index d07e10a..feb5972 100644 --- a/sdk/xtdk/potypes.h +++ b/sdk/xtdk/potypes.h @@ -14,6 +14,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Power Manager routine callbacks */ typedef VOID (XTFASTCALL *PPROCESSOR_IDLE_FUNCTION)(IN PPROCESSOR_POWER_STATE PowerState); typedef XTSTATUS (XTFASTCALL *PSET_PROCESSOR_THROTTLE)(IN UCHAR Throttle); @@ -88,4 +91,5 @@ typedef struct _PROCESSOR_POWER_STATE ULONG LastC3UserTime; } PROCESSOR_POWER_STATE, *PPROCESSOR_POWER_STATE; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_POTYPES_H */ diff --git a/sdk/xtdk/pstypes.h b/sdk/xtdk/pstypes.h index 8e3e4d0..6c606b2 100644 --- a/sdk/xtdk/pstypes.h +++ b/sdk/xtdk/pstypes.h @@ -13,6 +13,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Kernel's representation of a process object */ typedef struct _EPROCESS { @@ -27,4 +30,5 @@ typedef struct _ETHREAD UINT Reserved0; } ETHREAD, *PETHREAD; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_PSTYPES_H */ diff --git a/sdk/xtdk/rtlfuncs.h b/sdk/xtdk/rtlfuncs.h index 2dee67c..0d4733a 100644 --- a/sdk/xtdk/rtlfuncs.h +++ b/sdk/xtdk/rtlfuncs.h @@ -15,6 +15,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Runtime Library routines forward references */ XTCLINK XTAPI @@ -370,4 +373,5 @@ VOID RtlZeroMemory(OUT PVOID Destination, IN SIZE_T Length); +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_RTLFUNCS_H */ diff --git a/sdk/xtdk/rtltypes.h b/sdk/xtdk/rtltypes.h index d01947f..dcadf39 100644 --- a/sdk/xtdk/rtltypes.h +++ b/sdk/xtdk/rtltypes.h @@ -53,6 +53,10 @@ #define SHA1_BLOCK_SIZE 64 #define SHA1_DIGEST_SIZE 20 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Runtime Library routine callbacks */ typedef XTSTATUS (*PWRITE_CHARACTER)(IN CHAR Character); typedef XTSTATUS (*PWRITE_WIDE_CHARACTER)(IN WCHAR Character); @@ -107,4 +111,5 @@ typedef struct _RTL_SHA1_CONTEXT UCHAR Buffer[SHA1_BLOCK_SIZE]; } RTL_SHA1_CONTEXT, *PRTL_SHA1_CONTEXT; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_RTLTYPES_H */ diff --git a/sdk/xtdk/xtbase.h b/sdk/xtdk/xtbase.h index 96282c7..2598f0b 100644 --- a/sdk/xtdk/xtbase.h +++ b/sdk/xtdk/xtbase.h @@ -14,6 +14,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Kernel affinity */ typedef ULONG_PTR KAFFINITY, *PKAFFINITY; @@ -108,4 +111,5 @@ typedef struct _DISPATCHER_HEADER LIST_ENTRY WaitListHead; } DISPATCHER_HEADER, *PDISPATCHER_HEADER; +#endif /* __XTOS_ASSEMBLER_ */ #endif /* __XTDK_XTBASE_H */ diff --git a/sdk/xtdk/xtcompat.h b/sdk/xtdk/xtcompat.h index 7b353e2..77e44f8 100644 --- a/sdk/xtdk/xtcompat.h +++ b/sdk/xtdk/xtcompat.h @@ -10,6 +10,9 @@ #define __XTDK_XTCOMPAT_H +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + #ifdef __cplusplus /* C++ definitions */ #define NULLPTR nullptr @@ -40,4 +43,5 @@ typedef unsigned short wchar; #endif +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_XTCOMPAT_H */ diff --git a/sdk/xtdk/xtdefs.h b/sdk/xtdk/xtdefs.h index 62e3012..bc979ad 100644 --- a/sdk/xtdk/xtdefs.h +++ b/sdk/xtdk/xtdefs.h @@ -111,7 +111,6 @@ #define UNIQUE(Prefix) CONCATENATE(CONCATENATE(__UNIQUE_ID_, Prefix), __COUNTER__) /* Variadic ABI functions */ -typedef __builtin_va_list VA_LIST, *PVA_LIST; #define VA_ARG(Marker, Type) ((sizeof(Type) < sizeof(UINT_PTR)) ? \ (Type)(__builtin_va_arg(Marker, UINT_PTR)) : \ (Type)(__builtin_va_arg(Marker, Type))) diff --git a/sdk/xtdk/xtfont.h b/sdk/xtdk/xtfont.h index ac74062..74e1a27 100644 --- a/sdk/xtdk/xtfont.h +++ b/sdk/xtdk/xtfont.h @@ -13,6 +13,9 @@ #include +/* C/C++ specific code */ +#ifndef D__XTOS_ASSEMBLER__ + /* SSF2 font header */ typedef struct _SSFN_FONT_HEADER { @@ -3980,4 +3983,5 @@ UCHAR XtFbDefaultFont[] = {0x78, 0x74, 0x66, 0x6E, 0x3B, 0xE7, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x82, 0x32, 0x4E, 0x46, 0x53}; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_XTFONT_H */ diff --git a/sdk/xtdk/xtfw.h b/sdk/xtdk/xtfw.h index fbe3965..6389b29 100644 --- a/sdk/xtdk/xtfw.h +++ b/sdk/xtdk/xtfw.h @@ -19,6 +19,10 @@ /* Version number of the current XTOS loader protocol */ #define BOOT_PROTOCOL_VERSION 1 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Memory allocation structures */ typedef enum _LOADER_MEMORY_TYPE { @@ -116,4 +120,5 @@ typedef struct _KERNEL_INITIALIZATION_BLOCK FIRMWARE_INFORMATION_BLOCK FirmwareInformation; } KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK; +#endif /* __XTOS_ASSEMBLER_ */ #endif /* __XTDK_XTFW_H */ diff --git a/sdk/xtdk/xtglyph.h b/sdk/xtdk/xtglyph.h index b814eb3..09262fc 100644 --- a/sdk/xtdk/xtglyph.h +++ b/sdk/xtdk/xtglyph.h @@ -12,6 +12,9 @@ #include +/* C/C++ specific code */ +#ifndef D__XTOS_ASSEMBLER__ + CHAR XTGLYPH_EXECTOS_LOGO[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x25, 0x23, @@ -61,4 +64,5 @@ CHAR XTGLYPH_EXECTOS_LOGO[] = 0x28, 0x0d, 0x0a }; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_XTGLYPH_H */ diff --git a/sdk/xtdk/xtimage.h b/sdk/xtdk/xtimage.h index 3f7bafc..8993aab 100644 --- a/sdk/xtdk/xtimage.h +++ b/sdk/xtdk/xtimage.h @@ -202,6 +202,10 @@ #define PECOFF_IMAGE_SCN_MEM_READ 0x40000000 #define PECOFF_IMAGE_SCN_MEM_WRITE 0x80000000 + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* PE/COFF image representation structure */ typedef struct _PECOFF_IMAGE_CONTEXT { @@ -638,4 +642,5 @@ typedef struct _PECOFF_IMAGE_RESOURCE_DATA_ENTRY ULONG Reserved; } PECOFF_IMAGE_RESOURCE_DATA_ENTRY, *PPECOFF_IMAGE_RESOURCE_DATA_ENTRY; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_XTIMAGE_H */ diff --git a/sdk/xtdk/xtstruct.h b/sdk/xtdk/xtstruct.h index 3e3e172..3929b09 100644 --- a/sdk/xtdk/xtstruct.h +++ b/sdk/xtdk/xtstruct.h @@ -12,6 +12,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Enumeration lists forward references */ typedef enum _ADJUST_REASON ADJUST_REASON, *PADJUST_REASON; typedef enum _EXCEPTION_DISPOSITION EXCEPTION_DISPOSITION, *PEXCEPTION_DISPOSITION; @@ -363,4 +366,5 @@ typedef union _LARGE_INTEGER LARGE_INTEGER, *PLARGE_INTEGER; typedef union _SINGLE_LIST_HEADER SINGLE_LIST_HEADER, *PSINGLE_LIST_HEADER; typedef union _ULARGE_INTEGER ULARGE_INTEGER, *PULARGE_INTEGER; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_XTSTRUCT_H */ diff --git a/sdk/xtdk/xttypes.h b/sdk/xtdk/xttypes.h index 5d994b7..14e6e89 100644 --- a/sdk/xtdk/xttypes.h +++ b/sdk/xtdk/xttypes.h @@ -13,6 +13,9 @@ #include +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Standard C types */ typedef unsigned char BYTE, *PBYTE, *LPBYTE; typedef char CHAR, *PCHAR, *LPCHAR; @@ -150,6 +153,9 @@ typedef LPCWSTR PCTSTR, LPCTSTR; typedef LPUWSTR PUTSTR, LPUTSTR; typedef LPCUWSTR PCUTSTR, LPCUTSTR; +/* Variadic ABI types */ +typedef __builtin_va_list VA_LIST, *PVA_LIST; + /* 128-bit floats structure */ typedef struct _FLOAT128 { @@ -287,4 +293,5 @@ typedef struct _UNICODE_STRING64 } UNICODE_STRING64, *PUNICODE_STRING64; typedef const UNICODE_STRING64 *PCUNICODE_STRING64; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_XTTYPES_H */ diff --git a/sdk/xtdk/xtuefi.h b/sdk/xtdk/xtuefi.h index 1f873d3..5c55a0e 100644 --- a/sdk/xtdk/xtuefi.h +++ b/sdk/xtdk/xtuefi.h @@ -373,6 +373,10 @@ #define EFI_CONFIG_TABLE_SMBIOS_TABLE_GUID {0xEB9D2D31, 0x2D88, 0x11D3, {0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D}} #define EFI_CONFIG_TABLE_SMBIOS3_TABLE_GUID {0xF2FD1544, 0x9794, 0x4A2C, {0x99, 0x2E, 0xE5, 0xBB, 0xCf, 0x20, 0xE3, 0x94}} + +/* C/C++ specific code */ +#ifndef __XTOS_ASSEMBLER__ + /* Basic UEFI types */ typedef PVOID EFI_EVENT, *PEFI_EVENT; typedef PVOID EFI_HANDLE, *PEFI_HANDLE; @@ -2723,4 +2727,5 @@ typedef struct _EFI_PROCESSOR_INFORMATION EFI_PROCESSOR_PHYSICAL_LOCATION Location; } EFI_PROCESSOR_INFORMATION, *PEFI_PROCESSOR_INFORMATION; +#endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_XTUEFI_H */ diff --git a/xtoskrnl/ar/amd64/archsup.S b/xtoskrnl/ar/amd64/archsup.S index 2ffd67a..03ff51b 100644 --- a/xtoskrnl/ar/amd64/archsup.S +++ b/xtoskrnl/ar/amd64/archsup.S @@ -7,6 +7,7 @@ * Aiken Harris */ +#include #include .altmacro diff --git a/xtoskrnl/ar/amd64/boot.S b/xtoskrnl/ar/amd64/boot.S index 4be63e0..8039bb4 100644 --- a/xtoskrnl/ar/amd64/boot.S +++ b/xtoskrnl/ar/amd64/boot.S @@ -6,6 +6,7 @@ * DEVELOPERS: Aiken Harris */ +#include #include .altmacro diff --git a/xtoskrnl/ar/i686/archsup.S b/xtoskrnl/ar/i686/archsup.S index f1afc38..7561ac2 100644 --- a/xtoskrnl/ar/i686/archsup.S +++ b/xtoskrnl/ar/i686/archsup.S @@ -7,6 +7,7 @@ * Aiken Harris */ +#include #include .altmacro diff --git a/xtoskrnl/ar/i686/boot.S b/xtoskrnl/ar/i686/boot.S index 7794b18..18fce5b 100644 --- a/xtoskrnl/ar/i686/boot.S +++ b/xtoskrnl/ar/i686/boot.S @@ -6,6 +6,7 @@ * DEVELOPERS: Aiken Harris */ +#include #include .altmacro diff --git a/xtoskrnl/includes/ar/amd64/asmsup.h b/xtoskrnl/includes/ar/amd64/asmsup.h index 6608cb5..2c270b1 100644 --- a/xtoskrnl/includes/ar/amd64/asmsup.h +++ b/xtoskrnl/includes/ar/amd64/asmsup.h @@ -10,21 +10,6 @@ #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 KGDT_R0_CMCODE 0x08 -#define KGDT_R0_CODE 0x10 -#define KGDT_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 diff --git a/xtoskrnl/includes/ar/i686/asmsup.h b/xtoskrnl/includes/ar/i686/asmsup.h index 5eb490b..6b228f2 100644 --- a/xtoskrnl/includes/ar/i686/asmsup.h +++ b/xtoskrnl/includes/ar/i686/asmsup.h @@ -10,13 +10,6 @@ #define __XTOSKRNL_I686_ASMSUP_H -/* Selector masks */ -#define RPL_MASK 0x0003 - -/* GDT selectors */ -#define KGDT_R3_DATA 0x0020 -#define KGDT_R0_PB 0x0030 - /* KTRAP_FRAME structure offsets */ #define TrapPreviousMode 0 #define TrapCr2 4