Răsfoiți Sursa

IPC: Corrected some definitions for the buffer C descriptor flags.

Subv 8 ani în urmă
părinte
comite
ab86b80cac
3 a modificat fișierele cu 10 adăugiri și 3 ștergeri
  1. 2 2
      src/core/hle/ipc.h
  2. 4 1
      src/core/hle/kernel/hle_ipc.cpp
  3. 4 0
      src/core/hle/kernel/hle_ipc.h

+ 2 - 2
src/core/hle/ipc.h

@@ -48,8 +48,8 @@ struct CommandHeader {
 
     enum class BufferDescriptorCFlag : u32 {
         Disabled = 0,
-        NoDescriptor = 1,
-        TwoDesciptors = 2,
+        InlineDescriptor = 1,
+        OneDescriptor = 2,
     };
 
     union {

+ 4 - 1
src/core/hle/kernel/hle_ipc.cpp

@@ -83,7 +83,10 @@ void HLERequestContext::ParseCommandBuffer(u32_le* src_cmdbuf, bool incoming) {
     }
     if (command_header->buf_c_descriptor_flags !=
         IPC::CommandHeader::BufferDescriptorCFlag::Disabled) {
-        UNIMPLEMENTED();
+        if (command_header->buf_c_descriptor_flags !=
+            IPC::CommandHeader::BufferDescriptorCFlag::OneDescriptor) {
+            UNIMPLEMENTED();
+        }
     }
 
     // Padding to align to 16 bytes

+ 4 - 0
src/core/hle/kernel/hle_ipc.h

@@ -139,6 +139,10 @@ public:
         return buffer_a_desciptors;
     }
 
+    const std::vector<IPC::BufferDescriptorABW>& BufferDescriptorB() const {
+        return buffer_b_desciptors;
+    }
+
     const std::unique_ptr<IPC::DomainMessageHeader>& GetDomainMessageHeader() const {
         return domain_message_header;
     }