mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-09-02 08:43:42 -04:00
4df8ccc871
* 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
42 lines
966 B
C
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;
|
|
}
|