Mirai's Miscellaneous Misadventures
M28 / psx / malloc.c
1
2
3
4#include <stdlib.h>
5#include <string.h>
6#include <stddef.h>
7
8#include <mimimi/allocators.h>
9#include <mimimi/malloc.h>
10
11static void *mimimi_malloc_allocate(unsigned int size)
12{
13 void *data = malloc(size);
14 if (data == NULL) for (;;) { }
15 return data;
16}
17
18static void *mimimi_malloc_reallocate(void *data0, unsigned int size)
19{
20 void *data = malloc(size);
21 if (data == NULL) for (;;) { }
22 memcpy(data, data0, size);
23 free(data0);
24 return data;
25}
26
27static struct mimimi_allocator mimimi_malloc_value = {&mimimi_malloc_allocate, &mimimi_malloc_reallocate, &free, NULL};
28
29struct mimimi_allocator *mimimi_malloc = &mimimi_malloc_value;