blob: a54f4421a24d8bc738815fdf9c1c5884795a94f3 [file] [log] [blame]
Arnd Bergmann9858c602009-05-13 22:56:32 +00001#ifndef __ASM_GENERIC_BITOPS_H
2#define __ASM_GENERIC_BITOPS_H
Linus Torvalds1da177e2005-04-16 15:20:36 -07003
4/*
5 * For the benefit of those who are trying to port Linux to another
6 * architecture, here are some C-language equivalents. You should
7 * recode these in the native assembly language, if at all possible.
Arnd Bergmann9858c602009-05-13 22:56:32 +00008 *
Linus Torvalds1da177e2005-04-16 15:20:36 -07009 * C language equivalents written by Theodore Ts'o, 9/26/92
10 */
11
Arnd Bergmann9858c602009-05-13 22:56:32 +000012#include <linux/irqflags.h>
13#include <linux/compiler.h>
14
15/*
16 * clear_bit may not imply a memory barrier
17 */
18#ifndef smp_mb__before_clear_bit
19#define smp_mb__before_clear_bit() smp_mb()
20#define smp_mb__after_clear_bit() smp_mb()
21#endif
22
Akinobu Mitaf51a05c2006-03-26 01:39:50 -080023#include <asm-generic/bitops/__ffs.h>
24#include <asm-generic/bitops/ffz.h>
25#include <asm-generic/bitops/fls.h>
Arnd Bergmann9858c602009-05-13 22:56:32 +000026#include <asm-generic/bitops/__fls.h>
Akinobu Mitaf51a05c2006-03-26 01:39:50 -080027#include <asm-generic/bitops/fls64.h>
28#include <asm-generic/bitops/find.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070029
Jiri Slaby06245172007-10-18 23:40:26 -070030#ifndef _LINUX_BITOPS_H
31#error only <linux/bitops.h> can be included directly
32#endif
33
Akinobu Mitaf51a05c2006-03-26 01:39:50 -080034#include <asm-generic/bitops/sched.h>
35#include <asm-generic/bitops/ffs.h>
36#include <asm-generic/bitops/hweight.h>
Nick Piggin26333572007-10-18 03:06:39 -070037#include <asm-generic/bitops/lock.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070038
Arnd Bergmann9858c602009-05-13 22:56:32 +000039#include <asm-generic/bitops/atomic.h>
40#include <asm-generic/bitops/non-atomic.h>
Akinobu Mitaf51a05c2006-03-26 01:39:50 -080041#include <asm-generic/bitops/ext2-non-atomic.h>
42#include <asm-generic/bitops/ext2-atomic.h>
43#include <asm-generic/bitops/minix.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070044
Arnd Bergmann9858c602009-05-13 22:56:32 +000045#endif /* __ASM_GENERIC_BITOPS_H */