Signed-off-by: André Hentschel nerv@dawncrow.de --- dlls/ntdll/ntdll.spec | 2 +- dlls/ntdll/signal_arm.c | 10 ++++++++++ dlls/ntdll/signal_arm64.c | 10 ++++++++++ include/winnt.h | 6 ++++++ 4 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 0ff695aa9ca..233c4ef8797 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -722,7 +722,7 @@ # @ stub RtlInitializeStackTraceDataBase @ stub RtlInsertElementGenericTable @ stdcall RtlInsertElementGenericTableAvl(ptr ptr long ptr) -@ cdecl -arch=x86_64 RtlInstallFunctionTableCallback(long long long ptr ptr wstr) +@ cdecl -arch=arm,arm64,x86_64 RtlInstallFunctionTableCallback(long long long ptr ptr wstr) @ stdcall RtlInt64ToUnicodeString(int64 long ptr) @ stdcall RtlIntegerToChar(long long long ptr) @ stdcall RtlIntegerToUnicodeString(long long ptr) diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c index 75a1133b4fd..32205ea39c3 100644 --- a/dlls/ntdll/signal_arm.c +++ b/dlls/ntdll/signal_arm.c @@ -1058,6 +1058,16 @@ BOOLEAN CDECL RtlAddFunctionTable( RUNTIME_FUNCTION *table, DWORD count, DWORD a return TRUE; }
+/********************************************************************** + * RtlInstallFunctionTableCallback (NTDLL.@) + */ +BOOLEAN CDECL RtlInstallFunctionTableCallback( DWORD table, DWORD base, DWORD length, + PGET_RUNTIME_FUNCTION_CALLBACK callback, PVOID context, PCWSTR dll ) +{ + FIXME( "%x %x %d %p %p %s: stub\n", table, base, length, callback, context, wine_dbgstr_w(dll) ); + return TRUE; +} + /************************************************************************* * RtlAddGrowableFunctionTable (NTDLL.@) */ diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c index 1d26125209e..423da258705 100644 --- a/dlls/ntdll/signal_arm64.c +++ b/dlls/ntdll/signal_arm64.c @@ -977,6 +977,16 @@ BOOLEAN CDECL RtlAddFunctionTable( RUNTIME_FUNCTION *table, DWORD count, ULONG_P return TRUE; }
+/********************************************************************** + * RtlInstallFunctionTableCallback (NTDLL.@) + */ +BOOLEAN CDECL RtlInstallFunctionTableCallback( ULONG_PTR table, ULONG_PTR base, DWORD length, + PGET_RUNTIME_FUNCTION_CALLBACK callback, PVOID context, PCWSTR dll ) +{ + FIXME( "%lx %lx %d %p %p %s: stub\n", table, base, length, callback, context, wine_dbgstr_w(dll) ); + return TRUE; +} +
/************************************************************************* * RtlAddGrowableFunctionTable (NTDLL.@) diff --git a/include/winnt.h b/include/winnt.h index 5694ad7c01f..28e87c7dff3 100644 --- a/include/winnt.h +++ b/include/winnt.h @@ -1745,8 +1745,11 @@ typedef struct _CONTEXT ULONG Padding2[2]; /* 198 */ } CONTEXT;
+typedef PRUNTIME_FUNCTION (CALLBACK *PGET_RUNTIME_FUNCTION_CALLBACK)(DWORD,PVOID); + BOOLEAN CDECL RtlAddFunctionTable(RUNTIME_FUNCTION*,DWORD,DWORD); BOOLEAN CDECL RtlDeleteFunctionTable(RUNTIME_FUNCTION*); +BOOLEAN CDECL RtlInstallFunctionTableCallback(DWORD,DWORD,DWORD,PGET_RUNTIME_FUNCTION_CALLBACK,PVOID,PCWSTR); PRUNTIME_FUNCTION WINAPI RtlLookupFunctionEntry(ULONG_PTR,DWORD*,UNWIND_HISTORY_TABLE*);
#endif /* __arm__ */ @@ -1878,8 +1881,11 @@ typedef struct _CONTEXT DWORD64 Wvr[ARM64_MAX_WATCHPOINTS]; /* 380 */ } CONTEXT;
+typedef PRUNTIME_FUNCTION (CALLBACK *PGET_RUNTIME_FUNCTION_CALLBACK)(DWORD64,PVOID); + BOOLEAN CDECL RtlAddFunctionTable(RUNTIME_FUNCTION*,DWORD,ULONG_PTR); BOOLEAN CDECL RtlDeleteFunctionTable(RUNTIME_FUNCTION*); +BOOLEAN CDECL RtlInstallFunctionTableCallback(ULONG_PTR,ULONG_PTR,DWORD,PGET_RUNTIME_FUNCTION_CALLBACK,PVOID,PCWSTR);
#endif /* __aarch64__ */