mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-22 04:25:19 +00:00
Bugfix
This commit is contained in:
parent
d05597ccdb
commit
978d578f4e
2 changed files with 8 additions and 67 deletions
|
@ -225,43 +225,16 @@ s32 cellFsGetDirectoryEntries(u32 fd, vm::ptr<CellFsDirectoryEntry> entries, u32
|
|||
{
|
||||
if (const auto info = directory->Read())
|
||||
{
|
||||
s32 mode = 0;
|
||||
|
||||
if (info->flags & DirEntry_PermReadable)
|
||||
{
|
||||
mode |= CELL_FS_S_IRUSR | CELL_FS_S_IRGRP | CELL_FS_S_IROTH;
|
||||
}
|
||||
|
||||
if (info->flags & DirEntry_PermWritable)
|
||||
{
|
||||
mode |= CELL_FS_S_IWUSR | CELL_FS_S_IWGRP | CELL_FS_S_IWOTH;
|
||||
}
|
||||
|
||||
if (info->flags & DirEntry_PermExecutable)
|
||||
{
|
||||
mode |= CELL_FS_S_IXUSR | CELL_FS_S_IXGRP | CELL_FS_S_IXOTH;
|
||||
}
|
||||
|
||||
if (info->flags & DirEntry_TypeDir)
|
||||
{
|
||||
mode |= CELL_FS_S_IFDIR;
|
||||
}
|
||||
|
||||
if (info->flags & DirEntry_TypeFile)
|
||||
{
|
||||
mode |= CELL_FS_S_IFREG;
|
||||
}
|
||||
|
||||
entries[count].attribute.mode = mode;
|
||||
entries[count].attribute.mode = info->flags & DirEntry_TypeDir ? CELL_FS_S_IFDIR | 0777 : CELL_FS_S_IFREG | 0666;
|
||||
entries[count].attribute.uid = 1; // ???
|
||||
entries[count].attribute.gid = 1; // ???
|
||||
entries[count].attribute.atime = info->access_time;
|
||||
entries[count].attribute.mtime = info->modify_time;
|
||||
entries[count].attribute.ctime = info->create_time;
|
||||
entries[count].attribute.size = info->size;
|
||||
entries[count].attribute.blksize = info->size ? align(info->size, 4096) : 4096;
|
||||
entries[count].attribute.blksize = 4096; // ???
|
||||
|
||||
entries[count].entry_name.d_type = (info->flags & DirEntry_TypeFile) ? CELL_FS_TYPE_REGULAR : CELL_FS_TYPE_DIRECTORY;
|
||||
entries[count].entry_name.d_type = info->flags & DirEntry_TypeFile ? CELL_FS_TYPE_REGULAR : CELL_FS_TYPE_DIRECTORY;
|
||||
entries[count].entry_name.d_namlen = u8(std::min<size_t>(info->name.length(), CELL_FS_MAX_FS_FILE_NAME_LENGTH));
|
||||
strcpy_trunc(entries[count].entry_name.d_name, info->name);
|
||||
}
|
||||
|
|
|
@ -255,30 +255,14 @@ s32 sys_fs_stat(vm::ptr<const char> path, vm::ptr<CellFsStat> sb)
|
|||
return CELL_FS_ENOENT;
|
||||
}
|
||||
|
||||
s32 mode = CELL_FS_S_IRUSR | CELL_FS_S_IRGRP | CELL_FS_S_IROTH;
|
||||
|
||||
if (info.isWritable)
|
||||
{
|
||||
mode |= CELL_FS_S_IWUSR | CELL_FS_S_IWGRP | CELL_FS_S_IWOTH;
|
||||
}
|
||||
|
||||
if (info.isDirectory)
|
||||
{
|
||||
mode |= CELL_FS_S_IFDIR;
|
||||
mode |= CELL_FS_S_IXUSR | CELL_FS_S_IXGRP | CELL_FS_S_IXOTH; // ???
|
||||
}
|
||||
else
|
||||
{
|
||||
mode |= CELL_FS_S_IFREG;
|
||||
}
|
||||
|
||||
sb->mode = info.isDirectory ? CELL_FS_S_IFDIR | 0777 : CELL_FS_S_IFREG | 0666;
|
||||
sb->uid = 1; // ???
|
||||
sb->gid = 1; // ???
|
||||
sb->atime = info.atime;
|
||||
sb->mtime = info.mtime;
|
||||
sb->ctime = info.ctime;
|
||||
sb->size = info.size;
|
||||
sb->blksize = info.size ? align(info.size, 4096) : 4096; // ???
|
||||
sb->blksize = 4096; // ???
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
@ -311,30 +295,14 @@ s32 sys_fs_fstat(u32 fd, vm::ptr<CellFsStat> sb)
|
|||
return CELL_FS_EIO; // ???
|
||||
}
|
||||
|
||||
s32 mode = CELL_FS_S_IRUSR | CELL_FS_S_IRGRP | CELL_FS_S_IROTH;
|
||||
|
||||
if (info.isWritable)
|
||||
{
|
||||
mode |= CELL_FS_S_IWUSR | CELL_FS_S_IWGRP | CELL_FS_S_IWOTH;
|
||||
}
|
||||
|
||||
if (info.isDirectory)
|
||||
{
|
||||
mode |= CELL_FS_S_IFDIR;
|
||||
mode |= CELL_FS_S_IXUSR | CELL_FS_S_IXGRP | CELL_FS_S_IXOTH; // ???
|
||||
}
|
||||
else
|
||||
{
|
||||
mode |= CELL_FS_S_IFREG;
|
||||
}
|
||||
|
||||
sb->mode = info.isDirectory ? CELL_FS_S_IFDIR | 0777 : CELL_FS_S_IFREG | 0666;
|
||||
sb->uid = 1; // ???
|
||||
sb->gid = 1; // ???
|
||||
sb->atime = info.atime;
|
||||
sb->mtime = info.mtime;
|
||||
sb->ctime = info.ctime; // may be incorrect
|
||||
sb->ctime = info.ctime; // ctime may be incorrect
|
||||
sb->size = info.size;
|
||||
sb->blksize = info.size ? align(info.size, 4096) : 4096; // ???
|
||||
sb->blksize = 4096; // ???
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue