KMutex: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
Neobrain (talk | contribs)
No edit summary
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Kernel objects]]
[[Category:Kernel synchronization objects]]
class [[KMutex]] extends [[KSynchronizationObject]];
class [[KMutex]] extends [[KSynchronizationObject]];


Line 11: Line 11:
|-
|-
| 0x0
| 0x0
| [[KSynchronizationObject]]
| u32
| Base object
| Pointer to vtable
|-
| 0x4
| u32
| Reference count
|-
| 0x8
| u32
| Node count for threads
|-
| 0xC
| [[KLinkedListNode]]*
| Pointer to first KLinkedListNode in the list of threads that sync with this object
|-
| 0x10
| [[KLinkedListNode]]*
| Pointer to last KLinkedListNode in the list of threads that sync with this object
|-
|-
| 0x14
| 0x14
| ?
| KMutexLinkedListNode
| ?
| Previous and next mutexes
|-
| 0x18
| ?
| ?
|-
|-
| 0x1C
| 0x1C
Line 39: Line 51:
|-
|-
|}
|}
With the following declarations: <code>struct KMutexLinkedList { KMutex *first, *last; };</code> and <code>struct KMutexLinkedListNode { KMutex *prev, *next; };</code>.

Latest revision as of 00:50, 10 December 2016

class KMutex extends KSynchronizationObject;

Size : 0x2C bytes

Offset Type Description
0x0 u32 Pointer to vtable
0x4 u32 Reference count
0x8 u32 Node count for threads
0xC KLinkedListNode* Pointer to first KLinkedListNode in the list of threads that sync with this object
0x10 KLinkedListNode* Pointer to last KLinkedListNode in the list of threads that sync with this object
0x14 KMutexLinkedListNode Previous and next mutexes
0x1C u32 Threads using this mutex
0x20 KThread * Thread that has the KMutex locked
0x24 u32 Priority
0x28 KProcess* Owner

With the following declarations: struct KMutexLinkedList { KMutex *first, *last; }; and struct KMutexLinkedListNode { KMutex *prev, *next; };.