26 #ifndef MBED_CHAINING_BLOCK_DEVICE_H 27 #define MBED_CHAINING_BLOCK_DEVICE_H 29 #include "BlockDevice.h" 30 #include "platform/mbed_assert.h" 69 template <
size_t Size>
71 : _bds(bds), _bd_count(sizeof(bds) / sizeof(bds[0]))
72 , _read_size(0), _program_size(0), _erase_size(0), _size(0), _init_ref_count(0)
106 virtual int read(
void *buffer, bd_addr_t addr, bd_size_t
size);
117 virtual int program(
const void *buffer, bd_addr_t addr, bd_size_t size);
128 virtual int erase(bd_addr_t addr, bd_size_t size);
173 virtual bd_size_t
size()
const;
179 virtual const char *
get_type()
const;
184 bd_size_t _read_size;
185 bd_size_t _program_size;
186 bd_size_t _erase_size;
189 uint32_t _init_ref_count;
190 bool _is_initialized;
196 #ifndef MBED_NO_GLOBAL_USING_DIRECTIVE virtual int read(void *buffer, bd_addr_t addr, bd_size_t size)
Read blocks from a block device.
virtual bd_size_t get_program_size() const
Get the size of a programmable block.
ChainingBlockDevice(BlockDevice *(&bds)[Size])
Lifetime of the memory block device.
virtual ~ChainingBlockDevice()
Lifetime of the memory block device.
A hardware device capable of writing and reading blocks.
virtual const char * get_type() const
Get the BlockDevice class type.
virtual int get_erase_value() const
Get the value of storage when erased.
virtual int program(const void *buffer, bd_addr_t addr, bd_size_t size)
Program blocks to a block device.
virtual bd_size_t size() const
Get the total size of the underlying device.
virtual int init()
Initialize a block device.
virtual bd_size_t get_read_size() const
Get the size of a readable block.
virtual int erase(bd_addr_t addr, bd_size_t size)
Erase blocks on a block device.
virtual int deinit()
Deinitialize a block device.
Block device for chaining multiple block devices with the similar block sizes at sequential addresses...
virtual int sync()
Ensure data on storage is in sync with the driver.
ChainingBlockDevice(BlockDevice **bds, size_t bd_count)
Lifetime of the memory block device.
virtual bd_size_t get_erase_size() const
Get the size of an eraseable block.