summaryrefslogtreecommitdiff
path: root/src/core (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | partition_data_manager: Amend constructor initializer list orderGravatar Lioncash2018-10-131-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Orders the members in the exact order they would be initialized. This also prevents compiler warnings about this sort of thing.
| * | | | | | partition_data_manager: Remove unused includesGravatar Lioncash2018-10-132-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Gets unused includes out of the headers and moves them into the cpp file if they're used there instead.
| * | | | | | key_manager: Use std::vector's insert() instead of std::copy with a ↵Gravatar Lioncash2018-10-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | back_inserter If the data is unconditionally being appended to the back of a std::vector, we can just directly insert it there without the need to insert all of the elements one-by-one with a std::back_inserter.
| * | | | | | key_manager: Brace long conditional bodyGravatar Lioncash2018-10-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a conditional (or it's body) travels more than one line, it should be braced.
| * | | | | | key_manager: Don't assume file seeks and reads will always succeedGravatar Lioncash2018-10-131-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given the filesystem should always be assumed to be volatile, we should check and bail out if a seek operation isn't successful. This'll prevent potentially writing/returning garbage data from the function in rare cases. This also allows removing a check to see if an offset is within the bounds of a file before perfoming a seek operation. If a seek is attempted beyond the end of a file, it will fail, so this essentially combines two checks into one in one place.
| * | | | | | key_manager: Remove unnecessary seek in DeriveSDSeed()Gravatar Lioncash2018-10-131-1/+0
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Given the file is opened a few lines above and no operations are done, other than check if the file is in a valid state, the read/write pointer will always be at the beginning of the file.
* | | | | | Merge pull request #1491 from lioncash/referenceGravatar bunnei2018-10-145-15/+14
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem by reference
| * | | | | filesystem: Make CreateFactories() and InstallInterface() take a ↵Gravatar Lioncash2018-10-135-15/+14
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VfsFilesystem instance by reference Neither of these functions alter the ownership of the provided pointer, so we can simply make the parameters a reference rather than a direct shared pointer alias. This way we also disallow passing incorrect memory values like nullptr.
* | | | | Merge pull request #1492 from lioncash/procGravatar bunnei2018-10-143-4/+50
|\ \ \ \ \ | | | | | | | | | | | | svc: Implement svcGetProcessInfo
| * | | | | svc: Implement svcGetProcessInfoGravatar Lioncash2018-10-133-4/+50
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* / / / / Stop all threads on svcBreakGravatar David Marcec2018-10-141-0/+6
|/ / / / | | | | | | | | | | | | 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)
* | | | 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