SUIT storage backend driver struct. More...
#include <storage.h>
Data Fields | |
int(* | init )(suit_storage_t *storage) |
One-time initialization function. | |
int(* | start )(suit_storage_t *storage, const suit_manifest_t *manifest, size_t len) |
Start a new payload write sequence. | |
int(* | write )(suit_storage_t *storage, const suit_manifest_t *manifest, const uint8_t *buf, size_t offset, size_t len) |
Write a new chunk of the payload to the storage backend. | |
int(* | finish )(suit_storage_t *storage, const suit_manifest_t *manifest) |
Signal that the payload write stage done to the storage backend. | |
int(* | read )(suit_storage_t *storage, uint8_t *buf, size_t offset, size_t len) |
Read a chunk of previously written data back. | |
int(* | read_ptr )(suit_storage_t *storage, const uint8_t **buf, size_t *len) |
retrieve a direct read pointer for this storage backend | |
int(* | install )(suit_storage_t *storage, const suit_manifest_t *manifest) |
Install the payload or mark the payload as valid. | |
int(* | erase )(suit_storage_t *storage) |
Erase the previously loaded payload. | |
bool(* | has_location )(const suit_storage_t *storage, const char *location) |
Check if this storage backend services a location. | |
bool(* | match_offset )(const suit_storage_t *storage, size_t offset) |
Checks if the supplied offset is true or false for the current location. | |
int(* | set_active_location )(suit_storage_t *storage, const char *location) |
Set the active location of the storage handler. | |
int(* | get_seq_no )(const suit_storage_t *storage, uint32_t *seq_no) |
Retrieve the sequence number from the storage backend. | |
int(* | set_seq_no )(suit_storage_t *storage, uint32_t seq_no) |
Set a new sequence number in the storage backend. | |
char | separator |
Component ID separator used by this storage driver. | |
int(* suit_storage_driver::erase) (suit_storage_t *storage) |
Erase the previously loaded payload.
[in] | storage | Storage context |
int(* suit_storage_driver::finish) (suit_storage_t *storage, const suit_manifest_t *manifest) |
Signal that the payload write stage done to the storage backend.
[in] | storage | Storage context |
[in] | manifest | The suit manifest context |
int(* suit_storage_driver::get_seq_no) (const suit_storage_t *storage, uint32_t *seq_no) |
Retrieve the sequence number from the storage backend.
[in] | storage | Storage context |
[out] | seq_no | Retrieved sequence number |
bool(* suit_storage_driver::has_location) (const suit_storage_t *storage, const char *location) |
int(* suit_storage_driver::init) (suit_storage_t *storage) |
int(* suit_storage_driver::install) (suit_storage_t *storage, const suit_manifest_t *manifest) |
Install the payload or mark the payload as valid.
[in] | storage | Storage context |
[in] | manifest | The suit manifest context |
bool(* suit_storage_driver::match_offset) (const suit_storage_t *storage, size_t offset) |
Checks if the supplied offset is true or false for the current location.
[in] | storage | Storage context |
[in] | offset | Offset to check |
int(* suit_storage_driver::read) (suit_storage_t *storage, uint8_t *buf, size_t offset, size_t len) |
Read a chunk of previously written data back.
[in] | storage | Storage context |
[out] | buf | Buffer to write the read data in |
[in] | offset | Offset to read from |
[in] | len | Number of bytes to read |
int(* suit_storage_driver::read_ptr) (suit_storage_t *storage, const uint8_t **buf, size_t *len) |
retrieve a direct read pointer for this storage backend
[in] | storage | Storage context |
[out] | buf | Pointer to the location data |
[out] | len | Full length of the location data |
char suit_storage_driver::separator |
int(* suit_storage_driver::set_active_location) (suit_storage_t *storage, const char *location) |
Set the active location of the storage handler.
A storage backend can handle multiple locations, e.g. a VFS backend targeting multiple files on a filesystem, setting the location selects the target location for writes or reads.
[in] | storage | Storage backend context |
[in] | location | The location supplied as string with components separated by the suit_storage_driver_t::separator |
int(* suit_storage_driver::set_seq_no) (suit_storage_t *storage, uint32_t seq_no) |
Set a new sequence number in the storage backend.
[in] | storage | Storage context |
[in] | seq_no | Sequence number to store |
int(* suit_storage_driver::start) (suit_storage_t *storage, const suit_manifest_t *manifest, size_t len) |
Start a new payload write sequence.
[in] | storage | Storage context |
[in] | manifest | The suit manifest context |
[in] | len | Total size of the payload in bytes |
int(* suit_storage_driver::write) (suit_storage_t *storage, const suit_manifest_t *manifest, const uint8_t *buf, size_t offset, size_t len) |
Write a new chunk of the payload to the storage backend.
[in] | storage | Storage context |
[in] | manifest | The suit manifest context |
[in] | buf | Buffer to read the payload chunk from |
[in] | offset | Offset to write at |
[in] | len | Length of the payload chunk |