yuzu-fork/src/core/hle/kernel
Lioncash 5eb057f422 kernel/object: Amend handle types to distinguish between readable and 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-04 02:20:47 -05:00
..
address_arbiter.cpp core_cpu: Make Cpu scheduler instances unique_ptrs instead of shared_ptrs 2018-10-15 14:15:56 -04:00
address_arbiter.h kernel: Remove unnecessary includes 2018-07-31 10:15:17 -04:00
client_port.cpp Added forward define for ServerPort 2018-10-06 17:47:33 +10:00
client_port.h Added forward define for ServerPort 2018-10-06 17:47:33 +10:00
client_session.cpp kernel: Eliminate kernel global state 2018-08-28 22:31:51 -04:00
client_session.h kernel: Eliminate kernel global state 2018-08-28 22:31:51 -04:00
errors.h kernel/errors: Clean up error codes 2018-11-16 14:32:30 -05:00
handle_table.cpp kernel/handle_table: Move private static functions into the cpp file 2018-11-21 18:31:01 -05:00
handle_table.h kernel/handle_table: Move private static functions into the cpp file 2018-11-21 18:31:01 -05:00
hle_ipc.cpp hle_ipc: Refactor SleepClientThread to avoid ReadableEvent 2018-11-29 09:14:20 -05:00
hle_ipc.h hle_ipc: Refactor SleepClientThread to avoid ReadableEvent 2018-11-29 09:14:20 -05:00
kernel.cpp hle_ipc: Refactor SleepClientThread to avoid ReadableEvent 2018-11-29 09:14:20 -05:00
kernel.h kernel/event: Reference ReadableEvent from WritableEvent 2018-11-29 08:48:40 -05:00
mutex.cpp general: Remove unused boost inclusions where applicable 2018-10-30 00:09:46 -04:00
mutex.h kernel: Eliminate kernel global state 2018-08-28 22:31:51 -04:00
object.cpp kernel/object: Amend handle types to distinguish between readable and writable events 2018-12-04 02:20:47 -05:00
object.h kernel/object: Amend handle types to distinguish between readable and writable events 2018-12-04 02:20:47 -05:00
process.cpp kernel/process: Move <random> include to the cpp file 2018-11-20 17:46:20 -05:00
process.h kernel/process: Move <random> include to the cpp file 2018-11-20 17:46:20 -05:00
readable_event.cpp kernel/event: Reference ReadableEvent from WritableEvent 2018-11-29 08:48:40 -05:00
readable_event.h kernel/object: Amend handle types to distinguish between readable and writable events 2018-12-04 02:20:47 -05:00
resource_limit.cpp kernel/resource_limit: Clean up interface 2018-11-19 18:16:39 -05:00
resource_limit.h svc: Implement svcGetResourceLimitLimitValue() 2018-11-26 21:12:13 -05:00
scheduler.cpp svc: Implement svcGetInfo command 0xF0000002 2018-10-26 12:49:11 -04:00
scheduler.h svc: Implement svcGetInfo command 0xF0000002 2018-10-26 12:49:11 -04:00
server_port.cpp kernel/server_port: Simplify emptiness check within ShouldWait() 2018-10-24 14:24:36 -04:00
server_port.h Ported #4296 from citra 2018-10-06 16:49:01 +10:00
server_session.cpp hle_ipc: Add member function for querying the existence of a domain header 2018-10-29 23:28:04 -04:00
server_session.h kernel: Eliminate kernel global state 2018-08-28 22:31:51 -04:00
session.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
session.h kernel: Move object class to its own source files 2018-08-01 23:34:42 -04:00
shared_memory.cpp kernel/shared_memory: Make Map() and Unmap() take the target process by reference rather than as a pointer 2018-11-19 09:20:29 -05:00
shared_memory.h kernel/shared_memory: Make Map() and Unmap() take the target process by reference rather than as a pointer 2018-11-19 09:20:29 -05:00
svc.cpp kernel/object: Amend handle types to distinguish between readable and writable events 2018-12-04 02:20:47 -05:00
svc.h svc: Localize the GetInfo enum class to the function itself 2018-10-26 12:49:14 -04:00
svc_wrap.h svc: Implement svcCreateResourceLimit() 2018-11-26 21:10:31 -05:00
thread.cpp kernel/thread: Deduplicate scheduler switching code 2018-11-14 00:02:42 -05:00
thread.h kernel/thread: Deduplicate scheduler switching code 2018-11-14 00:02:42 -05:00
timer.cpp kernel: Eliminate kernel global state 2018-08-28 22:31:51 -04:00
timer.h kernel: Eliminate kernel global state 2018-08-28 22:31:51 -04:00
vm_manager.cpp ldr_ro: Add error check for memory allocation failure 2018-11-17 21:40:26 -05:00
vm_manager.h ldr_ro: Add error check for memory allocation failure 2018-11-17 21:40:26 -05:00
wait_object.cpp kernel/thread: Make all instance variables private 2018-10-04 00:14:15 -04:00
wait_object.h kernel/object: Remove unnecessary std::move from DynamicObjectCast() 2018-09-28 02:17:57 -04:00
writable_event.cpp hle_ipc: Refactor SleepClientThread to avoid ReadableEvent 2018-11-29 09:14:20 -05:00
writable_event.h kernel/object: Amend handle types to distinguish between readable and writable events 2018-12-04 02:20:47 -05:00