types.h
author Dan Winship <danw@gnome.org>
Wed Mar 05 19:02:29 2008 -0500 (2008-03-05)
changeset 147 c3eab84160e5
parent 124 feef7736a439
child 195 7a53d1711083
permissions -rw-r--r--
keep track of both the install and the remove on an update

razor_transaction_satisfy_removes() is now quite broken, as it thinks
it should remove a package if a package it depends on was updated.
     1 #ifndef _RAZOR_TYPES_H_
     2 #define _RAZOR_TYPES_H_
     3 
     4 #include <stdint.h>
     5 
     6 struct array {
     7 	void *data;
     8 	int size, alloc;
     9 };
    10 
    11 void array_init(struct array *array);
    12 void array_release(struct array *array);
    13 void *array_add(struct array *array, int size);
    14 
    15 
    16 struct list_head {
    17 	uint list_ptr : 24;
    18 	uint flags    : 8;
    19 };
    20 
    21 struct list {
    22 	uint data  : 24;
    23 	uint flags : 8;
    24 };
    25 
    26 void list_set_empty(struct list_head *head);
    27 void list_set_ptr(struct list_head *head, uint32_t ptr);
    28 void list_set_array(struct list_head *head, struct array *pool, struct array *items, int force_indirect);
    29 
    30 struct list *list_first(struct list_head *head, struct array *pool);
    31 struct list *list_next(struct list *list);
    32 
    33 void list_remap_pool(struct array *pool, uint32_t *map);
    34 void list_remap_head(struct list_head *list, uint32_t *map);
    35 
    36 
    37 struct hashtable {
    38 	struct array buckets;
    39 	struct array *pool;
    40 };
    41 
    42 void hashtable_init(struct hashtable *table, struct array *pool);
    43 void hashtable_release(struct hashtable *table);
    44 uint32_t hashtable_insert(struct hashtable *table, const char *key);
    45 uint32_t hashtable_lookup(struct hashtable *table, const char *key);
    46 uint32_t hashtable_tokenize(struct hashtable *table, const char *string);
    47 
    48 
    49 struct bitarray {
    50 	uint32_t *bits;
    51 };
    52 
    53 void bitarray_init(struct bitarray *bitarray, int size, int intial_value);
    54 void bitarray_set(struct bitarray *bitarray, int bit, int value);
    55 int bitarray_get(struct bitarray *bitarray, int bit);
    56 
    57 
    58 #endif /* _RAZOR_TYPES_H_ */