Commit graph

69 commits

Author SHA1 Message Date
Nekotekina ccf9543b44 Improve vfs::host::unlink on Windows (for sys_fs_rmdir)
Possibly fixes sys_fs_rmdir and other cases of directory removal.
Make sure the directory with deleted files always becomes empty.
For this purpose, temp files are moved to the root of the device.
2019-09-25 18:47:38 +03:00
Nekotekina 54952f6ad6 Use g_fxo for LoadedNpdrmKeys_t
Rename to loaded_npdrm_keys
2019-08-22 02:13:39 +03:00
eladash 1e5e0f3b5e make sys_fs_closedir atomic 2019-07-29 21:55:59 +03:00
Nekotekina 2bc0ea37ab sys_fs: yield PPU on disk access ops 2019-06-08 19:34:55 +03:00
Nekotekina 0d415407c7 sys_fs_unlink: add CELL_EISDIR check 2019-04-12 12:24:36 +03:00
Nekotekina 40142420c1 Implement vfs::host::unlink
Emulate POSIX behaviour in sys_fs_unlink.
This should allow to delete opened files transparently on Windows.
2019-04-10 13:58:12 +03:00
Nekotekina 9736773c04 Implement vfs::host::rename
With spurious access error workaround
2019-04-10 13:58:12 +03:00
elad 3c9f03968c Yield before flushing io buffers in fsync (sys_fs) (#5506) 2019-03-08 16:07:14 +00:00
Nekotekina 522f5ea645 Fix cellFsGetFreeSize (following #5304)
Simplify device name extraction
2018-12-24 16:04:46 +03:00
RipleyTom 077e710e3a sys_fs_fcntl with parameter 0xC0000002 should extract device path from the given path and use that to gather free space information 2018-12-10 14:24:07 +03:00
eladash 4baa159523 cellFsOpen flag fix 2018-11-24 02:54:48 +03:00
eladash 57b7892de6 Fix typo in sys_fs_mkdir
create_path is a less resticted version of create_dir, it doesnt check for EEXIST for one.
2018-11-12 13:28:58 +03:00
Nekotekina b94e98aed5 Rewrite sys_fs_opendir
Rewrite lv2_dir object
Support split files and mount points
2018-09-15 17:18:40 +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 c49c7de427 sys_fs_stat: support split files
Was forgotten after sys_fs_open
2018-08-30 14:56:45 +03:00
Nekotekina 363811981d Reintroduce LOG_CHANNEL
Groundwork for further improvements
2018-08-25 15:39:00 +03:00
Nekotekina 62f9a2dc4b sys_fs_open: support split files 2018-08-14 15:14:06 +03:00
scribam 1ae724f739 sys_fs: returns the correct error value when the path is 0 or an empty string 2018-03-23 21:45:22 +04:00
Robbie 00b1ff752d Add flag for rockband. Tests have shown it independent other flags. But, actual use is currently not known. 2018-02-18 04:29:41 +04:00
Nekotekina cce0ad0c35 Clean vm::ps3 namespace use 2018-02-09 17:49:37 +03:00
Ofek a6208d2bd7 Reset initial seek position in MSELF files (#3977) 2017-12-23 23:18:55 +04:00
Zion 17bfb3beaf various memory access violation fixes (and friends) (#3930)
* various memory access violation fixes

* Another fix, for motorstorm demo

* Better stub cellGameUpdateCheckStartAsync and FinishAsync, Fixes #3934
2017-12-16 04:03:49 +04:00
Nekotekina 74c248150b Log sys_fs_utime values 2017-11-23 18:38:05 +03:00
Nekotekina 5b19908996 Escape problematic characters in VFS
With full-width <>:"\|?*
2017-10-11 22:01:37 +03:00
Nekotekina 5c93acefd9 Try to fix some fs errors 2017-09-19 15:07:07 +03:00
Nekotekina a428dac71c sys_fs_mkdir: implement ENOENT 2017-09-19 15:07:07 +03:00
Nekotekina 669d953529 Implement fs::error::notempty 2017-09-14 00:23:23 +03:00
Nekotekina ae1e9e78db sys_fs: use g_tls_error for diagnostic
Affected syscalls:
sys_fs_open
sys_fs_opendir
sys_fs_stat
sys_fs_mkdir
sys_fs_fcntl (get free space)
2017-09-14 00:23:23 +03:00
Nekotekina 83e139cd1a Improve sys_fs_ftruncate
Handle stream API lock (EBUSY)
Handle append mode
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 613214cdca Improve error formatting 2017-08-08 22:17:51 +03:00
RipleyTom d793f8ad78 Implements sys_fs_disk_free 2017-07-04 16:16:32 +03:00
Nekotekina 88fef183a3 config.yml: Log section optimized 2017-05-15 14:37:05 +03:00
Nekotekina 8df95dbe39 Stub sys_fs syscalls 2017-05-11 19:05:41 +03:00
Nekotekina b1e8eefad0 cellFs fixes
cellFsAllocateFileAreaWithoutZeroFill implemented
2017-05-07 15:24:07 +03:00
Nekotekina e8d76ede14 sys_fs_fsync fix 2017-05-05 00:11:57 +03:00
Nekotekina 8055d83da2 sys_fs_fget_block_size improved 2017-04-26 20:31:39 +03:00
Nekotekina b0a83cdb56 sys_fs_lsn_get_cda_size stub 2017-04-26 20:26:29 +03:00
Nekotekina 3f5951c9f8 sys_fs_fcntl update 2017-04-26 16:10:26 +03:00
Nekotekina c3c442ccb1 cellFsGetFreeSize implemented 2017-04-26 02:27:35 +03:00
Nekotekina a95a63a58a sys_fs_lsn_lock implemented 2017-04-26 02:27:35 +03:00
Nekotekina 1bbb76fa20 sys_fs_test implemented 2017-04-26 02:27:35 +03:00
Nekotekina 256dfc5729 sys_fs_fsync implemented
sys_fs_fdatasync implemented as equal function
2017-04-26 02:27:34 +03:00
Nekotekina d7c3d1ce12 sys_fs: 0xc0000006 stub 2017-04-26 02:27:34 +03:00
Nekotekina 0f95736c36 cellFsGetDirectoryEntries rewritten 2017-04-26 02:27:34 +03:00
Nekotekina 0393c7f52c fs:: handle negative seek 2017-03-27 01:15:41 +03:00
Jake 65696bf6a3 Crypto: fix sprx/self check in npDrm and edata fixes 2017-03-25 14:26:27 +03:00
Jake a6f8e4f6b3 Edat / Sdata: On the fly decryption for edat, fix EDAT_FLAG_0x20 decryption 2017-03-10 19:39:01 -06:00