diff options
Diffstat (limited to 'src/barrier.h')
-rw-r--r-- | src/barrier.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/barrier.h b/src/barrier.h new file mode 100644 index 0000000..0fd5c39 --- /dev/null +++ b/src/barrier.h @@ -0,0 +1,16 @@ +#ifndef LIBURING_BARRIER_H +#define LIBURING_BARRIER_H + +#if defined(__x86_64) +#define read_barrier() __asm__ __volatile__("lfence":::"memory") +#define write_barrier() __asm__ __volatile__("sfence":::"memory") +#else +/* + * Add arch appropriate definitions. Be safe and use full barriers for + * archs we don't have support for. + */ +#define read_barrier() __sync_synchronize() +#define write_barrier() __sync_synchronize() +#endif + +#endif |