bunnei
03dfc8d8e7
hle: kernel: thread: Preserve thread wait reason for debugging only.
- This is decoupled from core functionality and used for debugging only.
5 years ago
bunnei
912dd50146
core: hle: Integrate new KConditionVariable and KAddressArbiter implementations.
5 years ago
bunnei
c3c43e32fc
hle: kernel: thread: Replace ThreadStatus/ThreadSchedStatus with a single ThreadState.
- This is how the real kernel works, and is more accurate and simpler.
5 years ago
bunnei
35c3c078e3
core: hle: kernel: Update KSynchronizationObject.
5 years ago
bunnei
ccce6cb3be
hle: kernel: Migrate to KScopedSchedulerLock.
5 years ago
bunnei
4756cb203e
hle: kernel: Separate KScopedSchedulerLockAndSleep from k_scheduler.
5 years ago
bunnei
9e29e36a78
hle: kernel: Rewrite scheduler implementation based on Mesopshere.
5 years ago
bunnei
e18ee8d681
hle: kernel: Port KAffinityMask from Mesosphere.
5 years ago
bunnei
c2ad1243ba
hle: kernel: thread: Remove unused "Running" state.
5 years ago
bunnei
7b642c7781
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
5 years ago
Lioncash
fc6db97a09
core: Remove usage of unicorn
Unicorn long-since lost most of its use, due to dynarmic gaining support
for handling most instructions. At this point any further issues
encountered should be used to make dynarmic better.
This also allows us to remove our dependency on Python.
5 years ago
bunnei
3d592972dc
Revert "core: Fix clang build"
5 years ago
Lioncash
be1954e04c
core: Fix clang build
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
5 years ago
Lioncash
f0125b2be8
cpu_manager: Mark function getters as static
All these do are return std::function instances of static functions, so
these can be used without an instance of the CPU manager.
6 years ago
Lioncash
4ad69ca96e
kernel/thread: Remove global GetCurrentThread()
This is only used in one place, so we can fold it into the calling code,
eliminating a place for the global system instance to be used.
6 years ago
Fernando Sahmkow
d240143588
Kernel: Correct Host Context on Threads and Scheduler.
6 years ago
Fernando Sahmkow
48fa3b7a0f
General: Cleanup legacy code.
6 years ago
Fernando Sahmkow
f5e32935ca
SingleCore: Use Cycle Timing instead of Host Timing.
6 years ago
Fernando Sahmkow
5974e3ea33
Thread: Release the ARM Interface on exitting.
6 years ago
Fernando Sahmkow
1567824d2d
General: Move ARM_Interface into Threads.
6 years ago
Fernando Sahmkow
e6f8bde74b
General: Fix Stop function
6 years ago
Fernando Sahmkow
d494b074e8
Kernel: Preempt Single core on redudant yields.
6 years ago
Fernando Sahmkow
391f5f360d
Scheduler: Set last running time on thread.
6 years ago
Fernando Sahmkow
cd1c38be8d
ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.
6 years ago
Fernando Sahmkow
83c7ba1ef7
SVC: Correct SetThreadActivity.
6 years ago
Fernando Sahmkow
a66c61ca2d
SCC: Small corrections to CancelSynchronization
6 years ago
Fernando Sahmkow
b4dc01f16a
Kernel: Correct Signal on Thread Death and Setup Sync Objects on Thread for Debugging
6 years ago
Fernando Sahmkow
75e10578f1
Core: Correct HLE Event Callbacks and other issues.
6 years ago
Fernando Sahmkow
d4ebb510a0
SVC: Correct WaitSynchronization, WaitProcessWideKey, SignalProcessWideKey.
6 years ago
Fernando Sahmkow
15a79eb0d7
SVC: Correct SendSyncRequest.
6 years ago
Fernando Sahmkow
203e706302
SVC: Correct ArbitrateUnlock
6 years ago
Fernando Sahmkow
3b5b950c89
SVC: Correct SignalEvent, ClearEvent, ResetSignal, WaitSynchronization, CancelSynchronization, ArbitrateLock
6 years ago
Fernando Sahmkow
589f9cf108
SVC: Correct GetThreadPriority, SetThreadPriority, GetThreadCoreMask, SetThreadCoreMask, GetCurrentProcessorNumber
6 years ago
Fernando Sahmkow
49ba563995
SVC: Correct CreateThread, StartThread, ExitThread, SleepThread.
6 years ago
Fernando Sahmkow
e31425df38
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.
6 years ago
David Marcec
b6538c3e7c
kernel: Don't fail silently
6 years ago
MerryMage
2bfac7b61d
thread: FPCR.FZ is likely not 1
6 years ago
Lioncash
521c4c33b5
kernel/thread: Resolve -Wswitch warnings
6 years ago
bunnei
c083ea7d78
core: Implement separate A32/A64 ARM interfaces.
6 years ago
Fernando Sahmkow
179bafa7cb
Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel.
6 years ago
Lioncash
b80c348b09
kernel/thread: Remove trivial usages of the global system accessor
We can just use the kernel member variable directly instead of going
through the system to obtain the same thing.
6 years ago
Fernando Sahmkow
1e6f8aba04
Core: Set all hardware emulation constants in a single file.
6 years ago
Fernando Sahmkow
d23d504d77
Kernel: Refactor synchronization to better match RE
6 years ago
Fernando Sahmkow
c5aefe42aa
Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.
6 years ago
Fernando Sahmkow
a1630ab53e
Kernel: Remove a few global instances from the kernel.
6 years ago
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.
6 years ago
Lioncash
e58748fd80
core/memory: Migrate over address checking functions to the new Memory class
A fairly straightforward migration. These member functions can just be
mostly moved verbatim with minor changes. We already have the necessary
plumbing in places that they're used.
IsKernelVirtualAddress() can remain a non-member function, since it
doesn't rely on class state in any form.
6 years ago
bunnei
9046d4a548
kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. ( #3154 )
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects.
- See https://github.com/citra-emu/citra/pull/4710 for details.
6 years ago
Fernando Sahmkow
2d16507f9f
Kernel: Correct behavior of Condition Variables to be more similar to real hardware.
This commit ensures cond var threads act exactly as they do in the real
console. The original implementation uses an RBTree and the behavior of
cond var threads is that at the same priority level they act like a
FIFO.
6 years ago
Fernando Sahmkow
7d16b2d2dd
Kernel: Correct Cancel Synchronization.
This commit corrects the behavior of cancel synchronization when the
thread is running/ready and ensures the next wait is cancelled as it's
suppose to.
6 years ago