dynamic linker: permit error returns from arch-specific reloc function
[musl] / arch / powerpc / 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 long (__syscall)(long, ...);
7
8 static inline long __syscall0(long n)
9 {
10         return (__syscall)(n, 0, 0, 0, 0, 0, 0);
11 }
12
13 static inline long __syscall1(long n, long a)
14 {
15         return (__syscall)(n, a, 0, 0, 0, 0, 0);
16 }
17
18 static inline long __syscall2(long n, long a, long b)
19 {
20         return (__syscall)(n, a, b, 0, 0, 0, 0);
21 }
22
23 static inline long __syscall3(long n, long a, long b, long c)
24 {
25         return (__syscall)(n, a, b, c, 0, 0, 0);
26 }
27
28 static inline long __syscall4(long n, long a, long b, long c, long d)
29 {
30         return (__syscall)(n, a, b, c, d, 0, 0);
31 }
32
33 static inline long __syscall5(long n, long a, long b, long c, long d, long e)
34 {
35         return (__syscall)(n, a, b, c, d, e, 0);
36 }
37
38 static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
39 {
40         return (__syscall)(n, a, b, c, d, e, f);
41 }