Difference between revisions of "KSession"

From 3dbrew
Jump to navigation Jump to search
(Undo revision 18440 by Neobrain (talk))
(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 00:23, 21 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):

KAutoObject:

Offset Type Description
0x0 u32 Pointer to vtable
0x4 u32 Reference count

KServerSession:

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

KClientSession:

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