aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/kernel/kernel.h
diff options
context:
space:
mode:
authorbunnei <[email protected]>2022-04-06 17:44:06 -0700
committerbunnei <[email protected]>2022-04-08 14:13:22 -0700
commita7f73d606f596ab73cf794a76c06cd955033cada (patch)
tree55f4a3d1decb97c548f6ab33128aef4566f18c7c /src/core/hle/kernel/kernel.h
parentb44a564792dc391aa2012b424b04ea50c83e27d1 (diff)
downloadyuzu-android-a7f73d606f596ab73cf794a76c06cd955033cada.tar.gz
yuzu-android-a7f73d606f596ab73cf794a76c06cd955033cada.zip
hle: kernel: Unify and integrate reference tracking for KServerPort/KServerSession.
- These are not managed elsewhere, and need to be tracked and closed on emulation shutdown.
Diffstat (limited to 'src/core/hle/kernel/kernel.h')
-rw-r--r--src/core/hle/kernel/kernel.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index 24e26fa44..d709c368b 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/src/core/hle/kernel/kernel.h
@@ -195,6 +195,14 @@ public:
/// Opens a port to a service previously registered with RegisterNamedService.
KClientPort* CreateNamedServicePort(std::string name);
+ /// Registers a server session or port with the gobal emulation state, to be freed on shutdown.
+ /// This is necessary because we do not emulate processes for HLE sessions and ports.
+ void RegisterServerObject(KAutoObject* server_object);
+
+ /// Unregisters a server session or port previously registered with RegisterServerSession when
+ /// it was destroyed during the current emulation session.
+ void UnregisterServerObject(KAutoObject* server_object);
+
/// Registers all kernel objects with the global emulation state, this is purely for tracking
/// leaks after emulation has been shutdown.
void RegisterKernelObject(KAutoObject* object);