Difference between revisions of "KSession"

From 3dbrew
Jump to navigation Jump to search
Line 11: Line 11:
 
|-
 
|-
 
| 0x0
 
| 0x0
| u32
+
| [[KAutoObject]]
| Pointer to vtable
+
| Base object
|-
 
| 0x4
 
| u32
 
| Reference count
 
 
|-
 
|-
 
| 0x20
 
| 0x20
Line 44: Line 40:
 
|-
 
|-
 
| 0x0
 
| 0x0
| u32
+
| [[KAutoObject]]
| Pointer to vtable
+
| Base object
|-
 
| 0x4
 
| u32
 
| Reference count
 
 
|-
 
|-
 
| 0x8
 
| 0x8
| u32
+
| [[KServerSession]]
| Pointer to vtable
+
| Server side object for the session
|-
 
| 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
+
| [[KClientSession]]
| Pointer to vtable
+
| Client side object for the session
|-
 
| 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 23:22, 20 October 2016

class KSession extends KAutoObject;

Size : 0x4C bytes

Offset Type Description
0x0 KAutoObject Base object
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 KAutoObject Base object
0x8 KServerSession Server side object for the session
0x2C KClientSession Client side object for the session