-/* void_list.h - the itsy package management system
+/* void_list.h - the opkg package management system
Carl D. Worth
#ifndef VOID_LIST_H
#define VOID_LIST_H
+#include "list.h"
+
typedef struct void_list_elt void_list_elt_t;
struct void_list_elt
{
- void_list_elt_t *next;
+ struct list_head node;
void *data;
};
typedef struct void_list void_list_t;
struct void_list
{
- void_list_elt_t pre_head;
- void_list_elt_t *head;
- void_list_elt_t *tail;
+ struct list_head head;
};
static inline int void_list_empty(void_list_t *list)
{
- if (list->head == NULL)
- return 1;
- else
- return 0;
+ return list_empty(&list->head);
}
-int void_list_elt_init(void_list_elt_t *elt, void *data);
+void void_list_elt_init(void_list_elt_t *elt, void *data);
void void_list_elt_deinit(void_list_elt_t *elt);
-int void_list_init(void_list_t *list);
+void void_list_init(void_list_t *list);
void void_list_deinit(void_list_t *list);
-int void_list_append(void_list_t *list, void *data);
-int void_list_push(void_list_t *list, void *data);
+void void_list_append(void_list_t *list, void *data);
+void void_list_push(void_list_t *list, void *data);
void_list_elt_t *void_list_pop(void_list_t *list);
void *void_list_remove(void_list_t *list, void_list_elt_t **iter);
typedef int (*void_list_cmp_t)(const void *, const void *);
void *void_list_remove_elt(void_list_t *list, const void *target_data, void_list_cmp_t cmp);
+void_list_elt_t *void_list_first(void_list_t *list);
+void_list_elt_t *void_list_prev(void_list_t *list, void_list_elt_t *node);
+void_list_elt_t *void_list_next(void_list_t *list, void_list_elt_t *node);
+void_list_elt_t *void_list_last(void_list_t *list);
+
+void void_list_purge(void_list_t *list);
+
+
#endif