Kernel: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
| Line 141: | Line 141: | ||
| | KRecursiveLock | | KRecursiveLock | ||
| | Mutex | | Mutex | ||
| |- | |||
| | 0x50 | |||
| | | |||
| | | |||
| |- | |||
| | 0x60 | |||
| | [[#KMemoryBlock]]* | |||
| | MemoryBlockList | |||
| |- | |- | ||
| | .. | | .. | ||
| Line 146: | Line 154: | ||
| | .. | | .. | ||
| |} | |} | ||
| == KMemoryBlock == | |||
| {| class="wikitable" border="1" | |||
| |- | |||
| ! Offset | |||
| ! Type | |||
| ! Description | |||
| |- | |||
| | 0 | |||
| | [[#KMemoryBlock]]* | |||
| | Next | |||
| |- | |||
| | 8 | |||
| | [[#KMemoryBlock]]* | |||
| | Prev | |||
| |- | |||
| | 0x10 | |||
| |  | |||
| |  | |||
| |- | |||
| | 0x18 | |||
| |  | |||
| |  | |||
| |- | |||
| | 0x20 | |||
| | u64 | |||
| | BaseAddress | |||
| |- | |||
| | 0x28 | |||
| | u64 | |||
| | NumOfPages | |||
| |- | |||
| | 0x30 | |||
| | u32 | |||
| | MemoryState | |||
| |- | |||
| | 0x34 | |||
| | u16 | |||
| | IpcRefCount [?] | |||
| |- | |||
| | 0x36 | |||
| | u16 | |||
| | DeviceMapRefCount | |||
| |- | |||
| | 0x38 | |||
| | u8 | |||
| | Permission | |||
| |- | |||
| | 0x39 | |||
| | u8 | |||
| |  | |||
| |- | |||
| | 0x3A | |||
| | u8 | |||
| | MemoryAttribute | |||
| |} | |||
| = KMemoryBlockInfo = | |||
| = KTransferMemory = | = KTransferMemory = | ||
Revision as of 22:49, 25 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 | 
| 0x50 | ||
| 0x60 | #KMemoryBlock* | MemoryBlockList | 
| .. | .. | .. | 
KMemoryBlock
| Offset | Type | Description | 
|---|---|---|
| 0 | #KMemoryBlock* | Next | 
| 8 | #KMemoryBlock* | Prev | 
| 0x10 | ||
| 0x18 | ||
| 0x20 | u64 | BaseAddress | 
| 0x28 | u64 | NumOfPages | 
| 0x30 | u32 | MemoryState | 
| 0x34 | u16 | IpcRefCount [?] | 
| 0x36 | u16 | DeviceMapRefCount | 
| 0x38 | u8 | Permission | 
| 0x39 | u8 | |
| 0x3A | u8 | MemoryAttribute | 
KMemoryBlockInfo
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 | 
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 |