Mercurial > projects > ldc
comparison runtime/internal/eh.d @ 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 | 4a5eea0334e5 |
comparison
equal
deleted
inserted
replaced
897:c6f16c3f377b | 898:db3f8e7d79d2 |
---|---|
18 } | 18 } |
19 version(X86_64) { | 19 version(X86_64) { |
20 version(linux) version=X86_UNWIND; | 20 version(linux) version=X86_UNWIND; |
21 version(solaris) version=X86_UNWIND; | 21 version(solaris) version=X86_UNWIND; |
22 } | 22 } |
23 | |
24 //version = HP_LIBUNWIND; | |
23 | 25 |
24 private extern(C) void abort(); | 26 private extern(C) void abort(); |
25 private extern(C) int printf(char*, ...); | 27 private extern(C) int printf(char*, ...); |
26 private extern(C) int vprintf(char*, va_list va); | 28 private extern(C) int vprintf(char*, va_list va); |
27 | 29 |
64 _Unwind_Exception_Cleanup_Fn exception_cleanup; | 66 _Unwind_Exception_Cleanup_Fn exception_cleanup; |
65 ptrdiff_t private_1; | 67 ptrdiff_t private_1; |
66 ptrdiff_t private_2; | 68 ptrdiff_t private_2; |
67 } | 69 } |
68 | 70 |
69 version(X86_UNWIND) | 71 // interface to HP's libunwind from http://www.nongnu.org/libunwind/ |
72 version(HP_LIBUNWIND) | |
73 { | |
74 void __libunwind_Unwind_Resume(_Unwind_Exception *); | |
75 _Unwind_Reason_Code __libunwind_Unwind_RaiseException(_Unwind_Exception *); | |
76 ptrdiff_t __libunwind_Unwind_GetLanguageSpecificData(_Unwind_Context_Ptr | |
77 context); | |
78 ptrdiff_t __libunwind_Unwind_GetIP(_Unwind_Context_Ptr context); | |
79 ptrdiff_t __libunwind_Unwind_SetIP(_Unwind_Context_Ptr context, | |
80 ptrdiff_t new_value); | |
81 ptrdiff_t __libunwind_Unwind_SetGR(_Unwind_Context_Ptr context, int index, | |
82 ptrdiff_t new_value); | |
83 ptrdiff_t __libunwind_Unwind_GetRegionStart(_Unwind_Context_Ptr context); | |
84 | |
85 alias __libunwind_Unwind_Resume _Unwind_Resume; | |
86 alias __libunwind_Unwind_RaiseException _Unwind_RaiseException; | |
87 alias __libunwind_Unwind_GetLanguageSpecificData | |
88 _Unwind_GetLanguageSpecificData; | |
89 alias __libunwind_Unwind_GetIP _Unwind_GetIP; | |
90 alias __libunwind_Unwind_SetIP _Unwind_SetIP; | |
91 alias __libunwind_Unwind_SetGR _Unwind_SetGR; | |
92 alias __libunwind_Unwind_GetRegionStart _Unwind_GetRegionStart; | |
93 } | |
94 else version(X86_UNWIND) | |
70 { | 95 { |
71 void _Unwind_Resume(_Unwind_Exception*); | 96 void _Unwind_Resume(_Unwind_Exception*); |
72 _Unwind_Reason_Code _Unwind_RaiseException(_Unwind_Exception*); | 97 _Unwind_Reason_Code _Unwind_RaiseException(_Unwind_Exception*); |
73 ptrdiff_t _Unwind_GetLanguageSpecificData(_Unwind_Context_Ptr context); | 98 ptrdiff_t _Unwind_GetLanguageSpecificData(_Unwind_Context_Ptr context); |
74 ptrdiff_t _Unwind_GetIP(_Unwind_Context_Ptr context); | 99 ptrdiff_t _Unwind_GetIP(_Unwind_Context_Ptr context); |