Difference between revisions of "KSession"

From 3dbrew
Jump to navigation Jump to search
(Undo revision 18440 by Neobrain (talk))
Line 11: Line 11:
 
|-
 
|-
 
| 0x0
 
| 0x0
| [[KAutoObject]]
+
| u32
| Base object
+
| Pointer to vtable
 +
|-
 +
| 0x4
 +
| u32
 +
| Reference count
 
|-
 
|-
 
| 0x20
 
| 0x20
Line 40: Line 44:
 
|-
 
|-
 
| 0x0
 
| 0x0
| [[KAutoObject]]
+
| u32
| Base object
+
| Pointer to vtable
 +
|-
 +
| 0x4
 +
| u32
 +
| Reference count
 
|-
 
|-
 
| 0x8
 
| 0x8
| [[KServerSession]]
+
| u32
| Server side object for the session
+
| 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
| [[KClientSession]]
+
| u32
| Client side object for the session
+
| 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 23:32, 20 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

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