diff options
Diffstat (limited to 'src/core/hle/service/service.cpp')
| -rw-r--r-- | src/core/hle/service/service.cpp | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index fbdf217ba..0718df981 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp | |||
| @@ -49,7 +49,6 @@ | |||
| 49 | #include "core/hle/service/npns/npns.h" | 49 | #include "core/hle/service/npns/npns.h" |
| 50 | #include "core/hle/service/ns/ns.h" | 50 | #include "core/hle/service/ns/ns.h" |
| 51 | #include "core/hle/service/nvdrv/nvdrv.h" | 51 | #include "core/hle/service/nvdrv/nvdrv.h" |
| 52 | #include "core/hle/service/nvnflinger/hos_binder_driver_server.h" | ||
| 53 | #include "core/hle/service/nvnflinger/nvnflinger.h" | 52 | #include "core/hle/service/nvnflinger/nvnflinger.h" |
| 54 | #include "core/hle/service/olsc/olsc.h" | 53 | #include "core/hle/service/olsc/olsc.h" |
| 55 | #include "core/hle/service/omm/omm.h" | 54 | #include "core/hle/service/omm/omm.h" |
| @@ -210,14 +209,9 @@ Result ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& session, | |||
| 210 | } | 209 | } |
| 211 | 210 | ||
| 212 | /// Initialize Services | 211 | /// Initialize Services |
| 213 | Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system) | 212 | Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system) { |
| 214 | : hos_binder_driver_server{std::make_unique<Nvnflinger::HosBinderDriverServer>(system)}, | ||
| 215 | nv_flinger{std::make_unique<Nvnflinger::Nvnflinger>(system, *hos_binder_driver_server)} { | ||
| 216 | |||
| 217 | auto& kernel = system.Kernel(); | 213 | auto& kernel = system.Kernel(); |
| 218 | 214 | ||
| 219 | // Nvnflinger needs to be accessed by several services like Vi and AppletOE so we instantiate it | ||
| 220 | // here and pass it into the respective InstallInterfaces functions. | ||
| 221 | system.GetFileSystemController().CreateFactories(*system.GetFilesystem(), false); | 215 | system.GetFileSystemController().CreateFactories(*system.GetFilesystem(), false); |
| 222 | 216 | ||
| 223 | // clang-format off | 217 | // clang-format off |
| @@ -226,13 +220,14 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system | |||
| 226 | kernel.RunOnHostCoreProcess("jit", [&] { JIT::LoopProcess(system); }).detach(); | 220 | kernel.RunOnHostCoreProcess("jit", [&] { JIT::LoopProcess(system); }).detach(); |
| 227 | kernel.RunOnHostCoreProcess("ldn", [&] { LDN::LoopProcess(system); }).detach(); | 221 | kernel.RunOnHostCoreProcess("ldn", [&] { LDN::LoopProcess(system); }).detach(); |
| 228 | kernel.RunOnHostCoreProcess("Loader", [&] { LDR::LoopProcess(system); }).detach(); | 222 | kernel.RunOnHostCoreProcess("Loader", [&] { LDR::LoopProcess(system); }).detach(); |
| 229 | kernel.RunOnHostCoreProcess("nvservices", [&] { Nvidia::LoopProcess(*nv_flinger, system); }).detach(); | 223 | kernel.RunOnHostCoreProcess("nvservices", [&] { Nvidia::LoopProcess(system); }).detach(); |
| 230 | kernel.RunOnHostCoreProcess("bsdsocket", [&] { Sockets::LoopProcess(system); }).detach(); | 224 | kernel.RunOnHostCoreProcess("bsdsocket", [&] { Sockets::LoopProcess(system); }).detach(); |
| 231 | kernel.RunOnHostCoreProcess("vi", [&] { VI::LoopProcess(system, *nv_flinger, *hos_binder_driver_server); }).detach(); | 225 | kernel.RunOnHostCoreProcess("vi", [&] { VI::LoopProcess(system); }).detach(); |
| 226 | kernel.RunOnHostCoreProcess("nvnflinger", [&] { Nvnflinger::LoopProcess(system); }).detach(); | ||
| 232 | 227 | ||
| 233 | kernel.RunOnGuestCoreProcess("sm", [&] { SM::LoopProcess(system); }); | 228 | kernel.RunOnGuestCoreProcess("sm", [&] { SM::LoopProcess(system); }); |
| 234 | kernel.RunOnGuestCoreProcess("account", [&] { Account::LoopProcess(system); }); | 229 | kernel.RunOnGuestCoreProcess("account", [&] { Account::LoopProcess(system); }); |
| 235 | kernel.RunOnGuestCoreProcess("am", [&] { AM::LoopProcess(*nv_flinger, system); }); | 230 | kernel.RunOnGuestCoreProcess("am", [&] { AM::LoopProcess(system); }); |
| 236 | kernel.RunOnGuestCoreProcess("aoc", [&] { AOC::LoopProcess(system); }); | 231 | kernel.RunOnGuestCoreProcess("aoc", [&] { AOC::LoopProcess(system); }); |
| 237 | kernel.RunOnGuestCoreProcess("apm", [&] { APM::LoopProcess(system); }); | 232 | kernel.RunOnGuestCoreProcess("apm", [&] { APM::LoopProcess(system); }); |
| 238 | kernel.RunOnGuestCoreProcess("bcat", [&] { BCAT::LoopProcess(system); }); | 233 | kernel.RunOnGuestCoreProcess("bcat", [&] { BCAT::LoopProcess(system); }); |
| @@ -246,7 +241,6 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system | |||
| 246 | kernel.RunOnGuestCoreProcess("fatal", [&] { Fatal::LoopProcess(system); }); | 241 | kernel.RunOnGuestCoreProcess("fatal", [&] { Fatal::LoopProcess(system); }); |
| 247 | kernel.RunOnGuestCoreProcess("fgm", [&] { FGM::LoopProcess(system); }); | 242 | kernel.RunOnGuestCoreProcess("fgm", [&] { FGM::LoopProcess(system); }); |
| 248 | kernel.RunOnGuestCoreProcess("friends", [&] { Friend::LoopProcess(system); }); | 243 | kernel.RunOnGuestCoreProcess("friends", [&] { Friend::LoopProcess(system); }); |
| 249 | // glue depends on settings and psc, so they must come first | ||
| 250 | kernel.RunOnGuestCoreProcess("settings", [&] { Set::LoopProcess(system); }); | 244 | kernel.RunOnGuestCoreProcess("settings", [&] { Set::LoopProcess(system); }); |
| 251 | kernel.RunOnGuestCoreProcess("psc", [&] { PSC::LoopProcess(system); }); | 245 | kernel.RunOnGuestCoreProcess("psc", [&] { PSC::LoopProcess(system); }); |
| 252 | kernel.RunOnGuestCoreProcess("glue", [&] { Glue::LoopProcess(system); }); | 246 | kernel.RunOnGuestCoreProcess("glue", [&] { Glue::LoopProcess(system); }); |
| @@ -283,8 +277,4 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system | |||
| 283 | 277 | ||
| 284 | Services::~Services() = default; | 278 | Services::~Services() = default; |
| 285 | 279 | ||
| 286 | void Services::KillNVNFlinger() { | ||
| 287 | nv_flinger->ShutdownLayers(); | ||
| 288 | } | ||
| 289 | |||
| 290 | } // namespace Service | 280 | } // namespace Service |