OSDN Git Service

android: build libdrm_radeon
authorChia-I Wu <olvaffe@gmail.com>
Sat, 19 Mar 2011 13:14:26 +0000 (21:14 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Sat, 5 Nov 2011 04:09:18 +0000 (12:09 +0800)
Android.mk
radeon/radeon_bo_gem.c

index a48da3a..60a2017 100644 (file)
@@ -45,4 +45,26 @@ LOCAL_SHARED_LIBRARIES := libdrm
 
 include $(BUILD_SHARED_LIBRARY)
 
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES :=                     \
+       radeon/radeon_bo_gem.c          \
+       radeon/radeon_cs_gem.c          \
+       radeon/radeon_cs_space.c        \
+       radeon/radeon_bo.c              \
+       radeon/radeon_cs.c              \
+       radeon/bof.c
+
+LOCAL_C_INCLUDES +=                    \
+       $(LOCAL_PATH)/radeon            \
+       $(LOCAL_PATH)/include/drm
+
+LOCAL_CFLAGS += -DHAVE_LIBDRM_ATOMIC_PRIMITIVES=1
+
+LOCAL_MODULE := libdrm_radeon
+
+LOCAL_SHARED_LIBRARIES := libdrm
+
+include $(BUILD_SHARED_LIBRARY)
+
 endif
index 719fba7..ffba794 100644 (file)
@@ -148,6 +148,25 @@ static struct radeon_bo *bo_unref(struct radeon_bo_int *boi)
     return NULL;
 }
 
+#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 */
+
 static int bo_map(struct radeon_bo_int *boi, int write)
 {
     struct radeon_bo_gem *bo_gem = (struct radeon_bo_gem*)boi;