Просмотр исходного кода

glue: Add errors for glue/arp services

Zach Hilman 7 лет назад
Родитель
Сommit
df3ee4f444

+ 7 - 2
src/core/CMakeLists.txt

@@ -209,8 +209,6 @@ add_library(core STATIC
     hle/service/apm/apm.h
     hle/service/apm/interface.cpp
     hle/service/apm/interface.h
-    hle/service/arp/arp.cpp
-    hle/service/arp/arp.h
     hle/service/audio/audctl.cpp
     hle/service/audio/audctl.h
     hle/service/audio/auddbg.cpp
@@ -276,6 +274,13 @@ add_library(core STATIC
     hle/service/friend/friend.h
     hle/service/friend/interface.cpp
     hle/service/friend/interface.h
+    hle/service/glue/arp.cpp
+    hle/service/glue/arp.h
+    hle/service/glue/bgtc.cpp
+    hle/service/glue/bgtc.h
+    hle/service/glue/errors.h
+    hle/service/glue/glue.cpp
+    hle/service/glue/glue.h
     hle/service/glue/manager.cpp
     hle/service/glue/manager.h
     hle/service/grc/grc.cpp

+ 17 - 0
src/core/hle/service/glue/errors.h

@@ -0,0 +1,17 @@
+// Copyright 2019 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "core/hle/result.h"
+
+namespace Service::Glue {
+
+constexpr ResultCode ERR_OUTPUT_TOO_SMALL{0x3C9D};
+constexpr ResultCode ERR_PROCESS_ID_ZERO{0x3E9D};
+constexpr ResultCode ERR_TITLE_ID_ZERO{0x3E9D};
+constexpr ResultCode ERR_ALREADY_ISSUED{0x549D};
+constexpr ResultCode ERR_NONEXISTENT{0xCC9D};
+
+} // namespace Service::Glue

+ 25 - 0
src/core/hle/service/glue/glue.cpp

@@ -0,0 +1,25 @@
+// Copyright 2019 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <memory>
+#include "core/core.h"
+#include "core/hle/service/glue/arp.h"
+#include "core/hle/service/glue/bgtc.h"
+#include "core/hle/service/glue/glue.h"
+
+namespace Service::Glue {
+
+void InstallInterfaces(Core::System& system) {
+    // ARP
+    std::make_shared<ARP_R>(system, system.GetARPManager())
+        ->InstallAsService(system.ServiceManager());
+    std::make_shared<ARP_W>(system, system.GetARPManager())
+        ->InstallAsService(system.ServiceManager());
+
+    // BackGround Task Controller
+    std::make_shared<BGTC_T>()->InstallAsService(system.ServiceManager());
+    std::make_shared<BGTC_SC>()->InstallAsService(system.ServiceManager());
+}
+
+} // namespace Service::Glue

+ 16 - 0
src/core/hle/service/glue/glue.h

@@ -0,0 +1,16 @@
+// Copyright 2019 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+namespace Core {
+class System;
+} // namespace Core
+
+namespace Service::Glue {
+
+/// Registers all Glue services with the specified service manager.
+void InstallInterfaces(Core::System& system);
+
+} // namespace Service::Glue