diff --git a/src/common/enum_util.h b/src/common/enum_util.h index b7f3abf28d..26093b326a 100644 --- a/src/common/enum_util.h +++ b/src/common/enum_util.h @@ -3,6 +3,8 @@ #pragma once +#include + namespace Common { template diff --git a/src/core/file_sys/fs_save_data_types.h b/src/core/file_sys/fs_save_data_types.h index 12e5012bb9..622f73569e 100644 --- a/src/core/file_sys/fs_save_data_types.h +++ b/src/core/file_sys/fs_save_data_types.h @@ -7,6 +7,7 @@ #include #include "common/common_funcs.h" #include "common/common_types.h" +#include "common/swap.h" namespace FileSys { @@ -41,7 +42,10 @@ enum class SaveDataRank : u8 { Secondary = 1, }; -enum class SaveDataFormatType : u8 { Normal = 0, NoJournal = 1 }; +enum class SaveDataFormatType : u8 { + Normal = 0, + NoJournal = 1, +}; struct SaveDataSize { u64 normal; @@ -225,12 +229,4 @@ static_assert(sizeof(SaveDataFilter) == 0x48, "SaveDataFilter has invalid size." static_assert(std::is_trivially_copyable_v, "Data type must be trivially copyable."); -struct HashSalt { - static constexpr size_t Size = 32; - - std::array value; -}; -static_assert(std::is_trivially_copyable_v, "Data type must be trivially copyable."); -static_assert(sizeof(HashSalt) == HashSalt::Size); - } // namespace FileSys diff --git a/src/core/file_sys/fssrv/fssrv_program_registry_impl.cpp b/src/core/file_sys/fssrv/fssrv_program_registry_impl.cpp index be825eefbc..9073d08db0 100644 --- a/src/core/file_sys/fssrv/fssrv_program_registry_impl.cpp +++ b/src/core/file_sys/fssrv/fssrv_program_registry_impl.cpp @@ -23,7 +23,7 @@ ProgramRegistryImpl::~ProgramRegistryImpl() {} void ProgramRegistryImpl::Initialize(ProgramRegistryServiceImpl* service) { // Check pre-conditions - ASSERT(g_impl != nullptr); + ASSERT(service != nullptr); ASSERT(g_impl == nullptr); // Set the global service diff --git a/src/core/file_sys/fssrv/impl/fssrv_access_control.cpp b/src/core/file_sys/fssrv/impl/fssrv_access_control.cpp index fd75656460..286e42f922 100644 --- a/src/core/file_sys/fssrv/impl/fssrv_access_control.cpp +++ b/src/core/file_sys/fssrv/impl/fssrv_access_control.cpp @@ -1,33 +1,19 @@ // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#include "common/alignment.h" #include "common/enum_util.h" +#include "common/swap.h" #include "core/file_sys/fssrv/impl/fssrv_access_control.h" namespace FileSys::FsSrv { -namespace { -constinit bool g_is_debug_flag_enabled = false; -} - -bool IsDebugFlagEnabled() { - return g_is_debug_flag_enabled; -} - -void SetDebugFlagEnabled(bool enabled) { - // Set global debug flag - g_is_debug_flag_enabled = enabled; -} - namespace Impl { -namespace { constexpr u8 LatestFsAccessControlInfoVersion = 1; -} AccessControl::AccessControl(const void* data, s64 data_size, const void* desc, s64 desc_size) - : AccessControl(data, data_size, desc, desc_size, - g_is_debug_flag_enabled ? AllFlagBitsMask : DebugFlagDisableMask) {} + : AccessControl(data, data_size, desc, desc_size, DebugFlagDisableMask) {} AccessControl::AccessControl(const void* fac_data, s64 data_size, const void* fac_desc, s64 desc_size, u64 flag_mask) { @@ -418,7 +404,7 @@ Accessibility AccessControl::GetAccessibilityFor(AccessibilityType type) const { m_flag_bits->CanMountHostWrite()); case MountRegisteredUpdatePartition: return Accessibility::MakeAccessibility( - m_flag_bits->CanMountRegisteredUpdatePartitionRead() && g_is_debug_flag_enabled, false); + m_flag_bits->CanMountRegisteredUpdatePartitionRead(), false); case MountSaveDataInternalStorage: return Accessibility::MakeAccessibility(m_flag_bits->CanOpenSaveDataInternalStorageRead(), m_flag_bits->CanOpenSaveDataInternalStorageWrite()); @@ -510,7 +496,7 @@ bool AccessControl::CanCall(OperationType type) const { case ExtendOthersSystemSaveData: return m_flag_bits->CanExtendOthersSystemSaveData(); case RegisterUpdatePartition: - return m_flag_bits->CanRegisterUpdatePartition() && g_is_debug_flag_enabled; + return m_flag_bits->CanRegisterUpdatePartition(); case OpenSaveDataTransferManager: return m_flag_bits->CanOpenSaveDataTransferManager(); case OpenSaveDataTransferManagerVersion2: diff --git a/src/core/file_sys/fssrv/impl/fssrv_access_control.h b/src/core/file_sys/fssrv/impl/fssrv_access_control.h index 75878600a2..a12698e289 100644 --- a/src/core/file_sys/fssrv/impl/fssrv_access_control.h +++ b/src/core/file_sys/fssrv/impl/fssrv_access_control.h @@ -10,13 +10,6 @@ #include "common/intrusive_list.h" #include "core/file_sys/fssrv/impl/fssrv_access_control_bits.h" -namespace FileSys::FsSrv { - -bool IsDebugFlagEnabled(); -void SetDebugFlagEnabled(bool enabled); - -} // namespace FileSys::FsSrv - namespace FileSys::FsSrv::Impl { struct Accessibility { diff --git a/src/core/file_sys/fssrv/impl/fssrv_program_info.cpp b/src/core/file_sys/fssrv/impl/fssrv_program_info.cpp index 333fc55c9e..4d93c1ab48 100644 --- a/src/core/file_sys/fssrv/impl/fssrv_program_info.cpp +++ b/src/core/file_sys/fssrv/impl/fssrv_program_info.cpp @@ -6,6 +6,7 @@ #include "core/core.h" #include "core/file_sys/fssrv/impl/fssrv_program_info.h" #include "core/hle/kernel/svc.h" +#include "core/hle/kernel/svc_common.h" namespace FileSys::FsSrv::Impl { @@ -39,12 +40,6 @@ public: } }; -constexpr const u32 FileAccessControlForInitialProgram[0x1C / sizeof(u32)] = { - 0x00000001, 0x00000000, 0x80000000, 0x0000001C, 0x00000000, 0x0000001C, 0x00000000}; -constexpr const u32 FileAccessControlDescForInitialProgram[0x2C / sizeof(u32)] = { - 0x00000001, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0xFFFFFFFF, - 0xFFFFFFFF, 0x00000000, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF}; - constinit bool g_initialized = false; constinit u64 g_initial_process_id_min = 0; @@ -87,6 +82,12 @@ std::shared_ptr ProgramInfo::GetProgramInfoForInitialProcess() { : ProgramInfo(data, data_size, desc, desc_size) {} }; + constexpr const u32 FileAccessControlForInitialProgram[0x1C / sizeof(u32)] = { + 0x00000001, 0x00000000, 0x80000000, 0x0000001C, 0x00000000, 0x0000001C, 0x00000000}; + constexpr const u32 FileAccessControlDescForInitialProgram[0x2C / sizeof(u32)] = { + 0x00000001, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0xFFFFFFFF, + 0xFFFFFFFF, 0x00000000, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF}; + static constinit Common::TypedStorage> s_fls_storage_for_s_initial_program_info{}; static constinit bool s_fls_initialized_s_initial_program_info = false; diff --git a/src/core/file_sys/fssrv/impl/fssrv_program_info.h b/src/core/file_sys/fssrv/impl/fssrv_program_info.h index 9ba8cd9423..7ef8bf9a5a 100644 --- a/src/core/file_sys/fssrv/impl/fssrv_program_info.h +++ b/src/core/file_sys/fssrv/impl/fssrv_program_info.h @@ -48,9 +48,8 @@ public: static std::shared_ptr GetProgramInfoForInitialProcess(); private: - const u64 InvalidProgramId = {}; ProgramInfo(const void* data, s64 data_size, const void* desc, s64 desc_size) - : m_process_id(InvalidProcessId), m_program_id(InvalidProgramId), + : m_process_id(InvalidProcessId), m_program_id(0), m_storage_id(static_cast(0)), m_access_control(data, data_size, desc, desc_size, std::numeric_limits::max()) {} }; diff --git a/src/core/file_sys/fssrv/impl/fssrv_save_data_properties.h b/src/core/file_sys/fssrv/impl/fssrv_save_data_properties.h index d15319bd01..21fdf757df 100644 --- a/src/core/file_sys/fssrv/impl/fssrv_save_data_properties.h +++ b/src/core/file_sys/fssrv/impl/fssrv_save_data_properties.h @@ -1,7 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2020 Alex Barney // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -// TODO: Properly credit LibHac before this gets merged +// SPDX-License-Identifier: MIT AND GPL-2.0-or-later #pragma once diff --git a/src/core/hle/kernel/svc/svc_info.cpp b/src/core/hle/kernel/svc/svc_info.cpp index 5d6734620b..5eef64f7b5 100644 --- a/src/core/hle/kernel/svc/svc_info.cpp +++ b/src/core/hle/kernel/svc/svc_info.cpp @@ -8,6 +8,7 @@ #include "core/hle/kernel/k_process.h" #include "core/hle/kernel/k_resource_limit.h" #include "core/hle/kernel/svc.h" +#include "core/hle/kernel/svc_common.h" namespace Kernel::Svc {