Zephyr API Documentation 4.2.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
stream_flash.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2017, 2020 Nordic Semiconductor ASA
3 * Copyright (c) 2017 Linaro Limited
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
12
13#ifndef ZEPHYR_INCLUDE_STORAGE_STREAM_FLASH_H_
14#define ZEPHYR_INCLUDE_STORAGE_STREAM_FLASH_H_
15
25
26#include <stdbool.h>
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
48typedef int (*stream_flash_callback_t)(uint8_t *buf, size_t len, size_t offset);
49
58 uint8_t *buf; /* Write buffer */
59 size_t buf_len; /* Length of write buffer */
60 size_t buf_bytes; /* Number of bytes currently stored in write buf */
61 const struct device *fdev; /* Flash device */
62 size_t bytes_written; /* Number of bytes written to flash */
63 size_t offset; /* Offset from base of flash device to write area */
64 size_t available; /* Available bytes in write area */
65#ifdef CONFIG_STREAM_FLASH_POST_WRITE_CALLBACK
66 stream_flash_callback_t callback; /* Callback invoked after write op */
67#endif
68#ifdef CONFIG_STREAM_FLASH_ERASE
69 size_t erased_up_to; /* First offset in continuous range,
70 * relative to the stream_flash_ctx.offset,
71 * that has not yet been erased while
72 * preparing Stream Flash designated area
73 * for write.
74 */
75#endif
76 size_t write_block_size; /* Offset/size device write alignment */
77 uint8_t erase_value;
79};
80
97int stream_flash_init(struct stream_flash_ctx *ctx, const struct device *fdev,
98 uint8_t *buf, size_t buf_len, size_t offset, size_t size,
110
119
142 size_t len, bool flush);
143
159__deprecated int stream_flash_erase_page(struct stream_flash_ctx *ctx, off_t off);
160
177 const char *settings_key);
178
189 const char *settings_key);
190
201 const char *settings_key);
202
203#ifdef __cplusplus
204}
205#endif
206
210
211#endif /* ZEPHYR_INCLUDE_STORAGE_STREAM_FLASH_H_ */
irp nz macro MOVR cc s mov cc s endm endr irp aw macro LDR aa off
Definition asm-macro-32-bit-gnu.h:17
Main header file for Flash driver API.
int(* stream_flash_callback_t)(uint8_t *buf, size_t len, size_t offset)
Signature for callback invoked after flash write completes.
Definition stream_flash.h:48
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_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_buffered(const struct stream_flash_ctx *ctx)
Read number of bytes buffered for the next flash write.
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_clear(const struct stream_flash_ctx *ctx, const char *settings_key)
Clear persistent stream write progress stored with key settings_key .
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.
size_t stream_flash_bytes_written(const struct stream_flash_ctx *ctx)
Read number of bytes written to the flash.
__INTPTR_TYPE__ off_t
Definition types.h:36
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Runtime device structure (in ROM) per driver instance.
Definition device.h:510
void * data
Address of the device instance private data.
Definition device.h:520
Structure for stream flash context.
Definition stream_flash.h:56