changeset 898:db3f8e7d79d2

Add headers for HP's libunwind, currently unused though.
author Christian Kamm <kamm incasoftware de>
date Thu, 22 Jan 2009 17:57:38 +0100
parents c6f16c3f377b
children 23d36edea021
files runtime/internal/eh.d
diffstat 1 files changed, 26 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/internal/eh.d	Thu Jan 22 17:50:38 2009 +0100
+++ b/runtime/internal/eh.d	Thu Jan 22 17:57:38 2009 +0100
@@ -21,6 +21,8 @@
     version(solaris) version=X86_UNWIND;
 }
 
+//version = HP_LIBUNWIND;
+
 private extern(C) void abort();
 private extern(C) int printf(char*, ...);
 private extern(C) int vprintf(char*, va_list va);
@@ -66,7 +68,30 @@
         ptrdiff_t private_2;
     }
 
-version(X86_UNWIND) 
+// interface to HP's libunwind from http://www.nongnu.org/libunwind/
+version(HP_LIBUNWIND)
+{
+    void __libunwind_Unwind_Resume(_Unwind_Exception *);
+    _Unwind_Reason_Code __libunwind_Unwind_RaiseException(_Unwind_Exception *);
+    ptrdiff_t __libunwind_Unwind_GetLanguageSpecificData(_Unwind_Context_Ptr
+            context);
+    ptrdiff_t __libunwind_Unwind_GetIP(_Unwind_Context_Ptr context);
+    ptrdiff_t __libunwind_Unwind_SetIP(_Unwind_Context_Ptr context,
+            ptrdiff_t new_value);
+    ptrdiff_t __libunwind_Unwind_SetGR(_Unwind_Context_Ptr context, int index,
+            ptrdiff_t new_value);
+    ptrdiff_t __libunwind_Unwind_GetRegionStart(_Unwind_Context_Ptr context);
+
+    alias __libunwind_Unwind_Resume _Unwind_Resume;
+    alias __libunwind_Unwind_RaiseException _Unwind_RaiseException;
+    alias __libunwind_Unwind_GetLanguageSpecificData
+        _Unwind_GetLanguageSpecificData;
+    alias __libunwind_Unwind_GetIP _Unwind_GetIP;
+    alias __libunwind_Unwind_SetIP _Unwind_SetIP;
+    alias __libunwind_Unwind_SetGR _Unwind_SetGR;
+    alias __libunwind_Unwind_GetRegionStart _Unwind_GetRegionStart;
+}
+else version(X86_UNWIND) 
 {
     void _Unwind_Resume(_Unwind_Exception*);
     _Unwind_Reason_Code _Unwind_RaiseException(_Unwind_Exception*);