mirror of
https://github.com/SerenityOS/serenity
synced 2026-05-05 06:32:26 +02:00
Kernel/SysFS: Add /sys/devices/storage directory
This change in fact does the following:
1. Use support for symlinks between /sys/dev/block/ storage device
identifier nodes and devices in /sys/devices/storage/{LUN}.
2. Add basic nodes in a /sys/devices/storage/{LUN} directory, to let
userspace to know about the device and its details.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Kernel/FileSystem/SysFS/Component.h>
|
||||
#include <Kernel/FileSystem/SysFS/Subsystems/Devices/Storage/DeviceDirectory.h>
|
||||
#include <Kernel/KBuffer.h>
|
||||
|
||||
namespace Kernel {
|
||||
|
||||
class StorageDeviceAttributeSysFSComponent : public SysFSComponent {
|
||||
public:
|
||||
enum class Type {
|
||||
EndLBA,
|
||||
SectorSize,
|
||||
CommandSet,
|
||||
InterfaceType,
|
||||
};
|
||||
|
||||
public:
|
||||
static NonnullRefPtr<StorageDeviceAttributeSysFSComponent> must_create(StorageDeviceSysFSDirectory const& device_directory, Type);
|
||||
|
||||
virtual ErrorOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer&, OpenFileDescription*) const override;
|
||||
virtual ~StorageDeviceAttributeSysFSComponent() {};
|
||||
|
||||
virtual StringView name() const override;
|
||||
|
||||
protected:
|
||||
ErrorOr<NonnullOwnPtr<KBuffer>> try_to_generate_buffer() const;
|
||||
StorageDeviceAttributeSysFSComponent(StorageDeviceSysFSDirectory const& device, Type);
|
||||
NonnullRefPtr<StorageDevice> m_device;
|
||||
Type const m_type { Type::EndLBA };
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user