PSXSDK
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Macros | Typedefs
bitstring.h File Reference
#include <stdlib.h>

Go to the source code of this file.

Macros

#define bitstr_size(nbits)   ( (nbits + 7) >> 3 )
 
#define bit_alloc(nbits)   calloc( bitstr_size(nbits) , 1)
 
#define bit_decl(name, nbits)   name[ bitstr_size(nbits) ]
 
#define bit_clear(name, bit)   name[ bit >> 3 ] &= ~(1 << (bit & 7) )
 
#define bit_set(name, bit)   name[ bit >> 3] |= 1 << (bit & 7)
 
#define bit_nclear(name, start, stop)
 
#define bit_nset(name, start, stop)
 
#define bit_test(name, bit)   ( name[bit >> 3] & (1 << (bit & 7) ) )
 
#define bit_ffs(name, nbits, value)
 
#define bit_ffc(name, nbits, value)
 

Typedefs

typedef unsigned char bitstr_t
 PSXSDK.
 

Macro Definition Documentation

#define bit_alloc (   nbits)    calloc( bitstr_size(nbits) , 1)
#define bit_clear (   name,
  bit 
)    name[ bit >> 3 ] &= ~(1 << (bit & 7) )
#define bit_decl (   name,
  nbits 
)    name[ bitstr_size(nbits) ]
#define bit_ffc (   name,
  nbits,
  value 
)
Value:
do{\
int _b__;\
for(_b__ = 0; _b__ < nbits; _b__++) \
{\
if( !bit_test(name, _b__) ) \
{\
*(value) = _b__; \
break; \
}\
}\
if( _b__ == nbits ) *(value) = -1;\
}while(0)
#define bit_ffs (   name,
  nbits,
  value 
)
Value:
do{\
int _b__;\
for(_b__ = 0; _b__ < nbits; _b__++) \
{\
printf("bb = %d\n", _b__);\
if( bit_test(name, _b__) ) \
{\
*(value) = _b__; \
break; \
}\
}\
if( _b__ == nbits ) *(value) = -1;\
}while(0)
#define bit_nclear (   name,
  start,
  stop 
)
Value:
do{ \
int _b__;\
for(_b__ = start; _b__ <= stop; _b__++) \
bit_clear(name, _b__);\
}while(0)
#define bit_nset (   name,
  start,
  stop 
)
Value:
do{ \
int _b__;\
for(_b__ = start; _b__ <= stop; _b__++) \
bit_set(name, _b__); \
}while(0)
#define bit_set (   name,
  bit 
)    name[ bit >> 3] |= 1 << (bit & 7)
#define bit_test (   name,
  bit 
)    ( name[bit >> 3] & (1 << (bit & 7) ) )
#define bitstr_size (   nbits)    ( (nbits + 7) >> 3 )

Typedef Documentation

typedef unsigned char bitstr_t

PSXSDK.

bitstring.h

Implementation of bitstring.h, a family of macros found in *BSD to manipulate bit strings