14#include "libical_ical_export.h"
33LIBICAL_ICAL_EXPORT pvl_elem pvl_new_element(
void *
d, pvl_elem
next, pvl_elem
prior);
35LIBICAL_ICAL_EXPORT pvl_list pvl_newlist(
void);
37LIBICAL_ICAL_EXPORT
void pvl_free(pvl_list);
40LIBICAL_ICAL_EXPORT
void pvl_unshift(pvl_list l,
void *
d);
42LIBICAL_ICAL_EXPORT
void *pvl_shift(pvl_list l);
44LIBICAL_ICAL_EXPORT pvl_elem pvl_head(pvl_list);
47LIBICAL_ICAL_EXPORT
void pvl_push(pvl_list l,
void *
d);
49LIBICAL_ICAL_EXPORT
void *pvl_pop(pvl_list l);
51LIBICAL_ICAL_EXPORT pvl_elem pvl_tail(pvl_list);
54typedef int (*pvl_comparef)(
void *a,
void *b);
56LIBICAL_ICAL_EXPORT
void pvl_insert_ordered(pvl_list l, pvl_comparef f,
void *
d);
58LIBICAL_ICAL_EXPORT
void pvl_insert_after(pvl_list l, pvl_elem e,
void *
d);
60LIBICAL_ICAL_EXPORT
void pvl_insert_before(pvl_list l, pvl_elem e,
void *
d);
63LIBICAL_ICAL_EXPORT
void *pvl_remove(pvl_list, pvl_elem);
65LIBICAL_ICAL_EXPORT
void pvl_clear(pvl_list);
67LIBICAL_ICAL_EXPORT
int pvl_count(pvl_list);
70LIBICAL_ICAL_EXPORT pvl_elem pvl_next(pvl_elem e);
72LIBICAL_ICAL_EXPORT pvl_elem pvl_prior(pvl_elem e);
75#if !defined(PVL_USE_MACROS)
76LIBICAL_ICAL_EXPORT
void *pvl_data(pvl_elem);
78#define pvl_data(x) x == 0 ? 0 : ((struct pvl_elem_t *)x)->d;
82typedef int (*pvl_findf)(
void *a,
void *b);
84LIBICAL_ICAL_EXPORT pvl_elem pvl_find(pvl_list l, pvl_findf f,
void *v);
86LIBICAL_ICAL_EXPORT pvl_elem pvl_find_next(pvl_list l, pvl_findf f,
void *v);
92typedef void (*pvl_applyf)(
void *a,
void *b);
94LIBICAL_ICAL_EXPORT
void pvl_apply(pvl_list l, pvl_applyf f,
void *v);
struct pvl_elem_t * prior
Definition pvl.h:29
int MAGIC
Definition pvl.h:26
struct pvl_elem_t * next
Definition pvl.h:28
void * d
Definition pvl.h:27