Arax -8d09c51940345c86062e8ef2427c705ae66e5926
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
Loading...
Searching...
No Matches
list.h
Go to the documentation of this file.
1#ifndef UTILS_LIST_HEADER
2#define UTILS_LIST_HEADER
3#include <stddef.h>
4#include <stdint.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif /* ifdef __cplusplus */
9
16typedef struct
17{
19 size_t length;
21
29
34
40
50
60
72size_t utils_list_to_array(utils_list_s *list, void **array);
73
81
89
96#define utils_list_for_each(list, itr) \
97 for (itr = (list).head.next; itr != (void *) &list; itr = itr->next)
98
106#define utils_list_for_each_safe(list, itr, tmp) \
107 for (itr = (list).head.next; (itr != (void *) &list) && (tmp = itr->next); itr = tmp)
108
115#define utils_list_for_each_reverse(list, itr) \
116 for (itr = (list).head.prev; itr != (void *) &list; itr = itr->prev)
117
118#ifdef __cplusplus
119}
120#endif /* ifdef __cplusplus */
121
122#endif /* ifndef UTILS_LIST_HEADER */
utils_list_node_s * utils_list_pop_tail(utils_list_s *list)
Definition list.c:47
utils_list_node_s * utils_list_del(utils_list_s *list, utils_list_node_s *node)
Definition list.c:26
utils_list_node_s * utils_list_pop_head(utils_list_s *list)
Definition list.c:36
void utils_list_node_init(utils_list_node_s *node, void *owner)
Definition list.c:74
struct utils_list_node utils_list_node_s
int utils_list_node_linked(utils_list_node_s *node)
Definition list.c:81
utils_list_s * utils_list_init(void *mem)
Definition list.c:3
void utils_list_add(utils_list_s *list, utils_list_node_s *node)
Definition list.c:20
size_t utils_list_to_array(utils_list_s *list, void **array)
Definition list.c:58
struct utils_list_node * prev
Definition list.h:13
struct utils_list_node * next
Definition list.h:12
void * owner
Definition list.h:14
utils_list_node_s head
Definition list.h:18
size_t length
Definition list.h:19