bit_scan.h File Reference

#include <limits.h>

Include dependency graph for bit_scan.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define bit_scan_forward(l)   bit_scan_forward32((l))
#define bit_scan_forward32(i)   bit_scan_forward_debruijn32(i)
#define bit_scan_forward64(i)   bit_scan_forward_debruijn64(i)
#define bit_scan_forward_debruijn32(x)   ( _debruijn_hash32[DEBRUIJN_HASH32((x) & (-(x)))])
#define bit_scan_forward_debruijn64(x)   ( _debruijn_hash64[DEBRUIJN_HASH64((x) & (-(x)))])
#define bit_scan_reverse(l)   bit_scan_reverse32((l))
#define bit_scan_reverse32(i)   bit_scan_reverse_br32(i)
#define bit_scan_reverse64(i)   bit_scan_reverse_br64(i)
#define DEBRUIJN_CT32   0x04653ADFU
#define DEBRUIJN_CT64   0x0218A392CD3D5DBFULL
#define DEBRUIJN_HASH32(x)   (((x)*DEBRUIJN_CT32)>>(sizeof(x)*8-5))
#define DEBRUIJN_HASH64(x)   (((x)*DEBRUIJN_CT64)>>(sizeof(x)*8-6))

Functions

static int bit_scan_forward_br32 (unsigned int v)
static int bit_scan_forward_br64 (unsigned long long v)
static int bit_scan_reverse_br32 (unsigned int v)
static int bit_scan_reverse_br64 (unsigned long long v)
static int bit_scan_reverse_debruijn32 (unsigned int v)
static int bit_scan_reverse_debruijn64 (unsigned long long v)

Variables

unsigned char _debruijn_hash32 [32]
unsigned char _debruijn_hash64 [64]


Define Documentation

#define bit_scan_forward (  )     bit_scan_forward32((l))

Definition at line 139 of file bit_scan.h.

#define bit_scan_forward32 (  )     bit_scan_forward_debruijn32(i)

Definition at line 122 of file bit_scan.h.

#define bit_scan_forward64 (  )     bit_scan_forward_debruijn64(i)

Definition at line 123 of file bit_scan.h.

#define bit_scan_forward_debruijn32 (  )     ( _debruijn_hash32[DEBRUIJN_HASH32((x) & (-(x)))])

Definition at line 170 of file bit_scan.h.

#define bit_scan_forward_debruijn64 (  )     ( _debruijn_hash64[DEBRUIJN_HASH64((x) & (-(x)))])

Definition at line 173 of file bit_scan.h.

#define bit_scan_reverse (  )     bit_scan_reverse32((l))

Definition at line 140 of file bit_scan.h.

#define bit_scan_reverse32 (  )     bit_scan_reverse_br32(i)

Definition at line 124 of file bit_scan.h.

#define bit_scan_reverse64 (  )     bit_scan_reverse_br64(i)

Definition at line 125 of file bit_scan.h.

#define DEBRUIJN_CT32   0x04653ADFU

Definition at line 161 of file bit_scan.h.

#define DEBRUIJN_CT64   0x0218A392CD3D5DBFULL

Definition at line 162 of file bit_scan.h.

#define DEBRUIJN_HASH32 (  )     (((x)*DEBRUIJN_CT32)>>(sizeof(x)*8-5))

Definition at line 164 of file bit_scan.h.

Referenced by bit_scan_reverse_debruijn32().

#define DEBRUIJN_HASH64 (  )     (((x)*DEBRUIJN_CT64)>>(sizeof(x)*8-6))

Definition at line 167 of file bit_scan.h.

Referenced by bit_scan_reverse_debruijn64().


Function Documentation

static int bit_scan_forward_br32 ( unsigned int  v  )  [inline, static]

Definition at line 247 of file bit_scan.h.

static int bit_scan_forward_br64 ( unsigned long long  v  )  [inline, static]

Definition at line 301 of file bit_scan.h.

static int bit_scan_reverse_br32 ( unsigned int  v  )  [inline, static]

Definition at line 275 of file bit_scan.h.

static int bit_scan_reverse_br64 ( unsigned long long  v  )  [inline, static]

Definition at line 333 of file bit_scan.h.

static int bit_scan_reverse_debruijn32 ( unsigned int  v  )  [inline, static]

Definition at line 177 of file bit_scan.h.

References _debruijn_hash32, and DEBRUIJN_HASH32.

static int bit_scan_reverse_debruijn64 ( unsigned long long  v  )  [inline, static]

Definition at line 189 of file bit_scan.h.

References _debruijn_hash64, and DEBRUIJN_HASH64.


Variable Documentation

unsigned char _debruijn_hash32[32]

Definition at line 29 of file bit_scan.c.

Referenced by bit_scan_reverse_debruijn32().

unsigned char _debruijn_hash64[64]

Definition at line 32 of file bit_scan.c.

Referenced by bit_scan_reverse_debruijn64().


Generated on Thu May 17 12:00:36 2012 for Kamailio - The Open Source SIP Server by  doxygen 1.5.6