From 5f550c85c4d2308a15f49f4d2d975b0614867412 Mon Sep 17 00:00:00 2001 From: ticktock35 Date: Thu, 18 Dec 2008 12:47:41 -0500 Subject: using list_head to handle the list git-svn-id: http://opkg.googlecode.com/svn/trunk@185 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg/void_list.h') 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 -- cgit v0.9.1