summaryrefslogtreecommitdiff
path: root/include/nitro/os_system.c
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-04-30 20:13:36 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-04-30 20:13:36 -0400
commit6c3731902319116e8e73b14e2b75d5fd8c9642ff (patch)
tree72b3ac0553ea193e69c70325bcdb5579d263e211 /include/nitro/os_system.c
parent70dcdeff9aaeae583be70cdd7371b6b8a5fe6076 (diff)
parent081bd6efce613ed078407ab8fd24765275385f9f (diff)
Merge branch 'master' of https://github.com/martmists/pokediamond into pikalax_work
Diffstat (limited to 'include/nitro/os_system.c')
-rw-r--r--include/nitro/os_system.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/nitro/os_system.c b/include/nitro/os_system.c
new file mode 100644
index 00000000..2ccb7fc1
--- /dev/null
+++ b/include/nitro/os_system.c
@@ -0,0 +1,28 @@
+//
+// Created by mart on 4/23/20.
+//
+
+#include "os_system.h"
+
+asm OSIntrMode OS_DisableInterrupts() {
+ mrs r0, cpsr
+ orr r1, r0, #HW_PSR_IRQ_DISABLE
+ msr cpsr_c, r1
+ and r0, r0, #HW_PSR_IRQ_DISABLE
+ bx lr
+}
+
+asm OSIntrMode OS_RestoreInterrupts(OSIntrMode state) {
+ mrs r1, cpsr
+ bic r2, r1, #HW_PSR_IRQ_DISABLE
+ orr r2, r2, r0
+ msr cpsr_c, r2
+ and r0, r1, #HW_PSR_IRQ_DISABLE
+ bx lr
+}
+
+asm OSProcMode OS_GetProcMode() {
+ mrs r0, cpsr
+ and r0, r0, #HW_PSR_CPU_MODE_MASK
+ bx lr
+} \ No newline at end of file