/* * Copyright (c) 2020, Andreas Kling * Copyright (c) 2021, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace Kernel { class PowerStateSwitchNode final : public SysFSComponent { public: static NonnullRefPtr must_create(FirmwareSysFSDirectory&); virtual mode_t permissions() const override; virtual KResultOr write_bytes(off_t, size_t, UserOrKernelBuffer const&, OpenFileDescription*) override; private: PowerStateSwitchNode(FirmwareSysFSDirectory&); void reboot(); void poweroff(); }; }