forked from mirrors/linux
		
	lib/bitmap.c: bitmap_[empty,full]: remove code duplication
bitmap_empty() has its own implementation. But it's clearly as simple as: find_first_bit(src, nbits) == nbits The same is true for 'bitmap_full'. Signed-off-by: Yury Norov <yury.norov@gmail.com> Cc: George Spelvin <linux@horizon.com> Cc: Alexey Klimov <klimov.linux@gmail.com> Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									d48502eacd
								
							
						
					
					
						commit
						2afe27c718
					
				
					 2 changed files with 4 additions and 34 deletions
				
			
		|  | @ -283,16 +283,16 @@ static inline int bitmap_empty(const unsigned long *src, unsigned nbits) | |||
| { | ||||
| 	if (small_const_nbits(nbits)) | ||||
| 		return ! (*src & BITMAP_LAST_WORD_MASK(nbits)); | ||||
| 	else | ||||
| 		return __bitmap_empty(src, nbits); | ||||
| 
 | ||||
| 	return find_first_bit(src, nbits) == nbits; | ||||
| } | ||||
| 
 | ||||
| static inline int bitmap_full(const unsigned long *src, unsigned int nbits) | ||||
| { | ||||
| 	if (small_const_nbits(nbits)) | ||||
| 		return ! (~(*src) & BITMAP_LAST_WORD_MASK(nbits)); | ||||
| 	else | ||||
| 		return __bitmap_full(src, nbits); | ||||
| 
 | ||||
| 	return find_first_zero_bit(src, nbits) == nbits; | ||||
| } | ||||
| 
 | ||||
| static inline int bitmap_weight(const unsigned long *src, unsigned int nbits) | ||||
|  |  | |||
							
								
								
									
										30
									
								
								lib/bitmap.c
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								lib/bitmap.c
									
									
									
									
									
								
							|  | @ -42,36 +42,6 @@ | |||
|  * for the best explanations of this ordering. | ||||
|  */ | ||||
| 
 | ||||
| int __bitmap_empty(const unsigned long *bitmap, unsigned int bits) | ||||
| { | ||||
| 	unsigned int k, lim = bits/BITS_PER_LONG; | ||||
| 	for (k = 0; k < lim; ++k) | ||||
| 		if (bitmap[k]) | ||||
| 			return 0; | ||||
| 
 | ||||
| 	if (bits % BITS_PER_LONG) | ||||
| 		if (bitmap[k] & BITMAP_LAST_WORD_MASK(bits)) | ||||
| 			return 0; | ||||
| 
 | ||||
| 	return 1; | ||||
| } | ||||
| EXPORT_SYMBOL(__bitmap_empty); | ||||
| 
 | ||||
| int __bitmap_full(const unsigned long *bitmap, unsigned int bits) | ||||
| { | ||||
| 	unsigned int k, lim = bits/BITS_PER_LONG; | ||||
| 	for (k = 0; k < lim; ++k) | ||||
| 		if (~bitmap[k]) | ||||
| 			return 0; | ||||
| 
 | ||||
| 	if (bits % BITS_PER_LONG) | ||||
| 		if (~bitmap[k] & BITMAP_LAST_WORD_MASK(bits)) | ||||
| 			return 0; | ||||
| 
 | ||||
| 	return 1; | ||||
| } | ||||
| EXPORT_SYMBOL(__bitmap_full); | ||||
| 
 | ||||
| int __bitmap_equal(const unsigned long *bitmap1, | ||||
| 		const unsigned long *bitmap2, unsigned int bits) | ||||
| { | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Yury Norov
						Yury Norov