sdk-core v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Loading...
Searching...
No Matches
excepman.h
Go to the documentation of this file.
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright 2001-2004, ps2dev - http://www.ps2dev.org
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
16
17#ifndef __EXCEPMAN_H__
18#define __EXCEPMAN_H__
19
20#include <types.h>
21#include <irx.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* From any r3000's cop0 documentation */
29#define IOP_EXCEPTION_INT 0
31#define IOP_EXCEPTION_MOD 1
33#define IOP_EXCEPTION_TLBL 2
35#define IOP_EXCEPTION_TLBS 3
37#define IOP_EXCEPTION_ADEL 4
39#define IOP_EXCEPTION_ADES 5
41#define IOP_EXCEPTION_IBE 6
43#define IOP_EXCEPTION_DBE 7
45#define IOP_EXCEPTION_SYS 8
47#define IOP_EXCEPTION_BP 9
49#define IOP_EXCEPTION_RI 10
51#define IOP_EXCEPTION_CPU 11
53#define IOP_EXCEPTION_OVF 12
55#define IOP_EXCEPTION_R13 13
57#define IOP_EXCEPTION_R14 14
59#define IOP_EXCEPTION_HDB 15
60
62{
63 struct _exception_handler_struct_t* next;
64 int info;
65 u32 funccode[];
66} exception_handler_struct_t;
67
68typedef exception_handler_struct_t* exception_handler_t;
69
70extern void* GetExHandlersTable();
71
73extern int RegisterExceptionHandler(int exception, exception_handler_t handler);
74extern int RegisterPriorityExceptionHandler(int exception, int priority, exception_handler_t handler);
75extern int RegisterDefaultExceptionHandler(exception_handler_t handler);
76extern int ReleaseExceptionHandler(int exception, exception_handler_t handler);
77extern int ReleaseDefaultExceptionHandler(exception_handler_t handler);
78
79#define excepman_IMPORTS_start DECLARE_IMPORT_TABLE(excepman, 1, 2)
80#define excepman_IMPORTS_end END_IMPORT_TABLE
81
82#define I_GetExHandlersTable DECLARE_IMPORT(3, GetExHandlersTable)
83#define I_RegisterExceptionHandler DECLARE_IMPORT(4, RegisterExceptionHandler)
84#define I_RegisterPriorityExceptionHandler DECLARE_IMPORT(5, RegisterPriorityExceptionHandler)
85#define I_RegisterDefaultExceptionHandler DECLARE_IMPORT(6, RegisterDefaultExceptionHandler)
86#define I_ReleaseExceptionHandler DECLARE_IMPORT(7, ReleaseExceptionHandler)
87#define I_ReleaseDefaultExceptionHandler DECLARE_IMPORT(8, ReleaseDefaultExceptionHandler)
88
89#ifdef __cplusplus
90}
91#endif
92
93#endif /* __EXCEPMAN_H__ */
int RegisterExceptionHandler(int exception, exception_handler_t handler)
Definition excepman.c:70