30 lines
639 B
C
30 lines
639 B
C
|
//
|
||
|
// Created by william on 1/16/24.
|
||
|
//
|
||
|
|
||
|
#include <stdbool.h>
|
||
|
|
||
|
#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
|