workaround for preprocessor bug in pcc
[musl] / src / internal / syscall.h
index 819aafe..0d88a0c 100644 (file)
@@ -5,28 +5,20 @@
 
 #include <sys/syscall.h>
 
-#define syscall0 syscall
-#define syscall1 syscall
-#define syscall2 syscall
-#define syscall3 syscall
-#define syscall4 syscall
-#define syscall5 syscall
-#define syscall6 syscall
-
 #define socketcall __socketcall
+#define socketcall_cp __socketcall_cp
+
+#define __syscall_cp0(n) (__syscall_cp)(n,0,0,0,0,0,0)
+#define __syscall_cp1(n,a) (__syscall_cp)(n,(long)(a),0,0,0,0,0)
+#define __syscall_cp2(n,a,b) (__syscall_cp)(n,(long)(a),(long)(b),0,0,0,0)
+#define __syscall_cp3(n,a,b,c) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),0,0,0)
+#define __syscall_cp4(n,a,b,c,d) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),0,0)
+#define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),0)
+#define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f))
+
+long (__syscall_cp)(long, long, long, long, long, long, long);
 
-/* the following are needed for iso c functions to use */
-#define __syscall_open(filename, flags, mode) syscall(__NR_open, (filename), (flags)|0100000, (mode))
-#define __syscall_read(fd, buf, len)          syscall(__NR_read, (fd), (buf), (len))
-#define __syscall_write(fd, buf, len)         syscall(__NR_write, (fd), (buf), (len))
-#define __syscall_close(fd)                   syscall(__NR_close, (fd))
-#define __syscall_fcntl(fd, cmd, arg)         syscall(__NR_fcntl, (fd), (cmd), (arg))
-#define __syscall_dup2(old, new)              syscall(__NR_dup2, (old), (new))
-#define __syscall_unlink(path)                syscall(__NR_unlink, (path))
-#define __syscall_getpid()                    syscall(__NR_getpid)
-#define __syscall_kill(pid,sig)               syscall(__NR_kill, (pid), (sig))
-#define __syscall_sigaction(sig,new,old)      syscall(__NR_rt_sigaction, (sig), (new), (old), 8)
-#define __syscall_ioctl(fd,ioc,arg)           syscall(__NR_ioctl, (fd), (ioc), (arg))
-#define __syscall_exit(code)                  syscall(__NR_exit, code)
+#define __syscall_cp(...) __SYSCALL_DISP(__syscall_cp,__VA_ARGS__)
+#define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__))
 
 #endif