aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/service.h
AgeCommit message (Collapse)Author
2023-08-19sockets: avoid locking around socket session callsLiam
2023-04-25core: service: Add FunctionInfoTyped to allow expanding existing interfacesgerman77
2023-03-01nvnflinger: fix nameLiam
2023-03-01service: move hle_ipc from kernelLiam
2023-02-21service: refactor server architectureLiam
Converts services to have their own processes
2022-10-31kernel: invert session request handling flowLiam
2022-10-23core: barrier service thread shutdownLiam
2022-06-26core: Replace all instances of ResultCode with Resultgerman77
2022-04-23general: Convert source file copyright comments over to SPDXMorph
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.
2022-04-11hle: kernel: Use std::mutex instead of spin locks for most kernel locking.bunnei
2022-04-02hle: service: Add option for service interfaces to create or use the default ↵bunnei
thread.
2022-03-24hle: vi: Integrate new NVFlinger and HosBinderDriverServer service.bunnei
2021-07-20hle: service: sm: Refactor to better manage ports.bunnei
2021-07-20hle: service: Add a helper module for managing kernel objects.bunnei
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-10hle: service: Increase arbitrary max sessions limit.bunnei
- Pokemon Sword/Shield are still hitting this for some reason, causing an svcBreak.
2021-06-09hle: service: Use correct size for ServerSessionCountMax.bunnei
2021-06-09hle: kernel: KServerSession: Fix client disconnected.bunnei
- Prevents a cloned session's handler from being overwritten by another disconnected session. - Fixes session handler nullptr asserts with Pokemon Sword & Shield.
2021-06-09hle: service: Increase arbitrary max sessions limit.bunnei
- Pokemon Sword/Shield are still hitting this for some reason, causing an svcBreak.
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-05-16core: Make variable shadowing a compile-time errorLioncash
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.
2021-05-10hle: service: Add support for dispatching TIPC requests.bunnei
2021-05-10hle: service: Implement IPC::CommandType::Close.bunnei
- This was not actually closing sessions before.
2021-05-10hle: kernel: Implement named service ports using service interface factory.bunnei
- This allows us to create a new interface each time ConnectToNamedPort is called, removing the assumption that these are static.
2021-05-05hle: kernel: Remove deprecated Object class.bunnei
2021-05-05hle: kernel: Migrate KSession, KClientSession, and KServerSession to ↵bunnei
KAutoObject.
2020-12-28hle: service: Acquire and release a lock on requests.bunnei
- This makes it such that we can safely access service members from CoreTiming thread.
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-11-24hle: services: Fix a crash with improper NVFlinger lifetime management. (#4977)bunnei
* hle: services: Fix a crash with improper NVFlinger lifetime management. - This crash would happen when attempting to shutdown yuzu early on in boot.
2020-09-07service: Remove two usages of the global system accessorLioncash
Removes more instances of reliance on global state.
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-09-21services: Pass FileSystemController as reference to services that need itZach Hilman
2019-06-28fsp-srv: Implement OutputAccessLogToSdCardZach Hilman
Allows games to log data to the SD.
2019-04-04core: Add missing override specifiers where applicableLioncash
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.
2019-02-15core_timing: Convert core timing into a classLioncash
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.
2018-12-13Fix Service object leak on emulation stopJens Schmer
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.
2018-10-13filesystem: Make CreateFactories() and InstallInterface() take a ↵Lioncash
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.
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi
2018-09-02service: Migrate global named port map to the KernelCore classLioncash
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.
2018-08-12vfs: Make type hierarchy objects classes instead of structsLioncash
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.
2018-08-08core: Port core to VfsFilesystem for file accessZach Hilman
2018-08-01kernel: Move object class to its own source filesLioncash
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.
2018-07-23core: Make converting constructors explicit where applicableLioncash
Avoids unwanted implicit conversions. Thankfully, given the large amount of cleanup in past PRs, only this tiny amount is left over to cover.
2018-04-20core: Relocate g_service_manager to the System classLioncash
Converts the service manager from a global into an instance-based variable.
2018-01-20Format: Run the new clang format on everythingJames Rowe
2018-01-13yuzu: Update license text to be consistent across project.bunnei
2017-12-29kernel: Fix implementation of ConvertSessionToDomain.bunnei
2017-10-31service: Return proper result code for IPC::CommandType::Close.bunnei
2017-10-18service: Add CreatePort function (that does not register/install).bunnei
2017-10-14hle: Initial implementation of NX service framework and IPC.bunnei