summaryrefslogtreecommitdiff
path: root/arm7/lib/include
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-06-14 21:47:39 +0100
committerred031000 <rubenru09@aol.com>2020-06-14 21:48:42 +0100
commitc734347a8fed09aff1aacaad89eb7db831a00a3c (patch)
treebf1df18b2414e6c94b5d1f46f2b5765923e94897 /arm7/lib/include
parent30c442497e7e2d8eb5cb6b318b0888dcb64f5977 (diff)
arm7 OS_interrupt
Diffstat (limited to 'arm7/lib/include')
-rw-r--r--arm7/lib/include/OS_context.h16
-rw-r--r--arm7/lib/include/OS_init.h3
-rw-r--r--arm7/lib/include/OS_interrupt.h17
-rw-r--r--arm7/lib/include/OS_thread.h7
-rw-r--r--arm7/lib/include/consts.h1
-rw-r--r--arm7/lib/include/mmap.h1
-rw-r--r--arm7/lib/include/registers.h6
7 files changed, 51 insertions, 0 deletions
diff --git a/arm7/lib/include/OS_context.h b/arm7/lib/include/OS_context.h
new file mode 100644
index 00000000..7819e29c
--- /dev/null
+++ b/arm7/lib/include/OS_context.h
@@ -0,0 +1,16 @@
+#ifndef POKEDIAMOND_ARM7_OS_CONTEXT_H
+#define POKEDIAMOND_ARM7_OS_CONTEXT_H
+
+#include "nitro/types.h"
+
+typedef struct OSContext
+{
+ u32 cpsr;
+ u32 r[13];
+ u32 sp;
+ u32 lr;
+ u32 pc_plus4;
+ u32 sp_svc;
+} OSContext;
+
+#endif //POKEDIAMOND_ARM7_OS_CONTEXT_H
diff --git a/arm7/lib/include/OS_init.h b/arm7/lib/include/OS_init.h
index c4e1ca37..03d64ae1 100644
--- a/arm7/lib/include/OS_init.h
+++ b/arm7/lib/include/OS_init.h
@@ -7,6 +7,9 @@
#include "OS_alloc.h"
#include "OS_reset.h"
#include "OS_terminate_proc.h"
+#include "OS_spinLock.h"
+#include "OS_context.h"
+#include "OS_interrupt.h"
void OS_Init(void);
diff --git a/arm7/lib/include/OS_interrupt.h b/arm7/lib/include/OS_interrupt.h
index afcb9b5f..fb869483 100644
--- a/arm7/lib/include/OS_interrupt.h
+++ b/arm7/lib/include/OS_interrupt.h
@@ -2,5 +2,22 @@
#define POKEDIAMOND_ARM7_OS_INTERRUPT_H
#include "nitro/OS_interrupt_shared.h"
+#include "consts.h"
+
+extern OSIrqFunction OS_IRQTable[];
+extern OSIrqCallbackInfo OSi_IrqCallbackInfo[9];
+
+static inline void OSi_SetVBlankCount(u32 count)
+{
+ *(u32 *)HW_VBLANK_COUNT_BUF = count;
+}
+
+void OS_InitIrqTable(void);
+void OS_SetIrqFunction(OSIrqMask intrBit, OSIrqFunction function);
+void OSi_EnterTimerCallback(u32 timerNo, void (*callback) (void *), void *arg);
+OSIrqMask OS_SetIrqMask(OSIrqMask mask);
+OSIrqMask OS_EnableIrqMask(OSIrqMask mask);
+OSIrqMask OS_DisableIrqMask(OSIrqMask mask);
+OSIrqMask OS_ResetRequestIrqMask(OSIrqMask mask);
#endif //POKEDIAMOND_ARM7_OS_INTERRUPT_H
diff --git a/arm7/lib/include/OS_thread.h b/arm7/lib/include/OS_thread.h
new file mode 100644
index 00000000..04e4fdcb
--- /dev/null
+++ b/arm7/lib/include/OS_thread.h
@@ -0,0 +1,7 @@
+#ifndef POKEDIAMOND_ARM7_OS_THREAD_H
+#define POKEDIAMOND_ARM7_OS_THREAD_H
+
+#include "OS_context.h"
+#include "nitro/OS_thread_shared.h"
+
+#endif //POKEDIAMOND_ARM7_OS_THREAD_H
diff --git a/arm7/lib/include/consts.h b/arm7/lib/include/consts.h
index dd297402..966b5a4b 100644
--- a/arm7/lib/include/consts.h
+++ b/arm7/lib/include/consts.h
@@ -3,5 +3,6 @@
#include "nitro/consts_shared.h"
#include "mmap.h"
+#include "registers.h"
#endif //POKEDIAMOND_ARM7_CONSTS_H
diff --git a/arm7/lib/include/mmap.h b/arm7/lib/include/mmap.h
index 064938e2..1b403dc5 100644
--- a/arm7/lib/include/mmap.h
+++ b/arm7/lib/include/mmap.h
@@ -23,6 +23,7 @@
#define HW_PRV_WRAM_SYSRV (HW_PRV_WRAM + HW_PRV_WRAM_SIZE - HW_PRV_WRAM_SYSRV_SIZE)
+#define HW_VBLANK_COUNT_BUF (HW_MAIN_MEM + 0x007ffc3c)
#define HW_LOCK_ID_FLAG_SUB (HW_MAIN_MEM + 0x007fffb8)
#endif //POKEDIAMOND_ARM7_MMAP_H
diff --git a/arm7/lib/include/registers.h b/arm7/lib/include/registers.h
new file mode 100644
index 00000000..4ef8bdfb
--- /dev/null
+++ b/arm7/lib/include/registers.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_ARM7_REGISTERS_H
+#define POKEDIAMOND_ARM7_REGISTERS_H
+
+#include "nitro/registers_shared.h"
+
+#endif //POKEDIAMOND_ARM7_REGISTERS_H