mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Merge pull request #779 from lioncash/shared
hle: Remove unused config_mem and shared_page source files
This commit is contained in:
		
						commit
						e0b6771e25
					
				| @ -40,8 +40,6 @@ add_library(core STATIC | |||||||
|     frontend/input.h |     frontend/input.h | ||||||
|     gdbstub/gdbstub.cpp |     gdbstub/gdbstub.cpp | ||||||
|     gdbstub/gdbstub.h |     gdbstub/gdbstub.h | ||||||
|     hle/config_mem.cpp |  | ||||||
|     hle/config_mem.h |  | ||||||
|     hle/ipc.h |     hle/ipc.h | ||||||
|     hle/ipc_helpers.h |     hle/ipc_helpers.h | ||||||
|     hle/kernel/address_arbiter.cpp |     hle/kernel/address_arbiter.cpp | ||||||
| @ -251,8 +249,6 @@ add_library(core STATIC | |||||||
|     hle/service/vi/vi_s.h |     hle/service/vi/vi_s.h | ||||||
|     hle/service/vi/vi_u.cpp |     hle/service/vi/vi_u.cpp | ||||||
|     hle/service/vi/vi_u.h |     hle/service/vi/vi_u.h | ||||||
|     hle/shared_page.cpp |  | ||||||
|     hle/shared_page.h |  | ||||||
|     hw/hw.cpp |     hw/hw.cpp | ||||||
|     hw/hw.h |     hw/hw.h | ||||||
|     hw/lcd.cpp |     hw/lcd.cpp | ||||||
|  | |||||||
| @ -1,31 +0,0 @@ | |||||||
| // Copyright 2014 Citra Emulator Project
 |  | ||||||
| // Licensed under GPLv2 or any later version
 |  | ||||||
| // Refer to the license.txt file included.
 |  | ||||||
| 
 |  | ||||||
| #include <cstring> |  | ||||||
| #include "core/hle/config_mem.h" |  | ||||||
| 
 |  | ||||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 |  | ||||||
| 
 |  | ||||||
| namespace ConfigMem { |  | ||||||
| 
 |  | ||||||
| ConfigMemDef config_mem; |  | ||||||
| 
 |  | ||||||
| void Init() { |  | ||||||
|     std::memset(&config_mem, 0, sizeof(config_mem)); |  | ||||||
| 
 |  | ||||||
|     // Values extracted from firmware 11.2.0-35E
 |  | ||||||
|     config_mem.kernel_version_min = 0x34; |  | ||||||
|     config_mem.kernel_version_maj = 0x2; |  | ||||||
|     config_mem.ns_tid = 0x0004013000008002; |  | ||||||
|     config_mem.sys_core_ver = 0x2; |  | ||||||
|     config_mem.unit_info = 0x1; // Bit 0 set for Retail
 |  | ||||||
|     config_mem.prev_firm = 0x1; |  | ||||||
|     config_mem.ctr_sdk_ver = 0x0000F297; |  | ||||||
|     config_mem.firm_version_min = 0x34; |  | ||||||
|     config_mem.firm_version_maj = 0x2; |  | ||||||
|     config_mem.firm_sys_core_ver = 0x2; |  | ||||||
|     config_mem.firm_ctr_sdk_ver = 0x0000F297; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| } // namespace ConfigMem
 |  | ||||||
| @ -1,56 +0,0 @@ | |||||||
| // 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
 |  | ||||||
| @ -2,7 +2,6 @@ | |||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "core/hle/config_mem.h" |  | ||||||
| #include "core/hle/kernel/handle_table.h" | #include "core/hle/kernel/handle_table.h" | ||||||
| #include "core/hle/kernel/kernel.h" | #include "core/hle/kernel/kernel.h" | ||||||
| #include "core/hle/kernel/memory.h" | #include "core/hle/kernel/memory.h" | ||||||
| @ -11,7 +10,6 @@ | |||||||
| #include "core/hle/kernel/resource_limit.h" | #include "core/hle/kernel/resource_limit.h" | ||||||
| #include "core/hle/kernel/thread.h" | #include "core/hle/kernel/thread.h" | ||||||
| #include "core/hle/kernel/timer.h" | #include "core/hle/kernel/timer.h" | ||||||
| #include "core/hle/shared_page.h" |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
| @ -19,9 +17,6 @@ unsigned int Object::next_object_id; | |||||||
| 
 | 
 | ||||||
| /// Initialize the kernel
 | /// Initialize the kernel
 | ||||||
| void Init(u32 system_mode) { | void Init(u32 system_mode) { | ||||||
|     ConfigMem::Init(); |  | ||||||
|     SharedPage::Init(); |  | ||||||
| 
 |  | ||||||
|     Kernel::MemoryInit(system_mode); |     Kernel::MemoryInit(system_mode); | ||||||
| 
 | 
 | ||||||
|     Kernel::ResourceLimitsInit(); |     Kernel::ResourceLimitsInit(); | ||||||
|  | |||||||
| @ -11,11 +11,9 @@ | |||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "core/hle/config_mem.h" |  | ||||||
| #include "core/hle/kernel/memory.h" | #include "core/hle/kernel/memory.h" | ||||||
| #include "core/hle/kernel/vm_manager.h" | #include "core/hle/kernel/vm_manager.h" | ||||||
| #include "core/hle/result.h" | #include "core/hle/result.h" | ||||||
| #include "core/hle/shared_page.h" |  | ||||||
| #include "core/memory.h" | #include "core/memory.h" | ||||||
| #include "core/memory_setup.h" | #include "core/memory_setup.h" | ||||||
| 
 | 
 | ||||||
| @ -63,14 +61,6 @@ void MemoryInit(u32 mem_type) { | |||||||
| 
 | 
 | ||||||
|     // We must've allocated the entire FCRAM by the end
 |     // We must've allocated the entire FCRAM by the end
 | ||||||
|     ASSERT(base == Memory::FCRAM_SIZE); |     ASSERT(base == Memory::FCRAM_SIZE); | ||||||
| 
 |  | ||||||
|     using ConfigMem::config_mem; |  | ||||||
|     config_mem.app_mem_type = mem_type; |  | ||||||
|     // app_mem_malloc does not always match the configured size for memory_region[0]: in case the
 |  | ||||||
|     // n3DS type override is in effect it reports the size the game expects, not the real one.
 |  | ||||||
|     config_mem.app_mem_alloc = memory_region_sizes[mem_type][0]; |  | ||||||
|     config_mem.sys_mem_alloc = static_cast<u32_le>(memory_regions[1].size); |  | ||||||
|     config_mem.base_mem_alloc = static_cast<u32_le>(memory_regions[2].size); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MemoryShutdown() { | void MemoryShutdown() { | ||||||
|  | |||||||
| @ -5,7 +5,6 @@ | |||||||
| #include <algorithm> | #include <algorithm> | ||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "core/hle/config_mem.h" |  | ||||||
| #include "core/hle/kernel/errors.h" | #include "core/hle/kernel/errors.h" | ||||||
| #include "core/hle/kernel/kernel.h" | #include "core/hle/kernel/kernel.h" | ||||||
| #include "core/hle/kernel/memory.h" | #include "core/hle/kernel/memory.h" | ||||||
| @ -13,7 +12,6 @@ | |||||||
| #include "core/hle/kernel/resource_limit.h" | #include "core/hle/kernel/resource_limit.h" | ||||||
| #include "core/hle/kernel/thread.h" | #include "core/hle/kernel/thread.h" | ||||||
| #include "core/hle/kernel/timer.h" | #include "core/hle/kernel/timer.h" | ||||||
| #include "core/hle/shared_page.h" |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,86 +0,0 @@ | |||||||
| // Copyright 2015 Citra Emulator Project
 |  | ||||||
| // Licensed under GPLv2 or any later version
 |  | ||||||
| // Refer to the license.txt file included.
 |  | ||||||
| 
 |  | ||||||
| #include <chrono> |  | ||||||
| #include <cstring> |  | ||||||
| #include <ctime> |  | ||||||
| #include "core/core_timing.h" |  | ||||||
| #include "core/hle/shared_page.h" |  | ||||||
| 
 |  | ||||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 |  | ||||||
| 
 |  | ||||||
| namespace SharedPage { |  | ||||||
| 
 |  | ||||||
| SharedPageDef shared_page; |  | ||||||
| 
 |  | ||||||
| static CoreTiming::EventType* update_time_event; |  | ||||||
| 
 |  | ||||||
| /// Gets system time in 3DS format. The epoch is Jan 1900, and the unit is millisecond.
 |  | ||||||
| static u64 GetSystemTime() { |  | ||||||
|     auto now = std::chrono::system_clock::now(); |  | ||||||
| 
 |  | ||||||
|     // 3DS system does't allow user to set a time before Jan 1 2000,
 |  | ||||||
|     // so we use it as an auxiliary epoch to calculate the console time.
 |  | ||||||
|     std::tm epoch_tm; |  | ||||||
|     epoch_tm.tm_sec = 0; |  | ||||||
|     epoch_tm.tm_min = 0; |  | ||||||
|     epoch_tm.tm_hour = 0; |  | ||||||
|     epoch_tm.tm_mday = 1; |  | ||||||
|     epoch_tm.tm_mon = 0; |  | ||||||
|     epoch_tm.tm_year = 100; |  | ||||||
|     epoch_tm.tm_isdst = 0; |  | ||||||
|     auto epoch = std::chrono::system_clock::from_time_t(std::mktime(&epoch_tm)); |  | ||||||
| 
 |  | ||||||
|     // 3DS console time uses Jan 1 1900 as internal epoch,
 |  | ||||||
|     // so we use the milliseconds between 1900 and 2000 as base console time
 |  | ||||||
|     u64 console_time = 3155673600000ULL; |  | ||||||
| 
 |  | ||||||
|     // Only when system time is after 2000, we set it as 3DS system time
 |  | ||||||
|     if (now > epoch) { |  | ||||||
|         console_time += std::chrono::duration_cast<std::chrono::milliseconds>(now - epoch).count(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     // If the system time is in daylight saving, we give an additional hour to console time
 |  | ||||||
|     std::time_t now_time_t = std::chrono::system_clock::to_time_t(now); |  | ||||||
|     std::tm* now_tm = std::localtime(&now_time_t); |  | ||||||
|     if (now_tm && now_tm->tm_isdst > 0) |  | ||||||
|         console_time += 60 * 60 * 1000; |  | ||||||
| 
 |  | ||||||
|     return console_time; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void UpdateTimeCallback(u64 userdata, int cycles_late) { |  | ||||||
|     DateTime& date_time = |  | ||||||
|         shared_page.date_time_counter % 2 ? shared_page.date_time_0 : shared_page.date_time_1; |  | ||||||
| 
 |  | ||||||
|     date_time.date_time = GetSystemTime(); |  | ||||||
|     date_time.update_tick = CoreTiming::GetTicks(); |  | ||||||
|     date_time.tick_to_second_coefficient = CoreTiming::BASE_CLOCK_RATE; |  | ||||||
|     date_time.tick_offset = 0; |  | ||||||
| 
 |  | ||||||
|     ++shared_page.date_time_counter; |  | ||||||
| 
 |  | ||||||
|     // system time is updated hourly
 |  | ||||||
|     CoreTiming::ScheduleEvent(CoreTiming::msToCycles(60 * 60 * 1000) - cycles_late, |  | ||||||
|                               update_time_event); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void Init() { |  | ||||||
|     std::memset(&shared_page, 0, sizeof(shared_page)); |  | ||||||
| 
 |  | ||||||
|     shared_page.running_hw = 0x1; // product
 |  | ||||||
| 
 |  | ||||||
|     // Some games wait until this value becomes 0x1, before asking running_hw
 |  | ||||||
|     shared_page.unknown_value = 0x1; |  | ||||||
| 
 |  | ||||||
|     // Set to a completely full battery
 |  | ||||||
|     shared_page.battery_state.is_adapter_connected.Assign(1); |  | ||||||
|     shared_page.battery_state.is_charging.Assign(1); |  | ||||||
| 
 |  | ||||||
|     update_time_event = |  | ||||||
|         CoreTiming::RegisterEvent("SharedPage::UpdateTimeCallback", UpdateTimeCallback); |  | ||||||
|     CoreTiming::ScheduleEvent(0, update_time_event); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| } // namespace SharedPage
 |  | ||||||
| @ -1,69 +0,0 @@ | |||||||
| // Copyright 2015 Citra Emulator Project
 |  | ||||||
| // Licensed under GPLv2 or any later version
 |  | ||||||
| // Refer to the license.txt file included.
 |  | ||||||
| 
 |  | ||||||
| #pragma once |  | ||||||
| 
 |  | ||||||
| /**
 |  | ||||||
|  * The shared page stores various runtime configuration settings. This memory page is |  | ||||||
|  * read-only for user processes (there is a bit in the header that grants the process |  | ||||||
|  * write access, according to 3dbrew; this is not emulated) |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #include "common/bit_field.h" |  | ||||||
| #include "common/common_funcs.h" |  | ||||||
| #include "common/common_types.h" |  | ||||||
| #include "common/swap.h" |  | ||||||
| #include "core/memory.h" |  | ||||||
| 
 |  | ||||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 |  | ||||||
| 
 |  | ||||||
| namespace SharedPage { |  | ||||||
| 
 |  | ||||||
| // See http://3dbrew.org/wiki/Configuration_Memory#Shared_Memory_Page_For_ARM11_Processes
 |  | ||||||
| 
 |  | ||||||
| struct DateTime { |  | ||||||
|     u64_le date_time;                  // 0
 |  | ||||||
|     u64_le update_tick;                // 8
 |  | ||||||
|     u64_le tick_to_second_coefficient; // 10
 |  | ||||||
|     u64_le tick_offset;                // 18
 |  | ||||||
| }; |  | ||||||
| static_assert(sizeof(DateTime) == 0x20, "Datetime size is wrong"); |  | ||||||
| 
 |  | ||||||
| union BatteryState { |  | ||||||
|     u8 raw; |  | ||||||
|     BitField<0, 1, u8> is_adapter_connected; |  | ||||||
|     BitField<1, 1, u8> is_charging; |  | ||||||
|     BitField<2, 3, u8> charge_level; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| struct SharedPageDef { |  | ||||||
|     // Most of these names are taken from the 3dbrew page linked above.
 |  | ||||||
|     u32_le date_time_counter; // 0
 |  | ||||||
|     u8 running_hw;            // 4
 |  | ||||||
|     /// "Microcontroller hardware info"
 |  | ||||||
|     u8 mcu_hw_info;                      // 5
 |  | ||||||
|     INSERT_PADDING_BYTES(0x20 - 0x6);    // 6
 |  | ||||||
|     DateTime date_time_0;                // 20
 |  | ||||||
|     DateTime date_time_1;                // 40
 |  | ||||||
|     u8 wifi_macaddr[6];                  // 60
 |  | ||||||
|     u8 wifi_link_level;                  // 66
 |  | ||||||
|     u8 wifi_unknown2;                    // 67
 |  | ||||||
|     INSERT_PADDING_BYTES(0x80 - 0x68);   // 68
 |  | ||||||
|     float_le sliderstate_3d;             // 80
 |  | ||||||
|     u8 ledstate_3d;                      // 84
 |  | ||||||
|     BatteryState battery_state;          // 85
 |  | ||||||
|     u8 unknown_value;                    // 86
 |  | ||||||
|     INSERT_PADDING_BYTES(0xA0 - 0x87);   // 87
 |  | ||||||
|     u64_le menu_title_id;                // A0
 |  | ||||||
|     u64_le active_menu_title_id;         // A8
 |  | ||||||
|     INSERT_PADDING_BYTES(0x1000 - 0xB0); // B0
 |  | ||||||
| }; |  | ||||||
| static_assert(sizeof(SharedPageDef) == Memory::SHARED_PAGE_SIZE, |  | ||||||
|               "Shared page structure size is wrong"); |  | ||||||
| 
 |  | ||||||
| extern SharedPageDef shared_page; |  | ||||||
| 
 |  | ||||||
| void Init(); |  | ||||||
| 
 |  | ||||||
| } // namespace SharedPage
 |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei