core: flash: implement flash_sync() to sync buffered data

tags/0.1.0
S.J.R. van Schaik 8 years ago
parent f7b11a8726
commit ac3d198004
  1. 2
      include/flash.h
  2. 11
      source/core/flash.c

@ -15,6 +15,7 @@ struct flash_ops {
size_t (* copy)(struct flash_dev *dev, uint32_t dst, uint32_t src, size_t len);
int (* is_erased)(struct flash_dev *dev, uint32_t addr);
int (* erase)(struct flash_dev *dev, uint32_t addr);
int (* sync)(struct flash_dev *dev);
};
struct flash_dev {
@ -38,3 +39,4 @@ size_t flash_write0(struct flash_dev *dev, uint32_t addr, size_t len);
size_t flash_copy(struct flash_dev *dev, uint32_t dst, uint32_t src, size_t len);
int flash_is_erased(struct flash_dev *dev, uint32_t addr, size_t len);
int flash_erase(struct flash_dev *dev, uint32_t addr, size_t len);
int flash_sync(struct flash_dev *dev);

@ -153,3 +153,14 @@ int flash_erase(struct flash_dev *dev, uint32_t addr, size_t len)
return 0;
}
int flash_sync(struct flash_dev *dev)
{
if (!dev)
return -1;
if (!dev->ops->sync)
return 0;
return dev->ops->sync(dev);
}

Loading…
Cancel
Save