IPC: store mapped buffer info in session context

So that it doesn't have to scan over the request buffer again on reply. This also allow us to store additional info like memory mapping
This commit is contained in:
Weiyi Wang 2018-11-08 13:53:20 -05:00
parent 7a564b904b
commit 0b8d2ecabe
4 changed files with 59 additions and 82 deletions

View file

@ -4,11 +4,23 @@
#pragma once
#include <vector>
#include "common/common_types.h"
#include "core/hle/ipc.h"
#include "core/hle/kernel/thread.h"
namespace Kernel {
struct MappedBufferContext {
IPC::MappedBufferPermissions permissions;
u32 size;
VAddr source_address;
VAddr target_address;
};
/// Performs IPC command buffer translation from one process to another.
ResultCode TranslateCommandBuffer(SharedPtr<Thread> src_thread, SharedPtr<Thread> dst_thread,
VAddr src_address, VAddr dst_address, bool reply);
VAddr src_address, VAddr dst_address,
std::vector<MappedBufferContext>& mapped_buffer_context,
bool reply);
} // namespace Kernel