Commit Graph

4098 Commits

Author SHA1 Message Date
Subv 016307ae65 Fixed the codestyle to match our clang-format rules. 2016-12-14 12:45:36 -05:00
Subv ebbb55ec8f Moved the HLE command buffer translation task to ServerSession instead of the HLE handler superclass. 2016-12-09 12:52:12 -05:00
Subv deb83c9fc5 Kernel/IPC: Small codestyle cleanup 2016-12-09 12:39:12 -05:00
Subv 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
Subv f9bcf89510 Use std::move where appropriate. 2016-12-08 11:06:19 -05:00
Subv c93c5a72bb 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 61a2fe8c3b 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
Subv 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
Subv 29d809b6e1 Kernel: Remove the Redirection handle type. 2016-12-05 11:13:22 -05:00
Subv 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
Subv 2ce61344d6 Declare empty ServerSession and ClientSession constructors as default. 2016-12-02 22:58:02 -05:00
Subv ed210c32b3 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 2eceee3a4c Fixed the rebase mistakes. 2016-11-30 23:28:31 -05:00
Subv 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
Subv 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
Subv 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
Subv 0a33d915f8 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 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
Yuri Kunde Schlesner 68c00ee771 Merge pull request #2228 from freiro/winver_fix
Move WINVER definition to cmake and a bit of cleanup
2016-11-30 15:47:08 -08:00
Sebastian Valle e27d824768 Merge pull request #2243 from MerryMage/r15
dynarmic: Fix ABI violation
2016-11-30 17:41:20 -05:00
MerryMage c46b3dec63 dynarmic: Fix ABI violation
Caused by not saving/restoring the x64 r15 register on entry/exit from
JITted code.

Closes #2224.
2016-11-30 19:12:46 +00:00
wwylele 6034399bf9 Merge pull request #2241 from Subv/clang_format
ClangFormat: Fixed the clang-format errors
2016-11-30 18:52:53 +02:00
freiro 35e979f041 Appending PLATFORM_LIBRARIES instead of redefining them 2016-11-30 16:28:21 +01:00
freiro 0c22e52f52 WINVER definition moved to CMake and cleanup 2016-11-30 15:47:09 +01:00
Subv e3e4f27447 ClangFormat: Fixed the clang-format errors 2016-11-30 09:37:37 -05:00
Sebastian Valle e5a7f2ef29 Merge pull request #1820 from mailwl/service-ver
Set client SDK version to Service APIs
2016-11-30 08:04:23 -05:00
mailwl 5b136aa211 Set client SDK version to Service APIs 2016-11-30 09:51:14 +03:00
bunnei cf5b8483fc Merge pull request #2233 from Subv/warnings
Build: Fixed a few warnings.
2016-11-29 23:23:22 -05:00
James Rowe f32309400c Update dynarmic to the latest version (#2234) 2016-11-29 23:22:19 -05:00
Subv aea9a91100 Build: Fixed a few warnings. 2016-11-29 16:51:53 -05:00
Yuri Kunde Schlesner 3174bfd50c 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 e279a6955e 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 4ba5acdaff 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 d171409f29 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
Yuri Kunde Schlesner 77b7cec8af Merge pull request #2218 from Subv/stencil_lines
Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer.
2016-11-27 13:57:31 -08:00
Emmanuel Gil Peyrot 0820c99462 GPU: Remove the broken frame_skip option.
Fixes #1960.
2016-11-27 21:19:56 +00:00
Subv 4623415026 RasterizerGL: Use GL_TRUE and 0xFF in the stencil and depth masks instead of simply true and -1 2016-11-27 13:09:11 -05:00
Subv 743b0e71d9 Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer. 2016-11-27 12:16:10 -05:00
Sebastian Valle d3b7f57b2b Merge pull request #2168 from mailwl/mic
MIC_U: Stub service funcions
2016-11-27 00:19:33 -05:00
Yuri Kunde Schlesner a0b30189e5 Merge pull request #2185 from freiro/local_folder
Change "user" folder default location to AppData/Roaming/ on Windows systems
2016-11-26 14:07:43 -08:00
freiro 593ec7fa74 Move to AppData/Roaming/Citra/ 2016-11-26 22:57:36 +01:00
Yuri Kunde Schlesner b230913c2b Merge pull request #2215 from MerryMage/ticks_executed
dynarmic: Add ticks based on ticks executed, not ticks requested
2016-11-26 13:51:11 -08:00
MerryMage 27be446049 dynarmic: Add ticks based on ticks executed, not ticks requested 2016-11-26 20:32:33 +00:00
freiro 972b289c78 Removed /user/ from path 2016-11-26 01:00:52 +01:00
mailwl ec15e485c9 Output parameters to log 2016-11-25 09:37:20 +03:00
mailwl d4cadf11fc MIC_U: Stub service funcions 2016-11-25 09:37:19 +03:00
Yuri Kunde Schlesner ed2ff8df85 Merge pull request #2210 from jroweboy/pagetables
Expose page table to dynarmic for optimized reads and writes to the JIT
2016-11-24 19:58:12 -08:00
James Rowe bbe57a66ca Expose page table to dynarmic for optimized reads and writes to the JIT 2016-11-24 20:41:18 -07:00
Yuri Kunde Schlesner 8a73eb8024 Merge pull request #2211 from yuriks/travis-no-upload
Travis: Remove build uploading
2016-11-24 17:30:28 -08:00
Yuri Kunde Schlesner 99079cc906 Travis: Remove build uploading
@archshift has been MIA for a while, so our builds server is currently
down. Furthermore, uploading is broken in both Linux and macOS:

- The version of lftp in Trusty doesn't support the sftp:auto-confirm
  option, which means that uploading would hang, even if the server
  weren't down. It currently tries to connect forever and fails the
  build with a timeout.
- lftp was removed from Homebrew, so it wasn't being installed on macOS
  and invoking it just failed.
2016-11-24 15:49:15 -08:00