diff options
author | red031000 <rubenru09@aol.com> | 2020-07-27 01:11:45 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-07-27 01:11:45 +0100 |
commit | 7c2a848ecccb95d010d8c0836c5d9c6a96b39da0 (patch) | |
tree | d650d996f8fa9b741b1075d8b897d73c8e7034a7 /arm9/lib/src | |
parent | 23873ed88f9920db6ed463fa02157686264369bd (diff) |
some cleanups
Diffstat (limited to 'arm9/lib/src')
-rw-r--r-- | arm9/lib/src/FS_command.c | 2 | ||||
-rw-r--r-- | arm9/lib/src/FS_command_default.c | 1 | ||||
-rw-r--r-- | arm9/lib/src/FS_file.c | 2 | ||||
-rw-r--r-- | arm9/lib/src/FX_mtx44.c | 1 | ||||
-rw-r--r-- | arm9/lib/src/GX.c | 4 | ||||
-rw-r--r-- | arm9/lib/src/GX_g2.c | 4 | ||||
-rw-r--r-- | arm9/lib/src/GX_g3x.c | 76 | ||||
-rw-r--r-- | arm9/lib/src/MI_dma_gxcommand.c | 8 | ||||
-rw-r--r-- | arm9/lib/src/OS_alarm.c | 4 | ||||
-rw-r--r-- | arm9/lib/src/OS_arena.c | 3 | ||||
-rw-r--r-- | arm9/lib/src/OS_exception.c | 4 | ||||
-rw-r--r-- | arm9/lib/src/OS_irqHandler.c | 2 | ||||
-rw-r--r-- | arm9/lib/src/OS_reset.c | 7 | ||||
-rw-r--r-- | arm9/lib/src/OS_system.c | 53 | ||||
-rw-r--r-- | arm9/lib/src/OS_terminate_proc.c | 9 | ||||
-rw-r--r-- | arm9/lib/src/OS_thread.c | 13 | ||||
-rw-r--r-- | arm9/lib/src/OS_tick.c | 2 |
17 files changed, 119 insertions, 76 deletions
diff --git a/arm9/lib/src/FS_command.c b/arm9/lib/src/FS_command.c index 7e0d41c9..e677f6c6 100644 --- a/arm9/lib/src/FS_command.c +++ b/arm9/lib/src/FS_command.c @@ -40,6 +40,8 @@ ARM_FUNC FSResult FSi_TranslateCommand(FSFile *p_file, FSCommandType command) ret = FS_RESULT_PROC_DEFAULT; p_arc->proc_flag &= ~bit; break; + default: + break; } } else diff --git a/arm9/lib/src/FS_command_default.c b/arm9/lib/src/FS_command_default.c index 582bf1b2..0cdc91fc 100644 --- a/arm9/lib/src/FS_command_default.c +++ b/arm9/lib/src/FS_command_default.c @@ -55,6 +55,7 @@ ARM_FUNC FSResult FSi_ReadTable(FSiSyncReadParam * p, void * dst, u32 len) (void)OS_RestoreInterrupts(bak_psr); ret = p_arc->list.next->error; } + default: break; } p->pos += len; diff --git a/arm9/lib/src/FS_file.c b/arm9/lib/src/FS_file.c index c1a6c54d..11595c02 100644 --- a/arm9/lib/src/FS_file.c +++ b/arm9/lib/src/FS_file.c @@ -7,6 +7,8 @@ extern FSDirPos current_dir_pos; BOOL is_init = FALSE; +static BOOL FSi_FindPath(FSFile * p_dir, const char * path, FSFileID * p_file_id, FSDirPos * p_dir_pos); + ARM_FUNC void FS_Init(u32 default_dma_no) { if (!is_init) diff --git a/arm9/lib/src/FX_mtx44.c b/arm9/lib/src/FX_mtx44.c index 697f8709..c72f6158 100644 --- a/arm9/lib/src/FX_mtx44.c +++ b/arm9/lib/src/FX_mtx44.c @@ -103,7 +103,6 @@ ARM_FUNC asm void MTX_Copy44To43_(struct Mtx44 *src, struct Mtx43 *dst){ bx lr } - THUMB_FUNC asm void MTX_RotX44_(struct Mtx44 *mtx, fx32 sinphi, fx32 cosphi){ str r2, [r0, #0x14] str r2, [r0, #0x28] diff --git a/arm9/lib/src/GX.c b/arm9/lib/src/GX.c index d103bed5..69ad8718 100644 --- a/arm9/lib/src/GX.c +++ b/arm9/lib/src/GX.c @@ -83,7 +83,7 @@ ARM_FUNC void GX_DispOn(){ sIsDispOn = 0x1; if (sDispMode) { - reg_GX_DISPCNT = reg_GX_DISPCNT & ~0x30000 | (sDispMode << 0x10); + reg_GX_DISPCNT = (reg_GX_DISPCNT & ~0x30000) | (sDispMode << 0x10); } else { @@ -102,7 +102,7 @@ ARM_FUNC void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3){ } ARM_FUNC void GXS_SetGraphicsMode(u32 mode){ - reg_GXS_DB_DISPCNT = reg_GXS_DB_DISPCNT & ~0x7 | mode; + reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & ~0x7) | mode; } ARM_FUNC void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){ diff --git a/arm9/lib/src/GX_g2.c b/arm9/lib/src/GX_g2.c index bde1d1a5..99ba0e26 100644 --- a/arm9/lib/src/GX_g2.c +++ b/arm9/lib/src/GX_g2.c @@ -50,7 +50,7 @@ ARM_FUNC void G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness){ { if ((temp & 0xC0) == 0x80) { - ptr[0] = (u16)(temp & ~0xC0 | 0xC0); + ptr[0] = (u16)((temp & ~0xC0) | 0xC0); } ptr[2] = (u16)(-brightness); } @@ -58,7 +58,7 @@ ARM_FUNC void G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness){ { if ((temp & 0xC0) == 0xC0) { - ptr[0] = (u16)(temp & ~0xC0 | 0x80); + ptr[0] = (u16)((temp & ~0xC0) | 0x80); } ptr[2] = (u16)brightness; } diff --git a/arm9/lib/src/GX_g3x.c b/arm9/lib/src/GX_g3x.c index c8266bee..41070a9b 100644 --- a/arm9/lib/src/GX_g3x.c +++ b/arm9/lib/src/GX_g3x.c @@ -8,42 +8,42 @@ void MI_Copy36B(void *src, void *dst); ARM_FUNC asm void GXi_NopClearFifo128_(void *reg){ mov r1, #0x0 - mov r2, #0x0 - mov r3, #0x0 - mov r12, #0x0 - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - stmia r0, {r1-r3,r12} - bx lr + mov r2, #0x0 + mov r3, #0x0 + mov r12, #0x0 + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + stmia r0, {r1-r3,r12} + bx lr } ARM_FUNC void G3X_Init(){ @@ -56,10 +56,10 @@ ARM_FUNC void G3X_Init(){ reg_G3X_DISP3DCNT |= 0x2000; reg_G3X_DISP3DCNT |= 0x1000; reg_G3X_DISP3DCNT &= ~0x3002; - reg_G3X_DISP3DCNT = (u16)(reg_G3X_DISP3DCNT & ~0x3000 | 0x10); + reg_G3X_DISP3DCNT = (u16)((reg_G3X_DISP3DCNT & ~0x3000) | 0x10); reg_G3X_DISP3DCNT = (u16)(reg_G3X_DISP3DCNT & (u16)~0x3004); reg_G3X_GXSTAT |= 0x8000; - reg_G3X_GXSTAT = reg_G3X_GXSTAT & ~0xC0000000 | 0x80000000; + reg_G3X_GXSTAT = (reg_G3X_GXSTAT & ~0xC0000000) | 0x80000000; G3X_InitMtxStack(); reg_G3X_CLEAR_COLOR = 0x0; reg_G3X_CLEAR_DEPTH = 0x7FFF; diff --git a/arm9/lib/src/MI_dma_gxcommand.c b/arm9/lib/src/MI_dma_gxcommand.c index 8d1a891a..781f1f73 100644 --- a/arm9/lib/src/MI_dma_gxcommand.c +++ b/arm9/lib/src/MI_dma_gxcommand.c @@ -6,6 +6,10 @@ static MIiGXDmaParams MIi_GXDmaParams = { FALSE }; +static void MIi_FIFOCallback(void); +static void MIi_DMACallback(void *arg); +static void MIi_DMAFastCallback(void *arg); + #pragma section ITCM begin ARM_FUNC void MI_SendGXCommand(u32 dmaNo, const void *src, u32 commandLength) { @@ -104,7 +108,7 @@ ARM_FUNC static void MIi_FIFOCallback(void) } } -ARM_FUNC static void MIi_DMACallback(void *) +ARM_FUNC static void MIi_DMACallback(void *arg) { (void)OS_DisableIrqMask(OS_IE_GXFIFO); @@ -141,7 +145,7 @@ ARM_FUNC void MI_SendGXCommandAsyncFast(u32 dmaNo, const void *src, u32 commandL MIi_DmaSetParams(dmaNo, (u32)src, (u32)REG_GXFIFO_ADDR, MI_CNT_GXCOPY_IF(commandLength)); } -ARM_FUNC static void MIi_DMAFastCallback(void *) +ARM_FUNC static void MIi_DMAFastCallback(void *arg) { MIi_GXDmaParams.isBusy = FALSE; diff --git a/arm9/lib/src/OS_alarm.c b/arm9/lib/src/OS_alarm.c index 1bd3ff2f..a8c1fedd 100644 --- a/arm9/lib/src/OS_alarm.c +++ b/arm9/lib/src/OS_alarm.c @@ -10,6 +10,10 @@ static struct OSiAlarmQueue OSi_AlarmQueue; static u16 OSi_UseAlarm = FALSE; +static void OSi_SetTimer(OSAlarm *alarm); +static void OSi_InsertAlarm(OSAlarm *alarm, OSTick fire); +static void OSi_ArrangeTimer(void); + ARM_FUNC static void OSi_SetTimer(OSAlarm *alarm) { OSTick tick = OS_GetTick(); diff --git a/arm9/lib/src/OS_arena.c b/arm9/lib/src/OS_arena.c index ad3a4e16..df9c2fd8 100644 --- a/arm9/lib/src/OS_arena.c +++ b/arm9/lib/src/OS_arena.c @@ -1,6 +1,3 @@ -//
-// Created by red031000 on 2020-04-27.
-//
#include "function_target.h"
#include "consts.h"
#include "OS_arena.h"
diff --git a/arm9/lib/src/OS_exception.c b/arm9/lib/src/OS_exception.c index 5a66b2c4..3aaaa2f2 100644 --- a/arm9/lib/src/OS_exception.c +++ b/arm9/lib/src/OS_exception.c @@ -11,6 +11,10 @@ static void *OSi_DebuggerHandler = NULL; #define HW_EXCEP_VECTOR_BUF_FOR_DEBUGGER 0x027ffd9c +static void OSi_GetAndDisplayContext(void); +static void OSi_SetExContext(void); +static void OSi_DisplayExContext(void); + ARM_FUNC void OS_InitException(void) { if (0x2600000 <= *(u32 *)HW_EXCEP_VECTOR_BUF_FOR_DEBUGGER diff --git a/arm9/lib/src/OS_irqHandler.c b/arm9/lib/src/OS_irqHandler.c index 68f1425d..b4e2d232 100644 --- a/arm9/lib/src/OS_irqHandler.c +++ b/arm9/lib/src/OS_irqHandler.c @@ -49,7 +49,7 @@ _01FF8070: str r3, [ip, #0x80] mov ip, r0 cmp ip, #0x0 -bne _01FF8070 + bne _01FF8070 ldr ip, =OSi_IrqThreadQueue str r3, [ip] str r3, [ip, #0x4] diff --git a/arm9/lib/src/OS_reset.c b/arm9/lib/src/OS_reset.c index 5994e643..a458a8fa 100644 --- a/arm9/lib/src/OS_reset.c +++ b/arm9/lib/src/OS_reset.c @@ -18,6 +18,13 @@ extern u32 PXI_SendWordByFifo(u32 param1, u32 data, u32 param2); extern void CARD_LockRom(u16 lockId); extern void MI_StopDma(u32 dma); +static void OSi_CommonCallback(PXIFifoTag tag, u32 data, BOOL err); +static void OSi_SendToPxi(u16 data); +static void OSi_DoResetSystem(void); +static void OSi_CpuClear32(register u32 data, register void *destp, register u32 size); +static void OSi_ReloadRomData(void); +static void OSi_ReadCardRom32(u32 src, void *dst, s32 len); + ARM_FUNC void OS_InitReset(void) { if (OSi_IsInitReset) { return; diff --git a/arm9/lib/src/OS_system.c b/arm9/lib/src/OS_system.c index de6b187a..f5f5faba 100644 --- a/arm9/lib/src/OS_system.c +++ b/arm9/lib/src/OS_system.c @@ -1,12 +1,9 @@ -// -// Created by mart on 4/23/20. -// - #include "OS_system.h" #include "OS_irqHandler.h" #include "syscall.h" -ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void) { +ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void) +{ mrs r0, cpsr bic r1, r0, #HW_PSR_DISABLE_IRQ msr cpsr_c, r1 @@ -14,24 +11,27 @@ ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void) { bx lr } -ARM_FUNC asm OSIntrMode OS_DisableInterrupts(void) { - mrs r0, cpsr - orr r1, r0, #HW_PSR_DISABLE_IRQ - msr cpsr_c, r1 - and r0, r0, #HW_PSR_DISABLE_IRQ - bx lr +ARM_FUNC asm OSIntrMode OS_DisableInterrupts(void) +{ + mrs r0, cpsr + orr r1, r0, #HW_PSR_DISABLE_IRQ + msr cpsr_c, r1 + and r0, r0, #HW_PSR_DISABLE_IRQ + bx lr } -ARM_FUNC asm OSIntrMode OS_RestoreInterrupts(OSIntrMode state) { - mrs r1, cpsr - bic r2, r1, #HW_PSR_DISABLE_IRQ - orr r2, r2, r0 - msr cpsr_c, r2 - and r0, r1, #HW_PSR_DISABLE_IRQ - bx lr +ARM_FUNC asm OSIntrMode OS_RestoreInterrupts(OSIntrMode state) +{ + mrs r1, cpsr + bic r2, r1, #HW_PSR_DISABLE_IRQ + orr r2, r2, r0 + msr cpsr_c, r2 + and r0, r1, #HW_PSR_DISABLE_IRQ + bx lr } -ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq(void) { +ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq(void) +{ mrs r0, cpsr orr r1, r0, #HW_PSR_DISABLE_IRQ_FIQ msr cpsr_c, r1 @@ -39,7 +39,8 @@ ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq(void) { bx lr } -ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state) { +ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state) +{ mrs r1, cpsr bic r2, r1, #HW_PSR_DISABLE_IRQ_FIQ orr r2, r2, r0 @@ -48,25 +49,29 @@ ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state) { bx lr } -ARM_FUNC asm OSIntrMode OS_GetCpsrIrq(void) { +ARM_FUNC asm OSIntrMode OS_GetCpsrIrq(void) +{ mrs r0, cpsr and r0, r0, #HW_PSR_DISABLE_IRQ bx lr } -ARM_FUNC asm OSProcMode OS_GetProcMode(void) { +ARM_FUNC asm OSProcMode OS_GetProcMode(void) +{ mrs r0, cpsr and r0, r0, #HW_PSR_CPU_MODE_MASK bx lr } -ARM_FUNC asm void OS_SpinWait(u32 cycles) { +ARM_FUNC asm void OS_SpinWait(u32 cycles) +{ subs r0, r0, #0x4 bhs OS_SpinWait bx lr } -ARM_FUNC void OS_WaitVBlankIntr(void) { +ARM_FUNC void OS_WaitVBlankIntr(void) +{ SVC_WaitByLoop(0x1); OS_WaitIrq(TRUE, OS_IE_V_BLANK); } diff --git a/arm9/lib/src/OS_terminate_proc.c b/arm9/lib/src/OS_terminate_proc.c index 2e5f3fb2..fdc4dbff 100644 --- a/arm9/lib/src/OS_terminate_proc.c +++ b/arm9/lib/src/OS_terminate_proc.c @@ -2,14 +2,17 @@ #include "function_target.h" #include "OS_system.h" -ARM_FUNC void OS_Terminate(void) { - while (TRUE) { +ARM_FUNC void OS_Terminate(void) +{ + while (TRUE) + { (void)OS_DisableInterrupts(); OS_Halt(); } } -ARM_FUNC asm void OS_Halt(void) { +ARM_FUNC asm void OS_Halt(void) +{ mov r0, #0x0 mcr p15, 0x0, r0, c7, c0, 0x4 //Wait For Interrupt (Halt) bx lr diff --git a/arm9/lib/src/OS_thread.c b/arm9/lib/src/OS_thread.c index 2ecde69a..35e91c22 100644 --- a/arm9/lib/src/OS_thread.c +++ b/arm9/lib/src/OS_thread.c @@ -32,6 +32,19 @@ OSThread OSi_IdleThread; u32 OSi_IdleThreadStack[50]; +static s32 OSi_GetUnusedThreadId(void); +static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread); +static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue); +static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread); +static void OSi_InsertThreadToList(OSThread *thread); +static void OSi_RemoveThreadFromList(OSThread *thread); +static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg); +static void OSi_ExitThread(void *arg); +static void OSi_ExitThread_Destroy(void); +static void OSi_CancelThreadAlarmForSleep(OSThread *thread); +static void OSi_SleepAlarmCallback(void *arg); +static void OSi_IdleThreadProc(void *); + ARM_FUNC static s32 OSi_GetUnusedThreadId(void) { return ++OSi_ThreadIdCount; diff --git a/arm9/lib/src/OS_tick.c b/arm9/lib/src/OS_tick.c index 17192117..b0e81054 100644 --- a/arm9/lib/src/OS_tick.c +++ b/arm9/lib/src/OS_tick.c @@ -8,6 +8,8 @@ static u16 OSi_UseTick = FALSE; vu64 OSi_TickCounter; BOOL OSi_NeedResetTimer = FALSE; +static void OSi_CountUpTick(void); + ARM_FUNC void OS_InitTick(void) { if (OSi_UseTick) |