KSession: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
mNo edit summary  | 
				No edit summary  | 
				||
| Line 11: | Line 11: | ||
|-  | |-  | ||
| 0x0  | | 0x0  | ||
|   | | u32  | ||
|   | | Pointer to vtable  | ||
|-  | |||
| 0x4  | |||
| u32  | |||
| Reference count  | |||
|-  | |-  | ||
| 0x20  | | 0x20  | ||
| Line 40: | Line 44: | ||
|-  | |-  | ||
| 0x0  | | 0x0  | ||
|   | | u32  | ||
|   | | Pointer to vtable  | ||
|-  | |||
| 0x4  | |||
| u32  | |||
| Reference count  | |||
|-  | |-  | ||
| 0x8  | | 0x8  | ||
| [[KServerSession]]  | | 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  | |||
|-  | |-  | ||
| 0x2C  | | 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  | |||
|-  | |-  | ||
Revision as of 00:38, 23 August 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
| Offset | Type | Description | 
|---|---|---|
| 0x0 | u32 | Pointer to vtable | 
| 0x4 | u32 | Reference count | 
| 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 | 
| 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 |