|
|
@ -84,6 +84,7 @@ protected:
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
class HLERequestContext {
|
|
|
|
class HLERequestContext {
|
|
|
|
public:
|
|
|
|
public:
|
|
|
|
|
|
|
|
HLERequestContext(SharedPtr<ServerSession> session);
|
|
|
|
~HLERequestContext();
|
|
|
|
~HLERequestContext();
|
|
|
|
|
|
|
|
|
|
|
|
/// Returns a pointer to the IPC command buffer for this request.
|
|
|
|
/// Returns a pointer to the IPC command buffer for this request.
|
|
|
@ -118,14 +119,14 @@ public:
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
void ClearIncomingObjects();
|
|
|
|
void ClearIncomingObjects();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
/// Populates this context with data from the requesting process/thread.
|
|
|
|
friend class Service::ServiceFrameworkBase;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ResultCode PopulateFromIncomingCommandBuffer(const u32_le* src_cmdbuf, Process& src_process,
|
|
|
|
ResultCode PopulateFromIncomingCommandBuffer(const u32_le* src_cmdbuf, Process& src_process,
|
|
|
|
HandleTable& src_table);
|
|
|
|
HandleTable& src_table);
|
|
|
|
|
|
|
|
/// Writes data from this context back to the requesting process/thread.
|
|
|
|
ResultCode WriteToOutgoingCommandBuffer(u32_le* dst_cmdbuf, Process& dst_process,
|
|
|
|
ResultCode WriteToOutgoingCommandBuffer(u32_le* dst_cmdbuf, Process& dst_process,
|
|
|
|
HandleTable& dst_table) const;
|
|
|
|
HandleTable& dst_table) const;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
std::array<u32, IPC::COMMAND_BUFFER_LENGTH> cmd_buf;
|
|
|
|
std::array<u32, IPC::COMMAND_BUFFER_LENGTH> cmd_buf;
|
|
|
|
SharedPtr<ServerSession> session;
|
|
|
|
SharedPtr<ServerSession> session;
|
|
|
|
// TODO(yuriks): Check common usage of this and optimize size accordingly
|
|
|
|
// TODO(yuriks): Check common usage of this and optimize size accordingly
|
|
|
|