|
@@ -4,6 +4,7 @@
|
|
|
|
|
|
|
|
#include "common/assert.h"
|
|
#include "common/assert.h"
|
|
|
#include "common/logging/log.h"
|
|
#include "common/logging/log.h"
|
|
|
|
|
+#include "core/file_sys/errors.h"
|
|
|
#include "core/file_sys/system_archive/system_version.h"
|
|
#include "core/file_sys/system_archive/system_version.h"
|
|
|
#include "core/hle/ipc_helpers.h"
|
|
#include "core/hle/ipc_helpers.h"
|
|
|
#include "core/hle/kernel/client_port.h"
|
|
#include "core/hle/kernel/client_port.h"
|
|
@@ -14,10 +15,6 @@ namespace Service::Set {
|
|
|
|
|
|
|
|
constexpr u64 SYSTEM_VERSION_FILE_MINOR_REVISION_OFFSET = 0x05;
|
|
constexpr u64 SYSTEM_VERSION_FILE_MINOR_REVISION_OFFSET = 0x05;
|
|
|
|
|
|
|
|
-constexpr ResultCode ERROR_FAILED_MOUNT_ARCHIVE(ErrorModule::FS, 3223);
|
|
|
|
|
-constexpr ResultCode ERROR_READ_TOO_LARGE(ErrorModule::FS, 3005);
|
|
|
|
|
-constexpr ResultCode ERROR_INVALID_NAME(ErrorModule::FS, 6001);
|
|
|
|
|
-
|
|
|
|
|
enum class GetFirmwareVersionType {
|
|
enum class GetFirmwareVersionType {
|
|
|
Version1,
|
|
Version1,
|
|
|
Version2,
|
|
Version2,
|
|
@@ -25,9 +22,8 @@ enum class GetFirmwareVersionType {
|
|
|
|
|
|
|
|
namespace {
|
|
namespace {
|
|
|
void GetFirmwareVersionImpl(Kernel::HLERequestContext& ctx, GetFirmwareVersionType type) {
|
|
void GetFirmwareVersionImpl(Kernel::HLERequestContext& ctx, GetFirmwareVersionType type) {
|
|
|
- LOG_WARNING(
|
|
|
|
|
- Service_SET,
|
|
|
|
|
- "called - Using hardcoded firmware version 'YuzuEmulated Firmware for NX 5.1.0-0.0'");
|
|
|
|
|
|
|
+ LOG_WARNING(Service_SET, "called - Using hardcoded firmware version '{}'",
|
|
|
|
|
+ FileSys::SystemArchive::GetLongDisplayVersion());
|
|
|
|
|
|
|
|
ASSERT_MSG(ctx.GetWriteBufferSize() == 0x100,
|
|
ASSERT_MSG(ctx.GetWriteBufferSize() == 0x100,
|
|
|
"FirmwareVersion output buffer must be 0x100 bytes in size!");
|
|
"FirmwareVersion output buffer must be 0x100 bytes in size!");
|
|
@@ -47,21 +43,21 @@ void GetFirmwareVersionImpl(Kernel::HLERequestContext& ctx, GetFirmwareVersionTy
|
|
|
|
|
|
|
|
if (archive == nullptr) {
|
|
if (archive == nullptr) {
|
|
|
early_exit_failure("The system version archive couldn't be synthesized.",
|
|
early_exit_failure("The system version archive couldn't be synthesized.",
|
|
|
- ERROR_FAILED_MOUNT_ARCHIVE);
|
|
|
|
|
|
|
+ FileSys::ERROR_FAILED_MOUNT_ARCHIVE);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const auto ver_file = archive->GetFile("file");
|
|
const auto ver_file = archive->GetFile("file");
|
|
|
if (ver_file == nullptr) {
|
|
if (ver_file == nullptr) {
|
|
|
early_exit_failure("The system version archive didn't contain the file 'file'.",
|
|
early_exit_failure("The system version archive didn't contain the file 'file'.",
|
|
|
- ERROR_INVALID_NAME);
|
|
|
|
|
|
|
+ FileSys::ERROR_INVALID_ARGUMENT);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
auto data = ver_file->ReadAllBytes();
|
|
auto data = ver_file->ReadAllBytes();
|
|
|
if (data.size() != 0x100) {
|
|
if (data.size() != 0x100) {
|
|
|
early_exit_failure("The system version file 'file' was not the correct size.",
|
|
early_exit_failure("The system version file 'file' was not the correct size.",
|
|
|
- ERROR_READ_TOO_LARGE);
|
|
|
|
|
|
|
+ FileSys::ERROR_OUT_OF_BOUNDS);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -76,7 +72,7 @@ void GetFirmwareVersionImpl(Kernel::HLERequestContext& ctx, GetFirmwareVersionTy
|
|
|
IPC::ResponseBuilder rb{ctx, 2};
|
|
IPC::ResponseBuilder rb{ctx, 2};
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
}
|
|
}
|
|
|
-} // namespace
|
|
|
|
|
|
|
+} // Anonymous namespace
|
|
|
|
|
|
|
|
void SET_SYS::GetFirmwareVersion(Kernel::HLERequestContext& ctx) {
|
|
void SET_SYS::GetFirmwareVersion(Kernel::HLERequestContext& ctx) {
|
|
|
LOG_DEBUG(Service_SET, "called");
|
|
LOG_DEBUG(Service_SET, "called");
|