diff options
author | marha <marha@users.sourceforge.net> | 2014-11-29 16:13:30 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-11-29 16:13:30 +0100 |
commit | 7147e58c389cffeb930bdd8e3a2fdfc5d5bb3a0c (patch) | |
tree | e5b941fdff86328a065c46582ba53e0cc73c8576 /xorg-server/hw/xfree86/drivers/modesetting/driver.h | |
parent | 0dbe845b2f4ba08924d6fcb9634d09dc3dde13d6 (diff) | |
parent | a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9 (diff) | |
download | vcxsrv-7147e58c389cffeb930bdd8e3a2fdfc5d5bb3a0c.tar.gz vcxsrv-7147e58c389cffeb930bdd8e3a2fdfc5d5bb3a0c.tar.bz2 vcxsrv-7147e58c389cffeb930bdd8e3a2fdfc5d5bb3a0c.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
xorg-server/dix/dispatch.c
xorg-server/hw/xwin/ddraw.h
xorg-server/hw/xwin/glx/glshim.c
xorg-server/hw/xwin/winclipboard/xevents.c
xorg-server/hw/xwin/windialogs.c
xorg-server/hw/xwin/winmultiwindowshape.c
xorg-server/hw/xwin/winmultiwindowwindow.c
xorg-server/hw/xwin/winprefslex.l
xorg-server/hw/xwin/winshadddnl.c
xorg-server/hw/xwin/winshadgdi.c
xorg-server/hw/xwin/winwndproc.c
xorg-server/mi/miarc.c
xorg-server/os/connection.c
Diffstat (limited to 'xorg-server/hw/xfree86/drivers/modesetting/driver.h')
-rw-r--r-- | xorg-server/hw/xfree86/drivers/modesetting/driver.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/xorg-server/hw/xfree86/drivers/modesetting/driver.h b/xorg-server/hw/xfree86/drivers/modesetting/driver.h index 35f24193a..9eda1c4da 100644 --- a/xorg-server/hw/xfree86/drivers/modesetting/driver.h +++ b/xorg-server/hw/xfree86/drivers/modesetting/driver.h @@ -30,6 +30,7 @@ #include <errno.h> #include <drm.h> #include <xf86drm.h> +#include <xf86Crtc.h> #include <damage.h> #include "drmmode_display.h" @@ -42,6 +43,26 @@ typedef struct { ScrnInfoPtr pScrn_2; } EntRec, *EntPtr; +typedef void (*ms_drm_handler_proc)(uint64_t frame, + uint64_t usec, + void *data); + +typedef void (*ms_drm_abort_proc)(void *data); + +/** + * A tracked handler for an event that will hopefully be generated by + * the kernel, and what to do when it is encountered. + */ +struct ms_drm_queue { + struct xorg_list list; + xf86CrtcPtr crtc; + uint32_t seq; + void *data; + ScrnInfoPtr scrn; + ms_drm_handler_proc handler; + ms_drm_abort_proc abort; +}; + typedef struct _modesettingRec { int fd; @@ -70,6 +91,8 @@ typedef struct _modesettingRec { drmmode_rec drmmode; + drmEventContext event_context; + DamagePtr damage; Bool dirty_enabled; @@ -78,3 +101,24 @@ typedef struct _modesettingRec { } modesettingRec, *modesettingPtr; #define modesettingPTR(p) ((modesettingPtr)((p)->driverPrivate)) + +uint32_t ms_drm_queue_alloc(xf86CrtcPtr crtc, + void *data, + ms_drm_handler_proc handler, + ms_drm_abort_proc abort); + +xf86CrtcPtr ms_dri2_crtc_covering_drawable(DrawablePtr pDraw); +xf86CrtcPtr ms_covering_crtc(ScrnInfoPtr scrn, BoxPtr box, + xf86CrtcPtr desired, BoxPtr crtc_box_ret); + +int ms_get_crtc_ust_msc(xf86CrtcPtr crtc, CARD64 *ust, CARD64 *msc); + +uint32_t ms_crtc_msc_to_kernel_msc(xf86CrtcPtr crtc, uint64_t expect); +uint64_t ms_kernel_msc_to_crtc_msc(xf86CrtcPtr crtc, uint32_t sequence); + + +Bool ms_dri2_screen_init(ScreenPtr screen); +void ms_dri2_close_screen(ScreenPtr screen); + +Bool ms_vblank_screen_init(ScreenPtr screen); +void ms_vblank_close_screen(ScreenPtr screen); |