Yuri Kunde Schlesner
c27dad4cd1
ResultVal: Remove MoveFrom()
Replace it with std::move(result_val).Unwrap(), or Foo().Unwrap() in
case you already have an rvalue.
9 years ago
Yuri Kunde Schlesner
6382e341f8
Kernel/IPC: Make HLERequestContext usable from outside kernel
9 years ago
Yuri Kunde Schlesner
e639024013
Kernel: Basic support for IPC translation for HLE services
9 years ago
Yuri Kunde Schlesner
1e8c1ed676
ServiceFramework: Use separate copy of command buffer
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.
9 years ago
Yuri Kunde Schlesner
211fea5441
Service/sm: Convert 'srv:' to ServiceFramework
9 years ago
Yuri Kunde Schlesner
147ec9e842
Service: Remove a few redundant namespace qualifiers
9 years ago
Yuri Kunde Schlesner
0a7f4f531f
Service: Add new ServiceFramework framework for writing HLE services
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.
9 years ago
Yuri Kunde Schlesner
f68fd997cd
Service: Remove unnecessary includes from service.h
This has a huge fallout in terms of needing to fix other files because
all service implementations included that file.
9 years ago
Yuri Kunde Schlesner
0e3e091a0d
Service: Make service registration part of the sm implementation
Also enhances the GetServiceHandle implementation to be more accurate.
9 years ago
Yuri Kunde Schlesner
c17330e05f
Service: Move SRV interface to a new sm/ subdirectory
This will contain the implementation of the sm (Service Manager) system
module.
9 years ago
Yuri Kunde Schlesner
8a35f3634e
Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSession
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.
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
mailwl
45b03ee367
Service/NFC: stub GetTagInRangeEvent
Fix Fatal Error in Mini-Mario & Friends - amiibo Challenge
9 years ago
mailwl
d5ca5dd75e
Service/AC: add ac:i service
9 years ago
mailwl
3a05b161bc
Service/NWM: add nwm services
9 years ago
Subv
3e80a1a1c1
Fixed the codestyle to match our clang-format rules.
9 years ago
mailwl
11e9681df2
Service/ACT: move ACT services to folder
9 years ago
Lioncash
b0ebdfae34
Add all services to the Service namespace
Previously there was a split where some of the services were in the
Service namespace and others were not.
9 years ago
Subv
6df6ad46c4
Moved the HLE command buffer translation task to ServerSession instead of the HLE handler superclass.
9 years ago
Subv
79f53e6daa
Kernel/IPC: Small codestyle cleanup
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
Lioncash
c7a1fc1d0a
service: Add mvd and qtm services
Adds the two New3DS-only modules.
3dbrew was used for command information.
9 years ago
Lioncash
c74ecaaa85
service: Add nfc services
3dbrew was used for the command information.
9 years ago
Subv
708ece3fff
Split SessionRequestHandler::HandleSyncRequest into HandleSyncRequest, TranslateRequest and HandleSyncRequestImpl.
HandleSyncRequest now takes care of calling the command buffer translate function before actually invoking the command handler for HLE services.
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
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
edcacd7cdd
Kernel/HLE: Service::Interface no longer inherits from any Kernel object, 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.
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
Yuri Kunde Schlesner
fa5d9d8266
Use negative priorities to avoid special-casing the self-include
9 years ago
Emmanuel Gil Peyrot
1138ec0d49
Remove empty newlines in #include blocks.
This makes clang-format useful on those.
Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
9 years ago
Emmanuel Gil Peyrot
628ed4376a
Sources: Run clang-format on everything.
9 years ago
wwylele
901e7157e3
LDR: Implement CRO
10 years ago
Lioncash
27d37be329
service: Add other DLP services
Specifically, dlp::CLNT and dlp::FKCL
Moves them to their own folder like with other services.
10 years ago
András Domonkos
af04290f90
Update ACT:U and create ACT:A ( #1809 )
* Update ACT_U
* Create act_a.h
* Create act_a.cpp
* Add service ACT:A
* Add ACT:A source and header
* Fix wrong header
10 years ago
exhalatio
ea94aea447
Dummy implementation dlp:SRVR Service.
10 years ago
mailwl
32a790dbdc
frd Initial stub some functions
10 years ago
JamePeng
7d60d58ee1
Reorganize the ndm service path for dummy implement function
SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons
The NDM file move to /core/hle/service/ndm/ now!
10 years ago
archshift
84a88005e2
Change trace/unimplemented service call logs to use hex
Changes the log to use hex in the parameter list instead of decimal.
11 years ago
purpasmart96
7933dbe6a0
Services: Continue separation of services into their own folders
11 years ago
Emmanuel Gil Peyrot
b1503b2020
Remove every trailing whitespace from the project (but externals).
11 years ago
Yuri Kunde Schlesner
e1fbac3ca1
Common: Remove common.h
11 years ago
Yuri Kunde Schlesner
ad3e25b414
De-inline functions from Interface, removing them from service.h
This reduces the time for a full recompile from 65.43s to 59.53s (~9%)
11 years ago
purpasmart96
d6c9af600f
IR: Move The IR services to their own folder and implement "GetHandles"
11 years ago
purpasmart96
198c0ddc72
Services: Stubs and minor changes
11 years ago
Subv
83a8975cb8
Services: Moved the PTM and APT services to their own folder
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.
11 years ago
Subv
cb3d254517
Services: Fixed "Tried to connect to named port err:f".
err:f is a named port, not a service
11 years ago
Yuri Kunde Schlesner
8779b31fe6
Make Port/Service registration and querying more HW-accurate
11 years ago
Subv
c2e9990149
Services: Stubbed more services.
Implemented FSUser::CreateExtSaveData
11 years ago