summaryrefslogtreecommitdiff
path: root/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c
diff options
context:
space:
mode:
authorJakob Bornecrantz <jakob@vmware.com>2010-04-22 21:21:24 +0100
committerJakob Bornecrantz <jakob@vmware.com>2010-04-30 11:47:27 +0100
commit734522aceeb5120de28a081d997ef705d9137d73 (patch)
treefc5f15569e7878928508459d2703e7102bf132cb /src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c
parentf67b020a942911f80b7b774c6d64701d1981c608 (diff)
xorg-vmwgfx: Add vmwctrl proto
Diffstat (limited to 'src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c')
-rw-r--r--src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c b/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c
index 96ee4ff82b..7c799b5827 100644
--- a/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c
+++ b/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c
@@ -240,3 +240,21 @@ vmw_ioctl_buffer_unmap(struct vmw_customizer *vmw, struct vmw_dma_buffer *buf)
{
--buf->map_count;
}
+
+int
+vmw_ioctl_update_layout(struct vmw_customizer *vmw, uint32_t num, struct vmw_rect *rects)
+{
+ struct drm_vmw_update_layout_arg ul_arg;
+ int ret;
+
+ assert(sizeof(struct vmw_rect) == sizeof(struct drm_vmw_rect));
+
+ memset(&ul_arg, 0, sizeof(ul_arg));
+ ul_arg.num_outputs = num;
+ ul_arg.rects = (uint64_t)(uintptr_t)rects;
+
+ ret = drmCommandWriteRead(vmw->fd, DRM_VMW_UPDATE_LAYOUT,
+ &ul_arg, sizeof(ul_arg));
+
+ return ret;
+}