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