diff options
Diffstat (limited to 'arm9/lib/include')
-rw-r--r-- | arm9/lib/include/CP_context.h | 3 | ||||
-rw-r--r-- | arm9/lib/include/OS_init.h | 1 | ||||
-rw-r--r-- | arm9/lib/include/OS_irqHandler.h | 21 | ||||
-rw-r--r-- | arm9/lib/include/OS_system.h | 1 | ||||
-rw-r--r-- | arm9/lib/include/OS_thread.h | 2 | ||||
-rw-r--r-- | arm9/lib/include/mmap.h | 3 |
6 files changed, 30 insertions, 1 deletions
diff --git a/arm9/lib/include/CP_context.h b/arm9/lib/include/CP_context.h index d1e0062c..cfed9735 100644 --- a/arm9/lib/include/CP_context.h +++ b/arm9/lib/include/CP_context.h @@ -15,4 +15,7 @@ typedef struct CPContext { u16 sqrt_mode; } CPContext; +void CP_SaveContext(CPContext *context); +void CPi_RestoreContext(const CPContext* context); + #endif //POKEDIAMOND_CP_CONTEXT_H diff --git a/arm9/lib/include/OS_init.h b/arm9/lib/include/OS_init.h index 40685513..88c696cd 100644 --- a/arm9/lib/include/OS_init.h +++ b/arm9/lib/include/OS_init.h @@ -22,6 +22,7 @@ #include "OS_alloc.h" #include "OS_system.h" #include "OS_terminate_proc.h" +#include "OS_irqHandler.h" #include "OS_interrupt.h" #include "OS_reset.h" #include "OS_spinLock.h" diff --git a/arm9/lib/include/OS_irqHandler.h b/arm9/lib/include/OS_irqHandler.h new file mode 100644 index 00000000..f052016d --- /dev/null +++ b/arm9/lib/include/OS_irqHandler.h @@ -0,0 +1,21 @@ +#ifndef POKEDIAMOND_OS_IRQHANDLER_H +#define POKEDIAMOND_OS_IRQHANDLER_H + +#include "consts.h" +#include "OS_interrupt.h" + +static inline void OS_ClearIrqCheckFlag(OSIrqMask intr) +{ + *(vu32 *)HW_INTR_CHECK_BUF &= (u32)~intr; +} + +static inline OSIrqMask OS_GetIrqCheckFlag(void) +{ + return *(OSIrqMask *)HW_INTR_CHECK_BUF; +} + +void OS_IrqHandler(void); +void OS_IrqHandler_ThreadSwitch(void); +void OS_WaitIrq(BOOL param1, u32 param2); + +#endif //POKEDIAMOND_OS_IRQHANDLER_H diff --git a/arm9/lib/include/OS_system.h b/arm9/lib/include/OS_system.h index f71c6f98..6e156f9d 100644 --- a/arm9/lib/include/OS_system.h +++ b/arm9/lib/include/OS_system.h @@ -35,6 +35,5 @@ OSIntrMode OS_GetCpsrIrq(void); OSProcMode OS_GetProcMode(void); void OS_SpinWait(void); void OS_WaitVBlankIntr(void); -void OS_WaitIrq(BOOL, u32); #endif //POKEDIAMOND_OS_SYSTEM_H diff --git a/arm9/lib/include/OS_thread.h b/arm9/lib/include/OS_thread.h index adcadf2e..bbdb33c9 100644 --- a/arm9/lib/include/OS_thread.h +++ b/arm9/lib/include/OS_thread.h @@ -87,6 +87,8 @@ struct _OSThread u32 systemErrno; }; +extern OSThreadInfo OSi_ThreadInfo; + void OS_SleepThread(OSThreadQueue * queue); void OS_WakeupThread(OSThreadQueue * queue); diff --git a/arm9/lib/include/mmap.h b/arm9/lib/include/mmap.h index 65b93e1e..8eb3f623 100644 --- a/arm9/lib/include/mmap.h +++ b/arm9/lib/include/mmap.h @@ -22,6 +22,9 @@ extern u32 SDK_AUTOLOAD_DTCM_START[]; #define HW_DTCM ((u32)SDK_AUTOLOAD_DTCM_START) #define HW_DTCM_SIZE 0x00004000 +#define HW_DTCM_SYSRV (HW_DTCM + 0x00003fc0) +#define HW_INTR_CHECK_BUF (HW_DTCM_SYSRV + 0x38) + #define HW_CARD_ROM_HEADER_SIZE 0x00000160 #define HW_DOWNLOAD_PARAMETER_SIZE 0x00000020 |