diff options
author | red031000 <rubenru09@aol.com> | 2020-06-11 19:52:48 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-06-11 19:52:48 +0100 |
commit | 3614b5a702af1aba1a0597fae4a5025d3fb9c413 (patch) | |
tree | f38c0f826863eca36ec436668592fdf744500850 /arm9/lib | |
parent | e6fd0961912649544d3d4eee185b2ac96b8233c3 (diff) |
arm7 OS_alloc
Diffstat (limited to 'arm9/lib')
-rw-r--r-- | arm9/lib/include/OS_alloc.h | 31 | ||||
-rw-r--r-- | arm9/lib/include/consts.h | 3 | ||||
-rw-r--r-- | arm9/lib/src/OS_alloc.c | 6 |
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;
|