mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-11-29 04:14:28 +01:00
Address review comments pt. 2
This commit is contained in:
parent
ba70dc4c13
commit
ef50277124
@ -38,4 +38,29 @@ enum class CreateOption : u8 {
|
|||||||
BigFile = (1 << 0),
|
BigFile = (1 << 0),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct FileSystemAttribute {
|
||||||
|
u8 dir_entry_name_length_max_defined;
|
||||||
|
u8 file_entry_name_length_max_defined;
|
||||||
|
u8 dir_path_name_length_max_defined;
|
||||||
|
u8 file_path_name_length_max_defined;
|
||||||
|
INSERT_PADDING_BYTES_NOINIT(0x5);
|
||||||
|
u8 utf16_dir_entry_name_length_max_defined;
|
||||||
|
u8 utf16_file_entry_name_length_max_defined;
|
||||||
|
u8 utf16_dir_path_name_length_max_defined;
|
||||||
|
u8 utf16_file_path_name_length_max_defined;
|
||||||
|
INSERT_PADDING_BYTES_NOINIT(0x18);
|
||||||
|
s32 dir_entry_name_length_max;
|
||||||
|
s32 file_entry_name_length_max;
|
||||||
|
s32 dir_path_name_length_max;
|
||||||
|
s32 file_path_name_length_max;
|
||||||
|
INSERT_PADDING_WORDS_NOINIT(0x5);
|
||||||
|
s32 utf16_dir_entry_name_length_max;
|
||||||
|
s32 utf16_file_entry_name_length_max;
|
||||||
|
s32 utf16_dir_path_name_length_max;
|
||||||
|
s32 utf16_file_path_name_length_max;
|
||||||
|
INSERT_PADDING_WORDS_NOINIT(0x18);
|
||||||
|
INSERT_PADDING_WORDS_NOINIT(0x1);
|
||||||
|
};
|
||||||
|
static_assert(sizeof(FileSystemAttribute) == 0xC0, "FileSystemAttribute has incorrect size");
|
||||||
|
|
||||||
} // namespace FileSys
|
} // namespace FileSys
|
||||||
|
@ -91,12 +91,8 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define DECLARE_PATH_FLAG_HANDLER(__WHICH__) \
|
#define DECLARE_PATH_FLAG_HANDLER(__WHICH__) \
|
||||||
constexpr bool Is##__WHICH__##Allowed() const { \
|
constexpr bool Is##__WHICH__##Allowed() const { return (m_value & __WHICH__##Flag) != 0; } \
|
||||||
return (m_value & __WHICH__##Flag) != 0; \
|
constexpr void Allow##__WHICH__() { m_value |= __WHICH__##Flag; }
|
||||||
} \
|
|
||||||
constexpr void Allow##__WHICH__() { \
|
|
||||||
m_value |= __WHICH__##Flag; \
|
|
||||||
}
|
|
||||||
|
|
||||||
DECLARE_PATH_FLAG_HANDLER(WindowsPath)
|
DECLARE_PATH_FLAG_HANDLER(WindowsPath)
|
||||||
DECLARE_PATH_FLAG_HANDLER(RelativePath)
|
DECLARE_PATH_FLAG_HANDLER(RelativePath)
|
||||||
|
@ -56,7 +56,7 @@ private:
|
|||||||
next_entry_index += actual_entries;
|
next_entry_index += actual_entries;
|
||||||
*out_count = actual_entries;
|
*out_count = actual_entries;
|
||||||
|
|
||||||
std::memcpy(out_entries, entries.data(), range_size);
|
std::memcpy(out_entries, begin, range_size);
|
||||||
|
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
@ -125,10 +125,8 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Result DoRead(size_t* out, s64 offset, void* buffer, size_t size, const ReadOption& option) {
|
Result DoRead(size_t* out, s64 offset, void* buffer, size_t size, const ReadOption& option) {
|
||||||
std::vector<u8> output = backend->ReadBytes(size, offset);
|
const auto read_size = backend->Read(static_cast<u8*>(buffer), size, offset);
|
||||||
|
*out = read_size;
|
||||||
*out = output.size();
|
|
||||||
std::memcpy(buffer, output.data(), size);
|
|
||||||
|
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
@ -157,10 +157,10 @@ Result IFileSystem::GetFileTimeStampRaw(
|
|||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
Result IFileSystem::GetFileSystemAttribute(Out<FileSystemAttribute> out_attribute) {
|
Result IFileSystem::GetFileSystemAttribute(Out<FileSys::FileSystemAttribute> out_attribute) {
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) called");
|
LOG_WARNING(Service_FS, "(STUBBED) called");
|
||||||
|
|
||||||
FileSystemAttribute savedata_attribute{};
|
FileSys::FileSystemAttribute savedata_attribute{};
|
||||||
savedata_attribute.dir_entry_name_length_max_defined = true;
|
savedata_attribute.dir_entry_name_length_max_defined = true;
|
||||||
savedata_attribute.file_entry_name_length_max_defined = true;
|
savedata_attribute.file_entry_name_length_max_defined = true;
|
||||||
savedata_attribute.dir_entry_name_length_max = 0x40;
|
savedata_attribute.dir_entry_name_length_max = 0x40;
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "common/common_funcs.h"
|
#include "common/common_funcs.h"
|
||||||
|
#include "core/file_sys/fs_filesystem.h"
|
||||||
#include "core/file_sys/fsa/fs_i_filesystem.h"
|
#include "core/file_sys/fsa/fs_i_filesystem.h"
|
||||||
#include "core/file_sys/vfs/vfs.h"
|
#include "core/file_sys/vfs/vfs.h"
|
||||||
#include "core/hle/service/cmif_types.h"
|
#include "core/hle/service/cmif_types.h"
|
||||||
@ -24,31 +25,6 @@ class IFileSystem final : public ServiceFramework<IFileSystem> {
|
|||||||
public:
|
public:
|
||||||
explicit IFileSystem(Core::System& system_, FileSys::VirtualDir dir_, SizeGetter size_getter_);
|
explicit IFileSystem(Core::System& system_, FileSys::VirtualDir dir_, SizeGetter size_getter_);
|
||||||
|
|
||||||
struct FileSystemAttribute {
|
|
||||||
u8 dir_entry_name_length_max_defined;
|
|
||||||
u8 file_entry_name_length_max_defined;
|
|
||||||
u8 dir_path_name_length_max_defined;
|
|
||||||
u8 file_path_name_length_max_defined;
|
|
||||||
INSERT_PADDING_BYTES_NOINIT(0x5);
|
|
||||||
u8 utf16_dir_entry_name_length_max_defined;
|
|
||||||
u8 utf16_file_entry_name_length_max_defined;
|
|
||||||
u8 utf16_dir_path_name_length_max_defined;
|
|
||||||
u8 utf16_file_path_name_length_max_defined;
|
|
||||||
INSERT_PADDING_BYTES_NOINIT(0x18);
|
|
||||||
s32 dir_entry_name_length_max;
|
|
||||||
s32 file_entry_name_length_max;
|
|
||||||
s32 dir_path_name_length_max;
|
|
||||||
s32 file_path_name_length_max;
|
|
||||||
INSERT_PADDING_WORDS_NOINIT(0x5);
|
|
||||||
s32 utf16_dir_entry_name_length_max;
|
|
||||||
s32 utf16_file_entry_name_length_max;
|
|
||||||
s32 utf16_dir_path_name_length_max;
|
|
||||||
s32 utf16_file_path_name_length_max;
|
|
||||||
INSERT_PADDING_WORDS_NOINIT(0x18);
|
|
||||||
INSERT_PADDING_WORDS_NOINIT(0x1);
|
|
||||||
};
|
|
||||||
static_assert(sizeof(FileSystemAttribute) == 0xC0, "FileSystemAttribute has incorrect size");
|
|
||||||
|
|
||||||
Result CreateFile(const InLargeData<FileSys::Sf::Path, BufferAttr_HipcPointer> path, s32 option,
|
Result CreateFile(const InLargeData<FileSys::Sf::Path, BufferAttr_HipcPointer> path, s32 option,
|
||||||
s64 size);
|
s64 size);
|
||||||
Result DeleteFile(const InLargeData<FileSys::Sf::Path, BufferAttr_HipcPointer> path);
|
Result DeleteFile(const InLargeData<FileSys::Sf::Path, BufferAttr_HipcPointer> path);
|
||||||
@ -74,7 +50,7 @@ public:
|
|||||||
const InLargeData<FileSys::Sf::Path, BufferAttr_HipcPointer> path);
|
const InLargeData<FileSys::Sf::Path, BufferAttr_HipcPointer> path);
|
||||||
Result GetFileTimeStampRaw(Out<FileSys::FileTimeStampRaw> out_timestamp,
|
Result GetFileTimeStampRaw(Out<FileSys::FileTimeStampRaw> out_timestamp,
|
||||||
const InLargeData<FileSys::Sf::Path, BufferAttr_HipcPointer> path);
|
const InLargeData<FileSys::Sf::Path, BufferAttr_HipcPointer> path);
|
||||||
Result GetFileSystemAttribute(Out<FileSystemAttribute> out_attribute);
|
Result GetFileSystemAttribute(Out<FileSys::FileSystemAttribute> out_attribute);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<FileSys::Fsa::IFileSystem> backend;
|
std::unique_ptr<FileSys::Fsa::IFileSystem> backend;
|
||||||
|
Loading…
Reference in New Issue
Block a user