auxiliary/os: get the mmap/munmap wrappers working with android
authorEmil Velikov <emil.l.velikov@gmail.com>
Sun, 19 Oct 2014 15:16:51 +0000 (16:16 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Thu, 23 Oct 2014 14:18:11 +0000 (15:18 +0100)
 - Use macro for munmap under Android - the STATIC_ASSERT uses
a off_t which is not used under Android for mmap. As loff_t size
does not vary as does off_t just ignore the assert.

 - Wrap the long lines to improve readability.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
src/gallium/auxiliary/os/os_mman.h

index 19478d24e449ee4bd735ecfbfc036d11eb58ac31..19c9a5b81f5b7a241fa737b4ad0be63683a30884 100644 (file)
@@ -58,7 +58,8 @@ extern "C" {
 
 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)) {
@@ -69,20 +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 drm_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)
 
 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);
+#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