1,562 bytes added
, 00:02, 28 December 2016
[[Category:Kernel objects]]
Size: 0x9000 bytes (effective size: 0x6000 bytes)
There's one instance of this structure per core.
The instance for the current core is aliased at 0xFFFF1000
{| class="wikitable" border="1"
|-
! Offset
! Type
! Description
|-
| 0x0
| u32[0x400]
| N/A (unmapped memory)
|-
| 0x1000
| u32[0x1000]
| L1 translation table (TTB1).
The unused part of it is used as stack for exception modes other than supervisor
|-
| 0x5000
| u32[0x400]
| N/A
|-
| 0x6000
| [[KThreadContext]]
| Context for the scheduler's thread
|-
| 0x7000
| u32[0x400]
| N/A
|-
| 0x8000
| KCoreObjectContext
| Currently used objects, see below
|}
KCoreObjectContext
Size: 0x1000 bytes
{| class="wikitable" border="1"
|-
! Offset
! Type
! Description
|-
| 0x0
| [[KThread]]*
| Pointer to the current thread for this core
|-
| 0x4
| [[KProcess]]*
| Pointer to the current process for this core
|-
| 0x8
| [[KScheduler]]*
| Pointer to the current scheduler for this core
|-
| 0xC
| [[KSchedulableInterruptEventLinkedList]]*
| Pointer to the current instance of [[KSchedulableInterruptEventLinkedList]] for this core
|-
| 0x10
| [[KThread]]*
| Pointer to the last thread having encountered an exception for this core, used when dumping FPU registers
|-
| 0x14
| u8[4]
| Padding ?
|-
| 0x18
| [[KThread]]
| Scheduler thread instance
|-
| 0xC8
| [[KScheduler]]
| Scheduler instance
|-
| 0x2F0
| [[KSchedulableInterruptEventLinkedList]]
| [[KSchedulableInterruptEventLinkedList]] instance
|-
| 0x300
| u8[0x874]
| Unused ?
|-
| 0xB74
| u32[0x123]
| Unknown stack
|}