+XBT_PUBLIC(xbt_fifo_t) xbt_fifo_new(void);
+XBT_PUBLIC(void) xbt_fifo_free(xbt_fifo_t l);
+XBT_PUBLIC(void) xbt_fifo_reset(xbt_fifo_t l);
+/** @} */
+
+/** @defgroup XBT_fifo_perl Fifo perl-like functions
+ * @ingroup XBT_fifo
+ *
+ * @{
+ */
+XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_push(xbt_fifo_t l, void *t);
+XBT_PUBLIC(void *) xbt_fifo_pop(xbt_fifo_t l);
+XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_unshift(xbt_fifo_t l, void *t);
+XBT_PUBLIC(void *) xbt_fifo_shift(xbt_fifo_t l);
+XBT_PUBLIC(int) xbt_fifo_size(xbt_fifo_t l);
+XBT_PUBLIC(int) xbt_fifo_is_in(xbt_fifo_t l, void *t);
+XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_search_item(xbt_fifo_t f, int_f_pvoid_pvoid_t cmp_fun, void *closure);
+/** @} */
+
+/** @defgroup XBT_fifo_direct Direct access to fifo elements
+ * @ingroup XBT_fifo
+ *
+ * @{
+ */
+
+XBT_PUBLIC(xbt_fifo_item_t) xbt_fifo_new_item(void);
+XBT_PUBLIC(void) xbt_fifo_set_item_content(xbt_fifo_item_t i, void *v);
+XBT_PUBLIC(void *) xbt_fifo_get_item_content(xbt_fifo_item_t i);
+XBT_PUBLIC(void) xbt_fifo_free_item(xbt_fifo_item_t i);