Difference between revisions of "Kernel"

From Nintendo Switch Brew
Jump to navigation Jump to search
(Old notes..)
Line 458: Line 458:
 
| 0
 
| 0
 
| u8[4]
 
| u8[4]
| PageTableIdx
+
| PageTableAsids
 
|-
 
|-
 
| 8
 
| 8
| u64[4]
+
| void*[4]
| AltPageTables
+
| PageDirectories
 
|-
 
|-
 
| 0x28
 
| 0x28
|
+
| u64
|
+
| AttachedDevicesMask
 
|-
 
|-
 
| 0x30
 
| 0x30
|
+
| u32
|
+
| RegVal32Bit
 
|-
 
|-
 
| 0x34
 
| 0x34
|
+
| u32
|
+
| RegVal32BitEmpty
 
|-
 
|-
 
| 0x38
 
| 0x38
|
+
| u32
|
+
| RegVal36Bit
 +
|-
 +
| 0x3C
 +
| u32
 +
| RegVal36Bit
 
|}
 
|}

Revision as of 22:31, 20 July 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
.. .. ..
0x100 #KLinkedListNode* TlsPagesList
.. .. ..
0x130 KRecursiveLock ProcessMutex
.. .. ..
0x288 KProcessHandleTable HandleTable

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
.. .. ..

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 RegVal36Bit