KSession: Difference between revisions
No edit summary |
No edit summary |
||
(13 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Kernel objects]] | [[Category:Kernel auto objects]] | ||
class [[KSession]] extends [[KAutoObject]]; | class [[KSession]] extends [[KAutoObject]]; | ||
Size : 0x4C bytes | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 18: | Line 19: | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| KThread* | | [[KThread]]* | ||
| X ? | | X ? | ||
|- | |- | ||
| 0x24 | | 0x24 | ||
| KThread* | | [[KThread]]* | ||
| Y ? | | Y ? | ||
|- | |- | ||
| 0x2C | | 0x2C | ||
| KThread* | | [[KThread]]* | ||
| Z ? | | Z ? | ||
|} | |} | ||
Line 32: | Line 33: | ||
Structure for [[ | Structure for at least [[5.0.0-11]] NATIVE_FIRM upward: | ||
Size : 0x4C bytes ([[KAutoObject]], [[KServerSession]], [[KClientSession]], sequentially): | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Offset | ! Offset | ||
! Type | !colspan="2"|Type | ||
! Description | ! Description | ||
|- | |- | ||
| 0x0 | | 0x0 | ||
|rowspan="2"|[[KAutoObject]] | |||
| u32 | | u32 | ||
| Pointer to vtable | | Pointer to vtable | ||
Line 51: | Line 54: | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| KServerSession | |rowspan="9"|[[KServerSession]] | ||
| | | u32 | ||
| Pointer to vtable | |||
|- | |||
| 0xC | |||
| u32 | |||
| Reference count | |||
|- | |||
| 0x10 | |||
| u32 | |||
| KLinkedListNode count for sync 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 | |||
|- | |- | ||
| 0x2C | | 0x2C | ||
| KClientSession | |rowspan="8"|[[KClientSession]] | ||
| | | u32 | ||
| Pointer to vtable | |||
|- | |- | ||
| 0x30 | |||
| u32 | |||
| Reference count | |||
|- | |||
| 0x34 | |||
| u32 | |||
| KLinkedListNode count for sync threads | |||
|- | |||
| 0x38 | |||
| [[KLinkedListNode]]* | |||
| Pointer to first KLinkedListNode in the list of threads that sync with this object | |||
|- | |||
| 0x3C | |||
| [[KLinkedListNode]]* | |||
| Pointer to last KLinkedListNode in the list of threads that sync with this object | |||
|- | |||
| 0x40 | |||
| KSession* | |||
| Pointer to parent session | |||
|- | |||
| 0x44 | |||
| u32 | |||
| Session status | |||
|- | |||
| 0x48 | |||
| [[KClientPort]]* | |||
| Pointer to associated client port inside parent KPort | |||
|- | |||
|} | |||
Session status: | |||
1: open<br> | |||
2: closed by client<br> | |||
3: closed by server? |