diff options
Diffstat (limited to 'src/gallium')
| -rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 20 | 
1 files changed, 20 insertions, 0 deletions
| diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c index b582cf44d1..a388e379b9 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c @@ -39,6 +39,26 @@  #include <xf86drm.h>  #include <errno.h> +#ifdef ANDROID + +extern void*  __mmap2(void*, size_t, int, int, int, size_t); + +#define  MMAP2_SHIFT  12 +static void* android_mmap2(void *addr, size_t size, int prot, int flags, int fd, unsigned long long offset) +{ +   if ( offset & ((1UL << MMAP2_SHIFT)-1) ) { +      errno = EINVAL; +      return MAP_FAILED; +   } + +   return __mmap2(addr, size, prot, flags, fd, (size_t)(offset >> MMAP2_SHIFT)); +} + +#define mmap(addr, size, prot, flags, fd, offset) android_mmap2(addr, size, prot, flags, fd, offset) + +#endif /* ANDROID */ + +  #define RADEON_BO_FLAGS_MACRO_TILE  1  #define RADEON_BO_FLAGS_MICRO_TILE  2  #define RADEON_BO_FLAGS_MICRO_TILE_SQUARE 0x20 | 
