KCodeSet: Difference between revisions
No edit summary |
mNo edit summary |
||
(15 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Kernel auto objects]] | |||
class [[KCodeSet]] extends [[KAutoObject]]; | class [[KCodeSet]] extends [[KAutoObject]]; | ||
Size : 0x64 bytes | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 14: | Line 17: | ||
| u32 | | u32 | ||
| Reference count | | Reference count | ||
|- | |||
| 0x8 | |||
| KCodeSetMemDescriptor | |||
| Memory section info for .text | |||
|- | |||
| 0x1C | |||
| KCodeSetMemDescriptor | |||
| Memory section info for .rodata | |||
|- | |||
| 0x30 | |||
| KCodeSetMemDescriptor | |||
| Memory section info for .data | |||
|- | |||
| 0x44 | |||
| u32 | |||
| Total .text pages | |||
|- | |||
| 0x48 | |||
| u32 | |||
| Total .rodata pages | |||
|- | |||
| 0x4C | |||
| u32 | |||
| Total RW pages (.bss + .data) | |||
|- | |- | ||
| 0x50 | | 0x50 | ||
| u64 | | u64 | ||
| Process name as 8-byte string | | Process name as 8-byte string | ||
|- | |||
| 0x58 | |||
| u16 | |||
| ? | |||
|- | |||
| 0x5A | |||
| u16 | |||
| ? | |||
|- | |- | ||
| 0x5C | | 0x5C | ||
| u64 | | u64 | ||
| | | TitleID | ||
|} | |||
=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" | |||
|- | |||
! Offset | |||
! Type | |||
! Description | |||
|- | |||
| 0x0 | |||
| u32 | |||
| Start address (virtual) | |||
|- | |||
| 0x4 | |||
| u32 | |||
| Total pages | |||
|- | |||
| 0x8 | |||
| u32 | |||
| [[KBlockInfo]] count | |||
|- | |||
| 0xC | |||
| [[KLinkedListNode]]* | |||
| Pointer to first KLinkedListNode in the list of objects | |||
|- | |||
| 0x10 | |||
| [[KLinkedListNode]]* | |||
| Pointer to last KLinkedListNode in the list of objects | |||
|} | |} |