xref: /aosp_15_r20/external/musl/arch/m68k/syscall_arch.h (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #define __SYSCALL_LL_E(x) \
2*c9945492SAndroid Build Coastguard Worker ((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
3*c9945492SAndroid Build Coastguard Worker ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
4*c9945492SAndroid Build Coastguard Worker #define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x))
5*c9945492SAndroid Build Coastguard Worker 
__syscall0(long n)6*c9945492SAndroid Build Coastguard Worker static __inline long __syscall0(long n)
7*c9945492SAndroid Build Coastguard Worker {
8*c9945492SAndroid Build Coastguard Worker 	register unsigned long d0 __asm__("d0") = n;
9*c9945492SAndroid Build Coastguard Worker 	__asm__ __volatile__ ("trap #0" : "+r"(d0)
10*c9945492SAndroid Build Coastguard Worker 		:
11*c9945492SAndroid Build Coastguard Worker 		: "memory");
12*c9945492SAndroid Build Coastguard Worker 	return d0;
13*c9945492SAndroid Build Coastguard Worker }
14*c9945492SAndroid Build Coastguard Worker 
__syscall1(long n,long a)15*c9945492SAndroid Build Coastguard Worker static inline long __syscall1(long n, long a)
16*c9945492SAndroid Build Coastguard Worker {
17*c9945492SAndroid Build Coastguard Worker 	register unsigned long d0 __asm__("d0") = n;
18*c9945492SAndroid Build Coastguard Worker 	register unsigned long d1 __asm__("d1") = a;
19*c9945492SAndroid Build Coastguard Worker 	__asm__ __volatile__ ("trap #0" : "+r"(d0)
20*c9945492SAndroid Build Coastguard Worker 		: "r"(d1)
21*c9945492SAndroid Build Coastguard Worker 		: "memory");
22*c9945492SAndroid Build Coastguard Worker 	return d0;
23*c9945492SAndroid Build Coastguard Worker }
24*c9945492SAndroid Build Coastguard Worker 
__syscall2(long n,long a,long b)25*c9945492SAndroid Build Coastguard Worker static inline long __syscall2(long n, long a, long b)
26*c9945492SAndroid Build Coastguard Worker {
27*c9945492SAndroid Build Coastguard Worker 	register unsigned long d0 __asm__("d0") = n;
28*c9945492SAndroid Build Coastguard Worker 	register unsigned long d1 __asm__("d1") = a;
29*c9945492SAndroid Build Coastguard Worker 	register unsigned long d2 __asm__("d2") = b;
30*c9945492SAndroid Build Coastguard Worker 	__asm__ __volatile__ ("trap #0" : "+r"(d0)
31*c9945492SAndroid Build Coastguard Worker 		: "r"(d1), "r"(d2)
32*c9945492SAndroid Build Coastguard Worker 		: "memory");
33*c9945492SAndroid Build Coastguard Worker 	return d0;
34*c9945492SAndroid Build Coastguard Worker }
35*c9945492SAndroid Build Coastguard Worker 
__syscall3(long n,long a,long b,long c)36*c9945492SAndroid Build Coastguard Worker static inline long __syscall3(long n, long a, long b, long c)
37*c9945492SAndroid Build Coastguard Worker {
38*c9945492SAndroid Build Coastguard Worker 	register unsigned long d0 __asm__("d0") = n;
39*c9945492SAndroid Build Coastguard Worker 	register unsigned long d1 __asm__("d1") = a;
40*c9945492SAndroid Build Coastguard Worker 	register unsigned long d2 __asm__("d2") = b;
41*c9945492SAndroid Build Coastguard Worker 	register unsigned long d3 __asm__("d3") = c;
42*c9945492SAndroid Build Coastguard Worker 	__asm__ __volatile__ ("trap #0" : "+r"(d0)
43*c9945492SAndroid Build Coastguard Worker 		: "r"(d1), "r"(d2), "r"(d3)
44*c9945492SAndroid Build Coastguard Worker 		: "memory");
45*c9945492SAndroid Build Coastguard Worker 	return d0;
46*c9945492SAndroid Build Coastguard Worker }
47*c9945492SAndroid Build Coastguard Worker 
__syscall4(long n,long a,long b,long c,long d)48*c9945492SAndroid Build Coastguard Worker static inline long __syscall4(long n, long a, long b, long c, long d)
49*c9945492SAndroid Build Coastguard Worker {
50*c9945492SAndroid Build Coastguard Worker 	register unsigned long d0 __asm__("d0") = n;
51*c9945492SAndroid Build Coastguard Worker 	register unsigned long d1 __asm__("d1") = a;
52*c9945492SAndroid Build Coastguard Worker 	register unsigned long d2 __asm__("d2") = b;
53*c9945492SAndroid Build Coastguard Worker 	register unsigned long d3 __asm__("d3") = c;
54*c9945492SAndroid Build Coastguard Worker 	register unsigned long d4 __asm__("d4") = d;
55*c9945492SAndroid Build Coastguard Worker 	__asm__ __volatile__ ("trap #0" : "+r"(d0)
56*c9945492SAndroid Build Coastguard Worker 		: "r"(d1), "r"(d2), "r"(d3), "r"(d4)
57*c9945492SAndroid Build Coastguard Worker 		: "memory");
58*c9945492SAndroid Build Coastguard Worker 	return d0;
59*c9945492SAndroid Build Coastguard Worker }
60*c9945492SAndroid Build Coastguard Worker 
__syscall5(long n,long a,long b,long c,long d,long e)61*c9945492SAndroid Build Coastguard Worker static inline long __syscall5(long n, long a, long b, long c, long d, long e)
62*c9945492SAndroid Build Coastguard Worker {
63*c9945492SAndroid Build Coastguard Worker 	register unsigned long d0 __asm__("d0") = n;
64*c9945492SAndroid Build Coastguard Worker 	register unsigned long d1 __asm__("d1") = a;
65*c9945492SAndroid Build Coastguard Worker 	register unsigned long d2 __asm__("d2") = b;
66*c9945492SAndroid Build Coastguard Worker 	register unsigned long d3 __asm__("d3") = c;
67*c9945492SAndroid Build Coastguard Worker 	register unsigned long d4 __asm__("d4") = d;
68*c9945492SAndroid Build Coastguard Worker 	register unsigned long d5 __asm__("d5") = e;
69*c9945492SAndroid Build Coastguard Worker 	__asm__ __volatile__ ("trap #0" : "+r"(d0)
70*c9945492SAndroid Build Coastguard Worker 		: "r"(d1), "r"(d2), "r"(d3), "r"(d4), "r"(d5)
71*c9945492SAndroid Build Coastguard Worker 		: "memory");
72*c9945492SAndroid Build Coastguard Worker 	return d0;
73*c9945492SAndroid Build Coastguard Worker }
74*c9945492SAndroid Build Coastguard Worker 
__syscall6(long n,long a,long b,long c,long d,long e,long f)75*c9945492SAndroid Build Coastguard Worker static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f)
76*c9945492SAndroid Build Coastguard Worker {
77*c9945492SAndroid Build Coastguard Worker 	register unsigned long d0 __asm__("d0") = n;
78*c9945492SAndroid Build Coastguard Worker 	register unsigned long d1 __asm__("d1") = a;
79*c9945492SAndroid Build Coastguard Worker 	register unsigned long d2 __asm__("d2") = b;
80*c9945492SAndroid Build Coastguard Worker 	register unsigned long d3 __asm__("d3") = c;
81*c9945492SAndroid Build Coastguard Worker 	register unsigned long d4 __asm__("d4") = d;
82*c9945492SAndroid Build Coastguard Worker 	register unsigned long d5 __asm__("d5") = e;
83*c9945492SAndroid Build Coastguard Worker 	register unsigned long a0 __asm__("a0") = f;
84*c9945492SAndroid Build Coastguard Worker 	__asm__ __volatile__ ("trap #0" : "+r"(d0)
85*c9945492SAndroid Build Coastguard Worker 		: "r"(d1), "r"(d2), "r"(d3), "r"(d4), "r"(d5), "r"(a0)
86*c9945492SAndroid Build Coastguard Worker 		: "memory");
87*c9945492SAndroid Build Coastguard Worker 	return d0;
88*c9945492SAndroid Build Coastguard Worker }
89*c9945492SAndroid Build Coastguard Worker 
90*c9945492SAndroid Build Coastguard Worker #define SYSCALL_IPC_BROKEN_MODE
91