Difference between revisions of "KThread"
Jump to navigation
Jump to search
(added KDebugThread to KThread) |
|||
Line 41: | Line 41: | ||
| u32 | | u32 | ||
| Start of unnamed kernel object of undetermined size in KThread | | Start of unnamed kernel object of undetermined size in KThread | ||
+ | |- | ||
+ | | 0x38 | ||
+ | | KDebugThread* | ||
+ | | Pointer to KDebugThread object used with the current KThread | ||
|- | |- | ||
| 0x3C | | 0x3C |
Revision as of 05:13, 21 March 2015
class KThread extends KSynchronizationObject;
Size : 0xB0 bytes
Offset | Type | Description |
---|---|---|
0x0 | u32 | Pointer to vtable |
0x4 | u32 | Reference count |
0x8 | u32 | Count of KThreads that sync with this object - number of nodes in the linked list below |
0xC | KLinkedListNode* | Pointer to first KLinkedListNode in node list of KThreads that sync with this object |
0x10 | KLinkedListNode* | Pointer to last KLinkedListNode in node list of KThreads that sync with this object |
0x14 | u32 | Start of 0x10 byte unnamed kernel object in KThread |
0x24 | u32 | Start of 0x8 byte unnamed kernel object in KThread |
0x2C | u32 | Start of unnamed kernel object of undetermined size in KThread |
0x38 | KDebugThread* | Pointer to KDebugThread object used with the current KThread |
0x3C | u32 | Thread priority |
0x40 | u32 | Pointer to object the KThread is waiting on- can be a timer, event, session, etc. |
0x48 | u32 | Double pointer to KThread of unknown use/creation - used in scheduler |
0x4C | u32 | Arbitration address |
0x5C | KLinkedListNode* | Objects the Thread waits for? |
0x60 | u32 | Unknown list count |
0x64 | KLinkedListNode* | First in unknown list |
0x68 | KLinkedListNode* | Last in unknown list |
0x6C | s32 | Thread priority |
0x70 | s32 | Processor that created the thread |
0x7E | u8 | Thread type - kernel threads are 0-2 and are assigned values based on where in the kernel the thread is created. All threads created outside the kernel environment are type 3. |
0x80 | KProcess* | Process the thread belongs to (virtual address) |
0x84 | u32 | Thread id |
0x88 | u32* | Ptr to svc mode register storage for KThread. |
0x8C | u32* | End-address of the page for this thread allocated in the 0xFF4XX000 region. Thus, if the beginning of this mapped page is 0xFF401000, this ptr would be 0xFF402000. Thread context page - used for thread svc stack, preserving svc mode registers and VFP exception register for thread. |
0x90 | s32 | Ideal processor (processorid value from svcCreateThread) |
0x94 | void* | Ptr to threadlocalstorage |
0x98 | void* | Ptr to threadlocalstorage in FCRAM via kernel vmem |
0xA0 | KThread* | Previous (virtual address) |
0xA4 | KThread* | Next (virtual address) |
0xA8 | struct { KThread* first; KThread* last; } ptr | Pointer to linked list that has stolen it, or 0 if in normal list |