Difference between revisions of "KClassToken"

From 3dbrew
Jump to navigation Jump to search
Line 62: Line 62:
 
! Associated class
 
! Associated class
 
|-
 
|-
| 1
 
 
| 0
 
| 0
 
| 0
 
| 0
| 1
 
| 1
 
 
| 0
 
| 0
| 1
 
 
| 0
 
| 0
| 0x59
+
| 0
| [[KDmaObject]]
+
| 0
 +
| 0
 +
| 0
 +
| 0x0
 +
| [[KAutoObject]]
 
|-
 
|-
| 1
 
 
| 0
 
| 0
| 1
 
 
| 0
 
| 0
| 1
 
 
| 0
 
| 0
| 1
 
 
| 0
 
| 0
| 0x55
+
| 0
| [[KServerPort]]
+
| 0
|-
 
| 1
 
 
| 0
 
| 0
 
| 1
 
| 1
 +
| 0x1
 +
| [[KSynchronizationObject]]
 +
|-
 
| 0
 
| 0
 
| 0
 
| 0
Line 92: Line 89:
 
| 1
 
| 1
 
| 1
 
| 1
| 0xC5
+
| 1
| [[KProcess]]
+
| 1
 +
| 1
 +
| 0x1F
 +
| [[KEvent]]
 
|-
 
|-
 +
| 0
 +
| 0
 
| 1
 
| 1
 
| 0
 
| 0
 
| 1
 
| 1
 +
| 1
 +
| 1
 +
| 1
 +
| 0x2F
 +
| [[KSemaphore]]
 +
|-
 +
| 0
 
| 0
 
| 0
 
| 1
 
| 1
 
| 1
 
| 1
 
| 0
 
| 0
 +
| 1
 
| 0
 
| 0
 +
| 1
 
| 0x35
 
| 0x35
 
| [[KTimer]]
 
| [[KTimer]]
Line 108: Line 119:
 
| 0
 
| 0
 
| 0
 
| 0
| 0
 
| 0
 
 
| 1
 
| 1
 
| 1
 
| 1
 +
| 1
 +
| 0
 
| 0
 
| 0
 
| 1
 
| 1
| 0xB0
+
| 0x39
| [[KSharedMemory]]
+
| [[KMutex]]
 
|-
 
|-
 
| 0
 
| 0
 +
| 1
 
| 0
 
| 0
 
| 0
 
| 0
 
| 1
 
| 1
| 0
+
| 1
 
| 0
 
| 0
 
| 1
 
| 1
| 1
+
| 0x4D
| 0xC8
+
| [[KDebug]]
| [[KResourceLimit]]
 
 
|-
 
|-
 +
| 0
 
| 1
 
| 1
 
| 0
 
| 0
 +
| 1
 
| 0
 
| 0
 +
| 1
 
| 0
 
| 0
 +
| 1
 +
| 0x55
 +
| [[KServerPort]]
 +
|-
 
| 0
 
| 0
 +
| 1
 
| 0
 
| 0
 +
| 1
 +
| 1
 
| 0
 
| 0
 
| 0
 
| 0
| 0x01
+
| 1
| [[KSynchronizationObject]]
+
| 0x59
 +
| [[KDmaObject]]
 
|-
 
|-
| 0
 
| 0
 
| 0
 
 
| 0
 
| 0
 
| 1
 
| 1
 
| 1
 
| 1
| 1
 
| 0
 
| 0x70
 
| [[KSession]]
 
|-
 
| 0
 
 
| 0
 
| 0
 
| 0
 
| 0
Line 156: Line 169:
 
| 0
 
| 0
 
| 1
 
| 1
 +
| 0x65
 +
| [[KClientPort]]
 +
|-
 
| 0
 
| 0
| 1
 
| 0xA8
 
| [[KPort]]
 
|-
 
| 1
 
 
| 1
 
| 1
 
| 1
 
| 1
 +
| 0
 
| 1
 
| 1
 
| 0
 
| 0
| 1
 
 
| 0
 
| 0
 
| 0
 
| 0
| 0x2F
+
| 0x68
| [[KSemaphore]]
+
| [[KCodeSet]]
 
|-
 
|-
 +
| 0
 
| 1
 
| 1
| 0
 
 
| 1
 
| 1
 
| 1
 
| 1
 
| 0
 
| 0
 
| 0
 
| 0
| 1
 
 
| 0
 
| 0
| 0x4D
+
| 0
| [[KDebug]]
+
| 0x70
 +
| [[KSession]]
 
|-
 
|-
 
| 1
 
| 1
 +
| 0
 +
| 0
 
| 0
 
| 0
 
| 1
 
| 1
 
| 1
 
| 1
| 0
 
| 0
 
 
| 0
 
| 0
 
| 1
 
| 1
Line 195: Line 206:
 
|-
 
|-
 
| 1
 
| 1
 +
| 0
 
| 0
 
| 0
 
| 1
 
| 1
 
| 0
 
| 0
 
| 1
 
| 1
| 0
 
 
| 0
 
| 0
 
| 1
 
| 1
Line 205: Line 216:
 
| [[KServerSession]]
 
| [[KServerSession]]
 
|-
 
|-
| 0
+
| 1
 
| 0
 
| 0
 
| 0
 
| 0
Line 212: Line 223:
 
| 0
 
| 0
 
| 0
 
| 0
| 1
+
| 0
 
| 0x98
 
| 0x98
 
| [[KAddressArbiter]]
 
| [[KAddressArbiter]]
 
|-
 
|-
 +
| 1
 
| 0
 
| 0
 +
| 1
 
| 0
 
| 0
 
| 0
 
| 0
Line 222: Line 235:
 
| 0
 
| 0
 
| 1
 
| 1
 +
| 0xA5
 +
| [[KClientSession]]
 +
|-
 
| 1
 
| 1
 
| 0
 
| 0
| 0x68
 
| [[KCodeSet]]
 
|-
 
| 1
 
| 1
 
| 1
 
 
| 1
 
| 1
 +
| 0
 
| 1
 
| 1
 
| 0
 
| 0
 
| 0
 
| 0
 
| 0
 
| 0
| 0x1F
+
| 0xA8
| [[KEvent]]
+
| [[KPort]]
 
|-
 
|-
 
| 1
 
| 1
 
| 0
 
| 0
 
| 1
 
| 1
| 0
 
| 0
 
 
| 1
 
| 1
| 1
 
| 0
 
| 0x65
 
| [[KClientPort]]
 
|-
 
 
| 0
 
| 0
 
| 0
 
| 0
 
| 0
 
| 0
 
| 0
 
| 0
| 0
+
| 0xB0
| 0
+
| [[KSharedMemory]]
| 0
 
| 0
 
| 0x00
 
| [[KAutoObject]]
 
 
|-
 
|-
 +
| 1
 
| 1
 
| 1
 
| 0
 
| 0
| 1
 
 
| 0
 
| 0
 
| 0
 
| 0
Line 268: Line 268:
 
| 0
 
| 0
 
| 1
 
| 1
| 0xA5
+
| 0xC5
| [[KClientSession]]
+
| [[KProcess]]
 
|-
 
|-
 +
| 1
 
| 1
 
| 1
 
| 0
 
| 0
 
| 0
 
| 0
 
| 1
 
| 1
| 1
 
| 1
 
 
| 0
 
| 0
 
| 0
 
| 0
| 0x39
+
| 0
| [[KMutex]]
+
| 0xC8
 +
| [[KResourceLimit]]
 
|}
 
|}

Revision as of 22:29, 10 December 2016


Size : 0x5 bytes

Offset Type Description
0x0 char* Pointer to kernel type string
0x4 u8 Kernel object descriptive bitflags


Each type of kernel object has a token that describes it. The token is used to make sure that a kernel object of a certain type is able to perform a function requested by the kernel.


Bitflags

Bit Description
0 Can synchronize
1 Is interruptible
2
3
4
5
6
7


Bitflags and their corresponding objects

Bits Value Associated class
0 0 0 0 0 0 0 0 0x0 KAutoObject
0 0 0 0 0 0 0 1 0x1 KSynchronizationObject
0 0 0 1 1 1 1 1 0x1F KEvent
0 0 1 0 1 1 1 1 0x2F KSemaphore
0 0 1 1 0 1 0 1 0x35 KTimer
0 0 1 1 1 0 0 1 0x39 KMutex
0 1 0 0 1 1 0 1 0x4D KDebug
0 1 0 1 0 1 0 1 0x55 KServerPort
0 1 0 1 1 0 0 1 0x59 KDmaObject
0 1 1 0 0 1 0 1 0x65 KClientPort
0 1 1 0 1 0 0 0 0x68 KCodeSet
0 1 1 1 0 0 0 0 0x70 KSession
1 0 0 0 1 1 0 1 0x8D KThread
1 0 0 1 0 1 0 1 0x95 KServerSession
1 0 0 1 1 0 0 0 0x98 KAddressArbiter
1 0 1 0 0 1 0 1 0xA5 KClientSession
1 0 1 0 1 0 0 0 0xA8 KPort
1 0 1 1 0 0 0 0 0xB0 KSharedMemory
1 1 0 0 0 1 0 1 0xC5 KProcess
1 1 0 0 1 0 0 0 0xC8 KResourceLimit