// Copyright 2018 yuzu emulator team // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include "common/common_types.h" #include "common/swap.h" #include "core/hle/service/nvdrv/devices/nvdevice.h" namespace Service::Nvidia::Devices { class nvhost_nvdec final : public nvdevice { public: nvhost_nvdec(); ~nvhost_nvdec() override; u32 ioctl(Ioctl command, const std::vector& input, std::vector& output) override; private: enum class IoctlCommand : u32_le { IocSetNVMAPfdCommand = 0x40044801, }; struct IoctlSetNvmapFD { u32_le nvmap_fd; }; static_assert(sizeof(IoctlSetNvmapFD) == 4, "IoctlSetNvmapFD is incorrect size"); u32_le nvmap_fd{}; u32 SetNVMAPfd(const std::vector& input, std::vector& output); }; } // namespace Service::Nvidia::Devices