Alexandre Julliard : ntdll: Make the reserved area functions static.
Alexandre Julliard
julliard at winehq.org
Wed Sep 2 15:24:32 CDT 2020
Module: wine
Branch: master
Commit: 7b96e82fd569bc3b261be147abe49a822f14d4e0
URL: https://source.winehq.org/git/wine.git/?a=commit;h=7b96e82fd569bc3b261be147abe49a822f14d4e0
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Sep 2 16:29:35 2020 +0200
ntdll: Make the reserved area functions static.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/unix/loader.c | 59 +++---------------------------------------
dlls/ntdll/unix/unix_private.h | 5 ----
dlls/ntdll/unix/virtual.c | 12 +++++----
3 files changed, 11 insertions(+), 65 deletions(-)
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 73d4ceee14..dcbe4eff0f 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1406,43 +1406,12 @@ static void start_main_thread(void)
#ifdef __APPLE__
-struct apple_stack_info
-{
- void *stack;
- size_t desired_size;
-};
-
static void *apple_wine_thread( void *arg )
{
start_main_thread();
return NULL;
}
-/***********************************************************************
- * apple_alloc_thread_stack
- *
- * Callback for mmap_enum_reserved_areas to allocate space for
- * the secondary thread's stack.
- */
-#ifndef _WIN64
-static int CDECL apple_alloc_thread_stack( void *base, size_t size, void *arg )
-{
- struct apple_stack_info *info = arg;
-
- /* For mysterious reasons, putting the thread stack at the very top
- * of the address space causes subsequent execs to fail, even on the
- * child side of a fork. Avoid the top 16MB. */
- char * const limit = (char*)0xff000000;
- if ((char *)base >= limit) return 0;
- if (size > limit - (char*)base)
- size = limit - (char*)base;
- if (size < info->desired_size) return 0;
- info->stack = wine_anon_mmap( (char *)base + size - info->desired_size,
- info->desired_size, PROT_READ|PROT_WRITE, MAP_FIXED );
- return (info->stack != (void *)-1);
-}
-#endif
-
/***********************************************************************
* apple_create_wine_thread
*
@@ -1453,33 +1422,13 @@ static int CDECL apple_alloc_thread_stack( void *base, size_t size, void *arg )
*/
static void apple_create_wine_thread( void *arg )
{
- int success = 0;
pthread_t thread;
pthread_attr_t attr;
- if (!pthread_attr_init( &attr ))
- {
-#ifndef _WIN64
- struct apple_stack_info info;
-
- /* Try to put the new thread's stack in the reserved area. If this
- * fails, just let it go wherever. It'll be a waste of space, but we
- * can go on. */
- if (!pthread_attr_getstacksize( &attr, &info.desired_size ) &&
- mmap_enum_reserved_areas( apple_alloc_thread_stack, &info, 1 ))
- {
- mmap_remove_reserved_area( info.stack, info.desired_size );
- pthread_attr_setstackaddr( &attr, (char*)info.stack + info.desired_size );
- }
-#endif
-
- if (!pthread_attr_setdetachstate( &attr, PTHREAD_CREATE_JOINABLE ) &&
- !pthread_create( &thread, &attr, apple_wine_thread, NULL ))
- success = 1;
-
- pthread_attr_destroy( &attr );
- }
- if (!success) exit(1);
+ pthread_attr_init( &attr );
+ pthread_attr_setdetachstate( &attr, PTHREAD_CREATE_JOINABLE );
+ if (pthread_create( &thread, &attr, apple_wine_thread, NULL )) exit(1);
+ pthread_attr_destroy( &attr );
}
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index 0a21a059b4..f71963f4a9 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -103,11 +103,6 @@ extern LONGLONG CDECL fast_RtlGetSystemTimePrecise(void) DECLSPEC_HIDDEN;
extern NTSTATUS CDECL fast_wait_cv( RTL_CONDITION_VARIABLE *variable, const void *value,
const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
-void CDECL mmap_add_reserved_area( void *addr, SIZE_T size ) DECLSPEC_HIDDEN;
-void CDECL mmap_remove_reserved_area( void *addr, SIZE_T size ) DECLSPEC_HIDDEN;
-int CDECL mmap_is_in_reserved_area( void *addr, SIZE_T size ) DECLSPEC_HIDDEN;
-int CDECL mmap_enum_reserved_areas( int (CDECL *enum_func)(void *base, SIZE_T size, void *arg), void *arg,
- int top_down ) DECLSPEC_HIDDEN;
extern NTSTATUS CDECL get_initial_environment( WCHAR **wargv[], WCHAR *env, SIZE_T *size ) DECLSPEC_HIDDEN;
extern NTSTATUS CDECL get_startup_info( startup_info_t *info, SIZE_T *total_size, SIZE_T *info_size ) DECLSPEC_HIDDEN;
extern NTSTATUS CDECL get_dynamic_environment( WCHAR *env, SIZE_T *size ) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 58c84caab5..3eba5c0a9d 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -212,6 +212,8 @@ static inline BOOL is_inside_signal_stack( void *ptr )
}
+static void mmap_add_reserved_area( void *addr, SIZE_T size );
+
static void reserve_area( void *addr, void *end )
{
#ifdef __APPLE__
@@ -351,7 +353,7 @@ static void mmap_init( const struct preload_info *preload_info )
#endif
}
-void CDECL mmap_add_reserved_area( void *addr, SIZE_T size )
+static void mmap_add_reserved_area( void *addr, SIZE_T size )
{
struct reserved_area *area;
struct list *ptr;
@@ -400,7 +402,7 @@ void CDECL mmap_add_reserved_area( void *addr, SIZE_T size )
}
}
-void CDECL mmap_remove_reserved_area( void *addr, SIZE_T size )
+static void mmap_remove_reserved_area( void *addr, SIZE_T size )
{
struct reserved_area *area;
struct list *ptr;
@@ -460,7 +462,7 @@ void CDECL mmap_remove_reserved_area( void *addr, SIZE_T size )
}
}
-int CDECL mmap_is_in_reserved_area( void *addr, SIZE_T size )
+static int mmap_is_in_reserved_area( void *addr, SIZE_T size )
{
struct reserved_area *area;
struct list *ptr;
@@ -477,8 +479,8 @@ int CDECL mmap_is_in_reserved_area( void *addr, SIZE_T size )
return 0;
}
-int CDECL mmap_enum_reserved_areas( int (CDECL *enum_func)(void *base, SIZE_T size, void *arg),
- void *arg, int top_down )
+static int mmap_enum_reserved_areas( int (CDECL *enum_func)(void *base, SIZE_T size, void *arg),
+ void *arg, int top_down )
{
int ret = 0;
struct list *ptr;
More information about the wine-cvs
mailing list