KMutex: Difference between revisions

Neimod (talk | contribs)
Created page with "Category:Kernel objects class KMutex extends KSynchronizationObject;"
 
No edit summary
 
(16 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Kernel objects]]
[[Category:Kernel synchronization objects]]
class [[KMutex]] extends [[KSynchronizationObject]];
class [[KMutex]] extends [[KSynchronizationObject]];
Size : 0x2C bytes
{| class="wikitable" border="1"
|-
!  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: <code>struct KMutexLinkedList { KMutex *first, *last; };</code> and <code>struct KMutexLinkedListNode { KMutex *prev, *next; };</code>.