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