typedef ebitset_elt *ebitset_elts;
-/* Head of ebitset linked list. */
-typedef struct ebitset_struct
-{
- bitset_windex size; /* Number of elements. */
- ebitset_elts *elts; /* Expanding array of pointers to elements. */
-}
-*ebitset;
-
-
-typedef void(*PFV)();
-
/* Number of elements to initially allocate. */
#define EBITSET_GROW_SIZE 4
#endif
-struct bitset_struct
-{
- struct bbitset_struct b;
- struct ebitset_struct e;
-};
-
enum ebitset_find_mode
{ EBITSET_FIND, EBITSET_CREATE, EBITSET_SUBST };
+typedef int enum_ebitset_find_mode;
static ebitset_elt ebitset_zero_elts[1]; /* Elements of all zero bits. */
static void ebitset_elt_remove PARAMS ((bitset, bitset_windex));
static void ebitset_elt_free PARAMS ((ebitset_elt *));
static ebitset_elt *ebitset_elt_find PARAMS ((bitset, bitset_windex,
- enum ebitset_find_mode));
+ enum_ebitset_find_mode));
static ebitset_elt *ebitset_elt_last PARAMS ((bitset));
static int ebitset_elt_zero_p PARAMS ((ebitset_elt *));
static int ebitset_equal_p PARAMS ((bitset, bitset));
static void ebitset_not PARAMS ((bitset, bitset));
static int ebitset_subset_p PARAMS ((bitset, bitset));
-static int ebitset_op3_cmp PARAMS ((bitset, bitset, bitset, enum bitset_ops));
+static int ebitset_op3_cmp PARAMS ((bitset, bitset, bitset, enum_bitset_ops));
+static void ebitset_and PARAMS ((bitset, bitset, bitset));
static int ebitset_and_cmp PARAMS ((bitset, bitset, bitset));
+static void ebitset_andn PARAMS ((bitset, bitset, bitset));
static int ebitset_andn_cmp PARAMS ((bitset, bitset, bitset));
+static void ebitset_or PARAMS ((bitset, bitset, bitset));
static int ebitset_or_cmp PARAMS ((bitset, bitset, bitset));
+static void ebitset_xor PARAMS ((bitset, bitset, bitset));
static int ebitset_xor_cmp PARAMS ((bitset, bitset, bitset));
+static void ebitset_copy PARAMS ((bitset, bitset));
static bitset_bindex ebitset_list PARAMS ((bitset, bitset_bindex *,
bitset_bindex, bitset_bindex *));
static bitset_bindex ebitset_list_reverse
PARAMS ((bitset, bitset_bindex *, bitset_bindex, bitset_bindex *));
+static void ebitset_ones PARAMS ((bitset));
+static int ebitset_empty_p PARAMS ((bitset));
static void ebitset_free PARAMS ((bitset));
#define EBITSET_ELTS(BSET) ((BSET)->e.elts)
ebitset_elt_find (bset, windex, mode)
bitset bset;
bitset_windex windex;
- enum ebitset_find_mode mode;
+ enum_ebitset_find_mode mode;
{
ebitset_elt *elt;
bitset_windex size;
bitset dst;
bitset src1;
bitset src2;
- enum bitset_ops op;
+ enum_bitset_ops op;
{
bitset_windex ssize1;
bitset_windex ssize2;
}
+static void
+ebitset_and (dst, src1, src2)
+ bitset dst;
+ bitset src1;
+ bitset src2;
+{
+ ebitset_and_cmp (dst, src1, src2);
+}
+
+
static int
ebitset_and_cmp (dst, src1, src2)
bitset dst;
}
+static void
+ebitset_andn (dst, src1, src2)
+ bitset dst;
+ bitset src1;
+ bitset src2;
+{
+ ebitset_andn_cmp (dst, src1, src2);
+}
+
+
static int
ebitset_andn_cmp (dst, src1, src2)
bitset dst;
}
+static void
+ebitset_or (dst, src1, src2)
+ bitset dst;
+ bitset src1;
+ bitset src2;
+{
+ ebitset_or_cmp (dst, src1, src2);
+}
+
+
static int
ebitset_or_cmp (dst, src1, src2)
bitset dst;
}
+static void
+ebitset_xor (dst, src1, src2)
+ bitset dst;
+ bitset src1;
+ bitset src2;
+{
+ ebitset_xor_cmp (dst, src1, src2);
+}
+
+
static int
ebitset_xor_cmp (dst, src1, src2)
bitset dst;
ebitset_equal_p,
ebitset_not,
ebitset_subset_p,
- (PFV) ebitset_and_cmp,
+ ebitset_and,
ebitset_and_cmp,
- (PFV) ebitset_andn_cmp,
+ ebitset_andn,
ebitset_andn_cmp,
- (PFV) ebitset_or_cmp,
+ ebitset_or,
ebitset_or_cmp,
- (PFV) ebitset_xor_cmp,
+ ebitset_xor,
ebitset_xor_cmp,
- (PFV) bitset_and_or_cmp_,
+ bitset_and_or_,
bitset_and_or_cmp_,
- (PFV) bitset_andn_or_cmp_,
+ bitset_andn_or_,
bitset_andn_or_cmp_,
- (PFV) bitset_or_and_cmp_,
+ bitset_or_and_,
bitset_or_and_cmp_,
ebitset_list,
ebitset_list_reverse,
ebitset_bytes (n_bits)
bitset_bindex n_bits ATTRIBUTE_UNUSED;
{
- return sizeof (struct bitset_struct);
+ return sizeof (struct ebitset_struct);
}