diff options
author | Subv <subv2112@gmail.com> | 2016-12-09 18:52:12 +0100 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2016-12-09 18:52:12 +0100 |
commit | ebbb55ec8f827096f1c743cc4b7f4a2aa05a3ed3 (patch) | |
tree | bea70b5f82c2777939b69e4774bae5a320e33669 /src/core/hle/service/service.h | |
parent | Kernel/IPC: Small codestyle cleanup (diff) | |
download | yuzu-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.h | 30 |
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 |