summaryrefslogtreecommitdiff
path: root/arm9/lib/include
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/include')
-rw-r--r--arm9/lib/include/OS_exception.h26
-rw-r--r--arm9/lib/include/OS_init.h1
-rw-r--r--arm9/lib/include/mmap.h2
3 files changed, 29 insertions, 0 deletions
diff --git a/arm9/lib/include/OS_exception.h b/arm9/lib/include/OS_exception.h
new file mode 100644
index 00000000..68caf856
--- /dev/null
+++ b/arm9/lib/include/OS_exception.h
@@ -0,0 +1,26 @@
+#ifndef POKEDIAMOND_OS_EXCEPTION_H
+#define POKEDIAMOND_OS_EXCEPTION_H
+
+#include "consts.h"
+#include "OS_context.h"
+
+typedef struct
+{
+ OSContext context;
+ u32 cp15;
+ u32 spsr;
+ u32 exinfo;
+ u32 debug[4];
+} OSiExContext;
+
+typedef void (*OSExceptionHandler) (u32, void *);
+
+static void OSi_ExceptionHandler(void);
+
+void OS_InitException(void);
+void OSi_ExceptionHandler(void);
+static void OSi_GetAndDisplayContext(void);
+static void OSi_SetExContext(void);
+static void OSi_DisplayExContext(void);
+
+#endif //POKEDIAMOND_OS_EXCEPTION_H
diff --git a/arm9/lib/include/OS_init.h b/arm9/lib/include/OS_init.h
index 7cf21709..499c9f6c 100644
--- a/arm9/lib/include/OS_init.h
+++ b/arm9/lib/include/OS_init.h
@@ -23,6 +23,7 @@
#include "OS_irqTable.h"
#include "OS_interrupt.h"
#include "OS_reset.h"
+#include "OS_exception.h"
void OS_Init(void);
diff --git a/arm9/lib/include/mmap.h b/arm9/lib/include/mmap.h
index 12823fa0..143b609b 100644
--- a/arm9/lib/include/mmap.h
+++ b/arm9/lib/include/mmap.h
@@ -19,6 +19,8 @@ extern u32 SDK_AUTOLOAD_DTCM_START[];
#define HW_DTCM_SYSRV (HW_DTCM + 0x00003fc0)
#define HW_INTR_CHECK_BUF (HW_DTCM_SYSRV + 0x38)
+#define HW_EXCP_VECTOR_BUF (HW_DTCM_SYSRV + 0x1C)
+
#define HW_CARD_ROM_HEADER_SIZE 0x00000160
#define HW_DOWNLOAD_PARAMETER_SIZE 0x00000020