File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / bird / lib / bitops.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Aug 22 12:33:54 2017 UTC (6 years, 10 months ago) by misho
Branches: bird, MAIN
CVS tags: v1_6_8p3, v1_6_3p0, v1_6_3, HEAD
bird 1.6.3

    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: static inline u8 u32_popcount(u32 v) { return __builtin_popcount(v); }
   29: 
   30: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>