Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
2 | #ifndef _LINUX_NVRAM_H |
3 | #define _LINUX_NVRAM_H | |
4 | ||
1278cf66 | 5 | #include <linux/errno.h> |
607ca46e | 6 | #include <uapi/linux/nvram.h> |
1da177e4 | 7 | |
a084dbf6 FT |
8 | struct nvram_ops { |
9 | ssize_t (*get_size)(void); | |
10 | ssize_t (*read)(char *, size_t, loff_t *); | |
11 | ssize_t (*write)(char *, size_t, loff_t *); | |
12 | }; | |
13 | ||
14 | extern const struct nvram_ops arch_nvram_ops; | |
15 | ||
1278cf66 FT |
16 | static inline ssize_t nvram_get_size(void) |
17 | { | |
a156c7ba FT |
18 | #ifdef CONFIG_PPC |
19 | #else | |
a084dbf6 FT |
20 | if (arch_nvram_ops.get_size) |
21 | return arch_nvram_ops.get_size(); | |
a156c7ba | 22 | #endif |
1278cf66 FT |
23 | return -ENODEV; |
24 | } | |
25 | ||
26 | static inline unsigned char nvram_read_byte(int addr) | |
27 | { | |
28 | return 0xFF; | |
29 | } | |
30 | ||
31 | static inline void nvram_write_byte(unsigned char val, int addr) | |
32 | { | |
33 | } | |
34 | ||
35 | static inline ssize_t nvram_read(char *buf, size_t count, loff_t *ppos) | |
36 | { | |
a084dbf6 FT |
37 | if (arch_nvram_ops.read) |
38 | return arch_nvram_ops.read(buf, count, ppos); | |
1278cf66 FT |
39 | return -ENODEV; |
40 | } | |
41 | ||
42 | static inline ssize_t nvram_write(char *buf, size_t count, loff_t *ppos) | |
43 | { | |
a084dbf6 FT |
44 | if (arch_nvram_ops.write) |
45 | return arch_nvram_ops.write(buf, count, ppos); | |
1278cf66 FT |
46 | return -ENODEV; |
47 | } | |
48 | ||
1da177e4 | 49 | #endif /* _LINUX_NVRAM_H */ |