<html><body><div style="font-family: times new roman, new york, times, serif; font-size: 12pt; color: #000000"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div><br></div><div dir="ltr"><div>Checkout the function "<span style="color:rgb(0,0,0);white-space:pre-wrap">QxlDevice::Escape" in this patch:</span></div><a href="https://lists.freedesktop.org/archives/spice-devel/2016-August/031207.html" target="_blank">https://lists.freedesktop.org/archives/spice-devel/2016-August/031207.html</a><br><div><br></div><div>This is how it is used in the driver, please note that this patch is outdated and needs some modifications  to suit this patch of vdagent.</div></div></blockquote><div><br></div><div>Yes, the two patches have different ABIs.<br></div><div>Your first patch (version ago) was compatible with this one, now it's not.<br>Specifically:</div><div>- ioctl is int;</div><div>- data structure (QXLEscapeSetCustomDisplay/QXLHead) has to follow the ioctl. Note that union does not define the packing so potentially all data structure added to the union have to be an aligned sizeof(int) or less to avoid breaking the ABI;<br></div><div>- private data has to finish strictly after the specific data structure.<br></div><div><br></div><div>Looking at your vdagent patch<br></div><div>- ioctl is uint32_t (more or less the same);<br></div><div>- data structure has to follow the ioctl;<br></div><div>- private data has to finish after the largest data structure possible. This is a problem if you extent QXLEscape as ABI can potentially change adding an ioctl.<br></div><div><br></div><div>Frediano<br></div><div><br></div><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div class="gmail_extra"><div class="gmail_quote">On Wed, Aug 17, 2016 at 10:59 AM, Frediano Ziglio <span dir="ltr"><<a href="mailto:fziglio@redhat.com" target="_blank">fziglio@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">><br>
> This patch defines the structures of ioctls that are used between<br>
> win-vdagent and the qxl-wddm-dod driver.<br>
><br>
> Signed-off-by: Sameeh Jubran <<a href="mailto:sameeh@daynix.com" target="_blank">sameeh@daynix.com</a>><br>
> ---<br>
>  spice/qxl_windows.h | 10 +++++++++-<br>
>  1 file changed, 9 insertions(+), 1 deletion(-)<br>
><br>
> diff --git a/spice/qxl_windows.h b/spice/qxl_windows.h<br>
> index bc2ceff..6e9627d 100644<br>
> --- a/spice/qxl_windows.h<br>
> +++ b/spice/qxl_windows.h<br>
> @@ -2,7 +2,7 @@<br>
>  #define _H_QXL_WINDOWS<br>
><br>
>  #include <spice/types.h><br>
> -<br>
> +#include <spice/qxl_dev.h><br>
>  #include <spice/start-packed.h><br>
><br>
>  enum {<br>
> @@ -16,6 +16,14 @@ typedef struct SPICE_ATTR_PACKED QXLEscapeSetCustomDisplay<br>
> {<br>
>      uint32_t bpp;<br>
>  } QXLEscapeSetCustomDisplay;<br>
><br>
> +typedef struct SPICE_ATTR_PACKED QXL_ESCAPE {<br>
> +    uint32_t ioctl;<br>
> +    union {<br>
> +        QXLEscapeSetCustomDisplay custom_display;<br>
> +        QXLHead monitor_config;<br>
> +    };<br>
> +} QXL_ESCAPE;<br>
> +<br><div><br></div></div></div>Better QXLEscape.<br><div><br></div>
I would be wondering how you use this structure in the driver code.<br>
Can you post a link to a changeset?<br><div class="HOEnZb"><div class="h5"><br>
>  #include <spice/end-packed.h><br>
><br>
>  #endif /* _H_QXL_WINDOWS */<br><div><br></div></div></div><span class="HOEnZb"><span style="color: #888888;" data-mce-style="color: #888888;" color="#888888">Frediano<br>
</span></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span style="color: #0b5394; font-family: times new roman,serif; font-size: large;" data-mce-style="color: #0b5394; font-family: times new roman,serif; font-size: large;" face="times new roman, serif" color="#0b5394" size="4">Respectfully,<br></span><div style="font-size:12.8px;color:rgb(136,136,136)"><span style="color: #0b5394; font-family: times new roman,serif; font-size: large;" data-mce-style="color: #0b5394; font-family: times new roman,serif; font-size: large;" face="times new roman, serif" color="#0b5394" size="4"><b><i>Sameeh Jubran</i></b></span></div><div style="font-size:12.8px;color:rgb(136,136,136)"><i style="color:rgb(7,55,99);font-family:"times new roman",serif;font-size:large"><span style="line-height:15px"><a href="https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a" title="View public profile" name="UNIQUE_ID_SafeHtmlFilter_UNIQUE_ID_SafeHtmlFilter_UNIQUE_ID_SafeHtmlFilter_UNIQUE_ID_SafeHtmlFilter_14e2c1de96f8c195_UNIQUE_ID_SafeHtmlFilter_SafeHtmlFilter_SafeHtmlFilter_webProfileURL" style="color:rgb(17,85,204);margin:0px;padding:0px;border-width:0px;outline:none;vertical-align:baseline;text-decoration:none" target="_blank">Linkedin</a></span></i><br></div><div style="font-size:12.8px;color:rgb(136,136,136)"><span style="color: #073763; font-family: times new roman,serif; font-size: large;" data-mce-style="color: #073763; font-family: times new roman,serif; font-size: large;" face="times new roman, serif" color="#073763" size="4"><i>Junior Software Engineer @ <a href="http://www.daynix.com" target="_blank">Daynix</a>.</i></span></div></div></div></div></div></div></div></div></blockquote><div><br></div></div></body></html>