60 if ( max_len < frag_len )
113 const void *
data,
size_t len ) {
123 DBG (
"NVS %p verification failed at %#04x+%zd\n",
141 const void *
data,
size_t len ) {
int(* write)(struct nvs_device *nvs, unsigned int address, const void *data, size_t len)
Write data to device.
struct arbelprm_rc_send_wqe rc
unsigned int word_len_log2
Word length.
A non-volatile storage device.
uint64_t address
Base address.
int nvs_write(struct nvs_device *nvs, unsigned int address, const void *data, size_t len)
Write to non-volatile storage device.
static size_t nvs_frag_len(struct nvs_device *nvs, unsigned int address, size_t max_len)
Calculate length up to next block boundary.
unsigned int block_size
Data block size (in words)
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
int(* read)(struct nvs_device *nvs, unsigned int address, void *data, size_t len)
Read data from device.
#define EIO
Input/output error.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
uint8_t data[48]
Additional event data.
int nvs_read(struct nvs_device *nvs, unsigned int address, void *data, size_t len)
Read from non-volatile storage device.
#define DBG(...)
Print a debugging message.
static int nvs_verify(struct nvs_device *nvs, unsigned int address, const void *data, size_t len)
Verify content of non-volatile storage device.
int memcmp(const void *first, const void *second, size_t len)
Compare memory regions.