19#ifndef MBED_BUFFERED_BLOCK_DEVICE_H
20#define MBED_BUFFERED_BLOCK_DEVICE_H
22#include "BlockDevice.h"
164 bool _write_cache_valid;
165 uint8_t *_write_cache;
167 uint32_t _init_ref_count;
168 bool _is_initialized;
181 void invalidate_write_cache();
190#ifndef MBED_NO_GLOBAL_USING_DIRECTIVE
A hardware device capable of writing and reading blocks.
Block device for allowing minimal read and program sizes (of 1) for the underlying BD,...
virtual const char * get_type() const
Get the underlying BlockDevice class type.
virtual ~BufferedBlockDevice()
Lifetime of the memory-buffered block device.
virtual int erase(bd_addr_t addr, bd_size_t size)
Erase blocks from the memory-buffered block device.
virtual bd_size_t get_program_size() const
Get the size of a programmable block.
virtual int program(const void *buffer, bd_addr_t addr, bd_size_t size)
Program data to the memory-buffered block device.
virtual int sync()
Ensure that data on the underlying storage block device is in sync with the memory-buffered block dev...
virtual bd_size_t get_erase_size() const
Get the size of an erasable block.
virtual int deinit()
Deinitialize the buffered-memory block device and its underlying block device.
virtual bd_size_t get_read_size() const
Get the size of a readable block.
BufferedBlockDevice(BlockDevice *bd)
Lifetime of a memory-buffered block device wrapping an underlying block device.
virtual bd_size_t size() const
Get the total size of the underlying device.
virtual int trim(bd_addr_t addr, bd_size_t size)
Mark blocks as no longer in use.
virtual int read(void *buffer, bd_addr_t addr, bd_size_t size)
Read blocks from the memory-buffered block device.
virtual int init()
Initialize a buffered-memory block device and its underlying block device.
virtual int get_erase_value() const
Get the value of storage data after being erased.
virtual bd_size_t get_erase_size(bd_addr_t addr) const
Get the size of an erasable block of a given address.
uint64_t bd_size_t
Type representing a quantity of 8-bit bytes.
uint64_t bd_addr_t
Type representing the address of a specific block.