core: Replace all instances of ResultCode with Result
This commit is contained in:
parent
abfd690601
commit
a7d9be1384
140 changed files with 1133 additions and 1173 deletions
|
@ -28,11 +28,11 @@
|
|||
|
||||
namespace Service::Account {
|
||||
|
||||
constexpr ResultCode ERR_INVALID_USER_ID{ErrorModule::Account, 20};
|
||||
constexpr ResultCode ERR_INVALID_APPLICATION_ID{ErrorModule::Account, 22};
|
||||
constexpr ResultCode ERR_INVALID_BUFFER{ErrorModule::Account, 30};
|
||||
constexpr ResultCode ERR_INVALID_BUFFER_SIZE{ErrorModule::Account, 31};
|
||||
constexpr ResultCode ERR_FAILED_SAVE_DATA{ErrorModule::Account, 100};
|
||||
constexpr Result ERR_INVALID_USER_ID{ErrorModule::Account, 20};
|
||||
constexpr Result ERR_INVALID_APPLICATION_ID{ErrorModule::Account, 22};
|
||||
constexpr Result ERR_INVALID_BUFFER{ErrorModule::Account, 30};
|
||||
constexpr Result ERR_INVALID_BUFFER_SIZE{ErrorModule::Account, 31};
|
||||
constexpr Result ERR_FAILED_SAVE_DATA{ErrorModule::Account, 100};
|
||||
|
||||
// Thumbnails are hard coded to be at least this size
|
||||
constexpr std::size_t THUMBNAIL_SIZE = 0x24000;
|
||||
|
@ -505,7 +505,7 @@ protected:
|
|||
|
||||
void Cancel() override {}
|
||||
|
||||
ResultCode GetResult() const override {
|
||||
Result GetResult() const override {
|
||||
return ResultSuccess;
|
||||
}
|
||||
};
|
||||
|
@ -747,7 +747,7 @@ void Module::Interface::InitializeApplicationInfoRestricted(Kernel::HLERequestCo
|
|||
rb.Push(InitializeApplicationInfoBase());
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::InitializeApplicationInfoBase() {
|
||||
Result Module::Interface::InitializeApplicationInfoBase() {
|
||||
if (application_info) {
|
||||
LOG_ERROR(Service_ACC, "Application already initialized");
|
||||
return ERR_ACCOUNTINFO_ALREADY_INITIALIZED;
|
||||
|
|
|
@ -41,7 +41,7 @@ public:
|
|||
void StoreSaveDataThumbnailSystem(Kernel::HLERequestContext& ctx);
|
||||
|
||||
private:
|
||||
ResultCode InitializeApplicationInfoBase();
|
||||
Result InitializeApplicationInfoBase();
|
||||
void StoreSaveDataThumbnail(Kernel::HLERequestContext& ctx, const Common::UUID& uuid,
|
||||
const u64 tid);
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ public:
|
|||
protected:
|
||||
virtual bool IsComplete() const = 0;
|
||||
virtual void Cancel() = 0;
|
||||
virtual ResultCode GetResult() const = 0;
|
||||
virtual Result GetResult() const = 0;
|
||||
|
||||
void MarkComplete();
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Service::Account {
|
||||
|
||||
constexpr ResultCode ERR_ACCOUNTINFO_BAD_APPLICATION{ErrorModule::Account, 22};
|
||||
constexpr ResultCode ERR_ACCOUNTINFO_ALREADY_INITIALIZED{ErrorModule::Account, 41};
|
||||
constexpr Result ERR_ACCOUNTINFO_BAD_APPLICATION{ErrorModule::Account, 22};
|
||||
constexpr Result ERR_ACCOUNTINFO_ALREADY_INITIALIZED{ErrorModule::Account, 41};
|
||||
|
||||
} // namespace Service::Account
|
||||
|
|
|
@ -33,9 +33,9 @@ struct ProfileDataRaw {
|
|||
static_assert(sizeof(ProfileDataRaw) == 0x650, "ProfileDataRaw has incorrect size.");
|
||||
|
||||
// TODO(ogniK): Get actual error codes
|
||||
constexpr ResultCode ERROR_TOO_MANY_USERS(ErrorModule::Account, u32(-1));
|
||||
constexpr ResultCode ERROR_USER_ALREADY_EXISTS(ErrorModule::Account, u32(-2));
|
||||
constexpr ResultCode ERROR_ARGUMENT_IS_NULL(ErrorModule::Account, 20);
|
||||
constexpr Result ERROR_TOO_MANY_USERS(ErrorModule::Account, u32(-1));
|
||||
constexpr Result ERROR_USER_ALREADY_EXISTS(ErrorModule::Account, u32(-2));
|
||||
constexpr Result ERROR_ARGUMENT_IS_NULL(ErrorModule::Account, 20);
|
||||
|
||||
constexpr char ACC_SAVE_AVATORS_BASE_PATH[] = "system/save/8000000000000010/su/avators";
|
||||
|
||||
|
@ -87,7 +87,7 @@ bool ProfileManager::RemoveProfileAtIndex(std::size_t index) {
|
|||
}
|
||||
|
||||
/// Helper function to register a user to the system
|
||||
ResultCode ProfileManager::AddUser(const ProfileInfo& user) {
|
||||
Result ProfileManager::AddUser(const ProfileInfo& user) {
|
||||
if (!AddToProfiles(user)) {
|
||||
return ERROR_TOO_MANY_USERS;
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ ResultCode ProfileManager::AddUser(const ProfileInfo& user) {
|
|||
|
||||
/// Create a new user on the system. If the uuid of the user already exists, the user is not
|
||||
/// created.
|
||||
ResultCode ProfileManager::CreateNewUser(UUID uuid, const ProfileUsername& username) {
|
||||
Result ProfileManager::CreateNewUser(UUID uuid, const ProfileUsername& username) {
|
||||
if (user_count == MAX_USERS) {
|
||||
return ERROR_TOO_MANY_USERS;
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ ResultCode ProfileManager::CreateNewUser(UUID uuid, const ProfileUsername& usern
|
|||
/// Creates a new user on the system. This function allows a much simpler method of registration
|
||||
/// specifically by allowing an std::string for the username. This is required specifically since
|
||||
/// we're loading a string straight from the config
|
||||
ResultCode ProfileManager::CreateNewUser(UUID uuid, const std::string& username) {
|
||||
Result ProfileManager::CreateNewUser(UUID uuid, const std::string& username) {
|
||||
ProfileUsername username_output{};
|
||||
|
||||
if (username.size() > username_output.size()) {
|
||||
|
|
|
@ -64,9 +64,9 @@ public:
|
|||
ProfileManager();
|
||||
~ProfileManager();
|
||||
|
||||
ResultCode AddUser(const ProfileInfo& user);
|
||||
ResultCode CreateNewUser(Common::UUID uuid, const ProfileUsername& username);
|
||||
ResultCode CreateNewUser(Common::UUID uuid, const std::string& username);
|
||||
Result AddUser(const ProfileInfo& user);
|
||||
Result CreateNewUser(Common::UUID uuid, const ProfileUsername& username);
|
||||
Result CreateNewUser(Common::UUID uuid, const std::string& username);
|
||||
std::optional<Common::UUID> GetUser(std::size_t index) const;
|
||||
std::optional<std::size_t> GetUserIndex(const Common::UUID& uuid) const;
|
||||
std::optional<std::size_t> GetUserIndex(const ProfileInfo& user) const;
|
||||
|
|
|
@ -40,9 +40,9 @@
|
|||
|
||||
namespace Service::AM {
|
||||
|
||||
constexpr ResultCode ERR_NO_DATA_IN_CHANNEL{ErrorModule::AM, 2};
|
||||
constexpr ResultCode ERR_NO_MESSAGES{ErrorModule::AM, 3};
|
||||
constexpr ResultCode ERR_SIZE_OUT_OF_BOUNDS{ErrorModule::AM, 503};
|
||||
constexpr Result ERR_NO_DATA_IN_CHANNEL{ErrorModule::AM, 2};
|
||||
constexpr Result ERR_NO_MESSAGES{ErrorModule::AM, 3};
|
||||
constexpr Result ERR_SIZE_OUT_OF_BOUNDS{ErrorModule::AM, 503};
|
||||
|
||||
enum class LaunchParameterKind : u32 {
|
||||
ApplicationSpecific = 1,
|
||||
|
@ -365,7 +365,7 @@ void ISelfController::LeaveFatalSection(Kernel::HLERequestContext& ctx) {
|
|||
// Entry and exit of fatal sections must be balanced.
|
||||
if (num_fatal_sections_entered == 0) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
rb.Push(ResultCode{ErrorModule::AM, 512});
|
||||
rb.Push(Result{ErrorModule::AM, 512});
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,9 +20,9 @@
|
|||
namespace Service::AM::Applets {
|
||||
|
||||
// This error code (0x183ACA) is thrown when the applet fails to initialize.
|
||||
[[maybe_unused]] constexpr ResultCode ERR_CONTROLLER_APPLET_3101{ErrorModule::HID, 3101};
|
||||
[[maybe_unused]] constexpr Result ERR_CONTROLLER_APPLET_3101{ErrorModule::HID, 3101};
|
||||
// This error code (0x183CCA) is thrown when the u32 result in ControllerSupportResultInfo is 2.
|
||||
[[maybe_unused]] constexpr ResultCode ERR_CONTROLLER_APPLET_3102{ErrorModule::HID, 3102};
|
||||
[[maybe_unused]] constexpr Result ERR_CONTROLLER_APPLET_3102{ErrorModule::HID, 3102};
|
||||
|
||||
static Core::Frontend::ControllerParameters ConvertToFrontendParameters(
|
||||
ControllerSupportArgPrivate private_arg, ControllerSupportArgHeader header, bool enable_text,
|
||||
|
@ -173,7 +173,7 @@ bool Controller::TransactionComplete() const {
|
|||
return complete;
|
||||
}
|
||||
|
||||
ResultCode Controller::GetStatus() const {
|
||||
Result Controller::GetStatus() const {
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ public:
|
|||
void Initialize() override;
|
||||
|
||||
bool TransactionComplete() const override;
|
||||
ResultCode GetStatus() const override;
|
||||
Result GetStatus() const override;
|
||||
void ExecuteInteractive() override;
|
||||
void Execute() override;
|
||||
|
||||
|
@ -143,7 +143,7 @@ private:
|
|||
ControllerUpdateFirmwareArg controller_update_arg;
|
||||
ControllerKeyRemappingArg controller_key_remapping_arg;
|
||||
bool complete{false};
|
||||
ResultCode status{ResultSuccess};
|
||||
Result status{ResultSuccess};
|
||||
bool is_single_mode{false};
|
||||
std::vector<u8> out_data;
|
||||
};
|
||||
|
|
|
@ -25,15 +25,15 @@ struct ErrorCode {
|
|||
};
|
||||
}
|
||||
|
||||
static constexpr ErrorCode FromResultCode(ResultCode result) {
|
||||
static constexpr ErrorCode FromResult(Result result) {
|
||||
return {
|
||||
.error_category{2000 + static_cast<u32>(result.module.Value())},
|
||||
.error_number{result.description.Value()},
|
||||
};
|
||||
}
|
||||
|
||||
constexpr ResultCode ToResultCode() const {
|
||||
return ResultCode{static_cast<ErrorModule>(error_category - 2000), error_number};
|
||||
constexpr Result ToResult() const {
|
||||
return Result{static_cast<ErrorModule>(error_category - 2000), error_number};
|
||||
}
|
||||
};
|
||||
static_assert(sizeof(ErrorCode) == 0x8, "ErrorCode has incorrect size.");
|
||||
|
@ -97,8 +97,8 @@ void CopyArgumentData(const std::vector<u8>& data, T& variable) {
|
|||
std::memcpy(&variable, data.data(), sizeof(T));
|
||||
}
|
||||
|
||||
ResultCode Decode64BitError(u64 error) {
|
||||
return ErrorCode::FromU64(error).ToResultCode();
|
||||
Result Decode64BitError(u64 error) {
|
||||
return ErrorCode::FromU64(error).ToResult();
|
||||
}
|
||||
|
||||
} // Anonymous namespace
|
||||
|
@ -127,16 +127,16 @@ void Error::Initialize() {
|
|||
if (args->error.use_64bit_error_code) {
|
||||
error_code = Decode64BitError(args->error.error_code_64);
|
||||
} else {
|
||||
error_code = ResultCode(args->error.error_code_32);
|
||||
error_code = Result(args->error.error_code_32);
|
||||
}
|
||||
break;
|
||||
case ErrorAppletMode::ShowSystemError:
|
||||
CopyArgumentData(data, args->system_error);
|
||||
error_code = ResultCode(Decode64BitError(args->system_error.error_code_64));
|
||||
error_code = Result(Decode64BitError(args->system_error.error_code_64));
|
||||
break;
|
||||
case ErrorAppletMode::ShowApplicationError:
|
||||
CopyArgumentData(data, args->application_error);
|
||||
error_code = ResultCode(args->application_error.error_code);
|
||||
error_code = Result(args->application_error.error_code);
|
||||
break;
|
||||
case ErrorAppletMode::ShowErrorRecord:
|
||||
CopyArgumentData(data, args->error_record);
|
||||
|
@ -151,7 +151,7 @@ bool Error::TransactionComplete() const {
|
|||
return complete;
|
||||
}
|
||||
|
||||
ResultCode Error::GetStatus() const {
|
||||
Result Error::GetStatus() const {
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ public:
|
|||
void Initialize() override;
|
||||
|
||||
bool TransactionComplete() const override;
|
||||
ResultCode GetStatus() const override;
|
||||
Result GetStatus() const override;
|
||||
void ExecuteInteractive() override;
|
||||
void Execute() override;
|
||||
|
||||
|
@ -41,7 +41,7 @@ private:
|
|||
union ErrorArguments;
|
||||
|
||||
const Core::Frontend::ErrorApplet& frontend;
|
||||
ResultCode error_code = ResultSuccess;
|
||||
Result error_code = ResultSuccess;
|
||||
ErrorAppletMode mode = ErrorAppletMode::ShowError;
|
||||
std::unique_ptr<ErrorArguments> args;
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
namespace Service::AM::Applets {
|
||||
|
||||
constexpr ResultCode ERROR_INVALID_PIN{ErrorModule::PCTL, 221};
|
||||
constexpr Result ERROR_INVALID_PIN{ErrorModule::PCTL, 221};
|
||||
|
||||
static void LogCurrentStorage(AppletDataBroker& broker, std::string_view prefix) {
|
||||
std::shared_ptr<IStorage> storage = broker.PopNormalDataToApplet();
|
||||
|
@ -71,7 +71,7 @@ bool Auth::TransactionComplete() const {
|
|||
return complete;
|
||||
}
|
||||
|
||||
ResultCode Auth::GetStatus() const {
|
||||
Result Auth::GetStatus() const {
|
||||
return successful ? ResultSuccess : ERROR_INVALID_PIN;
|
||||
}
|
||||
|
||||
|
@ -136,7 +136,7 @@ void Auth::AuthFinished(bool is_successful) {
|
|||
successful = is_successful;
|
||||
|
||||
struct Return {
|
||||
ResultCode result_code;
|
||||
Result result_code;
|
||||
};
|
||||
static_assert(sizeof(Return) == 0x4, "Return (AuthApplet) has incorrect size.");
|
||||
|
||||
|
@ -170,7 +170,7 @@ bool PhotoViewer::TransactionComplete() const {
|
|||
return complete;
|
||||
}
|
||||
|
||||
ResultCode PhotoViewer::GetStatus() const {
|
||||
Result PhotoViewer::GetStatus() const {
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
|
@ -223,7 +223,7 @@ bool StubApplet::TransactionComplete() const {
|
|||
return true;
|
||||
}
|
||||
|
||||
ResultCode StubApplet::GetStatus() const {
|
||||
Result StubApplet::GetStatus() const {
|
||||
LOG_WARNING(Service_AM, "called (STUBBED)");
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ public:
|
|||
|
||||
void Initialize() override;
|
||||
bool TransactionComplete() const override;
|
||||
ResultCode GetStatus() const override;
|
||||
Result GetStatus() const override;
|
||||
void ExecuteInteractive() override;
|
||||
void Execute() override;
|
||||
|
||||
|
@ -56,7 +56,7 @@ public:
|
|||
|
||||
void Initialize() override;
|
||||
bool TransactionComplete() const override;
|
||||
ResultCode GetStatus() const override;
|
||||
Result GetStatus() const override;
|
||||
void ExecuteInteractive() override;
|
||||
void Execute() override;
|
||||
|
||||
|
@ -77,7 +77,7 @@ public:
|
|||
void Initialize() override;
|
||||
|
||||
bool TransactionComplete() const override;
|
||||
ResultCode GetStatus() const override;
|
||||
Result GetStatus() const override;
|
||||
void ExecuteInteractive() override;
|
||||
void Execute() override;
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ bool MiiEdit::TransactionComplete() const {
|
|||
return is_complete;
|
||||
}
|
||||
|
||||
ResultCode MiiEdit::GetStatus() const {
|
||||
Result MiiEdit::GetStatus() const {
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ public:
|
|||
void Initialize() override;
|
||||
|
||||
bool TransactionComplete() const override;
|
||||
ResultCode GetStatus() const override;
|
||||
Result GetStatus() const override;
|
||||
void ExecuteInteractive() override;
|
||||
void Execute() override;
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
namespace Service::AM::Applets {
|
||||
|
||||
constexpr ResultCode ERR_USER_CANCELLED_SELECTION{ErrorModule::Account, 1};
|
||||
constexpr Result ERR_USER_CANCELLED_SELECTION{ErrorModule::Account, 1};
|
||||
|
||||
ProfileSelect::ProfileSelect(Core::System& system_, LibraryAppletMode applet_mode_,
|
||||
const Core::Frontend::ProfileSelectApplet& frontend_)
|
||||
|
@ -39,7 +39,7 @@ bool ProfileSelect::TransactionComplete() const {
|
|||
return complete;
|
||||
}
|
||||
|
||||
ResultCode ProfileSelect::GetStatus() const {
|
||||
Result ProfileSelect::GetStatus() const {
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ public:
|
|||
void Initialize() override;
|
||||
|
||||
bool TransactionComplete() const override;
|
||||
ResultCode GetStatus() const override;
|
||||
Result GetStatus() const override;
|
||||
void ExecuteInteractive() override;
|
||||
void Execute() override;
|
||||
|
||||
|
@ -50,7 +50,7 @@ private:
|
|||
|
||||
UserSelectionConfig config;
|
||||
bool complete = false;
|
||||
ResultCode status = ResultSuccess;
|
||||
Result status = ResultSuccess;
|
||||
std::vector<u8> final_data;
|
||||
Core::System& system;
|
||||
};
|
||||
|
|
|
@ -80,7 +80,7 @@ bool SoftwareKeyboard::TransactionComplete() const {
|
|||
return complete;
|
||||
}
|
||||
|
||||
ResultCode SoftwareKeyboard::GetStatus() const {
|
||||
Result SoftwareKeyboard::GetStatus() const {
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ public:
|
|||
void Initialize() override;
|
||||
|
||||
bool TransactionComplete() const override;
|
||||
ResultCode GetStatus() const override;
|
||||
Result GetStatus() const override;
|
||||
void ExecuteInteractive() override;
|
||||
void Execute() override;
|
||||
|
||||
|
@ -180,7 +180,7 @@ private:
|
|||
bool is_background{false};
|
||||
|
||||
bool complete{false};
|
||||
ResultCode status{ResultSuccess};
|
||||
Result status{ResultSuccess};
|
||||
};
|
||||
|
||||
} // namespace Service::AM::Applets
|
||||
|
|
|
@ -288,7 +288,7 @@ bool WebBrowser::TransactionComplete() const {
|
|||
return complete;
|
||||
}
|
||||
|
||||
ResultCode WebBrowser::GetStatus() const {
|
||||
Result WebBrowser::GetStatus() const {
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
void Initialize() override;
|
||||
|
||||
bool TransactionComplete() const override;
|
||||
ResultCode GetStatus() const override;
|
||||
Result GetStatus() const override;
|
||||
void ExecuteInteractive() override;
|
||||
void Execute() override;
|
||||
|
||||
|
@ -66,7 +66,7 @@ private:
|
|||
const Core::Frontend::WebBrowserApplet& frontend;
|
||||
|
||||
bool complete{false};
|
||||
ResultCode status{ResultSuccess};
|
||||
Result status{ResultSuccess};
|
||||
|
||||
WebAppletVersion web_applet_version{};
|
||||
WebArgHeader web_arg_header{};
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include "common/swap.h"
|
||||
#include "core/hle/service/kernel_helpers.h"
|
||||
|
||||
union ResultCode;
|
||||
union Result;
|
||||
|
||||
namespace Core {
|
||||
class System;
|
||||
|
@ -138,7 +138,7 @@ public:
|
|||
virtual void Initialize();
|
||||
|
||||
virtual bool TransactionComplete() const = 0;
|
||||
virtual ResultCode GetStatus() const = 0;
|
||||
virtual Result GetStatus() const = 0;
|
||||
virtual void ExecuteInteractive() = 0;
|
||||
virtual void Execute() = 0;
|
||||
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
namespace Service::Audio {
|
||||
|
||||
constexpr ResultCode ERR_OPERATION_FAILED{ErrorModule::Audio, 2};
|
||||
constexpr ResultCode ERR_BUFFER_COUNT_EXCEEDED{ErrorModule::Audio, 8};
|
||||
constexpr ResultCode ERR_NOT_SUPPORTED{ErrorModule::Audio, 513};
|
||||
constexpr Result ERR_OPERATION_FAILED{ErrorModule::Audio, 2};
|
||||
constexpr Result ERR_BUFFER_COUNT_EXCEEDED{ErrorModule::Audio, 8};
|
||||
constexpr Result ERR_NOT_SUPPORTED{ErrorModule::Audio, 513};
|
||||
|
||||
} // namespace Service::Audio
|
||||
|
|
|
@ -74,7 +74,7 @@ void ProgressServiceBackend::CommitDirectory(std::string_view dir_name) {
|
|||
SignalUpdate();
|
||||
}
|
||||
|
||||
void ProgressServiceBackend::FinishDownload(ResultCode result) {
|
||||
void ProgressServiceBackend::FinishDownload(Result result) {
|
||||
impl.total_downloaded_bytes = impl.total_bytes;
|
||||
impl.status = DeliveryCacheProgressImpl::Status::Done;
|
||||
impl.result = result;
|
||||
|
|
|
@ -49,7 +49,7 @@ struct DeliveryCacheProgressImpl {
|
|||
};
|
||||
|
||||
Status status;
|
||||
ResultCode result = ResultSuccess;
|
||||
Result result = ResultSuccess;
|
||||
DirectoryName current_directory;
|
||||
FileName current_file;
|
||||
s64 current_downloaded_bytes; ///< Bytes downloaded on current file.
|
||||
|
@ -90,7 +90,7 @@ public:
|
|||
void CommitDirectory(std::string_view dir_name);
|
||||
|
||||
// Notifies the application that the operation completed with result code result.
|
||||
void FinishDownload(ResultCode result);
|
||||
void FinishDownload(Result result);
|
||||
|
||||
private:
|
||||
explicit ProgressServiceBackend(Core::System& system, std::string_view event_name);
|
||||
|
|
|
@ -18,15 +18,15 @@
|
|||
|
||||
namespace Service::BCAT {
|
||||
|
||||
constexpr ResultCode ERROR_INVALID_ARGUMENT{ErrorModule::BCAT, 1};
|
||||
constexpr ResultCode ERROR_FAILED_OPEN_ENTITY{ErrorModule::BCAT, 2};
|
||||
constexpr ResultCode ERROR_ENTITY_ALREADY_OPEN{ErrorModule::BCAT, 6};
|
||||
constexpr ResultCode ERROR_NO_OPEN_ENTITY{ErrorModule::BCAT, 7};
|
||||
constexpr Result ERROR_INVALID_ARGUMENT{ErrorModule::BCAT, 1};
|
||||
constexpr Result ERROR_FAILED_OPEN_ENTITY{ErrorModule::BCAT, 2};
|
||||
constexpr Result ERROR_ENTITY_ALREADY_OPEN{ErrorModule::BCAT, 6};
|
||||
constexpr Result ERROR_NO_OPEN_ENTITY{ErrorModule::BCAT, 7};
|
||||
|
||||
// The command to clear the delivery cache just calls fs IFileSystem DeleteFile on all of the files
|
||||
// and if any of them have a non-zero result it just forwards that result. This is the FS error code
|
||||
// for permission denied, which is the closest approximation of this scenario.
|
||||
constexpr ResultCode ERROR_FAILED_CLEAR_CACHE{ErrorModule::FS, 6400};
|
||||
constexpr Result ERROR_FAILED_CLEAR_CACHE{ErrorModule::FS, 6400};
|
||||
|
||||
using BCATDigest = std::array<u8, 0x10>;
|
||||
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
|
||||
namespace Service::ES {
|
||||
|
||||
constexpr ResultCode ERROR_INVALID_ARGUMENT{ErrorModule::ETicket, 2};
|
||||
constexpr ResultCode ERROR_INVALID_RIGHTS_ID{ErrorModule::ETicket, 3};
|
||||
constexpr Result ERROR_INVALID_ARGUMENT{ErrorModule::ETicket, 2};
|
||||
constexpr Result ERROR_INVALID_RIGHTS_ID{ErrorModule::ETicket, 3};
|
||||
|
||||
class ETicket final : public ServiceFramework<ETicket> {
|
||||
public:
|
||||
|
|
|
@ -62,8 +62,7 @@ enum class FatalType : u32 {
|
|||
ErrorScreen = 2,
|
||||
};
|
||||
|
||||
static void GenerateErrorReport(Core::System& system, ResultCode error_code,
|
||||
const FatalInfo& info) {
|
||||
static void GenerateErrorReport(Core::System& system, Result error_code, const FatalInfo& info) {
|
||||
const auto title_id = system.GetCurrentProcessProgramID();
|
||||
std::string crash_report = fmt::format(
|
||||
"Yuzu {}-{} crash report\n"
|
||||
|
@ -106,7 +105,7 @@ static void GenerateErrorReport(Core::System& system, ResultCode error_code,
|
|||
info.backtrace_size, info.ArchAsString(), info.unk10);
|
||||
}
|
||||
|
||||
static void ThrowFatalError(Core::System& system, ResultCode error_code, FatalType fatal_type,
|
||||
static void ThrowFatalError(Core::System& system, Result error_code, FatalType fatal_type,
|
||||
const FatalInfo& info) {
|
||||
LOG_ERROR(Service_Fatal, "Threw fatal error type {} with error code 0x{:X}", fatal_type,
|
||||
error_code.raw);
|
||||
|
@ -129,7 +128,7 @@ static void ThrowFatalError(Core::System& system, ResultCode error_code, FatalTy
|
|||
void Module::Interface::ThrowFatal(Kernel::HLERequestContext& ctx) {
|
||||
LOG_ERROR(Service_Fatal, "called");
|
||||
IPC::RequestParser rp{ctx};
|
||||
const auto error_code = rp.Pop<ResultCode>();
|
||||
const auto error_code = rp.Pop<Result>();
|
||||
|
||||
ThrowFatalError(system, error_code, FatalType::ErrorScreen, {});
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
|
@ -139,7 +138,7 @@ void Module::Interface::ThrowFatal(Kernel::HLERequestContext& ctx) {
|
|||
void Module::Interface::ThrowFatalWithPolicy(Kernel::HLERequestContext& ctx) {
|
||||
LOG_ERROR(Service_Fatal, "called");
|
||||
IPC::RequestParser rp(ctx);
|
||||
const auto error_code = rp.Pop<ResultCode>();
|
||||
const auto error_code = rp.Pop<Result>();
|
||||
const auto fatal_type = rp.PopEnum<FatalType>();
|
||||
|
||||
ThrowFatalError(system, error_code, fatal_type,
|
||||
|
@ -151,7 +150,7 @@ void Module::Interface::ThrowFatalWithPolicy(Kernel::HLERequestContext& ctx) {
|
|||
void Module::Interface::ThrowFatalWithCpuContext(Kernel::HLERequestContext& ctx) {
|
||||
LOG_ERROR(Service_Fatal, "called");
|
||||
IPC::RequestParser rp(ctx);
|
||||
const auto error_code = rp.Pop<ResultCode>();
|
||||
const auto error_code = rp.Pop<Result>();
|
||||
const auto fatal_type = rp.PopEnum<FatalType>();
|
||||
const auto fatal_info = ctx.ReadBuffer();
|
||||
FatalInfo info{};
|
||||
|
|
|
@ -49,7 +49,7 @@ std::string VfsDirectoryServiceWrapper::GetName() const {
|
|||
return backing->GetName();
|
||||
}
|
||||
|
||||
ResultCode VfsDirectoryServiceWrapper::CreateFile(const std::string& path_, u64 size) const {
|
||||
Result VfsDirectoryServiceWrapper::CreateFile(const std::string& path_, u64 size) const {
|
||||
std::string path(Common::FS::SanitizePath(path_));
|
||||
auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path));
|
||||
if (dir == nullptr) {
|
||||
|
@ -73,7 +73,7 @@ ResultCode VfsDirectoryServiceWrapper::CreateFile(const std::string& path_, u64
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) const {
|
||||
Result VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) const {
|
||||
std::string path(Common::FS::SanitizePath(path_));
|
||||
if (path.empty()) {
|
||||
// TODO(DarkLordZach): Why do games call this and what should it do? Works as is but...
|
||||
|
@ -92,7 +92,7 @@ ResultCode VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) cons
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode VfsDirectoryServiceWrapper::CreateDirectory(const std::string& path_) const {
|
||||
Result VfsDirectoryServiceWrapper::CreateDirectory(const std::string& path_) const {
|
||||
std::string path(Common::FS::SanitizePath(path_));
|
||||
|
||||
// NOTE: This is inaccurate behavior. CreateDirectory is not recursive.
|
||||
|
@ -116,7 +116,7 @@ ResultCode VfsDirectoryServiceWrapper::CreateDirectory(const std::string& path_)
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode VfsDirectoryServiceWrapper::DeleteDirectory(const std::string& path_) const {
|
||||
Result VfsDirectoryServiceWrapper::DeleteDirectory(const std::string& path_) const {
|
||||
std::string path(Common::FS::SanitizePath(path_));
|
||||
auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path));
|
||||
if (!dir->DeleteSubdirectory(Common::FS::GetFilename(path))) {
|
||||
|
@ -126,7 +126,7 @@ ResultCode VfsDirectoryServiceWrapper::DeleteDirectory(const std::string& path_)
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode VfsDirectoryServiceWrapper::DeleteDirectoryRecursively(const std::string& path_) const {
|
||||
Result VfsDirectoryServiceWrapper::DeleteDirectoryRecursively(const std::string& path_) const {
|
||||
std::string path(Common::FS::SanitizePath(path_));
|
||||
auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path));
|
||||
if (!dir->DeleteSubdirectoryRecursive(Common::FS::GetFilename(path))) {
|
||||
|
@ -136,7 +136,7 @@ ResultCode VfsDirectoryServiceWrapper::DeleteDirectoryRecursively(const std::str
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode VfsDirectoryServiceWrapper::CleanDirectoryRecursively(const std::string& path) const {
|
||||
Result VfsDirectoryServiceWrapper::CleanDirectoryRecursively(const std::string& path) const {
|
||||
const std::string sanitized_path(Common::FS::SanitizePath(path));
|
||||
auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(sanitized_path));
|
||||
|
||||
|
@ -148,8 +148,8 @@ ResultCode VfsDirectoryServiceWrapper::CleanDirectoryRecursively(const std::stri
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_,
|
||||
const std::string& dest_path_) const {
|
||||
Result VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_,
|
||||
const std::string& dest_path_) const {
|
||||
std::string src_path(Common::FS::SanitizePath(src_path_));
|
||||
std::string dest_path(Common::FS::SanitizePath(dest_path_));
|
||||
auto src = backing->GetFileRelative(src_path);
|
||||
|
@ -183,8 +183,8 @@ ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_,
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode VfsDirectoryServiceWrapper::RenameDirectory(const std::string& src_path_,
|
||||
const std::string& dest_path_) const {
|
||||
Result VfsDirectoryServiceWrapper::RenameDirectory(const std::string& src_path_,
|
||||
const std::string& dest_path_) const {
|
||||
std::string src_path(Common::FS::SanitizePath(src_path_));
|
||||
std::string dest_path(Common::FS::SanitizePath(dest_path_));
|
||||
auto src = GetDirectoryRelativeWrapped(backing, src_path);
|
||||
|
@ -273,28 +273,27 @@ FileSystemController::FileSystemController(Core::System& system_) : system{syste
|
|||
|
||||
FileSystemController::~FileSystemController() = default;
|
||||
|
||||
ResultCode FileSystemController::RegisterRomFS(std::unique_ptr<FileSys::RomFSFactory>&& factory) {
|
||||
Result FileSystemController::RegisterRomFS(std::unique_ptr<FileSys::RomFSFactory>&& factory) {
|
||||
romfs_factory = std::move(factory);
|
||||
LOG_DEBUG(Service_FS, "Registered RomFS");
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode FileSystemController::RegisterSaveData(
|
||||
std::unique_ptr<FileSys::SaveDataFactory>&& factory) {
|
||||
Result FileSystemController::RegisterSaveData(std::unique_ptr<FileSys::SaveDataFactory>&& factory) {
|
||||
ASSERT_MSG(save_data_factory == nullptr, "Tried to register a second save data");
|
||||
save_data_factory = std::move(factory);
|
||||
LOG_DEBUG(Service_FS, "Registered save data");
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode FileSystemController::RegisterSDMC(std::unique_ptr<FileSys::SDMCFactory>&& factory) {
|
||||
Result FileSystemController::RegisterSDMC(std::unique_ptr<FileSys::SDMCFactory>&& factory) {
|
||||
ASSERT_MSG(sdmc_factory == nullptr, "Tried to register a second SDMC");
|
||||
sdmc_factory = std::move(factory);
|
||||
LOG_DEBUG(Service_FS, "Registered SDMC");
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode FileSystemController::RegisterBIS(std::unique_ptr<FileSys::BISFactory>&& factory) {
|
||||
Result FileSystemController::RegisterBIS(std::unique_ptr<FileSys::BISFactory>&& factory) {
|
||||
ASSERT_MSG(bis_factory == nullptr, "Tried to register a second BIS");
|
||||
bis_factory = std::move(factory);
|
||||
LOG_DEBUG(Service_FS, "Registered BIS");
|
||||
|
|
|
@ -58,10 +58,10 @@ public:
|
|||
explicit FileSystemController(Core::System& system_);
|
||||
~FileSystemController();
|
||||
|
||||
ResultCode RegisterRomFS(std::unique_ptr<FileSys::RomFSFactory>&& factory);
|
||||
ResultCode RegisterSaveData(std::unique_ptr<FileSys::SaveDataFactory>&& factory);
|
||||
ResultCode RegisterSDMC(std::unique_ptr<FileSys::SDMCFactory>&& factory);
|
||||
ResultCode RegisterBIS(std::unique_ptr<FileSys::BISFactory>&& factory);
|
||||
Result RegisterRomFS(std::unique_ptr<FileSys::RomFSFactory>&& factory);
|
||||
Result RegisterSaveData(std::unique_ptr<FileSys::SaveDataFactory>&& factory);
|
||||
Result RegisterSDMC(std::unique_ptr<FileSys::SDMCFactory>&& factory);
|
||||
Result RegisterBIS(std::unique_ptr<FileSys::BISFactory>&& factory);
|
||||
|
||||
void SetPackedUpdate(FileSys::VirtualFile update_raw);
|
||||
ResultVal<FileSys::VirtualFile> OpenRomFSCurrentProcess() const;
|
||||
|
@ -141,7 +141,7 @@ private:
|
|||
|
||||
void InstallInterfaces(Core::System& system);
|
||||
|
||||
// A class that wraps a VfsDirectory with methods that return ResultVal and ResultCode instead of
|
||||
// A class that wraps a VfsDirectory with methods that return ResultVal and Result instead of
|
||||
// pointers and booleans. This makes using a VfsDirectory with switch services much easier and
|
||||
// avoids repetitive code.
|
||||
class VfsDirectoryServiceWrapper {
|
||||
|
@ -160,35 +160,35 @@ public:
|
|||
* @param size The size of the new file, filled with zeroes
|
||||
* @return Result of the operation
|
||||
*/
|
||||
ResultCode CreateFile(const std::string& path, u64 size) const;
|
||||
Result CreateFile(const std::string& path, u64 size) const;
|
||||
|
||||
/**
|
||||
* Delete a file specified by its path
|
||||
* @param path Path relative to the archive
|
||||
* @return Result of the operation
|
||||
*/
|
||||
ResultCode DeleteFile(const std::string& path) const;
|
||||
Result DeleteFile(const std::string& path) const;
|
||||
|
||||
/**
|
||||
* Create a directory specified by its path
|
||||
* @param path Path relative to the archive
|
||||
* @return Result of the operation
|
||||
*/
|
||||
ResultCode CreateDirectory(const std::string& path) const;
|
||||
Result CreateDirectory(const std::string& path) const;
|
||||
|
||||
/**
|
||||
* Delete a directory specified by its path
|
||||
* @param path Path relative to the archive
|
||||
* @return Result of the operation
|
||||
*/
|
||||
ResultCode DeleteDirectory(const std::string& path) const;
|
||||
Result DeleteDirectory(const std::string& path) const;
|
||||
|
||||
/**
|
||||
* Delete a directory specified by its path and anything under it
|
||||
* @param path Path relative to the archive
|
||||
* @return Result of the operation
|
||||
*/
|
||||
ResultCode DeleteDirectoryRecursively(const std::string& path) const;
|
||||
Result DeleteDirectoryRecursively(const std::string& path) const;
|
||||
|
||||
/**
|
||||
* Cleans the specified directory. This is similar to DeleteDirectoryRecursively,
|
||||
|
@ -200,7 +200,7 @@ public:
|
|||
*
|
||||
* @return Result of the operation.
|
||||
*/
|
||||
ResultCode CleanDirectoryRecursively(const std::string& path) const;
|
||||
Result CleanDirectoryRecursively(const std::string& path) const;
|
||||
|
||||
/**
|
||||
* Rename a File specified by its path
|
||||
|
@ -208,7 +208,7 @@ public:
|
|||
* @param dest_path Destination path relative to the archive
|
||||
* @return Result of the operation
|
||||
*/
|
||||
ResultCode RenameFile(const std::string& src_path, const std::string& dest_path) const;
|
||||
Result RenameFile(const std::string& src_path, const std::string& dest_path) const;
|
||||
|
||||
/**
|
||||
* Rename a Directory specified by its path
|
||||
|
@ -216,7 +216,7 @@ public:
|
|||
* @param dest_path Destination path relative to the archive
|
||||
* @return Result of the operation
|
||||
*/
|
||||
ResultCode RenameDirectory(const std::string& src_path, const std::string& dest_path) const;
|
||||
Result RenameDirectory(const std::string& src_path, const std::string& dest_path) const;
|
||||
|
||||
/**
|
||||
* Open a file specified by its path, using the specified mode
|
||||
|
|
|
@ -7,5 +7,5 @@
|
|||
|
||||
namespace Service::Friend {
|
||||
|
||||
constexpr ResultCode ERR_NO_NOTIFICATIONS{ErrorModule::Account, 15};
|
||||
constexpr Result ERR_NO_NOTIFICATIONS{ErrorModule::Account, 15};
|
||||
}
|
||||
|
|
|
@ -153,7 +153,7 @@ class IRegistrar final : public ServiceFramework<IRegistrar> {
|
|||
friend class ARP_W;
|
||||
|
||||
public:
|
||||
using IssuerFn = std::function<ResultCode(u64, ApplicationLaunchProperty, std::vector<u8>)>;
|
||||
using IssuerFn = std::function<Result(u64, ApplicationLaunchProperty, std::vector<u8>)>;
|
||||
|
||||
explicit IRegistrar(Core::System& system_, IssuerFn&& issuer)
|
||||
: ServiceFramework{system_, "IRegistrar"}, issue_process_id{std::move(issuer)} {
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
namespace Service::Glue {
|
||||
|
||||
constexpr ResultCode ERR_INVALID_RESOURCE{ErrorModule::ARP, 30};
|
||||
constexpr ResultCode ERR_INVALID_PROCESS_ID{ErrorModule::ARP, 31};
|
||||
constexpr ResultCode ERR_INVALID_ACCESS{ErrorModule::ARP, 42};
|
||||
constexpr ResultCode ERR_NOT_REGISTERED{ErrorModule::ARP, 102};
|
||||
constexpr Result ERR_INVALID_RESOURCE{ErrorModule::ARP, 30};
|
||||
constexpr Result ERR_INVALID_PROCESS_ID{ErrorModule::ARP, 31};
|
||||
constexpr Result ERR_INVALID_ACCESS{ErrorModule::ARP, 42};
|
||||
constexpr Result ERR_NOT_REGISTERED{ErrorModule::ARP, 102};
|
||||
|
||||
} // namespace Service::Glue
|
||||
|
|
|
@ -41,8 +41,8 @@ ResultVal<std::vector<u8>> ARPManager::GetControlProperty(u64 title_id) const {
|
|||
return iter->second.control;
|
||||
}
|
||||
|
||||
ResultCode ARPManager::Register(u64 title_id, ApplicationLaunchProperty launch,
|
||||
std::vector<u8> control) {
|
||||
Result ARPManager::Register(u64 title_id, ApplicationLaunchProperty launch,
|
||||
std::vector<u8> control) {
|
||||
if (title_id == 0) {
|
||||
return ERR_INVALID_PROCESS_ID;
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ ResultCode ARPManager::Register(u64 title_id, ApplicationLaunchProperty launch,
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode ARPManager::Unregister(u64 title_id) {
|
||||
Result ARPManager::Unregister(u64 title_id) {
|
||||
if (title_id == 0) {
|
||||
return ERR_INVALID_PROCESS_ID;
|
||||
}
|
||||
|
|
|
@ -42,12 +42,12 @@ public:
|
|||
// Adds a new entry to the internal database with the provided parameters, returning
|
||||
// ERR_INVALID_ACCESS if attempting to re-register a title ID without an intermediate Unregister
|
||||
// step, and ERR_INVALID_PROCESS_ID if the title ID is 0.
|
||||
ResultCode Register(u64 title_id, ApplicationLaunchProperty launch, std::vector<u8> control);
|
||||
Result Register(u64 title_id, ApplicationLaunchProperty launch, std::vector<u8> control);
|
||||
|
||||
// Removes the registration for the provided title ID from the database, returning
|
||||
// ERR_NOT_REGISTERED if it doesn't exist in the database and ERR_INVALID_PROCESS_ID if the
|
||||
// title ID is 0.
|
||||
ResultCode Unregister(u64 title_id);
|
||||
Result Unregister(u64 title_id);
|
||||
|
||||
// Removes all entries from the database, always succeeds. Should only be used when resetting
|
||||
// system state.
|
||||
|
|
|
@ -56,7 +56,7 @@ bool Controller_NPad::IsDeviceHandleValid(const Core::HID::VibrationDeviceHandle
|
|||
return npad_id && npad_type && device_index;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::VerifyValidSixAxisSensorHandle(
|
||||
Result Controller_NPad::VerifyValidSixAxisSensorHandle(
|
||||
const Core::HID::SixAxisSensorHandle& device_handle) {
|
||||
const auto npad_id = IsNpadIdValid(static_cast<Core::HID::NpadIdType>(device_handle.npad_id));
|
||||
if (!npad_id) {
|
||||
|
@ -720,9 +720,9 @@ Controller_NPad::NpadCommunicationMode Controller_NPad::GetNpadCommunicationMode
|
|||
return communication_mode;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::SetNpadMode(Core::HID::NpadIdType npad_id,
|
||||
NpadJoyDeviceType npad_device_type,
|
||||
NpadJoyAssignmentMode assignment_mode) {
|
||||
Result Controller_NPad::SetNpadMode(Core::HID::NpadIdType npad_id,
|
||||
NpadJoyDeviceType npad_device_type,
|
||||
NpadJoyAssignmentMode assignment_mode) {
|
||||
if (!IsNpadIdValid(npad_id)) {
|
||||
LOG_ERROR(Service_HID, "Invalid NpadIdType npad_id:{}", npad_id);
|
||||
return InvalidNpadId;
|
||||
|
@ -984,7 +984,7 @@ void Controller_NPad::UpdateControllerAt(Core::HID::NpadStyleIndex type,
|
|||
InitNewlyAddedController(npad_id);
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::DisconnectNpad(Core::HID::NpadIdType npad_id) {
|
||||
Result Controller_NPad::DisconnectNpad(Core::HID::NpadIdType npad_id) {
|
||||
if (!IsNpadIdValid(npad_id)) {
|
||||
LOG_ERROR(Service_HID, "Invalid NpadIdType npad_id:{}", npad_id);
|
||||
return InvalidNpadId;
|
||||
|
@ -1032,7 +1032,7 @@ ResultCode Controller_NPad::DisconnectNpad(Core::HID::NpadIdType npad_id) {
|
|||
WriteEmptyEntry(shared_memory);
|
||||
return ResultSuccess;
|
||||
}
|
||||
ResultCode Controller_NPad::SetGyroscopeZeroDriftMode(
|
||||
Result Controller_NPad::SetGyroscopeZeroDriftMode(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, GyroscopeZeroDriftMode drift_mode) {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
if (is_valid.IsError()) {
|
||||
|
@ -1046,7 +1046,7 @@ ResultCode Controller_NPad::SetGyroscopeZeroDriftMode(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::GetGyroscopeZeroDriftMode(
|
||||
Result Controller_NPad::GetGyroscopeZeroDriftMode(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
GyroscopeZeroDriftMode& drift_mode) const {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
|
@ -1061,8 +1061,8 @@ ResultCode Controller_NPad::GetGyroscopeZeroDriftMode(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::IsSixAxisSensorAtRest(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, bool& is_at_rest) const {
|
||||
Result Controller_NPad::IsSixAxisSensorAtRest(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool& is_at_rest) const {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
if (is_valid.IsError()) {
|
||||
LOG_ERROR(Service_HID, "Invalid handle, error_code={}", is_valid.raw);
|
||||
|
@ -1074,7 +1074,7 @@ ResultCode Controller_NPad::IsSixAxisSensorAtRest(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::IsFirmwareUpdateAvailableForSixAxisSensor(
|
||||
Result Controller_NPad::IsFirmwareUpdateAvailableForSixAxisSensor(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, bool& is_firmware_available) const {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
if (is_valid.IsError()) {
|
||||
|
@ -1087,7 +1087,7 @@ ResultCode Controller_NPad::IsFirmwareUpdateAvailableForSixAxisSensor(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::EnableSixAxisSensorUnalteredPassthrough(
|
||||
Result Controller_NPad::EnableSixAxisSensorUnalteredPassthrough(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, bool is_enabled) {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
if (is_valid.IsError()) {
|
||||
|
@ -1100,7 +1100,7 @@ ResultCode Controller_NPad::EnableSixAxisSensorUnalteredPassthrough(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::IsSixAxisSensorUnalteredPassthroughEnabled(
|
||||
Result Controller_NPad::IsSixAxisSensorUnalteredPassthroughEnabled(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, bool& is_enabled) const {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
if (is_valid.IsError()) {
|
||||
|
@ -1113,7 +1113,7 @@ ResultCode Controller_NPad::IsSixAxisSensorUnalteredPassthroughEnabled(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::LoadSixAxisSensorCalibrationParameter(
|
||||
Result Controller_NPad::LoadSixAxisSensorCalibrationParameter(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
Core::HID::SixAxisSensorCalibrationParameter& calibration) const {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
|
@ -1128,7 +1128,7 @@ ResultCode Controller_NPad::LoadSixAxisSensorCalibrationParameter(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::GetSixAxisSensorIcInformation(
|
||||
Result Controller_NPad::GetSixAxisSensorIcInformation(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
Core::HID::SixAxisSensorIcInformation& ic_information) const {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
|
@ -1143,7 +1143,7 @@ ResultCode Controller_NPad::GetSixAxisSensorIcInformation(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::ResetIsSixAxisSensorDeviceNewlyAssigned(
|
||||
Result Controller_NPad::ResetIsSixAxisSensorDeviceNewlyAssigned(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle) {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
if (is_valid.IsError()) {
|
||||
|
@ -1157,8 +1157,8 @@ ResultCode Controller_NPad::ResetIsSixAxisSensorDeviceNewlyAssigned(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::SetSixAxisEnabled(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool sixaxis_status) {
|
||||
Result Controller_NPad::SetSixAxisEnabled(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool sixaxis_status) {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
if (is_valid.IsError()) {
|
||||
LOG_ERROR(Service_HID, "Invalid handle, error_code={}", is_valid.raw);
|
||||
|
@ -1170,7 +1170,7 @@ ResultCode Controller_NPad::SetSixAxisEnabled(const Core::HID::SixAxisSensorHand
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::IsSixAxisSensorFusionEnabled(
|
||||
Result Controller_NPad::IsSixAxisSensorFusionEnabled(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, bool& is_fusion_enabled) const {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
if (is_valid.IsError()) {
|
||||
|
@ -1183,7 +1183,7 @@ ResultCode Controller_NPad::IsSixAxisSensorFusionEnabled(
|
|||
|
||||
return ResultSuccess;
|
||||
}
|
||||
ResultCode Controller_NPad::SetSixAxisFusionEnabled(
|
||||
Result Controller_NPad::SetSixAxisFusionEnabled(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, bool is_fusion_enabled) {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
if (is_valid.IsError()) {
|
||||
|
@ -1197,7 +1197,7 @@ ResultCode Controller_NPad::SetSixAxisFusionEnabled(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::SetSixAxisFusionParameters(
|
||||
Result Controller_NPad::SetSixAxisFusionParameters(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
Core::HID::SixAxisSensorFusionParameters sixaxis_fusion_parameters) {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
|
@ -1217,7 +1217,7 @@ ResultCode Controller_NPad::SetSixAxisFusionParameters(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::GetSixAxisFusionParameters(
|
||||
Result Controller_NPad::GetSixAxisFusionParameters(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
Core::HID::SixAxisSensorFusionParameters& parameters) const {
|
||||
const auto is_valid = VerifyValidSixAxisSensorHandle(sixaxis_handle);
|
||||
|
@ -1232,8 +1232,8 @@ ResultCode Controller_NPad::GetSixAxisFusionParameters(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::MergeSingleJoyAsDualJoy(Core::HID::NpadIdType npad_id_1,
|
||||
Core::HID::NpadIdType npad_id_2) {
|
||||
Result Controller_NPad::MergeSingleJoyAsDualJoy(Core::HID::NpadIdType npad_id_1,
|
||||
Core::HID::NpadIdType npad_id_2) {
|
||||
if (!IsNpadIdValid(npad_id_1) || !IsNpadIdValid(npad_id_2)) {
|
||||
LOG_ERROR(Service_HID, "Invalid NpadIdType npad_id_1:{}, npad_id_2:{}", npad_id_1,
|
||||
npad_id_2);
|
||||
|
@ -1304,8 +1304,8 @@ void Controller_NPad::StopLRAssignmentMode() {
|
|||
is_in_lr_assignment_mode = false;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::SwapNpadAssignment(Core::HID::NpadIdType npad_id_1,
|
||||
Core::HID::NpadIdType npad_id_2) {
|
||||
Result Controller_NPad::SwapNpadAssignment(Core::HID::NpadIdType npad_id_1,
|
||||
Core::HID::NpadIdType npad_id_2) {
|
||||
if (!IsNpadIdValid(npad_id_1) || !IsNpadIdValid(npad_id_2)) {
|
||||
LOG_ERROR(Service_HID, "Invalid NpadIdType npad_id_1:{}, npad_id_2:{}", npad_id_1,
|
||||
npad_id_2);
|
||||
|
@ -1336,8 +1336,8 @@ ResultCode Controller_NPad::SwapNpadAssignment(Core::HID::NpadIdType npad_id_1,
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::GetLedPattern(Core::HID::NpadIdType npad_id,
|
||||
Core::HID::LedPattern& pattern) const {
|
||||
Result Controller_NPad::GetLedPattern(Core::HID::NpadIdType npad_id,
|
||||
Core::HID::LedPattern& pattern) const {
|
||||
if (!IsNpadIdValid(npad_id)) {
|
||||
LOG_ERROR(Service_HID, "Invalid NpadIdType npad_id:{}", npad_id);
|
||||
return InvalidNpadId;
|
||||
|
@ -1347,8 +1347,8 @@ ResultCode Controller_NPad::GetLedPattern(Core::HID::NpadIdType npad_id,
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::IsUnintendedHomeButtonInputProtectionEnabled(
|
||||
Core::HID::NpadIdType npad_id, bool& is_valid) const {
|
||||
Result Controller_NPad::IsUnintendedHomeButtonInputProtectionEnabled(Core::HID::NpadIdType npad_id,
|
||||
bool& is_valid) const {
|
||||
if (!IsNpadIdValid(npad_id)) {
|
||||
LOG_ERROR(Service_HID, "Invalid NpadIdType npad_id:{}", npad_id);
|
||||
return InvalidNpadId;
|
||||
|
@ -1358,7 +1358,7 @@ ResultCode Controller_NPad::IsUnintendedHomeButtonInputProtectionEnabled(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Controller_NPad::SetUnintendedHomeButtonInputProtectionEnabled(
|
||||
Result Controller_NPad::SetUnintendedHomeButtonInputProtectionEnabled(
|
||||
bool is_protection_enabled, Core::HID::NpadIdType npad_id) {
|
||||
if (!IsNpadIdValid(npad_id)) {
|
||||
LOG_ERROR(Service_HID, "Invalid NpadIdType npad_id:{}", npad_id);
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace Service::KernelHelpers {
|
|||
class ServiceContext;
|
||||
} // namespace Service::KernelHelpers
|
||||
|
||||
union ResultCode;
|
||||
union Result;
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
|
@ -107,8 +107,8 @@ public:
|
|||
void SetNpadCommunicationMode(NpadCommunicationMode communication_mode_);
|
||||
NpadCommunicationMode GetNpadCommunicationMode() const;
|
||||
|
||||
ResultCode SetNpadMode(Core::HID::NpadIdType npad_id, NpadJoyDeviceType npad_device_type,
|
||||
NpadJoyAssignmentMode assignment_mode);
|
||||
Result SetNpadMode(Core::HID::NpadIdType npad_id, NpadJoyDeviceType npad_device_type,
|
||||
NpadJoyAssignmentMode assignment_mode);
|
||||
|
||||
bool VibrateControllerAtIndex(Core::HID::NpadIdType npad_id, std::size_t device_index,
|
||||
const Core::HID::VibrationValue& vibration_value);
|
||||
|
@ -141,56 +141,55 @@ public:
|
|||
void UpdateControllerAt(Core::HID::NpadStyleIndex controller, Core::HID::NpadIdType npad_id,
|
||||
bool connected);
|
||||
|
||||
ResultCode DisconnectNpad(Core::HID::NpadIdType npad_id);
|
||||
Result DisconnectNpad(Core::HID::NpadIdType npad_id);
|
||||
|
||||
ResultCode SetGyroscopeZeroDriftMode(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
GyroscopeZeroDriftMode drift_mode);
|
||||
ResultCode GetGyroscopeZeroDriftMode(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
GyroscopeZeroDriftMode& drift_mode) const;
|
||||
ResultCode IsSixAxisSensorAtRest(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool& is_at_rest) const;
|
||||
ResultCode IsFirmwareUpdateAvailableForSixAxisSensor(
|
||||
Result SetGyroscopeZeroDriftMode(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
GyroscopeZeroDriftMode drift_mode);
|
||||
Result GetGyroscopeZeroDriftMode(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
GyroscopeZeroDriftMode& drift_mode) const;
|
||||
Result IsSixAxisSensorAtRest(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool& is_at_rest) const;
|
||||
Result IsFirmwareUpdateAvailableForSixAxisSensor(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, bool& is_firmware_available) const;
|
||||
ResultCode EnableSixAxisSensorUnalteredPassthrough(
|
||||
Result EnableSixAxisSensorUnalteredPassthrough(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, bool is_enabled);
|
||||
ResultCode IsSixAxisSensorUnalteredPassthroughEnabled(
|
||||
Result IsSixAxisSensorUnalteredPassthroughEnabled(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle, bool& is_enabled) const;
|
||||
ResultCode LoadSixAxisSensorCalibrationParameter(
|
||||
Result LoadSixAxisSensorCalibrationParameter(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
Core::HID::SixAxisSensorCalibrationParameter& calibration) const;
|
||||
ResultCode GetSixAxisSensorIcInformation(
|
||||
Result GetSixAxisSensorIcInformation(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
Core::HID::SixAxisSensorIcInformation& ic_information) const;
|
||||
ResultCode ResetIsSixAxisSensorDeviceNewlyAssigned(
|
||||
Result ResetIsSixAxisSensorDeviceNewlyAssigned(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle);
|
||||
ResultCode SetSixAxisEnabled(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool sixaxis_status);
|
||||
ResultCode IsSixAxisSensorFusionEnabled(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool& is_fusion_enabled) const;
|
||||
ResultCode SetSixAxisFusionEnabled(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool is_fusion_enabled);
|
||||
ResultCode SetSixAxisFusionParameters(
|
||||
Result SetSixAxisEnabled(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool sixaxis_status);
|
||||
Result IsSixAxisSensorFusionEnabled(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool& is_fusion_enabled) const;
|
||||
Result SetSixAxisFusionEnabled(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
bool is_fusion_enabled);
|
||||
Result SetSixAxisFusionParameters(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
Core::HID::SixAxisSensorFusionParameters sixaxis_fusion_parameters);
|
||||
ResultCode GetSixAxisFusionParameters(
|
||||
const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
Core::HID::SixAxisSensorFusionParameters& parameters) const;
|
||||
ResultCode GetLedPattern(Core::HID::NpadIdType npad_id, Core::HID::LedPattern& pattern) const;
|
||||
ResultCode IsUnintendedHomeButtonInputProtectionEnabled(Core::HID::NpadIdType npad_id,
|
||||
bool& is_enabled) const;
|
||||
ResultCode SetUnintendedHomeButtonInputProtectionEnabled(bool is_protection_enabled,
|
||||
Core::HID::NpadIdType npad_id);
|
||||
Result GetSixAxisFusionParameters(const Core::HID::SixAxisSensorHandle& sixaxis_handle,
|
||||
Core::HID::SixAxisSensorFusionParameters& parameters) const;
|
||||
Result GetLedPattern(Core::HID::NpadIdType npad_id, Core::HID::LedPattern& pattern) const;
|
||||
Result IsUnintendedHomeButtonInputProtectionEnabled(Core::HID::NpadIdType npad_id,
|
||||
bool& is_enabled) const;
|
||||
Result SetUnintendedHomeButtonInputProtectionEnabled(bool is_protection_enabled,
|
||||
Core::HID::NpadIdType npad_id);
|
||||
void SetAnalogStickUseCenterClamp(bool use_center_clamp);
|
||||
void ClearAllConnectedControllers();
|
||||
void DisconnectAllConnectedControllers();
|
||||
void ConnectAllDisconnectedControllers();
|
||||
void ClearAllControllers();
|
||||
|
||||
ResultCode MergeSingleJoyAsDualJoy(Core::HID::NpadIdType npad_id_1,
|
||||
Core::HID::NpadIdType npad_id_2);
|
||||
Result MergeSingleJoyAsDualJoy(Core::HID::NpadIdType npad_id_1,
|
||||
Core::HID::NpadIdType npad_id_2);
|
||||
void StartLRAssignmentMode();
|
||||
void StopLRAssignmentMode();
|
||||
ResultCode SwapNpadAssignment(Core::HID::NpadIdType npad_id_1, Core::HID::NpadIdType npad_id_2);
|
||||
Result SwapNpadAssignment(Core::HID::NpadIdType npad_id_1, Core::HID::NpadIdType npad_id_2);
|
||||
|
||||
// Logical OR for all buttons presses on all controllers
|
||||
// Specifically for cheat engine and other features.
|
||||
|
@ -198,7 +197,7 @@ public:
|
|||
|
||||
static bool IsNpadIdValid(Core::HID::NpadIdType npad_id);
|
||||
static bool IsDeviceHandleValid(const Core::HID::VibrationDeviceHandle& device_handle);
|
||||
static ResultCode VerifyValidSixAxisSensorHandle(
|
||||
static Result VerifyValidSixAxisSensorHandle(
|
||||
const Core::HID::SixAxisSensorHandle& device_handle);
|
||||
|
||||
private:
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
|
||||
namespace Service::HID {
|
||||
|
||||
constexpr ResultCode NpadInvalidHandle{ErrorModule::HID, 100};
|
||||
constexpr ResultCode NpadDeviceIndexOutOfRange{ErrorModule::HID, 107};
|
||||
constexpr ResultCode InvalidSixAxisFusionRange{ErrorModule::HID, 423};
|
||||
constexpr ResultCode NpadIsDualJoycon{ErrorModule::HID, 601};
|
||||
constexpr ResultCode NpadIsSameType{ErrorModule::HID, 602};
|
||||
constexpr ResultCode InvalidNpadId{ErrorModule::HID, 709};
|
||||
constexpr ResultCode NpadNotConnected{ErrorModule::HID, 710};
|
||||
constexpr Result NpadInvalidHandle{ErrorModule::HID, 100};
|
||||
constexpr Result NpadDeviceIndexOutOfRange{ErrorModule::HID, 107};
|
||||
constexpr Result InvalidSixAxisFusionRange{ErrorModule::HID, 423};
|
||||
constexpr Result NpadIsDualJoycon{ErrorModule::HID, 601};
|
||||
constexpr Result NpadIsSameType{ErrorModule::HID, 602};
|
||||
constexpr Result InvalidNpadId{ErrorModule::HID, 709};
|
||||
constexpr Result NpadNotConnected{ErrorModule::HID, 710};
|
||||
|
||||
} // namespace Service::HID
|
||||
|
|
|
@ -71,7 +71,7 @@ private:
|
|||
struct HidbusStatusManagerEntry {
|
||||
u8 is_connected{};
|
||||
INSERT_PADDING_BYTES(0x3);
|
||||
ResultCode is_connected_result{0};
|
||||
Result is_connected_result{0};
|
||||
u8 is_enabled{};
|
||||
u8 is_in_focus{};
|
||||
u8 is_polling_mode{};
|
||||
|
|
|
@ -26,7 +26,7 @@ enum class JoyPollingMode : u32 {
|
|||
};
|
||||
|
||||
struct DataAccessorHeader {
|
||||
ResultCode result{ResultUnknown};
|
||||
Result result{ResultUnknown};
|
||||
INSERT_PADDING_WORDS(0x1);
|
||||
std::array<u8, 0x18> unused{};
|
||||
u64 latest_entry{};
|
||||
|
|
|
@ -7,6 +7,6 @@
|
|||
|
||||
namespace Service::LDN {
|
||||
|
||||
constexpr ResultCode ERROR_DISABLED{ErrorModule::LDN, 22};
|
||||
constexpr Result ERROR_DISABLED{ErrorModule::LDN, 22};
|
||||
|
||||
} // namespace Service::LDN
|
||||
|
|
|
@ -20,20 +20,20 @@
|
|||
|
||||
namespace Service::LDR {
|
||||
|
||||
constexpr ResultCode ERROR_INSUFFICIENT_ADDRESS_SPACE{ErrorModule::RO, 2};
|
||||
constexpr Result ERROR_INSUFFICIENT_ADDRESS_SPACE{ErrorModule::RO, 2};
|
||||
|
||||
[[maybe_unused]] constexpr ResultCode ERROR_INVALID_MEMORY_STATE{ErrorModule::Loader, 51};
|
||||
constexpr ResultCode ERROR_INVALID_NRO{ErrorModule::Loader, 52};
|
||||
constexpr ResultCode ERROR_INVALID_NRR{ErrorModule::Loader, 53};
|
||||
constexpr ResultCode ERROR_MISSING_NRR_HASH{ErrorModule::Loader, 54};
|
||||
constexpr ResultCode ERROR_MAXIMUM_NRO{ErrorModule::Loader, 55};
|
||||
constexpr ResultCode ERROR_MAXIMUM_NRR{ErrorModule::Loader, 56};
|
||||
constexpr ResultCode ERROR_ALREADY_LOADED{ErrorModule::Loader, 57};
|
||||
constexpr ResultCode ERROR_INVALID_ALIGNMENT{ErrorModule::Loader, 81};
|
||||
constexpr ResultCode ERROR_INVALID_SIZE{ErrorModule::Loader, 82};
|
||||
constexpr ResultCode ERROR_INVALID_NRO_ADDRESS{ErrorModule::Loader, 84};
|
||||
[[maybe_unused]] constexpr ResultCode ERROR_INVALID_NRR_ADDRESS{ErrorModule::Loader, 85};
|
||||
constexpr ResultCode ERROR_NOT_INITIALIZED{ErrorModule::Loader, 87};
|
||||
[[maybe_unused]] constexpr Result ERROR_INVALID_MEMORY_STATE{ErrorModule::Loader, 51};
|
||||
constexpr Result ERROR_INVALID_NRO{ErrorModule::Loader, 52};
|
||||
constexpr Result ERROR_INVALID_NRR{ErrorModule::Loader, 53};
|
||||
constexpr Result ERROR_MISSING_NRR_HASH{ErrorModule::Loader, 54};
|
||||
constexpr Result ERROR_MAXIMUM_NRO{ErrorModule::Loader, 55};
|
||||
constexpr Result ERROR_MAXIMUM_NRR{ErrorModule::Loader, 56};
|
||||
constexpr Result ERROR_ALREADY_LOADED{ErrorModule::Loader, 57};
|
||||
constexpr Result ERROR_INVALID_ALIGNMENT{ErrorModule::Loader, 81};
|
||||
constexpr Result ERROR_INVALID_SIZE{ErrorModule::Loader, 82};
|
||||
constexpr Result ERROR_INVALID_NRO_ADDRESS{ErrorModule::Loader, 84};
|
||||
[[maybe_unused]] constexpr Result ERROR_INVALID_NRR_ADDRESS{ErrorModule::Loader, 85};
|
||||
constexpr Result ERROR_NOT_INITIALIZED{ErrorModule::Loader, 87};
|
||||
|
||||
constexpr std::size_t MAXIMUM_LOADED_RO{0x40};
|
||||
constexpr std::size_t MAXIMUM_MAP_RETRIES{0x200};
|
||||
|
@ -307,7 +307,7 @@ public:
|
|||
return (start + size + padding_size) <= (end_info.GetAddress() + end_info.GetSize());
|
||||
}
|
||||
|
||||
ResultCode GetAvailableMapRegion(Kernel::KPageTable& page_table, u64 size, VAddr& out_addr) {
|
||||
Result GetAvailableMapRegion(Kernel::KPageTable& page_table, u64 size, VAddr& out_addr) {
|
||||
size = Common::AlignUp(size, Kernel::PageSize);
|
||||
size += page_table.GetNumGuardPages() * Kernel::PageSize * 4;
|
||||
|
||||
|
@ -364,7 +364,7 @@ public:
|
|||
for (std::size_t retry = 0; retry < MAXIMUM_MAP_RETRIES; retry++) {
|
||||
R_TRY(GetAvailableMapRegion(page_table, size, addr));
|
||||
|
||||
const ResultCode result{page_table.MapCodeMemory(addr, base_addr, size)};
|
||||
const Result result{page_table.MapCodeMemory(addr, base_addr, size)};
|
||||
if (result == Kernel::ResultInvalidCurrentMemory) {
|
||||
continue;
|
||||
}
|
||||
|
@ -397,8 +397,7 @@ public:
|
|||
Kernel::KPageTable::ICacheInvalidationStrategy::InvalidateRange);
|
||||
});
|
||||
|
||||
const ResultCode result{
|
||||
page_table.MapCodeMemory(addr + nro_size, bss_addr, bss_size)};
|
||||
const Result result{page_table.MapCodeMemory(addr + nro_size, bss_addr, bss_size)};
|
||||
|
||||
if (result == Kernel::ResultInvalidCurrentMemory) {
|
||||
continue;
|
||||
|
@ -419,8 +418,8 @@ public:
|
|||
return ERROR_INSUFFICIENT_ADDRESS_SPACE;
|
||||
}
|
||||
|
||||
ResultCode LoadNro(Kernel::KProcess* process, const NROHeader& nro_header, VAddr nro_addr,
|
||||
VAddr start) const {
|
||||
Result LoadNro(Kernel::KProcess* process, const NROHeader& nro_header, VAddr nro_addr,
|
||||
VAddr start) const {
|
||||
const VAddr text_start{start + nro_header.segment_headers[TEXT_INDEX].memory_offset};
|
||||
const VAddr ro_start{start + nro_header.segment_headers[RO_INDEX].memory_offset};
|
||||
const VAddr data_start{start + nro_header.segment_headers[DATA_INDEX].memory_offset};
|
||||
|
@ -569,7 +568,7 @@ public:
|
|||
rb.Push(*map_result);
|
||||
}
|
||||
|
||||
ResultCode UnmapNro(const NROInfo& info) {
|
||||
Result UnmapNro(const NROInfo& info) {
|
||||
// Each region must be unmapped separately to validate memory state
|
||||
auto& page_table{system.CurrentProcess()->PageTable()};
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
namespace Service::Mii {
|
||||
|
||||
constexpr ResultCode ERROR_INVALID_ARGUMENT{ErrorModule::Mii, 1};
|
||||
constexpr Result ERROR_INVALID_ARGUMENT{ErrorModule::Mii, 1};
|
||||
|
||||
class IDatabaseService final : public ServiceFramework<IDatabaseService> {
|
||||
public:
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace Service::Mii {
|
|||
|
||||
namespace {
|
||||
|
||||
constexpr ResultCode ERROR_CANNOT_FIND_ENTRY{ErrorModule::Mii, 4};
|
||||
constexpr Result ERROR_CANNOT_FIND_ENTRY{ErrorModule::Mii, 4};
|
||||
|
||||
constexpr std::size_t BaseMiiCount{2};
|
||||
constexpr std::size_t DefaultMiiCount{RawData::DefaultMii.size()};
|
||||
|
@ -441,7 +441,7 @@ ResultVal<std::vector<MiiInfoElement>> MiiManager::GetDefault(SourceFlag source_
|
|||
return result;
|
||||
}
|
||||
|
||||
ResultCode MiiManager::GetIndex([[maybe_unused]] const MiiInfo& info, u32& index) {
|
||||
Result MiiManager::GetIndex([[maybe_unused]] const MiiInfo& info, u32& index) {
|
||||
constexpr u32 INVALID_INDEX{0xFFFFFFFF};
|
||||
|
||||
index = INVALID_INDEX;
|
||||
|
|
|
@ -23,7 +23,7 @@ public:
|
|||
MiiInfo BuildRandom(Age age, Gender gender, Race race);
|
||||
MiiInfo BuildDefault(std::size_t index);
|
||||
ResultVal<std::vector<MiiInfoElement>> GetDefault(SourceFlag source_flag);
|
||||
ResultCode GetIndex(const MiiInfo& info, u32& index);
|
||||
Result GetIndex(const MiiInfo& info, u32& index);
|
||||
|
||||
private:
|
||||
const Common::UUID user_id{};
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
|
||||
namespace Service::NFP {
|
||||
namespace ErrCodes {
|
||||
constexpr ResultCode DeviceNotFound(ErrorModule::NFP, 64);
|
||||
constexpr ResultCode WrongDeviceState(ErrorModule::NFP, 73);
|
||||
constexpr ResultCode ApplicationAreaIsNotInitialized(ErrorModule::NFP, 128);
|
||||
constexpr ResultCode ApplicationAreaExist(ErrorModule::NFP, 168);
|
||||
constexpr Result DeviceNotFound(ErrorModule::NFP, 64);
|
||||
constexpr Result WrongDeviceState(ErrorModule::NFP, 73);
|
||||
constexpr Result ApplicationAreaIsNotInitialized(ErrorModule::NFP, 128);
|
||||
constexpr Result ApplicationAreaExist(ErrorModule::NFP, 168);
|
||||
} // namespace ErrCodes
|
||||
|
||||
constexpr u32 ApplicationAreaSize = 0xD8;
|
||||
|
@ -585,7 +585,7 @@ void Module::Interface::Finalize() {
|
|||
application_area_data.clear();
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::StartDetection(s32 protocol_) {
|
||||
Result Module::Interface::StartDetection(s32 protocol_) {
|
||||
auto npad_device = system.HIDCore().GetEmulatedController(npad_id);
|
||||
|
||||
// TODO(german77): Add callback for when nfc data is available
|
||||
|
@ -601,7 +601,7 @@ ResultCode Module::Interface::StartDetection(s32 protocol_) {
|
|||
return ErrCodes::WrongDeviceState;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::StopDetection() {
|
||||
Result Module::Interface::StopDetection() {
|
||||
auto npad_device = system.HIDCore().GetEmulatedController(npad_id);
|
||||
npad_device->SetPollingMode(Common::Input::PollingMode::Active);
|
||||
|
||||
|
@ -618,7 +618,7 @@ ResultCode Module::Interface::StopDetection() {
|
|||
return ErrCodes::WrongDeviceState;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::Mount() {
|
||||
Result Module::Interface::Mount() {
|
||||
if (device_state == DeviceState::TagFound) {
|
||||
device_state = DeviceState::TagMounted;
|
||||
return ResultSuccess;
|
||||
|
@ -628,7 +628,7 @@ ResultCode Module::Interface::Mount() {
|
|||
return ErrCodes::WrongDeviceState;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::Unmount() {
|
||||
Result Module::Interface::Unmount() {
|
||||
if (device_state == DeviceState::TagMounted) {
|
||||
is_application_area_initialized = false;
|
||||
application_area_id = 0;
|
||||
|
@ -641,7 +641,7 @@ ResultCode Module::Interface::Unmount() {
|
|||
return ErrCodes::WrongDeviceState;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::GetTagInfo(TagInfo& tag_info) const {
|
||||
Result Module::Interface::GetTagInfo(TagInfo& tag_info) const {
|
||||
if (device_state == DeviceState::TagFound || device_state == DeviceState::TagMounted) {
|
||||
tag_info = {
|
||||
.uuid = tag_data.uuid,
|
||||
|
@ -656,7 +656,7 @@ ResultCode Module::Interface::GetTagInfo(TagInfo& tag_info) const {
|
|||
return ErrCodes::WrongDeviceState;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::GetCommonInfo(CommonInfo& common_info) const {
|
||||
Result Module::Interface::GetCommonInfo(CommonInfo& common_info) const {
|
||||
if (device_state != DeviceState::TagMounted) {
|
||||
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
||||
return ErrCodes::WrongDeviceState;
|
||||
|
@ -674,7 +674,7 @@ ResultCode Module::Interface::GetCommonInfo(CommonInfo& common_info) const {
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::GetModelInfo(ModelInfo& model_info) const {
|
||||
Result Module::Interface::GetModelInfo(ModelInfo& model_info) const {
|
||||
if (device_state != DeviceState::TagMounted) {
|
||||
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
||||
return ErrCodes::WrongDeviceState;
|
||||
|
@ -684,7 +684,7 @@ ResultCode Module::Interface::GetModelInfo(ModelInfo& model_info) const {
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::GetRegisterInfo(RegisterInfo& register_info) const {
|
||||
Result Module::Interface::GetRegisterInfo(RegisterInfo& register_info) const {
|
||||
if (device_state != DeviceState::TagMounted) {
|
||||
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
||||
return ErrCodes::WrongDeviceState;
|
||||
|
@ -704,7 +704,7 @@ ResultCode Module::Interface::GetRegisterInfo(RegisterInfo& register_info) const
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::OpenApplicationArea(u32 access_id) {
|
||||
Result Module::Interface::OpenApplicationArea(u32 access_id) {
|
||||
if (device_state != DeviceState::TagMounted) {
|
||||
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
||||
return ErrCodes::WrongDeviceState;
|
||||
|
@ -721,7 +721,7 @@ ResultCode Module::Interface::OpenApplicationArea(u32 access_id) {
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::GetApplicationArea(std::vector<u8>& data) const {
|
||||
Result Module::Interface::GetApplicationArea(std::vector<u8>& data) const {
|
||||
if (device_state != DeviceState::TagMounted) {
|
||||
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
||||
return ErrCodes::WrongDeviceState;
|
||||
|
@ -736,7 +736,7 @@ ResultCode Module::Interface::GetApplicationArea(std::vector<u8>& data) const {
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::SetApplicationArea(const std::vector<u8>& data) {
|
||||
Result Module::Interface::SetApplicationArea(const std::vector<u8>& data) {
|
||||
if (device_state != DeviceState::TagMounted) {
|
||||
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
||||
return ErrCodes::WrongDeviceState;
|
||||
|
@ -750,7 +750,7 @@ ResultCode Module::Interface::SetApplicationArea(const std::vector<u8>& data) {
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode Module::Interface::CreateApplicationArea(u32 access_id, const std::vector<u8>& data) {
|
||||
Result Module::Interface::CreateApplicationArea(u32 access_id, const std::vector<u8>& data) {
|
||||
if (device_state != DeviceState::TagMounted) {
|
||||
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
||||
return ErrCodes::WrongDeviceState;
|
||||
|
|
|
@ -178,20 +178,20 @@ public:
|
|||
void Initialize();
|
||||
void Finalize();
|
||||
|
||||
ResultCode StartDetection(s32 protocol_);
|
||||
ResultCode StopDetection();
|
||||
ResultCode Mount();
|
||||
ResultCode Unmount();
|
||||
Result StartDetection(s32 protocol_);
|
||||
Result StopDetection();
|
||||
Result Mount();
|
||||
Result Unmount();
|
||||
|
||||
ResultCode GetTagInfo(TagInfo& tag_info) const;
|
||||
ResultCode GetCommonInfo(CommonInfo& common_info) const;
|
||||
ResultCode GetModelInfo(ModelInfo& model_info) const;
|
||||
ResultCode GetRegisterInfo(RegisterInfo& register_info) const;
|
||||
Result GetTagInfo(TagInfo& tag_info) const;
|
||||
Result GetCommonInfo(CommonInfo& common_info) const;
|
||||
Result GetModelInfo(ModelInfo& model_info) const;
|
||||
Result GetRegisterInfo(RegisterInfo& register_info) const;
|
||||
|
||||
ResultCode OpenApplicationArea(u32 access_id);
|
||||
ResultCode GetApplicationArea(std::vector<u8>& data) const;
|
||||
ResultCode SetApplicationArea(const std::vector<u8>& data);
|
||||
ResultCode CreateApplicationArea(u32 access_id, const std::vector<u8>& data);
|
||||
Result OpenApplicationArea(u32 access_id);
|
||||
Result GetApplicationArea(std::vector<u8>& data) const;
|
||||
Result SetApplicationArea(const std::vector<u8>& data);
|
||||
Result CreateApplicationArea(u32 access_id, const std::vector<u8>& data);
|
||||
|
||||
u64 GetHandle() const;
|
||||
DeviceState GetCurrentState() const;
|
||||
|
|
|
@ -7,5 +7,5 @@
|
|||
|
||||
namespace Service::NS {
|
||||
|
||||
constexpr ResultCode ERR_APPLICATION_LANGUAGE_NOT_FOUND{ErrorModule::NS, 300};
|
||||
constexpr Result ERR_APPLICATION_LANGUAGE_NOT_FOUND{ErrorModule::NS, 300};
|
||||
}
|
|
@ -13,10 +13,10 @@ namespace Service::PCTL {
|
|||
|
||||
namespace Error {
|
||||
|
||||
constexpr ResultCode ResultNoFreeCommunication{ErrorModule::PCTL, 101};
|
||||
constexpr ResultCode ResultStereoVisionRestricted{ErrorModule::PCTL, 104};
|
||||
constexpr ResultCode ResultNoCapability{ErrorModule::PCTL, 131};
|
||||
constexpr ResultCode ResultNoRestrictionEnabled{ErrorModule::PCTL, 181};
|
||||
constexpr Result ResultNoFreeCommunication{ErrorModule::PCTL, 101};
|
||||
constexpr Result ResultStereoVisionRestricted{ErrorModule::PCTL, 104};
|
||||
constexpr Result ResultNoCapability{ErrorModule::PCTL, 131};
|
||||
constexpr Result ResultNoRestrictionEnabled{ErrorModule::PCTL, 181};
|
||||
|
||||
} // namespace Error
|
||||
|
||||
|
|
|
@ -12,12 +12,12 @@ namespace Service::PM {
|
|||
|
||||
namespace {
|
||||
|
||||
constexpr ResultCode ResultProcessNotFound{ErrorModule::PM, 1};
|
||||
[[maybe_unused]] constexpr ResultCode ResultAlreadyStarted{ErrorModule::PM, 2};
|
||||
[[maybe_unused]] constexpr ResultCode ResultNotTerminated{ErrorModule::PM, 3};
|
||||
[[maybe_unused]] constexpr ResultCode ResultDebugHookInUse{ErrorModule::PM, 4};
|
||||
[[maybe_unused]] constexpr ResultCode ResultApplicationRunning{ErrorModule::PM, 5};
|
||||
[[maybe_unused]] constexpr ResultCode ResultInvalidSize{ErrorModule::PM, 6};
|
||||
constexpr Result ResultProcessNotFound{ErrorModule::PM, 1};
|
||||
[[maybe_unused]] constexpr Result ResultAlreadyStarted{ErrorModule::PM, 2};
|
||||
[[maybe_unused]] constexpr Result ResultNotTerminated{ErrorModule::PM, 3};
|
||||
[[maybe_unused]] constexpr Result ResultDebugHookInUse{ErrorModule::PM, 4};
|
||||
[[maybe_unused]] constexpr Result ResultApplicationRunning{ErrorModule::PM, 5};
|
||||
[[maybe_unused]] constexpr Result ResultInvalidSize{ErrorModule::PM, 6};
|
||||
|
||||
constexpr u64 NO_PROCESS_FOUND_PID{0};
|
||||
|
||||
|
|
|
@ -190,8 +190,8 @@ void ServiceFrameworkBase::InvokeRequestTipc(Kernel::HLERequestContext& ctx) {
|
|||
handler_invoker(this, info->handler_callback, ctx);
|
||||
}
|
||||
|
||||
ResultCode ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& session,
|
||||
Kernel::HLERequestContext& ctx) {
|
||||
Result ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& session,
|
||||
Kernel::HLERequestContext& ctx) {
|
||||
const auto guard = LockService();
|
||||
|
||||
switch (ctx.GetCommandType()) {
|
||||
|
|
|
@ -79,8 +79,8 @@ public:
|
|||
Kernel::KClientPort& CreatePort();
|
||||
|
||||
/// Handles a synchronization request for the service.
|
||||
ResultCode HandleSyncRequest(Kernel::KServerSession& session,
|
||||
Kernel::HLERequestContext& context) override;
|
||||
Result HandleSyncRequest(Kernel::KServerSession& session,
|
||||
Kernel::HLERequestContext& context) override;
|
||||
|
||||
protected:
|
||||
/// Member-function pointer type of SyncRequest handlers.
|
||||
|
|
|
@ -74,7 +74,7 @@ constexpr std::array<std::pair<LanguageCode, KeyboardLayout>, 18> language_to_la
|
|||
constexpr std::size_t PRE_4_0_0_MAX_ENTRIES = 0xF;
|
||||
constexpr std::size_t POST_4_0_0_MAX_ENTRIES = 0x40;
|
||||
|
||||
constexpr ResultCode ERR_INVALID_LANGUAGE{ErrorModule::Settings, 625};
|
||||
constexpr Result ERR_INVALID_LANGUAGE{ErrorModule::Settings, 625};
|
||||
|
||||
void PushResponseLanguageCode(Kernel::HLERequestContext& ctx, std::size_t num_language_codes) {
|
||||
IPC::ResponseBuilder rb{ctx, 3};
|
||||
|
|
|
@ -32,7 +32,7 @@ void GetFirmwareVersionImpl(Kernel::HLERequestContext& ctx, GetFirmwareVersionTy
|
|||
// consistence (currently reports as 5.1.0-0.0)
|
||||
const auto archive = FileSys::SystemArchive::SystemVersion();
|
||||
|
||||
const auto early_exit_failure = [&ctx](std::string_view desc, ResultCode code) {
|
||||
const auto early_exit_failure = [&ctx](std::string_view desc, Result code) {
|
||||
LOG_ERROR(Service_SET, "General failure while attempting to resolve firmware version ({}).",
|
||||
desc);
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
|
||||
namespace Service::SM {
|
||||
|
||||
constexpr ResultCode ERR_NOT_INITIALIZED(ErrorModule::SM, 2);
|
||||
constexpr ResultCode ERR_ALREADY_REGISTERED(ErrorModule::SM, 4);
|
||||
constexpr ResultCode ERR_INVALID_NAME(ErrorModule::SM, 6);
|
||||
constexpr ResultCode ERR_SERVICE_NOT_REGISTERED(ErrorModule::SM, 7);
|
||||
constexpr Result ERR_NOT_INITIALIZED(ErrorModule::SM, 2);
|
||||
constexpr Result ERR_ALREADY_REGISTERED(ErrorModule::SM, 4);
|
||||
constexpr Result ERR_INVALID_NAME(ErrorModule::SM, 6);
|
||||
constexpr Result ERR_SERVICE_NOT_REGISTERED(ErrorModule::SM, 7);
|
||||
|
||||
ServiceManager::ServiceManager(Kernel::KernelCore& kernel_) : kernel{kernel_} {}
|
||||
ServiceManager::~ServiceManager() = default;
|
||||
|
@ -29,7 +29,7 @@ void ServiceManager::InvokeControlRequest(Kernel::HLERequestContext& context) {
|
|||
controller_interface->InvokeRequest(context);
|
||||
}
|
||||
|
||||
static ResultCode ValidateServiceName(const std::string& name) {
|
||||
static Result ValidateServiceName(const std::string& name) {
|
||||
if (name.empty() || name.size() > 8) {
|
||||
LOG_ERROR(Service_SM, "Invalid service name! service={}", name);
|
||||
return ERR_INVALID_NAME;
|
||||
|
@ -43,8 +43,8 @@ Kernel::KClientPort& ServiceManager::InterfaceFactory(ServiceManager& self, Core
|
|||
return self.sm_interface->CreatePort();
|
||||
}
|
||||
|
||||
ResultCode ServiceManager::RegisterService(std::string name, u32 max_sessions,
|
||||
Kernel::SessionRequestHandlerPtr handler) {
|
||||
Result ServiceManager::RegisterService(std::string name, u32 max_sessions,
|
||||
Kernel::SessionRequestHandlerPtr handler) {
|
||||
|
||||
CASCADE_CODE(ValidateServiceName(name));
|
||||
|
||||
|
@ -58,7 +58,7 @@ ResultCode ServiceManager::RegisterService(std::string name, u32 max_sessions,
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode ServiceManager::UnregisterService(const std::string& name) {
|
||||
Result ServiceManager::UnregisterService(const std::string& name) {
|
||||
CASCADE_CODE(ValidateServiceName(name));
|
||||
|
||||
const auto iter = registered_services.find(name);
|
||||
|
@ -94,7 +94,7 @@ ResultVal<Kernel::KPort*> ServiceManager::GetServicePort(const std::string& name
|
|||
* Inputs:
|
||||
* 0: 0x00000000
|
||||
* Outputs:
|
||||
* 0: ResultCode
|
||||
* 0: Result
|
||||
*/
|
||||
void SM::Initialize(Kernel::HLERequestContext& ctx) {
|
||||
LOG_DEBUG(Service_SM, "called");
|
||||
|
|
|
@ -55,9 +55,9 @@ public:
|
|||
explicit ServiceManager(Kernel::KernelCore& kernel_);
|
||||
~ServiceManager();
|
||||
|
||||
ResultCode RegisterService(std::string name, u32 max_sessions,
|
||||
Kernel::SessionRequestHandlerPtr handler);
|
||||
ResultCode UnregisterService(const std::string& name);
|
||||
Result RegisterService(std::string name, u32 max_sessions,
|
||||
Kernel::SessionRequestHandlerPtr handler);
|
||||
Result UnregisterService(const std::string& name);
|
||||
ResultVal<Kernel::KPort*> GetServicePort(const std::string& name);
|
||||
|
||||
template <Common::DerivedFrom<Kernel::SessionRequestHandler> T>
|
||||
|
|
|
@ -33,7 +33,7 @@ void Controller::CloneCurrentObject(Kernel::HLERequestContext& ctx) {
|
|||
|
||||
// Create a session.
|
||||
Kernel::KClientSession* session{};
|
||||
const ResultCode result = parent_port.CreateSession(std::addressof(session), session_manager);
|
||||
const Result result = parent_port.CreateSession(std::addressof(session), session_manager);
|
||||
if (result.IsError()) {
|
||||
LOG_CRITICAL(Service, "CreateSession failed with error 0x{:08X}", result.raw);
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
|
|
|
@ -8,23 +8,23 @@
|
|||
namespace Service::SPL {
|
||||
|
||||
// Description 0 - 99
|
||||
constexpr ResultCode ResultSecureMonitorError{ErrorModule::SPL, 0};
|
||||
constexpr ResultCode ResultSecureMonitorNotImplemented{ErrorModule::SPL, 1};
|
||||
constexpr ResultCode ResultSecureMonitorInvalidArgument{ErrorModule::SPL, 2};
|
||||
constexpr ResultCode ResultSecureMonitorBusy{ErrorModule::SPL, 3};
|
||||
constexpr ResultCode ResultSecureMonitorNoAsyncOperation{ErrorModule::SPL, 4};
|
||||
constexpr ResultCode ResultSecureMonitorInvalidAsyncOperation{ErrorModule::SPL, 5};
|
||||
constexpr ResultCode ResultSecureMonitorNotPermitted{ErrorModule::SPL, 6};
|
||||
constexpr ResultCode ResultSecureMonitorNotInitialized{ErrorModule::SPL, 7};
|
||||
constexpr Result ResultSecureMonitorError{ErrorModule::SPL, 0};
|
||||
constexpr Result ResultSecureMonitorNotImplemented{ErrorModule::SPL, 1};
|
||||
constexpr Result ResultSecureMonitorInvalidArgument{ErrorModule::SPL, 2};
|
||||
constexpr Result ResultSecureMonitorBusy{ErrorModule::SPL, 3};
|
||||
constexpr Result ResultSecureMonitorNoAsyncOperation{ErrorModule::SPL, 4};
|
||||
constexpr Result ResultSecureMonitorInvalidAsyncOperation{ErrorModule::SPL, 5};
|
||||
constexpr Result ResultSecureMonitorNotPermitted{ErrorModule::SPL, 6};
|
||||
constexpr Result ResultSecureMonitorNotInitialized{ErrorModule::SPL, 7};
|
||||
|
||||
constexpr ResultCode ResultInvalidSize{ErrorModule::SPL, 100};
|
||||
constexpr ResultCode ResultUnknownSecureMonitorError{ErrorModule::SPL, 101};
|
||||
constexpr ResultCode ResultDecryptionFailed{ErrorModule::SPL, 102};
|
||||
constexpr Result ResultInvalidSize{ErrorModule::SPL, 100};
|
||||
constexpr Result ResultUnknownSecureMonitorError{ErrorModule::SPL, 101};
|
||||
constexpr Result ResultDecryptionFailed{ErrorModule::SPL, 102};
|
||||
|
||||
constexpr ResultCode ResultOutOfKeySlots{ErrorModule::SPL, 104};
|
||||
constexpr ResultCode ResultInvalidKeySlot{ErrorModule::SPL, 105};
|
||||
constexpr ResultCode ResultBootReasonAlreadySet{ErrorModule::SPL, 106};
|
||||
constexpr ResultCode ResultBootReasonNotSet{ErrorModule::SPL, 107};
|
||||
constexpr ResultCode ResultInvalidArgument{ErrorModule::SPL, 108};
|
||||
constexpr Result ResultOutOfKeySlots{ErrorModule::SPL, 104};
|
||||
constexpr Result ResultInvalidKeySlot{ErrorModule::SPL, 105};
|
||||
constexpr Result ResultBootReasonAlreadySet{ErrorModule::SPL, 106};
|
||||
constexpr Result ResultBootReasonNotSet{ErrorModule::SPL, 107};
|
||||
constexpr Result ResultInvalidArgument{ErrorModule::SPL, 108};
|
||||
|
||||
} // namespace Service::SPL
|
||||
|
|
|
@ -22,7 +22,7 @@ struct SteadyClockTimePoint {
|
|||
s64 time_point;
|
||||
Common::UUID clock_source_id;
|
||||
|
||||
ResultCode GetSpanBetween(SteadyClockTimePoint other, s64& span) const {
|
||||
Result GetSpanBetween(SteadyClockTimePoint other, s64& span) const {
|
||||
span = 0;
|
||||
|
||||
if (clock_source_id != other.clock_source_id) {
|
||||
|
@ -92,9 +92,9 @@ struct ClockSnapshot {
|
|||
TimeType type;
|
||||
INSERT_PADDING_BYTES_NOINIT(0x2);
|
||||
|
||||
static ResultCode GetCurrentTime(s64& current_time,
|
||||
const SteadyClockTimePoint& steady_clock_time_point,
|
||||
const SystemClockContext& context) {
|
||||
static Result GetCurrentTime(s64& current_time,
|
||||
const SteadyClockTimePoint& steady_clock_time_point,
|
||||
const SystemClockContext& context) {
|
||||
if (steady_clock_time_point.clock_source_id != context.steady_time_point.clock_source_id) {
|
||||
current_time = 0;
|
||||
return ERROR_TIME_MISMATCH;
|
||||
|
|
|
@ -7,15 +7,15 @@
|
|||
|
||||
namespace Service::Time {
|
||||
|
||||
constexpr ResultCode ERROR_PERMISSION_DENIED{ErrorModule::Time, 1};
|
||||
constexpr ResultCode ERROR_TIME_MISMATCH{ErrorModule::Time, 102};
|
||||
constexpr ResultCode ERROR_UNINITIALIZED_CLOCK{ErrorModule::Time, 103};
|
||||
constexpr ResultCode ERROR_TIME_NOT_FOUND{ErrorModule::Time, 200};
|
||||
constexpr ResultCode ERROR_OVERFLOW{ErrorModule::Time, 201};
|
||||
constexpr ResultCode ERROR_LOCATION_NAME_TOO_LONG{ErrorModule::Time, 801};
|
||||
constexpr ResultCode ERROR_OUT_OF_RANGE{ErrorModule::Time, 902};
|
||||
constexpr ResultCode ERROR_TIME_ZONE_CONVERSION_FAILED{ErrorModule::Time, 903};
|
||||
constexpr ResultCode ERROR_TIME_ZONE_NOT_FOUND{ErrorModule::Time, 989};
|
||||
constexpr ResultCode ERROR_NOT_IMPLEMENTED{ErrorModule::Time, 990};
|
||||
constexpr Result ERROR_PERMISSION_DENIED{ErrorModule::Time, 1};
|
||||
constexpr Result ERROR_TIME_MISMATCH{ErrorModule::Time, 102};
|
||||
constexpr Result ERROR_UNINITIALIZED_CLOCK{ErrorModule::Time, 103};
|
||||
constexpr Result ERROR_TIME_NOT_FOUND{ErrorModule::Time, 200};
|
||||
constexpr Result ERROR_OVERFLOW{ErrorModule::Time, 201};
|
||||
constexpr Result ERROR_LOCATION_NAME_TOO_LONG{ErrorModule::Time, 801};
|
||||
constexpr Result ERROR_OUT_OF_RANGE{ErrorModule::Time, 902};
|
||||
constexpr Result ERROR_TIME_ZONE_CONVERSION_FAILED{ErrorModule::Time, 903};
|
||||
constexpr Result ERROR_TIME_ZONE_NOT_FOUND{ErrorModule::Time, 989};
|
||||
constexpr Result ERROR_NOT_IMPLEMENTED{ErrorModule::Time, 990};
|
||||
|
||||
} // namespace Service::Time
|
||||
|
|
|
@ -14,7 +14,7 @@ public:
|
|||
: SystemClockContextUpdateCallback{}, shared_memory{shared_memory_} {}
|
||||
|
||||
protected:
|
||||
ResultCode Update() override {
|
||||
Result Update() override {
|
||||
shared_memory.UpdateLocalSystemClockContext(context);
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ public:
|
|||
: SystemClockContextUpdateCallback{}, shared_memory{shared_memory_} {}
|
||||
|
||||
protected:
|
||||
ResultCode Update() override {
|
||||
Result Update() override {
|
||||
shared_memory.UpdateNetworkSystemClockContext(context);
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
|
|
@ -27,9 +27,9 @@ StandardUserSystemClockCore::~StandardUserSystemClockCore() {
|
|||
service_context.CloseEvent(auto_correction_event);
|
||||
}
|
||||
|
||||
ResultCode StandardUserSystemClockCore::SetAutomaticCorrectionEnabled(Core::System& system,
|
||||
bool value) {
|
||||
if (const ResultCode result{ApplyAutomaticCorrection(system, value)}; result != ResultSuccess) {
|
||||
Result StandardUserSystemClockCore::SetAutomaticCorrectionEnabled(Core::System& system,
|
||||
bool value) {
|
||||
if (const Result result{ApplyAutomaticCorrection(system, value)}; result != ResultSuccess) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -38,27 +38,27 @@ ResultCode StandardUserSystemClockCore::SetAutomaticCorrectionEnabled(Core::Syst
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode StandardUserSystemClockCore::GetClockContext(Core::System& system,
|
||||
SystemClockContext& ctx) const {
|
||||
if (const ResultCode result{ApplyAutomaticCorrection(system, false)}; result != ResultSuccess) {
|
||||
Result StandardUserSystemClockCore::GetClockContext(Core::System& system,
|
||||
SystemClockContext& ctx) const {
|
||||
if (const Result result{ApplyAutomaticCorrection(system, false)}; result != ResultSuccess) {
|
||||
return result;
|
||||
}
|
||||
|
||||
return local_system_clock_core.GetClockContext(system, ctx);
|
||||
}
|
||||
|
||||
ResultCode StandardUserSystemClockCore::Flush(const SystemClockContext&) {
|
||||
Result StandardUserSystemClockCore::Flush(const SystemClockContext&) {
|
||||
UNIMPLEMENTED();
|
||||
return ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
ResultCode StandardUserSystemClockCore::SetClockContext(const SystemClockContext&) {
|
||||
Result StandardUserSystemClockCore::SetClockContext(const SystemClockContext&) {
|
||||
UNIMPLEMENTED();
|
||||
return ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
ResultCode StandardUserSystemClockCore::ApplyAutomaticCorrection(Core::System& system,
|
||||
bool value) const {
|
||||
Result StandardUserSystemClockCore::ApplyAutomaticCorrection(Core::System& system,
|
||||
bool value) const {
|
||||
if (auto_correction_enabled == value) {
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ ResultCode StandardUserSystemClockCore::ApplyAutomaticCorrection(Core::System& s
|
|||
}
|
||||
|
||||
SystemClockContext ctx{};
|
||||
if (const ResultCode result{network_system_clock_core.GetClockContext(system, ctx)};
|
||||
if (const Result result{network_system_clock_core.GetClockContext(system, ctx)};
|
||||
result != ResultSuccess) {
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -28,9 +28,9 @@ public:
|
|||
|
||||
~StandardUserSystemClockCore() override;
|
||||
|
||||
ResultCode SetAutomaticCorrectionEnabled(Core::System& system, bool value);
|
||||
Result SetAutomaticCorrectionEnabled(Core::System& system, bool value);
|
||||
|
||||
ResultCode GetClockContext(Core::System& system, SystemClockContext& ctx) const override;
|
||||
Result GetClockContext(Core::System& system, SystemClockContext& ctx) const override;
|
||||
|
||||
bool IsAutomaticCorrectionEnabled() const {
|
||||
return auto_correction_enabled;
|
||||
|
@ -41,11 +41,11 @@ public:
|
|||
}
|
||||
|
||||
protected:
|
||||
ResultCode Flush(const SystemClockContext&) override;
|
||||
Result Flush(const SystemClockContext&) override;
|
||||
|
||||
ResultCode SetClockContext(const SystemClockContext&) override;
|
||||
Result SetClockContext(const SystemClockContext&) override;
|
||||
|
||||
ResultCode ApplyAutomaticCorrection(Core::System& system, bool value) const;
|
||||
Result ApplyAutomaticCorrection(Core::System& system, bool value) const;
|
||||
|
||||
const SteadyClockTimePoint& GetAutomaticCorrectionUpdatedTime() const {
|
||||
return auto_correction_time;
|
||||
|
|
|
@ -30,8 +30,8 @@ void SystemClockContextUpdateCallback::BroadcastOperationEvent() {
|
|||
}
|
||||
}
|
||||
|
||||
ResultCode SystemClockContextUpdateCallback::Update(const SystemClockContext& value) {
|
||||
ResultCode result{ResultSuccess};
|
||||
Result SystemClockContextUpdateCallback::Update(const SystemClockContext& value) {
|
||||
Result result{ResultSuccess};
|
||||
|
||||
if (NeedUpdate(value)) {
|
||||
context = value;
|
||||
|
@ -47,7 +47,7 @@ ResultCode SystemClockContextUpdateCallback::Update(const SystemClockContext& va
|
|||
return result;
|
||||
}
|
||||
|
||||
ResultCode SystemClockContextUpdateCallback::Update() {
|
||||
Result SystemClockContextUpdateCallback::Update() {
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,10 +28,10 @@ public:
|
|||
|
||||
void BroadcastOperationEvent();
|
||||
|
||||
ResultCode Update(const SystemClockContext& value);
|
||||
Result Update(const SystemClockContext& value);
|
||||
|
||||
protected:
|
||||
virtual ResultCode Update();
|
||||
virtual Result Update();
|
||||
|
||||
SystemClockContext context{};
|
||||
|
||||
|
|
|
@ -14,13 +14,13 @@ SystemClockCore::SystemClockCore(SteadyClockCore& steady_clock_core_)
|
|||
|
||||
SystemClockCore::~SystemClockCore() = default;
|
||||
|
||||
ResultCode SystemClockCore::GetCurrentTime(Core::System& system, s64& posix_time) const {
|
||||
Result SystemClockCore::GetCurrentTime(Core::System& system, s64& posix_time) const {
|
||||
posix_time = 0;
|
||||
|
||||
const SteadyClockTimePoint current_time_point{steady_clock_core.GetCurrentTimePoint(system)};
|
||||
|
||||
SystemClockContext clock_context{};
|
||||
if (const ResultCode result{GetClockContext(system, clock_context)}; result != ResultSuccess) {
|
||||
if (const Result result{GetClockContext(system, clock_context)}; result != ResultSuccess) {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -33,26 +33,26 @@ ResultCode SystemClockCore::GetCurrentTime(Core::System& system, s64& posix_time
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode SystemClockCore::SetCurrentTime(Core::System& system, s64 posix_time) {
|
||||
Result SystemClockCore::SetCurrentTime(Core::System& system, s64 posix_time) {
|
||||
const SteadyClockTimePoint current_time_point{steady_clock_core.GetCurrentTimePoint(system)};
|
||||
const SystemClockContext clock_context{posix_time - current_time_point.time_point,
|
||||
current_time_point};
|
||||
|
||||
if (const ResultCode result{SetClockContext(clock_context)}; result != ResultSuccess) {
|
||||
if (const Result result{SetClockContext(clock_context)}; result != ResultSuccess) {
|
||||
return result;
|
||||
}
|
||||
return Flush(clock_context);
|
||||
}
|
||||
|
||||
ResultCode SystemClockCore::Flush(const SystemClockContext& clock_context) {
|
||||
Result SystemClockCore::Flush(const SystemClockContext& clock_context) {
|
||||
if (!system_clock_context_update_callback) {
|
||||
return ResultSuccess;
|
||||
}
|
||||
return system_clock_context_update_callback->Update(clock_context);
|
||||
}
|
||||
|
||||
ResultCode SystemClockCore::SetSystemClockContext(const SystemClockContext& clock_context) {
|
||||
if (const ResultCode result{SetClockContext(clock_context)}; result != ResultSuccess) {
|
||||
Result SystemClockCore::SetSystemClockContext(const SystemClockContext& clock_context) {
|
||||
if (const Result result{SetClockContext(clock_context)}; result != ResultSuccess) {
|
||||
return result;
|
||||
}
|
||||
return Flush(clock_context);
|
||||
|
|
|
@ -29,28 +29,28 @@ public:
|
|||
return steady_clock_core;
|
||||
}
|
||||
|
||||
ResultCode GetCurrentTime(Core::System& system, s64& posix_time) const;
|
||||
Result GetCurrentTime(Core::System& system, s64& posix_time) const;
|
||||
|
||||
ResultCode SetCurrentTime(Core::System& system, s64 posix_time);
|
||||
Result SetCurrentTime(Core::System& system, s64 posix_time);
|
||||
|
||||
virtual ResultCode GetClockContext([[maybe_unused]] Core::System& system,
|
||||
SystemClockContext& value) const {
|
||||
virtual Result GetClockContext([[maybe_unused]] Core::System& system,
|
||||
SystemClockContext& value) const {
|
||||
value = context;
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
virtual ResultCode SetClockContext(const SystemClockContext& value) {
|
||||
virtual Result SetClockContext(const SystemClockContext& value) {
|
||||
context = value;
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
virtual ResultCode Flush(const SystemClockContext& clock_context);
|
||||
virtual Result Flush(const SystemClockContext& clock_context);
|
||||
|
||||
void SetUpdateCallbackInstance(std::shared_ptr<SystemClockContextUpdateCallback> callback) {
|
||||
system_clock_context_update_callback = std::move(callback);
|
||||
}
|
||||
|
||||
ResultCode SetSystemClockContext(const SystemClockContext& context);
|
||||
Result SetSystemClockContext(const SystemClockContext& context);
|
||||
|
||||
bool IsInitialized() const {
|
||||
return is_initialized;
|
||||
|
|
|
@ -43,8 +43,7 @@ private:
|
|||
}
|
||||
|
||||
s64 posix_time{};
|
||||
if (const ResultCode result{clock_core.GetCurrentTime(system, posix_time)};
|
||||
result.IsError()) {
|
||||
if (const Result result{clock_core.GetCurrentTime(system, posix_time)}; result.IsError()) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
rb.Push(result);
|
||||
return;
|
||||
|
@ -65,7 +64,7 @@ private:
|
|||
}
|
||||
|
||||
Clock::SystemClockContext system_clock_context{};
|
||||
if (const ResultCode result{clock_core.GetClockContext(system, system_clock_context)};
|
||||
if (const Result result{clock_core.GetClockContext(system, system_clock_context)};
|
||||
result.IsError()) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
rb.Push(result);
|
||||
|
@ -116,7 +115,7 @@ private:
|
|||
Clock::SteadyClockCore& clock_core;
|
||||
};
|
||||
|
||||
ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(
|
||||
Result Module::Interface::GetClockSnapshotFromSystemClockContextInternal(
|
||||
Kernel::KThread* thread, Clock::SystemClockContext user_context,
|
||||
Clock::SystemClockContext network_context, Clock::TimeType type,
|
||||
Clock::ClockSnapshot& clock_snapshot) {
|
||||
|
@ -129,7 +128,7 @@ ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(
|
|||
time_manager.GetStandardUserSystemClockCore().IsAutomaticCorrectionEnabled();
|
||||
clock_snapshot.type = type;
|
||||
|
||||
if (const ResultCode result{
|
||||
if (const Result result{
|
||||
time_manager.GetTimeZoneContentManager().GetTimeZoneManager().GetDeviceLocationName(
|
||||
clock_snapshot.location_name)};
|
||||
result != ResultSuccess) {
|
||||
|
@ -138,7 +137,7 @@ ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(
|
|||
|
||||
clock_snapshot.user_context = user_context;
|
||||
|
||||
if (const ResultCode result{Clock::ClockSnapshot::GetCurrentTime(
|
||||
if (const Result result{Clock::ClockSnapshot::GetCurrentTime(
|
||||
clock_snapshot.user_time, clock_snapshot.steady_clock_time_point,
|
||||
clock_snapshot.user_context)};
|
||||
result != ResultSuccess) {
|
||||
|
@ -146,7 +145,7 @@ ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(
|
|||
}
|
||||
|
||||
TimeZone::CalendarInfo userCalendarInfo{};
|
||||
if (const ResultCode result{
|
||||
if (const Result result{
|
||||
time_manager.GetTimeZoneContentManager().GetTimeZoneManager().ToCalendarTimeWithMyRules(
|
||||
clock_snapshot.user_time, userCalendarInfo)};
|
||||
result != ResultSuccess) {
|
||||
|
@ -165,7 +164,7 @@ ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(
|
|||
}
|
||||
|
||||
TimeZone::CalendarInfo networkCalendarInfo{};
|
||||
if (const ResultCode result{
|
||||
if (const Result result{
|
||||
time_manager.GetTimeZoneContentManager().GetTimeZoneManager().ToCalendarTimeWithMyRules(
|
||||
clock_snapshot.network_time, networkCalendarInfo)};
|
||||
result != ResultSuccess) {
|
||||
|
@ -262,7 +261,7 @@ void Module::Interface::GetClockSnapshot(Kernel::HLERequestContext& ctx) {
|
|||
LOG_DEBUG(Service_Time, "called, type={}", type);
|
||||
|
||||
Clock::SystemClockContext user_context{};
|
||||
if (const ResultCode result{
|
||||
if (const Result result{
|
||||
system.GetTimeManager().GetStandardUserSystemClockCore().GetClockContext(system,
|
||||
user_context)};
|
||||
result.IsError()) {
|
||||
|
@ -272,7 +271,7 @@ void Module::Interface::GetClockSnapshot(Kernel::HLERequestContext& ctx) {
|
|||
}
|
||||
|
||||
Clock::SystemClockContext network_context{};
|
||||
if (const ResultCode result{
|
||||
if (const Result result{
|
||||
system.GetTimeManager().GetStandardNetworkSystemClockCore().GetClockContext(
|
||||
system, network_context)};
|
||||
result.IsError()) {
|
||||
|
@ -282,7 +281,7 @@ void Module::Interface::GetClockSnapshot(Kernel::HLERequestContext& ctx) {
|
|||
}
|
||||
|
||||
Clock::ClockSnapshot clock_snapshot{};
|
||||
if (const ResultCode result{GetClockSnapshotFromSystemClockContextInternal(
|
||||
if (const Result result{GetClockSnapshotFromSystemClockContextInternal(
|
||||
&ctx.GetThread(), user_context, network_context, type, clock_snapshot)};
|
||||
result.IsError()) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
|
@ -308,7 +307,7 @@ void Module::Interface::GetClockSnapshotFromSystemClockContext(Kernel::HLEReques
|
|||
LOG_DEBUG(Service_Time, "called, type={}", type);
|
||||
|
||||
Clock::ClockSnapshot clock_snapshot{};
|
||||
if (const ResultCode result{GetClockSnapshotFromSystemClockContextInternal(
|
||||
if (const Result result{GetClockSnapshotFromSystemClockContextInternal(
|
||||
&ctx.GetThread(), user_context, network_context, type, clock_snapshot)};
|
||||
result != ResultSuccess) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
|
@ -365,7 +364,7 @@ void Module::Interface::CalculateSpanBetween(Kernel::HLERequestContext& ctx) {
|
|||
Clock::TimeSpanType time_span_type{};
|
||||
s64 span{};
|
||||
|
||||
if (const ResultCode result{snapshot_a.steady_clock_time_point.GetSpanBetween(
|
||||
if (const Result result{snapshot_a.steady_clock_time_point.GetSpanBetween(
|
||||
snapshot_b.steady_clock_time_point, span)};
|
||||
result != ResultSuccess) {
|
||||
if (snapshot_a.network_time && snapshot_b.network_time) {
|
||||
|
|
|
@ -36,7 +36,7 @@ public:
|
|||
void GetSharedMemoryNativeHandle(Kernel::HLERequestContext& ctx);
|
||||
|
||||
private:
|
||||
ResultCode GetClockSnapshotFromSystemClockContextInternal(
|
||||
Result GetClockSnapshotFromSystemClockContextInternal(
|
||||
Kernel::KThread* thread, Clock::SystemClockContext user_context,
|
||||
Clock::SystemClockContext network_context, Clock::TimeType type,
|
||||
Clock::ClockSnapshot& cloc_snapshot);
|
||||
|
|
|
@ -90,10 +90,10 @@ void TimeZoneContentManager::Initialize(TimeManager& time_manager) {
|
|||
}
|
||||
}
|
||||
|
||||
ResultCode TimeZoneContentManager::LoadTimeZoneRule(TimeZoneRule& rules,
|
||||
const std::string& location_name) const {
|
||||
Result TimeZoneContentManager::LoadTimeZoneRule(TimeZoneRule& rules,
|
||||
const std::string& location_name) const {
|
||||
FileSys::VirtualFile vfs_file;
|
||||
if (const ResultCode result{GetTimeZoneInfoFile(location_name, vfs_file)};
|
||||
if (const Result result{GetTimeZoneInfoFile(location_name, vfs_file)};
|
||||
result != ResultSuccess) {
|
||||
return result;
|
||||
}
|
||||
|
@ -106,8 +106,8 @@ bool TimeZoneContentManager::IsLocationNameValid(const std::string& location_nam
|
|||
location_name_cache.end();
|
||||
}
|
||||
|
||||
ResultCode TimeZoneContentManager::GetTimeZoneInfoFile(const std::string& location_name,
|
||||
FileSys::VirtualFile& vfs_file) const {
|
||||
Result TimeZoneContentManager::GetTimeZoneInfoFile(const std::string& location_name,
|
||||
FileSys::VirtualFile& vfs_file) const {
|
||||
if (!IsLocationNameValid(location_name)) {
|
||||
return ERROR_TIME_NOT_FOUND;
|
||||
}
|
||||
|
|
|
@ -32,12 +32,12 @@ public:
|
|||
return time_zone_manager;
|
||||
}
|
||||
|
||||
ResultCode LoadTimeZoneRule(TimeZoneRule& rules, const std::string& location_name) const;
|
||||
Result LoadTimeZoneRule(TimeZoneRule& rules, const std::string& location_name) const;
|
||||
|
||||
private:
|
||||
bool IsLocationNameValid(const std::string& location_name) const;
|
||||
ResultCode GetTimeZoneInfoFile(const std::string& location_name,
|
||||
FileSys::VirtualFile& vfs_file) const;
|
||||
Result GetTimeZoneInfoFile(const std::string& location_name,
|
||||
FileSys::VirtualFile& vfs_file) const;
|
||||
|
||||
Core::System& system;
|
||||
TimeZoneManager time_zone_manager;
|
||||
|
|
|
@ -666,8 +666,8 @@ static bool ParseTimeZoneBinary(TimeZoneRule& time_zone_rule, FileSys::VirtualFi
|
|||
return true;
|
||||
}
|
||||
|
||||
static ResultCode CreateCalendarTime(s64 time, int gmt_offset, CalendarTimeInternal& calendar_time,
|
||||
CalendarAdditionalInfo& calendar_additional_info) {
|
||||
static Result CreateCalendarTime(s64 time, int gmt_offset, CalendarTimeInternal& calendar_time,
|
||||
CalendarAdditionalInfo& calendar_additional_info) {
|
||||
s64 year{epoch_year};
|
||||
s64 time_days{time / seconds_per_day};
|
||||
s64 remaining_seconds{time % seconds_per_day};
|
||||
|
@ -741,9 +741,9 @@ static ResultCode CreateCalendarTime(s64 time, int gmt_offset, CalendarTimeInter
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
static ResultCode ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,
|
||||
CalendarTimeInternal& calendar_time,
|
||||
CalendarAdditionalInfo& calendar_additional_info) {
|
||||
static Result ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,
|
||||
CalendarTimeInternal& calendar_time,
|
||||
CalendarAdditionalInfo& calendar_additional_info) {
|
||||
if ((rules.go_ahead && time < rules.ats[0]) ||
|
||||
(rules.go_back && time > rules.ats[rules.time_count - 1])) {
|
||||
s64 seconds{};
|
||||
|
@ -766,7 +766,7 @@ static ResultCode ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,
|
|||
if (new_time < rules.ats[0] && new_time > rules.ats[rules.time_count - 1]) {
|
||||
return ERROR_TIME_NOT_FOUND;
|
||||
}
|
||||
if (const ResultCode result{
|
||||
if (const Result result{
|
||||
ToCalendarTimeInternal(rules, new_time, calendar_time, calendar_additional_info)};
|
||||
result != ResultSuccess) {
|
||||
return result;
|
||||
|
@ -797,8 +797,8 @@ static ResultCode ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,
|
|||
tti_index = rules.types[low - 1];
|
||||
}
|
||||
|
||||
if (const ResultCode result{CreateCalendarTime(time, rules.ttis[tti_index].gmt_offset,
|
||||
calendar_time, calendar_additional_info)};
|
||||
if (const Result result{CreateCalendarTime(time, rules.ttis[tti_index].gmt_offset,
|
||||
calendar_time, calendar_additional_info)};
|
||||
result != ResultSuccess) {
|
||||
return result;
|
||||
}
|
||||
|
@ -811,9 +811,9 @@ static ResultCode ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
static ResultCode ToCalendarTimeImpl(const TimeZoneRule& rules, s64 time, CalendarInfo& calendar) {
|
||||
static Result ToCalendarTimeImpl(const TimeZoneRule& rules, s64 time, CalendarInfo& calendar) {
|
||||
CalendarTimeInternal calendar_time{};
|
||||
const ResultCode result{
|
||||
const Result result{
|
||||
ToCalendarTimeInternal(rules, time, calendar_time, calendar.additional_info)};
|
||||
calendar.time.year = static_cast<s16>(calendar_time.year);
|
||||
|
||||
|
@ -830,13 +830,13 @@ static ResultCode ToCalendarTimeImpl(const TimeZoneRule& rules, s64 time, Calend
|
|||
TimeZoneManager::TimeZoneManager() = default;
|
||||
TimeZoneManager::~TimeZoneManager() = default;
|
||||
|
||||
ResultCode TimeZoneManager::ToCalendarTime(const TimeZoneRule& rules, s64 time,
|
||||
CalendarInfo& calendar) const {
|
||||
Result TimeZoneManager::ToCalendarTime(const TimeZoneRule& rules, s64 time,
|
||||
CalendarInfo& calendar) const {
|
||||
return ToCalendarTimeImpl(rules, time, calendar);
|
||||
}
|
||||
|
||||
ResultCode TimeZoneManager::SetDeviceLocationNameWithTimeZoneRule(const std::string& location_name,
|
||||
FileSys::VirtualFile& vfs_file) {
|
||||
Result TimeZoneManager::SetDeviceLocationNameWithTimeZoneRule(const std::string& location_name,
|
||||
FileSys::VirtualFile& vfs_file) {
|
||||
TimeZoneRule rule{};
|
||||
if (ParseTimeZoneBinary(rule, vfs_file)) {
|
||||
device_location_name = location_name;
|
||||
|
@ -846,12 +846,12 @@ ResultCode TimeZoneManager::SetDeviceLocationNameWithTimeZoneRule(const std::str
|
|||
return ERROR_TIME_ZONE_CONVERSION_FAILED;
|
||||
}
|
||||
|
||||
ResultCode TimeZoneManager::SetUpdatedTime(const Clock::SteadyClockTimePoint& value) {
|
||||
Result TimeZoneManager::SetUpdatedTime(const Clock::SteadyClockTimePoint& value) {
|
||||
time_zone_update_time_point = value;
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode TimeZoneManager::ToCalendarTimeWithMyRules(s64 time, CalendarInfo& calendar) const {
|
||||
Result TimeZoneManager::ToCalendarTimeWithMyRules(s64 time, CalendarInfo& calendar) const {
|
||||
if (is_initialized) {
|
||||
return ToCalendarTime(time_zone_rule, time, calendar);
|
||||
} else {
|
||||
|
@ -859,16 +859,16 @@ ResultCode TimeZoneManager::ToCalendarTimeWithMyRules(s64 time, CalendarInfo& ca
|
|||
}
|
||||
}
|
||||
|
||||
ResultCode TimeZoneManager::ParseTimeZoneRuleBinary(TimeZoneRule& rules,
|
||||
FileSys::VirtualFile& vfs_file) const {
|
||||
Result TimeZoneManager::ParseTimeZoneRuleBinary(TimeZoneRule& rules,
|
||||
FileSys::VirtualFile& vfs_file) const {
|
||||
if (!ParseTimeZoneBinary(rules, vfs_file)) {
|
||||
return ERROR_TIME_ZONE_CONVERSION_FAILED;
|
||||
}
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode TimeZoneManager::ToPosixTime(const TimeZoneRule& rules,
|
||||
const CalendarTime& calendar_time, s64& posix_time) const {
|
||||
Result TimeZoneManager::ToPosixTime(const TimeZoneRule& rules, const CalendarTime& calendar_time,
|
||||
s64& posix_time) const {
|
||||
posix_time = 0;
|
||||
|
||||
CalendarTimeInternal internal_time{
|
||||
|
@ -1020,8 +1020,8 @@ ResultCode TimeZoneManager::ToPosixTime(const TimeZoneRule& rules,
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
ResultCode TimeZoneManager::ToPosixTimeWithMyRule(const CalendarTime& calendar_time,
|
||||
s64& posix_time) const {
|
||||
Result TimeZoneManager::ToPosixTimeWithMyRule(const CalendarTime& calendar_time,
|
||||
s64& posix_time) const {
|
||||
if (is_initialized) {
|
||||
return ToPosixTime(time_zone_rule, calendar_time, posix_time);
|
||||
}
|
||||
|
@ -1029,7 +1029,7 @@ ResultCode TimeZoneManager::ToPosixTimeWithMyRule(const CalendarTime& calendar_t
|
|||
return ERROR_UNINITIALIZED_CLOCK;
|
||||
}
|
||||
|
||||
ResultCode TimeZoneManager::GetDeviceLocationName(LocationName& value) const {
|
||||
Result TimeZoneManager::GetDeviceLocationName(LocationName& value) const {
|
||||
if (!is_initialized) {
|
||||
return ERROR_UNINITIALIZED_CLOCK;
|
||||
}
|
||||
|
|
|
@ -29,16 +29,16 @@ public:
|
|||
is_initialized = true;
|
||||
}
|
||||
|
||||
ResultCode SetDeviceLocationNameWithTimeZoneRule(const std::string& location_name,
|
||||
FileSys::VirtualFile& vfs_file);
|
||||
ResultCode SetUpdatedTime(const Clock::SteadyClockTimePoint& value);
|
||||
ResultCode GetDeviceLocationName(TimeZone::LocationName& value) const;
|
||||
ResultCode ToCalendarTime(const TimeZoneRule& rules, s64 time, CalendarInfo& calendar) const;
|
||||
ResultCode ToCalendarTimeWithMyRules(s64 time, CalendarInfo& calendar) const;
|
||||
ResultCode ParseTimeZoneRuleBinary(TimeZoneRule& rules, FileSys::VirtualFile& vfs_file) const;
|
||||
ResultCode ToPosixTime(const TimeZoneRule& rules, const CalendarTime& calendar_time,
|
||||
s64& posix_time) const;
|
||||
ResultCode ToPosixTimeWithMyRule(const CalendarTime& calendar_time, s64& posix_time) const;
|
||||
Result SetDeviceLocationNameWithTimeZoneRule(const std::string& location_name,
|
||||
FileSys::VirtualFile& vfs_file);
|
||||
Result SetUpdatedTime(const Clock::SteadyClockTimePoint& value);
|
||||
Result GetDeviceLocationName(TimeZone::LocationName& value) const;
|
||||
Result ToCalendarTime(const TimeZoneRule& rules, s64 time, CalendarInfo& calendar) const;
|
||||
Result ToCalendarTimeWithMyRules(s64 time, CalendarInfo& calendar) const;
|
||||
Result ParseTimeZoneRuleBinary(TimeZoneRule& rules, FileSys::VirtualFile& vfs_file) const;
|
||||
Result ToPosixTime(const TimeZoneRule& rules, const CalendarTime& calendar_time,
|
||||
s64& posix_time) const;
|
||||
Result ToPosixTimeWithMyRule(const CalendarTime& calendar_time, s64& posix_time) const;
|
||||
|
||||
private:
|
||||
bool is_initialized{};
|
||||
|
|
|
@ -32,7 +32,7 @@ void ITimeZoneService::GetDeviceLocationName(Kernel::HLERequestContext& ctx) {
|
|||
LOG_DEBUG(Service_Time, "called");
|
||||
|
||||
TimeZone::LocationName location_name{};
|
||||
if (const ResultCode result{
|
||||
if (const Result result{
|
||||
time_zone_content_manager.GetTimeZoneManager().GetDeviceLocationName(location_name)};
|
||||
result != ResultSuccess) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
|
@ -61,7 +61,7 @@ void ITimeZoneService::LoadTimeZoneRule(Kernel::HLERequestContext& ctx) {
|
|||
LOG_DEBUG(Service_Time, "called, location_name={}", location_name);
|
||||
|
||||
TimeZone::TimeZoneRule time_zone_rule{};
|
||||
if (const ResultCode result{
|
||||
if (const Result result{
|
||||
time_zone_content_manager.LoadTimeZoneRule(time_zone_rule, location_name)};
|
||||
result != ResultSuccess) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
|
@ -88,7 +88,7 @@ void ITimeZoneService::ToCalendarTime(Kernel::HLERequestContext& ctx) {
|
|||
std::memcpy(&time_zone_rule, buffer.data(), buffer.size());
|
||||
|
||||
TimeZone::CalendarInfo calendar_info{};
|
||||
if (const ResultCode result{time_zone_content_manager.GetTimeZoneManager().ToCalendarTime(
|
||||
if (const Result result{time_zone_content_manager.GetTimeZoneManager().ToCalendarTime(
|
||||
time_zone_rule, posix_time, calendar_info)};
|
||||
result != ResultSuccess) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
|
@ -108,7 +108,7 @@ void ITimeZoneService::ToCalendarTimeWithMyRule(Kernel::HLERequestContext& ctx)
|
|||
LOG_DEBUG(Service_Time, "called, posix_time=0x{:016X}", posix_time);
|
||||
|
||||
TimeZone::CalendarInfo calendar_info{};
|
||||
if (const ResultCode result{
|
||||
if (const Result result{
|
||||
time_zone_content_manager.GetTimeZoneManager().ToCalendarTimeWithMyRules(
|
||||
posix_time, calendar_info)};
|
||||
result != ResultSuccess) {
|
||||
|
@ -131,7 +131,7 @@ void ITimeZoneService::ToPosixTime(Kernel::HLERequestContext& ctx) {
|
|||
std::memcpy(&time_zone_rule, ctx.ReadBuffer().data(), sizeof(TimeZone::TimeZoneRule));
|
||||
|
||||
s64 posix_time{};
|
||||
if (const ResultCode result{time_zone_content_manager.GetTimeZoneManager().ToPosixTime(
|
||||
if (const Result result{time_zone_content_manager.GetTimeZoneManager().ToPosixTime(
|
||||
time_zone_rule, calendar_time, posix_time)};
|
||||
result != ResultSuccess) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
|
@ -154,9 +154,8 @@ void ITimeZoneService::ToPosixTimeWithMyRule(Kernel::HLERequestContext& ctx) {
|
|||
const auto calendar_time{rp.PopRaw<TimeZone::CalendarTime>()};
|
||||
|
||||
s64 posix_time{};
|
||||
if (const ResultCode result{
|
||||
time_zone_content_manager.GetTimeZoneManager().ToPosixTimeWithMyRule(calendar_time,
|
||||
posix_time)};
|
||||
if (const Result result{time_zone_content_manager.GetTimeZoneManager().ToPosixTimeWithMyRule(
|
||||
calendar_time, posix_time)};
|
||||
result != ResultSuccess) {
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
rb.Push(result);
|
||||
|
|
|
@ -34,10 +34,10 @@
|
|||
|
||||
namespace Service::VI {
|
||||
|
||||
constexpr ResultCode ERR_OPERATION_FAILED{ErrorModule::VI, 1};
|
||||
constexpr ResultCode ERR_PERMISSION_DENIED{ErrorModule::VI, 5};
|
||||
constexpr ResultCode ERR_UNSUPPORTED{ErrorModule::VI, 6};
|
||||
constexpr ResultCode ERR_NOT_FOUND{ErrorModule::VI, 7};
|
||||
constexpr Result ERR_OPERATION_FAILED{ErrorModule::VI, 1};
|
||||
constexpr Result ERR_PERMISSION_DENIED{ErrorModule::VI, 5};
|
||||
constexpr Result ERR_UNSUPPORTED{ErrorModule::VI, 6};
|
||||
constexpr Result ERR_NOT_FOUND{ErrorModule::VI, 7};
|
||||
|
||||
struct DisplayInfo {
|
||||
/// The name of this particular display.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue