| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| | |
service: Update service function tables
|
| | |
| |
| |
| | |
Updates function tables based off information from SwitchBrew.
|
| |\ \
| | |
| | | |
kernel/svc: Implement svcMapProcessCodeMemory/svcUnmapProcessCodeMemory
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Essentially performs the inverse of svcMapProcessCodeMemory. This unmaps
the aliasing region first, then restores the general traits of the
aliased memory.
What this entails, is:
- Restoring Read/Write permissions to the VMA.
- Restoring its memory state to reflect it as a general heap memory region.
- Clearing the memory attributes on the region.
|
| | | |
| | |
| | |
| | |
| | | |
This is utilized for mapping code modules into memory. Notably, the
ldr service would call this in order to map objects into memory.
|
| | | |
| | |
| | |
| | |
| | | |
This is a holdover from Citra that currently remains unused, so it can
be removed from the Thread interface.
|
| |\ \ \
| | | |
| | | | |
ldr: Minor amendments to IPC-related parameters
|
| | | | |
| | | |
| | | |
| | | | |
This doesn't modify instance state, so it can be made const.
|
| | | |/
| |/|
| | |
| | |
| | | |
The initial two words indicate a process ID. Also UnloadNro only
specifies one address, not two.
|
| |\ \ \
| | | |
| | | | |
Add a toggle to force 30FPS mode
|
| | | | | |
|
| |\ \ \ \
| | | | |
| | | | | |
fsp_srv: Minor cleanup related changes
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
IDirectory's Read() function doesn't take any input parameters. It only
uses the output parameters that we already provide.
|
| | | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These indicate options that alter how a read/write is performed.
Currently we don't need to handle these, as the only one that seems to
be used is for writes, but all the custom options ever seem to do is
immediate flushing, which we already do by default.
|
| |\ \ \ \
| |_|_|/
|/| | | |
Frontend: Migrate to QOpenGLWindow and support shared contexts
|
| | | | | |
|
| |\ \ \ \
| | | | |
| | | | | |
kernel/svc: Deglobalize the supervisor call handlers
|
| | | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Adjusts the interface of the wrappers to take a system reference, which
allows accessing a system instance without using the global accessors.
This also allows getting rid of all global accessors within the
supervisor call handling code. While this does make the wrappers
themselves slightly more noisy, this will be further cleaned up in a
follow-up. This eliminates the global system accessors in the current
code while preserving the existing interface.
|
| |\ \ \ \
| | | | |
| | | | | |
kernel: Make handle type declarations constexpr
|
| | | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | | |
Some objects declare their handle type as const, while others declare it
as constexpr. This makes the const ones constexpr for consistency, and
prevent unexpected compilation errors if these happen to be attempted to be
used within a constexpr context.
|
| |/ / /
| | |
| | |
| | | |
These are holdovers from Citra.
|
| |\ \ \
| | | |
| | | | |
file_sys: Provide generic interface for accessing game data
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We need to ensure dynarmic gets a valid pointer if the page table is
resized (the relevant pointers would be invalidated in this scenario).
In this scenario, the page table can be resized depending on what kind
of address space is specified within the NPDM metadata (if it's
present).
|
| |\ \ \
| | | |
| | | | |
core/memory: Minor simplifications to page table management
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Now that nothing actually touches the internal page table aside from the
memory subsystem itself, we can remove the accessor to it.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Given the page table will always be guaranteed to be that of whatever
the current process is, we no longer need to keep this around.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Centralizes the page table switching to one spot, rather than making
calling code deal with it everywhere.
|
| |\ \ \ \
| | | | |
| | | | | |
kernel/{server_port, server_session}: Return pairs instead of tuples from pair creation functions
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Keeps the return type consistent with the function name. While we're at
it, we can also reduce the amount of boilerplate involved with handling
these by using structured bindings.
|
| | |/ / /
| | | |
| | | |
| | | | |
Returns the same type that the function name describes.
|
| |/ / /
| | |
| | |
| | | |
These are holdovers from Citra and can be removed.
|
| |\ \ \
| | | |
| | | | |
kernel/server_session: Provide a GetName() override
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Given server sessions can be given a name, we should allow retrieving
it instead of using the default implementation of GetName(), which would
just return "[UNKNOWN KERNEL OBJECT]".
|
| |\ \ \ \
| | | | |
| | | | | |
Port citra-emu/citra#4651: "gdbstub: Fix some bugs in IsMemoryBreak() and ServeBreak. Add workaround to let watchpoints break into GDB."
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
let watchpoints break into GDB. (#4651)
* gdbstub: fix IsMemoryBreak() returning false while connected to client
As a result, the only existing codepath for a memory watchpoint hit to break into GDB (InterpeterMainLoop, GDB_BP_CHECK, ARMul_State::RecordBreak) is finally taken,
which exposes incorrect logic* in both RecordBreak and ServeBreak.
* a blank BreakpointAddress structure is passed, which sets r15 (PC) to NULL
* gdbstub: DynCom: default-initialize two members/vars used in conditionals
* gdbstub: DynCom: don't record memory watchpoint hits via RecordBreak()
For now, instead check for GDBStub::IsMemoryBreak() in InterpreterMainLoop and ServeBreak.
Fixes PC being set to a stale/unhit breakpoint address (often zero) when a memory watchpoint (rwatch, watch, awatch) is handled in ServeBreak() and generates a GDB trap.
Reasons for removing a call to RecordBreak() for memory watchpoints:
* The``breakpoint_data`` we pass is typed Execute or None. It describes the predicted next code breakpoint hit relative to PC;
* GDBStub::IsMemoryBreak() returns true if a recent Read/Write operation hit a watchpoint. It doesn't specify which in return, nor does it trace it anywhere. Thus, the only data we could give RecordBreak() is a placeholder BreakpointAddress at offset NULL and type Access. I found the idea silly, compared to simply relying on GDBStub::IsMemoryBreak().
There is currently no measure in the code that remembers the addresses (and types) of any watchpoints that were hit by an instruction, in order to send them to GDB as "extended stop information."
I'm considering an implementation for this.
* gdbstub: Change an ASSERT to DEBUG_ASSERT
I have never seen the (Reg[15] == last_bkpt.address) assert fail in practice, even after several weeks of (locally) developping various branches around GDB. Only leave it inside Debug builds.
|
| |\ \ \ \ \
| | | | | |
| | | | | | |
file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The given string instance doesn't need to be copied entirely, we can
just use a view instead.
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | | |
core: Add missing override specifiers where applicable
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Applies the override specifier where applicable. In the case of
destructors that are defaulted in their definition, they can
simply be removed.
This also removes the unnecessary inclusions being done in audin_u and
audrec_u, given their close proximity.
|
| |\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType
|
| | | |/ / / / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
enum class elements from the same enum can already be compared against
one another without the need for explicitly defined comparison
operators.
|
| |\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Passing around a 64 byte data struct by value is kind of wasteful,
instead pass a reference to the struct.
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
The unknown member here is actually padding due to being passed as a
struct. We can do the same, and remove the need to pop a padding word.
|
| | | |/ / / / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
I realized that I updated the documentation on SwitchBrew a while ago,
but never actually updated the structs within yuzu.
|