| Age | Commit message (Collapse) | Author |
|
filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem by reference
|
|
svc: Implement svcGetProcessInfo
|
|
This should help diagnose crashes easier and prevent many users thinking that a game is still running when in fact it's just an audio thread still running(this is typically not killed when svcBreak is hit since the game expects us to do this)
|
|
|
|
A fairly basic service function, which only appears to currently support
retrieving the process state. This also alters the ProcessStatus enum to
contain all of the values that a kernel process seems to be able of
reporting with regards to state.
|
|
VfsFilesystem instance by reference
Neither of these functions alter the ownership of the provided pointer,
so we can simply make the parameters a reference rather than a direct
shared pointer alias. This way we also disallow passing incorrect memory values like
nullptr.
|
|
kernel/process: Make CodeSet a regular non-inherited object
|
|
svc: Fix typos in sanitizing checks for MapMemory/UnmapMemory
|
|
Fixed incorrect types for svcBreak
|
|
These only exist to ferry data into a Process instance and end up going
out of scope quite early. Because of this, we can just make it a plain
struct for holding things and just std::move it into the relevant
function. There's no need to make this inherit from the kernel's Object
type.
|
|
Passing an invalid nmap handle to Remap should throw an error
|
|
thread: Remove unnecessary memset from ResetThreadContext()
|
|
Added error codes for nvmap
|
|
Regular value initialization is adequate here for zeroing out data. It
also has the benefit of not invoking undefined behavior if a non-trivial
type is ever added to the struct for whatever reason.
|
|
|
|
|
|
|
|
|
|
HwOpus, Implemented DecodeInterleavedWithPerformance
|
|
svc: Add missing address range sanitizing checks to MapMemory/UnmapMemory
|
|
Kirby input still doesn't work, should fix a lot of other games
|
|
|
|
Added error for invalid nmap handles
|
|
|
|
Used by sonic ages
|
|
This adds the missing address range checking that the service functions
do before attempting to map or unmap memory. Given that both service
functions perform the same set of checks in the same order, we can wrap
these into a function and just call it from both functions, which
deduplicates a little bit of code.
|
|
Used by Mario Party
|
|
HandheldVariant is for specific games which expect handheld controllers to be at position 8(kirby), however this doesn't fix all games as some games require handhelds to be at position 0(snipperclips)
|
|
There's no real need to use a shared pointer in these cases, and only
makes object management more fragile in terms of how easy it would be to
introduce cycles. Instead, just do the simple thing of using a regular
pointer. Much of this is just a hold-over from citra anyways.
It also doesn't make sense from a behavioral point of view for a
process' thread to prolong the lifetime of the process itself (the
process is supposed to own the thread, not the other way around).
|
|
|
|
Fixes arms
|
|
|
|
|
|
|
|
|
|
signal_debugger seems like a more fitting name
|
|
svcBreak reason should be a u32, not a u64.
|
|
|
|
|
|
When loading NROs, svcBreak is called to signal to the debugger that a new "module" is loaded. As no debugger is technically attached we shouldn't be killing the programs execution.
|
|
Fixed assertion due to CountAddOnContent & Casting warnings
|
|
Hardware tests show that trying to unmap an unmapped buffer already should always succeed. Hardware test was tested up to 32 iterations of attempting to unmap
|
|
Word count should be 3 since we're pushing a result code and a u32.
Also fixed up compiler warnings due to casting
|
|
loader: Add support for packed updates
|
|
|
|
This will allow us to easily remove the use of "NFC" in "System"
|
|
This was the result of a typo accidentally introduced in
e51d715700a35a8f14e5b804b6f7553c9a40888b. This restores the previous
correct behavior.
The behavior with the reference was incorrect and would cause some games
to fail to boot.
|
|
Conceptually, it doesn't make sense for a thread to be able to persist
the lifetime of a scheduler. A scheduler should be taking care of the
threads; the threads should not be taking care of the scheduler.
If the threads outlive the scheduler (or we simply don't actually
terminate/shutdown the threads), then it should be considered a bug
that we need to fix.
Attributing this to balika011, as they opened #1317 to attempt to fix
this in a similar way, but my refactoring of the kernel code caused
quite a few conflicts.
|
|
kernel/thread: Make all instance variables private
|
|
|