summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/vfs_real.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* common: Change semantics of UNREACHABLE to unconditionally crashLiam2022-06-141-1/+1
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* vfs: Partially implement GetFileTimeStampRawMorph2021-09-141-0/+29
| | | | Gets rid of homebrew warnings using this func
* vfs_real: Fix Mode to FileAccessMode conversionMorph2021-06-221-6/+1
| | | | These enforce requiring the file to exist prior to opening.
* common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270)Morph2021-05-261-123/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only
* file_sys: Resolve cases of variable shadowingLioncash2021-05-021-8/+8
| | | | Brings us closer to enabling -Wshadow as an error in the core code.
* vfs_real: When moving files or directories, don't assume file opening will succeedcomex2021-01-231-4/+10
| | | | | | | Found this via a warning, but it's a substantive fix. Since this is only for a cache, it should be safe to silently drop the entry if opening fails. I think.
* Merge pull request #5183 from lioncash/alias2bunnei2020-12-121-12/+12
|\ | | | | vfs: Use existing type aliases consistently
| * vfs: Use existing type aliases consistentlyLioncash2020-12-101-12/+12
| | | | | | | | | | Makes use of the VirtualDir and VirtualFile aliases across the board instead of having a few isolated places that don't use it.
* | Revert "Merge pull request #5176 from Morph1984/fix-createfile"Morph2020-12-121-6/+2
|/ | | | | This reverts commit 6d6115475b4edccdf1bb4e96ecc3d3b1be319e76, reversing changes made to 5fe55b16a11d9ec607fb8a3fdddc77a4393cd96a.
* vfs_real: Fix CreateFile for files without a file extensionMorph2020-12-091-2/+6
|
* vfs_real: Resolve sign conversion warningsLioncash2020-08-181-2/+2
|
* vfs_real: Avoid redundant map lookupsLioncash2020-08-181-30/+46
| | | | | Avoids some trivially avoidable map lookups by keeping the result of find operations around and querying them.
* common/fileutil: Convert namespace to Common::FSLioncash2020-08-161-83/+94
| | | | | | | | | | | | Migrates a remaining common file over to the Common namespace, making it consistent with the rest of common files. This also allows for high-traffic FS related code to alias the filesystem function namespace as namespace FS = Common::FS; for more concise typing.
* file_sys/mode: Make use of DECLARE_ENUM_FLAG_OPERATORS with ModeLioncash2020-08-031-13/+17
| | | | Same behavior, minus a hand-rolled operator.
* vfs_real: Fix MoveFileMorph2020-07-101-10/+17
| | | | | | The file wasn't closed prior to being renamed / moved, throwing an error that states "The process cannot access the file because it is being used by another process." Fix this by closing the file prior to a rename / move operation. Fixes saving in Luigi's Mansion 3 and KATANA KAMI: A Way of the Samurai Story.
* vfs: Remove InterpretAsDirectory and related functionsZach Hilman2018-10-191-3/+0
| | | | When writing VFS, it initally seemed useful to include a function to in-place convert container files into directories in one homogenous directory structure, but re-evaluating it now there have been plenty of chances to use it and there has always been a better way. Removing as it is unused and likely will not be used.
* fsmitm: Cleanup and modernize fsmitm portZach Hilman2018-09-241-2/+2
|
* vfs: Add GetEntries methodZach Hilman2018-09-221-0/+17
| | | | Maps name string to directory or file.
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-4/+4
|
* vfs_real: Forward declare IOFileLioncash2018-09-021-0/+6
| | | | | | Eliminates the need to rebuild some source files if the file_util header ever changes. This also uncovered some indirect inclusions, which have also been fixed.
* vfs_real: Remove unused variable in CreateDirectoryRelative()Lioncash2018-08-271-1/+0
|
* registration: Various style and documentation improvementsZach Hilman2018-08-121-6/+10
| | | | | | Fix logic in RealVfsFilesystem Create methods Remove magic numbers Fix regex errors
* vfs_real: Add CreateFullPath to Create* operationsZach Hilman2018-08-121-12/+6
|
* registration: Update documentation and styleZach Hilman2018-08-121-5/+12
|
* vfs_real: Add CreateFullPath to CreateFileZach Hilman2018-08-121-3/+6
| | | | Fixes bugs with calling CreateFile when the immediate directory does not exist.
* file_util: Use enum instead of bool for specifing path behaviorZach Hilman2018-08-091-17/+27
|
* vfs: Add unreachable assert to file permissions converterZach Hilman2018-08-091-1/+3
|
* vfs: Add RealVfsFilesystem implementationZach Hilman2018-08-091-75/+252
|
* RomFS ExtractionZach Hilman2018-07-281-0/+6
|
* VFS Regression and Accuracy Fixes (#776)Zach Hilman2018-07-241-20/+27
| | | | | | | | | | | | | | | | * Regression and Mode Fixes * Review Fixes * string_view correction * Add operator& for FileSys::Mode * Return std::string from SanitizePath * Farming Simulator Fix * Use != With mode operator&
* file_util, vfs: Use std::string_view where applicableLioncash2018-07-221-18/+39
| | | | | Avoids unnecessary construction of std::string instances where applicable.
* file_util: Use a u64 to represent number of entriesLioncash2018-07-221-3/+3
| | | | | This avoids a truncating cast on size. I doubt we'd ever traverse a directory this large, however we also shouldn't truncate sizes away.
* vfs_real: Remove redundant copying of std::vector instances in GetFiles() and GetSubdirectories()Lioncash2018-07-211-2/+3
| | | | | We already return by value, so we don't explicitly need to make the copy.
* partition_filesystem, vfs_real: Add missing standard includesLioncash2018-07-211-0/+1
|
* partition_filesystem, vfs_real: Use std::move in ReplaceFileWithSubdirectory() where applicableLioncash2018-07-211-1/+2
| | | | Avoids unnecessary atomic increment and decrement operations.
* partition_filesystem, vfs_real: Use std::distance() instead of subtractionLioncash2018-07-211-2/+5
| | | | This is a little bit more self-documenting on what is being done here.
* Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman2018-07-191-0/+177
| | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
* Revert "Virtual Filesystem (#597)"bunnei2018-07-081-168/+0
| | | | This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
* Virtual Filesystem (#597)Zach Hilman2018-07-061-0/+168
* Add VfsFile and VfsDirectory classes * Finish abstract Vfs classes * Implement RealVfsFile (computer fs backend) * Finish RealVfsFile and RealVfsDirectory * Finished OffsetVfsFile * More changes * Fix import paths * Major refactor * Remove double const * Use experimental/filesystem or filesystem depending on compiler * Port partition_filesystem * More changes * More Overhaul * FSP_SRV fixes * Fixes and testing * Try to get filesystem to compile * Filesystem on linux * Remove std::filesystem and document/test * Compile fixes * Missing include * Bug fixes * Fixes * Rename v_file and v_dir * clang-format fix * Rename NGLOG_* to LOG_* * Most review changes * Fix TODO * Guess 'main' to be Directory by filename