Optimize x86_64 atomics to take advantage of 64-bitness.
[musl] / arch / i386 / syscall.h
index 901263b..c87401f 100644 (file)
@@ -480,6 +480,57 @@ static inline long syscall6(long n, long a1, long a2, long a3, long a4, long a5,
 #define __NR_setfsgid __NR_setfsgid32
 
 
+/* fixup legacy 32-bit-vs-lfs64 junk */
+#undef __NR_getdents
+#undef __NR_ftruncate
+#undef __NR_truncate
+#undef __NR_stat
+#undef __NR_fstat
+#undef __NR_lstat
+#undef __NR_statfs
+#undef __NR_fstatfs
+#define __NR_getdents __NR_getdents64
+#define __NR_ftruncate __NR_ftruncate64
+#define __NR_truncate __NR_truncate64
+#define __NR_stat __NR_stat64
+#define __NR_fstat __NR_fstat64
+#define __NR_lstat __NR_lstat64
+#define __NR_statfs __NR_statfs64
+#define __NR_fstatfs __NR_fstatfs64
+#define __NR_fstatat __NR_fstatat64
+#define __NR_pread __NR_pread64
+#define __NR_pwrite __NR_pwrite64
+
+#undef __NR_getrlimit
+#define __NR_getrlimit __NR_ugetrlimit
+
+#undef __NR_select
+#define __NR_select __NR__newselect
+
+
+#define __SC_socket      1
+#define __SC_bind        2
+#define __SC_connect     3
+#define __SC_listen      4
+#define __SC_accept      5
+#define __SC_getsockname 6
+#define __SC_getpeername 7
+#define __SC_socketpair  8
+#define __SC_send        9
+#define __SC_recv        10
+#define __SC_sendto      11
+#define __SC_recvfrom    12
+#define __SC_shutdown    13
+#define __SC_setsockopt  14
+#define __SC_getsockopt  15
+#define __SC_sendmsg     16
+#define __SC_recvmsg     17
+
+
+#define socketcall(nm, a, b, c, d, e, f) syscall2(__NR_socketcall, __SC_##nm, \
+    (long)(long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f })
+
+
 #undef O_LARGEFILE
 #define O_LARGEFILE 0100000