|
|
|
@ -17,6 +17,8 @@ u32 nvhost_ctrl::ioctl(Ioctl command, const std::vector<u8>& input, std::vector< |
|
|
|
switch (static_cast<IoctlCommand>(command.raw)) { |
|
|
|
case IoctlCommand::IocGetConfigCommand: |
|
|
|
return NvOsGetConfigU32(input, output); |
|
|
|
case IoctlCommand::IocCtrlEventWaitCommand: |
|
|
|
return IocCtrlEventWait(input, output); |
|
|
|
} |
|
|
|
UNIMPLEMENTED(); |
|
|
|
return 0; |
|
|
|
@ -45,6 +47,18 @@ u32 nvhost_ctrl::NvOsGetConfigU32(const std::vector<u8>& input, std::vector<u8>& |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
u32 nvhost_ctrl::IocCtrlEventWait(const std::vector<u8>& input, std::vector<u8>& output) { |
|
|
|
IocCtrlEventWaitParams params{}; |
|
|
|
std::memcpy(¶ms, input.data(), sizeof(params)); |
|
|
|
LOG_WARNING(Service_NVDRV, "(STUBBED) called, syncpt_id=%u threshold=%u timeout=%d", |
|
|
|
params.syncpt_id, params.threshold, params.timeout); |
|
|
|
|
|
|
|
// TODO(Subv): Implement actual syncpt waiting.
|
|
|
|
params.value = 0; |
|
|
|
std::memcpy(output.data(), ¶ms, sizeof(params)); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
} // namespace Devices
|
|
|
|
} // namespace Nvidia
|
|
|
|
} // namespace Service
|