am: move out omm interfaces to new module
This commit is contained in:
		@@ -425,14 +425,10 @@ add_library(core STATIC
 | 
			
		||||
    hle/service/am/applet_message_queue.h
 | 
			
		||||
    hle/service/am/hid_registration.cpp
 | 
			
		||||
    hle/service/am/hid_registration.h
 | 
			
		||||
    hle/service/am/idle.cpp
 | 
			
		||||
    hle/service/am/idle.h
 | 
			
		||||
    hle/service/am/library_applet_storage.cpp
 | 
			
		||||
    hle/service/am/library_applet_storage.h
 | 
			
		||||
    hle/service/am/managed_layer_holder.cpp
 | 
			
		||||
    hle/service/am/managed_layer_holder.h
 | 
			
		||||
    hle/service/am/omm.cpp
 | 
			
		||||
    hle/service/am/omm.h
 | 
			
		||||
    hle/service/am/process.cpp
 | 
			
		||||
    hle/service/am/process.h
 | 
			
		||||
    hle/service/am/service/all_system_applet_proxies_service.cpp
 | 
			
		||||
@@ -487,8 +483,6 @@ add_library(core STATIC
 | 
			
		||||
    hle/service/am/service/window_controller.h
 | 
			
		||||
    hle/service/am/system_buffer_manager.cpp
 | 
			
		||||
    hle/service/am/system_buffer_manager.h
 | 
			
		||||
    hle/service/am/spsm.cpp
 | 
			
		||||
    hle/service/am/spsm.h
 | 
			
		||||
    hle/service/aoc/aoc_u.cpp
 | 
			
		||||
    hle/service/aoc/aoc_u.h
 | 
			
		||||
    hle/service/apm/apm.cpp
 | 
			
		||||
@@ -815,6 +809,14 @@ add_library(core STATIC
 | 
			
		||||
    hle/service/nvnflinger/window.h
 | 
			
		||||
    hle/service/olsc/olsc.cpp
 | 
			
		||||
    hle/service/olsc/olsc.h
 | 
			
		||||
    hle/service/omm/omm.cpp
 | 
			
		||||
    hle/service/omm/omm.h
 | 
			
		||||
    hle/service/omm/operation_mode_manager.cpp
 | 
			
		||||
    hle/service/omm/operation_mode_manager.h
 | 
			
		||||
    hle/service/omm/policy_manager_system.cpp
 | 
			
		||||
    hle/service/omm/policy_manager_system.h
 | 
			
		||||
    hle/service/omm/power_state_interface.cpp
 | 
			
		||||
    hle/service/omm/power_state_interface.h
 | 
			
		||||
    hle/service/os/event.cpp
 | 
			
		||||
    hle/service/os/event.h
 | 
			
		||||
    hle/service/os/multi_wait_holder.cpp
 | 
			
		||||
 
 | 
			
		||||
@@ -2,11 +2,8 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/am/am.h"
 | 
			
		||||
#include "core/hle/service/am/idle.h"
 | 
			
		||||
#include "core/hle/service/am/omm.h"
 | 
			
		||||
#include "core/hle/service/am/service/all_system_applet_proxies_service.h"
 | 
			
		||||
#include "core/hle/service/am/service/application_proxy_service.h"
 | 
			
		||||
#include "core/hle/service/am/spsm.h"
 | 
			
		||||
#include "core/hle/service/server_manager.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::AM {
 | 
			
		||||
@@ -18,9 +15,6 @@ void LoopProcess(Nvnflinger::Nvnflinger& nvnflinger, Core::System& system) {
 | 
			
		||||
        "appletAE", std::make_shared<IAllSystemAppletProxiesService>(system, nvnflinger));
 | 
			
		||||
    server_manager->RegisterNamedService(
 | 
			
		||||
        "appletOE", std::make_shared<IApplicationProxyService>(system, nvnflinger));
 | 
			
		||||
    server_manager->RegisterNamedService("idle:sys", std::make_shared<IdleSys>(system));
 | 
			
		||||
    server_manager->RegisterNamedService("omm", std::make_shared<OMM>(system));
 | 
			
		||||
    server_manager->RegisterNamedService("spsm", std::make_shared<SPSM>(system));
 | 
			
		||||
    ServerManager::RunServer(std::move(server_manager));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,20 +0,0 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Core {
 | 
			
		||||
class System;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace Service::AM {
 | 
			
		||||
 | 
			
		||||
class IdleSys final : public ServiceFramework<IdleSys> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit IdleSys(Core::System& system_);
 | 
			
		||||
    ~IdleSys() override;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::AM
 | 
			
		||||
@@ -1,20 +0,0 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Core {
 | 
			
		||||
class System;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace Service::AM {
 | 
			
		||||
 | 
			
		||||
class OMM final : public ServiceFramework<OMM> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit OMM(Core::System& system_);
 | 
			
		||||
    ~OMM() override;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::AM
 | 
			
		||||
@@ -1,20 +0,0 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Core {
 | 
			
		||||
class System;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace Service::AM {
 | 
			
		||||
 | 
			
		||||
class SPSM final : public ServiceFramework<SPSM> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit SPSM(Core::System& system_);
 | 
			
		||||
    ~SPSM() override;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::AM
 | 
			
		||||
							
								
								
									
										22
									
								
								src/core/hle/service/omm/omm.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/core/hle/service/omm/omm.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/omm/omm.h"
 | 
			
		||||
#include "core/hle/service/omm/operation_mode_manager.h"
 | 
			
		||||
#include "core/hle/service/omm/policy_manager_system.h"
 | 
			
		||||
#include "core/hle/service/omm/power_state_interface.h"
 | 
			
		||||
#include "core/hle/service/server_manager.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::OMM {
 | 
			
		||||
 | 
			
		||||
void LoopProcess(Core::System& system) {
 | 
			
		||||
    auto server_manager = std::make_unique<ServerManager>(system);
 | 
			
		||||
 | 
			
		||||
    server_manager->RegisterNamedService("idle:sys",
 | 
			
		||||
                                         std::make_shared<IPolicyManagerSystem>(system));
 | 
			
		||||
    server_manager->RegisterNamedService("omm", std::make_shared<IOperationModeManager>(system));
 | 
			
		||||
    server_manager->RegisterNamedService("spsm", std::make_shared<IPowerStateInterface>(system));
 | 
			
		||||
    ServerManager::RunServer(std::move(server_manager));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Service::OMM
 | 
			
		||||
							
								
								
									
										14
									
								
								src/core/hle/service/omm/omm.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/core/hle/service/omm/omm.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
namespace Core {
 | 
			
		||||
class System;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace Service::OMM {
 | 
			
		||||
 | 
			
		||||
void LoopProcess(Core::System& system);
 | 
			
		||||
 | 
			
		||||
} // namespace Service::OMM
 | 
			
		||||
@@ -1,11 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/am/omm.h"
 | 
			
		||||
#include "core/hle/service/omm/operation_mode_manager.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::AM {
 | 
			
		||||
namespace Service::OMM {
 | 
			
		||||
 | 
			
		||||
OMM::OMM(Core::System& system_) : ServiceFramework{system_, "omm"} {
 | 
			
		||||
IOperationModeManager::IOperationModeManager(Core::System& system_)
 | 
			
		||||
    : ServiceFramework{system_, "omm"} {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "GetOperationMode"},
 | 
			
		||||
@@ -43,6 +44,6 @@ OMM::OMM(Core::System& system_) : ServiceFramework{system_, "omm"} {
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
OMM::~OMM() = default;
 | 
			
		||||
IOperationModeManager::~IOperationModeManager() = default;
 | 
			
		||||
 | 
			
		||||
} // namespace Service::AM
 | 
			
		||||
} // namespace Service::OMM
 | 
			
		||||
							
								
								
									
										20
									
								
								src/core/hle/service/omm/operation_mode_manager.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/core/hle/service/omm/operation_mode_manager.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Core {
 | 
			
		||||
class System;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace Service::OMM {
 | 
			
		||||
 | 
			
		||||
class IOperationModeManager final : public ServiceFramework<IOperationModeManager> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit IOperationModeManager(Core::System& system_);
 | 
			
		||||
    ~IOperationModeManager() override;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::OMM
 | 
			
		||||
@@ -1,11 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/am/idle.h"
 | 
			
		||||
#include "core/hle/service/omm/policy_manager_system.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::AM {
 | 
			
		||||
namespace Service::OMM {
 | 
			
		||||
 | 
			
		||||
IdleSys::IdleSys(Core::System& system_) : ServiceFramework{system_, "idle:sys"} {
 | 
			
		||||
IPolicyManagerSystem::IPolicyManagerSystem(Core::System& system_)
 | 
			
		||||
    : ServiceFramework{system_, "idle:sys"} {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "GetAutoPowerDownEvent"},
 | 
			
		||||
@@ -20,6 +21,6 @@ IdleSys::IdleSys(Core::System& system_) : ServiceFramework{system_, "idle:sys"}
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
IdleSys::~IdleSys() = default;
 | 
			
		||||
IPolicyManagerSystem::~IPolicyManagerSystem() = default;
 | 
			
		||||
 | 
			
		||||
} // namespace Service::AM
 | 
			
		||||
} // namespace Service::OMM
 | 
			
		||||
							
								
								
									
										20
									
								
								src/core/hle/service/omm/policy_manager_system.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/core/hle/service/omm/policy_manager_system.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Core {
 | 
			
		||||
class System;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace Service::OMM {
 | 
			
		||||
 | 
			
		||||
class IPolicyManagerSystem final : public ServiceFramework<IPolicyManagerSystem> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit IPolicyManagerSystem(Core::System& system_);
 | 
			
		||||
    ~IPolicyManagerSystem() override;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::OMM
 | 
			
		||||
@@ -1,11 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/am/spsm.h"
 | 
			
		||||
#include "core/hle/service/omm/power_state_interface.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::AM {
 | 
			
		||||
namespace Service::OMM {
 | 
			
		||||
 | 
			
		||||
SPSM::SPSM(Core::System& system_) : ServiceFramework{system_, "spsm"} {
 | 
			
		||||
IPowerStateInterface::IPowerStateInterface(Core::System& system_)
 | 
			
		||||
    : ServiceFramework{system_, "spsm"} {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "GetState"},
 | 
			
		||||
@@ -26,6 +27,6 @@ SPSM::SPSM(Core::System& system_) : ServiceFramework{system_, "spsm"} {
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SPSM::~SPSM() = default;
 | 
			
		||||
IPowerStateInterface::~IPowerStateInterface() = default;
 | 
			
		||||
 | 
			
		||||
} // namespace Service::AM
 | 
			
		||||
} // namespace Service::OMM
 | 
			
		||||
							
								
								
									
										20
									
								
								src/core/hle/service/omm/power_state_interface.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/core/hle/service/omm/power_state_interface.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Core {
 | 
			
		||||
class System;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace Service::OMM {
 | 
			
		||||
 | 
			
		||||
class IPowerStateInterface final : public ServiceFramework<IPowerStateInterface> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit IPowerStateInterface(Core::System& system_);
 | 
			
		||||
    ~IPowerStateInterface() override;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::OMM
 | 
			
		||||
@@ -52,6 +52,7 @@
 | 
			
		||||
#include "core/hle/service/nvnflinger/hos_binder_driver_server.h"
 | 
			
		||||
#include "core/hle/service/nvnflinger/nvnflinger.h"
 | 
			
		||||
#include "core/hle/service/olsc/olsc.h"
 | 
			
		||||
#include "core/hle/service/omm/omm.h"
 | 
			
		||||
#include "core/hle/service/pcie/pcie.h"
 | 
			
		||||
#include "core/hle/service/pctl/pctl_module.h"
 | 
			
		||||
#include "core/hle/service/pcv/pcv.h"
 | 
			
		||||
@@ -266,6 +267,7 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system
 | 
			
		||||
    kernel.RunOnGuestCoreProcess("npns",       [&] { NPNS::LoopProcess(system); });
 | 
			
		||||
    kernel.RunOnGuestCoreProcess("ns",         [&] { NS::LoopProcess(system); });
 | 
			
		||||
    kernel.RunOnGuestCoreProcess("olsc",       [&] { OLSC::LoopProcess(system); });
 | 
			
		||||
    kernel.RunOnGuestCoreProcess("omm",        [&] { OMM::LoopProcess(system); });
 | 
			
		||||
    kernel.RunOnGuestCoreProcess("pcie",       [&] { PCIe::LoopProcess(system); });
 | 
			
		||||
    kernel.RunOnGuestCoreProcess("pctl",       [&] { PCTL::LoopProcess(system); });
 | 
			
		||||
    kernel.RunOnGuestCoreProcess("pcv",        [&] { PCV::LoopProcess(system); });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user