cleanup mbstowcs wrapper
[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");
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");
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");
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");
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");
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");
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");
96         return r3;
97 }
98
99 #else
100
101 static inline long __syscall0(long n)
102 {
103         return (__syscall)(n);
104 }
105
106 static inline long __syscall1(long n, long a)
107 {
108         return (__syscall)(n, a);
109 }
110
111 static inline long __syscall2(long n, long a, long b)
112 {
113         return (__syscall)(n, a, b);
114 }
115
116 static inline long __syscall3(long n, long a, long b, long c)
117 {
118         return (__syscall)(n, a, b, c);
119 }
120
121 static inline long __syscall4(long n, long a, long b, long c, long d)
122 {
123         return (__syscall)(n, a, b, c, d);
124 }
125
126 static inline long __syscall5(long n, long a, long b, long c, long d, long e)
127 {
128         return (__syscall)(n, a, b, c, d, e);
129 }
130
131 static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
132 {
133         return (__syscall)(n, a, b, c, d, e, f);
134 }
135
136 #endif