iofbirddaemon / lib / bitops.h @ ae80a2de
History  View  Annotate  Download (614 Bytes)
1 
/*


2 
* BIRD Library  Generic Bit Operations

3 
*

4 
* (c) 1998 Martin Mares <mj@ucw.cz>

5 
*

6 
* Can be freely distributed and used under the terms of the GNU GPL.

7 
*/

8  
9 
#ifndef _BIRD_BITOPTS_H_

10 
#define _BIRD_BITOPTS_H_

11  
12 
/*

13 
* Bit mask operations:

14 
*

15 
* u32_mkmask Make bit mask consisting of <n> consecutive ones

16 
* from the left and the rest filled with zeroes.

17 
* E.g., u32_mkmask(5) = 0xf8000000.

18 
* u32_masklen Inverse operation to u32_mkmask, 1 if not a bitmask.

19 
*/

20  
21 
u32 u32_mkmask(uint n); 
22 
int u32_masklen(u32 x);

23  
24 
u32 u32_log2(u32 v); 
25  
26 
static inline u32 u32_hash(u32 v) { return v * 2902958171u; } 
27  
28 
#endif

29 