+inline void dlist::set_prev(void *item, void *prev)
+{
+ ((dlink *)(((char *)item)+loffset))->prev = prev;
+}
+
+inline void dlist::set_next(void *item, void *next)
+{
+ ((dlink *)(((char *)item)+loffset))->next = next;
+}
+
+inline void *dlist::get_prev(void *item)
+{
+ return ((dlink *)(((char *)item)+loffset))->prev;
+}
+
+inline void *dlist::get_next(void *item)
+{
+ return ((dlink *)(((char *)item)+loffset))->next;
+}
+
+
+inline dlink *dlist::get_link(void *item)
+{
+ return (dlink *)(((char *)item)+loffset);
+}
+
+
+
+inline bool dlist::empty() const