summaryrefslogtreecommitdiff
path: root/arm9/lib/include
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/include')
-rw-r--r--arm9/lib/include/OS_alarm.h23
-rw-r--r--arm9/lib/include/OS_mutex.h16
-rw-r--r--arm9/lib/include/OS_tick.h13
-rw-r--r--arm9/lib/include/consts.h9
-rw-r--r--arm9/lib/include/mmap.h51
-rw-r--r--arm9/lib/include/systemWork.h7
6 files changed, 21 insertions, 98 deletions
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_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_tick.h b/arm9/lib/include/OS_tick.h
index 3dba9818..59c43b10 100644
--- a/arm9/lib/include/OS_tick.h
+++ b/arm9/lib/include/OS_tick.h
@@ -1,14 +1,9 @@
-#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"
-
-typedef u64 OSTick;
-
-#define OS_SYSTEM_CLOCK HW_SYSTEM_CLOCK
-
-#define OS_MilliSecondsToTicks(msec) ((OSTick)(((OS_SYSTEM_CLOCK/1000) * (u64)(msec)) / 64))
+#include "nitro/OS_tick_shared.h"
#define OSi_TICK_TIMERCONTROL (REG_OS_TM0CNT_H_E_MASK | REG_OS_TM0CNT_H_I_MASK | OS_TIMER_PRESCALER_64)
@@ -18,4 +13,4 @@ static void OSi_CountUpTick(void);
OSTick OS_GetTick(void);
u16 OS_GetTickLo(void);
-#endif //POKEDIAMOND_OS_TICK_H
+#endif //POKEDIAMOND_ARM9_OS_TICK_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/mmap.h b/arm9/lib/include/mmap.h
index 5967695c..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)
@@ -60,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/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