diff options
| author | Akinobu Mita <mita@miraclelinux.com> | 2006-03-26 04:39:16 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-26 11:57:11 -0500 |
| commit | 765f34fe324bdf0c0544b3404d25aaa511e3834b (patch) | |
| tree | 073161aa7c213b15e0d3be6d99a2649de3030e00 /include | |
| parent | 930ae745f50088279fdc06057a429f16495b53a2 (diff) | |
[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>
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-generic/bitops/ext2-atomic.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/asm-generic/bitops/ext2-atomic.h b/include/asm-generic/bitops/ext2-atomic.h new file mode 100644 index 000000000000..ab1c875efb74 --- /dev/null +++ b/include/asm-generic/bitops/ext2-atomic.h | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | #ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ | ||
| 2 | #define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ | ||
| 3 | |||
| 4 | #define ext2_set_bit_atomic(lock, nr, addr) \ | ||
| 5 | ({ \ | ||
| 6 | int ret; \ | ||
| 7 | spin_lock(lock); \ | ||
| 8 | ret = ext2_set_bit((nr), (unsigned long *)(addr)); \ | ||
| 9 | spin_unlock(lock); \ | ||
| 10 | ret; \ | ||
| 11 | }) | ||
| 12 | |||
| 13 | #define ext2_clear_bit_atomic(lock, nr, addr) \ | ||
| 14 | ({ \ | ||
| 15 | int ret; \ | ||
| 16 | spin_lock(lock); \ | ||
| 17 | ret = ext2_clear_bit((nr), (unsigned long *)(addr)); \ | ||
| 18 | spin_unlock(lock); \ | ||
| 19 | ret; \ | ||
| 20 | }) | ||
| 21 | |||
| 22 | #endif /* _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ */ | ||
