yuzu/src/core/hle/kernel
Lioncash cb198d7985 core/hle/kernel: Split transfer memory handling out into its own class
Within the kernel, shared memory and transfer memory facilities exist as
completely different kernel objects. They also have different validity
checking as well. Therefore, we shouldn't be treating the two as the
same kind of memory.

They also differ in terms of their behavioral aspect as well. Shared
memory is intended for sharing memory between processes, while transfer
memory is intended to be for transferring memory to other processes.

This breaks out the handling for transfer memory into its own class and
treats it as its own kernel object. This is also important when we
consider resource limits as well. Particularly because transfer memory
is limited by the resource limit value set for it.

While we currently don't handle resource limit testing against objects
yet (but we do allow setting them), this will make implementing that
behavior much easier in the future, as we don't need to distinguish
between shared memory and transfer memory allocations in the same place.
2019-03-13 06:04:44 -04:00
..
address_arbiter.cpp kernel/svc: Move address arbiter signaling behind a unified API function 2019-03-07 23:27:47 -05:00
address_arbiter.h kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05: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/server_session: Make data members private 2019-03-05 20:10:07 -05:00
client_session.h kernel/client_session: Make data members private 2019-03-05 20:10:03 -05:00
errors.h kernel/handle_table: Allow process capabilities to limit the handle table size 2019-02-25 11:12:32 -05:00
handle_table.cpp kernel/handle_table: Make local variables as const where applicable 2019-02-25 11:12:38 -05:00
handle_table.h kernel/handle_table: Allow process capabilities to limit the handle table size 2019-02-25 11:12:32 -05:00
hle_ipc.cpp kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional 2019-03-07 23:34:37 -05:00
hle_ipc.h kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional 2019-03-07 23:34:37 -05:00
kernel.cpp kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05:00
kernel.h kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -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 core/hle/kernel: Split transfer memory handling out into its own class 2019-03-13 06:04:44 -04:00
object.h core/hle/kernel: Split transfer memory handling out into its own class 2019-03-13 06:04:44 -04:00
process.cpp kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05:00
process.h kernel: Make the address arbiter instance per-process 2019-03-07 23:27:51 -05:00
process_capability.cpp kernel/handle_table: Allow process capabilities to limit the handle table size 2019-02-25 11:12:32 -05:00
process_capability.h kernel/handle_table: Allow process capabilities to limit the handle table size 2019-02-25 11:12:32 -05:00
readable_event.cpp kernel/readable_event: Remove unnecessary WakeupAllWaitingThreads() override 2019-01-30 12:45:00 -05:00
readable_event.h kernel/readable_event: Remove unnecessary WakeupAllWaitingThreads() override 2019-01-30 12:45:00 -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 kernel/scheduler: Pass in system instance in constructor 2019-03-04 17:01:37 -05:00
scheduler.h kernel/scheduler: Pass in system instance in constructor 2019-03-04 17:01:37 -05: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 kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional 2019-03-07 23:34:37 -05:00
server_session.h kernel/server_session: Make data members private 2019-03-05 20:10:07 -05: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: Get rid of the use of global accessor functions within Create() 2019-03-04 16:52:36 -05:00
shared_memory.h Fix Process object leak on emulation stop 2018-12-12 17:25:56 +01:00
svc.cpp core/hle/kernel: Split transfer memory handling out into its own class 2019-03-13 06:04:44 -04:00
svc.h vm_manager: Migrate MemoryInfo and PageInfo to vm_manager.h 2018-12-12 14:03:53 -05:00
svc_wrap.h kernel/svc: Correct output parameter for svcGetProcessId 2018-12-18 22:30:56 -05:00
thread.cpp kernel/thread: Remove obsolete TODO in Create() 2019-03-05 10:05:49 -05:00
thread.h kernel: Rename 'default' CPU core to 'ideal' core 2018-12-27 21:48:49 -05:00
transfer_memory.cpp core/hle/kernel: Split transfer memory handling out into its own class 2019-03-13 06:04:44 -04:00
transfer_memory.h core/hle/kernel: Split transfer memory handling out into its own class 2019-03-13 06:04:44 -04:00
vm_manager.cpp vm_manager: Use range helpers in HeapAlloc() and HeapFree() 2019-03-04 17:16:52 -05:00
vm_manager.h vm_manager: Provide address range checking functions for other memory regions 2019-03-04 17:08:55 -05:00
wait_object.cpp core/kernel: Remove unnecessary inclusions 2018-12-31 19:04:16 -05:00
wait_object.h kernel/wait_object: Devirtualize functions related to manipulating the thread list directly 2019-01-30 12:50:37 -05:00
writable_event.cpp hle_ipc: Refactor SleepClientThread to avoid ReadableEvent 2018-11-29 09:14:20 -05:00
writable_event.h core/kernel: Remove unnecessary inclusions 2018-12-31 19:04:16 -05:00