aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/drm/drmP.h
diff options
context:
space:
mode:
author=?utf-8?q?Michel_D=C3=A4nzer?= <michel@tungstengraphics.com>2006-10-24 09:04:19 -0400
committerairlied <airlied@linux.ie>2006-12-06 23:53:28 -0500
commitbea5679f9cb97b7e41786c8500df56665cd21e56 (patch)
tree8259fc9d75730be3db028892f0da991dec54e37e /drivers/char/drm/drmP.h
parent68815bad7239989d92f315c10d9ef65a11945a75 (diff)
drm: Add support for tracking drawable information to core
Actually make the existing ioctls for adding and removing drawables do something useful, and add another ioctl for the X server to update drawable information. The only kind of drawable information tracked so far is cliprects. Only reallocate cliprect memory if the number of cliprects changes. Also improve diagnostic output. hook up drm ioctl update draw export drm_get_drawable_info symbol Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/char/drm/drmP.h')
-rw-r--r--drivers/char/drm/drmP.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
index d7135d41a42a..01e1f2528659 100644
--- a/drivers/char/drm/drmP.h
+++ b/drivers/char/drm/drmP.h
@@ -742,6 +742,15 @@ typedef struct drm_device {
742 drm_local_map_t *agp_buffer_map; 742 drm_local_map_t *agp_buffer_map;
743 unsigned int agp_buffer_token; 743 unsigned int agp_buffer_token;
744 drm_head_t primary; /**< primary screen head */ 744 drm_head_t primary; /**< primary screen head */
745
746 /** \name Drawable information */
747 /*@{ */
748 spinlock_t drw_lock;
749 unsigned int drw_bitfield_length;
750 u32 *drw_bitfield;
751 unsigned int drw_info_length;
752 drm_drawable_info_t **drw_info;
753 /*@} */
745} drm_device_t; 754} drm_device_t;
746 755
747static __inline__ int drm_core_check_feature(struct drm_device *dev, 756static __inline__ int drm_core_check_feature(struct drm_device *dev,
@@ -889,6 +898,10 @@ extern int drm_adddraw(struct inode *inode, struct file *filp,
889 unsigned int cmd, unsigned long arg); 898 unsigned int cmd, unsigned long arg);
890extern int drm_rmdraw(struct inode *inode, struct file *filp, 899extern int drm_rmdraw(struct inode *inode, struct file *filp,
891 unsigned int cmd, unsigned long arg); 900 unsigned int cmd, unsigned long arg);
901extern int drm_update_drawable_info(struct inode *inode, struct file *filp,
902 unsigned int cmd, unsigned long arg);
903extern drm_drawable_info_t *drm_get_drawable_info(drm_device_t *dev,
904 drm_drawable_t id);
892 905
893 /* Authentication IOCTL support (drm_auth.h) */ 906 /* Authentication IOCTL support (drm_auth.h) */
894extern int drm_getmagic(struct inode *inode, struct file *filp, 907extern int drm_getmagic(struct inode *inode, struct file *filp,