Lioncash
3d2d454c36
kernel: Remove unnecessary includes
Removes unnecessary direct dependencies in some headers and also gets
rid of indirect dependencies that were being relied on to be included.
8 years ago
James Rowe
ea88c44eb8
Format: Run the new clang format on everything
8 years ago
Subv
4a8de6bb00
Kernel/SVC: Pass the current thread as a parameter to ClientSession::SendSyncRequest.
9 years ago
Subv
44f4737f99
Kernel/Sessions: Clean up the list of pending request threads of a session when the client endpoint is closed.
9 years ago
Subv
d7538409fb
Kernel/ServerSession: Keep track of which threads have issued sync requests.
9 years ago
Yuri Kunde Schlesner
5a6d4a2f19
Session: Remove/add some forward declarations
9 years ago
Yuri Kunde Schlesner
82a355b3cd
Kernel: Ensure objects are kept alive during ClientSession disconnection
Fixes #2760
9 years ago
Yuri Kunde Schlesner
41a3feea66
HLE: Move SessionRequestHandler from Service:: to Kernel::
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.
9 years ago
Yuri Kunde Schlesner
467545ed48
Kernel: Centralize error definitions in errors.h
9 years ago
Subv
8e4b05c22a
Kernel/Sessions: Remove the ClientSession::Create function.
It is not meant to be used by anything other than CreateSessionPair.
9 years ago
Subv
f98eb7d315
Kernel: Remove a now unused enum and variable regarding a session's status.
9 years ago
Subv
9c496013b3
Kernel: Use a Session object to keep track of the status of a Client/Server session pair.
Reduce the associated port's connection count when a ServerSession is destroyed.
9 years ago
Subv
3e80a1a1c1
Fixed the codestyle to match our clang-format rules.
9 years ago
Subv
17d8d69c6e
Added a framework for partially handling Session disconnections.
Further implementation will happen in a future commit.
Fixes a regression.
9 years ago
Subv
021e732815
Use std::move where appropriate.
9 years ago
Subv
977039e722
KServerPorts now have an HLE handler "template", which is inherited by all ServerSessions created from it.
9 years ago
Subv
4703561c9e
Declare empty ServerSession and ClientSession constructors as default.
9 years ago
Subv
4c4f50dfaf
Fixed the rebase mistakes.
9 years ago
Subv
4f2326c8a9
A bit of a redesign.
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.
9 years ago
Subv
d2305d375f
IPC/HLE: Associate the ClientSessions with their parent port's HLE interface if it exists.
Pass the triggering ServerSession to the HLE command handler to differentiate which session caused the request.
10 years ago
Subv
302ef594a6
Kernel/IPC: Use Ports and Sessions as the fundamental building block of 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.
10 years ago