|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
Abstraction over stream writes to flash. More...
Data Structures | |
| struct | stream_flash_ctx |
| Structure for stream flash context. More... | |
Typedefs | |
| typedef int(* | stream_flash_callback_t) (uint8_t *buf, size_t len, size_t offset) |
| Signature for callback invoked after flash write completes. | |
Functions | |
| int | stream_flash_init (struct stream_flash_ctx *ctx, const struct device *fdev, uint8_t *buf, size_t buf_len, size_t offset, size_t size, stream_flash_callback_t cb) |
| Initialize context needed for stream writes to flash. | |
| size_t | stream_flash_bytes_written (const struct stream_flash_ctx *ctx) |
| Read number of bytes written to the flash. | |
| int | stream_flash_buffered_write (struct stream_flash_ctx *ctx, const uint8_t *data, size_t len, bool flush) |
| Process input buffers to be written to flash device in single blocks. | |
| int | stream_flash_erase_page (struct stream_flash_ctx *ctx, off_t off) |
| Erase the flash page to which a given offset belongs. | |
| int | stream_flash_progress_load (struct stream_flash_ctx *ctx, const char *settings_key) |
Load persistent stream write progress stored with key settings_key . | |
| int | stream_flash_progress_save (const struct stream_flash_ctx *ctx, const char *settings_key) |
Save persistent stream write progress using key settings_key . | |
| int | stream_flash_progress_clear (const struct stream_flash_ctx *ctx, const char *settings_key) |
Clear persistent stream write progress stored with key settings_key . | |
Abstraction over stream writes to flash.
| stream_flash_callback_t |
#include <include/zephyr/storage/stream_flash.h>
Signature for callback invoked after flash write completes.
Functions of this type are invoked with a buffer containing data read back from the flash after a flash write has completed. This enables verifying that the data has been correctly stored (for instance by using a SHA function). The write buffer 'buf' provided in stream_flash_init is used as a read buffer for this purpose.
| buf | Pointer to the data read. |
| len | The length of the data read. |
| offset | The offset the data was read from. |
| int stream_flash_buffered_write | ( | struct stream_flash_ctx * | ctx, |
| const uint8_t * | data, | ||
| size_t | len, | ||
| bool | flush | ||
| ) |
#include <include/zephyr/storage/stream_flash.h>
Process input buffers to be written to flash device in single blocks.
Will store remainder between calls.
A write with the flush set to true has to be issued as the last write request for a given context, as it concludes write of a stream, and flushes buffers to storage device.
| ctx | context |
| data | data to write |
| len | Number of bytes to write |
| flush | when true this forces any buffered data to be written to flash |
| size_t stream_flash_bytes_written | ( | const struct stream_flash_ctx * | ctx | ) |
#include <include/zephyr/storage/stream_flash.h>
Read number of bytes written to the flash.
| ctx | context |
| int stream_flash_erase_page | ( | struct stream_flash_ctx * | ctx, |
| off_t | off | ||
| ) |
#include <include/zephyr/storage/stream_flash.h>
Erase the flash page to which a given offset belongs.
This function erases a flash page to which an offset belongs if this page is not the page previously erased by the provided ctx (ctx->last_erased_page_start_offset).
| ctx | context |
| off | offset from the base address of the flash device |
| int stream_flash_init | ( | struct stream_flash_ctx * | ctx, |
| const struct device * | fdev, | ||
| uint8_t * | buf, | ||
| size_t | buf_len, | ||
| size_t | offset, | ||
| size_t | size, | ||
| stream_flash_callback_t | cb | ||
| ) |
#include <include/zephyr/storage/stream_flash.h>
Initialize context needed for stream writes to flash.
| ctx | context to be initialized |
| fdev | Flash device to operate on |
| buf | Write buffer |
| buf_len | Length of write buffer. Can not be larger than the page size. Must be multiple of the flash device write-block-size. |
| offset | Offset within flash device to start writing to |
| size | Number of bytes available for performing buffered write. If this is '0', the size will be set to the total size of the flash device minus the offset. |
| cb | Callback to be invoked on completed flash write operations. |
| int stream_flash_progress_clear | ( | const struct stream_flash_ctx * | ctx, |
| const char * | settings_key | ||
| ) |
#include <include/zephyr/storage/stream_flash.h>
Clear persistent stream write progress stored with key settings_key .
| ctx | context |
| settings_key | key previously used for storing the stream write progress |
| int stream_flash_progress_load | ( | struct stream_flash_ctx * | ctx, |
| const char * | settings_key | ||
| ) |
#include <include/zephyr/storage/stream_flash.h>
Load persistent stream write progress stored with key settings_key .
This function should be called directly after stream_flash_init to load previous stream write progress before writing any data. If the loaded progress has fewer bytes written than ctx then it will be ignored.
| ctx | context |
| settings_key | key to use with the settings module for loading the stream write progress |
off is out of area designated for stream or negative errno code on fail | int stream_flash_progress_save | ( | const struct stream_flash_ctx * | ctx, |
| const char * | settings_key | ||
| ) |
#include <include/zephyr/storage/stream_flash.h>
Save persistent stream write progress using key settings_key .
| ctx | context |
| settings_key | key to use with the settings module for storing the stream write progress |