diff options
Diffstat (limited to 'include/nitro')
| -rw-r--r-- | include/nitro/OS_alarm_shared.h | 35 | ||||
| -rw-r--r-- | include/nitro/OS_mutex_shared.h | 26 | ||||
| -rw-r--r-- | include/nitro/OS_systemWork_shared.h | 66 | ||||
| -rw-r--r-- | include/nitro/OS_thread_shared.h | 12 | ||||
| -rw-r--r-- | include/nitro/OS_tick_shared.h | 24 | ||||
| -rw-r--r-- | include/nitro/consts_shared.h | 8 | ||||
| -rw-r--r-- | include/nitro/mmap_shared.h | 3 | 
7 files changed, 174 insertions, 0 deletions
| diff --git a/include/nitro/OS_alarm_shared.h b/include/nitro/OS_alarm_shared.h new file mode 100644 index 00000000..fe549351 --- /dev/null +++ b/include/nitro/OS_alarm_shared.h @@ -0,0 +1,35 @@ +/* + * NOTE: + * This file is shared between ARM9 and ARM7 + * DO NOT PUT PROC SPECIFIC CODE IN HERE + * Thank You! + */ + +/* + * DO NOT INCLUDE THIS FILE DIRECTLY + * Include OS_alarm.h from the specific proc's lib + */ + +#ifndef POKEDIAMOND_OS_ALARM_SHARED_H +#define POKEDIAMOND_OS_ALARM_SHARED_H + +#include "nitro/types.h" +#include "nitro/OS_tick_shared.h" + +typedef void (*OSAlarmHandler) (void *); + +struct OSiAlarm +{ +    OSAlarmHandler handler; +    void *arg; + +    u32 tag; +    OSTick fire; +    OSAlarm *prev; +    OSAlarm *next; + +    OSTick period; +    OSTick start; +}; + +#endif //POKEDIAMOND_OS_ALARM_SHARED_H diff --git a/include/nitro/OS_mutex_shared.h b/include/nitro/OS_mutex_shared.h new file mode 100644 index 00000000..e3c93e47 --- /dev/null +++ b/include/nitro/OS_mutex_shared.h @@ -0,0 +1,26 @@ +/* + * NOTE: + * This file is shared between ARM9 and ARM7 + * DO NOT PUT PROC SPECIFIC CODE IN HERE + * Thank You! + */ + +/* + * DO NOT INCLUDE THIS FILE DIRECTLY + * Include OS_mutex.h from the specific proc's lib + */ + +#ifndef POKEDIAMOND_OS_MUTEX_SHARED_H +#define POKEDIAMOND_OS_MUTEX_SHARED_H + +#include "nitro/OS_thread_shared.h" +#include "nitro/types.h" + +struct OSMutex { +    OSThreadQueue queue; +    OSThread *thread; +    s32 count; +    OSMutexLink link; +}; + +#endif //POKEDIAMOND_OS_MUTEX_SHARED_H diff --git a/include/nitro/OS_systemWork_shared.h b/include/nitro/OS_systemWork_shared.h new file mode 100644 index 00000000..54321015 --- /dev/null +++ b/include/nitro/OS_systemWork_shared.h @@ -0,0 +1,66 @@ +/* + * NOTE: + * This file is shared between ARM9 and ARM7 + * DO NOT PUT PROC SPECIFIC CODE IN HERE + * Thank You! + */ + +/* + * DO NOT INCLUDE THIS FILE DIRECTLY + * Include consts.h from the specific proc's lib + */ + +#ifndef POKEDIAMOND_OS_SYSTEMWORK_SHARED_H +#define POKEDIAMOND_OS_SYSTEMWORK_SHARED_H + +#include "nitro/types.h" +#include "nitro/mmap_shared.h" +#include "nitro/OS_thread_shared.h" +#include "nitro/OS_spinLock_shared.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_OS_SYSTEMWORK_SHARED_H diff --git a/include/nitro/OS_thread_shared.h b/include/nitro/OS_thread_shared.h index 28d8a503..a0cce54d 100644 --- a/include/nitro/OS_thread_shared.h +++ b/include/nitro/OS_thread_shared.h @@ -1,3 +1,15 @@ +/* + * NOTE: + * This file is shared between ARM9 and ARM7 + * DO NOT PUT PROC SPECIFIC CODE IN HERE + * Thank You! + */ + +/* + * DO NOT INCLUDE THIS FILE DIRECTLY + * Include OS_thread.h from the specific proc's lib + */ +  #ifndef POKEDIAMOND_OS_THREAD_SHARED_H  #define POKEDIAMOND_OS_THREAD_SHARED_H diff --git a/include/nitro/OS_tick_shared.h b/include/nitro/OS_tick_shared.h new file mode 100644 index 00000000..e6d6d3b3 --- /dev/null +++ b/include/nitro/OS_tick_shared.h @@ -0,0 +1,24 @@ +/* + * NOTE: + * This file is shared between ARM9 and ARM7 + * DO NOT PUT PROC SPECIFIC CODE IN HERE + * Thank You! + */ + +/* + * DO NOT INCLUDE THIS FILE DIRECTLY + * Include OS_tick.h from the specific proc's lib + */ + +#ifndef POKEDIAMOND_OS_TICK_SHARED_H +#define POKEDIAMOND_OS_TICK_SHARED_H + +#include "nitro/types.h" + +typedef u64 OSTick; + +#define OS_SYSTEM_CLOCK HW_SYSTEM_CLOCK + +#define OS_MilliSecondsToTicks(msec) ((OSTick)(((OS_SYSTEM_CLOCK/1000) * (u64)(msec)) / 64)) + +#endif //POKEDIAMOND_OS_TICK_SHARED_H diff --git a/include/nitro/consts_shared.h b/include/nitro/consts_shared.h index b6342172..26cc2fca 100644 --- a/include/nitro/consts_shared.h +++ b/include/nitro/consts_shared.h @@ -30,6 +30,14 @@  #define OSi_InRange(targ, a, b)    ((u32)(a) <= (u32)(targ) && (u32)(targ) < (u32)(b))  #define OSi_OFFSET(n, a)           (((u32) (n)) & ((a) - 1)) +#define OS_THREAD_SPECIFIC_MAX     0x03 + +#define OS_THREAD_LAUNCHER_PRIORITY 0x10 +#define OS_THREAD_PRIORITY_MIN     0x00 +#define OS_THREAD_PRIORITY_MAX     0x1F + +#define HW_SYSTEM_CLOCK            33514000 +  #define OSi_GetArenaInfo()         (*(OSArenaInfo*)HW_ARENA_INFO_BUF)  #endif //POKEDIAMOND_CONSTS_SHARED_H diff --git a/include/nitro/mmap_shared.h b/include/nitro/mmap_shared.h index f7ba4fb4..60c0c1cb 100644 --- a/include/nitro/mmap_shared.h +++ b/include/nitro/mmap_shared.h @@ -18,6 +18,9 @@  #define HW_MAIN_MEM_MAIN_SIZE   0x003E0000  #define HW_MAIN_MEM_SHARED_SIZE 0x00001000 +#define HW_WRAM                 0x037F8000 + +#define HW_MAIN_MEM_SYSTEM      (HW_MAIN_MEM + 0x007ffc00)  #define HW_WM_BOOT_BUF          (HW_MAIN_MEM + 0x007ffc40)  #define HW_ARENA_INFO_BUF       (HW_MAIN_MEM + 0x007ffda0)  #define HW_CTRDG_LOCK_BUF       (HW_MAIN_MEM + 0x007fffe8) | 
