diff --git a/include/flash.h b/include/flash.h index 093813e..f06e66e 100644 --- a/include/flash.h +++ b/include/flash.h @@ -7,6 +7,7 @@ struct flash_dev; struct flash_ops { size_t (* get_size)(struct flash_dev *dev); + size_t (* get_capacity)(struct flash_dev *dev); int (* read)(struct flash_dev *dev, uint32_t addr, void *data, size_t len); int (* write)(struct flash_dev *dev, uint32_t addr, const void *data, size_t len); @@ -22,6 +23,7 @@ struct flash_dev { struct flash_dev *flash_probe(void); void flash_release(struct flash_dev *dev); size_t flash_get_size(struct flash_dev *dev); +size_t flash_get_capacity(struct flash_dev *dev); int flash_read(struct flash_dev *dev, uint32_t addr, void *data, size_t len); int flash_write(struct flash_dev *dev, uint32_t addr, const void *data, size_t len); diff --git a/source/core/flash.c b/source/core/flash.c index bee69a0..e6f7273 100644 --- a/source/core/flash.c +++ b/source/core/flash.c @@ -11,6 +11,14 @@ size_t flash_get_size(struct flash_dev *dev) return dev->ops->get_size(dev); } +size_t flash_get_capacity(struct flash_dev *dev) +{ + if (!dev) + return 0; + + return dev->ops->get_capacity(dev); +} + int flash_read(struct flash_dev *dev, uint32_t addr, void *data, size_t len) { if (!dev)