aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/svc.cpp
AgeCommit message (Collapse)Author
2020-06-27General: Add AssertsFernando Sahmkow
2020-06-27General: Add better safety for JIT use.Fernando Sahmkow
2020-06-27SVC: Correct races on physical core switching.Fernando Sahmkow
2020-06-27SVC: Add locks to the memory management.Fernando Sahmkow
2020-06-27SVC: Correct WaitSynchronization, WaitProcessWideKey, SignalProcessWideKey.Fernando Sahmkow
2020-06-27SVC: Cleanup old methods.Fernando Sahmkow
2020-06-27SVC: Correct SendSyncRequest.Fernando Sahmkow
2020-06-27SVC: Correct SignalEvent, ClearEvent, ResetSignal, WaitSynchronization, ↵Fernando Sahmkow
CancelSynchronization, ArbitrateLock
2020-06-27SVC: Remove global HLE Lock.Fernando Sahmkow
2020-06-27SVC: Correct GetThreadPriority, SetThreadPriority, GetThreadCoreMask, ↵Fernando Sahmkow
SetThreadCoreMask, GetCurrentProcessorNumber
2020-06-27SVC: Correct CreateThread, StartThread, ExitThread, SleepThread.Fernando Sahmkow
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow
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.
2020-04-29kernel: Don't fail silentlyDavid Marcec
2020-04-29kernel: Bad GetInfo ids should not be marked as stubsDavid Marcec
As we currently match hardware and don't return a successful result, these should be marked as errors instead of warnings and as stubs.
2020-04-24Merge pull request #3780 from lioncash/processbunnei
svc: Re-add MapProcessCodeMemory/UnmapProcessCodeMemory
2020-04-23svc: Re-add MapProcessCodeMemory/UnmapProcessCodeMemoryLioncash
These were lost in the re-implementation of the virtual memory manager.
2020-04-23svc: Remove unused variableLioncash
Since the VMM refactor, this is no longer used or needed.
2020-04-17core: hle: Address various feedback & code cleanup.bunnei
- Should be no functional changes.
2020-04-17kernel: svc: Updates for new VMM.bunnei
- Includes removing some SVC impls. that are untested.
2020-04-17core: memory: Move to Core::Memory namespace.bunnei
- helpful to disambiguate Kernel::Memory namespace.
2020-04-17core: kernel: Add svc_types header to include SVC-specific types.bunnei
2020-04-17core: kernel: Move SVC to its own namesapce.bunnei
2020-03-02core: hle: Implement separate A32/A64 SVC interfaces.bunnei
2020-02-13Core: Address FeedbackFernando Sahmkow
2020-02-11Kernel: Refactor synchronization to better match REFernando Sahmkow
2020-02-11Kernel: Change WaitObject to Synchronization object. In order to better ↵Fernando Sahmkow
reflect RE.
2020-02-05kernel: transfer_memory: Properly reserve and reset memory region.bunnei
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.
2019-12-11kernel/svc: Correct function signature of SignalProcessWideKeyLioncash
This function doesn't actually return a result code, so we can amend the signature of it to match.
2019-12-07kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNewLioncash
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.
2019-11-28kernel: Implement a more accurate IPC dispatch.bunnei
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-11-26core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classLioncash
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.
2019-11-26core/memory: Migrate over ReadCString() to the Memory classLioncash
This only had one usage spot, so this is fairly straightforward to convert over.
2019-11-26core: Prepare various classes for memory read/write migrationLioncash
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.
2019-11-26core/memory: Migrate over address checking functions to the new Memory classLioncash
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.
2019-11-24kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for ↵bunnei
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.
2019-11-23Update svc.cppbunnei
2019-11-23svc: GetSystemTick should return cntpct_el0, not core ticks.bunnei
2019-11-23Merge pull request #3114 from FernandoS27/cond-varbunnei
Kernel: Correct behavior of Condition Variables to be more similar to real hardware.
2019-11-21Kernel: Optimize condition variable threads management.Fernando Sahmkow
2019-11-21Kernel: Correct SignalProcessWideKeyFernando Sahmkow
When the target is 0, all threads must be processed.
2019-11-21Kernel: Correct behavior of Condition Variables to be more similar to real ↵Fernando Sahmkow
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.
2019-11-16Kernel: Correct Cancel Synchronization.Fernando Sahmkow
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.
2019-11-03kernel: events: Remove ResetType::Automatic.bunnei
- This does not actually seem to exist in the real kernel - games reset these automatically. # Conflicts: # src/core/hle/service/am/applets/applets.cpp # src/core/hle/service/filesystem/fsp_srv.cpp
2019-10-15Kernel: Address Feedback.Fernando Sahmkow
2019-10-15KernelSVC: Assert that condition variable address is aligned to 4 bytes.Fernando Sahmkow
2019-10-15Kernel: Correct redundant yields to only advance time forward.Fernando Sahmkow
2019-10-15Kernel: Correct Results in Condition Variables and MutexesFernando Sahmkow
2019-10-15Scheduler: Add protections for Yield bombingFernando Sahmkow
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.