bunnei
83b96b7264
hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject.
5 years ago
bunnei
617803fb5d
hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.
5 years ago
bunnei
a317bad4ce
hle: kernel: Move slab heaps to their own container.
5 years ago
bunnei
2cb4c9d7b2
hle: kernel: Move slab heap management to KernelCore.
5 years ago
bunnei
7a6bfbde24
hle: kernel: Migrate KProcess to KAutoObject.
5 years ago
bunnei
a4a27a1ef2
hle: kernel: Migrate more of KThread to KAutoObject.
5 years ago
bunnei
79ca47ab3a
hle: kernel: k_memory_layout: Derive memory regions based on board layout.
5 years ago
bunnei
c21aa2479a
hle: kernel: Migrate MemoryManager to KMemoryManager.
5 years ago
bunnei
a4c5e6d964
hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others.
5 years ago
bunnei
5702047b65
hle: kernel: Migrate SlabHeap to KSlabHeap.
5 years ago
bunnei
f8d8755776
hle: kernel: Rename SharedMemory to KSharedMemory.
5 years ago
Chloe Marcec
68a52e9050
kernel: Rewrite resource limit to be more accurate
Matches closer to hardware
5 years ago
bunnei
cf3a05cf8c
hle: kernel: Allocate a dummy KThread for each host thread, and use it for scheduling.
5 years ago
bunnei
4440a59cb6
kernel: k_light_lock: Simplify EmuThreadHandle implementation.
5 years ago
bunnei
d49e29d866
hle: kernel: Move single core "phantom mode" out of KThread.
- This is a workaround that does not belong in a kernel primitive.
5 years ago
bunnei
3d70b4a4ea
core: hle: kernel: Rename Thread to KThread.
5 years ago
bunnei
02071333ca
hle: kernel: Remove unnecessary AddressArbiter definition.
5 years ago
bunnei
2feb4d56e9
core: hle: kernel: Update KSynchronizationObject.
5 years ago
bunnei
67051cf10c
hle: kernel: Move ServiceThread ownership to KernelCore.
- Fixes a circular dependency which prevented threads from being released on shutdown.
5 years ago
bunnei
039844bbb9
hle: kernel: Rewrite scheduler implementation based on Mesopshere.
5 years ago
bunnei
a5b73195c9
core: arm: Implement InvalidateCacheRange for CPU cache invalidation.
5 years ago
bunnei
aaffe73f47
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
5 years ago
Lioncash
0a5524a15b
kernel: Add missing include
6 years ago
Fernando Sahmkow
6f0c873d48
General: Cleanup legacy code.
6 years ago
Fernando Sahmkow
db60ca2704
General: Move ARM_Interface into Threads.
6 years ago
Fernando Sahmkow
b121009e03
General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running.
6 years ago
Fernando Sahmkow
0963ff1ae9
Kernel: Preempt Single core on redudant yields.
6 years ago
Fernando Sahmkow
cc2f7dcd08
General: Initial Setup for Single Core.
6 years ago
Fernando Sahmkow
7ee76003ad
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
bunnei
76a040f50d
kernel: Initialize memory layout for new VMM.
6 years ago
Fernando Sahmkow
78f01601d0
Kernel: Address Feedback.
6 years ago
Fernando Sahmkow
fe53ac3e33
Kernel: Implement Time Manager.
6 years ago
Fernando Sahmkow
e6cc0a48e0
Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel.
6 years ago
Fernando Sahmkow
f5da504663
Kernel: Make global scheduler depend on KernelCore
6 years ago
Fernando Sahmkow
1ee7a4d926
Kernel: Refactor synchronization to better match RE
6 years ago
Fernando Sahmkow
8eb175481c
System: Address Feedback
6 years ago
Fernando Sahmkow
1c2981f6da
Core: Refactor CPU Management.
This commit moves ARM Interface and Scheduler handling into the kernel.
6 years ago
Lioncash
7953f7b0d8
kernel: Remove unnecessary includes
Over the course of the changes to the kernel code, a few includes are no
longer necessary, particularly with the change over to std::shared_ptr
from Boost's intrusive_ptr.
6 years ago
bunnei
8b35acbd29
core_timing: Use better reference tracking for EventType. ( #3159 )
* core_timing: Use better reference tracking for EventType.
- Moves ownership of the event to the caller, ensuring we don't fire events for destroyed objects.
- Removes need for unique names - we won't be using this for save states anyways.
6 years ago
bunnei
5cb0f276fe
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
ac9dd91f1e
Kernel: Reverse global accessor removal.
6 years ago
Fernando Sahmkow
a88238d68d
Kernel: Address Feedback.
6 years ago
Fernando Sahmkow
abc8856e2c
Kernel: Remove global system accessor from WaitObject
7 years ago
Fernando Sahmkow
07524b63e8
Add interfacing to the Global Scheduler
7 years ago
Zach Hilman
3f221f8e3f
kernel: Differentiate kernel and user processes when picking ID
This allows kernel internal type processes to be assigned IDs in the KIP range while userland processes are assigned in the user range.
7 years ago
Lioncash
118596f1f9
kernel/svc: Implement svcGetProcessList
This service function simply copies out a specified number of kernel
process IDs, while simultaneously reporting the total number of
processes.
7 years ago
Lioncash
39dabe1fd9
kernel/kernel: Remove unnecessary forward declaration
This is no longer necessary, as ResultVal isn't used anywhere in the
header.
7 years ago
Lioncash
1f5cd8cac7
kernel: Make the address arbiter instance per-process
Now that we have the address arbiter extracted to its own class, we can
fix an innaccuracy with the kernel. Said inaccuracy being that there
isn't only one address arbiter. Each process instance contains its own
AddressArbiter instance in the actual kernel.
This fixes that and gets rid of another long-standing issue that could
arise when attempting to create more than one process.
7 years ago
Lioncash
b46942d789
kernel/address_arbiter: Pass in system instance to constructor
Allows getting rid of reliance on the global accessor functions and
instead operating on the provided system instance.
7 years ago
Lioncash
bfe7112496
kernel/address_arbiter: Convert the address arbiter into a class
Places all of the functions for address arbiter operation into a class.
This will be necessary for future deglobalizing efforts related to both
the memory and system itself.
7 years ago