diff options
Diffstat (limited to 'src')
23 files changed, 452 insertions, 146 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 833605475..2e2de59b1 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -136,6 +136,12 @@ add_library(core STATIC | |||
| 136 | hle/service/bcat/bcat.h | 136 | hle/service/bcat/bcat.h |
| 137 | hle/service/bcat/module.cpp | 137 | hle/service/bcat/module.cpp |
| 138 | hle/service/bcat/module.h | 138 | hle/service/bcat/module.h |
| 139 | hle/service/erpt/erpt.cpp | ||
| 140 | hle/service/erpt/erpt.h | ||
| 141 | hle/service/es/es.cpp | ||
| 142 | hle/service/es/es.h | ||
| 143 | hle/service/eupld/eupld.cpp | ||
| 144 | hle/service/eupld/eupld.h | ||
| 139 | hle/service/fatal/fatal.cpp | 145 | hle/service/fatal/fatal.cpp |
| 140 | hle/service/fatal/fatal.h | 146 | hle/service/fatal/fatal.h |
| 141 | hle/service/fatal/fatal_p.cpp | 147 | hle/service/fatal/fatal_p.cpp |
| @@ -152,6 +158,8 @@ add_library(core STATIC | |||
| 152 | hle/service/friend/interface.h | 158 | hle/service/friend/interface.h |
| 153 | hle/service/hid/hid.cpp | 159 | hle/service/hid/hid.cpp |
| 154 | hle/service/hid/hid.h | 160 | hle/service/hid/hid.h |
| 161 | hle/service/ldr/ldr.cpp | ||
| 162 | hle/service/ldr/ldr.h | ||
| 155 | hle/service/lm/lm.cpp | 163 | hle/service/lm/lm.cpp |
| 156 | hle/service/lm/lm.h | 164 | hle/service/lm/lm.h |
| 157 | hle/service/mm/mm_u.cpp | 165 | hle/service/mm/mm_u.cpp |
| @@ -162,12 +170,6 @@ add_library(core STATIC | |||
| 162 | hle/service/nfp/nfp_user.h | 170 | hle/service/nfp/nfp_user.h |
| 163 | hle/service/nifm/nifm.cpp | 171 | hle/service/nifm/nifm.cpp |
| 164 | hle/service/nifm/nifm.h | 172 | hle/service/nifm/nifm.h |
| 165 | hle/service/nifm/nifm_a.cpp | ||
| 166 | hle/service/nifm/nifm_a.h | ||
| 167 | hle/service/nifm/nifm_s.cpp | ||
| 168 | hle/service/nifm/nifm_s.h | ||
| 169 | hle/service/nifm/nifm_u.cpp | ||
| 170 | hle/service/nifm/nifm_u.h | ||
| 171 | hle/service/ns/ns.cpp | 173 | hle/service/ns/ns.cpp |
| 172 | hle/service/ns/ns.h | 174 | hle/service/ns/ns.h |
| 173 | hle/service/ns/pl_u.cpp | 175 | hle/service/ns/pl_u.cpp |
| @@ -201,6 +203,8 @@ add_library(core STATIC | |||
| 201 | hle/service/pctl/module.h | 203 | hle/service/pctl/module.h |
| 202 | hle/service/pctl/pctl.cpp | 204 | hle/service/pctl/pctl.cpp |
| 203 | hle/service/pctl/pctl.h | 205 | hle/service/pctl/pctl.h |
| 206 | hle/service/pm/pm.cpp | ||
| 207 | hle/service/pm/pm.h | ||
| 204 | hle/service/prepo/prepo.cpp | 208 | hle/service/prepo/prepo.cpp |
| 205 | hle/service/prepo/prepo.h | 209 | hle/service/prepo/prepo.h |
| 206 | hle/service/service.cpp | 210 | hle/service/service.cpp |
diff --git a/src/core/hle/service/erpt/erpt.cpp b/src/core/hle/service/erpt/erpt.cpp new file mode 100644 index 000000000..ee11cd78e --- /dev/null +++ b/src/core/hle/service/erpt/erpt.cpp | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include <memory> | ||
| 6 | |||
| 7 | #include "core/hle/service/erpt/erpt.h" | ||
| 8 | #include "core/hle/service/service.h" | ||
| 9 | #include "core/hle/service/sm/sm.h" | ||
| 10 | |||
| 11 | namespace Service::ERPT { | ||
| 12 | |||
| 13 | class ErrorReportContext final : public ServiceFramework<ErrorReportContext> { | ||
| 14 | public: | ||
| 15 | explicit ErrorReportContext() : ServiceFramework{"erpt:c"} { | ||
| 16 | // clang-format off | ||
| 17 | static const FunctionInfo functions[] = { | ||
| 18 | {0, nullptr, "SubmitContext"}, | ||
| 19 | {1, nullptr, "CreateReport"}, | ||
| 20 | {2, nullptr, "Unknown1"}, | ||
| 21 | {3, nullptr, "Unknown2"}, | ||
| 22 | {4, nullptr, "Unknown3"}, | ||
| 23 | {5, nullptr, "Unknown4"}, | ||
| 24 | {6, nullptr, "Unknown5"}, | ||
| 25 | }; | ||
| 26 | // clang-format on | ||
| 27 | |||
| 28 | RegisterHandlers(functions); | ||
| 29 | } | ||
| 30 | }; | ||
| 31 | |||
| 32 | class ErrorReportSession final : public ServiceFramework<ErrorReportSession> { | ||
| 33 | public: | ||
| 34 | explicit ErrorReportSession() : ServiceFramework{"erpt:r"} { | ||
| 35 | // clang-format off | ||
| 36 | static const FunctionInfo functions[] = { | ||
| 37 | {0, nullptr, "OpenReport"}, | ||
| 38 | {1, nullptr, "OpenManager"}, | ||
| 39 | }; | ||
| 40 | // clang-format on | ||
| 41 | |||
| 42 | RegisterHandlers(functions); | ||
| 43 | } | ||
| 44 | }; | ||
| 45 | |||
| 46 | void InstallInterfaces(SM::ServiceManager& sm) { | ||
| 47 | std::make_shared<ErrorReportContext>()->InstallAsService(sm); | ||
| 48 | std::make_shared<ErrorReportSession>()->InstallAsService(sm); | ||
| 49 | } | ||
| 50 | |||
| 51 | } // namespace Service::ERPT | ||
diff --git a/src/core/hle/service/erpt/erpt.h b/src/core/hle/service/erpt/erpt.h new file mode 100644 index 000000000..de439ab6d --- /dev/null +++ b/src/core/hle/service/erpt/erpt.h | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | namespace Service::SM { | ||
| 8 | class ServiceManager; | ||
| 9 | } | ||
| 10 | |||
| 11 | namespace Service::ERPT { | ||
| 12 | |||
| 13 | /// Registers all ERPT services with the specified service manager. | ||
| 14 | void InstallInterfaces(SM::ServiceManager& sm); | ||
| 15 | |||
| 16 | } // namespace Service::ERPT | ||
diff --git a/src/core/hle/service/es/es.cpp b/src/core/hle/service/es/es.cpp new file mode 100644 index 000000000..d40f18565 --- /dev/null +++ b/src/core/hle/service/es/es.cpp | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/hle/service/service.h" | ||
| 6 | |||
| 7 | namespace Service::ES { | ||
| 8 | |||
| 9 | class ETicket final : public ServiceFramework<ETicket> { | ||
| 10 | public: | ||
| 11 | explicit ETicket() : ServiceFramework{"es"} { | ||
| 12 | static const FunctionInfo functions[] = { | ||
| 13 | {1, nullptr, "ImportTicket"}, | ||
| 14 | {2, nullptr, "ImportTicketCertificateSet"}, | ||
| 15 | {3, nullptr, "DeleteTicket"}, | ||
| 16 | {4, nullptr, "DeletePersonalizedTicket"}, | ||
| 17 | {5, nullptr, "DeleteAllCommonTicket"}, | ||
| 18 | {6, nullptr, "DeleteAllPersonalizedTicket"}, | ||
| 19 | {7, nullptr, "DeleteAllPersonalizedTicketEx"}, | ||
| 20 | {8, nullptr, "GetTitleKey"}, | ||
| 21 | {9, nullptr, "CountCommonTicket"}, | ||
| 22 | {10, nullptr, "CountPersonalizedTicket"}, | ||
| 23 | {11, nullptr, "ListCommonTicket"}, | ||
| 24 | {12, nullptr, "ListPersonalizedTicket"}, | ||
| 25 | {13, nullptr, "ListMissingPersonalizedTicket"}, | ||
| 26 | {14, nullptr, "GetCommonTicketSize"}, | ||
| 27 | {15, nullptr, "GetPersonalizedTicketSize"}, | ||
| 28 | {16, nullptr, "GetCommonTicketData"}, | ||
| 29 | {17, nullptr, "GetPersonalizedTicketData"}, | ||
| 30 | {18, nullptr, "OwnTicket"}, | ||
| 31 | {19, nullptr, "GetTicketInfo"}, | ||
| 32 | {20, nullptr, "ListLightTicketInfo"}, | ||
| 33 | {21, nullptr, "SignData"}, | ||
| 34 | {22, nullptr, "GetCommonTicketAndCertificateSize"}, | ||
| 35 | {23, nullptr, "GetCommonTicketAndCertificateData"}, | ||
| 36 | {24, nullptr, "ImportPrepurchaseRecord"}, | ||
| 37 | {25, nullptr, "DeletePrepurchaseRecord"}, | ||
| 38 | {26, nullptr, "DeleteAllPrepurchaseRecord"}, | ||
| 39 | {27, nullptr, "CountPrepurchaseRecord"}, | ||
| 40 | {28, nullptr, "ListPrepurchaseRecord"}, | ||
| 41 | {29, nullptr, "ListPrepurchaseRecordInfo"}, | ||
| 42 | {30, nullptr, "Unknown1"}, | ||
| 43 | {31, nullptr, "Unknown2"}, | ||
| 44 | {32, nullptr, "Unknown3"}, | ||
| 45 | {33, nullptr, "Unknown4"}, | ||
| 46 | {34, nullptr, "Unknown5"}, | ||
| 47 | {35, nullptr, "Unknown6"}, | ||
| 48 | }; | ||
| 49 | RegisterHandlers(functions); | ||
| 50 | } | ||
| 51 | }; | ||
| 52 | |||
| 53 | void InstallInterfaces(SM::ServiceManager& service_manager) { | ||
| 54 | std::make_shared<ETicket>()->InstallAsService(service_manager); | ||
| 55 | } | ||
| 56 | |||
| 57 | } // namespace Service::ES | ||
diff --git a/src/core/hle/service/es/es.h b/src/core/hle/service/es/es.h new file mode 100644 index 000000000..afe70465b --- /dev/null +++ b/src/core/hle/service/es/es.h | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | namespace Service::SM { | ||
| 8 | class ServiceManager; | ||
| 9 | } | ||
| 10 | |||
| 11 | namespace Service::ES { | ||
| 12 | |||
| 13 | /// Registers all ES services with the specified service manager. | ||
| 14 | void InstallInterfaces(SM::ServiceManager& service_manager); | ||
| 15 | |||
| 16 | } // namespace Service::ES | ||
diff --git a/src/core/hle/service/eupld/eupld.cpp b/src/core/hle/service/eupld/eupld.cpp new file mode 100644 index 000000000..2df30acee --- /dev/null +++ b/src/core/hle/service/eupld/eupld.cpp | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include <memory> | ||
| 6 | |||
| 7 | #include "core/hle/service/eupld/eupld.h" | ||
| 8 | #include "core/hle/service/service.h" | ||
| 9 | #include "core/hle/service/sm/sm.h" | ||
| 10 | |||
| 11 | namespace Service::EUPLD { | ||
| 12 | |||
| 13 | class ErrorUploadContext final : public ServiceFramework<ErrorUploadContext> { | ||
| 14 | public: | ||
| 15 | explicit ErrorUploadContext() : ServiceFramework{"eupld:c"} { | ||
| 16 | // clang-format off | ||
| 17 | static const FunctionInfo functions[] = { | ||
| 18 | {0, nullptr, "SetUrl"}, | ||
| 19 | {1, nullptr, "ImportCrt"}, | ||
| 20 | {2, nullptr, "ImportPki"}, | ||
| 21 | {3, nullptr, "SetAutoUpload"}, | ||
| 22 | }; | ||
| 23 | // clang-format on | ||
| 24 | |||
| 25 | RegisterHandlers(functions); | ||
| 26 | } | ||
| 27 | }; | ||
| 28 | |||
| 29 | class ErrorUploadRequest final : public ServiceFramework<ErrorUploadRequest> { | ||
| 30 | public: | ||
| 31 | explicit ErrorUploadRequest() : ServiceFramework{"eupld:r"} { | ||
| 32 | // clang-format off | ||
| 33 | static const FunctionInfo functions[] = { | ||
| 34 | {0, nullptr, "Initialize"}, | ||
| 35 | {1, nullptr, "UploadAll"}, | ||
| 36 | {2, nullptr, "UploadSelected"}, | ||
| 37 | {3, nullptr, "GetUploadStatus"}, | ||
| 38 | {4, nullptr, "CancelUpload"}, | ||
| 39 | {5, nullptr, "GetResult"}, | ||
| 40 | }; | ||
| 41 | // clang-format on | ||
| 42 | |||
| 43 | RegisterHandlers(functions); | ||
| 44 | } | ||
| 45 | }; | ||
| 46 | |||
| 47 | void InstallInterfaces(SM::ServiceManager& sm) { | ||
| 48 | std::make_shared<ErrorUploadContext>()->InstallAsService(sm); | ||
| 49 | std::make_shared<ErrorUploadRequest>()->InstallAsService(sm); | ||
| 50 | } | ||
| 51 | |||
| 52 | } // namespace Service::EUPLD | ||
diff --git a/src/core/hle/service/eupld/eupld.h b/src/core/hle/service/eupld/eupld.h new file mode 100644 index 000000000..6eef2c15f --- /dev/null +++ b/src/core/hle/service/eupld/eupld.h | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | namespace Service::SM { | ||
| 8 | class ServiceManager; | ||
| 9 | } | ||
| 10 | |||
| 11 | namespace Service::EUPLD { | ||
| 12 | |||
| 13 | /// Registers all EUPLD services with the specified service manager. | ||
| 14 | void InstallInterfaces(SM::ServiceManager& sm); | ||
| 15 | |||
| 16 | } // namespace Service::EUPLD | ||
diff --git a/src/core/hle/service/ldr/ldr.cpp b/src/core/hle/service/ldr/ldr.cpp new file mode 100644 index 000000000..ec32faf15 --- /dev/null +++ b/src/core/hle/service/ldr/ldr.cpp | |||
| @@ -0,0 +1,81 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include <memory> | ||
| 6 | |||
| 7 | #include "core/hle/service/ldr/ldr.h" | ||
| 8 | #include "core/hle/service/service.h" | ||
| 9 | |||
| 10 | namespace Service::LDR { | ||
| 11 | |||
| 12 | class DebugMonitor final : public ServiceFramework<DebugMonitor> { | ||
| 13 | public: | ||
| 14 | explicit DebugMonitor() : ServiceFramework{"ldr:dmnt"} { | ||
| 15 | // clang-format off | ||
| 16 | static const FunctionInfo functions[] = { | ||
| 17 | {0, nullptr, "AddProcessToDebugLaunchQueue"}, | ||
| 18 | {1, nullptr, "ClearDebugLaunchQueue"}, | ||
| 19 | {2, nullptr, "GetNsoInfos"}, | ||
| 20 | }; | ||
| 21 | // clang-format on | ||
| 22 | |||
| 23 | RegisterHandlers(functions); | ||
| 24 | } | ||
| 25 | }; | ||
| 26 | |||
| 27 | class ProcessManager final : public ServiceFramework<ProcessManager> { | ||
| 28 | public: | ||
| 29 | explicit ProcessManager() : ServiceFramework{"ldr:pm"} { | ||
| 30 | // clang-format off | ||
| 31 | static const FunctionInfo functions[] = { | ||
| 32 | {0, nullptr, "CreateProcess"}, | ||
| 33 | {1, nullptr, "GetProgramInfo"}, | ||
| 34 | {2, nullptr, "RegisterTitle"}, | ||
| 35 | {3, nullptr, "UnregisterTitle"}, | ||
| 36 | }; | ||
| 37 | // clang-format on | ||
| 38 | |||
| 39 | RegisterHandlers(functions); | ||
| 40 | } | ||
| 41 | }; | ||
| 42 | |||
| 43 | class Shell final : public ServiceFramework<Shell> { | ||
| 44 | public: | ||
| 45 | explicit Shell() : ServiceFramework{"ldr:shel"} { | ||
| 46 | // clang-format off | ||
| 47 | static const FunctionInfo functions[] = { | ||
| 48 | {0, nullptr, "AddProcessToLaunchQueue"}, | ||
| 49 | {1, nullptr, "ClearLaunchQueue"}, | ||
| 50 | }; | ||
| 51 | // clang-format on | ||
| 52 | |||
| 53 | RegisterHandlers(functions); | ||
| 54 | } | ||
| 55 | }; | ||
| 56 | |||
| 57 | class RelocatableObject final : public ServiceFramework<RelocatableObject> { | ||
| 58 | public: | ||
| 59 | explicit RelocatableObject() : ServiceFramework{"ldr:ro"} { | ||
| 60 | // clang-format off | ||
| 61 | static const FunctionInfo functions[] = { | ||
| 62 | {0, nullptr, "LoadNro"}, | ||
| 63 | {1, nullptr, "UnloadNro"}, | ||
| 64 | {2, nullptr, "LoadNrr"}, | ||
| 65 | {3, nullptr, "UnloadNrr"}, | ||
| 66 | {4, nullptr, "Initialize"}, | ||
| 67 | }; | ||
| 68 | // clang-format on | ||
| 69 | |||
| 70 | RegisterHandlers(functions); | ||
| 71 | } | ||
| 72 | }; | ||
| 73 | |||
| 74 | void InstallInterfaces(SM::ServiceManager& sm) { | ||
| 75 | std::make_shared<DebugMonitor>()->InstallAsService(sm); | ||
| 76 | std::make_shared<ProcessManager>()->InstallAsService(sm); | ||
| 77 | std::make_shared<Shell>()->InstallAsService(sm); | ||
| 78 | std::make_shared<RelocatableObject>()->InstallAsService(sm); | ||
| 79 | } | ||
| 80 | |||
| 81 | } // namespace Service::LDR | ||
diff --git a/src/core/hle/service/ldr/ldr.h b/src/core/hle/service/ldr/ldr.h new file mode 100644 index 000000000..412410c4f --- /dev/null +++ b/src/core/hle/service/ldr/ldr.h | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | namespace Service::SM { | ||
| 8 | class ServiceManager; | ||
| 9 | } | ||
| 10 | |||
| 11 | namespace Service::LDR { | ||
| 12 | |||
| 13 | /// Registers all LDR services with the specified service manager. | ||
| 14 | void InstallInterfaces(SM::ServiceManager& sm); | ||
| 15 | |||
| 16 | } // namespace Service::LDR | ||
diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp index 0d951084b..cfe8d9178 100644 --- a/src/core/hle/service/nifm/nifm.cpp +++ b/src/core/hle/service/nifm/nifm.cpp | |||
| @@ -5,9 +5,7 @@ | |||
| 5 | #include "core/hle/ipc_helpers.h" | 5 | #include "core/hle/ipc_helpers.h" |
| 6 | #include "core/hle/kernel/event.h" | 6 | #include "core/hle/kernel/event.h" |
| 7 | #include "core/hle/service/nifm/nifm.h" | 7 | #include "core/hle/service/nifm/nifm.h" |
| 8 | #include "core/hle/service/nifm/nifm_a.h" | 8 | #include "core/hle/service/service.h" |
| 9 | #include "core/hle/service/nifm/nifm_s.h" | ||
| 10 | #include "core/hle/service/nifm/nifm_u.h" | ||
| 11 | 9 | ||
| 12 | namespace Service::NIFM { | 10 | namespace Service::NIFM { |
| 13 | 11 | ||
| @@ -210,28 +208,35 @@ IGeneralService::IGeneralService() : ServiceFramework("IGeneralService") { | |||
| 210 | RegisterHandlers(functions); | 208 | RegisterHandlers(functions); |
| 211 | } | 209 | } |
| 212 | 210 | ||
| 213 | void Module::Interface::CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) { | 211 | class NetworkInterface final : public ServiceFramework<NetworkInterface> { |
| 214 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | 212 | public: |
| 215 | rb.Push(RESULT_SUCCESS); | 213 | explicit NetworkInterface(const char* name) : ServiceFramework{name} { |
| 216 | rb.PushIpcInterface<IGeneralService>(); | 214 | static const FunctionInfo functions[] = { |
| 217 | LOG_DEBUG(Service_NIFM, "called"); | 215 | {4, &NetworkInterface::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, |
| 218 | } | 216 | {5, &NetworkInterface::CreateGeneralService, "CreateGeneralService"}, |
| 217 | }; | ||
| 218 | RegisterHandlers(functions); | ||
| 219 | } | ||
| 219 | 220 | ||
| 220 | void Module::Interface::CreateGeneralService(Kernel::HLERequestContext& ctx) { | 221 | void CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) { |
| 221 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | 222 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
| 222 | rb.Push(RESULT_SUCCESS); | 223 | rb.Push(RESULT_SUCCESS); |
| 223 | rb.PushIpcInterface<IGeneralService>(); | 224 | rb.PushIpcInterface<IGeneralService>(); |
| 224 | LOG_DEBUG(Service_NIFM, "called"); | 225 | LOG_DEBUG(Service_NIFM, "called"); |
| 225 | } | 226 | } |
| 226 | 227 | ||
| 227 | Module::Interface::Interface(std::shared_ptr<Module> module, const char* name) | 228 | void CreateGeneralService(Kernel::HLERequestContext& ctx) { |
| 228 | : ServiceFramework(name), module(std::move(module)) {} | 229 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
| 230 | rb.Push(RESULT_SUCCESS); | ||
| 231 | rb.PushIpcInterface<IGeneralService>(); | ||
| 232 | LOG_DEBUG(Service_NIFM, "called"); | ||
| 233 | } | ||
| 234 | }; | ||
| 229 | 235 | ||
| 230 | void InstallInterfaces(SM::ServiceManager& service_manager) { | 236 | void InstallInterfaces(SM::ServiceManager& service_manager) { |
| 231 | auto module = std::make_shared<Module>(); | 237 | std::make_shared<NetworkInterface>("nifm:a")->InstallAsService(service_manager); |
| 232 | std::make_shared<NIFM_A>(module)->InstallAsService(service_manager); | 238 | std::make_shared<NetworkInterface>("nifm:s")->InstallAsService(service_manager); |
| 233 | std::make_shared<NIFM_S>(module)->InstallAsService(service_manager); | 239 | std::make_shared<NetworkInterface>("nifm:u")->InstallAsService(service_manager); |
| 234 | std::make_shared<NIFM_U>(module)->InstallAsService(service_manager); | ||
| 235 | } | 240 | } |
| 236 | 241 | ||
| 237 | } // namespace Service::NIFM | 242 | } // namespace Service::NIFM |
diff --git a/src/core/hle/service/nifm/nifm.h b/src/core/hle/service/nifm/nifm.h index 11f1b5831..4616b3b48 100644 --- a/src/core/hle/service/nifm/nifm.h +++ b/src/core/hle/service/nifm/nifm.h | |||
| @@ -4,24 +4,13 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "core/hle/service/service.h" | 7 | namespace Service::SM { |
| 8 | class ServiceManager; | ||
| 9 | } | ||
| 8 | 10 | ||
| 9 | namespace Service::NIFM { | 11 | namespace Service::NIFM { |
| 10 | 12 | ||
| 11 | class Module final { | 13 | /// Registers all NIFM services with the specified service manager. |
| 12 | public: | ||
| 13 | class Interface : public ServiceFramework<Interface> { | ||
| 14 | public: | ||
| 15 | explicit Interface(std::shared_ptr<Module> module, const char* name); | ||
| 16 | |||
| 17 | void CreateGeneralServiceOld(Kernel::HLERequestContext& ctx); | ||
| 18 | void CreateGeneralService(Kernel::HLERequestContext& ctx); | ||
| 19 | |||
| 20 | protected: | ||
| 21 | std::shared_ptr<Module> module; | ||
| 22 | }; | ||
| 23 | }; | ||
| 24 | |||
| 25 | void InstallInterfaces(SM::ServiceManager& service_manager); | 14 | void InstallInterfaces(SM::ServiceManager& service_manager); |
| 26 | 15 | ||
| 27 | } // namespace Service::NIFM | 16 | } // namespace Service::NIFM |
diff --git a/src/core/hle/service/nifm/nifm_a.cpp b/src/core/hle/service/nifm/nifm_a.cpp deleted file mode 100644 index b7f296a20..000000000 --- a/src/core/hle/service/nifm/nifm_a.cpp +++ /dev/null | |||
| @@ -1,17 +0,0 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/hle/service/nifm/nifm_a.h" | ||
| 6 | |||
| 7 | namespace Service::NIFM { | ||
| 8 | |||
| 9 | NIFM_A::NIFM_A(std::shared_ptr<Module> module) : Module::Interface(std::move(module), "nifm:a") { | ||
| 10 | static const FunctionInfo functions[] = { | ||
| 11 | {4, &NIFM_A::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, | ||
| 12 | {5, &NIFM_A::CreateGeneralService, "CreateGeneralService"}, | ||
| 13 | }; | ||
| 14 | RegisterHandlers(functions); | ||
| 15 | } | ||
| 16 | |||
| 17 | } // namespace Service::NIFM | ||
diff --git a/src/core/hle/service/nifm/nifm_a.h b/src/core/hle/service/nifm/nifm_a.h deleted file mode 100644 index c3ba33110..000000000 --- a/src/core/hle/service/nifm/nifm_a.h +++ /dev/null | |||
| @@ -1,16 +0,0 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "core/hle/service/nifm/nifm.h" | ||
| 8 | |||
| 9 | namespace Service::NIFM { | ||
| 10 | |||
| 11 | class NIFM_A final : public Module::Interface { | ||
| 12 | public: | ||
| 13 | explicit NIFM_A(std::shared_ptr<Module> module); | ||
| 14 | }; | ||
| 15 | |||
| 16 | } // namespace Service::NIFM | ||
diff --git a/src/core/hle/service/nifm/nifm_s.cpp b/src/core/hle/service/nifm/nifm_s.cpp deleted file mode 100644 index 96e3c0cee..000000000 --- a/src/core/hle/service/nifm/nifm_s.cpp +++ /dev/null | |||
| @@ -1,17 +0,0 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/hle/service/nifm/nifm_s.h" | ||
| 6 | |||
| 7 | namespace Service::NIFM { | ||
| 8 | |||
| 9 | NIFM_S::NIFM_S(std::shared_ptr<Module> module) : Module::Interface(std::move(module), "nifm:s") { | ||
| 10 | static const FunctionInfo functions[] = { | ||
| 11 | {4, &NIFM_S::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, | ||
| 12 | {5, &NIFM_S::CreateGeneralService, "CreateGeneralService"}, | ||
| 13 | }; | ||
| 14 | RegisterHandlers(functions); | ||
| 15 | } | ||
| 16 | |||
| 17 | } // namespace Service::NIFM | ||
diff --git a/src/core/hle/service/nifm/nifm_s.h b/src/core/hle/service/nifm/nifm_s.h deleted file mode 100644 index 8d1635a5d..000000000 --- a/src/core/hle/service/nifm/nifm_s.h +++ /dev/null | |||
| @@ -1,16 +0,0 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "core/hle/service/nifm/nifm.h" | ||
| 8 | |||
| 9 | namespace Service::NIFM { | ||
| 10 | |||
| 11 | class NIFM_S final : public Module::Interface { | ||
| 12 | public: | ||
| 13 | explicit NIFM_S(std::shared_ptr<Module> module); | ||
| 14 | }; | ||
| 15 | |||
| 16 | } // namespace Service::NIFM | ||
diff --git a/src/core/hle/service/nifm/nifm_u.cpp b/src/core/hle/service/nifm/nifm_u.cpp deleted file mode 100644 index 8cb75b903..000000000 --- a/src/core/hle/service/nifm/nifm_u.cpp +++ /dev/null | |||
| @@ -1,17 +0,0 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/hle/service/nifm/nifm_u.h" | ||
| 6 | |||
| 7 | namespace Service::NIFM { | ||
| 8 | |||
| 9 | NIFM_U::NIFM_U(std::shared_ptr<Module> module) : Module::Interface(std::move(module), "nifm:u") { | ||
| 10 | static const FunctionInfo functions[] = { | ||
| 11 | {4, &NIFM_U::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, | ||
| 12 | {5, &NIFM_U::CreateGeneralService, "CreateGeneralService"}, | ||
| 13 | }; | ||
| 14 | RegisterHandlers(functions); | ||
| 15 | } | ||
| 16 | |||
| 17 | } // namespace Service::NIFM | ||
diff --git a/src/core/hle/service/nifm/nifm_u.h b/src/core/hle/service/nifm/nifm_u.h deleted file mode 100644 index def9726b1..000000000 --- a/src/core/hle/service/nifm/nifm_u.h +++ /dev/null | |||
| @@ -1,16 +0,0 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "core/hle/service/nifm/nifm.h" | ||
| 8 | |||
| 9 | namespace Service::NIFM { | ||
| 10 | |||
| 11 | class NIFM_U final : public Module::Interface { | ||
| 12 | public: | ||
| 13 | explicit NIFM_U(std::shared_ptr<Module> module); | ||
| 14 | }; | ||
| 15 | |||
| 16 | } // namespace Service::NIFM | ||
diff --git a/src/core/hle/service/nvdrv/nvdrv.cpp b/src/core/hle/service/nvdrv/nvdrv.cpp index cc5cfe34e..1555ea806 100644 --- a/src/core/hle/service/nvdrv/nvdrv.cpp +++ b/src/core/hle/service/nvdrv/nvdrv.cpp | |||
| @@ -2,6 +2,8 @@ | |||
| 2 | // Licensed under GPLv2 or any later version | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #include <utility> | ||
| 6 | |||
| 5 | #include "core/hle/ipc_helpers.h" | 7 | #include "core/hle/ipc_helpers.h" |
| 6 | #include "core/hle/service/nvdrv/devices/nvdevice.h" | 8 | #include "core/hle/service/nvdrv/devices/nvdevice.h" |
| 7 | #include "core/hle/service/nvdrv/devices/nvdisp_disp0.h" | 9 | #include "core/hle/service/nvdrv/devices/nvdisp_disp0.h" |
| @@ -40,14 +42,14 @@ Module::Module() { | |||
| 40 | devices["/dev/nvhost-nvdec"] = std::make_shared<Devices::nvhost_nvdec>(); | 42 | devices["/dev/nvhost-nvdec"] = std::make_shared<Devices::nvhost_nvdec>(); |
| 41 | } | 43 | } |
| 42 | 44 | ||
| 43 | u32 Module::Open(std::string device_name) { | 45 | u32 Module::Open(const std::string& device_name) { |
| 44 | ASSERT_MSG(devices.find(device_name) != devices.end(), "Trying to open unknown device {}", | 46 | ASSERT_MSG(devices.find(device_name) != devices.end(), "Trying to open unknown device {}", |
| 45 | device_name); | 47 | device_name); |
| 46 | 48 | ||
| 47 | auto device = devices[device_name]; | 49 | auto device = devices[device_name]; |
| 48 | u32 fd = next_fd++; | 50 | const u32 fd = next_fd++; |
| 49 | 51 | ||
| 50 | open_files[fd] = device; | 52 | open_files[fd] = std::move(device); |
| 51 | 53 | ||
| 52 | return fd; | 54 | return fd; |
| 53 | } | 55 | } |
| @@ -56,7 +58,7 @@ u32 Module::Ioctl(u32 fd, u32_le command, const std::vector<u8>& input, std::vec | |||
| 56 | auto itr = open_files.find(fd); | 58 | auto itr = open_files.find(fd); |
| 57 | ASSERT_MSG(itr != open_files.end(), "Tried to talk to an invalid device"); | 59 | ASSERT_MSG(itr != open_files.end(), "Tried to talk to an invalid device"); |
| 58 | 60 | ||
| 59 | auto device = itr->second; | 61 | auto& device = itr->second; |
| 60 | return device->ioctl({command}, input, output); | 62 | return device->ioctl({command}, input, output); |
| 61 | } | 63 | } |
| 62 | 64 | ||
diff --git a/src/core/hle/service/nvdrv/nvdrv.h b/src/core/hle/service/nvdrv/nvdrv.h index 35b2c65fc..184f3c9fc 100644 --- a/src/core/hle/service/nvdrv/nvdrv.h +++ b/src/core/hle/service/nvdrv/nvdrv.h | |||
| @@ -38,7 +38,7 @@ public: | |||
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | /// Opens a device node and returns a file descriptor to it. | 40 | /// Opens a device node and returns a file descriptor to it. |
| 41 | u32 Open(std::string device_name); | 41 | u32 Open(const std::string& device_name); |
| 42 | /// Sends an ioctl command to the specified file descriptor. | 42 | /// Sends an ioctl command to the specified file descriptor. |
| 43 | u32 Ioctl(u32 fd, u32 command, const std::vector<u8>& input, std::vector<u8>& output); | 43 | u32 Ioctl(u32 fd, u32 command, const std::vector<u8>& input, std::vector<u8>& output); |
| 44 | /// Closes a device file descriptor and returns operation success. | 44 | /// Closes a device file descriptor and returns operation success. |
diff --git a/src/core/hle/service/pm/pm.cpp b/src/core/hle/service/pm/pm.cpp new file mode 100644 index 000000000..e20a25689 --- /dev/null +++ b/src/core/hle/service/pm/pm.cpp | |||
| @@ -0,0 +1,70 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/hle/service/service.h" | ||
| 6 | |||
| 7 | namespace Service::PM { | ||
| 8 | |||
| 9 | class BootMode final : public ServiceFramework<BootMode> { | ||
| 10 | public: | ||
| 11 | explicit BootMode() : ServiceFramework{"pm:bm"} { | ||
| 12 | static const FunctionInfo functions[] = { | ||
| 13 | {0, nullptr, "GetBootMode"}, | ||
| 14 | {1, nullptr, "SetMaintenanceBoot"}, | ||
| 15 | }; | ||
| 16 | RegisterHandlers(functions); | ||
| 17 | } | ||
| 18 | }; | ||
| 19 | |||
| 20 | class DebugMonitor final : public ServiceFramework<DebugMonitor> { | ||
| 21 | public: | ||
| 22 | explicit DebugMonitor() : ServiceFramework{"pm:dmnt"} { | ||
| 23 | static const FunctionInfo functions[] = { | ||
| 24 | {0, nullptr, "IsDebugMode"}, | ||
| 25 | {1, nullptr, "GetDebugProcesses"}, | ||
| 26 | {2, nullptr, "StartDebugProcess"}, | ||
| 27 | {3, nullptr, "GetTitlePid"}, | ||
| 28 | {4, nullptr, "EnableDebugForTitleId"}, | ||
| 29 | {5, nullptr, "GetApplicationPid"}, | ||
| 30 | {6, nullptr, "EnableDebugForApplication"}, | ||
| 31 | }; | ||
| 32 | RegisterHandlers(functions); | ||
| 33 | } | ||
| 34 | }; | ||
| 35 | |||
| 36 | class Info final : public ServiceFramework<Info> { | ||
| 37 | public: | ||
| 38 | explicit Info() : ServiceFramework{"pm:info"} { | ||
| 39 | static const FunctionInfo functions[] = { | ||
| 40 | {0, nullptr, "GetTitleId"}, | ||
| 41 | }; | ||
| 42 | RegisterHandlers(functions); | ||
| 43 | } | ||
| 44 | }; | ||
| 45 | |||
| 46 | class Shell final : public ServiceFramework<Shell> { | ||
| 47 | public: | ||
| 48 | explicit Shell() : ServiceFramework{"pm:shell"} { | ||
| 49 | static const FunctionInfo functions[] = { | ||
| 50 | {0, nullptr, "LaunchProcess"}, | ||
| 51 | {1, nullptr, "TerminateProcessByPid"}, | ||
| 52 | {2, nullptr, "TerminateProcessByTitleId"}, | ||
| 53 | {3, nullptr, "GetProcessEventWaiter"}, | ||
| 54 | {4, nullptr, "GetProcessEventType"}, | ||
| 55 | {5, nullptr, "NotifyBootFinished"}, | ||
| 56 | {6, nullptr, "GetApplicationPid"}, | ||
| 57 | {7, nullptr, "BoostSystemMemoryResourceLimit"}, | ||
| 58 | }; | ||
| 59 | RegisterHandlers(functions); | ||
| 60 | } | ||
| 61 | }; | ||
| 62 | |||
| 63 | void InstallInterfaces(SM::ServiceManager& sm) { | ||
| 64 | std::make_shared<BootMode>()->InstallAsService(sm); | ||
| 65 | std::make_shared<DebugMonitor>()->InstallAsService(sm); | ||
| 66 | std::make_shared<Info>()->InstallAsService(sm); | ||
| 67 | std::make_shared<Shell>()->InstallAsService(sm); | ||
| 68 | } | ||
| 69 | |||
| 70 | } // namespace Service::PM | ||
diff --git a/src/core/hle/service/pm/pm.h b/src/core/hle/service/pm/pm.h new file mode 100644 index 000000000..9fc19fed6 --- /dev/null +++ b/src/core/hle/service/pm/pm.h | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | namespace Service::SM { | ||
| 8 | class ServiceManager; | ||
| 9 | } | ||
| 10 | |||
| 11 | namespace Service::PM { | ||
| 12 | |||
| 13 | /// Registers all PM services with the specified service manager. | ||
| 14 | void InstallInterfaces(SM::ServiceManager& service_manager); | ||
| 15 | |||
| 16 | } // namespace Service::PM | ||
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index 0d036bfaa..482989ea7 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp | |||
| @@ -21,10 +21,14 @@ | |||
| 21 | #include "core/hle/service/apm/apm.h" | 21 | #include "core/hle/service/apm/apm.h" |
| 22 | #include "core/hle/service/audio/audio.h" | 22 | #include "core/hle/service/audio/audio.h" |
| 23 | #include "core/hle/service/bcat/bcat.h" | 23 | #include "core/hle/service/bcat/bcat.h" |
| 24 | #include "core/hle/service/erpt/erpt.h" | ||
| 25 | #include "core/hle/service/es/es.h" | ||
| 26 | #include "core/hle/service/eupld/eupld.h" | ||
| 24 | #include "core/hle/service/fatal/fatal.h" | 27 | #include "core/hle/service/fatal/fatal.h" |
| 25 | #include "core/hle/service/filesystem/filesystem.h" | 28 | #include "core/hle/service/filesystem/filesystem.h" |
| 26 | #include "core/hle/service/friend/friend.h" | 29 | #include "core/hle/service/friend/friend.h" |
| 27 | #include "core/hle/service/hid/hid.h" | 30 | #include "core/hle/service/hid/hid.h" |
| 31 | #include "core/hle/service/ldr/ldr.h" | ||
| 28 | #include "core/hle/service/lm/lm.h" | 32 | #include "core/hle/service/lm/lm.h" |
| 29 | #include "core/hle/service/mm/mm_u.h" | 33 | #include "core/hle/service/mm/mm_u.h" |
| 30 | #include "core/hle/service/nfp/nfp.h" | 34 | #include "core/hle/service/nfp/nfp.h" |
| @@ -32,6 +36,7 @@ | |||
| 32 | #include "core/hle/service/ns/ns.h" | 36 | #include "core/hle/service/ns/ns.h" |
| 33 | #include "core/hle/service/nvdrv/nvdrv.h" | 37 | #include "core/hle/service/nvdrv/nvdrv.h" |
| 34 | #include "core/hle/service/pctl/pctl.h" | 38 | #include "core/hle/service/pctl/pctl.h" |
| 39 | #include "core/hle/service/pm/pm.h" | ||
| 35 | #include "core/hle/service/prepo/prepo.h" | 40 | #include "core/hle/service/prepo/prepo.h" |
| 36 | #include "core/hle/service/service.h" | 41 | #include "core/hle/service/service.h" |
| 37 | #include "core/hle/service/set/settings.h" | 42 | #include "core/hle/service/set/settings.h" |
| @@ -187,10 +192,14 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) { | |||
| 187 | APM::InstallInterfaces(*sm); | 192 | APM::InstallInterfaces(*sm); |
| 188 | BCAT::InstallInterfaces(*sm); | 193 | BCAT::InstallInterfaces(*sm); |
| 189 | Audio::InstallInterfaces(*sm); | 194 | Audio::InstallInterfaces(*sm); |
| 195 | ERPT::InstallInterfaces(*sm); | ||
| 196 | ES::InstallInterfaces(*sm); | ||
| 197 | EUPLD::InstallInterfaces(*sm); | ||
| 190 | Fatal::InstallInterfaces(*sm); | 198 | Fatal::InstallInterfaces(*sm); |
| 191 | FileSystem::InstallInterfaces(*sm); | 199 | FileSystem::InstallInterfaces(*sm); |
| 192 | Friend::InstallInterfaces(*sm); | 200 | Friend::InstallInterfaces(*sm); |
| 193 | HID::InstallInterfaces(*sm); | 201 | HID::InstallInterfaces(*sm); |
| 202 | LDR::InstallInterfaces(*sm); | ||
| 194 | LM::InstallInterfaces(*sm); | 203 | LM::InstallInterfaces(*sm); |
| 195 | MM::InstallInterfaces(*sm); | 204 | MM::InstallInterfaces(*sm); |
| 196 | NFP::InstallInterfaces(*sm); | 205 | NFP::InstallInterfaces(*sm); |
| @@ -199,6 +208,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) { | |||
| 199 | Nvidia::InstallInterfaces(*sm); | 208 | Nvidia::InstallInterfaces(*sm); |
| 200 | PCTL::InstallInterfaces(*sm); | 209 | PCTL::InstallInterfaces(*sm); |
| 201 | PlayReport::InstallInterfaces(*sm); | 210 | PlayReport::InstallInterfaces(*sm); |
| 211 | PM::InstallInterfaces(*sm); | ||
| 202 | Sockets::InstallInterfaces(*sm); | 212 | Sockets::InstallInterfaces(*sm); |
| 203 | SPL::InstallInterfaces(*sm); | 213 | SPL::InstallInterfaces(*sm); |
| 204 | SSL::InstallInterfaces(*sm); | 214 | SSL::InstallInterfaces(*sm); |
diff --git a/src/yuzu/debugger/wait_tree.cpp b/src/yuzu/debugger/wait_tree.cpp index 416cc1dfa..2b45b8573 100644 --- a/src/yuzu/debugger/wait_tree.cpp +++ b/src/yuzu/debugger/wait_tree.cpp | |||
| @@ -209,6 +209,9 @@ QString WaitTreeThread::GetText() const { | |||
| 209 | case ThreadStatus::WaitSleep: | 209 | case ThreadStatus::WaitSleep: |
| 210 | status = tr("sleeping"); | 210 | status = tr("sleeping"); |
| 211 | break; | 211 | break; |
| 212 | case ThreadStatus::WaitIPC: | ||
| 213 | status = tr("waiting for IPC reply"); | ||
| 214 | break; | ||
| 212 | case ThreadStatus::WaitSynchAll: | 215 | case ThreadStatus::WaitSynchAll: |
| 213 | case ThreadStatus::WaitSynchAny: | 216 | case ThreadStatus::WaitSynchAny: |
| 214 | status = tr("waiting for objects"); | 217 | status = tr("waiting for objects"); |
| @@ -240,6 +243,7 @@ QColor WaitTreeThread::GetColor() const { | |||
| 240 | case ThreadStatus::Ready: | 243 | case ThreadStatus::Ready: |
| 241 | return QColor(Qt::GlobalColor::darkBlue); | 244 | return QColor(Qt::GlobalColor::darkBlue); |
| 242 | case ThreadStatus::WaitHLEEvent: | 245 | case ThreadStatus::WaitHLEEvent: |
| 246 | case ThreadStatus::WaitIPC: | ||
| 243 | return QColor(Qt::GlobalColor::darkRed); | 247 | return QColor(Qt::GlobalColor::darkRed); |
| 244 | case ThreadStatus::WaitSleep: | 248 | case ThreadStatus::WaitSleep: |
| 245 | return QColor(Qt::GlobalColor::darkYellow); | 249 | return QColor(Qt::GlobalColor::darkYellow); |