service/fs: Migrate logging macros (#3866)
* service/fs: Migrate logging macros * service/fs: Fix clang format
This commit is contained in:
parent
1449f8e725
commit
a42287587e
|
@ -73,13 +73,12 @@ void File::Read(Kernel::HLERequestContext& ctx) {
|
||||||
u64 offset = rp.Pop<u64>();
|
u64 offset = rp.Pop<u64>();
|
||||||
u32 length = rp.Pop<u32>();
|
u32 length = rp.Pop<u32>();
|
||||||
auto& buffer = rp.PopMappedBuffer();
|
auto& buffer = rp.PopMappedBuffer();
|
||||||
LOG_TRACE(Service_FS, "Read %s: offset=0x%" PRIx64 " length=0x%08X", GetName().c_str(), offset,
|
NGLOG_TRACE(Service_FS, "Read {}: offset=0x{:x} length=0x{:08X}", GetName(), offset, length);
|
||||||
length);
|
|
||||||
|
|
||||||
const FileSessionSlot* file = GetSessionData(ctx.Session());
|
const FileSessionSlot* file = GetSessionData(ctx.Session());
|
||||||
|
|
||||||
if (file->subfile && length > file->size) {
|
if (file->subfile && length > file->size) {
|
||||||
LOG_WARNING(Service_FS, "Trying to read beyond the subfile size, truncating");
|
NGLOG_WARNING(Service_FS, "Trying to read beyond the subfile size, truncating");
|
||||||
length = file->size;
|
length = file->size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,10 +86,9 @@ void File::Read(Kernel::HLERequestContext& ctx) {
|
||||||
offset += file->offset;
|
offset += file->offset;
|
||||||
|
|
||||||
if (offset + length > backend->GetSize()) {
|
if (offset + length > backend->GetSize()) {
|
||||||
LOG_ERROR(Service_FS,
|
NGLOG_ERROR(Service_FS,
|
||||||
"Reading from out of bounds offset=0x%" PRIx64
|
"Reading from out of bounds offset=0x{:x} length=0x{:08X} file_size=0x{:x}",
|
||||||
" length=0x%08X file_size=0x%" PRIx64,
|
offset, length, backend->GetSize());
|
||||||
offset, length, backend->GetSize());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 2);
|
IPC::RequestBuilder rb = rp.MakeBuilder(2, 2);
|
||||||
|
@ -121,8 +119,8 @@ void File::Write(Kernel::HLERequestContext& ctx) {
|
||||||
u32 length = rp.Pop<u32>();
|
u32 length = rp.Pop<u32>();
|
||||||
u32 flush = rp.Pop<u32>();
|
u32 flush = rp.Pop<u32>();
|
||||||
auto& buffer = rp.PopMappedBuffer();
|
auto& buffer = rp.PopMappedBuffer();
|
||||||
LOG_TRACE(Service_FS, "Write %s: offset=0x%" PRIx64 " length=%d, flush=0x%x", GetName().c_str(),
|
NGLOG_TRACE(Service_FS, "Write {}: offset=0x{:x} length={}, flush=0x{:x}", GetName(), offset,
|
||||||
offset, length, flush);
|
length, flush);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 2);
|
IPC::RequestBuilder rb = rp.MakeBuilder(2, 2);
|
||||||
|
|
||||||
|
@ -183,8 +181,8 @@ void File::Close(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
// TODO(Subv): Only close the backend if this client is the only one left.
|
// TODO(Subv): Only close the backend if this client is the only one left.
|
||||||
if (connected_sessions.size() > 1)
|
if (connected_sessions.size() > 1)
|
||||||
LOG_WARNING(Service_FS, "Closing File backend but %zu clients still connected",
|
NGLOG_WARNING(Service_FS, "Closing File backend but {} clients still connected",
|
||||||
connected_sessions.size());
|
connected_sessions.size());
|
||||||
|
|
||||||
backend->Close();
|
backend->Close();
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
|
@ -228,7 +226,7 @@ void File::GetPriority(Kernel::HLERequestContext& ctx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void File::OpenLinkFile(Kernel::HLERequestContext& ctx) {
|
void File::OpenLinkFile(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) File command OpenLinkFile %s", GetName().c_str());
|
NGLOG_WARNING(Service_FS, "(STUBBED) File command OpenLinkFile {}", GetName());
|
||||||
using Kernel::ClientSession;
|
using Kernel::ClientSession;
|
||||||
using Kernel::ServerSession;
|
using Kernel::ServerSession;
|
||||||
using Kernel::SharedPtr;
|
using Kernel::SharedPtr;
|
||||||
|
@ -329,7 +327,7 @@ void Directory::Read(Kernel::HLERequestContext& ctx) {
|
||||||
u32 count = rp.Pop<u32>();
|
u32 count = rp.Pop<u32>();
|
||||||
auto& buffer = rp.PopMappedBuffer();
|
auto& buffer = rp.PopMappedBuffer();
|
||||||
std::vector<FileSys::Entry> entries(count);
|
std::vector<FileSys::Entry> entries(count);
|
||||||
LOG_TRACE(Service_FS, "Read %s: count=%u", GetName().c_str(), count);
|
NGLOG_TRACE(Service_FS, "Read {}: count={}", GetName(), count);
|
||||||
// Number of entries actually read
|
// Number of entries actually read
|
||||||
u32 read = backend->Read(static_cast<u32>(entries.size()), entries.data());
|
u32 read = backend->Read(static_cast<u32>(entries.size()), entries.data());
|
||||||
buffer.Write(entries.data(), 0, read * sizeof(FileSys::Entry));
|
buffer.Write(entries.data(), 0, read * sizeof(FileSys::Entry));
|
||||||
|
@ -342,7 +340,7 @@ void Directory::Read(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
void Directory::Close(Kernel::HLERequestContext& ctx) {
|
void Directory::Close(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x0802, 0, 0);
|
IPC::RequestParser rp(ctx, 0x0802, 0, 0);
|
||||||
LOG_TRACE(Service_FS, "Close %s", GetName().c_str());
|
NGLOG_TRACE(Service_FS, "Close {}", GetName());
|
||||||
backend->Close();
|
backend->Close();
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
|
@ -372,7 +370,7 @@ static ArchiveBackend* GetArchive(ArchiveHandle handle) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ResultVal<ArchiveHandle> OpenArchive(ArchiveIdCode id_code, FileSys::Path& archive_path) {
|
ResultVal<ArchiveHandle> OpenArchive(ArchiveIdCode id_code, FileSys::Path& archive_path) {
|
||||||
LOG_TRACE(Service_FS, "Opening archive with id code 0x%08X", id_code);
|
NGLOG_TRACE(Service_FS, "Opening archive with id code 0x{:08X}", id_code);
|
||||||
|
|
||||||
auto itr = id_code_map.find(id_code);
|
auto itr = id_code_map.find(id_code);
|
||||||
if (itr == id_code_map.end()) {
|
if (itr == id_code_map.end()) {
|
||||||
|
@ -406,8 +404,8 @@ ResultCode RegisterArchiveType(std::unique_ptr<FileSys::ArchiveFactory>&& factor
|
||||||
ASSERT_MSG(inserted, "Tried to register more than one archive with same id code");
|
ASSERT_MSG(inserted, "Tried to register more than one archive with same id code");
|
||||||
|
|
||||||
auto& archive = result.first->second;
|
auto& archive = result.first->second;
|
||||||
LOG_DEBUG(Service_FS, "Registered archive %s with id code 0x%08X", archive->GetName().c_str(),
|
NGLOG_DEBUG(Service_FS, "Registered archive {} with id code 0x{:08X}", archive->GetName(),
|
||||||
static_cast<u32>(id_code));
|
static_cast<u32>(id_code));
|
||||||
return RESULT_SUCCESS;
|
return RESULT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -578,7 +576,7 @@ ResultCode DeleteExtSaveData(MediaType media_type, u32 high, u32 low) {
|
||||||
} else if (media_type == MediaType::SDMC) {
|
} else if (media_type == MediaType::SDMC) {
|
||||||
media_type_directory = FileUtil::GetUserPath(D_SDMC_IDX);
|
media_type_directory = FileUtil::GetUserPath(D_SDMC_IDX);
|
||||||
} else {
|
} else {
|
||||||
LOG_ERROR(Service_FS, "Unsupported media type %u", static_cast<u32>(media_type));
|
NGLOG_ERROR(Service_FS, "Unsupported media type {}", static_cast<u32>(media_type));
|
||||||
return ResultCode(-1); // TODO(Subv): Find the right error code
|
return ResultCode(-1); // TODO(Subv): Find the right error code
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -625,15 +623,14 @@ void RegisterArchiveTypes() {
|
||||||
if (sdmc_factory->Initialize())
|
if (sdmc_factory->Initialize())
|
||||||
RegisterArchiveType(std::move(sdmc_factory), ArchiveIdCode::SDMC);
|
RegisterArchiveType(std::move(sdmc_factory), ArchiveIdCode::SDMC);
|
||||||
else
|
else
|
||||||
LOG_ERROR(Service_FS, "Can't instantiate SDMC archive with path %s",
|
NGLOG_ERROR(Service_FS, "Can't instantiate SDMC archive with path {}", sdmc_directory);
|
||||||
sdmc_directory.c_str());
|
|
||||||
|
|
||||||
auto sdmcwo_factory = std::make_unique<FileSys::ArchiveFactory_SDMCWriteOnly>(sdmc_directory);
|
auto sdmcwo_factory = std::make_unique<FileSys::ArchiveFactory_SDMCWriteOnly>(sdmc_directory);
|
||||||
if (sdmcwo_factory->Initialize())
|
if (sdmcwo_factory->Initialize())
|
||||||
RegisterArchiveType(std::move(sdmcwo_factory), ArchiveIdCode::SDMCWriteOnly);
|
RegisterArchiveType(std::move(sdmcwo_factory), ArchiveIdCode::SDMCWriteOnly);
|
||||||
else
|
else
|
||||||
LOG_ERROR(Service_FS, "Can't instantiate SDMCWriteOnly archive with path %s",
|
NGLOG_ERROR(Service_FS, "Can't instantiate SDMCWriteOnly archive with path {}",
|
||||||
sdmc_directory.c_str());
|
sdmc_directory);
|
||||||
|
|
||||||
// Create the SaveData archive
|
// Create the SaveData archive
|
||||||
auto sd_savedata_source = std::make_shared<FileSys::ArchiveSource_SDSaveData>(sdmc_directory);
|
auto sd_savedata_source = std::make_shared<FileSys::ArchiveSource_SDSaveData>(sdmc_directory);
|
||||||
|
@ -653,16 +650,16 @@ void RegisterArchiveTypes() {
|
||||||
if (extsavedata_factory->Initialize())
|
if (extsavedata_factory->Initialize())
|
||||||
RegisterArchiveType(std::move(extsavedata_factory), ArchiveIdCode::ExtSaveData);
|
RegisterArchiveType(std::move(extsavedata_factory), ArchiveIdCode::ExtSaveData);
|
||||||
else
|
else
|
||||||
LOG_ERROR(Service_FS, "Can't instantiate ExtSaveData archive with path %s",
|
NGLOG_ERROR(Service_FS, "Can't instantiate ExtSaveData archive with path {}",
|
||||||
extsavedata_factory->GetMountPoint().c_str());
|
extsavedata_factory->GetMountPoint());
|
||||||
|
|
||||||
auto sharedextsavedata_factory =
|
auto sharedextsavedata_factory =
|
||||||
std::make_unique<FileSys::ArchiveFactory_ExtSaveData>(nand_directory, true);
|
std::make_unique<FileSys::ArchiveFactory_ExtSaveData>(nand_directory, true);
|
||||||
if (sharedextsavedata_factory->Initialize())
|
if (sharedextsavedata_factory->Initialize())
|
||||||
RegisterArchiveType(std::move(sharedextsavedata_factory), ArchiveIdCode::SharedExtSaveData);
|
RegisterArchiveType(std::move(sharedextsavedata_factory), ArchiveIdCode::SharedExtSaveData);
|
||||||
else
|
else
|
||||||
LOG_ERROR(Service_FS, "Can't instantiate SharedExtSaveData archive with path %s",
|
NGLOG_ERROR(Service_FS, "Can't instantiate SharedExtSaveData archive with path {}",
|
||||||
sharedextsavedata_factory->GetMountPoint().c_str());
|
sharedextsavedata_factory->GetMountPoint());
|
||||||
|
|
||||||
// Create the NCCH archive, basically a small variation of the RomFS archive
|
// Create the NCCH archive, basically a small variation of the RomFS archive
|
||||||
auto savedatacheck_factory = std::make_unique<FileSys::ArchiveFactory_NCCH>();
|
auto savedatacheck_factory = std::make_unique<FileSys::ArchiveFactory_NCCH>();
|
||||||
|
@ -679,8 +676,9 @@ void RegisterArchiveTypes() {
|
||||||
void RegisterSelfNCCH(Loader::AppLoader& app_loader) {
|
void RegisterSelfNCCH(Loader::AppLoader& app_loader) {
|
||||||
auto itr = id_code_map.find(ArchiveIdCode::SelfNCCH);
|
auto itr = id_code_map.find(ArchiveIdCode::SelfNCCH);
|
||||||
if (itr == id_code_map.end()) {
|
if (itr == id_code_map.end()) {
|
||||||
LOG_ERROR(Service_FS,
|
NGLOG_ERROR(
|
||||||
"Could not register a new NCCH because the SelfNCCH archive hasn't been created");
|
Service_FS,
|
||||||
|
"Could not register a new NCCH because the SelfNCCH archive hasn't been created");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,8 +54,8 @@ void FS_USER::OpenFile(Kernel::HLERequestContext& ctx) {
|
||||||
ASSERT(filename.size() == filename_size);
|
ASSERT(filename.size() == filename_size);
|
||||||
FileSys::Path file_path(filename_type, filename);
|
FileSys::Path file_path(filename_type, filename);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "path=%s, mode=%u attrs=%u", file_path.DebugStr().c_str(), mode.hex,
|
NGLOG_DEBUG(Service_FS, "path={}, mode={} attrs={}", file_path.DebugStr(), mode.hex,
|
||||||
attributes);
|
attributes);
|
||||||
|
|
||||||
ResultVal<std::shared_ptr<File>> file_res =
|
ResultVal<std::shared_ptr<File>> file_res =
|
||||||
OpenFileFromArchive(archive_handle, file_path, mode);
|
OpenFileFromArchive(archive_handle, file_path, mode);
|
||||||
|
@ -66,7 +66,7 @@ void FS_USER::OpenFile(Kernel::HLERequestContext& ctx) {
|
||||||
rb.PushMoveObjects(file->Connect());
|
rb.PushMoveObjects(file->Connect());
|
||||||
} else {
|
} else {
|
||||||
rb.PushMoveObjects<Kernel::Object>(nullptr);
|
rb.PushMoveObjects<Kernel::Object>(nullptr);
|
||||||
LOG_ERROR(Service_FS, "failed to get a handle for file %s", file_path.DebugStr().c_str());
|
NGLOG_ERROR(Service_FS, "failed to get a handle for file {}", file_path.DebugStr());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,17 +88,18 @@ void FS_USER::OpenFileDirectly(Kernel::HLERequestContext& ctx) {
|
||||||
FileSys::Path archive_path(archivename_type, archivename);
|
FileSys::Path archive_path(archivename_type, archivename);
|
||||||
FileSys::Path file_path(filename_type, filename);
|
FileSys::Path file_path(filename_type, filename);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "archive_id=0x%08X archive_path=%s file_path=%s, mode=%u attributes=%u",
|
NGLOG_DEBUG(Service_FS,
|
||||||
static_cast<u32>(archive_id), archive_path.DebugStr().c_str(),
|
"archive_id=0x{:08X} archive_path={} file_path={}, mode={} attributes={}",
|
||||||
file_path.DebugStr().c_str(), mode.hex, attributes);
|
static_cast<u32>(archive_id), archive_path.DebugStr(), file_path.DebugStr(),
|
||||||
|
mode.hex, attributes);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 2);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 2);
|
||||||
|
|
||||||
ResultVal<ArchiveHandle> archive_handle = Service::FS::OpenArchive(archive_id, archive_path);
|
ResultVal<ArchiveHandle> archive_handle = Service::FS::OpenArchive(archive_id, archive_path);
|
||||||
if (archive_handle.Failed()) {
|
if (archive_handle.Failed()) {
|
||||||
LOG_ERROR(Service_FS,
|
NGLOG_ERROR(Service_FS,
|
||||||
"Failed to get a handle for archive archive_id=0x%08X archive_path=%s",
|
"Failed to get a handle for archive archive_id=0x{:08X} archive_path={}",
|
||||||
static_cast<u32>(archive_id), archive_path.DebugStr().c_str());
|
static_cast<u32>(archive_id), archive_path.DebugStr());
|
||||||
rb.Push(archive_handle.Code());
|
rb.Push(archive_handle.Code());
|
||||||
rb.PushMoveObjects<Kernel::Object>(nullptr);
|
rb.PushMoveObjects<Kernel::Object>(nullptr);
|
||||||
return;
|
return;
|
||||||
|
@ -113,8 +114,8 @@ void FS_USER::OpenFileDirectly(Kernel::HLERequestContext& ctx) {
|
||||||
rb.PushMoveObjects(file->Connect());
|
rb.PushMoveObjects(file->Connect());
|
||||||
} else {
|
} else {
|
||||||
rb.PushMoveObjects<Kernel::Object>(nullptr);
|
rb.PushMoveObjects<Kernel::Object>(nullptr);
|
||||||
LOG_ERROR(Service_FS, "failed to get a handle for file %s mode=%u attributes=%u",
|
NGLOG_ERROR(Service_FS, "failed to get a handle for file {} mode={} attributes={}",
|
||||||
file_path.DebugStr().c_str(), mode.hex, attributes);
|
file_path.DebugStr(), mode.hex, attributes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,8 +130,8 @@ void FS_USER::DeleteFile(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
FileSys::Path file_path(filename_type, filename);
|
FileSys::Path file_path(filename_type, filename);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "type=%u size=%u data=%s", static_cast<u32>(filename_type), filename_size,
|
NGLOG_DEBUG(Service_FS, "type={} size={} data={}", static_cast<u32>(filename_type),
|
||||||
file_path.DebugStr().c_str());
|
filename_size, file_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(DeleteFileFromArchive(archive_handle, file_path));
|
rb.Push(DeleteFileFromArchive(archive_handle, file_path));
|
||||||
|
@ -154,11 +155,10 @@ void FS_USER::RenameFile(Kernel::HLERequestContext& ctx) {
|
||||||
FileSys::Path src_file_path(src_filename_type, src_filename);
|
FileSys::Path src_file_path(src_filename_type, src_filename);
|
||||||
FileSys::Path dest_file_path(dest_filename_type, dest_filename);
|
FileSys::Path dest_file_path(dest_filename_type, dest_filename);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS,
|
NGLOG_DEBUG(
|
||||||
"src_type=%u src_size=%u src_data=%s dest_type=%u dest_size=%u dest_data=%s",
|
Service_FS, "src_type={} src_size={} src_data={} dest_type={} dest_size={} dest_data={}",
|
||||||
static_cast<u32>(src_filename_type), src_filename_size,
|
static_cast<u32>(src_filename_type), src_filename_size, src_file_path.DebugStr(),
|
||||||
src_file_path.DebugStr().c_str(), static_cast<u32>(dest_filename_type),
|
static_cast<u32>(dest_filename_type), dest_filename_size, dest_file_path.DebugStr());
|
||||||
dest_filename_size, dest_file_path.DebugStr().c_str());
|
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(RenameFileBetweenArchives(src_archive_handle, src_file_path, dest_archive_handle,
|
rb.Push(RenameFileBetweenArchives(src_archive_handle, src_file_path, dest_archive_handle,
|
||||||
|
@ -177,8 +177,8 @@ void FS_USER::DeleteDirectory(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
FileSys::Path dir_path(dirname_type, dirname);
|
FileSys::Path dir_path(dirname_type, dirname);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "type=%u size=%u data=%s", static_cast<u32>(dirname_type), dirname_size,
|
NGLOG_DEBUG(Service_FS, "type={} size={} data={}", static_cast<u32>(dirname_type), dirname_size,
|
||||||
dir_path.DebugStr().c_str());
|
dir_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(DeleteDirectoryFromArchive(archive_handle, dir_path));
|
rb.Push(DeleteDirectoryFromArchive(archive_handle, dir_path));
|
||||||
|
@ -196,8 +196,8 @@ void FS_USER::DeleteDirectoryRecursively(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
FileSys::Path dir_path(dirname_type, dirname);
|
FileSys::Path dir_path(dirname_type, dirname);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "type=%u size=%u data=%s", static_cast<u32>(dirname_type), dirname_size,
|
NGLOG_DEBUG(Service_FS, "type={} size={} data={}", static_cast<u32>(dirname_type), dirname_size,
|
||||||
dir_path.DebugStr().c_str());
|
dir_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(DeleteDirectoryRecursivelyFromArchive(archive_handle, dir_path));
|
rb.Push(DeleteDirectoryRecursivelyFromArchive(archive_handle, dir_path));
|
||||||
|
@ -217,8 +217,8 @@ void FS_USER::CreateFile(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
FileSys::Path file_path(filename_type, filename);
|
FileSys::Path file_path(filename_type, filename);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "type=%u attributes=%u size=%" PRIx64 " data=%s",
|
NGLOG_DEBUG(Service_FS, "type={} attributes={} size={:x} data={}",
|
||||||
static_cast<u32>(filename_type), attributes, file_size, file_path.DebugStr().c_str());
|
static_cast<u32>(filename_type), attributes, file_size, file_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(CreateFileInArchive(archive_handle, file_path, file_size));
|
rb.Push(CreateFileInArchive(archive_handle, file_path, file_size));
|
||||||
|
@ -235,8 +235,8 @@ void FS_USER::CreateDirectory(Kernel::HLERequestContext& ctx) {
|
||||||
ASSERT(dirname.size() == dirname_size);
|
ASSERT(dirname.size() == dirname_size);
|
||||||
FileSys::Path dir_path(dirname_type, dirname);
|
FileSys::Path dir_path(dirname_type, dirname);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "type=%u size=%u data=%s", static_cast<u32>(dirname_type), dirname_size,
|
NGLOG_DEBUG(Service_FS, "type={} size={} data={}", static_cast<u32>(dirname_type), dirname_size,
|
||||||
dir_path.DebugStr().c_str());
|
dir_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(CreateDirectoryFromArchive(archive_handle, dir_path));
|
rb.Push(CreateDirectoryFromArchive(archive_handle, dir_path));
|
||||||
|
@ -259,10 +259,10 @@ void FS_USER::RenameDirectory(Kernel::HLERequestContext& ctx) {
|
||||||
FileSys::Path src_dir_path(src_dirname_type, src_dirname);
|
FileSys::Path src_dir_path(src_dirname_type, src_dirname);
|
||||||
FileSys::Path dest_dir_path(dest_dirname_type, dest_dirname);
|
FileSys::Path dest_dir_path(dest_dirname_type, dest_dirname);
|
||||||
|
|
||||||
LOG_DEBUG(
|
NGLOG_DEBUG(Service_FS,
|
||||||
Service_FS, "src_type=%u src_size=%u src_data=%s dest_type=%u dest_size=%u dest_data=%s",
|
"src_type={} src_size={} src_data={} dest_type={} dest_size={} dest_data={}",
|
||||||
static_cast<u32>(src_dirname_type), src_dirname_size, src_dir_path.DebugStr().c_str(),
|
static_cast<u32>(src_dirname_type), src_dirname_size, src_dir_path.DebugStr(),
|
||||||
static_cast<u32>(dest_dirname_type), dest_dirname_size, dest_dir_path.DebugStr().c_str());
|
static_cast<u32>(dest_dirname_type), dest_dirname_size, dest_dir_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(RenameDirectoryBetweenArchives(src_archive_handle, src_dir_path, dest_archive_handle,
|
rb.Push(RenameDirectoryBetweenArchives(src_archive_handle, src_dir_path, dest_archive_handle,
|
||||||
|
@ -279,8 +279,8 @@ void FS_USER::OpenDirectory(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
FileSys::Path dir_path(dirname_type, dirname);
|
FileSys::Path dir_path(dirname_type, dirname);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "type=%u size=%u data=%s", static_cast<u32>(dirname_type), dirname_size,
|
NGLOG_DEBUG(Service_FS, "type={} size={} data={}", static_cast<u32>(dirname_type), dirname_size,
|
||||||
dir_path.DebugStr().c_str());
|
dir_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 2);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 2);
|
||||||
ResultVal<std::shared_ptr<Directory>> dir_res =
|
ResultVal<std::shared_ptr<Directory>> dir_res =
|
||||||
|
@ -292,8 +292,8 @@ void FS_USER::OpenDirectory(Kernel::HLERequestContext& ctx) {
|
||||||
directory->ClientConnected(std::get<SharedPtr<ServerSession>>(sessions));
|
directory->ClientConnected(std::get<SharedPtr<ServerSession>>(sessions));
|
||||||
rb.PushMoveObjects(std::get<SharedPtr<ClientSession>>(sessions));
|
rb.PushMoveObjects(std::get<SharedPtr<ClientSession>>(sessions));
|
||||||
} else {
|
} else {
|
||||||
LOG_ERROR(Service_FS, "failed to get a handle for directory type=%u size=%u data=%s",
|
NGLOG_ERROR(Service_FS, "failed to get a handle for directory type={} size={} data={}",
|
||||||
static_cast<u32>(dirname_type), dirname_size, dir_path.DebugStr().c_str());
|
static_cast<u32>(dirname_type), dirname_size, dir_path.DebugStr());
|
||||||
rb.PushMoveObjects<Kernel::Object>(nullptr);
|
rb.PushMoveObjects<Kernel::Object>(nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -307,8 +307,8 @@ void FS_USER::OpenArchive(Kernel::HLERequestContext& ctx) {
|
||||||
ASSERT(archivename.size() == archivename_size);
|
ASSERT(archivename.size() == archivename_size);
|
||||||
FileSys::Path archive_path(archivename_type, archivename);
|
FileSys::Path archive_path(archivename_type, archivename);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "archive_id=0x%08X archive_path=%s", static_cast<u32>(archive_id),
|
NGLOG_DEBUG(Service_FS, "archive_id=0x{:08X} archive_path={}", static_cast<u32>(archive_id),
|
||||||
archive_path.DebugStr().c_str());
|
archive_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(3, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(3, 0);
|
||||||
ResultVal<ArchiveHandle> handle = Service::FS::OpenArchive(archive_id, archive_path);
|
ResultVal<ArchiveHandle> handle = Service::FS::OpenArchive(archive_id, archive_path);
|
||||||
|
@ -317,9 +317,9 @@ void FS_USER::OpenArchive(Kernel::HLERequestContext& ctx) {
|
||||||
rb.PushRaw(*handle);
|
rb.PushRaw(*handle);
|
||||||
} else {
|
} else {
|
||||||
rb.Push<u64>(0);
|
rb.Push<u64>(0);
|
||||||
LOG_ERROR(Service_FS,
|
NGLOG_ERROR(Service_FS,
|
||||||
"failed to get a handle for archive archive_id=0x%08X archive_path=%s",
|
"failed to get a handle for archive archive_id=0x{:08X} archive_path={}",
|
||||||
static_cast<u32>(archive_id), archive_path.DebugStr().c_str());
|
static_cast<u32>(archive_id), archive_path.DebugStr());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,11 +344,11 @@ void FS_USER::IsSdmcWriteable(Kernel::HLERequestContext& ctx) {
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
// If the SD isn't enabled, it can't be writeable...else, stubbed true
|
// If the SD isn't enabled, it can't be writeable...else, stubbed true
|
||||||
rb.Push(Settings::values.use_virtual_sd);
|
rb.Push(Settings::values.use_virtual_sd);
|
||||||
LOG_DEBUG(Service_FS, " (STUBBED)");
|
NGLOG_DEBUG(Service_FS, " (STUBBED)");
|
||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::FormatSaveData(Kernel::HLERequestContext& ctx) {
|
void FS_USER::FormatSaveData(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_FS, "(STUBBED)");
|
NGLOG_WARNING(Service_FS, "(STUBBED)");
|
||||||
|
|
||||||
IPC::RequestParser rp(ctx, 0x84C, 9, 2);
|
IPC::RequestParser rp(ctx, 0x84C, 9, 2);
|
||||||
auto archive_id = rp.PopEnum<FS::ArchiveIdCode>();
|
auto archive_id = rp.PopEnum<FS::ArchiveIdCode>();
|
||||||
|
@ -364,19 +364,19 @@ void FS_USER::FormatSaveData(Kernel::HLERequestContext& ctx) {
|
||||||
ASSERT(archivename.size() == archivename_size);
|
ASSERT(archivename.size() == archivename_size);
|
||||||
FileSys::Path archive_path(archivename_type, archivename);
|
FileSys::Path archive_path(archivename_type, archivename);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "archive_path=%s", archive_path.DebugStr().c_str());
|
NGLOG_DEBUG(Service_FS, "archive_path={}", archive_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
if (archive_id != FS::ArchiveIdCode::SaveData) {
|
if (archive_id != FS::ArchiveIdCode::SaveData) {
|
||||||
LOG_ERROR(Service_FS, "tried to format an archive different than SaveData, %u",
|
NGLOG_ERROR(Service_FS, "tried to format an archive different than SaveData, {}",
|
||||||
static_cast<u32>(archive_id));
|
static_cast<u32>(archive_id));
|
||||||
rb.Push(FileSys::ERROR_INVALID_PATH);
|
rb.Push(FileSys::ERROR_INVALID_PATH);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (archive_path.GetType() != FileSys::LowPathType::Empty) {
|
if (archive_path.GetType() != FileSys::LowPathType::Empty) {
|
||||||
// TODO(Subv): Implement formatting the SaveData of other games
|
// TODO(Subv): Implement formatting the SaveData of other games
|
||||||
LOG_ERROR(Service_FS, "archive LowPath type other than empty is currently unsupported");
|
NGLOG_ERROR(Service_FS, "archive LowPath type other than empty is currently unsupported");
|
||||||
rb.Push(UnimplementedFunction(ErrorModule::FS));
|
rb.Push(UnimplementedFunction(ErrorModule::FS));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -408,7 +408,7 @@ void FS_USER::FormatThisUserSaveData(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(FormatArchive(ArchiveIdCode::SaveData, format_info));
|
rb.Push(FormatArchive(ArchiveIdCode::SaveData, format_info));
|
||||||
|
|
||||||
LOG_TRACE(Service_FS, "called");
|
NGLOG_TRACE(Service_FS, "called");
|
||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::GetFreeBytes(Kernel::HLERequestContext& ctx) {
|
void FS_USER::GetFreeBytes(Kernel::HLERequestContext& ctx) {
|
||||||
|
@ -438,10 +438,10 @@ void FS_USER::CreateExtSaveData(Kernel::HLERequestContext& ctx) {
|
||||||
u32 icon_size = rp.Pop<u32>();
|
u32 icon_size = rp.Pop<u32>();
|
||||||
auto icon_buffer = rp.PopMappedBuffer();
|
auto icon_buffer = rp.PopMappedBuffer();
|
||||||
|
|
||||||
LOG_WARNING(Service_FS,
|
NGLOG_WARNING(Service_FS,
|
||||||
"(STUBBED) savedata_high=%08X savedata_low=%08X unknown=%08X "
|
"(STUBBED) savedata_high={:08X} savedata_low={:08X} unknown={:08X} "
|
||||||
"files=%08X directories=%08X size_limit=%016" PRIx64 " icon_size=%08X",
|
"files={:08X} directories={:08X} size_limit={:016x} icon_size={:08X}",
|
||||||
save_high, save_low, unknown, directories, files, size_limit, icon_size);
|
save_high, save_low, unknown, directories, files, size_limit, icon_size);
|
||||||
|
|
||||||
std::vector<u8> icon(icon_size);
|
std::vector<u8> icon(icon_size);
|
||||||
icon_buffer.Read(icon.data(), 0, icon_size);
|
icon_buffer.Read(icon.data(), 0, icon_size);
|
||||||
|
@ -464,8 +464,9 @@ void FS_USER::DeleteExtSaveData(Kernel::HLERequestContext& ctx) {
|
||||||
u32 save_high = rp.Pop<u32>();
|
u32 save_high = rp.Pop<u32>();
|
||||||
u32 unknown = rp.Pop<u32>(); // TODO(Subv): Figure out what this is
|
u32 unknown = rp.Pop<u32>(); // TODO(Subv): Figure out what this is
|
||||||
|
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) save_low=%08X save_high=%08X media_type=%08X unknown=%08X",
|
NGLOG_WARNING(Service_FS,
|
||||||
save_low, save_high, static_cast<u32>(media_type), unknown);
|
"(STUBBED) save_low={:08X} save_high={:08X} media_type={:08X} unknown={:08X}",
|
||||||
|
save_low, save_high, static_cast<u32>(media_type), unknown);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(Service::FS::DeleteExtSaveData(media_type, save_high, save_low));
|
rb.Push(Service::FS::DeleteExtSaveData(media_type, save_high, save_low));
|
||||||
|
@ -476,7 +477,7 @@ void FS_USER::CardSlotIsInserted(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.Push(false);
|
rb.Push(false);
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) called");
|
NGLOG_WARNING(Service_FS, "(STUBBED) called");
|
||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::DeleteSystemSaveData(Kernel::HLERequestContext& ctx) {
|
void FS_USER::DeleteSystemSaveData(Kernel::HLERequestContext& ctx) {
|
||||||
|
@ -500,11 +501,12 @@ void FS_USER::CreateSystemSaveData(Kernel::HLERequestContext& ctx) {
|
||||||
u32 file_buckets = rp.Pop<u32>();
|
u32 file_buckets = rp.Pop<u32>();
|
||||||
bool duplicate = rp.Pop<bool>();
|
bool duplicate = rp.Pop<bool>();
|
||||||
|
|
||||||
LOG_WARNING(Service_FS,
|
NGLOG_WARNING(
|
||||||
"(STUBBED) savedata_high=%08X savedata_low=%08X total_size=%08X block_size=%08X "
|
Service_FS,
|
||||||
"directories=%u files=%u directory_buckets=%u file_buckets=%u duplicate=%d",
|
"(STUBBED) savedata_high={:08X} savedata_low={:08X} total_size={:08X} block_size={:08X} "
|
||||||
savedata_high, savedata_low, total_size, block_size, directories, files,
|
"directories={} files={} directory_buckets={} file_buckets={} duplicate={}",
|
||||||
directory_buckets, file_buckets, duplicate);
|
savedata_high, savedata_low, total_size, block_size, directories, files, directory_buckets,
|
||||||
|
file_buckets, duplicate);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(Service::FS::CreateSystemSaveData(savedata_high, savedata_low));
|
rb.Push(Service::FS::CreateSystemSaveData(savedata_high, savedata_low));
|
||||||
|
@ -521,11 +523,11 @@ void FS_USER::CreateLegacySystemSaveData(Kernel::HLERequestContext& ctx) {
|
||||||
u32 file_buckets = rp.Pop<u32>();
|
u32 file_buckets = rp.Pop<u32>();
|
||||||
bool duplicate = rp.Pop<bool>();
|
bool duplicate = rp.Pop<bool>();
|
||||||
|
|
||||||
LOG_WARNING(Service_FS,
|
NGLOG_WARNING(Service_FS,
|
||||||
"(STUBBED) savedata_id=%08X total_size=%08X block_size=%08X directories=%u "
|
"(STUBBED) savedata_id={:08X} total_size={:08X} block_size={:08X} directories={} "
|
||||||
"files=%u directory_buckets=%u file_buckets=%u duplicate=%d",
|
"files={} directory_buckets={} file_buckets={} duplicate={}",
|
||||||
savedata_id, total_size, block_size, directories, files, directory_buckets,
|
savedata_id, total_size, block_size, directories, files, directory_buckets,
|
||||||
file_buckets, duplicate);
|
file_buckets, duplicate);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
// With this command, the SystemSaveData always has save_high = 0 (Always created in the NAND)
|
// With this command, the SystemSaveData always has save_high = 0 (Always created in the NAND)
|
||||||
|
@ -537,7 +539,7 @@ void FS_USER::InitializeWithSdkVersion(Kernel::HLERequestContext& ctx) {
|
||||||
const u32 version = rp.Pop<u32>();
|
const u32 version = rp.Pop<u32>();
|
||||||
rp.PopPID();
|
rp.PopPID();
|
||||||
|
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) called, version: 0x%08X", version);
|
NGLOG_WARNING(Service_FS, "(STUBBED) called, version: 0x{:08X}", version);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
@ -551,28 +553,28 @@ void FS_USER::SetPriority(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "called priority=0x%X", priority);
|
NGLOG_DEBUG(Service_FS, "called priority=0x{:X}", priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::GetPriority(Kernel::HLERequestContext& ctx) {
|
void FS_USER::GetPriority(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x863, 0, 0);
|
IPC::RequestParser rp(ctx, 0x863, 0, 0);
|
||||||
|
|
||||||
if (priority == -1) {
|
if (priority == -1) {
|
||||||
LOG_INFO(Service_FS, "priority was not set, priority=0x%X", priority);
|
NGLOG_INFO(Service_FS, "priority was not set, priority=0x{:X}", priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.Push(priority);
|
rb.Push(priority);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "called priority=0x%X", priority);
|
NGLOG_DEBUG(Service_FS, "called priority=0x{:X}", priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::GetArchiveResource(Kernel::HLERequestContext& ctx) {
|
void FS_USER::GetArchiveResource(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x849, 1, 0);
|
IPC::RequestParser rp(ctx, 0x849, 1, 0);
|
||||||
u32 system_media_type = rp.Pop<u32>();
|
u32 system_media_type = rp.Pop<u32>();
|
||||||
|
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) called Media type=0x%08X", system_media_type);
|
NGLOG_WARNING(Service_FS, "(STUBBED) called Media type=0x{:08X}", system_media_type);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
@ -592,14 +594,14 @@ void FS_USER::GetFormatInfo(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
FileSys::Path archive_path(archivename_type, archivename);
|
FileSys::Path archive_path(archivename_type, archivename);
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "archive_path=%s", archive_path.DebugStr().c_str());
|
NGLOG_DEBUG(Service_FS, "archive_path={}", archive_path.DebugStr());
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
||||||
|
|
||||||
auto format_info = GetArchiveFormatInfo(archive_id, archive_path);
|
auto format_info = GetArchiveFormatInfo(archive_id, archive_path);
|
||||||
rb.Push(format_info.Code());
|
rb.Push(format_info.Code());
|
||||||
if (format_info.Failed()) {
|
if (format_info.Failed()) {
|
||||||
LOG_ERROR(Service_FS, "Failed to retrieve the format info");
|
NGLOG_ERROR(Service_FS, "Failed to retrieve the format info");
|
||||||
rb.Skip(4, true);
|
rb.Skip(4, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -615,7 +617,7 @@ void FS_USER::GetProgramLaunchInfo(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
u32 process_id = rp.Pop<u32>();
|
u32 process_id = rp.Pop<u32>();
|
||||||
|
|
||||||
LOG_DEBUG(Service_FS, "process_id=%u", process_id);
|
NGLOG_DEBUG(Service_FS, "process_id={}", process_id);
|
||||||
|
|
||||||
// TODO(Subv): The real FS service manages its own process list and only checks the processes
|
// TODO(Subv): The real FS service manages its own process list and only checks the processes
|
||||||
// that were registered with the 'fs:REG' service.
|
// that were registered with the 'fs:REG' service.
|
||||||
|
@ -647,7 +649,7 @@ void FS_USER::GetProgramLaunchInfo(Kernel::HLERequestContext& ctx) {
|
||||||
void FS_USER::GetNumSeeds(Kernel::HLERequestContext& ctx) {
|
void FS_USER::GetNumSeeds(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x87D, 0, 0);
|
IPC::RequestParser rp(ctx, 0x87D, 0, 0);
|
||||||
|
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) called");
|
NGLOG_WARNING(Service_FS, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||||
|
|
||||||
|
@ -664,10 +666,10 @@ void FS_USER::SetSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
// TODO: Generate and Save the Secure Value
|
// TODO: Generate and Save the Secure Value
|
||||||
|
|
||||||
LOG_WARNING(Service_FS,
|
NGLOG_WARNING(Service_FS,
|
||||||
"(STUBBED) called, value=0x%016" PRIx64 " secure_value_slot=0x%08X "
|
"(STUBBED) called, value=0x{:016x} secure_value_slot=0x{:08X} "
|
||||||
"unqiue_id=0x%08X title_variation=0x%02X",
|
"unqiue_id=0x{:08X} title_variation=0x{:02X}",
|
||||||
value, secure_value_slot, unique_id, title_variation);
|
value, secure_value_slot, unique_id, title_variation);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
|
|
||||||
|
@ -681,9 +683,10 @@ void FS_USER::GetSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
||||||
u32 unique_id = rp.Pop<u32>();
|
u32 unique_id = rp.Pop<u32>();
|
||||||
u8 title_variation = rp.Pop<u8>();
|
u8 title_variation = rp.Pop<u8>();
|
||||||
|
|
||||||
LOG_WARNING(Service_FS,
|
NGLOG_WARNING(
|
||||||
"(STUBBED) called secure_value_slot=0x%08X unqiue_id=0x%08X title_variation=0x%02X",
|
Service_FS,
|
||||||
secure_value_slot, unique_id, title_variation);
|
"(STUBBED) called secure_value_slot=0x{:08X} unqiue_id=0x{:08X} title_variation=0x{:02X}",
|
||||||
|
secure_value_slot, unique_id, title_variation);
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(4, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(4, 0);
|
||||||
|
|
||||||
|
|
Reference in New Issue