ntdll: Add prototypes to winnt.h for the SList functions.

Francois Gouget fgouget at free.fr
Fri Feb 9 08:57:07 CST 2007


Fix the implementation to match the official prototypes.
--- 

Remove the 'volatile's.
Alexandre says they're not needed and should not be there.
I think he's scared by H5N1 ;-)


 dlls/ntdll/rtl.c |   14 +++++++-------
 include/winnt.h  |    8 ++++++++
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
index 828b4a4..34a05b7 100644
--- a/dlls/ntdll/rtl.c
+++ b/dlls/ntdll/rtl.c
@@ -927,7 +927,7 @@ PVOID WINAPI RtlDecodePointer( PVOID ptr )
     return (PVOID)(ptrval ^ get_pointer_obfuscator());
 }
 
-VOID WINAPI RtlInitializeSListHead(volatile PSLIST_HEADER ListHeader)
+VOID WINAPI RtlInitializeSListHead(PSLIST_HEADER ListHeader)
 {
     TRACE("(%p)\n", ListHeader);
 #ifdef _WIN64
@@ -937,7 +937,7 @@ VOID WINAPI RtlInitializeSListHead(volatile PSLIST_HEADER ListHeader)
 #endif
 }
 
-USHORT WINAPI RtlQueryDepthSList(volatile PSLIST_HEADER ListHeader)
+WORD WINAPI RtlQueryDepthSList(PSLIST_HEADER ListHeader)
 {
     TRACE("(%p)\n", ListHeader);
 #ifdef _WIN64
@@ -948,7 +948,7 @@ USHORT WINAPI RtlQueryDepthSList(volatile PSLIST_HEADER ListHeader)
 #endif
 }
 
-PSLIST_ENTRY WINAPI RtlFirstEntrySList(volatile PSLIST_HEADER ListHeader)
+PSLIST_ENTRY WINAPI RtlFirstEntrySList(const SLIST_HEADER* ListHeader)
 {
     TRACE("(%p)\n", ListHeader);
 #ifdef _WIN64
@@ -959,7 +959,7 @@ PSLIST_ENTRY WINAPI RtlFirstEntrySList(volatile PSLIST_HEADER ListHeader)
 #endif
 }
 
-PSLIST_ENTRY WINAPI RtlInterlockedFlushSList(volatile PSLIST_HEADER ListHeader)
+PSLIST_ENTRY WINAPI RtlInterlockedFlushSList(PSLIST_HEADER ListHeader)
 {
     SLIST_HEADER oldHeader, newHeader;
     TRACE("(%p)\n", ListHeader);
@@ -981,7 +981,7 @@ PSLIST_ENTRY WINAPI RtlInterlockedFlushSList(volatile PSLIST_HEADER ListHeader)
 #endif
 }
 
-PSLIST_ENTRY WINAPI RtlInterlockedPushEntrySList(volatile PSLIST_HEADER ListHeader,
+PSLIST_ENTRY WINAPI RtlInterlockedPushEntrySList(PSLIST_HEADER ListHeader,
                                                  PSLIST_ENTRY ListEntry)
 {
     SLIST_HEADER oldHeader, newHeader;
@@ -1004,7 +1004,7 @@ PSLIST_ENTRY WINAPI RtlInterlockedPushEntrySList(volatile PSLIST_HEADER ListHead
 #endif
 }
 
-PSLIST_ENTRY WINAPI RtlInterlockedPopEntrySList(volatile PSLIST_HEADER ListHeader)
+PSLIST_ENTRY WINAPI RtlInterlockedPopEntrySList(PSLIST_HEADER ListHeader)
 {
     SLIST_HEADER oldHeader, newHeader;
     PSLIST_ENTRY entry;
@@ -1040,7 +1040,7 @@ PSLIST_ENTRY WINAPI RtlInterlockedPopEntrySList(volatile PSLIST_HEADER ListHeade
 /*************************************************************************
  * RtlInterlockedPushListSList   [NTDLL.@]
  */
-PSLIST_ENTRY WINAPI RtlInterlockedPushListSList(volatile PSLIST_HEADER ListHeader,
+PSLIST_ENTRY WINAPI RtlInterlockedPushListSList(PSLIST_HEADER ListHeader,
                                                 PSLIST_ENTRY FirstEntry,
                                                 PSLIST_ENTRY LastEntry,
                                                 ULONG Count)
diff --git a/include/winnt.h b/include/winnt.h
index ff896c9..7536d8e 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -647,6 +647,14 @@ typedef union _SLIST_HEADER {
 
 #endif
 
+PSLIST_ENTRY WINAPI RtlFirstEntrySList(const SLIST_HEADER*);
+VOID         WINAPI RtlInitializeSListHead(PSLIST_HEADER);
+PSLIST_ENTRY WINAPI RtlInterlockedFlushSList(PSLIST_HEADER);
+PSLIST_ENTRY WINAPI RtlInterlockedPopEntrySList(PSLIST_HEADER);
+PSLIST_ENTRY WINAPI RtlInterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY);
+WORD         WINAPI RtlQueryDepthSList(PSLIST_HEADER);
+
+
 /* Heap flags */
 
 #define HEAP_NO_SERIALIZE               0x00000001
-- 
1.4.4.3



More information about the wine-patches mailing list