aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2018-10-14Stop all threads on svcBreakDavid Marcec
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)
2018-10-12Merge pull request #1409 from DarkLordZach/key-derivationbunnei
crypto: Add support for full key derivation
2018-10-12Merge pull request #1483 from lioncash/codesetbunnei
kernel/process: Make CodeSet a regular non-inherited object
2018-10-12Merge pull request #1481 from lioncash/typobunnei
svc: Fix typos in sanitizing checks for MapMemory/UnmapMemory
2018-10-12Merge pull request #1467 from ogniK5377/svcbreak-type-fixbunnei
Fixed incorrect types for svcBreak
2018-10-12kernel/process: Make CodeSet a regular non-inherited objectLioncash
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.
2018-10-12Merge pull request #1478 from ogniK5377/remap-invalidhandle-remapbunnei
Passing an invalid nmap handle to Remap should throw an error
2018-10-12Merge pull request #1482 from lioncash/initbunnei
thread: Remove unnecessary memset from ResetThreadContext()
2018-10-12Merge pull request #1479 from ogniK5377/nmap-revampedbunnei
Added error codes for nvmap
2018-10-12thread: Remove unnecessary memset from ResetThreadContext()Lioncash
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.
2018-10-12Returned an error before processing other remapsDavid Marcec
2018-10-12Made the minimum alignment more clearDavid Marcec
2018-10-12svc: Fix typos in sanitizing checks for MapMemory/UnmapMemoryLioncash
2018-10-11Merge pull request #1474 from ogniK5377/hwopus-decodeinterleavedwithperformancebunnei
HwOpus, Implemented DecodeInterleavedWithPerformance
2018-10-11Merge pull request #1472 from lioncash/sanbunnei
svc: Add missing address range sanitizing checks to MapMemory/UnmapMemory
2018-10-11Added error codes for nvmapDavid Marcec
2018-10-11Passing an invalid nmap handle to Remap should throw an errorDavid Marcec
Added error for invalid nmap handles
2018-10-11nvhost_as_gpu: Flush CPU VAddr on UnmapBuffer.bunnei
2018-10-11HwOpus, Implemented DecodeInterleavedWithPerformanceDavid Marcec
Used by sonic ages
2018-10-10svc: Add missing address range sanitizing checks to MapMemory/UnmapMemoryLioncash
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.
2018-10-10kernel/thread: Use a regular pointer for the owner/current processLioncash
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).
2018-10-09Merge pull request #1461 from lioncash/warnbunnei
ips_layer: Silence truncation and conversion warnings
2018-10-09Merge pull request #1464 from lioncash/uniquebunnei
patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr
2018-10-10Changed all casts in svc_wrap.h to be static_cast insteadDavid Marcec
2018-10-10Use a better name than "dont_kill_application"David Marcec
signal_debugger seems like a more fitting name
2018-10-10Fixed incorrect types for svcBreakDavid Marcec
svcBreak reason should be a u32, not a u64.
2018-10-09Merge pull request #1459 from ogniK5377/breakbunnei
svcBreak, Signalling to the debugger should not kill execution
2018-10-09Merge pull request #1465 from lioncash/telemetrybunnei
telemetry_session: Minor miscellaneous changes
2018-10-09telemetry_session: Remove doxygen comment for a non-existent parameterLioncash
There's no "func" parameter, so this can just be removed.
2018-10-09telemetry_session: Add missing includesLioncash
Prevents potential compilation issues in the future by including missing headers for certain functions and types.
2018-10-09telemetry_session: Remove unimplemented FinalizeAsyncJob prototypeLioncash
This isn't implemented anywhere, so it can just be removed.
2018-10-09telemetry_session: Use a std::array in GenerateTelemetryId()Lioncash
We don't need to potentially heap-allocate a std::string instance here, given the data is known ahead of time. We can just place it within an array and pass this to the mbedtls functions.
2018-10-09patch_manager: Return a std::unique_ptr from ParseControlNCA() and ↵Lioncash
GetControlMetadata() instead of a std::shared_ptr Neither of these functions require the use of shared ownership of the returned pointer. This makes it more difficult to create reference cycles with, and makes the interface more generic, as std::shared_ptr instances can be created from a std::unique_ptr, but the vice-versa isn't possible. This also alters relevant functions to take NCA arguments by const reference rather than a const reference to a std::shared_ptr. These functions don't alter the ownership of the memory used by the NCA instance, so we can make the interface more generic by not assuming anything about the type of smart pointer the NCA is contained within and make it the caller's responsibility to ensure the supplied NCA is valid.
2018-10-09ips_layer: Avoid constructing std::vector instances where not necessaryLioncash
We can just compare the existing std::vector instance with a constexpr std::array containing the desired match. This is lighter resource-wise, as we don't need to allocate on the heap.
2018-10-09ips_layer: Remove unnecessary explicit std::pair constructor in std::arrayLioncash
Makes the layout of the array consistent, by making all elements match, instead of special-casing the first one.
2018-10-09ips_layer: Add missing includesLioncash
Adds missing includes to prevent potential compilation issues in the future. Also moves the definition of a struct into the cpp file, so that some includes don't need to be introduced within the header.
2018-10-09ips_layer: std::move data within PatchIPS() and Apply()Lioncash
We don't need to make a copy of the read data, so we can std::move it into the make_shared call here.
2018-10-09ips_layer: Silence truncation and conversion warningsLioncash
Makes type conversions explicit to avoid compiler warnings.
2018-10-09Added bitfield instead of manually checking if the bit is setDavid Marcec
2018-10-09Actual kill execution when the bit isn't set, not the other way aroundDavid Marcec
2018-10-09svcBreak, Signalling to the debugger should not kill executionDavid Marcec
When loading NROs, svcBreak is called to signal to the debugger that a new "module" is loaded. As no debugger is technically attached we shouldn't be killing the programs execution.
2018-10-08Merge pull request #1423 from DarkLordZach/romfs-file-extsbunnei
fsmitm_romfsbuild: Add support for stubbing and IPS patches in LFS
2018-10-08Merge pull request #1424 from DarkLordZach/ips-witchbunnei
ips_layer: Add support for IPSwitch executable patches
2018-10-08Merge pull request #1456 from ogniK5377/aoc-u-fixupsbunnei
Fixed assertion due to CountAddOnContent & Casting warnings
2018-10-08Merge pull request #1457 from ogniK5377/unmap-bufferbunnei
Unmapping an unmapped buffer should succeed
2018-10-08Unmapping an unmapped buffer should succeedDavid Marcec
Hardware tests show that trying to unmap an unmapped buffer already should always succeed. Hardware test was tested up to 32 iterations of attempting to unmap
2018-10-07nso/nro: Use default allocation size for arg_dataZach Hilman
2018-10-07cmd: Support passing game arguments from command lineZach Hilman
Uses -p (--program) and following string as args.
2018-10-07settings: Add program_args string settingZach Hilman
2018-10-07nso/nro: Add NSO arguments structure to data sectionZach Hilman
Only added if arguments string is non-empty and a pass is requested by loader.