一:原子操作
原子操作指不能再进一步分割的指令,一般原子操作用于变量或者位操作。
<1>原子整形操作
1、原子操作定义
typedef struct {
int counter;
} atomic_t;
/* 64位SOC */
typedef struct {
long long counter;
} atomic64_t;
2、内核函数
(1)初始化原子变量:
#define ATOMIC_INIT(i) { (i) }
atomic_t flag = ATOMIC_INIT(0);
(2)读取v值并返回:
#define atomic_read(v) ACCESS_ONCE((v)->counter)
(3)设置v为
#define atomic_set(v,i) (((v)->counter) = (i))
(4)v增加
static inline void atomic_add(int i, atomic_t *v)
(5)v减少
static inline void atomic_sub(in