1*3ff40c12SJohn Marino /* 2*3ff40c12SJohn Marino * Bitfield 3*3ff40c12SJohn Marino * Copyright (c) 2013, Jouni Malinen <j@w1.fi> 4*3ff40c12SJohn Marino * 5*3ff40c12SJohn Marino * This software may be distributed under the terms of the BSD license. 6*3ff40c12SJohn Marino * See README for more details. 7*3ff40c12SJohn Marino */ 8*3ff40c12SJohn Marino 9*3ff40c12SJohn Marino #ifndef BITFIELD_H 10*3ff40c12SJohn Marino #define BITFIELD_H 11*3ff40c12SJohn Marino 12*3ff40c12SJohn Marino struct bitfield; 13*3ff40c12SJohn Marino 14*3ff40c12SJohn Marino struct bitfield * bitfield_alloc(size_t max_bits); 15*3ff40c12SJohn Marino void bitfield_free(struct bitfield *bf); 16*3ff40c12SJohn Marino void bitfield_set(struct bitfield *bf, size_t bit); 17*3ff40c12SJohn Marino void bitfield_clear(struct bitfield *bf, size_t bit); 18*3ff40c12SJohn Marino int bitfield_is_set(struct bitfield *bf, size_t bit); 19*3ff40c12SJohn Marino int bitfield_get_first_zero(struct bitfield *bf); 20*3ff40c12SJohn Marino 21*3ff40c12SJohn Marino #endif /* BITFIELD_H */ 22