diff options
| author | LC <mathew1800@gmail.com> | 2021-01-28 10:52:44 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-28 10:52:44 -0500 |
| commit | 9f6290d2078424dce4206cd29a5709492c11c5f9 (patch) | |
| tree | 488dc7decfcb459e5335fba8f3e9146b2f62bfa5 /src/core/hle/kernel/hle_ipc.cpp | |
| parent | 0e125dfd43113251e1ea1164c47c2f003bd61a8c (diff) | |
| parent | ae6b3bdfbffd5c234be9529616468f377a0b6844 (diff) | |
Merge pull request #5840 from Morph1984/prepo-fix
prepo: Fix BufferDescriptorX invalid buffer index errors and add New variants of SaveReport
Diffstat (limited to 'src/core/hle/kernel/hle_ipc.cpp')
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp index 83decf6cf..a419f9602 100644 --- a/src/core/hle/kernel/hle_ipc.cpp +++ b/src/core/hle/kernel/hle_ipc.cpp @@ -338,6 +338,28 @@ std::size_t HLERequestContext::GetWriteBufferSize(std::size_t buffer_index) cons return 0; } +bool HLERequestContext::CanReadBuffer(std::size_t buffer_index) const { + const bool is_buffer_a{BufferDescriptorA().size() > buffer_index && + BufferDescriptorA()[buffer_index].Size()}; + + if (is_buffer_a) { + return BufferDescriptorA().size() > buffer_index; + } else { + return BufferDescriptorX().size() > buffer_index; + } +} + +bool HLERequestContext::CanWriteBuffer(std::size_t buffer_index) const { + const bool is_buffer_b{BufferDescriptorB().size() > buffer_index && + BufferDescriptorB()[buffer_index].Size()}; + + if (is_buffer_b) { + return BufferDescriptorB().size() > buffer_index; + } else { + return BufferDescriptorC().size() > buffer_index; + } +} + std::string HLERequestContext::Description() const { if (!command_header) { return "No command header available"; |
