Module: wine Branch: master Commit: 7d32c24c4ac2a68419608b26aa6de393dbbffd67 URL: https://source.winehq.org/git/wine.git/?a=commit;h=7d32c24c4ac2a68419608b26a...
Author: Gijs Vermeulen gijsvrm@gmail.com Date: Mon Apr 15 00:55:33 2019 +0200
ntoskrnl.exe: Add Ex[p]InterlockedFlushSList.
Signed-off-by: Gijs Vermeulen gijsvrm@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 3 ++- dlls/ntoskrnl.exe/sync.c | 10 ++++++++++ include/ddk/wdm.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index ab952e5..141c8aa 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -4,7 +4,7 @@ @ stub ExInitializeRundownProtection @ stub ExInterlockedAddLargeStatistic @ stub ExInterlockedCompareExchange64 -@ stub ExInterlockedFlushSList +@ stdcall -fastcall -arch=i386 ExInterlockedFlushSList(ptr) NTOSKRNL_ExInterlockedFlushSList @ stdcall -fastcall -arch=i386 ExInterlockedPopEntrySList(ptr ptr) NTOSKRNL_ExInterlockedPopEntrySList @ stdcall -fastcall -arch=i386 ExInterlockedPushEntrySList (ptr ptr ptr) NTOSKRNL_ExInterlockedPushEntrySList @ stub ExReInitializeRundownProtection @@ -27,6 +27,7 @@ @ stub Exfi386InterlockedDecrementLong @ stub Exfi386InterlockedExchangeUlong @ stub Exfi386InterlockedIncrementLong +@ stdcall -arch=win64 ExpInterlockedFlushSList(ptr) RtlInterlockedFlushSList @ stdcall -arch=win64 ExpInterlockedPopEntrySList(ptr) RtlInterlockedPopEntrySList @ stdcall -arch=win64 ExpInterlockedPushEntrySList(ptr ptr) RtlInterlockedPushEntrySList @ stub HalExamineMBR diff --git a/dlls/ntoskrnl.exe/sync.c b/dlls/ntoskrnl.exe/sync.c index fbe9dbe..6976b9e 100644 --- a/dlls/ntoskrnl.exe/sync.c +++ b/dlls/ntoskrnl.exe/sync.c @@ -691,6 +691,16 @@ PSLIST_ENTRY WINAPI NTOSKRNL_ExInterlockedPushEntrySList( PSLIST_HEADER list, PS
/*********************************************************************** + * ExInterlockedFlushSList (NTOSKRNL.EXE.@) + */ +DEFINE_FASTCALL1_WRAPPER( NTOSKRNL_ExInterlockedFlushSList ) +PSLIST_ENTRY WINAPI NTOSKRNL_ExInterlockedFlushSList( PSLIST_HEADER list ) +{ + return RtlInterlockedFlushSList( list ); +} + + +/*********************************************************************** * ExAcquireFastMutexUnsafe (NTOSKRNL.EXE.@) */ DEFINE_FASTCALL1_WRAPPER(ExAcquireFastMutexUnsafe) diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h index 0faf5ec..a66a582 100644 --- a/include/ddk/wdm.h +++ b/include/ddk/wdm.h @@ -1528,6 +1528,7 @@ ULONG WINAPI ExGetExclusiveWaiterCount(ERESOURCE*); ULONG WINAPI ExGetSharedWaiterCount(ERESOURCE*); void WINAPI ExInitializeNPagedLookasideList(PNPAGED_LOOKASIDE_LIST,PALLOCATE_FUNCTION,PFREE_FUNCTION,ULONG,SIZE_T,ULONG,USHORT); NTSTATUS WINAPI ExInitializeResourceLite(ERESOURCE*); +PSLIST_ENTRY WINAPI ExInterlockedFlushSList(PSLIST_HEADER); PSLIST_ENTRY WINAPI ExInterlockedPopEntrySList(PSLIST_HEADER,PKSPIN_LOCK); PSLIST_ENTRY WINAPI ExInterlockedPushEntrySList(PSLIST_HEADER,PSLIST_ENTRY,PKSPIN_LOCK); LIST_ENTRY * WINAPI ExInterlockedRemoveHeadList(LIST_ENTRY*,KSPIN_LOCK*);