mirror of
https://gitlab.com/suyu-emu/suyu.git
synced 2024-03-15 23:15:44 +00:00
file_sys: tweaks
This commit is contained in:
parent
c03795300a
commit
83aa38b239
|
@ -3,6 +3,7 @@
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include <cinttypes>
|
#include <cinttypes>
|
||||||
|
#include <utility>
|
||||||
#include "common/file_util.h"
|
#include "common/file_util.h"
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
#include "core/file_sys/partition_filesystem.h"
|
#include "core/file_sys/partition_filesystem.h"
|
||||||
|
@ -44,8 +45,8 @@ Loader::ResultStatus PartitionFilesystem::Load(const std::string& file_path, siz
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
Loader::ResultStatus PartitionFilesystem::Load(const std::vector<u8> file_data, size_t offset) {
|
Loader::ResultStatus PartitionFilesystem::Load(const std::vector<u8>& file_data, size_t offset) {
|
||||||
size_t total_size = static_cast<size_t>(file_data.size() - offset);
|
size_t total_size = file_data.size() - offset;
|
||||||
if (total_size < sizeof(Header))
|
if (total_size < sizeof(Header))
|
||||||
return Loader::ResultStatus::Error;
|
return Loader::ResultStatus::Error;
|
||||||
|
|
||||||
|
@ -61,7 +62,7 @@ Loader::ResultStatus PartitionFilesystem::Load(const std::vector<u8> file_data,
|
||||||
memcpy(&entry.fs_entry, &file_data[entries_offset + (i * entry_size)], sizeof(FSEntry));
|
memcpy(&entry.fs_entry, &file_data[entries_offset + (i * entry_size)], sizeof(FSEntry));
|
||||||
entry.name = std::string(reinterpret_cast<const char*>(
|
entry.name = std::string(reinterpret_cast<const char*>(
|
||||||
&file_data[strtab_offset + entry.fs_entry.strtab_offset]));
|
&file_data[strtab_offset + entry.fs_entry.strtab_offset]));
|
||||||
pfs_entries.push_back(entry);
|
pfs_entries.push_back(std::move(entry));
|
||||||
}
|
}
|
||||||
|
|
||||||
content_offset = strtab_offset + pfs_header.strtab_size;
|
content_offset = strtab_offset + pfs_header.strtab_size;
|
||||||
|
@ -69,7 +70,7 @@ Loader::ResultStatus PartitionFilesystem::Load(const std::vector<u8> file_data,
|
||||||
return Loader::ResultStatus::Success;
|
return Loader::ResultStatus::Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 PartitionFilesystem::GetNumEntries(void) const {
|
u32 PartitionFilesystem::GetNumEntries() const {
|
||||||
return pfs_header.num_entries;
|
return pfs_header.num_entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,9 @@ namespace FileSys {
|
||||||
class PartitionFilesystem {
|
class PartitionFilesystem {
|
||||||
public:
|
public:
|
||||||
Loader::ResultStatus Load(const std::string& file_path, size_t offset = 0);
|
Loader::ResultStatus Load(const std::string& file_path, size_t offset = 0);
|
||||||
Loader::ResultStatus Load(const std::vector<u8> file_data, size_t offset = 0);
|
Loader::ResultStatus Load(const std::vector<u8>& file_data, size_t offset = 0);
|
||||||
|
|
||||||
u32 GetNumEntries(void) const;
|
u32 GetNumEntries() const;
|
||||||
u64 GetEntryOffset(int index) const;
|
u64 GetEntryOffset(int index) const;
|
||||||
u64 GetEntrySize(int index) const;
|
u64 GetEntrySize(int index) const;
|
||||||
std::string GetEntryName(int index) const;
|
std::string GetEntryName(int index) const;
|
||||||
|
|
Loading…
Reference in a new issue