From 3859799a8c7183d0bee5776ecc580e81003a98b6 Mon Sep 17 00:00:00 2001 From: Pavel Barabanov Date: Tue, 17 Jun 2025 22:17:03 +0300 Subject: [PATCH] mig, bcat, svc --- src/core/hle/kernel/svc_types.h | 6 ++- src/core/hle/service/bcat/bcat_service.cpp | 4 +- src/core/hle/service/mig/mig.cpp | 47 +++++++++++++++++----- 3 files changed, 43 insertions(+), 14 deletions(-) diff --git a/src/core/hle/kernel/svc_types.h b/src/core/hle/kernel/svc_types.h index d02548ba73..4a2fe8b87e 100644 --- a/src/core/hle/kernel/svc_types.h +++ b/src/core/hle/kernel/svc_types.h @@ -153,7 +153,8 @@ enum class InfoType : u32 { ThreadTickCount = 25, IsSvcPermitted = 26, IoRegionHint = 27, - AliasRegionExtraSize = 28, + AliasRegionExtraSize = 28, + TransferMemoryHint = 34, MesosphereMeta = 65000, MesosphereCurrentProcess = 65001, @@ -643,6 +644,9 @@ enum class CreateProcessFlag : u32 { // 11.x+ DisableDeviceAddressSpaceMerge. DisableDeviceAddressSpaceMerge = (1 << 12), + EnableAliasRegionExtraSize = (1 << 13), + PreventCodeReads = (1 << 14), + // Mask of all flags. All = Is64Bit | AddressSpaceMask | EnableDebug | EnableAslr | IsApplication | PoolPartitionMask | OptimizeMemoryAllocation | DisableDeviceAddressSpaceMerge, diff --git a/src/core/hle/service/bcat/bcat_service.cpp b/src/core/hle/service/bcat/bcat_service.cpp index 63b1072d2a..98aa14d964 100644 --- a/src/core/hle/service/bcat/bcat_service.cpp +++ b/src/core/hle/service/bcat/bcat_service.cpp @@ -49,12 +49,12 @@ IBcatService::IBcatService(Core::System& system_, BcatBackend& backend_) {30210, nullptr, "SetDeliveryTaskTimer"}, {30300, D<&IBcatService::RegisterSystemApplicationDeliveryTasks>, "RegisterSystemApplicationDeliveryTasks"}, {90100, nullptr, "EnumerateBackgroundDeliveryTask"}, - {90101, nullptr, "Unknown90101"}, + {90101, nullptr, "GetDeliveryTaskListForSystem"}, {90200, nullptr, "GetDeliveryList"}, {90201, D<&IBcatService::ClearDeliveryCacheStorage>, "ClearDeliveryCacheStorage"}, {90202, nullptr, "ClearDeliveryTaskSubscriptionStatus"}, {90300, nullptr, "GetPushNotificationLog"}, - {90301, nullptr, "Unknown90301"}, + {90301, nullptr, "GetDeliveryCacheStorageUsage"}, }; // clang-format on RegisterHandlers(functions); diff --git a/src/core/hle/service/mig/mig.cpp b/src/core/hle/service/mig/mig.cpp index 082e470aba..692b417b25 100644 --- a/src/core/hle/service/mig/mig.cpp +++ b/src/core/hle/service/mig/mig.cpp @@ -14,17 +14,42 @@ public: explicit MIG_USR(Core::System& system_) : ServiceFramework{system_, "mig:usr"} { // clang-format off static const FunctionInfo functions[] = { - {10, nullptr, "TryGetLastMigrationInfo"}, - {100, nullptr, "CreateServer"}, - {101, nullptr, "ResumeServer"}, - {200, nullptr, "CreateClient"}, - {201, nullptr, "ResumeClient"}, - {1001, nullptr, "Unknown1001"}, - {1010, nullptr, "Unknown1010"}, - {1100, nullptr, "Unknown1100"}, - {1101, nullptr, "Unknown1101"}, - {1200, nullptr, "Unknown1200"}, - {1201, nullptr, "Unknown1201"} + {0, nullptr, "Unknown0"}, // 19.0.0+ + {1, nullptr, "Unknown1"}, // 20.0.0+ + {2, nullptr, "Unknown2"}, // 20.0.0+ + {10, nullptr, "TryGetLastUserMigrationInfo"}, // 7.0.0-19.0.1 (was TryGetLastMigrationInfo in 4.0.0-6.2.0) + {11, nullptr, "Unknown11"}, // 20.0.0+ + {100, nullptr, "CreateUserMigrationServer"}, // 7.0.0+ (was CreateServer in 4.0.0-6.2.0) + {101, nullptr, "ResumeUserMigrationServer"}, // 7.0.0+ (was ResumeServer in 4.0.0-6.2.0) + {200, nullptr, "CreateUserMigrationClient"}, // 7.0.0+ (was CreateClient in 4.0.0-6.2.0) + {201, nullptr, "ResumeUserMigrationClient"}, // 7.0.0+ (was ResumeClient in 4.0.0-6.2.0) + {1001, nullptr, "GetSaveDataMigrationPolicyInfoAsync"}, // 8.0.0+ + {1010, nullptr, "TryGetLastSaveDataMigrationInfo"}, // 7.0.0+ + {1100, nullptr, "CreateSaveDataMigrationServer"}, // 7.0.0-19.0.1 + {1101, nullptr, "ResumeSaveDataMigrationServer"}, // 7.0.0+ + {1110, nullptr, "Unknown1110"}, // 17.0.0+ + {1200, nullptr, "CreateSaveDataMigrationClient"}, // 7.0.0+ + {1201, nullptr, "ResumeSaveDataMigrationClient"}, // 7.0.0+ + {2001, nullptr, "Unknown2001"}, // 20.0.0+ + {2010, nullptr, "Unknown2010"}, // 20.0.0+ + {2100, nullptr, "Unknown2100"}, // 20.0.0+ + {2110, nullptr, "Unknown2110"}, // 20.0.0+ + {2200, nullptr, "Unknown2200"}, // 20.0.0+ + {2210, nullptr, "Unknown2210"}, // 20.0.0+ + {2220, nullptr, "Unknown2220"}, // 20.0.0+ + {2230, nullptr, "Unknown2230"}, // 20.0.0+ + {2231, nullptr, "Unknown2231"}, // 20.0.0+ + {2232, nullptr, "Unknown2232"}, // 20.0.0+ + {2233, nullptr, "Unknown2233"}, // 20.0.0+ + {2234, nullptr, "Unknown2234"}, // 20.0.0+ + {2250, nullptr, "Unknown2250"}, // 20.0.0+ + {2260, nullptr, "Unknown2260"}, // 20.0.0+ + {2270, nullptr, "Unknown2270"}, // 20.0.0+ + {2280, nullptr, "Unknown2280"}, // 20.0.0+ + {2300, nullptr, "Unknown2300"}, // 20.0.0+ + {2310, nullptr, "Unknown2310"}, // 20.0.0+ + {2400, nullptr, "Unknown2400"}, // 20.0.0+ + {2420, nullptr, "Unknown2420"} // 20.0.0+ }; // clang-format on