aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2019-12-12Merge pull request #3214 from lioncash/svc-funcbunnei
kernel/svc: Amend function signature of SignalProcessWideKey
2019-12-11Kernel: Correct behavior of Address Arbiter threads. (#3165)Fernando Sahmkow
* 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.
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-10Merge pull request #3201 from lioncash/dumpbunnei
kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew
2019-12-07kernel: Remove unnecessary includesLioncash
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.
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-12-05CpuCore: Clear exclusive state after doing a run in dynarmic.Fernando Sahmkow
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.
2019-12-02telemetry_session: Report renderer backendReinUsesLisp
We only have OpenGL as an option for now. Hardcode the entry.
2019-12-02telemetry_session: Use temporary to avoid writing the same enumReinUsesLisp
2019-11-28kernel: Implement a more accurate IPC dispatch.bunnei
2019-11-28Merge pull request #3169 from lioncash/memorybunnei
core/memory: Deglobalize memory management code
2019-11-28Merge pull request #3171 from lioncash/internal-linkbunnei
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
2019-11-28patch_manager: Adds check for disabled cheats to prevent them from being ↵Morph
enabled (#3178) * Adds check for disabled cheats to prevent them from being added to the CheatList * Address feedback
2019-11-27Merge pull request #3170 from lioncash/enumbunnei
file_sys/directory: Make EntryType an enum class
2019-11-27filesys/romfs: Remove unused includesLioncash
These inclusions aren't used at all within the public interface, so they can be removed.
2019-11-27filesys/romfs: Make ProcessFile and ProcessDirectory internally linkedLioncash
These functions aren't used outside of this file, so we can place them within an anonymous namespace.
2019-11-27file_sys/directory: Make EntryType an enum classLioncash
This can trivially be an enum class rather than a regular enum, making it more strongly typed.
2019-11-26core/memory; Migrate over SetCurrentPageTable() to the Memory classLioncash
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.
2019-11-26core/memory: Migrate over GetPointerFromVMA() to the Memory classLioncash
Now that everything else is migrated over, this is essentially just code relocation and conversion of a global accessor to the class member variable. All that remains is to migrate over the page table.
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 ZeroBlock() and CopyBlock() to the Memory classLioncash
These currently aren't used anywhere in the codebase, so these are very trivial to move over to the Memory class.
2019-11-26core/memory: Migrate over RasterizerMarkRegionCached() to the Memory classLioncash
This is only used within the accelerated rasterizer in two places, so this is also a very trivial migration.
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/memory: Migrate over GetPointer()Lioncash
With all of the interfaces ready for migration, it's trivial to migrate over GetPointer().
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: Move memory read/write implementation functions into an ↵Lioncash
anonymous namespace These will eventually be migrated into the main Memory class, but for now, we put them in an anonymous namespace, so that the other functions that use them, can be migrated over separately.
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-26core/memory: Migrate over memory mapping functions to the new Memory classLioncash
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.
2019-11-26core/memory: Introduce skeleton of Memory classLioncash
Currently, the main memory management code is one of the remaining places where we have global state. The next series of changes will aim to rectify this. This change simply introduces the main skeleton of the class that will contain all the necessary state.
2019-11-26core_timing: Use better reference tracking for EventType. (#3159)bunnei
* 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.
2019-11-25kernel: Fix reference management for client/server session.bunnei
- Fixes shutdown crash and crash in Pokemon SwSh.
2019-11-24Merge pull request #3094 from lioncash/tablesbunnei
service: Update function tables
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-23Merge pull request #3130 from FernandoS27/cancel-syncbunnei
Kernel: Correct Cancel Synchronization.
2019-11-21Merge pull request #3112 from lioncash/skipbunnei
service/am: Remove unnecessary Skip calls
2019-11-21Merge pull request #3111 from lioncash/querybunnei
am: Stub QueryApplicationPlayStatistics
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-15Merge pull request #3091 from lioncash/core-conversionbunnei
core: Make most implicit type conversion warnings errors on MSVC
2019-11-14service/am: Remove unnecessary Skip callsLioncash
We can simplify these by wrapping the necessary members in structs and then simply reading out the whole struct.
2019-11-14am: Stub QueryApplicationPlayStatisticsLioncash
Maintains implementation parity between QueryApplicationPlayStatistics and QueryApplicationPlayStatisticsByUid. These function the same behaviorally underneath the hood, with the only difference being that one allows specifying a UID.
2019-11-14Merge pull request #3089 from SciresM/play_statisticsbunnei
Implement stub for IApplicationFunctions::QueryApplicationPlayStatisticsByUid
2019-11-14Merge pull request #3093 from lioncash/mbedtlsbunnei
core: Migrate off deprecated mbedtls functions
2019-11-14Merge pull request #3092 from lioncash/utilbunnei
key_manager: Make use of IOFile in WriteKeyToFile()