- 15 Oct, 2018 1 commit
-
-
Lioncash authored
So, one thing that's puzzled me is why the kernel seemed to *not* use the direct code address ranges in some cases for some service functions. For example, in svcMapMemory, the full address space width is compared against for validity, but for svcMapSharedMemory, it compares against 0xFFE00000, 0xFF8000000, and 0x7FF8000000 as upper bounds, and uses either 0x200000 or 0x8000000 as the lower-bounds as the beginning of the compared range. Coincidentally, these exact same values are also used in svcGetInfo, and also when initializing the user address space, so this is actually retrieving the ASLR extents, not the extents of the address space in general.
-
- 14 Oct, 2018 3 commits
-
-
bunnei authored
svc: Implement svcGetProcessInfo
-
bunnei authored
Stop all threads on svcBreak
-
David Marcec authored
This should help diagnose crashes easier and prevent many users thinking that a game is still running when in fact it's just an audio thread still running(this is typically not killed when svcBreak is hit since the game expects us to do this)
-
- 13 Oct, 2018 5 commits
-
-
Lioncash authored
A fairly basic service function, which only appears to currently support retrieving the process state. This also alters the ProcessStatus enum to contain all of the values that a kernel process seems to be able of reporting with regards to state.
-
bunnei authored
crypto: Add support for full key derivation
-
bunnei authored
kernel/process: Make CodeSet a regular non-inherited object
-
bunnei authored
Implemented helper function to correctly calculate a texture's size
-
bunnei authored
svc: Fix typos in sanitizing checks for MapMemory/UnmapMemory
-
- 12 Oct, 2018 10 commits
-
-
FernandoS27 authored
-
bunnei authored
Fixed incorrect types for svcBreak
-
Lioncash authored
These only exist to ferry data into a Process instance and end up going out of scope quite early. Because of this, we can just make it a plain struct for holding things and just std::move it into the relevant function. There's no need to make this inherit from the kernel's Object type.
-
bunnei authored
Passing an invalid nmap handle to Remap should throw an error
-
bunnei authored
thread: Remove unnecessary memset from ResetThreadContext()
-
bunnei authored
Added error codes for nvmap
-
Lioncash authored
Regular value initialization is adequate here for zeroing out data. It also has the benefit of not invoking undefined behavior if a non-trivial type is ever added to the struct for whatever reason.
-
David Marcec authored
-
David Marcec authored
-
Lioncash authored
-
- 11 Oct, 2018 11 commits
-
-
bunnei authored
HwOpus, Implemented DecodeInterleavedWithPerformance
-
bunnei authored
svc: Add missing address range sanitizing checks to MapMemory/UnmapMemory
-
bunnei authored
nvhost_as_gpu: Flush/invalidate CPU VAddr on UnmapBuffer.
-
bunnei authored
gl_shader_decompiler: Implement VMAD
-
David Marcec authored
-
David Marcec authored
Added error for invalid nmap handles
-
ReinUsesLisp authored
-
bunnei authored
-
David Marcec authored
Used by sonic ages
-
bunnei authored
Fixed block height settings for RenderTargets and Depth Buffers
-
Lioncash authored
This adds the missing address range checking that the service functions do before attempting to map or unmap memory. Given that both service functions perform the same set of checks in the same order, we can wrap these into a function and just call it from both functions, which deduplicates a little bit of code.
-
- 10 Oct, 2018 10 commits
-
-
bunnei authored
Implemented Scissor Testing
-
bunnei authored
gl_shader_decompiler: Implement geometry shaders
-
bunnei authored
kernel/thread: Use a regular pointer for the owner/current process
-
Lioncash authored
There's no real need to use a shared pointer in these cases, and only makes object management more fragile in terms of how easy it would be to introduce cycles. Instead, just do the simple thing of using a regular pointer. Much of this is just a hold-over from citra anyways. It also doesn't make sense from a behavioral point of view for a process' thread to prolong the lifetime of the process itself (the process is supposed to own the thread, not the other way around).
-
bunnei authored
ips_layer: Silence truncation and conversion warnings
-
bunnei authored
patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr
-
FernandoS27 authored
-
David Marcec authored
-
David Marcec authored
signal_debugger seems like a more fitting name
-
David Marcec authored
svcBreak reason should be a u32, not a u64.
-