mirror of
https://github.com/RGBCube/serenity
synced 2025-05-18 20:15:08 +00:00

This enforces us to remove duplicated code across the SysFS code. This results in great simplification of how the SysFS works now, because we enforce one way to treat SysFSDirectory objects.
33 lines
898 B
C++
33 lines
898 B
C++
/*
|
|
* Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/IntrusiveList.h>
|
|
#include <Kernel/FileSystem/SysFS/Component.h>
|
|
#include <Kernel/KString.h>
|
|
|
|
namespace Kernel {
|
|
|
|
class SysFSDeviceComponent final
|
|
: public SysFSComponent
|
|
, public Weakable<SysFSDeviceComponent> {
|
|
friend class SysFSBlockDevicesDirectory;
|
|
friend class SysFSCharacterDevicesDirectory;
|
|
|
|
public:
|
|
static NonnullRefPtr<SysFSDeviceComponent> must_create(Device const&);
|
|
virtual StringView name() const override { return m_major_minor_formatted_device_name->view(); }
|
|
bool is_block_device() const { return m_block_device; }
|
|
|
|
private:
|
|
SysFSDeviceComponent(NonnullOwnPtr<KString> major_minor_formatted_device_name, Device const&);
|
|
bool m_block_device;
|
|
|
|
NonnullOwnPtr<KString> m_major_minor_formatted_device_name;
|
|
};
|
|
|
|
}
|