aboutsummaryrefslogtreecommitdiff
path: root/src/core/core_cpu.h
AgeCommit message (Collapse)Author
2020-01-26Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.Fernando Sahmkow
This commit instends on better naming the new purpose of this classes.
2020-01-25Core: Refactor CPU Management.Fernando Sahmkow
This commit moves ARM Interface and Scheduler handling into the kernel.
2019-11-26core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory classLioncash
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-10-15Kernel Scheduler: Make sure the global scheduler shutdowns correctly.Fernando Sahmkow
2019-10-15Kernel: Style and CorrectionsFernando Sahmkow
2019-10-15Correct PrepareRescheduleFernando Sahmkow
2019-10-15Redesign CPU Cores to work with the new schedulerFernando Sahmkow
2019-03-04kernel/scheduler: Pass in system instance in constructorLioncash
Avoids directly relying on the global system instance and instead makes an arbitrary system instance an explicit dependency on construction. This also allows removing dependencies on some global accessor functions as well.
2019-02-15core_timing: Convert core timing into a classLioncash
Gets rid of the largest set of mutable global state within the core. This also paves a way for eliminating usages of GetInstance() on the System class as a follow-up. Note that no behavioral changes have been made, and this simply extracts the functionality into a class. This also has the benefit of making dependencies on the core timing functionality explicit within the relevant interfaces.
2018-10-15core_cpu: Make Cpu scheduler instances unique_ptrs instead of shared_ptrsLioncash
2018-10-15core: Make the exclusive monitor a unique_ptr instead of a shared_ptrLioncash
Like the barrier, this is owned entirely by the System and will always outlive the encompassing state, so shared ownership semantics aren't necessary here.
2018-10-15core: Make CPUBarrier a unique_ptr instead of a shared_ptrLioncash
This will always outlive the Cpu instances, since it's destroyed after we destroy the Cpu instances on shutdown, so there's no need for shared ownership semantics here.
2018-09-25core_cpu: Make arm_interface instances a std::unique_ptrLioncash
This is only exposed by reference, so we can just make it a unique pointer to get rid of the need to also use reference counting for the pointer.
2018-09-17core/core_cpu: Replace exclusive monitor include with forward declarationLioncash
We don't need to include this as a dependency within the header. A regular forward declaration will suffice here.
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi
2018-08-24core: Namespace all code in the arm subdirectory under the Core namespaceLioncash
Gets all of these types and interfaces out of the global namespace.
2018-08-12Core/HLE: Make the 'reschedule_pending' flag atomic.Subv
Another thread may write to this variable while the core in question is in the middle of checking for a reschedule request.
2018-07-22Implement exclusive monitorMerryMage
2018-05-10core: Support session close with multicore.bunnei
2018-05-10core: Implement multicore support.bunnei
2018-05-10core: Create a thread for each CPU core, keep in lock-step with a barrier.bunnei
2018-05-10core: Move common CPU core things to its own class.bunnei