diff options
Diffstat (limited to 'src/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs')
-rw-r--r-- | src/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs b/src/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs new file mode 100644 index 00000000..0dfd84f5 --- /dev/null +++ b/src/Ryujinx.HLE/HOS/Services/Vi/ISystemRootService.cs @@ -0,0 +1,28 @@ +using Ryujinx.HLE.HOS.Services.Vi.RootService; +using Ryujinx.HLE.HOS.Services.Vi.Types; + +namespace Ryujinx.HLE.HOS.Services.Vi +{ + [Service("vi:s")] + class ISystemRootService : IpcService + { + // vi:u/m/s aren't on 3 separate threads but we can't put them together with the current ServerBase + public ISystemRootService(ServiceCtx context) : base(context.Device.System.ViServerS) { } + + [CommandCmif(1)] + // GetDisplayService(u32) -> object<nn::visrv::sf::IApplicationDisplayService> + public ResultCode GetDisplayService(ServiceCtx context) + { + ViServiceType serviceType = (ViServiceType)context.RequestData.ReadInt32(); + + if (serviceType != ViServiceType.System) + { + return ResultCode.PermissionDenied; + } + + MakeObject(context, new IApplicationDisplayService(serviceType)); + + return ResultCode.Success; + } + } +}
\ No newline at end of file |