diff options
author | Martmists <martmists@gmail.com> | 2020-04-23 14:28:27 +0200 |
---|---|---|
committer | Martmists <martmists@gmail.com> | 2020-04-23 14:28:27 +0200 |
commit | 4e2316c01dea50716173a97f36228d2b9607964f (patch) | |
tree | cca579f8e74b24f1f95ec2dc2e184b156f26be44 /include/nitro/os_system.c | |
parent | 9b3107c478c9f39c17ef4171c9c5330adcb1385a (diff) |
Estimate file boundaries for os_alloc
Diffstat (limited to 'include/nitro/os_system.c')
-rw-r--r-- | include/nitro/os_system.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/nitro/os_system.c b/include/nitro/os_system.c new file mode 100644 index 00000000..08ebeff9 --- /dev/null +++ b/include/nitro/os_system.c @@ -0,0 +1,34 @@ +// +// Created by mart on 4/23/20. +// + +#include "os_system.h" + +OSProcMode OS_GetProcMode() { + __asm { + mrs r0, cpsr + and r0, r0, #HW_PSR_CPU_MODE_MASK + bx lr + } +} + +OSIntrMode OS_DisableInterrupts() { + __asm { + mrs r0, cpsr + orr r1, r0, #HW_PSR_IRQ_DISABLE + msr cpsr_c, r1 + and r0, r0, #HW_PSR_IRQ_DISABLE + bx lr + } +} + +OSIntrMode OS_RestoreInterrupts(OSIntrMode state) { + __asm { + 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 + } +} |