14#define __UCONCAT(a, b) #a b
15#define _UCONCAT(a, b) __UCONCAT(a, b)
16#define UCONCAT(b) _UCONCAT(__USER_LABEL_PREFIX__, b)
26static void *
const heap_start = (
void *)0x8c280000;
31size_t heap_size = 12 * 1024 * 1024;
32static void *
const heap_end = (
void *)0x8ce80000;
43extern void *(*_FP_Mem_Malloc)(
size_t size) __asm__ (UCONCAT(
"Mem_Malloc")) __attribute__((alloc_size(1), warn_unused_result));
53static void *Mem_Malloc(
size_t size) __asm__ (UCONCAT(
"Mem_Malloc_Wrapper")) __attribute__((malloc, alloc_size(1), assume_aligned(4), unused, warn_unused_result));
54void *Mem_Malloc(
size_t size) {
55 return _FP_Mem_Malloc(size);
69extern void *(*Mem_Memcpy)(
void *destination,
const void *source,
size_t num)
71__attribute__((access(read_only, 2, 3), access(write_only, 1, 3)))
87extern void *(*Mem_Memset)(
void *ptr,
int value,
size_t num)
89__attribute__((access(write_only, 1, 3)))
101extern void *(*Mem_Sbrk)(
long size);
void(* Mem_Free)(void *ptr)
signed char(* Mem_SbrkMode)(signed char newMode)