libnx/nx/include/switch/runtime/util/list.h
Juan Antonio Hernández Cánovas e3a4e26875 fixed typos
2018-08-24 12:49:54 +02:00

36 lines
817 B
C

/**
* @file list.h
* @brief Singly Linked List data structure.
* @author Yordrar
* @copyright libnx Authors
*/
#pragma once
#include "../../types.h"
#include "../../kernel/condvar.h"
#include "../../kernel/rwlock.h"
#include "../../kernel/thread.h"
typedef struct node {
void* item;
struct node* next;
} Node;
typedef struct list {
Node* header;
Node* last;
u32 num_nodes;
RwLock mutex;
bool isInited;
} List;
void listInit(List* l);
void listFree(List* l);
void listInsert(List* l, void* item, u32 pos);
static inline void listInsertFirst(List* l, void* item) {
listInsert(l, item, 0);
}
void listInsertLast(List* l, void* item);
void listDelete(List* l, void* item);
bool listIsInserted(List* l, void* item);
u32 listGetNumNodes(List* l);
void* listGetItem(List* l, u32 pos);