SYNOPSIS

       #include <bitstring.h>

       name = bit_alloc(nbits)
       bitstr_t *name;
       int nbits;

       bit_decl(name, nbits)
       bitstr_t name;
       int nbits;

       bit_clear(name, bit)
       bitstr_t name;
       int bit;

       bit_ffc(name, nbits, value)
       bitstr_t name;
       int nbits, *value;

       bit_ffs(name, nbits, value)
       bitstr_t name;
       int nbits, *value;

       bit_nclear(name, start, stop)
       bitstr_t name;
       int start, stop;

       bit_nset(name, start, stop)
       bitstr_t name;
       int start, stop;

       bit_set(name, bit)
       bitstr_t name;
       int bit;

       bitstr_size(nbits)
       int nbits;

       bit_test(name, bit)
       bitstr_t name;
       int bit;


DESCRIPTION

       These macros operate on strings of bits.

       Bit_alloc returns a pointer of type bitstr_t * to sufficient  space  to
       store nbits bits, or NULL if no space is available.

       Bit_decl is a macro for allocating sufficient space to store nbits bits
       on the stack.

       is set to -1.

       Bit_ffc sets *value to the zero-based number of the first bit  not  set
       in  the  array  of nbits bits referenced by name.  If all bits are set,
       value is set to -1.


EXAMPLE

            #include <limits.h>
            #include <bitstring.h>

            #define   LPR_BUSY_BIT        0
            #define   LPR_FORMAT_BIT      1
            #define   LPR_DOWNLOAD_BIT    2
            #define   LPR_AVAILABLE_BIT   9
            #define   LPR_MAX_BITS        10

            make_lpr_available()
            {
                 bitstr_t bit_decl(bitlist, LPR_MAX_BITS);
                 ...
                 bit_nclear(bitlist, 0, LPR_MAX_BITS - 1);
                 ...
                 if (!bit_test(bitlist, LPR_BUSY_BIT)) {
                      bit_clear(bitlist, LPR_FORMAT_BIT);
                      bit_clear(bitlist, LPR_DOWNLOAD_BIT);
                      bit_set(bitlist, LPR_AVAILABLE_BIT);
                 }
            }


SEE ALSO

       malloc(3)



4th Berkeley Distribution      December 13, 1989                  BITSTRING(3)

Man(1) output converted with man2html