diff options
author | Jens Axboe <axboe@kernel.dk> | 2019-01-08 06:51:07 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-01-08 07:38:15 -0700 |
commit | f93c84e1b07474a7d776403b3516feeff4f3c933 (patch) | |
tree | 4b71b6a4013c643d669398fdb8f33f74b6081cd2 /src/barrier.h |
Initial commit
Signed-off-by: Jens Axboe <axboe@kernel.dk>
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 |