diff options
| author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-06-08 23:52:30 -0700 | 
|---|---|---|
| committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-06-11 13:07:33 -0700 | 
| commit | 20e5abb30807d4e0e34c79c049252f0872e47ca7 (patch) | |
| tree | 54284838ca89629576a046807b6965fe11507880 /src/core/hle/kernel | |
| parent | 9a8a90b52b4a7254ad73afbd23605516c50c5417 (diff) | |
ServiceFramework: Use separate copy of command buffer
Copy the IPC command buffer to/from the request context before/after the
handler is invoked. This is part of a move away from using global data
for handling IPC requests.
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.h | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h index c30184eab..aa0046001 100644 --- a/src/core/hle/kernel/hle_ipc.h +++ b/src/core/hle/kernel/hle_ipc.h @@ -4,8 +4,11 @@  #pragma once +#include <array>  #include <memory>  #include <vector> +#include "common/common_types.h" +#include "core/hle/ipc.h"  #include "core/hle/kernel/kernel.h"  #include "core/hle/kernel/server_session.h" @@ -65,8 +68,8 @@ public:      ~HLERequestContext();      /// Returns a pointer to the IPC command buffer for this request. -    u32* CommandBuffer() const { -        return cmd_buf; +    u32* CommandBuffer() { +        return cmd_buf.data();      }      /** @@ -80,7 +83,7 @@ public:  private:      friend class Service::ServiceFrameworkBase; -    u32* cmd_buf = nullptr; +    std::array<u32, IPC::COMMAND_BUFFER_LENGTH> cmd_buf;      SharedPtr<ServerSession> session;  }; | 
