/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef LABWC_LIST_H #define LABWC_LIST_H #include /** * wl_list_append() - add a new element to the end of a list * @list: list head to add it before * @elm: new element to be added (link of the containing struct to be precise) * * Note: In labwc, most lists are queues where we want to add new elements to * the end of the list. As wl_list_insert() adds elements at the front of the * list (like a stack) - without this helper-function - we have to use * wl_list_insert(list.prev, element) which is verbose and not intuitive to * anyone new to this API. */ static inline void wl_list_append(struct wl_list *list, struct wl_list *elm) { wl_list_insert(list->prev, elm); } /** * WL_LIST_INIT() - initialize a list when defining it * @head: pointer to the head of the list to be initialized * * For example, this can be used like this: * static struct wl_list list = WL_LIST_INIT(&list); */ #define WL_LIST_INIT(head) {.prev = (head), .next = (head)} #endif /* LABWC_LIST_H */