From 84f23f68d11b6dff6bcbd339d5e118e90630d39c Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Tue, 6 Apr 2010 00:00:00 +0000 Subject: [PATCH] - Add -fms-extensions for arm build - Add _NT_TIB_KPCR to compensate for a missing NT_TIB (hackfix) - add KERNEL_STACK_SIZE & co for arm - Add missing KeGetCurrentThread prototype for arm - define INTERLOCKED_RESULT for X86 only - Add _CONTEXT and _EXCEPTION_RECORD forward declarations svn path=/trunk/; revision=46741 --- reactos/ReactOS-arm.rbuild | 1 + reactos/include/ddk/ntddk.h | 3 ++- reactos/include/psdk/ntdef.h | 3 +++ reactos/include/reactos/arm/armddk.h | 30 ++++++++++++++++++++++++---- reactos/include/xdk/exfuncs.h | 3 ++- 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/reactos/ReactOS-arm.rbuild b/reactos/ReactOS-arm.rbuild index 777a1aa2cc3..6d7abe77d6e 100644 --- a/reactos/ReactOS-arm.rbuild +++ b/reactos/ReactOS-arm.rbuild @@ -28,6 +28,7 @@ -ftracer + -fms-extensions -Wno-attributes -U_UNICODE -UUNICODE diff --git a/reactos/include/ddk/ntddk.h b/reactos/include/ddk/ntddk.h index 88aa183ea45..fdd99d9f7ef 100644 --- a/reactos/include/ddk/ntddk.h +++ b/reactos/include/ddk/ntddk.h @@ -3303,13 +3303,14 @@ ExFreeToZone( #define ExIsResourceAcquired ExIsResourceAcquiredSharedLite #define ExReleaseResourceForThread ExReleaseResourceForThreadLite +#ifdef _X86_ + typedef enum _INTERLOCKED_RESULT { ResultNegative = RESULT_NEGATIVE, ResultZero = RESULT_ZERO, ResultPositive = RESULT_POSITIVE } INTERLOCKED_RESULT; -#ifdef _X86_ NTKERNELAPI INTERLOCKED_RESULT FASTCALL diff --git a/reactos/include/psdk/ntdef.h b/reactos/include/psdk/ntdef.h index fdc365085b2..18107cdcbcc 100644 --- a/reactos/include/psdk/ntdef.h +++ b/reactos/include/psdk/ntdef.h @@ -565,6 +565,9 @@ typedef struct _PROCESSOR_NUMBER { UCHAR Reserved; } PROCESSOR_NUMBER, *PPROCESSOR_NUMBER; +struct _CONTEXT; +struct _EXCEPTION_RECORD; + typedef EXCEPTION_DISPOSITION (NTAPI *PEXCEPTION_ROUTINE)( IN struct _EXCEPTION_RECORD *ExceptionRecord, diff --git a/reactos/include/reactos/arm/armddk.h b/reactos/include/reactos/arm/armddk.h index 68262c2b9d7..82e6d9fdd72 100644 --- a/reactos/include/reactos/arm/armddk.h +++ b/reactos/include/reactos/arm/armddk.h @@ -54,13 +54,16 @@ extern ULONG_PTR MmUserProbeAddress; // #define MAXIMUM_VECTOR 16 +#define KERNEL_STACK_SIZE 12288 +#define KERNEL_LARGE_STACK_SIZE 61440 +#define KERNEL_LARGE_STACK_COMMIT 12288 // // Used to contain PFNs and PFN counts // -typedef ULONG PFN_COUNT; -typedef ULONG PFN_NUMBER, *PPFN_NUMBER; -typedef LONG SPFN_NUMBER, *PSPFN_NUMBER; +//typedef ULONG PFN_COUNT; +//typedef ULONG PFN_NUMBER, *PPFN_NUMBER; +//typedef LONG SPFN_NUMBER, *PSPFN_NUMBER; // // Stub @@ -124,11 +127,25 @@ typedef struct _CONTEXT { #ifdef _WINNT_H #define KIRQL ULONG #endif + +typedef struct _NT_TIB_KPCR { + struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; + PVOID StackBase; + PVOID StackLimit; + PVOID SubSystemTib; + _ANONYMOUS_UNION union { + PVOID FiberData; + ULONG Version; + } DUMMYUNIONNAME; + PVOID ArbitraryUserPointer; + struct _NT_TIB_KPCR *Self; +} NT_TIB_KPCR,*PNT_TIB_KPCR; + typedef struct _KPCR { union { - NT_TIB NtTib; + NT_TIB_KPCR NtTib; struct { struct _EXCEPTION_REGISTRATION_RECORD *Used_ExceptionList; // Unused @@ -167,6 +184,11 @@ struct _TEB* NtCurrentTeb(VOID) return (struct _TEB*)USERPCR->Used_Self; } +NTSYSAPI +PKTHREAD +NTAPI +KeGetCurrentThread(VOID); + #ifndef _WINNT_H // // IRQL Support on ARM is similar to MIPS/ALPHA diff --git a/reactos/include/xdk/exfuncs.h b/reactos/include/xdk/exfuncs.h index 46a5387733a..2879e1d4e16 100644 --- a/reactos/include/xdk/exfuncs.h +++ b/reactos/include/xdk/exfuncs.h @@ -67,13 +67,14 @@ ExFreeToZone( #define ExIsResourceAcquired ExIsResourceAcquiredSharedLite #define ExReleaseResourceForThread ExReleaseResourceForThreadLite +#ifdef _X86_ + typedef enum _INTERLOCKED_RESULT { ResultNegative = RESULT_NEGATIVE, ResultZero = RESULT_ZERO, ResultPositive = RESULT_POSITIVE } INTERLOCKED_RESULT; -#ifdef _X86_ NTKERNELAPI INTERLOCKED_RESULT FASTCALL