Commit Graph

219 Commits (03dfc8d8e74910d447b755e00848a623ec65cd93)

Author SHA1 Message Date
bunnei 03dfc8d8e7 hle: kernel: thread: Preserve thread wait reason for debugging only.
- This is decoupled from core functionality and used for debugging only.
4 years ago
bunnei 912dd50146 core: hle: Integrate new KConditionVariable and KAddressArbiter implementations. 4 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.
4 years ago
bunnei 35c3c078e3 core: hle: kernel: Update KSynchronizationObject. 4 years ago
bunnei 9b492430bb hle: kernel: Thread: Various style fixes based on code review feedback. 4 years ago
bunnei 9e29e36a78 hle: kernel: Rewrite scheduler implementation based on Mesopshere. 4 years ago
bunnei e18ee8d681 hle: kernel: Port KAffinityMask from Mesosphere. 4 years ago
bunnei c2ad1243ba hle: kernel: thread: Remove unused "Running" state. 4 years ago
bunnei 7b642c7781 hle: kernel: multicore: Replace n-JITs impl. with 4 JITs. 4 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 8bef49cde5 kernel/thread: Remove unimplemented function prototype
This isn't used, so it can be removed.
5 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.
5 years ago
Fernando Sahmkow d240143588 Kernel: Correct Host Context on Threads and Scheduler. 5 years ago
Fernando Sahmkow 48fa3b7a0f General: Cleanup legacy code. 5 years ago
Fernando Sahmkow 19165cd859 HLE_IPC: Correct HLE Event behavior on timeout. 5 years ago
Fernando Sahmkow 5974e3ea33 Thread: Release the ARM Interface on exitting. 5 years ago
Fernando Sahmkow 1567824d2d General: Move ARM_Interface into Threads. 5 years ago
Fernando Sahmkow f2ade343e2 SingleCore: Move Host Timing from a sepparate thread to main cpu thread. 5 years ago
Fernando Sahmkow 7020d498c5 General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running. 5 years ago
Fernando Sahmkow f370de84b1 Kernel: Rewind on SVC change. 5 years ago
Fernando Sahmkow d494b074e8 Kernel: Preempt Single core on redudant yields. 5 years ago
Fernando Sahmkow 4217e58a10 Scheduler: Correct yields. 5 years ago
Fernando Sahmkow 83c7ba1ef7 SVC: Correct SetThreadActivity. 5 years ago
Fernando Sahmkow a66c61ca2d SCC: Small corrections to CancelSynchronization 5 years ago
Fernando Sahmkow e4b175ade2 SVC: Correct svcWaitForAddress and svcSignalToAddress. 5 years ago
Fernando Sahmkow b4dc01f16a Kernel: Correct Signal on Thread Death and Setup Sync Objects on Thread for Debugging 5 years ago
Fernando Sahmkow 75e10578f1 Core: Correct HLE Event Callbacks and other issues. 5 years ago
Fernando Sahmkow 15a79eb0d7 SVC: Correct SendSyncRequest. 5 years ago
Fernando Sahmkow 3b5b950c89 SVC: Correct SignalEvent, ClearEvent, ResetSignal, WaitSynchronization, CancelSynchronization, ArbitrateLock 5 years ago
Fernando Sahmkow 589f9cf108 SVC: Correct GetThreadPriority, SetThreadPriority, GetThreadCoreMask, SetThreadCoreMask, GetCurrentProcessorNumber 5 years ago
Fernando Sahmkow 49ba563995 SVC: Correct CreateThread, StartThread, ExitThread, SleepThread. 5 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.
5 years ago
bunnei c083ea7d78 core: Implement separate A32/A64 ARM interfaces. 5 years ago
Fernando Sahmkow 179bafa7cb Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel. 5 years ago
Fernando Sahmkow d23d504d77 Kernel: Refactor synchronization to better match RE 5 years ago
Fernando Sahmkow c5aefe42aa Kernel: Change WaitObject to Synchronization object. In order to better reflect RE. 5 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.
5 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
Fernando Sahmkow 64e652d8cb Kernel Thread: Cleanup THREADPROCESSORID_DONT_UPDATE. 6 years ago
Fernando Sahmkow e28c7f5217 Kernel: Address Feedback 2 6 years ago
Fernando Sahmkow 3073615dbc Kernel: Address Feedback. 6 years ago
Fernando Sahmkow 1c6a11ab14 Kernel: Corrections to Wait Objects clearing in which a thread could still be signalled after a timeout or a cancel. 6 years ago
Fernando Sahmkow 1ec1e81373 Kernel: Clang Format 6 years ago
Fernando Sahmkow 0cf26cee59 Scheduler: Implement Yield Count and Core migration on Thread Preemption. 6 years ago
Fernando Sahmkow 103f3a2fe5 Scheduler: Add protections for Yield bombing
In case of redundant yields, the scheduler will now idle the core for 
it's timeslice, in order to avoid continuously yielding the same thing 
over and over.
6 years ago
Fernando Sahmkow 82218c925a Kernel: Style and Corrections 6 years ago
Fernando Sahmkow a1ac0c6cb4 Addapt thread class to the new Scheduler 6 years ago
Lioncash abdce723eb kernel/process: Decouple TLS handling from threads
Extracts out all of the thread local storage management from thread
instances themselves and makes the owning process handle the management
of the memory. This brings the memory management slightly more in line
with how the kernel handles these allocations.

Furthermore, this also makes the TLS page management a little more
readable compared to the lingering implementation that was carried over
from Citra.
6 years ago
bunnei 13dda1d8ed
Merge pull request #2410 from lioncash/affinity
kernel/svc: Reorganize and fix up the initial handling of svcSetThreadCoreMask()
6 years ago