1,134 bytes added
, 25 September
MOD describes a module object. It is essentially a replacement for a PT_DYNAMIC program header.
= ModuleHeaderLocation =
This is "nn::rocrt::ModuleHeaderLocation".
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x4
| [17.0.0+] Version ([1.0.0-16.1.0] Padding)
|-
| 0x4
| 0x4
| [[#ModuleHeader|HeaderOffset]]
|-
| 0x8
| 0x4
| [17.0.0+] [[#ModuleVersion|VersionOffset]]
|}
= ModuleHeader =
This is "nn::rocrt::ModuleHeader".
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x4
| Signature ("MOD0")
|-
| 0x4
| 0x4
| DynamicOffset
|-
| 0x8
| 0x4
| BssStartOffset
|-
| 0xC
| 0x4
| BssEndOffset
|-
| 0x10
| 0x4
| ExceptionInfoStartOffset
|-
| 0x14
| 0x4
| ExceptionInfoEndOffset
|-
| 0x18
| 0x4
| ModuleOffset (offset to runtime-generated module object, typically equal to .bss base)
|}
== ModuleVersion ==
With [17.0.0+] this structure is normally located immediately after the [[ModuleHeader|ModuleHeader]]. This stores the nnSdk version.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x4
| Major
|-
| 0x4
| 0x4
| Minor
|-
| 0x8
| 0x4
| Micro
|}