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>.