summaryrefslogtreecommitdiff
path: root/src/core/hle/config_mem.cpp
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner2015-05-12 23:17:30 -0300
committerGravatar Yuri Kunde Schlesner2015-05-15 00:04:39 -0300
commitec514b16a66c0aca19e3f641836d836eacd59e75 (patch)
tree14bbe427b74a2e0d8f0e015f3898cf79f13adb10 /src/core/hle/config_mem.cpp
parentMemmap: Re-organize memory function in two files (diff)
downloadyuzu-ec514b16a66c0aca19e3f641836d836eacd59e75.tar.gz
yuzu-ec514b16a66c0aca19e3f641836d836eacd59e75.tar.xz
yuzu-ec514b16a66c0aca19e3f641836d836eacd59e75.zip
Memory: Read ConfigMem directly from Memory::Read
Diffstat (limited to 'src/core/hle/config_mem.cpp')
-rw-r--r--src/core/hle/config_mem.cpp47
1 files changed, 1 insertions, 46 deletions
diff --git a/src/core/hle/config_mem.cpp b/src/core/hle/config_mem.cpp
index 2f7cc7ee5..aea936d2d 100644
--- a/src/core/hle/config_mem.cpp
+++ b/src/core/hle/config_mem.cpp
@@ -16,52 +16,7 @@
16 16
17namespace ConfigMem { 17namespace ConfigMem {
18 18
19struct ConfigMemDef { 19ConfigMemDef config_mem;
20 u8 kernel_unk; // 0
21 u8 kernel_version_rev; // 1
22 u8 kernel_version_min; // 2
23 u8 kernel_version_maj; // 3
24 u32 update_flag; // 4
25 u64 ns_tid; // 8
26 u32 sys_core_ver; // 10
27 u8 unit_info; // 14
28 u8 boot_firm; // 15
29 u8 prev_firm; // 16
30 INSERT_PADDING_BYTES(0x1); // 17
31 u32 ctr_sdk_ver; // 18
32 INSERT_PADDING_BYTES(0x30 - 0x1C); // 1C
33 u32 app_mem_type; // 30
34 INSERT_PADDING_BYTES(0x40 - 0x34); // 34
35 u32 app_mem_alloc; // 40
36 u32 sys_mem_alloc; // 44
37 u32 base_mem_alloc; // 48
38 INSERT_PADDING_BYTES(0x60 - 0x4C); // 4C
39 u8 firm_unk; // 60
40 u8 firm_version_rev; // 61
41 u8 firm_version_min; // 62
42 u8 firm_version_maj; // 63
43 u32 firm_sys_core_ver; // 64
44 u32 firm_ctr_sdk_ver; // 68
45 INSERT_PADDING_BYTES(0x1000 - 0x6C); // 6C
46};
47
48static_assert(sizeof(ConfigMemDef) == Memory::CONFIG_MEMORY_SIZE, "Config Memory structure size is wrong");
49
50static ConfigMemDef config_mem;
51
52template <typename T>
53inline void Read(T &var, const u32 addr) {
54 u32 offset = addr - Memory::CONFIG_MEMORY_VADDR;
55 ASSERT(offset < Memory::CONFIG_MEMORY_SIZE);
56 var = *(reinterpret_cast<T*>(((uintptr_t)&config_mem) + offset));
57}
58
59// Explicitly instantiate template functions because we aren't defining this in the header:
60
61template void Read<u64>(u64 &var, const u32 addr);
62template void Read<u32>(u32 &var, const u32 addr);
63template void Read<u16>(u16 &var, const u32 addr);
64template void Read<u8>(u8 &var, const u32 addr);
65 20
66void Init() { 21void Init() {
67 std::memset(&config_mem, 0, sizeof(config_mem)); 22 std::memset(&config_mem, 0, sizeof(config_mem));