aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2018-12-12vm_manager: Migrate memory querying to the VMManager interfaceLioncash
Gets rid of the need to directly access the managed VMAs outside of the memory manager itself just for querying memory.
2018-12-12vm_manager: Migrate MemoryInfo and PageInfo to vm_manager.hLioncash
Gets the two structures out of an unrelated header and places them with the rest of the memory management code. This also corrects the structures. PageInfo appears to only contain a 32-bit flags member, and the extra padding word in MemoryInfo isn't necessary.
2018-12-12vm_manager: Amend MemoryState enum membersLioncash
Amends the MemoryState enum to use the same values like the actual kernel does. Also provides the necessary operators to operate on them. This will be necessary in the future for implementing svcSetMemoryAttribute, as memory block state is checked before applying the attribute.
2018-12-12Fix Process object leak on emulation stopJens Schmer
The Process object kept itself alive indefinitely because its handle_table contains a SharedMemory object which owns a reference to the same Process object, creating a circular ownership scenario. Break that up by storing only a non-owning pointer in the SharedMemory object.
2018-12-12Merge pull request #1891 from DarkLordZach/istorage-getsizeMat M
fsp_srv: Implement IStorage::GetSize
2018-12-11patch_manager: Prevent use of a dangling pointer within PatchRomFSLioncash
fmt::format() returns a std::string instance by value, so calling .c_str() on it here is equivalent to doing: auto* ptr = std::string{}.c_str(); The data being pointed to isn't guaranteed to actually be valid anymore after that expression ends. Instead, we can just take the string as is, and provide the necessary formatting parameters.
2018-12-10Merge pull request #1846 from lioncash/dirbunnei
file_sys/directory: Amend path buffer size for directory entries
2018-12-10Merge pull request #1819 from DarkLordZach/disable-addonsbunnei
patch_manager: Add support for disabling patches
2018-12-10Merge pull request #1887 from FearlessTobi/port-4476bunnei
Port citra-emu/citra#4476: "web_service: move telemetry condition from TelemetrySession constructor to destructor"
2018-12-10Merge pull request #1883 from lioncash/log-fspbunnei
service/fsp_srv: Correct returned value in GetGlobalAccessLogMode()
2018-12-10Merge pull request #1885 from lioncash/data_idbunnei
file_sys/save_data_factory: Update SaveDataSpaceId enum
2018-12-10fsp_srv: Implement IStorage::GetSizeZach Hilman
Takes no input and returns the size as a u64. Needed by Katamari Damacy Reroll to boot.
2018-12-10Merge pull request #1872 from lioncash/proc-infoHexagon12
kernel/process: Set ideal core from metadata
2018-12-10Merge pull request #1880 from DarkLordZach/cache-storageHexagon12
savedata_factory: Add CacheStorage and delete TemporaryStorage on boot
2018-12-10Merge pull request #1876 from lioncash/vmabunnei
vm_manager: Make vma_map private
2018-12-09service/fsp_srv: Correct returned value in GetGlobalAccessLogMode()Lioncash
Based off RE, the backing code only ever seems to use 0-2 as the range of values 1 being a generic log enable, with 2 indicating logging should go to the SD card. These are used as a set of flags internally. Given we only care about receiving the log in general, we can just always signify that we want logging in general.
2018-12-09applets: Correct usage of SignalStateChanged eventZach Hilman
This was causing some games (most notably Pokemon Quest) to softlock due to an event being fired when not supposed to. This also removes a hack wherein we were firing the state changed event when the game retrieves it, which is incorrect.
2018-12-08 web_service: move telemetry condition from TelemetrySession constructor to ↵fearlessTobi
destructor Fixes an issue where Testcases couldn't be sent when Telemetry was disabled, because both things are tied closely together in the backend.
2018-12-07Merge pull request #1864 from lioncash/nrrbunnei
service/ldr: Amend layouts of NRO and NRR headers
2018-12-07file_sys/save_data_factory: Update SaveDataSpaceId enumLioncash
Amends it with missing values deduced from RE (ProperSystem being from SwitchBrew for naming) (SdCardUser wasn't that difficult to discern given it's used alongside SdCardSystem when creating the save data indexer, based off the usage of the string "saveDataIxrDbSd" nearby).
2018-12-07Merge pull request #1874 from lioncash/bindingsbunnei
hle/service, hle/sm: Minor cleanup
2018-12-07Merge pull request #1873 from lioncash/constbunnei
loaders: Make GetFileType() a const qualified member function
2018-12-07savedata_factory: Add support for CacheStorageZach Hilman
2018-12-06savedata_factory: Delete TemporaryStorage on startupZach Hilman
Mimics hardware behavior.
2018-12-06Merge pull request #1875 from DarkLordZach/oss-ngword2bunnei
system_archive: Implement open source NgWord2
2018-12-06memory: Convert ASSERT into a DEBUG_ASSERT within GetPointerFromVMA()Lioncash
Given memory should always be expected to be valid during normal execution, this should be a debug assertion, rather than a check in regular builds.
2018-12-06vm_manager: Make vma_map privateLioncash
This was only ever public so that code could check whether or not a handle was valid or not. Instead of exposing the object directly and allowing external code to potentially mess with the map contents, we just provide a member function that allows checking whether or not a handle is valid. This makes all member variables of the VMManager class private except for the page table.
2018-12-06Merge pull request #1861 from lioncash/resetbunnei
kernel/svc: Correct behavior of svcResetSignal()
2018-12-06system_archive: Implement open source NgWord2Zach Hilman
2018-12-06hle/service: Replace log + UNIMPLEMENTED with UNIMPLEMENTED_MSGLioncash
Combines the two into one, shortening the amount of code here.
2018-12-06hle/service: Remove unnecessary using declarationsLioncash
Only one usage of the specified objects made use of the lack of namespacing. Given the low usage, we can just remove these.
2018-12-06hle/service, hle/sm: Compress usages of MakeResult()Lioncash
These auto-deduce the result based off its arguments, so there's no need to do that work for the compiler, plus, the function return value itself already indicates what we're returning.
2018-12-06hle/service, hle/sm: Use structured bindings where applicableLioncash
Gets rid of the need to keep the variables separate from their actual initialization spots.
2018-12-05Merge pull request #1867 from lioncash/allocbunnei
system_archive: Use a regular function pointer instead of std::function for the file-scope system archive array
2018-12-05Merge pull request #1866 from lioncash/cachebunnei
service/ldr: Deduplicate instruction cache clearing code in LoadNro()
2018-12-05loaders: Make GetFileType() a const qualified member functionLioncash
No implementations actually modify instance state (and it would be questionable to do that in the first place given the name), so we can make this a const member function.
2018-12-05Call shrink_to_fit after page-table vector resizing to cause crt to actually ↵heapo
lower vector capacity. For 36-bit titles saves 800MB of commit.
2018-12-05kernel/process: Set ideal core from metadataLioncash
A very trivial change. If metadata is available, the process should use it to retrieve the desired core for the process to run on.
2018-12-05ng_word: Deduplicate use of a constant valueLioncash
We've already given the constant to the vector itself, so we don't need to re-hardcode it in the array.
2018-12-05system_archive: Use a regular function pointer instead of std::function for ↵Lioncash
file-scope system archive array This allows the array to be constexpr. std::function is also allowed to allocate memory, which makes its constructor non-trivial, we definitely don't want to have all of these execute at runtime, taking up time before the application can actually load.
2018-12-05service/ldr: Deduplicate instruction cache clearing code in LoadNro()Lioncash
We don't need to specify all of the ARM interfaces explicitly.
2018-12-05service/ldr: Amend layout of the NRO headerLioncash
The first word is just a padding byte, it's not an actual entry instruction. Also renames the rest of the entries according to SwitchBrew.
2018-12-05service/ldr: Corrent padding within the NRR header layoutLioncash
The padding after the magic signature value should be 12 bytes rather than 28 bytes. The other 16 should be placed after the title ID pattern.
2018-12-04svc: Avoid incorrect fast yield conditionZach Hilman
2018-12-04kernel/svc: Correct behavior of svcResetSignal()Lioncash
While partially correct, this service call allows the retrieved event to be null, as it also uses the same handle to check if it was referring to a Process instance. The previous two changes put the necessary machinery in place to allow for this, so we can simply call those member functions here and be done with it.
2018-12-04kernel/process: Make Process a WaitObjectLioncash
Process instances can be waited upon for state changes. This is also utilized by svcResetSignal, which will be modified in an upcoming change. This simply puts all of the WaitObject related machinery in place.
2018-12-04kernel/readable_event: Add member function for enforcing a strict reset contractLioncash
svcResetSignal relies on the event instance to have already been signaled before attempting to reset it. If this isn't the case, then an error code has to be returned.
2018-12-04Merge pull request #1704 from DarkLordZach/oss-sysarchivebunnei
file_sys: Implement open source system archives
2018-12-04Merge pull request #1838 from lioncash/dedupbunnei
file_sys/registered_cache: Eliminate variable shadowing
2018-12-04Merge pull request #1836 from lioncash/unusedbunnei
crypto/key_manager: Remove unused variable in GetTicketblob()