#ifndef _PSXSEH_H_ #define _PSXSEH_H_ enum __unwind_reason_code; struct __exception_record; struct __dispatcher_context; struct __unwind_exception; struct __unwind_context; typedef void __thread_context; typedef enum __unwind_reason_code(*__unwind_personality_routine)( int, int, uintptr_t, struct __unwind_exception *, struct __unwind_context *); typedef void (*__unwind_exception_cleanup_routine)( enum __unwind_reason_code, struct __unwind_exception *); struct __seh_vtbl { int (*seh_exception_filter)( struct __exception_record *, void *, __thread_context *, struct __dispatcher_context *, __unwind_personality_routine); int (*seh_exception_handler)( struct __exception_record *, uintptr_t, __thread_context *, struct __dispatcher_context *); int (*seh_unwind_raise_exception)( struct __unwind_exception *); void (*seh_unwind_delete_exception)( struct __unwind_exception *); void (*seh_unwind_resume)( struct __unwind_exception *); int (*seh_unwind_resume_or_rethrow)( struct __unwind_exception *); int (*seh_unwind_force)( struct __unwind_exception *, int (*)( int, int, uintptr_t, struct __unwind_exception *, struct __unwind_context *, void *), void *); void * (*seh_unwind_get_language_specific_data)( struct __unwind_context *); int (*seh_unwind_backtrace)( enum __unwind_reason_code (*)( struct __unwind_context *, void *), void *); int (*seh_unwind_calltrace)(); uintptr_t (*seh_unwind_get_ip)(const struct __unwind_context *); void (*seh_unwind_set_ip)(struct __unwind_context *, uintptr_t); uintptr_t (*seh_unwind_get_gr)(const struct __unwind_context *, int); void (*seh_unwind_set_gr)(struct __unwind_context *, int, uintptr_t); uintptr_t (*seh_unwind_get_data_rel_base)(const struct __unwind_context *); uintptr_t (*seh_unwind_get_text_rel_base)(const struct __unwind_context *); uintptr_t (*seh_unwind_get_cfa)(const struct __unwind_context *); uintptr_t (*seh_unwind_get_ip_info)(const struct __unwind_context *, int *); uintptr_t (*seh_unwind_get_region_start)(const struct __unwind_context *); void * (*seh_unwind_find_enclosing_function)(const void *); int (*__seh_vtbl_reserved[12]); }; #endif