Zach Hilman
469f7cefe4
Use const where applicable
8 years ago
Zach Hilman
f89988272e
Avoid parsing RomFS to directory in NCA
8 years ago
Zach Hilman
3150538b3f
content_archive: Add support for titlekey cryptography
8 years ago
Lioncash
5b317d1b80
vfs_vector: Remove unused variable in FindAndRemoveVectorElement()
This wasn't being used for anything, so it can be removed.
8 years ago
Lioncash
0bb1b9c168
vfs_vector: Avoid unnecessary copies where applicable
The lambda elements should be taken by const reference here, and we can
move the virtual directory passed to ReplaceFileWithSubdirectory()
8 years ago
Zach Hilman
5b9d48ba43
Add missing parameter to files.push_back()
8 years ago
Zach Hilman
9b710a5901
Use more descriptive error codes and messages
8 years ago
Zach Hilman
f93e75f496
Use ErrorEncrypted where applicable and fix no keys crash
8 years ago
Zach Hilman
568ce6304c
Add missing includes and use const where applicable
8 years ago
Zach Hilman
272ca87298
Make XCI comply to review and style guidelines
8 years ago
Zach Hilman
03467b64e3
Extract mbedtls to cpp file
8 years ago
Zach Hilman
b10c0d291f
Remove files that are not used
8 years ago
Lioncash
2fb4f00bf7
partition_filesystem: Remove dynamic_cast in PrintDebugInfo()
We shouldn't be upcasting our file instances. Given a
PartitionFilesystem is currently designed to accept any arbitrary
VfsFile instances, casting to a more specific type than that is just bad
design, and shows an interface design issue.
8 years ago
Zach Hilman
2e4c791f79
RomFS Extraction
8 years ago
Zach Hilman
bd410ce242
VFS Regression and Accuracy Fixes ( #776 )
* 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&
8 years ago
Lioncash
6904f9f6b1
partition_filesystem: Use std::move where applicable
Avoids copying a std::string instance and avoids unnecessary atomic
reference count incrementing and decrementing.
8 years ago
Zach Hilman
ac0c52dd5f
NRO Assets and NACP file format
Cleanup
Review fixes
8 years ago
Lioncash
2cbc2717e4
vfs: Correct file_p variable usage within InterpretAsDirectory()
ReplaceFileWithSubdirectory() takes a VirtualFile and a VirtualDir, but
it was being passed a string as one of its arguments. The only reason
this never caused issues is because this template isn't instantiated
anywhere yet.
This corrects an issue before it occurs.
8 years ago
Lioncash
861405d6c0
file_util, vfs: Use std::string_view where applicable
Avoids unnecessary construction of std::string instances where
applicable.
8 years ago
Lioncash
574be087d4
file_util: Use a u64 to represent number of entries
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.
8 years ago
Lioncash
25e1111621
file_sys/errors: Remove redundant object constructor calls
Given we're already constructing the error code, we don't need to call
the constructor inside of it.
8 years ago
Lioncash
285dfd1a6d
vfs_real: Remove redundant copying of std::vector instances in GetFiles() and GetSubdirectories()
We already return by value, so we don't explicitly need to make the
copy.
8 years ago
Lioncash
97f7a15e70
partition_filesystem, vfs_real: Add missing standard includes
8 years ago
Lioncash
ed7f23ef32
partition_filesystem, vfs_real: Use std::move in ReplaceFileWithSubdirectory() where applicable
Avoids unnecessary atomic increment and decrement operations.
8 years ago
Lioncash
24fc1a425a
partition_filesystem, vfs_real: Use std::distance() instead of subtraction
This is a little bit more self-documenting on what is being done here.
8 years ago
Lioncash
785d86d181
vfs_offset: Simplify TrimToFit()
We can simply use std::clamp() here, instead of using an equivalent
with std::max() and std::min().
8 years ago
Lioncash
25510961ea
vfs: Make WriteBytes() overload taking a std::vector pass the std::vector by const reference
Given the data is intended to be directly written, there's no need to
take the std::vector by value and copy the data.
8 years ago
Lioncash
e523ab8b03
vfs: Use variable template variants of std::is_trivially_copyable
Provides the same behavior, but with less writing
8 years ago
Lioncash
556aaf9627
vfs: Amend constness on pointers in WriteBytes() and WriteArrays() member functions to be const qualified
These functions don't modify the data being pointed to, so these can be
pointers to const data
8 years ago
Lioncash
02e5e6fba3
vfs_offset: std::move file and name parameters of OffsetVfsFile
Avoids potentially unnecessary atomic reference count incrementing and
decrementing, as well as string copying.
8 years ago
Lioncash
3fbde66789
partition_filesystem: Return pfs_dirs member variable within GetSubdirectories()
This should be returned here, otherwise pfs_dirs is effectively only
ever added to, but never read.
8 years ago
Lioncash
f92bb43138
savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const member function
This function doesn't alter class state.
8 years ago
Lioncash
a9b596c444
partition_filesystem: Ensure all class members of PartitionFilesystem are initialized
Previously is_hfs and pfs_header members wouldn't be initialized in the
constructor, as they were stored in locals instead. This would result in
things like GetName() and PrintDebugInfo() behaving incorrectly.
While we're at it, initialize the members to deterministic values as
well, in case loading ever fails.
8 years ago
Lioncash
9eb43dc910
content_archive: Make IsDirectoryExeFS() take a shared_ptr as a const reference
There's no need to take this by value when it's possible to avoid
unnecessary copies entirely like this.
8 years ago
Lioncash
701bdfd753
content_archive: Add missing standard includes
8 years ago
Lioncash
bff53f234d
content_archive: std::move VirtualFile in NCA's constructor
Gets rid of unnecessary atomic reference count incrementing and
decrementing.
8 years ago
Lioncash
47858aed98
vfs: Deduplicate accumulation code in VfsDirectory's GetSize()
We can just use a generic lambda to avoid writing the same thing twice.
8 years ago
Zach Hilman
82150bd5c1
Virtual Filesystem 2: Electric Boogaloo ( #676 )
* Virtual Filesystem
* Fix delete bug and documentate
* Review fixes + other stuff
* Fix puyo regression
8 years ago
Zach Hilman
753d85fb0c
General Filesystem and Save Data Fixes ( #670 )
8 years ago
Subv
d4a639a08e
FileSys: Append the requested path to the filesystem base path in DeleteFile.
We were trying to delete things in the current directory instead of the actual filesystem directory. This may fix some savedata issues in some games.
8 years ago
bunnei
99a359777c
savedata_factory: Always create a save directory for games.
8 years ago
bunnei
0c22a8d514
Revert "Virtual Filesystem ( #597 )"
This reverts commit 12e9522b32 .
8 years ago
Zach Hilman
12e9522b32
Virtual Filesystem ( #597 )
* 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
8 years ago
James Rowe
d74d2a77cb
Update clang format
8 years ago
James Rowe
e159c550d8
Rename logging macro back to LOG_*
8 years ago
Zach Hilman
a47f36da7b
Add support for decrypted NCA files ( #567 )
* Start to add NCA support in loader
* More nca stuff
* More changes to nca.cpp
* Now identifies decrypted NCA cont.
* Game list fixes and more structs and stuff
* More updates to Nca class
* Now reads ExeFs (i think)
* ACTUALLY LOADS EXEFS!
* RomFS loads and games execute
* Cleanup and Finalize
* plumbing, cleanup and testing
* fix some things that i didnt think of before
* Preliminary Review Changes
* Review changes for bunnei and subv
8 years ago
Subv
cb4ff57322
Build: Fixed some MSVC warnings in various parts of the code.
8 years ago
Subv
62a67fbd0a
Services/FS: Return the correct error code when trying to mount a nonexistent savedata.
8 years ago
Lioncash
1b310cbb3a
general: Make formatting of logged hex values more straightforward
This makes the formatting expectations more obvious (e.g. any zero padding specified
is padding that's entirely dedicated to the value being printed, not any pretty-printing
that also gets tacked on).
8 years ago
Lioncash
1cd301f2c0
file-sys: convert a StringFromFormat call into fmt::format in GetFullPath()
Lessens the amount to read and gets rid of the PRIX64 macro, allowing us to use a single string
for the whole path, making it easier to read.
8 years ago