diff options
| author | Richard Purdie <richard@ted.(none)> | 2009-04-28 08:24:11 +0100 |
|---|---|---|
| committer | Richard Purdie <richard@ted.(none)> | 2009-04-28 08:24:11 +0100 |
| commit | 3927e38eba96a172c7df2c7270c31728b83612eb (patch) | |
| tree | 48b0a30d721af9e2f25e03bea8e41035e9ff40bb /meta/packages | |
| parent | 49ca46f588425c88e37a85df00b1fd4591a01ab6 (diff) | |
| parent | d65be3dd2aaa643b5596c8470caf7f291513efee (diff) | |
| download | openembedded-core-3927e38eba96a172c7df2c7270c31728b83612eb.tar.gz openembedded-core-3927e38eba96a172c7df2c7270c31728b83612eb.tar.bz2 openembedded-core-3927e38eba96a172c7df2c7270c31728b83612eb.zip | |
Merge ssh://gitserver@git.pokylinux.org/poky
Diffstat (limited to 'meta/packages')
37 files changed, 281 insertions, 2743 deletions
diff --git a/meta/packages/clutter/clutter-mozembed/link-with-g++.patch b/meta/packages/clutter/clutter-mozembed/link-with-g++.patch index 8f84e6142b..5a76e45222 100644 --- a/meta/packages/clutter/clutter-mozembed/link-with-g++.patch +++ b/meta/packages/clutter/clutter-mozembed/link-with-g++.patch @@ -1,25 +1,26 @@ Index: git/cluttermozembed/Makefile.am =================================================================== ---- git.orig/cluttermozembed/Makefile.am 2009-01-27 14:17:00.000000000 +0000 -+++ git/cluttermozembed/Makefile.am 2009-01-28 15:36:27.000000000 +0000 -@@ -16,11 +16,11 @@ +--- git.orig/cluttermozembed/Makefile.am 2009-04-16 15:54:16.000000000 +0100 ++++ git/cluttermozembed/Makefile.am 2009-04-16 15:57:02.000000000 +0100 +@@ -51,12 +51,13 @@ source_h = \ clutter-mozembed.h source_c = \ - clutter-mozembed.c -+ clutter-mozembed.c dummy2.cpp ++ clutter-mozembed.c dummy.cpp - bin_PROGRAMS = mozheadless + bin_PROGRAMS = clutter-mozheadless --mozheadless_SOURCES = mozheadless.c -+mozheadless_SOURCES = mozheadless.c dummy.cpp + clutter_mozheadless_SOURCES = \ + clutter-mozheadless.c \ ++ dummy2.cpp \ + clutter-mozheadless.h lib_LTLIBRARIES = libcluttermozembed.la - libcluttermozembed_la_SOURCES = $(source_c) $(source_h) Index: git/configure.ac =================================================================== ---- git.orig/configure.ac 2009-01-27 14:17:01.000000000 +0000 -+++ git/configure.ac 2009-01-28 15:35:38.000000000 +0000 +--- git.orig/configure.ac 2009-04-16 15:54:16.000000000 +0100 ++++ git/configure.ac 2009-04-16 15:54:30.000000000 +0100 @@ -7,6 +7,7 @@ AC_ISC_POSIX diff --git a/meta/packages/clutter/clutter/enable_tests.patch b/meta/packages/clutter/clutter/enable_tests.patch index 8544614790..953edf6bbc 100644 --- a/meta/packages/clutter/clutter/enable_tests.patch +++ b/meta/packages/clutter/clutter/enable_tests.patch @@ -6,10 +6,10 @@ Index: git/tests/interactive/Makefile.am =================================================================== ---- git.orig/tests/interactive/Makefile.am 2008-12-18 16:50:45.000000000 +0000 -+++ git/tests/interactive/Makefile.am 2008-12-18 16:57:36.000000000 +0000 -@@ -68,7 +68,7 @@ - AM_CFLAGS = $(CLUTTER_CFLAGS) +--- git.orig/tests/interactive/Makefile.am 2009-03-12 11:01:36.000000000 +0000 ++++ git/tests/interactive/Makefile.am 2009-03-12 11:04:12.000000000 +0000 +@@ -77,7 +77,7 @@ + AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS) AM_LDFLAGS = $(CLUTTER_LIBS) -noinst_PROGRAMS = test-interactive @@ -19,14 +19,14 @@ Index: git/tests/interactive/Makefile.am test-main.c \ Index: git/tests/interactive/test-actors.c =================================================================== ---- git.orig/tests/interactive/test-actors.c 2008-12-18 16:58:06.000000000 +0000 -+++ git/tests/interactive/test-actors.c 2008-12-18 16:58:13.000000000 +0000 -@@ -189,7 +189,7 @@ - /* Create a texture from file, then clone in to same resources */ - if (i == 0) - { -- if ((oh->hand[i] = clutter_texture_new_from_file ("redhand.png", -+ if ((oh->hand[i] = clutter_texture_new_from_file ("/usr/share/clutter/redhand.png", - &error)) == NULL) - { - g_error ("image load failed: %s", error->message); +--- git.orig/tests/interactive/test-actors.c 2009-03-12 11:01:36.000000000 +0000 ++++ git/tests/interactive/test-actors.c 2009-03-12 11:06:32.000000000 +0000 +@@ -182,7 +182,7 @@ + oh->scaler_1 = clutter_behaviour_scale_new (alpha, 0.5, 0.5, 1.0, 1.0); + oh->scaler_2 = clutter_behaviour_scale_new (alpha, 1.0, 1.0, 0.5, 0.5); + +- real_hand = clutter_texture_new_from_file ("redhand.png", &error); ++ real_hand = clutter_texture_new_from_file ("/usr/share/clutter/redhand.png", &error); + if (real_hand == NULL) + { + g_error ("image load failed: %s", error->message); diff --git a/meta/packages/dbus/dbus-native_1.2.4.bb b/meta/packages/dbus/dbus-native_1.2.4.bb index 47e3167eda..d799ba2d1d 100644 --- a/meta/packages/dbus/dbus-native_1.2.4.bb +++ b/meta/packages/dbus/dbus-native_1.2.4.bb @@ -3,7 +3,7 @@ inherit native DEPENDS = "glib-2.0-native libxml2-native expat-native" -PR = "r2" +PR = "r3" do_stage() { oe_runmake install diff --git a/meta/packages/dbus/dbus.inc b/meta/packages/dbus/dbus.inc index 68c8a842ee..2efcf46b22 100644 --- a/meta/packages/dbus/dbus.inc +++ b/meta/packages/dbus/dbus.inc @@ -12,7 +12,7 @@ SRC_URI = "\ file://99_dbus \ " -inherit autotools pkgconfig update-rc.d gettext +inherit autotools pkgconfig gettext INITSCRIPT_NAME = "dbus-1" INITSCRIPT_PARAMS = "start 02 5 2 . stop 20 0 1 6 ." diff --git a/meta/packages/dbus/dbus_1.2.4.bb b/meta/packages/dbus/dbus_1.2.4.bb index 25ab98b9f9..b170e7b340 100644 --- a/meta/packages/dbus/dbus_1.2.4.bb +++ b/meta/packages/dbus/dbus_1.2.4.bb @@ -1,4 +1,7 @@ include dbus.inc +PR = "r1" + +inherit update-rc.d SRC_URI += "file://fix-install-daemon.patch;patch=1 " diff --git a/meta/packages/drm/files/poulsbo.patch b/meta/packages/drm/files/poulsbo.patch deleted file mode 100644 index 91f8975f50..0000000000 --- a/meta/packages/drm/files/poulsbo.patch +++ /dev/null @@ -1,2516 +0,0 @@ -Index: libdrm-2.4.4/libdrm/xf86drm.c -=================================================================== ---- libdrm-2.4.4.orig/libdrm/xf86drm.c 2009-01-10 01:08:29.000000000 +0000 -+++ libdrm-2.4.4/libdrm/xf86drm.c 2009-02-05 12:23:22.000000000 +0000 -@@ -2402,6 +2402,569 @@ - return 0; - } - -+ -+/* -+ * Valid flags are -+ * DRM_FENCE_FLAG_EMIT -+ * DRM_FENCE_FLAG_SHAREABLE -+ * DRM_FENCE_MASK_DRIVER -+ */ -+ -+int drmFenceCreate(int fd, unsigned flags, int fence_class, unsigned type, -+ drmFence *fence) -+{ -+ drm_fence_arg_t arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.flags = flags; -+ arg.type = type; -+ arg.fence_class = fence_class; -+ -+ if (ioctl(fd, DRM_IOCTL_FENCE_CREATE, &arg)) -+ return -errno; -+ fence->handle = arg.handle; -+ fence->fence_class = arg.fence_class; -+ fence->type = arg.type; -+ fence->flags = arg.flags; -+ fence->signaled = 0; -+ return 0; -+} -+ -+/* -+ * Valid flags are -+ * DRM_FENCE_FLAG_SHAREABLE -+ * DRM_FENCE_MASK_DRIVER -+ */ -+ -+int drmFenceBuffers(int fd, unsigned flags, uint32_t fence_class, drmFence *fence) -+{ -+ drm_fence_arg_t arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.flags = flags; -+ arg.fence_class = fence_class; -+ -+ if (ioctl(fd, DRM_IOCTL_FENCE_BUFFERS, &arg)) -+ return -errno; -+ fence->handle = arg.handle; -+ fence->fence_class = arg.fence_class; -+ fence->type = arg.type; -+ fence->flags = arg.flags; -+ fence->sequence = arg.sequence; -+ fence->signaled = 0; -+ return 0; -+} -+ -+int drmFenceReference(int fd, unsigned handle, drmFence *fence) -+{ -+ drm_fence_arg_t arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.handle = handle; -+ -+ if (ioctl(fd, DRM_IOCTL_FENCE_REFERENCE, &arg)) -+ return -errno; -+ fence->handle = arg.handle; -+ fence->fence_class = arg.fence_class; -+ fence->type = arg.type; -+ fence->flags = arg.flags; -+ fence->signaled = arg.signaled; -+ return 0; -+} -+ -+int drmFenceUnreference(int fd, const drmFence *fence) -+{ -+ drm_fence_arg_t arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.handle = fence->handle; -+ -+ if (ioctl(fd, DRM_IOCTL_FENCE_UNREFERENCE, &arg)) -+ return -errno; -+ return 0; -+} -+ -+int drmFenceFlush(int fd, drmFence *fence, unsigned flush_type) -+{ -+ drm_fence_arg_t arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.handle = fence->handle; -+ arg.type = flush_type; -+ -+ if (ioctl(fd, DRM_IOCTL_FENCE_FLUSH, &arg)) -+ return -errno; -+ fence->fence_class = arg.fence_class; -+ fence->type = arg.type; -+ fence->signaled = arg.signaled; -+ return arg.error; -+} -+ -+int drmFenceUpdate(int fd, drmFence *fence) -+{ -+ drm_fence_arg_t arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.handle = fence->handle; -+ -+ if (ioctl(fd, DRM_IOCTL_FENCE_SIGNALED, &arg)) -+ return -errno; -+ fence->fence_class = arg.fence_class; -+ fence->type = arg.type; -+ fence->signaled = arg.signaled; -+ return 0; -+} -+ -+int drmFenceSignaled(int fd, drmFence *fence, unsigned fenceType, -+ int *signaled) -+{ -+ if ((fence->flags & DRM_FENCE_FLAG_SHAREABLE) || -+ ((fenceType & fence->signaled) != fenceType)) { -+ int ret = drmFenceFlush(fd, fence, fenceType); -+ if (ret) -+ return ret; -+ } -+ -+ *signaled = ((fenceType & fence->signaled) == fenceType); -+ -+ return 0; -+} -+ -+/* -+ * Valid flags are -+ * DRM_FENCE_FLAG_SHAREABLE -+ * DRM_FENCE_MASK_DRIVER -+ */ -+ -+ -+int drmFenceEmit(int fd, unsigned flags, drmFence *fence, unsigned emit_type) -+{ -+ drm_fence_arg_t arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.fence_class = fence->fence_class; -+ arg.flags = flags; -+ arg.handle = fence->handle; -+ arg.type = emit_type; -+ -+ if (ioctl(fd, DRM_IOCTL_FENCE_EMIT, &arg)) -+ return -errno; -+ fence->fence_class = arg.fence_class; -+ fence->type = arg.type; -+ fence->signaled = arg.signaled; -+ fence->sequence = arg.sequence; -+ return 0; -+} -+ -+/* -+ * Valid flags are -+ * DRM_FENCE_FLAG_WAIT_LAZY -+ * DRM_FENCE_FLAG_WAIT_IGNORE_SIGNALS -+ */ -+ -+#define DRM_IOCTL_TIMEOUT_USEC 3000000UL -+ -+static unsigned long -+drmTimeDiff(struct timeval *now, struct timeval *then) -+{ -+ uint64_t val; -+ -+ val = now->tv_sec - then->tv_sec; -+ val *= 1000000LL; -+ val += now->tv_usec; -+ val -= then->tv_usec; -+ -+ return (unsigned long) val; -+} -+ -+static int -+drmIoctlTimeout(int fd, unsigned long request, void *argp) -+{ -+ int haveThen = 0; -+ struct timeval then, now; -+ int ret; -+ -+ do { -+ ret = ioctl(fd, request, argp); -+ if (ret != 0 && errno == EAGAIN) { -+ if (!haveThen) { -+ gettimeofday(&then, NULL); -+ haveThen = 1; -+ } -+ gettimeofday(&now, NULL); -+ } -+ } while (ret != 0 && errno == EAGAIN && -+ drmTimeDiff(&now, &then) < DRM_IOCTL_TIMEOUT_USEC); -+ -+ if (ret != 0) -+ return ((errno == EAGAIN) ? -EBUSY : -errno); -+ -+ return 0; -+} -+ -+ -+ -+ -+int drmFenceWait(int fd, unsigned flags, drmFence *fence, unsigned flush_type) -+{ -+ drm_fence_arg_t arg; -+ int ret; -+ -+ if (flush_type == 0) { -+ flush_type = fence->type; -+ } -+ -+ if (!(fence->flags & DRM_FENCE_FLAG_SHAREABLE)) { -+ if ((flush_type & fence->signaled) == flush_type) { -+ return 0; -+ } -+ } -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.handle = fence->handle; -+ arg.type = flush_type; -+ arg.flags = flags; -+ -+ -+ ret = drmIoctlTimeout(fd, DRM_IOCTL_FENCE_WAIT, &arg); -+ if (ret) -+ return ret; -+ -+ fence->fence_class = arg.fence_class; -+ fence->type = arg.type; -+ fence->signaled = arg.signaled; -+ return arg.error; -+} -+ -+static void drmBOCopyReply(const struct drm_bo_info_rep *rep, drmBO *buf) -+{ -+ buf->handle = rep->handle; -+ buf->flags = rep->flags; -+ buf->size = rep->size; -+ buf->offset = rep->offset; -+ buf->mapHandle = rep->arg_handle; -+ buf->mask = rep->proposed_flags; -+ buf->start = rep->buffer_start; -+ buf->fenceFlags = rep->fence_flags; -+ buf->replyFlags = rep->rep_flags; -+ buf->pageAlignment = rep->page_alignment; -+ buf->tileInfo = rep->tile_info; -+ buf->hwTileStride = rep->hw_tile_stride; -+ buf->desiredTileStride = rep->desired_tile_stride; -+} -+ -+ -+ -+int drmBOCreate(int fd, unsigned long size, -+ unsigned pageAlignment, void *user_buffer, -+ uint64_t mask, -+ unsigned hint, drmBO *buf) -+{ -+ struct drm_bo_create_arg arg; -+ struct drm_bo_create_req *req = &arg.d.req; -+ struct drm_bo_info_rep *rep = &arg.d.rep; -+ int ret; -+ -+ memset(buf, 0, sizeof(*buf)); -+ memset(&arg, 0, sizeof(arg)); -+ req->flags = mask; -+ req->hint = hint; -+ req->size = size; -+ req->page_alignment = pageAlignment; -+ req->buffer_start = (unsigned long) user_buffer; -+ -+ buf->virtual = NULL; -+ -+ ret = drmIoctlTimeout(fd, DRM_IOCTL_BO_CREATE, &arg); -+ if (ret) -+ return ret; -+ -+ drmBOCopyReply(rep, buf); -+ buf->virtual = user_buffer; -+ buf->mapCount = 0; -+ -+ return 0; -+} -+ -+int drmBOReference(int fd, unsigned handle, drmBO *buf) -+{ -+ struct drm_bo_reference_info_arg arg; -+ struct drm_bo_handle_arg *req = &arg.d.req; -+ struct drm_bo_info_rep *rep = &arg.d.rep; -+ -+ memset(&arg, 0, sizeof(arg)); -+ req->handle = handle; -+ -+ if (ioctl(fd, DRM_IOCTL_BO_REFERENCE, &arg)) -+ return -errno; -+ -+ drmBOCopyReply(rep, buf); -+ buf->mapVirtual = NULL; -+ buf->mapCount = 0; -+ buf->virtual = NULL; -+ -+ return 0; -+} -+ -+int drmBOUnreference(int fd, drmBO *buf) -+{ -+ struct drm_bo_handle_arg arg; -+ -+ if (buf->mapVirtual && buf->mapHandle) { -+ (void) munmap(buf->mapVirtual, buf->start + buf->size); -+ buf->mapVirtual = NULL; -+ buf->virtual = NULL; -+ } -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.handle = buf->handle; -+ -+ if (ioctl(fd, DRM_IOCTL_BO_UNREFERENCE, &arg)) -+ return -errno; -+ -+ buf->handle = 0; -+ return 0; -+} -+ -+ -+/* -+ * Flags can be DRM_BO_FLAG_READ, DRM_BO_FLAG_WRITE or'ed together -+ * Hint currently be DRM_BO_HINT_DONT_BLOCK, which makes the -+ * call return an -EBUSY if it can' immediately honor the mapping request. -+ */ -+ -+int drmBOMap(int fd, drmBO *buf, unsigned mapFlags, unsigned mapHint, -+ void **address) -+{ -+ struct drm_bo_map_wait_idle_arg arg; -+ struct drm_bo_info_req *req = &arg.d.req; -+ struct drm_bo_info_rep *rep = &arg.d.rep; -+ int ret = 0; -+ -+ /* -+ * Make sure we have a virtual address of the buffer. -+ */ -+ -+ if (!buf->virtual) { -+ drmAddress virtual; -+ virtual = mmap(0, buf->size + buf->start, -+ PROT_READ | PROT_WRITE, MAP_SHARED, -+ fd, buf->mapHandle); -+ if (virtual == MAP_FAILED) { -+ ret = -errno; -+ } -+ if (ret) -+ return ret; -+ buf->mapVirtual = virtual; -+ buf->virtual = ((char *) virtual) + buf->start; -+ } -+ -+ memset(&arg, 0, sizeof(arg)); -+ req->handle = buf->handle; -+ req->mask = mapFlags; -+ req->hint = mapHint; -+ -+ /* -+ * May hang if the buffer object is busy. -+ * This IOCTL synchronizes the buffer. -+ */ -+ -+ ret = drmIoctlTimeout(fd, DRM_IOCTL_BO_MAP, &arg); -+ if (ret) -+ return ret; -+ -+ drmBOCopyReply(rep, buf); -+ buf->mapFlags = mapFlags; -+ ++buf->mapCount; -+ *address = buf->virtual; -+ -+ return 0; -+} -+ -+ -+int drmBOUnmap(int fd, drmBO *buf) -+{ -+ struct drm_bo_handle_arg arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.handle = buf->handle; -+ -+ if (ioctl(fd, DRM_IOCTL_BO_UNMAP, &arg)) { -+ return -errno; -+ } -+ buf->mapCount--; -+ return 0; -+} -+ -+int drmBOSetStatus(int fd, drmBO *buf, -+ uint64_t flags, uint64_t mask, -+ unsigned int hint, -+ unsigned int desired_tile_stride, -+ unsigned int tile_info) -+{ -+ -+ struct drm_bo_map_wait_idle_arg arg; -+ struct drm_bo_info_req *req = &arg.d.req; -+ struct drm_bo_info_rep *rep = &arg.d.rep; -+ int ret = 0; -+ -+ memset(&arg, 0, sizeof(arg)); -+ req->mask = mask; -+ req->flags = flags; -+ req->handle = buf->handle; -+ req->hint = hint; -+ req->desired_tile_stride = desired_tile_stride; -+ req->tile_info = tile_info; -+ -+ ret = drmIoctlTimeout(fd, DRM_IOCTL_BO_SETSTATUS, &arg); -+ if (ret) -+ return ret; -+ -+ drmBOCopyReply(rep, buf); -+ return 0; -+} -+ -+ -+int drmBOInfo(int fd, drmBO *buf) -+{ -+ struct drm_bo_reference_info_arg arg; -+ struct drm_bo_handle_arg *req = &arg.d.req; -+ struct drm_bo_info_rep *rep = &arg.d.rep; -+ int ret = 0; -+ -+ memset(&arg, 0, sizeof(arg)); -+ req->handle = buf->handle; -+ -+ ret = ioctl(fd, DRM_IOCTL_BO_INFO, &arg); -+ if (ret) -+ return -errno; -+ -+ drmBOCopyReply(rep, buf); -+ return 0; -+} -+ -+int drmBOWaitIdle(int fd, drmBO *buf, unsigned hint) -+{ -+ struct drm_bo_map_wait_idle_arg arg; -+ struct drm_bo_info_req *req = &arg.d.req; -+ struct drm_bo_info_rep *rep = &arg.d.rep; -+ int ret = 0; -+ -+ if ((buf->flags & DRM_BO_FLAG_SHAREABLE) || -+ (buf->replyFlags & DRM_BO_REP_BUSY)) { -+ memset(&arg, 0, sizeof(arg)); -+ req->handle = buf->handle; -+ req->hint = hint; -+ -+ ret = drmIoctlTimeout(fd, DRM_IOCTL_BO_WAIT_IDLE, &arg); -+ if (ret) -+ return ret; -+ -+ drmBOCopyReply(rep, buf); -+ } -+ return 0; -+} -+ -+int drmBOBusy(int fd, drmBO *buf, int *busy) -+{ -+ if (!(buf->flags & DRM_BO_FLAG_SHAREABLE) && -+ !(buf->replyFlags & DRM_BO_REP_BUSY)) { -+ *busy = 0; -+ return 0; -+ } -+ else { -+ int ret = drmBOInfo(fd, buf); -+ if (ret) -+ return ret; -+ *busy = (buf->replyFlags & DRM_BO_REP_BUSY); -+ return 0; -+ } -+} -+ -+int drmMMInit(int fd, unsigned long pOffset, unsigned long pSize, -+ unsigned memType) -+{ -+ struct drm_mm_init_arg arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ -+ arg.magic = DRM_BO_INIT_MAGIC; -+ arg.major = DRM_BO_INIT_MAJOR; -+ arg.minor = DRM_BO_INIT_MINOR; -+ arg.p_offset = pOffset; -+ arg.p_size = pSize; -+ arg.mem_type = memType; -+ -+ if (ioctl(fd, DRM_IOCTL_MM_INIT, &arg)) -+ return -errno; -+ return 0; -+} -+ -+int drmMMTakedown(int fd, unsigned memType) -+{ -+ struct drm_mm_type_arg arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.mem_type = memType; -+ -+ if (ioctl(fd, DRM_IOCTL_MM_TAKEDOWN, &arg)) -+ return -errno; -+ return 0; -+} -+ -+/* -+ * If this function returns an error, and lockBM was set to 1, -+ * the buffer manager is NOT locked. -+ */ -+ -+int drmMMLock(int fd, unsigned memType, int lockBM, int ignoreNoEvict) -+{ -+ struct drm_mm_type_arg arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ arg.mem_type = memType; -+ arg.lock_flags |= (lockBM) ? DRM_BO_LOCK_UNLOCK_BM : 0; -+ arg.lock_flags |= (ignoreNoEvict) ? DRM_BO_LOCK_IGNORE_NO_EVICT : 0; -+ -+ return drmIoctlTimeout(fd, DRM_IOCTL_MM_LOCK, &arg); -+} -+ -+int drmMMUnlock(int fd, unsigned memType, int unlockBM) -+{ -+ struct drm_mm_type_arg arg; -+ -+ memset(&arg, 0, sizeof(arg)); -+ -+ arg.mem_type = memType; -+ arg.lock_flags |= (unlockBM) ? DRM_BO_LOCK_UNLOCK_BM : 0; -+ -+ return drmIoctlTimeout(fd, DRM_IOCTL_MM_UNLOCK, &arg); -+} -+ -+int drmBOVersion(int fd, unsigned int *major, -+ unsigned int *minor, -+ unsigned int *patchlevel) -+{ -+ struct drm_bo_version_arg arg; -+ int ret; -+ -+ memset(&arg, 0, sizeof(arg)); -+ ret = ioctl(fd, DRM_IOCTL_BO_VERSION, &arg); -+ if (ret) -+ return -errno; -+ -+ if (major) -+ *major = arg.major; -+ if (minor) -+ *minor = arg.minor; -+ if (patchlevel) -+ *patchlevel = arg.patchlevel; -+ -+ return 0; -+} -+ -+ -+ - #define DRM_MAX_FDS 16 - static struct { - char *BusID; -Index: libdrm-2.4.4/libdrm/xf86drm.h -=================================================================== ---- libdrm-2.4.4.orig/libdrm/xf86drm.h 2008-12-17 18:28:24.000000000 +0000 -+++ libdrm-2.4.4/libdrm/xf86drm.h 2009-02-04 16:39:55.000000000 +0000 -@@ -665,4 +665,6 @@ - extern int drmSetMaster(int fd); - extern int drmDropMaster(int fd); - -+#include "xf86mm.h" -+ - #endif -Index: libdrm-2.4.4/libdrm/xf86mm.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ libdrm-2.4.4/libdrm/xf86mm.h 2009-02-04 16:39:55.000000000 +0000 -@@ -0,0 +1,140 @@ -+/************************************************************************** -+ * -+ * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA. -+ * All Rights Reserved. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the -+ * "Software"), to deal in the Software without restriction, including -+ * without limitation the rights to use, copy, modify, merge, publish, -+ * distribute, sub license, and/or sell copies of the Software, and to -+ * permit persons to whom the Software is furnished to do so, subject to -+ * the following conditions: -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL -+ * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, -+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -+ * USE OR OTHER DEALINGS IN THE SOFTWARE. -+ * -+ * The above copyright notice and this permission notice (including the -+ * next paragraph) shall be included in all copies or substantial portions -+ * of the Software. -+ * -+ * -+ **************************************************************************/ -+ -+#ifndef _XF86MM_H_ -+#define _XF86MM_H_ -+#include <stddef.h> -+#include <stdint.h> -+#include "drm.h" -+ -+/* -+ * Note on multithreaded applications using this interface. -+ * Libdrm is not threadsafe, so common buffer, TTM, and fence objects need to -+ * be protected using an external mutex. -+ * |
