forked from Mirrors/wine-wine
ntdll: Store the PEB lock pointer in the PEB.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>oldstable
parent
844b57e4d8
commit
b31583770f
|
@ -49,15 +49,6 @@
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
|
WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
|
||||||
|
|
||||||
static RTL_CRITICAL_SECTION peb_lock;
|
|
||||||
static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
|
|
||||||
{
|
|
||||||
0, 0, &peb_lock,
|
|
||||||
{ &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList },
|
|
||||||
0, 0, { (DWORD_PTR)(__FILE__ ": peb_lock") }
|
|
||||||
};
|
|
||||||
static RTL_CRITICAL_SECTION peb_lock = { &critsect_debug, -1, 0, 0, 0, 0 };
|
|
||||||
|
|
||||||
#ifdef __i386__
|
#ifdef __i386__
|
||||||
#define DEFINE_FASTCALL4_ENTRYPOINT( name ) \
|
#define DEFINE_FASTCALL4_ENTRYPOINT( name ) \
|
||||||
__ASM_STDCALL_FUNC( name, 16, \
|
__ASM_STDCALL_FUNC( name, 16, \
|
||||||
|
@ -380,7 +371,7 @@ NTSTATUS WINAPI vDbgPrintExWithPrefix( LPCSTR prefix, ULONG id, ULONG level, LPC
|
||||||
*/
|
*/
|
||||||
VOID WINAPI RtlAcquirePebLock(void)
|
VOID WINAPI RtlAcquirePebLock(void)
|
||||||
{
|
{
|
||||||
RtlEnterCriticalSection( &peb_lock );
|
RtlEnterCriticalSection( NtCurrentTeb()->Peb->FastPebLock );
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
@ -388,7 +379,7 @@ VOID WINAPI RtlAcquirePebLock(void)
|
||||||
*/
|
*/
|
||||||
VOID WINAPI RtlReleasePebLock(void)
|
VOID WINAPI RtlReleasePebLock(void)
|
||||||
{
|
{
|
||||||
RtlLeaveCriticalSection( &peb_lock );
|
RtlLeaveCriticalSection( NtCurrentTeb()->Peb->FastPebLock );
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
|
@ -69,6 +69,15 @@ static RTL_BITMAP tls_expansion_bitmap;
|
||||||
static RTL_BITMAP fls_bitmap;
|
static RTL_BITMAP fls_bitmap;
|
||||||
static int nb_threads = 1;
|
static int nb_threads = 1;
|
||||||
|
|
||||||
|
static RTL_CRITICAL_SECTION peb_lock;
|
||||||
|
static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
|
||||||
|
{
|
||||||
|
0, 0, &peb_lock,
|
||||||
|
{ &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList },
|
||||||
|
0, 0, { (DWORD_PTR)(__FILE__ ": peb_lock") }
|
||||||
|
};
|
||||||
|
static RTL_CRITICAL_SECTION peb_lock = { &critsect_debug, -1, 0, 0, 0, 0 };
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* get_unicode_string
|
* get_unicode_string
|
||||||
*
|
*
|
||||||
|
@ -292,6 +301,7 @@ HANDLE thread_init(void)
|
||||||
MEM_COMMIT | MEM_TOP_DOWN, PAGE_READWRITE );
|
MEM_COMMIT | MEM_TOP_DOWN, PAGE_READWRITE );
|
||||||
peb = addr;
|
peb = addr;
|
||||||
|
|
||||||
|
peb->FastPebLock = &peb_lock;
|
||||||
peb->ProcessParameters = ¶ms;
|
peb->ProcessParameters = ¶ms;
|
||||||
peb->TlsBitmap = &tls_bitmap;
|
peb->TlsBitmap = &tls_bitmap;
|
||||||
peb->TlsExpansionBitmap = &tls_expansion_bitmap;
|
peb->TlsExpansionBitmap = &tls_expansion_bitmap;
|
||||||
|
|
Loading…
Reference in New Issue