ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libecb/ecb.h
(Generate patch)

Comparing libecb/ecb.h (file contents):
Revision 1.52 by root, Mon Jul 18 01:18:17 2011 UTC vs.
Revision 1.53 by root, Mon Jul 18 01:25:46 2011 UTC

68#ifndef ECB_MEMORY_FENCE 68#ifndef ECB_MEMORY_FENCE
69 #if ECB_GCC_VERSION(2,5) 69 #if ECB_GCC_VERSION(2,5)
70 #if __x86 70 #if __x86
71 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("lock; or.b $0, -1(%%esp)" : : : "memory") 71 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("lock; or.b $0, -1(%%esp)" : : : "memory")
72 #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE 72 #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE
73 #define ECB_MEMORY_FENCE_RELEASE ECB_MEMORY_FENC /* better be safe than sorry */ 73 #define ECB_MEMORY_FENCE_RELEASE ECB_MEMORY_FENCE /* better be safe than sorry */
74 #elif __amd64 74 #elif __amd64
75 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mfence" : : : "memory") 75 #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mfence" : : : "memory")
76 #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("lfence" : : : "memory") 76 #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("lfence" : : : "memory")
77 #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("sfence") 77 #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("sfence")
78 #endif 78 #endif
93 #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE 93 #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE
94 #define ECB_MEMORY_FENCE_RELEASE ECB_MEMORY_FENCE 94 #define ECB_MEMORY_FENCE_RELEASE ECB_MEMORY_FENCE
95 #endif 95 #endif
96#endif 96#endif
97 97
98#ifndef ECB_MEMORY_FENCE_ACQ 98#ifndef ECB_MEMORY_FENCE
99 #include <pthread.h> 99 #include <pthread.h>
100 100
101 static pthread_mutex_t ecb_mf_lock = PTHREAD_MUTEX_INITIALIZER; 101 static pthread_mutex_t ecb_mf_lock = PTHREAD_MUTEX_INITIALIZER;
102 #define ECB_MEMORY_FENCE do { pthread_mutex_lock (&ecb_mf_lock); pthread_mutex_unlock (&ecb_mf_lock); } while (0) 102 #define ECB_MEMORY_FENCE do { pthread_mutex_lock (&ecb_mf_lock); pthread_mutex_unlock (&ecb_mf_lock); } while (0)
103 #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE 103 #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines