summaryrefslogtreecommitdiff
path: root/bsd-core/drmP.h
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2002-12-06 02:27:30 +0000
committerEric Anholt <anholt@freebsd.org>2002-12-06 02:27:30 +0000
commita885d6786f40fd0c4dbcb09a17f6e103d0949ed7 (patch)
tree1da8fcdad13100b0b0fe3f1230af8c66cbf8a876 /bsd-core/drmP.h
parent85025d4f2ad25258fb7678395b8c7ce1be1f0063 (diff)
Add vblank signal code for BSD DRM. Untested so far, but working with a
4.2.0 userland at least.
Diffstat (limited to 'bsd-core/drmP.h')
-rw-r--r--bsd-core/drmP.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/bsd-core/drmP.h b/bsd-core/drmP.h
index b7b21da4..541bc2eb 100644
--- a/bsd-core/drmP.h
+++ b/bsd-core/drmP.h
@@ -392,6 +392,14 @@ typedef struct drm_map_list_entry {
drm_map_t *map;
} drm_map_list_entry_t;
+TAILQ_HEAD(drm_vbl_sig_list, drm_vbl_sig);
+typedef struct drm_vbl_sig {
+ TAILQ_ENTRY(drm_vbl_sig) link;
+ unsigned int sequence;
+ int signo;
+ int pid;
+} drm_vbl_sig_t;
+
struct drm_device {
#ifdef __NetBSD__
struct device device; /* NetBSD's softc is an extension of struct device */
@@ -469,6 +477,8 @@ struct drm_device {
#if __HAVE_VBL_IRQ
wait_queue_head_t vbl_queue; /* vbl wait channel */
atomic_t vbl_received;
+ struct drm_vbl_sig_list vbl_sig_list;
+ DRM_SPINTYPE vbl_lock;
#endif
cycles_t ctx_start;
cycles_t lck_start;
@@ -613,6 +623,7 @@ extern drm_buf_t *DRM(freelist_get)(drm_freelist_t *bl, int block);
#endif /* __HAVE_DMA */
#if __HAVE_VBL_IRQ
extern int DRM(vblank_wait)(drm_device_t *dev, unsigned int *vbl_seq);
+extern void DRM(vbl_send_signals)( drm_device_t *dev );
#endif
#if __REALLY_HAVE_AGP