|
|
|
@ -12,7 +12,6 @@ |
|
|
|
#include <utility> |
|
|
|
#include "common/assert.h" |
|
|
|
#include "common/common_types.h" |
|
|
|
#include "core/core.h" |
|
|
|
#include "core/hle/ipc.h" |
|
|
|
#include "core/hle/kernel/client_port.h" |
|
|
|
#include "core/hle/kernel/client_session.h" |
|
|
|
@ -73,14 +72,12 @@ public: |
|
|
|
AlwaysMoveHandles = 1, |
|
|
|
}; |
|
|
|
|
|
|
|
explicit ResponseBuilder(u32* command_buffer) : RequestHelperBase(command_buffer) {} |
|
|
|
|
|
|
|
explicit ResponseBuilder(Kernel::HLERequestContext& context, u32 normal_params_size, |
|
|
|
u32 num_handles_to_copy = 0, u32 num_objects_to_move = 0, |
|
|
|
Flags flags = Flags::None) |
|
|
|
|
|
|
|
: RequestHelperBase(context), normal_params_size(normal_params_size), |
|
|
|
num_handles_to_copy(num_handles_to_copy), num_objects_to_move(num_objects_to_move) { |
|
|
|
num_handles_to_copy(num_handles_to_copy), |
|
|
|
num_objects_to_move(num_objects_to_move), kernel{context.kernel} { |
|
|
|
|
|
|
|
memset(cmdbuf, 0, sizeof(u32) * IPC::COMMAND_BUFFER_LENGTH); |
|
|
|
|
|
|
|
@ -140,7 +137,6 @@ public: |
|
|
|
if (context->Session()->IsDomain()) { |
|
|
|
context->AddDomainObject(std::move(iface)); |
|
|
|
} else { |
|
|
|
auto& kernel = Core::System::GetInstance().Kernel(); |
|
|
|
auto [client, server] = Kernel::Session::Create(kernel, iface->GetServiceName()); |
|
|
|
context->AddMoveObject(std::move(client)); |
|
|
|
iface->ClientConnected(std::move(server)); |
|
|
|
@ -214,6 +210,7 @@ private: |
|
|
|
u32 num_handles_to_copy{}; |
|
|
|
u32 num_objects_to_move{}; ///< Domain objects or move handles, context dependent |
|
|
|
std::ptrdiff_t datapayload_index{}; |
|
|
|
Kernel::KernelCore& kernel; |
|
|
|
}; |
|
|
|
|
|
|
|
/// Push /// |
|
|
|
|