diff options
author | ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2008-12-18 12:47:41 (EST) |
---|---|---|
committer | ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358> | 2008-12-18 12:47:41 (EST) |
commit | 5f550c85c4d2308a15f49f4d2d975b0614867412 (patch) | |
tree | d9773c75c5668858ef7bea507b465ca352624391 /libopkg/void_list.h | |
parent | 2cec79cb14f343d822bb8098b022fe4344261c7f (diff) |
using list_head to handle the list
git-svn-id: http://opkg.googlecode.com/svn/trunk@185 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
Diffstat (limited to 'libopkg/void_list.h')
-rw-r--r-- | libopkg/void_list.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/libopkg/void_list.h b/libopkg/void_list.h index b2a0f2c..ca380b8 100644 --- a/libopkg/void_list.h +++ b/libopkg/void_list.h @@ -18,27 +18,24 @@ #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); @@ -56,4 +53,12 @@ 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 |