/* drwll.h */


#ifdef __cplusplus 
extern "C" {
#endif

extern void drw_dealloc_item(drwGP Pptr, int delnode, int deldata);
extern void drw_dealloc_hdr(drwGP Phdr, int delnode, int deldata);
extern void drw_init_hdr_ll(drwGP Phdr,
                            int listorder,
                            drwGP hval);
extern void drw_init_node2(drw_node2 *node);
extern void drw_init_ll(void);
extern drwGP drw_find_next_item_ll(drwGP Phdr, drwGP Pptrin);
extern drwGP drw_disconnect_item_ll(drwGP Phdr, drwGP Pptr, drwGP Ppriornode);
extern drwGP drw_new_ll(int listorder, drwGP hval);
extern drwGP drw_get_current_ll(drwGP Phdr);
extern void drw_make_current_ll(drw_ll_hdr *hdr,
                                drwGP Pthisnode);
extern void drw_set_current_ll(drwGP Phdr,
                               drwGP Pthisnode);
extern void drw_link_item_ll(drw_ll_hdr *hdr,
                             drw_node2 *ptr,
                             drwGP Pthisnode,
                             drwGP Pnextnode,
                             drwGP Ppriornode,
                             int makecurrent);
extern drw_ll_hdr *drw_get_hdr_ptr_ll(drwGP Phdr);
extern int drw_get_llorder(drwGP Phdr);
extern size_t drw_get_icount_ll(drwGP Phdr);
extern void drw_set_icount_ll(drwGP Phdr,
                              size_t newnumitems);
extern drwGP drw_get_item_val_ll(drwGP Pptr);
extern drwGP drw_find_prior_item_ll(drwGP Phdr, drwGP Pptrin);
extern drwGP drw_get_val_ll(drwGP Pptr, int ll_ptr_type);
extern drwGP drw_set_val_ll(drwGP Pptr, drwGP val, int ll_ptr_type);
extern drwGP drw_get_next_item_ll(drwGP Phdr, drwGP *Pptrin);
extern drwGP drw_get_prior_item_ll(drwGP Phdr, drwGP *Pptrin);
extern drwGP drw_find_item_ll(drwGP Phdr, int itemno, drwGP Pptr);
extern drwGP drw_get_item_ll(drwGP Phdr, int itemno, drwGP *Pptrin);
extern drwGP drw_locate_in_ll(drwGP Phdr, int itemno, int getdata);
extern drwGP drw_connect_item_ll(drwGP Phdr,
                                 drwGP Pnewnode,
                                 drwGP Pnextnode,
                                 drwGP Ppriornode,
                                 int makecurrent);
extern drwGP drw_new_node_ll(drw_ll_hdr *hdr,
                             drwGP Pntnode,
                             drwGP Pprnode,
                             drwGP val,
                             int makecurrent,
                             drw_mem_flags mf);
extern drwGP drw_addatstart_ll(drwGP Phdr,
                               drwGP val,
                               int makecurrent,
                               drw_mem_flags nodememtype);
extern drwGP drw_addatend_ll(drwGP Phdr,
                             drwGP val,
                             int makecurrent,
                             drw_mem_flags nodememtype);
extern void drw_connect_list(drwGP Phdr,
                             drwGP Pfirstnode,
                             drwGP Plastnode,
                             drwGP Pnextnode,
                             drwGP Ppriornode,
                             size_t icount);
extern drwGP drw_connect_item_at_ll(drwGP Phdr,
                                    int where_at,
                                    drwGP Pnewnode,
                                    drwGP Pcurrnode,
                                    int makecurrent);
extern drwGP drw_insert_ll(drwGP Phdr,
                           drwGP Pnextnode,
                           drwGP Ppriornode,
                           drwGP val,
                           int makecurrent,
                           drw_mem_flags nodememtype);
extern drwGP drw_update_ll(drwGP Phdr, int itemno, drwGP val);
extern drwGP drw_insert_at_ll(drwGP Phdr,
                              drwGP Pcurrnode,
                              int where_at,
                              drwGP val,
                              int makecurrent,
                              drw_mem_flags nodememtype);
extern void drw_move_item_ll(drwGP Pfromhdr,
                             drwGP Ptohdr,
                             drwGP Pptr,
                             drwGP Ptptr,
                             int moveto,
                             drwGP Ppr1node);
extern void drw_move_all_items_11(drwGP Pfromhdr,
                                  drwGP Ptohdr,
                                  drwGP Ptptr,
                                  int moveto,
                                  drwGP Ppr1node);
extern void drw_copy_list_ll(drwGP Pfhdr,
                             drwGP Pthdr,
                             drw_mem_flags nodememtype);
extern drwGP drw_del_item_ll(drwGP Phdr,
                             drwGP Pptr,
                             int delnode,
                             int deldata,
                             drwGP Ppriornode);
extern void drw_del_all_items(drw_ll_hdr *hdr,
                              int delnode,
                              int deldata,
                              int dirn);
extern void drw_del_all_items_ll(drwGP Phdr,
                                 int delnode,
                                 int deldata,
                                 int dirn);
extern void drw_del_list(drwGP Phdr, int delnode, int deldata, int dirn);

#ifdef __cplusplus
}
#endif

