diff options
author | red031000 <rubenru09@aol.com> | 2020-05-07 15:40:45 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-05-07 15:42:07 +0100 |
commit | c8255e7f323a58625992973f9777a9928947f310 (patch) | |
tree | 23c55b3ce891cb00f546d13a86a4d1c6fb02724e | |
parent | 7bd2d6636ba5a34fb0ae984f377f690d51ba97f0 (diff) |
OS_terminate_proc
-rw-r--r-- | arm9/asm/OS_terminate_proc.s | 19 | ||||
-rw-r--r-- | arm9/lib/include/OS_terminate_proc.h | 11 | ||||
-rw-r--r-- | arm9/lib/src/OS_reset.c | 2 | ||||
-rw-r--r-- | arm9/lib/src/OS_terminate_proc.c | 21 |
4 files changed, 33 insertions, 20 deletions
diff --git a/arm9/asm/OS_terminate_proc.s b/arm9/asm/OS_terminate_proc.s deleted file mode 100644 index 30940914..00000000 --- a/arm9/asm/OS_terminate_proc.s +++ /dev/null @@ -1,19 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start OS_Halt -OS_Halt: ; 0x020CD844 - mov r0, #0x0 - mcr p15, 0x0, r0, c7, c0, 0x4 - bx lr - - arm_func_start OS_Terminate -OS_Terminate: ; 0x020CD850 - stmdb sp!, {lr} - sub sp, sp, #0x4 -_020CD858: - bl OS_DisableInterrupts - bl OS_Halt - b _020CD858 diff --git a/arm9/lib/include/OS_terminate_proc.h b/arm9/lib/include/OS_terminate_proc.h new file mode 100644 index 00000000..26741e5d --- /dev/null +++ b/arm9/lib/include/OS_terminate_proc.h @@ -0,0 +1,11 @@ +// +// Created by red031000 on 2020-05-07. +// + +#ifndef POKEDIAMOND_OS_TERMINATE_PROC_H +#define POKEDIAMOND_OS_TERMINATE_PROC_H + +void OS_Terminate(); +void OS_Halt(); + +#endif //POKEDIAMOND_OS_TERMINATE_PROC_H diff --git a/arm9/lib/src/OS_reset.c b/arm9/lib/src/OS_reset.c index b12703da..bec2da22 100644 --- a/arm9/lib/src/OS_reset.c +++ b/arm9/lib/src/OS_reset.c @@ -5,13 +5,13 @@ #include "function_target.h" #include "OS_reset.h" #include "MB_mb.h" +#include "OS_terminate_proc.h" extern u16 OSi_IsInitReset; extern vu16 OSi_IsResetOccurred; extern void PXI_Init(); extern u32 PXI_IsCallbackReady(u32 param1, u32 param2); extern void PXI_SetFifoRecvCallback(u32 param1, void* callback); -extern void OS_Terminate(); extern u32 PXI_SendWordByFifo(u32 param1, u32 data, u32 param2); extern void CARD_LockRom(u16 lockId); extern u32 OS_GetLockID(); diff --git a/arm9/lib/src/OS_terminate_proc.c b/arm9/lib/src/OS_terminate_proc.c new file mode 100644 index 00000000..eb267c6b --- /dev/null +++ b/arm9/lib/src/OS_terminate_proc.c @@ -0,0 +1,21 @@ +// +// Created by red031000 on 2020-05-07. +// + +#include "types.h" +#include "OS_terminate_proc.h" +#include "function_target.h" +#include "OS_system.h" + +ARM_FUNC void OS_Terminate() { + while (TRUE) { + (void)OS_DisableInterrupts(); + OS_Halt(); + } +} + +ARM_FUNC asm void OS_Halt() { + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c0, 0x4 + bx lr +} |