summaryrefslogtreecommitdiff
path: root/arm9/lib
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-06-11 19:52:48 +0100
committerred031000 <rubenru09@aol.com>2020-06-11 19:52:48 +0100
commit3614b5a702af1aba1a0597fae4a5025d3fb9c413 (patch)
treef38c0f826863eca36ec436668592fdf744500850 /arm9/lib
parente6fd0961912649544d3d4eee185b2ac96b8233c3 (diff)
arm7 OS_alloc
Diffstat (limited to 'arm9/lib')
-rw-r--r--arm9/lib/include/OS_alloc.h31
-rw-r--r--arm9/lib/include/consts.h3
-rw-r--r--arm9/lib/src/OS_alloc.c6
3 files changed, 6 insertions, 34 deletions
diff --git a/arm9/lib/include/OS_alloc.h b/arm9/lib/include/OS_alloc.h
index 5ee95395..e73c2971 100644
--- a/arm9/lib/include/OS_alloc.h
+++ b/arm9/lib/include/OS_alloc.h
@@ -1,32 +1,9 @@
-#ifndef POKEDIAMOND_OS_ALLOC_H
-#define POKEDIAMOND_OS_ALLOC_H
+#ifndef POKEDIAMOND_ARM9_OS_ALLOC_H
+#define POKEDIAMOND_ARM9_OS_ALLOC_H
#include "nitro/types.h"
#include "OS_arena.h"
-
-typedef int OSHeapHandle;
-
-typedef struct Cell Cell;
-
-struct Cell {
- Cell* prev;
- Cell* next;
- long size;
-};
-
-typedef struct {
- long size;
- Cell *free;
- Cell *allocated;
-} HeapDesc;
-
-typedef struct {
- volatile OSHeapHandle currentHeap;
- int numHeaps;
- void* arenaStart;
- void* arenaEnd;
- HeapDesc* heapArray;
-} OSHeapInfo;
+#include "nitro/OS_alloc_shared.h"
Cell* DLAddFront(Cell* list, Cell* cell);
Cell* DLExtract(Cell* list, Cell* cell);
@@ -34,4 +11,4 @@ Cell *DLInsert(Cell *original, Cell *inserted);
void* OS_AllocFromHeap(OSArenaId id, OSHeapHandle heap, u32 size);
void OS_FreeToHeap(OSArenaId id, OSHeapHandle heap, void *ptr);
-#endif //POKEDIAMOND_OS_ALLOC_H
+#endif //POKEDIAMOND_ARM9_OS_ALLOC_H
diff --git a/arm9/lib/include/consts.h b/arm9/lib/include/consts.h
index c09e8cd9..a24e9d89 100644
--- a/arm9/lib/include/consts.h
+++ b/arm9/lib/include/consts.h
@@ -46,9 +46,6 @@
#define OSi_TCM_REGION_BASE_MASK 0xfffff000
-#define OSi_TRUNC(n, a) (((u32) (n)) & ~((a) - 1))
-#define OSi_ROUND(n, a) (((u32) (n) + (a) - 1) & ~((a) - 1))
-
#define OS_IE_V_BLANK (1UL << 0)
#endif //POKEDIAMOND_ARM9_CONSTS_H
diff --git a/arm9/lib/src/OS_alloc.c b/arm9/lib/src/OS_alloc.c
index 32f386a8..00028d3c 100644
--- a/arm9/lib/src/OS_alloc.c
+++ b/arm9/lib/src/OS_alloc.c
@@ -35,14 +35,12 @@ ARM_FUNC Cell *DLInsert(Cell *original, Cell *inserted)
{
Cell *prevCell = NULL;
Cell *nextCell = original;
-
- while (nextCell != NULL)
+
+ for (nextCell = original, prevCell = NULL; nextCell; prevCell = nextCell, nextCell = nextCell->next)
{
if (inserted <= nextCell)
break;
- prevCell = nextCell;
- nextCell = nextCell->next;
}
inserted->next = nextCell;