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
client_port.h
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
handle_table.cpp
handle_table.h
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
mutex.h
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_capability.cpp
process_capability.h
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
readable_event.cpp
readable_event.h
resource_limit.cpp
resource_limit.h
scheduler.cpp
scheduler.h
server_port.cpp
server_port.h
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
session.h
shared_memory.cpp
shared_memory.h
svc_wrap.h
svc.cpp core/hle/kernel: Split transfer memory handling out into its own class 2019-03-13 06:04:44 -04:00
svc.h
thread.cpp
thread.h
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.h
wait_object.cpp
wait_object.h
writable_event.cpp
writable_event.h