Memory Management

From 3dbrew
Revision as of 02:00, 4 February 2016 by Bond697 (talk | contribs)
Jump to navigation Jump to search

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


Kernel Region Descriptor