summaryrefslogtreecommitdiff
path: root/arm7/lib/src
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-06-13 20:12:27 +0100
committerred031000 <rubenru09@aol.com>2020-06-13 20:13:43 +0100
commit91db1083cc248734e934ff9e1c93a27c2b448250 (patch)
treef4510ab7a789e096d6cd08a80e9851b92fd663f9 /arm7/lib/src
parentae95019da3c7da624674794b8e2d503e063b82e6 (diff)
arm7 OS_terminate_proc
Diffstat (limited to 'arm7/lib/src')
-rw-r--r--arm7/lib/src/OS_reset.c2
-rw-r--r--arm7/lib/src/OS_terminate_proc.c17
2 files changed, 18 insertions, 1 deletions
diff --git a/arm7/lib/src/OS_reset.c b/arm7/lib/src/OS_reset.c
index c40fcff3..e0f380f8 100644
--- a/arm7/lib/src/OS_reset.c
+++ b/arm7/lib/src/OS_reset.c
@@ -1,6 +1,7 @@
#include "function_target.h"
#include "OS_reset.h"
#include "OS_interrupt.h"
+#include "OS_terminate_proc.h"
static u16 OSi_IsInitReset = 0;
vu16 OSi_IsResetOccurred = 0;
@@ -10,7 +11,6 @@ extern OSIrqMask OS_SetIrqMask(OSIrqMask mask);
extern OSIrqMask OS_ResetRequestIrqMask(OSIrqMask mask);
extern void SND_Shutdown(void);
extern void PXI_SetFifoRecvCallback(u32 param1, void* callback);
-extern void OS_Terminate(void);
extern u32 PXI_SendWordByFifo(u32 param1, u32 data, u32 param2);
extern void FUN_038073EC(void); //OSi_DoResetSystem, in wram
diff --git a/arm7/lib/src/OS_terminate_proc.c b/arm7/lib/src/OS_terminate_proc.c
new file mode 100644
index 00000000..23793fd4
--- /dev/null
+++ b/arm7/lib/src/OS_terminate_proc.c
@@ -0,0 +1,17 @@
+#include "function_target.h"
+#include "nitro/types.h"
+#include "OS_terminate_proc.h"
+#include "OS_system.h"
+
+extern void CTRDG_VibPulseEdgeUpdate(u32 param);
+extern void FUN_037F8530(void); //SVC_Halt
+
+ARM_FUNC void OS_Terminate(void)
+{
+ CTRDG_VibPulseEdgeUpdate(0);
+ while (TRUE)
+ {
+ (void)OS_DisableInterrupts();
+ FUN_037F8530(); //SVC_Halt
+ }
+}