dcdaac8a0b
kernel: Fix implementation of ConvertSessionToDomain.
2017-12-29 00:36:22 -05:00
fcd4c1a0dc
service: Add empty interface for pctl:a.
2017-12-28 23:44:39 -05:00
16fb1c8fe7
service: Halt on ReportUnimplementedFunction and improve output log.
2017-12-28 15:24:59 -05:00
d5995fd30f
service: Add empty interface for aoc:u.
2017-12-28 15:24:05 -05:00
3597650f22
service: Return proper result code for IPC::CommandType::Close.
2017-10-31 19:30:05 -04:00
03bf0739a4
service: Add CreatePort function (that does not register/install).
2017-10-18 21:34:19 -04:00
d3cc369618
service: Print correct command ID on unimplemented function.
2017-10-17 18:02:08 -04:00
4fb1b24d68
hle: Implement ConvertSessionToDomain, various cleanups.
2017-10-15 01:24:22 -04:00
72eeca1f03
hle: Add service stubs for apm and appletOE.
2017-10-14 22:50:04 -04:00
960a1416de
hle: Initial implementation of NX service framework and IPC.
2017-10-14 22:18:42 -04:00
15983dcfdc
Remove more 3DS-specific code.
2017-10-12 21:45:06 -04:00
dbd15b0d10
Remove more 3DS-specific code.
2017-10-12 21:29:53 -04:00
0906de9a14
hle: Remove a large amount of 3ds-specific service code.
2017-10-10 17:32:14 -04:00
3d86e3afc4
Services/NS: Port ns:s to the new service framework.
2017-09-16 10:52:45 -05:00
b21dfbb295
Merge pull request #2790 from yuriks/remove-movefrom
...
Remove ResultVal::MoveFrom
2017-06-20 22:04:09 -07:00
723dc644fa
ResultVal: Remove MoveFrom()
...
Replace it with std::move(result_val).Unwrap(), or Foo().Unwrap() in
case you already have an rvalue.
2017-06-18 19:03:15 -07:00
0dfafdbe59
Kernel/IPC: Make HLERequestContext usable from outside kernel
2017-06-18 16:05:12 -07:00
8cb65fe65a
Kernel: Basic support for IPC translation for HLE services
2017-06-11 13:10:21 -07:00
20e5abb308
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.
2017-06-11 13:07:33 -07:00
6f368abe13
Service/sm: Convert 'srv:' to ServiceFramework
2017-06-08 20:59:19 -07:00
c92a8a6154
Service: Remove a few redundant namespace qualifiers
2017-06-08 00:11:37 -07:00
84c497292a
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.
2017-06-08 00:11:37 -07:00
d96a9e0c11
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.
2017-06-06 02:57:23 -07:00
23ec6b3d8f
Service: Make service registration part of the sm implementation
...
Also enhances the GetServiceHandle implementation to be more accurate.
2017-06-06 02:57:04 -07:00
1eee09f364
Service: Move SRV interface to a new sm/ subdirectory
...
This will contain the implementation of the sm (Service Manager) system
module.
2017-06-06 02:57:04 -07:00
6354d08359
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.
2017-06-06 02:56:32 -07:00
e626a520ca
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.
2017-06-05 23:40:11 -07:00
597a7c615c
Merge pull request #2308 from mailwl/ac-i
...
Service/AC: add ac:i service
2017-01-12 10:12:46 -05:00
f2985f7080
Service/NFC: stub GetTagInRangeEvent
...
Fix Fatal Error in Mini-Mario & Friends - amiibo Challenge
2016-12-30 09:40:54 +03:00
c6f4b93f2e
Service/AC: add ac:i service
2016-12-30 09:20:11 +03:00
069a88dad7
Service/NWM: add nwm services
2016-12-22 22:51:27 +03:00
bdb6956879
Merge pull request #2314 from mailwl/account
...
Service/ACT: move ACT services to folder
2016-12-15 13:51:29 -05:00
905fc92ce1
Merge pull request #2249 from Subv/sessions_v3
...
Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
2016-12-14 20:35:33 -08:00
016307ae65
Fixed the codestyle to match our clang-format rules.
2016-12-14 12:45:36 -05:00
5dea1faedd
Service/ACT: move ACT services to folder
2016-12-14 09:05:46 +03:00
963aedd8cc
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.
2016-12-11 00:07:27 +00:00
ebbb55ec8f
Moved the HLE command buffer translation task to ServerSession instead of the HLE handler superclass.
2016-12-09 12:52:12 -05:00
deb83c9fc5
Kernel/IPC: Small codestyle cleanup
2016-12-09 12:39:12 -05:00
386112da32
Added a framework for partially handling Session disconnections.
...
Further implementation will happen in a future commit.
Fixes a regression.
2016-12-08 15:01:10 -05:00
f9bcf89510
Use std::move where appropriate.
2016-12-08 11:06:19 -05:00
2061d2014d
service: Add mvd and qtm services
...
Adds the two New3DS-only modules.
3dbrew was used for command information.
2016-12-08 04:34:03 -05:00
e8a960f6a1
service: Add nfc services
...
3dbrew was used for the command information.
2016-12-08 03:24:41 -05:00
00f0c77570
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.
2016-12-05 12:05:00 -05:00
dd8887c8cf
KServerPorts now have an HLE handler "template", which is inherited by all ServerSessions created from it.
2016-12-05 11:02:08 -05:00
009b15b3aa
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.
2016-11-30 23:12:35 -05:00
c5e7e0fa26
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.
2016-11-30 23:04:00 -05:00
c19afd2118
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.
2016-11-30 23:03:59 -05:00
073653e858
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.
2016-11-30 23:02:05 -05:00
84fbbe2629
Use negative priorities to avoid special-casing the self-include
2016-09-21 00:15:56 -07:00
ebdae19fd2
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.
2016-09-21 11:15:47 +09:00