ubinos
list.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2009 Sung Ho Park
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef UBICLIB_LIST_H_
8 #define UBICLIB_LIST_H_
9 
10 #ifdef __cplusplus
11 extern "C"
12 {
13 #endif
14 
23 #include <ubinos_config.h>
24 #include <ubinos/type.h>
25 
27 #define LIST_ERR__NOTEXIST -21
28 
30 typedef struct _list_elmt_t
31 {
32  struct _list_elmt_t * next;
33  void * data;
35 
44 
55 
67 
69 typedef struct _list_t
70 {
71  unsigned int count;
75 
83 typedef list_t * list_pt;
84 
90 #define list_init(list) \
91 { \
92  (list)->count = 0; \
93  (list)->head = NULL; \
94  (list)->tail = NULL; \
95 }
96 
107 int list_create(list_pt * list_p);
108 
120 int list_delete(list_pt * list_p);
121 
138 
152 
169 
185 int list_find(list_pt list, list_elmt_pt * elmt_p, void * data);
186 
202 int list_findandremove(list_pt list, list_elmt_pt * elmt_p, void * data);
203 
204 #ifdef __cplusplus
205 }
206 #endif
207 
208 #endif /* UBICLIB_LIST_H_ */
struct _list_elmt_t list_elmt_t
list_elmt_t * list_elmt_pt
Definition: list.h:43
int list_inserttail(list_pt list, list_elmt_pt elmt)
struct _list_t list_t
int list_find(list_pt list, list_elmt_pt *elmt_p, void *data)
int list_findandremove(list_pt list, list_elmt_pt *elmt_p, void *data)
list_t * list_pt
Definition: list.h:83
list_elmt_pt list_elmt_create(void *data)
int list_insertnext(list_pt list, list_elmt_pt ref, list_elmt_pt elmt)
int list_create(list_pt *list_p)
int list_removenext(list_pt list, list_elmt_pt ref, list_elmt_pt *elmt_p)
int list_delete(list_pt *list_p)
int list_elmt_delete(list_elmt_pt elmt)
Definition: list.h:31
struct _list_elmt_t * next
Definition: list.h:32
void * data
Definition: list.h:33
Definition: list.h:70
list_elmt_pt tail
Definition: list.h:73
unsigned int count
Definition: list.h:71
list_elmt_pt head
Definition: list.h:72
ubinos basic data type