Zephyr Project API
3.6.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
eeprom.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2019 Vestas Wind Systems A/S
3
*
4
* Heavily based on drivers/flash.h which is:
5
* Copyright (c) 2017 Nordic Semiconductor ASA
6
* Copyright (c) 2016 Intel Corporation
7
*
8
* SPDX-License-Identifier: Apache-2.0
9
*/
10
16
#ifndef ZEPHYR_INCLUDE_DRIVERS_EEPROM_H_
17
#define ZEPHYR_INCLUDE_DRIVERS_EEPROM_H_
18
26
#include <
zephyr/types.h
>
27
#include <stddef.h>
28
#include <
sys/types.h
>
29
#include <
zephyr/device.h
>
30
31
#ifdef __cplusplus
32
extern
"C"
{
33
#endif
34
45
typedef
int (*eeprom_api_read)(
const
struct
device
*dev,
off_t
offset,
46
void
*
data
,
47
size_t
len);
48
53
typedef
int (*eeprom_api_write)(
const
struct
device
*dev,
off_t
offset,
54
const
void
*
data
,
size_t
len);
55
60
typedef
size_t
(*eeprom_api_size)(
const
struct
device
*dev);
61
62
__subsystem
struct
eeprom_driver_api {
63
eeprom_api_read read;
64
eeprom_api_write write;
65
eeprom_api_size size;
66
};
67
80
__syscall
int
eeprom_read
(
const
struct
device
*dev,
off_t
offset,
void
*
data
,
81
size_t
len);
82
83
static
inline
int
z_impl_eeprom_read(
const
struct
device
*dev,
off_t
offset,
84
void
*
data
,
size_t
len)
85
{
86
const
struct
eeprom_driver_api *api =
87
(
const
struct
eeprom_driver_api *)dev->
api
;
88
89
return
api->read(dev, offset,
data
, len);
90
}
91
102
__syscall
int
eeprom_write
(
const
struct
device
*dev,
off_t
offset,
103
const
void
*
data
,
104
size_t
len);
105
106
static
inline
int
z_impl_eeprom_write(
const
struct
device
*dev,
off_t
offset,
107
const
void
*
data
,
size_t
len)
108
{
109
const
struct
eeprom_driver_api *api =
110
(
const
struct
eeprom_driver_api *)dev->
api
;
111
112
return
api->write(dev, offset,
data
, len);
113
}
114
122
__syscall
size_t
eeprom_get_size
(
const
struct
device
*dev);
123
124
static
inline
size_t
z_impl_eeprom_get_size(
const
struct
device
*dev)
125
{
126
const
struct
eeprom_driver_api *api =
127
(
const
struct
eeprom_driver_api *)dev->
api
;
128
129
return
api->size(dev);
130
}
131
132
#ifdef __cplusplus
133
}
134
#endif
135
140
#include <syscalls/eeprom.h>
141
142
#endif
/* ZEPHYR_INCLUDE_DRIVERS_EEPROM_H_ */
device.h
eeprom_write
int eeprom_write(const struct device *dev, off_t offset, const void *data, size_t len)
Write data to EEPROM.
eeprom_get_size
size_t eeprom_get_size(const struct device *dev)
Get the size of the EEPROM in bytes.
eeprom_read
int eeprom_read(const struct device *dev, off_t offset, void *data, size_t len)
Read data from EEPROM.
types.h
types.h
off_t
__INTPTR_TYPE__ off_t
Definition
types.h:36
size_t
Size of off_t must be equal or less than size of size_t
Definition
retained_mem.h:28
device
Runtime device structure (in ROM) per driver instance.
Definition
device.h:387
device::api
const void * api
Address of the API structure exposed by the device instance.
Definition
device.h:393
data
static fdata_t data[2]
Definition
test_fifo_contexts.c:15
include
zephyr
drivers
eeprom.h
Generated on Sun Aug 4 2024 12:32:27 for Zephyr Project API by
1.9.8