Commit Graph

364 Commits

Author SHA1 Message Date
Fernando Sahmkow
155de533e6 Common/Kernel: Corrections and small bug fixing. 2020-06-04 16:53:36 -04:00
Fernando Sahmkow
29d6be1859 General: Cleanup legacy code. 2020-06-04 16:53:21 -04:00
Fernando Sahmkow
223799f7a7 Kernel/svcBreak: Implement CacheInvalidation for Singlecore and correct svcBreak. 2020-06-04 16:53:20 -04:00
Fernando Sahmkow
e4638c567c HLE_IPC: Correct HLE Event behavior on timeout. 2020-06-04 16:53:19 -04:00
Fernando Sahmkow
d8da19a8fb SingleCore: Use Cycle Timing instead of Host Timing. 2020-06-04 16:53:16 -04:00
Fernando Sahmkow
1a4cd6b1a5 General: Move ARM_Interface into Threads. 2020-06-04 16:53:14 -04:00
Fernando Sahmkow
81677c61fb SVC/ARM: Correct svcSendSyncRequest and cache ticks on arm interface. 2020-06-04 16:53:11 -04:00
Fernando Sahmkow
a65d772faf ARM: Addapt to new Exclusive Monitor Interface. 2020-06-04 16:53:09 -04:00
Fernando Sahmkow
7f9c52ae4c General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running. 2020-06-04 16:53:07 -04:00
Fernando Sahmkow
3bc98d1133 Kernel: Rewind on SVC change. 2020-06-04 16:53:06 -04:00
Fernando Sahmkow
a958ed9bbd Kernel: Preempt Single core on redudant yields. 2020-06-04 16:53:05 -04:00
Fernando Sahmkow
b2c283c80d Kernel: Fixes, corrections and asserts to scheduler and different svcs. 2020-06-04 16:53:01 -04:00
Fernando Sahmkow
ded21533ae ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes. 2020-06-04 16:52:59 -04:00
Fernando Sahmkow
599ef27cf0 SVC: Correct SetThreadActivity. 2020-06-04 16:52:56 -04:00
Fernando Sahmkow
955823442f SVC: Correct svcWaitForAddress and svcSignalToAddress. 2020-06-04 16:52:50 -04:00
Fernando Sahmkow
8f67aa7e44 Kernel: Corrections to Scheduling. 2020-06-04 16:52:49 -04:00
Fernando Sahmkow
2daf58437d Core: Correct HLE Event Callbacks and other issues. 2020-06-04 16:52:47 -04:00
Fernando Sahmkow
b5f150e4d3 General: Add Asserts 2020-06-04 16:52:46 -04:00
Fernando Sahmkow
e9174a2c0d General: Add better safety for JIT use. 2020-06-04 16:52:46 -04:00
Fernando Sahmkow
15a54c844d SVC: Correct races on physical core switching. 2020-06-04 16:52:45 -04:00
Fernando Sahmkow
4df9cec67c SVC: Add locks to the memory management. 2020-06-04 16:52:44 -04:00
Fernando Sahmkow
90f63c0f87 SVC: Correct WaitSynchronization, WaitProcessWideKey, SignalProcessWideKey. 2020-06-04 16:52:43 -04:00
Fernando Sahmkow
9aa352dafa SVC: Cleanup old methods. 2020-06-04 16:52:42 -04:00
Fernando Sahmkow
666e7033e7 SVC: Correct SendSyncRequest. 2020-06-04 16:52:41 -04:00
Fernando Sahmkow
beb8887db8 SVC: Correct SignalEvent, ClearEvent, ResetSignal, WaitSynchronization, CancelSynchronization, ArbitrateLock 2020-06-04 16:52:39 -04:00
Fernando Sahmkow
2dded4e40b SVC: Remove global HLE Lock. 2020-06-04 16:52:38 -04:00
Fernando Sahmkow
e9fe507da9 SVC: Correct GetThreadPriority, SetThreadPriority, GetThreadCoreMask, SetThreadCoreMask, GetCurrentProcessorNumber 2020-06-04 16:52:38 -04:00
Fernando Sahmkow
12f69fa598 SVC: Correct CreateThread, StartThread, ExitThread, SleepThread. 2020-06-04 16:52:37 -04:00
Fernando Sahmkow
1c1a5a3401 General: Recover Prometheus project from harddrive failure
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host 
Timing, Reworks the Kernel's Scheduler, Introduce Idle State and 
Suspended State, Recreates the bootmanager, Initializes Multicore 
system.
2020-06-04 16:52:33 -04:00
David Marcec
b6538c3e7c kernel: Don't fail silently 2020-04-29 14:53:53 +10:00
David Marcec
2261cf24af kernel: Bad GetInfo ids should not be marked as stubs
As we currently match hardware and don't return a successful result, these should be marked as errors instead of warnings and as stubs.
2020-04-29 01:17:59 +10:00
bunnei
d1e7cf3bdc Merge pull request #3780 from lioncash/process
svc: Re-add MapProcessCodeMemory/UnmapProcessCodeMemory
2020-04-24 23:22:26 -04:00
Lioncash
4730347f8e svc: Re-add MapProcessCodeMemory/UnmapProcessCodeMemory
These were lost in the re-implementation of the virtual memory manager.
2020-04-23 18:12:04 -04:00
Lioncash
bed4865981 svc: Remove unused variable
Since the VMM refactor, this is no longer used or needed.
2020-04-23 17:53:26 -04:00
bunnei
8bbe74a8dc core: hle: Address various feedback & code cleanup.
- Should be no functional changes.
2020-04-17 00:59:36 -04:00
bunnei
c629e544a7 kernel: svc: Updates for new VMM.
- Includes removing some SVC impls. that are untested.
2020-04-17 00:59:34 -04:00
bunnei
4caff51710 core: memory: Move to Core::Memory namespace.
- helpful to disambiguate Kernel::Memory namespace.
2020-04-17 00:59:28 -04:00
bunnei
ad48ebb2c8 core: kernel: Add svc_types header to include SVC-specific types. 2020-04-17 00:59:28 -04:00
bunnei
82d457af37 core: kernel: Move SVC to its own namesapce. 2020-04-17 00:59:28 -04:00
bunnei
dba112e510 core: hle: Implement separate A32/A64 SVC interfaces. 2020-03-02 21:52:03 -05:00
Fernando Sahmkow
2bc949628d Core: Address Feedback 2020-02-13 19:10:33 -04:00
Fernando Sahmkow
d23d504d77 Kernel: Refactor synchronization to better match RE 2020-02-11 18:47:31 -04:00
Fernando Sahmkow
c5aefe42aa Kernel: Change WaitObject to Synchronization object. In order to better reflect RE. 2020-02-11 10:46:25 -04:00
bunnei
ba53543da6 kernel: transfer_memory: Properly reserve and reset memory region. 2020-02-05 23:06:54 -05:00
Fernando Sahmkow
e4a1ead897 Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.
This commit instends on better naming the new purpose of this classes.
2020-01-26 14:07:22 -04:00
Lioncash
30e365e4fc kernel/svc: Correct function signature of SignalProcessWideKey
This function doesn't actually return a result code, so we can amend the
signature of it to match.
2019-12-11 07:13:27 -05:00
Lioncash
67b8265bd6 kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew
These are fairly trivial to implement, we can just do nothing. This also
provides a spot for us to potentially dump out any relevant info in the
future (e.g. for debugging purposes with homebrew, etc).

While we're at it, we can also correct the names of both of these
supervisor calls.
2019-12-07 22:01:17 -05:00
bunnei
c3d3b173d3 kernel: Implement a more accurate IPC dispatch. 2019-11-28 12:01:53 -05:00
Lioncash
e4c381b885 core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory class
The Write functions are used slightly less than the Read functions,
which make these a bit nicer to move over.

The only adjustments we really need to make here are to Dynarmic's
exclusive monitor instance. We need to keep a reference to the currently
active memory instance to perform exclusive read/write operations.
2019-11-26 21:55:39 -05:00
Lioncash
b05bfc6036 core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory class
With all of the trivial parts of the memory interface moved over, we can
get right into moving over the bits that are used.

Note that this does require the use of GetInstance from the global
system instance to be used within hle_ipc.cpp and the gdbstub. This is
fine for the time being, as they both already rely on the global system
instance in other functions. These will be removed in a change directed
at both of these respectively.

For now, it's sufficient, as it still accomplishes the goal of
de-globalizing the memory code.
2019-11-26 21:55:39 -05:00