summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/ldr (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ro: add separate ro serviceLiam2023-12-091-634/+0
|
* kernel: add KPageTableBaseLiam2023-11-101-23/+22
| | | | Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
* general: fix incorrect conversionsLiam2023-08-081-1/+1
|
* core: remove ResultVal typeLiam2023-08-081-21/+25
|
* kernel: reduce page table region checkingLiam2023-07-151-3/+3
|
* k_process: PageTable -> GetPageTableLiam2023-07-151-7/+7
|
* memory: rename global memory references to application memoryLiam2023-03-241-5/+5
|
* kernel: use KTypedAddress for addressesLiam2023-03-221-2/+3
|
* service: move hle_ipc from kernelLiam2023-03-011-6/+6
|
* service: refactor server architectureLiam2023-02-212-13/+12
| | | | Converts services to have their own processes
* general: rename CurrentProcess to ApplicationProcessLiam2023-02-141-6/+7
|
* core: hle: kernel: k_memory_block: Update.bunnei2022-10-191-2/+2
|
* core: Replace all instances of ResultCode with Resultgerman772022-06-271-21/+20
|
* common: Change semantics of UNREACHABLE to unconditionally crashLiam2022-06-141-1/+1
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-232-6/+4
| | | | | 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.
* Merge pull request #8172 from bunnei/kernel-mutexFernando S2022-04-161-1/+2
|\ | | | | hle: kernel: Use std::mutex instead of spin locks for most kernel locking.
| * core: hle: service: Allocate a service thread.bunnei2022-04-121-1/+2
| |
* | hle: kernel: Invalidate entire icache in UnmapProcessMemory and UnmapCodeMemory (fixes #8174)tech-ticks2022-04-091-11/+19
|/
* core: Reduce unused includesameerj2022-03-191-1/+0
|
* hle: service: ldr: Use deterministic addresses when mapping NROs.bunnei2022-03-091-19/+59
| | | | | - Instead of randomization, choose in-order addresses for where to map NROs into memory. - This results in predictable behavior when debugging and consistent behavior when reproducing issues.
* hle: kernel: k_page_table: Update SetProcessMemoryPermission.bunnei2022-01-121-3/+4
|
* hle: service: ldr: UnmapCodeMemory BSS only when set.bunnei2022-01-121-3/+7
|
* hle: kernel: k_page_table: ReadAndWrite -> UserReadWrite.bunnei2022-01-121-1/+1
|
* hle: kernel: k_page_table: Rename *ProcessCodeMemory -> *CodeMemory.bunnei2022-01-121-14/+13
|
* kernel: KPageTable: Rename SetCodeMemoryPermission to SetProcessMemoryPermissionMorph2021-11-211-4/+4
|
* general: Get the current process program id directly from the systemMorph2021-11-041-2/+1
| | | | This allows us to avoid including KProcess' header file in files that only need to get the current process' program id.
* general: Rename GetTitleID to GetProgramIDMorph2021-11-041-1/+1
|
* general: Remove MakeResult helpersMorph2021-11-021-2/+2
| | | | This is made obsolete by the presence of implicit constructors.
* general: Replace RESULT_SUCCESS with ResultSuccessMorph2021-06-021-5/+5
| | | | Transition to PascalCase for result names.
* Merge pull request #6266 from bunnei/kautoobject-refactorbunnei2021-05-081-4/+4
|\ | | | | Kernel Rework: Migrate kernel objects to KAutoObject
| * hle: kernel: Rename Process to KProcess.bunnei2021-05-061-4/+4
| |
* | ldr: Simplify memory copy within LoadNro()Lioncash2021-05-071-5/+3
|/ | | | | | | | We can use the dedicated memory function for performing copies instead of reading into a temporary buffer and then immediately writing it back out to memory. Eliminates a bit of heap memory churn.
* ldr: Use proper namesgerman772021-04-091-16/+16
|
* hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable.bunnei2021-02-191-4/+3
|
* hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others.bunnei2021-02-191-11/+10
|
* hle: kernel: KSystemControl does not belong in Memory namespace.bunnei2021-02-191-2/+2
|
* kernel: Unify result codes (#5890)Chloe2021-02-131-3/+3
| | | | | | | | | * kernel: Unify result codes Drop the usage of ERR_NAME convention in kernel for ResultName. Removed seperation between svc_results.h & errors.h as we mainly include both most of the time anyways. * oops * rename errors to svc_results
* core: arm: Implement InvalidateCacheRange for CPU cache invalidation.bunnei2020-11-291-5/+0
|
* service: Eliminate usages of the global system instanceLioncash2020-11-272-8/+11
| | | | | Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
* ipc_helpers: Remove usage of the global system instanceLioncash2020-11-081-0/+1
| | | | | | | | | Resolves numerous deprecation warnings throughout the codebase due to inclusion of this header. Now building core should be significantly less noisy (and also relying on less global state). This also uncovered quite a few modules that were relying on indirect includes, which have also been fixed.
* hle: service: ldr: Implement UnloadNrr.bunnei2020-10-311-1/+15
| | | | - Used by Final Fantasy X/X-2 HD Remaster.
* core: Fix clang build pt.3Lioncash2020-10-221-2/+2
| | | | Should finally resolve building with clang.
* Revert "core: Fix clang build"bunnei2020-10-211-2/+2
|
* core: Fix clang buildLioncash2020-10-181-2/+2
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* service/ldr: Resolve sign mismatch warningsLioncash2020-08-031-3/+2
| | | | | We were performing an int < size_t comparison. We can just correct the type of the induction variable.
* ldr: Cleanup NRO & NRR structsDavid Marcec2020-06-281-8/+8
|
* Move SHA256Hash to its original positionVolcaEM2020-06-181-2/+2
| | | It's not needed to have it in its previous position anymore
* Remove unnecessary pragmasVolcaEM2020-06-161-8/+0
|
* Revert IsValidNRO refactor but make it more readableVolcaEM2020-06-161-26/+13
|
* Update assert stringVolcaEM2020-06-161-1/+1
|
* Clang-format againVolcaEM2020-06-141-2/+2
|
* Use consistent variable namesVolcaEM2020-06-141-4/+4
|
* Clang-formatVolcaEM2020-06-141-1/+2
|
* Make assert strings consistentVolcaEM2020-06-141-3/+3
|
* Attempt to fix crashes in SSBU and refactor IsValidNROVolcaEM2020-06-141-36/+59
|
* Address review commentsVolcaEM2020-06-021-4/+4
|
* Add comment to nrr_kindVolcaEM2020-05-311-1/+1
| | | According to Atmosphére (https://github.com/Atmosphere-NX/Atmosphere/blob/c7026b90940a1d88f9c10a6d98263bf22e654fa5/libraries/libstratosphere/include/stratosphere/ro/ro_types.hpp), nrr_kind (Atmosphére calls it "type") is 7.0.0+
* ldr: Update NRR/NRO structs VolcaEM2020-05-311-40/+72
| | | | | | | This was based on Switchbrew pages: https://switchbrew.org/wiki/NRR https://switchbrew.org/wiki/NRO
* service: Update function tablesLioncash2020-04-201-0/+1
| | | | | | Keeps the service function tables up to date. Updated based off information on SwitchBrew.
* core: hle: Address various feedback & code cleanup.bunnei2020-04-171-8/+5
| | | | - Should be no functional changes.
* service: ldr: Updates for new VMM.bunnei2020-04-171-150/+215
| | | | - Includes removing some service impls. that are untested.
* services: ldr: Fix MemoryState for read/write regions of NROs.bunnei2020-03-261-5/+15
| | | | - Fixes #3541, used by Final Fantasy VIII Remastered.
* core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classLioncash2019-11-271-2/+3
| | | | | | | | | | | | | | With all of the trivial parts of the memory interface moved over, we can get right into moving over the bits that are used. Note that this does require the use of GetInstance from the global system instance to be used within hle_ipc.cpp and the gdbstub. This is fine for the time being, as they both already rely on the global system instance in other functions. These will be removed in a change directed at both of these respectively. For now, it's sufficient, as it still accomplishes the goal of de-globalizing the memory code.
* core: Migrate off deprecated mbedtls functionsLioncash2019-11-121-1/+1
| | | | | These functions are marked for deprecation and it's recommended that the *_ret variants be used instead.
* hle/service: Replace global system instance calls with instance-based onesLioncash2019-10-061-3/+3
| | | | | | | | | | Migrates the HLE service code off the use of directly accessing the global system instance where trivially able to do so. This removes all usages of Core::CurrentProcess from the service code, only 8 occurrences of this function exist elsewhere. There's still quite a bit of "System::GetInstance()" being used, however this was able to replace a few instances.
* Deglobalize System: LDRDavid Marcec2019-09-222-6/+7
|
* Restore memory perms on svcUnmapMemory/UnloadNroMichael Scire2019-07-111-6/+26
| | | | | | | | | | | | | | | | Prior to PR, Yuzu did not restore memory to RW- on unmap of mirrored memory or unloading of NRO. (In fact, in the NRO case, the memory was unmapped instead of reprotected to --- on Load, so it was actually lost entirely...) This PR addresses that, and restores memory to RW- as it should. This fixes a crash in Super Smash Bros when creating a World of Light save for the first time, and possibly other games/circumstances.
* common/hex_util: Combine HexVectorToString() and HexArrayToString()Lioncash2019-06-121-1/+1
| | | | | | These can be generified together by using a concept type to designate them. This also has the benefit of not making copies of potentially very large arrays.
* Merge pull request #2382 from lioncash/tablebunnei2019-04-161-0/+1
|\ | | | | service: Update service function tables
| * service: Update service function tablesLioncash2019-04-111-0/+1
| | | | | | | | Updates function tables based off information from SwitchBrew.
* | ldr: Mark IsValidNROHash() as a const member functionLioncash2019-04-101-5/+4
| | | | | | | | This doesn't modify instance state, so it can be made const.
* | ldr: Amend parameters for LoadNro/UnloadNro LoadNrr/UnloadNrrLioncash2019-04-101-60/+81
|/ | | | | The initial two words indicate a process ID. Also UnloadNro only specifies one address, not two.
* kernel/vm_manager: Rename CodeStatic/CodeMutable to Code and CodeData respectivelyLioncash2019-03-211-5/+3
| | | | | | | Makes it more evident that one is for actual code and one is for actual data. Mutable and static are less than ideal terms here, because read-only data is technically not mutable, but we were mapping it with that label.
* kernel/process: Remove most allocation functions from Process' interfaceLioncash2018-12-281-11/+16
| | | | | | | | | | | | | | | In all cases that these functions are needed, the VMManager can just be retrieved and used instead of providing the same functions in Process' interface. This also makes it a little nicer dependency-wise, since it gets rid of cases where the VMManager interface was being used, and then switched over to using the interface for a Process instance. Instead, it makes all accesses uniform and uses the VMManager instance for all necessary tasks. All the basic memory mapping functions did was forward to the Process' VMManager instance anyways.
* Merge pull request #1864 from lioncash/nrrbunnei2018-12-081-4/+5
|\ | | | | service/ldr: Amend layouts of NRO and NRR headers
| * service/ldr: Amend layout of the NRO headerLioncash2018-12-051-3/+3
| | | | | | | | | | | | The first word is just a padding byte, it's not an actual entry instruction. Also renames the rest of the entries according to SwitchBrew.
| * service/ldr: Corrent padding within the NRR header layoutLioncash2018-12-051-1/+2
| | | | | | | | | | The padding after the magic signature value should be 12 bytes rather than 28 bytes. The other 16 should be placed after the title ID pattern.
* | service/ldr: Deduplicate instruction cache clearing code in LoadNro()Lioncash2018-12-051-8/+2
|/ | | | We don't need to specify all of the ARM interfaces explicitly.
* Changed logging to be "Log before execution", Added more error logging, all services should now log on some levelDavid Marcec2018-11-261-1/+11
|
* ldr: Clean up error codesLioncash2018-11-191-29/+12
| | | | | | The separate enum isn't particularly necessary here, and the values can just be directly put into the ResultCode instances, given the names are also self-documenting here.
* ldr_ro: Add error check for memory allocation failureZach Hilman2018-11-181-7/+20
|
* ldr_ro: Implement UnloadNro (command 1)Zach Hilman2018-11-151-22/+85
| | | | Includes actual unmapping and address error checking.
* ldr_ro: Fully Implement LoadNro (command 0)Zach Hilman2018-11-151-11/+110
| | | | Includes NRO and BSS error checking, maximum loaded NRO check, NRR hash check, and proper remapping of BSS data.
* ldr_ro: Implement UnloadNrr (command 3)Zach Hilman2018-11-151-2/+84
| | | | Includes initialization check, proper address check, alignment check, and actual unloading of a loaded NRR.
* ldr_ro: Fully implement LoadNrr (command 2)Zach Hilman2018-11-151-0/+112
| | | | Includes parameter error checking, hash enforcement, initialization check, and max NRR load check.
* ldr: Partially implement LoadNro.bunnei2018-10-261-3/+49
| | | | - This is an incomplete implementation. It was tested with Super Mario Party.
* service: Add ldr servicesLioncash2018-07-262-0/+97
Adds the skeleton for the ldr-related services based off the information provided on Switch Brew.