Types:
typedef struct x1f4_dllist_type {
unsigned item, node;
void *trans;
} x1f4_dllist_type;
See Fixed Size Data Queue Types.
The one extra feature in the struct x1f4_dllist_type is the node
unsigned field, indicating the (in bytes expressed) size of one unrolled linked
list node. It must be large enough to accomodate at least one data item (of
which size is indicated for the libx1f4l2 routines by the item
field) and the unrolled list support apparatus (couple of pointers and an extra
couple of integral fields).
General library:
See Fixed Size Data Queue Library.
call data structure size retriever:
int x1f4_call_dllist(unsigned *);
ever record retriever:
int x1f4_ever_dllist(void *, void **);
fast double ended queue constructor routine:
int x1f4_fast_dllist(void *, unsigned, struct x1f4_dllist_type *);
fini double ended queue regular destructor routine:
int x1f4_fini_dllist(void **);
flat double ended queue destructor routine:
int x1f4_flat_dllist(void *);
head plain data insertion routine:
int x1f4_head_dllist(void *, void **);
high data purge routine:
int x1f4_high_dllist(void *);
init double ended queue regular constructor routine:
int x1f4_init_dllist(void **, unsigned, struct x1f4_dllist_type *);
lead record retriever:
int x1f4_lead_dllist(void *, void **);
lime data traversal routine:
int x1f4_lime_dllist(void *, void *, int (*)(void *, void *));
line data copy routine:
int x1f4_line_dllist
(void *, void *, int (*)(void *, void *, const void *),
int (*)(void *, void *), void *);
mind plain data deletion routine:
int x1f4_mind_dllist(void *);
reel queue rotation routine:
int x1f4_reel_dllist(void *);
roll queue rotation routine:
int x1f4_roll_dllist(void *);
size size retriever:
int x1f4_size_dllist(void *, unsigned *);
slip plain data deletion routine:
int x1f4_slip_dllist(void *);
swap data swap routine:
int x1f4_swap_dllist(void *, void *);
tail plain data insertion routine:
int x1f4_tail_dllist(void *, void **);
text plain copy routine:
int x1f4_text_dllist
(void **, void *, int (*)(void *, void *, const void *),
int (*)(void *, void *), void *);