SmartSnippets DA1459x SDK
sdk_queue.h
Go to the documentation of this file.
1 
34 #ifndef SDK_QUEUE_H_
35 #define SDK_QUEUE_H_
36 
37 #include <stdbool.h>
38 #include <stddef.h>
39 
40 struct queue_elem;
41 
42 typedef struct {
43  size_t size;
44  struct queue_elem *head;
45  struct queue_elem *tail;
46 } queue_t;
47 
48 typedef void (* queue_foreach_func_t) (void *data, void *user_data);
49 
50 typedef bool (* queue_match_func_t) (const void *data, const void *match_data);
51 
52 typedef void (* queue_destroy_func_t) (void *data);
53 
60 void queue_init(queue_t *q);
61 
69 void queue_push_front(queue_t *q, void *data);
70 
78 void queue_push_back(queue_t *q, void *data);
79 
88 void *queue_pop_front(queue_t *q);
89 
100 void *queue_peek_front(const queue_t *q);
101 
112 void *queue_peek_back(const queue_t *q);
113 
122 size_t queue_length(const queue_t *q);
123 
132 void queue_foreach(const queue_t *q, queue_foreach_func_t func, void *user_data);
133 
146 void *queue_find(const queue_t *q, queue_match_func_t func, const void *match_data);
147 
160 void *queue_remove(queue_t *q, queue_match_func_t func, const void *match_data);
161 
171 void queue_remove_all(queue_t *q, queue_destroy_func_t func);
172 
185 void queue_filter(queue_t *q, queue_match_func_t m_func, const void *match_data,
186  queue_destroy_func_t d_func);
187 
188 #endif /* SDK_QUEUE_H_ */
queue_init
void queue_init(queue_t *q)
queue_remove_all
void queue_remove_all(queue_t *q, queue_destroy_func_t func)
queue_length
size_t queue_length(const queue_t *q)
queue_remove
void * queue_remove(queue_t *q, queue_match_func_t func, const void *match_data)
queue_push_front
void queue_push_front(queue_t *q, void *data)
queue_push_back
void queue_push_back(queue_t *q, void *data)
queue_peek_front
void * queue_peek_front(const queue_t *q)
queue_peek_back
void * queue_peek_back(const queue_t *q)
queue_pop_front
void * queue_pop_front(queue_t *q)
func
HW_GPIO_FUNC func
Definition: hw_gpio.h:212
queue_filter
void queue_filter(queue_t *q, queue_match_func_t m_func, const void *match_data, queue_destroy_func_t d_func)
queue_find
void * queue_find(const queue_t *q, queue_match_func_t func, const void *match_data)
queue_foreach
void queue_foreach(const queue_t *q, queue_foreach_func_t func, void *user_data)