| 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 |