[Spice-devel] [PATCH v9 1/2] Modifying ioctl structures
Sameeh Jubran
sameeh at daynix.com
Tue Aug 16 16:17:08 UTC 2016
On Tue, Aug 16, 2016 at 7:10 PM, Frediano Ziglio <fziglio at redhat.com> wrote:
> >
> > This patch modifies the Qxl ioctl structures in order
> > to make them unified. Ioctls now should inherit QXL_ESCAPE
> > structure.
> >
> > Signed-off-by: Sameeh Jubran <sameeh at daynix.com>
>
> Yes, but doing so with a XDDM driver will fail.
> ExtEscape ABI should remain the same.
> The structure with the code was done as D3D APIs does not take
> a constant but just a raw buffer so the new structures should
> be used just with D3DKMTEscape.
>
Then the second patch can be applied alone, this patch is not needed, I'll
resend the second patch.
>
> Frediano
>
> > ---
> > vdagent/display_configuration.cpp | 28 ++++++++++++++--------------
> > 1 file changed, 14 insertions(+), 14 deletions(-)
> >
> > diff --git a/vdagent/display_configuration.cpp
> > b/vdagent/display_configuration.cpp
> > index 01fdbb0..cdbe5e8 100644
> > --- a/vdagent/display_configuration.cpp
> > +++ b/vdagent/display_configuration.cpp
> > @@ -153,26 +153,26 @@ struct DISPLAYCONFIG_PATH_INFO {
> > UINT32 flags;
> > };
> >
> > -struct QXLMonitorEscape {
> > +struct QXLMonitorEscape : QXL_ESCAPE {
> > QXLMonitorEscape(DEVMODE* dev_mode)
> > {
> > - ZeroMemory(&_head, sizeof(_head));
> > - _head.x = dev_mode->dmPosition.x;
> > - _head.y = dev_mode->dmPosition.y;
> > - _head.width = dev_mode->dmPelsWidth;
> > - _head.height = dev_mode->dmPelsHeight;
> > + ZeroMemory(&monitor_config, sizeof(monitor_config));
> > + ioctl = QXL_ESCAPE_MONITOR_CONFIG;
> > + monitor_config.x = dev_mode->dmPosition.x;
> > + monitor_config.y = dev_mode->dmPosition.y;
> > + monitor_config.width = dev_mode->dmPelsWidth;
> > + monitor_config.height = dev_mode->dmPelsHeight;
> > }
> > - QXLHead _head;
> > };
> >
> > -struct QxlCustomEscapeObj : public QXLEscapeSetCustomDisplay {
> > +struct QxlCustomEscapeObj : public QXL_ESCAPE {
> > QxlCustomEscapeObj(uint32_t bitsPerPel, uint32_t width, uint32_t
> height)
> > {
> > - xres = width;
> > - yres = height;
> > - bpp = bitsPerPel;
> > + ioctl = QXL_ESCAPE_SET_CUSTOM_DISPLAY;
> > + custom_display.xres = width;
> > + custom_display.yres = height;
> > + custom_display.bpp = bitsPerPel;
> > }
> > - QxlCustomEscapeObj() {};
> > };
> >
> > DisplayConfig* DisplayConfig::create_config()
> > @@ -252,7 +252,7 @@ bool XPDMInterface::custom_display_escape(LPCTSTR
> > device_name, DEVMODE* dev_mode
> > dev_mode->dmPelsWidth,
> > dev_mode->dmPelsHeight);
> >
> > int err = ExtEscape(hdc, QXL_ESCAPE_SET_CUSTOM_DISPLAY,
> > - sizeof(QXLEscapeSetCustomDisplay), (LPCSTR)
> &custom_escape, 0,
> > NULL);
> > + sizeof(QxlCustomEscapeObj), (LPCSTR) &custom_escape, 0,
> NULL);
> > if (err <= 0) {
> > vd_printf("%s: Can't set custom display, perhaps running with an
> > older driver?",
> > __FUNCTION__);
> > @@ -281,7 +281,7 @@ bool XPDMInterface::update_monitor_config(LPCTSTR
> > device_name, DisplayMode* mode
> > return false;
> > }
> >
> > - err = ExtEscape(hdc, QXL_ESCAPE_MONITOR_CONFIG, sizeof(QXLHead),
> > + err = ExtEscape(hdc, QXL_ESCAPE_MONITOR_CONFIG,
> > sizeof(QXLMonitorEscape),
> > (LPCSTR) &monitor_config, 0, NULL);
> > if (err < 0) {
> > vd_printf("%s: %S can't update monitor config, may have old, old
> > driver",
>
>
--
Respectfully,
*Sameeh Jubran*
*Linkedin <https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a>*
*Junior Software Engineer @ Daynix <http://www.daynix.com>.*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20160816/04c3a33c/attachment.html>
More information about the Spice-devel
mailing list