summaryrefslogtreecommitdiffstats
path: root/src/core/hle/ipc_helpers.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/ipc_helpers.h')
-rw-r--r--src/core/hle/ipc_helpers.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h
index 323158bb5..11a33c8bd 100644
--- a/src/core/hle/ipc_helpers.h
+++ b/src/core/hle/ipc_helpers.h
@@ -27,6 +27,18 @@ public:
DEBUG_ASSERT_MSG(index == TotalSize(), "Operations do not match the header (cmd 0x%x)",
header.raw);
}
+
+ /**
+ * @brief Retrieves the address of a static buffer, used when a buffer is needed for output
+ * @param buffer_id The index of the static buffer
+ * @param data_size If non-null, will store the size of the buffer
+ */
+ VAddr PeekStaticBuffer(u8 buffer_id, size_t* data_size = nullptr) const {
+ u32* static_buffer = cmdbuf + Kernel::kStaticBuffersOffset / 4 + buffer_id * 2;
+ if (data_size)
+ *data_size = StaticBufferDescInfo{static_buffer[0]}.size;
+ return static_buffer[1];
+ }
};
class RequestBuilder : public RequestHelperBase {