| Age | Commit message (Collapse) | Author |
|
svc: Add missing sanitizing checks for MapSharedMemory/UnmapSharedMemory
|
|
service: Update function tables
|
|
aoc_u: Stub GetAddOnContentListChangedEvent
|
|
hid: Minor cleanup-related changes
|
|
This event signals the game when new DLC is purchased from the eShop while the game is running. Since, for the forseeable future, yuzu will not have this ability, it seems safe to stub with a dummy event that will never fire. This is needed to boot Sonic Mania Plus (update v1.04).
|
|
Needed by arms due to new hid rework
|
|
Updated based off information provided by Switchbrew.
|
|
Updated based off information provided by Switchbrew.
|
|
Updated based off information provided by Switchbrew.
|
|
Updated based off information provided by switchbrew.
|
|
Updated based off information provided by Switchbrew.
|
|
Added based off information provided by Switchbrew
|
|
Updated based off information provided by Switchbrew.
|
|
Updated based on information from Switchbrew.
|
|
svc: Add missing error checks in svcArbitrateLock/svcArbitrateUnlock
|
|
svcArbitrateLock/svcArbitrateUnlock
The kernel itself checks whether or not the provided addresses are word
aligned before continuing, so we should be doing the same.
|
|
Aligning on 4KB pages isn't a Switch-specific thing, so this can be
moved to common so it can be used with other things as well.
|
|
InitializeWithId needs to return an id which is a u32 which should be a non zero value
|
|
Now that the changes clarifying the address spaces has been merged, we
can wrap the checks that the kernel performs when mapping shared memory
(and other forms of memory) into its own helper function and then use
those within MapSharedMemory and UnmapSharedMemory to complete the
sanitizing checks that are supposed to be done.
|
|
swap.h only needs to be present in the header for the type aliases and
definitions, it's not actually needed in the cpp files though. input.h
is just unused entirely in xpad.h
|
|
Given it's unused, we may as well toss it.
|
|
LedPattern's constructor
|
|
This is only useful in headers.
|
|
This is just a lookup table, and since it's private, there's nothing
really stateful about it, so we can just move it into the cpp file.
|
|
This literally does nothing.
|
|
These classes are non-trivial and are definitely going to be changed in
the future, so we default these to prevent issues with forward
declarations, and to keep the compiler from inlining tear-down code.
|
|
cpp file
The destructor doesn't need to be a pure-virtual function.
|
|
"Better Hid" Rework Part 1
|
|
svc: Clarify enum values for AddressSpaceBaseAddr and AddressSpaceSize in svcGetInfo()
|
|
Reason for the change is to allow both docked and undocked mode to work
|
|
|
|
* Implement VI ConvertScalingMode
* Fixed push enum
* Scale mode now uses Nintendo scale mode as an enum as well
|
|
core: Convert shared_ptr instances into unique_ptr instances where applicable for System and Cpu
|
|
shared_ptrs where applicable
The data retrieved in these cases are ultimately chiefly owned by either
the RegisteredCache instance itself, or the filesystem factories. Both
these should live throughout the use of their contained data. If they
don't, it should be considered an interface/design issue, and using
shared_ptr instances here would mask that, as the data would always be
prolonged after the main owner's lifetime ended.
This makes the lifetime of the data explicit and makes it harder to
accidentally create cyclic references. It also makes the interface
slightly more flexible than the previous API, as a shared_ptr can be
created from a unique_ptr, but not the other way around, so this allows
for that use-case if it ever becomes necessary in some form.
|
|
aoc: Fix various bugs in current AOC implementation
|
|
|
|
svcGetInfo()
So, one thing that's puzzled me is why the kernel seemed to *not* use
the direct code address ranges in some cases for some service functions.
For example, in svcMapMemory, the full address space width is compared
against for validity, but for svcMapSharedMemory, it compares against
0xFFE00000, 0xFF8000000, and 0x7FF8000000 as upper bounds, and uses
either 0x200000 or 0x8000000 as the lower-bounds as the beginning of the
compared range. Coincidentally, these exact same values are also used in
svcGetInfo, and also when initializing the user address space, so this
is actually retrieving the ASLR extents, not the extents of the address
space in general.
|
|
Falls back to title ID + 0x1000, which is what HOS does.
|
|
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()
|