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.cpp | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/core/hle/service/nvflinger/hos_binder_driver_server.cpp (limited to 'src/core/hle/service/nvflinger/hos_binder_driver_server.cpp') diff --git a/src/core/hle/service/nvflinger/hos_binder_driver_server.cpp b/src/core/hle/service/nvflinger/hos_binder_driver_server.cpp new file mode 100644 index 000000000..0c937d682 --- /dev/null +++ b/src/core/hle/service/nvflinger/hos_binder_driver_server.cpp @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright 2021 yuzu Emulator Project + +#include + +#include "common/common_types.h" +#include "core/hle/service/nvflinger/hos_binder_driver_server.h" + +namespace Service::NVFlinger { + +HosBinderDriverServer::HosBinderDriverServer(Core::System& system_) + : service_context(system_, "HosBinderDriverServer") {} + +HosBinderDriverServer::~HosBinderDriverServer() {} + +u64 HosBinderDriverServer::RegisterProducer(std::unique_ptr&& binder) { + std::lock_guard lk{lock}; + + last_id++; + + producers[last_id] = std::move(binder); + + return last_id; +} + +android::IBinder* HosBinderDriverServer::TryGetProducer(u64 id) { + std::lock_guard lk{lock}; + + if (auto search = producers.find(id); search != producers.end()) { + return search->second.get(); + } + + return {}; +} + +} // namespace Service::NVFlinger -- cgit v1.2.3