Difference between revisions of "KProcess"

From 3dbrew
Jump to navigation Jump to search
Line 84: Line 84:
 
| u32
 
| u32
 
| Reference count
 
| Reference count
 +
|-
 +
| 0x4C
 +
| u32
 +
| End of userland virtual memory for the process
 
|-
 
|-
 
| 0x50
 
| 0x50

Revision as of 06:51, 10 November 2014

class KProcess extends KSynchronizationObject;

Size : 0x260 bytes

Offset Type Description
0x0 u32 Pointer to vtable
0x4 u32 Reference count
0x54 u32 Virtual address of the MMU table for this process
0x6C s32 Ideal processor
0x7C u32 Number of threads which belong to this process.
0x79 u8 Proc affinity mask
0x80 0x10-bytes SVC access control mask from the exheader kernel descriptors.
0xA0 u32 Kernel flags from the exheader kernel descriptors.
0xA4 u16 Handle table size from the exheader kernel descriptors. When this is 0, handle table is stored in WRAM.
0xA6 u16 Kernel release version field, from the exheader kernel descriptors.
0xA8 u32 Pointer to KCodeSet instance
0xAC u32 Process id, this always begins at 0x0 for the first process.
0xB8 KThread* Pointer to the process's main (?) thread.
0xCC void* Pointer to the process's handle table.

Structure for 8.0.0-18 NATIVE_FIRM:

Size : 0x268 bytes

Offset Type Description
0x0 u32 Pointer to vtable
0x4 u32 Reference count
0x4C u32 End of userland virtual memory for the process
0x50 u32* LINEAR memory virtual address(userland) base for this process.
0x58 u32 Size of the MMU table
0x5C u32 Virtual address of the MMU table for this process
0x74 s32 Ideal processor for this process
0x7C u32 Pointer to resource limits for process.
0x84 u32 Number of threads which belong to this process.
0x88 0x10-bytes SVC access control mask from the exheader kernel descriptors.
0xA8 u32 Kernel flags from the exheader kernel descriptors.
0xAC u16 Handle table size from the exheader kernel descriptors. When this is 0, handle table is stored in WRAM.
0xAE u16 Kernel release version field, from the exheader kernel descriptors.
0xB0 u32 Pointer to KCodeSet instance
0xB4 u32 Process id, this always begins at 0x0 for the first process.
0xC0 KThread* Pointer to the process's main (?) thread.
0xD4 void* Pointer to the process's handle table.