summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2015-01-13 17:39:33 -0500
committerGravatar bunnei2015-01-13 17:39:33 -0500
commit7bbd027660a77f6f23bb84d4e5789e902ba69f6e (patch)
treed3f8ce6365cf5be67b9d3c4a8b4ba77f58e1e4fc /src
parentMerge pull request #477 from lioncash/vfp (diff)
parentServices: Added some missing services. (diff)
downloadyuzu-7bbd027660a77f6f23bb84d4e5789e902ba69f6e.tar.gz
yuzu-7bbd027660a77f6f23bb84d4e5789e902ba69f6e.tar.xz
yuzu-7bbd027660a77f6f23bb84d4e5789e902ba69f6e.zip
Merge pull request #479 from Subv/hm
Services: Added some missing services.
Diffstat (limited to 'src')
-rw-r--r--src/core/CMakeLists.txt6
-rw-r--r--src/core/hle/service/apt_s.cpp121
-rw-r--r--src/core/hle/service/apt_s.h30
-rw-r--r--src/core/hle/service/apt_u.cpp2
-rw-r--r--src/core/hle/service/cfg/cfg_s.cpp98
-rw-r--r--src/core/hle/service/cfg/cfg_s.h23
-rw-r--r--src/core/hle/service/ptm_sysm.cpp56
-rw-r--r--src/core/hle/service/ptm_sysm.h23
-rw-r--r--src/core/hle/service/service.cpp6
9 files changed, 364 insertions, 1 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 8723a471f..9aabd7e3a 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -38,11 +38,13 @@ set(SRCS
38 hle/service/am_app.cpp 38 hle/service/am_app.cpp
39 hle/service/am_net.cpp 39 hle/service/am_net.cpp
40 hle/service/apt_a.cpp 40 hle/service/apt_a.cpp
41 hle/service/apt_s.cpp
41 hle/service/apt_u.cpp 42 hle/service/apt_u.cpp
42 hle/service/boss_u.cpp 43 hle/service/boss_u.cpp
43 hle/service/cecd_u.cpp 44 hle/service/cecd_u.cpp
44 hle/service/cfg/cfg.cpp 45 hle/service/cfg/cfg.cpp
45 hle/service/cfg/cfg_i.cpp 46 hle/service/cfg/cfg_i.cpp
47 hle/service/cfg/cfg_s.cpp
46 hle/service/cfg/cfg_u.cpp 48 hle/service/cfg/cfg_u.cpp
47 hle/service/csnd_snd.cpp 49 hle/service/csnd_snd.cpp
48 hle/service/dsp_dsp.cpp 50 hle/service/dsp_dsp.cpp
@@ -63,6 +65,7 @@ set(SRCS
63 hle/service/nwm_uds.cpp 65 hle/service/nwm_uds.cpp
64 hle/service/pm_app.cpp 66 hle/service/pm_app.cpp
65 hle/service/ptm_u.cpp 67 hle/service/ptm_u.cpp
68 hle/service/ptm_sysm.cpp
66 hle/service/service.cpp 69 hle/service/service.cpp
67 hle/service/soc_u.cpp 70 hle/service/soc_u.cpp
68 hle/service/srv.cpp 71 hle/service/srv.cpp
@@ -131,11 +134,13 @@ set(HEADERS
131 hle/service/am_app.h 134 hle/service/am_app.h
132 hle/service/am_net.h 135 hle/service/am_net.h
133 hle/service/apt_a.h 136 hle/service/apt_a.h
137 hle/service/apt_s.h
134 hle/service/apt_u.h 138 hle/service/apt_u.h
135 hle/service/boss_u.h 139 hle/service/boss_u.h
136 hle/service/cecd_u.h 140 hle/service/cecd_u.h
137 hle/service/cfg/cfg.h 141 hle/service/cfg/cfg.h
138 hle/service/cfg/cfg_i.h 142 hle/service/cfg/cfg_i.h
143 hle/service/cfg/cfg_s.h
139 hle/service/cfg/cfg_u.h 144 hle/service/cfg/cfg_u.h
140 hle/service/csnd_snd.h 145 hle/service/csnd_snd.h
141 hle/service/dsp_dsp.h 146 hle/service/dsp_dsp.h
@@ -156,6 +161,7 @@ set(HEADERS
156 hle/service/nwm_uds.h 161 hle/service/nwm_uds.h
157 hle/service/pm_app.h 162 hle/service/pm_app.h
158 hle/service/ptm_u.h 163 hle/service/ptm_u.h
164 hle/service/ptm_sysm.h
159 hle/service/service.h 165 hle/service/service.h
160 hle/service/soc_u.h 166 hle/service/soc_u.h
161 hle/service/srv.h 167 hle/service/srv.h
diff --git a/src/core/hle/service/apt_s.cpp b/src/core/hle/service/apt_s.cpp
new file mode 100644
index 000000000..f4599e19d
--- /dev/null
+++ b/src/core/hle/service/apt_s.cpp
@@ -0,0 +1,121 @@
1// Copyright 2015 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5
6#include "common/common.h"
7#include "common/file_util.h"
8
9#include "core/hle/hle.h"
10#include "core/hle/kernel/event.h"
11#include "core/hle/kernel/mutex.h"
12#include "core/hle/kernel/shared_memory.h"
13#include "core/hle/service/apt_s.h"
14
15////////////////////////////////////////////////////////////////////////////////////////////////////
16// Namespace APT_S
17
18namespace APT_U {
19 extern void GetLockHandle(Service::Interface* self);
20 extern void Initialize(Service::Interface* self);
21 extern void Enable(Service::Interface* self);
22 extern void InquireNotification(Service::Interface* self);
23 extern void GetSharedFont(Service::Interface* self);
24 extern void AppletUtility(Service::Interface* self);
25 extern void GlanceParameter(Service::Interface* self);
26 extern void ReceiveParameter(Service::Interface* self);
27}
28
29namespace APT_S {
30
31const Interface::FunctionInfo FunctionTable[] = {
32 {0x00010040, APT_U::GetLockHandle, "GetLockHandle"},
33 {0x00020080, APT_U::Initialize, "Initialize"},
34 {0x00030040, APT_U::Enable, "Enable"},
35 {0x00040040, nullptr, "Finalize"},
36 {0x00050040, nullptr, "GetAppletManInfo"},
37 {0x00060040, nullptr, "GetAppletInfo"},
38 {0x00070000, nullptr, "GetLastSignaledAppletId"},
39 {0x00080000, nullptr, "CountRegisteredApplet"},
40 {0x00090040, nullptr, "IsRegistered"},
41 {0x000A0040, nullptr, "GetAttribute"},
42 {0x000B0040, APT_U::InquireNotification, "InquireNotification"},
43 {0x000C0104, nullptr, "SendParameter"},
44 {0x000D0080, APT_U::ReceiveParameter, "ReceiveParameter"},
45 {0x000E0080, APT_U::GlanceParameter, "GlanceParameter"},
46 {0x000F0100, nullptr, "CancelParameter"},
47 {0x001000C2, nullptr, "DebugFunc"},
48 {0x001100C0, nullptr, "MapProgramIdForDebug"},
49 {0x00120040, nullptr, "SetHomeMenuAppletIdForDebug"},
50 {0x00130000, nullptr, "GetPreparationState"},
51 {0x00140040, nullptr, "SetPreparationState"},
52 {0x00150140, nullptr, "PrepareToStartApplication"},
53 {0x00160040, nullptr, "PreloadLibraryApplet"},
54 {0x00170040, nullptr, "FinishPreloadingLibraryApplet"},
55 {0x00180040, nullptr, "PrepareToStartLibraryApplet"},
56 {0x00190040, nullptr, "PrepareToStartSystemApplet"},
57 {0x001A0000, nullptr, "PrepareToStartNewestHomeMenu"},
58 {0x001B00C4, nullptr, "StartApplication"},
59 {0x001C0000, nullptr, "WakeupApplication"},
60 {0x001D0000, nullptr, "CancelApplication"},
61 {0x001E0084, nullptr, "StartLibraryApplet"},
62 {0x001F0084, nullptr, "StartSystemApplet"},
63 {0x00200044, nullptr, "StartNewestHomeMenu"},
64 {0x00210000, nullptr, "OrderToCloseApplication"},
65 {0x00220040, nullptr, "PrepareToCloseApplication"},
66 {0x00230040, nullptr, "PrepareToJumpToApplication"},
67 {0x00240044, nullptr, "JumpToApplication"},
68 {0x002500C0, nullptr, "PrepareToCloseLibraryApplet"},
69 {0x00260000, nullptr, "PrepareToCloseSystemApplet"},
70 {0x00270044, nullptr, "CloseApplication"},
71 {0x00280044, nullptr, "CloseLibraryApplet"},
72 {0x00290044, nullptr, "CloseSystemApplet"},
73 {0x002A0000, nullptr, "OrderToCloseSystemApplet"},
74 {0x002B0000, nullptr, "PrepareToJumpToHomeMenu"},
75 {0x002C0044, nullptr, "JumpToHomeMenu"},
76 {0x002D0000, nullptr, "PrepareToLeaveHomeMenu"},
77 {0x002E0044, nullptr, "LeaveHomeMenu"},
78 {0x002F0040, nullptr, "PrepareToLeaveResidentApplet"},
79 {0x00300044, nullptr, "LeaveResidentApplet"},
80 {0x00310100, nullptr, "PrepareToDoApplicationJump"},
81 {0x00320084, nullptr, "DoApplicationJump"},
82 {0x00330000, nullptr, "GetProgramIdOnApplicationJump"},
83 {0x00340084, nullptr, "SendDeliverArg"},
84 {0x00350080, nullptr, "ReceiveDeliverArg"},
85 {0x00360040, nullptr, "LoadSysMenuArg"},
86 {0x00370042, nullptr, "StoreSysMenuArg"},
87 {0x00380040, nullptr, "PreloadResidentApplet"},
88 {0x00390040, nullptr, "PrepareToStartResidentApplet"},
89 {0x003A0044, nullptr, "StartResidentApplet"},
90 {0x003B0040, nullptr, "CancelLibraryApplet"},
91 {0x003C0042, nullptr, "SendDspSleep"},
92 {0x003D0042, nullptr, "SendDspWakeUp"},
93 {0x003E0080, nullptr, "ReplySleepQuery"},
94 {0x003F0040, nullptr, "ReplySleepNotificationComplete"},
95 {0x00400042, nullptr, "SendCaptureBufferInfo"},
96 {0x00410040, nullptr, "ReceiveCaptureBufferInfo"},
97 {0x00420080, nullptr, "SleepSystem"},
98 {0x00430040, nullptr, "NotifyToWait"},
99 {0x00440000, APT_U::GetSharedFont, "GetSharedFont"},
100 {0x00450040, nullptr, "GetWirelessRebootInfo"},
101 {0x00460104, nullptr, "Wrap"},
102 {0x00470104, nullptr, "Unwrap"},
103 {0x00480100, nullptr, "GetProgramInfo"},
104 {0x00490180, nullptr, "Reboot"},
105 {0x004A0040, nullptr, "GetCaptureInfo"},
106 {0x004B00C2, APT_U::AppletUtility, "AppletUtility"},
107 {0x004C0000, nullptr, "SetFatalErrDispMode"},
108 {0x004D0080, nullptr, "GetAppletProgramInfo"},
109 {0x004E0000, nullptr, "HardwareResetAsync"},
110 {0x004F0080, nullptr, "SetApplicationCpuTimeLimit"},
111 {0x00500040, nullptr, "GetApplicationCpuTimeLimit"},
112};
113
114////////////////////////////////////////////////////////////////////////////////////////////////////
115// Interface class
116
117Interface::Interface() {
118 Register(FunctionTable, ARRAY_SIZE(FunctionTable));
119}
120
121} // namespace
diff --git a/src/core/hle/service/apt_s.h b/src/core/hle/service/apt_s.h
new file mode 100644
index 000000000..f097c9747
--- /dev/null
+++ b/src/core/hle/service/apt_s.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/service/service.h"
8
9////////////////////////////////////////////////////////////////////////////////////////////////////
10// Namespace APT_S
11
12namespace APT_S {
13
14// Application and title launching service. These services handle signaling for home/power button as
15// well. Only one session for either APT service can be open at a time, normally processes close the
16// service handle immediately once finished using the service. The commands for APT:U and APT:S are
17// exactly the same, however certain commands are only accessible with APT:S(NS module will call
18// svcBreak when the command isn't accessible). See http://3dbrew.org/wiki/NS#APT_Services.
19
20/// Interface to "APT:S" service
21class Interface : public Service::Interface {
22public:
23 Interface();
24
25 std::string GetPortName() const override {
26 return "APT:S";
27 }
28};
29
30} // namespace
diff --git a/src/core/hle/service/apt_u.cpp b/src/core/hle/service/apt_u.cpp
index d0ff4e585..a38621088 100644
--- a/src/core/hle/service/apt_u.cpp
+++ b/src/core/hle/service/apt_u.cpp
@@ -10,7 +10,7 @@
10#include "core/hle/kernel/event.h" 10#include "core/hle/kernel/event.h"
11#include "core/hle/kernel/mutex.h" 11#include "core/hle/kernel/mutex.h"
12#include "core/hle/kernel/shared_memory.h" 12#include "core/hle/kernel/shared_memory.h"
13#include "apt_u.h" 13#include "core/hle/service/apt_u.h"
14 14
15//////////////////////////////////////////////////////////////////////////////////////////////////// 15////////////////////////////////////////////////////////////////////////////////////////////////////
16// Namespace APT_U 16// Namespace APT_U
diff --git a/src/core/hle/service/cfg/cfg_s.cpp b/src/core/hle/service/cfg/cfg_s.cpp
new file mode 100644
index 000000000..cf4e82152
--- /dev/null
+++ b/src/core/hle/service/cfg/cfg_s.cpp
@@ -0,0 +1,98 @@
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/log.h"
6#include "core/hle/hle.h"
7#include "core/hle/service/cfg/cfg.h"
8#include "core/hle/service/cfg/cfg_s.h"
9
10////////////////////////////////////////////////////////////////////////////////////////////////////
11// Namespace CFG_S
12
13namespace CFG_S {
14
15/**
16 * CFG_S::GetConfigInfoBlk2 service function
17 * Inputs:
18 * 0 : 0x00010082
19 * 1 : Size
20 * 2 : Block ID
21 * 3 : Descriptor for the output buffer
22 * 4 : Output buffer pointer
23 * Outputs:
24 * 1 : Result of function, 0 on success, otherwise error code
25 */
26static void GetConfigInfoBlk2(Service::Interface* self) {
27 u32* cmd_buffer = Kernel::GetCommandBuffer();
28 u32 size = cmd_buffer[1];
29 u32 block_id = cmd_buffer[2];
30 u8* data_pointer = Memory::GetPointer(cmd_buffer[4]);
31
32 if (data_pointer == nullptr) {
33 cmd_buffer[1] = -1; // TODO(Subv): Find the right error code
34 return;
35 }
36
37 cmd_buffer[1] = Service::CFG::GetConfigInfoBlock(block_id, size, 0x2, data_pointer).raw;
38}
39
40/**
41 * CFG_S::GetConfigInfoBlk8 service function
42 * Inputs:
43 * 0 : 0x04010082
44 * 1 : Size
45 * 2 : Block ID
46 * 3 : Descriptor for the output buffer
47 * 4 : Output buffer pointer
48 * Outputs:
49 * 1 : Result of function, 0 on success, otherwise error code
50 */
51static void GetConfigInfoBlk8(Service::Interface* self) {
52 u32* cmd_buffer = Kernel::GetCommandBuffer();
53 u32 size = cmd_buffer[1];
54 u32 block_id = cmd_buffer[2];
55 u8* data_pointer = Memory::GetPointer(cmd_buffer[4]);
56
57 if (data_pointer == nullptr) {
58 cmd_buffer[1] = -1; // TODO(Subv): Find the right error code
59 return;
60 }
61
62 cmd_buffer[1] = Service::CFG::GetConfigInfoBlock(block_id, size, 0x8, data_pointer).raw;
63}
64
65/**
66 * CFG_S::UpdateConfigNANDSavegame service function
67 * Inputs:
68 * 0 : 0x04030000
69 * Outputs:
70 * 1 : Result of function, 0 on success, otherwise error code
71 */
72static void UpdateConfigNANDSavegame(Service::Interface* self) {
73 u32* cmd_buffer = Kernel::GetCommandBuffer();
74 cmd_buffer[1] = Service::CFG::UpdateConfigNANDSavegame().raw;
75}
76
77const Interface::FunctionInfo FunctionTable[] = {
78 {0x00010082, GetConfigInfoBlk2, "GetConfigInfoBlk2"},
79 {0x00020000, nullptr, "SecureInfoGetRegion"},
80 {0x04010082, GetConfigInfoBlk8, "GetConfigInfoBlk8"},
81 {0x04020082, nullptr, "SetConfigInfoBlk4"},
82 {0x04030000, UpdateConfigNANDSavegame, "UpdateConfigNANDSavegame"},
83 {0x04040042, nullptr, "GetLocalFriendCodeSeedData"},
84 {0x04050000, nullptr, "GetLocalFriendCodeSeed"},
85 {0x04060000, nullptr, "SecureInfoGetRegion"},
86 {0x04070000, nullptr, "SecureInfoGetByte101"},
87 {0x04080042, nullptr, "SecureInfoGetSerialNo"},
88 {0x04090000, nullptr, "UpdateConfigBlk00040003"},
89};
90
91////////////////////////////////////////////////////////////////////////////////////////////////////
92// Interface class
93
94Interface::Interface() {
95 Register(FunctionTable, ARRAY_SIZE(FunctionTable));
96}
97
98} // namespace
diff --git a/src/core/hle/service/cfg/cfg_s.h b/src/core/hle/service/cfg/cfg_s.h
new file mode 100644
index 000000000..d8b67137f
--- /dev/null
+++ b/src/core/hle/service/cfg/cfg_s.h
@@ -0,0 +1,23 @@
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 CFG_S
11
12namespace CFG_S {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "cfg:s";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/ptm_sysm.cpp b/src/core/hle/service/ptm_sysm.cpp
new file mode 100644
index 000000000..4b5f86a47
--- /dev/null
+++ b/src/core/hle/service/ptm_sysm.cpp
@@ -0,0 +1,56 @@
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/log.h"
6#include "common/make_unique.h"
7#include "core/file_sys/archive_extsavedata.h"
8#include "core/hle/hle.h"
9#include "core/hle/service/ptm_sysm.h"
10
11////////////////////////////////////////////////////////////////////////////////////////////////////
12// Namespace PTM_SYSM
13
14namespace PTM_SYSM {
15
16const Interface::FunctionInfo FunctionTable[] = {
17 {0x040100C0, nullptr, "SetRtcAlarmEx"},
18 {0x04020042, nullptr, "ReplySleepQuery"},
19 {0x04030042, nullptr, "NotifySleepPreparationComplete"},
20 {0x04040102, nullptr, "SetWakeupTrigger"},
21 {0x04050000, nullptr, "GetAwakeReason"},
22 {0x04060000, nullptr, "RequestSleep"},
23 {0x040700C0, nullptr, "ShutdownAsync"},
24 {0x04080000, nullptr, "Awake"},
25 {0x04090080, nullptr, "RebootAsync"},
26 {0x040A0000, nullptr, "CheckNew3DS"},
27 {0x08010640, nullptr, "SetInfoLEDPattern"},
28 {0x08020040, nullptr, "SetInfoLEDPatternHeader"},
29 {0x08030000, nullptr, "GetInfoLEDStatus"},
30 {0x08040040, nullptr, "SetBatteryEmptyLEDPattern"},
31 {0x08050000, nullptr, "ClearStepHistory"},
32 {0x080600C2, nullptr, "SetStepHistory"},
33 {0x08070082, nullptr, "GetPlayHistory"},
34 {0x08080000, nullptr, "GetPlayHistoryStart"},
35 {0x08090000, nullptr, "GetPlayHistoryLength"},
36 {0x080A0000, nullptr, "ClearPlayHistory"},
37 {0x080B0080, nullptr, "CalcPlayHistoryStart"},
38 {0x080C0080, nullptr, "SetUserTime"},
39 {0x080D0000, nullptr, "InvalidateSystemTime"},
40 {0x080E0140, nullptr, "NotifyPlayEvent"},
41 {0x080F0000, nullptr, "IsLegacyPowerOff"},
42 {0x08100000, nullptr, "ClearLegacyPowerOff"},
43 {0x08110000, nullptr, "GetShellStatus"},
44 {0x08120000, nullptr, "IsShutdownByBatteryEmpty"},
45 {0x08130000, nullptr, "FormatSavedata"},
46 {0x08140000, nullptr, "GetLegacyJumpProhibitedFlag"}
47};
48
49////////////////////////////////////////////////////////////////////////////////////////////////////
50// Interface class
51
52Interface::Interface() {
53 Register(FunctionTable, ARRAY_SIZE(FunctionTable));
54}
55
56} // namespace
diff --git a/src/core/hle/service/ptm_sysm.h b/src/core/hle/service/ptm_sysm.h
new file mode 100644
index 000000000..0f267b214
--- /dev/null
+++ b/src/core/hle/service/ptm_sysm.h
@@ -0,0 +1,23 @@
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 PTM_SYSM
11
12namespace PTM_SYSM {
13
14class Interface : public Service::Interface {
15public:
16 Interface();
17
18 std::string GetPortName() const override {
19 return "ptm:sysm";
20 }
21};
22
23} // namespace
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index 33c29a4a0..446ed5164 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -11,10 +11,12 @@
11#include "core/hle/service/am_app.h" 11#include "core/hle/service/am_app.h"
12#include "core/hle/service/am_net.h" 12#include "core/hle/service/am_net.h"
13#include "core/hle/service/apt_a.h" 13#include "core/hle/service/apt_a.h"
14#include "core/hle/service/apt_s.h"
14#include "core/hle/service/apt_u.h" 15#include "core/hle/service/apt_u.h"
15#include "core/hle/service/boss_u.h" 16#include "core/hle/service/boss_u.h"
16#include "core/hle/service/cecd_u.h" 17#include "core/hle/service/cecd_u.h"
17#include "core/hle/service/cfg/cfg_i.h" 18#include "core/hle/service/cfg/cfg_i.h"
19#include "core/hle/service/cfg/cfg_s.h"
18#include "core/hle/service/cfg/cfg_u.h" 20#include "core/hle/service/cfg/cfg_u.h"
19#include "core/hle/service/csnd_snd.h" 21#include "core/hle/service/csnd_snd.h"
20#include "core/hle/service/dsp_dsp.h" 22#include "core/hle/service/dsp_dsp.h"
@@ -34,6 +36,7 @@
34#include "core/hle/service/nwm_uds.h" 36#include "core/hle/service/nwm_uds.h"
35#include "core/hle/service/pm_app.h" 37#include "core/hle/service/pm_app.h"
36#include "core/hle/service/ptm_u.h" 38#include "core/hle/service/ptm_u.h"
39#include "core/hle/service/ptm_sysm.h"
37#include "core/hle/service/soc_u.h" 40#include "core/hle/service/soc_u.h"
38#include "core/hle/service/srv.h" 41#include "core/hle/service/srv.h"
39#include "core/hle/service/ssl_c.h" 42#include "core/hle/service/ssl_c.h"
@@ -85,10 +88,12 @@ void Init() {
85 g_manager->AddService(new AM_APP::Interface); 88 g_manager->AddService(new AM_APP::Interface);
86 g_manager->AddService(new AM_NET::Interface); 89 g_manager->AddService(new AM_NET::Interface);
87 g_manager->AddService(new APT_A::Interface); 90 g_manager->AddService(new APT_A::Interface);
91 g_manager->AddService(new APT_S::Interface);
88 g_manager->AddService(new APT_U::Interface); 92 g_manager->AddService(new APT_U::Interface);
89 g_manager->AddService(new BOSS_U::Interface); 93 g_manager->AddService(new BOSS_U::Interface);
90 g_manager->AddService(new CECD_U::Interface); 94 g_manager->AddService(new CECD_U::Interface);
91 g_manager->AddService(new CFG_I::Interface); 95 g_manager->AddService(new CFG_I::Interface);
96 g_manager->AddService(new CFG_S::Interface);
92 g_manager->AddService(new CFG_U::Interface); 97 g_manager->AddService(new CFG_U::Interface);
93 g_manager->AddService(new CSND_SND::Interface); 98 g_manager->AddService(new CSND_SND::Interface);
94 g_manager->AddService(new DSP_DSP::Interface); 99 g_manager->AddService(new DSP_DSP::Interface);
@@ -108,6 +113,7 @@ void Init() {
108 g_manager->AddService(new NWM_UDS::Interface); 113 g_manager->AddService(new NWM_UDS::Interface);
109 g_manager->AddService(new PM_APP::Interface); 114 g_manager->AddService(new PM_APP::Interface);
110 g_manager->AddService(new PTM_U::Interface); 115 g_manager->AddService(new PTM_U::Interface);
116 g_manager->AddService(new PTM_SYSM::Interface);
111 g_manager->AddService(new SOC_U::Interface); 117 g_manager->AddService(new SOC_U::Interface);
112 g_manager->AddService(new SSL_C::Interface); 118 g_manager->AddService(new SSL_C::Interface);
113 g_manager->AddService(new Y2R_U::Interface); 119 g_manager->AddService(new Y2R_U::Interface);