Subversion Repositories HelenOS

Rev

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

Rev 431 Rev 432
Line 30... Line 30...
30
#define __ia64_BARRIER_H__
30
#define __ia64_BARRIER_H__
31
 
31
 
32
/*
32
/*
33
 * TODO: Implement true IA-64 memory barriers for macros below.
33
 * TODO: Implement true IA-64 memory barriers for macros below.
34
 */
34
 */
35
#define CS_ENTER_BARRIER()  __asm__ volatile ("" ::: "memory")
35
#define CS_ENTER_BARRIER()  memory_barrier()
36
#define CS_LEAVE_BARRIER()  __asm__ volatile ("" ::: "memory")
36
#define CS_LEAVE_BARRIER()  memory_barrier()
37
 
37
 
38
#define memory_barrier()
38
#define memory_barrier()    __asm__ volatile ("mf\n" ::: "memory")
39
#define read_barrier()
39
#define read_barrier()      memory_barrier()
40
#define write_barrier()
40
#define write_barrier()     memory_barrier()
41
 
41
 
42
#define srlz_i()        __asm__ volatile (";; srlz.i ;;\n" ::: "memory")
42
#define srlz_i()        __asm__ volatile (";; srlz.i ;;\n" ::: "memory")
43
#define srlz_d()        __asm__ volatile (";; srlz.d ;;\n" ::: "memory")
43
#define srlz_d()        __asm__ volatile (";; srlz.d\n" ::: "memory")
44
 
44
 
45
#endif
45
#endif