mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 14:00:19 +00:00 
			
		
		
		
	- remove trailing white space, trailing empty lines, C++ comments, etc.
  - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c)
* Patches by Kenneth Johansson, 25 Jun 2003:
  - major rework of command structure
    (work done mostly by Michal Cendrowski and Joakim Kristiansen)
		
	
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _LINUX_BITOPS_H
 | 
						|
#define _LINUX_BITOPS_H
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 * ffs: find first bit set. This is defined the same way as
 | 
						|
 * the libc and compiler builtin ffs routines, therefore
 | 
						|
 * differs in spirit from the above ffz (man ffs).
 | 
						|
 */
 | 
						|
 | 
						|
static inline int generic_ffs(int x)
 | 
						|
{
 | 
						|
	int r = 1;
 | 
						|
 | 
						|
	if (!x)
 | 
						|
		return 0;
 | 
						|
	if (!(x & 0xffff)) {
 | 
						|
		x >>= 16;
 | 
						|
		r += 16;
 | 
						|
	}
 | 
						|
	if (!(x & 0xff)) {
 | 
						|
		x >>= 8;
 | 
						|
		r += 8;
 | 
						|
	}
 | 
						|
	if (!(x & 0xf)) {
 | 
						|
		x >>= 4;
 | 
						|
		r += 4;
 | 
						|
	}
 | 
						|
	if (!(x & 3)) {
 | 
						|
		x >>= 2;
 | 
						|
		r += 2;
 | 
						|
	}
 | 
						|
	if (!(x & 1)) {
 | 
						|
		x >>= 1;
 | 
						|
		r += 1;
 | 
						|
	}
 | 
						|
	return r;
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
 * hweightN: returns the hamming weight (i.e. the number
 | 
						|
 * of bits set) of a N-bit word
 | 
						|
 */
 | 
						|
 | 
						|
static inline unsigned int generic_hweight32(unsigned int w)
 | 
						|
{
 | 
						|
	unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555);
 | 
						|
	res = (res & 0x33333333) + ((res >> 2) & 0x33333333);
 | 
						|
	res = (res & 0x0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F);
 | 
						|
	res = (res & 0x00FF00FF) + ((res >> 8) & 0x00FF00FF);
 | 
						|
	return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF);
 | 
						|
}
 | 
						|
 | 
						|
static inline unsigned int generic_hweight16(unsigned int w)
 | 
						|
{
 | 
						|
	unsigned int res = (w & 0x5555) + ((w >> 1) & 0x5555);
 | 
						|
	res = (res & 0x3333) + ((res >> 2) & 0x3333);
 | 
						|
	res = (res & 0x0F0F) + ((res >> 4) & 0x0F0F);
 | 
						|
	return (res & 0x00FF) + ((res >> 8) & 0x00FF);
 | 
						|
}
 | 
						|
 | 
						|
static inline unsigned int generic_hweight8(unsigned int w)
 | 
						|
{
 | 
						|
	unsigned int res = (w & 0x55) + ((w >> 1) & 0x55);
 | 
						|
	res = (res & 0x33) + ((res >> 2) & 0x33);
 | 
						|
	return (res & 0x0F) + ((res >> 4) & 0x0F);
 | 
						|
}
 | 
						|
 | 
						|
#include <asm/bitops.h>
 | 
						|
 | 
						|
 | 
						|
#endif
 |