Basic non-volatile storage support
[people/xl0/gpxe.git] / src / include / gpxe / nvs.h
1 #ifndef _GPXE_NVS_H
2 #define _GPXE_NVS_H
3
4 /** @file
5  *
6  * Non-volatile storage
7  *
8  */
9
10 #include <stdint.h>
11
12 struct nvs_operations;
13
14 struct nvs_device {
15         struct dhcp_option_block *options;
16         size_t len;
17         struct nvs_operations *op;
18 };
19
20 struct nvs_operations {
21         int ( * read ) ( struct nvs_device *nvs, unsigned int offset,
22                          void *data, size_t len );
23         int ( * write ) ( struct nvs_device *nvs, unsigned int offset,
24                           const void *data, size_t len );
25 };
26
27 extern int nvs_register ( struct nvs_device *nvs );
28 extern void nvs_unregister ( struct nvs_device *nvs );
29
30 #endif /* _GPXE_NVS_H */