summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/logging/backend.cpp1
-rw-r--r--src/common/logging/log.h5
-rw-r--r--src/core/CMakeLists.txt80
-rw-r--r--src/core/hle/service/am/am.cpp55
-rw-r--r--src/core/hle/service/am/am.h47
-rw-r--r--src/core/hle/service/am/am_app.cpp20
-rw-r--r--src/core/hle/service/am/am_app.h22
-rw-r--r--src/core/hle/service/am/am_net.cpp (renamed from src/core/hle/service/am_net.cpp)17
-rw-r--r--src/core/hle/service/am/am_net.h22
-rw-r--r--src/core/hle/service/am/am_sys.cpp22
-rw-r--r--src/core/hle/service/am/am_sys.h22
-rw-r--r--src/core/hle/service/am/am_u.cpp22
-rw-r--r--src/core/hle/service/am/am_u.h22
-rw-r--r--src/core/hle/service/am_app.cpp23
-rw-r--r--src/core/hle/service/am_app.h23
-rw-r--r--src/core/hle/service/am_net.h23
-rw-r--r--src/core/hle/service/am_sys.cpp62
-rw-r--r--src/core/hle/service/am_sys.h23
-rw-r--r--src/core/hle/service/boss/boss.cpp29
-rw-r--r--src/core/hle/service/boss/boss.h20
-rw-r--r--src/core/hle/service/boss/boss_p.cpp20
-rw-r--r--src/core/hle/service/boss/boss_p.h22
-rw-r--r--src/core/hle/service/boss/boss_u.cpp21
-rw-r--r--src/core/hle/service/boss/boss_u.h22
-rw-r--r--src/core/hle/service/boss_p.cpp23
-rw-r--r--src/core/hle/service/boss_p.h23
-rw-r--r--src/core/hle/service/boss_u.cpp24
-rw-r--r--src/core/hle/service/boss_u.h23
-rw-r--r--src/core/hle/service/cam/cam.cpp35
-rw-r--r--src/core/hle/service/cam/cam.h20
-rw-r--r--src/core/hle/service/cam/cam_c.cpp20
-rw-r--r--src/core/hle/service/cam/cam_c.h22
-rw-r--r--src/core/hle/service/cam/cam_q.cpp20
-rw-r--r--src/core/hle/service/cam/cam_q.h22
-rw-r--r--src/core/hle/service/cam/cam_s.cpp20
-rw-r--r--src/core/hle/service/cam/cam_s.h22
-rw-r--r--src/core/hle/service/cam/cam_u.cpp20
-rw-r--r--src/core/hle/service/cam/cam_u.h22
-rw-r--r--src/core/hle/service/cam_u.cpp23
-rw-r--r--src/core/hle/service/cam_u.h23
-rw-r--r--src/core/hle/service/cecd/cecd.cpp31
-rw-r--r--src/core/hle/service/cecd/cecd.h20
-rw-r--r--src/core/hle/service/cecd/cecd_s.cpp20
-rw-r--r--src/core/hle/service/cecd/cecd_s.h (renamed from src/core/hle/service/cecd_s.h)13
-rw-r--r--src/core/hle/service/cecd/cecd_u.cpp20
-rw-r--r--src/core/hle/service/cecd/cecd_u.h (renamed from src/core/hle/service/cecd_u.h)13
-rw-r--r--src/core/hle/service/cecd_s.cpp23
-rw-r--r--src/core/hle/service/cecd_u.cpp23
-rw-r--r--src/core/hle/service/frd/frd.cpp29
-rw-r--r--src/core/hle/service/frd/frd.h20
-rw-r--r--src/core/hle/service/frd/frd_a.cpp20
-rw-r--r--src/core/hle/service/frd/frd_a.h (renamed from src/core/hle/service/frd_a.h)13
-rw-r--r--src/core/hle/service/frd/frd_u.cpp (renamed from src/core/hle/service/frd_u.cpp)17
-rw-r--r--src/core/hle/service/frd/frd_u.h (renamed from src/core/hle/service/frd_u.h)13
-rw-r--r--src/core/hle/service/frd_a.cpp23
-rw-r--r--src/core/hle/service/news/news.cpp31
-rw-r--r--src/core/hle/service/news/news.h20
-rw-r--r--src/core/hle/service/news/news_s.cpp21
-rw-r--r--src/core/hle/service/news/news_s.h (renamed from src/core/hle/service/news_s.h)13
-rw-r--r--src/core/hle/service/news/news_u.cpp21
-rw-r--r--src/core/hle/service/news/news_u.h (renamed from src/core/hle/service/news_u.h)13
-rw-r--r--src/core/hle/service/news_s.cpp24
-rw-r--r--src/core/hle/service/news_u.cpp24
-rw-r--r--src/core/hle/service/nim/nim.cpp42
-rw-r--r--src/core/hle/service/nim/nim.h30
-rw-r--r--src/core/hle/service/nim/nim_aoc.cpp (renamed from src/core/hle/service/nim_aoc.cpp)16
-rw-r--r--src/core/hle/service/nim/nim_aoc.h22
-rw-r--r--src/core/hle/service/nim/nim_s.cpp22
-rw-r--r--src/core/hle/service/nim/nim_s.h22
-rw-r--r--src/core/hle/service/nim/nim_u.cpp27
-rw-r--r--src/core/hle/service/nim/nim_u.h22
-rw-r--r--src/core/hle/service/nim_aoc.h23
-rw-r--r--src/core/hle/service/nim_u.cpp48
-rw-r--r--src/core/hle/service/nim_u.h23
-rw-r--r--src/core/hle/service/service.cpp58
75 files changed, 1190 insertions, 637 deletions
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index 6ca8cb78d..d85e58373 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -37,6 +37,7 @@ namespace Log {
37 SUB(Service, APT) \ 37 SUB(Service, APT) \
38 SUB(Service, GSP) \ 38 SUB(Service, GSP) \
39 SUB(Service, AC) \ 39 SUB(Service, AC) \
40 SUB(Service, AM) \
40 SUB(Service, PTM) \ 41 SUB(Service, PTM) \
41 SUB(Service, LDR) \ 42 SUB(Service, LDR) \
42 SUB(Service, NIM) \ 43 SUB(Service, NIM) \
diff --git a/src/common/logging/log.h b/src/common/logging/log.h
index d720d7fe0..5b3a731e9 100644
--- a/src/common/logging/log.h
+++ b/src/common/logging/log.h
@@ -57,13 +57,14 @@ enum class Class : ClassType {
57 Service_APT, ///< The APT (Applets) service 57 Service_APT, ///< The APT (Applets) service
58 Service_GSP, ///< The GSP (GPU control) service 58 Service_GSP, ///< The GSP (GPU control) service
59 Service_AC, ///< The AC (WiFi status) service 59 Service_AC, ///< The AC (WiFi status) service
60 Service_AM, ///< The AM (Application manager) service
60 Service_PTM, ///< The PTM (Power status & misc.) service 61 Service_PTM, ///< The PTM (Power status & misc.) service
61 Service_LDR, ///< The LDR (3ds dll loader) service 62 Service_LDR, ///< The LDR (3ds dll loader) service
62 Service_NIM, ///< The NIM (Network interface manager) service 63 Service_NIM, ///< The NIM (Network interface manager) service
63 Service_NWM, ///< The NWM (Network manager) service 64 Service_NWM, ///< The NWM (Network wlan manager) service
64 Service_CFG, ///< The CFG (Configuration) service 65 Service_CFG, ///< The CFG (Configuration) service
65 Service_DSP, ///< The DSP (DSP control) service 66 Service_DSP, ///< The DSP (DSP control) service
66 Service_HID, ///< The HID (User input) service 67 Service_HID, ///< The HID (Human interface device) service
67 Service_SOC, ///< The SOC (Socket) service 68 Service_SOC, ///< The SOC (Socket) service
68 Service_Y2R, ///< The Y2R (YUV to RGB conversion) service 69 Service_Y2R, ///< The Y2R (YUV to RGB conversion) service
69 HW, ///< Low-level hardware emulation 70 HW, ///< Low-level hardware emulation
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index bbc285168..057b8ca0c 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -39,18 +39,26 @@ set(SRCS
39 hle/kernel/vm_manager.cpp 39 hle/kernel/vm_manager.cpp
40 hle/service/ac_u.cpp 40 hle/service/ac_u.cpp
41 hle/service/act_u.cpp 41 hle/service/act_u.cpp
42 hle/service/am_app.cpp 42 hle/service/am/am.cpp
43 hle/service/am_net.cpp 43 hle/service/am/am_app.cpp
44 hle/service/am_sys.cpp 44 hle/service/am/am_net.cpp
45 hle/service/am/am_sys.cpp
46 hle/service/am/am_u.cpp
45 hle/service/apt/apt.cpp 47 hle/service/apt/apt.cpp
46 hle/service/apt/apt_a.cpp 48 hle/service/apt/apt_a.cpp
47 hle/service/apt/apt_s.cpp 49 hle/service/apt/apt_s.cpp
48 hle/service/apt/apt_u.cpp 50 hle/service/apt/apt_u.cpp
49 hle/service/boss_p.cpp 51 hle/service/boss/boss.cpp
50 hle/service/boss_u.cpp 52 hle/service/boss/boss_p.cpp
51 hle/service/cam_u.cpp 53 hle/service/boss/boss_u.cpp
52 hle/service/cecd_s.cpp 54 hle/service/cam/cam.cpp
53 hle/service/cecd_u.cpp 55 hle/service/cam/cam_c.cpp
56 hle/service/cam/cam_q.cpp
57 hle/service/cam/cam_s.cpp
58 hle/service/cam/cam_u.cpp
59 hle/service/cecd/cecd.cpp
60 hle/service/cecd/cecd_s.cpp
61 hle/service/cecd/cecd_u.cpp
54 hle/service/cfg/cfg.cpp 62 hle/service/cfg/cfg.cpp
55 hle/service/cfg/cfg_i.cpp 63 hle/service/cfg/cfg_i.cpp
56 hle/service/cfg/cfg_s.cpp 64 hle/service/cfg/cfg_s.cpp
@@ -58,8 +66,9 @@ set(SRCS
58 hle/service/csnd_snd.cpp 66 hle/service/csnd_snd.cpp
59 hle/service/dsp_dsp.cpp 67 hle/service/dsp_dsp.cpp
60 hle/service/err_f.cpp 68 hle/service/err_f.cpp
61 hle/service/frd_a.cpp 69 hle/service/frd/frd.cpp
62 hle/service/frd_u.cpp 70 hle/service/frd/frd_a.cpp
71 hle/service/frd/frd_u.cpp
63 hle/service/fs/archive.cpp 72 hle/service/fs/archive.cpp
64 hle/service/fs/fs_user.cpp 73 hle/service/fs/fs_user.cpp
65 hle/service/gsp_gpu.cpp 74 hle/service/gsp_gpu.cpp
@@ -75,10 +84,13 @@ set(SRCS
75 hle/service/ldr_ro.cpp 84 hle/service/ldr_ro.cpp
76 hle/service/mic_u.cpp 85 hle/service/mic_u.cpp
77 hle/service/ndm_u.cpp 86 hle/service/ndm_u.cpp
78 hle/service/news_s.cpp 87 hle/service/news/news.cpp
79 hle/service/news_u.cpp 88 hle/service/news/news_s.cpp
80 hle/service/nim_aoc.cpp 89 hle/service/news/news_u.cpp
81 hle/service/nim_u.cpp 90 hle/service/nim/nim.cpp
91 hle/service/nim/nim_aoc.cpp
92 hle/service/nim/nim_s.cpp
93 hle/service/nim/nim_u.cpp
82 hle/service/ns_s.cpp 94 hle/service/ns_s.cpp
83 hle/service/nwm_uds.cpp 95 hle/service/nwm_uds.cpp
84 hle/service/pm_app.cpp 96 hle/service/pm_app.cpp
@@ -152,18 +164,26 @@ set(HEADERS
152 hle/result.h 164 hle/result.h
153 hle/service/ac_u.h 165 hle/service/ac_u.h
154 hle/service/act_u.h 166 hle/service/act_u.h
155 hle/service/am_app.h 167 hle/service/am/am.h
156 hle/service/am_net.h 168 hle/service/am/am_app.h
157 hle/service/am_sys.h 169 hle/service/am/am_net.h
170 hle/service/am/am_sys.h
171 hle/service/am/am_u.h
158 hle/service/apt/apt.h 172 hle/service/apt/apt.h
159 hle/service/apt/apt_a.h 173 hle/service/apt/apt_a.h
160 hle/service/apt/apt_s.h 174 hle/service/apt/apt_s.h
161 hle/service/apt/apt_u.h 175 hle/service/apt/apt_u.h
162 hle/service/boss_p.h 176 hle/service/boss/boss.h
163 hle/service/boss_u.h 177 hle/service/boss/boss_p.h
164 hle/service/cam_u.h 178 hle/service/boss/boss_u.h
165 hle/service/cecd_s.h 179 hle/service/cam/cam.h
166 hle/service/cecd_u.h 180 hle/service/cam/cam_c.h
181 hle/service/cam/cam_q.h
182 hle/service/cam/cam_s.h
183 hle/service/cam/cam_u.h
184 hle/service/cecd/cecd.h
185 hle/service/cecd/cecd_s.h
186 hle/service/cecd/cecd_u.h
167 hle/service/cfg/cfg.h 187 hle/service/cfg/cfg.h
168 hle/service/cfg/cfg_i.h 188 hle/service/cfg/cfg_i.h
169 hle/service/cfg/cfg_s.h 189 hle/service/cfg/cfg_s.h
@@ -171,8 +191,9 @@ set(HEADERS
171 hle/service/csnd_snd.h 191 hle/service/csnd_snd.h
172 hle/service/dsp_dsp.h 192 hle/service/dsp_dsp.h
173 hle/service/err_f.h 193 hle/service/err_f.h
174 hle/service/frd_a.h 194 hle/service/frd/frd.h
175 hle/service/frd_u.h 195 hle/service/frd/frd_a.h
196 hle/service/frd/frd_u.h
176 hle/service/fs/archive.h 197 hle/service/fs/archive.h
177 hle/service/fs/fs_user.h 198 hle/service/fs/fs_user.h
178 hle/service/gsp_gpu.h 199 hle/service/gsp_gpu.h
@@ -188,10 +209,13 @@ set(HEADERS
188 hle/service/ldr_ro.h 209 hle/service/ldr_ro.h
189 hle/service/mic_u.h 210 hle/service/mic_u.h
190 hle/service/ndm_u.h 211 hle/service/ndm_u.h
191 hle/service/news_s.h 212 hle/service/news/news.h
192 hle/service/news_u.h 213 hle/service/news/news_s.h
193 hle/service/nim_aoc.h 214 hle/service/news/news_u.h
194 hle/service/nim_u.h 215 hle/service/nim/nim.h
216 hle/service/nim/nim_aoc.h
217 hle/service/nim/nim_s.h
218 hle/service/nim/nim_u.h
195 hle/service/ns_s.h 219 hle/service/ns_s.h
196 hle/service/nwm_uds.h 220 hle/service/nwm_uds.h
197 hle/service/pm_app.h 221 hle/service/pm_app.h
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp
new file mode 100644
index 000000000..57dc1ece7
--- /dev/null
+++ b/src/core/hle/service/am/am.cpp
@@ -0,0 +1,55 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "common/logging/log.h"
6
7#include "core/hle/service/service.h"
8#include "core/hle/service/am/am_app.h"
9#include "core/hle/service/am/am_net.h"
10#include "core/hle/service/am/am_sys.h"
11
12#include "core/hle/hle.h"
13#include "core/hle/kernel/event.h"
14#include "core/hle/kernel/shared_memory.h"
15
16namespace Service {
17namespace AM {
18
19void TitleIDListGetTotal(Service::Interface* self) {
20 u32* cmd_buff = Kernel::GetCommandBuffer();
21 u32 media_type = cmd_buff[1] & 0xFF;
22
23 cmd_buff[1] = RESULT_SUCCESS.raw;
24 cmd_buff[2] = 0;
25
26 LOG_WARNING(Service_AM, "(STUBBED) media_type %u", media_type);
27}
28
29void GetTitleIDList(Service::Interface* self) {
30 u32* cmd_buff = Kernel::GetCommandBuffer();
31 u32 num_titles = cmd_buff[1];
32 u32 media_type = cmd_buff[2] & 0xFF;
33 u32 addr = cmd_buff[4];
34
35 cmd_buff[1] = RESULT_SUCCESS.raw;
36 cmd_buff[2] = 0;
37
38 LOG_WARNING(Service_AM, "(STUBBED) Requested %u titles from media type %u", num_titles, media_type);
39}
40
41void Init() {
42 using namespace Kernel;
43
44 AddService(new AM_APP_Interface);
45 AddService(new AM_NET_Interface);
46 AddService(new AM_SYS_Interface);
47}
48
49void Shutdown() {
50
51}
52
53} // namespace AM
54
55} // namespace Service
diff --git a/src/core/hle/service/am/am.h b/src/core/hle/service/am/am.h
new file mode 100644
index 000000000..063b8bd09
--- /dev/null
+++ b/src/core/hle/service/am/am.h
@@ -0,0 +1,47 @@
1// Copyright 2015 Citra Emulator Project
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/kernel/kernel.h"
8#include "core/hle/service/service.h"
9
10namespace Service {
11namespace AM {
12
13/**
14 * AM::TitleIDListGetTotal service function
15 * Gets the number of installed titles in the requested media type
16 * Inputs:
17 * 0 : Command header (0x00010040)
18 * 1 : Media type to load the titles from
19 * Outputs:
20 * 1 : Result, 0 on success, otherwise error code
21 * 2 : The number of titles in the requested media type
22 */
23void TitleIDListGetTotal(Service::Interface* self);
24
25/**
26 * AM::GetTitleIDList service function
27 * Loads information about the desired number of titles from the desired media type into an array
28 * Inputs:
29 * 0 : Command header (0x00020082)
30 * 1 : The maximum number of titles to load
31 * 2 : Media type to load the titles from
32 * 3 : Descriptor of the output buffer pointer
33 * 4 : Address of the output buffer
34 * Outputs:
35 * 1 : Result, 0 on success, otherwise error code
36 * 2 : The number of titles loaded from the requested media type
37 */
38void GetTitleIDList(Service::Interface* self);
39
40/// Initialize AM service
41void Init();
42
43/// Shutdown AM service
44void Shutdown();
45
46} // namespace AM
47} // namespace Service
diff --git a/src/core/hle/service/am/am_app.cpp b/src/core/hle/service/am/am_app.cpp
new file mode 100644
index 000000000..c6fc81bc3
--- /dev/null
+++ b/src/core/hle/service/am/am_app.cpp
@@ -0,0 +1,20 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/am/am.h"
7#include "core/hle/service/am/am_app.h"
8
9namespace Service {
10namespace AM {
11
12// Empty arrays are illegal -- commented out until an entry is added.
13//const Interface::FunctionInfo FunctionTable[] = { };
14
15AM_APP_Interface::AM_APP_Interface() {
16 //Register(FunctionTable);
17}
18
19} // namespace AM
20} // namespace Service
diff --git a/src/core/hle/service/am/am_app.h b/src/core/hle/service/am/am_app.h
new file mode 100644
index 000000000..fd6017d14
--- /dev/null
+++ b/src/core/hle/service/am/am_app.h
@@ -0,0 +1,22 @@
1// Copyright 2014 Citra Emulator Project
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 AM {
11
12class AM_APP_Interface : public Service::Interface {
13public:
14 AM_APP_Interface();
15
16 std::string GetPortName() const override {
17 return "am:app";
18 }
19};
20
21} // namespace AM
22} // namespace Service
diff --git a/src/core/hle/service/am_net.cpp b/src/core/hle/service/am/am_net.cpp
index ba2a499f1..b1af0e9d8 100644
--- a/src/core/hle/service/am_net.cpp
+++ b/src/core/hle/service/am/am_net.cpp
@@ -3,12 +3,11 @@
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include "core/hle/hle.h" 5#include "core/hle/hle.h"
6#include "core/hle/service/am_net.h" 6#include "core/hle/service/am/am.h"
7#include "core/hle/service/am/am_net.h"
7 8
8//////////////////////////////////////////////////////////////////////////////////////////////////// 9namespace Service {
9// Namespace AM_NET 10namespace AM {
10
11namespace AM_NET {
12 11
13const Interface::FunctionInfo FunctionTable[] = { 12const Interface::FunctionInfo FunctionTable[] = {
14 {0x08010000, nullptr, "OpenTicket"}, 13 {0x08010000, nullptr, "OpenTicket"},
@@ -33,11 +32,9 @@ const Interface::FunctionInfo FunctionTable[] = {
33 {0x081B00C2, nullptr, "InstallTitlesFinish"}, 32 {0x081B00C2, nullptr, "InstallTitlesFinish"},
34}; 33};
35 34
36//////////////////////////////////////////////////////////////////////////////////////////////////// 35AM_NET_Interface::AM_NET_Interface() {
37// Interface class
38
39Interface::Interface() {
40 Register(FunctionTable); 36 Register(FunctionTable);
41} 37}
42 38
43} // namespace 39} // namespace AM
40} // namespace Service
diff --git a/src/core/hle/service/am/am_net.h b/src/core/hle/service/am/am_net.h
new file mode 100644
index 000000000..25d2c3f23
--- /dev/null
+++ b/src/core/hle/service/am/am_net.h
@@ -0,0 +1,22 @@
1// Copyright 2014 Citra Emulator Project
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 AM {
11
12class AM_NET_Interface : public Service::Interface {
13public:
14 AM_NET_Interface();
15
16 std::string GetPortName() const override {
17 return "am:net";
18 }
19};
20
21} // namespace AM
22} // namespace Service
diff --git a/src/core/hle/service/am/am_sys.cpp b/src/core/hle/service/am/am_sys.cpp
new file mode 100644
index 000000000..864fc14df
--- /dev/null
+++ b/src/core/hle/service/am/am_sys.cpp
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/am/am.h"
7#include "core/hle/service/am/am_sys.h"
8
9namespace Service {
10namespace AM {
11
12const Interface::FunctionInfo FunctionTable[] = {
13 {0x00010040, TitleIDListGetTotal, "TitleIDListGetTotal"},
14 {0x00020082, GetTitleIDList, "GetTitleIDList"},
15};
16
17AM_SYS_Interface::AM_SYS_Interface() {
18 Register(FunctionTable);
19}
20
21} // namespace AM
22} // namespace Service
diff --git a/src/core/hle/service/am/am_sys.h b/src/core/hle/service/am/am_sys.h
new file mode 100644
index 000000000..b114f1d35
--- /dev/null
+++ b/src/core/hle/service/am/am_sys.h
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
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 AM {
11
12class AM_SYS_Interface : public Service::Interface {
13public:
14 AM_SYS_Interface();
15
16 std::string GetPortName() const override {
17 return "am:sys";
18 }
19};
20
21} // namespace AM
22} // namespace Service
diff --git a/src/core/hle/service/am/am_u.cpp b/src/core/hle/service/am/am_u.cpp
new file mode 100644
index 000000000..6bf84b36b
--- /dev/null
+++ b/src/core/hle/service/am/am_u.cpp
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/am/am.h"
7#include "core/hle/service/am/am_u.h"
8
9namespace Service {
10namespace AM {
11
12const Interface::FunctionInfo FunctionTable[] = {
13 {0x00010040, TitleIDListGetTotal, "TitleIDListGetTotal"},
14 {0x00020082, GetTitleIDList, "GetTitleIDList"},
15};
16
17AM_U_Interface::AM_U_Interface() {
18 Register(FunctionTable);
19}
20
21} // namespace AM
22} // namespace Service
diff --git a/src/core/hle/service/am/am_u.h b/src/core/hle/service/am/am_u.h
new file mode 100644
index 000000000..3b2454b6c
--- /dev/null
+++ b/src/core/hle/service/am/am_u.h
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
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 AM {
11
12class AM_U_Interface : public Service::Interface {
13public:
14 AM_U_Interface();
15
16 std::string GetPortName() const override {
17 return "am:u";
18 }
19};
20
21} // namespace AM
22} // namespace Service
diff --git a/src/core/hle/service/am_app.cpp b/src/core/hle/service/am_app.cpp
deleted file mode 100644
index 684b753f0..000000000
--- a/src/core/hle/service/am_app.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/am_app.h"
7
8////////////////////////////////////////////////////////////////////////////////////////////////////
9// Namespace AM_APP
10
11namespace AM_APP {
12
13// Empty arrays are illegal -- commented out until an entry is added.
14//const Interface::FunctionInfo FunctionTable[] = { };
15
16////////////////////////////////////////////////////////////////////////////////////////////////////
17// Interface class
18
19Interface::Interface() {
20 //Register(FunctionTable);
21}
22
23} // namespace
diff --git a/src/core/hle/service/am_app.h b/src/core/hle/service/am_app.h
deleted file mode 100644
index 50dc2f5a2..000000000
--- a/src/core/hle/service/am_app.h
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2014 Citra Emulator Project
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
9////////////////////////////////////////////////////////////////////////////////////////////////////
10// Namespace AM_APP
11
12namespace AM_APP {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "am:app";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/am_net.h b/src/core/hle/service/am_net.h
deleted file mode 100644
index 616c33ee8..000000000
--- a/src/core/hle/service/am_net.h
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2014 Citra Emulator Project
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
9////////////////////////////////////////////////////////////////////////////////////////////////////
10// Namespace AM_NET
11
12namespace AM_NET {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "am:net";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/am_sys.cpp b/src/core/hle/service/am_sys.cpp
deleted file mode 100644
index f9e3fe4b7..000000000
--- a/src/core/hle/service/am_sys.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "common/logging/log.h"
6
7#include "core/hle/hle.h"
8#include "core/hle/service/am_sys.h"
9
10namespace AM_SYS {
11
12/**
13 * Gets the number of installed titles in the requested media type
14 * Inputs:
15 * 0: Command header (0x00010040)
16 * 1: Media type to load the titles from
17 * Outputs:
18 * 1: Result, 0 on success, otherwise error code
19 * 2: The number of titles in the requested media type
20 */
21static void TitleIDListGetTotal(Service::Interface* self) {
22 u32* cmd_buff = Kernel::GetCommandBuffer();
23 u32 media_type = cmd_buff[1] & 0xFF;
24
25 cmd_buff[1] = RESULT_SUCCESS.raw;
26 cmd_buff[2] = 0;
27 LOG_WARNING(Service_CFG, "(STUBBED) media_type %u", media_type);
28}
29
30/**
31 * Loads information about the desired number of titles from the desired media type into an array
32 * Inputs:
33 * 0: Command header (0x00020082)
34 * 1: The maximum number of titles to load
35 * 2: Media type to load the titles from
36 * 3: Descriptor of the output buffer pointer
37 * 4: Address of the output buffer
38 * Outputs:
39 * 1: Result, 0 on success, otherwise error code
40 * 2: The number of titles loaded from the requested media type
41 */
42static void GetTitleIDList(Service::Interface* self) {
43 u32* cmd_buff = Kernel::GetCommandBuffer();
44 u32 num_titles = cmd_buff[1];
45 u32 media_type = cmd_buff[2] & 0xFF;
46 u32 addr = cmd_buff[4];
47
48 cmd_buff[1] = RESULT_SUCCESS.raw;
49 cmd_buff[2] = 0;
50 LOG_WARNING(Service_CFG, "(STUBBED) Requested %u titles from media type %u", num_titles, media_type);
51}
52
53const Interface::FunctionInfo FunctionTable[] = {
54 {0x00010040, TitleIDListGetTotal, "TitleIDListGetTotal"},
55 {0x00020082, GetTitleIDList, "GetTitleIDList"},
56};
57
58Interface::Interface() {
59 Register(FunctionTable);
60}
61
62} // namespace
diff --git a/src/core/hle/service/am_sys.h b/src/core/hle/service/am_sys.h
deleted file mode 100644
index bb6178a43..000000000
--- a/src/core/hle/service/am_sys.h
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2015 Citra Emulator Project
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
9////////////////////////////////////////////////////////////////////////////////////////////////////
10// Namespace AM_SYS
11
12namespace AM_SYS {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "am:sys";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/boss/boss.cpp b/src/core/hle/service/boss/boss.cpp
new file mode 100644
index 000000000..d38140f19
--- /dev/null
+++ b/src/core/hle/service/boss/boss.cpp
@@ -0,0 +1,29 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/service/service.h"
6#include "core/hle/service/boss/boss.h"
7#include "core/hle/service/boss/boss_p.h"
8#include "core/hle/service/boss/boss_u.h"
9
10#include "core/hle/kernel/event.h"
11#include "core/hle/kernel/shared_memory.h"
12#include "core/hle/hle.h"
13
14namespace Service {
15namespace BOSS {
16
17void Init() {
18 using namespace Kernel;
19
20 AddService(new BOSS_P_Interface);
21 AddService(new BOSS_U_Interface);
22}
23
24void Shutdown() {
25}
26
27} // namespace BOSS
28
29} // namespace Service
diff --git a/src/core/hle/service/boss/boss.h b/src/core/hle/service/boss/boss.h
new file mode 100644
index 000000000..a6942ada6
--- /dev/null
+++ b/src/core/hle/service/boss/boss.h
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
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/kernel/kernel.h"
8#include "core/hle/service/service.h"
9
10namespace Service {
11namespace BOSS {
12
13/// Initialize BOSS service(s)
14void Init();
15
16/// Shutdown BOSS service(s)
17void Shutdown();
18
19} // namespace BOSS
20} // namespace Service
diff --git a/src/core/hle/service/boss/boss_p.cpp b/src/core/hle/service/boss/boss_p.cpp
new file mode 100644
index 000000000..089f5f186
--- /dev/null
+++ b/src/core/hle/service/boss/boss_p.cpp
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/boss/boss.h"
7#include "core/hle/service/boss/boss_p.h"
8
9namespace Service {
10namespace BOSS {
11
12// Empty arrays are illegal -- commented out until an entry is added.
13// const Interface::FunctionInfo FunctionTable[] = { };
14
15BOSS_P_Interface::BOSS_P_Interface() {
16 //Register(FunctionTable);
17}
18
19} // namespace BOSS
20} // namespace Service
diff --git a/src/core/hle/service/boss/boss_p.h b/src/core/hle/service/boss/boss_p.h
new file mode 100644
index 000000000..32112c251
--- /dev/null
+++ b/src/core/hle/service/boss/boss_p.h
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
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 BOSS {
11
12class BOSS_P_Interface : public Service::Interface {
13public:
14 BOSS_P_Interface();
15
16 std::string GetPortName() const override {
17 return "boss:P";
18 }
19};
20
21} // namespace BOSS
22} // namespace Service
diff --git a/src/core/hle/service/boss/boss_u.cpp b/src/core/hle/service/boss/boss_u.cpp
new file mode 100644
index 000000000..ed978b963
--- /dev/null
+++ b/src/core/hle/service/boss/boss_u.cpp
@@ -0,0 +1,21 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/boss/boss.h"
7#include "core/hle/service/boss/boss_u.h"
8
9namespace Service {
10namespace BOSS {
11
12const Interface::FunctionInfo FunctionTable[] = {
13 {0x00020100, nullptr, "GetStorageInfo"},
14};
15
16BOSS_U_Interface::BOSS_U_Interface() {
17 Register(FunctionTable);
18}
19
20} // namespace BOSS
21} // namespace Service
diff --git a/src/core/hle/service/boss/boss_u.h b/src/core/hle/service/boss/boss_u.h
new file mode 100644
index 000000000..d047d8cf2
--- /dev/null
+++ b/src/core/hle/service/boss/boss_u.h
@@ -0,0 +1,22 @@
1// Copyright 2014 Citra Emulator Project
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 BOSS {
11
12class BOSS_U_Interface : public Service::Interface {
13public:
14 BOSS_U_Interface();
15
16 std::string GetPortName() const override {
17 return "boss:U";
18 }
19};
20
21} // namespace BOSS
22} // namespace Service
diff --git a/src/core/hle/service/boss_p.cpp b/src/core/hle/service/boss_p.cpp
deleted file mode 100644
index 8280830e5..000000000
--- a/src/core/hle/service/boss_p.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/boss_p.h"
7
8////////////////////////////////////////////////////////////////////////////////////////////////////
9// Namespace BOSS_P
10
11namespace BOSS_P {
12
13// Empty arrays are illegal -- commented out until an entry is added.
14// const Interface::FunctionInfo FunctionTable[] = { };
15
16////////////////////////////////////////////////////////////////////////////////////////////////////
17// Interface class
18
19Interface::Interface() {
20 //Register(FunctionTable);
21}
22
23} // namespace
diff --git a/src/core/hle/service/boss_p.h b/src/core/hle/service/boss_p.h
deleted file mode 100644
index 6fb51d57d..000000000
--- a/src/core/hle/service/boss_p.h
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2015 Citra Emulator Project
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
9////////////////////////////////////////////////////////////////////////////////////////////////////
10// Namespace BOSS_P
11
12namespace BOSS_P {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "boss:P";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/boss_u.cpp b/src/core/hle/service/boss_u.cpp
deleted file mode 100644
index 2c322bdfd..000000000
--- a/src/core/hle/service/boss_u.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/boss_u.h"
7
8////////////////////////////////////////////////////////////////////////////////////////////////////
9// Namespace BOSS_U
10
11namespace BOSS_U {
12
13const Interface::FunctionInfo FunctionTable[] = {
14 {0x00020100, nullptr, "GetStorageInfo"},
15};
16
17////////////////////////////////////////////////////////////////////////////////////////////////////
18// Interface class
19
20Interface::Interface() {
21 Register(FunctionTable);
22}
23
24} // namespace
diff --git a/src/core/hle/service/boss_u.h b/src/core/hle/service/boss_u.h
deleted file mode 100644
index 89e77fe47..000000000
--- a/src/core/hle/service/boss_u.h
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2014 Citra Emulator Project
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
9////////////////////////////////////////////////////////////////////////////////////////////////////
10// Namespace BOSS_U
11
12namespace BOSS_U {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "boss:U";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/cam/cam.cpp b/src/core/hle/service/cam/cam.cpp
new file mode 100644
index 000000000..4f34b699b
--- /dev/null
+++ b/src/core/hle/service/cam/cam.cpp
@@ -0,0 +1,35 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "common/logging/log.h"
6
7#include "core/hle/service/service.h"
8#include "core/hle/service/cam/cam.h"
9#include "core/hle/service/cam/cam_c.h"
10#include "core/hle/service/cam/cam_q.h"
11#include "core/hle/service/cam/cam_s.h"
12#include "core/hle/service/cam/cam_u.h"
13
14#include "core/hle/kernel/event.h"
15#include "core/hle/kernel/shared_memory.h"
16#include "core/hle/hle.h"
17
18namespace Service {
19namespace CAM {
20
21void Init() {
22 using namespace Kernel;
23
24 AddService(new CAM_C_Interface);
25 AddService(new CAM_Q_Interface);
26 AddService(new CAM_S_Interface);
27 AddService(new CAM_U_Interface);
28}
29
30void Shutdown() {
31}
32
33} // namespace CAM
34
35} // namespace Service
diff --git a/src/core/hle/service/cam/cam.h b/src/core/hle/service/cam/cam.h
new file mode 100644
index 000000000..edd524841
--- /dev/null
+++ b/src/core/hle/service/cam/cam.h
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
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/kernel/kernel.h"
8#include "core/hle/service/service.h"
9
10namespace Service {
11namespace CAM {
12
13/// Initialize CAM service(s)
14void Init();
15
16/// Shutdown CAM service(s)
17void Shutdown();
18
19} // namespace CAM
20} // namespace Service
diff --git a/src/core/hle/service/cam/cam_c.cpp b/src/core/hle/service/cam/cam_c.cpp
new file mode 100644
index 000000000..d35adcb9f
--- /dev/null
+++ b/src/core/hle/service/cam/cam_c.cpp
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/cam/cam.h"
7#include "core/hle/service/cam/cam_c.h"
8
9namespace Service {
10namespace CAM {
11
12// Empty arrays are illegal -- commented out until an entry is added.
13//const Interface::FunctionInfo FunctionTable[] = { };
14
15CAM_C_Interface::CAM_C_Interface() {
16 //Register(FunctionTable);
17}
18
19} // namespace CAM
20} // namespace Service
diff --git a/src/core/hle/service/cam/cam_c.h b/src/core/hle/service/cam/cam_c.h
new file mode 100644
index 000000000..6b296c00d
--- /dev/null
+++ b/src/core/hle/service/cam/cam_c.h
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
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 CAM {
11
12class CAM_C_Interface : public Service::Interface {
13public:
14 CAM_C_Interface();
15
16 std::string GetPortName() const override {
17 return "cam:c";
18 }
19};
20
21} // namespace CAM
22} // namespace Service
diff --git a/src/core/hle/service/cam/cam_q.cpp b/src/core/hle/service/cam/cam_q.cpp
new file mode 100644
index 000000000..c2760a102
--- /dev/null
+++ b/src/core/hle/service/cam/cam_q.cpp
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/cam/cam.h"
7#include "core/hle/service/cam/cam_q.h"
8
9namespace Service {
10namespace CAM {
11
12// Empty arrays are illegal -- commented out until an entry is added.
13//const Interface::FunctionInfo FunctionTable[] = { };
14
15CAM_Q_Interface::CAM_Q_Interface() {
16 //Register(FunctionTable);
17}
18
19} // namespace CAM
20} // namespace Service
diff --git a/src/core/hle/service/cam/cam_q.h b/src/core/hle/service/cam/cam_q.h
new file mode 100644
index 000000000..07cc12534
--- /dev/null
+++ b/src/core/hle/service/cam/cam_q.h
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
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 CAM {
11
12class CAM_Q_Interface : public Service::Interface {
13public:
14 CAM_Q_Interface();
15
16 std::string GetPortName() const override {
17 return "cam:q";
18 }
19};
20
21} // namespace CAM
22} // namespace Service
diff --git a/src/core/hle/service/cam/cam_s.cpp b/src/core/hle/service/cam/cam_s.cpp
new file mode 100644
index 000000000..aefbf7df4
--- /dev/null
+++ b/src/core/hle/service/cam/cam_s.cpp
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/cam/cam.h"
7#include "core/hle/service/cam/cam_s.h"
8
9namespace Service {
10namespace CAM {
11
12// Empty arrays are illegal -- commented out until an entry is added.
13//const Interface::FunctionInfo FunctionTable[] = { };
14
15CAM_S_Interface::CAM_S_Interface() {
16 //Register(FunctionTable);
17}
18
19} // namespace CAM
20} // namespace Service
diff --git a/src/core/hle/service/cam/cam_s.h b/src/core/hle/service/cam/cam_s.h
new file mode 100644
index 000000000..0a5d6fca2
--- /dev/null
+++ b/src/core/hle/service/cam/cam_s.h
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
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 CAM {
11
12class CAM_S_Interface : public Service::Interface {
13public:
14 CAM_S_Interface();
15
16 std::string GetPortName() const override {
17 return "cam:s";
18 }
19};
20
21} // namespace CAM
22} // namespace Service
diff --git a/src/core/hle/service/cam/cam_u.cpp b/src/core/hle/service/cam/cam_u.cpp
new file mode 100644
index 000000000..1c6aca955
--- /dev/null
+++ b/src/core/hle/service/cam/cam_u.cpp
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/cam/cam.h"
7#include "core/hle/service/cam/cam_u.h"
8
9namespace Service {
10namespace CAM {
11
12// Empty arrays are illegal -- commented out until an entry is added.
13//const Interface::FunctionInfo FunctionTable[] = { };
14
15CAM_U_Interface::CAM_U_Interface() {
16 //Register(FunctionTable);
17}
18
19} // namespace CAM
20} // namespace Service
diff --git a/src/core/hle/service/cam/cam_u.h b/src/core/hle/service/cam/cam_u.h
new file mode 100644
index 000000000..369264037
--- /dev/null
+++ b/src/core/hle/service/cam/cam_u.h
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
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 CAM {
11
12class CAM_U_Interface : public Service::Interface {
13public:
14 CAM_U_Interface();
15
16 std::string GetPortName() const override {
17 return "cam:u";
18 }
19};
20
21} // namespace CAM
22} // namespace Service
diff --git a/src/core/hle/service/cam_u.cpp b/src/core/hle/service/cam_u.cpp
deleted file mode 100644
index ecda0dbdf..000000000
--- a/src/core/hle/service/cam_u.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/cam_u.h"
7
8////////////////////////////////////////////////////////////////////////////////////////////////////
9// Namespace CAM_U
10
11namespace CAM_U {
12
13// Empty arrays are illegal -- commented out until an entry is added.
14//const Interface::FunctionInfo FunctionTable[] = { };
15
16////////////////////////////////////////////////////////////////////////////////////////////////////
17// Interface class
18
19Interface::Interface() {
20 //Register(FunctionTable);
21}
22
23} // namespace
diff --git a/src/core/hle/service/cam_u.h b/src/core/hle/service/cam_u.h
deleted file mode 100644
index 878c20a84..000000000
--- a/src/core/hle/service/cam_u.h
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2015 Citra Emulator Project
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
9////////////////////////////////////////////////////////////////////////////////////////////////////
10// Namespace CAM_U
11
12namespace CAM_U {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "cam:u";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/cecd/cecd.cpp b/src/core/hle/service/cecd/cecd.cpp
new file mode 100644
index 000000000..db0e52b79
--- /dev/null
+++ b/src/core/hle/service/cecd/cecd.cpp
@@ -0,0 +1,31 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "common/logging/log.h"
6
7#include "core/hle/service/service.h"
8#include "core/hle/service/cecd/cecd.h"
9#include "core/hle/service/cecd/cecd_s.h"
10#include "core/hle/service/cecd/cecd_u.h"
11
12#include "core/hle/kernel/event.h"
13#include "core/hle/kernel/shared_memory.h"
14#include "core/hle/hle.h"
15
16namespace Service {
17namespace CECD {
18
19void Init() {
20 using namespace Kernel;
21
22 AddService(new CECD_S_Interface);
23 AddService(new CECD_U_Interface);
24}
25
26void Shutdown() {
27}
28
29} // namespace CECD
30
31} // namespace Service
diff --git a/src/core/hle/service/cecd/cecd.h b/src/core/hle/service/cecd/cecd.h
new file mode 100644
index 000000000..32fd2045d
--- /dev/null
+++ b/src/core/hle/service/cecd/cecd.h
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
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/kernel/kernel.h"
8#include "core/hle/service/service.h"
9
10namespace Service {
11namespace CECD {
12
13/// Initialize CECD service(s)
14void Init();
15
16/// Shutdown CECD service(s)
17void Shutdown();
18
19} // namespace CECD
20} // namespace Service
diff --git a/src/core/hle/service/cecd/cecd_s.cpp b/src/core/hle/service/cecd/cecd_s.cpp
new file mode 100644
index 000000000..72d7e8d44
--- /dev/null
+++ b/src/core/hle/service/cecd/cecd_s.cpp
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/cecd/cecd.h"
7#include "core/hle/service/cecd/cecd_s.h"
8
9namespace Service {
10namespace CECD {
11
12// Empty arrays are illegal -- commented out until an entry is added.
13//const Interface::FunctionInfo FunctionTable[] = { };
14
15CECD_S_Interface::CECD_S_Interface() {
16 //Register(FunctionTable);
17}
18
19} // namespace CECD
20} // namespace Service
diff --git a/src/core/hle/service/cecd_s.h b/src/core/hle/service/cecd/cecd_s.h
index d880d0391..df5c01849 100644
--- a/src/core/hle/service/cecd_s.h
+++ b/src/core/hle/service/cecd/cecd_s.h
@@ -6,18 +6,17 @@
6 6
7#include "core/hle/service/service.h" 7#include "core/hle/service/service.h"
8 8
9//////////////////////////////////////////////////////////////////////////////////////////////////// 9namespace Service {
10// Namespace CECD_S 10namespace CECD {
11 11
12namespace CECD_S { 12class CECD_S_Interface : public Interface {
13
14class Interface : public Service::Interface {
15public: 13public:
16 Interface(); 14 CECD_S_Interface();
17 15
18 std::string GetPortName() const override { 16 std::string GetPortName() const override {
19 return "cecd:s"; 17 return "cecd:s";
20 } 18 }
21}; 19};
22 20
23} // namespace 21} // namespace CECD
22} // namespace Service
diff --git a/src/core/hle/service/cecd/cecd_u.cpp b/src/core/hle/service/cecd/cecd_u.cpp
new file mode 100644
index 000000000..0a23bafbc
--- /dev/null
+++ b/src/core/hle/service/cecd/cecd_u.cpp
@@ -0,0 +1,20 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/cecd/cecd.h"
7#include "core/hle/service/cecd/cecd_u.h"
8
9namespace Service {
10namespace CECD {
11
12// Empty arrays are illegal -- commented out until an entry is added.
13//const Interface::FunctionInfo FunctionTable[] = { };
14
15CECD_U_Interface::CECD_U_Interface() {
16 //Register(FunctionTable);
17}
18
19} // namespace CECD
20} // namespace Service
diff --git a/src/core/hle/service/cecd_u.h b/src/core/hle/service/cecd/cecd_u.h
index e67564135..394030ffc 100644
--- a/src/core/hle/service/cecd_u.h
+++ b/src/core/hle/service/cecd/cecd_u.h
@@ -6,18 +6,17 @@
6 6
7#include "core/hle/service/service.h" 7#include "core/hle/service/service.h"
8 8
9//////////////////////////////////////////////////////////////////////////////////////////////////// 9namespace Service {
10// Namespace CECD_U 10namespace CECD {
11 11
12namespace CECD_U { 12class CECD_U_Interface : public Interface {
13
14class Interface : public Service::Interface {
15public: 13public:
16 Interface(); 14 CECD_U_Interface();
17 15
18 std::string GetPortName() const override { 16 std::string GetPortName() const override {
19 return "cecd:u"; 17 return "cecd:u";
20 } 18 }
21}; 19};
22 20
23} // namespace 21} // namespace CECD
22} // namespace Service
diff --git a/src/core/hle/service/cecd_s.cpp b/src/core/hle/service/cecd_s.cpp
deleted file mode 100644
index b298f151d..000000000
--- a/src/core/hle/service/cecd_s.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/cecd_s.h"
7
8////////////////////////////////////////////////////////////////////////////////////////////////////
9// Namespace CECD_S
10
11namespace CECD_S {
12
13// Empty arrays are illegal -- commented out until an entry is added.
14//const Interface::FunctionInfo FunctionTable[] = { };
15
16////////////////////////////////////////////////////////////////////////////////////////////////////
17// Interface class
18
19Interface::Interface() {
20 //Register(FunctionTable);
21}
22
23} // namespace
diff --git a/src/core/hle/service/cecd_u.cpp b/src/core/hle/service/cecd_u.cpp
deleted file mode 100644
index 9125364bc..000000000
--- a/src/core/hle/service/cecd_u.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/cecd_u.h"
7
8////////////////////////////////////////////////////////////////////////////////////////////////////
9// Namespace CECD_U
10
11namespace CECD_U {
12
13// Empty arrays are illegal -- commented out until an entry is added.
14//const Interface::FunctionInfo FunctionTable[] = { };
15
16////////////////////////////////////////////////////////////////////////////////////////////////////
17// Interface class
18
19Interface::Interface() {
20 //Register(FunctionTable);
21}
22
23} // namespace
diff --git a/src/core/hle/service/frd/frd.cpp b/src/core/hle/service/frd/frd.cpp
new file mode 100644
index 000000000..2911ab402
--- /dev/null
+++ b/src/core/hle/service/frd/frd.cpp
@@ -0,0 +1,29 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/service/service.h"
6#include "core/hle/service/frd/frd.h"
7#include "core/hle/service/frd/frd_a.h"
8#include "core/hle/service/frd/frd_u.h"
9
10#include "core/hle/kernel/event.h"
11#include "core/hle/kernel/shared_memory.h"
12#include "core/hle/hle.h"
13
14namespace Service {
15namespace FRD {
16
17void Init() {
18 using namespace Kernel;
19
20 AddService(new FRD_A_Interface);
21 AddService(new FRD_U_Interface);
22}
23
24void Shutdown() {
25}
26
27} // namespace FRD
28
29} // namespace Service
diff --git a/src/core/hle/service/frd/frd.h b/src/core/hle/service/frd/frd.h
new file mode 100644
index 000000000..41f7a2f6b
--- /dev/null
+++ b/src/core/hle/service/frd/frd.h
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
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/kernel/kernel.h"
8#include "core/hle/service/service.h"
9
10namespace Service {
11namespace FRD {
12
13/// Initialize FRD service(s)
14void Init();
15
16/// Shutdown FRD service(s)
17void Shutdown();
18
19} // namespace FRD
20} // namespace Service
diff --git a/src/core/hle/service/frd/frd_a.cpp b/src/core/hle/service/frd/frd_a.cpp
new file mode 100644
index 000000000..1c438a337
--- /dev/null
+++ b/src/core/hle/service/frd/frd_a.cpp
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/frd/frd.h"
7#include "core/hle/service/frd/frd_a.h"
8
9namespace Service {
10namespace FRD {
11
12// Empty arrays are illegal -- commented out until an entry is added.
13// const Interface::FunctionInfo FunctionTable[] = { };
14
15FRD_A_Interface::FRD_A_Interface() {
16 //Register(FunctionTable);
17}
18
19} // namespace FRD
20} // namespace Service
diff --git a/src/core/hle/service/frd_a.h b/src/core/hle/service/frd/frd_a.h
index f068c6108..006d1cadd 100644
--- a/src/core/hle/service/frd_a.h
+++ b/src/core/hle/service/frd/frd_a.h
@@ -6,18 +6,17 @@
6 6
7#include "core/hle/service/service.h" 7#include "core/hle/service/service.h"
8 8
9//////////////////////////////////////////////////////////////////////////////////////////////////// 9namespace Service {
10// Namespace FRD_A 10namespace FRD {
11 11
12namespace FRD_A { 12class FRD_A_Interface : public Service::Interface {
13
14class Interface : public Service::Interface {
15public: 13public:
16 Interface(); 14 FRD_A_Interface();
17 15
18 std::string GetPortName() const override { 16 std::string GetPortName() const override {
19 return "frd:a"; 17 return "frd:a";
20 } 18 }
21}; 19};
22 20
23} // namespace 21} // namespace FRD
22} // namespace Service
diff --git a/src/core/hle/service/frd_u.cpp b/src/core/hle/service/frd/frd_u.cpp
index 6d2ff1e21..439c7282e 100644
--- a/src/core/hle/service/frd_u.cpp
+++ b/src/core/hle/service/frd/frd_u.cpp
@@ -3,12 +3,11 @@
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include "core/hle/hle.h" 5#include "core/hle/hle.h"
6#include "core/hle/service/frd_u.h" 6#include "core/hle/service/frd/frd.h"
7#include "core/hle/service/frd/frd_u.h"
7 8
8//////////////////////////////////////////////////////////////////////////////////////////////////// 9namespace Service {
9// Namespace FRD_U 10namespace FRD {
10
11namespace FRD_U {
12 11
13const Interface::FunctionInfo FunctionTable[] = { 12const Interface::FunctionInfo FunctionTable[] = {
14 {0x00050000, nullptr, "GetFriendKey"}, 13 {0x00050000, nullptr, "GetFriendKey"},
@@ -22,11 +21,9 @@ const Interface::FunctionInfo FunctionTable[] = {
22 {0x00320042, nullptr, "SetClientSdkVersion"} 21 {0x00320042, nullptr, "SetClientSdkVersion"}
23}; 22};
24 23
25//////////////////////////////////////////////////////////////////////////////////////////////////// 24FRD_U_Interface::FRD_U_Interface() {
26// Interface class
27
28Interface::Interface() {
29 Register(FunctionTable); 25 Register(FunctionTable);
30} 26}
31 27
32} // namespace 28} // namespace FRD
29} // namespace Service
diff --git a/src/core/hle/service/frd_u.h b/src/core/hle/service/frd/frd_u.h
index ab8897d5b..07e43f155 100644
--- a/src/core/hle/service/frd_u.h
+++ b/src/core/hle/service/frd/frd_u.h
@@ -6,18 +6,17 @@
6 6
7#include "core/hle/service/service.h" 7#include "core/hle/service/service.h"
8 8
9//////////////////////////////////////////////////////////////////////////////////////////////////// 9namespace Service {
10// Namespace FRD_U 10namespace FRD {
11 11
12namespace FRD_U { 12class FRD_U_Interface : public Service::Interface {
13
14class Interface : public Service::Interface {
15public: 13public:
16 Interface(); 14 FRD_U_Interface();
17 15
18 std::string GetPortName() const override { 16 std::string GetPortName() const override {
19 return "frd:u"; 17 return "frd:u";
20 } 18 }
21}; 19};
22 20
23} // namespace 21} // namespace FRD
22} // namespace Service
diff --git a/src/core/hle/service/frd_a.cpp b/src/core/hle/service/frd_a.cpp
deleted file mode 100644
index 569979319..000000000
--- a/src/core/hle/service/frd_a.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/frd_a.h"
7
8////////////////////////////////////////////////////////////////////////////////////////////////////
9// Namespace FRD_A
10
11namespace FRD_A {
12
13// Empty arrays are illegal -- commented out until an entry is added.
14// const Interface::FunctionInfo FunctionTable[] = { };
15
16////////////////////////////////////////////////////////////////////////////////////////////////////
17// Interface class
18
19Interface::Interface() {
20 //Register(FunctionTable);
21}
22
23} // namespace
diff --git a/src/core/hle/service/news/news.cpp b/src/core/hle/service/news/news.cpp
new file mode 100644
index 000000000..63cbd3850
--- /dev/null
+++ b/src/core/hle/service/news/news.cpp
@@ -0,0 +1,31 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "common/logging/log.h"
6
7#include "core/hle/service/service.h"
8#include "core/hle/service/news/news.h"
9#include "core/hle/service/news/news_s.h"
10#include "core/hle/service/news/news_u.h"
11
12#include "core/hle/hle.h"
13#include "core/hle/kernel/event.h"
14#include "core/hle/kernel/shared_memory.h"
15
16namespace Service {
17namespace NEWS {
18
19void Init() {
20 using namespace Kernel;
21
22 AddService(new NEWS_S_Interface);
23 AddService(new NEWS_U_Interface);
24}
25
26void Shutdown() {
27}
28
29} // namespace NEWS
30
31} // namespace Service
diff --git a/src/core/hle/service/news/news.h b/src/core/hle/service/news/news.h
new file mode 100644
index 000000000..b31ade255
--- /dev/null
+++ b/src/core/hle/service/news/news.h
@@ -0,0 +1,20 @@
1// Copyright 2015 Citra Emulator Project
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/kernel/kernel.h"
8#include "core/hle/service/service.h"
9
10namespace Service {
11namespace NEWS {
12
13/// Initialize NEWS service(s)
14void Init();
15
16/// Shutdown NEWS service(s)
17void Shutdown();
18
19} // namespace NEWS
20} // namespace Service
diff --git a/src/core/hle/service/news/news_s.cpp b/src/core/hle/service/news/news_s.cpp
new file mode 100644
index 000000000..2f8c37d9e
--- /dev/null
+++ b/src/core/hle/service/news/news_s.cpp
@@ -0,0 +1,21 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/news/news.h"
7#include "core/hle/service/news/news_s.h"
8
9namespace Service {
10namespace NEWS {
11
12const Interface::FunctionInfo FunctionTable[] = {
13 {0x000100C6, nullptr, "AddNotification"},
14};
15
16NEWS_S_Interface::NEWS_S_Interface() {
17 Register(FunctionTable);
18}
19
20} // namespace NEWS
21} // namespace Service
diff --git a/src/core/hle/service/news_s.h b/src/core/hle/service/news/news_s.h
index f8b4636d5..f58b969a8 100644
--- a/src/core/hle/service/news_s.h
+++ b/src/core/hle/service/news/news_s.h
@@ -6,18 +6,17 @@
6 6
7#include "core/hle/service/service.h" 7#include "core/hle/service/service.h"
8 8
9//////////////////////////////////////////////////////////////////////////////////////////////////// 9namespace Service {
10// Namespace NEWS_S 10namespace NEWS {
11 11
12namespace NEWS_S { 12class NEWS_S_Interface : public Service::Interface {
13
14class Interface : public Service::Interface {
15public: 13public:
16 Interface(); 14 NEWS_S_Interface();
17 15
18 std::string GetPortName() const override { 16 std::string GetPortName() const override {
19 return "news:s"; 17 return "news:s";
20 } 18 }
21}; 19};
22 20
23} // namespace 21} // namespace NEWS
22} // namespace Service
diff --git a/src/core/hle/service/news/news_u.cpp b/src/core/hle/service/news/news_u.cpp
new file mode 100644
index 000000000..81f45a244
--- /dev/null
+++ b/src/core/hle/service/news/news_u.cpp
@@ -0,0 +1,21 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/news/news.h"
7#include "core/hle/service/news/news_u.h"
8
9namespace Service {
10namespace NEWS {
11
12const Interface::FunctionInfo FunctionTable[] = {
13 {0x000100C6, nullptr, "AddNotification"},
14};
15
16NEWS_U_Interface::NEWS_U_Interface() {
17 Register(FunctionTable);
18}
19
20} // namespace NEWS
21} // namespace Service
diff --git a/src/core/hle/service/news_u.h b/src/core/hle/service/news/news_u.h
index 0473cd19c..2720053d0 100644
--- a/src/core/hle/service/news_u.h
+++ b/src/core/hle/service/news/news_u.h
@@ -6,18 +6,17 @@
6 6
7#include "core/hle/service/service.h" 7#include "core/hle/service/service.h"
8 8
9//////////////////////////////////////////////////////////////////////////////////////////////////// 9namespace Service {
10// Namespace NEWS_U 10namespace NEWS {
11 11
12namespace NEWS_U { 12class NEWS_U_Interface : public Service::Interface {
13
14class Interface : public Service::Interface {
15public: 13public:
16 Interface(); 14 NEWS_U_Interface();
17 15
18 std::string GetPortName() const override { 16 std::string GetPortName() const override {
19 return "news:u"; 17 return "news:u";
20 } 18 }
21}; 19};
22 20
23} // namespace 21} // namespace NEWS
22} // namespace Service
diff --git a/src/core/hle/service/news_s.cpp b/src/core/hle/service/news_s.cpp
deleted file mode 100644
index 302d588c7..000000000
--- a/src/core/hle/service/news_s.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/news_s.h"
7
8////////////////////////////////////////////////////////////////////////////////////////////////////
9// Namespace NEWS_S
10
11namespace NEWS_S {
12
13const Interface::FunctionInfo FunctionTable[] = {
14 {0x000100C6, nullptr, "AddNotification"},
15};
16
17////////////////////////////////////////////////////////////////////////////////////////////////////
18// Interface class
19
20Interface::Interface() {
21 Register(FunctionTable);
22}
23
24} // namespace
diff --git a/src/core/hle/service/news_u.cpp b/src/core/hle/service/news_u.cpp
deleted file mode 100644
index 7d835aa30..000000000
--- a/src/core/hle/service/news_u.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/news_u.h"
7
8////////////////////////////////////////////////////////////////////////////////////////////////////
9// Namespace NEWS_U
10
11namespace NEWS_U {
12
13const Interface::FunctionInfo FunctionTable[] = {
14 {0x000100C8, nullptr, "AddNotification"},
15};
16
17////////////////////////////////////////////////////////////////////////////////////////////////////
18// Interface class
19
20Interface::Interface() {
21 Register(FunctionTable);
22}
23
24} // namespace
diff --git a/src/core/hle/service/nim/nim.cpp b/src/core/hle/service/nim/nim.cpp
new file mode 100644
index 000000000..73b0ee52a
--- /dev/null
+++ b/src/core/hle/service/nim/nim.cpp
@@ -0,0 +1,42 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "common/logging/log.h"
6
7#include "core/hle/service/service.h"
8#include "core/hle/service/nim/nim.h"
9#include "core/hle/service/nim/nim_aoc.h"
10#include "core/hle/service/nim/nim_s.h"
11#include "core/hle/service/nim/nim_u.h"
12
13#include "core/hle/kernel/event.h"
14#include "core/hle/kernel/shared_memory.h"
15#include "core/hle/hle.h"
16
17namespace Service {
18namespace NIM {
19
20void CheckSysUpdateAvailable(Service::Interface* self) {
21 u32* cmd_buff = Kernel::GetCommandBuffer();
22
23 cmd_buff[1] = RESULT_SUCCESS.raw;
24 cmd_buff[2] = 0; // No update available
25
26 LOG_WARNING(Service_NWM, "(STUBBED) called");
27}
28
29void Init() {
30 using namespace Kernel;
31
32 AddService(new NIM_AOC_Interface);
33 AddService(new NIM_S_Interface);
34 AddService(new NIM_U_Interface);
35}
36
37void Shutdown() {
38}
39
40} // namespace NIM
41
42} // namespace Service
diff --git a/src/core/hle/service/nim/nim.h b/src/core/hle/service/nim/nim.h
new file mode 100644
index 000000000..f7635c747
--- /dev/null
+++ b/src/core/hle/service/nim/nim.h
@@ -0,0 +1,30 @@
1// Copyright 2015 Citra Emulator Project
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/kernel/kernel.h"
8#include "core/hle/service/service.h"
9
10namespace Service {
11namespace NIM {
12
13/**
14 * NIM::CheckSysUpdateAvailable service function
15 * Inputs:
16 * 1 : None
17 * Outputs:
18 * 1 : Result of function, 0 on success, otherwise error code
19 * 2 : flag, 0 = no system update available, 1 = system update available.
20 */
21void CheckSysUpdateAvailable(Service::Interface* self);
22
23/// Initialize NIM service(s)
24void Init();
25
26/// Shutdown NIM service(s)
27void Shutdown();
28
29} // namespace NIM
30} // namespace Service
diff --git a/src/core/hle/service/nim_aoc.cpp b/src/core/hle/service/nim/nim_aoc.cpp
index 7a6aea91a..e6b1b6145 100644
--- a/src/core/hle/service/nim_aoc.cpp
+++ b/src/core/hle/service/nim/nim_aoc.cpp
@@ -3,12 +3,11 @@
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include "core/hle/hle.h" 5#include "core/hle/hle.h"
6#include "core/hle/service/nim_aoc.h" 6#include "core/hle/service/nim/nim.h"
7#include "core/hle/service/nim/nim_aoc.h"
7 8
8//////////////////////////////////////////////////////////////////////////////////////////////////// 9namespace Service {
9// Namespace NIM_AOC 10namespace NIM {
10
11namespace NIM_AOC {
12 11
13const Interface::FunctionInfo FunctionTable[] = { 12const Interface::FunctionInfo FunctionTable[] = {
14 {0x00030042, nullptr, "SetApplicationId"}, 13 {0x00030042, nullptr, "SetApplicationId"},
@@ -20,11 +19,10 @@ const Interface::FunctionInfo FunctionTable[] = {
20 {0x00240282, nullptr, "CalculateContentsRequiredSize"}, 19 {0x00240282, nullptr, "CalculateContentsRequiredSize"},
21 {0x00250000, nullptr, "RefreshServerTime"}, 20 {0x00250000, nullptr, "RefreshServerTime"},
22}; 21};
23////////////////////////////////////////////////////////////////////////////////////////////////////
24// Interface class
25 22
26Interface::Interface() { 23NIM_AOC_Interface::NIM_AOC_Interface() {
27 Register(FunctionTable); 24 Register(FunctionTable);
28} 25}
29 26
30} // namespace 27} // namespace NIM
28} // namespace Service
diff --git a/src/core/hle/service/nim/nim_aoc.h b/src/core/hle/service/nim/nim_aoc.h
new file mode 100644
index 000000000..aace45b5a
--- /dev/null
+++ b/src/core/hle/service/nim/nim_aoc.h
@@ -0,0 +1,22 @@
1// Copyright 2014 Citra Emulator Project
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 NIM {
11
12class NIM_AOC_Interface : public Service::Interface {
13public:
14 NIM_AOC_Interface();
15
16 std::string GetPortName() const override {
17 return "nim:aoc";
18 }
19};
20
21} // namespace NIM
22} // namespace Service
diff --git a/src/core/hle/service/nim/nim_s.cpp b/src/core/hle/service/nim/nim_s.cpp
new file mode 100644
index 000000000..5d8bc059f
--- /dev/null
+++ b/src/core/hle/service/nim/nim_s.cpp
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/nim/nim.h"
7#include "core/hle/service/nim/nim_s.h"
8
9namespace Service {
10namespace NIM {
11
12const Interface::FunctionInfo FunctionTable[] = {
13 {0x000A0000, nullptr, "CheckSysupdateAvailableSOAP"},
14};
15
16NIM_S_Interface::NIM_S_Interface() {
17 Register(FunctionTable);
18}
19
20} // namespace NIM
21} // namespace Service
22
diff --git a/src/core/hle/service/nim/nim_s.h b/src/core/hle/service/nim/nim_s.h
new file mode 100644
index 000000000..f4bf73d26
--- /dev/null
+++ b/src/core/hle/service/nim/nim_s.h
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
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 NIM {
11
12class NIM_S_Interface : public Service::Interface {
13public:
14 NIM_S_Interface();
15
16 std::string GetPortName() const override {
17 return "nim:s";
18 }
19};
20
21} // namespace NIM
22} // namespace Service
diff --git a/src/core/hle/service/nim/nim_u.cpp b/src/core/hle/service/nim/nim_u.cpp
new file mode 100644
index 000000000..066570a85
--- /dev/null
+++ b/src/core/hle/service/nim/nim_u.cpp
@@ -0,0 +1,27 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/hle.h"
6#include "core/hle/service/nim/nim.h"
7#include "core/hle/service/nim/nim_u.h"
8
9namespace Service {
10namespace NIM {
11
12const Interface::FunctionInfo FunctionTable[] = {
13 {0x00010000, nullptr, "StartSysUpdate"},
14 {0x00020000, nullptr, "GetUpdateDownloadProgress"},
15 {0x00040000, nullptr, "FinishTitlesInstall"},
16 {0x00050000, nullptr, "CheckForSysUpdateEvent"},
17 {0x00090000, CheckSysUpdateAvailable, "CheckSysUpdateAvailable"},
18 {0x000A0000, nullptr, "GetState"},
19};
20
21NIM_U_Interface::NIM_U_Interface() {
22 Register(FunctionTable);
23}
24
25} // namespace NIM
26} // namespace Service
27
diff --git a/src/core/hle/service/nim/nim_u.h b/src/core/hle/service/nim/nim_u.h
new file mode 100644
index 000000000..bc89dc0f3
--- /dev/null
+++ b/src/core/hle/service/nim/nim_u.h
@@ -0,0 +1,22 @@
1// Copyright 2015 Citra Emulator Project
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 NIM {
11
12class NIM_U_Interface : public Service::Interface {
13public:
14 NIM_U_Interface();
15
16 std::string GetPortName() const override {
17 return "nim:u";
18 }
19};
20
21} // namespace NIM
22} // namespace Service
diff --git a/src/core/hle/service/nim_aoc.h b/src/core/hle/service/nim_aoc.h
deleted file mode 100644
index aeb71eed2..000000000
--- a/src/core/hle/service/nim_aoc.h
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2014 Citra Emulator Project
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
9////////////////////////////////////////////////////////////////////////////////////////////////////
10// Namespace NIM_AOC
11
12namespace NIM_AOC {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "nim:aoc";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/nim_u.cpp b/src/core/hle/service/nim_u.cpp
deleted file mode 100644
index 5f13bd98e..000000000
--- a/src/core/hle/service/nim_u.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "common/logging/log.h"
6
7#include "core/hle/hle.h"
8#include "core/hle/service/nim_u.h"
9
10////////////////////////////////////////////////////////////////////////////////////////////////////
11// Namespace NIM_U
12
13namespace NIM_U {
14
15/**
16 * NIM_U::CheckSysUpdateAvailable service function
17 * Inputs:
18 * 1 : None
19 * Outputs:
20 * 1 : Result of function, 0 on success, otherwise error code
21 * 2 : flag, 0 = no system update available, 1 = system update available.
22 */
23static void CheckSysUpdateAvailable(Service::Interface* self) {
24 u32* cmd_buff = Kernel::GetCommandBuffer();
25
26 cmd_buff[1] = RESULT_SUCCESS.raw;
27 cmd_buff[2] = 0; // No update available
28
29 LOG_WARNING(Service_NWM, "(STUBBED) called");
30}
31
32const Interface::FunctionInfo FunctionTable[] = {
33 {0x00010000, nullptr, "StartSysUpdate"},
34 {0x00020000, nullptr, "GetUpdateDownloadProgress"},
35 {0x00040000, nullptr, "FinishTitlesInstall"},
36 {0x00050000, nullptr, "CheckForSysUpdateEvent"},
37 {0x00090000, CheckSysUpdateAvailable, "CheckSysUpdateAvailable"},
38 {0x000A0000, nullptr, "GetState"},
39};
40
41////////////////////////////////////////////////////////////////////////////////////////////////////
42// Interface class
43
44Interface::Interface() {
45 Register(FunctionTable);
46}
47
48} // namespace
diff --git a/src/core/hle/service/nim_u.h b/src/core/hle/service/nim_u.h
deleted file mode 100644
index 57a1f6acf..000000000
--- a/src/core/hle/service/nim_u.h
+++ /dev/null
@@ -1,23 +0,0 @@
1// Copyright 2015 Citra Emulator Project
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
9////////////////////////////////////////////////////////////////////////////////////////////////////
10// Namespace NIM_U
11
12namespace NIM_U {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "nim:u";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index dc667500c..d681cc3dc 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -8,29 +8,15 @@
8#include "core/hle/service/service.h" 8#include "core/hle/service/service.h"
9#include "core/hle/service/ac_u.h" 9#include "core/hle/service/ac_u.h"
10#include "core/hle/service/act_u.h" 10#include "core/hle/service/act_u.h"
11#include "core/hle/service/am_app.h"
12#include "core/hle/service/am_net.h"
13#include "core/hle/service/am_sys.h"
14#include "core/hle/service/boss_p.h"
15#include "core/hle/service/boss_u.h"
16#include "core/hle/service/cam_u.h"
17#include "core/hle/service/cecd_u.h"
18#include "core/hle/service/cecd_s.h"
19#include "core/hle/service/csnd_snd.h" 11#include "core/hle/service/csnd_snd.h"
20#include "core/hle/service/dsp_dsp.h" 12#include "core/hle/service/dsp_dsp.h"
21#include "core/hle/service/err_f.h" 13#include "core/hle/service/err_f.h"
22#include "core/hle/service/frd_a.h"
23#include "core/hle/service/frd_u.h"
24#include "core/hle/service/gsp_gpu.h" 14#include "core/hle/service/gsp_gpu.h"
25#include "core/hle/service/gsp_lcd.h" 15#include "core/hle/service/gsp_lcd.h"
26#include "core/hle/service/http_c.h" 16#include "core/hle/service/http_c.h"
27#include "core/hle/service/ldr_ro.h" 17#include "core/hle/service/ldr_ro.h"
28#include "core/hle/service/mic_u.h" 18#include "core/hle/service/mic_u.h"
29#include "core/hle/service/ndm_u.h" 19#include "core/hle/service/ndm_u.h"
30#include "core/hle/service/news_s.h"
31#include "core/hle/service/news_u.h"
32#include "core/hle/service/nim_aoc.h"
33#include "core/hle/service/nim_u.h"
34#include "core/hle/service/ns_s.h" 20#include "core/hle/service/ns_s.h"
35#include "core/hle/service/nwm_uds.h" 21#include "core/hle/service/nwm_uds.h"
36#include "core/hle/service/pm_app.h" 22#include "core/hle/service/pm_app.h"
@@ -39,11 +25,18 @@
39#include "core/hle/service/ssl_c.h" 25#include "core/hle/service/ssl_c.h"
40#include "core/hle/service/y2r_u.h" 26#include "core/hle/service/y2r_u.h"
41 27
28#include "core/hle/service/am/am.h"
42#include "core/hle/service/apt/apt.h" 29#include "core/hle/service/apt/apt.h"
30#include "core/hle/service/boss/boss.h"
31#include "core/hle/service/cam/cam.h"
32#include "core/hle/service/cecd/cecd.h"
33#include "core/hle/service/frd/frd.h"
43#include "core/hle/service/fs/archive.h" 34#include "core/hle/service/fs/archive.h"
44#include "core/hle/service/cfg/cfg.h" 35#include "core/hle/service/cfg/cfg.h"
45#include "core/hle/service/hid/hid.h" 36#include "core/hle/service/hid/hid.h"
46#include "core/hle/service/ir/ir.h" 37#include "core/hle/service/ir/ir.h"
38#include "core/hle/service/news/news.h"
39#include "core/hle/service/nim/nim.h"
47#include "core/hle/service/ptm/ptm.h" 40#include "core/hle/service/ptm/ptm.h"
48 41
49namespace Service { 42namespace Service {
@@ -111,36 +104,29 @@ void Init() {
111 AddNamedPort(new ERR_F::Interface); 104 AddNamedPort(new ERR_F::Interface);
112 105
113 Service::FS::ArchiveInit(); 106 Service::FS::ArchiveInit();
114 Service::CFG::Init(); 107 Service::AM::Init();
115 Service::APT::Init(); 108 Service::APT::Init();
116 Service::PTM::Init(); 109 Service::BOSS::Init();
110 Service::CAM::Init();
111 Service::CECD::Init();
112 Service::CFG::Init();
113 Service::FRD::Init();
117 Service::HID::Init(); 114 Service::HID::Init();
118 Service::IR::Init(); 115 Service::IR::Init();
116 Service::NEWS::Init();
117 Service::NIM::Init();
118 Service::PTM::Init();
119 119
120 AddService(new AC_U::Interface); 120 AddService(new AC_U::Interface);
121 AddService(new ACT_U::Interface); 121 AddService(new ACT_U::Interface);
122 AddService(new AM_APP::Interface);
123 AddService(new AM_NET::Interface);
124 AddService(new AM_SYS::Interface);
125 AddService(new BOSS_P::Interface);
126 AddService(new BOSS_U::Interface);
127 AddService(new CAM_U::Interface);
128 AddService(new CECD_S::Interface);
129 AddService(new CECD_U::Interface);
130 AddService(new CSND_SND::Interface); 122 AddService(new CSND_SND::Interface);
131 AddService(new DSP_DSP::Interface); 123 AddService(new DSP_DSP::Interface);
132 AddService(new FRD_A::Interface);
133 AddService(new FRD_U::Interface);
134 AddService(new GSP_GPU::Interface); 124 AddService(new GSP_GPU::Interface);
135 AddService(new GSP_LCD::Interface); 125 AddService(new GSP_LCD::Interface);
136 AddService(new HTTP_C::Interface); 126 AddService(new HTTP_C::Interface);
137 AddService(new LDR_RO::Interface); 127 AddService(new LDR_RO::Interface);
138 AddService(new MIC_U::Interface); 128 AddService(new MIC_U::Interface);
139 AddService(new NDM_U::Interface); 129 AddService(new NDM_U::Interface);
140 AddService(new NEWS_S::Interface);
141 AddService(new NEWS_U::Interface);
142 AddService(new NIM_AOC::Interface);
143 AddService(new NIM_U::Interface);
144 AddService(new NS_S::Interface); 130 AddService(new NS_S::Interface);
145 AddService(new NWM_UDS::Interface); 131 AddService(new NWM_UDS::Interface);
146 AddService(new PM_APP::Interface); 132 AddService(new PM_APP::Interface);
@@ -153,11 +139,19 @@ void Init() {
153 139
154/// Shutdown ServiceManager 140/// Shutdown ServiceManager
155void Shutdown() { 141void Shutdown() {
142
143 Service::PTM::Shutdown();
144 Service::NIM::Shutdown();
145 Service::NEWS::Shutdown();
156 Service::IR::Shutdown(); 146 Service::IR::Shutdown();
157 Service::HID::Shutdown(); 147 Service::HID::Shutdown();
158 Service::PTM::Shutdown(); 148 Service::FRD::Shutdown();
159 Service::APT::Shutdown();
160 Service::CFG::Shutdown(); 149 Service::CFG::Shutdown();
150 Service::CECD::Shutdown();
151 Service::CAM::Shutdown();
152 Service::BOSS::Shutdown();
153 Service::APT::Shutdown();
154 Service::AM::Shutdown();
161 Service::FS::ArchiveShutdown(); 155 Service::FS::ArchiveShutdown();
162 156
163 g_srv_services.clear(); 157 g_srv_services.clear();