Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06c421ee authored by Kevin Hilman's avatar Kevin Hilman Committed by Linus Torvalds
Browse files

memory_accessor: new interface for reading/writing persistent memory



Add an interface by which other kernel code can read/write persistent
memory such as I2C or SPI EEPROMs, or devices which provide NVRAM.  Use
cases include storage of board-specific configuration data like Ethernet
addresses and sensor calibrations.

Original idea, review and improvement suggestions by David Brownell.

Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
Cc: Jean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent bf6aede7
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -99,4 +99,15 @@ enum mem_add_context { BOOT, HOTPLUG };
#define hotplug_memory_notifier(fn, pri) do { } while (0)
#define hotplug_memory_notifier(fn, pri) do { } while (0)
#endif
#endif


/*
 * 'struct memory_accessor' is a generic interface to provide
 * in-kernel access to persistent memory such as i2c or SPI EEPROMs
 */
struct memory_accessor {
	ssize_t (*read)(struct memory_accessor *, char *buf, off_t offset,
			size_t count);
	ssize_t (*write)(struct memory_accessor *, const char *buf,
			 off_t offset, size_t count);
};

#endif /* _LINUX_MEMORY_H_ */
#endif /* _LINUX_MEMORY_H_ */