1 #ifndef __MONO_BITSET_H__
2 #define __MONO_BITSET_H__
6 typedef struct MonoBitSet MonoBitSet;
7 typedef void (*MonoBitSetFunc) (guint idx, gpointer data);
10 MONO_BITSET_DONT_FREE = 1
14 * Interface documentation can be found in the c-file.
15 * Interface documentation by Dennis Haney.
18 guint32 mono_bitset_alloc_size (guint32 max_size, guint32 flags);
20 MonoBitSet* mono_bitset_new (guint32 max_size, guint32 flags);
22 MonoBitSet* mono_bitset_mem_new (gpointer mem, guint32 max_size, guint32 flags);
24 void mono_bitset_free (MonoBitSet *set);
26 void mono_bitset_set (MonoBitSet *set, guint32 pos);
28 void mono_bitset_set_all (MonoBitSet *set);
30 int mono_bitset_test (const MonoBitSet *set, guint32 pos);
32 guint32 mono_bitset_test_bulk (const MonoBitSet *set, guint32 pos);
34 void mono_bitset_clear (MonoBitSet *set, guint32 pos);
36 void mono_bitset_clear_all (MonoBitSet *set);
38 void mono_bitset_invert (MonoBitSet *set);
40 guint32 mono_bitset_size (const MonoBitSet *set);
42 guint32 mono_bitset_count (const MonoBitSet *set);
44 void mono_bitset_low_high (const MonoBitSet *set, guint32 *low, guint32 *high);
46 int mono_bitset_find_start (const MonoBitSet *set);
48 int mono_bitset_find_first (const MonoBitSet *set, gint pos);
50 int mono_bitset_find_last (const MonoBitSet *set, gint pos);
52 MonoBitSet* mono_bitset_clone (const MonoBitSet *set, guint32 new_size);
54 void mono_bitset_copyto (const MonoBitSet *src, MonoBitSet *dest);
56 void mono_bitset_union (MonoBitSet *dest, const MonoBitSet *src);
58 void mono_bitset_intersection (MonoBitSet *dest, const MonoBitSet *src);
60 void mono_bitset_sub (MonoBitSet *dest, const MonoBitSet *src);
62 gboolean mono_bitset_equal (const MonoBitSet *src, const MonoBitSet *src1);
64 void mono_bitset_foreach (MonoBitSet *set, MonoBitSetFunc func, gpointer data);
66 #endif /* __MONO_BITSET_H__ */