OSDN Git Service

android: Use __mmap2.
authorChia-I Wu <olvaffe@gmail.com>
Sun, 10 Oct 2010 18:07:31 +0000 (14:07 -0400)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Sat, 5 Nov 2011 04:09:18 +0000 (12:09 +0800)
intel/intel_bufmgr_gem.c

index dd58c0c..927ebd8 100644 (file)
@@ -1062,6 +1062,25 @@ static int drm_intel_gem_bo_map(drm_intel_bo *bo, int write_enable)
        return 0;
 }
 
+#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 */
+
 int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo)
 {
        drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr;