KSession: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
Bond697 (talk | contribs)
Undo revision 18440 by Neobrain (talk)
SciresM (talk | contribs)
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