From 5e0347a52bdcdecf4bf33fff891dc20e3e435148 Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Thu, 16 Jul 2009 11:42:09 +0000 Subject: [PATCH] Fix definition of KeInitializeSpinLock for x86 - it never inlined the operation. It should check if WIN9X_COMPAT_SPINLOCK is defined and don't inline it if so. Also, don't define this flag when building ntoskrnl (MS DDK/WDK compilation fix) so we get the inline. Instead, make the implementation "internal" to fix compilation. svn path=/trunk/; revision=41990 --- reactos/include/ddk/winddk.h | 17 ++++++++++++++++- reactos/ntoskrnl/ke/spinlock.c | 2 +- reactos/ntoskrnl/ntoskrnl-generic.rbuild | 1 - reactos/ntoskrnl/ntoskrnl.pspec | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/reactos/include/ddk/winddk.h b/reactos/include/ddk/winddk.h index 32b5f5cbea1..0ecca592a40 100644 --- a/reactos/include/ddk/winddk.h +++ b/reactos/include/ddk/winddk.h @@ -5642,11 +5642,26 @@ KeTestSpinLock( #if defined (_X86_) +#if defined(WIN9X_COMPAT_SPINLOCK) + NTKERNELAPI VOID NTAPI KeInitializeSpinLock( - IN PKSPIN_LOCK SpinLock); + IN PKSPIN_LOCK SpinLock +); + +#else + +FORCEINLINE +VOID +KeInitializeSpinLock(IN PKSPIN_LOCK SpinLock) +{ + /* Clear the lock */ + *SpinLock = 0; +} + +#endif NTHALAPI KIRQL diff --git a/reactos/ntoskrnl/ke/spinlock.c b/reactos/ntoskrnl/ke/spinlock.c index 7e63026db3b..8d5c72c641f 100644 --- a/reactos/ntoskrnl/ke/spinlock.c +++ b/reactos/ntoskrnl/ke/spinlock.c @@ -123,7 +123,7 @@ KeReleaseInterruptSpinLock(IN PKINTERRUPT Interrupt, */ VOID NTAPI -KeInitializeSpinLock(IN PKSPIN_LOCK SpinLock) +_KeInitializeSpinLock(IN PKSPIN_LOCK SpinLock) { /* Clear it */ *SpinLock = 0; diff --git a/reactos/ntoskrnl/ntoskrnl-generic.rbuild b/reactos/ntoskrnl/ntoskrnl-generic.rbuild index 15dc82e4043..3ea37627fd3 100644 --- a/reactos/ntoskrnl/ntoskrnl-generic.rbuild +++ b/reactos/ntoskrnl/ntoskrnl-generic.rbuild @@ -7,7 +7,6 @@ - diff --git a/reactos/ntoskrnl/ntoskrnl.pspec b/reactos/ntoskrnl/ntoskrnl.pspec index b68be242fb2..d5c61bf63a4 100644 --- a/reactos/ntoskrnl/ntoskrnl.pspec +++ b/reactos/ntoskrnl/ntoskrnl.pspec @@ -599,7 +599,7 @@ @ stdcall KeInitializeMutex(ptr long) @ stdcall KeInitializeQueue(ptr long) @ stdcall KeInitializeSemaphore(ptr long long) -@ stdcall KeInitializeSpinLock(ptr) +@ stdcall KeInitializeSpinLock(ptr) _KeInitializeSpinLock @ stdcall KeInitializeThreadedDpc(ptr ptr ptr) @ stdcall KeInitializeTimer(ptr) @ stdcall KeInitializeTimerEx(ptr long)