/* * Copyright (c) 2022, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Kernel { class SysFSSystemStringVariable : public SysFSGlobalInformation { protected: explicit SysFSSystemStringVariable(SysFSDirectory const& parent_directory) : SysFSGlobalInformation(parent_directory) { } virtual ErrorOr> value() const = 0; virtual void set_value(NonnullOwnPtr new_value) = 0; private: // ^SysFSGlobalInformation virtual ErrorOr try_generate(KBufferBuilder&) override final; // ^SysFSExposedComponent virtual ErrorOr write_bytes(off_t, size_t, UserOrKernelBuffer const&, OpenFileDescription*) override final; virtual mode_t permissions() const override { return 0644; } virtual ErrorOr truncate(u64) override final; }; }