Alexandre Julliard : wow64: Make the syscall dispatcher point to the wow64cpu syscall wrapper.
Module: wine Branch: master Commit: 9f24bc44bcb5e147e46a74de4e8d570641aa1377 URL: https://source.winehq.org/git/wine.git/?a=commit;h=9f24bc44bcb5e147e46a74de4... Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Aug 4 12:06:27 2021 +0200 wow64: Make the syscall dispatcher point to the wow64cpu syscall wrapper. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wow64/syscall.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/dlls/wow64/syscall.c b/dlls/wow64/syscall.c index 2fd9f309b1b..e120ed022cd 100644 --- a/dlls/wow64/syscall.c +++ b/dlls/wow64/syscall.c @@ -62,8 +62,16 @@ struct mem_header BYTE data[1]; }; +static void **pWow64Transition; +static void **p__wine_syscall_dispatcher; static SYSTEM_DLL_INIT_BLOCK *pLdrSystemDllInitBlock; +/* cpu backend dll functions */ +static void * (WINAPI *pBTCpuGetBopCode)(void); +static void (WINAPI *pBTCpuProcessInit)(void); +static void (WINAPI *pBTCpuSimulate)(void); + + void *dummy = RtlUnwind; BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, void *reserved ) @@ -400,9 +408,17 @@ static void process_init(void) GET_PTR( LdrSystemDllInitBlock ); module = (HMODULE)(ULONG_PTR)pLdrSystemDllInitBlock->ntdll_handle; + GET_PTR( Wow64Transition ); + GET_PTR( __wine_syscall_dispatcher ); init_syscall_table( module ); - load_cpu_dll(); + module = load_cpu_dll(); + GET_PTR( BTCpuGetBopCode ); + GET_PTR( BTCpuProcessInit ); + GET_PTR( BTCpuSimulate ); + + pBTCpuProcessInit(); + *pWow64Transition = *p__wine_syscall_dispatcher = pBTCpuGetBopCode(); init_file_redirects();
participants (1)
-
Alexandre Julliard