| Age | Commit message (Collapse) | Author |
|
|
|
- We were double-reserving, causing us to run out of sessions in Pokemon Sword & Shield.
|
|
|
|
- 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.
|
|
Transition to PascalCase for result names.
|
|
|
|
issues"
This reverts commit fc086f93b2165b5c210cb7dcd6c18ebe17f1fd7b.
|
|
|
|
- Fixes our error checking of names as well.
|
|
KSession.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KAutoObject.
|
|
|
|
|
|
|
|
Completely removes all usages of the global system instance within the
services code by passing in the using system instance to the services.
|
|
We can check the end of the string first for null-termination, rather
than the beginning of the string.
|
|
|
|
Removes more instances of reliance on global state.
|
|
This makes it more inline with its currently unavailable standardized
analogue std::derived_from.
While we're at it, we can also make the template match the requirements
of the standardized variant as well.
|
|
|
|
service: Update function tables
|
|
|
|
Co-authored-by: David <25727384+ogniK5377@users.noreply.github.com>
|
|
|
|
|
|
|
|
This increases the PointerBufferSize as a lager one is required by some services.
This change is still not hw-accurate, but it is proven to work in Ryujinx.
Instead of using a hardcoded size, we should figure out the specific values for each service in the future. Some of them can be taken from Atmosphere: https://github.com/Atmosphere-NX/Atmosphere/search?q=PointerBufferSize.
|
|
|
|
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.
|
|
With this, all kernel objects finally have all of their data members
behind an interface, making it nicer to reason about interactions with
other code (as external code no longer has the freedom to totally alter
internals and potentially messing up invariants).
|
|
Makes it much nicer to locally reason about server session behavior, as
part of its functionality isn't placed around other classes.
|
|
Now it also indicates the name and max session count. This also gives a
name to the unknown bool. This indicates if the created port is supposed
to be using light handles or regular handles internally. This is passed
to the respective svcCreatePort parameter internally.
|
|
These auto-deduce the result based off its arguments, so there's no need
to do that work for the compiler, plus, the function return value itself
already indicates what we're returning.
|
|
Gets rid of the need to keep the variables separate from their actual
initialization spots.
|
|
Changed logging to be "Log before execution", Added more error logging, all services/svc should now log on some level
|
|
services should now log on some level
|
|
Avoids the need to create a copy of the std::string instance
(potentially allocating).
The only reason RegisterService takes its argument by value is because
it's std::moved internally.
|
|
These are needed by Edizon to boot. They are used to see if a user is using SX OS, as SX OS registers a custom service called 'tx' and attempting to register a service of the same name lets the application know if it is present.
|
|
This will allow us to easily remove the use of "NFC" in "System"
|
|
Gets rid of a few indirect inclusions.
|
|
Due to keeping the code style consistent in the yuzu codebase. `rb = rp.MakeBuilder(...)` was replaced with `rb{ctx, ...}`
|
|
Courtesy of @ogniK5377.
This also moves them into the cpp file and limits the visibility to
where they're directly used. It also gets rid of unused or duplicate
error codes.
|
|
The only reason this include was necessary, was because the constructor
wasn't defaulted in the cpp file and the compiler would inline it
wherever it was used. However, given Controller is forward declared, all
those inlined constructors would see an incomplete type, causing a
compilation failure. So, we just place the constructor in the cpp file,
where it can see the complete type definition, allowing us to remove
this include.
|