Difference between revisions of "Kernel"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 68: Line 68:
 
| 0xF8
 
| 0xF8
 
| u64
 
| u64
|
+
| TlsPagesListCount
 
|-
 
|-
 
| 0x100
 
| 0x100

Revision as of 05:15, 7 August 2017

KAutoObject

Size: 0x10

Offset Type Description
0 * Vtable
8 u64 ReferenceCount

KSynchronizationObject

Size: 0x28

Inherits from: #KAutoObject

Offset Type Description
0 #KAutoObject
0x10 u64 ThreadSyncNum
0x18 #KLinkedListNode ThreadSyncList

KLinkedListNode

Size: 0x10

Offset Type Description
0 #KLinkedListNode* Prev
8 #KLinkedListNode* Next

KProcess

Size: 0x5B0

Inherits from: #KSynchronizationObject

Offset Type Description
0 #KSynchronizationObject
0x28
0x38 #KProcessMm MemoryManager
0xF0 u64 TotalMemUsage
0xF8 u64 TlsPagesListCount
0x100 KLinkedListManager TlsPagesList
0x130 KRecursiveLock ProcessMutex
0x138 KRecursiveLock ThreadingMutex
0x140 u64
0x148 u64
0x150 KLinkedListManager
0x180 u8
0x181 u8 SignalValue
Pad
0x190 u16 NumberOfCreatedThreads
Pad
0x198 #KProcessCapabilities Capabilities
0x248 u64
0x250 u64 Pid
.. .. ..
0x288 #KProcessHandleTable HandleTable
0x530 u64
0x538 u64
0x540 u64
0x548 KLinkedListNode ThreadList
0x558 u32
0x55C u32 HasStarted
0x560 u64[10]

KProcessMm

Offset Type Description
0 * Vtable
8 u64 AddrSpaceMinAddr
0x10 u64 AddrSpaceMaxAddr
0x18 u64 HeapBaseAddr
0x20 u64 HeapEndAddr
0x28 u64 HeapCurAddr
0x30 u64 MapRegionBaseAddr
0x38 u64 MapRegionEnd
0x40 u64 HeapMaxAllocation
0x48 KRecursiveLock Mutex
0x50
0x60 #KMemoryBlock* MemoryBlockList
.. .. ..

KProcessCapabilities

Size: 0xB0

Offset Type Description
0 u8[16] SvcAccessMask
0x10 u8[128] IrqAccessMask
0x90 u64 AllowedCpuIdBitmask
0x98 u64 AllowedThreadPrioBitmask
0xA0 u32
0xA4 u32 HandleTableSize
0xA8 u32
0xAC u32

KProcessHandleTable

Size: 0x2A0

Offset Type Description
0 #KHandleEntry* TablePtr
8 #KHandleEntry* NextFreeEntry
0x10 #KHandleEntry[40] InternalTable
0x290 u16 Size
0x292 u16
0x294 u16 UpperBitCounter
0x296 u16 NumActiveSlots
0x298 KSpinLock Lock

KHandleEntry

Offset Type Description
0 u16 HandleUpperBits
2 u8 ObjectType
8 #KAutoObject* Object

KMemoryBlock

Size: 0x40

Offset Type Description
0 #KMemoryBlock* Next
8 #KMemoryBlock* Prev
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
Pad
0x18 u16 IpcRefCount [?]
0x1A u16 DeviceMapRefCount

KTransferMemory

Size: 0x48

Inherits from: #KAutoObject

Offset Type Description
0 #KAutoObject
0x10 KMemoryBlockList Blocks
0x28 #KProcess* OwnerProcess
0x30 u64 BaseAddress
0x40 int Permission
0x44 bool HasInited

KSharedMemory

Size: 0x40

Inherits from: #KAutoObject

Offset Type Description
0 #KAutoObject
0x10 KMemoryBlockList Blocks
0x28 #KProcess* OwnerProcess
0x30 int LocalPerm
0x34 int RemotePerm
0x38 bool HasInited

KPort

Size: 0xA8

Inherits from: #KAutoObject

Offset Type Description
0 #KAutoObject
0x10 #KServerPort ServerPort
0x60 #KClientPort ClientPort
0x98 u64
0xA0 bool HasInited
0xA1 bool IsLight [?]

KServerPort

Size: 0x50

Inherits from: #KSynchronizationObject

Offset Type Description
0 #KSynchronizationObject
0x28 #KLinkedListNode
0x38 #KLinkedListNode
0x48 #KPort* Parent

KClientPort

Size: 0x38

Inherits from: #KSynchronizationObject

Offset Type Description
0 #KSynchronizationObject
0x28 ?
0x2C u32 MaxSessions [?]
0x30 #KPort* Parent

KEvent

Size: 0x70

Inherits from: #KAutoObject

Offset Type Description
0 #KAutoObject
0x10 #KReadableEvent ReadableEvent
0x48 #KWritableEvent WritableEvent
0x60 #KProcess* Creator
0x68 bool HasInited

KReadableEvent

Size: 0x38

Inherits from: #KSynchronizationEvent

Offset Type Description
0 #KSynchronizationObject
0x28 bool
0x30 #KEvent* Parent

KWritableEvent

Size: 0x18

Inherits from: #KAutoObject

Offset Type Description
0 #KAutoObject
0x10 #KEvent* Parent

KInterruptEvent

Size: 0x50

Inherits from: #KReadableEvent

Offset Type Description
0 #KReadableEvent
0x38
0x48 u32 IrqId (or -1)

KAddressSpace

Size: 0x70

Inherits from: #KAutoObject

Offset Type Description
0 #KAutoObject
0x10 KRecursiveLock Mutex
0x18 #KSmmuManager Manager
0x58 u64 BaseAddress
0x60 u64 Size
0x68 bool HasInited

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