mirror of
https://github.com/wiiu-env/wut.git
synced 2025-01-06 14:48:17 +01:00
coreinit: Fill out MEMExpandedHeap structure.
This commit is contained in:
parent
f72cd983d3
commit
0a34d5b7a2
@ -11,57 +11,104 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct MEMExpandedHeap MEMExpandedHeap;;
|
||||
typedef struct MEMExpandedHeap MEMExpandedHeap;
|
||||
typedef struct MEMExpandedHeapBlock MEMExpandedHeapBlock;
|
||||
typedef struct MEMExpandedHeapBlockList MEMExpandedHeapBlockList;
|
||||
|
||||
struct MEMExpandedHeap
|
||||
{
|
||||
};
|
||||
UNKNOWN_SIZE(MEMExpandedHeap);
|
||||
|
||||
typedef enum MEMExpHeapMode
|
||||
typedef enum MEMExpandedHeapMode
|
||||
{
|
||||
MEM_EXP_HEAP_MODE_FIRST_FREE = 0,
|
||||
MEM_EXP_HEAP_MODE_NEAREST_SIZE = 1,
|
||||
} MEMExpHeapMode;
|
||||
} MEMExpandedHeapMode;
|
||||
|
||||
typedef enum MEMExpHeapDirection
|
||||
typedef enum MEMExpandedHeapDirection
|
||||
{
|
||||
MEM_EXP_HEAP_DIR_FROM_TOP = 0,
|
||||
MEM_EXP_HEAP_DIR_FROM_BOTTOM = 1,
|
||||
} MEMExpHeapDirection;
|
||||
} MEMExpandedHeapDirection;
|
||||
|
||||
struct MEMExpandedHeapBlock
|
||||
{
|
||||
uint32_t attribs;
|
||||
uint32_t blockSize;
|
||||
MEMExpandedHeapBlock *prev;
|
||||
MEMExpandedHeapBlock *next;
|
||||
uint16_t tag;
|
||||
UNKNOWN(0x02);
|
||||
};
|
||||
CHECK_OFFSET(MEMExpandedHeapBlock, 0x00, attribs);
|
||||
CHECK_OFFSET(MEMExpandedHeapBlock, 0x04, blockSize);
|
||||
CHECK_OFFSET(MEMExpandedHeapBlock, 0x08, prev);
|
||||
CHECK_OFFSET(MEMExpandedHeapBlock, 0x0c, next);
|
||||
CHECK_OFFSET(MEMExpandedHeapBlock, 0x10, tag);
|
||||
CHECK_SIZE(MEMExpandedHeapBlock, 0x14);
|
||||
|
||||
struct MEMExpandedHeapBlockList
|
||||
{
|
||||
MEMExpandedHeapBlock *head;
|
||||
MEMExpandedHeapBlock *tail;
|
||||
};
|
||||
CHECK_OFFSET(MEMExpandedHeapBlockList, 0x00, head);
|
||||
CHECK_OFFSET(MEMExpandedHeapBlockList, 0x04, tail);
|
||||
CHECK_SIZE(MEMExpandedHeapBlockList, 0x08);
|
||||
|
||||
struct MEMExpandedHeap
|
||||
{
|
||||
MEMHeapHeader header;
|
||||
MEMExpandedHeapBlockList freeList;
|
||||
MEMExpandedHeapBlockList usedList;
|
||||
uint16_t groupId;
|
||||
uint16_t attribs;
|
||||
};
|
||||
CHECK_OFFSET(MEMExpandedHeap, 0x00, header);
|
||||
CHECK_OFFSET(MEMExpandedHeap, 0x40, freeList);
|
||||
CHECK_OFFSET(MEMExpandedHeap, 0x48, usedList);
|
||||
CHECK_OFFSET(MEMExpandedHeap, 0x50, groupId);
|
||||
CHECK_OFFSET(MEMExpandedHeap, 0x52, attribs);
|
||||
CHECK_SIZE(MEMExpandedHeap, 0x54);
|
||||
|
||||
MEMExpandedHeap *
|
||||
MEMCreateExpHeapEx(MEMExpandedHeap *heap, uint32_t size, uint16_t flags);
|
||||
MEMCreateExpHeapEx(MEMExpandedHeap *heap,
|
||||
uint32_t size,
|
||||
uint16_t flags);
|
||||
|
||||
MEMExpandedHeap *
|
||||
MEMDestroyExpHeap(MEMExpandedHeap *heap);
|
||||
|
||||
void *
|
||||
MEMAllocFromExpHeapEx(MEMExpandedHeap *heap, uint32_t size, int alignment);
|
||||
MEMAllocFromExpHeapEx(MEMExpandedHeap *heap,
|
||||
uint32_t size,
|
||||
int alignment);
|
||||
|
||||
void
|
||||
MEMFreeToExpHeap(MEMExpandedHeap *heap, uint8_t *block);
|
||||
MEMFreeToExpHeap(MEMExpandedHeap *heap,
|
||||
uint8_t *block);
|
||||
|
||||
MEMExpHeapMode
|
||||
MEMSetAllocModeForExpHeap(MEMExpandedHeap *heap, MEMExpHeapMode mode);
|
||||
MEMExpandedHeapMode
|
||||
MEMSetAllocModeForExpHeap(MEMExpandedHeap *heap,
|
||||
MEMExpandedHeapMode mode);
|
||||
|
||||
MEMExpHeapMode
|
||||
MEMExpandedHeapMode
|
||||
MEMGetAllocModeForExpHeap(MEMExpandedHeap *heap);
|
||||
|
||||
uint32_t
|
||||
MEMAdjustExpHeap(MEMExpandedHeap *heap);
|
||||
|
||||
uint32_t
|
||||
MEMResizeForMBlockExpHeap(MEMExpandedHeap *heap, uint8_t *address, uint32_t size);
|
||||
MEMResizeForMBlockExpHeap(MEMExpandedHeap *heap,
|
||||
uint8_t *address,
|
||||
uint32_t size);
|
||||
|
||||
uint32_t
|
||||
MEMGetTotalFreeSizeForExpHeap(MEMExpandedHeap *heap);
|
||||
|
||||
uint32_t
|
||||
MEMGetAllocatableSizeForExpHeapEx(MEMExpandedHeap *heap, int alignment);
|
||||
MEMGetAllocatableSizeForExpHeapEx(MEMExpandedHeap *heap,
|
||||
int alignment);
|
||||
|
||||
uint16_t
|
||||
MEMSetGroupIDForExpHeap(MEMExpandedHeap *heap, uint16_t id);
|
||||
MEMSetGroupIDForExpHeap(MEMExpandedHeap *heap,
|
||||
uint16_t id);
|
||||
|
||||
uint16_t
|
||||
MEMGetGroupIDForExpHeap(MEMExpandedHeap *heap);
|
||||
@ -72,7 +119,7 @@ MEMGetSizeForMBlockExpHeap(uint8_t *addr);
|
||||
uint16_t
|
||||
MEMGetGroupIDForMBlockExpHeap(uint8_t *addr);
|
||||
|
||||
MEMExpHeapDirection
|
||||
MEMExpandedHeapDirection
|
||||
MEMGetAllocDirForMBlockExpHeap(uint8_t *addr);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
Loading…
Reference in New Issue
Block a user