Difference between revisions of "KMutex"

From 3dbrew
Jump to navigation Jump to search
Line 44: Line 44:
 
| 0x20
 
| 0x20
 
| KThread *
 
| KThread *
| Thread that has the KMutex locked - initialized to 0 if initialLocked is false when calling CreateMutex
+
| 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 10: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.