Difference between revisions of "KCodeSet"

From 3dbrew
Jump to navigation Jump to search
Line 12: Line 12:
 
|-
 
|-
 
| 0x0
 
| 0x0
| u32
+
| [[KAutoObject]]
| Pointer to vtable
+
| Base object
|-
 
| 0x4
 
| u32
 
| Reference count
 
 
|-
 
|-
 
| 0x8
 
| 0x8
Line 60: Line 56:
 
|}
 
|}
  
Memory section info struct :
+
Sections too large to fit into any available memory blocks will be split across multiple memory blocks with a KBlockInfo class for each. This is described by the memory section info struct:
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 76: Line 72:
 
|-
 
|-
 
| 0x8
 
| 0x8
| u32
+
| [[KLinkedList]]
| KBlockInfo count for section
+
| List of KBlockInfo objects for this section  
|-
 
| 0xC
 
| u32
 
| Pointer to KLinkedListNode that holds a pointer to the first KBlockInfo object for that section
 
|-
 
| 0x10
 
| u32
 
| Pointer to KLinkedListNode that holds a pointer to the last KBlockInfo object for that section
 
 
|}
 
|}
 
Sections where there isn't a large enough memory block available will be split into  with multiple memory blocks with a KBlockInfo class for each.
 

Revision as of 01:50, 21 March 2016


class KCodeSet extends KAutoObject;

Size : 0x64 bytes

Offset Type Description
0x0 KAutoObject Base object
0x8 Struct size is 0x14 Memory section info for .text
0x1C Struct size is 0x14 Memory section info for .rodata
0x30 Struct size is 0x14 Memory section info for .data
0x44 u32 Total .text pages
0x48 u32 Total .rodata pages
0x4C u32 Total RW pages (.bss + .data)
0x50 u64 Process name as 8-byte string
0x58 u16 ?
0x5A u16 ?
0x5C u64 TitleID

Sections too large to fit into any available memory blocks will be split across multiple memory blocks with a KBlockInfo class for each. This is described by the memory section info struct:

Offset Type Description
0x0 u32 Start address (virtual)
0x4 u32 Total pages
0x8 KLinkedList List of KBlockInfo objects for this section