Module: wine Branch: master Commit: 101bb94a69075cfddc527efda25772dbf4b76adf URL: https://gitlab.winehq.org/wine/wine/-/commit/101bb94a69075cfddc527efda25772d...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Nov 20 14:31:36 2023 +0100
ntdll: Remove the signal_exit_thread wrapper.
---
dlls/ntdll/unix/signal_arm.c | 6 ------ dlls/ntdll/unix/signal_arm64.c | 5 ----- dlls/ntdll/unix/signal_i386.c | 6 ------ dlls/ntdll/unix/signal_x86_64.c | 6 ------ dlls/ntdll/unix/thread.c | 8 ++++---- dlls/ntdll/unix/unix_private.h | 3 +-- 6 files changed, 5 insertions(+), 29 deletions(-)
diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c index 07327718c0b..f255328fc73 100644 --- a/dlls/ntdll/unix/signal_arm.c +++ b/dlls/ntdll/unix/signal_arm.c @@ -1662,12 +1662,6 @@ __ASM_GLOBAL_FUNC( signal_start_thread, "bl " __ASM_NAME("call_init_thunk") )
-/*********************************************************************** - * signal_exit_thread - */ -__ASM_GLOBAL_FUNC( signal_exit_thread, "bx r1" ) - - /*********************************************************************** * __wine_syscall_dispatcher */ diff --git a/dlls/ntdll/unix/signal_arm64.c b/dlls/ntdll/unix/signal_arm64.c index 6bf100351e1..0208913010d 100644 --- a/dlls/ntdll/unix/signal_arm64.c +++ b/dlls/ntdll/unix/signal_arm64.c @@ -1764,11 +1764,6 @@ __ASM_GLOBAL_FUNC( signal_start_thread, "1:\tmov sp, x4\n\t" "bl " __ASM_NAME("call_init_thunk") )
-/*********************************************************************** - * signal_exit_thread - */ -__ASM_GLOBAL_FUNC( signal_exit_thread, "br x1" ) -
/*********************************************************************** * __wine_syscall_dispatcher diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c index a1454d8d291..a5aa9623b07 100644 --- a/dlls/ntdll/unix/signal_i386.c +++ b/dlls/ntdll/unix/signal_i386.c @@ -2525,12 +2525,6 @@ __ASM_GLOBAL_FUNC( signal_start_thread, "call " __ASM_NAME("call_init_thunk") )
-/*********************************************************************** - * signal_exit_thread - */ -__ASM_GLOBAL_FUNC( signal_exit_thread, "jmp *8(%esp)" ) - - /*********************************************************************** * __wine_syscall_dispatcher */ diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c index b7bed4e3702..851655a0b5a 100644 --- a/dlls/ntdll/unix/signal_x86_64.c +++ b/dlls/ntdll/unix/signal_x86_64.c @@ -2572,12 +2572,6 @@ __ASM_GLOBAL_FUNC( signal_start_thread, "call " __ASM_NAME("call_init_thunk"))
-/*********************************************************************** - * signal_exit_thread - */ -__ASM_GLOBAL_FUNC( signal_exit_thread, "jmp *%rsi" ) - - /*********************************************************************** * __wine_syscall_dispatcher */ diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c index 2a9bc41e788..c4653c6a769 100644 --- a/dlls/ntdll/unix/thread.c +++ b/dlls/ntdll/unix/thread.c @@ -1078,7 +1078,7 @@ static void contexts_from_server( CONTEXT *context, context_t server_contexts[2] /*********************************************************************** * pthread_exit_wrapper */ -static void pthread_exit_wrapper( int status ) +static DECLSPEC_NORETURN void pthread_exit_wrapper( int status ) { close( ntdll_get_thread_data()->wait_fd[0] ); close( ntdll_get_thread_data()->wait_fd[1] ); @@ -1404,7 +1404,7 @@ void abort_thread( int status ) { pthread_sigmask( SIG_BLOCK, &server_block_set, NULL ); if (InterlockedDecrement( &nb_threads ) <= 0) abort_process( status ); - signal_exit_thread( status, pthread_exit_wrapper, NtCurrentTeb() ); + pthread_exit_wrapper( status ); }
@@ -1439,7 +1439,7 @@ static DECLSPEC_NORETURN void exit_thread( int status ) virtual_free_teb( teb ); } } - signal_exit_thread( status, pthread_exit_wrapper, NtCurrentTeb() ); + pthread_exit_wrapper( status ); }
@@ -1449,7 +1449,7 @@ static DECLSPEC_NORETURN void exit_thread( int status ) void exit_process( int status ) { pthread_sigmask( SIG_BLOCK, &server_block_set, NULL ); - signal_exit_thread( get_unix_exit_code( status ), process_exit_wrapper, NtCurrentTeb() ); + process_exit_wrapper( get_unix_exit_code( status )); }
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h index ef116bee917..9aeacc7b823 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h @@ -203,7 +203,7 @@ extern unsigned int server_queue_process_apc( HANDLE process, const apc_call_t * extern int server_get_unix_fd( HANDLE handle, unsigned int wanted_access, int *unix_fd, int *needs_close, enum server_fd_type *type, unsigned int *options ); extern void wine_server_send_fd( int fd ); -extern void process_exit_wrapper( int status ); +extern void process_exit_wrapper( int status ) DECLSPEC_NORETURN; extern size_t server_init_process(void); extern void server_init_process_done(void); extern void server_init_thread( void *entry_point, BOOL *suspend ); @@ -276,7 +276,6 @@ extern void signal_free_thread( TEB *teb ); extern void signal_init_process(void); extern void DECLSPEC_NORETURN signal_start_thread( PRTL_THREAD_START_ROUTINE entry, void *arg, BOOL suspend, TEB *teb ); -extern void DECLSPEC_NORETURN signal_exit_thread( int status, void (*func)(int), TEB *teb ); extern SYSTEM_SERVICE_TABLE KeServiceDescriptorTable[4]; extern void __wine_syscall_dispatcher(void); extern void DECLSPEC_NORETURN __wine_syscall_dispatcher_return( void *frame, ULONG_PTR retval );