diff options
78 files changed, 1222 insertions, 638 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 75f519a1d..6805ebed8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -4,6 +4,13 @@ cmake_minimum_required(VERSION 2.8.11) | |||
| 4 | 4 | ||
| 5 | project(citra) | 5 | project(citra) |
| 6 | 6 | ||
| 7 | if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git/hooks/pre-commit) | ||
| 8 | message(STATUS "Copying pre-commit hook") | ||
| 9 | file(COPY hooks/pre-commit | ||
| 10 | DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/.git/hooks | ||
| 11 | FILE_PERMISSIONS WORLD_EXECUTE ) | ||
| 12 | endif() | ||
| 13 | |||
| 7 | if (NOT MSVC) | 14 | if (NOT MSVC) |
| 8 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-attributes -pthread") | 15 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-attributes -pthread") |
| 9 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread") | 16 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread") |
diff --git a/appveyor.yml b/appveyor.yml index 8b420f20c..aef2d6f73 100644 --- a/appveyor.yml +++ b/appveyor.yml | |||
| @@ -40,7 +40,7 @@ after_build: | |||
| 40 | 7z a $BUILD_NAME_NOQT .\build\bin\release\*.exe | 40 | 7z a $BUILD_NAME_NOQT .\build\bin\release\*.exe |
| 41 | 41 | ||
| 42 | # Download winscp | 42 | # Download winscp |
| 43 | Invoke-WebRequest "https://cdn.winscp.net/files/winscp573.zip?secure=yE1jHlRoBZTA0htWnu1OVQ==,1434405422" -OutFile "winscp573.zip" | 43 | Invoke-WebRequest "http://iweb.dl.sourceforge.net/project/winscp/WinSCP/5.7.3/winscp573.zip" -OutFile "winscp573.zip" |
| 44 | 7z e -y winscp573.zip | 44 | 7z e -y winscp573.zip |
| 45 | 45 | ||
| 46 | # Upload to server | 46 | # Upload to server |
diff --git a/hooks/pre-commit b/hooks/pre-commit new file mode 100644 index 000000000..bad84b14b --- /dev/null +++ b/hooks/pre-commit | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | # Enforce citra's whitespace policy | ||
| 4 | git config --local core.whitespace tab-in-indent,trailing-space | ||
| 5 | |||
| 6 | # If there are whitespace errors, print the offending file names and fail. | ||
| 7 | if ! git diff --cached --check; then | ||
| 8 | cat<<END; | ||
| 9 | |||
| 10 | Error: This commit would contain trailing spaces or tabs, which is against this repo's policy. | ||
| 11 | Please correct those issues before commiting. (Use 'git diff --check' for more details) | ||
| 12 | If you know what you are doing, you can try 'git commit --no-verify' to bypass the check | ||
| 13 | END | ||
| 14 | exit 1 | ||
| 15 | fi | ||
| 16 | |||
| 17 | # Check for tabs, since tab-in-indent catches only those at the beginning of a line | ||
| 18 | if git diff --cached | egrep '^\+.* '; then | ||
| 19 | cat<<END; | ||
| 20 | Error: This commit would contain a tab, which is against this repo's policy. | ||
| 21 | If you know what you are doing, you can try 'git commit --no-verify' to bypass the check. | ||
| 22 | END | ||
| 23 | exit 1 | ||
| 24 | fi | ||
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 ea5533dcf..4fcda4874 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 |
| @@ -153,18 +165,26 @@ set(HEADERS | |||
| 153 | hle/result.h | 165 | hle/result.h |
| 154 | hle/service/ac_u.h | 166 | hle/service/ac_u.h |
| 155 | hle/service/act_u.h | 167 | hle/service/act_u.h |
| 156 | hle/service/am_app.h | 168 | hle/service/am/am.h |
| 157 | hle/service/am_net.h | 169 | hle/service/am/am_app.h |
| 158 | hle/service/am_sys.h | 170 | hle/service/am/am_net.h |
| 171 | hle/service/am/am_sys.h | ||
| 172 | hle/service/am/am_u.h | ||
| 159 | hle/service/apt/apt.h | 173 | hle/service/apt/apt.h |
| 160 | hle/service/apt/apt_a.h | 174 | hle/service/apt/apt_a.h |
| 161 | hle/service/apt/apt_s.h | 175 | hle/service/apt/apt_s.h |
| 162 | hle/service/apt/apt_u.h | 176 | hle/service/apt/apt_u.h |
| 163 | hle/service/boss_p.h | 177 | hle/service/boss/boss.h |
| 164 | hle/service/boss_u.h | 178 | hle/service/boss/boss_p.h |
| 165 | hle/service/cam_u.h | 179 | hle/service/boss/boss_u.h |
| 166 | hle/service/cecd_s.h | 180 | hle/service/cam/cam.h |
| 167 | hle/service/cecd_u.h | 181 | hle/service/cam/cam_c.h |
| 182 | hle/service/cam/cam_q.h | ||
| 183 | hle/service/cam/cam_s.h | ||
| 184 | hle/service/cam/cam_u.h | ||
| 185 | hle/service/cecd/cecd.h | ||
| 186 | hle/service/cecd/cecd_s.h | ||
| 187 | hle/service/cecd/cecd_u.h | ||
| 168 | hle/service/cfg/cfg.h | 188 | hle/service/cfg/cfg.h |
| 169 | hle/service/cfg/cfg_i.h | 189 | hle/service/cfg/cfg_i.h |
| 170 | hle/service/cfg/cfg_s.h | 190 | hle/service/cfg/cfg_s.h |
| @@ -172,8 +192,9 @@ set(HEADERS | |||
| 172 | hle/service/csnd_snd.h | 192 | hle/service/csnd_snd.h |
| 173 | hle/service/dsp_dsp.h | 193 | hle/service/dsp_dsp.h |
| 174 | hle/service/err_f.h | 194 | hle/service/err_f.h |
| 175 | hle/service/frd_a.h | 195 | hle/service/frd/frd.h |
| 176 | hle/service/frd_u.h | 196 | hle/service/frd/frd_a.h |
| 197 | hle/service/frd/frd_u.h | ||
| 177 | hle/service/fs/archive.h | 198 | hle/service/fs/archive.h |
| 178 | hle/service/fs/fs_user.h | 199 | hle/service/fs/fs_user.h |
| 179 | hle/service/gsp_gpu.h | 200 | hle/service/gsp_gpu.h |
| @@ -189,10 +210,13 @@ set(HEADERS | |||
| 189 | hle/service/ldr_ro.h | 210 | hle/service/ldr_ro.h |
| 190 | hle/service/mic_u.h | 211 | hle/service/mic_u.h |
| 191 | hle/service/ndm_u.h | 212 | hle/service/ndm_u.h |
| 192 | hle/service/news_s.h | 213 | hle/service/news/news.h |
| 193 | hle/service/news_u.h | 214 | hle/service/news/news_s.h |
| 194 | hle/service/nim_aoc.h | 215 | hle/service/news/news_u.h |
| 195 | hle/service/nim_u.h | 216 | hle/service/nim/nim.h |
| 217 | hle/service/nim/nim_aoc.h | ||
| 218 | hle/service/nim/nim_s.h | ||
| 219 | hle/service/nim/nim_u.h | ||
| 196 | hle/service/ns_s.h | 220 | hle/service/ns_s.h |
| 197 | hle/service/nwm_uds.h | 221 | hle/service/nwm_uds.h |
| 198 | hle/service/pm_app.h | 222 | 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 | |||
| 16 | namespace Service { | ||
| 17 | namespace AM { | ||
| 18 | |||
| 19 | void 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 | |||
| 29 | void 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 | |||
| 41 | void 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 | |||
| 49 | void 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 | |||
| 10 | namespace Service { | ||
| 11 | namespace 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 | */ | ||
| 23 | void 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 | */ | ||
| 38 | void GetTitleIDList(Service::Interface* self); | ||
| 39 | |||
| 40 | /// Initialize AM service | ||
| 41 | void Init(); | ||
| 42 | |||
| 43 | /// Shutdown AM service | ||
| 44 | void 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace AM { | ||
| 11 | |||
| 12 | // Empty arrays are illegal -- commented out until an entry is added. | ||
| 13 | //const Interface::FunctionInfo FunctionTable[] = { }; | ||
| 14 | |||
| 15 | AM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace AM { | ||
| 11 | |||
| 12 | class AM_APP_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 9 | namespace Service { |
| 9 | // Namespace AM_NET | 10 | namespace AM { |
| 10 | |||
| 11 | namespace AM_NET { | ||
| 12 | 11 | ||
| 13 | const Interface::FunctionInfo FunctionTable[] = { | 12 | const 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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 35 | AM_NET_Interface::AM_NET_Interface() { |
| 37 | // Interface class | ||
| 38 | |||
| 39 | Interface::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 | |||
| 9 | namespace Service { | ||
| 10 | namespace AM { | ||
| 11 | |||
| 12 | class AM_NET_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace AM { | ||
| 11 | |||
| 12 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 13 | {0x00010040, TitleIDListGetTotal, "TitleIDListGetTotal"}, | ||
| 14 | {0x00020082, GetTitleIDList, "GetTitleIDList"}, | ||
| 15 | }; | ||
| 16 | |||
| 17 | AM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace AM { | ||
| 11 | |||
| 12 | class AM_SYS_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace AM { | ||
| 11 | |||
| 12 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 13 | {0x00010040, TitleIDListGetTotal, "TitleIDListGetTotal"}, | ||
| 14 | {0x00020082, GetTitleIDList, "GetTitleIDList"}, | ||
| 15 | }; | ||
| 16 | |||
| 17 | AM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace AM { | ||
| 11 | |||
| 12 | class AM_U_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 11 | namespace 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 | |||
| 19 | Interface::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 | |||
| 12 | namespace AM_APP { | ||
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | ||
| 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 | |||
| 12 | namespace AM_NET { | ||
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | ||
| 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 | |||
| 10 | namespace 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 | */ | ||
| 21 | static 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 | */ | ||
| 42 | static 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 | |||
| 53 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 54 | {0x00010040, TitleIDListGetTotal, "TitleIDListGetTotal"}, | ||
| 55 | {0x00020082, GetTitleIDList, "GetTitleIDList"}, | ||
| 56 | }; | ||
| 57 | |||
| 58 | Interface::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 | |||
| 12 | namespace AM_SYS { | ||
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | ||
| 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 | |||
| 14 | namespace Service { | ||
| 15 | namespace BOSS { | ||
| 16 | |||
| 17 | void Init() { | ||
| 18 | using namespace Kernel; | ||
| 19 | |||
| 20 | AddService(new BOSS_P_Interface); | ||
| 21 | AddService(new BOSS_U_Interface); | ||
| 22 | } | ||
| 23 | |||
| 24 | void 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 | |||
| 10 | namespace Service { | ||
| 11 | namespace BOSS { | ||
| 12 | |||
| 13 | /// Initialize BOSS service(s) | ||
| 14 | void Init(); | ||
| 15 | |||
| 16 | /// Shutdown BOSS service(s) | ||
| 17 | void 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace BOSS { | ||
| 11 | |||
| 12 | // Empty arrays are illegal -- commented out until an entry is added. | ||
| 13 | // const Interface::FunctionInfo FunctionTable[] = { }; | ||
| 14 | |||
| 15 | BOSS_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace BOSS { | ||
| 11 | |||
| 12 | class BOSS_P_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace BOSS { | ||
| 11 | |||
| 12 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 13 | {0x00020100, nullptr, "GetStorageInfo"}, | ||
| 14 | }; | ||
| 15 | |||
| 16 | BOSS_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace BOSS { | ||
| 11 | |||
| 12 | class BOSS_U_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 11 | namespace 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 | |||
| 19 | Interface::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 | |||
| 12 | namespace BOSS_P { | ||
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | ||
| 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 | |||
| 11 | namespace BOSS_U { | ||
| 12 | |||
| 13 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 14 | {0x00020100, nullptr, "GetStorageInfo"}, | ||
| 15 | }; | ||
| 16 | |||
| 17 | //////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 18 | // Interface class | ||
| 19 | |||
| 20 | Interface::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 | |||
| 12 | namespace BOSS_U { | ||
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | ||
| 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 | |||
| 18 | namespace Service { | ||
| 19 | namespace CAM { | ||
| 20 | |||
| 21 | void 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 | |||
| 30 | void 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 | |||
| 10 | namespace Service { | ||
| 11 | namespace CAM { | ||
| 12 | |||
| 13 | /// Initialize CAM service(s) | ||
| 14 | void Init(); | ||
| 15 | |||
| 16 | /// Shutdown CAM service(s) | ||
| 17 | void 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CAM { | ||
| 11 | |||
| 12 | // Empty arrays are illegal -- commented out until an entry is added. | ||
| 13 | //const Interface::FunctionInfo FunctionTable[] = { }; | ||
| 14 | |||
| 15 | CAM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CAM { | ||
| 11 | |||
| 12 | class CAM_C_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CAM { | ||
| 11 | |||
| 12 | // Empty arrays are illegal -- commented out until an entry is added. | ||
| 13 | //const Interface::FunctionInfo FunctionTable[] = { }; | ||
| 14 | |||
| 15 | CAM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CAM { | ||
| 11 | |||
| 12 | class CAM_Q_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CAM { | ||
| 11 | |||
| 12 | // Empty arrays are illegal -- commented out until an entry is added. | ||
| 13 | //const Interface::FunctionInfo FunctionTable[] = { }; | ||
| 14 | |||
| 15 | CAM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CAM { | ||
| 11 | |||
| 12 | class CAM_S_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CAM { | ||
| 11 | |||
| 12 | // Empty arrays are illegal -- commented out until an entry is added. | ||
| 13 | //const Interface::FunctionInfo FunctionTable[] = { }; | ||
| 14 | |||
| 15 | CAM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CAM { | ||
| 11 | |||
| 12 | class CAM_U_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 11 | namespace 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 | |||
| 19 | Interface::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 | |||
| 12 | namespace CAM_U { | ||
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | ||
| 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 | |||
| 16 | namespace Service { | ||
| 17 | namespace CECD { | ||
| 18 | |||
| 19 | void Init() { | ||
| 20 | using namespace Kernel; | ||
| 21 | |||
| 22 | AddService(new CECD_S_Interface); | ||
| 23 | AddService(new CECD_U_Interface); | ||
| 24 | } | ||
| 25 | |||
| 26 | void 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 | |||
| 10 | namespace Service { | ||
| 11 | namespace CECD { | ||
| 12 | |||
| 13 | /// Initialize CECD service(s) | ||
| 14 | void Init(); | ||
| 15 | |||
| 16 | /// Shutdown CECD service(s) | ||
| 17 | void 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CECD { | ||
| 11 | |||
| 12 | // Empty arrays are illegal -- commented out until an entry is added. | ||
| 13 | //const Interface::FunctionInfo FunctionTable[] = { }; | ||
| 14 | |||
| 15 | CECD_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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 9 | namespace Service { |
| 10 | // Namespace CECD_S | 10 | namespace CECD { |
| 11 | 11 | ||
| 12 | namespace CECD_S { | 12 | class CECD_S_Interface : public Interface { |
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | 13 | public: |
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace CECD { | ||
| 11 | |||
| 12 | // Empty arrays are illegal -- commented out until an entry is added. | ||
| 13 | //const Interface::FunctionInfo FunctionTable[] = { }; | ||
| 14 | |||
| 15 | CECD_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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 9 | namespace Service { |
| 10 | // Namespace CECD_U | 10 | namespace CECD { |
| 11 | 11 | ||
| 12 | namespace CECD_U { | 12 | class CECD_U_Interface : public Interface { |
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | 13 | public: |
| 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 | |||
| 11 | namespace 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 | |||
| 19 | Interface::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 | |||
| 11 | namespace 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 | |||
| 19 | Interface::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 | |||
| 14 | namespace Service { | ||
| 15 | namespace FRD { | ||
| 16 | |||
| 17 | void Init() { | ||
| 18 | using namespace Kernel; | ||
| 19 | |||
| 20 | AddService(new FRD_A_Interface); | ||
| 21 | AddService(new FRD_U_Interface); | ||
| 22 | } | ||
| 23 | |||
| 24 | void 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 | |||
| 10 | namespace Service { | ||
| 11 | namespace FRD { | ||
| 12 | |||
| 13 | /// Initialize FRD service(s) | ||
| 14 | void Init(); | ||
| 15 | |||
| 16 | /// Shutdown FRD service(s) | ||
| 17 | void 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace FRD { | ||
| 11 | |||
| 12 | // Empty arrays are illegal -- commented out until an entry is added. | ||
| 13 | // const Interface::FunctionInfo FunctionTable[] = { }; | ||
| 14 | |||
| 15 | FRD_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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 9 | namespace Service { |
| 10 | // Namespace FRD_A | 10 | namespace FRD { |
| 11 | 11 | ||
| 12 | namespace FRD_A { | 12 | class FRD_A_Interface : public Service::Interface { |
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | 13 | public: |
| 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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 9 | namespace Service { |
| 9 | // Namespace FRD_U | 10 | namespace FRD { |
| 10 | |||
| 11 | namespace FRD_U { | ||
| 12 | 11 | ||
| 13 | const Interface::FunctionInfo FunctionTable[] = { | 12 | const 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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 24 | FRD_U_Interface::FRD_U_Interface() { |
| 26 | // Interface class | ||
| 27 | |||
| 28 | Interface::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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 9 | namespace Service { |
| 10 | // Namespace FRD_U | 10 | namespace FRD { |
| 11 | 11 | ||
| 12 | namespace FRD_U { | 12 | class FRD_U_Interface : public Service::Interface { |
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | 13 | public: |
| 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 | |||
| 11 | namespace 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 | |||
| 19 | Interface::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 | |||
| 16 | namespace Service { | ||
| 17 | namespace NEWS { | ||
| 18 | |||
| 19 | void Init() { | ||
| 20 | using namespace Kernel; | ||
| 21 | |||
| 22 | AddService(new NEWS_S_Interface); | ||
| 23 | AddService(new NEWS_U_Interface); | ||
| 24 | } | ||
| 25 | |||
| 26 | void 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 | |||
| 10 | namespace Service { | ||
| 11 | namespace NEWS { | ||
| 12 | |||
| 13 | /// Initialize NEWS service(s) | ||
| 14 | void Init(); | ||
| 15 | |||
| 16 | /// Shutdown NEWS service(s) | ||
| 17 | void 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace NEWS { | ||
| 11 | |||
| 12 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 13 | {0x000100C6, nullptr, "AddNotification"}, | ||
| 14 | }; | ||
| 15 | |||
| 16 | NEWS_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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 9 | namespace Service { |
| 10 | // Namespace NEWS_S | 10 | namespace NEWS { |
| 11 | 11 | ||
| 12 | namespace NEWS_S { | 12 | class NEWS_S_Interface : public Service::Interface { |
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | 13 | public: |
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace NEWS { | ||
| 11 | |||
| 12 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 13 | {0x000100C6, nullptr, "AddNotification"}, | ||
| 14 | }; | ||
| 15 | |||
| 16 | NEWS_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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 9 | namespace Service { |
| 10 | // Namespace NEWS_U | 10 | namespace NEWS { |
| 11 | 11 | ||
| 12 | namespace NEWS_U { | 12 | class NEWS_U_Interface : public Service::Interface { |
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | 13 | public: |
| 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 | |||
| 11 | namespace NEWS_S { | ||
| 12 | |||
| 13 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 14 | {0x000100C6, nullptr, "AddNotification"}, | ||
| 15 | }; | ||
| 16 | |||
| 17 | //////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 18 | // Interface class | ||
| 19 | |||
| 20 | Interface::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 | |||
| 11 | namespace NEWS_U { | ||
| 12 | |||
| 13 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 14 | {0x000100C8, nullptr, "AddNotification"}, | ||
| 15 | }; | ||
| 16 | |||
| 17 | //////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 18 | // Interface class | ||
| 19 | |||
| 20 | Interface::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 | |||
| 17 | namespace Service { | ||
| 18 | namespace NIM { | ||
| 19 | |||
| 20 | void 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 | |||
| 29 | void 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 | |||
| 37 | void 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 | |||
| 10 | namespace Service { | ||
| 11 | namespace 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 | */ | ||
| 21 | void CheckSysUpdateAvailable(Service::Interface* self); | ||
| 22 | |||
| 23 | /// Initialize NIM service(s) | ||
| 24 | void Init(); | ||
| 25 | |||
| 26 | /// Shutdown NIM service(s) | ||
| 27 | void 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 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 9 | namespace Service { |
| 9 | // Namespace NIM_AOC | 10 | namespace NIM { |
| 10 | |||
| 11 | namespace NIM_AOC { | ||
| 12 | 11 | ||
| 13 | const Interface::FunctionInfo FunctionTable[] = { | 12 | const 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 | ||
| 26 | Interface::Interface() { | 23 | NIM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace NIM { | ||
| 11 | |||
| 12 | class NIM_AOC_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace NIM { | ||
| 11 | |||
| 12 | const Interface::FunctionInfo FunctionTable[] = { | ||
| 13 | {0x000A0000, nullptr, "CheckSysupdateAvailableSOAP"}, | ||
| 14 | }; | ||
| 15 | |||
| 16 | NIM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace NIM { | ||
| 11 | |||
| 12 | class NIM_S_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 9 | namespace Service { | ||
| 10 | namespace NIM { | ||
| 11 | |||
| 12 | const 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 | |||
| 21 | NIM_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 | |||
| 9 | namespace Service { | ||
| 10 | namespace NIM { | ||
| 11 | |||
| 12 | class NIM_U_Interface : public Service::Interface { | ||
| 13 | public: | ||
| 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 | |||
| 12 | namespace NIM_AOC { | ||
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | ||
| 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 | |||
| 13 | namespace 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 | */ | ||
| 23 | static 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 | |||
| 32 | const 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 | |||
| 44 | Interface::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 | |||
| 12 | namespace NIM_U { | ||
| 13 | |||
| 14 | class Interface : public Service::Interface { | ||
| 15 | public: | ||
| 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 | ||
| 49 | namespace Service { | 42 | namespace 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 |
| 155 | void Shutdown() { | 141 | void 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(); |