1 #include <linux/compiler.h>
2 #include <linux/module.h>
3 #include <linux/types.h>
5 #include <asm/processor.h>
6 #include <asm/cmpxchg.h>
7 #include <linux/atomic.h>
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
);
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
);