summaryrefslogtreecommitdiffstats
path: root/src/core/loader/nro.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* loader: Ignore patches on NRO and DRDZach Hilman2018-09-041-0/+5
|
* core/core: Replace includes with forward declarations where applicableLioncash2018-08-311-0/+1
| | | | | | | | | | | 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.
* kernel: Eliminate kernel global stateLioncash2018-08-291-2/+4
| | | | | | | | | | | | | | | | | | | | | | 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.
* loader: Remove address mapping remnants from citraLioncash2018-08-151-1/+0
| | | | These mappings are leftovers from citra and don't apply to the Switch.
* loader: Add more descriptive errorsZach Hilman2018-08-101-5/+5
| | | Full list of new errors and descriptions in core/loader/loader.h
* kernel/process: Use accessors instead of class members for referencing segment arrayLioncash2018-08-031-1/+1
| | | | | | | 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.
* nro: Replace inclusion with a forward declarationLioncash2018-07-231-0/+3
| | | | | It's sufficient to use a forward declaration instead of a direct inclusion here.
* nro: Make bracing consistentLioncash2018-07-231-10/+24
| | | | | Makes the code more uniform, and also braces cases where the body of an unbraced conditional travels more than one line.
* NRO Assets and NACP file formatZach Hilman2018-07-231-1/+78
| | | | | | Cleanup Review fixes
* loader/{nca, nro}: std::move VirtualFile in the constructors where applicableLioncash2018-07-201-1/+2
| | | | This avoids unnecessary atomic reference count increments and decrements
* loader/nro: Resolve sign mismatch warningsLioncash2018-07-191-1/+1
|
* Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman2018-07-191-22/+10
| | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
* More improvements to GDBStub (#653)Hedges2018-07-131-0/+4
| | | | | | | | | | | * More improvements to GDBStub - Debugging of threads should work correctly with source and assembly level stepping and modifying registers and memory, meaning threads and callstacks are fully clickable in VS. - List of modules is available to the client, with assumption that .nro and .nso are backed up by an .elf with symbols, while deconstructed ROMs keep N names. - Initial support for floating point registers. * Tidy up as requested in PR feedback * Tidy up as requested in PR feedback
* Revert "Virtual Filesystem (#597)"bunnei2018-07-081-10/+22
| | | | This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
* Virtual Filesystem (#597)Zach Hilman2018-07-061-22/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOsSubv2018-04-211-1/+1
|
* memory: Fix stack region.bunnei2018-03-311-1/+1
|
* kernel: Move stack region outside of application heap.bunnei2018-03-161-1/+1
|
* core: Move process creation out of global state.bunnei2018-03-141-3/+2
|
* Kernel: Store the program id in the Process class instead of the CodeSet class.Subv2018-03-021-2/+2
| | | | There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them.
* Merge pull request #92 from gdkchan/nro_refactorbunnei2018-01-211-2/+2
|\ | | | | Fix NRO entry point
| * Fix NRO Entry Pointgdkchan2018-01-181-2/+2
| |
* | loader: Clean up ctors and includes.bunnei2018-01-201-0/+4
| |
* | loader: Refactor to also pass filepath into IdentifyType.bunnei2018-01-201-1/+1
|/
* Fix NRO loadinggdkchan2018-01-181-20/+9
|
* Remove relocation on NSO/NROgdkchan2018-01-171-9/+0
|
* yuzu: Update license text to be consistent across project.bunnei2018-01-131-1/+1
|
* core: Refactor MakeMagic usage and remove dead code.bunnei2017-10-151-3/+4
|
* Merge remote-tracking branch 'upstream/master' into nxbunnei2017-10-101-6/+6
| | | | | | | | | | | | | | | | | # Conflicts: # src/core/CMakeLists.txt # src/core/arm/dynarmic/arm_dynarmic.cpp # src/core/arm/dyncom/arm_dyncom.cpp # src/core/hle/kernel/process.cpp # src/core/hle/kernel/thread.cpp # src/core/hle/kernel/thread.h # src/core/hle/kernel/vm_manager.cpp # src/core/loader/3dsx.cpp # src/core/loader/elf.cpp # src/core/loader/ncch.cpp # src/core/memory.cpp # src/core/memory.h # src/core/memory_setup.h
* loader: Various improvements for NSO/NRO loaders.bunnei2017-10-101-14/+3
|
* loader: Add support for NRO, as well as various fixes and shared linker.bunnei2017-10-061-0/+173