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/Exceptions/ServiceNotImplementedException.cs | |
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/Exceptions/ServiceNotImplementedException.cs')
-rw-r--r-- | Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs b/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs index 69493918..b15ff229 100644 --- a/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs +++ b/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs @@ -18,24 +18,28 @@ namespace Ryujinx.HLE.Exceptions public ServiceCtx Context { get; } public IpcMessage Request { get; } - public ServiceNotImplementedException(IpcService service, ServiceCtx context) - : this(service, context, "The service call is not implemented.") + private bool _isTipcCommand; + + public ServiceNotImplementedException(IpcService service, ServiceCtx context, bool isTipcCommand) + : this(service, context, "The service call is not implemented.", isTipcCommand) { } - public ServiceNotImplementedException(IpcService service, ServiceCtx context, string message) + public ServiceNotImplementedException(IpcService service, ServiceCtx context, string message, bool isTipcCommand) : base(message) { Service = service; Context = context; Request = context.Request; + _isTipcCommand = isTipcCommand; } - public ServiceNotImplementedException(IpcService service, ServiceCtx context, string message, Exception inner) + public ServiceNotImplementedException(IpcService service, ServiceCtx context, string message, Exception inner, bool isTipcCommand) : base(message, inner) { Service = service; Context = context; Request = context.Request; + _isTipcCommand = isTipcCommand; } protected ServiceNotImplementedException(SerializationInfo info, StreamingContext context) @@ -62,7 +66,7 @@ namespace Ryujinx.HLE.Exceptions if (callingType != null && callingMethod != null) { - var ipcCommands = Service.Commands; + var ipcCommands = _isTipcCommand ? Service.TipcCommands : Service.HipcCommands; // Find the handler for the method called var ipcHandler = ipcCommands.FirstOrDefault(x => x.Value == callingMethod); |