summaryrefslogtreecommitdiffstats
path: root/src/core/loader/deconstructed_rom_directory.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #12677 from GPUCode/whyy-moddersliamwhite2024-01-151-18/+57
|\ | | | | core: Support multiple modules per patcher
| * core: Support multiple modules per patcherGPUCode2024-01-141-18/+57
| |
* | fsp-srv: use program registry for SetCurrentProcessLiam2024-01-111-14/+0
|/
* kernel: restrict nce to applicationsLiam2023-12-231-3/+4
|
* core: Rename patcher fileGPUCode2023-11-291-1/+1
|
* core: Define HAS_NCE macroGPUCode2023-11-251-3/+3
|
* android: Add cpu bakend gui toggleGPUCode2023-11-251-2/+4
|
* arm: Implement native code execution backendLiam2023-11-251-12/+49
|
* kernel: Manually specify aslr region startLiam2023-11-251-1/+1
|
* loader: don't reassign program ID on npdm reparseLiam2023-09-301-1/+1
|
* core: improve debug workflowLiam2023-09-141-4/+4
|
* kernel: offset code entry point for 39-bit address space type (#11326)liamwhite2023-08-251-1/+1
|
* k_process: PageTable -> GetPageTableLiam2023-07-151-1/+1
|
* kernel: use KTypedAddress for addressesLiam2023-03-221-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.
* loader: Support loading subsdk{8,9}jam1garner2021-12-061-2/+3
|
* core: Remove unused includesameerj2021-11-041-3/+0
|
* common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270)Morph2021-05-261-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* core: Make variable shadowing a compile-time errorLioncash2021-05-161-12/+11
| | | | | | Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
* hle: kernel: Rename Process to KProcess.bunnei2021-05-061-2/+2
|
* core: Resolve misc cases of variable shadowingLioncash2021-05-031-2/+2
| | | | | | | | | Resolves shadowing warnings that aren't in a particularly large subsection of core. Brings us closer to turning -Wshadow into an error. All that remains now is for cases in the kernel (left untouched for now since a big change by bunnei is pending), and a few left over in the service code (will be tackled next).
* loader: Resolve instances of variable shadowingLioncash2021-04-271-17/+23
| | | | | Eliminates variable shadowing cases across all the loaders to bring us closer to enabling variable shadowing as an error in core.
* hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable.bunnei2021-02-191-1/+1
|
* core: Eliminate remaining usages of the global system instanceLioncash2020-11-271-3/+0
| | | | | | Removes all remaining usages of the global system instance. After this, migration can begin to migrate to being constructed and managed entirely by the various frontends.
* patch_manager: Remove usages of the global system instanceLioncash2020-11-181-2/+4
| | | | | | | With this, only 19 usages of the global system instance remain within the core library. We're almost there.
* file_sys/romfs_factory: Eliminate usage of the global system accessorLioncash2020-09-171-2/+2
|
* core/loader: Remove dependencies on the global system instanceLioncash2020-09-161-8/+8
| | | | | | | | | Now all that remains is: 18 instances in file_sys code 14 instances in GDB stub code (this can be tossed wholesale) 4 instances in HLE code 2 instances in settings code.
* loader: nso: Fix loader size and arguments.bunnei2020-04-171-13/+34
|
* core: loader: Remove check for 32-bit.bunnei2020-03-031-6/+0
|
* yuzu: Port old usages of Filesystem namespace to FilesystemControllerZach Hilman2019-09-211-1/+3
|
* loader: Move NSO module tracking to AppLoaderZach Hilman2019-05-261-0/+11
| | | Also cleanup of general stuff
* core/core: Move process execution start to System's Load()Lioncash2019-04-121-18/+22
| | | | | | | | | This gives us significantly more control over where in the initialization process we start execution of the main process. Previously we were running the main process before the CPU or GPU threads were initialized (not good). This amends execution to start after all of our threads are properly set up.
* kernel/process: Hook up the process capability parser to the process itselfLioncash2018-12-211-1/+4
| | | | | While we're at it, we can also toss out the leftover capability parsing from Citra.
* loader/nso: Remove dependency on the System classLioncash2018-12-031-2/+1
| | | | | Similar to the NRO changes, we can also pass the process explicitly as a parameter from Load instead of indirecting through the System class.
* nso: Return an optional address from LoadModuleLioncash2018-10-151-7/+15
| | | | | If a malformed NSO is attempted to be loaded, we shouldn't continue onwards. We should be reporting an error and bailing out.
* nso: Make LoadModule take a VfsFile by const referenceLioncash2018-10-151-1/+1
|
* nso/nro: Use default allocation size for arg_dataZach Hilman2018-10-071-2/+2
|
* nso/nro: Add NSO arguments structure to data sectionZach Hilman2018-10-071-1/+3
| | | | Only added if arguments string is non-empty and a pass is requested by loader.
* nso: Optimize loading of IPS patchesZach Hilman2018-10-021-3/+2
| | | | Avoid resource-heavy classes and remove quasi-duplicated code.
* deconstructed_rom_directory: Force NSO loader to patch NSOsZach Hilman2018-10-011-1/+3
|
* kernel/process: Make data member variables privateLioncash2018-09-301-1/+1
| | | | | | | Makes the public interface consistent in terms of how accesses are done on a process object. It also makes it slightly nicer to reason about the logic of the process class, as we don't want to expose everything to external code.
* loader: Make the Load() function take a process as a regular reference, not a SharedPtrLioncash2018-09-291-5/+4
| | | | | | | | 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.
* memory: Dehardcode the use of fixed memory range constantsLioncash2018-09-251-4/+3
| | | | | | | | The locations of these can actually vary depending on the address space layout, so we shouldn't be using these when determining where to map memory or be using them as offsets for calculations. This keeps all the memory ranges flexible and malleable based off of the virtual memory manager instance state.
* process/vm_manager: Amend API to allow reading parameters from NPDM metadataLioncash2018-09-241-7/+4
| | | | | | | | | Rather than hard-code the address range to be 36-bit, we can derive the parameters from supplied NPDM metadata if the supplied exectuable supports it. This is the bare minimum necessary for this to be possible. The following commits will rework the memory code further to adjust to this.
* drd: Parse title ID from program metadataZach Hilman2018-09-041-1/+8
|
* bktr: Fix missing includes and optimize styleZach Hilman2018-09-041-1/+1
|
* loader: Ignore patches on NRO and DRDZach Hilman2018-09-041-0/+4
|
* patch_manager: Add usages of patches to ExeFSZach Hilman2018-09-041-5/+24
|
* drd: Load title ID from program metadataZach Hilman2018-09-041-3/+1
| | | | Previously only loaded from control metadata
* 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-1/+3
| | | | | | | | | | | | | | | | | | | | | | 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.
* service/filesystem: Use forward declarations where applicableLioncash2018-08-211-0/+1
| | | | | | | | 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
* 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-7/+7
| | | Full list of new errors and descriptions in core/loader/loader.h
* Merge pull request #850 from DarkLordZach/icon-metabunnei2018-08-081-2/+66
|\ | | | | Add Icons and Metadata Support
| * Use const where applicableZach Hilman2018-08-071-1/+1
| |
| * Avoid parsing RomFS to directory in NCAZach Hilman2018-08-071-2/+66
| |
* | loader: Fix scope error in DeconstructedRomDirectoryZach Hilman2018-08-071-1/+1
|/
* loader: Make AppLoader_NCA rely on directory loading codeZach Hilman2018-08-061-1/+10
| | | Eliminates duplicate code shared between their Load methods, after all the only difference is how the romfs is handled.
* deconstructed_rom_directory: Remove unused FindRomFS() functionLioncash2018-07-241-29/+0
|
* file_util: Use a u64 to represent number of entriesLioncash2018-07-221-1/+1
| | | | | 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.
* Loader: Only print the module names and addresses if they actually exist.Subv2018-07-211-5/+2
|
* Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman2018-07-191-82/+23
| | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
* General Filesystem and Save Data Fixes (#670)Zach Hilman2018-07-171-2/+1
|
* More improvements to GDBStub (#653)Hedges2018-07-131-0/+3
| | | | | | | | | | | * 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-23/+90
| | | | This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2.
* Virtual Filesystem (#597)Zach Hilman2018-07-061-90/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Rename logging macro back to LOG_*James Rowe2018-07-031-4/+4
|
* general: Make formatting of logged hex values more straightforwardLioncash2018-05-021-3/+3
| | | | | | 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).
* loader: Move old logging macros over to new fmt-capable onesLioncash2018-04-251-4/+4
|
* core, main.h: Abort on 32Bit ROMs (#309)N00byKing2018-04-061-0/+5
| | | | | | * core, main.h: Abort on 32Bit ROMs * main.cpp: Fix Grammar
* deconstructed_rom_directory.cpp: Fix TypoN00byKing2018-04-031-1/+1
|
* core: Move process creation out of global state.bunnei2018-03-141-2/+1
|
* Kernel: Store the program id in the Process class instead of the CodeSet class.Subv2018-03-021-3/+3
| | | | There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them.
* loader: Check error on NPDM load, use TID for CodeSetshinyquagsire232018-02-251-2/+6
|
* loader: Use NPDM information when loading NSOsshinyquagsire232018-02-251-4/+13
|
* deconstructed_rom_directory: Silence formatting specifier warningsLioncash2018-02-141-3/+4
|
* Changed .istorage to .romfsDavid Marcec2018-02-051-4/+4
|
* deconstructed_rom_directory: Implement istorage loading for RomFS.bunnei2018-01-211-2/+67
|
* loader: Minor style fix in deconstructed_rom_directoryRozlette2018-01-211-1/+0
|
* loader: Clean up ctors and includes.bunnei2018-01-201-0/+5
|
* loader: Add DeconstructedRomDirectory for game dumps.bunnei2018-01-201-0/+101