Memory Map File Format
.mc - Clear text Memory Map
Identifier |
Meaning |
DEVICETYPE |
Type of the device. One of PC , CONSOLE and EMBEDDED |
DEVICENAME |
Pascal strings containing the name of the device |
CPUARCH |
Architecture. Currently one of X86 , X86_64 and ARM |
ENDIAN |
BIG or LITTLE |
BITS |
32 or 64 |
REGION |
A region of Memory. Arguments are START_ADDR , END_ADDR , and PERMISSIONS (R , RW , RX , RWX ) Only memory with RWX permissions can be allocated. |
Example:
DEVICETYPE CONSOLE
DEVICENAME 3DS9
CPUARCH ARM
ENDIAN LITTLE
BITS 32
REGION 0x00000000 0x00008000 RWX
REGION 0x08000000 0x08100000 RWX
REGION 0x10000000 0x18000000 RW
REGION 0x18000000 0x18600000 RW
REGION 0x1FF00000 0x1FF80000 RW
REGION 0x1FF80000 0x20000000 RW
REGION 0x20000000 0x28000000 RW
.mmap - Compiled Memory Map
The header is always little-endian
Offset |
Width |
Meaning |
0x00 |
4 |
Magic number MMAP |
0x04 |
4 |
Version (Currently 0) |
0x08 |
4 |
Tag count |
Tag format
Offset |
Width |
Meaning |
0x00 |
1 |
Tag type |
0x01 |
1 |
Tag size |
0x02 |
2 |
Paddding |
Supported tags
Tag Type |
Size |
Name |
0x00 |
1 |
DEVICETYPE |
0x01 |
variable |
DEVICENAME |
0x02 |
1 |
CPUARCH |
0x03 |
1 |
ENDIAN |
0x04 |
1 |
BITS |
0x05 |
BITS /4 + 1 |
REGION |
DEVICETYPE
Value |
Meaning |
0 |
PC |
1 |
CONSOLE |
2 |
EMBEDDED |
CPUARCH
Value |
Meaning |
0 |
X86 |
1 |
X86_64 |
2 |
ARM |
ENDIAN
Value |
Meaning |
0 |
BIG |
1 |
LITTLE |
BITS
This is a 8-bit integer
REGION
Offset |
Length |
Meaning |
0 |
BITS /8 |
Start address |
BITS /8 |
BITS /8 |
End address |
BITS /4 |
1 |
Permissions |
Permissions:
Value |
Meaning |
0 |
No permission |
1 |
X |
2 |
W |
3 |
WX |
4 |
R |
5 |
RX |
6 |
RW |
7 |
RWX |