#ifndef _FFB_LOCK_H
#define _FFB_LOCK_H
#include "ffb_context.h"
extern void ffbXMesaUpdateState(ffbContextPtr fmesa);
#define FFB_UPDATE_STATE(fmesa) ffbXMesaUpdateState(fmesa)
#if defined(__i386__)
#define LOCK_HARDWARE(fmesa)
#define UNLOCK_HARDWARE(fmesa)
#else
#define LOCK_HARDWARE(fmesa) \
do { \
int __ret=0; \
DRM_CAS(fmesa->driHwLock, fmesa->hHWContext, \
(DRM_LOCK_HELD | fmesa->hHWContext), __ret);\
if (__ret) { \
drmGetLock(fmesa->driFd, fmesa->hHWContext, 0); \
FFB_UPDATE_STATE(fmesa); \
} \
} while (0)
#define UNLOCK_HARDWARE(fmesa) \
DRM_UNLOCK(fmesa->driFd, fmesa->driHwLock, fmesa->hHWContext);
#endif
#endif