summaryrefslogtreecommitdiff
path: root/src/inc/clrnt.h
diff options
context:
space:
mode:
authorJonghyun Park <parjong@gmail.com>2017-01-23 19:46:37 +0900
committerJan Vorlicek <janvorli@microsoft.com>2017-01-23 11:46:37 +0100
commit347243f80d62d5aaa5359ef8c8d5331b6d8e4a63 (patch)
tree82fa5ea05a77885661cc070d4d84026bbb4d9536 /src/inc/clrnt.h
parent62ac5f04456e517b76bcfc3d386859a506eed6d1 (diff)
downloadcoreclr-347243f80d62d5aaa5359ef8c8d5331b6d8e4a63.tar.gz
coreclr-347243f80d62d5aaa5359ef8c8d5331b6d8e4a63.tar.bz2
coreclr-347243f80d62d5aaa5359ef8c8d5331b6d8e4a63.zip
[x86/Linux] Enable FEATURE_EH_FUNCLETS (#8889)
* [x86/Linux] (Partially) Enable FEATURE_EH_FUNCLETS * Update CLR ABI Document * Add TODO (for Funclet Prolog/Epilog Gen)
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