diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp | 9 | ||||
-rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_gpu.h | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp index 03126aeee..79aab87f9 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp @@ -34,6 +34,8 @@ u32 nvhost_gpu::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u return AllocateObjectContext(input, output); case IoctlCommand::IocChannelGetWaitbaseCommand: return GetWaitbase(input, output); + case IoctlCommand::IocChannelSetTimeoutCommand: + return ChannelSetTimeout(input, output); } if (command.group == NVGPU_IOCTL_MAGIC) { @@ -149,4 +151,11 @@ u32 nvhost_gpu::GetWaitbase(const std::vector<u8>& input, std::vector<u8>& outpu return 0; } +u32 nvhost_gpu::ChannelSetTimeout(const std::vector<u8>& input, std::vector<u8>& output) { + IoctlChannelSetTimeout params{}; + std::memcpy(¶ms, input.data(), sizeof(IoctlChannelSetTimeout)); + NGLOG_INFO(Service_NVDRV, "called, timeout=0x{:X}", params.timeout); + return 0; +} + } // namespace Service::Nvidia::Devices diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h index beb1c4970..2ecf818f3 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h +++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h @@ -34,6 +34,7 @@ private: IocAllocGPFIFOEx2Command = 0xC020481A, IocAllocObjCtxCommand = 0xC0104809, IocChannelGetWaitbaseCommand = 0xC0080003, + IocChannelSetTimeoutCommand = 0x40044803, }; enum class CtxObjects : u32_le { @@ -50,6 +51,11 @@ private: }; static_assert(sizeof(IoctlSetNvmapFD) == 4, "IoctlSetNvmapFD is incorrect size"); + struct IoctlChannelSetTimeout { + u32_le timeout; + }; + static_assert(sizeof(IoctlChannelSetTimeout) == 4, "IoctlChannelSetTimeout is incorrect size"); + struct IoctlClientData { u64_le data; }; @@ -141,6 +147,7 @@ private: u32 AllocateObjectContext(const std::vector<u8>& input, std::vector<u8>& output); u32 SubmitGPFIFO(const std::vector<u8>& input, std::vector<u8>& output); u32 GetWaitbase(const std::vector<u8>& input, std::vector<u8>& output); + u32 ChannelSetTimeout(const std::vector<u8>& input, std::vector<u8>& output); std::shared_ptr<nvmap> nvmap_dev; }; |