KCodeSet: Difference between revisions

Bond697 (talk | contribs)
No edit summary
mNo edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Kernel objects]]
[[Category:Kernel auto objects]]
 
class [[KCodeSet]] extends [[KAutoObject]];
class [[KCodeSet]] extends [[KAutoObject]];


Line 20: 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 60: Line 59:
|}
|}


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 77: 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.