[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    [PATCH] ntdll: Add stub for RtlInstallFunctionTableCallback on ARM/ARM64
From:       André_Hentschel <nerv () dawncrow ! de>
Date:       2019-03-31 18:24:54
Message-ID: 646ea5d9-1497-7d5b-a13b-a6e46bdb69f5 () dawncrow ! de
[Download RAW message or body]

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__ */
 
-- 
2.17.1


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic