Subversion Repositories HelenOS-historic

Rev

Rev 457 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 457 Rev 468
Line 41... Line 41...
41
 */
41
 */
42
 
42
 
43
#define CS_ENTER_BARRIER()  __asm__ volatile ("" ::: "memory")
43
#define CS_ENTER_BARRIER()  __asm__ volatile ("" ::: "memory")
44
#define CS_LEAVE_BARRIER()  __asm__ volatile ("" ::: "memory")
44
#define CS_LEAVE_BARRIER()  __asm__ volatile ("" ::: "memory")
45
 
45
 
46
#if (FENCES == p4)
46
#ifdef CONFIG_FENCES_P4
47
#   define memory_barrier() __asm__ volatile ("mfence\n" ::: "memory")
47
#   define memory_barrier() __asm__ volatile ("mfence\n" ::: "memory")
48
#   define read_barrier()       __asm__ volatile ("sfence\n" ::: "memory")
48
#   define read_barrier()       __asm__ volatile ("lfence\n" ::: "memory")
49
#   define write_barrier()      __asm__ volatile ("lfence\n" ::: "memory")
49
#   define write_barrier()      __asm__ volatile ("sfence\n" ::: "memory")
50
#elif (FENCES == p3)
50
#elif CONFIG_FENCES_P3
51
#   define memory_barrier() __asm__ volatile ("xchgl %%eax,%%eax\n" ::: "memory")
51
#   define memory_barrier() __asm__ volatile ("\n" ::: "memory")
52
#   define read_barrier()       __asm__ volatile ("sfence\n" ::: "memory")
52
#   define read_barrier()       __asm__ volatile ("\n" ::: "memory")
53
#   define write_barrier()      __asm__ volatile ("xchgl %%eax,%%eax\n" ::: "memory")
53
#   define write_barrier()      __asm__ volatile ("sfence\n" ::: "memory")
54
#else
-
 
55
#   error Unsupported FENCES value
-
 
56
#endif
54
#endif
57
 
55
 
58
#endif
56
#endif