00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef ATOMIC_H
00012 #define ATOMIC_H
00013
00014 #define acquire_lock(lock, val) ({ (lock) = (val); })
00015 #define acquire_lock_no_ien(lock, val) ({ (lock) = (val); })
00016 #define release_lock(lock, ien) ({ (lock) = 0; })
00017 #define release_lock_no_ien(lock) ({ (lock) = 0; })
00018
00019 #define atomic_add(var, val) ({ int t = (var); (var) += (val); t; })
00020 #define atomic_sub(var, val) ({ int t = (var); (var) -= (val); t; })
00021 #define atomic_or(var, val) ({ int t = (var); (var) |= (val); t; })
00022 #define atomic_addi(var, val) ({ int t = (var); (var) += (val); t; })
00023 #define atomic_subi(var, val) ({ int t = (var); (var) -= (val); t; })
00024 #define atomic_srl(var, val) ({ int t = (var); (var) >>= (val); t; })
00025 #define atomic_sll(var, val) ({ int t = (var); (var) <<= (val); t; })
00026 #define atomic_set(var, val) ({ int t = (var); (var) = (val); t; })
00027 #define atomic_seti(var, val) ({ int t = (var); (var) = (val); t; })
00028
00029 #endif