summaryrefslogtreecommitdiff
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
parentae95019da3c7da624674794b8e2d503e063b82e6 (diff)
arm7 OS_terminate_proc
-rw-r--r--arm7/asm/OS_terminate_proc.s15
-rw-r--r--arm7/lib/include/OS_init.h1
-rw-r--r--arm7/lib/include/OS_terminate_proc.h6
-rw-r--r--arm7/lib/src/OS_reset.c2
-rw-r--r--arm7/lib/src/OS_terminate_proc.c17
-rw-r--r--arm9/lib/include/OS_init.h1
-rw-r--r--arm9/lib/include/OS_terminate_proc.h10
7 files changed, 29 insertions, 23 deletions
diff --git a/arm7/asm/OS_terminate_proc.s b/arm7/asm/OS_terminate_proc.s
deleted file mode 100644
index 08b79c9a..00000000
--- a/arm7/asm/OS_terminate_proc.s
+++ /dev/null
@@ -1,15 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start OS_Terminate
-OS_Terminate: ; 0x037FB1F0
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov r0, #0
- bl CTRDG_VibPulseEdgeUpdate
-_037FB200:
- bl OS_DisableInterrupts
- bl FUN_037F8530
- b _037FB200
diff --git a/arm7/lib/include/OS_init.h b/arm7/lib/include/OS_init.h
index c90740c2..c4e1ca37 100644
--- a/arm7/lib/include/OS_init.h
+++ b/arm7/lib/include/OS_init.h
@@ -6,6 +6,7 @@
#include "OS_arena.h"
#include "OS_alloc.h"
#include "OS_reset.h"
+#include "OS_terminate_proc.h"
void OS_Init(void);
diff --git a/arm7/lib/include/OS_terminate_proc.h b/arm7/lib/include/OS_terminate_proc.h
new file mode 100644
index 00000000..ea2273c8
--- /dev/null
+++ b/arm7/lib/include/OS_terminate_proc.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_ARM7_OS_TERMINATE_PROC_H
+#define POKEDIAMOND_ARM7_OS_TERMINATE_PROC_H
+
+void OS_Terminate(void);
+
+#endif //POKEDIAMOND_ARM7_OS_TERMINATE_PROC_H
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
+ }
+}
diff --git a/arm9/lib/include/OS_init.h b/arm9/lib/include/OS_init.h
index 3c8aea24..03ff26d2 100644
--- a/arm9/lib/include/OS_init.h
+++ b/arm9/lib/include/OS_init.h
@@ -23,6 +23,7 @@
#include "OS_interrupt.h"
#include "OS_reset.h"
#include "OS_spinLock.h"
+#include "OS_tick.h"
void OS_Init(void);
diff --git a/arm9/lib/include/OS_terminate_proc.h b/arm9/lib/include/OS_terminate_proc.h
index 1d3ac27e..b4553fb4 100644
--- a/arm9/lib/include/OS_terminate_proc.h
+++ b/arm9/lib/include/OS_terminate_proc.h
@@ -1,13 +1,9 @@
-//
-// Created by red031000 on 2020-05-07.
-//
-
-#ifndef POKEDIAMOND_OS_TERMINATE_PROC_H
-#define POKEDIAMOND_OS_TERMINATE_PROC_H
+#ifndef POKEDIAMOND_ARM9_OS_TERMINATE_PROC_H
+#define POKEDIAMOND_ARM9_OS_TERMINATE_PROC_H
#include "nitro/types.h"
void OS_Terminate(void);
void OS_Halt(void);
-#endif //POKEDIAMOND_OS_TERMINATE_PROC_H
+#endif //POKEDIAMOND_ARM9_OS_TERMINATE_PROC_H