原子变量: arch/arm/include/asm/atomic.h 定义并初始化 atomic_t v = ATOMIC_INIT(0); 写 void atomic_set(atomic_t *v, int i); 读 int atomic_read(atomic_t *v); 自增, 并返回新值是否为0 int atomic_inc_and_test(atomic_t *v); 自减, 并返回新值是否为0 int atomic_dec_and_test(atomic_t *v); ========================================================== 原子位: arch/arm/include/asm/bitops.h:204 操作从地址p开始下标为nr(0 --> 0xffffffff)的位 void set_bit(unsigned int nr, unsigned long *p); void clear_bit(unsigned int nr, unsigned long *p); void change_bit(unsigned int nr, unsigned long *p); int test_and_set_bit(unsigned int nr, unsigned long *p); int test_and_clear_bit(unsigned int nr, unsigned long *p); int test_and_change_bit(unsigned int nr, unsigned long *p); test函数返回旧值
时间: 2024-09-12 13:00:59