Просмотр исходного кода

hle: nvflinger: Add IBinder interface.

bunnei 4 лет назад
Родитель
Сommit
fe9945ad6c
2 измененных файлов с 43 добавлено и 0 удалено
  1. 1 0
      src/core/CMakeLists.txt
  2. 42 0
      src/core/hle/service/nvflinger/binder.h

+ 1 - 0
src/core/CMakeLists.txt

@@ -537,6 +537,7 @@ add_library(core STATIC
     hle/service/nvdrv/syncpoint_manager.h
     hle/service/nvflinger/buffer_queue.cpp
     hle/service/nvflinger/buffer_queue.h
+    hle/service/nvflinger/binder.h
     hle/service/nvflinger/buffer_transform_flags.h
     hle/service/nvflinger/consumer_listener.h
     hle/service/nvflinger/nvflinger.cpp

+ 42 - 0
src/core/hle/service/nvflinger/binder.h

@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/binder/IBinder.h
+
+#pragma once
+
+#include "common/common_types.h"
+
+namespace Kernel {
+class HLERequestContext;
+class KReadableEvent;
+} // namespace Kernel
+
+namespace android {
+
+enum class TransactionId {
+    RequestBuffer = 1,
+    SetBufferCount = 2,
+    DequeueBuffer = 3,
+    DetachBuffer = 4,
+    DetachNextBuffer = 5,
+    AttachBuffer = 6,
+    QueueBuffer = 7,
+    CancelBuffer = 8,
+    Query = 9,
+    Connect = 10,
+    Disconnect = 11,
+    AllocateBuffers = 13,
+    SetPreallocatedBuffer = 14,
+    GetBufferHistory = 17,
+};
+
+class IBinder {
+public:
+    virtual void Transact(Kernel::HLERequestContext& ctx, android::TransactionId code,
+                          u32 flags) = 0;
+    virtual Kernel::KReadableEvent& GetNativeHandle() = 0;
+};
+
+} // namespace android