From 94e958c61a3cd2d20dc2bc118de695615f24f9d2 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Mon, 27 May 2019 13:39:25 +0200 Subject: [PATCH] ntoskrnl: Add a macro to declare a static CRITICAL_SECTION. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/ntoskrnl.exe/ntoskrnl.c | 27 +++------------------------ dlls/ntoskrnl.exe/ntoskrnl_private.h | 7 +++++++ dlls/ntoskrnl.exe/sync.c | 9 +-------- 3 files changed, 11 insertions(+), 32 deletions(-) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index acfbec89b70..c26e411cc7f 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -133,14 +133,7 @@ static int interface_rb_compare( const void *key, const struct wine_rb_entry *en static struct wine_rb_tree device_interfaces = { interface_rb_compare }; -static CRITICAL_SECTION drivers_cs; -static CRITICAL_SECTION_DEBUG critsect_debug = -{ - 0, 0, &drivers_cs, - { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": drivers_cs") } -}; -static CRITICAL_SECTION drivers_cs = { &critsect_debug, -1, 0, 0, 0, 0 }; +DECLARE_CRITICAL_SECTION(drivers_cs); static inline LPCSTR debugstr_us( const UNICODE_STRING *us ) { @@ -286,14 +279,7 @@ void *alloc_kernel_object( POBJECT_TYPE type, HANDLE handle, SIZE_T size, LONG r return header + 1; } -static CRITICAL_SECTION obref_cs; -static CRITICAL_SECTION_DEBUG obref_critsect_debug = -{ - 0, 0, &obref_cs, - { &obref_critsect_debug.ProcessLocksList, &obref_critsect_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": obref_cs") } -}; -static CRITICAL_SECTION obref_cs = { &obref_critsect_debug, -1, 0, 0, 0, 0 }; +DECLARE_CRITICAL_SECTION(obref_cs); /*********************************************************************** * ObDereferenceObject (NTOSKRNL.EXE.@) @@ -384,14 +370,7 @@ static const POBJECT_TYPE *known_types[] = &SeTokenObjectType }; -static CRITICAL_SECTION handle_map_cs; -static CRITICAL_SECTION_DEBUG handle_map_critsect_debug = -{ - 0, 0, &handle_map_cs, - { &handle_map_critsect_debug.ProcessLocksList, &handle_map_critsect_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": handle_map_cs") } -}; -static CRITICAL_SECTION handle_map_cs = { &handle_map_critsect_debug, -1, 0, 0, 0, 0 }; +DECLARE_CRITICAL_SECTION(handle_map_cs); NTSTATUS kernel_object_from_handle( HANDLE handle, POBJECT_TYPE type, void **ret ) { diff --git a/dlls/ntoskrnl.exe/ntoskrnl_private.h b/dlls/ntoskrnl.exe/ntoskrnl_private.h index 864a06001b3..c003788ff2a 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl_private.h +++ b/dlls/ntoskrnl.exe/ntoskrnl_private.h @@ -60,4 +60,11 @@ extern POBJECT_TYPE PsProcessType; extern POBJECT_TYPE PsThreadType; extern POBJECT_TYPE SeTokenObjectType; +#define DECLARE_CRITICAL_SECTION(cs) \ + static CRITICAL_SECTION cs; \ + static CRITICAL_SECTION_DEBUG cs##_debug = \ + { 0, 0, &cs, { &cs##_debug.ProcessLocksList, &cs##_debug.ProcessLocksList }, \ + 0, 0, { (DWORD_PTR)(__FILE__ ": " # cs) }}; \ + static CRITICAL_SECTION cs = { &cs##_debug, -1, 0, 0, 0, 0 }; + #endif diff --git a/dlls/ntoskrnl.exe/sync.c b/dlls/ntoskrnl.exe/sync.c index 07673f1d42b..8b711265c6e 100644 --- a/dlls/ntoskrnl.exe/sync.c +++ b/dlls/ntoskrnl.exe/sync.c @@ -49,14 +49,7 @@ enum object_type TYPE_AUTO_TIMER = 9, }; -static CRITICAL_SECTION sync_cs; -static CRITICAL_SECTION_DEBUG sync_cs_debug = -{ - 0, 0, &sync_cs, - { &sync_cs_debug.ProcessLocksList, &sync_cs_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": sync_cs") } -}; -static CRITICAL_SECTION sync_cs = { &sync_cs_debug, -1, 0, 0, 0, 0 }; +DECLARE_CRITICAL_SECTION(sync_cs); /*********************************************************************** * KeWaitForMultipleObjects (NTOSKRNL.EXE.@)