KMutex

From 3dbrew
Revision as of 09:18, 18 April 2015 by Bond697 (talk | contribs)
Jump to navigation Jump to search

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.