13#ifndef ZEPHYR_INCLUDE_DRIVERS_RETAINED_MEM_
14#define ZEPHYR_INCLUDE_DRIVERS_RETAINED_MEM_
29 "Size of off_t must be equal or less than size of size_t");
64 const uint8_t *buffer,
size_t size);
107static inline ssize_t z_impl_retained_mem_size(
const struct device *dev)
111 return api->size(dev);
127static inline int z_impl_retained_mem_read(
const struct device *dev,
off_t offset,
138 area_size = api->size(dev);
140 if (offset < 0 || size > area_size || (area_size -
size) < (
size_t)offset) {
144 return api->read(dev, offset, buffer,
size);
161static inline int z_impl_retained_mem_write(
const struct device *dev,
off_t offset,
172 area_size = api->size(dev);
174 if (offset < 0 || size > area_size || (area_size -
size) < (
size_t)offset) {
178 return api->write(dev, offset, buffer,
size);
190static inline int z_impl_retained_mem_clear(
const struct device *dev)
194 return api->clear(dev);
205#include <zephyr/syscalls/retained_mem.h>
int(* retained_mem_read_api)(const struct device *dev, off_t offset, uint8_t *buffer, size_t size)
Callback API to read from retained memory area.
Definition retained_mem.h:56
int(* retained_mem_clear_api)(const struct device *dev)
Callback API to clear retained memory area (reset all data to 0x00).
Definition retained_mem.h:70
ssize_t(* retained_mem_size_api)(const struct device *dev)
Callback API to get size of retained memory area.
Definition retained_mem.h:50
int(* retained_mem_write_api)(const struct device *dev, off_t offset, const uint8_t *buffer, size_t size)
Callback API to write to retained memory area.
Definition retained_mem.h:63
int retained_mem_write(const struct device *dev, off_t offset, const uint8_t *buffer, size_t size)
Writes data to the Retained memory area - underlying data does not need to be cleared prior to writin...
int retained_mem_read(const struct device *dev, off_t offset, uint8_t *buffer, size_t size)
Reads data from the Retained memory area.
int retained_mem_clear(const struct device *dev)
Clears data in the retained memory area by setting it to 0x00.
ssize_t retained_mem_size(const struct device *dev)
Returns the size of the retained memory area.
#define EINVAL
Invalid argument.
Definition errno.h:60
__SIZE_TYPE__ ssize_t
Definition types.h:28
__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:513
const void * api
Address of the API structure exposed by the device instance.
Definition device.h:519
<span class="mlabel">Driver Operations</span> Retained Memory driver operations
Definition retained_mem.h:84
retained_mem_size_api size
<span class="op-badge op-req" title="This operation MUST be implemented by the driver....
Definition retained_mem.h:86
retained_mem_clear_api clear
<span class="op-badge op-req" title="This operation MUST be implemented by the driver....
Definition retained_mem.h:92
retained_mem_read_api read
<span class="op-badge op-req" title="This operation MUST be implemented by the driver....
Definition retained_mem.h:88
retained_mem_write_api write
<span class="op-badge op-req" title="This operation MUST be implemented by the driver....
Definition retained_mem.h:90