From 0746b83edf49d1fd668dd337264e942f361b675c Mon Sep 17 00:00:00 2001 From: Mary Date: Wed, 14 Apr 2021 00:01:24 +0200 Subject: 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 --- .../IManagerDisplayService.cs | 10 +++---- .../ISystemDisplayService.cs | 8 ++--- .../Vi/RootService/IApplicationDisplayService.cs | 34 +++++++++++----------- 3 files changed, 26 insertions(+), 26 deletions(-) (limited to 'Ryujinx.HLE/HOS/Services/Vi/RootService') diff --git a/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs index 4d3bef50..6cc103a0 100644 --- a/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs +++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/IManagerDisplayService.cs @@ -11,7 +11,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService _applicationDisplayService = applicationDisplayService; } - [Command(2010)] + [CommandHipc(2010)] // CreateManagedLayer(u32, u64, nn::applet::AppletResourceUserId) -> u64 public ResultCode CreateManagedLayer(ServiceCtx context) { @@ -29,7 +29,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService return ResultCode.Success; } - [Command(2011)] + [CommandHipc(2011)] // DestroyManagedLayer(u64) public ResultCode DestroyManagedLayer(ServiceCtx context) { @@ -40,14 +40,14 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService return ResultCode.Success; } - [Command(2012)] // 7.0.0+ + [CommandHipc(2012)] // 7.0.0+ // CreateStrayLayer(u32, u64) -> (u64, u64, buffer) public ResultCode CreateStrayLayer(ServiceCtx context) { return _applicationDisplayService.CreateStrayLayer(context); } - [Command(6000)] + [CommandHipc(6000)] // AddToLayerStack(u32, u64) public ResultCode AddToLayerStack(ServiceCtx context) { @@ -56,7 +56,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService return ResultCode.Success; } - [Command(6002)] + [CommandHipc(6002)] // SetLayerVisibility(b8, u64) public ResultCode SetLayerVisibility(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs index 36f220c6..e82099b1 100644 --- a/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs +++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/ApplicationDisplayService/ISystemDisplayService.cs @@ -11,7 +11,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService _applicationDisplayService = applicationDisplayService; } - [Command(2205)] + [CommandHipc(2205)] // SetLayerZ(u64, u64) public ResultCode SetLayerZ(ServiceCtx context) { @@ -20,7 +20,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService return ResultCode.Success; } - [Command(2207)] + [CommandHipc(2207)] // SetLayerVisibility(b8, u64) public ResultCode SetLayerVisibility(ServiceCtx context) { @@ -29,7 +29,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService return ResultCode.Success; } - [Command(2312)] // 1.0.0-6.2.0 + [CommandHipc(2312)] // 1.0.0-6.2.0 // CreateStrayLayer(u32, u64) -> (u64, u64, buffer) public ResultCode CreateStrayLayer(ServiceCtx context) { @@ -38,7 +38,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService return _applicationDisplayService.CreateStrayLayer(context); } - [Command(3200)] + [CommandHipc(3200)] // GetDisplayMode(u64) -> nn::vi::DisplayModeInfo public ResultCode GetDisplayMode(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs b/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs index 1620ef21..37e603dc 100644 --- a/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs +++ b/Ryujinx.HLE/HOS/Services/Vi/RootService/IApplicationDisplayService.cs @@ -21,7 +21,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService _displays = new IdDictionary(); } - [Command(100)] + [CommandHipc(100)] // GetRelayService() -> object public ResultCode GetRelayService(ServiceCtx context) { @@ -30,7 +30,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(101)] + [CommandHipc(101)] // GetSystemDisplayService() -> object public ResultCode GetSystemDisplayService(ServiceCtx context) { @@ -39,7 +39,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(102)] + [CommandHipc(102)] // GetManagerDisplayService() -> object public ResultCode GetManagerDisplayService(ServiceCtx context) { @@ -48,7 +48,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(103)] // 2.0.0+ + [CommandHipc(103)] // 2.0.0+ // GetIndirectDisplayTransactionService() -> object public ResultCode GetIndirectDisplayTransactionService(ServiceCtx context) { @@ -57,7 +57,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(1000)] + [CommandHipc(1000)] // ListDisplays() -> (u64, buffer) public ResultCode ListDisplays(ServiceCtx context) { @@ -77,7 +77,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(1010)] + [CommandHipc(1010)] // OpenDisplay(nn::vi::DisplayName) -> u64 public ResultCode OpenDisplay(ServiceCtx context) { @@ -90,7 +90,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(1020)] + [CommandHipc(1020)] // CloseDisplay(u64) public ResultCode CloseDisplay(ServiceCtx context) { @@ -101,7 +101,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(1102)] + [CommandHipc(1102)] // GetDisplayResolution(u64) -> (u64, u64) public ResultCode GetDisplayResolution(ServiceCtx context) { @@ -113,7 +113,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(2020)] + [CommandHipc(2020)] // OpenLayer(nn::vi::DisplayName, u64, nn::applet::AppletResourceUserId, pid) -> (u64, buffer) public ResultCode OpenLayer(ServiceCtx context) { @@ -141,7 +141,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(2021)] + [CommandHipc(2021)] // CloseLayer(u64) public ResultCode CloseLayer(ServiceCtx context) { @@ -152,7 +152,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(2030)] + [CommandHipc(2030)] // CreateStrayLayer(u32, u64) -> (u64, u64, buffer) public ResultCode CreateStrayLayer(ServiceCtx context) { @@ -182,7 +182,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(2031)] + [CommandHipc(2031)] // DestroyStrayLayer(u64) public ResultCode DestroyStrayLayer(ServiceCtx context) { @@ -193,7 +193,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(2101)] + [CommandHipc(2101)] // SetLayerScalingMode(u32, u64) public ResultCode SetLayerScalingMode(ServiceCtx context) { @@ -203,7 +203,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(2102)] // 5.0.0+ + [CommandHipc(2102)] // 5.0.0+ // ConvertScalingMode(unknown) -> unknown public ResultCode ConvertScalingMode(ServiceCtx context) { @@ -243,7 +243,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return null; } - [Command(2450)] + [CommandHipc(2450)] // GetIndirectLayerImageMap(s64 width, s64 height, u64 handle, nn::applet::AppletResourceUserId, pid) -> (s64, s64, buffer) public ResultCode GetIndirectLayerImageMap(ServiceCtx context) { @@ -261,7 +261,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(2460)] + [CommandHipc(2460)] // GetIndirectLayerImageRequiredMemoryInfo(u64 width, u64 height) -> (u64 size, u64 alignment) public ResultCode GetIndirectLayerImageRequiredMemoryInfo(ServiceCtx context) { @@ -308,7 +308,7 @@ namespace Ryujinx.HLE.HOS.Services.Vi.RootService return ResultCode.Success; } - [Command(5202)] + [CommandHipc(5202)] // GetDisplayVsyncEvent(u64) -> handle public ResultCode GetDisplayVSyncEvent(ServiceCtx context) { -- cgit v1.2.3