DRI2: add AuthMagic hook for driver side support
With this new hook, drmAuthMagic becomes useless and should be deprecated. You might want to implement AuthMagic on driver side instead. Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
This commit is contained in:
parent
643cb6e87c
commit
cdcb575664
|
@ -94,6 +94,7 @@ typedef struct _DRI2Screen {
|
||||||
DRI2ScheduleSwapProcPtr ScheduleSwap;
|
DRI2ScheduleSwapProcPtr ScheduleSwap;
|
||||||
DRI2GetMSCProcPtr GetMSC;
|
DRI2GetMSCProcPtr GetMSC;
|
||||||
DRI2ScheduleWaitMSCProcPtr ScheduleWaitMSC;
|
DRI2ScheduleWaitMSCProcPtr ScheduleWaitMSC;
|
||||||
|
DRI2AuthMagicProcPtr AuthMagic;
|
||||||
|
|
||||||
HandleExposuresProcPtr HandleExposures;
|
HandleExposuresProcPtr HandleExposures;
|
||||||
|
|
||||||
|
@ -968,8 +969,8 @@ DRI2Authenticate(ScreenPtr pScreen, drm_magic_t magic)
|
||||||
{
|
{
|
||||||
DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
|
DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
|
||||||
|
|
||||||
if (ds == NULL || drmAuthMagic(ds->fd, magic))
|
if (ds == NULL || (*ds->AuthMagic)(ds->fd, magic))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -1040,6 +1041,14 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
|
||||||
cur_minor = 1;
|
cur_minor = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (info->version >= 5) {
|
||||||
|
ds->AuthMagic = info->AuthMagic;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ds->AuthMagic)
|
||||||
|
ds->AuthMagic = drmAuthMagic;
|
||||||
|
|
||||||
|
|
||||||
/* Initialize minor if needed and set to minimum provied by DDX */
|
/* Initialize minor if needed and set to minimum provied by DDX */
|
||||||
if (!dri2_minor || dri2_minor > cur_minor)
|
if (!dri2_minor || dri2_minor > cur_minor)
|
||||||
dri2_minor = cur_minor;
|
dri2_minor = cur_minor;
|
||||||
|
|
|
@ -66,6 +66,8 @@ typedef void (*DRI2CopyRegionProcPtr)(DrawablePtr pDraw,
|
||||||
DRI2BufferPtr pSrcBuffer);
|
DRI2BufferPtr pSrcBuffer);
|
||||||
typedef void (*DRI2WaitProcPtr)(WindowPtr pWin,
|
typedef void (*DRI2WaitProcPtr)(WindowPtr pWin,
|
||||||
unsigned int sequence);
|
unsigned int sequence);
|
||||||
|
typedef int (*DRI2AuthMagicProcPtr)(int fd, uint32_t magic);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Schedule a buffer swap
|
* Schedule a buffer swap
|
||||||
*
|
*
|
||||||
|
@ -159,7 +161,7 @@ typedef void (*DRI2InvalidateProcPtr)(DrawablePtr pDraw,
|
||||||
/**
|
/**
|
||||||
* Version of the DRI2InfoRec structure defined in this header
|
* Version of the DRI2InfoRec structure defined in this header
|
||||||
*/
|
*/
|
||||||
#define DRI2INFOREC_VERSION 4
|
#define DRI2INFOREC_VERSION 5
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned int version; /**< Version of this struct */
|
unsigned int version; /**< Version of this struct */
|
||||||
|
@ -183,6 +185,10 @@ typedef struct {
|
||||||
/* array of driver names, indexed by DRI2Driver* driver types */
|
/* array of driver names, indexed by DRI2Driver* driver types */
|
||||||
/* a name of NULL means that driver is not supported */
|
/* a name of NULL means that driver is not supported */
|
||||||
const char * const *driverNames;
|
const char * const *driverNames;
|
||||||
|
|
||||||
|
/* added in version 5 */
|
||||||
|
|
||||||
|
DRI2AuthMagicProcPtr AuthMagic;
|
||||||
} DRI2InfoRec, *DRI2InfoPtr;
|
} DRI2InfoRec, *DRI2InfoPtr;
|
||||||
|
|
||||||
extern _X_EXPORT int DRI2EventBase;
|
extern _X_EXPORT int DRI2EventBase;
|
||||||
|
|
Loading…
Reference in New Issue