summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar David Marcec2020-06-28 20:54:37 +1000
committerGravatar David Marcec2020-06-28 20:54:37 +1000
commitdb824b59c84ddf67df69c493a4def49ca32eacfc (patch)
treecac5589c5bc2da77b74ef5f83be7c7026fc2dfea
parentMerge pull request #4026 from VolcaEM/ldr (diff)
downloadyuzu-db824b59c84ddf67df69c493a4def49ca32eacfc.tar.gz
yuzu-db824b59c84ddf67df69c493a4def49ca32eacfc.tar.xz
yuzu-db824b59c84ddf67df69c493a4def49ca32eacfc.zip
ldr: Cleanup NRO & NRR structs
-rw-r--r--src/core/hle/service/ldr/ldr.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/core/hle/service/ldr/ldr.cpp b/src/core/hle/service/ldr/ldr.cpp
index 9f376657c..64a526b9e 100644
--- a/src/core/hle/service/ldr/ldr.cpp
+++ b/src/core/hle/service/ldr/ldr.cpp
@@ -46,7 +46,7 @@ constexpr std::size_t DATA_INDEX{2};
46struct NRRCertification { 46struct NRRCertification {
47 u64_le application_id_mask; 47 u64_le application_id_mask;
48 u64_le application_id_pattern; 48 u64_le application_id_pattern;
49 std::array<u8, 0x10> reserved; 49 INSERT_PADDING_BYTES(0x10);
50 std::array<u8, 0x100> public_key; // Also known as modulus 50 std::array<u8, 0x100> public_key; // Also known as modulus
51 std::array<u8, 0x100> signature; 51 std::array<u8, 0x100> signature;
52}; 52};
@@ -55,16 +55,16 @@ static_assert(sizeof(NRRCertification) == 0x220, "NRRCertification has invalid s
55struct NRRHeader { 55struct NRRHeader {
56 u32_le magic; 56 u32_le magic;
57 u32_le certification_signature_key_generation; // 9.0.0+ 57 u32_le certification_signature_key_generation; // 9.0.0+
58 u64_le reserved; 58 INSERT_PADDING_WORDS(2);
59 NRRCertification certification; 59 NRRCertification certification;
60 std::array<u8, 0x100> signature; 60 std::array<u8, 0x100> signature;
61 u64_le application_id; 61 u64_le application_id;
62 u32_le size; 62 u32_le size;
63 u8 nrr_kind; // 7.0.0+ 63 u8 nrr_kind; // 7.0.0+
64 std::array<u8, 3> reserved_2; 64 INSERT_PADDING_BYTES(3);
65 u32_le hash_offset; 65 u32_le hash_offset;
66 u32_le hash_count; 66 u32_le hash_count;
67 u64_le reserved_3; 67 INSERT_PADDING_WORDS(2);
68}; 68};
69static_assert(sizeof(NRRHeader) == 0x350, "NRRHeader has invalid size."); 69static_assert(sizeof(NRRHeader) == 0x350, "NRRHeader has invalid size.");
70 70
@@ -76,9 +76,9 @@ static_assert(sizeof(SegmentHeader) == 0x8, "SegmentHeader has invalid size.");
76 76
77struct NROHeader { 77struct NROHeader {
78 // Switchbrew calls this "Start" (0x10) 78 // Switchbrew calls this "Start" (0x10)
79 u32_le unused; 79 INSERT_PADDING_WORDS(1);
80 u32_le mod_offset; 80 u32_le mod_offset;
81 u64_le padding; 81 INSERT_PADDING_WORDS(2);
82 82
83 // Switchbrew calls this "Header" (0x70) 83 // Switchbrew calls this "Header" (0x70)
84 u32_le magic; 84 u32_le magic;
@@ -88,10 +88,10 @@ struct NROHeader {
88 // .text, .ro, .data 88 // .text, .ro, .data
89 std::array<SegmentHeader, 3> segment_headers; 89 std::array<SegmentHeader, 3> segment_headers;
90 u32_le bss_size; 90 u32_le bss_size;
91 u32_le reserved; 91 INSERT_PADDING_WORDS(1);
92 std::array<u8, 0x20> build_id; 92 std::array<u8, 0x20> build_id;
93 u32_le dso_handle_offset; 93 u32_le dso_handle_offset;
94 u32_le unused_2; 94 INSERT_PADDING_WORDS(1);
95 // .apiInfo, .dynstr, .dynsym 95 // .apiInfo, .dynstr, .dynsym
96 std::array<SegmentHeader, 3> segment_headers_2; 96 std::array<SegmentHeader, 3> segment_headers_2;
97}; 97};