Difference between revisions of "Kernel"
Line 805: | Line 805: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
− | ! Offset | + | ! Offset || Type || Description |
− | |||
− | |||
|- | |- | ||
| 0 || [[#KSynchronizationObject]] || Inheritance | | 0 || [[#KSynchronizationObject]] || Inheritance | ||
Line 813: | Line 811: | ||
| 0x28 || KLinkedListNode || NodeFor__IncomingConnections | | 0x28 || KLinkedListNode || NodeFor__IncomingConnections | ||
|- | |- | ||
− | | 0x38 || || | + | | 0x38 || [[#KSession*]] || Parent |
|- | |- | ||
− | | 0x40 || KLinkedListNode || | + | | 0x40 || KLinkedListNode<[[#KSessionRequest]]*> || RequestList |
|- | |- | ||
− | | 0x50 || || | + | | 0x50 || [[#KSessionRequest]]* || ActiveRequest |
|- | |- | ||
| 0x58 || || | | 0x58 || || | ||
+ | |} | ||
+ | |||
+ | === KSessionRequest === | ||
+ | Size: 0x158 | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Type || Description | ||
+ | |- | ||
+ | | 0 || * || Vtable | ||
+ | |- | ||
+ | | 0x10 || KLinkedListNode || NodeFor__RequestList | ||
+ | |- | ||
+ | | 0x20 || [[#KBufferDescriptor]][8] || BufferTable | ||
+ | |- | ||
+ | | 0x120 || [[#KBufferDescriptor]]* || ExternalBufferTable | ||
+ | |- | ||
+ | | 0x128 || u8 || Offset0 | ||
+ | |- | ||
+ | | 0x129 || u8 || Offset1 | ||
+ | |- | ||
+ | | 0x12A || u8 || Offset2 | ||
+ | |- | ||
+ | | 0x130 || [[KThread]]* || SenderThread | ||
+ | |- | ||
+ | | 0x138 || u64 || InitiallyZero | ||
+ | |- | ||
+ | | 0x140 || [[KWritableEvent]]* || ForAsyncEvent | ||
+ | |- | ||
+ | | 0x148 || u64 || CustomCmdbufAddr | ||
+ | |- | ||
+ | | 0x150 || u64 || CustomCmdbufSize | ||
+ | |} | ||
+ | |||
+ | === KBufferDescriptor === | ||
+ | Size: 0x20 | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Type || Description | ||
+ | |- | ||
+ | | 0 || u64 || UserVirtAddr | ||
+ | |- | ||
+ | | 8 || u64 || Size | ||
+ | |- | ||
+ | | 0x10 || u64 || | ||
+ | |- | ||
+ | | 0x18 || u64 || BufferMemoryState | ||
+ | |- | ||
|} | |} | ||
Revision as of 20:36, 19 October 2017
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 |
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
[3.0.0] Size: 0x2580
Inherits from: #KSynchronizationObject
1.0.0 Offset | Type | Description |
---|---|---|
0 | #KSynchronizationObject | Inheritance |
0x28 | KProcessScheduler | Scheduler |
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+1] | ProcessName |
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 | u32 | From_CreateProcessInfo_0xC |
0x288 | #KProcessHandleTable | HandleTable |
0x528 | void* | UsermodeExceptionTlsArea |
0x530 | #KLinkedListNode<#KThread> | ExceptionThreadList |
0x540 | #KThread* | ExceptionThread |
0x548 | #KLinkedListNode<#KThread> | ThreadList |
0x558 | bool | HasStarted |
0x55C | u32 | UnusedZero |
0x560 | u64[8] | UnusedZeroes |
0x5A0 | u64 | UnusedZero |
0x5A8 | u64 | UnusedZero |
2.0.0 Offset | Type | Description |
---|---|---|
0 | #KSynchronizationObject | Inheritance |
0x28 | KProcessScheduler | Scheduler |
0x38 | #KMemoryManager | MemoryManager |
0x100 | u64 | TotalMemUsage |
0x108 | u64 | TlsPagesListCount |
0x110 | #KLinkedListNode | TlsPagesList |
0x120 | s32 | DefaultCpuCore |
0x128 | KDebug* | Debug |
0x130 | #KResourceLimit* | ResourceLimit |
0x138 | u32 | State |
0x140 | #KRecursiveLock | ProcessMutex |
0x148 | #KRecursiveLock | ThreadingMutex |
0x150 | #KLinkedListNode<#KThread> | ThreadArbiterList |
0x160 | KLinkedListNode | |
0x170 | u64[4] | RandomEntropy |
0x190 | u8 | HasStateChanged |
0x191 | u8 | HasInitialized |
0x192 | u8 | IsSystem |
0x193 | u8[12+1] | ProcessName |
0x1A0 | u16 | NumberOfCreatedThreads |
0x1A2 | u16 | ThreadingRelatedInitiallyZero |
0x1A4 | u32 | ProcessFlags |
0x1A8 | #KProcessCapabilities | Capabilities |
0x258 | u64 | TitleId |
0x260 | u64 | ProcessId |
0x268 | u64 | CreatedTickstamp |
0x270 | u64 | Entrypoint |
0x278 | u64 | CodeMemUsage |
0x280 | u64 | DynamicMemUsage |
0x288 | u64 | MaxTotalMemUsage |
0x290 | u32 | From_CreateProcessInfo_0xC |
0x298 | u64[5] | Unused [?] |
0x2C0 | #KProcessHandleTable | HandleTable |
0x2380 | void* | UsermodeExceptionTlsArea |
0x2388 | #KLinkedListNode<#KThread> | ExceptionThreadList |
0x2398 | #KThread* | ExceptionThread |
0x23A0 | #KLinkedListNode<#KThread> | ThreadList |
0x23B0 | #KLinkedListNode<#KSharedMemoryRef> | MappedSharedMemoriesList |
0x23C0 | bool | HasStarted |
0x23C1 | bool | HasException |
0x23C4 | u32 | ExceptionEnum0 |
0x23C8 | u64 | ExceptionEnum1 |
0x23D0 | u64 | ExceptionThreadUnkInfo0 |
0x23D8 | u64 | BreakArg0 |
0x23E0 | u64 | BreakArg1 |
0x23E8 | u64 | BreakArg2 |
0x23F0 | u64 | ExceptionThreadUnkInfo1 |
0x23F8 | u32 | UnusedZero |
0x2400 | u64[8] | UnusedZeroes |
0x2440 | u64 | UnusedZero |
0x2448 | u64 | UnusedZero |
0x2450 | u64[6] | Unused [?] |
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
[1.0.0] Size: 0x2A0
[2.0.0] Size: 0x20C0
1.0.0 Offset | Type | Description |
---|---|---|
0 | #KHandleEntry* | TablePtr |
8 | #KHandleEntry* | NextFreeEntry |
0x10 | #KHandleEntry[40] | InternalTable |
0x290 | u16 | Size |
0x292 | u16 | MaxUsageAtOnce |
0x294 | u16 | IdCounter |
0x296 | u16 | NumActiveSlots |
0x298 | #KSpinLock | Lock |
2.0.0 Offset | Type | Description |
---|---|---|
0 | #KHandleEntry* | TablePtr |
8 | #KHandleEntry* | NextFreeEntry |
0x10 | #KHandleEntry[1024] | InternalTable |
0x2010 | u16 | Size |
0x2012 | u16 | MaxUsageAtOnce |
0x2014 | u16 | IdCounter |
0x2016 | u16 | NumActiveSlots |
0x2040 | #KSpinLock | Lock |
KHandleEntry
[1.0.0] Size: 0x10
[2.0.0] Size: 8
1.0.0 Offset | Type | Description |
---|---|---|
0 | u16 | HandleId |
2 | u8 | ObjectType |
8 | #KAutoObject* | Object |
2.0.0 Offset | Type | Description |
---|---|---|
0 | u16 | HandleId |
2 | u8 | ObjectType |
4 | u32 | ObjectCompressedPtr |
KSpinLock
[1.0.0] Size: 0x1
[2.0.0] Size: 0x40
1.0.0 Offset | Type | Description |
---|---|---|
0 | u8 | IsBusy |
2.0.0 Offset | Type | Description |
---|---|---|
0 | u16 | |
0x20 | u16 |
[2.0.0] Size: 0x40
Offset | Type | Description |
---|---|---|
0 | #KLinkedListNode<#KSharedMemoryRef> | NodeFor__MappedSharedMemoriesList |
0x10 | #KSharedMemory* | SharedMem |
0x18 | u64 | InitiallyZero |
KMemoryManager
[1.0.0] Size: 0xB8
[2.0.0] Size: 0xC8
1.0.0 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 | MapRegionEndAddr |
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 |
2.0.0 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 | MapRegionEndAddr |
0x40 | u64 | NewUnknownRegionBaseAddr |
0x48 | u64 | NewUnknownRegionEndAddr |
0x50 | u64 | |
0x58 | u64 | |
0x60 | u64 | HeapMaxAllocation |
0x68 | #KRecursiveLock | Mutex |
0x70 | #KPageTable | PageTable |
0x80 | #KMemoryBlockManager | MemoryBlockManager |
0x98 | u32 | AddressSpaceWidth (32/36/39) |
0x9C | bool | IsKernel |
0x9D | bool | IsSystem |
0x9E | bool | HasAslr |
0xA0 | u32 | PoolPartition |
0xA4 | u32 | Is_0x5A_If_Cfg12_Bit0_ElseZero |
0xA8 | u32 | Is_0x59_If_Cfg12_Bit0_ElseZero |
0xAC | u32 | Is_0x58_If_Cfg12_Bit0_ElseZero |
0xB0 | u64 | TranslationTableBaseRegister0 |
0xB8 | u64 | TranslationControlRegister |
0xC0 | u32 | 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 |
[1.0.0] Size: 0x40
[2.0.0] Size: 0x48
Inherits from: #KAutoObject
1.0.0 Offset | Type | Description |
---|---|---|
0 | #KAutoObject | Inheritance |
0x10 | KMemoryBlockList | Blocks |
0x28 | #KProcess* | OwnerProcess |
0x30 | int | LocalPermission |
0x34 | int | RemotePermission |
0x38 | bool | HasInited |
2.0.0 Offset | Type | Description |
---|---|---|
0 | #KAutoObject | Inheritance |
0x10 | KMemoryBlockList | Blocks |
0x28 | #KResourceLimit* | OwnerResourceLimit |
0x30 | u64 | OwnerProcessPid |
0x38 | int | LocalPermission |
0x3C | int | RemotePermission |
0x40 | 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 | #KSession* | Parent |
0x40 | KLinkedListNode<#KSessionRequest*> | RequestList |
0x50 | #KSessionRequest* | ActiveRequest |
0x58 |
KSessionRequest
Size: 0x158
Offset | Type | Description |
---|---|---|
0 | * | Vtable |
0x10 | KLinkedListNode | NodeFor__RequestList |
0x20 | #KBufferDescriptor[8] | BufferTable |
0x120 | #KBufferDescriptor* | ExternalBufferTable |
0x128 | u8 | Offset0 |
0x129 | u8 | Offset1 |
0x12A | u8 | Offset2 |
0x130 | KThread* | SenderThread |
0x138 | u64 | InitiallyZero |
0x140 | KWritableEvent* | ForAsyncEvent |
0x148 | u64 | CustomCmdbufAddr |
0x150 | u64 | CustomCmdbufSize |
KBufferDescriptor
Size: 0x20
Offset | Type | Description |
---|---|---|
0 | u64 | UserVirtAddr |
8 | u64 | Size |
0x10 | u64 | |
0x18 | u64 | BufferMemoryState |
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
[1.0.0] Size: 0x50
[2.0.0] Size: 0x48
Inherits from: #KReadableEvent
1.0.0 Offset | Type | Description |
---|---|---|
0 | #KReadableEvent | Inheritance |
0x38 | #KInterruptReceiver | Receiver |
0x48 | u32 | IrqId (or -1) |
2.0.0 Offset | Type | Description |
---|---|---|
0 | #KReadableEvent | Inheritance |
0x38 | #KIrqRegistrationRef* | Reference |
0x40 | u32 | IrqId (or -1) |
0x44 | bool | IsIrqRegistered |
KInterruptReceiver
[1.0.0] Size: 0x10
Offset | Type | Description |
---|---|---|
0 | * | Vtable |
8 | u64 |
KIrqRegistrationRef
[2.0.0] Size: 0x20
Offset | Type | Description |
---|---|---|
0 | * | Vtable |
8 | u64 | InitiallyZero |
0x10 | #KInterruptEvent* | IrqEventPtr |
0x18 | s32 | IrqId |
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
[1.0.0] Size: 0x380
[2.0.0] Size: 0x450
1.0.0 Offset | Type | Description |
---|---|---|
0 | #KPoolAllocator[3] | Allocator |
0x348 | #KPoolRefManager | RefManager |
0x368 | u64 | AllocationCounter |
0x370 | u64 | |
0x378 | #KRecursiveLock | Mutex |
2.0.0 Offset | Type | Description |
---|---|---|
0 | #KPoolAllocator | Allocator0 |
0x220 | #KPartitionInfo* | PartitionInfo0 |
0x228 | #KPoolAllocator | Allocator1 |
0x448 | #KPartitionInfo* | PartitionInfo1 |
KPoolAllocator
[1.0.0] Size: 0x118
[2.0.0] Size: 0x220
1.0.0 Offset | Type | Description |
---|---|---|
0 | void* | MemoryBase |
8 | u64 | MemorySize |
0x10 | s32 | NumPools |
0x18 | #KPool[8] | Pools |
2.0.0 Offset | Type | Description |
---|---|---|
0 | void* | MemoryBase |
8 | u64 | MemorySize |
0x10 | #KPool[8] | Pools |
0x210 | s32 | NumPools |
KPool
[1.0.0] Size: 0x20
[2.0.0] Size: 0x40
1.0.0 Offset | Type | Description |
---|---|---|
0 | KPoolHeader* | FirstFreeChunk |
8 | u64 | |
0x10 | u64 | |
0x18 | void* | SingletonTableEntryPtr |
2.0.0 Offset | Type | Description |
---|---|---|
0 | KPoolHeader* | FirstFreeChunk |
8 | u64 | |
0x10 | u64 | |
0x18 | void* | SingletonTableEntryPtr |
0x20 | #KPool* | Parent |
0x30 | u64[2] | DmaProtectionKey |
KPoolRefManager
[1.0.0] Size: 0x20
Offset | Type | Description |
---|---|---|
0 | #KPoolManager* | Parent |
8 | void* | PoolBase |
0x10 | u64 | MaxPage |
0x18 | u16* | RefCountTable |
KIrqManager
[1.0.0] Size: 0x1608
Offset | Type | Description |
---|---|---|
0 | #KIrqEntry[32] | Core0Irq |
0x200 | #KIrqEntry[32] | Core1Irq |
0x400 | #KIrqEntry[32] | Core2Irq |
0x600 | #KIrqEntry[32] | Core3Irq |
0x800 | #KIrqEntry[224] | SharedIrqs |
0x1600 | #KRecursiveLock | Mutex |
KIrqEntry
[1.0.0] Size: 0x10
Offset | Type | Description |
---|---|---|
0 | #KIrqReciever* | Receiver |
8 | u8 | State0 |
9 | u8 | State1 |