fix possible (questionable) strict aliasing violations and ptr arith
[musl] / arch / i386 / bits / syscall.h
index 274f205..88cd0d7 100644 (file)
@@ -88,6 +88,7 @@ static inline long __syscall4(long __n, long __a1, long __a2, long __a3, long __
        return __ret;
 }
 
+#if 0
 static inline long __syscall5(long __n, long __a1, long __a2, long __a3, long __a4, long __a5)
 {
        unsigned long __ret;
@@ -95,6 +96,12 @@ static inline long __syscall5(long __n, long __a1, long __a2, long __a3, long __
                : "=a"(__ret) : "a"(__n), "g"(__a1), "c"(__a2), "d"(__a3), "S"(__a4), "D"(__a5) : "memory");
        return __ret;
 }
+#else
+static inline long __syscall5(long __n, long __a1, long __a2, long __a3, long __a4, long __a5)
+{
+       return (__syscall)(__n, __a1, __a2, __a3, __a4, __a5);
+}
+#endif
 
 static inline long __syscall6(long __n, long __a1, long __a2, long __a3, long __a4, long __a5, long __a6)
 {
@@ -527,6 +534,8 @@ static inline long __syscall6(long __n, long __a1, long __a2, long __a3, long __
 #define __NR_pread __NR_pread64
 #define __NR_pwrite __NR_pwrite64
 
+#define __NR_fadvise __NR_fadvise64_64
+
 #undef __NR_getrlimit
 #define __NR_getrlimit __NR_ugetrlimit
 
@@ -936,6 +945,8 @@ static inline long __syscall6(long __n, long __a1, long __a2, long __a3, long __
 #define SYS_pread SYS_pread64
 #define SYS_pwrite SYS_pwrite64
 
+#define SYS_fadvise SYS_fadvise64_64
+
 #undef SYS_getrlimit
 #define SYS_getrlimit SYS_ugetrlimit