summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/client_session.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* A bit of a redesign.Subv2016-12-011-4/+1
| | | | | | | 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.
* IPC/HLE: Associate the ClientSessions with their parent port's HLE interface if it exists.Subv2016-12-011-0/+6
| | | | Pass the triggering ServerSession to the HLE command handler to differentiate which session caused the request.
* Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.Subv2016-12-011-0/+50
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.