diff options
| author | 2024-02-11 20:02:41 -0500 | |
|---|---|---|
| committer | 2024-02-12 09:16:02 -0500 | |
| commit | 1c797a8048ccfab1322d61cad98fb4f2981721bf (patch) | |
| tree | 82226ec5ce06c57835da3abe380024d35ec6cea5 /src | |
| parent | am: rewrite ILibraryAppletAccessor (diff) | |
| download | yuzu-1c797a8048ccfab1322d61cad98fb4f2981721bf.tar.gz yuzu-1c797a8048ccfab1322d61cad98fb4f2981721bf.tar.xz yuzu-1c797a8048ccfab1322d61cad98fb4f2981721bf.zip | |
am: rewrite ILibraryAppletCreator
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/core/hle/service/am/library_applet_creator.h | 26 | ||||
| -rw-r--r-- | src/core/hle/service/am/service/application_proxy.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/service/am/service/library_applet_creator.cpp (renamed from src/core/hle/service/am/library_applet_creator.cpp) | 138 | ||||
| -rw-r--r-- | src/core/hle/service/am/service/library_applet_creator.h | 35 | ||||
| -rw-r--r-- | src/core/hle/service/am/service/library_applet_proxy.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/service/am/service/system_applet_proxy.cpp | 2 |
7 files changed, 88 insertions, 121 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index d763663e6..4f31e9c17 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -429,8 +429,6 @@ add_library(core STATIC | |||
| 429 | hle/service/am/hid_registration.h | 429 | hle/service/am/hid_registration.h |
| 430 | hle/service/am/idle.cpp | 430 | hle/service/am/idle.cpp |
| 431 | hle/service/am/idle.h | 431 | hle/service/am/idle.h |
| 432 | hle/service/am/library_applet_creator.cpp | ||
| 433 | hle/service/am/library_applet_creator.h | ||
| 434 | hle/service/am/library_applet_self_accessor.cpp | 432 | hle/service/am/library_applet_self_accessor.cpp |
| 435 | hle/service/am/library_applet_self_accessor.h | 433 | hle/service/am/library_applet_self_accessor.h |
| 436 | hle/service/am/library_applet_storage.cpp | 434 | hle/service/am/library_applet_storage.cpp |
| @@ -473,6 +471,8 @@ add_library(core STATIC | |||
| 473 | hle/service/am/service/home_menu_functions.h | 471 | hle/service/am/service/home_menu_functions.h |
| 474 | hle/service/am/service/library_applet_accessor.cpp | 472 | hle/service/am/service/library_applet_accessor.cpp |
| 475 | hle/service/am/service/library_applet_accessor.h | 473 | hle/service/am/service/library_applet_accessor.h |
| 474 | hle/service/am/service/library_applet_creator.cpp | ||
| 475 | hle/service/am/service/library_applet_creator.h | ||
| 476 | hle/service/am/service/library_applet_proxy.cpp | 476 | hle/service/am/service/library_applet_proxy.cpp |
| 477 | hle/service/am/service/library_applet_proxy.h | 477 | hle/service/am/service/library_applet_proxy.h |
| 478 | hle/service/am/service/system_applet_proxy.cpp | 478 | hle/service/am/service/system_applet_proxy.cpp |
diff --git a/src/core/hle/service/am/library_applet_creator.h b/src/core/hle/service/am/library_applet_creator.h deleted file mode 100644 index 551f287bd..000000000 --- a/src/core/hle/service/am/library_applet_creator.h +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project | ||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #include "core/hle/service/service.h" | ||
| 7 | |||
| 8 | namespace Service::AM { | ||
| 9 | |||
| 10 | struct Applet; | ||
| 11 | |||
| 12 | class ILibraryAppletCreator final : public ServiceFramework<ILibraryAppletCreator> { | ||
| 13 | public: | ||
| 14 | explicit ILibraryAppletCreator(Core::System& system_, std::shared_ptr<Applet> applet_); | ||
| 15 | ~ILibraryAppletCreator() override; | ||
| 16 | |||
| 17 | private: | ||
| 18 | void CreateLibraryApplet(HLERequestContext& ctx); | ||
| 19 | void CreateStorage(HLERequestContext& ctx); | ||
| 20 | void CreateTransferMemoryStorage(HLERequestContext& ctx); | ||
| 21 | void CreateHandleStorage(HLERequestContext& ctx); | ||
| 22 | |||
| 23 | const std::shared_ptr<Applet> applet; | ||
| 24 | }; | ||
| 25 | |||
| 26 | } // namespace Service::AM | ||
diff --git a/src/core/hle/service/am/service/application_proxy.cpp b/src/core/hle/service/am/service/application_proxy.cpp index 445f9b158..26a818f14 100644 --- a/src/core/hle/service/am/service/application_proxy.cpp +++ b/src/core/hle/service/am/service/application_proxy.cpp | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project | 1 | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project |
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | 2 | // SPDX-License-Identifier: GPL-2.0-or-later |
| 3 | 3 | ||
| 4 | #include "core/hle/service/am/library_applet_creator.h" | ||
| 5 | #include "core/hle/service/am/library_applet_self_accessor.h" | 4 | #include "core/hle/service/am/library_applet_self_accessor.h" |
| 6 | #include "core/hle/service/am/process_winding_controller.h" | 5 | #include "core/hle/service/am/process_winding_controller.h" |
| 7 | #include "core/hle/service/am/self_controller.h" | 6 | #include "core/hle/service/am/self_controller.h" |
| @@ -12,6 +11,7 @@ | |||
| 12 | #include "core/hle/service/am/service/common_state_getter.h" | 11 | #include "core/hle/service/am/service/common_state_getter.h" |
| 13 | #include "core/hle/service/am/service/debug_functions.h" | 12 | #include "core/hle/service/am/service/debug_functions.h" |
| 14 | #include "core/hle/service/am/service/display_controller.h" | 13 | #include "core/hle/service/am/service/display_controller.h" |
| 14 | #include "core/hle/service/am/service/library_applet_creator.h" | ||
| 15 | #include "core/hle/service/am/window_controller.h" | 15 | #include "core/hle/service/am/window_controller.h" |
| 16 | #include "core/hle/service/cmif_serialization.h" | 16 | #include "core/hle/service/cmif_serialization.h" |
| 17 | 17 | ||
diff --git a/src/core/hle/service/am/library_applet_creator.cpp b/src/core/hle/service/am/service/library_applet_creator.cpp index bc2e18e38..4d905549c 100644 --- a/src/core/hle/service/am/library_applet_creator.cpp +++ b/src/core/hle/service/am/service/library_applet_creator.cpp | |||
| @@ -6,11 +6,11 @@ | |||
| 6 | #include "core/hle/service/am/applet_data_broker.h" | 6 | #include "core/hle/service/am/applet_data_broker.h" |
| 7 | #include "core/hle/service/am/applet_manager.h" | 7 | #include "core/hle/service/am/applet_manager.h" |
| 8 | #include "core/hle/service/am/frontend/applets.h" | 8 | #include "core/hle/service/am/frontend/applets.h" |
| 9 | #include "core/hle/service/am/library_applet_creator.h" | ||
| 10 | #include "core/hle/service/am/library_applet_storage.h" | 9 | #include "core/hle/service/am/library_applet_storage.h" |
| 11 | #include "core/hle/service/am/service/library_applet_accessor.h" | 10 | #include "core/hle/service/am/service/library_applet_accessor.h" |
| 11 | #include "core/hle/service/am/service/library_applet_creator.h" | ||
| 12 | #include "core/hle/service/am/storage.h" | 12 | #include "core/hle/service/am/storage.h" |
| 13 | #include "core/hle/service/ipc_helpers.h" | 13 | #include "core/hle/service/cmif_serialization.h" |
| 14 | #include "core/hle/service/sm/sm.h" | 14 | #include "core/hle/service/sm/sm.h" |
| 15 | 15 | ||
| 16 | namespace Service::AM { | 16 | namespace Service::AM { |
| @@ -172,139 +172,97 @@ std::shared_ptr<ILibraryAppletAccessor> CreateFrontendApplet(Core::System& syste | |||
| 172 | 172 | ||
| 173 | } // namespace | 173 | } // namespace |
| 174 | 174 | ||
| 175 | ILibraryAppletCreator::ILibraryAppletCreator(Core::System& system_, std::shared_ptr<Applet> applet_) | 175 | ILibraryAppletCreator::ILibraryAppletCreator(Core::System& system_, std::shared_ptr<Applet> applet) |
| 176 | : ServiceFramework{system_, "ILibraryAppletCreator"}, applet{std::move(applet_)} { | 176 | : ServiceFramework{system_, "ILibraryAppletCreator"}, m_applet{std::move(applet)} { |
| 177 | static const FunctionInfo functions[] = { | 177 | static const FunctionInfo functions[] = { |
| 178 | {0, &ILibraryAppletCreator::CreateLibraryApplet, "CreateLibraryApplet"}, | 178 | {0, D<&ILibraryAppletCreator::CreateLibraryApplet>, "CreateLibraryApplet"}, |
| 179 | {1, nullptr, "TerminateAllLibraryApplets"}, | 179 | {1, nullptr, "TerminateAllLibraryApplets"}, |
| 180 | {2, nullptr, "AreAnyLibraryAppletsLeft"}, | 180 | {2, nullptr, "AreAnyLibraryAppletsLeft"}, |
| 181 | {10, &ILibraryAppletCreator::CreateStorage, "CreateStorage"}, | 181 | {10, D<&ILibraryAppletCreator::CreateStorage>, "CreateStorage"}, |
| 182 | {11, &ILibraryAppletCreator::CreateTransferMemoryStorage, "CreateTransferMemoryStorage"}, | 182 | {11, D<&ILibraryAppletCreator::CreateTransferMemoryStorage>, "CreateTransferMemoryStorage"}, |
| 183 | {12, &ILibraryAppletCreator::CreateHandleStorage, "CreateHandleStorage"}, | 183 | {12, D<&ILibraryAppletCreator::CreateHandleStorage>, "CreateHandleStorage"}, |
| 184 | }; | 184 | }; |
| 185 | RegisterHandlers(functions); | 185 | RegisterHandlers(functions); |
| 186 | } | 186 | } |
| 187 | 187 | ||
| 188 | ILibraryAppletCreator::~ILibraryAppletCreator() = default; | 188 | ILibraryAppletCreator::~ILibraryAppletCreator() = default; |
| 189 | 189 | ||
| 190 | void ILibraryAppletCreator::CreateLibraryApplet(HLERequestContext& ctx) { | 190 | Result ILibraryAppletCreator::CreateLibraryApplet( |
| 191 | IPC::RequestParser rp{ctx}; | 191 | Out<SharedPointer<ILibraryAppletAccessor>> out_library_applet_accessor, AppletId applet_id, |
| 192 | 192 | LibraryAppletMode library_applet_mode) { | |
| 193 | const auto applet_id = rp.PopRaw<AppletId>(); | 193 | LOG_DEBUG(Service_AM, "called with applet_id={} applet_mode={}", applet_id, |
| 194 | const auto applet_mode = rp.PopRaw<LibraryAppletMode>(); | 194 | library_applet_mode); |
| 195 | |||
| 196 | LOG_DEBUG(Service_AM, "called with applet_id={:08X}, applet_mode={:08X}", applet_id, | ||
| 197 | applet_mode); | ||
| 198 | 195 | ||
| 199 | std::shared_ptr<ILibraryAppletAccessor> library_applet; | 196 | std::shared_ptr<ILibraryAppletAccessor> library_applet; |
| 200 | if (ShouldCreateGuestApplet(applet_id)) { | 197 | if (ShouldCreateGuestApplet(applet_id)) { |
| 201 | library_applet = CreateGuestApplet(system, applet, applet_id, applet_mode); | 198 | library_applet = CreateGuestApplet(system, m_applet, applet_id, library_applet_mode); |
| 202 | } | 199 | } |
| 203 | if (!library_applet) { | 200 | if (!library_applet) { |
| 204 | library_applet = CreateFrontendApplet(system, applet, applet_id, applet_mode); | 201 | library_applet = CreateFrontendApplet(system, m_applet, applet_id, library_applet_mode); |
| 205 | } | 202 | } |
| 206 | if (!library_applet) { | 203 | if (!library_applet) { |
| 207 | LOG_ERROR(Service_AM, "Applet doesn't exist! applet_id={}", applet_id); | 204 | LOG_ERROR(Service_AM, "Applet doesn't exist! applet_id={}", applet_id); |
| 208 | 205 | R_THROW(ResultUnknown); | |
| 209 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 210 | rb.Push(ResultUnknown); | ||
| 211 | return; | ||
| 212 | } | 206 | } |
| 213 | 207 | ||
| 214 | // Applet is created, can now be launched. | 208 | // Applet is created, can now be launched. |
| 215 | applet->library_applet_launchable_event.Signal(); | 209 | m_applet->library_applet_launchable_event.Signal(); |
| 216 | 210 | *out_library_applet_accessor = library_applet; | |
| 217 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | 211 | R_SUCCEED(); |
| 218 | rb.Push(ResultSuccess); | ||
| 219 | rb.PushIpcInterface<ILibraryAppletAccessor>(library_applet); | ||
| 220 | } | 212 | } |
| 221 | 213 | ||
| 222 | void ILibraryAppletCreator::CreateStorage(HLERequestContext& ctx) { | 214 | Result ILibraryAppletCreator::CreateStorage(Out<SharedPointer<IStorage>> out_storage, s64 size) { |
| 223 | IPC::RequestParser rp{ctx}; | ||
| 224 | |||
| 225 | const s64 size{rp.Pop<s64>()}; | ||
| 226 | |||
| 227 | LOG_DEBUG(Service_AM, "called, size={}", size); | 215 | LOG_DEBUG(Service_AM, "called, size={}", size); |
| 228 | 216 | ||
| 229 | if (size <= 0) { | 217 | if (size <= 0) { |
| 230 | LOG_ERROR(Service_AM, "size is less than or equal to 0"); | 218 | LOG_ERROR(Service_AM, "size is less than or equal to 0"); |
| 231 | IPC::ResponseBuilder rb{ctx, 2}; | 219 | R_THROW(ResultUnknown); |
| 232 | rb.Push(ResultUnknown); | ||
| 233 | return; | ||
| 234 | } | 220 | } |
| 235 | 221 | ||
| 236 | std::vector<u8> data(size); | 222 | *out_storage = std::make_shared<IStorage>(system, AM::CreateStorage(std::vector<u8>(size))); |
| 237 | 223 | R_SUCCEED(); | |
| 238 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||
| 239 | rb.Push(ResultSuccess); | ||
| 240 | rb.PushIpcInterface<IStorage>(system, AM::CreateStorage(std::move(data))); | ||
| 241 | } | 224 | } |
| 242 | 225 | ||
| 243 | void ILibraryAppletCreator::CreateTransferMemoryStorage(HLERequestContext& ctx) { | 226 | Result ILibraryAppletCreator::CreateTransferMemoryStorage( |
| 244 | IPC::RequestParser rp{ctx}; | 227 | Out<SharedPointer<IStorage>> out_storage, bool is_writable, s64 size, |
| 245 | 228 | InCopyHandle<Kernel::KTransferMemory> transfer_memory_handle) { | |
| 246 | struct Parameters { | 229 | LOG_DEBUG(Service_AM, "called, is_writable={} size={}", is_writable, size); |
| 247 | bool is_writable; | ||
| 248 | s64 size; | ||
| 249 | }; | ||
| 250 | 230 | ||
| 251 | const auto params{rp.PopRaw<Parameters>()}; | 231 | if (size <= 0) { |
| 252 | const auto handle{ctx.GetCopyHandle(0)}; | ||
| 253 | |||
| 254 | LOG_DEBUG(Service_AM, "called, is_writable={}, size={}, handle={:08X}", params.is_writable, | ||
| 255 | params.size, handle); | ||
| 256 | |||
| 257 | if (params.size <= 0) { | ||
| 258 | LOG_ERROR(Service_AM, "size is less than or equal to 0"); | 232 | LOG_ERROR(Service_AM, "size is less than or equal to 0"); |
| 259 | IPC::ResponseBuilder rb{ctx, 2}; | 233 | R_THROW(ResultUnknown); |
| 260 | rb.Push(ResultUnknown); | ||
| 261 | return; | ||
| 262 | } | 234 | } |
| 263 | 235 | ||
| 264 | auto transfer_mem = ctx.GetObjectFromHandle<Kernel::KTransferMemory>(handle); | 236 | if (!transfer_memory_handle) { |
| 265 | 237 | LOG_ERROR(Service_AM, "transfer_memory_handle is null"); | |
| 266 | if (transfer_mem.IsNull()) { | 238 | R_THROW(ResultUnknown); |
| 267 | LOG_ERROR(Service_AM, "transfer_mem is a nullptr for handle={:08X}", handle); | ||
| 268 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 269 | rb.Push(ResultUnknown); | ||
| 270 | return; | ||
| 271 | } | 239 | } |
| 272 | 240 | ||
| 273 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | 241 | *out_storage = std::make_shared<IStorage>( |
| 274 | rb.Push(ResultSuccess); | 242 | system, AM::CreateTransferMemoryStorage(transfer_memory_handle->GetOwner()->GetMemory(), |
| 275 | rb.PushIpcInterface<IStorage>( | 243 | transfer_memory_handle.Get(), is_writable, size)); |
| 276 | system, AM::CreateTransferMemoryStorage(ctx.GetMemory(), transfer_mem.GetPointerUnsafe(), | 244 | R_SUCCEED(); |
| 277 | params.is_writable, params.size)); | ||
| 278 | } | 245 | } |
| 279 | 246 | ||
| 280 | void ILibraryAppletCreator::CreateHandleStorage(HLERequestContext& ctx) { | 247 | Result ILibraryAppletCreator::CreateHandleStorage( |
| 281 | IPC::RequestParser rp{ctx}; | 248 | Out<SharedPointer<IStorage>> out_storage, s64 size, |
| 282 | 249 | InCopyHandle<Kernel::KTransferMemory> transfer_memory_handle) { | |
| 283 | const s64 size{rp.Pop<s64>()}; | 250 | LOG_DEBUG(Service_AM, "called, size={}", size); |
| 284 | const auto handle{ctx.GetCopyHandle(0)}; | ||
| 285 | |||
| 286 | LOG_DEBUG(Service_AM, "called, size={}, handle={:08X}", size, handle); | ||
| 287 | 251 | ||
| 288 | if (size <= 0) { | 252 | if (size <= 0) { |
| 289 | LOG_ERROR(Service_AM, "size is less than or equal to 0"); | 253 | LOG_ERROR(Service_AM, "size is less than or equal to 0"); |
| 290 | IPC::ResponseBuilder rb{ctx, 2}; | 254 | R_THROW(ResultUnknown); |
| 291 | rb.Push(ResultUnknown); | ||
| 292 | return; | ||
| 293 | } | 255 | } |
| 294 | 256 | ||
| 295 | auto transfer_mem = ctx.GetObjectFromHandle<Kernel::KTransferMemory>(handle); | 257 | if (!transfer_memory_handle) { |
| 296 | 258 | LOG_ERROR(Service_AM, "transfer_memory_handle is null"); | |
| 297 | if (transfer_mem.IsNull()) { | 259 | R_THROW(ResultUnknown); |
| 298 | LOG_ERROR(Service_AM, "transfer_mem is a nullptr for handle={:08X}", handle); | ||
| 299 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 300 | rb.Push(ResultUnknown); | ||
| 301 | return; | ||
| 302 | } | 260 | } |
| 303 | 261 | ||
| 304 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | 262 | *out_storage = std::make_shared<IStorage>( |
| 305 | rb.Push(ResultSuccess); | 263 | system, AM::CreateHandleStorage(transfer_memory_handle->GetOwner()->GetMemory(), |
| 306 | rb.PushIpcInterface<IStorage>( | 264 | transfer_memory_handle.Get(), size)); |
| 307 | system, AM::CreateHandleStorage(ctx.GetMemory(), transfer_mem.GetPointerUnsafe(), size)); | 265 | R_SUCCEED(); |
| 308 | } | 266 | } |
| 309 | 267 | ||
| 310 | } // namespace Service::AM | 268 | } // namespace Service::AM |
diff --git a/src/core/hle/service/am/service/library_applet_creator.h b/src/core/hle/service/am/service/library_applet_creator.h new file mode 100644 index 000000000..fe6d40eb3 --- /dev/null +++ b/src/core/hle/service/am/service/library_applet_creator.h | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project | ||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #include "core/hle/service/am/am_types.h" | ||
| 7 | #include "core/hle/service/cmif_types.h" | ||
| 8 | #include "core/hle/service/service.h" | ||
| 9 | |||
| 10 | namespace Service::AM { | ||
| 11 | |||
| 12 | struct Applet; | ||
| 13 | class ILibraryAppletAccessor; | ||
| 14 | class IStorage; | ||
| 15 | |||
| 16 | class ILibraryAppletCreator final : public ServiceFramework<ILibraryAppletCreator> { | ||
| 17 | public: | ||
| 18 | explicit ILibraryAppletCreator(Core::System& system_, std::shared_ptr<Applet> applet); | ||
| 19 | ~ILibraryAppletCreator() override; | ||
| 20 | |||
| 21 | private: | ||
| 22 | Result CreateLibraryApplet( | ||
| 23 | Out<SharedPointer<ILibraryAppletAccessor>> out_library_applet_accessor, AppletId applet_id, | ||
| 24 | LibraryAppletMode library_applet_mode); | ||
| 25 | Result CreateStorage(Out<SharedPointer<IStorage>> out_storage, s64 size); | ||
| 26 | Result CreateTransferMemoryStorage( | ||
| 27 | Out<SharedPointer<IStorage>> out_storage, bool is_writable, s64 size, | ||
| 28 | InCopyHandle<Kernel::KTransferMemory> transfer_memory_handle); | ||
| 29 | Result CreateHandleStorage(Out<SharedPointer<IStorage>> out_storage, s64 size, | ||
| 30 | InCopyHandle<Kernel::KTransferMemory> transfer_memory_handle); | ||
| 31 | |||
| 32 | const std::shared_ptr<Applet> m_applet; | ||
| 33 | }; | ||
| 34 | |||
| 35 | } // namespace Service::AM | ||
diff --git a/src/core/hle/service/am/service/library_applet_proxy.cpp b/src/core/hle/service/am/service/library_applet_proxy.cpp index cf1a34db2..f1a13a331 100644 --- a/src/core/hle/service/am/service/library_applet_proxy.cpp +++ b/src/core/hle/service/am/service/library_applet_proxy.cpp | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project | 1 | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project |
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | 2 | // SPDX-License-Identifier: GPL-2.0-or-later |
| 3 | 3 | ||
| 4 | #include "core/hle/service/am/library_applet_creator.h" | ||
| 5 | #include "core/hle/service/am/library_applet_self_accessor.h" | 4 | #include "core/hle/service/am/library_applet_self_accessor.h" |
| 6 | #include "core/hle/service/am/process_winding_controller.h" | 5 | #include "core/hle/service/am/process_winding_controller.h" |
| 7 | #include "core/hle/service/am/self_controller.h" | 6 | #include "core/hle/service/am/self_controller.h" |
| @@ -12,6 +11,7 @@ | |||
| 12 | #include "core/hle/service/am/service/display_controller.h" | 11 | #include "core/hle/service/am/service/display_controller.h" |
| 13 | #include "core/hle/service/am/service/global_state_controller.h" | 12 | #include "core/hle/service/am/service/global_state_controller.h" |
| 14 | #include "core/hle/service/am/service/home_menu_functions.h" | 13 | #include "core/hle/service/am/service/home_menu_functions.h" |
| 14 | #include "core/hle/service/am/service/library_applet_creator.h" | ||
| 15 | #include "core/hle/service/am/service/library_applet_proxy.h" | 15 | #include "core/hle/service/am/service/library_applet_proxy.h" |
| 16 | #include "core/hle/service/am/window_controller.h" | 16 | #include "core/hle/service/am/window_controller.h" |
| 17 | #include "core/hle/service/cmif_serialization.h" | 17 | #include "core/hle/service/cmif_serialization.h" |
diff --git a/src/core/hle/service/am/service/system_applet_proxy.cpp b/src/core/hle/service/am/service/system_applet_proxy.cpp index 8fa852cfa..59d5b2a23 100644 --- a/src/core/hle/service/am/service/system_applet_proxy.cpp +++ b/src/core/hle/service/am/service/system_applet_proxy.cpp | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | 2 | // SPDX-License-Identifier: GPL-2.0-or-later |
| 3 | 3 | ||
| 4 | #include "core/hle/service/am/application_creator.h" | 4 | #include "core/hle/service/am/application_creator.h" |
| 5 | #include "core/hle/service/am/library_applet_creator.h" | ||
| 6 | #include "core/hle/service/am/library_applet_self_accessor.h" | 5 | #include "core/hle/service/am/library_applet_self_accessor.h" |
| 7 | #include "core/hle/service/am/process_winding_controller.h" | 6 | #include "core/hle/service/am/process_winding_controller.h" |
| 8 | #include "core/hle/service/am/self_controller.h" | 7 | #include "core/hle/service/am/self_controller.h" |
| @@ -13,6 +12,7 @@ | |||
| 13 | #include "core/hle/service/am/service/display_controller.h" | 12 | #include "core/hle/service/am/service/display_controller.h" |
| 14 | #include "core/hle/service/am/service/global_state_controller.h" | 13 | #include "core/hle/service/am/service/global_state_controller.h" |
| 15 | #include "core/hle/service/am/service/home_menu_functions.h" | 14 | #include "core/hle/service/am/service/home_menu_functions.h" |
| 15 | #include "core/hle/service/am/service/library_applet_creator.h" | ||
| 16 | #include "core/hle/service/am/service/system_applet_proxy.h" | 16 | #include "core/hle/service/am/service/system_applet_proxy.h" |
| 17 | #include "core/hle/service/am/window_controller.h" | 17 | #include "core/hle/service/am/window_controller.h" |
| 18 | #include "core/hle/service/cmif_serialization.h" | 18 | #include "core/hle/service/cmif_serialization.h" |