1 use super::error::{Error, Result};
2
syscall0(mut a: usize) -> Result<usize>3 pub unsafe fn syscall0(mut a: usize) -> Result<usize> {
4 llvm_asm!("swi $$0"
5 : "={r0}"(a)
6 : "{r7}"(a)
7 : "memory"
8 : "volatile");
9
10 Error::demux(a)
11 }
12
syscall1(mut a: usize, b: usize) -> Result<usize>13 pub unsafe fn syscall1(mut a: usize, b: usize) -> Result<usize> {
14 llvm_asm!("swi $$0"
15 : "={r0}"(a)
16 : "{r7}"(a), "{r0}"(b)
17 : "memory"
18 : "volatile");
19
20 Error::demux(a)
21 }
22
syscall2(mut a: usize, b: usize, c: usize) -> Result<usize>23 pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result<usize> {
24 llvm_asm!("swi $$0"
25 : "={r0}"(a)
26 : "{r7}"(a), "{r0}"(b), "{r1}"(c)
27 : "memory"
28 : "volatile");
29
30 Error::demux(a)
31 }
32
syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result<usize>33 pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result<usize> {
34 llvm_asm!("swi $$0"
35 : "={r0}"(a)
36 : "{r7}"(a), "{r0}"(b), "{r1}"(c), "{r2}"(d)
37 : "memory"
38 : "volatile");
39
40 Error::demux(a)
41 }
42
syscall4(mut a: usize, b: usize, c: usize, d: usize, e: usize) -> Result<usize>43 pub unsafe fn syscall4(mut a: usize, b: usize, c: usize, d: usize, e: usize) -> Result<usize> {
44 llvm_asm!("swi $$0"
45 : "={r0}"(a)
46 : "{r7}"(a), "{r0}"(b), "{r1}"(c), "{r2}"(d), "{r3}"(e)
47 : "memory"
48 : "volatile");
49
50 Error::demux(a)
51 }
52
syscall5(mut a: usize, b: usize, c: usize, d: usize, e: usize, f: usize) -> Result<usize>53 pub unsafe fn syscall5(mut a: usize, b: usize, c: usize, d: usize, e: usize, f: usize)
54 -> Result<usize> {
55 llvm_asm!("swi $$0"
56 : "={r0}"(a)
57 : "{r7}"(a), "{r0}"(b), "{r1}"(c), "{r2}"(d), "{r3}"(e), "{r4}"(f)
58 : "memory"
59 : "volatile");
60
61 Error::demux(a)
62 }
63