diff options
Diffstat (limited to 'src/core/hle/service/nvdrv/nvdrv_a.h')
-rw-r--r-- | src/core/hle/service/nvdrv/nvdrv_a.h | 30 |
1 files changed, 4 insertions, 26 deletions
diff --git a/src/core/hle/service/nvdrv/nvdrv_a.h b/src/core/hle/service/nvdrv/nvdrv_a.h index 62f10e9f6..743870555 100644 --- a/src/core/hle/service/nvdrv/nvdrv_a.h +++ b/src/core/hle/service/nvdrv/nvdrv_a.h @@ -10,42 +10,20 @@ #include "core/hle/service/service.h" namespace Service { -namespace NVDRV { - -namespace Devices { -class nvdevice; -} +namespace Nvidia { class NVDRV_A final : public ServiceFramework<NVDRV_A> { public: - NVDRV_A(); + NVDRV_A(std::shared_ptr<Module> nvdrv); ~NVDRV_A() = default; - /// Returns a pointer to one of the available devices, identified by its name. - template <typename T> - std::shared_ptr<T> GetDevice(std::string name) { - auto itr = devices.find(name); - if (itr == devices.end()) - return nullptr; - return std::static_pointer_cast<T>(itr->second); - } - private: void Open(Kernel::HLERequestContext& ctx); void Ioctl(Kernel::HLERequestContext& ctx); void Initialize(Kernel::HLERequestContext& ctx); - /// Id to use for the next open file descriptor. - u32 next_fd = 1; - - /// Mapping of file descriptors to the devices they reference. - std::unordered_map<u32, std::shared_ptr<Devices::nvdevice>> open_files; - - /// Mapping of device node names to their implementation. - std::unordered_map<std::string, std::shared_ptr<Devices::nvdevice>> devices; + std::shared_ptr<Module> nvdrv; }; -extern std::weak_ptr<NVDRV_A> nvdrv_a; - -} // namespace NVDRV +} // namespace Nvidia } // namespace Service |