IPC services refactoring (#726)

* IPC services refactoring

- Use custom Attributes to handle services.
- Add a way to set the permissions and fix the bsd service to use it.
- Little cleanup.
- C#7.1 is required.

* fix var name

* fix syntax

* Change Permission to Parameter

* Delete BsdServicePermissionLevel.cs

* Fix Linq
This commit is contained in:
Ac_K 2019-07-10 17:59:54 +02:00 committed by gdkchan
parent e5b88de22a
commit 596b61ce1f
48 changed files with 175 additions and 299 deletions

View file

@ -4,13 +4,14 @@ using System.Collections.Generic;
namespace Ryujinx.HLE.HOS.Services.Ns
{
[Service("aoc:u")]
class IAddOnContentManager : IpcService
{
private Dictionary<int, ServiceProcessRequest> _commands;
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands;
public IAddOnContentManager()
public IAddOnContentManager(ServiceCtx context)
{
_commands = new Dictionary<int, ServiceProcessRequest>
{

View file

@ -6,13 +6,14 @@ using System.Text;
namespace Ryujinx.HLE.HOS.Services.Ns
{
[Service("ns:am")]
class IApplicationManagerInterface : IpcService
{
private Dictionary<int, ServiceProcessRequest> _commands;
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands;
public IApplicationManagerInterface()
public IApplicationManagerInterface(ServiceCtx context)
{
_commands = new Dictionary<int, ServiceProcessRequest>
{

View file

@ -3,13 +3,15 @@ using System.Collections.Generic;
namespace Ryujinx.HLE.HOS.Services.Ns
{
[Service("ns:am2")]
[Service("ns:ec")]
class IServiceGetterInterface : IpcService
{
private Dictionary<int, ServiceProcessRequest> _commands;
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands;
public IServiceGetterInterface()
public IServiceGetterInterface(ServiceCtx context)
{
_commands = new Dictionary<int, ServiceProcessRequest>
{
@ -19,7 +21,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns
public long GetApplicationManagerInterface(ServiceCtx context)
{
MakeObject(context, new IApplicationManagerInterface());
MakeObject(context, new IApplicationManagerInterface(context));
return 0;
}

View file

@ -3,13 +3,14 @@ using System.Collections.Generic;
namespace Ryujinx.HLE.HOS.Services.Ns
{
[Service("ns:su")]
class ISystemUpdateInterface : IpcService
{
private Dictionary<int, ServiceProcessRequest> _commands;
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands;
public ISystemUpdateInterface()
public ISystemUpdateInterface(ServiceCtx context)
{
_commands = new Dictionary<int, ServiceProcessRequest>
{

View file

@ -3,13 +3,14 @@ using System.Collections.Generic;
namespace Ryujinx.HLE.HOS.Services.Ns
{
[Service("ns:vm")]
class IVulnerabilityManagerInterface : IpcService
{
private Dictionary<int, ServiceProcessRequest> _commands;
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands;
public IVulnerabilityManagerInterface()
public IVulnerabilityManagerInterface(ServiceCtx context)
{
_commands = new Dictionary<int, ServiceProcessRequest>
{