Преглед изворни кода

Merge pull request #8544 from german77/14dot0

service: Update some services to 14.0.0+
bunnei пре 4 година
родитељ
комит
a5bdf824e6

+ 10 - 10
src/core/hle/service/acc/acc.cpp

@@ -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);

+ 5 - 6
src/core/hle/service/acc/profile_manager.cpp

@@ -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;

+ 7 - 8
src/core/hle/service/acc/profile_manager.h

@@ -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();

+ 3 - 0
src/core/hle/service/am/am.cpp

@@ -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"},

+ 2 - 2
src/core/hle/service/bcat/bcat_module.cpp

@@ -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"},

+ 5 - 0
src/core/hle/service/btdrv/btdrv.cpp

@@ -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"},

+ 6 - 2
src/core/hle/service/btm/btm.cpp

@@ -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
 

+ 7 - 1
src/core/hle/service/fatal/fatal_p.cpp

@@ -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;