diff options
author | Eric Anholt <eric@anholt.net> | 2009-11-05 18:04:06 -0500 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-11-05 18:04:06 -0500 |
commit | 5b8f0be0dce012d190a53d55240fe3fde6306476 (patch) | |
tree | 19fccf22b07730205e9b1d64e8e8f676a12b763a /include/drm/drmP.h | |
parent | 43bcd61fae05fc6062b4f117c5adb1a72c9f8c57 (diff) | |
parent | 4fe9676d1ae6639b5749140eba052261d363366b (diff) |
Merge remote branch 'airlied/drm-next' into drm-intel-next
Diffstat (limited to 'include/drm/drmP.h')
-rw-r--r-- | include/drm/drmP.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index c8e64bbadbcf..b0b36838ab11 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
@@ -426,6 +426,14 @@ struct drm_buf_entry { | |||
426 | struct drm_freelist freelist; | 426 | struct drm_freelist freelist; |
427 | }; | 427 | }; |
428 | 428 | ||
429 | /* Event queued up for userspace to read */ | ||
430 | struct drm_pending_event { | ||
431 | struct drm_event *event; | ||
432 | struct list_head link; | ||
433 | struct drm_file *file_priv; | ||
434 | void (*destroy)(struct drm_pending_event *event); | ||
435 | }; | ||
436 | |||
429 | /** File private data */ | 437 | /** File private data */ |
430 | struct drm_file { | 438 | struct drm_file { |
431 | int authenticated; | 439 | int authenticated; |
@@ -449,6 +457,10 @@ struct drm_file { | |||
449 | struct drm_master *master; /* master this node is currently associated with | 457 | struct drm_master *master; /* master this node is currently associated with |
450 | N.B. not always minor->master */ | 458 | N.B. not always minor->master */ |
451 | struct list_head fbs; | 459 | struct list_head fbs; |
460 | |||
461 | wait_queue_head_t event_wait; | ||
462 | struct list_head event_list; | ||
463 | int event_space; | ||
452 | }; | 464 | }; |
453 | 465 | ||
454 | /** Wait queue */ | 466 | /** Wait queue */ |
@@ -900,6 +912,12 @@ struct drm_minor { | |||
900 | struct drm_mode_group mode_group; | 912 | struct drm_mode_group mode_group; |
901 | }; | 913 | }; |
902 | 914 | ||
915 | struct drm_pending_vblank_event { | ||
916 | struct drm_pending_event base; | ||
917 | int pipe; | ||
918 | struct drm_event_vblank event; | ||
919 | }; | ||
920 | |||
903 | /** | 921 | /** |
904 | * DRM device structure. This structure represent a complete card that | 922 | * DRM device structure. This structure represent a complete card that |
905 | * may contain multiple heads. | 923 | * may contain multiple heads. |
@@ -999,6 +1017,12 @@ struct drm_device { | |||
999 | 1017 | ||
1000 | u32 max_vblank_count; /**< size of vblank counter register */ | 1018 | u32 max_vblank_count; /**< size of vblank counter register */ |
1001 | 1019 | ||
1020 | /** | ||
1021 | * List of events | ||
1022 | */ | ||
1023 | struct list_head vblank_event_list; | ||
1024 | spinlock_t event_lock; | ||
1025 | |||
1002 | /*@} */ | 1026 | /*@} */ |
1003 | cycles_t ctx_start; | 1027 | cycles_t ctx_start; |
1004 | cycles_t lck_start; | 1028 | cycles_t lck_start; |
@@ -1135,6 +1159,8 @@ extern int drm_lastclose(struct drm_device *dev); | |||
1135 | extern int drm_open(struct inode *inode, struct file *filp); | 1159 | extern int drm_open(struct inode *inode, struct file *filp); |
1136 | extern int drm_stub_open(struct inode *inode, struct file *filp); | 1160 | extern int drm_stub_open(struct inode *inode, struct file *filp); |
1137 | extern int drm_fasync(int fd, struct file *filp, int on); | 1161 | extern int drm_fasync(int fd, struct file *filp, int on); |
1162 | extern ssize_t drm_read(struct file *filp, char __user *buffer, | ||
1163 | size_t count, loff_t *offset); | ||
1138 | extern int drm_release(struct inode *inode, struct file *filp); | 1164 | extern int drm_release(struct inode *inode, struct file *filp); |
1139 | 1165 | ||
1140 | /* Mapping support (drm_vm.h) */ | 1166 | /* Mapping support (drm_vm.h) */ |