aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs
diff options
context:
space:
mode:
authorMary <me@thog.eu>2021-04-14 00:01:24 +0200
committerGitHub <noreply@github.com>2021-04-14 00:01:24 +0200
commit0746b83edf49d1fd668dd337264e942f361b675c (patch)
tree37b71396036206252cdc42715d6a3046ee81c795 /Ryujinx.HLE/Exceptions/ServiceNotImplementedException.cs
parentfaa654dbaf7cd5262c78c0961a5aa72b1ce8ac33 (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.cs14
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);