wut/include/coreinit/memdefaultheap.h
James Benton d350e2e28a coreinit: Add a prototype for __preinit_user.
Also throw in CoreInitDefaultHeap whilst we are there, it's the default
implementation of __preinit_user.
2018-05-30 18:56:10 +01:00

49 lines
1.2 KiB
C

#pragma once
#include <wut.h>
#include "memheap.h"
/**
* \defgroup coreinit_memdefaultheap Default Heap
* \ingroup coreinit
* @{
*/
#ifdef __cplusplus
extern "C" {
#endif
typedef void *(*MEMAllocFromDefaultHeapFn)(uint32_t size);
typedef void *(*MEMAllocFromDefaultHeapExFn)(uint32_t size, int32_t alignment);
typedef void (*MEMFreeToDefaultHeapFn)(void *ptr);
extern MEMAllocFromDefaultHeapFn MEMAllocFromDefaultHeap;
extern MEMAllocFromDefaultHeapExFn MEMAllocFromDefaultHeapEx;
extern MEMFreeToDefaultHeapFn MEMFreeToDefaultHeap;
/**
* Default implementation of __preinit_user.
*/
void
CoreInitDefaultHeap(MEMHeapHandle *outMem1,
MEMHeapHandle *outFG,
MEMHeapHandle *outMem2);
/**
* Allows the user to completely customise the default heaps, this runs after
* the rpx code section has loaded but before the data section as the data
* sections are allocated from the default heap.
*
* This is for a user to export from their .rpx file, it is not exported from
* coreinit.rpl
*/
void
__preinit_user(MEMHeapHandle *outMem1,
MEMHeapHandle *outFG,
MEMHeapHandle *outMem2);
#ifdef __cplusplus
}
#endif
/** @} */