Blame arch/nt64/psxseh.h

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