aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/service.cpp
AgeCommit message (Collapse)Author
2017-06-11Kernel: Basic support for IPC translation for HLE servicesYuri Kunde Schlesner
2017-06-11ServiceFramework: Use separate copy of command bufferYuri Kunde Schlesner
Copy the IPC command buffer to/from the request context before/after the handler is invoked. This is part of a move away from using global data for handling IPC requests.
2017-06-08Service/sm: Convert 'srv:' to ServiceFrameworkYuri Kunde Schlesner
2017-06-08Service: Remove a few redundant namespace qualifiersYuri Kunde Schlesner
2017-06-08Service: Add new ServiceFramework framework for writing HLE servicesYuri Kunde Schlesner
The old "Interface" class had a few problems such as using free functions (Which didn't allow you to write the service handler as if it were a regular class.) which weren't very extensible. (Only received one parameter with a pointer to the Interface object.) The new ServiceFramework aims to solve these problems by working with member functions and passing a generic context struct as parameter. This struct can be extended in the future without having to update all existing service implementations.
2017-06-06Service: Remove unnecessary includes from service.hYuri Kunde Schlesner
This has a huge fallout in terms of needing to fix other files because all service implementations included that file.
2017-06-06Service: Make service registration part of the sm implementationYuri Kunde Schlesner
Also enhances the GetServiceHandle implementation to be more accurate.
2017-06-06Service: Move SRV interface to a new sm/ subdirectoryYuri Kunde Schlesner
This will contain the implementation of the sm (Service Manager) system module.
2017-06-06Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSessionYuri Kunde Schlesner
This allows attaching a HLE handle to a ServerPort at any point after it is created, allowing port/session creation to be generic between HLE and regular services.
2017-06-05HLE: Move SessionRequestHandler from Service:: to Kernel::Yuri Kunde Schlesner
Most of the code that works with this is or will be in the kernel, so it's a more appropriate place for it to be.
2017-01-12Merge pull request #2308 from mailwl/ac-ibunnei
Service/AC: add ac:i service
2016-12-30Service/NFC: stub GetTagInRangeEventmailwl
Fix Fatal Error in Mini-Mario & Friends - amiibo Challenge
2016-12-30Service/AC: add ac:i servicemailwl
2016-12-22Service/NWM: add nwm servicesmailwl
2016-12-15Merge pull request #2314 from mailwl/accountbunnei
Service/ACT: move ACT services to folder
2016-12-14Merge pull request #2249 from Subv/sessions_v3Yuri Kunde Schlesner
Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
2016-12-14Fixed the codestyle to match our clang-format rules.Subv
2016-12-14Service/ACT: move ACT services to foldermailwl
2016-12-11Add all services to the Service namespaceLioncash
Previously there was a split where some of the services were in the Service namespace and others were not.
2016-12-09Moved the HLE command buffer translation task to ServerSession instead of ↵Subv
the HLE handler superclass.
2016-12-09Kernel/IPC: Small codestyle cleanupSubv
2016-12-08Added a framework for partially handling Session disconnections.Subv
Further implementation will happen in a future commit. Fixes a regression.
2016-12-08Use std::move where appropriate.Subv
2016-12-08service: Add mvd and qtm servicesLioncash
Adds the two New3DS-only modules. 3dbrew was used for command information.
2016-12-08service: Add nfc servicesLioncash
3dbrew was used for the command information.
2016-12-05Split SessionRequestHandler::HandleSyncRequest into HandleSyncRequest, ↵Subv
TranslateRequest and HandleSyncRequestImpl. HandleSyncRequest now takes care of calling the command buffer translate function before actually invoking the command handler for HLE services.
2016-12-05KServerPorts now have an HLE handler "template", which is inherited by all ↵Subv
ServerSessions created from it.
2016-11-30A bit of a redesign.Subv
Sessions and Ports are now detached from each other. HLE services are handled by means of a SessionRequestHandler class, Interface now inherits from this class. The File and Directory classes are no longer kernel objects, but SessionRequestHandlers instead, bound to a ServerSession when requested. File::OpenLinkFile now creates a new session pair and binds the File instance to it.
2016-11-30IPC/HLE: Associate the ClientSessions with their parent port's HLE interface ↵Subv
if it exists. Pass the triggering ServerSession to the HLE command handler to differentiate which session caused the request.
2016-11-30Kernel/HLE: Service::Interface no longer inherits from any Kernel object, ↵Subv
and is now its own standalone class. Interface is now used by aggregation in ClientPort, to forward service commands to their HLE implementation if needed.
2016-11-30 Kernel/IPC: Use Ports and Sessions as the fundamental building block of ↵Subv
Inter Process Communication. All handles obtained via srv::GetServiceHandle or svcConnectToPort are references to ClientSessions. Service modules will wait on the counterpart of those ClientSessions (Called ServerSessions) using svcReplyAndReceive or svcWaitSynchronization[1|N], and will be awoken when a SyncRequest is performed. HLE Interfaces are now ClientPorts which override the HandleSyncRequest virtual member function to perform command handling immediately.
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot
2016-08-27LDR: Implement CROwwylele
2016-06-04service: Add other DLP servicesLioncash
Specifically, dlp::CLNT and dlp::FKCL Moves them to their own folder like with other services.
2016-05-17Update ACT:U and create ACT:A (#1809)András Domonkos
* Update ACT_U * Create act_a.h * Create act_a.cpp * Add service ACT:A * Add ACT:A source and header * Fix wrong header
2016-04-05Merge pull request #1435 from mailwl/frd_ubunnei
frd:u: Initial stub some functions
2016-04-03Dummy implementation dlp:SRVR Service.exhalatio
2016-03-27frd:u: Initial stub some functionsmailwl
2016-03-15Reorganize the ndm service path for dummy implement functionJamePeng
SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons The NDM file move to /core/hle/service/ndm/ now!
2015-07-19Change trace/unimplemented service call logs to use hexarchshift
Changes the log to use hex in the parameter list instead of decimal.
2015-06-11Services: Continue separation of services into their own folderspurpasmart96
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot
2015-05-07Common: Remove common.hYuri Kunde Schlesner
2015-04-14De-inline functions from Interface, removing them from service.hYuri Kunde Schlesner
This reduces the time for a full recompile from 65.43s to 59.53s (~9%)
2015-04-03IR: Move The IR services to their own folder and implement "GetHandles"purpasmart96
2015-04-02Services: Stubs and minor changespurpasmart96
2015-03-03Services: Moved the PTM and APT services to their own folderSubv
This coincidentally fixes an issue about the PTM service failing to create its SharedExtSaveData archive due to the FS service not being initialized by the time the creating code runs. Ideally I'd like to move each process to its own folder, and have a single file per process that registers the service classes, which would be in their own files inside that folder. Then each service class would just call functions from the process to complete the commands.
2015-02-16Services: Fixed "Tried to connect to named port err:f".Subv
err:f is a named port, not a service