[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