Merge pull request #8544 from german77/14dot0
service: Update some services to 14.0.0+
This commit is contained in:
		| @@ -290,7 +290,7 @@ protected: | ||||
|     void Get(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ACC, "called user_id=0x{}", user_id.RawString()); | ||||
|         ProfileBase profile_base{}; | ||||
|         ProfileData data{}; | ||||
|         UserData data{}; | ||||
|         if (profile_manager.GetProfileBaseAndData(user_id, profile_base, data)) { | ||||
|             ctx.WriteBuffer(data); | ||||
|             IPC::ResponseBuilder rb{ctx, 16}; | ||||
| @@ -373,18 +373,18 @@ protected: | ||||
|                       reinterpret_cast<const char*>(base.username.data()), base.username.size()), | ||||
|                   base.timestamp, base.user_uuid.RawString()); | ||||
|  | ||||
|         if (user_data.size() < sizeof(ProfileData)) { | ||||
|             LOG_ERROR(Service_ACC, "ProfileData buffer too small!"); | ||||
|         if (user_data.size() < sizeof(UserData)) { | ||||
|             LOG_ERROR(Service_ACC, "UserData buffer too small!"); | ||||
|             IPC::ResponseBuilder rb{ctx, 2}; | ||||
|             rb.Push(ERR_INVALID_BUFFER); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         ProfileData data; | ||||
|         std::memcpy(&data, user_data.data(), sizeof(ProfileData)); | ||||
|         UserData data; | ||||
|         std::memcpy(&data, user_data.data(), sizeof(UserData)); | ||||
|  | ||||
|         if (!profile_manager.SetProfileBaseAndData(user_id, base, data)) { | ||||
|             LOG_ERROR(Service_ACC, "Failed to update profile data and base!"); | ||||
|             LOG_ERROR(Service_ACC, "Failed to update user data and base!"); | ||||
|             IPC::ResponseBuilder rb{ctx, 2}; | ||||
|             rb.Push(ERR_FAILED_SAVE_DATA); | ||||
|             return; | ||||
| @@ -406,15 +406,15 @@ protected: | ||||
|                       reinterpret_cast<const char*>(base.username.data()), base.username.size()), | ||||
|                   base.timestamp, base.user_uuid.RawString()); | ||||
|  | ||||
|         if (user_data.size() < sizeof(ProfileData)) { | ||||
|             LOG_ERROR(Service_ACC, "ProfileData buffer too small!"); | ||||
|         if (user_data.size() < sizeof(UserData)) { | ||||
|             LOG_ERROR(Service_ACC, "UserData buffer too small!"); | ||||
|             IPC::ResponseBuilder rb{ctx, 2}; | ||||
|             rb.Push(ERR_INVALID_BUFFER); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         ProfileData data; | ||||
|         std::memcpy(&data, user_data.data(), sizeof(ProfileData)); | ||||
|         UserData data; | ||||
|         std::memcpy(&data, user_data.data(), sizeof(UserData)); | ||||
|  | ||||
|         Common::FS::IOFile image(GetImagePath(user_id), Common::FS::FileAccessMode::Write, | ||||
|                                  Common::FS::FileType::BinaryFile); | ||||
|   | ||||
| @@ -22,7 +22,7 @@ struct UserRaw { | ||||
|     UUID uuid2{}; | ||||
|     u64 timestamp{}; | ||||
|     ProfileUsername username{}; | ||||
|     ProfileData extra_data{}; | ||||
|     UserData extra_data{}; | ||||
| }; | ||||
| static_assert(sizeof(UserRaw) == 0xC8, "UserRaw has incorrect size."); | ||||
|  | ||||
| @@ -263,7 +263,7 @@ UUID ProfileManager::GetLastOpenedUser() const { | ||||
|  | ||||
| /// Return the users profile base and the unknown arbitary data. | ||||
| bool ProfileManager::GetProfileBaseAndData(std::optional<std::size_t> index, ProfileBase& profile, | ||||
|                                            ProfileData& data) const { | ||||
|                                            UserData& data) const { | ||||
|     if (GetProfileBase(index, profile)) { | ||||
|         data = profiles[*index].data; | ||||
|         return true; | ||||
| @@ -272,15 +272,14 @@ bool ProfileManager::GetProfileBaseAndData(std::optional<std::size_t> index, Pro | ||||
| } | ||||
|  | ||||
| /// Return the users profile base and the unknown arbitary data. | ||||
| bool ProfileManager::GetProfileBaseAndData(UUID uuid, ProfileBase& profile, | ||||
|                                            ProfileData& data) const { | ||||
| bool ProfileManager::GetProfileBaseAndData(UUID uuid, ProfileBase& profile, UserData& data) const { | ||||
|     const auto idx = GetUserIndex(uuid); | ||||
|     return GetProfileBaseAndData(idx, profile, data); | ||||
| } | ||||
|  | ||||
| /// Return the users profile base and the unknown arbitary data. | ||||
| bool ProfileManager::GetProfileBaseAndData(const ProfileInfo& user, ProfileBase& profile, | ||||
|                                            ProfileData& data) const { | ||||
|                                            UserData& data) const { | ||||
|     return GetProfileBaseAndData(user.user_uuid, profile, data); | ||||
| } | ||||
|  | ||||
| @@ -318,7 +317,7 @@ bool ProfileManager::SetProfileBase(UUID uuid, const ProfileBase& profile_new) { | ||||
| } | ||||
|  | ||||
| bool ProfileManager::SetProfileBaseAndData(Common::UUID uuid, const ProfileBase& profile_new, | ||||
|                                            const ProfileData& data_new) { | ||||
|                                            const UserData& data_new) { | ||||
|     const auto index = GetUserIndex(uuid); | ||||
|     if (index.has_value() && SetProfileBase(uuid, profile_new)) { | ||||
|         profiles[*index].data = data_new; | ||||
|   | ||||
| @@ -22,7 +22,7 @@ using UserIDArray = std::array<Common::UUID, MAX_USERS>; | ||||
|  | ||||
| /// Contains extra data related to a user. | ||||
| /// TODO: RE this structure | ||||
| struct ProfileData { | ||||
| struct UserData { | ||||
|     INSERT_PADDING_WORDS_NOINIT(1); | ||||
|     u32 icon_id; | ||||
|     u8 bg_color_id; | ||||
| @@ -30,7 +30,7 @@ struct ProfileData { | ||||
|     INSERT_PADDING_BYTES_NOINIT(0x10); | ||||
|     INSERT_PADDING_BYTES_NOINIT(0x60); | ||||
| }; | ||||
| static_assert(sizeof(ProfileData) == 0x80, "ProfileData structure has incorrect size"); | ||||
| static_assert(sizeof(UserData) == 0x80, "UserData structure has incorrect size"); | ||||
|  | ||||
| /// This holds general information about a users profile. This is where we store all the information | ||||
| /// based on a specific user | ||||
| @@ -38,7 +38,7 @@ struct ProfileInfo { | ||||
|     Common::UUID user_uuid{}; | ||||
|     ProfileUsername username{}; | ||||
|     u64 creation_time{}; | ||||
|     ProfileData data{}; // TODO(ognik): Work out what this is | ||||
|     UserData data{}; // TODO(ognik): Work out what this is | ||||
|     bool is_open{}; | ||||
| }; | ||||
|  | ||||
| @@ -74,10 +74,9 @@ public: | ||||
|     bool GetProfileBase(Common::UUID uuid, ProfileBase& profile) const; | ||||
|     bool GetProfileBase(const ProfileInfo& user, ProfileBase& profile) const; | ||||
|     bool GetProfileBaseAndData(std::optional<std::size_t> index, ProfileBase& profile, | ||||
|                                ProfileData& data) const; | ||||
|     bool GetProfileBaseAndData(Common::UUID uuid, ProfileBase& profile, ProfileData& data) const; | ||||
|     bool GetProfileBaseAndData(const ProfileInfo& user, ProfileBase& profile, | ||||
|                                ProfileData& data) const; | ||||
|                                UserData& data) const; | ||||
|     bool GetProfileBaseAndData(Common::UUID uuid, ProfileBase& profile, UserData& data) const; | ||||
|     bool GetProfileBaseAndData(const ProfileInfo& user, ProfileBase& profile, UserData& data) const; | ||||
|     std::size_t GetUserCount() const; | ||||
|     std::size_t GetOpenUserCount() const; | ||||
|     bool UserExists(Common::UUID uuid) const; | ||||
| @@ -93,7 +92,7 @@ public: | ||||
|     bool RemoveUser(Common::UUID uuid); | ||||
|     bool SetProfileBase(Common::UUID uuid, const ProfileBase& profile_new); | ||||
|     bool SetProfileBaseAndData(Common::UUID uuid, const ProfileBase& profile_new, | ||||
|                                const ProfileData& data_new); | ||||
|                                const UserData& data_new); | ||||
|  | ||||
| private: | ||||
|     void ParseUserSaveFile(); | ||||
|   | ||||
| @@ -238,6 +238,7 @@ IDebugFunctions::IDebugFunctions(Core::System& system_) | ||||
|         {130, nullptr, "FriendInvitationSetApplicationParameter"}, | ||||
|         {131, nullptr, "FriendInvitationClearApplicationParameter"}, | ||||
|         {132, nullptr, "FriendInvitationPushApplicationParameter"}, | ||||
|         {140, nullptr, "RestrictPowerOperationForSecureLaunchModeForDebug"}, | ||||
|         {900, nullptr, "GetGrcProcessLaunchedSystemEvent"}, | ||||
|     }; | ||||
|     // clang-format on | ||||
| @@ -1310,6 +1311,8 @@ IApplicationFunctions::IApplicationFunctions(Core::System& system_) | ||||
|         {33, &IApplicationFunctions::EndBlockingHomeButton, "EndBlockingHomeButton"}, | ||||
|         {34, nullptr, "SelectApplicationLicense"}, | ||||
|         {35, nullptr, "GetDeviceSaveDataSizeMax"}, | ||||
|         {36, nullptr, "GetLimitedApplicationLicense"}, | ||||
|         {37, nullptr, "GetLimitedApplicationLicenseUpgradableEvent"}, | ||||
|         {40, &IApplicationFunctions::NotifyRunning, "NotifyRunning"}, | ||||
|         {50, &IApplicationFunctions::GetPseudoDeviceId, "GetPseudoDeviceId"}, | ||||
|         {60, nullptr, "SetMediaPlaybackStateForApplication"}, | ||||
|   | ||||
| @@ -140,8 +140,8 @@ public: | ||||
|             {20401, nullptr, "UnregisterSystemApplicationDeliveryTask"}, | ||||
|             {20410, nullptr, "SetSystemApplicationDeliveryTaskTimer"}, | ||||
|             {30100, &IBcatService::SetPassphrase, "SetPassphrase"}, | ||||
|             {30101, nullptr, "Unknown"}, | ||||
|             {30102, nullptr, "Unknown2"}, | ||||
|             {30101, nullptr, "Unknown30101"}, | ||||
|             {30102, nullptr, "Unknown30102"}, | ||||
|             {30200, nullptr, "RegisterBackgroundDeliveryTask"}, | ||||
|             {30201, nullptr, "UnregisterBackgroundDeliveryTask"}, | ||||
|             {30202, nullptr, "BlockDeliveryTask"}, | ||||
|   | ||||
| @@ -181,6 +181,11 @@ public: | ||||
|             {147, nullptr, "RegisterAudioControlNotification"}, | ||||
|             {148, nullptr, "SendAudioControlPassthroughCommand"}, | ||||
|             {149, nullptr, "SendAudioControlSetAbsoluteVolumeCommand"}, | ||||
|             {150, nullptr, "AcquireAudioSinkVolumeLocallyChangedEvent"}, | ||||
|             {151, nullptr, "AcquireAudioSinkVolumeUpdateRequestCompletedEvent"}, | ||||
|             {152, nullptr, "GetAudioSinkVolume"}, | ||||
|             {153, nullptr, "RequestUpdateAudioSinkVolume"}, | ||||
|             {154, nullptr, "IsAudioSinkVolumeSupported"}, | ||||
|             {256, nullptr, "IsManufacturingMode"}, | ||||
|             {257, nullptr, "EmulateBluetoothCrash"}, | ||||
|             {258, nullptr, "GetBleChannelMap"}, | ||||
|   | ||||
| @@ -214,8 +214,12 @@ public: | ||||
|             {76, nullptr, "Unknown76"}, | ||||
|             {100, nullptr, "Unknown100"}, | ||||
|             {101, nullptr, "Unknown101"}, | ||||
|             {110, nullptr, "Unknown102"}, | ||||
|             {111, nullptr, "Unknown103"}, | ||||
|             {110, nullptr, "Unknown110"}, | ||||
|             {111, nullptr, "Unknown111"}, | ||||
|             {112, nullptr, "Unknown112"}, | ||||
|             {113, nullptr, "Unknown113"}, | ||||
|             {114, nullptr, "Unknown114"}, | ||||
|             {115, nullptr, "Unknown115"}, | ||||
|         }; | ||||
|         // clang-format on | ||||
|  | ||||
|   | ||||
| @@ -6,7 +6,13 @@ | ||||
| namespace Service::Fatal { | ||||
|  | ||||
| Fatal_P::Fatal_P(std::shared_ptr<Module> module_, Core::System& system_) | ||||
|     : Interface(std::move(module_), system_, "fatal:p") {} | ||||
|     : Interface(std::move(module_), system_, "fatal:p") { | ||||
|     static const FunctionInfo functions[] = { | ||||
|         {0, nullptr, "GetFatalEvent"}, | ||||
|         {10, nullptr, "GetFatalContext"}, | ||||
|     }; | ||||
|     RegisterHandlers(functions); | ||||
| } | ||||
|  | ||||
| Fatal_P::~Fatal_P() = default; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user