| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // Copyright 2014 Citra Emulator Project
- // Licensed under GPLv2 or any later version
- // Refer to the license.txt file included.
- #pragma once
- // Configuration memory stores various hardware/kernel configuration settings. This memory page is
- // read-only for ARM11 processes. I'm guessing this would normally be written to by the firmware/
- // bootrom. Because we're not emulating this, and essentially just "stubbing" the functionality, I'm
- // putting this as a subset of HLE for now.
- #include "common/common_funcs.h"
- #include "common/common_types.h"
- #include "common/swap.h"
- #include "core/memory.h"
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- namespace ConfigMem {
- struct ConfigMemDef {
- u8 kernel_unk; // 0
- u8 kernel_version_rev; // 1
- u8 kernel_version_min; // 2
- u8 kernel_version_maj; // 3
- u32_le update_flag; // 4
- u64_le ns_tid; // 8
- u32_le sys_core_ver; // 10
- u8 unit_info; // 14
- u8 boot_firm; // 15
- u8 prev_firm; // 16
- INSERT_PADDING_BYTES(0x1); // 17
- u32_le ctr_sdk_ver; // 18
- INSERT_PADDING_BYTES(0x30 - 0x1C); // 1C
- u32_le app_mem_type; // 30
- INSERT_PADDING_BYTES(0x40 - 0x34); // 34
- u32_le app_mem_alloc; // 40
- u32_le sys_mem_alloc; // 44
- u32_le base_mem_alloc; // 48
- INSERT_PADDING_BYTES(0x60 - 0x4C); // 4C
- u8 firm_unk; // 60
- u8 firm_version_rev; // 61
- u8 firm_version_min; // 62
- u8 firm_version_maj; // 63
- u32_le firm_sys_core_ver; // 64
- u32_le firm_ctr_sdk_ver; // 68
- INSERT_PADDING_BYTES(0x1000 - 0x6C); // 6C
- };
- static_assert(sizeof(ConfigMemDef) == Memory::CONFIG_MEMORY_SIZE,
- "Config Memory structure size is wrong");
- extern ConfigMemDef config_mem;
- void Init();
- } // namespace ConfigMem
|