From fe9945ad6cc44ea234743bf085617d535342fab1 Mon Sep 17 00:00:00 2001 From: bunnei Date: Thu, 11 Nov 2021 18:35:28 -0800 Subject: [PATCH] hle: nvflinger: Add IBinder interface. --- src/core/CMakeLists.txt | 1 + src/core/hle/service/nvflinger/binder.h | 42 +++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/core/hle/service/nvflinger/binder.h diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index eebd610c30..b8fdcbd1fd 100644 --- a/src/core/CMakeLists.txt +++ b/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 diff --git a/src/core/hle/service/nvflinger/binder.h b/src/core/hle/service/nvflinger/binder.h new file mode 100644 index 0000000000..2d9a235730 --- /dev/null +++ b/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