Memory Management
How The Kernel Allocates And Tracks Memory
MemoryBlockHeader
SizeĀ : 0xC bytes
Offset | Type | Description |
---|---|---|
0x0 | u32 | Size in pages |
0x4 | MemoryBlockHeader* | Next |
0x8 | MemoryBlockHeader* | Prev |
RegionDescriptor
SizeĀ : 0x10 bytes
Offset | Type | Description |
---|---|---|
0x0 | MemoryBlockHeader* | |
0x4 | MemoryBlockHeader* | |
0x8 | u32 | Region start |
0xC | u32 | Region size |
FCRAM Region Descriptor
SizeĀ : 0x50 bytes
Offset | Type | Description |
---|---|---|
0x0 | RegionDescriptor | RegionDescriptor for app memory |
0x10 | RegionDescriptor | RegionDescriptor for sys memory |
0x20 | RegionDescriptor | RegionDescriptor for base memory |
0x30 | u32 | Ptr to start of FCRAM region descriptor |
0x34 | u32 | FCRAM start |
0x38 | u32 | FCRAM size in pages |
0x3C | u32 | Base memory start in FCRAM |
0x40 | u32 | Count of physical FCRAM used by the kernel, in bytes. (used by svcGetSystemInfo) |
0x44 | u32 | ? |
0x48 | KThread* | Thread operating on region data |
0x4C | s16 | Error info for thread listed above |
0x4E | u16 | Alignment |