From ebc80ad1c41084b5a4fb94b460283d0a31975d33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Thu, 15 Nov 2018 00:08:48 +0100 Subject: [PATCH] ntdll: Add stubs for RtlAddFunctionTable and RtlDeleteFunctionTable on ARM64. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46143 Signed-off-by: André Hentschel Signed-off-by: Alexandre Julliard --- .../api-ms-win-core-rtlsupport-l1-1-0.spec | 4 ++-- dlls/kernel32/kernel32.spec | 4 ++-- dlls/ntdll/ntdll.spec | 4 ++-- dlls/ntdll/signal_arm64.c | 19 +++++++++++++++++++ include/winnt.h | 3 +++ 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/dlls/api-ms-win-core-rtlsupport-l1-1-0/api-ms-win-core-rtlsupport-l1-1-0.spec b/dlls/api-ms-win-core-rtlsupport-l1-1-0/api-ms-win-core-rtlsupport-l1-1-0.spec index 428fd06bb75..1c5744d7f08 100644 --- a/dlls/api-ms-win-core-rtlsupport-l1-1-0/api-ms-win-core-rtlsupport-l1-1-0.spec +++ b/dlls/api-ms-win-core-rtlsupport-l1-1-0/api-ms-win-core-rtlsupport-l1-1-0.spec @@ -1,9 +1,9 @@ -@ cdecl -arch=arm,x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable +@ cdecl -arch=arm,arm64,x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable @ stdcall -norelay RtlCaptureContext(ptr) ntdll.RtlCaptureContext @ stdcall RtlCaptureStackBackTrace(long long ptr ptr) ntdll.RtlCaptureStackBackTrace @ stdcall RtlCompareMemory(ptr ptr long) ntdll.RtlCompareMemory @ stdcall -arch=x86_64 RtlCopyMemory(ptr ptr long) ntdll.RtlCopyMemory -@ cdecl -arch=arm,x86_64 RtlDeleteFunctionTable(ptr) ntdll.RtlDeleteFunctionTable +@ cdecl -arch=arm,arm64,x86_64 RtlDeleteFunctionTable(ptr) ntdll.RtlDeleteFunctionTable @ stdcall RtlFillMemory(ptr long long) ntdll.RtlFillMemory @ cdecl -arch=x86_64 RtlInstallFunctionTableCallback(long long long ptr ptr wstr) ntdll.RtlInstallFunctionTableCallback @ stdcall -arch=arm,x86_64 RtlLookupFunctionEntry(long ptr ptr) ntdll.RtlLookupFunctionEntry diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 5c2e426130f..85fce3725aa 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -1284,12 +1284,12 @@ @ stdcall ResolveLocaleName(wstr ptr long) @ stdcall RestoreLastError(long) ntdll.RtlRestoreLastWin32Error @ stdcall ResumeThread(long) -@ cdecl -arch=arm,x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable +@ cdecl -arch=arm,arm64,x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable @ stdcall -norelay RtlCaptureContext(ptr) ntdll.RtlCaptureContext @ stdcall RtlCaptureStackBackTrace(long long ptr ptr) ntdll.RtlCaptureStackBackTrace @ stdcall -arch=x86_64 RtlCompareMemory(ptr ptr long) ntdll.RtlCompareMemory @ stdcall -arch=x86_64 RtlCopyMemory(ptr ptr long) ntdll.RtlCopyMemory -@ cdecl -arch=arm,x86_64 RtlDeleteFunctionTable(ptr) ntdll.RtlDeleteFunctionTable +@ cdecl -arch=arm,arm64,x86_64 RtlDeleteFunctionTable(ptr) ntdll.RtlDeleteFunctionTable @ stdcall RtlFillMemory(ptr long long) ntdll.RtlFillMemory @ cdecl -arch=x86_64 RtlInstallFunctionTableCallback(long long long ptr ptr ptr) ntdll.RtlInstallFunctionTableCallback @ stdcall -arch=arm,x86_64 RtlLookupFunctionEntry(long ptr ptr) ntdll.RtlLookupFunctionEntry diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 3486a78fe36..1b0bd7f53fa 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -433,7 +433,7 @@ # @ stub RtlAddCompoundAce @ stdcall RtlAddMandatoryAce(ptr long long long long ptr) # @ stub RtlAddRange -@ cdecl -arch=arm,x86_64 RtlAddFunctionTable(ptr long long) +@ cdecl -arch=arm,arm64,x86_64 RtlAddFunctionTable(ptr long long) @ stdcall RtlAddRefActivationContext(ptr) # @ stub RtlAddRefMemoryStream @ stdcall RtlAddVectoredContinueHandler(long ptr) @@ -543,7 +543,7 @@ @ stdcall RtlDeleteCriticalSection(ptr) @ stub RtlDeleteElementGenericTable @ stub RtlDeleteElementGenericTableAvl -@ cdecl -arch=arm,x86_64 RtlDeleteFunctionTable(ptr) +@ cdecl -arch=arm,arm64,x86_64 RtlDeleteFunctionTable(ptr) @ stub RtlDeleteNoSplay @ stub RtlDeleteOwnersRanges @ stub RtlDeleteRange diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c index 91a7e3beec9..0ab402ef70c 100644 --- a/dlls/ntdll/signal_arm64.c +++ b/dlls/ntdll/signal_arm64.c @@ -947,6 +947,25 @@ void signal_init_process(void) } +/********************************************************************** + * RtlAddFunctionTable (NTDLL.@) + */ +BOOLEAN CDECL RtlAddFunctionTable( RUNTIME_FUNCTION *table, DWORD count, ULONG_PTR addr ) +{ + FIXME( "%p %u %lx: stub\n", table, count, addr ); + return TRUE; +} + + +/********************************************************************** + * RtlDeleteFunctionTable (NTDLL.@) + */ +BOOLEAN CDECL RtlDeleteFunctionTable( RUNTIME_FUNCTION *table ) +{ + FIXME( "%p: stub\n", table ); + return TRUE; +} + /*********************************************************************** * RtlUnwind (NTDLL.@) */ diff --git a/include/winnt.h b/include/winnt.h index 035d5bd0978..742b47bfb25 100644 --- a/include/winnt.h +++ b/include/winnt.h @@ -1875,6 +1875,9 @@ typedef struct _CONTEXT DWORD64 Wvr[ARM64_MAX_WATCHPOINTS]; /* 380 */ } CONTEXT; +BOOLEAN CDECL RtlAddFunctionTable(RUNTIME_FUNCTION*,DWORD,ULONG_PTR); +BOOLEAN CDECL RtlDeleteFunctionTable(RUNTIME_FUNCTION*); + #endif /* __aarch64__ */