/* * Copyright (c) 2022, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace Kernel { class SysFSGlobalInformation : public SysFSComponent { public: virtual ErrorOr read_bytes(off_t offset, size_t count, UserOrKernelBuffer& buffer, OpenFileDescription* description) const override; protected: explicit SysFSGlobalInformation(SysFSDirectory const& parent_directory); virtual ErrorOr refresh_data(OpenFileDescription&) const override; virtual ErrorOr try_generate(KBufferBuilder&) = 0; virtual bool is_readable_by_jailed_processes() const { return false; } mutable Mutex m_refresh_lock; }; }