gallium: replace INLINE with inline
[mesa.git] / src / gallium / auxiliary / os / os_mman.h
index b48eb053023f69630a435fa58b47d373078ea343..2ae0027c1c2a34c071451fd249e5cb80e747b857 100644 (file)
@@ -40,9 +40,6 @@
 #include "pipe/p_compiler.h"
 
 #if defined(PIPE_OS_UNIX)
-#  ifndef _FILE_OFFSET_BITS
-#    error _FILE_OFFSET_BITS must be defined to 64
-#  endif
 #  include <sys/mman.h>
 #else
 #  error Unsupported OS
@@ -57,11 +54,12 @@ extern "C" {
 #endif
 
 
-#if defined(PIPE_OS_ANDROID)
+#if defined(PIPE_OS_ANDROID) && !defined(__LP64__)
 
 extern void *__mmap2(void *, size_t, int, int, int, size_t);
 
-static INLINE void *os_mmap(void *addr, size_t length, int prot, int flags, int fd, loff_t offset)
+static inline void *os_mmap(void *addr, size_t length, int prot, int flags,
+                            int fd, loff_t offset)
 {
    /* offset must be aligned to 4096 (not necessarily the page size) */
    if (unlikely(offset & 4095)) {
@@ -72,12 +70,26 @@ static INLINE void *os_mmap(void *addr, size_t length, int prot, int flags, int
    return __mmap2(addr, length, prot, flags, fd, (size_t) (offset >> 12));
 }
 
+#  define os_munmap(addr, length) \
+             munmap(addr, length)
+
 #else
 /* assume large file support exists */
-#  define os_mmap(addr, length, prot, flags, fd, offset) mmap(addr, length, prot, flags, fd, offset)
-#endif
+#  define os_mmap(addr, length, prot, flags, fd, offset) \
+             mmap(addr, length, prot, flags, fd, offset)
 
-#define os_munmap(addr, length) munmap(addr, length)
+static inline int os_munmap(void *addr, size_t length)
+{
+   /* Copied from configure code generated by AC_SYS_LARGEFILE */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + \
+                     (((off_t) 1 << 31) << 31))
+   STATIC_ASSERT(LARGE_OFF_T % 2147483629 == 721 &&
+                 LARGE_OFF_T % 2147483647 == 1);
+#undef LARGE_OFF_T
+
+   return munmap(addr, length);
+}
+#endif
 
 
 #ifdef __cplusplus