// // Created by william on 1/16/24. // #include #ifndef NESEMULATOR_LINKED_LIST_H #define NESEMULATOR_LINKED_LIST_H typedef struct linked_list_node { struct linked_list_node *previous; struct linked_list_node *next; void *data; } LinkedListNode; typedef struct linked_list { LinkedListNode *head; LinkedListNode *end; } LinkedList; LinkedList linked_list_init(); void linked_list_add(LinkedList *list, void *data); LinkedListNode *linked_list_get_if(LinkedList *list, bool(*predicate)(void *, void *), void* userdata); void linked_list_uninit(LinkedList *list); #endif //NESEMULATOR_LINKED_LIST_H