mirror of https://github.com/zeldaret/tp.git
63 lines
1.5 KiB
C
63 lines
1.5 KiB
C
#ifndef OSERROR_H
|
|
#define OSERROR_H
|
|
|
|
#include "dolphin/os/OSContext.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern u32 __OSFpscrEnableBits;
|
|
typedef u16 OSError;
|
|
|
|
#define OS_ERROR_SYSTEM_RESET 0
|
|
#define OS_ERROR_MACHINE_CHECK 1
|
|
#define OS_ERROR_DSI 2
|
|
#define OS_ERROR_ISI 3
|
|
#define OS_ERROR_INTERRUPT 4
|
|
#define OS_ERROR_ALIGNMENT 5
|
|
#define OS_ERROR_PROGRAM 6
|
|
#define OS_ERROR_FLOATING_POINT 7
|
|
#define OS_ERROR_DECREMENTER 8
|
|
#define OS_ERROR_SYSTEM_CALL 9
|
|
#define OS_ERROR_TRACE 10
|
|
#define OS_ERROR_PERFORMANCE_MONITOR 11
|
|
#define OS_ERROR_BREAKPOINT 12
|
|
#define OS_ERROR_RESERVED 13
|
|
#define OS_ERROR_THERMAL_INTERRUPT 14
|
|
#define OS_ERROR_MEMORY_PROTECTION 15
|
|
#define OS_ERROR_FLOATING_POINT_EXCEPTION 16
|
|
|
|
typedef enum {
|
|
EXCEPTION_SYSTEM_RESET,
|
|
EXCEPTION_MACHINE_CHECK,
|
|
EXCEPTION_DSI,
|
|
EXCEPTION_ISI,
|
|
EXCEPTION_EXTERNAL_INTERRUPT,
|
|
EXCEPTION_ALIGNMENT,
|
|
EXCEPTION_PROGRAM,
|
|
EXCEPTION_FLOATING_POINT,
|
|
EXCEPTION_DECREMENTER,
|
|
EXCEPTION_SYSTEM_CALL,
|
|
EXCEPTION_TRACE ,
|
|
EXCEPTION_PERFORMANCE_MONITOR,
|
|
EXCEPTION_BREAKPOINT,
|
|
EXCEPTION_RESERVED,
|
|
EXCEPTION_THERMAL_INTERRUPT,
|
|
EXCEPTION_MEMORY_PROTECTION,
|
|
EXCEPTION_FLOATING_POINT_EXCEPTION,
|
|
} OSException;
|
|
|
|
typedef u8 __OSException;
|
|
|
|
typedef void (*OSErrorHandler)(OSError error, OSContext* context, u32, u32);
|
|
|
|
OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler);
|
|
void __OSUnhandledException(__OSException exception, OSContext* context, u32 dsisr, u32 dar);
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif /* OSERROR_H */
|