| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Converts services to have their own processes
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
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.
|
|\
| |
| | |
hle: kernel: Use std::mutex instead of spin locks for most kernel locking.
|
| | |
|
|/ |
|
| |
|
|
|
|
|
| |
- 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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This allows us to avoid including KProcess' header file in files that only need to get the current process' program id.
|
| |
|
|
|
|
| |
This is made obsolete by the presence of implicit constructors.
|
|
|
|
| |
Transition to PascalCase for result names.
|
|\
| |
| | |
Kernel Rework: Migrate kernel objects to KAutoObject
|
| | |
|
|/
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
| |
Completely removes all usages of the global system instance within the
services code by passing in the using system instance to the services.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
- Used by Final Fantasy X/X-2 HD Remaster.
|
|
|
|
| |
Should finally resolve building with clang.
|
| |
|
|
|
|
|
|
|
| |
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
|
|
|
|
|
| |
We were performing an int < size_t comparison. We can just correct the
type of the induction variable.
|
| |
|
|
|
| |
It's not needed to have it in its previous position anymore
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
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+
|
|
|
|
|
|
|
| |
This was based on Switchbrew pages:
https://switchbrew.org/wiki/NRR
https://switchbrew.org/wiki/NRO
|
|
|
|
|
|
| |
Keeps the service function tables up to date.
Updated based off information on SwitchBrew.
|
|
|
|
| |
- Should be no functional changes.
|
|
|
|
| |
- Includes removing some service impls. that are untested.
|
|
|
|
| |
- Fixes #3541, used by Final Fantasy VIII Remastered.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
These functions are marked for deprecation and it's recommended that the
*_ret variants be used instead.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
service: Update service function tables
|
| |
| |
| |
| | |
Updates function tables based off information from SwitchBrew.
|
| |
| |
| |
| | |
This doesn't modify instance state, so it can be made const.
|
|/
|
|
|
| |
The initial two words indicate a process ID. Also UnloadNro only
specifies one address, not two.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
service/ldr: Amend layouts of NRO and NRR headers
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
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.
|
|/
|
|
| |
We don't need to specify all of the ARM interfaces explicitly.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Includes actual unmapping and address error checking.
|
|
|
|
| |
Includes NRO and BSS error checking, maximum loaded NRO check, NRR hash check, and proper remapping of BSS data.
|
|
|
|
| |
Includes initialization check, proper address check, alignment check, and actual unloading of a loaded NRR.
|
|
|
|
| |
Includes parameter error checking, hash enforcement, initialization check, and max NRR load check.
|
|
|
|
| |
- This is an incomplete implementation. It was tested with Super Mario Party.
|
|
Adds the skeleton for the ldr-related services based off the information
provided on Switch Brew.
|