diff --git a/rpcs3/Emu/SysCalls/Modules/cellFs.cpp b/rpcs3/Emu/SysCalls/Modules/cellFs.cpp index 223ce6cfcb..daadb68b59 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellFs.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellFs.cpp @@ -477,11 +477,6 @@ s32 cellFsStReadStart(u32 fd, u64 offset, u64 size) return CELL_FS_EBADF; } - if (size > std::numeric_limits::max()) // ??? - { - return CELL_FS_EINVAL; - } - switch (auto status = file->st_status.compare_and_swap(SSS_INITIALIZED, SSS_STARTED)) { case SSS_NOT_INITIALIZED: @@ -595,11 +590,6 @@ s32 cellFsStRead(u32 fd, vm::ptr buf, u64 size, vm::ptr rsize) return CELL_FS_EBADF; } - if (size > std::numeric_limits::max()) // ??? - { - return CELL_FS_EINVAL; - } - if (file->st_status.read_sync() == SSS_NOT_INITIALIZED || file->st_copyless) { return CELL_FS_ENXIO; @@ -667,11 +657,6 @@ s32 cellFsStReadPutCurrentAddr(u32 fd, vm::ptr addr, u64 size) return CELL_FS_EBADF; } - if (size > std::numeric_limits::max()) // ??? - { - return CELL_FS_EINVAL; - } - if (file->st_status.read_sync() == SSS_NOT_INITIALIZED || !file->st_copyless) { return CELL_FS_ENXIO; @@ -699,11 +684,6 @@ s32 cellFsStReadWait(u32 fd, u64 size) return CELL_FS_EBADF; } - if (size > std::numeric_limits::max()) // ??? - { - return CELL_FS_EINVAL; - } - if (file->st_status.read_sync() == SSS_NOT_INITIALIZED) { return CELL_FS_ENXIO; @@ -738,17 +718,12 @@ s32 cellFsStReadWaitCallback(u32 fd, u64 size, fs_st_cb_t func) return CELL_FS_EBADF; } - if (size > std::numeric_limits::max()) // ??? - { - return CELL_FS_EINVAL; - } - if (file->st_status.read_sync() == SSS_NOT_INITIALIZED) { return CELL_FS_ENXIO; } - if (!file->st_callback.compare_and_swap_test({}, { static_cast(size), func })) + if (!file->st_callback.compare_and_swap_test({}, { size, func })) { return CELL_FS_EIO; } diff --git a/rpcs3/Emu/SysCalls/lv2/sys_fs.h b/rpcs3/Emu/SysCalls/lv2/sys_fs.h index 7466548234..bd4945cd3c 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_fs.h +++ b/rpcs3/Emu/SysCalls/lv2/sys_fs.h @@ -158,8 +158,9 @@ using fs_st_cb_t = vm::ptr; struct fs_st_cb_rec_t { - u32 size; + u64 size; fs_st_cb_t func; + u32 pad; }; struct fs_file_t