Mesa (master): gallium/os: use mmap64 for Android

Rob Herring robh at kemper.freedesktop.org
Thu May 25 20:21:57 UTC 2017


Module: Mesa
Branch: master
Commit: 51f9851753f7605eaa52a7a6982581455e1863ab
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=51f9851753f7605eaa52a7a6982581455e1863ab

Author: Rob Herring <robh at kernel.org>
Date:   Tue May 23 13:54:19 2017 -0500

gallium/os: use mmap64 for Android

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 at collabora.com>
Signed-off-by: Rob Herring <robh at kernel.org>

---

 src/gallium/auxiliary/os/os_mman.h | 21 +++------------------
 1 file changed, 3 insertions(+), 18 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_mman.h b/src/gallium/auxiliary/os/os_mman.h
index 2ae0027c1c..c7ef9d0217 100644
--- a/src/gallium/auxiliary/os/os_mman.h
+++ b/src/gallium/auxiliary/os/os_mman.h
@@ -45,30 +45,15 @@
 #  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)




More information about the mesa-commit mailing list