universe@4: /* universe@4: * universe@4: */ universe@4: universe@4: #include universe@4: universe@4: #ifndef DLIST_H universe@4: #define DLIST_H universe@4: universe@4: #ifdef __cplusplus universe@4: extern "C" { universe@4: #endif universe@4: universe@4: typedef struct UcxDlist UcxDlist; universe@4: struct UcxDlist { universe@4: void *data; universe@4: UcxDlist *next; universe@4: UcxDlist *prev; universe@4: }; universe@4: universe@4: UcxDlist *ucx_dlist_append(UcxDlist *l, void *data); universe@4: UcxDlist *ucx_dlist_prepend(UcxDlist *l, void *data); universe@4: UcxDlist *ucx_dlist_concat(UcxDlist *l1, UcxDlist *l2); universe@4: UcxDlist *ucx_dlist_last(UcxDlist *l); universe@4: UcxDlist *ucx_dlist_get(UcxDlist *l, int index); universe@4: size_t *ucx_dlist_size(UcxDlist *l); universe@4: universe@4: /* dlist specific functions */ universe@4: UcxDlist *ucx_dlist_first(UcxDlist *l); universe@4: universe@4: #ifdef __cplusplus universe@4: } universe@4: #endif universe@4: universe@4: #endif /* DLIST_H */ universe@4: