aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
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
2018-12-03Merge pull request #1835 from lioncash/cache-globalbunnei
filesystem: De-globalize registered_cache_union
2018-12-03Merge pull request #1803 from DarkLordZach/k-able-eventbunnei
kernel: Divide Event into ReadableEvent and WritableEvent
2018-12-03Merge pull request #1833 from lioncash/cleanbunnei
service/fsp_srv: Implement CleanDirectoryRecursively
2018-12-03Merge pull request #1839 from lioncash/initbunnei
service/audio/audout_u: Amend constructor initialization list order
2018-12-03Merge pull request #1841 from ogniK5377/npad-mode-fixbunnei
Fixed crash with SetNpadMode
2018-12-03Moved backtrace to ArmInterfaceDavid Marcec
Added to both dynarmic and unicorn
2018-12-03Print backtrace on svcBreakDavid Marcec
When we get an svcBreak we get a backtrace now
2018-12-02loader/nso: Remove dependency on the System classLioncash
Similar to the NRO changes, we can also pass the process explicitly as a parameter from Load instead of indirecting through the System class.
2018-12-02loader/nro: Make the static LoadNro function internally linkedLioncash
This simply acts as a forwarding function for the Load() function, so this doesn't need to be directly exposed.
2018-12-02file_sys/directory: Amend path buffer size for directory entriesLioncash
The path buffer is actually 0x301 (769) characters in length, with the extra character being intended for the null-terminator.
2018-12-02loader/nro: Remove dependency on the System classLioncash
Load() is already given the process instance as a parameter, so instead of coupling the class to the System class, we can just forward that parameter to LoadNro()
2018-12-02service/usb: Update function tableLioncash
Updates the function table for IClientEpSession based off information provided by SwitchBrew.
2018-12-02service/erpt: Update function tableLioncash
Updates the function table according to information provided by SwitchBrew.
2018-12-03Fixed crash with SetNpadModeDavid Marcec
fixed crash due to handheld
2018-12-02svc: Use the current process' handle table for retrieving the process ↵Lioncash
instance to act upon The kernel uses the handle table of the current process to retrieve the process that should be used to retrieve certain information. To someone not familiar with the kernel, this might raise the question of "Ok, sounds nice, but doesn't this make it impossible to retrieve information about the current process?". No, it doesn't, because HandleTable instances in the kernel have the notion of a "pseudo-handle", where certain values allow the kernel to lookup objects outside of a given handle table. Currently, there's only a pseudo-handle for the current process (0xFFFF8001) and a pseudo-handle for the current thread (0xFFFF8000), so to retrieve the current process, one would just pass 0xFFFF8001 into svcGetInfo. The lookup itself in the handle table would be something like: template <typename T> T* Lookup(Handle handle) { if (handle == PSEUDO_HANDLE_CURRENT_PROCESS) { return CurrentProcess(); } if (handle == PSUEDO_HANDLE_CURRENT_THREAD) { return CurrentThread(); } return static_cast<T*>(&objects[handle]); } which, as is shown, allows accessing the current process or current thread, even if those two objects aren't actually within the HandleTable instance.
2018-12-02svc: Reorganize svcGetInfo, handle more error cases for existing implemented ↵Lioncash
info categories Our implementation of svcGetInfo was slightly incorrect in that we weren't doing proper error checking everywhere. Instead, reorganize it to be similar to how the kernel seems to do it.
2018-12-02svc: Avoid performance-degrading unnecessary rescheduleZach Hilman
2018-12-01service/audio/audout_u: Amend constructor initialization list orderLioncash
Orders the constructor initializer list the same way the members of the class are declared. Prevents -Wreorder warnings
2018-12-01file_sys/registered_cache: Eliminate variable shadowingLioncash
Also inverts if statements where applicable to allow unindenting code a little bit.
2018-12-01filesystem: De-globalize registered_cache_unionLioncash
We can just return a new instance of this when it's requested. This only ever holds pointers to the existing registed caches, so it's not a large object. Plus, this also gets rid of the need to keep around a separate member function just to properly clear out the union. Gets rid of one of five globals in the filesystem code.
2018-12-01crypto/key_manager: Remove unused variable in GetTicketblob()Lioncash
2018-12-01Merge pull request #1830 from Subv/vi_ubbunnei
Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.
2018-12-01Fix debug buildLioncash
A non-existent parameter was left in some formatting calls (the logging macro for which only does anything meaningful on debug builds)
2018-11-30file_sys: Override missing mutating functions to be stubbed out for ↵Lioncash
ReadOnlyVfsDirectory by default Ensures that read only indeed means read only.
2018-11-30service/fsp_srv: Implement CleanDirectoryRecursivelyLioncash
This is the same behavior-wise as DeleteDirectoryRecursively, with the only difference being that it doesn't delete the top level directory in the hierarchy, so given: root_dir/ - some_dir/ - File.txt - OtherFile.txt The end result is just: root_dir/
2018-11-30Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.Subv
Assert that it is not empty before using it in the DequeueBuffer wait callback.
2018-11-30service/set: Convert GetLanguageCode over to using PushEnum()Lioncash
This code was around prior to the introduction of PushEnum, so convert it over so we don't need to cast here.
2018-11-30service/set: Implement MakeLanguageCodeLioncash
This function simply converts a given index into a language code.