Difference between revisions of "KMutex"
Jump to navigation
Jump to search
Line 44: | Line 44: | ||
| 0x20 | | 0x20 | ||
| KThread * | | KThread * | ||
− | | Thread that has the KMutex locked | + | | Thread that has the KMutex locked |
|- | |- | ||
| 0x24 | | 0x24 | ||
Line 54: | Line 54: | ||
| Owner | | Owner | ||
|- | |- | ||
+ | |} | ||
+ | |||
+ | KMutex + 0x20 is initialized to 0 if initialLocked is false when calling CreateMutex. If initialLocked is true, the locking thread is set to the current thread. |
Revision as of 09:18, 18 April 2015
class KMutex extends KSynchronizationObject;
Size : 0x2C 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 | ? | ? |
0x18 | ? | ? |
0x1C | u32 | 1 if locked, 0 if unlocked |
0x20 | KThread * | Thread that has the KMutex locked |
0x24 | u32 | Unknown 0x3F ?maybe priority? |
0x28 | KProcess* | Owner |
KMutex + 0x20 is initialized to 0 if initialLocked is false when calling CreateMutex. If initialLocked is true, the locking thread is set to the current thread.