Просмотр исходного кода

fixup! Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.

Subv 10 лет назад
Родитель
Сommit
0a33d915f8

+ 3 - 2
src/core/hle/kernel/kernel.h

@@ -84,13 +84,13 @@ public:
      */
     bool IsWaitable() const {
         switch (GetHandleType()) {
-        case HandleType::ServerSession:
-        case HandleType::ServerPort:
         case HandleType::Event:
         case HandleType::Mutex:
         case HandleType::Thread:
         case HandleType::Semaphore:
         case HandleType::Timer:
+        case HandleType::ServerPort:
+        case HandleType::ServerSession:
             return true;
 
         case HandleType::Unknown:
@@ -101,6 +101,7 @@ public:
         case HandleType::ResourceLimit:
         case HandleType::CodeSet:
         case HandleType::ClientPort:
+        case HandleType::ClientSession:
             return false;
         }
     }

+ 1 - 1
src/core/hle/kernel/server_session.cpp

@@ -48,7 +48,7 @@ SharedPtr<ClientSession> ServerSession::CreateClientSession() {
     return ClientSession::Create(SharedPtr<ServerSession>(this), nullptr, name + "Client").MoveFrom();
 }
 
-std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> ServerSession::CreateSessionPair(SharedPtr<ClientPort> client_port, std::string name) {
+std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> ServerSession::CreateSessionPair(SharedPtr<ClientPort> client_port, const std::string& name) {
     auto server_session = ServerSession::Create(name + "Server").MoveFrom();
     auto client_session = ClientSession::Create(server_session, client_port, name + "Client").MoveFrom();
 

+ 1 - 1
src/core/hle/kernel/server_session.h

@@ -200,7 +200,7 @@ public:
      * @param name Optional name of the ports
      * @return The created session tuple
      */
-    static std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> CreateSessionPair(SharedPtr<ClientPort> client_port, std::string name = "Unknown");
+    static std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> CreateSessionPair(SharedPtr<ClientPort> client_port, const std::string& name = "Unknown");
 
     /**
      * Creates a portless ClientSession and associates it with this ServerSession.

+ 1 - 1
src/core/hle/service/service.h

@@ -40,7 +40,7 @@ public:
      * It should be overwritten by each service implementation for more fine-grained control.
      * @returns The maximum number of connections allowed.
      */
-    virtual u32 GetMaxSessions() { return DefaultMaxSessions; }
+    virtual u32 GetMaxSessions() const { return DefaultMaxSessions; }
 
     void AddWaitingSession(Kernel::SharedPtr<Kernel::ServerSession> server_session) override { }