set_u64.h (569B)
1 #ifndef SET_U64_H 2 #define SET_U64_H 3 4 #include <stdint.h> 5 #include <stdlib.h> 6 #include <sys/queue.h> 7 8 #define SET_U64_DEFAULT_SIZE (255) 9 10 typedef struct list_entry { 11 uint64_t value; 12 LIST_ENTRY(list_entry) entries; 13 } le_t; 14 15 typedef struct { 16 size_t nelts; 17 size_t nalloc; 18 19 LIST_HEAD(listhead, list_entry) * head; 20 } set_u64_t; 21 22 void set_u64_init_size(set_u64_t *s, const size_t size); 23 void set_u64_init(set_u64_t *s); 24 void set_u64_clear(set_u64_t *s); 25 size_t set_u64_lookup(le_t *r, set_u64_t *s, uint64_t v); 26 int set_u64_insert(set_u64_t *s, uint64_t v); 27 28 #endif