From c63eb5dd5eccf8ecfcb9d83d680e17d2d6a12e7b Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Sun, 19 Oct 2014 16:16:51 +0100 Subject: auxiliary/os: get the mmap/munmap wrappers working with android - 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 --- src/gallium/auxiliary/os/os_mman.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/gallium/auxiliary/os/os_mman.h b/src/gallium/auxiliary/os/os_mman.h index 19478d24e44..19c9a5b81f5 100644 --- a/src/gallium/auxiliary/os/os_mman.h +++ b/src/gallium/auxiliary/os/os_mman.h @@ -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 -- cgit v1.2.3