Line 20:
Line 20:
! Offset || Type || Description
! Offset || Type || Description
|-
|-
−
| 0 || [[#KAutoObject]] ||
+
| 0 || [[#KAutoObject]] || Inheritance
|-
|-
| 0x10 || u64 || ThreadSyncNum
| 0x10 || u64 || ThreadSyncNum
|-
|-
| 0x18 || [[#KLinkedListNode]] || ThreadSyncList
| 0x18 || [[#KLinkedListNode]] || ThreadSyncList
+
|}
+
+
= KRecursiveLock =
+
Size: 0x8
+
+
{| class="wikitable" border="1"
+
|-
+
! Offset || Type || Description
+
|-
+
| 0 || u64 || OwnerTag
+
|}
+
+
= KSpinLock =
+
Size: 0x1
+
+
{| class="wikitable" border="1"
+
|-
+
! Offset || Type || Description
+
|-
+
| 0 || u8 || IsBusy
+
|}
+
+
= KLockedList =
+
Size: 0x28
+
+
{| class="wikitable" border="1"
+
|-
+
! Offset || Type || Description
+
|-
+
| 0 || u64 || Count
+
|-
+
| 8 || [[#KLinkedListNode]] || List
+
|-
+
| 0x18 || [[#KRecursiveLock]] || Mutex
+
|-
+
| 0x20 || u64 || MaxCount
|}
|}
Line 50:
Line 86:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KSynchronizationObject]] || Inheritance
−
| [[#KSynchronizationObject]]
−
|
|-
|-
−
| 0x28
+
| 0x28 || ||
−
|
−
|
|-
|-
−
| 0x38
+
| 0x38 || [[#KMemoryManager]] || MemoryManager
−
| [[#KProcessMm]]
−
| MemoryManager
|-
|-
−
| 0xF0
+
| 0xF0 || u64 || TotalMemUsage
−
| u64
−
| TotalMemUsage
|-
|-
−
| 0xF8
+
| 0xF8 || u64 || TlsPagesListCount
−
| u64
−
| TlsPagesListCount
|-
|-
−
| 0x100
+
| 0x100 || [[#KLinkedListNode]] || TlsPagesList
−
| [[#KLinkedListNode]]
−
| TlsPagesList
|-
|-
−
| 0x110
+
| 0x110 || s32 || DefaultCpuCore
−
| s32
−
| DefaultCpuCore
|-
|-
−
| 0x118
+
| 0x118 || KDebug* || Debug
−
| KDebug*
−
| Debug
|-
|-
−
| 0x120
+
| 0x120 || [[#KResourceLimit]]* || ResourceLimit
−
| [[#KResourceLimit]]*
−
| ResourceLimit
|-
|-
−
| 0x128
+
| 0x128 || u32 || State
−
| u32
−
| State
|-
|-
−
| 0x130
+
| 0x130 || [[#KRecursiveLock]] || ProcessMutex
−
| KRecursiveLock
−
| ProcessMutex
|-
|-
−
| 0x138
+
| 0x138 || [[#KRecursiveLock]] || ThreadingMutex
−
| KRecursiveLock
−
| ThreadingMutex
|-
|-
−
| 0x140
+
| 0x140 || [[#KLinkedListNode]]<[[#KThread]]> || ThreadArbiterList
−
| KLinkedListNode<KThread>
−
| ThreadArbiterList
|-
|-
−
| 0x150
+
| 0x150 || KLinkedListNode ||
−
| KLinkedListNode
−
|
|-
|-
−
| 0x160
+
| 0x160 || u64[4] || RandomEntropy
−
| u64[4]
−
| RandomEntropy
|-
|-
−
| 0x180
+
| 0x180 || u8 || HasStateChanged
−
| u8
−
| HasStateChanged
|-
|-
−
| 0x181
+
| 0x181 || u8 || HasInitialized
−
| u8
−
| HasInitialized
|-
|-
−
| 0x182
+
| 0x182 || u8 || IsSystem
−
| u8
−
| From_CreateProcessInfo_0x24_Bit6
|-
|-
−
| 0x183
+
| 0x183 || u8[12] || From_CreateProcessInfo_0
−
| u8[12]
−
| From_CreateProcessInfo_0
|-
|-
−
| 0x18F
+
| 0x18F || u8 || InitiallyZero
−
| u8
−
| InitiallyZero
|-
|-
−
| 0x190
+
| 0x190 || u16 || NumberOfCreatedThreads
−
| u16
−
| NumberOfCreatedThreads
|-
|-
−
| 0x192
+
| 0x192 || u16 || ThreadingRelatedInitiallyZero
−
| u16
−
| ThreadingRelatedInitiallyZero
|-
|-
−
| 0x194
+
| 0x194 || u32 || ProcessFlags
−
| u32
−
| ProcessFlags
|-
|-
−
| 0x198
+
| 0x198 || [[#KProcessCapabilities]] || Capabilities
−
| [[#KProcessCapabilities]]
−
| Capabilities
|-
|-
−
| 0x248
+
| 0x248 || u64 || TitleId
−
| u64
−
| TitleId
|-
|-
−
| 0x250
+
| 0x250 || u64 || ProcessId
−
| u64
−
| ProcessId
|-
|-
−
| 0x258
+
| 0x258 || u64 || CreatedTickstamp
−
| u64
−
| CreatedTickstamp
|-
|-
−
| 0x260
+
| 0x260 || u64 || Entrypoint
−
| u64
−
| From_CreateProcessInfo_0x18
|-
|-
−
| 0x268
+
| 0x268 || u64 || CodeMemUsage
−
| u64
−
| CodeMemUsage
|-
|-
−
| 0x270
+
| 0x270 || u64 || DynamicMemUsage
−
| u64
−
| DynamicMemUsage
|-
|-
−
| 0x278
+
| 0x278 || u64 || MaxTotalMemUsage
−
| u64
−
| MaxTotalMemUsage
|-
|-
−
| 0x280
+
| 0x280 || u64 || From_CreateProcessInfo_0xC
−
| u64
−
| From_CreateProcessInfo_0xC
|-
|-
−
| 0x288
+
| 0x288 || [[#KProcessHandleTable]] || HandleTable
−
| [[#KProcessHandleTable]]
−
| HandleTable
|-
|-
−
| 0x528
+
| 0x528 || void* || UsermodeExceptionTlsArea
−
| void*
−
| UsermodeExceptionTlsArea
|-
|-
−
| 0x530
+
| 0x530 || [[#KLinkedListNode]]<[[#KThread]]> || ExceptionThreadList
−
| KLinkedListNode<KThread>
−
| ExceptionThreadList
|-
|-
−
| 0x540
+
| 0x540 || [[#KThread]]* || ExceptionThread
−
| KThread*
−
| ExceptionThread
|-
|-
−
| 0x548
+
| 0x548 || [[#KLinkedListNode]]<[[#KThread]]> || ThreadList
−
| KLinkedListNode<KThread>
−
| ThreadList
|-
|-
−
| 0x558
+
| 0x558 || u32 ||
−
| u32
−
|
|-
|-
−
| 0x55C
+
| 0x55C || u32 || HasStarted
−
| u32
−
| HasStarted
|-
|-
−
| 0x560
+
| 0x560 || u64[8] ||
−
| u64[8]
−
|
|-
|-
−
| 0x5A0
+
| 0x5A0 || u64 ||
−
| u64
−
|
|-
|-
−
| 0x5A8
+
| 0x5A8 || u64 ||
−
| u64
−
|
|}
|}
−
== KProcessMm ==
+
== KProcessCapabilities ==
+
Size: 0xB0
+
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 226:
Line 180:
! Description
! Description
|-
|-
−
| 0
+
| 0 || u8[16] || SvcAccessMask
−
| *
−
| Vtable
|-
|-
−
| 8
+
| 0x10 || u8[128] || IrqAccessMask
−
| u64
−
| AddrSpaceMinAddr
|-
|-
−
| 0x10
+
| 0x90 || u64 || AllowedCpuIdBitmask
−
| u64
−
| AddrSpaceMaxAddr
|-
|-
−
| 0x18
+
| 0x98 || u64 || AllowedThreadPrioBitmask
−
| u64
−
| HeapRegionBaseAddr
|-
|-
−
| 0x20
+
| 0xA0 || u32 || DebuggingFlags (bit0: can be debugged, bit1: can debug others)
−
| u64
−
| HeapRegionEndAddr
|-
|-
−
| 0x28
+
| 0xA4 || u32 || HandleTableSize
−
| u64
−
| HeapCurAddr
|-
|-
−
| 0x30
+
| 0xA8 || u32 ||
−
| u64
−
| MapRegionBaseAddr
|-
|-
−
| 0x38
+
| 0xAC || u32 ||
−
| u64
+
|}
−
| MapRegionEnd
+
+
== KProcessHandleTable ==
+
Size: 0x2A0
+
+
{| class="wikitable" border="1"
+
|-
+
! Offset
+
! Type
+
! Description
+
|-
+
| 0 || [[#KHandleEntry]]* || TablePtr
|-
|-
−
| 0x40
+
| 8 || [[#KHandleEntry]]* || NextFreeEntry
−
| u64
−
| HeapMaxAllocation
|-
|-
−
| 0x48
+
| 0x10 || [[#KHandleEntry]][40] || InternalTable
−
| KRecursiveLock
−
| Mutex
|-
|-
−
| 0x50
+
| 0x290 || u16 || Size
−
|
−
|
|-
|-
−
| 0x60
+
| 0x292 || u16 ||
−
| [[#KMemoryBlock]]*
−
| MemoryBlockList
|-
|-
−
| ..
+
| 0x294 || u16 || IdCounter
−
| ..
+
|-
−
| ..
+
| 0x296 || u16 || NumActiveSlots
+
|-
+
| 0x298 || [[#KSpinLock]] || Lock
|}
|}
−
== KProcessCapabilities ==
+
=== KHandleEntry ===
−
Size: 0xB0
+
{| class="wikitable" border="1"
+
|-
+
! Offset
+
! Type
+
! Description
+
|-
+
| 0 || u16 || HandleId
+
|-
+
| 2 || u8 || ObjectType
+
|-
+
| 8 || [[#KAutoObject]]* || Object
+
|}
+
+
= KMemoryManager =
+
Size: 0xB8
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 288:
Line 246:
! Description
! Description
|-
|-
−
| 0
+
| 0 || * || Vtable
−
| u8[16]
−
| SvcAccessMask
|-
|-
−
| 0x10
+
| 8 || u64 || AddrSpaceMinAddr
−
| u8[128]
−
| IrqAccessMask
|-
|-
−
| 0x90
+
| 0x10 || u64 || AddrSpaceMaxAddr
−
| u64
−
| AllowedCpuIdBitmask
|-
|-
−
| 0x98
+
| 0x18 || u64 || HeapRegionBaseAddr
−
| u64
−
| AllowedThreadPrioBitmask
|-
|-
−
| 0xA0
+
| 0x20 || u64 || HeapRegionEndAddr
−
| u32
−
| DebuggingFlags (bit0: can be debugged, bit1: can debug others)
|-
|-
−
| 0xA4
+
| 0x28 || u64 || HeapCurAddr
−
| u32
−
| HandleTableSize
|-
|-
−
| 0xA8
+
| 0x30 || u64 || MapRegionBaseAddr
−
| u32
−
|
|-
|-
−
| 0xAC
+
| 0x38 || u64 || MapRegionEnd
−
| u32
+
|-
−
|
+
| 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
|}
|}
−
== KProcessHandleTable ==
+
== KPageTable ==
−
Size: 0x2A0
+
Size: 0x10
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 330:
Line 306:
! Description
! Description
|-
|-
−
| 0
+
| 0 || void* || RawPageTablePtr
−
| [[#KHandleEntry]]*
−
| TablePtr
−
|-
−
| 8
−
| [[#KHandleEntry]]*
−
| NextFreeEntry
−
|-
−
| 0x10
−
| [[#KHandleEntry]][40]
−
| InternalTable
−
|-
−
| 0x290
−
| u16
−
| Size
−
|-
−
| 0x292
−
| u16
−
|
−
|-
−
| 0x294
−
| u16
−
| IdCounter
|-
|-
−
| 0x296
+
| 8 || bool ||
−
| u16
−
| NumActiveSlots
|-
|-
−
| 0x298
+
| 0xC || u32 || AddrSpaceSizeInGb
−
| KSpinLock
−
| Lock
|}
|}
−
=== KHandleEntry ===
+
== KMemoryBlockManager ==
+
Size: 0x18
+
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 370:
Line 322:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KMemoryBlock]]* || MemoryBlockList
−
| u16
−
| HandleId
|-
|-
−
| 2
+
| 8 || u64 || MaxAddr
−
| u8
−
| ObjectType
|-
|-
−
| 8
+
| 0x10 || u64 || MinAddr
−
| [[#KAutoObject]]*
−
| Object
|}
|}
Line 392:
Line 338:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KLinkedListNode]]<[[#KMemoryBlock]]> || NodeFor__MemoryBlockList
−
| [[#KMemoryBlock]]*
−
| Next
|-
|-
−
| 8
+
| 0x10 || ||
−
| [[#KMemoryBlock]]*
−
| Prev
|-
|-
−
| 0x10
+
| 0x18 || ||
−
|
−
|
|-
|-
−
| 0x18
+
| 0x20 || u64 || BaseAddress
−
|
−
|
|-
|-
−
| 0x20
+
| 0x28 || u64 || NumOfPages
−
| u64
−
| BaseAddress
|-
|-
−
| 0x28
+
| 0x30 || u32 || State
−
| u64
−
| NumOfPages
|-
|-
−
| 0x30
+
| 0x34 || u16 || IpcRefCount [?]
−
| u32
−
| State
|-
|-
−
| 0x34
+
| 0x36 || u16 || DeviceMapRefCount
−
| u16
−
| IpcRefCount [?]
|-
|-
−
| 0x36
+
| 0x38 || u8 || Permission
−
| u16
−
| DeviceMapRefCount
|-
|-
−
| 0x38
+
| 0x39 || u8 || UnkAttribute
−
| u8
−
| Permission
|-
|-
−
| 0x39
+
| 0x3A || u8 || Attribute
−
| u8
−
| UnkAttribute
−
|-
−
| 0x3A
−
| u8
−
| Attribute
|}
|}
Line 450:
Line 370:
! Description
! Description
|-
|-
−
| 0
+
| 0 || u64 || BaseAddress
−
| u64
−
| BaseAddress
−
|-
−
| 8
−
| u64
−
| Size
|-
|-
−
| 0x10
+
| 8 || u64 || Size
−
| u32
−
| State
|-
|-
−
| 0x14
+
| 0x10 || u32 || State
−
| u8
−
| Permission
|-
|-
−
| 0x15
+
| 0x14 || u8 || Permission
−
| u8
−
| Attribute
|-
|-
−
| 0x16
+
| 0x15 || u8 || Attribute
−
| u8
−
| UnkAttribute
|-
|-
−
|
+
| 0x16 || u8 || UnkAttribute
−
|
−
| Pad
|-
|-
−
| 0x18
+
| 0x18 || u16 || IpcRefCount [?]
−
| u16
−
| IpcRefCount [?]
|-
|-
−
| 0x1A
+
| 0x1A || u16 || DeviceMapRefCount
−
| u16
−
| DeviceMapRefCount
|}
|}
Line 498:
Line 398:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || KMemoryBlockList || Blocks
−
| KMemoryBlockList
−
| Blocks
|-
|-
−
| 0x28
+
| 0x28 || [[#KProcess]]* || OwnerProcess
−
| [[#KProcess]]*
−
| OwnerProcess
|-
|-
−
| 0x30
+
| 0x30 || u64 || BaseAddress
−
| u64
−
| BaseAddress
|-
|-
−
| 0x38
+
| 0x38 || KRecursiveLock || Mutex
−
| KRecursiveLock
−
| Mutex
|-
|-
−
| 0x40
+
| 0x40 || int || Permission
−
| int
−
| Permission
|-
|-
−
| 0x44
+
| 0x44 || bool || HasInited
−
| bool
−
| HasInited
|-
|-
−
| 0x45
+
| 0x45 || bool || IsMapped
−
| bool
−
| IsMapped
|}
|}
Line 542:
Line 426:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || KMemoryBlockList || Blocks
−
| KMemoryBlockList
−
| Blocks
|-
|-
−
| 0x28
+
| 0x28 || [[#KProcess]]* || OwnerProcess
−
| [[#KProcess]]*
−
| OwnerProcess
|-
|-
−
| 0x30
+
| 0x30 || int || LocalPermission
−
| int
−
| LocalPerm
|-
|-
−
| 0x34
+
| 0x34 || int || RemotePermission
−
| int
−
| RemotePerm
|-
|-
−
| 0x38
+
| 0x38 || bool || HasInited
−
| bool
−
| HasInited
|}
|}
Line 578:
Line 450:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || [[#KServerPort]] || ServerSide
−
| [[#KServerPort]]
−
| ServerSide
|-
|-
−
| 0x60
+
| 0x60 || [[#KClientPort]] || ClientSide
−
| [[#KClientPort]]
−
| ClientSide
|-
|-
−
| 0x98
+
| 0x98 || u64 ||
−
| u64
−
|
|-
|-
−
| 0xA0
+
| 0xA0 || bool || HasInited
−
| bool
−
| HasInited
|-
|-
−
| 0xA1
+
| 0xA1 || bool || IsLight
−
| bool
−
| IsLight
|}
|}
Line 614:
Line 474:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KSynchronizationObject]] || Inheritance
−
| [[#KSynchronizationObject]]
−
|
|-
|-
−
| 0x28
+
| 0x28 || [[#KLinkedListNode]] || IncomingConnections
−
| [[#KLinkedListNode]]
−
| IncomingConnections
|-
|-
−
| 0x38
+
| 0x38 || [[#KLinkedListNode]] || IncomingLightConnections
−
| [[#KLinkedListNode]]
−
| IncomingLightConnections
|-
|-
−
| 0x48
+
| 0x48 || [[#KPort]]* || Parent
−
| [[#KPort]]*
−
| Parent
|}
|}
Line 642:
Line 494:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KSynchronizationObject]] || Inheritance
−
| [[#KSynchronizationObject]]
−
|
|-
|-
−
| 0x28
+
| 0x28 || u32 || NumSessions
−
| u32
−
| NumSessions
|-
|-
−
| 0x2C
+
| 0x2C || u32 || MaxSessions
−
| u32
−
| MaxSessions
|-
|-
−
| 0x30
+
| 0x30 || [[#KPort]]* || Parent
−
| [[#KPort]]*
−
| Parent
|}
|}
Line 670:
Line 514:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || [[#KServerSession]] || ServerSide
−
| [[#KServerSession]]
−
| ServerSide
|-
|-
−
| 0x70
+
| 0x70 || [[#KClientSession]] || ClientSide
−
| [[#KClientSession]]
−
| ClientSide
|-
|-
−
| 0xA8
+
| 0xA8 || bool || HasInited
−
| bool
−
| HasInited
|}
|}
Line 698:
Line 534:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KSynchronizationObject]] || Inheritance
−
| [[#KSynchronizationObject]]
−
|
|-
|-
−
| 0x28
+
| 0x28 || KLinkedListNode || NodeFor__IncomingConnections
−
| KLinkedListNode
−
| NodeFor__IncomingConnections
|-
|-
−
| 0x38
+
| 0x38 || ||
−
|
−
|
|-
|-
−
| 0x40
+
| 0x40 || KLinkedListNode ||
−
| KLinkedListNode
−
|
|-
|-
−
| 0x50
+
| 0x50 || ||
−
|
−
|
|-
|-
−
| 0x58
+
| 0x58 || ||
−
|
−
|
|}
|}
Line 734:
Line 558:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || [[#KSession]]* || Parent
−
| [[#KSession]]*
−
| Parent
|-
|-
−
| 0x18
+
| 0x18 || bool || HasInited
−
| bool
−
| HasInited
|-
|-
−
| 0x20
+
| 0x20 || [[#KClientPort]]* || ParentPort
−
| [[#KClientPort]]*
−
| ParentPort
|-
|-
−
| 0x28
+
| 0x28 || ||
−
|
−
|
|-
|-
−
| 0x30
+
| 0x30 || [[#KProcess]]* || CreatorProcess
−
| [[#KProcess]]*
−
| CreatorProcess
|}
|}
Line 770:
Line 582:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || [[#KLightSessionServer]] || ServerSide
−
| [[#KLightSessionServer]]
−
| ServerSide
|-
|-
−
| 0x68
+
| 0x68 || [[#KLightSessionClient]] || ClientSide
−
| [[#KLightSessionClient]]
−
| ClientSide
|-
|-
−
| 0xA0
+
| 0xA0 || bool || HasInited
−
| bool
−
| HasInited
|}
|}
Line 798:
Line 602:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || KLinkedListNode || NodeFor__IncomingLightConnections
−
| KLinkedListNode
−
| NodeFor__IncomingLightConnections
|-
|-
−
| 0x20
+
| 0x20 || [[#KLightSession]] || Parent
−
| [[#KLightSession]]
−
| Parent
|-
|-
−
| 0x28
+
| 0x28 || u64[6] ||
−
| u64[6]
−
|
|}
|}
Line 826:
Line 622:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || [[#KLightSession]]* || Parent
−
| [[#KLightSession]]*
−
| Parent
|-
|-
−
| 0x18
+
| 0x18 || bool || HasInited
−
| bool
−
| HasInited
|-
|-
−
| 0x20
+
| 0x20 || [[#KClientPort]]* || Port
−
| [[#KClientPort]]*
−
| Port
|-
|-
−
| 0x28
+
| 0x28 || ||
−
|
−
|
|-
|-
−
| 0x30
+
| 0x30 || [[#KProcess]]* || CreatorProcess
−
| [[#KProcess]]*
−
| CreatorProcess
|}
|}
Line 862:
Line 646:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || [[#KReadableEvent]] || ReadableEvent
−
| [[#KReadableEvent]]
−
| ReadableEvent
|-
|-
−
| 0x48
+
| 0x48 || [[#KWritableEvent]] || WritableEvent
−
| [[#KWritableEvent]]
−
| WritableEvent
|-
|-
−
| 0x60
+
| 0x60 || [[#KProcess]]* || Creator
−
| [[#KProcess]]*
−
| Creator
|-
|-
−
| 0x68
+
| 0x68 || bool || HasInited
−
| bool
−
| HasInited
|}
|}
Line 894:
Line 668:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KSynchronizationObject]] || Inheritance
−
| [[#KSynchronizationObject]]
−
|
|-
|-
−
| 0x28
+
| 0x28 || bool ||
−
| bool
−
|
|-
|-
−
| 0x30
+
| 0x30 || [[#KEvent]]* || Parent
−
| [[#KEvent]]*
−
| Parent
|}
|}
Line 918:
Line 686:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || [[#KEvent]]* || Parent
−
| [[#KEvent]]*
−
| Parent
|}
|}
Line 938:
Line 702:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KReadableEvent]] || Inheritance
−
| [[#KReadableEvent]]
−
|
|-
|-
−
| 0x38
+
| 0x38 || ||
−
|
−
|
|-
|-
−
| 0x48
+
| 0x48 || u32 || IrqId (or -1)
−
| u32
−
| IrqId (or -1)
|}
|}
Line 962:
Line 720:
! Description
! Description
|-
|-
−
| 0
+
| 0 || [[#KAutoObject]] || Inheritance
−
| [[#KAutoObject]]
−
|
|-
|-
−
| 0x10
+
| 0x10 || [[#KRecursiveLock]] || Mutex
−
| KRecursiveLock
−
| Mutex
|-
|-
−
| 0x18
+
| 0x18 || [[#KSmmuManager]] || Manager
−
| [[#KSmmuManager]]
−
| Manager
|-
|-
−
| 0x58
+
| 0x58 || u64 || BaseAddress
−
| u64
−
| BaseAddress
|-
|-
−
| 0x60
+
| 0x60 || u64 || Size
−
| u64
−
| Size
|-
|-
−
| 0x68
+
| 0x68 || bool || HasInited
−
| bool
−
| HasInited
|}
|}
Line 996:
Line 742:
! Description
! Description
|-
|-
−
| 0
+
| 0 || u8[4] || PageTableAsids
−
| u8[4]
−
| PageTableAsids
|-
|-
−
| 8
+
| 8 || void*[4] || PageDirectories
−
| void*[4]
−
| PageDirectories
|-
|-
−
| 0x28
+
| 0x28 || u64 || AttachedDevicesMask
−
| u64
−
| AttachedDevicesMask
|-
|-
−
| 0x30
+
| 0x30 || u32 || RegVal32Bit
−
| u32
−
| RegVal32Bit
|-
|-
−
| 0x34
+
| 0x34 || u32 || RegVal32BitEmpty
−
| u32
−
| RegVal32BitEmpty
|-
|-
−
| 0x38
+
| 0x38 || u32 || RegVal36Bit
−
| u32
−
| RegVal36Bit
|-
|-
−
| 0x3C
+
| 0x3C || u32 || RegVal36BitEmpty
−
| u32
−
| RegVal36BitEmpty
|}
|}