Kernel
KAutoObject
Size: 0x10
| Offset | Type | Description |
|---|---|---|
| 0 | * | Vtable |
| 8 | u64 | ReferenceCount |
KSynchronizationObject
Size: 0x28
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | u64 | ThreadSyncNum |
| 0x18 | #KLinkedListNode | ThreadSyncList |
KRecursiveLock
Size: 0x8
| Offset | Type | Description |
|---|---|---|
| 0 | u64 | OwnerTag |
KSpinLock
Size: 0x1
| Offset | Type | Description |
|---|---|---|
| 0 | u8 | IsBusy |
KLockedList
Size: 0x28
| Offset | Type | Description |
|---|---|---|
| 0 | u64 | Count |
| 8 | #KLinkedListNode | List |
| 0x18 | #KRecursiveLock | Mutex |
| 0x20 | u64 | MaxCount |
KLinkedListNode
Size: 0x10
| Offset | Type | Description |
|---|---|---|
| 0 | #KLinkedListNode* | Prev |
| 8 | #KLinkedListNode* | Next |
KProcess
[1.0.0] Size: 0x5B0
[2.0.0] Size: 0x2480
Inherits from: #KSynchronizationObject
| 1.0.0 Offset | Type | Description |
|---|---|---|
| 0 | #KSynchronizationObject | Inheritance |
| 0x28 | ||
| 0x38 | #KMemoryManager | MemoryManager |
| 0xF0 | u64 | TotalMemUsage |
| 0xF8 | u64 | TlsPagesListCount |
| 0x100 | #KLinkedListNode | TlsPagesList |
| 0x110 | s32 | DefaultCpuCore |
| 0x118 | KDebug* | Debug |
| 0x120 | #KResourceLimit* | ResourceLimit |
| 0x128 | u32 | State |
| 0x130 | #KRecursiveLock | ProcessMutex |
| 0x138 | #KRecursiveLock | ThreadingMutex |
| 0x140 | #KLinkedListNode<#KThread> | ThreadArbiterList |
| 0x150 | KLinkedListNode | |
| 0x160 | u64[4] | RandomEntropy |
| 0x180 | u8 | HasStateChanged |
| 0x181 | u8 | HasInitialized |
| 0x182 | u8 | IsSystem |
| 0x183 | u8[12] | From_CreateProcessInfo_0 |
| 0x18F | u8 | InitiallyZero |
| 0x190 | u16 | NumberOfCreatedThreads |
| 0x192 | u16 | ThreadingRelatedInitiallyZero |
| 0x194 | u32 | ProcessFlags |
| 0x198 | #KProcessCapabilities | Capabilities |
| 0x248 | u64 | TitleId |
| 0x250 | u64 | ProcessId |
| 0x258 | u64 | CreatedTickstamp |
| 0x260 | u64 | Entrypoint |
| 0x268 | u64 | CodeMemUsage |
| 0x270 | u64 | DynamicMemUsage |
| 0x278 | u64 | MaxTotalMemUsage |
| 0x280 | u64 | From_CreateProcessInfo_0xC |
| 0x288 | #KProcessHandleTable | HandleTable |
| 0x528 | void* | UsermodeExceptionTlsArea |
| 0x530 | #KLinkedListNode<#KThread> | ExceptionThreadList |
| 0x540 | #KThread* | ExceptionThread |
| 0x548 | #KLinkedListNode<#KThread> | ThreadList |
| 0x558 | u32 | |
| 0x55C | u32 | HasStarted |
| 0x560 | u64[8] | |
| 0x5A0 | u64 | |
| 0x5A8 | u64 |
| 2.0.0 Offset | Type | Description |
|---|
KProcessCapabilities
Size: 0xB0
| Offset | Type | Description |
|---|---|---|
| 0 | u8[16] | SvcAccessMask |
| 0x10 | u8[128] | IrqAccessMask |
| 0x90 | u64 | AllowedCpuIdBitmask |
| 0x98 | u64 | AllowedThreadPrioBitmask |
| 0xA0 | u32 | DebuggingFlags |
| 0xA4 | u32 | HandleTableSize |
| 0xA8 | u32 | KernelReleaseVersion |
| 0xAC | u32 | ApplicationType |
KProcessHandleTable
Size: 0x2A0
| Offset | Type | Description |
|---|---|---|
| 0 | #KHandleEntry* | TablePtr |
| 8 | #KHandleEntry* | NextFreeEntry |
| 0x10 | #KHandleEntry[40] | InternalTable |
| 0x290 | u16 | Size |
| 0x292 | u16 | |
| 0x294 | u16 | IdCounter |
| 0x296 | u16 | NumActiveSlots |
| 0x298 | #KSpinLock | Lock |
KHandleEntry
| Offset | Type | Description |
|---|---|---|
| 0 | u16 | HandleId |
| 2 | u8 | ObjectType |
| 8 | #KAutoObject* | Object |
KMemoryManager
Size: 0xB8
| Offset | Type | Description |
|---|---|---|
| 0 | * | Vtable |
| 8 | u64 | AddrSpaceMinAddr |
| 0x10 | u64 | AddrSpaceMaxAddr |
| 0x18 | u64 | HeapRegionBaseAddr |
| 0x20 | u64 | HeapRegionEndAddr |
| 0x28 | u64 | HeapCurAddr |
| 0x30 | u64 | MapRegionBaseAddr |
| 0x38 | u64 | MapRegionEnd |
| 0x40 | u64 | HeapMaxAllocation |
| 0x48 | #KRecursiveLock | Mutex |
| 0x50 | #KPageTable | PageTable |
| 0x60 | #KMemoryBlockManager | MemoryBlockManager |
| 0x78 | bool | IsKernel |
| 0x79 | bool | IsSystem |
| 0x7A | bool | IsAddrSpace36Bit |
| 0x7B | bool | HasAslr |
| 0x7C | u32 | Is_0x59_If_Cfg12_Bit0_ElseZero |
| 0x80 | u32 | Is_0x5A_If_Cfg12_Bit0_ElseZero |
| 0x84 | u32 | Is_0x58_If_Cfg12_Bit0_ElseZero |
| 0x88 | ||
| 0x90 | ||
| 0x98 | ||
| 0xA0 | u64 | TranslationTableBaseRegister0 |
| 0xA8 | u64 | TranslationControlRegister |
| 0xB0 | u8 | AsidTagValue |
KPageTable
Size: 0x10
| Offset | Type | Description |
|---|---|---|
| 0 | void* | RawPageTablePtr |
| 8 | bool | |
| 0xC | u32 | AddrSpaceSizeInGb |
KMemoryBlockManager
Size: 0x18
| Offset | Type | Description |
|---|---|---|
| 0 | #KMemoryBlock* | MemoryBlockList |
| 8 | u64 | MaxAddr |
| 0x10 | u64 | MinAddr |
KMemoryBlock
Size: 0x40
| Offset | Type | Description |
|---|---|---|
| 0 | #KLinkedListNode<#KMemoryBlock> | NodeFor__MemoryBlockList |
| 0x10 | ||
| 0x18 | ||
| 0x20 | u64 | BaseAddress |
| 0x28 | u64 | NumOfPages |
| 0x30 | u32 | State |
| 0x34 | u16 | IpcRefCount [?] |
| 0x36 | u16 | DeviceMapRefCount |
| 0x38 | u8 | Permission |
| 0x39 | u8 | UnkAttribute |
| 0x3A | u8 | Attribute |
KMemoryBlockInfo
Size: 0x20
| Offset | Type | Description |
|---|---|---|
| 0 | u64 | BaseAddress |
| 8 | u64 | Size |
| 0x10 | u32 | State |
| 0x14 | u8 | Permission |
| 0x15 | u8 | Attribute |
| 0x16 | u8 | UnkAttribute |
| 0x18 | u16 | IpcRefCount [?] |
| 0x1A | u16 | DeviceMapRefCount |
KTransferMemory
Size: 0x48
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | KMemoryBlockList | Blocks |
| 0x28 | #KProcess* | OwnerProcess |
| 0x30 | u64 | BaseAddress |
| 0x38 | KRecursiveLock | Mutex |
| 0x40 | int | Permission |
| 0x44 | bool | HasInited |
| 0x45 | bool | IsMapped |
Size: 0x40
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | KMemoryBlockList | Blocks |
| 0x28 | #KProcess* | OwnerProcess |
| 0x30 | int | LocalPermission |
| 0x34 | int | RemotePermission |
| 0x38 | bool | HasInited |
KPort
Size: 0xA8
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | #KServerPort | ServerSide |
| 0x60 | #KClientPort | ClientSide |
| 0x98 | u64 | |
| 0xA0 | bool | HasInited |
| 0xA1 | bool | IsLight |
KServerPort
Size: 0x50
Inherits from: #KSynchronizationObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KSynchronizationObject | Inheritance |
| 0x28 | #KLinkedListNode | IncomingConnections |
| 0x38 | #KLinkedListNode | IncomingLightConnections |
| 0x48 | #KPort* | Parent |
KClientPort
Size: 0x38
Inherits from: #KSynchronizationObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KSynchronizationObject | Inheritance |
| 0x28 | u32 | NumSessions |
| 0x2C | u32 | MaxSessions |
| 0x30 | #KPort* | Parent |
KSession
Size: 0xB0
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | #KServerSession | ServerSide |
| 0x70 | #KClientSession | ClientSide |
| 0xA8 | bool | HasInited |
KServerSession
Size: 0x60
Inherits from: #KSynchronizationObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KSynchronizationObject | Inheritance |
| 0x28 | KLinkedListNode | NodeFor__IncomingConnections |
| 0x38 | ||
| 0x40 | KLinkedListNode | |
| 0x50 | ||
| 0x58 |
KClientSession
Size: 0x38
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | #KSession* | Parent |
| 0x18 | bool | HasInited |
| 0x20 | #KClientPort* | ParentPort |
| 0x28 | ||
| 0x30 | #KProcess* | CreatorProcess |
KLightSession
Size: 0xA8
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | #KLightSessionServer | ServerSide |
| 0x68 | #KLightSessionClient | ClientSide |
| 0xA0 | bool | HasInited |
KLightServerSession
Size: 0x58
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | KLinkedListNode | NodeFor__IncomingLightConnections |
| 0x20 | #KLightSession | Parent |
| 0x28 | u64[6] |
KLightClientSession
Size: 0x38
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | #KLightSession* | Parent |
| 0x18 | bool | HasInited |
| 0x20 | #KClientPort* | Port |
| 0x28 | ||
| 0x30 | #KProcess* | CreatorProcess |
KEvent
Size: 0x70
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | #KReadableEvent | ReadableEvent |
| 0x48 | #KWritableEvent | WritableEvent |
| 0x60 | #KProcess* | Creator |
| 0x68 | bool | HasInited |
KReadableEvent
Size: 0x38
Inherits from: #KSynchronizationEvent
| Offset | Type | Description |
|---|---|---|
| 0 | #KSynchronizationObject | Inheritance |
| 0x28 | bool | |
| 0x30 | #KEvent* | Parent |
KWritableEvent
Size: 0x18
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | #KEvent* | Parent |
KInterruptEvent
Size: 0x50
Inherits from: #KReadableEvent
| Offset | Type | Description |
|---|---|---|
| 0 | #KReadableEvent | Inheritance |
| 0x38 | ||
| 0x48 | u32 | IrqId (or -1) |
KDeviceAddressSpace
Size: 0x70
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | #KRecursiveLock | Mutex |
| 0x18 | #KSmmuManager | Manager |
| 0x58 | u64 | BaseAddress |
| 0x60 | u64 | Size |
| 0x68 | bool | HasInited |
[1.0.0] It was called KAddressSpace.
KSmmuManager
Size: 0x40
| Offset | Type | Description |
|---|---|---|
| 0 | u8[4] | PageTableAsids |
| 8 | void*[4] | PageDirectories |
| 0x28 | u64 | AttachedDevicesMask |
| 0x30 | u32 | RegVal32Bit |
| 0x34 | u32 | RegVal32BitEmpty |
| 0x38 | u32 | RegVal36Bit |
| 0x3C | u32 | RegVal36BitEmpty |
KResourceLimit
Size: 0x68
Inherits from: #KAutoObject
| Offset | Type | Description |
|---|---|---|
| 0 | #KAutoObject | Inheritance |
| 0x10 | u64[5] | CurrentValue |
| 0x38 | u64[5] | LimitValue |
| 0x60 | #KRecursiveLock | Mutex |
KPoolManager
Size: 0x380
| Offset | Type | Description |
|---|---|---|
| 0 | #KPoolAllocator[3] | Allocator |
| 0x348 | #KPoolRefManager | RefManager |
| 0x368 | u64 | AllocationCounter |
| 0x370 | u64 | |
| 0x378 | #KRecursiveLock | Mutex |
KPoolAllocator
Size: 0x118
| Offset | Type | Description |
|---|---|---|
| 0 | void* | MemoryBase |
| 8 | u64 | MemorySize |
| 0x10 | s32 | NumPools |
| 0x18 | #KPool[8] | Pools |
KPool
Size: 0x20
| Offset | Type | Description |
|---|---|---|
| 0 | KPoolHeader* | FirstFreeChunk |
| 8 | u64 | |
| 0x10 | u64 | |
| 0x18 | void* | SingletonTableEntryPtr |
KPoolRefManager
Size: 0x20
| Offset | Type | Description |
|---|---|---|
| 0 | #KPoolManager* | Parent |
| 8 | void* | PoolBase |
| 0x10 | u64 | MaxPage |
| 0x18 | u16* | RefCountTable |