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