Annotation of 43BSDReno/share/man/man3/bitstring.3, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1989 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" This code is derived from software contributed to Berkeley by
                      5: .\" Paul Vixie.
                      6: .\"
                      7: .\" Redistribution and use in source and binary forms are permitted provided
                      8: .\" that: (1) source distributions retain this entire copyright notice and
                      9: .\" comment, and (2) distributions including binaries display the following
                     10: .\" acknowledgement:  ``This product includes software developed by the
                     11: .\" University of California, Berkeley and its contributors'' in the
                     12: .\" documentation or other materials provided with the distribution and in
                     13: .\" all advertising materials mentioning features or use of this software.
                     14: .\" Neither the name of the University nor the names of its contributors may
                     15: .\" be used to endorse or promote products derived from this software without
                     16: .\" specific prior written permission.
                     17: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     18: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     19: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     20: .\"
                     21: .\"    @(#)bitstring.3 5.3 (Berkeley) 6/23/90
                     22: .\"
                     23: .TH BITSTRING 3  "June 23, 1990"
                     24: .UC 4
                     25: .SH NAME
                     26: bit_alloc, bit_clear, bit_decl, bit_ffs, bit_nclear, bit_nset,
                     27: bit_set, bitstr_size, bit_test \- bit-string manipulation macros
                     28: .SH SYNOPSIS
                     29: .ft B
                     30: .nf
                     31: #include <bitstring.h>
                     32: 
                     33: name = bit_alloc(nbits)
                     34: bitstr_t *name;
                     35: int nbits;
                     36: 
                     37: bit_decl(name, nbits)
                     38: bitstr_t name;
                     39: int nbits;
                     40: 
                     41: bit_clear(name, bit)
                     42: bitstr_t name;
                     43: int bit;
                     44: 
                     45: bit_ffc(name, nbits, value)
                     46: bitstr_t name;
                     47: int nbits, *value;
                     48: 
                     49: bit_ffs(name, nbits, value)
                     50: bitstr_t name;
                     51: int nbits, *value;
                     52: 
                     53: bit_nclear(name, start, stop)
                     54: bitstr_t name;
                     55: int start, stop;
                     56: 
                     57: bit_nset(name, start, stop)
                     58: bitstr_t name;
                     59: int start, stop;
                     60: 
                     61: bit_set(name, bit)
                     62: bitstr_t name;
                     63: int bit;
                     64: 
                     65: bitstr_size(nbits)
                     66: int nbits;
                     67: 
                     68: bit_test(name, bit)
                     69: bitstr_t name;
                     70: int bit;
                     71: .fi
                     72: .ft R
                     73: .SH DESCRIPTION
                     74: These macros operate on strings of bits.
                     75: .PP
                     76: .I Bit_alloc
                     77: returns a pointer of type
                     78: .I bitstr_t\ *
                     79: to sufficient space to store
                     80: .I nbits
                     81: bits, or NULL if no space is available.
                     82: .PP
                     83: .I Bit_decl
                     84: is a macro for allocating sufficient space to store
                     85: .I nbits
                     86: bits on the stack.
                     87: .PP
                     88: .I Bitstr_size
                     89: returns the number of elements of type
                     90: .I bitstr_t
                     91: necessary to store
                     92: .I nbits
                     93: bits.
                     94: This is useful for copying bit strings.
                     95: .PP
                     96: .I Bit_clear
                     97: and
                     98: .I bit_set
                     99: clear or set the zero-based numbered bit
                    100: .IR bit ,
                    101: in the bit string
                    102: .IR name .
                    103: .PP
                    104: .I Bit_nset
                    105: and
                    106: .I bit_nclear
                    107: set or clear the zero-based numbered bits from
                    108: .I start
                    109: to
                    110: .I stop
                    111: in the bit string
                    112: .IR name .
                    113: .PP
                    114: .I Bit_test
                    115: evaluates to zero if the zero-based numbered bit
                    116: .I bit
                    117: of bit string
                    118: .I name
                    119: is set, and non-zero otherwise.
                    120: .PP
                    121: .I Bit_ffs
                    122: stores in the location referenced by
                    123: .I value
                    124: the zero-based number of the first bit set in the array of
                    125: .I nbits
                    126: bits referenced by
                    127: .IR name .
                    128: If no bits are set, the location referenced by
                    129: .I value
                    130: is set to -1.
                    131: .PP
                    132: .I Bit_ffc
                    133: stores in the location referenced by
                    134: .I value
                    135: the zero-based number of the first bit not set in the array of
                    136: .I nbits
                    137: bits referenced by
                    138: .IR name .
                    139: If all bits are set, the location referenced by
                    140: .I value
                    141: is set to -1.
                    142: .PP
                    143: The arguments to these macros are evaluated only once and may safely
                    144: have side effects.
                    145: .SH EXAMPLE
                    146: .nf
                    147: .in +5
                    148: #include <limits.h>
                    149: #include <bitstring.h>
                    150: 
                    151: ...
                    152: #define        LPR_BUSY_BIT            0
                    153: #define        LPR_FORMAT_BIT          1
                    154: #define        LPR_DOWNLOAD_BIT        2
                    155: ...
                    156: #define        LPR_AVAILABLE_BIT       9
                    157: #define        LPR_MAX_BITS            10
                    158: 
                    159: make_lpr_available()
                    160: {
                    161:        bitstr_t bit_decl(bitlist, LPR_MAX_BITS);
                    162:        ...
                    163:        bit_nclear(bitlist, 0, LPR_MAX_BITS - 1);
                    164:        ...
                    165:        if (!bit_test(bitlist, LPR_BUSY_BIT)) {
                    166:                bit_clear(bitlist, LPR_FORMAT_BIT);
                    167:                bit_clear(bitlist, LPR_DOWNLOAD_BIT);
                    168:                bit_set(bitlist, LPR_AVAILABLE_BIT);
                    169:        }
                    170: }
                    171: .fi
                    172: .SH "SEE ALSO"
                    173: malloc(3)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.