aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
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()
2018-12-04kernel/svc: Remove unused header inclusionLioncash
2018-12-04kernel/svc: Implement svcSignalEvent()Lioncash
This function simply does a handle table lookup for a writable event instance identified by the given handle value. If a writable event cannot be found for the given handle, then an invalid handle error is returned. If a writable event is found, then it simply signals the event, as one would expect.
2018-12-04kernel/svc: Implement svcCreateEvent()Lioncash
svcCreateEvent operates by creating both a readable and writable event and then attempts to add both to the current process' handle table. If adding either of the events to the handle table fails, then the relevant error from the handle table is returned. If adding the readable event after the writable event to the table fails, then the writable event is removed from the handle table and the relevant error from the handle table is returned. Note that since we do not currently test resource limits, we don't check the resource limit table yet.
2018-12-04Merge pull request #1845 from lioncash/nrobunnei
loader/{nro, nso}: Remove dependency on the System class
2018-12-04Merge pull request #1853 from lioncash/eventbunnei
kernel/object: Amend handle types to distinguish between readable and writable events
2018-12-04kernel/object: Amend handle types to distinguish between readable and ↵Lioncash
writable events Two kernel object should absolutely never have the same handle ID type. This can cause incorrect behavior when it comes to retrieving object types from the handle table. In this case it allows converting a WritableEvent into a ReadableEvent and vice-versa, which is undefined behavior, since the object types are not the same. This also corrects ClearEvent() to check both kernel types like the kernel itself does.
2018-12-04kernel/handle_table: Amend reference to CTR-OS in Create()Lioncash
Another hold-over from Citra.
2018-12-04kernel/svc: Implement the resource limit svcGetInfo optionLioncash
Allows a process to register the resource limit as part of its handle table.
2018-12-04svc: Implement SetThreadActivity (thread suspension)Luke Street
2018-12-04[Kernel::CreateThread] Match format specifiers to LOG_TRACE's argumentsV.Kalyuzhny
2018-12-03scheduler: Avoid manual Reschedule callZach Hilman
This will automatically occur anyway when PrepareReschedule is called
2018-12-03Merge pull request #1840 from lioncash/infobunnei
svc: Reorganize svcGetInfo, handle more error cases for existing implemented info categories
2018-12-03scheduler: Only work steal higher priority threads from other coresZach Hilman
2018-12-03applets: Correct event ResetTypes from OneShot to StickyZach Hilman
Fixes bugs relating to signalling in software keyboard.
2018-12-03qt: Implement GUI dialog frontend for ProfileSelectorZach Hilman
Presents profiles in a list, similar to switch.
2018-12-03am: Use ProfileSelect appletZach Hilman
2018-12-03applets: Implement ProfileSelect appletZach Hilman
Allows the player to select an emulated profile.
2018-12-03core: Add getter/setter for ProfileSelector in SystemZach Hilman
2018-12-03frontend: Add frontend applet for ProfileSelectZach Hilman
Responsible for selecting a profile and firing callback upon completion.
2018-12-03software_keyboard: Signal state changed event upon constructionZach Hilman
Previously, ILibraryAppletAccessor would signal upon creation of any applet, but this is incorrect. A flag inside of the applet code determines whether or not creation should signal state change and swkbd happens to be one of these applets.
2018-12-03loader: Add support for reading the name of game's developerZach Hilman
2018-12-03aoc_u: Obey disabled add-ons list when listing DLCZach Hilman
2018-12-03patch_manager: Obey disabled add-ons list when patching gameZach Hilman
2018-12-03core: Make GetGameFileFromPath function externally accessibleZach Hilman
2018-12-03settings: Store list of disabled add-ons per title IDZach Hilman