On Fri, Jun 15, 2012 at 12:35:00PM +0200, Michel Dänzer wrote: > On Fre, 2012-06-15 at 19:01 +1000, Christopher James Halse Rogers > wrote: > > xwayland drivers need access to their screen private data to authenticate. > > Now that drivers no longer have direct access to the global screen arrays, > > this needs to be passed in as function context. The way it was working > > was ugly, anyway. > > > > Signed-off-by: Christopher James Halse Rogers > > <christopher.halse.rog...@canonical.com> > > --- > > > > This came up when I got around to fixing the nouveau xwayland patch review > > comments; with things no longer meant to access the global xf86Screens array > > the authmagic callback needed some other way to access driver private data. > > > > Nouveau patch using this follows; I'll send it upstream once this gets > > applied somewhere. > > > > CCd to xorg-devel mainly for sanity review, but could be applied; as Airlied > > has pointed out, there's no particular reason for the xwayland branch to > > diverge on core infrastructure. > > [...] > > > @@ -1202,9 +1215,17 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info) > > cur_minor = 1; > > } > > > > - if (info->version >= 5) { > > + if (info->version >= 7) { > > ds->AuthMagic = info->AuthMagic; > > } > > + else if (info->version >= 5) { > > + /* > > + * This cast is safe; if the driver has provided a V5 or V6 InfoRec > > + * then AuthMagic is of type DRI2LegacyAuthMagicProcPtr, and the C > > + * standard guarantees that we can typecast it back and call it. > > + */ > > + ds->LegacyAuthMagic = (DRI2LegacyAuthMagicProcPtr)info->AuthMagic; > > + } > > This is nifty, but it's an ABI break, as servers without this change > will treat the version 7 AuthMagic field incorrectly. Wouldn't it be > easier to add a second AuthMagic field at the end of version 7?
Drivers can use DRI2Version to see if the xserver is recent enough to understand this trick, but I agree just adding a field to the structs is simpler. Kristian _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel