Commit graph

2686 commits

Author SHA1 Message Date
Subv
e90daa6a4f Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation.
In a real 3DS, threads that call svcSyncRequest are put to sleep until the server responds via svcReplyAndReceive. Our HLE services don't implement this mechanism and are effectively immediate from the 3DS's point of view. This commit makes it so that we at least simulate the IPC delay.

Specific HLE handlers might need to put their callers to sleep for a longer period of time to simulate IO timings. This is their responsibility but doing so is currently not implemented.

See https://gist.github.com/ds84182/4a7690c5376e045cab9129ca4185bbeb for a test that was not passing before this commit.
2017-12-07 22:40:15 -05:00
Lioncash
088c8521bf dyncom: Remove unnecessary includes 2017-12-07 00:02:55 -05:00
bunnei
1f36472fff
Merge pull request #3229 from lioncash/decode
arm_dyncom_dec: Hide the decoding table from external view
2017-12-06 22:46:01 -05:00
bunnei
77493860ca
Merge pull request #3228 from lioncash/explicit
arm: Make CPU backend constructors explicit
2017-12-06 22:44:39 -05:00
bunnei
d8ba07a430
Merge pull request #3227 from MerryMage/cro
Allow for partial invalidation of instruction cache
2017-12-06 22:43:58 -05:00
Lioncash
ab857f5e45 arm_dyncom_dec: Hide the decoding table from external view
This isn't used externally anywhere (and really shouldn't be).
2017-12-06 20:55:52 -05:00
Lioncash
982039be95 arm_dynarmic_cp15: Add missing header guard 2017-12-06 19:51:46 -05:00
Lioncash
e960628a14 arm: Make CPU backend constructors explicit
Avoids implicit conversions
2017-12-06 19:37:56 -05:00
MerryMage
a9af4be363 ldr_ro: Use ranged instruction cache invalidation 2017-12-06 20:59:09 +00:00
MerryMage
647e553f64 ARM_Interface: Allow for partial invalidation of instruction cache 2017-12-06 20:57:55 +00:00
Sebastian Valle
4b1253b51a
Merge pull request #3226 from Subv/arbiter_timeout
HLE/AddressArbiter: Remove threads that were awoken by timeout from an Arbiter's waitlist
2017-12-06 12:11:23 -05:00
Subv
8c16b90eae HLE/AddressArbiter: Remove threads that were awoken by timeout from the arbiter's waitlist when using WaitIfLessThanWithTimeout and DecrementAndWaitIfLessThanWithTimeout.
Fixes a regression introduced in #3096
2017-12-06 09:06:45 -05:00
B3n30
b9db9af9e8 fixup! Applet: Print unknown AppletId on ASSERT 2017-12-06 13:52:21 +01:00
B3n30
ddc59e3881 Applet: Print unknown AppletId on ASSERT 2017-12-06 12:41:46 +01:00
bunnei
e165b5bb94
Merge pull request #3184 from MerryMage/timing
core/arm: Improve timing accuracy before service calls in JIT
2017-12-05 23:12:24 -05:00
Lioncash
8599b1e7cc dyncom: Convert the SPSR checking define to a function
Same thing, with less indirection hiding
2017-12-05 20:07:45 -05:00
wwylele
6050d000fa fs: correct header code; remove dead code 2017-12-05 16:34:01 +02:00
Yuri Kunde Schlesner
9f806384f5
Merge pull request #3190 from Subv/errf_srv_framework
HLE/Services: Convert err:f to the new ServiceFramework.
2017-12-05 00:49:44 -05:00
bunnei
56db8e0858
Merge pull request #3173 from shinyquagsire23/nfc-o3ds-stub
Services/NFC: Stub StartTagScanning as it should be for o3DS
2017-12-04 16:11:54 -05:00
bunnei
990846f393
Merge pull request #3174 from MerryMage/vfp_reg_zero
dyncom: Remove VFP_REG_ZERO
2017-12-04 16:10:28 -05:00
Subv
30bffb1964 HLE/Services: Convert err:f to the new ServiceFramework. 2017-12-04 14:03:11 -05:00
B3n30
3249187ad6
Merge pull request #3181 from wwylele/ipc-handle-split
ipc_helper: split PushMoveObjects and PushCopyObjects
2017-12-04 18:49:42 +01:00
wwylele
fda023c9fa ipc_helper: split PushMoveObjects and PushCopyObjects 2017-12-04 19:46:44 +02:00
MerryMage
f6dfdc3588 core/arm: Improve timing accuracy before service calls in CPU interpreter 2017-12-03 16:40:21 +00:00
MerryMage
7cd8b437aa core/arm: Improve timing accuracy before service calls in JIT
We also correct the CPU JIT's implementation of Step.
2017-12-03 16:06:46 +00:00
wwylele
ff00cb391a service/ptm: add missing % in logging 2017-12-03 11:52:42 +02:00
Weiyi Wang
2664042325
Merge pull request #3086 from Subv/swkbd_launch
HLE/APT: Allow launching native applets instead of HLE ones.
2017-12-03 11:38:29 +02:00
Weiyi Wang
14819d0b84
Merge pull request #3138 from wwylele/ipc-mapped-buffer
Kernel/IPC: Implement MappedBuffer translation for HLE services that use the HLERequestContext architecture.
2017-12-03 11:33:48 +02:00
wwylele
a79a8d17fa FS: transform File to ServiceFramework 2017-12-03 00:05:20 +02:00
wwylele
cef6b15de4 IPC Helpers: Implement MappedBuffer translation helper for new interface 2017-12-03 00:05:20 +02:00
wwylele
3ecf650bf9 Kernel/IPC: Implement MappedBuffer translation for HLE services that use the HLERequestContext architecture. 2017-12-03 00:05:20 +02:00
MerryMage
b37a850654 dyncom: Remove VFP_REG_ZERO
Fixes two issues that will never happen:

1. There are cases when VFP_REG_ZERO will be non-zero, but these will
   never be encoutered in well behaved guest code (i.e. writing to D16).

2. If CONFIG_VFPv3 is defined, accessing VFP_REG_ZERO would be out of
   bounds.
2017-12-02 12:06:51 +00:00
shinyquagsire23
5ad4cf619e Services/NFC: Stub StartTagScanning as it should be for o3DS 2017-12-01 12:42:23 -07:00
Lioncash
89f67ad90f services: Silence warnings related to logging 2017-11-29 18:59:54 -05:00
bunnei
b2a99043e3
Merge pull request #2968 from Subv/hle_thread_pause
Kernel/Threads: Add a new thread status that will allow using a Kernel::Event to put a guest thread to sleep inside an HLE handler until said event is signaled
2017-11-29 10:45:48 -05:00
Sebastian Valle
dc5d7a802f
Merge pull request #3120 from shinyquagsire23/ncch-container-offsets
file_sys/ncch_container: Expose ncch_offset during instantiation and in OpenFile
2017-11-28 11:48:46 -05:00
Subv
1be31e271a NS/Applets: Added the MiiSelector applet to the list of native applet ids. 2017-11-28 09:12:52 -05:00
Subv
9543e1a1bf HLE/IPC: Don't assert in HLERequestContext::AddStaticBuffer when there's already a static buffer with the desired id.
This could happen if the guest application performs a request with static buffer id X, and the service module responds with another static buffer with the same id X.
2017-11-28 09:01:15 -05:00
B3n30
e9a95b2e7d
CoreTiming: Reworked CoreTiming (#3119)
* CoreTiming: New CoreTiming; Add Test for CoreTiming
2017-11-25 14:56:57 +01:00
James Rowe
b7cf793814
Merge pull request #3113 from shinyquagsire23/sdl-cia-install
SDL CIA Installation
2017-11-24 10:23:20 -07:00
shinyquagsire23
70ff3c72f1 Services/AM: Detect encrypted CIAs 2017-11-20 20:45:21 -07:00
shinyquagsire23
c0eb233bf1 file_sys/title_metadata: Fix encrypted bitmask 2017-11-20 20:45:06 -07:00
shinyquagsire23
253954930f Services/AM: Return InstallStatus for InstallCIA 2017-11-19 21:56:02 -07:00
James Rowe
de0af83719
Merge pull request #3135 from MerryMage/d-ClearInstructionCache
arm_dynarmic: ClearInstructionCache should clear all instruction caches
2017-11-19 16:39:04 -07:00
Sebastian Valle
555c8ba7c1
Merge pull request #3077 from Subv/hle_static_buffer
Kernel/IPC: Implement StaticBuffer translation for HLE services that use the HLERequestContext architecture.
2017-11-19 11:34:02 -05:00
Sebastian Valle
ff275ac1e1
Merge pull request #3083 from Subv/lle_staticbuffer_translation
Kernel/IPC: Handle the StaticBuffer descriptor in LLE command requests.
2017-11-19 11:31:49 -05:00
MerryMage
2d917f8ca0 arm_dynarmic: ClearInstructionCache should clear all instruction caches
Bugfix of 67a70bd.
2017-11-19 14:47:14 +00:00
shinyquagsire23
549f11a40e file_sys/ncch_container: Expose ncch_offset during instantiation and in OpenFile 2017-11-15 17:43:15 -07:00
shinyquagsire23
56e906f1e3 Services/AM: Add InstallCIA function for frontends 2017-11-15 16:05:37 -07:00
shinyquagsire23
1f2aa29dee Services/AM: Move CIA finalization into Close(), Close() on destruction of class 2017-11-15 16:05:33 -07:00