diff options
author | red031000 <rubenru09@aol.com> | 2020-06-14 21:47:39 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-06-14 21:48:42 +0100 |
commit | c734347a8fed09aff1aacaad89eb7db831a00a3c (patch) | |
tree | bf1df18b2414e6c94b5d1f46f2b5765923e94897 /arm7/lib/include | |
parent | 30c442497e7e2d8eb5cb6b318b0888dcb64f5977 (diff) |
arm7 OS_interrupt
Diffstat (limited to 'arm7/lib/include')
-rw-r--r-- | arm7/lib/include/OS_context.h | 16 | ||||
-rw-r--r-- | arm7/lib/include/OS_init.h | 3 | ||||
-rw-r--r-- | arm7/lib/include/OS_interrupt.h | 17 | ||||
-rw-r--r-- | arm7/lib/include/OS_thread.h | 7 | ||||
-rw-r--r-- | arm7/lib/include/consts.h | 1 | ||||
-rw-r--r-- | arm7/lib/include/mmap.h | 1 | ||||
-rw-r--r-- | arm7/lib/include/registers.h | 6 |
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 |