|
Open Model Railroad Network (OpenMRN)
|
Common base class for all EEPROM access. More...
#include <EEPROM.hxx>
Public Member Functions | |
| EEPROM (const char *name, size_t file_size) | |
| Constructor. | |
| virtual void | write (unsigned int index, const void *buf, size_t len)=0 |
| Override this function to write data to the eeprom. | |
| virtual void | read (unsigned int index, void *buf, size_t len)=0 |
| Override this function to read data from the eeprom. | |
| size_t | file_size () |
Public Member Functions inherited from Device | |
| Device (const char *name) | |
| Constructor. | |
| virtual | ~Device () |
| Destructor. | |
Protected Member Functions | |
| EEPROM (const char *name, size_t file_size) | |
| Constructor. | |
| ~EEPROM () | |
| Destructor. | |
| virtual void | write (unsigned int index, const void *buf, size_t len)=0 |
| Write to the EEPROM. | |
| virtual void | read (unsigned int index, void *buf, size_t len)=0 |
| Read from the EEPROM. | |
| size_t | file_size () |
| Get the maximum file size of the EEPROM file. | |
Protected Member Functions inherited from Node | |
| Node (const char *name) | |
| Constructor. | |
| virtual | ~Node () |
| Destructor. | |
| int | open (File *, const char *, int, int) OVERRIDE |
| Open method. | |
| int | close (File *) OVERRIDE |
| Close method. | |
| virtual int | fstat (File *file, struct stat *stat) override |
| Get the status information of a file or device. | |
Protected Member Functions inherited from FileIO | |
| FileIO (const char *name) | |
| Constructor. | |
| virtual | ~FileIO () |
| Destructor. | |
| virtual int | ioctl (File *file, unsigned long int key, unsigned long data) |
| Request an ioctl transaction. | |
| virtual int | fcntl (File *file, int cmd, unsigned long data) |
| Manipulate a file descriptor. | |
| virtual bool | select (File *file, int mode) |
| Device select method. | |
Private Member Functions | |
| int | open (File *file, const char *path, int flags, int mode) OVERRIDE |
| Open a device. | |
| ssize_t | read (File *file, void *buf, size_t count) OVERRIDE |
| Read from a file or device. | |
| ssize_t | write (File *file, const void *buf, size_t count) OVERRIDE |
| Write to a file or device. | |
| off_t | lseek (File *file, off_t offset, int whence) OVERRIDE |
| Seek method. | |
| void | enable () OVERRIDE |
| function to enable device | |
| void | disable () OVERRIDE |
| This will be called when reference count goes from non-zero to 0. | |
| void | flush_buffers () OVERRIDE |
| function to disable device | |
| EEPROM () | |
| Default constructor. | |
| DISALLOW_COPY_AND_ASSIGN (EEPROM) | |
Private Attributes | |
| size_t | fileSize |
| Maximum file size we can grow to. | |
Additional Inherited Members | |
Static Public Member Functions inherited from Device | |
| static int | open (struct _reent *reent, const char *path, int flags, int mode) |
| Open a file or device. | |
| static int | close (struct _reent *reent, int fd) |
| Close a file or device. | |
| static int | stat (struct _reent *reent, const char *path, struct stat *stat) |
| Get the status information of a file or device. | |
| static int | select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, long long timeout) |
| POSIX select(). | |
| static void | select_clear () |
| Clears the current thread's select bits. | |
Static Public Member Functions inherited from FileIO | |
| static ssize_t | read (struct _reent *reent, int fd, void *buf, size_t count) |
| Read from a file or device. | |
| static ssize_t | write (struct _reent *reent, int fd, const void *buf, size_t count) |
| Write to a file or device. | |
| static _off_t | lseek (struct _reent *reent, int fd, _off_t offset, int whence) |
| Change the offset index of a file or device. | |
| static int | fstat (struct _reent *reent, int fd, struct stat *stat) |
| Get the status information of a file or device. | |
| static int | ioctl (int fd, unsigned long int key, unsigned long data) |
| Request and ioctl transaction. | |
| static int | fcntl (int fd, int cmd, unsigned long data) |
| Manipulate a file descriptor. | |
| static bool | is_device (int fd) |
| Test if the file descriptor belongs to a device. | |
Static Protected Member Functions inherited from Device | |
| static void | select_insert (SelectInfo *info) |
| Add client to list of clients needing woken. | |
| static void | select_wakeup (SelectInfo *info) |
| Wakeup the list of clients needing woken. | |
| static void | select_wakeup_from_isr (SelectInfo *info, int *woken) |
| Wakeup the list of clients needing woken. | |
Static Protected Member Functions inherited from FileIO | |
| static int | fd_alloc (void) |
| Allocate a free file descriptor. | |
| static void | fd_free (int fd) |
| Free up a file descriptor. | |
| static File * | file_lookup (int fd) |
| Looks up a reference to a File corresponding to a given file descriptor. | |
| static int | fd_lookup (File *file) |
| Looks up a file descriptor corresponding to a given File reference. | |
Protected Attributes inherited from Node | |
| OSMutex | lock_ |
| protects internal structures. | |
| mode_t | mode_ |
| File open mode, such as O_NONBLOCK. | |
| unsigned int | references_ |
| number of open references | |
Protected Attributes inherited from FileIO | |
| const char * | name |
| device name | |
Static Protected Attributes inherited from FileIO | |
| static const unsigned int | numOpenFiles = 20 |
| static File | files [] |
| File descriptor pool. | |
| static OSMutex | mutex |
| mutual exclusion for fileio | |
Common base class for all EEPROM access.
Definition at line 43 of file EEPROM.hxx.
|
inlineprotected |
Constructor.
| name | device name |
| file_size | maximum file size that we can grow to. |
Definition at line 50 of file EEPROM.hxx.
|
inlineprotected |
Destructor.
Definition at line 58 of file EEPROM.hxx.
|
inline |
Constructor.
| name | The name of the device node in the filesystem, e.g. /dev/eeprom |
| file_size | how many bytes are in the eeprom (real or emulated). |
Definition at line 16 of file EEPROMEmuTest.hxx.
|
inlineprivatevirtual |
This will be called when reference count goes from non-zero to 0.
Called with lock_ held.
Implements Node.
Definition at line 124 of file EEPROM.hxx.
|
inlineprivatevirtual |
|
inlineprotected |
Get the maximum file size of the EEPROM file.
Definition at line 81 of file EEPROM.hxx.
|
inline |
Definition at line 42 of file EEPROMEmuTest.hxx.
|
inlineprivatevirtual |
function to disable device
Discards all pending buffers. Called after disable().
Implements Node.
Definition at line 127 of file EEPROM.hxx.
|
privatevirtual |
Seek method.
| file | file reference for this device |
| offset | offset in bytes from whence directive |
| whence | SEEK_SET if to set the file offset to an abosolute position, SEEK_CUR if to set the file offset from current position |
Reimplemented from FileIO.
Definition at line 45 of file EEPROM.cxx.
|
privatevirtual |
Open a device.
| file | new file reference to this device |
| path | file or device name |
| flags | open flags |
| mode | open mode |
Implements FileIO.
Definition at line 66 of file EEPROM.cxx.
|
privatevirtual |
Read from a file or device.
| file | file reference for this device |
| buf | location to place read data |
| count | number of bytes to read |
Implements FileIO.
Definition at line 89 of file EEPROM.cxx.
|
protectedpure virtual |
Read from the EEPROM.
| index | index within EEPROM address space to start read |
| buf | location to post read data |
| len | length in bytes of data to read |
Implemented in CC32xxEEPROMEmulation, and EEPROMEmulation.
|
pure virtual |
Override this function to read data from the eeprom.
Has to function synchronously.
| index | offset where to read data from inside the file. [0..file_size). |
| buf | where to read data to |
| len | how many bytes to read |
Implemented in CC32xxEEPROMEmulation, and EEPROMEmulation.
|
privatevirtual |
Write to a file or device.
| file | file reference for this device |
| buf | location to find write data |
| count | number of bytes to write |
Implements FileIO.
Definition at line 119 of file EEPROM.cxx.
|
protectedpure virtual |
Write to the EEPROM.
NOTE!!! This is not necessarily atomic across byte boundaries in the case of power loss. The user should take this into account as it relates to data integrity of a whole block.
| index | index within EEPROM address space to start write |
| buf | data to write |
| len | length in bytes of data to write |
Implemented in CC32xxEEPROMEmulation, and EEPROMEmulation.
|
pure virtual |
Override this function to write data to the eeprom.
Has to function synchronously.
| index | offset where to write data to inside the file. [0..file_size). |
| buf | data to write |
| len | how many bytes to write |
Implemented in CC32xxEEPROMEmulation, and EEPROMEmulation.
|
private |