aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/sm
AgeCommit message (Collapse)Author
2021-07-14service: Append service name prefix to common filenamesMorph
2021-06-10hle: service: sm: Remove redundant session reservation, etc.bunnei
- We were double-reserving, causing us to run out of sessions in Pokemon Sword & Shield.
2021-06-09hle: service: sm: Fix GetService setup of session & port.bunnei
2021-06-04hle: kernel: Refactor to allocate a ServiceThread per service handler.bunnei
- 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.
2021-06-02general: Replace RESULT_SUCCESS with ResultSuccessMorph
Transition to PascalCase for result names.
2021-05-20hle: kernel: Implement CloneCurrentObject and improve session management.bunnei
2021-05-20Revert "WORKAROUND: temp. disable session resource limits while we work out ↵bunnei
issues" This reverts commit fc086f93b2165b5c210cb7dcd6c18ebe17f1fd7b.
2021-05-11WORKAROUND: temp. disable session resource limits while we work out issuesbunnei
2021-05-10hle: service: sm: Add TIPC support.bunnei
- Fixes our error checking of names as well.
2021-05-10hle: service: sm: GetService: Reserve session resource when we create a ↵bunnei
KSession.
2021-05-10hle: service: sm: Improve Initialize implementation.bunnei
2021-05-10hle: kernel: KSession: Improve implementation of CloneCurrentObject.bunnei
2021-05-10hle: service: sm: Increase point buffer size.bunnei
2021-05-05hle: kernel: Remove deprecated Object class.bunnei
2021-05-05hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject.bunnei
2021-05-05hle: kernel: Migrate KServerPort to KAutoObject.bunnei
2021-05-05hle: kernel: Migrate KClientPort to KAutoObject.bunnei
2021-05-05hle: kernel: Migrate KSession, KClientSession, and KServerSession to ↵bunnei
KAutoObject.
2021-05-05hle: kernel: Refactor IPC interfaces to not use std::shared_ptr.bunnei
2021-04-08sm: Use proper names, update to 12.xgerman77
2021-01-11core: hle: kernel: Update KSynchronizationObject.bunnei
2020-11-26service: Eliminate usages of the global system instanceLioncash
Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
2020-09-17service/sm: Slightly more efficient string name validationLioncash
We can check the end of the string first for null-termination, rather than the beginning of the string.
2020-09-17service/sm: Eliminate dependency on the global system instanceLioncash
2020-09-07service: Remove two usages of the global system accessorLioncash
Removes more instances of reliance on global state.
2020-08-07common/concepts: Rename IsBaseOf to DerivedFromLioncash
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.
2020-08-03sm: Make use of IsBaseOf for GetServiceDavid Marcec
2020-07-11Merge pull request #4203 from VolcaEM/servicesbunnei
service: Update function tables
2020-06-29Remove duplicate functionsVolcaEM
2020-06-29Use decimal instead of hexadecimalVolcaEM
Co-authored-by: David <25727384+ogniK5377@users.noreply.github.com>
2020-06-29service: Update function tablesVolcaEM
2020-06-27General: Cleanup legacy code.Fernando Sahmkow
2020-04-29Don't fail silently for vi, sm, set and ns servicesDavid Marcec
2020-03-23sm/controller: Increase PointerBufferSizeFearlessTobi
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.
2019-11-28kernel: Implement a more accurate IPC dispatch.bunnei
2019-11-24kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for ↵bunnei
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.
2019-03-11kernel/server_port: Make data members privateLioncash
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).
2019-03-05kernel/server_session: Make data members privateLioncash
Makes it much nicer to locally reason about server session behavior, as part of its functionality isn't placed around other classes.
2018-12-18service/sm: Improve debug log for RegisterServiceLioncash
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.
2018-12-06hle/service, hle/sm: Compress usages of MakeResult()Lioncash
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.
2018-12-06hle/service, hle/sm: Use structured bindings where applicableLioncash
Gets rid of the need to keep the variables separate from their actual initialization spots.
2018-11-29Merge pull request #1801 from ogniK5377/log-before-executebunnei
Changed logging to be "Log before execution", Added more error logging, all services/svc should now log on some level
2018-11-26Changed logging to be "Log before execution", Added more error logging, all ↵David Marcec
services should now log on some level
2018-11-24service/sm: Take std::string by const reference in UnregisterServiceLioncash
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.
2018-11-03sm: Implement RegisterService and UnregisterServiceZach Hilman
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.
2018-10-06Ported #4296 from citraDavid Marcec
This will allow us to easily remove the use of "NFC" in "System"
2018-09-25service: Add missing headers inclusions where applicableLioncash
Gets rid of a few indirect inclusions.
2018-09-19Removed the use of rp.MakeBuilderDavid Marcec
Due to keeping the code style consistent in the yuzu codebase. `rb = rp.MakeBuilder(...)` was replaced with `rb{ctx, ...}`
2018-09-14services/sm: Amend error code constantsLioncash
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.
2018-09-06core/core: Remove unnecessary sm/controller includeLioncash
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.