diff options
Diffstat (limited to 'arm9/lib/include')
-rw-r--r-- | arm9/lib/include/MI_dma.h | 8 | ||||
-rw-r--r-- | arm9/lib/include/MI_memory.h | 2 | ||||
-rw-r--r-- | arm9/lib/include/OS_alarm.h | 23 | ||||
-rw-r--r-- | arm9/lib/include/OS_init.h | 1 | ||||
-rw-r--r-- | arm9/lib/include/OS_interrupt.h | 11 | ||||
-rw-r--r-- | arm9/lib/include/OS_mutex.h | 16 | ||||
-rw-r--r-- | arm9/lib/include/OS_spinLock.h | 13 | ||||
-rw-r--r-- | arm9/lib/include/OS_terminate_proc.h | 10 | ||||
-rw-r--r-- | arm9/lib/include/OS_thread.h | 117 | ||||
-rw-r--r-- | arm9/lib/include/OS_tick.h | 18 | ||||
-rw-r--r-- | arm9/lib/include/OS_timer.h | 32 | ||||
-rw-r--r-- | arm9/lib/include/consts.h | 9 | ||||
-rw-r--r-- | arm9/lib/include/fx.h | 5 | ||||
-rw-r--r-- | arm9/lib/include/mmap.h | 52 | ||||
-rw-r--r-- | arm9/lib/include/registers.h | 16 | ||||
-rw-r--r-- | arm9/lib/include/syscall.h | 6 | ||||
-rw-r--r-- | arm9/lib/include/systemWork.h | 7 |
17 files changed, 98 insertions, 248 deletions
diff --git a/arm9/lib/include/MI_dma.h b/arm9/lib/include/MI_dma.h index eddcedbb..15dc2c06 100644 --- a/arm9/lib/include/MI_dma.h +++ b/arm9/lib/include/MI_dma.h @@ -1,6 +1,8 @@ -#ifndef NITRO_MI_DMA_H_ -#define NITRO_MI_DMA_H_ +#ifndef POKEDIAMOND_ARM9_MI_DMA_H +#define POKEDIAMOND_ARM9_MI_DMA_H + +#include "nitro/MI_dma_shared.h" typedef void (*MIDmaCallback)(void *); -#endif //NITRO_MI_DMA_H_ +#endif //POKEDIAMOND_ARM9_MI_DMA_H diff --git a/arm9/lib/include/MI_memory.h b/arm9/lib/include/MI_memory.h index bf6c0ca5..e1e5fe11 100644 --- a/arm9/lib/include/MI_memory.h +++ b/arm9/lib/include/MI_memory.h @@ -22,4 +22,6 @@ static inline void MI_CpuClear32(void *dest, u32 size) MI_CpuFill32(dest, 0, size); } +void MIi_CpuClearFast(u32 data, void *destp, u32 size); + #endif //NITRO_MI_MEMORY_H_ diff --git a/arm9/lib/include/OS_alarm.h b/arm9/lib/include/OS_alarm.h index a9734d1b..ebdf01ba 100644 --- a/arm9/lib/include/OS_alarm.h +++ b/arm9/lib/include/OS_alarm.h @@ -1,28 +1,13 @@ -#ifndef POKEDIAMOND_OS_ALARM_H -#define POKEDIAMOND_OS_ALARM_H +#ifndef POKEDIAMOND_ARM9_OS_ALARM_H +#define POKEDIAMOND_ARM9_OS_ALARM_H #include "nitro/types.h" #include "OS_thread.h" #include "OS_tick.h" - -typedef void (*OSAlarmHandler) (void *); - -struct OSiAlarm -{ - OSAlarmHandler handler; - void *arg; - - u32 tag; - OSTick fire; - OSAlarm *prev; - OSAlarm *next; - - OSTick period; - OSTick start; -}; +#include "nitro/OS_alarm_shared.h" void OS_CancelAlarm(OSAlarm *alarm); void OS_CreateAlarm(OSAlarm *alarm); void OS_SetAlarm(OSAlarm *alarm, OSTick tick, OSAlarmHandler handler, void *arg); -#endif //POKEDIAMOND_OS_ALARM_H +#endif //POKEDIAMOND_ARM9_OS_ALARM_H diff --git a/arm9/lib/include/OS_init.h b/arm9/lib/include/OS_init.h index 3c8aea24..03ff26d2 100644 --- a/arm9/lib/include/OS_init.h +++ b/arm9/lib/include/OS_init.h @@ -23,6 +23,7 @@ #include "OS_interrupt.h" #include "OS_reset.h" #include "OS_spinLock.h" +#include "OS_tick.h" void OS_Init(void); diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h index ec58a636..a828c62e 100644 --- a/arm9/lib/include/OS_interrupt.h +++ b/arm9/lib/include/OS_interrupt.h @@ -1,17 +1,10 @@ #ifndef POKEDIAMOND_ARM9_OS_INTERRUPT_H #define POKEDIAMOND_ARM9_OS_INTERRUPT_H -#include "nitro/types.h" +#include "consts.h" #include "nitro/OS_interrupt_shared.h" -typedef void (*OSIrqFunction) (void); - -typedef struct -{ - void (*func) (void *); - u32 enable; - void* arg; -} OSIrqCallbackInfo; +#define OS_IE_TIMER0 (1UL << REG_OS_IE_T0_SHIFT) extern OSIrqFunction OS_IRQTable[]; extern OSIrqCallbackInfo OSi_IrqCallbackInfo[8]; diff --git a/arm9/lib/include/OS_mutex.h b/arm9/lib/include/OS_mutex.h index 0fc261a4..9da89c69 100644 --- a/arm9/lib/include/OS_mutex.h +++ b/arm9/lib/include/OS_mutex.h @@ -1,16 +1,10 @@ -#ifndef POKEDIAMOND_OS_MUTEX_H -#define POKEDIAMOND_OS_MUTEX_H +#ifndef POKEDIAMOND_ARM9_OS_MUTEX_H +#define POKEDIAMOND_ARM9_OS_MUTEX_H -#include "nitro/types.h" #include "OS_thread.h" - -struct OSMutex { - OSThreadQueue queue; - OSThread *thread; - s32 count; - OSMutexLink link; -}; +#include "OS_context.h" +#include "nitro/OS_mutex_shared.h" void OSi_UnlockAllMutex(OSThread * thread); -#endif //POKEDIAMOND_OS_MUTEX_H +#endif //POKEDIAMOND_ARM9_OS_MUTEX_H diff --git a/arm9/lib/include/OS_spinLock.h b/arm9/lib/include/OS_spinLock.h index 5dc47522..a5d27585 100644 --- a/arm9/lib/include/OS_spinLock.h +++ b/arm9/lib/include/OS_spinLock.h @@ -1,15 +1,10 @@ -#ifndef POKEDIAMOND_OS_SPINLOCK_H -#define POKEDIAMOND_OS_SPINLOCK_H +#ifndef POKEDIAMOND_ARM9_OS_SPINLOCK_H +#define POKEDIAMOND_ARM9_OS_SPINLOCK_H #include "nitro/types.h" +#include "nitro/OS_spinLock_shared.h" #include "syscall.h" -typedef volatile struct OSLockWord { - u32 lockFlag; - u16 ownerID; - u16 extension; -} OSLockWord; - static inline void OSi_WaitByLoop(void) { SVC_WaitByLoop(0x1000 / 4); @@ -38,4 +33,4 @@ s32 OS_UnLockCartridge(u16 lockID); s32 OS_GetLockID(void); void OS_ReleaseLockID(register u16 lockID); -#endif //POKEDIAMOND_OS_SPINLOCK_H +#endif //POKEDIAMOND_ARM9_OS_SPINLOCK_H diff --git a/arm9/lib/include/OS_terminate_proc.h b/arm9/lib/include/OS_terminate_proc.h index 1d3ac27e..b4553fb4 100644 --- a/arm9/lib/include/OS_terminate_proc.h +++ b/arm9/lib/include/OS_terminate_proc.h @@ -1,13 +1,9 @@ -// -// Created by red031000 on 2020-05-07. -// - -#ifndef POKEDIAMOND_OS_TERMINATE_PROC_H -#define POKEDIAMOND_OS_TERMINATE_PROC_H +#ifndef POKEDIAMOND_ARM9_OS_TERMINATE_PROC_H +#define POKEDIAMOND_ARM9_OS_TERMINATE_PROC_H #include "nitro/types.h" void OS_Terminate(void); void OS_Halt(void); -#endif //POKEDIAMOND_OS_TERMINATE_PROC_H +#endif //POKEDIAMOND_ARM9_OS_TERMINATE_PROC_H diff --git a/arm9/lib/include/OS_thread.h b/arm9/lib/include/OS_thread.h index a80a3b96..8afc0b78 100644 --- a/arm9/lib/include/OS_thread.h +++ b/arm9/lib/include/OS_thread.h @@ -1,89 +1,9 @@ -#ifndef POKEDIAMOND_OS_THREAD_H -#define POKEDIAMOND_OS_THREAD_H +#ifndef POKEDIAMOND_ARM9_OS_THREAD_H +#define POKEDIAMOND_ARM9_OS_THREAD_H #include "nitro/types.h" #include "OS_context.h" - -typedef struct OSiAlarm OSAlarm; - -typedef struct _OSThread OSThread; - -typedef struct _OSThreadQueue OSThreadQueue; -typedef struct _OSThreadLink OSThreadLink; -typedef struct _OSMutexQueue OSMutexQueue; -typedef struct _OSMutexLink OSMutexLink; -typedef struct OSMutex OSMutex; - -struct _OSThreadQueue -{ - OSThread *head; - OSThread *tail; -}; - -struct _OSThreadLink -{ - OSThread *prev; - OSThread *next; -}; - -struct _OSMutexQueue -{ - OSMutex *head; - OSMutex *tail; -}; - -struct _OSMutexLink -{ - OSMutex *next; - OSMutex *prev; -}; - -typedef struct OSThreadInfo { - u16 isNeedRescheduling; - u16 irqDepth; - OSThread* current; - OSThread* list; - void* switchCallback; // type: OSSwitchThreadCallback -} OSThreadInfo; - -typedef enum { - OS_THREAD_STATE_WAITING = 0, - OS_THREAD_STATE_READY = 1, - OS_THREAD_STATE_TERMINATED = 2 -} OSThreadState; - -typedef void (*OSSwitchThreadCallback) (OSThread *from, OSThread *to); - -typedef void (*OSThreadDestructor) (void *); - -struct _OSThread -{ - OSContext context; - OSThreadState state; - OSThread *next; - u32 id; - u32 priority; - void *profiler; - - OSThreadQueue *queue; - OSThreadLink link; - - OSMutex *mutex; - OSMutexQueue mutexQueue; - - u32 stackTop; - u32 stackBottom; - u32 stackWarningOffset; - - OSThreadQueue joinQueue; - - void *specific[3]; - OSAlarm *alarmForSleep; - OSThreadDestructor destructor; - void *userParameter; - - u32 systemErrno; -}; +#include "nitro/OS_thread_shared.h" static s32 OSi_GetUnusedThreadId(void); static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread); @@ -119,33 +39,4 @@ u32 OS_DisableScheduler(void); u32 OS_EnableScheduler(void); void OS_SetThreadDestructor(OSThread *thread, OSThreadDestructor dtor); -extern OSThreadInfo OSi_ThreadInfo; - -static inline OSThreadInfo *OS_GetThreadInfo(void) -{ - return &OSi_ThreadInfo; -} - -static inline BOOL OS_IsThreadRunnable(const OSThread *thread) -{ - return thread->state == OS_THREAD_STATE_READY; -} - -static inline void OS_InitThreadQueue(OSThreadQueue * queue) -{ - queue->head = queue->tail = NULL; -} - -static inline OSThread *OS_GetCurrentThread(void) -{ - return OS_GetThreadInfo()->current; -} - -static inline void OS_SetCurrentThread(OSThread *thread) -{ - OS_GetThreadInfo()->current = thread; -} - -#define OSi_GetCurrentThread() (*OSi_CurrentThreadPtr) - -#endif //POKEDIAMOND_OS_THREAD_H +#endif //POKEDIAMOND_ARM9_OS_THREAD_H diff --git a/arm9/lib/include/OS_tick.h b/arm9/lib/include/OS_tick.h index f1c7145d..59c43b10 100644 --- a/arm9/lib/include/OS_tick.h +++ b/arm9/lib/include/OS_tick.h @@ -1,12 +1,16 @@ -#ifndef POKEDIAMOND_OS_TICK_H -#define POKEDIAMOND_OS_TICK_H +#ifndef POKEDIAMOND_ARM9_OS_TICK_H +#define POKEDIAMOND_ARM9_OS_TICK_H #include "consts.h" +#include "OS_timer.h" +#include "nitro/OS_tick_shared.h" -typedef u64 OSTick; +#define OSi_TICK_TIMERCONTROL (REG_OS_TM0CNT_H_E_MASK | REG_OS_TM0CNT_H_I_MASK | OS_TIMER_PRESCALER_64) -#define OS_SYSTEM_CLOCK HW_SYSTEM_CLOCK +void OS_InitTick(void); +BOOL OS_IsTickAvailable(void); +static void OSi_CountUpTick(void); +OSTick OS_GetTick(void); +u16 OS_GetTickLo(void); -#define OS_MilliSecondsToTicks(msec) ((OSTick)(((OS_SYSTEM_CLOCK/1000) * (u64)(msec)) / 64)) - -#endif //POKEDIAMOND_OS_TICK_H +#endif //POKEDIAMOND_ARM9_OS_TICK_H diff --git a/arm9/lib/include/OS_timer.h b/arm9/lib/include/OS_timer.h new file mode 100644 index 00000000..8b2a97a9 --- /dev/null +++ b/arm9/lib/include/OS_timer.h @@ -0,0 +1,32 @@ +#ifndef POKEDIAMOND_OS_TIMER_H +#define POKEDIAMOND_OS_TIMER_H + +#include "consts.h" + +typedef enum +{ + OS_TIMER_PRESCALER_1 = (0UL << REG_OS_TM0CNT_H_PS_SHIFT), + OS_TIMER_PRESCALER_64 = (1UL << REG_OS_TM0CNT_H_PS_SHIFT), + OS_TIMER_PRESCALER_256 = (2UL << REG_OS_TM0CNT_H_PS_SHIFT), + OS_TIMER_PRESCALER_1024 = (3UL << REG_OS_TM0CNT_H_PS_SHIFT) +} OSTimerPrescaler; + +typedef enum +{ + OS_TIMER_0 = 0, + OS_TIMER_1 = 1, + OS_TIMER_2 = 2, + OS_TIMER_3 = 3 +} OSTimer; + +static inline void OS_SetTimerCount(OSTimer id, u16 count) +{ + *((REGType16 *)((u32)®_OS_TM0CNT_L + id * 4)) = count; +} + +static inline void OS_SetTimerControl(OSTimer id, u16 control) +{ + *((REGType16 *)((u32)®_OS_TM0CNT_H + id * 4)) = control; +} + +#endif //POKEDIAMOND_OS_TIMER_H diff --git a/arm9/lib/include/consts.h b/arm9/lib/include/consts.h index a24e9d89..5dd0b150 100644 --- a/arm9/lib/include/consts.h +++ b/arm9/lib/include/consts.h @@ -4,6 +4,7 @@ #include "nitro/consts_shared.h" #include "mmap.h" #include "registers.h" +#include "systemWork.h" #define HW_C6_PR_4KB 0x16 #define HW_C6_PR_8KB 0x18 @@ -27,8 +28,6 @@ #define HW_C6_PR_2GB 0x3c #define HW_C6_PR_4GB 0x3e -#define HW_SYSTEM_CLOCK 33514000 - #define PXI_PROC_ARM7 0x01 #define OSi_CONSOLE_NOT_DETECT 0xffffffff @@ -38,12 +37,6 @@ #define OS_CONSOLE_SIZE_MASK 0x00000003 #define OS_CONSOLE_SIZE_4MB 0x00000001 -#define OS_THREAD_LAUNCHER_PRIORITY 0x10 -#define OS_THREAD_PRIORITY_MIN 0x00 -#define OS_THREAD_PRIORITY_MAX 0x1F - -#define OS_THREAD_SPECIFIC_MAX 0x03 - #define OSi_TCM_REGION_BASE_MASK 0xfffff000 #define OS_IE_V_BLANK (1UL << 0) diff --git a/arm9/lib/include/fx.h b/arm9/lib/include/fx.h index c09b24ae..4a844872 100644 --- a/arm9/lib/include/fx.h +++ b/arm9/lib/include/fx.h @@ -59,8 +59,11 @@ typedef s64 fx64c; #define FX_F32_TO_FX16(x) ((fx16)(((x) > 0) ? \ (fx16)((x) * (1 << FX16_INT_SHIFT) + 0.5f ) : \ (fx16)((x) * (1 << FX16_INT_SHIFT) - 0.5f ))) - +#define FX_F32_TO_FX32(x) ((fx32)(((x) > 0) ? \ + (fx32)((x) * (1 << FX32_INT_SHIFT) + 0.5f ) : \ + (fx32)((x) * (1 << FX32_INT_SHIFT) - 0.5f ))) #define FX16_CONST(x) FX_F32_TO_FX16(x) +#define FX32_CONST(x) FX_F32_TO_FX32(x) struct Vecx32 { diff --git a/arm9/lib/include/mmap.h b/arm9/lib/include/mmap.h index 6a5f23c5..12823fa0 100644 --- a/arm9/lib/include/mmap.h +++ b/arm9/lib/include/mmap.h @@ -14,8 +14,6 @@ extern u32 SDK_AUTOLOAD_DTCM_START[]; #define HW_ITCM_SIZE 0x00008000 #define HW_ITCM_END (HW_ITCM + HW_ITCM_SIZE) -#define HW_WRAM 0x037F8000 - #define HW_DTCM ((u32)SDK_AUTOLOAD_DTCM_START) #define HW_DTCM_SIZE 0x00004000 @@ -29,7 +27,6 @@ extern u32 SDK_AUTOLOAD_DTCM_START[]; #define HW_ROM_BASE_OFFSET_BUF (HW_MAIN_MEM + 0x007ffc2c) #define HW_ROM_HEADER_BUF (HW_MAIN_MEM + 0x007ffe00) // ROM registration area data buffer #define HW_RED_RESERVED (HW_MAIN_MEM + 0x007ff800) // Some kind of reserved data for shared memory -#define HW_MAIN_MEM_SYSTEM (HW_MAIN_MEM + 0x007ffc00) #define HW_MAIN_MEM_EX_END (HW_MAIN_MEM + HW_MAIN_MEM_EX_SIZE) #define HW_MAIN_MEM_SHARED (HW_MAIN_MEM_EX_END - HW_MAIN_MEM_SHARED_SIZE) #define HW_DTCM_SVC_STACK_END (HW_DTCM + 0x00003fc0) @@ -49,7 +46,6 @@ extern u32 SDK_AUTOLOAD_DTCM_START[]; #define HW_LOCK_ID_FLAG_MAIN (HW_MAIN_MEM + 0x007fffb0) #define HW_SHARED_LOCK_BUF (HW_MAIN_MEM + 0x007fffc0) #define HW_CARD_LOCK_BUF (HW_MAIN_MEM + 0x007fffe0) -#define HW_CTRDG_LOCK_BUF (HW_MAIN_MEM + 0x007fffe8) #define HW_BUTTON_XY_BUF (HW_MAIN_MEM + 0x007fffa8) @@ -61,52 +57,4 @@ extern u32 SDK_AUTOLOAD_DTCM_START[]; #define OSi_WRAM_MAIN_ARENA_HI_DEFAULT (HW_WRAM) #define OSi_WRAM_MAIN_ARENA_LO_DEFAULT (HW_WRAM) -#include "OS_thread.h" //not ideal but it's necessary -#include "OS_spinLock.h" - -typedef struct { - u8 bootCheckInfo[0x20]; // 000-01f: 32byte boot check info - u32 resetParameter; // 020-023: 4byte reset parameter - u8 padding5[0x8]; // 024-02c: (8byte) - u32 romBaseOffset; // 02c-02f: 4byte ROM offset of own program - u8 cartridgeModuleInfo[12]; // 030-03b: 12byte cartridge module info - u32 vblankCount; // 03c-03f: 4byte V-Blank Count - u8 wmBootBuf[0x40]; // 040-07f: 64byte WM multiboot buffer - u8 nvramUserInfo[0x100]; // 080-17f: 256bytes NVRAM user info - u8 isd_reserved1[0x20]; // 180-19f: 32bytes ISDebugger reserved - u8 arenaInfo[0x48]; // 1a0-1e7: 72byte Arena information - u8 real_time_clock[8]; // 1e8-1ef: 8bytes RTC - u32 dmaClearBuf[4]; // 1f0-1ff: 16bytes DMA clear information buffer (for ARM9-TEG) - u8 rom_header[0x160]; // 200-35f: 352bytes ROM registration area info storage buffer - u8 isd_reserved2[32]; // 360-37f: 32bytes ISDebugger reserved - u32 pxiSignalParam[2]; // 380-387: 8bytes Param for PXI Signal - u32 pxiHandleChecker[2]; // 388-38f: 8bytes Flag for PXI Command Handler Installed - u32 mic_last_address; // 390-393: 4bytes MIC latest sampling result storage address - u16 mic_sampling_data; // 394-395: 2bytes MIC sampling result - u16 wm_callback_control; // 396-397: 2bytes Parameter for WM callback synchronization - u16 wm_rssi_pool; // 398-399: 2bytes Random number source depends on WM received signal intensity - u8 padding3[2]; // 39a-39b: (2bytes) - u32 component_param; // 39c-39f: 4bytes Parameter for Component synchronization - OSThreadInfo *threadinfo_mainp; // 3a0-3a3: 4bytes Verify that the pointer to ARM9 thread information is initial value 0 - OSThreadInfo *threadinfo_subp; // 3a4-3a7: 4bytes Verify that the pointer to ARM7 thread information is initial value 0 - u16 button_XY; // 3a8-3a9: 2bytes XY button information storage location - u8 touch_panel[4]; // 3aa-3ad: 4bytes Touch Screen information storage location - u16 autoloadSync; // 3ae-3af: 2bytes autoload sync between processors - u32 lockIDFlag_mainp[2]; // 3b0-3b7: 8bytes lockID management flag (ARM9) - u32 lockIDFlag_subp[2]; // 3b8-3bf: 8bytes lockID management flag (ARM7) - struct OSLockWord lock_VRAM_C; // 3c0-3c7: 8bytes C - lock buffer - struct OSLockWord lock_VRAM_D; // 3c8-3cf: 8bytes VRAM-D - lock buffer - struct OSLockWord lock_WRAM_BLOCK0; // 3d0-3d7: 8bytes Block0 - lock buffer - struct OSLockWord lock_WRAM_BLOCK1; // 3d8-3df: 8bytes CPU internal work RAM - Block1 - lock buffer - struct OSLockWord lock_CARD; // 3e0-3e7: 8bytes Game Card - lock buffer - struct OSLockWord lock_CARTRIDGE; // 3e8-3ef: 8bytes DS Pak - lock buffer - struct OSLockWord lock_INIT; // 3f0-3f7: 8bytes Initialization lock buffer - u16 mmem_checker_mainp; // 3f8-3f9: 2bytes MainMomory Size Checker for Main processor - u16 mmem_checker_subp; // 3fa-3fb: 2bytes MainMomory Size Checker for Sub processor - u8 padding4[2]; // 3fc-3fd: (2bytes) - u16 command_area; // 3fe-3ff: 2bytes Command Area -} OSSystemWork; //0x027FFC00 - -#define OS_GetSystemWork() ((OSSystemWork *)HW_MAIN_MEM_SYSTEM) - #endif //POKEDIAMOND_ARM9_MMAP_H
\ No newline at end of file diff --git a/arm9/lib/include/registers.h b/arm9/lib/include/registers.h index 4781ba1b..a5355322 100644 --- a/arm9/lib/include/registers.h +++ b/arm9/lib/include/registers.h @@ -1,7 +1,8 @@ -#ifndef POKEDIAMOND_REGISTERS_H -#define POKEDIAMOND_REGISTERS_H +#ifndef POKEDIAMOND_ARM9_REGISTERS_H +#define POKEDIAMOND_ARM9_REGISTERS_H #include "nitro/types.h" +#include "nitro/registers_shared.h" #define reg_GX_DISPCNT (*(REGType32v *)0x4000000) #define reg_GX_DISPSTAT (*(REGType16v *)0x4000004) @@ -103,9 +104,6 @@ #define reg_MI_MCCMD1 (*(REGType32v *)0x40001ac) #define reg_MI_EXMEMCNT (*(REGType16v *)0x4000204) -#define reg_OS_IME (*(REGType16v *)0x4000208) -#define reg_OS_IE (*(REGType32v *)0x4000210) -#define reg_OS_IF (*(REGType32v *)0x4000214) #define reg_OS_PAUSE (*(REGType16v *)0x4000300) #define reg_GX_VRAMCNT (*(REGType32v *)0x4000240) @@ -356,6 +354,12 @@ #define reg_MI_MCD1 (*(REGType32v *)0x4100010) #define reg_CARD_DATA (*(REGType32v *)0x4100010) //? +#define REG_OS_TM0CNT_H_PS_SHIFT 0 +#define REG_OS_IE_T0_SHIFT 3 + +#define REG_OS_TM0CNT_H_I_MASK 0x0040 +#define REG_OS_TM0CNT_H_E_MASK 0x0080 + #define REG_PAD_KEYINPUT_L_SHIFT 9 #define REG_PAD_KEYINPUT_L_SIZE 1 #define REG_PAD_KEYINPUT_L_MASK 0x0200 @@ -476,4 +480,4 @@ ((u32)(a) << REG_PAD_KEYCNT_A_SHIFT)) #endif -#endif //POKEDIAMOND_REGISTERS_H +#endif //POKEDIAMOND_ARM9_REGISTERS_H diff --git a/arm9/lib/include/syscall.h b/arm9/lib/include/syscall.h index 8561cabe..427134a7 100644 --- a/arm9/lib/include/syscall.h +++ b/arm9/lib/include/syscall.h @@ -1,6 +1,6 @@ -#ifndef NITRO_SYSCALL_H_ -#define NITRO_SYSCALL_H_ +#ifndef POKEDIAMOND_ARM9_SYSCALL_H +#define POKEDIAMOND_ARM9_SYSCALL_H void SVC_WaitByLoop(u32 ct); -#endif //NITRO_SYSCALL_H_ +#endif //POKEDIAMOND_ARM9_SYSCALL_H diff --git a/arm9/lib/include/systemWork.h b/arm9/lib/include/systemWork.h new file mode 100644 index 00000000..b7660985 --- /dev/null +++ b/arm9/lib/include/systemWork.h @@ -0,0 +1,7 @@ +#ifndef POKEDIAMOND_ARM9_SYSTEMWORK_H +#define POKEDIAMOND_ARM9_SYSTEMWORK_H + +#include "OS_context.h" +#include "nitro/OS_systemWork_shared.h" + +#endif //POKEDIAMOND_ARM9_SYSTEMWORK_H |