wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
memexpheap.h
Go to the documentation of this file.
1#pragma once
2#include <wut.h>
3#include "memheap.h"
4
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct MEMExpHeap MEMExpHeap;
18
19typedef void (*MEMExpHeapBlockVisitor)(void *block, MEMHeapHandle heap,
20 void *context);
21
27
33
39
41{
42 uint32_t attribs;
43 uint32_t blockSize;
46 uint16_t tag;
47 WUT_UNKNOWN_BYTES(0x02);
48};
49WUT_CHECK_OFFSET(MEMExpHeapBlock, 0x00, attribs);
50WUT_CHECK_OFFSET(MEMExpHeapBlock, 0x04, blockSize);
51WUT_CHECK_OFFSET(MEMExpHeapBlock, 0x08, prev);
52WUT_CHECK_OFFSET(MEMExpHeapBlock, 0x0c, next);
53WUT_CHECK_OFFSET(MEMExpHeapBlock, 0x10, tag);
54WUT_CHECK_SIZE(MEMExpHeapBlock, 0x14);
55
61WUT_CHECK_OFFSET(MEMExpHeapBlockList, 0x00, head);
62WUT_CHECK_OFFSET(MEMExpHeapBlockList, 0x04, tail);
63WUT_CHECK_SIZE(MEMExpHeapBlockList, 0x08);
64
73WUT_CHECK_OFFSET(MEMExpHeap, 0x00, header);
74WUT_CHECK_OFFSET(MEMExpHeap, 0x40, freeList);
75WUT_CHECK_OFFSET(MEMExpHeap, 0x48, usedList);
76WUT_CHECK_OFFSET(MEMExpHeap, 0x50, groupId);
77WUT_CHECK_OFFSET(MEMExpHeap, 0x52, attribs);
78WUT_CHECK_SIZE(MEMExpHeap, 0x54);
79
82 uint32_t size,
83 uint16_t flags);
84
85void *
87
88void *
90 uint32_t size,
91 int alignment);
92
93void
95 void *block);
96
99 MEMExpHeapMode mode);
100
103
104uint32_t
106
107uint32_t
109 void *block,
110 uint32_t size);
111
112uint32_t
114
115uint32_t
117 int alignment);
118
119uint16_t
121 uint16_t id);
122
123uint16_t
125
126uint32_t
128
129uint16_t
131
134
135void
137 MEMExpHeapBlockVisitor callback,
138 void *context);
139
140BOOL
143
144#ifdef __cplusplus
145}
146#endif
147
MEMExpHeapBlock * tail
Definition memexpheap.h:59
MEMExpHeapBlockList usedList
Definition memexpheap.h:69
MEMHeapHeader header
Definition memexpheap.h:67
uint16_t groupId
Definition memexpheap.h:70
uint32_t attribs
Definition memexpheap.h:42
MEMExpHeapBlock * head
Definition memexpheap.h:58
MEMExpHeapBlockList freeList
Definition memexpheap.h:68
MEMExpHeapBlock * next
Definition memexpheap.h:45
uint32_t blockSize
Definition memexpheap.h:43
MEMExpHeapBlock * prev
Definition memexpheap.h:44
uint16_t attribs
Definition memexpheap.h:71
MEMHeapHandle MEMCreateExpHeapEx(void *heap, uint32_t size, uint16_t flags)
MEMExpHeapCheckFlags
Definition memexpheap.h:35
uint32_t MEMResizeForMBlockExpHeap(MEMHeapHandle heap, void *block, uint32_t size)
MEMExpHeapDirection MEMGetAllocDirForMBlockExpHeap(void *block)
MEMExpHeapMode MEMSetAllocModeForExpHeap(MEMHeapHandle heap, MEMExpHeapMode mode)
uint32_t MEMGetTotalFreeSizeForExpHeap(MEMHeapHandle heap)
MEMExpHeapMode MEMGetAllocModeForExpHeap(MEMHeapHandle heap)
uint32_t MEMGetAllocatableSizeForExpHeapEx(MEMHeapHandle heap, int alignment)
uint32_t MEMAdjustExpHeap(MEMHeapHandle heap)
void MEMFreeToExpHeap(MEMHeapHandle heap, void *block)
uint32_t MEMGetSizeForMBlockExpHeap(void *block)
uint16_t MEMGetGroupIDForMBlockExpHeap(void *block)
BOOL MEMCheckExpHeap(MEMHeapHandle handle, MEMExpHeapCheckFlags mode)
void MEMVisitAllocatedForExpHeap(MEMHeapHandle heap, MEMExpHeapBlockVisitor callback, void *context)
uint16_t MEMGetGroupIDForExpHeap(MEMHeapHandle heap)
uint16_t MEMSetGroupIDForExpHeap(MEMHeapHandle heap, uint16_t id)
void * MEMDestroyExpHeap(MEMHeapHandle heap)
void(* MEMExpHeapBlockVisitor)(void *block, MEMHeapHandle heap, void *context)
Definition memexpheap.h:19
MEMExpHeapDirection
Definition memexpheap.h:29
MEMExpHeapMode
Definition memexpheap.h:23
void * MEMAllocFromExpHeapEx(MEMHeapHandle heap, uint32_t size, int alignment)
@ MEM_EXP_HEAP_CHECK_FLAGS_LOG_ERRORS
Definition memexpheap.h:37
@ MEM_EXP_HEAP_CHECK_FLAGS_NONE
Definition memexpheap.h:36
@ MEM_EXP_HEAP_DIR_FROM_TOP
Definition memexpheap.h:30
@ MEM_EXP_HEAP_DIR_FROM_BOTTOM
Definition memexpheap.h:31
@ MEM_EXP_HEAP_MODE_NEAREST_SIZE
Definition memexpheap.h:25
@ MEM_EXP_HEAP_MODE_FIRST_FREE
Definition memexpheap.h:24
int32_t BOOL
Definition wut_types.h:7