summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2018-03-29 21:06:51 -0400
committerGravatar bunnei2018-03-29 21:22:44 -0400
commitdeaf6f9e357ac9e5d9465af42578f82a1d97ab20 (patch)
treefebebd0a6b1f37aeb0236435fde4ee47b9250cff /src
parentMerge pull request #290 from MerryMage/dfix-20180329 (diff)
downloadyuzu-deaf6f9e357ac9e5d9465af42578f82a1d97ab20.tar.gz
yuzu-deaf6f9e357ac9e5d9465af42578f82a1d97ab20.tar.xz
yuzu-deaf6f9e357ac9e5d9465af42578f82a1d97ab20.zip
service: Add NFP module interface.
service: Initialize NFP service. Log: Add NFP service as a log subtype.
Diffstat (limited to 'src')
-rw-r--r--src/common/logging/backend.cpp1
-rw-r--r--src/common/logging/log.h1
-rw-r--r--src/core/CMakeLists.txt4
-rw-r--r--src/core/hle/service/nfp/nfp.cpp28
-rw-r--r--src/core/hle/service/nfp/nfp.h28
-rw-r--r--src/core/hle/service/nfp/nfp_user.cpp19
-rw-r--r--src/core/hle/service/nfp/nfp_user.h18
-rw-r--r--src/core/hle/service/service.cpp2
8 files changed, 101 insertions, 0 deletions
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index 9bfac5e7f..a763f4abf 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -42,6 +42,7 @@ namespace Log {
42 SUB(Service, FS) \ 42 SUB(Service, FS) \
43 SUB(Service, HID) \ 43 SUB(Service, HID) \
44 SUB(Service, LM) \ 44 SUB(Service, LM) \
45 SUB(Service, NFP) \
45 SUB(Service, NIFM) \ 46 SUB(Service, NIFM) \
46 SUB(Service, NS) \ 47 SUB(Service, NS) \
47 SUB(Service, NVDRV) \ 48 SUB(Service, NVDRV) \
diff --git a/src/common/logging/log.h b/src/common/logging/log.h
index 6913f6b10..7f079b20f 100644
--- a/src/common/logging/log.h
+++ b/src/common/logging/log.h
@@ -59,6 +59,7 @@ enum class Class : ClassType {
59 Service_FS, ///< The FS (Filesystem) service 59 Service_FS, ///< The FS (Filesystem) service
60 Service_HID, ///< The HID (Human interface device) service 60 Service_HID, ///< The HID (Human interface device) service
61 Service_LM, ///< The LM (Logger) service 61 Service_LM, ///< The LM (Logger) service
62 Service_NFP, ///< The NFP service
62 Service_NIFM, ///< The NIFM (Network interface) service 63 Service_NIFM, ///< The NIFM (Network interface) service
63 Service_NS, ///< The NS services 64 Service_NS, ///< The NS services
64 Service_NVDRV, ///< The NVDRV (Nvidia driver) service 65 Service_NVDRV, ///< The NVDRV (Nvidia driver) service
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 3d187cd40..6f8104516 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -142,6 +142,10 @@ add_library(core STATIC
142 hle/service/nifm/nifm_s.h 142 hle/service/nifm/nifm_s.h
143 hle/service/nifm/nifm_u.cpp 143 hle/service/nifm/nifm_u.cpp
144 hle/service/nifm/nifm_u.h 144 hle/service/nifm/nifm_u.h
145 hle/service/nfp/nfp.cpp
146 hle/service/nfp/nfp.h
147 hle/service/nfp/nfp_user.cpp
148 hle/service/nfp/nfp_user.h
145 hle/service/ns/ns.cpp 149 hle/service/ns/ns.cpp
146 hle/service/ns/ns.h 150 hle/service/ns/ns.h
147 hle/service/ns/pl_u.cpp 151 hle/service/ns/pl_u.cpp
diff --git a/src/core/hle/service/nfp/nfp.cpp b/src/core/hle/service/nfp/nfp.cpp
new file mode 100644
index 000000000..49870841c
--- /dev/null
+++ b/src/core/hle/service/nfp/nfp.cpp
@@ -0,0 +1,28 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "common/logging/log.h"
6#include "core/hle/ipc_helpers.h"
7#include "core/hle/service/nfp/nfp.h"
8#include "core/hle/service/nfp/nfp_user.h"
9
10namespace Service {
11namespace NFP {
12
13Module::Interface::Interface(std::shared_ptr<Module> module, const char* name)
14 : ServiceFramework(name), module(std::move(module)) {}
15
16void Module::Interface::Unknown(Kernel::HLERequestContext& ctx) {
17 LOG_WARNING(Service_NFP, "(STUBBED) called");
18 IPC::ResponseBuilder rb{ctx, 2};
19 rb.Push(RESULT_SUCCESS);
20}
21
22void InstallInterfaces(SM::ServiceManager& service_manager) {
23 auto module = std::make_shared<Module>();
24 std::make_shared<NFP_User>(module)->InstallAsService(service_manager);
25}
26
27} // namespace NFP
28} // namespace Service
diff --git a/src/core/hle/service/nfp/nfp.h b/src/core/hle/service/nfp/nfp.h
new file mode 100644
index 000000000..1163e9954
--- /dev/null
+++ b/src/core/hle/service/nfp/nfp.h
@@ -0,0 +1,28 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/service.h"
8
9namespace Service {
10namespace NFP {
11
12class Module final {
13public:
14 class Interface : public ServiceFramework<Interface> {
15 public:
16 Interface(std::shared_ptr<Module> module, const char* name);
17
18 void Unknown(Kernel::HLERequestContext& ctx);
19
20 protected:
21 std::shared_ptr<Module> module;
22 };
23};
24
25void InstallInterfaces(SM::ServiceManager& service_manager);
26
27} // namespace NFP
28} // namespace Service
diff --git a/src/core/hle/service/nfp/nfp_user.cpp b/src/core/hle/service/nfp/nfp_user.cpp
new file mode 100644
index 000000000..14e5647c4
--- /dev/null
+++ b/src/core/hle/service/nfp/nfp_user.cpp
@@ -0,0 +1,19 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/service/nfp/nfp_user.h"
6
7namespace Service {
8namespace NFP {
9
10NFP_User::NFP_User(std::shared_ptr<Module> module)
11 : Module::Interface(std::move(module), "nfp:user") {
12 static const FunctionInfo functions[] = {
13 {0, &NFP_User::Unknown, "Unknown"},
14 };
15 RegisterHandlers(functions);
16}
17
18} // namespace NFP
19} // namespace Service
diff --git a/src/core/hle/service/nfp/nfp_user.h b/src/core/hle/service/nfp/nfp_user.h
new file mode 100644
index 000000000..1606444ca
--- /dev/null
+++ b/src/core/hle/service/nfp/nfp_user.h
@@ -0,0 +1,18 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/service/nfp/nfp.h"
8
9namespace Service {
10namespace NFP {
11
12class NFP_User final : public Module::Interface {
13public:
14 explicit NFP_User(std::shared_ptr<Module> module);
15};
16
17} // namespace NFP
18} // namespace Service
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index b224b89da..8011d0d71 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -25,6 +25,7 @@
25#include "core/hle/service/friend/friend.h" 25#include "core/hle/service/friend/friend.h"
26#include "core/hle/service/hid/hid.h" 26#include "core/hle/service/hid/hid.h"
27#include "core/hle/service/lm/lm.h" 27#include "core/hle/service/lm/lm.h"
28#include "core/hle/service/nfp/nfp.h"
28#include "core/hle/service/nifm/nifm.h" 29#include "core/hle/service/nifm/nifm.h"
29#include "core/hle/service/ns/ns.h" 30#include "core/hle/service/ns/ns.h"
30#include "core/hle/service/nvdrv/nvdrv.h" 31#include "core/hle/service/nvdrv/nvdrv.h"
@@ -187,6 +188,7 @@ void Init() {
187 Friend::InstallInterfaces(*SM::g_service_manager); 188 Friend::InstallInterfaces(*SM::g_service_manager);
188 HID::InstallInterfaces(*SM::g_service_manager); 189 HID::InstallInterfaces(*SM::g_service_manager);
189 LM::InstallInterfaces(*SM::g_service_manager); 190 LM::InstallInterfaces(*SM::g_service_manager);
191 NFP::InstallInterfaces(*SM::g_service_manager);
190 NIFM::InstallInterfaces(*SM::g_service_manager); 192 NIFM::InstallInterfaces(*SM::g_service_manager);
191 NS::InstallInterfaces(*SM::g_service_manager); 193 NS::InstallInterfaces(*SM::g_service_manager);
192 Nvidia::InstallInterfaces(*SM::g_service_manager); 194 Nvidia::InstallInterfaces(*SM::g_service_manager);