From 5d730b22acb7f7f660a9682281d0ab461ebe8d67 Mon Sep 17 00:00:00 2001 From: Nick Chambers Date: Thu, 17 Nov 2022 01:07:06 -0600 Subject: [PATCH] Expose a stub interface --- include/ordinary.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 include/ordinary.h diff --git a/include/ordinary.h b/include/ordinary.h new file mode 100644 index 0000000..1d90b23 --- /dev/null +++ b/include/ordinary.h @@ -0,0 +1,33 @@ +#ifndef __ORDINARY_H_ +#define __ORDINARY_H_ + +#include + +struct ordinary_node { + struct ordinary_node *prev; + struct ordinary_node *next; + void *val; +}; + +struct ordinary_list { + struct ordinary_node *head; + struct ordinary_node *tail; + uint32_t count; + uint32_t limit; +}; + +typedef uint8_t (*callback)(struct ordinary_node *node, uint32_t idx); + +void ordinary_list_new(struct ordinary_list *list, uint32_t limit); +void ordinary_list_del(struct ordinary_list *list); + +struct ordinary_node *ordinary_list_add(struct ordinary_list *list, void *val); +void standard_list_mov(struct standard_list *list, struct standard_node *node); +void ordinary_list_rem(struct ordinary_list *list, struct ordinary_node *node); +struct ordinary_node *ordinary_list_pop(struct ordinary_list *list); + +struct ordinary_node *ordinary_list_at(struct ordinary_list *list, uint32_t idx); +struct ordinary_node *ordinary_list_find(struct ordinary_list *list, callback cb); +uint8_t ordinary_list_for(struct ordinary_list *list, callback cb); + +#endif