2006-03-26 01:39:11 -08:00
# ifndef _ASM_GENERIC_BITOPS_FIND_H_
# define _ASM_GENERIC_BITOPS_FIND_H_
2011-05-26 16:26:09 -07:00
# ifndef find_next_bit
2010-09-29 18:08:51 +09:00
/**
* find_next_bit - find the next set bit in a memory region
* @ addr : The address to base the search on
* @ offset : The bitnumber to start searching at
* @ size : The bitmap size in bits
2013-11-12 15:09:48 -08:00
*
* Returns the bit number for the next set bit
* If no bits are set , returns @ size .
2010-09-29 18:08:51 +09:00
*/
2006-03-26 01:39:11 -08:00
extern unsigned long find_next_bit ( const unsigned long * addr , unsigned long
size , unsigned long offset ) ;
2011-05-26 16:26:09 -07:00
# endif
2006-03-26 01:39:11 -08:00
2011-05-26 16:26:09 -07:00
# ifndef find_next_zero_bit
2010-09-29 18:08:51 +09:00
/**
* find_next_zero_bit - find the next cleared bit in a memory region
* @ addr : The address to base the search on
* @ offset : The bitnumber to start searching at
* @ size : The bitmap size in bits
2013-11-12 15:09:48 -08:00
*
* Returns the bit number of the next zero bit
* If no bits are zero , returns @ size .
2010-09-29 18:08:51 +09:00
*/
2006-03-26 01:39:11 -08:00
extern unsigned long find_next_zero_bit ( const unsigned long * addr , unsigned
long size , unsigned long offset ) ;
2011-05-26 16:26:09 -07:00
# endif
2006-03-26 01:39:11 -08:00
2010-09-29 18:08:50 +09:00
# ifdef CONFIG_GENERIC_FIND_FIRST_BIT
/**
* find_first_bit - find the first set bit in a memory region
* @ addr : The address to start the search at
2013-11-12 15:09:48 -08:00
* @ size : The maximum number of bits to search
2010-09-29 18:08:50 +09:00
*
* Returns the bit number of the first set bit .
2013-11-12 15:09:48 -08:00
* If no bits are set , returns @ size .
2010-09-29 18:08:50 +09:00
*/
extern unsigned long find_first_bit ( const unsigned long * addr ,
unsigned long size ) ;
/**
* find_first_zero_bit - find the first cleared bit in a memory region
* @ addr : The address to start the search at
2013-11-12 15:09:48 -08:00
* @ size : The maximum number of bits to search
2010-09-29 18:08:50 +09:00
*
* Returns the bit number of the first cleared bit .
2013-11-12 15:09:48 -08:00
* If no bits are zero , returns @ size .
2010-09-29 18:08:50 +09:00
*/
extern unsigned long find_first_zero_bit ( const unsigned long * addr ,
unsigned long size ) ;
# else /* CONFIG_GENERIC_FIND_FIRST_BIT */
2006-03-26 01:39:11 -08:00
# define find_first_bit(addr, size) find_next_bit((addr), (size), 0)
# define find_first_zero_bit(addr, size) find_next_zero_bit((addr), (size), 0)
2010-09-29 18:08:50 +09:00
# endif /* CONFIG_GENERIC_FIND_FIRST_BIT */
2006-03-26 01:39:11 -08:00
# endif /*_ASM_GENERIC_BITOPS_FIND_H_ */