Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / examples / common / m5stack-tft / repo / components / spiffs / list.h
1 /*
2  * Lua RTOS, list data structure
3  *
4  * Copyright (C) 2015 - 2017
5  * IBEROXARXA SERVICIOS INTEGRALES, S.L. & CSS IBÉRICA, S.L.
6  * 
7  * Author: Jaume Olivé (jolive@iberoxarxa.com / jolive@whitecatboard.org)
8  * 
9  * All rights reserved.  
10  *
11  * Permission to use, copy, modify, and distribute this software
12  * and its documentation for any purpose and without fee is hereby
13  * granted, provided that the above copyright notice appear in all
14  * copies and that both that the copyright notice and this
15  * permission notice and warranty disclaimer appear in supporting
16  * documentation, and that the name of the author not be used in
17  * advertising or publicity pertaining to distribution of the
18  * software without specific, written prior permission.
19  *
20  * The author disclaim all warranties with regard to this
21  * software, including all implied warranties of merchantability
22  * and fitness.  In no event shall the author be liable for any
23  * special, indirect or consequential damages or any damages
24  * whatsoever resulting from loss of use, data or profits, whether
25  * in an action of contract, negligence or other tortious action,
26  * arising out of or in connection with the use or performance of
27  * this software.
28  */
29
30 #ifndef _LIST_H
31 #define _LIST_H
32
33 #include <stdint.h>
34 #include "mutex.h"
35
36 struct list {
37     struct mtx mutex;
38     struct list_index *index;
39     struct list_index *free;
40     uint8_t indexes;
41     uint8_t first_index;
42 };
43
44 struct list_index {
45     void *item;
46     uint8_t index;
47     uint8_t deleted;
48     struct list_index *next;
49 };
50
51 void list_init(struct list *list, int first_index);
52 int list_add(struct list *list, void *item, int *item_index);
53 int list_get(struct list *list, int index, void **item);
54 int list_remove(struct list *list, int index, int destroy);
55 int list_first(struct list *list);
56 int list_next(struct list *list, int index);
57 void list_destroy(struct list *list, int items);
58
59 #endif  /* LIST_H */
60