22 #include "libical_ical_export.h"
42 LIBICAL_ICAL_EXPORT pvl_elem pvl_new_element(
void *
d, pvl_elem
next, pvl_elem
prior);
44 LIBICAL_ICAL_EXPORT pvl_list pvl_newlist(
void);
46 LIBICAL_ICAL_EXPORT
void pvl_free(pvl_list);
49 LIBICAL_ICAL_EXPORT
void pvl_unshift(pvl_list l,
void *
d);
51 LIBICAL_ICAL_EXPORT
void *pvl_shift(pvl_list l);
53 LIBICAL_ICAL_EXPORT pvl_elem pvl_head(pvl_list);
56 LIBICAL_ICAL_EXPORT
void pvl_push(pvl_list l,
void *
d);
58 LIBICAL_ICAL_EXPORT
void *pvl_pop(pvl_list l);
60 LIBICAL_ICAL_EXPORT pvl_elem pvl_tail(pvl_list);
63 typedef int (*pvl_comparef) (
void *a,
void *b);
65 LIBICAL_ICAL_EXPORT
void pvl_insert_ordered(pvl_list l, pvl_comparef f,
void *
d);
67 LIBICAL_ICAL_EXPORT
void pvl_insert_after(pvl_list l, pvl_elem e,
void *
d);
69 LIBICAL_ICAL_EXPORT
void pvl_insert_before(pvl_list l, pvl_elem e,
void *
d);
72 LIBICAL_ICAL_EXPORT
void *pvl_remove(pvl_list, pvl_elem);
74 LIBICAL_ICAL_EXPORT
void pvl_clear(pvl_list);
76 LIBICAL_ICAL_EXPORT
int pvl_count(pvl_list);
79 LIBICAL_ICAL_EXPORT pvl_elem pvl_next(pvl_elem e);
81 LIBICAL_ICAL_EXPORT pvl_elem pvl_prior(pvl_elem e);
84 #if !defined(PVL_USE_MACROS)
85 LIBICAL_ICAL_EXPORT
void *pvl_data(pvl_elem);
87 #define pvl_data(x) x==0 ? 0 : ((struct pvl_elem_t *)x)->d;
91 typedef int (*pvl_findf) (
void *a,
void *b);
93 LIBICAL_ICAL_EXPORT pvl_elem pvl_find(pvl_list l, pvl_findf f,
void *v);
95 LIBICAL_ICAL_EXPORT pvl_elem pvl_find_next(pvl_list l, pvl_findf f,
void *v);
101 typedef void (*pvl_applyf) (
void *a,
void *b);
103 LIBICAL_ICAL_EXPORT
void pvl_apply(pvl_list l, pvl_applyf f,
void *v);
struct pvl_elem_t * next
Definition: pvl.h:37
struct pvl_elem_t * prior
Definition: pvl.h:38
void * d
Definition: pvl.h:36
int MAGIC
Definition: pvl.h:35