Lioncash
7695febfa1
loader/nso: Remove dependency on the System class
Similar to the NRO changes, we can also pass the process explicitly as a
parameter from Load instead of indirecting through the System class.
7 years ago
Lioncash
bed872ed38
nso: Return an optional address from LoadModule
If a malformed NSO is attempted to be loaded, we shouldn't continue
onwards. We should be reporting an error and bailing out.
7 years ago
Lioncash
bb9cf8a127
nso: Make LoadModule take a VfsFile by const reference
7 years ago
Zach Hilman
f945e9767c
nso/nro: Use default allocation size for arg_data
7 years ago
Zach Hilman
e09505ff61
nso/nro: Add NSO arguments structure to data section
Only added if arguments string is non-empty and a pass is requested by loader.
7 years ago
Zach Hilman
215b65fe75
nso: Optimize loading of IPS patches
Avoid resource-heavy classes and remove quasi-duplicated code.
7 years ago
Zach Hilman
003b44822a
nso: Add framework to support patching of uncompressed NSOs
7 years ago
Lioncash
a63e6f9dfd
loader: Make the Load() function take a process as a regular reference, not a SharedPtr
A process should never require being reference counted in this
situation. If the handle to a process is freed before this function is
called, it's definitely a bug with our lifetime management, so we can
put the requirement in place for the API that the process must be a
valid instance.
7 years ago
Lioncash
bf45092c61
kernel: Move object class to its own source files
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.
8 years ago
Zach Hilman
29aff8d5ab
Virtual Filesystem 2: Electric Boogaloo ( #676 )
* Virtual Filesystem
* Fix delete bug and documentate
* Review fixes + other stuff
* Fix puyo regression
8 years ago
bunnei
913896cbd9
Revert "Virtual Filesystem ( #597 )"
This reverts commit 77c684c114 .
8 years ago
Zach Hilman
77c684c114
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
Zach Hilman
63f26d5c40
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
827f8ca3c7
Kernel: Store the program id in the Process class instead of the CodeSet class.
There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them.
8 years ago
shinyquagsire23
487f8bc018
loader: Check error on NPDM load, use TID for CodeSet
8 years ago
bunnei
386df282a3
loader: Clean up ctors and includes.
8 years ago
bunnei
023aef053c
loader: Refactor to also pass filepath into IdentifyType.
8 years ago
bunnei
2dafd0d287
nso: Remove code specific to directory loading.
8 years ago
gdkchan
c65ac49238
Remove relocation on NSO/NRO
8 years ago
MerryMage
e35644c005
clang-format
8 years ago
bunnei
1247c53786
yuzu: Update license text to be consistent across project.
8 years ago
bunnei
23ce4f5afc
loader: Various improvements for NSO/NRO loaders.
8 years ago
bunnei
33ea53094c
loader: Add support for NRO, as well as various fixes and shared linker.
8 years ago
bunnei
d454364bca
nso: Fixes to support homebrew NSOs without a MOD header.
8 years ago
bunnei
8c92435ded
nso: Refactor and allocate .bss section.
8 years ago
bunnei
6bafd3f4f7
loader: Add support for loading an NSO.
8 years ago
Subv
7f48aa8d25
Loaders: Don't automatically set the current process every time we load an application.
The loaders will now just create a Kernel::Process, construct it and return it to the caller, which is responsible for setting it as the current process and configuring the global page table.
8 years ago
bunnei
81e22ae8c7
loader: Remove duplicate docstrings.
9 years ago
Emmanuel Gil Peyrot
ebdae19fd2
Remove empty newlines in #include blocks.
This makes clang-format useful on those.
Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
9 years ago
Yuri Kunde Schlesner
396a8d91a4
Manually tweak source formatting and then re-run clang-format
9 years ago
Emmanuel Gil Peyrot
dc8479928c
Sources: Run clang-format on everything.
9 years ago
Emmanuel Gil Peyrot
9a35d1fb4a
Loader: Add a GetFileType method to get the type of a loaded file
10 years ago
Yuri Kunde Schlesner
2d7299a86f
Loader: Remove unnecessary pointer indirection to IOFile
11 years ago
Yuri Kunde Schlesner
6d60acf0f1
Kernel: Introduce skeleton Process class to hold process data
11 years ago
Emmanuel Gil Peyrot
82ec17db7d
Loader: Guess filetype from the magic, or fallback to the extension.
11 years ago
Emmanuel Gil Peyrot
b5237e885d
Loader: Keep a reference to the file and pass it to the correct AppLoader, instead of loading it multiple times.
11 years ago
Emmanuel Gil Peyrot
85030c6e6b
Loader: Never forget to change is_loaded.
11 years ago
purpasmart96
ebfd831ccb
License change
11 years ago
bunnei
1099d83455
Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS virtual functions as "override".
12 years ago
bunnei
2d734bb6c5
Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS classes as "final"
12 years ago
bunnei
62b444cd17
Loader: Refactored use of const.
12 years ago
bunnei
7889cafc76
Loader: Implemented AppLoader interface for abstracting application loading.
- Various cleanups/refactorings to Loader, ELF, and NCCH modules.
- Added AppLoader interface to ELF and NCCH.
- Updated Qt/GLFW frontends to check AppLoader ResultStatus.
NCCH: Removed extra qualification typos.
Loader: Removed unnecessary #include's.
NCCH: Improved readability of memcmp statements.
NCCH: Added missing space.
Elf: Removed unnecessary usage of unique_ptr.
Loader: Removed unnecessary usage of unique_ptr.
12 years ago
bunnei
c144ed5058
Elf: Removed unused macros, changed #include of "common.h" to just "common_types.h".
12 years ago
bunnei
13bdaa6c60
Loader: Cleaned up and removed unused code, refactored ELF namespace.
12 years ago
bunnei
1da361c7ab
Elf: Renamed modules to be consistent with new loader naming, fixed tabs -> spaces.
12 years ago
bunnei
0aca202ae9
Loader: Moved elf and loader modules to a "loader" subdirectory.
12 years ago
bunnei
63e46abdb8
got rid of 'src' folders in each sub-project
12 years ago
bunnei
872d9ae87f
added Dolphin's ELF reader to the project
12 years ago