diff options
author | =?utf-8?q?Michel_D=C3=A4nzer?= <michel@tungstengraphics.com> | 2006-10-24 09:04:19 -0400 |
---|---|---|
committer | airlied <airlied@linux.ie> | 2006-12-06 23:53:28 -0500 |
commit | bea5679f9cb97b7e41786c8500df56665cd21e56 (patch) | |
tree | 8259fc9d75730be3db028892f0da991dec54e37e /drivers/char/drm/drmP.h | |
parent | 68815bad7239989d92f315c10d9ef65a11945a75 (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.h | 13 |
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 | ||
747 | static __inline__ int drm_core_check_feature(struct drm_device *dev, | 756 | static __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); |
890 | extern int drm_rmdraw(struct inode *inode, struct file *filp, | 899 | extern int drm_rmdraw(struct inode *inode, struct file *filp, |
891 | unsigned int cmd, unsigned long arg); | 900 | unsigned int cmd, unsigned long arg); |
901 | extern int drm_update_drawable_info(struct inode *inode, struct file *filp, | ||
902 | unsigned int cmd, unsigned long arg); | ||
903 | extern 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) */ |
894 | extern int drm_getmagic(struct inode *inode, struct file *filp, | 907 | extern int drm_getmagic(struct inode *inode, struct file *filp, |