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