wine-staging/patches/ntoskrnl-InStackQueuedSpinLock/0001-ntoskrnl.exe-add-KeAcquireInStackQueuedSpinLock-stub.patch

100 lines
3.4 KiB
Diff

From d41ae9a2e8182b9a57a9b110905a4ffb0dd81e8f Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Thu, 9 Feb 2017 16:51:25 -0600
Subject: ntoskrnl.exe: add KeAcquireInStackQueuedSpinLock stub (try 2)
Signed-off-by: Austin English <austinenglish@gmail.com>
---
dlls/hal/hal.spec | 2 +-
dlls/ntoskrnl.exe/ntoskrnl.c | 13 +++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 +
include/ddk/wdm.h | 10 ++++++++++
tools/make_specfiles | 4 ++++
5 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/dlls/hal/hal.spec b/dlls/hal/hal.spec
index bd6bc35736a..f441ac5271f 100644
--- a/dlls/hal/hal.spec
+++ b/dlls/hal/hal.spec
@@ -4,7 +4,7 @@
@ stub HalClearSoftwareInterrupt
@ stub HalRequestSoftwareInterrupt
@ stub HalSystemVectorDispatchEntry
-@ stub KeAcquireInStackQueuedSpinLock
+@ stdcall -norelay KeAcquireInStackQueuedSpinLock(ptr ptr) ntoskrnl.exe.KeAcquireInStackQueuedSpinLock
@ stub KeAcquireInStackQueuedSpinLockRaiseToSynch
@ stub KeAcquireQueuedSpinLock
@ stub KeAcquireQueuedSpinLockRaiseToSynch
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 06320d03cc9..b8f6a25714a 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -3188,3 +3188,16 @@ VOID WINAPI KeClearEvent(PRKEVENT event)
{
FIXME("stub: %p\n", event);
}
+
+/***********************************************************************
+ * KeAcquireInStackQueuedSpinLock (NTOSKRNL.EXE.@)
+ */
+#ifdef DEFINE_FASTCALL2_ENTRYPOINT
+DEFINE_FASTCALL2_ENTRYPOINT( KeAcquireInStackQueuedSpinLock )
+void WINAPI __regs_KeAcquireInStackQueuedSpinLock(KSPIN_LOCK *spinlock, KLOCK_QUEUE_HANDLE *handle)
+#else
+void WINAPI KeAcquireInStackQueuedSpinLock(KSPIN_LOCK *spinlock, KLOCK_QUEUE_HANDLE *handle)
+#endif
+{
+ FIXME( "stub: %p %p\n", spinlock, handle);
+}
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 62c7fb496cf..ba18200c503 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -41,6 +41,7 @@
@ stub IoWritePartitionTable
@ stdcall -norelay IofCallDriver(ptr ptr)
@ stdcall -norelay IofCompleteRequest(ptr long)
+@ stdcall -norelay KeAcquireInStackQueuedSpinLock(ptr ptr)
@ stub KeAcquireInStackQueuedSpinLockAtDpcLevel
@ stub KeReleaseInStackQueuedSpinLockFromDpcLevel
@ stub KeSetTimeUpdateNotifyRoutine
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index 4c696f776dd..61374a7ed43 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1210,6 +1210,16 @@ typedef struct _CALLBACK_OBJECT
UCHAR reserved[3];
} CALLBACK_OBJECT, *PCALLBACK_OBJECT;
+typedef struct _KSPIN_LOCK_QUEUE {
+ struct _KSPIN_LOCK_QUEUE * volatile Next;
+ volatile PKSPIN_LOCK Lock;
+} KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE;
+
+typedef struct _KLOCK_QUEUE_HANDLE {
+ KSPIN_LOCK_QUEUE LockQueue;
+ KIRQL OldIrql;
+} KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
+
typedef NTSTATUS (NTAPI EX_CALLBACK_FUNCTION)(void *CallbackContext, void *Argument1, void *Argument2);
typedef EX_CALLBACK_FUNCTION *PEX_CALLBACK_FUNCTION;
diff --git a/tools/make_specfiles b/tools/make_specfiles
index 1e2400e4c7f..505bdf1e791 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -338,6 +338,10 @@ my @dll_groups =
"bcrypt",
"ncrypt",
],
+ [
+ "ntoskrnl.exe",
+ "hal",
+ ]
);
my $update_flags = 0;
--
2.11.0