Ingo Molnar | b7882b7 | 2009-07-03 13:26:39 +0200 | [diff] [blame] | 1 | #include <linux/compiler.h> |
Ingo Molnar | 1fde902 | 2009-07-03 17:28:57 +0200 | [diff] [blame] | 2 | #include <linux/module.h> |
Ingo Molnar | b7882b7 | 2009-07-03 13:26:39 +0200 | [diff] [blame] | 3 | #include <linux/types.h> |
Ingo Molnar | 1fde902 | 2009-07-03 17:28:57 +0200 | [diff] [blame] | 4 | |
Ingo Molnar | b7882b7 | 2009-07-03 13:26:39 +0200 | [diff] [blame] | 5 | #include <asm/processor.h> |
| 6 | #include <asm/cmpxchg.h> |
| 7 | #include <asm/atomic.h> |
| 8 | |
Luca Barbieri | a7e926a | 2010-02-24 10:54:25 +0100 | [diff] [blame] | 9 | long long atomic64_read_cx8(long long, const atomic64_t *v); |
| 10 | EXPORT_SYMBOL(atomic64_read_cx8); |
| 11 | long long atomic64_set_cx8(long long, const atomic64_t *v); |
| 12 | EXPORT_SYMBOL(atomic64_set_cx8); |
| 13 | long long atomic64_xchg_cx8(long long, unsigned high); |
| 14 | EXPORT_SYMBOL(atomic64_xchg_cx8); |
| 15 | long long atomic64_add_return_cx8(long long a, atomic64_t *v); |
| 16 | EXPORT_SYMBOL(atomic64_add_return_cx8); |
| 17 | long long atomic64_sub_return_cx8(long long a, atomic64_t *v); |
| 18 | EXPORT_SYMBOL(atomic64_sub_return_cx8); |
| 19 | long long atomic64_inc_return_cx8(long long a, atomic64_t *v); |
| 20 | EXPORT_SYMBOL(atomic64_inc_return_cx8); |
| 21 | long long atomic64_dec_return_cx8(long long a, atomic64_t *v); |
| 22 | EXPORT_SYMBOL(atomic64_dec_return_cx8); |
| 23 | long long atomic64_dec_if_positive_cx8(atomic64_t *v); |
| 24 | EXPORT_SYMBOL(atomic64_dec_if_positive_cx8); |
| 25 | int atomic64_inc_not_zero_cx8(atomic64_t *v); |
| 26 | EXPORT_SYMBOL(atomic64_inc_not_zero_cx8); |
| 27 | int atomic64_add_unless_cx8(atomic64_t *v, long long a, long long u); |
| 28 | EXPORT_SYMBOL(atomic64_add_unless_cx8); |
Eric Dumazet | 69237f9 | 2009-07-03 13:26:41 +0200 | [diff] [blame] | 29 | |
Luca Barbieri | a7e926a | 2010-02-24 10:54:25 +0100 | [diff] [blame] | 30 | #ifndef CONFIG_X86_CMPXCHG64 |
| 31 | long long atomic64_read_386(long long, const atomic64_t *v); |
| 32 | EXPORT_SYMBOL(atomic64_read_386); |
| 33 | long long atomic64_set_386(long long, const atomic64_t *v); |
| 34 | EXPORT_SYMBOL(atomic64_set_386); |
| 35 | long long atomic64_xchg_386(long long, unsigned high); |
| 36 | EXPORT_SYMBOL(atomic64_xchg_386); |
| 37 | long long atomic64_add_return_386(long long a, atomic64_t *v); |
| 38 | EXPORT_SYMBOL(atomic64_add_return_386); |
| 39 | long long atomic64_sub_return_386(long long a, atomic64_t *v); |
| 40 | EXPORT_SYMBOL(atomic64_sub_return_386); |
| 41 | long long atomic64_inc_return_386(long long a, atomic64_t *v); |
| 42 | EXPORT_SYMBOL(atomic64_inc_return_386); |
| 43 | long long atomic64_dec_return_386(long long a, atomic64_t *v); |
| 44 | EXPORT_SYMBOL(atomic64_dec_return_386); |
| 45 | long long atomic64_add_386(long long a, atomic64_t *v); |
| 46 | EXPORT_SYMBOL(atomic64_add_386); |
| 47 | long long atomic64_sub_386(long long a, atomic64_t *v); |
| 48 | EXPORT_SYMBOL(atomic64_sub_386); |
| 49 | long long atomic64_inc_386(long long a, atomic64_t *v); |
| 50 | EXPORT_SYMBOL(atomic64_inc_386); |
| 51 | long long atomic64_dec_386(long long a, atomic64_t *v); |
| 52 | EXPORT_SYMBOL(atomic64_dec_386); |
| 53 | long long atomic64_dec_if_positive_386(atomic64_t *v); |
| 54 | EXPORT_SYMBOL(atomic64_dec_if_positive_386); |
| 55 | int atomic64_inc_not_zero_386(atomic64_t *v); |
| 56 | EXPORT_SYMBOL(atomic64_inc_not_zero_386); |
| 57 | int atomic64_add_unless_386(atomic64_t *v, long long a, long long u); |
| 58 | EXPORT_SYMBOL(atomic64_add_unless_386); |
| 59 | #endif |