Provided by: libwayland-doc_1.12.0-1~ubuntu16.04.3_all bug

NAME

       wl_list - doubly-linked list

SYNOPSIS

       #include <wayland-util.h>

   Data Fields
       struct wl_list * prev
       struct wl_list * next

Detailed Description

       doubly-linked list

       The list head is of 'struct wl_list' type, and must be initialized using wl_list_init().
       All entries in the list must be of the same type. The item type must have a 'struct
       wl_list' member. This member will be initialized by wl_list_insert(). There is no need to
       call wl_list_init() on the individual item. To query if the list is empty in O(1), use
       wl_list_empty().

       Let's call the list reference 'struct wl_list foo_list', the item type as 'item_t', and
       the item member as 'struct wl_list link'.

       The following code will initialize a list:

       struct wl_list foo_list;

       struct item_t {
               int foo;
               struct wl_list link;
       };
       struct item_t item1, item2, item3;

       wl_list_init(&foo_list);
       wl_list_insert(&foo_list, &item1.link); // Pushes item1 at the head
       wl_list_insert(&foo_list, &item2.link); // Pushes item2 at the head
       wl_list_insert(&item2.link, &item3.link);       // Pushes item3 after item2

       The list now looks like [item2, item3, item1]

       Iterate the list in ascending order:

       item_t *item;
       wl_list_for_each(item, foo_list, link) {
               Do_something_with_item(item);
       }

Field Documentation

   struct wl_list* wl_list::next
   struct wl_list* wl_list::prev

Author

       Generated automatically by Doxygen for Wayland from the source code.