]> git.proxmox.com Git - wasi-libc.git/blob - libc-top-half/musl/arch/microblaze/syscall_arch.h
6cf631ad5d317070671c114b8c3080ae021ba6f4
[wasi-libc.git] / libc-top-half / musl / arch / microblaze / syscall_arch.h
1 #define __SYSCALL_LL_E(x) \
2 ((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
3 ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
4 #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
5
6 #ifndef __clang__
7
8 static __inline long __syscall0(long n)
9 {
10 register unsigned long r12 __asm__("r12") = n;
11 register unsigned long r3 __asm__("r3");
12 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
13 : "r"(r12)
14 : "memory", "r4");
15 return r3;
16 }
17
18 static inline long __syscall1(long n, long a)
19 {
20 register unsigned long r12 __asm__("r12") = n;
21 register unsigned long r3 __asm__("r3");
22 register unsigned long r5 __asm__("r5") = a;
23 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
24 : "r"(r12), "r"(r5)
25 : "memory", "r4");
26 return r3;
27 }
28
29 static inline long __syscall2(long n, long a, long b)
30 {
31 register unsigned long r12 __asm__("r12") = n;
32 register unsigned long r3 __asm__("r3");
33 register unsigned long r5 __asm__("r5") = a;
34 register unsigned long r6 __asm__("r6") = b;
35 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
36 : "r"(r12), "r"(r5), "r"(r6)
37 : "memory", "r4");
38 return r3;
39 }
40
41 static inline long __syscall3(long n, long a, long b, long c)
42 {
43 register unsigned long r12 __asm__("r12") = n;
44 register unsigned long r3 __asm__("r3");
45 register unsigned long r5 __asm__("r5") = a;
46 register unsigned long r6 __asm__("r6") = b;
47 register unsigned long r7 __asm__("r7") = c;
48 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
49 : "r"(r12), "r"(r5), "r"(r6), "r"(r7)
50 : "memory", "r4");
51 return r3;
52 }
53
54 static inline long __syscall4(long n, long a, long b, long c, long d)
55 {
56 register unsigned long r12 __asm__("r12") = n;
57 register unsigned long r3 __asm__("r3");
58 register unsigned long r5 __asm__("r5") = a;
59 register unsigned long r6 __asm__("r6") = b;
60 register unsigned long r7 __asm__("r7") = c;
61 register unsigned long r8 __asm__("r8") = d;
62 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
63 : "r"(r12), "r"(r5), "r"(r6), "r"(r7), "r"(r8)
64 : "memory", "r4");
65 return r3;
66 }
67
68 static inline long __syscall5(long n, long a, long b, long c, long d, long e)
69 {
70 register unsigned long r12 __asm__("r12") = n;
71 register unsigned long r3 __asm__("r3");
72 register unsigned long r5 __asm__("r5") = a;
73 register unsigned long r6 __asm__("r6") = b;
74 register unsigned long r7 __asm__("r7") = c;
75 register unsigned long r8 __asm__("r8") = d;
76 register unsigned long r9 __asm__("r9") = e;
77 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
78 : "r"(r12), "r"(r5), "r"(r6), "r"(r7), "r"(r8), "r"(r9)
79 : "memory", "r4");
80 return r3;
81 }
82
83 static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
84 {
85 register unsigned long r12 __asm__("r12") = n;
86 register unsigned long r3 __asm__("r3");
87 register unsigned long r5 __asm__("r5") = a;
88 register unsigned long r6 __asm__("r6") = b;
89 register unsigned long r7 __asm__("r7") = c;
90 register unsigned long r8 __asm__("r8") = d;
91 register unsigned long r9 __asm__("r9") = e;
92 register unsigned long r10 __asm__("r10") = f;
93 __asm__ __volatile__ ("brki r14, 0x8" : "=r"(r3)
94 : "r"(r12), "r"(r5), "r"(r6), "r"(r7), "r"(r8), "r"(r9), "r"(r10)
95 : "memory", "r4");
96 return r3;
97 }
98
99 #else
100
101 #undef SYSCALL_NO_INLINE
102 #define SYSCALL_NO_INLINE
103
104 #endif
105
106 #define SYSCALL_IPC_BROKEN_MODE