SimpleKernel 1.17.0
Loading...
Searching...
No Matches
vfs::BlockDevice Class Referenceabstract

块设备抽象基类 More...

#include <block_device.hpp>

Inheritance diagram for vfs::BlockDevice:
Inheritance graph
Collaboration diagram for vfs::BlockDevice:
Collaboration graph

Public Member Functions

virtual ~BlockDevice ()=default
 
virtual auto ReadSectors (uint64_t sector_start, uint32_t sector_count, void *buffer) -> Expected< size_t >=0
 读取连续扇区
 
virtual auto WriteSectors (uint64_t sector_start, uint32_t sector_count, const void *buffer) -> Expected< size_t >=0
 写入连续扇区
 
virtual auto GetSectorSize () const -> uint32_t=0
 获取扇区大小(通常为 512 字节)
 
virtual auto GetSectorCount () const -> uint64_t=0
 获取设备总扇区数
 
virtual auto GetName () const -> const char *=0
 获取设备名称(如 "virtio-blk0")
 
virtual auto Flush () -> Expected< void >
 刷新设备缓存到物理介质
 

Detailed Description

块设备抽象基类

所有块设备驱动(virtio-blk、ramdisk 等)必须实现此接口。 块设备以固定大小的扇区 (sector) 为最小 I/O 单位。

Definition at line 19 of file block_device.hpp.

Constructor & Destructor Documentation

◆ ~BlockDevice()

virtual vfs::BlockDevice::~BlockDevice ( )
virtualdefault

Member Function Documentation

◆ Flush()

virtual auto vfs::BlockDevice::Flush ( ) -> Expected<void>
inlinevirtual

刷新设备缓存到物理介质

Returns
Expected<void> 成功或错误

Definition at line 73 of file block_device.hpp.

73{ return {}; }

◆ GetName()

virtual auto vfs::BlockDevice::GetName ( ) const -> const char *
pure virtual

获取设备名称(如 "virtio-blk0")

Returns
设备名称

Implemented in virtio::blk::VirtioBlkVfsAdapter.

Here is the caller graph for this function:

◆ GetSectorCount()

virtual auto vfs::BlockDevice::GetSectorCount ( ) const -> uint64_t
pure virtual

获取设备总扇区数

Returns
总扇区数

Implemented in virtio::blk::VirtioBlkVfsAdapter.

Here is the caller graph for this function:

◆ GetSectorSize()

virtual auto vfs::BlockDevice::GetSectorSize ( ) const -> uint32_t
pure virtual

获取扇区大小(通常为 512 字节)

Returns
扇区大小(字节)

Implemented in virtio::blk::VirtioBlkVfsAdapter.

◆ ReadSectors()

virtual auto vfs::BlockDevice::ReadSectors ( uint64_t  sector_start,
uint32_t  sector_count,
void *  buffer 
) -> Expected< size_t >
pure virtual

读取连续扇区

Parameters
sector_start起始扇区号(LBA)
sector_count扇区数量
buffer输出缓冲区,大小至少为 sector_count * GetSectorSize()
Returns
Expected<size_t> 成功时返回实际读取的字节数
Precondition
buffer != nullptr
sector_start + sector_count <= GetSectorCount()
Postcondition
返回值 == sector_count * GetSectorSize() 或错误

Implemented in virtio::blk::VirtioBlkVfsAdapter.

◆ WriteSectors()

virtual auto vfs::BlockDevice::WriteSectors ( uint64_t  sector_start,
uint32_t  sector_count,
const void *  buffer 
) -> Expected< size_t >
pure virtual

写入连续扇区

Parameters
sector_start起始扇区号(LBA)
sector_count扇区数量
buffer输入缓冲区
Returns
Expected<size_t> 成功时返回实际写入的字节数
Precondition
buffer != nullptr
sector_start + sector_count <= GetSectorCount()

Implemented in virtio::blk::VirtioBlkVfsAdapter.


The documentation for this class was generated from the following file: