summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-05-26 04:31:06 +0200
committerGitHub <noreply@github.com>2018-05-26 04:31:06 +0200
commit87f21657f86a4fbcda7ecef9c097874f88c18325 (patch)
tree416456ef5fd6701ebe79dc2b55d3a764fba28e66 /src/core/hle/service
parentGetAudioRendererWorkBufferSize impl (#465) (diff)
parentStub NVGPU_IOCTL_CHANNEL_SET_TIMEOUT (diff)
downloadyuzu-87f21657f86a4fbcda7ecef9c097874f88c18325.tar
yuzu-87f21657f86a4fbcda7ecef9c097874f88c18325.tar.gz
yuzu-87f21657f86a4fbcda7ecef9c097874f88c18325.tar.bz2
yuzu-87f21657f86a4fbcda7ecef9c097874f88c18325.tar.lz
yuzu-87f21657f86a4fbcda7ecef9c097874f88c18325.tar.xz
yuzu-87f21657f86a4fbcda7ecef9c097874f88c18325.tar.zst
yuzu-87f21657f86a4fbcda7ecef9c097874f88c18325.zip
Diffstat (limited to 'src/core/hle/service')
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp9
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.h7
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(&params, 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;
};