KSession: Difference between revisions
Jump to navigation
Jump to search
maybe resolve some drama |
|||
| Line 35: | Line 35: | ||
Structure for [[7.0.0-13]] NATIVE_FIRM upward: | Structure for [[7.0.0-13]] NATIVE_FIRM upward: | ||
Size : 0x4C bytes | Size : 0x4C bytes ([[KAutoObject]], [[KServerSession]], [[KClientSession]], sequentially): | ||
[[KAutoObject]]: | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 50: | Line 51: | ||
| u32 | | u32 | ||
| Reference count | | Reference count | ||
|- | |||
|} | |||
[[KServerSession]]: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Type | |||
! Description | |||
|- | |- | ||
| 0x8 | | 0x8 | ||
| Line 86: | Line 95: | ||
| [[KThread]]* | | [[KThread]]* | ||
| KThread that originated the session | | KThread that originated the session | ||
|- | |||
|} | |||
[[KClientSession]]: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Type | |||
! Description | |||
|- | |- | ||
| 0x2C | | 0x2C | ||
| Line 119: | Line 136: | ||
| Pointer to associated client port inside parent KPort | | Pointer to associated client port inside parent KPort | ||
|- | |- | ||
|} | |||
Revision as of 23:23, 20 October 2016
class KSession extends KAutoObject;
Size : 0x4C bytes
| Offset | Type | Description |
|---|---|---|
| 0x0 | u32 | Pointer to vtable |
| 0x4 | u32 | Reference count |
| 0x20 | KThread* | X ? |
| 0x24 | KThread* | Y ? |
| 0x2C | KThread* | Z ? |
It seems X=Y=Z. X, Y and Z can be NULL.
Structure for 7.0.0-13 NATIVE_FIRM upward:
Size : 0x4C bytes (KAutoObject, KServerSession, KClientSession, sequentially):
| Offset | Type | Description |
|---|---|---|
| 0x0 | u32 | Pointer to vtable |
| 0x4 | u32 | Reference count |
| Offset | Type | Description |
|---|---|---|
| 0x8 | u32 | Pointer to vtable |
| 0xC | u32 | Reference count |
| 0x10 | u32 | Node count for threads |
| 0x14 | KLinkedListNode* | Pointer to first KLinkedListNode in the list of threads that sync with this object |
| 0x18 | KLinkedListNode* | Pointer to last KLinkedListNode in the list of threads that sync with this object |
| 0x1C | KSession* | Pointer to parent session |
| 0x20 | KThread* | Last stolen KThread during sync request- current thread when KServerSession code is running during svc - noted in KThread+0xA8 as well |
| 0x24 | KThread* | First stolen KThread during sync request |
| 0x28 | KThread* | KThread that originated the session |
| Offset | Type | Description |
|---|---|---|
| 0x2C | u32 | Pointer to vtable |
| 0x30 | u32 | Reference count |
| 0x34 | u32 | KLinkedListNode count for object |
| 0x38 | KLinkedListNode* | Pointer to first KLinkedListNode in list of KThreads using this client session |
| 0x3C | KLinkedListNode* | Pointer to last KLinkedListNode in list of KThreads using this client session |
| 0x40 | KSession* | Pointer to parent session |
| 0x44 | u32 | Session status |
| 0x48 | KClientPort* | Pointer to associated client port inside parent KPort |