diff options
| author | Mary <me@thog.eu> | 2021-04-14 00:01:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-14 00:01:24 +0200 |
| commit | 0746b83edf49d1fd668dd337264e942f361b675c (patch) | |
| tree | 37b71396036206252cdc42715d6a3046ee81c795 /Ryujinx.HLE/HOS/Services/Account | |
| parent | faa654dbaf7cd5262c78c0961a5aa72b1ce8ac33 (diff) | |
Initial support for the new 12.x IPC system (#2182)
* Rename CommandAttribute as CommandHIpcAttribute to prepare for 12.x changes
* Implement inital support for TIPC and adds SM command ids
* *Ipc to *ipc
* Missed a ref in last commit...
* CommandAttributeTIpc to CommandAttributeTipc
* Addresses comment and fixes some bugs around
TIPC doesn't have any padding requirements as buffer C isn't a thing
Fix for RegisterService inverting two argument only on TIPC
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Account')
8 files changed, 61 insertions, 61 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForApplication.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForApplication.cs index 4631815b..62cf79b7 100644 --- a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForApplication.cs +++ b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForApplication.cs @@ -9,21 +9,21 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService _managerServer = new ManagerServer(userId); } - [Command(0)] + [CommandHipc(0)] // CheckAvailability() public ResultCode CheckAvailability(ServiceCtx context) { return _managerServer.CheckAvailability(context); } - [Command(1)] + [CommandHipc(1)] // GetAccountId() -> nn::account::NetworkServiceAccountId public ResultCode GetAccountId(ServiceCtx context) { return _managerServer.GetAccountId(context); } - [Command(2)] + [CommandHipc(2)] // EnsureIdTokenCacheAsync() -> object<nn::account::detail::IAsyncContext> public ResultCode EnsureIdTokenCacheAsync(ServiceCtx context) { @@ -37,21 +37,21 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService return resultCode; } - [Command(3)] + [CommandHipc(3)] // LoadIdTokenCache() -> (u32 id_token_cache_size, buffer<bytes, 6>) public ResultCode LoadIdTokenCache(ServiceCtx context) { return _managerServer.LoadIdTokenCache(context); } - [Command(130)] + [CommandHipc(130)] // GetNintendoAccountUserResourceCacheForApplication() -> (nn::account::NintendoAccountId, nn::account::nas::NasUserBaseForApplication, buffer<bytes, 6>) public ResultCode GetNintendoAccountUserResourceCacheForApplication(ServiceCtx context) { return _managerServer.GetNintendoAccountUserResourceCacheForApplication(context); } - [Command(160)] // 5.0.0+ + [CommandHipc(160)] // 5.0.0+ // StoreOpenContext() public ResultCode StoreOpenContext(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForSystemService.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForSystemService.cs index 57a46666..d054b80b 100644 --- a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForSystemService.cs +++ b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IManagerForSystemService.cs @@ -9,21 +9,21 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService _managerServer = new ManagerServer(userId); } - [Command(0)] + [CommandHipc(0)] // CheckAvailability() public ResultCode CheckAvailability(ServiceCtx context) { return _managerServer.CheckAvailability(context); } - [Command(1)] + [CommandHipc(1)] // GetAccountId() -> nn::account::NetworkServiceAccountId public ResultCode GetAccountId(ServiceCtx context) { return _managerServer.GetAccountId(context); } - [Command(2)] + [CommandHipc(2)] // EnsureIdTokenCacheAsync() -> object<nn::account::detail::IAsyncContext> public ResultCode EnsureIdTokenCacheAsync(ServiceCtx context) { @@ -37,7 +37,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService return resultCode; } - [Command(3)] + [CommandHipc(3)] // LoadIdTokenCache() -> (u32 id_token_cache_size, buffer<bytes, 6>) public ResultCode LoadIdTokenCache(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfile.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfile.cs index c07d90ad..8595f54a 100644 --- a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfile.cs +++ b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfile.cs @@ -9,28 +9,28 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService _profileServer = new ProfileServer(profile); } - [Command(0)] + [CommandHipc(0)] // Get() -> (nn::account::profile::ProfileBase, buffer<nn::account::profile::UserData, 0x1a>) public ResultCode Get(ServiceCtx context) { return _profileServer.Get(context); } - [Command(1)] + [CommandHipc(1)] // GetBase() -> nn::account::profile::ProfileBase public ResultCode GetBase(ServiceCtx context) { return _profileServer.GetBase(context); } - [Command(10)] + [CommandHipc(10)] // GetImageSize() -> u32 public ResultCode GetImageSize(ServiceCtx context) { return _profileServer.GetImageSize(context); } - [Command(11)] + [CommandHipc(11)] // LoadImage() -> (u32, buffer<bytes, 6>) public ResultCode LoadImage(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfileEditor.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfileEditor.cs index 33fef3e1..9ec46750 100644 --- a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfileEditor.cs +++ b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountService/IProfileEditor.cs @@ -9,42 +9,42 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc.AccountService _profileServer = new ProfileServer(profile); } - [Command(0)] + [CommandHipc(0)] // Get() -> (nn::account::profile::ProfileBase, buffer<nn::account::profile::UserData, 0x1a>) public ResultCode Get(ServiceCtx context) { return _profileServer.Get(context); } - [Command(1)] + [CommandHipc(1)] // GetBase() -> nn::account::profile::ProfileBase public ResultCode GetBase(ServiceCtx context) { return _profileServer.GetBase(context); } - [Command(10)] + [CommandHipc(10)] // GetImageSize() -> u32 public ResultCode GetImageSize(ServiceCtx context) { return _profileServer.GetImageSize(context); } - [Command(11)] + [CommandHipc(11)] // LoadImage() -> (u32, buffer<bytes, 6>) public ResultCode LoadImage(ServiceCtx context) { return _profileServer.LoadImage(context); } - [Command(100)] + [CommandHipc(100)] // Store(nn::account::profile::ProfileBase, buffer<nn::account::profile::UserData, 0x19>) public ResultCode Store(ServiceCtx context) { return _profileServer.Store(context); } - [Command(101)] + [CommandHipc(101)] // StoreWithImage(nn::account::profile::ProfileBase, buffer<nn::account::profile::UserData, 0x19>, buffer<bytes, 5>) public ResultCode StoreWithImage(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs index 55119077..cb73dcfe 100644 --- a/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs +++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForAdministrator.cs @@ -14,42 +14,42 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc _applicationServiceServer = new ApplicationServiceServer(serviceFlag); } - [Command(0)] + [CommandHipc(0)] // GetUserCount() -> i32 public ResultCode GetUserCount(ServiceCtx context) { return _applicationServiceServer.GetUserCountImpl(context); } - [Command(1)] + [CommandHipc(1)] // GetUserExistence(nn::account::Uid) -> bool public ResultCode GetUserExistence(ServiceCtx context) { return _applicationServiceServer.GetUserExistenceImpl(context); } - [Command(2)] + [CommandHipc(2)] // ListAllUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListAllUsers(ServiceCtx context) { return _applicationServiceServer.ListAllUsers(context); } - [Command(3)] + [CommandHipc(3)] // ListOpenUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListOpenUsers(ServiceCtx context) { return _applicationServiceServer.ListOpenUsers(context); } - [Command(4)] + [CommandHipc(4)] // GetLastOpenedUser() -> nn::account::Uid public ResultCode GetLastOpenedUser(ServiceCtx context) { return _applicationServiceServer.GetLastOpenedUser(context); } - [Command(5)] + [CommandHipc(5)] // GetProfile(nn::account::Uid) -> object<nn::account::profile::IProfile> public ResultCode GetProfile(ServiceCtx context) { @@ -63,7 +63,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return resultCode; } - [Command(50)] + [CommandHipc(50)] // IsUserRegistrationRequestPermitted(pid) -> bool public ResultCode IsUserRegistrationRequestPermitted(ServiceCtx context) { @@ -72,14 +72,14 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return _applicationServiceServer.IsUserRegistrationRequestPermitted(context); } - [Command(51)] + [CommandHipc(51)] // TrySelectUserWithoutInteraction(bool) -> nn::account::Uid public ResultCode TrySelectUserWithoutInteraction(ServiceCtx context) { return _applicationServiceServer.TrySelectUserWithoutInteraction(context); } - [Command(102)] + [CommandHipc(102)] // GetBaasAccountManagerForSystemService(nn::account::Uid) -> object<nn::account::baas::IManagerForApplication> public ResultCode GetBaasAccountManagerForSystemService(ServiceCtx context) { @@ -98,14 +98,14 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return ResultCode.Success; } - [Command(140)] // 6.0.0+ + [CommandHipc(140)] // 6.0.0+ // ListQualifiedUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListQualifiedUsers(ServiceCtx context) { return _applicationServiceServer.ListQualifiedUsers(context); } - [Command(205)] + [CommandHipc(205)] // GetProfileEditor(nn::account::Uid) -> object<nn::account::profile::IProfileEditor> public ResultCode GetProfileEditor(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs index d2385594..6067dc44 100644 --- a/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs +++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForApplication.cs @@ -15,42 +15,42 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc _applicationServiceServer = new ApplicationServiceServer(serviceFlag); } - [Command(0)] + [CommandHipc(0)] // GetUserCount() -> i32 public ResultCode GetUserCount(ServiceCtx context) { return _applicationServiceServer.GetUserCountImpl(context); } - [Command(1)] + [CommandHipc(1)] // GetUserExistence(nn::account::Uid) -> bool public ResultCode GetUserExistence(ServiceCtx context) { return _applicationServiceServer.GetUserExistenceImpl(context); } - [Command(2)] + [CommandHipc(2)] // ListAllUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListAllUsers(ServiceCtx context) { return _applicationServiceServer.ListAllUsers(context); } - [Command(3)] + [CommandHipc(3)] // ListOpenUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListOpenUsers(ServiceCtx context) { return _applicationServiceServer.ListOpenUsers(context); } - [Command(4)] + [CommandHipc(4)] // GetLastOpenedUser() -> nn::account::Uid public ResultCode GetLastOpenedUser(ServiceCtx context) { return _applicationServiceServer.GetLastOpenedUser(context); } - [Command(5)] + [CommandHipc(5)] // GetProfile(nn::account::Uid) -> object<nn::account::profile::IProfile> public ResultCode GetProfile(ServiceCtx context) { @@ -64,7 +64,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return resultCode; } - [Command(50)] + [CommandHipc(50)] // IsUserRegistrationRequestPermitted(pid) -> bool public ResultCode IsUserRegistrationRequestPermitted(ServiceCtx context) { @@ -72,15 +72,15 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return _applicationServiceServer.IsUserRegistrationRequestPermitted(context); } - [Command(51)] + [CommandHipc(51)] // TrySelectUserWithoutInteraction(bool) -> nn::account::Uid public ResultCode TrySelectUserWithoutInteraction(ServiceCtx context) { return _applicationServiceServer.TrySelectUserWithoutInteraction(context); } - [Command(100)] - [Command(140)] // 6.0.0+ + [CommandHipc(100)] + [CommandHipc(140)] // 6.0.0+ // InitializeApplicationInfo(u64 pid_placeholder, pid) public ResultCode InitializeApplicationInfo(ServiceCtx context) { @@ -105,7 +105,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return ResultCode.Success; } - [Command(101)] + [CommandHipc(101)] // GetBaasAccountManagerForApplication(nn::account::Uid) -> object<nn::account::baas::IManagerForApplication> public ResultCode GetBaasAccountManagerForApplication(ServiceCtx context) { @@ -124,21 +124,21 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return ResultCode.Success; } - [Command(110)] + [CommandHipc(110)] // StoreSaveDataThumbnail(nn::account::Uid, buffer<bytes, 5>) public ResultCode StoreSaveDataThumbnail(ServiceCtx context) { return _applicationServiceServer.StoreSaveDataThumbnail(context); } - [Command(111)] + [CommandHipc(111)] // ClearSaveDataThumbnail(nn::account::Uid) public ResultCode ClearSaveDataThumbnail(ServiceCtx context) { return _applicationServiceServer.ClearSaveDataThumbnail(context); } - [Command(131)] // 6.0.0+ + [CommandHipc(131)] // 6.0.0+ // ListOpenContextStoredUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListOpenContextStoredUsers(ServiceCtx context) { @@ -154,14 +154,14 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return ResultCode.Success; } - [Command(141)] // 6.0.0+ + [CommandHipc(141)] // 6.0.0+ // ListQualifiedUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListQualifiedUsers(ServiceCtx context) { return _applicationServiceServer.ListQualifiedUsers(context); } - [Command(150)] // 6.0.0+ + [CommandHipc(150)] // 6.0.0+ // IsUserAccountSwitchLocked() -> bool public ResultCode IsUserAccountSwitchLocked(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs index d61e0744..934c06fe 100644 --- a/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs +++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IAccountServiceForSystemService.cs @@ -13,42 +13,42 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc _applicationServiceServer = new ApplicationServiceServer(serviceFlag); } - [Command(0)] + [CommandHipc(0)] // GetUserCount() -> i32 public ResultCode GetUserCount(ServiceCtx context) { return _applicationServiceServer.GetUserCountImpl(context); } - [Command(1)] + [CommandHipc(1)] // GetUserExistence(nn::account::Uid) -> bool public ResultCode GetUserExistence(ServiceCtx context) { return _applicationServiceServer.GetUserExistenceImpl(context); } - [Command(2)] + [CommandHipc(2)] // ListAllUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListAllUsers(ServiceCtx context) { return _applicationServiceServer.ListAllUsers(context); } - [Command(3)] + [CommandHipc(3)] // ListOpenUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListOpenUsers(ServiceCtx context) { return _applicationServiceServer.ListOpenUsers(context); } - [Command(4)] + [CommandHipc(4)] // GetLastOpenedUser() -> nn::account::Uid public ResultCode GetLastOpenedUser(ServiceCtx context) { return _applicationServiceServer.GetLastOpenedUser(context); } - [Command(5)] + [CommandHipc(5)] // GetProfile(nn::account::Uid) -> object<nn::account::profile::IProfile> public ResultCode GetProfile(ServiceCtx context) { @@ -62,7 +62,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return resultCode; } - [Command(50)] + [CommandHipc(50)] // IsUserRegistrationRequestPermitted(pid) -> bool public ResultCode IsUserRegistrationRequestPermitted(ServiceCtx context) { @@ -71,14 +71,14 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return _applicationServiceServer.IsUserRegistrationRequestPermitted(context); } - [Command(51)] + [CommandHipc(51)] // TrySelectUserWithoutInteraction(bool) -> nn::account::Uid public ResultCode TrySelectUserWithoutInteraction(ServiceCtx context) { return _applicationServiceServer.TrySelectUserWithoutInteraction(context); } - [Command(102)] + [CommandHipc(102)] // GetBaasAccountManagerForSystemService(nn::account::Uid) -> object<nn::account::baas::IManagerForApplication> public ResultCode GetBaasAccountManagerForSystemService(ServiceCtx context) { @@ -97,7 +97,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return ResultCode.Success; } - [Command(140)] // 6.0.0+ + [CommandHipc(140)] // 6.0.0+ // ListQualifiedUsers() -> array<nn::account::Uid, 0xa> public ResultCode ListQualifiedUsers(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncContext.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncContext.cs index 1bbe24f1..06037f9e 100644 --- a/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncContext.cs +++ b/Ryujinx.HLE/HOS/Services/Account/Acc/IAsyncContext.cs @@ -14,7 +14,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc _asyncExecution = asyncExecution; } - [Command(0)] + [CommandHipc(0)] // GetSystemEvent() -> handle<copy> public ResultCode GetSystemEvent(ServiceCtx context) { @@ -28,7 +28,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return ResultCode.Success; } - [Command(1)] + [CommandHipc(1)] // Cancel() public ResultCode Cancel(ServiceCtx context) { @@ -45,7 +45,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return ResultCode.Success; } - [Command(2)] + [CommandHipc(2)] // HasDone() -> b8 public ResultCode HasDone(ServiceCtx context) { @@ -59,7 +59,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc return ResultCode.Success; } - [Command(3)] + [CommandHipc(3)] // GetResult() public ResultCode GetResult(ServiceCtx context) { |
