Browse Source
Merge pull request #466 from mailwl/nv-timeout
Stub NVGPU_IOCTL_CHANNEL_SET_TIMEOUT
pull/15/merge
bunnei
8 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
16 additions and
0 deletions
-
src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
-
src/core/hle/service/nvdrv/devices/nvhost_gpu.h
|
|
|
@ -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
|
|
|
|
@ -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; |
|
|
|
}; |
|
|
|
|