citra-emu
/
citra
Archived
1
0
Fork 0
Commit Graph

2739 Commits

Author SHA1 Message Date
wwylele 2b907dadf4 cro_helper: add todo about process handle 2017-12-07 16:20:15 +02:00
wwylele 9749a43cc4 ldr_ro: create per-client storage; pass process where needed 2017-12-07 16:01:01 +02:00
wwylele 8e4e663113 memory: add overload with process parameter for ZeroBlock and CopyBlock 2017-12-07 15:59:54 +02:00
wwylele de8dbbf0b6 ldr_ro: convert to ServiceFramework 2017-12-07 15:59:54 +02: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
shinyquagsire23 750e7e06b1 Services/AM: Expose CIAFile class in AM header 2017-11-15 12:05:03 -07:00
Sebastian Valle 947067de81
Merge pull request #3085 from Subv/get_service_handle
HLE/SRV: Don't return the port handle if it isn't available when calling GetServiceHandle.
2017-11-15 13:46:12 -05:00
shinyquagsire23 1edbbf7f8c Services/AM: Add GetTitleMediaType 2017-11-15 11:26:00 -07:00
James Rowe 5eabe60aa3
Merge pull request #2969 from mailwl/ptm_step
Service/PTM: Stub GetStepHistory function
2017-11-15 09:39:17 -07:00
Subv afb6dd7747 HLE/SRV: Don't return the port handle if it isn't available when calling GetServiceHandle.
This was incorrect behavior that somehow found its way to 3dbrew. The correct behavior is to sleep until the port becomes available again and then return a session to it.

This is currently unimplemented due to the inability to put a guest thread to sleep during HLE requests.

The correct behavior was reverse engineered by TuxSH a while ago but we never corrected the code in citra.
2017-11-15 11:26:49 -05:00
Sebastian Valle f0027e9996
Merge pull request #3096 from Subv/arbitrateaddress
Kernel/Arbiters: When doing ArbitrateAddress(Signal), always pick the highest priority thread, using the first one that was put to sleep if more than one thread with the same highest priority exists.
2017-11-15 09:16:16 -05:00
Sebastian Valle 93742ec510
Merge pull request #3088 from Subv/clientsession_closing
Kernel/Sessions: Wake up any threads waiting on a ServerSession when its client is closed
2017-11-15 09:15:34 -05:00
Max Thomas 689fe57430 Services/AM: Fix content writing on Windows (#3114) 2017-11-15 10:26:16 +01:00
Subv c9c1ba0952 Kernel/IPC: Implement StaticBuffer translation for HLE services that use the HLERequestContext architecture.
The real kernel requires services to set up their static buffer targets ahead of time. This implementation does not require that and will simply create the storage for the buffers as they are processed in the incoming IPC request.

Static buffers are kept in an unordered_map keyed by their buffer id, and are written into the already-setup area of the request thread when responding an IPC request.

This fixes a regression (crash) introduced in #2992.

This PR introduces more warnings due to the [[deprecated]] attribute being added to void PushStaticBuffer(VAddr buffer_vaddr, size_t size, u8 buffer_id); and VAddr PopStaticBuffer(size_t* data_size);
2017-11-12 11:00:00 -05:00
Subv c68adb787b Kernel/Arbiters: When doing ArbitrateAddress(Signal), always pick the highest priority thread, using the first one that was put to sleep if more than one thread with the same highest priority exists.
This is consistent with hardware behavior as shown by this test https://gist.github.com/ds84182/40e46129bd38b46a5100f15f96ba5eaf
2017-11-08 18:47:08 -05:00
Sebastian Valle 908dbf4230
Merge pull request #3084 from Subv/thread_default_cpu
Kernel/Thread: Use the process' ideal CPU when specifying the Default CPU on CreateThread.
2017-11-08 14:38:50 -05:00
Sebastian Valle 67df3c2c38
Merge pull request #3092 from BreadFish64/patch-1
Get Rid of Redundant ! in CIA loading code.
2017-11-08 14:38:20 -05:00
James Rowe ddee442ff8
Merge pull request #3093 from Subv/missing_includes
Added missing headers to CMakeLists.txt and fixed includes.
2017-11-07 20:09:19 -07:00
Subv 5e9d76337d Build: Added missing <array> includes to title_metadata.h and cia_container.h 2017-11-07 22:06:34 -05:00
Subv d683d34aa4 Filesys: Added some missing headers to the CMakeLists.txt after the recent stream of PRs. 2017-11-07 22:04:51 -05:00
BreadFish64 e2cac1d7db
Get Rid of Redundant ! 2017-11-07 19:31:55 -06:00
Sebastian Valle 7d12aaaa20
Merge pull request #3087 from shinyquagsire23/am-more-errors
Services/AM: Add errors and adjust naming for accuracy
2017-11-07 09:09:48 -05:00
shinyquagsire23 c07f1b275c Services/AM: Rename and readjust GetNumContentInfos for accuracy 2017-11-06 21:36:49 -07:00
shinyquagsire23 d854d4119a Services/AM: Rename and adjust ListContentInfos for accuracy 2017-11-06 21:35:00 -07:00
shinyquagsire23 c6e43ae79d Services/AM: Rename and adjust FindContentInfos for accuracy 2017-11-06 21:35:00 -07:00
shinyquagsire23 ac2ee3035a file_sys/cia_container: Fix warnings 2017-11-06 21:35:00 -07:00
shinyquagsire23 69cc04a06d Services/AM: Fix warnings 2017-11-06 21:34:54 -07:00
Subv 06a2e0b591 Kernel/Sessions: Wake up any threads waiting on a ServerSession when its client is closed
The error code 0xC920181A will be returned by svcReplyAndReceive when the wakeup callback runs.
This lets LLE services be properly notified of clients closing the connection so they can end their handler threads instead of letting them linger indefinitely, taking up connection slots in their parent port.
2017-11-06 23:07:08 -05:00
Subv d1de6b8864 HLE/APT: Try to launch a native applet in PrepareToStartLibraryApplet and PreloadLibraryApplet before falling back to HLE applets.
With this commit, you can run native applets if they are in the correct folder of your virtual NAND.

Trying to exit the applet will currently cause an invalid read loop due to svcExitProcess not being implemented.
2017-11-06 16:42:26 -05:00
Subv ecb1c6d2a1 HLE/APT: Added a function to retrieve the titleid of an applet based on the current system region.
The table was taken from the real APT service, but is incomplete due to the sheer amount of data it contains. There's 29 applets with 7 possible titleids. This table should be filled as needed.
2017-11-06 16:42:26 -05:00
Subv 191565a1b8 HLE/NS: Added a function to launch titles installed to the virtual NAND/SD card.
It uses AM::GetTitleContentPath to retrieve the path of the program to launch.
2017-11-06 15:12:15 -05:00
Sebastian Valle c6b2cc2e27
Merge pull request #3082 from Subv/main_thread_processor
Kernel/Thread: Run the main thread in the CPU specified by the process' exheader.
2017-11-06 14:00:24 -05:00
Subv a288c2e737 Kernel/Thread: Use the process' ideal CPU when specifying the Default CPU on CreateThread.
This behavior was reverse engineered from the real kernel.
2017-11-06 13:47:48 -05:00
Subv 2d9e295e07 Kernel/IPC: Handle the StaticBuffer descriptor in LLE command requests.
This descriptor requires the target process to set up a "receive buffer" beforehand, where the input data will be written to when the descriptor is processed.
2017-11-06 13:30:31 -05:00
bunnei 6e12b11353
Merge pull request #3078 from Subv/ac_sessions
Services/AC: Corrected the number of concurrent connections for AC_I and AC_U
2017-11-06 13:21:29 -05:00
Subv 980df62397 Kernel/Thread: Run the main thread in the CPU specified by the process' exheader.
System services usually have Core1 in this field, but citra was running them in Core0 regardless.
2017-11-06 13:14:31 -05:00
Sebastian Valle d55a13c35d
Merge pull request #2981 from Subv/replyreceive
Kernel/SVC: Implement LLE command buffer translation in ReplyAndReceive
2017-11-06 13:02:30 -05:00
Subv 23deae4785 Debugging: Implement GetName for Kernel::ServerSession.
Fixes the "[UNKNOWN KERNEL OBJECT]" message in the wait tree when inspecting a server session.
2017-11-06 10:47:06 -05:00
Subv 5f92dc963c Kernel/SVC: Implement LLE command buffer translation in ReplyAndReceive.
The real kernel's ReplyAndReceive will retry the call until one of the objects can be acquired without causing a translation error, this is not currently implemented and the code will instead assert that the translation was a success.
2017-11-06 10:47:04 -05:00
Subv 8f108367c9 Kernel/IPC: Put a thread to sleep when performing an LLE IPC request.
It will be awoken when the server replies to the request via svcReplyAndReceive.
2017-11-06 10:46:19 -05:00
Subv 33c5982f6d Kernel/Threads: Added a new thread status to identify threads waiting for an IPC reply from svcSendSyncRequest. 2017-11-06 10:46:19 -05:00
Subv 8e2d9f48f5 Kernel/IPC: Remove dead buffer translation code.
This is all implemented elsewhere, HLERequestContext for HLE requests, and svcReplyAndReceive for LLE requests.
2017-11-06 10:46:18 -05:00
Subv 7cf7999e02 Kernel/IPC: Added a function to translate the IPC command buffer from one process to another.
Currently only CopyHandle, MoveHandle and CallingPid descriptors are implemented.
2017-11-06 10:46:12 -05:00
wwylele 4fdc877626 remove trailing spaces 2017-11-06 13:57:06 +02:00
Sebastian Valle ff17773c28
Kernel/Mutex: Add a missing return in Mutex::Release
Fixes a regression in #3042.
Closes #3079
2017-11-05 21:31:22 -05:00
Sebastian Valle 8ba2de1580
Merge pull request #3029 from shinyquagsire23/am-title-install
Services/AM: Add CIA title installation support.
2017-11-05 21:23:55 -05:00
shinyquagsire23 e00a45c500 Services/AM: Add CIA title installation support. 2017-11-05 13:26:29 -07:00
shinyquagsire23 7ea04bb55c Services/AM: Fix log commands 2017-11-05 13:26:29 -07:00
shinyquagsire23 714206e4ce Service/FS: Mark FileBackend's Write as non-const 2017-11-05 13:26:29 -07:00
shinyquagsire23 ca2b6c6c8e file_sys/errors: Add ERROR_INSUFFICIENT_SPACE 2017-11-05 13:26:29 -07:00
shinyquagsire23 ce806dcdf6 file_sys/title_metadata: Allow loading from both files, FileBackends, and data 2017-11-05 13:26:29 -07:00
shinyquagsire23 b3e87d01fb file_sys: Add CIA Container 2017-11-05 13:26:25 -07:00