aboutsummaryrefslogtreecommitdiff
path: root/src/core/loader
AgeCommit message (Collapse)Author
2018-08-31core/core: Replace includes with forward declarations where applicableLioncash
The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers.
2018-08-28kernel: Eliminate kernel global stateLioncash
As means to pave the way for getting rid of global state within core, This eliminates kernel global state by removing all globals. Instead this introduces a KernelCore class which acts as a kernel instance. This instance lives in the System class, which keeps its lifetime contained to the lifetime of the System class. This also forces the kernel types to actually interact with the main kernel instance itself instead of having transient kernel state placed all over several translation units, keeping everything together. It also has a nice consequence of making dependencies much more explicit. This also makes our initialization a tad bit more correct. Previously we were creating a kernel process before the actual kernel was initialized, which doesn't really make much sense. The KernelCore class itself follows the PImpl idiom, which allows keeping all the implementation details sealed away from everything else, which forces the use of the exposed API and allows us to avoid any unnecessary inclusions within the main kernel header.
2018-08-24file_sys/crypto: Fix missing/unnecessary includesZach Hilman
2018-08-23file_sys: Cut down on includes and copiesZach Hilman
2018-08-23loader: Add new NAX-specific errors and messagesZach Hilman
2018-08-23nax: Add AppLoader_NAX and update loader to support itZach Hilman
2018-08-23xci: Fix error masking issueZach Hilman
Prevents NCA-related errors from being masked into MissingProgramNCA or MissingKeyFile
2018-08-20service/filesystem: Use forward declarations where applicableLioncash
Avoids the need to rebuild multiple source files if the filesystem code headers change. This also gets rid of a few instances of indirect inclusions being relied upon
2018-08-16Merge pull request #1075 from lioncash/includebunnei
loader/{nca, xci}: Remove unnecessary includes and unused member variables
2018-08-15Merge pull request #1005 from DarkLordZach/registered-fmtbunnei
file_sys: Add support for registration format
2018-08-15loader: Make ResultStatus directly compatible with fmtLioncash
We can make the enum class type compatible with fmt by providing an overload of operator<<. While we're at it, perform proper bounds checking. If something exceeds the array, it should be a hard fail, because it's, without a doubt, a programmer error in this case.
2018-08-15loader/nca: Remove unnecessary includes and member variablesLioncash
2018-08-15loader/xci: Remove unnecessary includes and member variablesLioncash
Many of these aren't necessary and will cause this file to be required to be recompiled whenever any changes to those files are made, which lengthens compile times for no reason. This also removes an unused metadata variable from AppLoader_XCI
2018-08-14loader: Remove address mapping remnants from citraLioncash
These mappings are leftovers from citra and don't apply to the Switch.
2018-08-12made ResultStatus a u16David Marcec
2018-08-12Fixed invalid cast in loaderDavid Marcec
GetMessageForResultStatus takes a u16, not a size_t.
2018-08-11loader: Recognize filename '00' as NCAZach Hilman
Needed to avoid mismatch filetype warnings on split NAND NCAs
2018-08-09loader: Add more descriptive errorsZach Hilman
Full list of new errors and descriptions in core/loader/loader.h
2018-08-08loader: Remove unused IdentifyFile overloadZach Hilman
2018-08-08Merge pull request #850 from DarkLordZach/icon-metabunnei
Add Icons and Metadata Support
2018-08-07loader: Fix scope error in DeconstructedRomDirectoryZach Hilman
2018-08-06loader: Add icon and title support to XCIZach Hilman
2018-08-06Use const where applicableZach Hilman
2018-08-06Avoid parsing RomFS to directory in NCAZach Hilman
2018-08-05loader: Make AppLoader_NCA rely on directory loading codeZach Hilman
Eliminates duplicate code shared between their Load methods, after all the only difference is how the romfs is handled.
2018-08-04Merge pull request #849 from DarkLordZach/xcibunnei
XCI and Encrypted NCA Support
2018-08-03kernel/process: Use accessors instead of class members for referencing ↵Lioncash
segment array Using member variables for referencing the segments array increases the size of the class in memory for little benefit. The same behavior can be achieved through the use of accessors that just return the relevant segment.
2018-08-01kernel: Move object class to its own source filesLioncash
General moving to keep kernel object types separate from the direct kernel code. Also essentially a preliminary cleanup before eliminating global kernel state in the kernel code.
2018-08-01Fix merge conflicts with opus and update docsZach Hilman
2018-08-01Use more descriptive error codes and messagesZach Hilman
2018-08-01Use ErrorEncrypted where applicable and fix no keys crashZach Hilman
2018-08-01Add missing includes and use const where applicableZach Hilman
2018-08-01Make XCI comply to review and style guidelinesZach Hilman
2018-08-01Remove files that are not usedZach Hilman
2018-07-24deconstructed_rom_directory: Remove unused FindRomFS() functionLioncash
2018-07-23core: Make converting constructors explicit where applicableLioncash
Avoids unwanted implicit conversions. Thankfully, given the large amount of cleanup in past PRs, only this tiny amount is left over to cover.
2018-07-23Merge pull request #784 from lioncash/loaderbunnei
loader: Minor cleanup
2018-07-23Merge pull request #783 from lioncash/linkerbunnei
linker: Remove unused parameter from WriteRelocations()
2018-07-23loader: Remove unnecessary constructor call in IdentifyFile()Lioncash
RealVfsFile inherits from VfsFile, the instance from std::make_shared is already compatible with the function argument type, making the copy constructor call unnecessary.
2018-07-23linker: Remove unused parameter from WriteRelocations()Lioncash
is_jump_relocation is never used within the function, so we can just remove it.
2018-07-23nro: Replace inclusion with a forward declarationLioncash
It's sufficient to use a forward declaration instead of a direct inclusion here.
2018-07-23nro: Make bracing consistentLioncash
Makes the code more uniform, and also braces cases where the body of an unbraced conditional travels more than one line.
2018-07-23nro: Make constructor explicitLioncash
Makes it consistent with the other Apploader constructors, and prevents implicit conversions.
2018-07-23nro: Remove unused forward declarationLioncash
This isn't used anywhere in the header.
2018-07-23NRO Assets and NACP file formatZach Hilman
Cleanup Review fixes
2018-07-22file_util, vfs: Use std::string_view where applicableLioncash
Avoids unnecessary construction of std::string instances where applicable.
2018-07-21file_util: Use a u64 to represent number of entriesLioncash
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.
2018-07-20Merge pull request #752 from Subv/vfs_loadbunnei
Loader: Only print the module names and addresses if they actually exist.
2018-07-20Loader: Only print the module names and addresses if they actually exist.Subv
2018-07-20Merge pull request #737 from lioncash/movebunnei
filesys/loader: std::move VirtualFile instances in constructors where applicable