#ifndef LIST_H #define LIST_H #include "../sys/sizes.h" typedef struct list_node_t__ { struct list_node_t__ *next; struct list_node_t__ *previous; void *value; } list_node_t; typedef struct { list_node_t *first; list_node_t *last; u64 size; } list_t; list_t *new_list(); list_t *from_array(void **array, u64 size); void list_append(list_t *list, void *value); void list_prepend(list_t *list, void *value); void *pop_first(list_t *list); void *pop_last(list_t *list); void free_list(); #endif