| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
thread.
|
|
|
|
|
|
|
|
- We were double-reserving, causing us to run out of sessions in Pokemon Sword & Shield.
|
|
- Pokemon Sword/Shield are still hitting this for some reason, causing an svcBreak.
|
|
|
|
- Prevents a cloned session's handler from being overwritten by another disconnected session.
- Fixes session handler nullptr asserts with Pokemon Sword & Shield.
|
|
- Pokemon Sword/Shield are still hitting this for some reason, causing an svcBreak.
|
|
- Previously, we would allocate a thread per session, which adds new threads on CloneCurrentObject.
- This results in race conditions with N sessions queuing requests to the same service interface.
- Fixes Pokken Tournament DX crashes/softlocks, which were regressed by #6347.
|
|
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.
|
|
|
|
- This was not actually closing sessions before.
|
|
- This allows us to create a new interface each time ConnectToNamedPort is called, removing the assumption that these are static.
|
|
|
|
KAutoObject.
|
|
- This makes it such that we can safely access service members from CoreTiming thread.
|
|
Completely removes all usages of the global system instance within the
services code by passing in the using system instance to the services.
|
|
* hle: services: Fix a crash with improper NVFlinger lifetime management.
- This crash would happen when attempting to shutdown yuzu early on in boot.
|
|
Removes more instances of reliance on global state.
|
|
kernel objects. (#3154)
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects.
- See https://github.com/citra-emu/citra/pull/4710 for details.
|
|
|
|
Allows games to log data to the SD.
|
|
Applies the override specifier where applicable. In the case of
destructors that are defaulted in their definition, they can
simply be removed.
This also removes the unnecessary inclusions being done in audin_u and
audrec_u, given their close proximity.
|
|
Gets rid of the largest set of mutable global state within the core.
This also paves a way for eliminating usages of GetInstance() on the
System class as a follow-up.
Note that no behavioral changes have been made, and this simply extracts
the functionality into a class. This also has the benefit of making
dependencies on the core timing functionality explicit within the
relevant interfaces.
|
|
Services created with the ServiceFramework base class install themselves as HleHandlers with an owning shared_ptr in the ServerPort ServiceFrameworkBase::port member variable, creating a cyclic ownership between ServiceFrameworkBase and the ServerPort, preventing deletion of the service objects.
Fix that by removing the ServiceFrameworkBase::port member because that was only used to detect multiple attempts at installing a port. Instead store a flag if the port was already installed to achieve the same functionality.
|
|
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.
|
|
|
|
Now that we have a class representing the kernel in some capacity, we
now have a place to put the named port map, so we move it over and get
rid of another piece of global state within the core.
|
|
struct should be used when the data type is very simple or otherwise has
no invariants associated with it. Given these are used to form a
hierarchy, class should be used instead.
|
|
|
|
General moving to keep kernel object types separate from the direct
kernel code. Also essentially a preliminary cleanup before eliminating
global kernel state in the kernel code.
|
|
Avoids unwanted implicit conversions. Thankfully, given the large amount
of cleanup in past PRs, only this tiny amount is left over to cover.
|
|
Converts the service manager from a global into an instance-based
variable.
|
|
|
|
|
|
|
|
|
|
|
|
|