Alexandre Julliard : ntdll: Add stubs for the SRW lock functions.

Alexandre Julliard julliard at winehq.org
Tue Sep 3 13:38:04 CDT 2013


Module: wine
Branch: master
Commit: 4af4df5af3cffd3e1b18932e4fbedbae10c8b2b6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4af4df5af3cffd3e1b18932e4fbedbae10c8b2b6

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Sep  3 11:08:42 2013 +0200

ntdll: Add stubs for the SRW lock functions.

---

 dlls/kernel32/kernel32.spec |   10 +++++-----
 dlls/kernel32/thread.c      |   40 ----------------------------------------
 dlls/ntdll/ntdll.spec       |    5 +++++
 dlls/ntdll/sync.c           |   40 ++++++++++++++++++++++++++++++++++++++++
 include/winbase.h           |    2 ++
 include/winternl.h          |    5 +++++
 6 files changed, 57 insertions(+), 45 deletions(-)

diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index c0eda71..57cc38b 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -133,8 +133,8 @@
 
 # functions exported by name, ordinal doesn't matter
 
-@ stdcall AcquireSRWLockExclusive(ptr)
-@ stdcall AcquireSRWLockShared(ptr)
+@ stdcall AcquireSRWLockExclusive(ptr) ntdll.RtlAcquireSRWLockExclusive
+@ stdcall AcquireSRWLockShared(ptr) ntdll.RtlAcquireSRWLockShared
 @ stdcall ActivateActCtx(ptr ptr)
 @ stdcall AddAtomA(str)
 @ stdcall AddAtomW(wstr)
@@ -753,7 +753,7 @@
 @ stdcall InitializeCriticalSectionAndSpinCount(ptr long)
 @ stdcall InitializeCriticalSectionEx(ptr long long)
 @ stdcall InitializeSListHead(ptr) ntdll.RtlInitializeSListHead
-@ stdcall InitializeSRWLock(ptr)
+@ stdcall InitializeSRWLock(ptr) ntdll.RtlInitializeSRWLock
 @ stdcall -arch=i386 InterlockedCompareExchange (ptr long long)
 @ stdcall -arch=i386 -ret64 InterlockedCompareExchange64(ptr int64 int64) ntdll.RtlInterlockedCompareExchange64
 @ stdcall -arch=i386 InterlockedDecrement(ptr)
@@ -1015,8 +1015,8 @@
 @ stdcall ReleaseActCtx(ptr)
 @ stdcall ReleaseMutex(long)
 @ stdcall ReleaseSemaphore(long long ptr)
-@ stdcall ReleaseSRWLockExclusive(ptr)
-@ stdcall ReleaseSRWLockShared(ptr)
+@ stdcall ReleaseSRWLockExclusive(ptr) ntdll.RtlReleaseSRWLockExclusive
+@ stdcall ReleaseSRWLockShared(ptr) ntdll.RtlReleaseSRWLockShared
 @ stdcall RemoveDirectoryA(str)
 @ stdcall RemoveDirectoryW(wstr)
 # @ stub RemoveLocalAlternateComputerNameA
diff --git a/dlls/kernel32/thread.c b/dlls/kernel32/thread.c
index c82ef58..5d87cdd 100644
--- a/dlls/kernel32/thread.c
+++ b/dlls/kernel32/thread.c
@@ -832,43 +832,3 @@ BOOL WINAPI GetThreadPreferredUILanguages( DWORD flags, PULONG count, PCZZWSTR b
     *buffersize = 0;
     return TRUE;
 }
-
-/***********************************************************************
- *              InitializeSRWLock (KERNEL32.@)
- */
-VOID WINAPI InitializeSRWLock( PSRWLOCK srwlock )
-{
-    FIXME( "(%p): stub\n", srwlock );
-}
-
-/***********************************************************************
- *              AcquireSRWLockExclusive (KERNEL32.@)
- */
-VOID WINAPI AcquireSRWLockExclusive( PSRWLOCK srwlock )
-{
-    FIXME( "(%p): stub\n", srwlock );
-}
-
-/***********************************************************************
- *              ReleaseSRWLockExclusive (KERNEL32.@)
- */
-VOID WINAPI ReleaseSRWLockExclusive( PSRWLOCK srwlock )
-{
-    FIXME( "(%p): stub\n", srwlock );
-}
-
-/***********************************************************************
- *              AcquireSRWLockShared (KERNEL32.@)
- */
-VOID WINAPI AcquireSRWLockShared( PSRWLOCK srwlock )
-{
-    FIXME( "(%p): stub\n", srwlock );
-}
-
-/***********************************************************************
- *              ReleaseSRWLockShared (KERNEL32.@)
- */
-VOID WINAPI ReleaseSRWLockShared( PSRWLOCK srwlock )
-{
-    FIXME( "(%p): stub\n", srwlock );
-}
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index cb120da..860b4c6 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -391,6 +391,8 @@
 @ stdcall RtlAcquirePebLock()
 @ stdcall RtlAcquireResourceExclusive(ptr long)
 @ stdcall RtlAcquireResourceShared(ptr long)
+@ stdcall RtlAcquireSRWLockExclusive(ptr)
+@ stdcall RtlAcquireSRWLockShared(ptr)
 @ stdcall RtlActivateActivationContext(long ptr ptr)
 @ stub RtlActivateActivationContextEx
 @ stub RtlActivateActivationContextUnsafeFast
@@ -680,6 +682,7 @@
 # @ stub RtlInitializeRangeList
 @ stdcall RtlInitializeResource(ptr)
 @ stdcall RtlInitializeSListHead(ptr)
+@ stdcall RtlInitializeSRWLock(ptr)
 @ stdcall RtlInitializeSid(ptr ptr long)
 # @ stub RtlInitializeStackTraceDataBase
 @ stub RtlInsertElementGenericTable
@@ -809,6 +812,8 @@
 @ stub RtlReleaseMemoryStream
 @ stdcall RtlReleasePebLock()
 @ stdcall RtlReleaseResource(ptr)
+@ stdcall RtlReleaseSRWLockExclusive(ptr)
+@ stdcall RtlReleaseSRWLockShared(ptr)
 @ stub RtlRemoteCall
 @ stdcall RtlRemoveVectoredExceptionHandler(ptr)
 @ stub RtlResetRtlTranslations
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
index f466dab..af1dba9 100644
--- a/dlls/ntdll/sync.c
+++ b/dlls/ntdll/sync.c
@@ -1353,3 +1353,43 @@ DWORD WINAPI RtlRunOnceExecuteOnce( RTL_RUN_ONCE *once, PRTL_RUN_ONCE_INIT_FN fu
 
     return RtlRunOnceComplete( once, 0, context ? *context : NULL );
 }
+
+/***********************************************************************
+ *              RtlInitializeSRWLock (NTDLL.@)
+ */
+void WINAPI RtlInitializeSRWLock( RTL_SRWLOCK *lock )
+{
+    lock->Ptr = NULL;
+}
+
+/***********************************************************************
+ *              RtlAcquireSRWLockExclusive (NTDLL.@)
+ */
+void WINAPI RtlAcquireSRWLockExclusive( RTL_SRWLOCK *lock )
+{
+    FIXME( "%p stub\n", lock );
+}
+
+/***********************************************************************
+ *              RtlAcquireSRWLockShared (NTDLL.@)
+ */
+void WINAPI RtlAcquireSRWLockShared( RTL_SRWLOCK *lock )
+{
+    FIXME( "%p stub\n", lock );
+}
+
+/***********************************************************************
+ *              RtlReleaseSRWLockExclusive (NTDLL.@)
+ */
+void WINAPI RtlReleaseSRWLockExclusive( RTL_SRWLOCK *lock )
+{
+    FIXME( "%p stub\n", lock );
+}
+
+/***********************************************************************
+ *              RtlReleaseSRWLockShared (NTDLL.@)
+ */
+void WINAPI RtlReleaseSRWLockShared( RTL_SRWLOCK *lock )
+{
+    FIXME( "%p stub\n", lock );
+}
diff --git a/include/winbase.h b/include/winbase.h
index 88b5e4f..cfdea58 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -61,6 +61,8 @@ typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
 typedef RTL_SRWLOCK SRWLOCK;
 typedef PRTL_SRWLOCK PSRWLOCK;
 
+#define SRWLOCK_INIT RTL_SRWLOCK_INIT
+
 typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
 
 #define CONDITION_VARIABLE_INIT RTL_CONDITION_VARIABLE_INIT
diff --git a/include/winternl.h b/include/winternl.h
index bb7a381..47d9a09 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -2256,6 +2256,8 @@ NTSYSAPI NTSTATUS  WINAPI NtYieldExecution(void);
 NTSYSAPI void      WINAPI RtlAcquirePebLock(void);
 NTSYSAPI BYTE      WINAPI RtlAcquireResourceExclusive(LPRTL_RWLOCK,BYTE);
 NTSYSAPI BYTE      WINAPI RtlAcquireResourceShared(LPRTL_RWLOCK,BYTE);
+NTSYSAPI void      WINAPI RtlAcquireSRWLockExclusive(RTL_SRWLOCK*);
+NTSYSAPI void      WINAPI RtlAcquireSRWLockShared(RTL_SRWLOCK*);
 NTSYSAPI NTSTATUS  WINAPI RtlActivateActivationContext(DWORD,HANDLE,ULONG_PTR*);
 NTSYSAPI NTSTATUS  WINAPI RtlAddAce(PACL,DWORD,DWORD,PACE_HEADER,DWORD);
 NTSYSAPI NTSTATUS  WINAPI RtlAddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
@@ -2419,6 +2421,7 @@ NTSYSAPI NTSTATUS  WINAPI RtlInitializeCriticalSectionEx(RTL_CRITICAL_SECTION *,
 NTSYSAPI void      WINAPI RtlInitializeBitMap(PRTL_BITMAP,PULONG,ULONG);
 NTSYSAPI void      WINAPI RtlInitializeHandleTable(ULONG,ULONG,RTL_HANDLE_TABLE *);
 NTSYSAPI void      WINAPI RtlInitializeResource(LPRTL_RWLOCK);
+NTSYSAPI void      WINAPI RtlInitializeSRWLock(RTL_SRWLOCK*);
 NTSYSAPI BOOL      WINAPI RtlInitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
 NTSYSAPI NTSTATUS  WINAPI RtlInt64ToUnicodeString(ULONGLONG,ULONG,UNICODE_STRING *);
 NTSYSAPI NTSTATUS  WINAPI RtlIntegerToChar(ULONG,ULONG,ULONG,PCHAR);
@@ -2471,6 +2474,8 @@ NTSYSAPI NTSTATUS  WINAPI RtlRegisterWait(PHANDLE,HANDLE,RTL_WAITORTIMERCALLBACK
 NTSYSAPI void      WINAPI RtlReleaseActivationContext(HANDLE);
 NTSYSAPI void      WINAPI RtlReleasePebLock(void);
 NTSYSAPI void      WINAPI RtlReleaseResource(LPRTL_RWLOCK);
+NTSYSAPI void      WINAPI RtlReleaseSRWLockExclusive(RTL_SRWLOCK*);
+NTSYSAPI void      WINAPI RtlReleaseSRWLockShared(RTL_SRWLOCK*);
 NTSYSAPI ULONG     WINAPI RtlRemoveVectoredExceptionHandler(PVOID);
 NTSYSAPI void      WINAPI RtlRestoreLastWin32Error(DWORD);
 NTSYSAPI void      WINAPI RtlSecondsSince1970ToTime(DWORD,LARGE_INTEGER *);




More information about the wine-cvs mailing list