summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/hle/ipc_helpers.h23
-rw-r--r--src/core/hle/kernel/hle_ipc.h2
2 files changed, 13 insertions, 12 deletions
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h
index 6a5e43899..f5bd27a75 100644
--- a/src/core/hle/ipc_helpers.h
+++ b/src/core/hle/ipc_helpers.h
@@ -25,9 +25,9 @@ protected:
25 ptrdiff_t index = 0; 25 ptrdiff_t index = 0;
26 26
27public: 27public:
28 RequestHelperBase(u32* command_buffer) : cmdbuf(command_buffer) {} 28 explicit RequestHelperBase(u32* command_buffer) : cmdbuf(command_buffer) {}
29 29
30 RequestHelperBase(Kernel::HLERequestContext& context) 30 explicit RequestHelperBase(Kernel::HLERequestContext& context)
31 : context(&context), cmdbuf(context.CommandBuffer()) {} 31 : context(&context), cmdbuf(context.CommandBuffer()) {}
32 32
33 void Skip(unsigned size_in_words, bool set_to_null) { 33 void Skip(unsigned size_in_words, bool set_to_null) {
@@ -56,8 +56,6 @@ public:
56 56
57class ResponseBuilder : public RequestHelperBase { 57class ResponseBuilder : public RequestHelperBase {
58public: 58public:
59 ResponseBuilder(u32* command_buffer) : RequestHelperBase(command_buffer) {}
60
61 /// Flags used for customizing the behavior of ResponseBuilder 59 /// Flags used for customizing the behavior of ResponseBuilder
62 enum class Flags : u32 { 60 enum class Flags : u32 {
63 None = 0, 61 None = 0,
@@ -66,9 +64,11 @@ public:
66 AlwaysMoveHandles = 1, 64 AlwaysMoveHandles = 1,
67 }; 65 };
68 66
69 ResponseBuilder(Kernel::HLERequestContext& context, u32 normal_params_size, 67 explicit ResponseBuilder(u32* command_buffer) : RequestHelperBase(command_buffer) {}
70 u32 num_handles_to_copy = 0, u32 num_objects_to_move = 0, 68
71 Flags flags = Flags::None) 69 explicit ResponseBuilder(Kernel::HLERequestContext& context, u32 normal_params_size,
70 u32 num_handles_to_copy = 0, u32 num_objects_to_move = 0,
71 Flags flags = Flags::None)
72 72
73 : RequestHelperBase(context), normal_params_size(normal_params_size), 73 : RequestHelperBase(context), normal_params_size(normal_params_size),
74 num_handles_to_copy(num_handles_to_copy), num_objects_to_move(num_objects_to_move) { 74 num_handles_to_copy(num_handles_to_copy), num_objects_to_move(num_objects_to_move) {
@@ -274,9 +274,9 @@ inline void ResponseBuilder::PushMoveObjects(Kernel::SharedPtr<O>... pointers) {
274 274
275class RequestParser : public RequestHelperBase { 275class RequestParser : public RequestHelperBase {
276public: 276public:
277 RequestParser(u32* command_buffer) : RequestHelperBase(command_buffer) {} 277 explicit RequestParser(u32* command_buffer) : RequestHelperBase(command_buffer) {}
278 278
279 RequestParser(Kernel::HLERequestContext& context) : RequestHelperBase(context) { 279 explicit RequestParser(Kernel::HLERequestContext& context) : RequestHelperBase(context) {
280 ASSERT_MSG(context.GetDataPayloadOffset(), "context is incomplete"); 280 ASSERT_MSG(context.GetDataPayloadOffset(), "context is incomplete");
281 Skip(context.GetDataPayloadOffset(), false); 281 Skip(context.GetDataPayloadOffset(), false);
282 // Skip the u64 command id, it's already stored in the context 282 // Skip the u64 command id, it's already stored in the context
@@ -286,8 +286,9 @@ public:
286 286
287 ResponseBuilder MakeBuilder(u32 normal_params_size, u32 num_handles_to_copy, 287 ResponseBuilder MakeBuilder(u32 normal_params_size, u32 num_handles_to_copy,
288 u32 num_handles_to_move, 288 u32 num_handles_to_move,
289 ResponseBuilder::Flags flags = ResponseBuilder::Flags::None) { 289 ResponseBuilder::Flags flags = ResponseBuilder::Flags::None) const {
290 return {*context, normal_params_size, num_handles_to_copy, num_handles_to_move, flags}; 290 return ResponseBuilder{*context, normal_params_size, num_handles_to_copy,
291 num_handles_to_move, flags};
291 } 292 }
292 293
293 template <typename T> 294 template <typename T>
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h
index 01b805df8..84727f748 100644
--- a/src/core/hle/kernel/hle_ipc.h
+++ b/src/core/hle/kernel/hle_ipc.h
@@ -91,7 +91,7 @@ protected:
91 */ 91 */
92class HLERequestContext { 92class HLERequestContext {
93public: 93public:
94 HLERequestContext(SharedPtr<Kernel::ServerSession> session); 94 explicit HLERequestContext(SharedPtr<ServerSession> session);
95 ~HLERequestContext(); 95 ~HLERequestContext();
96 96
97 /// Returns a pointer to the IPC command buffer for this request. 97 /// Returns a pointer to the IPC command buffer for this request.