summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/registered_cache.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistencyarades792023-02-141-1/+1
| | | | Signed-off-by: arades79 <scravers@protonmail.com>
* add static lifetime to constexpr values to force compile time evaluation where possiblearades792023-02-141-1/+1
| | | | Signed-off-by: arades79 <scravers@protonmail.com>
* 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.
* registered_cache: Prevent nullptr dereference when accumulating filesMorph2022-03-271-2/+4
| | | | For whatever reason, nca_file/dir can be nullptr in the list of files/dirs. I have not determined the cause of this yet, so add a nullptr check for these prior to dereferencing them.
* General: Resolve fmt specifiers to adhere to 8.0.0 API where applicableLioncash2021-06-231-5/+8
| | | | Also removes some deprecated API usages.
* common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270)Morph2021-05-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* main: Prevent installing base titles into NANDMorph2021-05-161-0/+7
| | | | Many users have been installing their base titles into NAND instead of adding them into the games list. This prevents users from installing any base titles and warns the user about the action.
* file_sys: Resolve cases of variable shadowingLioncash2021-05-021-14/+18
| | | | Brings us closer to enabling -Wshadow as an error in the core code.
* core: Silence warnings when compiling without assertsReinUsesLisp2021-01-051-1/+2
|
* registered_cache: Make use of ends_with for string suffix checkingLioncash2020-08-231-2/+1
| | | | Simplifies code.
* registered_cache: Make use of designated initializersLioncash2020-08-231-15/+15
| | | | Removes the need for comments to indicate the fields being assigned.
* common/fileutil: Convert namespace to Common::FSLioncash2020-08-161-1/+1
| | | | | | | | | | | | 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.
* Merge pull request #4468 from lioncash/regcachebunnei2020-08-031-10/+15
|\ | | | | registered_cache: Resolve -Wmaybe_uninitialized warnings
| * registered_cache: Resolve -Wmaybe_uninitialized warningsLioncash2020-08-031-10/+15
| | | | | | | | While we're at it, we can avoid a redundant map lookup.
* | registered_cache: Add support for removing folder ncasMorph2020-07-291-50/+51
|/
* Check for empty section0 and CNMT prior to installMorph2020-07-161-3/+19
|
* Use proper install result when overwriting filesMorph2020-07-151-1/+1
|
* Remove global system instance and address feedbackMorph2020-07-151-13/+9
|
* registered_cache: Remove previous update/dlc if it exists on installMorph2020-07-151-10/+76
| | | | - This checks for and removes old updates or dlc based on title id. If a content meta nca exists within the registered cache, it will attempt to remove all the ncas associated with the content meta before installing a new update/dlc
* crypto: Make KeyManager a singleton classFearlessTobi2020-05-201-3/+3
| | | | | | Previously, we were reading the keys everytime a KeyManager object was created, causing yuzu to reread the keys file multiple hundreds of times when loading the game list. With this change, it is only loaded once. On my system, this decreased game list loading times by a factor of 20.
* CMakeLists: Specify -Wextra on linux buildsLioncash2020-04-161-9/+14
| | | | | | | | | | | Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
* core: Migrate off deprecated mbedtls functionsLioncash2019-11-121-5/+5
| | | | | These functions are marked for deprecation and it's recommended that the *_ret variants be used instead.
* configure_debug: Move reporting option to loggingZach Hilman2019-09-221-4/+4
|
* yuzu: Port old usages of Filesystem namespace to FilesystemControllerZach Hilman2019-09-211-0/+1
|
* registered_cache: Process *.cnmt.nca filesZach Hilman2019-09-211-16/+23
| | | Needed to use the RegisteredCache/PlaceholderCache on gamecards.
* registered_cache: Implement PlaceholderCache to manage placeholder and installing contentZach Hilman2019-09-211-0/+150
|
* file_sys: Rename other ContentRecordType membersBakugo2019-07-021-1/+1
|
* file_sys/registered_cache: Improve missing metadata errorBakugo2019-07-011-2/+2
| | | | This can happen when installing NSPs too, not just XCIs.
* file_sys/registered_cache: Ignore DeltaFragment NCAs during installationBakugo2019-07-011-0/+3
| | | | DeltaFragments are only used to download and apply partial patches on a real console, and are not useful to us at all. Most patch NSPs do not include them, and when they do, it's a waste of space to install them.
* glue: Correct missing bytes in ApplicationLaunchParameterZach Hilman2019-06-261-7/+7
|
* registered_cache: Add getter to determine source slot in content provider unionZach Hilman2019-06-251-0/+14
| | | | Used to determine StorageId source for application data.
* common/hex_util: Combine HexVectorToString() and HexArrayToString()Lioncash2019-06-121-6/+8
| | | | | | These can be generified together by using a concept type to designate them. This also has the benefit of not making copies of potentially very large arrays.
* file_sys: Create ContentProvider interface and default implementationsZach Hilman2019-03-271-100/+175
|
* file_sys/content_archive: Amend name of Data_Unknown5 enum entryLioncash2019-03-191-1/+1
| | | | While we're at it, give each entry some documentation.
* file_sys/registered_cache: Eliminate variable shadowingLioncash2018-12-021-27/+26
| | | | | Also inverts if statements where applicable to allow unindenting code a little bit.
* file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry()Lioncash2018-11-271-22/+22
| | | | | | | | | | These parameters don't need to utilize a shared lifecycle directly in the interface. Instead, the caller should provide a regular reference for the function to use. This also allows the type system to flag attempts to pass nullptr and makes it more generic, since it can now be used in contexts where a shared_ptr isn't being used (in other words, we don't constrain the usage of the interface to a particular mode of memory management).
* file_sys: Use common KeyManager in NCA container typesZach Hilman2018-11-021-5/+8
| | | | Creates a single KeyManager for the entire container and then passes it into the NCA constructor, eliminating several unnecessary KeyManager reads.
* global: Use std::optional instead of boost::optional (#1578)Frederic L2018-10-301-34/+28
| | | | | | | | | | | | | | | | * get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build
* qt: Add support for dumping a DLC Data RomFSZach Hilman2018-10-181-0/+4
|
* registered_cache: Deduplicate results of ListEntry and ListEntryFilterZach Hilman2018-10-171-0/+11
| | | | Prevents a Entry from appearing in the list twice if the user has it installed in two places (e.g. User NAND and SDMC)
* file_sys/registered_cache: Use unique_ptr and regular pointers instead of shared_ptrs where applicableLioncash2018-10-161-7/+7
| | | | | | | | | | | | | | | The data retrieved in these cases are ultimately chiefly owned by either the RegisteredCache instance itself, or the filesystem factories. Both these should live throughout the use of their contained data. If they don't, it should be considered an interface/design issue, and using shared_ptr instances here would mask that, as the data would always be prolonged after the main owner's lifetime ended. This makes the lifetime of the data explicit and makes it harder to accidentally create cyclic references. It also makes the interface slightly more flexible than the previous API, as a shared_ptr can be created from a unique_ptr, but not the other way around, so this allows for that use-case if it ever becomes necessary in some form.
* vfs_concat/vfs_layered: Remove friend declarations from ConcatenatedVfsFileLioncash2018-09-261-1/+1
| | | | | | Given these are only added to the class to allow those functions to access the private constructor, it's a better approach to just make them static functions in the interface, to make the dependency explicit.
* fsmitm: Cleanup and modernize fsmitm portZach Hilman2018-09-241-2/+7
|
* qt: Add UI elements for LayeredFS and related toolsZach Hilman2018-09-221-1/+1
|
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-5/+5
|
* bktr: Fix missing includes and optimize styleZach Hilman2018-09-041-10/+11
|
* registration: Add RegisteredCacheUnionZach Hilman2018-09-041-0/+114
| | | | Aggregates multiple caches into one interface
* main: Only show DRD deprecation warning onceZach Hilman2018-09-041-0/+1
|
* registration: Add support for installing NSP filesZach Hilman2018-09-041-8/+12
|
* file_sys: Replace includes with forward declarations where applicableLioncash2018-09-041-0/+3
| | | | | Cuts down on include dependencies, resulting in less files that need to be rebuilt when certain things are changed.
* vfs_real: Forward declare IOFileLioncash2018-09-021-1/+1
| | | | | | 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.
* registered_cache: Get rid of variable shadowing in ProcessFiles()Lioncash2018-08-271-3/+3
| | | | Prevents compiler warnings.
* file_sys: Cut down on includes and copiesZach Hilman2018-08-231-0/+2
|
* registration: Add GetEntryUnparsed methodsZach Hilman2018-08-231-0/+12
| | | | Returns the file before calling parser on it.
* registration: Add Data_Unknown5 NCAContentTypeZach Hilman2018-08-201-1/+1
|
* filesystem: Add support for loading of system archivesZach Hilman2018-08-191-1/+2
|
* common: Namespace hex_util.h/.cppLioncash2018-08-161-8/+10
| | | | | It's in the common code, so it should be under the Common namespace like everything else.
* registration: Various style and documentation improvementsZach Hilman2018-08-121-5/+8
| | | | | | Fix logic in RealVfsFilesystem Create methods Remove magic numbers Fix regex errors
* registration: Add support for force overwrite of installedZach Hilman2018-08-121-17/+33
|
* registration: Update documentation and styleZach Hilman2018-08-121-7/+16
|
* registration: Take RawCopy function as parameterZach Hilman2018-08-121-7/+9
| | | | Instead of defaulting to VfsRawCopy
* registered_cache: Fix missing reading from yuzu_metaZach Hilman2018-08-121-7/+16
|
* file_sys: Comply to style guidelinesZach Hilman2018-08-121-11/+13
|
* qt: Add 'Install to NAND' option to menuZach Hilman2018-08-121-1/+1
| | | | Prompts for title type on NCA files.
* file_sys: Add RegisteredCacheZach Hilman2018-08-121-0/+435
Manages NAND NCA get and install.