diff options
| author | Mai M <mathew1800@gmail.com> | 2021-07-14 22:19:05 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-14 22:19:05 -0400 |
| commit | 05feddc2521ef667cf5d3817ef8e544a352b40ec (patch) | |
| tree | 8591def7815ce7cc9156d87e0d62567584db1a23 /src/core/hle/service/pctl/pctl_module.h | |
| parent | f2599534f8e096053bf7e8887ce729400a346e92 (diff) | |
| parent | c6d7da88c7ab125279ea4ccad0e3e839632b2f7a (diff) | |
Merge pull request #6639 from Morph1984/optimize-linker
general: Reduce compile time / linker usage on MSVC
Diffstat (limited to 'src/core/hle/service/pctl/pctl_module.h')
| -rw-r--r-- | src/core/hle/service/pctl/pctl_module.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/core/hle/service/pctl/pctl_module.h b/src/core/hle/service/pctl/pctl_module.h new file mode 100644 index 000000000..f25c5c557 --- /dev/null +++ b/src/core/hle/service/pctl/pctl_module.h @@ -0,0 +1,49 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "common/common_funcs.h" +#include "core/hle/service/service.h" + +namespace Core { +class System; +} + +namespace Service::PCTL { + +enum class Capability : u32 { + None = 0, + Application = 1 << 0, + SnsPost = 1 << 1, + Recovery = 1 << 6, + Status = 1 << 8, + StereoVision = 1 << 9, + System = 1 << 15, +}; +DECLARE_ENUM_FLAG_OPERATORS(Capability); + +class Module final { +public: + class Interface : public ServiceFramework<Interface> { + public: + explicit Interface(Core::System& system_, std::shared_ptr<Module> module_, + const char* name_, Capability capability_); + ~Interface() override; + + void CreateService(Kernel::HLERequestContext& ctx); + void CreateServiceWithoutInitialize(Kernel::HLERequestContext& ctx); + + protected: + std::shared_ptr<Module> module; + + private: + Capability capability{}; + }; +}; + +/// Registers all PCTL services with the specified service manager. +void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system); + +} // namespace Service::PCTL |
