#ifndef _UCW_SLISTS_H
#define _UCW_SLISTS_H
+#ifdef CONFIG_UCW_CLEAN_ABI
+#define slist_insert_before ucw_slist_insert_before
+#define slist_prev ucw_slist_prev
+#define slist_remove ucw_slist_remove
+#endif
+
/**
* Common header for list nodes.
**/
/**
* Remove the first node in @l. The list can be empty.
**/
-static inline void slist_remove_head(slist *l)
+static inline void *slist_remove_head(slist *l)
{
- slist_remove_after(l, &l->head);
+ snode *n = slist_head(l);
+ if (n)
+ slist_remove_after(l, &l->head);
+ return n;
}
/* Loops */