KThread: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
No edit summary  | 
				No edit summary  | 
				||
| Line 48: | Line 48: | ||
| 0x3C  | | 0x3C  | ||
| u32  | | u32  | ||
|   | | Base thread priority  | ||
|-  | |-  | ||
| 0x40  | | 0x40  | ||
Revision as of 05:35, 21 April 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 | Base 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 | Count of KMutex objects this thread is using | 
| 0x64 | KLinkedListNode* | Pointer to first KLinkedListNode in node list of KMutex objects this thread is using | 
| 0x68 | KLinkedListNode* | Pointer to last KLinkedListNode in node list of KMutex objects this thread is using | 
| 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 |