gallium/os: use mmap64 for Android
authorRob Herring <robh@kernel.org>
Tue, 23 May 2017 18:54:19 +0000 (13:54 -0500)
committerRob Herring <robh@kernel.org>
Thu, 25 May 2017 20:00:34 +0000 (15:00 -0500)
Simplify the handling of mmap for Android by using mmap64 instead. mmap64
may have not existed for Android when this was written, but it's been
around since 2013.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
src/gallium/auxiliary/os/os_mman.h

index 2ae0027c1c2a34c071451fd249e5cb80e747b857..c7ef9d021704a61c5087677ca6f1b7831d01e3b8 100644 (file)
 #  error Unsupported OS
 #endif
 
-#if defined(PIPE_OS_ANDROID)
-#  include <errno.h> /* for EINVAL */
-#endif
-
 #ifdef  __cplusplus
 extern "C" {
 #endif
 
 
 #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)
-{
-   /* offset must be aligned to 4096 (not necessarily the page size) */
-   if (unlikely(offset & 4095)) {
-      errno = EINVAL;
-      return MAP_FAILED;
-   }
-
-   return __mmap2(addr, length, prot, flags, fd, (size_t) (offset >> 12));
-}
+/* 32-bit needs mmap64 for 64-bit offsets */
+#  define os_mmap(addr, length, prot, flags, fd, offset) \
+             mmap64(addr, length, prot, flags, fd, offset)
 
 #  define os_munmap(addr, length) \
              munmap(addr, length)