diff options
author | red031000 <rubenru09@aol.com> | 2020-06-14 17:32:24 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-06-14 17:34:02 +0100 |
commit | 7a7bce2bc77bf7886916787cb09f6d39704818c3 (patch) | |
tree | e707a1371a93def4ae868296b0f3415c0c0ef6bb /arm7/lib/include | |
parent | 1406a7a34713f0305160583b056721a5dd525df7 (diff) |
arm7 OS_spinLock
Diffstat (limited to 'arm7/lib/include')
-rw-r--r-- | arm7/lib/include/MI_dma.h | 6 | ||||
-rw-r--r-- | arm7/lib/include/OS_spinLock.h | 28 | ||||
-rw-r--r-- | arm7/lib/include/mmap.h | 2 | ||||
-rw-r--r-- | arm7/lib/include/syscall.h | 6 |
4 files changed, 39 insertions, 3 deletions
diff --git a/arm7/lib/include/MI_dma.h b/arm7/lib/include/MI_dma.h index b728f814..e65f0b89 100644 --- a/arm7/lib/include/MI_dma.h +++ b/arm7/lib/include/MI_dma.h @@ -1,7 +1,7 @@ -#ifndef GUARD_MI_DMA_H -#define GUARD_MI_DMA_H +#ifndef POKEDIAMOND_ARM7_MI_DMA_H +#define POKEDIAMOND_ARM7_MI_DMA_H -#include "nitro/dma.h" +#include "nitro/MI_dma_shared.h" #include "nitro/types.h" void MI_StopDma(u32 channel); diff --git a/arm7/lib/include/OS_spinLock.h b/arm7/lib/include/OS_spinLock.h new file mode 100644 index 00000000..f7366d1f --- /dev/null +++ b/arm7/lib/include/OS_spinLock.h @@ -0,0 +1,28 @@ +#ifndef POKEDIAMOND_ARM7_OS_SPINLOCK_H +#define POKEDIAMOND_ARM7_OS_SPINLOCK_H + +#include "consts.h" +#include "nitro/OS_spinLock_shared.h" +#include "syscall.h" + +void OS_InitLock(void); +void FUN_037F8CB4(s32 ct); +s32 OSi_DoLockByWord(u16 lockId, OSLockWord *lockp, void (*ctrlFuncp) (void), BOOL disableFiq); +s32 OSi_DoUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void), BOOL disableFIQ); +s32 OSi_DoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void), BOOL disableFiq); +s32 OS_LockCartridge(u16 lockID); +s32 OS_UnlockCartridge(u16 lockID); +s32 OS_TryLockCartridge(u16 lockID); +void OSi_AllocateCartridgeBus(void); +void OSi_FreeCartridgeBus(void); +u16 OS_ReadOwnerOfLockWord(OSLockWord * lock); +s32 OS_UnLockCartridge(u16 lockID); +s32 OS_GetLockID(void); +void OS_ReleaseLockID(register u16 lockID); + +static inline void OSi_WaitByLoop(void) +{ + FUN_037F8CB4(0x1000 / 4); +} + +#endif //POKEDIAMOND_ARM7_OS_SPINLOCK_H diff --git a/arm7/lib/include/mmap.h b/arm7/lib/include/mmap.h index 24d15ad7..064938e2 100644 --- a/arm7/lib/include/mmap.h +++ b/arm7/lib/include/mmap.h @@ -23,4 +23,6 @@ #define HW_PRV_WRAM_SYSRV (HW_PRV_WRAM + HW_PRV_WRAM_SIZE - HW_PRV_WRAM_SYSRV_SIZE) +#define HW_LOCK_ID_FLAG_SUB (HW_MAIN_MEM + 0x007fffb8) + #endif //POKEDIAMOND_ARM7_MMAP_H diff --git a/arm7/lib/include/syscall.h b/arm7/lib/include/syscall.h new file mode 100644 index 00000000..55462cc7 --- /dev/null +++ b/arm7/lib/include/syscall.h @@ -0,0 +1,6 @@ +#ifndef POKEDIAMOND_ARM7_SYSCALL_H +#define POKEDIAMOND_ARM7_SYSCALL_H + +void SVC_WaitByLoop(u32 ct); + +#endif //POKEDIAMOND_ARM7_SYSCALL_H |