mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-06-02 16:53:17 +00:00
Add missing error conversions for more device functions
This commit is contained in:
parent
12af813b7c
commit
aa00a9ceee
1 changed files with 18 additions and 3 deletions
|
@ -229,7 +229,12 @@ s64 PS4_SYSV_ABI write(s32 fd, const void* buf, size_t nbytes) {
|
|||
|
||||
std::scoped_lock lk{file->m_mutex};
|
||||
if (file->type == Core::FileSys::FileType::Device) {
|
||||
return file->device->write(buf, nbytes);
|
||||
s64 result = file->device->write(buf, nbytes);
|
||||
if (result < 0) {
|
||||
ErrSceToPosix(result);
|
||||
return -1;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
return file->f.WriteRaw<u8>(buf, nbytes);
|
||||
}
|
||||
|
@ -401,7 +406,12 @@ s64 PS4_SYSV_ABI read(s32 fd, void* buf, size_t nbytes) {
|
|||
|
||||
std::scoped_lock lk{file->m_mutex};
|
||||
if (file->type == Core::FileSys::FileType::Device) {
|
||||
return file->device->read(buf, nbytes);
|
||||
s64 result = file->device->read(buf, nbytes);
|
||||
if (result < 0) {
|
||||
ErrSceToPosix(result);
|
||||
return -1;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
return ReadFile(file->f, buf, nbytes);
|
||||
}
|
||||
|
@ -575,7 +585,12 @@ s32 PS4_SYSV_ABI fstat(s32 fd, OrbisKernelStat* sb) {
|
|||
|
||||
switch (file->type) {
|
||||
case Core::FileSys::FileType::Device:
|
||||
return file->device->fstat(sb);
|
||||
s32 result = file->device->fstat(sb);
|
||||
if (result < 0) {
|
||||
ErrSceToPosix(result);
|
||||
return -1;
|
||||
}
|
||||
return result;
|
||||
case Core::FileSys::FileType::Regular:
|
||||
sb->st_mode = 0000777u | 0100000u;
|
||||
sb->st_size = file->f.GetSize();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue