[PATCH] bitops: generic ext2_{set,clear}_bit_atomic()
This patch introduces the C-language equivalents of the functions below: int ext2_set_bit_atomic(int nr, volatile unsigned long *addr); int ext2_clear_bit_atomic(int nr, volatile unsigned long *addr); In include/asm-generic/bitops/ext2-atomic.h This code largely copied from: include/asm-sparc/bitops.h Signed-off-by: Akinobu Mita <mita@miraclelinux.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
930ae745f5
commit
765f34fe32
|
@ -0,0 +1,22 @@
|
||||||
|
#ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_
|
||||||
|
#define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_
|
||||||
|
|
||||||
|
#define ext2_set_bit_atomic(lock, nr, addr) \
|
||||||
|
({ \
|
||||||
|
int ret; \
|
||||||
|
spin_lock(lock); \
|
||||||
|
ret = ext2_set_bit((nr), (unsigned long *)(addr)); \
|
||||||
|
spin_unlock(lock); \
|
||||||
|
ret; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define ext2_clear_bit_atomic(lock, nr, addr) \
|
||||||
|
({ \
|
||||||
|
int ret; \
|
||||||
|
spin_lock(lock); \
|
||||||
|
ret = ext2_clear_bit((nr), (unsigned long *)(addr)); \
|
||||||
|
spin_unlock(lock); \
|
||||||
|
ret; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#endif /* _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ */
|
Loading…
Reference in New Issue