Explorar o código

olsc: rewrite INativeHandleHolder

Liam %!s(int64=2) %!d(string=hai) anos
pai
achega
8689370830

+ 8 - 1
src/core/hle/service/olsc/native_handle_holder.cpp

@@ -1,6 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 // SPDX-License-Identifier: GPL-2.0-or-later
 
 
+#include "core/hle/service/cmif_serialization.h"
 #include "core/hle/service/olsc/native_handle_holder.h"
 #include "core/hle/service/olsc/native_handle_holder.h"
 
 
 namespace Service::OLSC {
 namespace Service::OLSC {
@@ -9,7 +10,7 @@ INativeHandleHolder::INativeHandleHolder(Core::System& system_)
     : ServiceFramework{system_, "INativeHandleHolder"} {
     : ServiceFramework{system_, "INativeHandleHolder"} {
     // clang-format off
     // clang-format off
     static const FunctionInfo functions[] = {
     static const FunctionInfo functions[] = {
-        {0, nullptr, "GetNativeHandle"},
+        {0, D<&INativeHandleHolder::GetNativeHandle>, "GetNativeHandle"},
     };
     };
     // clang-format on
     // clang-format on
 
 
@@ -18,4 +19,10 @@ INativeHandleHolder::INativeHandleHolder(Core::System& system_)
 
 
 INativeHandleHolder::~INativeHandleHolder() = default;
 INativeHandleHolder::~INativeHandleHolder() = default;
 
 
+Result INativeHandleHolder::GetNativeHandle(OutCopyHandle<Kernel::KReadableEvent> out_event) {
+    LOG_WARNING(Service_OLSC, "(STUBBED) called");
+    *out_event = nullptr;
+    R_SUCCEED();
+}
+
 } // namespace Service::OLSC
 } // namespace Service::OLSC

+ 8 - 0
src/core/hle/service/olsc/native_handle_holder.h

@@ -1,14 +1,22 @@
 // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 // SPDX-License-Identifier: GPL-2.0-or-later
 
 
+#include "core/hle/service/cmif_types.h"
 #include "core/hle/service/service.h"
 #include "core/hle/service/service.h"
 
 
+namespace Kernel {
+class KReadableEvent;
+}
+
 namespace Service::OLSC {
 namespace Service::OLSC {
 
 
 class INativeHandleHolder final : public ServiceFramework<INativeHandleHolder> {
 class INativeHandleHolder final : public ServiceFramework<INativeHandleHolder> {
 public:
 public:
     explicit INativeHandleHolder(Core::System& system_);
     explicit INativeHandleHolder(Core::System& system_);
     ~INativeHandleHolder() override;
     ~INativeHandleHolder() override;
+
+private:
+    Result GetNativeHandle(OutCopyHandle<Kernel::KReadableEvent> out_event);
 };
 };
 
 
 } // namespace Service::OLSC
 } // namespace Service::OLSC