summaryrefslogtreecommitdiff
path: root/src/core (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1409 from DarkLordZach/key-derivationGravatar bunnei2018-10-127-74/+1569
|\ | | | | crypto: Add support for full key derivation
| * partition_data_manager: Rename system files for hekateGravatar Zach Hilman2018-10-074-178/+228
| | | | | | | | x
| * crypto: Add PartitionDataManagerGravatar Zach Hilman2018-10-073-0/+692
| | | | | | | | Keeps track of system files for key derivation
| * key_manager: Add support for loading keys from partition dataGravatar Zach Hilman2018-10-072-0/+88
| |
| * key_manager: Add ETicket key derivationGravatar Zach Hilman2018-10-073-2/+277
| | | | | | | | Derives titlekeys
| * key_manager: Add base key derivationGravatar Zach Hilman2018-10-072-4/+220
| | | | | | | | Derives master keys, game encryption keys, and package1/2 keys
| * key_manager: Add BIS key getterGravatar Zach Hilman2018-10-072-2/+19
| |
| * key_manager: Add support for more keysGravatar Zach Hilman2018-10-072-3/+99
| | | | | | | | TSEC, SBK, BIS, and other Sources for proper derivation
| * key_manager: Add keyblob supportGravatar Zach Hilman2018-10-072-0/+14
| |
| * key_manager: Add support for crypto revisions past 04Gravatar Zach Hilman2018-10-071-43/+63
| |
| * key_manager: Add support for comments in keyfilesGravatar Zach Hilman2018-10-071-0/+3
| |
| * vfs: Move forward declarations to separate fileGravatar Zach Hilman2018-10-072-9/+22
| |
| * key_manager: Add support for console-specific keyfileGravatar Zach Hilman2018-10-072-3/+13
| |
| * key_manager: Rename KEK to KekGravatar Zach Hilman2018-10-072-8/+9
| |
* | Merge pull request #1483 from lioncash/codesetGravatar bunnei2018-10-127-83/+45
|\ \ | | | | | | kernel/process: Make CodeSet a regular non-inherited object
| * | kernel/process: Make CodeSet a regular non-inherited objectGravatar Lioncash2018-10-127-83/+45
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #1481 from lioncash/typoGravatar bunnei2018-10-121-3/+3
|\ \ \ | | | | | | | | svc: Fix typos in sanitizing checks for MapMemory/UnmapMemory
| * | | svc: Fix typos in sanitizing checks for MapMemory/UnmapMemoryGravatar Lioncash2018-10-121-3/+3
| |/ /
* | | Merge pull request #1467 from ogniK5377/svcbreak-type-fixGravatar bunnei2018-10-122-28/+36
|\ \ \ | | | | | | | | Fixed incorrect types for svcBreak
| * | | Changed all casts in svc_wrap.h to be static_cast insteadGravatar David Marcec2018-10-101-25/+28
| | | |
| * | | Use a better name than "dont_kill_application"Gravatar David Marcec2018-10-101-2/+2
| | | | | | | | | | | | | | | | signal_debugger seems like a more fitting name
| * | | Fixed incorrect types for svcBreakGravatar David Marcec2018-10-102-3/+8
| | | | | | | | | | | | | | | | svcBreak reason should be a u32, not a u64.
* | | | Merge pull request #1478 from ogniK5377/remap-invalidhandle-remapGravatar bunnei2018-10-121-3/+10
|\ \ \ \ | | | | | | | | | | Passing an invalid nmap handle to Remap should throw an error
| * | | | Returned an error before processing other remapsGravatar David Marcec2018-10-121-6/+2
| | | | |
| * | | | Passing an invalid nmap handle to Remap should throw an errorGravatar David Marcec2018-10-111-3/+14
| | | | | | | | | | | | | | | | | | | | Added error for invalid nmap handles
* | | | | Merge pull request #1482 from lioncash/initGravatar bunnei2018-10-121-4/+1
|\ \ \ \ \ | | | | | | | | | | | | thread: Remove unnecessary memset from ResetThreadContext()
| * | | | | thread: Remove unnecessary memset from ResetThreadContext()Gravatar Lioncash2018-10-121-4/+1
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge pull request #1479 from ogniK5377/nmap-revampedGravatar bunnei2018-10-121-12/+60
|\ \ \ \ \ | |/ / / / |/| | | | Added error codes for nvmap
| * | | | Made the minimum alignment more clearGravatar David Marcec2018-10-121-2/+3
| | | | |
| * | | | Added error codes for nvmapGravatar David Marcec2018-10-111-12/+59
| |/ / /
* | | | Merge pull request #1474 from ogniK5377/hwopus-decodeinterleavedwithperformanceGravatar bunnei2018-10-111-3/+34
|\ \ \ \ | | | | | | | | | | HwOpus, Implemented DecodeInterleavedWithPerformance
| * | | | HwOpus, Implemented DecodeInterleavedWithPerformanceGravatar David Marcec2018-10-111-3/+34
| |/ / / | | | | | | | | | | | | Used by sonic ages
* | | | Merge pull request #1472 from lioncash/sanGravatar bunnei2018-10-112-12/+81
|\ \ \ \ | | | | | | | | | | svc: Add missing address range sanitizing checks to MapMemory/UnmapMemory
| * | | | svc: Add missing address range sanitizing checks to MapMemory/UnmapMemoryGravatar Lioncash2018-10-102-12/+81
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* / / / nvhost_as_gpu: Flush CPU VAddr on UnmapBuffer.Gravatar bunnei2018-10-111-3/+4
|/ / /
* | | kernel/thread: Use a regular pointer for the owner/current processGravatar Lioncash2018-10-109-38/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* | | Merge pull request #1461 from lioncash/warnGravatar bunnei2018-10-091-3/+3
|\ \ \ | | | | | | | | ips_layer: Silence truncation and conversion warnings
| * | | ips_layer: Silence truncation and conversion warningsGravatar Lioncash2018-10-091-3/+3
| | | | | | | | | | | | | | | | Makes type conversions explicit to avoid compiler warnings.
* | | | Merge pull request #1464 from lioncash/uniqueGravatar bunnei2018-10-096-15/+13
|\ \ \ \ | |_|/ / |/| | | patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr
| * | | patch_manager: Return a std::unique_ptr from ParseControlNCA() and ↵Gravatar Lioncash2018-10-096-15/+13
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #1459 from ogniK5377/breakGravatar bunnei2018-10-091-5/+20
|\ \ \ | | | | | | | | svcBreak, Signalling to the debugger should not kill execution
| * | | Added bitfield instead of manually checking if the bit is setGravatar David Marcec2018-10-091-4/+12
| | | |
| * | | Actual kill execution when the bit isn't set, not the other way aroundGravatar David Marcec2018-10-091-1/+1
| | | |
| * | | svcBreak, Signalling to the debugger should not kill executionGravatar David Marcec2018-10-091-5/+12
| | | | | | | | | | | | | | | | 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.
* | | | Merge pull request #1465 from lioncash/telemetryGravatar bunnei2018-10-092-7/+9
|\ \ \ \ | | | | | | | | | | telemetry_session: Minor miscellaneous changes
| * | | | telemetry_session: Remove doxygen comment for a non-existent parameterGravatar Lioncash2018-10-091-1/+0
| | | | | | | | | | | | | | | | | | | | There's no "func" parameter, so this can just be removed.
| * | | | telemetry_session: Add missing includesGravatar Lioncash2018-10-092-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | Prevents potential compilation issues in the future by including missing headers for certain functions and types.
| * | | | telemetry_session: Remove unimplemented FinalizeAsyncJob prototypeGravatar Lioncash2018-10-091-2/+0
| | | | | | | | | | | | | | | | | | | | This isn't implemented anywhere, so it can just be removed.
| * | | | telemetry_session: Use a std::array in GenerateTelemetryId()Gravatar Lioncash2018-10-091-2/+4
| | |/ / | |/| | | | | | | | | | | | | | | | | | 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.
* | | | ips_layer: Avoid constructing std::vector instances where not necessaryGravatar Lioncash2018-10-091-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | 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.