BlockDevice.h
Go to the documentation of this file.
Represents a storage device (e.g. flash memory)
Definition: Components/Storage/src/include/Storage/Device.h:34
static constexpr uint16_t defaultSectorSize
Definition: Components/Storage/src/include/Storage/Device.h:183
Base class for sector-addressable (block) devices.
Definition: BlockDevice.h:34
bool flushBuffers()
bool flushBuffer(Buffer &buf)
bool write(storage_size_t address, const void *src, size_t size) override
Write data to the storage device.
size_t getBlockSize() const override
Obtain smallest allocation unit for erase operations.
Definition: BlockDevice.h:40
virtual bool raw_sync()=0
storage_size_t getSectorCount() const override
Obtain total number of sectors on this device.
Definition: BlockDevice.h:50
bool read(storage_size_t address, void *dst, size_t size) override
Read data from the storage device.
std::unique_ptr< BufferList > buffers
Definition: BlockDevice.h:96
storage_size_t getSize() const override
Obtain addressable size of this device.
Definition: BlockDevice.h:45
virtual bool raw_sector_read(storage_size_t address, void *dst, size_t size)=0
bool allocateBuffers(unsigned numBuffers)
Set number of sector buffers to use.
virtual bool raw_sector_write(storage_size_t address, const void *src, size_t size)=0
bool erase_range(storage_size_t address, storage_size_t size) override
Erase a region of storage in preparation for writing.
virtual bool raw_sector_erase_range(storage_size_t address, size_t size)=0
Definition: Partition.h:78
constexpr std::enable_if<(sizeof(T)<=4), uint8_t >::type getSizeBits(T value)
Definition: Components/Storage/src/include/Storage/Types.h:49
Definition: BlockDevice.h:69
uint32_t totalCount() const
Definition: BlockDevice.h:72
size_t printTo(Print &p) const
Definition: BlockDevice.h:67
size_t printTo(Print &p) const
std::map< uint32_t, Func > sectors
By sector.
Definition: BlockDevice.h:80
void update(Function fn, uint32_t sector, uint32_t cacheSector)
Definition: DiskStorage/src/include/Storage/Disk/Buffer.h:17