- 05 Dec, 2018 2 commits
-
-
Lioncash authored
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.
-
Lioncash authored
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.
-
- 04 Dec, 2018 18 commits
-
-
bunnei authored
file_sys/registered_cache: Eliminate variable shadowing
-
bunnei authored
crypto/key_manager: Remove unused variable in GetTicketblob()
-
bunnei authored
kernel/svc: Implement svcCreateEvent and svcSignalEvent
-
Lioncash authored
-
Lioncash authored
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.
-
Lioncash authored
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.
-
bunnei authored
loader/{nro, nso}: Remove dependency on the System class
-
bunnei authored
kernel/object: Amend handle types to distinguish between readable and writable events
-
Marcos authored
* Rewrited TEX/TEXS (TEX Scalar). * Style fixes. * Styles issues.
-
bunnei authored
kernel/svc: Implement the resource limit svcGetInfo option
-
bunnei authored
Don't try to route PFIFO methods (0-0x40) to the other engines.
-
Lioncash authored
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.
-
Lioncash authored
Another hold-over from Citra.
-
Lioncash authored
Allows a process to register the resource limit as part of its handle table.
-
Subv authored
This is a leftover from #1792
-
Subv authored
-
Mat M authored
[Kernel::CreateThread] Match format specifiers to LOG_TRACE's arguments
-
V.Kalyuzhny authored
-
- 03 Dec, 2018 12 commits
-
-
bunnei authored
svc: Reorganize svcGetInfo, handle more error cases for existing implemented info categories
-
bunnei authored
yuzu/configuration: Minor clean-up related changes
-
bunnei authored
filesystem: De-globalize registered_cache_union
-
bunnei authored
gl_shader_decompiler: Introduce a scoped object and style changes
-
bunnei authored
kernel: Divide Event into ReadableEvent and WritableEvent
-
bunnei authored
service/fsp_srv: Implement CleanDirectoryRecursively
-
bunnei authored
service/audio/audout_u: Amend constructor initialization list order
-
bunnei authored
Fixed crash with SetNpadMode
-
Sebastian Valle authored
hle/service: Update function tables for erpt:c and usb's IClientEpSession
-
Lioncash authored
Similar to the NRO changes, we can also pass the process explicitly as a parameter from Load instead of indirecting through the System class.
-
Lioncash authored
This simply acts as a forwarding function for the Load() function, so this doesn't need to be directly exposed.
-
Lioncash authored
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()
-
- 02 Dec, 2018 8 commits
-
-
Lioncash authored
Updates the function table for IClientEpSession based off information provided by SwitchBrew.
-
Lioncash authored
Updates the function table according to information provided by SwitchBrew.
-
Lioncash authored
These slots are only ever attached to event handling mechanisms within the class itself, they're never used externally. Because of this, we can make the functions private. This also removes redundant usages of the private access specifier.
-
Lioncash authored
Resolves trivial compiler warnings.
-
Lioncash authored
The previous code could potentially be a compilation issue waiting to occur, given we forward declare the type for a std::unique_ptr. If the complete definition of the forward declared type isn't visible in a translation unit that the class is used in, then it would fail to compile. Defaulting the destructor in a cpp file ensures the std::unique_ptr's destructor is only invoked where its complete type is known.
-
David Marcec authored
fixed crash due to handheld
-
Lioncash authored
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.
-
Lioncash authored
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.
-