[PATCH] include: Add definitions and declarations for SRW lock

Detlef Riekenberg wine.dev at web.de
Tue Jul 5 18:10:22 CDT 2011


---
 include/winbase.h |   10 ++++++++++
 include/winnt.h   |    6 ++++++
 2 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/include/winbase.h b/include/winbase.h
index adf7341..a37d073 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -58,6 +58,9 @@ typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
 
 #define CRITICAL_SECTION_NO_DEBUG_INFO RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO
 
+typedef RTL_SRWLOCK SRWLOCK;
+typedef PRTL_SRWLOCK PSRWLOCK;
+
 typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
 
 #define EXCEPTION_DEBUG_EVENT       1
@@ -1326,6 +1329,8 @@ WINADVAPI  BOOL        WINAPI AccessCheckAndAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPST
 WINADVAPI  BOOL        WINAPI AccessCheckAndAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,LPDWORD,LPBOOL,LPBOOL);
 #define                       AccessCheckAndAuditAlarm WINELIB_NAME_AW(AccessCheckAndAuditAlarm)
 WINADVAPI  BOOL        WINAPI AccessCheckByType(PSECURITY_DESCRIPTOR,PSID,HANDLE,DWORD,POBJECT_TYPE_LIST,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPBOOL);
+WINBASEAPI VOID        WINAPI AcquireSRWLockExclusive(PSRWLOCK);
+WINBASEAPI VOID        WINAPI AcquireSRWLockShared(PSRWLOCK);
 WINADVAPI  BOOL        WINAPI AdjustTokenPrivileges(HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD);
 WINADVAPI  BOOL        WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *);
 WINADVAPI  BOOL        WINAPI AllocateLocallyUniqueId(PLUID);
@@ -1860,6 +1865,7 @@ WINBASEAPI BOOL        WINAPI InitializeCriticalSectionEx(CRITICAL_SECTION *,DWO
 WINADVAPI  BOOL        WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD);
 WINADVAPI  BOOL        WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
 WINBASEAPI VOID        WINAPI InitializeSListHead(PSLIST_HEADER);
+WINBASEAPI VOID        WINAPI InitializeSRWLock(PSRWLOCK);
 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER);
 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER);
 WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY);
@@ -2034,6 +2040,8 @@ WINBASEAPI HANDLE      WINAPI RegisterWaitForSingleObjectEx(HANDLE,WAITORTIMERCA
 WINBASEAPI VOID        WINAPI ReleaseActCtx(HANDLE);
 WINBASEAPI BOOL        WINAPI ReleaseMutex(HANDLE);
 WINBASEAPI BOOL        WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
+WINBASEAPI VOID        WINAPI ReleaseSRWLockExclusive(PSRWLOCK);
+WINBASEAPI VOID        WINAPI ReleaseSRWLockShared(PSRWLOCK);
 WINBASEAPI ULONG       WINAPI RemoveVectoredExceptionHandler(PVOID);
 WINBASEAPI BOOL        WINAPI ReplaceFileA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPVOID,LPVOID);
 WINBASEAPI BOOL        WINAPI ReplaceFileW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPVOID,LPVOID);
@@ -2154,6 +2162,8 @@ WINBASEAPI LPVOID      WINAPI TlsGetValue(DWORD);
 WINBASEAPI BOOL        WINAPI TlsSetValue(DWORD,LPVOID);
 WINBASEAPI BOOL        WINAPI TransactNamedPipe(HANDLE,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
 WINBASEAPI BOOL        WINAPI TransmitCommChar(HANDLE,CHAR);
+WINBASEAPI BOOL        WINAPI TryAcquireSRWLockExclusive(PSRWLOCK);
+WINBASEAPI BOOL        WINAPI TryAcquireSRWLockShared(PSRWLOCK);
 WINBASEAPI BOOL        WINAPI TryEnterCriticalSection(CRITICAL_SECTION *lpCrit);
 WINBASEAPI BOOL        WINAPI TzSpecificLocalTimeToSystemTime(const TIME_ZONE_INFORMATION*,const SYSTEMTIME*,LPSYSTEMTIME);
 WINBASEAPI LONG        WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS);
diff --git a/include/winnt.h b/include/winnt.h
index 11f1ea2..73a2ae8 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -5354,6 +5354,12 @@ typedef struct _RTL_CRITICAL_SECTION {
 #define RTL_CRITICAL_SECTION_ALL_FLAG_BITS      0xFF000000
 #define RTL_CRITICAL_SECTION_FLAG_RESERVED      (RTL_CRITICAL_SECTION_ALL_FLAG_BITS & ~0x7000000)
 
+typedef struct _RTL_SRWLOCK {
+    PVOID Ptr;
+} RTL_SRWLOCK, *PRTL_SRWLOCK;
+
+#define RTL_SRWLOCK_INIT {0}
+
 typedef VOID (NTAPI * WAITORTIMERCALLBACKFUNC) (PVOID, BOOLEAN );
 typedef VOID (NTAPI * PFLS_CALLBACK_FUNCTION) ( PVOID );
 
-- 
1.7.5.4




More information about the wine-patches mailing list