aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
Commit message (Collapse)AuthorAgeFilesLines
* core: hle: Implement separate A32/A64 SVC interfaces.bunnei2020-03-022-107/+380
|
* core: Implement separate A32/A64 ARM interfaces.bunnei2020-03-028-36/+73
|
* Scheduler: Inline global scheduler in Scheduler Lock.Fernando Sahmkow2020-02-221-4/+2
|
* Kernel: Correct pending feedback.Fernando Sahmkow2020-02-221-3/+4
|
* Kernel: Address Feedback.Fernando Sahmkow2020-02-226-30/+47
|
* Kernel: Implement Scheduler locksFernando Sahmkow2020-02-222-0/+89
|
* Kernel: Implement Time Manager.Fernando Sahmkow2020-02-224-1/+96
|
* Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel.Fernando Sahmkow2020-02-224-24/+105
|
* Kernel: Make global scheduler depend on KernelCoreFernando Sahmkow2020-02-224-8/+24
|
* Merge pull request #3401 from FernandoS27/synchronizationbunnei2020-02-1425-166/+314
|\ | | | | Set of refactors for Kernel Synchronization and Hardware Constants
| * Core: Address FeedbackFernando Sahmkow2020-02-135-16/+27
| |
| * Core: Set all hardware emulation constants in a single file.Fernando Sahmkow2020-02-113-19/+21
| |
| * Kernel: Refactor synchronization to better match REFernando Sahmkow2020-02-1122-80/+210
| |
| * Kernel: Change WaitObject to Synchronization object. In order to better ↵Fernando Sahmkow2020-02-1119-71/+76
| | | | | | | | reflect RE.
* | address_arbiter: Collapse loops in InsertThread() and RemoveThread()Lioncash2020-02-121-19/+17
| | | | | | | | | | Same behavior, but without the need to explicitly loop through everything manually.
* | address_arbiter: Simplify GetThreadsWaitingOnAddress()Lioncash2020-02-122-10/+9
| | | | | | | | | | Simplifies the overall function and also allows for it to become a const-qualified member function.
* | kernel/thread: Remove trivial usages of the global system accessorLioncash2020-02-121-2/+2
|/ | | | | We can just use the kernel member variable directly instead of going through the system to obtain the same thing.
* Merge pull request #3381 from bunnei/ipc-fixbunnei2020-02-071-8/+42
|\ | | | | hle: services: Fix prepo IPC, and add better error checking.
| * hle_ipc: Add error checking to read/write buffer access.bunnei2020-02-051-8/+42
| |
* | kernel: transfer_memory: Properly reserve and reset memory region.bunnei2020-02-055-40/+116
| |
* | wait_object: Make wait behavior only require one object to signal.Zach Hilman2020-02-051-11/+2
|/ | | | - This was holdover from citra.
* kernel/physical_core: Make use of std::unique_ptrLioncash2020-01-302-4/+10
| | | | | | | | | | | | | | | | | | shared_ptr was used in 8eb175481c7434c31e92b7cbc38ad3e881c33f3b due to a misunderstanding of how the language generates move constructors and move assignment operators. If a destructor is user-provided, then the compiler won't generate the move constructor and move assignment operators by default--they must be explicitly opted into. The reason for the compilation errors is due to the fact that the language will fall back to attempting to use the copy constructor/copy assignment operators if the respective move constructor or move assignment operator is unavailable. Given that we explicitly opt into them now, the the move constructor and move assignment operators will be generated as expected.
* kernel/physical_core: Remove unused kernel reference member variableLioncash2020-01-303-11/+7
| | | | | | | This isn't used within the class, so it can be removed to simplify the overall interface. While we're in the same area, we can simplify a unique_ptr reset() call.
* System: Address FeedbackFernando Sahmkow2020-01-274-10/+20
|
* Kernel: Remove a few global instances from the kernel.Fernando Sahmkow2020-01-262-2/+2
|
* Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.Fernando Sahmkow2020-01-265-6/+2
| | | | This commit instends on better naming the new purpose of this classes.
* ArmInterface: Delegate Exclusive monitor factory to exclusive monitor ↵Fernando Sahmkow2020-01-261-15/+2
| | | | interfasce.
* Core: Refactor CPU Management.Fernando Sahmkow2020-01-254-12/+127
| | | | This commit moves ARM Interface and Scheduler handling into the kernel.
* Kernel: Implement Physical Core.Fernando Sahmkow2020-01-242-0/+81
|
* core/memory: Create a special MapMemoryRegion for physical memory.Markus Wick2020-01-182-3/+5
| | | | This allows us to create a fastmem arena within the memory.cpp helpers.
* core/hle: Simplify PhysicalMemory usage in vm_manager.Markus Wick2020-01-181-23/+11
|
* core/kernel: Fix GetTotalPhysicalMemoryUsed.Markus Wick2020-01-111-2/+2
| | | | | | | | | module._memory was already moved over to a new shared_ptr. So code_memory_size was not increased at all. This lowers the heap space and so saves a bit of memory, usually between 50 to 100 MB. This fixes a regression of b8ccd49d77feb52aa333cd30e5d7c28423c5455d
* Merge pull request #3214 from lioncash/svc-funcbunnei2019-12-122-9/+6
|\ | | | | kernel/svc: Amend function signature of SignalProcessWideKey
| * kernel/svc: Correct function signature of SignalProcessWideKeyLioncash2019-12-112-9/+6
| | | | | | | | | | This function doesn't actually return a result code, so we can amend the signature of it to match.
* | Kernel: Correct behavior of Address Arbiter threads. (#3165)Fernando Sahmkow2019-12-113-24/+67
|/ | | | | | | | | | | * Kernel: Correct behavior of Address Arbiter threads. This corrects arbitration threads to behave just like in Horizon OS. They are added into a container and released according to what priority they had when added. Horizon OS does not reorder them if their priority changes. * Kernel: Address Feedback.
* Merge pull request #3201 from lioncash/dumpbunnei2019-12-102-2/+24
|\ | | | | kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew
| * kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNewLioncash2019-12-072-2/+24
| | | | | | | | | | | | | | | | | | 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.
* | kernel: Remove unnecessary includesLioncash2019-12-0715-11/+17
|/ | | | | | 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.
* CpuCore: Clear exclusive state after doing a run in dynarmic.Fernando Sahmkow2019-12-051-1/+0
| | | | | | This commit corrects an error in which a Core could remain with an exclusive state after running, leaving space for possible race conditions between changing cores.
* kernel: Implement a more accurate IPC dispatch.bunnei2019-11-2812-142/+214
|
* core/memory; Migrate over SetCurrentPageTable() to the Memory classLioncash2019-11-261-7/+11
| | | | | | | Now that literally every other API function is converted over to the Memory class, we can just move the file-local page table into the Memory implementation class, finally getting rid of global state within the memory code.
* core/memory: Migrate over Write{8, 16, 32, 64, Block} to the Memory classLioncash2019-11-264-21/+25
| | | | | | | | | 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.
* core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classLioncash2019-11-264-22/+36
| | | | | | | | | | | | | | 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.
* core/memory: Migrate over ReadCString() to the Memory classLioncash2019-11-261-2/+4
| | | | | This only had one usage spot, so this is fairly straightforward to convert over.
* core/memory: Migrate over GetPointer()Lioncash2019-11-261-1/+2
| | | | | With all of the interfaces ready for migration, it's trivial to migrate over GetPointer().
* core: Prepare various classes for memory read/write migrationLioncash2019-11-265-6/+18
| | | | | | | | | | Amends a few interfaces to be able to handle the migration over to the new Memory class by passing the class by reference as a function parameter where necessary. Notably, within the filesystem services, this eliminates two ReadBlock() calls by using the helper functions of HLERequestContext to do that for us.
* core/memory: Migrate over address checking functions to the new Memory classLioncash2019-11-263-8/+8
| | | | | | | | | 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.
* core/memory: Migrate over memory mapping functions to the new Memory classLioncash2019-11-261-6/+7
| | | | | | Migrates all of the direct mapping facilities over to the new memory class. In the process, this also obsoletes the need for memory_setup.h, so we can remove it entirely from the project.
* core_timing: Use better reference tracking for EventType. (#3159)bunnei2019-11-262-7/+8
| | | | | | | * 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.
* kernel: Fix reference management for client/server session.bunnei2019-11-253-20/+18
| | | | - Fixes shutdown crash and crash in Pokemon SwSh.