Commit graph

2137 commits

Author SHA1 Message Date
Lioncash
5caec2fcda nwm_uds: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:47 -05:00
Lioncash
0f53c14ca1 nim: Update function tables
Updated based off information from 3dbrew.
2016-12-08 00:56:47 -05:00
Lioncash
34401e8a9e http_c: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:47 -05:00
Lioncash
de5b0f4e25 gsp_lcd: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:47 -05:00
Lioncash
b3b4017185 fs_user: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:46 -05:00
Lioncash
7033aa361e dlp_srvr: Update function table 2016-12-08 00:56:46 -05:00
Lioncash
f9c458cd04 cfg: Update function tables
Updated based off information from 3dbrew
2016-12-08 00:56:46 -05:00
Lioncash
bd088ae36b cecd_u: Update function table
Updated based off information from 3dbrew.
2016-12-08 00:56:46 -05:00
Lioncash
4b7f949d77 boss_p: Update function table 2016-12-08 00:56:45 -05:00
Lioncash
7598d8532c act: Update function tables
Updated based off information from 3dbrew.
2016-12-08 00:56:39 -05:00
Lioncash
523979a6ed apt: Update apt function tables
Updated based off information from 3dbrew.
2016-12-07 22:53:10 -05:00
Lioncash
a8f59eab50 Update AM service function tables
Updated based off information from 3dbrew.
2016-12-07 20:55:59 -05:00
Lioncash
6ba0395316 file_sys: Make a few single-argument constructors explicit
Prevents implicit conversions.
2016-12-07 17:26:56 -05:00
Lioncash
7055dbf489 applet: Move common IsRunning underlying variable to the Applet class
Gets rid of basic duplication.
2016-12-07 17:13:46 -05:00
Lioncash
748807f130 applet: Make virtual destructor defaulted 2016-12-07 17:04:14 -05:00
Lioncash
e214e0fca4 applet: Make constructor protected
Considering the class is abstract, there's no need to make the constructor
public.
2016-12-07 16:50:32 -05:00
bunnei
7da33afec8 Merge pull request #2232 from wwylele/other-save
FS: implement archives for other game save data
2016-12-07 10:17:02 -05:00
Subv
fdf1d042e0 Use boost remove_erase_if instead of the erase-remove idiom 2016-12-06 19:31:53 -05:00
Subv
bf232b89f3 Improved the algorithm for GetHighestPriorityReadyThread. 2016-12-06 19:15:32 -05:00
emmauss
4865993e6f Implement Frame rate limiter (#2223)
* implement frame limiter

* fixes
2016-12-06 14:33:19 -05:00
Subv
06b2b80d31 Return an error code when connecting to a saturated port.
The error code was taken from the 3DS kernel.
2016-12-05 13:59:57 -05:00
Subv
7eaf6faa7d HLE: Use a member variable instead of a virtual function to retrieve the max number of sessions that can be connected to an HLE service at the same time. 2016-12-05 13:44:41 -05:00
Jannik Vogel
305cc20144 gdbstub: Remove unused include 2016-12-05 19:09:16 +01:00
Jannik Vogel
89e57a3fb0 Support mingw cross-compile 2016-12-05 19:09:16 +01:00
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.
2016-12-05 12:05:00 -05:00
Subv
728bb5f40b Kernel: Remove the Redirection handle type. 2016-12-05 11:13:22 -05:00
Subv
977039e722 KServerPorts now have an HLE handler "template", which is inherited by all ServerSessions created from it. 2016-12-05 11:02:08 -05:00
Subv
44c59feca6 Threading: Added some utility functions and const correctness. 2016-12-04 09:58:36 -05:00
Yuri Kunde Schlesner
6fb4f73dec GSP: Downgrade log severity of SetAxiConfigQoSMode
This function doesn't need to do anything for HLE and some games call it
quite often, spamming up the logs.
2016-12-04 06:14:27 -08:00
Subv
5bc10a74f6 Threading: Reworked the way our scheduler works.
Threads will now be awakened when the objects they're waiting on are signaled, instead of repeating the WaitSynchronization call every now and then.

The scheduler is now called once after every SVC call, and once after a thread is awakened from sleep by its timeout callback.

This new implementation is based off reverse-engineering of the real kernel.

See https://gist.github.com/Subv/02f29bd9f1e5deb7aceea1e8f019c8f4 for a more detailed description of how the real kernel handles rescheduling.
2016-12-03 22:38:14 -05:00
Subv
4703561c9e Declare empty ServerSession and ClientSession constructors as default. 2016-12-02 22:58:02 -05:00
Subv
811d684274 Threads do not wait for the server endpoint to call AcceptSession before returning from a ConnectToPort or GetServiceHandle call. 2016-12-01 10:47:06 -05:00
Subv
4c4f50dfaf Fixed the rebase mistakes. 2016-11-30 23:28:31 -05:00
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.
2016-11-30 23:12:35 -05:00
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.
2016-11-30 23:04:00 -05:00
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.
2016-11-30 23:03:59 -05:00
Subv
96df92e98f fixup! Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication. 2016-11-30 23:02:06 -05:00
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.
2016-11-30 23:02:05 -05:00
mailwl
662aee1e1d Set client SDK version to Service APIs 2016-11-30 09:51:14 +03:00
wwylele
1e4a1598fd FileSys: Implement OtherSaveData 2016-11-29 23:50:00 +02:00
wwylele
e6de484ec3 FS: add missing MediaType 2016-11-29 23:50:00 +02:00
wwylele
37e9404489 FileSys: abstract SD save data archive source 2016-11-29 23:50:00 +02:00
Yuri Kunde Schlesner
e8dec36ad5 Merge pull request #2196 from Subv/system_mode
Kernel/Loader: Grab the system mode from the NCCH ExHeader.
2016-11-27 17:04:11 -08:00
Yuri Kunde Schlesner
e3c19b1d04 Merge pull request #2222 from linkmauve/die-frameskip-die
Remove the broken frame_skip option
2016-11-27 16:01:45 -08:00
Sebastian Valle
6352bf702c Merge pull request #2132 from wwylele/fix-fs-err
Correct FS error codes & add path boundary checks
2016-11-27 18:56:56 -05:00
Subv
7adac27868 Kernel/Loader: Grab the system mode from the NCCH ExHeader.
3dsx and elf files default to system mode 2 (96MB allocated to the application).

This allows Home Menu to boot without modifications.
Closes #1849
2016-11-27 18:03:48 -05:00
Emmanuel Gil Peyrot
87d3afe635 GPU: Remove the broken frame_skip option.
Fixes #1960.
2016-11-27 21:19:56 +00:00
Sebastian Valle
9d5e10abc6 Merge pull request #2168 from mailwl/mic
MIC_U: Stub service funcions
2016-11-27 00:19:33 -05:00
MerryMage
eb5be59f9c dynarmic: Add ticks based on ticks executed, not ticks requested 2016-11-26 20:32:33 +00:00
mailwl
9ee8f9297c Output parameters to log 2016-11-25 09:37:20 +03:00