#include #include #include size_t flash_get_size(struct flash_dev *dev) { if (!dev) return 0; return dev->ops->get_size(dev); } int flash_read(struct flash_dev *dev, uint32_t addr, void *data, size_t len) { if (!dev) return -1; return dev->ops->read(dev, addr, data, len); } int flash_write(struct flash_dev *dev, uint32_t addr, const void *data, size_t len) { if (!dev) return -1; return dev->ops->write(dev, addr, data, len); } int flash_copy(struct flash_dev *dev, uint32_t dst, uint32_t src, size_t len) { if (!dev) return -1; return dev->ops->copy(dev, dst, src, len); } int flash_erase(struct flash_dev *dev, uint32_t addr, size_t block_size) { if (!dev) return -1; return dev->ops->erase(dev, addr, block_size); }