Go to the documentation of this file. 1 #ifndef _ASM_X86_ATOMIC64_64_H
2 #define _ASM_X86_ATOMIC64_64_H
4 #include <linux/types.h>
6 #include <asm/cmpxchg.h>
10 #define ATOMIC64_INIT(i) { (i) }
21 return (*(
volatile long *)&(v)->
counter);
79 :
"er" (
i),
"m" (v->
counter) :
"memory");
123 :
"m" (v->
counter) :
"memory");
141 :
"m" (v->
counter) :
"memory");
160 :
"er" (
i),
"m" (v->
counter) :
"memory");
181 #define atomic64_inc_return(v) (atomic64_add_return(1, (v)))
182 #define atomic64_dec_return(v) (atomic64_sub_return(1, (v)))
203 static inline int atomic64_add_unless(
atomic64_t *v,
long a,
long u)
218 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)