Difference between revisions of "KThread"

From 3dbrew
Jump to navigation Jump to search
Line 17: Line 17:
 
| u32
 
| u32
 
| Reference count
 
| Reference count
 +
|-
 +
| 0x40
 +
| u32
 +
| Arbitration ???
 +
|-
 +
| 0x48
 +
| u32
 +
| Arbitration ???
 +
|-
 +
| 0x4C
 +
| u32
 +
| Arbitration address
 
|-
 
|-
 
| 0x6C
 
| 0x6C
Line 40: Line 52:
 
| 0xA0
 
| 0xA0
 
| KThread*
 
| KThread*
| Previous ? (virtual address)
+
| Previous (virtual address)
 
|-
 
|-
 
| 0xA4
 
| 0xA4
 
| KThread*
 
| KThread*
| Next ? (virtual address)
+
| Next (virtual address)
 +
|-
 +
| 0xA8
 +
| struct { KThread* first; KThread* last; } ptr
 +
| Pointer to linked list that has stolen it, or 0 if in normal list
 
|}
 
|}

Revision as of 12:33, 29 May 2014

class KThread extends KSynchronizationObject;

Size : 0xB0 bytes

Offset Type Description
0x0 u32 Pointer to vtable
0x4 u32 Reference count
0x40 u32 Arbitration ???
0x48 u32 Arbitration ???
0x4C u32 Arbitration address
0x6C s32 Thread priority
0x80 KProcess* Process the thread belongs to (virtual address)
0x84 u32 Thread id
0x88 u32* ptr = *(KThread+0x8C) - 0xB0
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.
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