From 3cba815b88ecd64e0be3671293d8f9aa48111a99 Mon Sep 17 00:00:00 2001 From: obrien Date: Wed, 3 Mar 2004 06:19:03 +0000 Subject: Add memory barrier routines for AMD64. --- sys/dev/drm/drm_os_freebsd.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'sys/dev') diff --git a/sys/dev/drm/drm_os_freebsd.h b/sys/dev/drm/drm_os_freebsd.h index 43f6309..cb4cfe0 100644 --- a/sys/dev/drm/drm_os_freebsd.h +++ b/sys/dev/drm/drm_os_freebsd.h @@ -178,7 +178,7 @@ typedef void irqreturn_t; #define DRM_GET_PRIV_WITH_RETURN(_priv, _filp) \ do { \ - if (_filp != (DRMFILE)DRM_CURRENTPID) { \ + if (_filp != (DRMFILE)(intptr_t)DRM_CURRENTPID) { \ DRM_ERROR("filp doesn't match curproc\n"); \ return EINVAL; \ } \ @@ -291,6 +291,12 @@ for ( ret = 0 ; !ret && !(condition) ; ) { \ #define DRM_READMEMORYBARRIER() alpha_mb(); #define DRM_WRITEMEMORYBARRIER() alpha_wmb(); #define DRM_MEMORYBARRIER() alpha_mb(); +#elif defined(__amd64__) +#define DRM_READMEMORYBARRIER() __asm __volatile( \ + "lock; addl $0,0(%%rsp)" : : : "memory"); +#define DRM_WRITEMEMORYBARRIER() __asm __volatile("" : : : "memory"); +#define DRM_MEMORYBARRIER() __asm __volatile( \ + "lock; addl $0,0(%%rsp)" : : : "memory"); #endif #define PAGE_ALIGN(addr) round_page(addr) -- cgit v1.1