mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2025-02-10 01:52:37 +00:00
fs: Add missing types and fix compilation problems
This commit is contained in:
parent
b14f38946c
commit
fe3fcb0730
@ -51,6 +51,7 @@ add_library(core STATIC
|
||||
file_sys/control_metadata.cpp
|
||||
file_sys/control_metadata.h
|
||||
file_sys/errors.h
|
||||
file_sys/fs_common.h
|
||||
file_sys/fs_directory.h
|
||||
file_sys/fs_file.h
|
||||
file_sys/fs_filesystem.h
|
||||
@ -58,17 +59,29 @@ add_library(core STATIC
|
||||
file_sys/fs_operate_range.h
|
||||
file_sys/fs_path.h
|
||||
file_sys/fs_path_utility.h
|
||||
file_sys/fs_program_index_map_info.h
|
||||
file_sys/fs_save_data_types.h
|
||||
file_sys/fs_string_util.h
|
||||
file_sys/fs_program_index_map_info.h
|
||||
file_sys/fsa/fs_i_directory.h
|
||||
file_sys/fsa/fs_i_file.h
|
||||
file_sys/fsa/fs_i_filesystem.h
|
||||
file_sys/fsmitm_romfsbuild.cpp
|
||||
file_sys/fsmitm_romfsbuild.h
|
||||
file_sys/fssrv/fssrv_program_registry_impl.cpp
|
||||
file_sys/fssrv/fssrv_program_registry_impl.h
|
||||
file_sys/fssrv/fssrv_program_registry_service.cpp
|
||||
file_sys/fssrv/fssrv_program_registry_service.h
|
||||
file_sys/fssrv/fssrv_sf_path.h
|
||||
file_sys/fssrv/impl/fssrv_access_control.cpp
|
||||
file_sys/fssrv/impl/fssrv_access_control.h
|
||||
file_sys/fssrv/impl/fssrv_access_control_bits.h
|
||||
file_sys/fssrv/impl/fssrv_program_index_map_info_manager.h
|
||||
file_sys/fssrv/impl/fssrv_program_info.cpp
|
||||
file_sys/fssrv/impl/fssrv_program_info.h
|
||||
file_sys/fssrv/impl/fssrv_program_registry_manager.cpp
|
||||
file_sys/fssrv/impl/fssrv_program_registry_manager.h
|
||||
file_sys/fssrv/impl/fssrv_save_data_properties.h
|
||||
file_sys/fssystem/fs_i_storage.h
|
||||
file_sys/fssystem/fs_types.h
|
||||
file_sys/fssystem/fssystem_aes_ctr_counter_extended_storage.cpp
|
||||
file_sys/fssystem/fssystem_aes_ctr_counter_extended_storage.h
|
||||
file_sys/fssystem/fssystem_aes_ctr_storage.cpp
|
||||
@ -110,19 +123,6 @@ add_library(core STATIC
|
||||
file_sys/fssystem/fssystem_switch_storage.h
|
||||
file_sys/fssystem/fssystem_utility.cpp
|
||||
file_sys/fssystem/fssystem_utility.h
|
||||
file_sys/fssrv/impl/fssrv_program_info.cpp
|
||||
file_sys/fssrv/impl/fssrv_program_info.h
|
||||
file_sys/fssrv/impl/fssrv_access_control.h
|
||||
file_sys/fssrv/impl/fssrv_access_control.cpp
|
||||
file_sys/fssrv/impl/fssrv_access_control_bits.h
|
||||
file_sys/fssrv/impl/fssrv_program_registry_manager.cpp
|
||||
file_sys/fssrv/impl/fssrv_program_registry_manager.h
|
||||
file_sys/fssrv/impl/fssrv_program_index_map_info_manager.h
|
||||
file_sys/fssrv/impl/fssrv_save_data_properties.h
|
||||
file_sys/fssrv/fssrv_program_registry_impl.h
|
||||
file_sys/fssrv/fssrv_program_registry_impl.cpp
|
||||
file_sys/fssrv/fssrv_program_registry_service.h
|
||||
file_sys/fssrv/fssrv_program_registry_service.cpp
|
||||
file_sys/ips_layer.cpp
|
||||
file_sys/ips_layer.h
|
||||
file_sys/kernel_executable.cpp
|
||||
@ -510,33 +510,33 @@ add_library(core STATIC
|
||||
hle/service/apm/apm_controller.h
|
||||
hle/service/apm/apm_interface.cpp
|
||||
hle/service/apm/apm_interface.h
|
||||
hle/service/audio/audio.cpp
|
||||
hle/service/audio/audio.h
|
||||
hle/service/audio/audio_controller.cpp
|
||||
hle/service/audio/audio_controller.h
|
||||
hle/service/audio/audio_device.cpp
|
||||
hle/service/audio/audio_device.h
|
||||
hle/service/audio/audio_in_manager.cpp
|
||||
hle/service/audio/audio_in_manager.h
|
||||
hle/service/audio/audio_in.cpp
|
||||
hle/service/audio/audio_in.h
|
||||
hle/service/audio/audio_out_manager.cpp
|
||||
hle/service/audio/audio_out_manager.h
|
||||
hle/service/audio/audio_in_manager.cpp
|
||||
hle/service/audio/audio_in_manager.h
|
||||
hle/service/audio/audio_out.cpp
|
||||
hle/service/audio/audio_out.h
|
||||
hle/service/audio/audio_renderer_manager.cpp
|
||||
hle/service/audio/audio_renderer_manager.h
|
||||
hle/service/audio/audio_out_manager.cpp
|
||||
hle/service/audio/audio_out_manager.h
|
||||
hle/service/audio/audio_renderer.cpp
|
||||
hle/service/audio/audio_renderer.h
|
||||
hle/service/audio/audio.cpp
|
||||
hle/service/audio/audio.h
|
||||
hle/service/audio/audio_renderer_manager.cpp
|
||||
hle/service/audio/audio_renderer_manager.h
|
||||
hle/service/audio/errors.h
|
||||
hle/service/audio/final_output_recorder_manager_for_applet.cpp
|
||||
hle/service/audio/final_output_recorder_manager_for_applet.h
|
||||
hle/service/audio/final_output_recorder_manager.cpp
|
||||
hle/service/audio/final_output_recorder_manager.h
|
||||
hle/service/audio/hardware_opus_decoder_manager.cpp
|
||||
hle/service/audio/hardware_opus_decoder_manager.h
|
||||
hle/service/audio/final_output_recorder_manager_for_applet.cpp
|
||||
hle/service/audio/final_output_recorder_manager_for_applet.h
|
||||
hle/service/audio/hardware_opus_decoder.cpp
|
||||
hle/service/audio/hardware_opus_decoder.h
|
||||
hle/service/audio/hardware_opus_decoder_manager.cpp
|
||||
hle/service/audio/hardware_opus_decoder_manager.h
|
||||
hle/service/bcat/backend/backend.cpp
|
||||
hle/service/bcat/backend/backend.h
|
||||
hle/service/bcat/bcat.cpp
|
||||
@ -628,14 +628,14 @@ add_library(core STATIC
|
||||
hle/service/filesystem/fsp/fs_i_filesystem.h
|
||||
hle/service/filesystem/fsp/fs_i_multi_commit_manager.cpp
|
||||
hle/service/filesystem/fsp/fs_i_multi_commit_manager.h
|
||||
hle/service/filesystem/fsp/fs_i_program_registry.cpp
|
||||
hle/service/filesystem/fsp/fs_i_program_registry.h
|
||||
hle/service/filesystem/fsp/fs_i_save_data_info_reader.cpp
|
||||
hle/service/filesystem/fsp/fs_i_save_data_info_reader.h
|
||||
hle/service/filesystem/fsp/fs_i_storage.cpp
|
||||
hle/service/filesystem/fsp/fs_i_storage.h
|
||||
hle/service/filesystem/fsp/fsp_ldr.cpp
|
||||
hle/service/filesystem/fsp/fsp_ldr.h
|
||||
hle/service/filesystem/fsp/fs_i_program_registry.cpp
|
||||
hle/service/filesystem/fsp/fs_i_program_registry.h
|
||||
hle/service/filesystem/fsp/fsp_srv.cpp
|
||||
hle/service/filesystem/fsp/fsp_srv.h
|
||||
hle/service/filesystem/fsp/fsp_types.h
|
||||
@ -901,12 +901,12 @@ add_library(core STATIC
|
||||
hle/service/olsc/daemon_controller.h
|
||||
hle/service/olsc/native_handle_holder.cpp
|
||||
hle/service/olsc/native_handle_holder.h
|
||||
hle/service/olsc/olsc.cpp
|
||||
hle/service/olsc/olsc.h
|
||||
hle/service/olsc/olsc_service_for_application.cpp
|
||||
hle/service/olsc/olsc_service_for_application.h
|
||||
hle/service/olsc/olsc_service_for_system_service.cpp
|
||||
hle/service/olsc/olsc_service_for_system_service.h
|
||||
hle/service/olsc/olsc.cpp
|
||||
hle/service/olsc/olsc.h
|
||||
hle/service/olsc/remote_storage_controller.cpp
|
||||
hle/service/olsc/remote_storage_controller.h
|
||||
hle/service/olsc/transfer_task_list_controller.cpp
|
||||
@ -930,10 +930,10 @@ add_library(core STATIC
|
||||
hle/service/os/mutex.h
|
||||
hle/service/pcie/pcie.cpp
|
||||
hle/service/pcie/pcie.h
|
||||
hle/service/pctl/parental_control_service_factory.cpp
|
||||
hle/service/pctl/parental_control_service_factory.h
|
||||
hle/service/pctl/parental_control_service.cpp
|
||||
hle/service/pctl/parental_control_service.h
|
||||
hle/service/pctl/parental_control_service_factory.cpp
|
||||
hle/service/pctl/parental_control_service_factory.h
|
||||
hle/service/pctl/pctl.cpp
|
||||
hle/service/pctl/pctl.h
|
||||
hle/service/pctl/pctl_results.h
|
||||
@ -945,14 +945,14 @@ add_library(core STATIC
|
||||
hle/service/prepo/prepo.cpp
|
||||
hle/service/prepo/prepo.h
|
||||
hle/service/psc/ovln/ovln_types.h
|
||||
hle/service/psc/ovln/receiver_service.cpp
|
||||
hle/service/psc/ovln/receiver_service.h
|
||||
hle/service/psc/ovln/receiver.cpp
|
||||
hle/service/psc/ovln/receiver.h
|
||||
hle/service/psc/ovln/sender_service.cpp
|
||||
hle/service/psc/ovln/sender_service.h
|
||||
hle/service/psc/ovln/receiver_service.cpp
|
||||
hle/service/psc/ovln/receiver_service.h
|
||||
hle/service/psc/ovln/sender.cpp
|
||||
hle/service/psc/ovln/sender.h
|
||||
hle/service/psc/ovln/sender_service.cpp
|
||||
hle/service/psc/ovln/sender_service.h
|
||||
hle/service/psc/pm_control.cpp
|
||||
hle/service/psc/pm_control.h
|
||||
hle/service/psc/pm_module.cpp
|
||||
|
@ -30,14 +30,6 @@ struct Int64 {
|
||||
}
|
||||
};
|
||||
|
||||
struct HashSalt {
|
||||
static constexpr size_t Size = 32;
|
||||
|
||||
std::array<u8, Size> value;
|
||||
};
|
||||
static_assert(std::is_trivial_v<HashSalt>);
|
||||
static_assert(sizeof(HashSalt) == HashSalt::Size);
|
||||
|
||||
constexpr inline size_t IntegrityMinLayerCount = 2;
|
||||
constexpr inline size_t IntegrityMaxLayerCount = 7;
|
||||
constexpr inline size_t IntegrityLayerCountSave = 5;
|
@ -41,6 +41,8 @@ enum class SaveDataRank : u8 {
|
||||
Secondary = 1,
|
||||
};
|
||||
|
||||
enum class SaveDataFormatType : u8 { Normal = 0, NoJournal = 1 };
|
||||
|
||||
struct SaveDataSize {
|
||||
u64 normal;
|
||||
u64 journal;
|
||||
@ -68,28 +70,13 @@ enum class SaveDataMetaType : u8 {
|
||||
ExtensionContext = 2,
|
||||
};
|
||||
|
||||
struct SaveDataMetaInfo {
|
||||
u32 size;
|
||||
SaveDataMetaType type;
|
||||
INSERT_PADDING_BYTES(0xB);
|
||||
};
|
||||
static_assert(std::is_trivially_copyable_v<SaveDataMetaInfo>,
|
||||
"Data type must be trivially copyable.");
|
||||
static_assert(sizeof(SaveDataMetaInfo) == 0x10, "SaveDataMetaInfo has invalid size.");
|
||||
struct HashSalt {
|
||||
static constexpr size_t Size = 32;
|
||||
|
||||
struct SaveDataCreationInfo {
|
||||
s64 size;
|
||||
s64 journal_size;
|
||||
s64 block_size;
|
||||
u64 owner_id;
|
||||
u32 flags;
|
||||
SaveDataSpaceId space_id;
|
||||
bool pseudo;
|
||||
INSERT_PADDING_BYTES(0x1A);
|
||||
std::array<u8, Size> value;
|
||||
};
|
||||
static_assert(std::is_trivially_copyable_v<SaveDataCreationInfo>,
|
||||
"Data type must be trivially copyable.");
|
||||
static_assert(sizeof(SaveDataCreationInfo) == 0x40, "SaveDataCreationInfo has invalid size.");
|
||||
static_assert(std::is_trivially_copyable_v<HashSalt>, "Data type must be trivially copyable.");
|
||||
static_assert(sizeof(HashSalt) == HashSalt::Size);
|
||||
|
||||
struct SaveDataAttribute {
|
||||
ProgramId program_id;
|
||||
@ -149,12 +136,73 @@ constexpr inline bool operator!=(const SaveDataAttribute& lhs, const SaveDataAtt
|
||||
return !(lhs == rhs);
|
||||
}
|
||||
|
||||
struct SaveDataMetaInfo {
|
||||
u32 size;
|
||||
SaveDataMetaType type;
|
||||
INSERT_PADDING_BYTES(0xB);
|
||||
};
|
||||
static_assert(std::is_trivially_copyable_v<SaveDataMetaInfo>,
|
||||
"Data type must be trivially copyable.");
|
||||
static_assert(sizeof(SaveDataMetaInfo) == 0x10, "SaveDataMetaInfo has invalid size.");
|
||||
|
||||
struct SaveDataInfo {
|
||||
u64_le save_id_unknown;
|
||||
FileSys::SaveDataSpaceId space;
|
||||
FileSys::SaveDataType type;
|
||||
INSERT_PADDING_BYTES(0x6);
|
||||
std::array<u8, 0x10> user_id;
|
||||
u64_le save_id;
|
||||
u64_le title_id;
|
||||
u64_le save_image_size;
|
||||
u16_le index;
|
||||
FileSys::SaveDataRank rank;
|
||||
INSERT_PADDING_BYTES(0x25);
|
||||
};
|
||||
static_assert(sizeof(SaveDataInfo) == 0x60, "SaveDataInfo has incorrect size.");
|
||||
|
||||
struct SaveDataCreationInfo {
|
||||
s64 size;
|
||||
s64 journal_size;
|
||||
s64 block_size;
|
||||
u64 owner_id;
|
||||
u32 flags;
|
||||
SaveDataSpaceId space_id;
|
||||
bool pseudo;
|
||||
INSERT_PADDING_BYTES(0x1A);
|
||||
};
|
||||
static_assert(std::is_trivially_copyable_v<SaveDataCreationInfo>,
|
||||
"Data type must be trivially copyable.");
|
||||
static_assert(sizeof(SaveDataCreationInfo) == 0x40, "SaveDataCreationInfo has invalid size.");
|
||||
|
||||
const u32 SaveDataCreationInfoV2Version = 0x00010000;
|
||||
struct SaveDataCreationInfoV2 {
|
||||
u32 version;
|
||||
SaveDataAttribute attribute;
|
||||
s64 size;
|
||||
s64 journal_size;
|
||||
s64 block_size;
|
||||
u64 owner_id;
|
||||
SaveDataFlags flags;
|
||||
SaveDataSpaceId space_id;
|
||||
SaveDataFormatType format_type;
|
||||
INSERT_PADDING_BYTES(0x2);
|
||||
bool is_hash_salt_enabled;
|
||||
INSERT_PADDING_BYTES(0x3);
|
||||
HashSalt hash_salt;
|
||||
SaveDataMetaType meta_type;
|
||||
INSERT_PADDING_BYTES(0x3);
|
||||
s32 meta_size;
|
||||
INSERT_PADDING_BYTES(0x164);
|
||||
};
|
||||
static_assert(sizeof(SaveDataCreationInfoV2) == 0x200,
|
||||
"SaveDataCreationInfoV2 has incorrect size.");
|
||||
|
||||
struct SaveDataExtraData {
|
||||
SaveDataAttribute attr;
|
||||
u64 owner_id;
|
||||
s64 timestamp;
|
||||
u32 flags;
|
||||
INSERT_PADDING_BYTES(4);
|
||||
INSERT_PADDING_BYTES(0x4);
|
||||
s64 available_size;
|
||||
s64 journal_size;
|
||||
s64 commit_id;
|
||||
|
@ -73,7 +73,7 @@ void InitializeInitialAndCurrentProcessId(Core::System& system) {
|
||||
ASSERT(Svc::GetProcessId(system, std::addressof(g_current_process_id),
|
||||
Svc::PseudoHandle::CurrentProcess) == ResultSuccess);
|
||||
|
||||
/* Set initialized. */
|
||||
// Set initialized
|
||||
g_initialized = true;
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
#include "common/assert.h"
|
||||
#include "common/common_types.h"
|
||||
#include "core/file_sys/savedata_factory.h"
|
||||
#include "core/file_sys/fs_save_data_types.h"
|
||||
|
||||
namespace FileSys::FsSrv::Impl {
|
||||
|
||||
@ -30,13 +30,13 @@ public:
|
||||
|
||||
static bool IsJournalingSupported(SaveDataType type) {
|
||||
switch (type) {
|
||||
case SaveDataType::SystemSaveData:
|
||||
case SaveDataType::SaveData:
|
||||
case SaveDataType::BcatDeliveryCacheStorage:
|
||||
case SaveDataType::DeviceSaveData:
|
||||
case SaveDataType::CacheStorage:
|
||||
case SaveDataType::System:
|
||||
case SaveDataType::Account:
|
||||
case SaveDataType::Bcat:
|
||||
case SaveDataType::Device:
|
||||
case SaveDataType::Cache:
|
||||
return true;
|
||||
case SaveDataType::TemporaryStorage:
|
||||
case SaveDataType::Temporary:
|
||||
return false;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
@ -46,13 +46,13 @@ public:
|
||||
|
||||
static bool IsMultiCommitSupported(SaveDataType type) {
|
||||
switch (type) {
|
||||
case SaveDataType::SystemSaveData:
|
||||
case SaveDataType::SaveData:
|
||||
case SaveDataType::DeviceSaveData:
|
||||
case SaveDataType::System:
|
||||
case SaveDataType::Account:
|
||||
case SaveDataType::Device:
|
||||
return true;
|
||||
case SaveDataType::BcatDeliveryCacheStorage:
|
||||
case SaveDataType::TemporaryStorage:
|
||||
case SaveDataType::CacheStorage:
|
||||
case SaveDataType::Bcat:
|
||||
case SaveDataType::Temporary:
|
||||
case SaveDataType::Cache:
|
||||
return false;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
@ -62,13 +62,13 @@ public:
|
||||
|
||||
static bool IsSharedOpenNeeded(SaveDataType type) {
|
||||
switch (type) {
|
||||
case SaveDataType::SystemSaveData:
|
||||
case SaveDataType::BcatDeliveryCacheStorage:
|
||||
case SaveDataType::TemporaryStorage:
|
||||
case SaveDataType::CacheStorage:
|
||||
case SaveDataType::System:
|
||||
case SaveDataType::Bcat:
|
||||
case SaveDataType::Temporary:
|
||||
case SaveDataType::Cache:
|
||||
return false;
|
||||
case SaveDataType::SaveData:
|
||||
case SaveDataType::DeviceSaveData:
|
||||
case SaveDataType::Account:
|
||||
case SaveDataType::Device:
|
||||
return true;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
@ -78,13 +78,13 @@ public:
|
||||
|
||||
static bool CanUseIndexerReservedArea(SaveDataType type) {
|
||||
switch (type) {
|
||||
case SaveDataType::SystemSaveData:
|
||||
case SaveDataType::System:
|
||||
return true;
|
||||
case SaveDataType::SaveData:
|
||||
case SaveDataType::BcatDeliveryCacheStorage:
|
||||
case SaveDataType::DeviceSaveData:
|
||||
case SaveDataType::TemporaryStorage:
|
||||
case SaveDataType::CacheStorage:
|
||||
case SaveDataType::Account:
|
||||
case SaveDataType::Bcat:
|
||||
case SaveDataType::Device:
|
||||
case SaveDataType::Temporary:
|
||||
case SaveDataType::Cache:
|
||||
return false;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
@ -94,13 +94,13 @@ public:
|
||||
|
||||
static bool IsSystemSaveData(SaveDataType type) {
|
||||
switch (type) {
|
||||
case SaveDataType::SystemSaveData:
|
||||
case SaveDataType::System:
|
||||
return true;
|
||||
case SaveDataType::SaveData:
|
||||
case SaveDataType::BcatDeliveryCacheStorage:
|
||||
case SaveDataType::DeviceSaveData:
|
||||
case SaveDataType::TemporaryStorage:
|
||||
case SaveDataType::CacheStorage:
|
||||
case SaveDataType::Account:
|
||||
case SaveDataType::Bcat:
|
||||
case SaveDataType::Device:
|
||||
case SaveDataType::Temporary:
|
||||
case SaveDataType::Cache:
|
||||
return false;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
@ -117,13 +117,13 @@ public:
|
||||
|
||||
static bool IsWipingNeededAtCleanUp(const SaveDataInfo& info) {
|
||||
switch (info.type) {
|
||||
case SaveDataType::SystemSaveData:
|
||||
case SaveDataType::System:
|
||||
break;
|
||||
case SaveDataType::SaveData:
|
||||
case SaveDataType::BcatDeliveryCacheStorage:
|
||||
case SaveDataType::DeviceSaveData:
|
||||
case SaveDataType::TemporaryStorage:
|
||||
case SaveDataType::CacheStorage:
|
||||
case SaveDataType::Account:
|
||||
case SaveDataType::Bcat:
|
||||
case SaveDataType::Device:
|
||||
case SaveDataType::Temporary:
|
||||
case SaveDataType::Cache:
|
||||
return true;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
@ -146,14 +146,14 @@ public:
|
||||
|
||||
static bool IsValidSpaceIdForSaveDataMover(SaveDataType type, SaveDataSpaceId space_id) {
|
||||
switch (type) {
|
||||
case SaveDataType::SystemSaveData:
|
||||
case SaveDataType::SaveData:
|
||||
case SaveDataType::BcatDeliveryCacheStorage:
|
||||
case SaveDataType::DeviceSaveData:
|
||||
case SaveDataType::TemporaryStorage:
|
||||
case SaveDataType::System:
|
||||
case SaveDataType::Account:
|
||||
case SaveDataType::Bcat:
|
||||
case SaveDataType::Device:
|
||||
case SaveDataType::Temporary:
|
||||
return false;
|
||||
case SaveDataType::CacheStorage:
|
||||
return space_id == SaveDataSpaceId::NandUser || space_id == SaveDataSpaceId::SdCardUser;
|
||||
case SaveDataType::Cache:
|
||||
return space_id == SaveDataSpaceId::User || space_id == SaveDataSpaceId::SdUser;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return false;
|
||||
@ -162,26 +162,26 @@ public:
|
||||
|
||||
static bool IsReconstructible(SaveDataType type, SaveDataSpaceId space_id) {
|
||||
switch (space_id) {
|
||||
case SaveDataSpaceId::NandSystem:
|
||||
case SaveDataSpaceId::NandUser:
|
||||
case SaveDataSpaceId::System:
|
||||
case SaveDataSpaceId::User:
|
||||
case SaveDataSpaceId::ProperSystem:
|
||||
case SaveDataSpaceId::SafeMode:
|
||||
switch (type) {
|
||||
case SaveDataType::SystemSaveData:
|
||||
case SaveDataType::SaveData:
|
||||
case SaveDataType::DeviceSaveData:
|
||||
case SaveDataType::System:
|
||||
case SaveDataType::Account:
|
||||
case SaveDataType::Device:
|
||||
return false;
|
||||
case SaveDataType::BcatDeliveryCacheStorage:
|
||||
case SaveDataType::TemporaryStorage:
|
||||
case SaveDataType::CacheStorage:
|
||||
case SaveDataType::Bcat:
|
||||
case SaveDataType::Temporary:
|
||||
case SaveDataType::Cache:
|
||||
return true;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return false;
|
||||
}
|
||||
case SaveDataSpaceId::SdCardSystem:
|
||||
case SaveDataSpaceId::TemporaryStorage:
|
||||
case SaveDataSpaceId::SdCardUser:
|
||||
case SaveDataSpaceId::SdSystem:
|
||||
case SaveDataSpaceId::Temporary:
|
||||
case SaveDataSpaceId::SdUser:
|
||||
return true;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
|
@ -4,8 +4,9 @@
|
||||
#pragma once
|
||||
|
||||
#include "common/alignment.h"
|
||||
#include "core/file_sys/fs_common.h"
|
||||
#include "core/file_sys/fs_save_data_types.h"
|
||||
#include "core/file_sys/fssystem/fs_i_storage.h"
|
||||
#include "core/file_sys/fssystem/fs_types.h"
|
||||
#include "core/file_sys/fssystem/fssystem_alignment_matching_storage.h"
|
||||
#include "core/file_sys/fssystem/fssystem_integrity_verification_storage.h"
|
||||
#include "core/file_sys/vfs/vfs_offset.h"
|
||||
|
@ -5,8 +5,8 @@
|
||||
|
||||
#include <optional>
|
||||
|
||||
#include "core/file_sys/fs_common.h"
|
||||
#include "core/file_sys/fssystem/fs_i_storage.h"
|
||||
#include "core/file_sys/fssystem/fs_types.h"
|
||||
|
||||
namespace FileSys {
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "common/literals.h"
|
||||
|
||||
#include "core/file_sys/errors.h"
|
||||
#include "core/file_sys/fssystem/fs_types.h"
|
||||
#include "core/file_sys/fs_common.h"
|
||||
|
||||
namespace FileSys {
|
||||
|
||||
|
@ -37,7 +37,7 @@ static u64 stoull_be(std::string_view str) {
|
||||
}
|
||||
|
||||
Result ISaveDataInfoReader::ReadSaveDataInfo(
|
||||
Out<u64> out_count, OutArray<SaveDataInfo, BufferAttr_HipcMapAlias> out_entries) {
|
||||
Out<u64> out_count, OutArray<FileSys::SaveDataInfo, BufferAttr_HipcMapAlias> out_entries) {
|
||||
LOG_DEBUG(Service_FS, "called");
|
||||
|
||||
// Calculate how many entries we can fit in the output buffer
|
||||
@ -93,7 +93,7 @@ void ISaveDataInfoReader::FindNormalSaves(FileSys::SaveDataSpaceId space,
|
||||
|
||||
if (save_id_numeric != 0) {
|
||||
// System Save Data
|
||||
info.emplace_back(SaveDataInfo{
|
||||
info.emplace_back(FileSys::SaveDataInfo{
|
||||
0,
|
||||
space,
|
||||
FileSys::SaveDataType::System,
|
||||
@ -112,7 +112,7 @@ void ISaveDataInfoReader::FindNormalSaves(FileSys::SaveDataSpaceId space,
|
||||
for (const auto& title_id : user_id->GetSubdirectories()) {
|
||||
const auto device = std::all_of(user_id_numeric.begin(), user_id_numeric.end(),
|
||||
[](u8 val) { return val == 0; });
|
||||
info.emplace_back(SaveDataInfo{
|
||||
info.emplace_back(FileSys::SaveDataInfo{
|
||||
0,
|
||||
space,
|
||||
device ? FileSys::SaveDataType::Device : FileSys::SaveDataType::Account,
|
||||
@ -141,7 +141,7 @@ void ISaveDataInfoReader::FindTemporaryStorageSaves(FileSys::SaveDataSpaceId spa
|
||||
auto user_id_numeric = Common::HexStringToArray<0x10>(user_id->GetName());
|
||||
std::reverse(user_id_numeric.begin(), user_id_numeric.end());
|
||||
|
||||
info.emplace_back(SaveDataInfo{
|
||||
info.emplace_back(FileSys::SaveDataInfo{
|
||||
0,
|
||||
space,
|
||||
FileSys::SaveDataType::Temporary,
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
#include <vector>
|
||||
#include "common/common_types.h"
|
||||
#include "core/file_sys/fs_save_data_types.h"
|
||||
#include "core/hle/service/cmif_types.h"
|
||||
#include "core/hle/service/service.h"
|
||||
|
||||
@ -19,23 +20,8 @@ public:
|
||||
FileSys::SaveDataSpaceId space);
|
||||
~ISaveDataInfoReader() override;
|
||||
|
||||
struct SaveDataInfo {
|
||||
u64_le save_id_unknown;
|
||||
FileSys::SaveDataSpaceId space;
|
||||
FileSys::SaveDataType type;
|
||||
INSERT_PADDING_BYTES(0x6);
|
||||
std::array<u8, 0x10> user_id;
|
||||
u64_le save_id;
|
||||
u64_le title_id;
|
||||
u64_le save_image_size;
|
||||
u16_le index;
|
||||
FileSys::SaveDataRank rank;
|
||||
INSERT_PADDING_BYTES(0x25);
|
||||
};
|
||||
static_assert(sizeof(SaveDataInfo) == 0x60, "SaveDataInfo has incorrect size.");
|
||||
|
||||
Result ReadSaveDataInfo(Out<u64> out_count,
|
||||
OutArray<SaveDataInfo, BufferAttr_HipcMapAlias> out_entries);
|
||||
OutArray<FileSys::SaveDataInfo, BufferAttr_HipcMapAlias> out_entries);
|
||||
|
||||
private:
|
||||
void FindAllSaves(FileSys::SaveDataSpaceId space);
|
||||
@ -43,7 +29,7 @@ private:
|
||||
void FindTemporaryStorageSaves(FileSys::SaveDataSpaceId space, const FileSys::VirtualDir& type);
|
||||
|
||||
std::shared_ptr<SaveDataController> save_data_controller;
|
||||
std::vector<SaveDataInfo> info;
|
||||
std::vector<FileSys::SaveDataInfo> info;
|
||||
u64 next_entry_index = 0;
|
||||
};
|
||||
|
||||
|
@ -225,23 +225,23 @@ Result FSP_SRV::OpenSdCardFileSystem(OutInterface<IFileSystem> out_interface) {
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
Result FSP_SRV::CreateSaveDataFileSystem(FileSys::SaveDataCreationInfo save_create_struct,
|
||||
FileSys::SaveDataAttribute save_struct, u128 uid) {
|
||||
LOG_DEBUG(Service_FS, "called save_struct = {}, uid = {:016X}{:016X}", save_struct.DebugInfo(),
|
||||
uid[1], uid[0]);
|
||||
Result FSP_SRV::CreateSaveDataFileSystem(FileSys::SaveDataMetaInfo meta_info,
|
||||
FileSys::SaveDataCreationInfo creation_info,
|
||||
FileSys::SaveDataAttribute attribute) {
|
||||
LOG_DEBUG(Service_FS, "called save_struct = {}", attribute.DebugInfo());
|
||||
|
||||
FileSys::VirtualDir save_data_dir{};
|
||||
R_RETURN(save_data_controller->CreateSaveData(&save_data_dir, FileSys::SaveDataSpaceId::User,
|
||||
save_struct));
|
||||
attribute));
|
||||
}
|
||||
|
||||
Result FSP_SRV::CreateSaveDataFileSystemBySystemSaveDataId(
|
||||
FileSys::SaveDataAttribute save_struct, FileSys::SaveDataCreationInfo save_create_struct) {
|
||||
LOG_DEBUG(Service_FS, "called save_struct = {}", save_struct.DebugInfo());
|
||||
FileSys::SaveDataAttribute attribute, FileSys::SaveDataCreationInfo save_create_struct) {
|
||||
LOG_DEBUG(Service_FS, "called save_struct = {}", attribute.DebugInfo());
|
||||
|
||||
FileSys::VirtualDir save_data_dir{};
|
||||
R_RETURN(save_data_controller->CreateSaveData(&save_data_dir, FileSys::SaveDataSpaceId::System,
|
||||
save_struct));
|
||||
attribute));
|
||||
}
|
||||
|
||||
Result FSP_SRV::OpenSaveDataFileSystem(OutInterface<IFileSystem> out_interface,
|
||||
|
@ -51,10 +51,11 @@ private:
|
||||
Result OpenFileSystemWithPatch(OutInterface<IFileSystem> out_interface,
|
||||
FileSystemProxyType type, u64 open_program_id);
|
||||
Result OpenSdCardFileSystem(OutInterface<IFileSystem> out_interface);
|
||||
Result CreateSaveDataFileSystem(FileSys::SaveDataCreationInfo save_create_struct,
|
||||
FileSys::SaveDataAttribute save_struct, u128 uid);
|
||||
Result CreateSaveDataFileSystem(FileSys::SaveDataMetaInfo meta_info,
|
||||
FileSys::SaveDataCreationInfo creation_info,
|
||||
FileSys::SaveDataAttribute attribute);
|
||||
Result CreateSaveDataFileSystemBySystemSaveDataId(
|
||||
FileSys::SaveDataAttribute save_struct, FileSys::SaveDataCreationInfo save_create_struct);
|
||||
FileSys::SaveDataAttribute attribute, FileSys::SaveDataCreationInfo save_create_struct);
|
||||
Result OpenSaveDataFileSystem(OutInterface<IFileSystem> out_interface,
|
||||
FileSys::SaveDataSpaceId space_id,
|
||||
FileSys::SaveDataAttribute attribute);
|
||||
|
Loading…
Reference in New Issue
Block a user