Megamouse
3d974eed03
fs: move buf from stack to heap to silence VS warning
2024-01-14 06:40:35 +01:00
Megamouse
329b58c8cd
fs: remove duplicate to_utf8 function
2024-01-14 06:40:35 +01:00
Megamouse
59c58aa3cf
fix some warnings
2023-12-30 19:07:35 +01:00
Eladash
f60bdbaece
Savestates: Compressed state files
2023-11-27 12:36:17 +02:00
Eladash
66d01b688c
Savestates: Implement initial RAM ventilation system
2023-11-10 08:45:49 +02:00
Megamouse
6bc7d7c698
fs::utime: fallback to 01/01/1980 00:00:00 if the date is too low
2023-09-04 10:07:23 +03:00
Eladash
66b6bae596
Win32/File.cpp: Avoid potential race in concurrent writes
...
Uninitialized data is better than overwritten data. Affects SPU Cache (unprotected writes).
2023-09-02 12:31:11 +03:00
oltolm
bc40b61ef1
rename fs::stat to fs::get_stat
2023-07-25 12:15:08 +03:00
Eladash
9291e2777d
File.h: Implement fs::error::xdev
2023-07-21 12:27:35 +03:00
Eladash
eecadab387
Implement fs::file::get_id()
...
File descripor ID with 2 provided ways to compare between them:
1. is_mirror_of():
Test if identical:
For example: when LHS writes one byte to a file at X offset, RHS file be able to read that exact byte at X offset)
2. is_coherent_with():
Test if both files point to the same file:
For example: if a file descriptor pointing to the complete file exists and is being truncated to 0 bytes from non-
-zero size state: this has to affect both RHS and LHS files.
2023-07-17 08:09:09 +03:00
oltolm
0c94606fcf
Make compile with msvc, clang and gcc on Windows
2023-07-11 21:40:30 +03:00
brian218
cf4ae38699
sys_fs: Implemented get_normalized_path()
2023-06-25 09:08:20 +02:00
Eladash
09f83e48ff
fs: Add get_parent_dir_view
...
string view version of the argument path, use with care.
2023-06-24 12:00:04 +03:00
Eladash
bcbce5dd48
File.cpp: revert get_parent_dir change
2023-06-24 12:00:04 +03:00
Megamouse
635fed0427
fs/linux: fix potential copy_file issue
...
sendfile is meant to be run in a loop, since there is no guarantee that a single call copies all the data.
The current implementation may lead to corrupt files on linux.
2023-06-12 15:59:32 +03:00
brian218
a131a41874
Fixed a bug in fs::get_parent_dir()
2023-06-05 20:15:43 +02:00
brian218
6a570ae57e
sys_fs: Implemented sys_fs_mount(prot=1) read-only mounting & fixed up some operation and permission checks
2023-06-05 13:51:54 +03:00
Megamouse
92ae57c9ee
Windows: log more descriptive errors
2023-03-04 18:34:56 +01:00
Elad Ashkenazi
382a27cb2f
Allow to cancel dir size calculation ( #13134 )
2022-12-30 09:34:35 +01:00
Nekotekina
eeda958f33
fs: fix read/read_at/write (Unix)
...
It's known that too huge read can require multiple syscalls.
2022-12-29 16:19:54 +03:00
Nekotekina
2f9cac8d18
fs: implement file::read_at
...
Reads from the given offset; does not seek; thread-safe.
2022-12-29 16:19:54 +03:00
Elad Ashkenazi
ad3ea966cb
Add RPCS3/games/ for automatic games detection, support PSN games outside HDD0 ( #12982 )
...
* SFO: Do not load PARAM.SFO with illegal TITLE_ID
* Add support for PSN games outside HDD0
* Add RPCS3/games/ for automatic game detection
2022-12-02 13:18:07 +03:00
Eladash
149c593d89
Make fs::get_parent_dir/fs::pending_file use string_view as argument
2022-06-27 15:03:39 +03:00
Eladash
1088375b38
Wipe clean VSH's temporary directory of choice at boot
2022-05-21 10:57:12 +03:00
Eladash
781b2b4548
Implement fs::isfile ( #11447 )
2022-01-29 22:10:48 +03:00
MSuih
f526027778
Revert recent file system changes ( #11370 )
...
* Revert "FS: use std::filesystem::u8path"
This reverts commit cd016be86e
.
* Revert "VFS: fix missing path deliminators"
This reverts commit 84753db574
.
* Revert "Bugfix of Emulator::Load disc path searching"
This reverts commit b9179de288
.
* Revert "fs: Reimplement path resolving using std::filesystem::weakly_canonical"
This reverts commit 0c4b2ff06b
.
2022-01-13 07:24:04 +03:00
Megamouse
cd016be86e
FS: use std::filesystem::u8path
2022-01-13 00:07:25 +03:00
Eladash
0c4b2ff06b
fs: Reimplement path resolving using std::filesystem::weakly_canonical
2022-01-12 03:37:39 +03:00
Nekotekina
6b40d69a8f
Introduce coroutine support (util/coro.hpp)
...
Implement coroutine types `lazy` and `generator` in stx namespace.
Implement fs::list_dir_recursively.
2021-12-07 13:04:10 +03:00
Eladash
f16949c292
fs::file: always use strict reading mode for large reads ( #11206 )
2021-12-01 19:09:07 +03:00
Eladash
9afa960979
Fix possible fs::create_path recursion overflow
2021-10-22 15:37:47 +03:00
Eladash
73bdf7481e
Emu: Fix disc game move from hdd0/game
2021-09-17 22:15:48 +02:00
Eladash
66368debf8
Win32 FS: Implement support for large reads/writes
2021-07-16 18:48:20 +03:00
Nekotekina
3c614d95b8
fs: alternative fs::pending_file implementation (Win32)
...
Use MOVEFILE_WRITE_THROUGH instead of sync() on commit().
2021-06-20 22:08:24 +03:00
Nekotekina
160b131de3
types.hpp: implement smin, smax, amin, amax
...
Rewritten the following global utility constants:
`umax` returns max number, restricted to unsigned.
`smax` returns max signed number, restricted to integrals.
`smin` returns min signed number, restricted to signed.
`amin` returns smin or zero, less restricted.
`amax` returns smax or umax, less restricted.
Fix operators == and <=> for synthesized rel-ops.
2021-05-22 12:10:57 +03:00
Nekotekina
e24ada37bf
fs: implement fs::get_temp_dir() (Win32)
...
Trying to workaround issues with sparse files (#10231 )
2021-05-05 19:38:36 +03:00
Nekotekina
a211895e28
shared_ptr.hpp: use for fs::virtual_device
...
Add new constructors for single_ptr and shared_ptr.
Change virtual device prefix format.
2021-04-15 17:26:47 +03:00
Megamouse
a16d8ba3ea
More random changes
2021-04-11 14:01:51 +03:00
Eladash
11824b3916
Win32 FS: Improve fs::create_dir
2021-04-10 23:51:49 +03:00
Eladash
49c5ce30cc
Emulation: Fix boot path resolving
...
* Fix /dev_flash executables path arg. (/host_root is wrong for it)
* Fix usage of /host_root for homebrew applications when it is not mounted, use /app_home.
* Fix path source detection. (don't get fooled by path slashes repetitions, symlinks, '.', ".." and ('\' on Windows))
* Unescape tail of /dev_hdd0 paths.
2021-04-08 23:57:00 +03:00
Nekotekina
95725bf7fc
Add -Werror=missing-noreturn (GCC, clang)
...
May be useful to diagnose functions which fail assertions unconditionally.
2021-04-08 10:29:47 +03:00
Nekotekina
2212a131ef
Fix some -Weffc++ warnings (part 1)
2021-03-31 11:27:09 +03:00
Eladash
2f333424a6
Improve ELF/Trophy loader's error checking
2021-03-23 16:05:23 +03:00
Nekotekina
a6350d5dd1
Fixup write_gather (Linux, BSD)
...
Split iovec into small portions (256 for now)
2021-03-09 15:54:04 +03:00
Nekotekina
a4fdbf0a88
Enable -Wstrict-aliasing=1 (GCC)
...
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina
87af905018
Enable -Wunused-parameter
2021-03-06 18:07:08 +03:00
Nekotekina
090a769bf6
Implement fs::sync (Linux/POSIX)
2021-02-23 18:24:50 +03:00
Eladash
932f31e37b
Atomic PARAM.SFO writes
2021-02-23 11:29:23 +03:00
Nekotekina
0a23a5ef50
Rewrite fs::get_parent_dir
...
Don't analyse full path if possible.
2021-02-12 21:43:30 +03:00
Nekotekina
78bad361ab
Fix fs::unread (Linux)
...
Detach from fs::lock
Handle existing file case (unlink it).
2021-02-02 01:05:53 +03:00