Files
dusklight/libs/revolution/src/mem/mem_list.c
T
Luke Street 4df8ccc871 Reorganize library code into libs/ (#3119)
* Reorganize files into libs/{dolphin,JSystem,PowerPC_EABI_Support,revolution,TRK_MINNOW_DOLPHIN}

* Update configure.py and project.py for new libs structure

* Refactor `#include <dolphin/x.h>` -> `<x.h>`

* Remove `__REVOLUTION_SDK__` forwards from dolphin

* Fix dolphin/ references in revolution

* Wrap `#include <dolphin.h>` in `!__REVOLUTION_SDK__`

* Always build TRK against dolphin headers

* Resolve revolution SDK header resolution issues
2026-03-01 14:35:36 -08:00

42 lines
966 B
C

#include <revolution/mem/list.h>
// I've tried inlines but only a macro seems to work
#define GetLink(parent_list, obj) ((MEMLink*)(((u32)(obj))+(parent_list)->offs))
void MEMInitList(MEMList *pList, u16 offs) {
pList->head = NULL;
pList->tail = NULL;
pList->num = 0;
pList->offs = offs;
}
void MEMAppendListObject(MEMList *pList, void *pObj) {
MEMLink* link;
if (pList->head == NULL) {
link = GetLink(pList, pObj);
link->next = NULL;
link->prev = NULL;
pList->head = pObj;
pList->tail = pObj;
pList->num++;
}
else {
link = GetLink(pList, pObj);
link->prev = pList->tail;
link->next = NULL;
GetLink(pList, pList->tail)->next = pObj;
pList->tail = pObj;
pList->num++;
}
}
void* MEMGetNextListObject(MEMList *pList, void *pObj) {
if (pObj == NULL) {
return pList->head;
}
return GetLink(pList, pObj)->next;
}