diff options
Diffstat (limited to 'src/core/loader/ncch.h')
-rw-r--r-- | src/core/loader/ncch.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/core/loader/ncch.h b/src/core/loader/ncch.h index f6f670060..3dd151dbd 100644 --- a/src/core/loader/ncch.h +++ b/src/core/loader/ncch.h @@ -43,6 +43,8 @@ struct NCCH_Header { u8 romfs_super_block_hash[0x20]; }; +static_assert(sizeof(NCCH_Header) == 0x200, "NCCH header structure size is wrong"); + //////////////////////////////////////////////////////////////////////////////////////////////////// // ExeFS (executable file system) headers @@ -77,11 +79,11 @@ struct ExHeader_CodeSetInfo { u8 name[8]; ExHeader_SystemInfoFlags flags; ExHeader_CodeSegmentInfo text; - u8 stacksize[4]; + u32 stack_size; ExHeader_CodeSegmentInfo ro; u8 reserved[4]; ExHeader_CodeSegmentInfo data; - u8 bsssize[4]; + u32 bss_size; }; struct ExHeader_DependencyList{ @@ -107,9 +109,9 @@ struct ExHeader_ARM11_SystemLocalCaps{ u32 core_version; u8 flags[3]; u8 priority; - u8 resource_limit_descriptor[0x16][2]; + u8 resource_limit_descriptor[0x10][2]; ExHeader_StorageInfo storage_info; - u8 service_access_control[0x32][8]; + u8 service_access_control[0x20][8]; u8 ex_service_access_control[0x2][8]; u8 reserved[0xf]; u8 resource_limit_category; @@ -141,6 +143,8 @@ struct ExHeader_Header{ } access_desc; }; +static_assert(sizeof(ExHeader_Header) == 0x800, "ExHeader structure size is wrong"); + //////////////////////////////////////////////////////////////////////////////////////////////////// // Loader namespace @@ -224,6 +228,12 @@ private: bool is_compressed = false; u32 entry_point = 0; + u32 code_size = 0; + u32 stack_size = 0; + u32 bss_size = 0; + u32 core_version = 0; + u8 priority = 0; + u8 resource_limit_category = 0; u32 ncch_offset = 0; // Offset to NCCH header, can be 0 or after NCSD header u32 exefs_offset = 0; |