Difference between revisions of "KProcessHwInfo"

From 3dbrew
Jump to navigation Jump to search
(Created page with "Category:Kernel objects Struct inside the KProcess object. Starts at KProcess+0x1C. Size : 0x4C bytes {| class="wikitable" border="1" |- ! Offset ! Type ! Description ...")
 
Line 1: Line 1:
 
[[Category:Kernel objects]]
 
[[Category:Kernel objects]]
 +
Struct inside the [[KProcess]] object.  Starts at KProcess+0x1C.
  
Struct inside the KProcess object.  Starts at KProcess+0x1C.
+
Size : 0x4C bytes (on N3DS)
  
Size : 0x4C bytes
+
Offsets above 0x8 are only for N3DS.
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 12: Line 13:
 
|-
 
|-
 
| 0x0
 
| 0x0
|  
+
| [[KThread]]*
|  
+
| Thread currently running kernel code to act on the process
 
|-
 
|-
 
| 0x4
 
| 0x4
|  
+
| s16
|  
+
| This is used to record errors that occur when the thread above is set as the thread running code for the process
 +
|-
 +
| 0x6
 +
| s16
 +
| Unused, alignment
 
|-
 
|-
 
| 0x8
 
| 0x8
|  
+
| u32[number of cores]
|  
+
| TLB entries for process need invalidating on core(i)
|-
 
| 0xC
 
|
 
|
 
|-
 
| 0x10
 
|
 
| New3DS only
 
|-
 
| 0x14
 
|
 
| New3DS only
 
 
|-
 
|-
 
| 0x18
 
| 0x18
Line 40: Line 33:
 
|-
 
|-
 
| 0x1C
 
| 0x1C
| KLinkedListNode*
+
| [[KLinkedListNode]]*
 
| First KLinkedListNode in list of KMemoryBlocks
 
| First KLinkedListNode in list of KMemoryBlocks
 
|-
 
|-
 
| 0x20
 
| 0x20
| KLinkedListNode*
+
| [[KLinkedListNode]]*
 
| Last KLinkedListNode in list of KMemoryBlocks
 
| Last KLinkedListNode in list of KMemoryBlocks
 
|-
 
|-
 
| 0x24
 
| 0x24
|  
+
| u32
|  
+
| Unknown
 
|-
 
|-
 
| 0x28
 
| 0x28
|  
+
| u32
|  
+
| Unknown
 
|-
 
|-
 
| 0x2C
 
| 0x2C
| u32
+
| void*
 
| Translation table base
 
| Translation table base
 
|-
 
|-
Line 62: Line 55:
 
| u8
 
| u8
 
| Context ID
 
| Context ID
 +
|-
 +
| 0x31
 +
| bool
 +
| Indicates that a global TLB flush is needed
 
|-
 
|-
 
| 0x32
 
| 0x32
Line 68: Line 65:
 
|-
 
|-
 
| 0x34
 
| 0x34
|  
+
| u32
|  
+
| Unknown
 
|-
 
|-
 
| 0x38
 
| 0x38
| u32
+
| void*
 
| End of userland memory for process
 
| End of userland memory for process
 
|-
 
|-
 
| 0x3C
 
| 0x3C
| u32
+
| void*
| Linear memory start for process
+
| Linear memory start for process (since [[8.0.0-18]])
 
|-
 
|-
 
| 0x40
 
| 0x40
|  
+
| u32
|  
+
| Unknown (since [[8.0.0-18]])
 
|-
 
|-
 
| 0x44
 
| 0x44
Line 88: Line 85:
 
|-
 
|-
 
| 0x48
 
| 0x48
| u32
+
| u32*
| MMU table address in kernel FCRAM vmem
+
| Pointer to the MMU table in kernel FCRAM vmem
 
|}
 
|}

Revision as of 20:57, 24 November 2016

Struct inside the KProcess object. Starts at KProcess+0x1C.

Size : 0x4C bytes (on N3DS)

Offsets above 0x8 are only for N3DS.

Offset Type Description
0x0 KThread* Thread currently running kernel code to act on the process
0x4 s16 This is used to record errors that occur when the thread above is set as the thread running code for the process
0x6 s16 Unused, alignment
0x8 u32[number of cores] TLB entries for process need invalidating on core(i)
0x18 u32 KMemoryBlock count for KProcess
0x1C KLinkedListNode* First KLinkedListNode in list of KMemoryBlocks
0x20 KLinkedListNode* Last KLinkedListNode in list of KMemoryBlocks
0x24 u32 Unknown
0x28 u32 Unknown
0x2C void* Translation table base
0x30 u8 Context ID
0x31 bool Indicates that a global TLB flush is needed
0x32 bool Process is the current running game/app
0x34 u32 Unknown
0x38 void* End of userland memory for process
0x3C void* Linear memory start for process (since 8.0.0-18)
0x40 u32 Unknown (since 8.0.0-18)
0x44 u32 MMU table size
0x48 u32* Pointer to the MMU table in kernel FCRAM vmem