From a87812c6a12fbb4b48c0a890ae5a181402743f69 Mon Sep 17 00:00:00 2001 From: bunnei Date: Thu, 11 Nov 2021 19:13:21 -0800 Subject: hle: nvflinger: Add implementation for HosBinderDriverServer service. --- .../service/nvflinger/hos_binder_driver_server.h | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/core/hle/service/nvflinger/hos_binder_driver_server.h (limited to 'src/core/hle/service/nvflinger/hos_binder_driver_server.h') diff --git a/src/core/hle/service/nvflinger/hos_binder_driver_server.h b/src/core/hle/service/nvflinger/hos_binder_driver_server.h new file mode 100644 index 000000000..cbca87fa0 --- /dev/null +++ b/src/core/hle/service/nvflinger/hos_binder_driver_server.h @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright 2021 yuzu Emulator Project + +#pragma once + +#include +#include +#include + +#include "common/common_types.h" +#include "core/hle/service/kernel_helpers.h" +#include "core/hle/service/nvflinger/binder.h" + +namespace Core { +class System; +} + +namespace Service::NVFlinger { + +class HosBinderDriverServer final { +public: + explicit HosBinderDriverServer(Core::System& system_); + ~HosBinderDriverServer(); + + u64 RegisterProducer(std::unique_ptr&& binder); + + android::IBinder* TryGetProducer(u64 id); + +private: + KernelHelpers::ServiceContext service_context; + + std::unordered_map> producers; + std::mutex lock; + u64 last_id{}; +}; + +} // namespace Service::NVFlinger -- cgit v1.2.3