aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLiam <[email protected]>2024-02-21 18:36:17 -0500
committerLiam <[email protected]>2024-02-21 18:36:17 -0500
commit6b956a695196d73c38fd717c516f3ae27e0f2387 (patch)
tree4f4dc87038bb582b1f1410f3791677cc7e9af159
parent868937083097ad5ea2ce5c2b209762064b9c9381 (diff)
downloadyuzu-android-6b956a695196d73c38fd717c516f3ae27e0f2387.tar.gz
yuzu-android-6b956a695196d73c38fd717c516f3ae27e0f2387.zip
olsc: rewrite ITransferTaskListController
-rw-r--r--src/core/hle/service/olsc/transfer_task_list_controller.cpp69
-rw-r--r--src/core/hle/service/olsc/transfer_task_list_controller.h5
2 files changed, 38 insertions, 36 deletions
diff --git a/src/core/hle/service/olsc/transfer_task_list_controller.cpp b/src/core/hle/service/olsc/transfer_task_list_controller.cpp
index 9aa941309..8ea9a0f1e 100644
--- a/src/core/hle/service/olsc/transfer_task_list_controller.cpp
+++ b/src/core/hle/service/olsc/transfer_task_list_controller.cpp
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
-#include "core/hle/service/ipc_helpers.h"
+#include "core/hle/service/cmif_serialization.h"
#include "core/hle/service/olsc/native_handle_holder.h"
#include "core/hle/service/olsc/transfer_task_list_controller.h"
@@ -10,34 +10,34 @@ namespace Service::OLSC {
ITransferTaskListController::ITransferTaskListController(Core::System& system_)
: ServiceFramework{system_, "ITransferTaskListController"} {
// clang-format off
- static const FunctionInfo functions[] = {
- {0, nullptr, "Unknown0"},
- {1, nullptr, "Unknown1"},
- {2, nullptr, "Unknown2"},
- {3, nullptr, "Unknown3"},
- {4, nullptr, "Unknown4"},
- {5, &ITransferTaskListController::GetNativeHandleHolder , "GetNativeHandleHolder"},
- {6, nullptr, "Unknown6"},
- {7, nullptr, "Unknown7"},
- {8, nullptr, "GetRemoteStorageController"},
- {9, &ITransferTaskListController::GetNativeHandleHolder, "GetNativeHandleHolder2"},
- {10, nullptr, "Unknown10"},
- {11, nullptr, "Unknown11"},
- {12, nullptr, "Unknown12"},
- {13, nullptr, "Unknown13"},
- {14, nullptr, "Unknown14"},
- {15, nullptr, "Unknown15"},
- {16, nullptr, "Unknown16"},
- {17, nullptr, "Unknown17"},
- {18, nullptr, "Unknown18"},
- {19, nullptr, "Unknown19"},
- {20, nullptr, "Unknown20"},
- {21, nullptr, "Unknown21"},
- {22, nullptr, "Unknown22"},
- {23, nullptr, "Unknown23"},
- {24, nullptr, "Unknown24"},
- {25, nullptr, "Unknown25"},
- };
+ static const FunctionInfo functions[] = {
+ {0, nullptr, "Unknown0"},
+ {1, nullptr, "Unknown1"},
+ {2, nullptr, "Unknown2"},
+ {3, nullptr, "Unknown3"},
+ {4, nullptr, "Unknown4"},
+ {5, D<&ITransferTaskListController::GetNativeHandleHolder>, "GetNativeHandleHolder"},
+ {6, nullptr, "Unknown6"},
+ {7, nullptr, "Unknown7"},
+ {8, nullptr, "GetRemoteStorageController"},
+ {9, D<&ITransferTaskListController::GetNativeHandleHolder>, "GetNativeHandleHolder2"},
+ {10, nullptr, "Unknown10"},
+ {11, nullptr, "Unknown11"},
+ {12, nullptr, "Unknown12"},
+ {13, nullptr, "Unknown13"},
+ {14, nullptr, "Unknown14"},
+ {15, nullptr, "Unknown15"},
+ {16, nullptr, "Unknown16"},
+ {17, nullptr, "Unknown17"},
+ {18, nullptr, "Unknown18"},
+ {19, nullptr, "Unknown19"},
+ {20, nullptr, "Unknown20"},
+ {21, nullptr, "Unknown21"},
+ {22, nullptr, "Unknown22"},
+ {23, nullptr, "Unknown23"},
+ {24, nullptr, "Unknown24"},
+ {25, nullptr, "Unknown25"},
+ };
// clang-format on
RegisterHandlers(functions);
@@ -45,12 +45,11 @@ ITransferTaskListController::ITransferTaskListController(Core::System& system_)
ITransferTaskListController::~ITransferTaskListController() = default;
-void ITransferTaskListController::GetNativeHandleHolder(HLERequestContext& ctx) {
- LOG_INFO(Service_OLSC, "called");
-
- IPC::ResponseBuilder rb{ctx, 2, 0, 1};
- rb.Push(ResultSuccess);
- rb.PushIpcInterface<INativeHandleHolder>(system);
+Result ITransferTaskListController::GetNativeHandleHolder(
+ Out<SharedPointer<INativeHandleHolder>> out_holder) {
+ LOG_WARNING(Service_OLSC, "(STUBBED) called");
+ *out_holder = std::make_shared<INativeHandleHolder>(system);
+ R_SUCCEED();
}
} // namespace Service::OLSC
diff --git a/src/core/hle/service/olsc/transfer_task_list_controller.h b/src/core/hle/service/olsc/transfer_task_list_controller.h
index daf476d8a..f10a71375 100644
--- a/src/core/hle/service/olsc/transfer_task_list_controller.h
+++ b/src/core/hle/service/olsc/transfer_task_list_controller.h
@@ -1,17 +1,20 @@
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
+#include "core/hle/service/cmif_types.h"
#include "core/hle/service/service.h"
namespace Service::OLSC {
+class INativeHandleHolder;
+
class ITransferTaskListController final : public ServiceFramework<ITransferTaskListController> {
public:
explicit ITransferTaskListController(Core::System& system_);
~ITransferTaskListController() override;
private:
- void GetNativeHandleHolder(HLERequestContext& ctx);
+ Result GetNativeHandleHolder(Out<SharedPointer<INativeHandleHolder>> out_holder);
};
} // namespace Service::OLSC