summaryrefslogtreecommitdiff
path: root/src/inc/clrnt.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/inc/clrnt.h')
-rw-r--r--src/inc/clrnt.h22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/inc/clrnt.h b/src/inc/clrnt.h
index 9a4601ebaf..08a93a4961 100644
--- a/src/inc/clrnt.h
+++ b/src/inc/clrnt.h
@@ -855,25 +855,25 @@ typedef struct _DISPATCHER_CONTEXT {
#define RUNTIME_FUNCTION__SetBeginAddress(prf,addr) ((prf)->BeginAddress = (addr))
#ifdef WIN64EXCEPTIONS
-EXTERN_C ULONG
+#include "win64unwind.h"
+
+FORCEINLINE
+DWORD
RtlpGetFunctionEndAddress (
__in PT_RUNTIME_FUNCTION FunctionEntry,
- __in ULONG ImageBase
- );
+ __in TADDR ImageBase
+ )
+{
+ PUNWIND_INFO pUnwindInfo = (PUNWIND_INFO)(ImageBase + FunctionEntry->UnwindData);
+
+ return FunctionEntry->BeginAddress + pUnwindInfo->FunctionLength;
+}
#define RUNTIME_FUNCTION__EndAddress(prf, ImageBase) RtlpGetFunctionEndAddress(prf, ImageBase)
#define RUNTIME_FUNCTION__GetUnwindInfoAddress(prf) (prf)->UnwindData
#define RUNTIME_FUNCTION__SetUnwindInfoAddress(prf, addr) do { (prf)->UnwindData = (addr); } while(0)
-#define UNW_FLAG_NHANDLER 0x0 /* any handler */
-#define UNW_FLAG_EHANDLER 0x1 /* filter handler */
-#define UNW_FLAG_UHANDLER 0x2 /* unwind handler */
-
-typedef struct _UNWIND_INFO {
- // dummy
-} UNWIND_INFO, *PUNWIND_INFO;
-
EXTERN_C
NTSYSAPI
PEXCEPTION_ROUTINE