19 |
#ifndef _EBITSET_H |
#ifndef _EBITSET_H |
20 |
#define _EBITSET_H |
#define _EBITSET_H |
21 |
|
|
22 |
#include "bitset-int.h" |
#include "bbitset.h" |
|
|
|
|
/* Number of words to use for each element. */ |
|
|
#ifndef EBITSET_ELT_WORDS |
|
|
#define EBITSET_ELT_WORDS 2 |
|
|
#endif |
|
|
|
|
|
/* Number of bits stored in each element. */ |
|
|
#define EBITSET_ELT_BITS \ |
|
|
((unsigned) (EBITSET_ELT_WORDS * BITSET_WORD_BITS)) |
|
|
|
|
|
/* Ebitset element. We use an array of bits. */ |
|
|
typedef struct ebitset_elt_struct |
|
|
{ |
|
|
union |
|
|
{ |
|
|
bitset_word words[EBITSET_ELT_WORDS]; /* Bits that are set. */ |
|
|
struct ebitset_elt_struct *next; |
|
|
} u; |
|
|
} ebitset_elt; |
|
|
|
|
|
|
|
|
typedef ebitset_elt *ebitset_elts; |
|
|
|
|
|
/* Head of ebitset linked list. */ |
|
|
typedef struct ebitset_struct |
|
|
{ |
|
|
unsigned int size; /* Number of elements. */ |
|
|
ebitset_elts *elts; /* Expanding array of pointers to elements. */ |
|
|
} *ebitset; |
|
|
|
|
23 |
|
|
24 |
extern int ebitset_bytes PARAMS ((bitset_bindex)); |
extern int ebitset_bytes PARAMS ((bitset_bindex)); |
25 |
|
|
26 |
|
extern bitset ebitset_init PARAMS ((bitset, bitset_bindex)); |
27 |
|
|
28 |
extern void ebitset_release_memory PARAMS ((void)); |
extern void ebitset_release_memory PARAMS ((void)); |
29 |
|
|
30 |
#endif |
#endif |