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 |
RegionData
Size : 0x10 bytes
| Offset | Type | Description |
|---|---|---|
| 0x0 | MemoryBlockHeader* | |
| 0x4 | MemoryBlockHeader* | |
| 0x8 | u32 | Region start |
| 0xC | u32 | Region size |
FCRAM Region Data
Size : 0x10 bytes
| Offset | Type | Description |
|---|---|---|
| 0x0 | RegionData | RegionData for app memory |
| 0x10 | RegionData | RegionData for sys memory |
| 0x20 | RegionData | RegionData for base memory |
| 0x30 | u32 | Ptr to start of FCRAM region config |
| 0x34 | u32 | FCRAM start |
| 0x38 | u32 | FCRAM size in pages |
| 0x3C | u32 | Base mem start in FCRAM |
| 0x40 | u32 | Physical FCRAM memory used by the kernel- used by svcGetSystemInfo |
| 0x44 | u32 | ? |
| 0x48 | KThread* | Thread operating on region data |
| 0x4C | s16 | Error info for thread listed above |