KCoreContext

From 3dbrew
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

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

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