KMutex: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
Bond697 (talk | contribs)
No edit summary
Bond697 (talk | contribs)
No edit summary
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.