summaryrefslogtreecommitdiff
path: root/src/core/hle
diff options
context:
space:
mode:
authorGravatar bunnei2019-11-03 18:54:03 -0500
committerGravatar bunnei2019-11-03 22:22:41 -0500
commit1bdae0fe29f87daa81d2aba052a10a709b87485a (patch)
tree16d0f4aa4c4a11222c6950b3ad60e7d1d9905036 /src/core/hle
parentMerge pull request #3059 from FearlessTobi/stub-am-commands (diff)
downloadyuzu-1bdae0fe29f87daa81d2aba052a10a709b87485a.tar.gz
yuzu-1bdae0fe29f87daa81d2aba052a10a709b87485a.tar.xz
yuzu-1bdae0fe29f87daa81d2aba052a10a709b87485a.zip
common_func: Use std::array for INSERT_PADDING_* macros.
- Zero initialization here is useful for determinism.
Diffstat (limited to 'src/core/hle')
-rw-r--r--src/core/hle/ipc.h6
-rw-r--r--src/core/hle/service/am/applets/error.cpp11
-rw-r--r--src/core/hle/service/vi/vi.cpp2
3 files changed, 11 insertions, 8 deletions
diff --git a/src/core/hle/ipc.h b/src/core/hle/ipc.h
index fae54bcc7..7ce313190 100644
--- a/src/core/hle/ipc.h
+++ b/src/core/hle/ipc.h
@@ -160,7 +160,7 @@ struct DomainMessageHeader {
160 // Used when responding to an IPC request, Server -> Client. 160 // Used when responding to an IPC request, Server -> Client.
161 struct { 161 struct {
162 u32_le num_objects; 162 u32_le num_objects;
163 INSERT_PADDING_WORDS(3); 163 INSERT_UNION_PADDING_WORDS(3);
164 }; 164 };
165 165
166 // Used when performing an IPC request, Client -> Server. 166 // Used when performing an IPC request, Client -> Server.
@@ -171,8 +171,10 @@ struct DomainMessageHeader {
171 BitField<16, 16, u32> size; 171 BitField<16, 16, u32> size;
172 }; 172 };
173 u32_le object_id; 173 u32_le object_id;
174 INSERT_PADDING_WORDS(2); 174 INSERT_UNION_PADDING_WORDS(2);
175 }; 175 };
176
177 std::array<u32, 4> raw{};
176 }; 178 };
177}; 179};
178static_assert(sizeof(DomainMessageHeader) == 16, "DomainMessageHeader size is incorrect"); 180static_assert(sizeof(DomainMessageHeader) == 16, "DomainMessageHeader size is incorrect");
diff --git a/src/core/hle/service/am/applets/error.cpp b/src/core/hle/service/am/applets/error.cpp
index a7db26725..eab0d42c9 100644
--- a/src/core/hle/service/am/applets/error.cpp
+++ b/src/core/hle/service/am/applets/error.cpp
@@ -20,9 +20,9 @@ namespace Service::AM::Applets {
20struct ShowError { 20struct ShowError {
21 u8 mode; 21 u8 mode;
22 bool jump; 22 bool jump;
23 INSERT_PADDING_BYTES(4); 23 INSERT_UNION_PADDING_BYTES(4);
24 bool use_64bit_error_code; 24 bool use_64bit_error_code;
25 INSERT_PADDING_BYTES(1); 25 INSERT_UNION_PADDING_BYTES(1);
26 u64 error_code_64; 26 u64 error_code_64;
27 u32 error_code_32; 27 u32 error_code_32;
28}; 28};
@@ -32,7 +32,7 @@ static_assert(sizeof(ShowError) == 0x14, "ShowError has incorrect size.");
32struct ShowErrorRecord { 32struct ShowErrorRecord {
33 u8 mode; 33 u8 mode;
34 bool jump; 34 bool jump;
35 INSERT_PADDING_BYTES(6); 35 INSERT_UNION_PADDING_BYTES(6);
36 u64 error_code_64; 36 u64 error_code_64;
37 u64 posix_time; 37 u64 posix_time;
38}; 38};
@@ -41,7 +41,7 @@ static_assert(sizeof(ShowErrorRecord) == 0x18, "ShowErrorRecord has incorrect si
41struct SystemErrorArg { 41struct SystemErrorArg {
42 u8 mode; 42 u8 mode;
43 bool jump; 43 bool jump;
44 INSERT_PADDING_BYTES(6); 44 INSERT_UNION_PADDING_BYTES(6);
45 u64 error_code_64; 45 u64 error_code_64;
46 std::array<char, 8> language_code; 46 std::array<char, 8> language_code;
47 std::array<char, 0x800> main_text; 47 std::array<char, 0x800> main_text;
@@ -52,7 +52,7 @@ static_assert(sizeof(SystemErrorArg) == 0x1018, "SystemErrorArg has incorrect si
52struct ApplicationErrorArg { 52struct ApplicationErrorArg {
53 u8 mode; 53 u8 mode;
54 bool jump; 54 bool jump;
55 INSERT_PADDING_BYTES(6); 55 INSERT_UNION_PADDING_BYTES(6);
56 u32 error_code; 56 u32 error_code;
57 std::array<char, 8> language_code; 57 std::array<char, 8> language_code;
58 std::array<char, 0x800> main_text; 58 std::array<char, 0x800> main_text;
@@ -65,6 +65,7 @@ union Error::ErrorArguments {
65 ShowErrorRecord error_record; 65 ShowErrorRecord error_record;
66 SystemErrorArg system_error; 66 SystemErrorArg system_error;
67 ApplicationErrorArg application_error; 67 ApplicationErrorArg application_error;
68 std::array<u8, 0x1018> raw{};
68}; 69};
69 70
70namespace { 71namespace {
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp
index 199b30635..611cecc20 100644
--- a/src/core/hle/service/vi/vi.cpp
+++ b/src/core/hle/service/vi/vi.cpp
@@ -45,7 +45,7 @@ struct DisplayInfo {
45 45
46 /// Whether or not the display has a limited number of layers. 46 /// Whether or not the display has a limited number of layers.
47 u8 has_limited_layers{1}; 47 u8 has_limited_layers{1};
48 INSERT_PADDING_BYTES(7){}; 48 INSERT_PADDING_BYTES(7);
49 49
50 /// Indicates the total amount of layers supported by the display. 50 /// Indicates the total amount of layers supported by the display.
51 /// @note This is only valid if has_limited_layers is set. 51 /// @note This is only valid if has_limited_layers is set.