Memory layout: Difference between revisions

No edit summary
Line 13: Line 13:


For all binaries(main area / NROs), the R-- section is always located immediately after R-X. The RW- section is always located immediately after the R-- section. Hence, there's no extra randomization / guard-pages for these sections.
For all binaries(main area / NROs), the R-- section is always located immediately after R-X. The RW- section is always located immediately after the R-- section. Hence, there's no extra randomization / guard-pages for these sections.
==TLS==
This is the 0x200-byte thread-local-storage, the base address is loaded via ARM threadid register tpidrro_el0.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x100
| [[IPC_Marshalling|IPC]] command buffer
|-
| 0x100
| 0xF8
| ?
|-
| 0x1F8
| 0x8
| Address of threadctx+0x58.
|}
==Thread context==
This is the structure of the 0x228-byte threadctx used by official userland software.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0xA8
| ?
|-
| 0xA8
| 0x8
| Address of the stack-bottom-mirror which the thread was created with.
|-
| 0xB0
| 0x8
| Size of the stack.
|-
| 0xB8
| 0x178
| ?
|}