| Age | Commit message (Collapse) | Author |
|
kernel/svc: Amend function signature of SignalProcessWideKey
|
|
* 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.
|
|
This function doesn't actually return a result code, so we can amend the
signature of it to match.
|
|
kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew
|
|
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.
|
|
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.
|
|
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.
|
|
We only have OpenGL as an option for now. Hardcode the entry.
|
|
|
|
|
|
core/memory: Deglobalize memory management code
|
|
filesys/romfs: Make ProcessFile and ProcessDirectory internally linked
|
|
enabled (#3178)
* Adds check for disabled cheats to prevent them from being added to the CheatList
* Address feedback
|
|
file_sys/directory: Make EntryType an enum class
|
|
These inclusions aren't used at all within the public interface, so they
can be removed.
|
|
These functions aren't used outside of this file, so we can place them
within an anonymous namespace.
|
|
This can trivially be an enum class rather than a regular enum, making
it more strongly typed.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
These currently aren't used anywhere in the codebase, so these are very
trivial to move over to the Memory class.
|
|
This is only used within the accelerated rasterizer in two places, so
this is also a very trivial migration.
|
|
This only had one usage spot, so this is fairly straightforward to
convert over.
|
|
With all of the interfaces ready for migration, it's trivial to migrate
over GetPointer().
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
* 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.
|
|
- Fixes shutdown crash and crash in Pokemon SwSh.
|
|
service: Update function tables
|
|
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.
|
|
|
|
|
|
Kernel: Correct behavior of Condition Variables to be more similar to real hardware.
|
|
Kernel: Correct Cancel Synchronization.
|
|
service/am: Remove unnecessary Skip calls
|
|
am: Stub QueryApplicationPlayStatistics
|
|
|
|
When the target is 0, all threads must be processed.
|
|
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.
|
|
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.
|
|
core: Make most implicit type conversion warnings errors on MSVC
|
|
We can simplify these by wrapping the necessary members in structs and
then simply reading out the whole struct.
|
|
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.
|
|
Implement stub for IApplicationFunctions::QueryApplicationPlayStatisticsByUid
|
|
core: Migrate off deprecated mbedtls functions
|
|
key_manager: Make use of IOFile in WriteKeyToFile()
|