00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _LIST_H_
00022 #define _LIST_H_
00023
00024 #ifdef ENABLE_MPATROL
00025 #include <mpatrol.h>
00026 #endif
00027
00044 #ifdef __cplusplus
00045 extern "C"
00046 {
00047 #endif
00048
00049 #ifndef DOXYGEN
00050
00054 typedef struct __node __node_t;
00055
00060 struct __node
00061 {
00062 void *next;
00063 void *element;
00064 };
00065 #endif
00066
00071 typedef struct osip_list osip_list_t;
00072
00077 struct osip_list
00078 {
00079
00080 int nb_elt;
00081 __node_t *node;
00083 };
00084
00090 int osip_list_init (osip_list_t * li);
00097 void osip_list_special_free (osip_list_t * li, void *(*free_func) (void *));
00102 void osip_list_ofchar_free (osip_list_t * li);
00107 int osip_list_size (const osip_list_t * li);
00113 int osip_list_eol (const osip_list_t * li, int pos);
00120 int osip_list_add (osip_list_t * li, void *element, int pos);
00126 void *osip_list_get (const osip_list_t * li, int pos);
00132 int osip_list_remove (osip_list_t * li, int pos);
00133
00134
00135 #ifdef __cplusplus
00136 }
00137 #endif
00138
00139
00142 #endif