Difference between revisions of "KSemaphore"

From 3dbrew
Jump to navigation Jump to search
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Kernel objects]]
+
[[Category:Kernel synchronization objects]]
class [[KSemaphore]] extends [[KSynchronizationObject]];
+
[[Category:Kernel interrupt events]]
 +
class [[KSemaphore]] extends [[KSynchronizationObject]] and [[KUserBindableInterruptEvent]];
  
 
Size : 0x2C bytes
 
Size : 0x2C bytes
Line 20: Line 21:
 
| 0x8
 
| 0x8
 
| u32
 
| u32
| Unknown
+
| Count of KThreads that sync with this object - number of nodes in the linked list below
 
|-
 
|-
 
| 0xC
 
| 0xC
| u32
+
| KLinkedListNode*
| Pointer to semaphore data node
+
| Pointer to first KLinkedListNode in list of KThreads that sync with this semaphore
 
|-
 
|-
 
| 0x10
 
| 0x10
| u32
+
| KLinkedListNode*
| Pointer identical to the one above
+
| Pointer to last KLinkedListNode in list of KThreads that sync with this semaphore
 
|-
 
|-
 
| 0x14
 
| 0x14
| u32
+
| [[KUserBindableInterruptEvent]]
| Pointer to smaller vtable
+
| Interrupt event (*this)
|-
 
| 0x18
 
| u32
 
| Unknown
 
|-
 
| 0x1C
 
| u32
 
| Unknown
 
 
|-
 
|-
 
| 0x20
 
| 0x20
 
| u32
 
| u32
| Unknown
+
| Count
 
|-
 
|-
 
| 0x24
 
| 0x24
 
| u32
 
| u32
| Count
+
| Max count
 
|-
 
|-
 
| 0x28
 
| 0x28

Latest revision as of 14:35, 10 December 2016

class KSemaphore extends KSynchronizationObject and KUserBindableInterruptEvent;

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 list of KThreads that sync with this semaphore
0x10 KLinkedListNode* Pointer to last KLinkedListNode in list of KThreads that sync with this semaphore
0x14 KUserBindableInterruptEvent Interrupt event (*this)
0x20 u32 Count
0x24 u32 Max count
0x28 KProcess* Owner