ps5: collect type of process and firmware

add
initial gc and dce ioctls implementation
This commit is contained in:
DH 2024-11-20 23:11:55 +03:00
parent ffe2837915
commit b6556e83ee
11 changed files with 297 additions and 41 deletions

View file

@ -189,6 +189,10 @@ static SysResult keventChange(KQueue *kq, KEvent &change, Thread *thread) {
// hp3d idle
nodeIt->triggered = true;
kq->cv.notify_all(kq->mtx);
} else if (g_context.fwType == FwType::Ps5 &&
change.filter == kEvFiltGraphicsCore && change.ident == 0) {
nodeIt->triggered = true;
kq->cv.notify_all(kq->mtx);
}
return {};

View file

@ -202,6 +202,18 @@ SysResult kern_sysctl(Thread *thread, ptr<sint> name, uint namelen,
}
}
if (name[0] == kern && name[1] == proc && name[2] == 55) {
if (g_context.fwType != FwType::Ps5) {
return orbis::ErrorCode::INVAL;
}
if (oldlenp && old && *oldlenp == 4) {
return uwrite<uint32_t>(ptr<uint32_t>(old),
thread->tproc->type == ProcessType::Ps5 ? 1
: 0);
}
}
if (name[0] == kern && name[1] == proc && name[2] == 36) {
Process *process = thread->tproc;
if (process->pid != name[3]) {