diff options
| author | 2021-07-02 15:19:04 -0700 | |
|---|---|---|
| committer | 2021-07-20 18:54:56 -0700 | |
| commit | 52caa52cc2e47d426b5af38fd8439da237836e0e (patch) | |
| tree | 1412e9e92f8f3f1bd67d2d237234d149011a55d2 /src/core/hle/kernel/kernel.h | |
| parent | hle: kernel: KProcess: Change process termination assert to a warning. (diff) | |
| download | yuzu-52caa52cc2e47d426b5af38fd8439da237836e0e.tar.gz yuzu-52caa52cc2e47d426b5af38fd8439da237836e0e.tar.xz yuzu-52caa52cc2e47d426b5af38fd8439da237836e0e.zip | |
hle: kernel: Track and release server sessions, and protect methods with locks.
Diffstat (limited to 'src/core/hle/kernel/kernel.h')
| -rw-r--r-- | src/core/hle/kernel/kernel.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index b669ca74e..3a6db0b1c 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h | |||
| @@ -45,6 +45,7 @@ class KPort; | |||
| 45 | class KProcess; | 45 | class KProcess; |
| 46 | class KResourceLimit; | 46 | class KResourceLimit; |
| 47 | class KScheduler; | 47 | class KScheduler; |
| 48 | class KServerSession; | ||
| 48 | class KSession; | 49 | class KSession; |
| 49 | class KSharedMemory; | 50 | class KSharedMemory; |
| 50 | class KThread; | 51 | class KThread; |
| @@ -185,6 +186,14 @@ public: | |||
| 185 | /// Opens a port to a service previously registered with RegisterNamedService. | 186 | /// Opens a port to a service previously registered with RegisterNamedService. |
| 186 | KClientPort* CreateNamedServicePort(std::string name); | 187 | KClientPort* CreateNamedServicePort(std::string name); |
| 187 | 188 | ||
| 189 | /// Registers a server session with the gobal emulation state, to be freed on shutdown. This is | ||
| 190 | /// necessary because we do not emulate processes for HLE sessions. | ||
| 191 | void RegisterServerSession(KServerSession* server_session); | ||
| 192 | |||
| 193 | /// Unregisters a server session previously registered with RegisterServerSession when it was | ||
| 194 | /// destroyed during the current emulation session. | ||
| 195 | void UnregisterServerSession(KServerSession* server_session); | ||
| 196 | |||
| 188 | /// Registers all kernel objects with the global emulation state, this is purely for tracking | 197 | /// Registers all kernel objects with the global emulation state, this is purely for tracking |
| 189 | /// leaks after emulation has been shutdown. | 198 | /// leaks after emulation has been shutdown. |
| 190 | void RegisterKernelObject(KAutoObject* object); | 199 | void RegisterKernelObject(KAutoObject* object); |