aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/service.cpp
AgeCommit message (Collapse)Author
2017-09-16Services/NS: Port ns:s to the new service framework.Subv
2017-06-20Merge pull request #2790 from yuriks/remove-movefromYuri Kunde Schlesner
Remove ResultVal::MoveFrom
2017-06-18ResultVal: Remove MoveFrom()Yuri Kunde Schlesner
Replace it with std::move(result_val).Unwrap(), or Foo().Unwrap() in case you already have an rvalue.
2017-06-18Kernel/IPC: Make HLERequestContext usable from outside kernelYuri Kunde Schlesner
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%)