module vrt.ext.unwind
Code Map
module vrt.ext.unwind;
enum _Unwind_Reason_Code
{
NO_REASON,
FOREIGN_EXCEPTION_CAUGHT,
FATAL_PHASE2_ERROR,
FATAL_PHASE1_ERROR,
NORMAL_STOP,
END_OF_STACK,
HANDLER_FOUND,
INSTALL_CONTEXT,
CONTINUE_UNWIND,
}
enum _Unwind_Action
{
SEARCH_PHASE,
CLEANUP_PHASE,
HANDLER_FRAME,
FORCE_UNWIND,
END_OF_STACK,
}
alias _Unwind_Exception_Cleanup_Fn = fn (_Unwind_Reason_Code, _Unwind_Exception*) (void);
struct _Unwind_Exception
{
public:
exception_class: u64;
exception_cleanup: _Unwind_Exception_Cleanup_Fn;
private_1: uintptr_t;
private_2: uintptr_t;
}
struct _Unwind_Context
{
}
fn _Unwind_Resume(_Unwind_Exception*) i32;
fn _Unwind_RaiseException(_Unwind_Exception*) i32;
fn _Unwind_GetLanguageSpecificData(ctx: _Unwind_Context*) u8*;
fn _Unwind_GetRegionStart(ctx: _Unwind_Context*) size_t;
fn _Unwind_GetTextRelBase(ctx: _Unwind_Context*) size_t;
fn _Unwind_GetDataRelBase(ctx: _Unwind_Context*) size_t;
fn _Unwind_GetGR(ctx: _Unwind_Context*, i: i32) size_t;
fn _Unwind_GetIP(ctx: _Unwind_Context*) uintptr_t;
fn _Unwind_SetGR(ctx: _Unwind_Context*, i: i32, n: size_t);
fn _Unwind_SetIP(ctx: _Unwind_Context*, new_value: uintptr_t);