diff options
| author | 2015-05-12 23:17:30 -0300 | |
|---|---|---|
| committer | 2015-05-15 00:04:39 -0300 | |
| commit | ec514b16a66c0aca19e3f641836d836eacd59e75 (patch) | |
| tree | 14bbe427b74a2e0d8f0e015f3898cf79f13adb10 /src/core/hle/config_mem.cpp | |
| parent | Memmap: Re-organize memory function in two files (diff) | |
| download | yuzu-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.cpp | 47 |
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 | ||
| 17 | namespace ConfigMem { | 17 | namespace ConfigMem { |
| 18 | 18 | ||
| 19 | struct ConfigMemDef { | 19 | ConfigMemDef 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 | |||
| 48 | static_assert(sizeof(ConfigMemDef) == Memory::CONFIG_MEMORY_SIZE, "Config Memory structure size is wrong"); | ||
| 49 | |||
| 50 | static ConfigMemDef config_mem; | ||
| 51 | |||
| 52 | template <typename T> | ||
| 53 | inline 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 | |||
| 61 | template void Read<u64>(u64 &var, const u32 addr); | ||
| 62 | template void Read<u32>(u32 &var, const u32 addr); | ||
| 63 | template void Read<u16>(u16 &var, const u32 addr); | ||
| 64 | template void Read<u8>(u8 &var, const u32 addr); | ||
| 65 | 20 | ||
| 66 | void Init() { | 21 | void Init() { |
| 67 | std::memset(&config_mem, 0, sizeof(config_mem)); | 22 | std::memset(&config_mem, 0, sizeof(config_mem)); |