Difference between revisions of "Kernel"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 124: Line 124:
 
| 0x183
 
| 0x183
 
| u8[12]
 
| u8[12]
| FirstBytesOfCreateProcessInfo
+
| From_CreateProcessInfo_0
 
|-
 
|-
 
| 0x18F
 
| 0x18F
Line 134: Line 134:
 
| NumberOfCreatedThreads
 
| NumberOfCreatedThreads
 
|-
 
|-
|  
+
| 0x194
|  
+
| u32
| Pad
+
| From_CreateProcessInfo_0x24
 
|-
 
|-
 
| 0x198
 
| 0x198
Line 144: Line 144:
 
| 0x248
 
| 0x248
 
| u64
 
| u64
|  
+
| From_CreateProcessInfo_0x10
 
|-
 
|-
 
| 0x250
 
| 0x250
Line 154: Line 154:
 
| CreatedTickstamp
 
| CreatedTickstamp
 
|-
 
|-
| ..
+
| 0x260
| ..
+
| u64
| ..
+
| From_CreateProcessInfo_0x18
 
|-
 
|-
 
| 0x268
 
| 0x268
Line 169: Line 169:
 
| u64
 
| u64
 
| MaxMemoryUsage
 
| MaxMemoryUsage
 +
|-
 +
| 0x280
 +
| u64
 +
| From_CreateProcessInfo_0xC
 
|-
 
|-
 
| 0x288
 
| 0x288

Revision as of 05:47, 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 #KLinkedListNode TlsPagesList
0x110 s32 DefaultCpuCore
0x118
0x120 #KResourceLimit* ResourceLimit
0x128 u32 State
0x130 KRecursiveLock ProcessMutex
0x138 KRecursiveLock ThreadingMutex
0x140 u64
0x148 u64
0x150 KLinkedListManager
0x180 u8 HasStateChanged
0x181 u8
0x182 u8
0x183 u8[12] From_CreateProcessInfo_0
0x18F u8 InitiallyZero
0x190 u16 NumberOfCreatedThreads
0x194 u32 From_CreateProcessInfo_0x24
0x198 #KProcessCapabilities Capabilities
0x248 u64 From_CreateProcessInfo_0x10
0x250 u64 ProcessId
0x258 u64 CreatedTickstamp
0x260 u64 From_CreateProcessInfo_0x18
0x268 u64 FirstMemoryUsage
0x270 u64 SecondMemoryUsage
0x278 u64 MaxMemoryUsage
0x280 u64 From_CreateProcessInfo_0xC
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