diff options
author | Christian Cunningham <cc@localhost> | 2022-02-13 01:54:51 -0700 |
---|---|---|
committer | Christian Cunningham <cc@localhost> | 2022-02-13 01:54:51 -0700 |
commit | 958696be616aaaa4fe18fc2b886216f191bb6f9b (patch) | |
tree | 1bdef3ca97744487cfaad680665adce83dc60d47 /include/cpu.h | |
parent | fcf70bcd6a2b2d3bbf76280041438fb1abf33d52 (diff) |
Mutex Waiting Implemented
Svc 4 and 5
Diffstat (limited to 'include/cpu.h')
-rw-r--r-- | include/cpu.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/cpu.h b/include/cpu.h index 19f0e56..c200016 100644 --- a/include/cpu.h +++ b/include/cpu.h @@ -81,7 +81,11 @@ static inline void* getirqstack(void) #define sys0(sys_n) asm volatile("svc #" syscall_h_expand_and_quote(sys_n) ::: "r0", "r1", "r2", "r3"); #define sys0_64(sys_n,addr) asm volatile("svc #" syscall_h_expand_and_quote(sys_n) "\nmov r2, %0\nstr r1, [r2]\nstr r0, [r2, #4]" ::"r"(addr): "r0", "r1", "r2", "r3", "memory"); -#define sys1(sys_n,arg0) asm volatile("svc #" syscall_h_expand_and_quote(sys_n) ::[r0]"r"(arg0): "r0", "r1", "r2", "r3"); +//#define sys1(sys_n,arg0) asm volatile("svc #" syscall_h_expand_and_quote(sys_n) ::[r0]"r"(arg0): "r0", "r1", "r2", "r3"); +#define sys1(sys_n,arg0) {\ + register long r0 asm ("r0") = (long) (arg0); \ + asm volatile("svc #" syscall_h_expand_and_quote(sys_n) ::"r"(r0): "memory"); \ + } #define SYS_YIELD 0 #define SYS_TIME 1 |