Silent
974bce19ed
Use path_append instead of operator + to concat paths
...
This allows to cleanly prevent double // slashes when appending paths
While this should not be a problem, Windows seems to have problems
with such paths when paths are very long - and preventing this
is trivial enough.
2019-12-31 19:24:19 +03:00
Silent
9e66f36942
Handle ERROR_FILENAME_EXCED_RANGE error on Windows
2019-12-31 19:24:19 +03:00
Nekotekina
5b9df53c13
C-style cast cleanup (partial)
...
Replace C-style casts with C++ casts.
2019-11-29 00:35:23 +03:00
Nekotekina
587ae17aa2
Simplify fmt::throw_exception
...
Gradual exception deprecation: disallow choosing exception type.
However, the function itself can remain here forever.
2019-11-08 19:27:11 +03:00
Nekotekina
742bd633d8
Remove fs::file::set_delete
...
Since it's Windows-only functionality with limited use.
2019-11-08 19:27:11 +03:00
Nekotekina
46d692d5a6
Fix long path support in fs::statfs on Windows
2019-10-27 19:17:27 +03:00
Nekotekina
839e088ae5
Fix long path support on Windows for UNC path
...
Such as network locations.
2019-10-27 18:53:40 +03:00
RipleyTom
9f9ac4b696
Auto-updater
2019-10-22 01:51:50 +02:00
Nekotekina
7ca76ae5a8
Workaround fs::create_path for drive roots
...
Should fix the regression from #6763
2019-10-15 18:57:16 +03:00
Nekotekina
6b1df1ce31
fs: add long path support on Windows
...
Extend path limit with \\?\ prefix.
2019-10-14 19:42:13 +03:00
Nekotekina
aa659f3c36
Fix minor warning
2019-10-06 20:40:53 +03:00
Rajko Stojadinovic
297e3c5996
Make windows_file::stat return the same mtime as fs::stat
2019-10-05 14:25:34 +03:00
Nekotekina
8f47f9517a
Fix fs::create_path
...
Don't try to create already existing parents
2019-09-24 16:18:28 +03:00
Nekotekina
aa8a7b3e8a
Make errors in Emu::Init verbose and don't crash
...
Allow TTY.log to be disabled if file access failed
Add fs::error::isdir
2019-09-24 05:01:00 +03:00
Kaiwen Xu
68071ddf83
Convert EROFS error
2019-09-05 23:05:30 +03:00
isJuhn
08c12f4c00
File.cpp: add rounding_alignment argument to get_dir_size to allow GetSizeKB functions to report size more accurately
2019-09-03 03:19:49 +03:00
Eladash
95f22b76c6
Fixup after #6329
2019-08-13 04:56:00 +03:00
Eladash
d48d424b19
Return immediatly from fs::remove_all on failure to remove entries
...
This way error code will be reflected properly
2019-08-12 14:37:23 +03:00
msuih
d57124d075
Explicitly cast size_t to integer types
2019-07-01 04:33:23 +03:00
Nekotekina
b2e08100ff
Fix sad bug
2019-06-04 19:13:30 +03:00
Nekotekina
447029a700
Implement fs::file::write_gather (Vectored I/O)
2019-06-03 23:18:39 +03:00
Nekotekina
d52df9352c
fs::rename, use renameat2 on Linux
2019-04-13 22:56:11 +03:00
Nekotekina
0736fc8b28
Add fs::file::set_delete
2019-04-10 13:58:12 +03:00
Nekotekina
a54d9c527f
Simplify fs::file::get_handle
...
Via fs::file_base::get_native_handle method
2019-04-10 13:58:12 +03:00
Nekotekina
a419e98acb
Move PPU and shader cache
...
New hash-based location (already used for SPU)
Bump PPU cache version, improve naming and decrease size
Remove fs::get_data_dir
Disable boot.elf cache
2019-01-14 01:24:05 +03:00
Nekotekina
bd9131ae1c
Implement fs::get_cache_dir
...
Win32: equal to config dir for now
Linux: respect XDG_CACHE_HOME if specified
OSX: possibly incomplete
2019-01-13 14:45:36 +03:00
Nekotekina
20efed66e9
Implement RPCS3_CONFIG_DIR env variable (Win32)
...
Overrides config location, should end with / or \
2019-01-13 14:45:36 +03:00
Jan Beich
33f7a39f5d
fs: implement copy_file() fallback
...
sendfile(2) on DragonFly and FreeBSD can only write into sockets.
2018-12-29 18:07:45 +03:00
vit9696
5a40c1802b
Support macOS bundling for binary distribution
2018-12-16 18:17:21 +03:00
Nekotekina
1fdd013e4b
fs: normalize atime (ensure atime >= mtime)
2018-11-17 14:40:11 +03:00
Nekotekina
c719ae360d
fs: disable ctime (return mtime instead)
2018-11-17 14:40:11 +03:00
Nekotekina
e8b5555630
Rewrite vfs::get and vfs::mount
...
Preprocess . and .. correctly
Don't use recursive locking
Also use std::string_view
Fix format system for std::string and std::string_view
Fix fmt::merge for std::string_view
2018-09-15 17:09:56 +03:00
Nekotekina
ca5158a03e
Cleanup semaphore<> (sema.h) and mutex.h (shared_mutex)
...
Remove semaphore_lock and writer_lock classes, replace with std::lock_guard
Change semaphore<> interface to Lockable (+ exotic try_unlock method)
2018-09-03 23:00:36 +03:00
Nekotekina
8abe6489ed
Mega-cleanup for atomic_t<> and named bit-sets bs_t<>
...
Remove "atomic operator" classes
Remove test, test_and_set, test_and_reset, test_and_complement global functions
Simplify atomic_t<> with constexpr if, remove some garbage
Redesign bs_t<> to use class, mark its methods constexpr
Implement atomic_bs_t<> for optimizations
Remove unused __bitwise_ops concept (should be in other header anyway)
Bitsets can now be tested via safe bool conversion
2018-09-03 21:40:36 +03:00
Nekotekina
441541a42f
Implement fs::make_gather
2018-08-14 12:46:22 +03:00
Nekotekina
eae78a8711
Improve fs::create_path
...
Don't fail if already exists
2018-05-09 22:19:55 +03:00
Nekotekina
f66d5adf5f
Prevent accessing incomplete RPCS3.log.gz
...
Use permissions to make it inaccessible
On Windows, autodelete the file
Implement fs::unread for this purpose
Rename fs::unshare to fs::lock
Fix fs::lock correctness
2018-03-17 00:39:45 +03:00
Zeke Sonxx
c21fa2d8bc
Make fs::dir::open skip forward on failed metadata instead of crashing
2018-02-04 00:21:40 +04:00
Nekotekina
2ac773385f
Clamp utime range (Wnd)
2017-11-26 09:02:37 +03:00
Nekotekina
e77d5cf970
Revert ERROR_INVALID_PARAMETERS
...
I don't want to ignore serious problems in light of easy workarounds.
2017-11-23 18:38:05 +03:00
Nekotekina
6a5ce475b8
Implement fs::unshare (linux)
2017-11-23 18:38:05 +03:00
Unknown
380f90b097
Handle Win32 error 87 ERROR_INVALID_PARAMETER with fs::error::inval
2017-11-20 17:55:41 +03:00
Ani
9b8eb089b1
Handle device not ready in fs::error. Solves #3592
2017-10-29 16:52:12 +03:00
Nekotekina
837c5dddee
Add <typeinfo>
2017-09-19 15:07:07 +03:00
Nekotekina
669d953529
Implement fs::error::notempty
2017-09-14 00:23:23 +03:00
Nekotekina
e00aedd1a0
fs: minor fix
2017-09-14 00:23:23 +03:00
Nekotekina
b415b0e737
fs: atomic truncation
2017-09-04 02:15:29 +03:00
Nekotekina
010b75251f
fs::rename fixed
...
Added overwriting policy
sys_fs_rename improved
2017-08-30 17:14:30 +03:00
Nekotekina
a771fcb397
Fill log with \n
2017-08-29 17:12:13 +03:00
Nekotekina
2570911283
Register Win32 error 32
2017-08-27 16:09:34 +03:00