1 #ifndef _ARM_ARM32_BITOPS_H
2 #define _ARM_ARM32_BITOPS_H
3 
4 /*
5  * Little endian assembly bitops.  nr = 0 -> byte 0 bit 0.
6  */
7 extern int _find_first_zero_bit_le(const void * p, unsigned int size);
8 extern int _find_next_zero_bit_le(const void * p, int size, int offset);
9 extern int _find_first_bit_le(const unsigned long *p, unsigned int size);
10 extern int _find_next_bit_le(const unsigned long *p, int size, int offset);
11 
12 /*
13  * Big endian assembly bitops.  nr = 0 -> byte 3 bit 0.
14  */
15 extern int _find_first_zero_bit_be(const void * p, unsigned int size);
16 extern int _find_next_zero_bit_be(const void * p, int size, int offset);
17 extern int _find_first_bit_be(const unsigned long *p, unsigned int size);
18 extern int _find_next_bit_be(const unsigned long *p, int size, int offset);
19 
20 #ifndef __ARMEB__
21 /*
22  * These are the little endian, atomic definitions.
23  */
24 #define find_first_zero_bit(p,sz)	_find_first_zero_bit_le(p,sz)
25 #define find_next_zero_bit(p,sz,off)	_find_next_zero_bit_le(p,sz,off)
26 #define find_first_bit(p,sz)		_find_first_bit_le(p,sz)
27 #define find_next_bit(p,sz,off)		_find_next_bit_le(p,sz,off)
28 
29 #else
30 /*
31  * These are the big endian, atomic definitions.
32  */
33 #define find_first_zero_bit(p,sz)	_find_first_zero_bit_be(p,sz)
34 #define find_next_zero_bit(p,sz,off)	_find_next_zero_bit_be(p,sz,off)
35 #define find_first_bit(p,sz)		_find_first_bit_be(p,sz)
36 #define find_next_bit(p,sz,off)		_find_next_bit_be(p,sz,off)
37 
38 #endif
39 
40 #endif /* _ARM_ARM32_BITOPS_H */
41