Commit | Line | Data |
---|---|---|
b7cdc182 | 1 | /* SPDX-License-Identifier: (GPL-2.0-only OR LGPL-2.1-only) |
9f36eaed | 2 | * |
505fb410 MD |
3 | * wrapper/atomic.h |
4 | * | |
5 | * wrapper around linux/atomic.h. | |
6 | * | |
7 | * Copyright (C) 2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
505fb410 MD |
8 | */ |
9 | ||
9f36eaed MJ |
10 | #ifndef _LTTNG_WRAPPER_ATOMIC_H |
11 | #define _LTTNG_WRAPPER_ATOMIC_H | |
12 | ||
5f4c791e | 13 | #include <lttng/kernel-version.h> |
505fb410 MD |
14 | #include <linux/atomic.h> |
15 | ||
5f4c791e | 16 | #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) |
505fb410 MD |
17 | static inline void lttng_smp_mb__before_atomic(void) |
18 | { | |
19 | smp_mb__before_atomic(); | |
20 | } | |
21 | ||
22 | static inline void lttng_smp_mb__after_atomic(void) | |
23 | { | |
24 | smp_mb__after_atomic(); | |
25 | } | |
5f4c791e | 26 | #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) */ |
505fb410 MD |
27 | static inline void lttng_smp_mb__before_atomic(void) |
28 | { | |
29 | smp_mb__before_atomic_inc(); | |
30 | } | |
31 | ||
32 | static inline void lttng_smp_mb__after_atomic(void) | |
33 | { | |
34 | smp_mb__after_atomic_inc(); | |
35 | } | |
5f4c791e | 36 | #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,16,0)) */ |
505fb410 MD |
37 | |
38 | #endif /* _LTTNG_WRAPPER_ATOMIC_H */ |