summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/service.h
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2016-12-09 18:52:12 +0100
committerSubv <subv2112@gmail.com>2016-12-09 18:52:12 +0100
commitebbb55ec8f827096f1c743cc4b7f4a2aa05a3ed3 (patch)
treebea70b5f82c2777939b69e4774bae5a320e33669 /src/core/hle/service/service.h
parentKernel/IPC: Small codestyle cleanup (diff)
downloadyuzu-ebbb55ec8f827096f1c743cc4b7f4a2aa05a3ed3.tar
yuzu-ebbb55ec8f827096f1c743cc4b7f4a2aa05a3ed3.tar.gz
yuzu-ebbb55ec8f827096f1c743cc4b7f4a2aa05a3ed3.tar.bz2
yuzu-ebbb55ec8f827096f1c743cc4b7f4a2aa05a3ed3.tar.lz
yuzu-ebbb55ec8f827096f1c743cc4b7f4a2aa05a3ed3.tar.xz
yuzu-ebbb55ec8f827096f1c743cc4b7f4a2aa05a3ed3.tar.zst
yuzu-ebbb55ec8f827096f1c743cc4b7f4a2aa05a3ed3.zip
Diffstat (limited to 'src/core/hle/service/service.h')
-rw-r--r--src/core/hle/service/service.h30
1 files changed, 10 insertions, 20 deletions
diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h
index 2293b473a..a3af48684 100644
--- a/src/core/hle/service/service.h
+++ b/src/core/hle/service/service.h
@@ -15,6 +15,11 @@
#include "core/hle/result.h"
#include "core/memory.h"
+
+namespace Kernel {
+class ServerSession;
+}
+
////////////////////////////////////////////////////////////////////////////////////////////////////
// Namespace Service
@@ -31,12 +36,14 @@ static const u32 DefaultMaxSessions = 10; ///< Arbitrary default number of maxim
class SessionRequestHandler {
public:
/**
- * Dispatches and handles a sync request from the emulated application.
+ * Handles a sync request from the emulated application.
* @param server_session The ServerSession that was triggered for this sync request,
* it should be used to differentiate which client (As in ClientSession) we're answering to.
+ * TODO(Subv): Use a wrapper structure to hold all the information relevant to
+ * this request (ServerSession, Originator thread, Translated command buffer, etc).
* @returns ResultCode the result code of the translate operation.
*/
- ResultCode HandleSyncRequest(Kernel::SharedPtr<Kernel::ServerSession> server_session);
+ virtual void HandleSyncRequest(Kernel::SharedPtr<Kernel::ServerSession> server_session) = 0;
/**
* Signals that a client has just connected to this HLE handler and keeps the
@@ -53,23 +60,6 @@ public:
void ClientDisconnected(Kernel::SharedPtr<Kernel::ServerSession> server_session);
protected:
- /**
- * Handles a sync request from the emulated application and writes the response to the command buffer.
- * TODO(Subv): Use a wrapper structure to hold all the information relevant to
- * this request (ServerSession, Originator thread, Translated command buffer, etc).
- */
- virtual void HandleSyncRequestImpl(Kernel::SharedPtr<Kernel::ServerSession> server_session) = 0;
-
-private:
- /**
- * Performs command buffer translation for this request.
- * The command buffer from the ServerSession thread's TLS is copied into a
- * buffer and all descriptors in the buffer are processed.
- * TODO(Subv): Implement this function, currently we do not support multiple processes running at once,
- * but once that is implemented we'll need to properly translate all descriptors in the command buffer.
- */
- ResultCode TranslateRequest(Kernel::SharedPtr<Kernel::ServerSession> server_session);
-
/// List of sessions that are connected to this handler.
/// A ServerSession whose server endpoint is an HLE implementation is kept alive by this list for the duration of the connection.
std::vector<Kernel::SharedPtr<Kernel::ServerSession>> connected_sessions;
@@ -120,7 +110,7 @@ public:
}
protected:
- void HandleSyncRequestImpl(Kernel::SharedPtr<Kernel::ServerSession> server_session) override;
+ void HandleSyncRequest(Kernel::SharedPtr<Kernel::ServerSession> server_session) override;
/**
* Registers the functions in the service