KCodeSet: Difference between revisions

Bond697 (talk | contribs)
Update KBlockInfo data for KCodeSet
mNo edit summary
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Kernel objects]]
[[Category:Kernel auto objects]]
class [[KCodeSet]] extends [[KAutoObject]];


class [[KCodeSet]] extends [[KAutoObject]];
Size : 0x64 bytes


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 18: Line 19:
|-
|-
| 0x8
| 0x8
| Struct size is 0x14
| KCodeSetMemDescriptor
| Memory section info for .text
| Memory section info for .text
|-
|-
| 0x1C
| 0x1C
| Struct size is 0x14
| KCodeSetMemDescriptor
| Memory section info for .rodata
| Memory section info for .rodata
|-
|-
| 0x30
| 0x30
| Struct size is 0x14
| KCodeSetMemDescriptor
| Memory section info for .data
| Memory section info for .data
|-
|-
Line 44: Line 45:
| u64
| u64
| Process name as 8-byte string
| Process name as 8-byte string
|-
| 0x58
| u16
| ?
|-
|-
| 0x5A
| 0x5A
Line 51: Line 56:
| 0x5C
| 0x5C
| u64
| u64
| Program ID
| TitleID
|}
|}


Memory section info struct :
 
=KCodeSetMemDescriptor=
 
Sections too large to fit into any available memory blocks will be split across multiple memory blocks with a [[KBlockInfo]] instance for each. This is described by the memory section info struct:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 71: Line 79:
| 0x8
| 0x8
| u32
| u32
| KBlockInfo count for section
| [[KBlockInfo]] count  
|-
|-
| 0xC
| 0xC
| u32
| [[KLinkedListNode]]*
| Pointer to KLinkedListNode that holds a pointer to the first KBlockInfo object for that section
| Pointer to first KLinkedListNode in the list of objects
|-
|-
| 0x10
| 0x10
| u32
| [[KLinkedListNode]]*
| Pointer to KLinkedListNode that holds a pointer to the last KBlockInfo object for that section
| Pointer to last KLinkedListNode in the list of objects
|}
|}
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.