Stub some ioctl commands properly

This commit is contained in:
Stephen Miller 2025-04-21 15:50:19 -05:00
parent 27b7c1dc14
commit ad7c41ba5c
2 changed files with 36 additions and 2 deletions

View file

@ -11,8 +11,34 @@ std::shared_ptr<BaseDevice> GcDevice::Create(u32 handle, const char*, int, u16)
reinterpret_cast<Devices::BaseDevice*>(new GcDevice(handle)));
}
int GcDevice::ioctl(u64 cmd, Common::VaCtx* args) {
LOG_ERROR(Kernel_Pthread, "(STUBBED) cmd = {:#x} called", cmd);
s32 GcDevice::ioctl(u64 cmd, Common::VaCtx* args) {
auto command = GcCommands(cmd);
switch(command) {
case GcCommands::AreSubmitsAllowed: {
LOG_ERROR(Lib_GnmDriver, "unhandled ioctl sceGnmAreSubmitsAllowed", cmd);
break;
}
case GcCommands::GetCuMask: {
LOG_ERROR(Lib_GnmDriver, "unhandled ioctl get cu mask", cmd);
break;
}
case GcCommands::GetNumTcaUnits: {
LOG_ERROR(Lib_GnmDriver, "unhandled ioctl sceGnmGetNumTcaUnits", cmd);
break;
}
case GcCommands::MipStatsReport: {
LOG_ERROR(Lib_GnmDriver, "unhandled ioctl sceGnmMipStatsReport", cmd);
break;
}
case GcCommands::SetGsRingSizes: {
LOG_ERROR(Lib_GnmDriver, "unhandled ioctl sceGnmSetGsRingSizes", cmd);
break;
}
default: {
LOG_ERROR(Lib_GnmDriver, "unhandled ioctl cmd = {:#x} called", cmd);
break;
}
}
return 0;
}

View file

@ -28,6 +28,14 @@ public:
int ftruncate(s64 length) override;
int getdents(void* buf, u32 nbytes, s64* basep) override;
s64 pwrite(const void* buf, size_t nbytes, u64 offset) override;
private:
enum class GcCommands : u64 {
GetNumTcaUnits = 0xc004811f,
SetGsRingSizes = 0xc00c8110,
MipStatsReport = 0xc0848119,
AreSubmitsAllowed = 0xc008811b,
GetCuMask = 0xc010810b,
};
};
} // namespace Core::Devices