Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
TivaTestPacketSource< HW > Class Template Reference

A dummy device driver that spews out a lot of GC packets when a button is held. More...

#include <TivaTestPacketSource.hxx>

Inheritance diagram for TivaTestPacketSource< HW >:
Node Device FileIO

Public Member Functions

 TivaTestPacketSource (const char *name)
 Constructor.
 
void timer_isr ()
 Call this function from extern "C" void timer3a_interrupt_handler()
 
unsigned absolute_offset ()
 
- Public Member Functions inherited from Device
 Device (const char *name)
 Constructor.
 
virtual ~Device ()
 Destructor.
 

Protected Member Functions

void enable () override
 Turns on the device.
 
void disable () override
 Turns off the device.
 
void flush_buffers () override
 Unused.
 
ssize_t write (File *, const void *, size_t len) override
 Unused.
 
ssize_t read (File *file, void *vtgt, size_t len) override
 Performs generating the fake data and/or blocking the caller as needed.
 
bool select (File *file, int mode) override
 Implementation of device-specific select() functionality.
 
void reset_packet ()
 Helper function to clear the input packet buffer and fill in with the next packet in line.
 
- 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 off_t lseek (File *f, off_t offset, int whence)
 Seek method.
 
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.
 

Protected Attributes

SelectInfo readSelect_
 Helper structure for select() support.
 
unsigned offset_ {0}
 Which is the next byte from the INPUT_PACKET to send back.
 
unsigned bufferedBytes_ {0}
 How many bytes we have accumulated to send back.
 
unsigned cnt_ {0}
 Index of the next packet.
 
char packet_ [40]
 Text-rendered form of the next packet.
 
unsigned inputPacketLen_
 Length of packet_;.
 
uint32_t absoluteOffset_ {0}
 How many bytes in total have been read from this driver since boot.
 
- 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
 

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 Filefile_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.
 
- 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
 

Detailed Description

template<class HW>
class TivaTestPacketSource< HW >

A dummy device driver that spews out a lot of GC packets when a button is held.

Useful for debugging buffer usage.

Definition at line 75 of file TivaTestPacketSource.hxx.

Constructor & Destructor Documentation

◆ TivaTestPacketSource()

template<class HW >
TivaTestPacketSource< HW >::TivaTestPacketSource ( const char *  name)
inline

Constructor.

Parameters
nameis the filesystem device name (e.g. "/dev/load")

Definition at line 80 of file TivaTestPacketSource.hxx.

Member Function Documentation

◆ absolute_offset()

template<class HW >
unsigned TivaTestPacketSource< HW >::absolute_offset ( )
inline
Returns
the total number of bytes produced so far.

Definition at line 102 of file TivaTestPacketSource.hxx.

◆ disable()

template<class HW >
void TivaTestPacketSource< HW >::disable ( )
inlineoverrideprotectedvirtual

Turns off the device.

Implements Node.

Definition at line 127 of file TivaTestPacketSource.hxx.

◆ enable()

template<class HW >
void TivaTestPacketSource< HW >::enable ( )
inlineoverrideprotectedvirtual

Turns on the device.

Implements Node.

Definition at line 108 of file TivaTestPacketSource.hxx.

◆ flush_buffers()

template<class HW >
void TivaTestPacketSource< HW >::flush_buffers ( )
inlineoverrideprotectedvirtual

Unused.

Implements Node.

Definition at line 133 of file TivaTestPacketSource.hxx.

◆ read()

template<class HW >
ssize_t TivaTestPacketSource< HW >::read ( File file,
void *  vtgt,
size_t  len 
)
inlineoverrideprotectedvirtual

Performs generating the fake data and/or blocking the caller as needed.

Implements FileIO.

Definition at line 145 of file TivaTestPacketSource.hxx.

◆ reset_packet()

template<class HW >
void TivaTestPacketSource< HW >::reset_packet ( )
inlineprotected

Helper function to clear the input packet buffer and fill in with the next packet in line.

Definition at line 219 of file TivaTestPacketSource.hxx.

◆ select()

template<class HW >
bool TivaTestPacketSource< HW >::select ( File file,
int  mode 
)
inlineoverrideprotectedvirtual

Implementation of device-specific select() functionality.

Reimplemented from FileIO.

Definition at line 197 of file TivaTestPacketSource.hxx.

◆ timer_isr()

template<class HW >
void TivaTestPacketSource< HW >::timer_isr ( )
inline

Call this function from extern "C" void timer3a_interrupt_handler()

Definition at line 89 of file TivaTestPacketSource.hxx.

◆ write()

template<class HW >
ssize_t TivaTestPacketSource< HW >::write ( File ,
const void *  ,
size_t  len 
)
inlineoverrideprotectedvirtual

Unused.

Implements FileIO.

Definition at line 138 of file TivaTestPacketSource.hxx.

Member Data Documentation

◆ absoluteOffset_

template<class HW >
uint32_t TivaTestPacketSource< HW >::absoluteOffset_ {0}
protected

How many bytes in total have been read from this driver since boot.

Definition at line 240 of file TivaTestPacketSource.hxx.

◆ bufferedBytes_

template<class HW >
unsigned TivaTestPacketSource< HW >::bufferedBytes_ {0}
protected

How many bytes we have accumulated to send back.

Definition at line 232 of file TivaTestPacketSource.hxx.

◆ cnt_

template<class HW >
unsigned TivaTestPacketSource< HW >::cnt_ {0}
protected

Index of the next packet.

Definition at line 234 of file TivaTestPacketSource.hxx.

◆ inputPacketLen_

template<class HW >
unsigned TivaTestPacketSource< HW >::inputPacketLen_
protected

Length of packet_;.

Definition at line 238 of file TivaTestPacketSource.hxx.

◆ offset_

template<class HW >
unsigned TivaTestPacketSource< HW >::offset_ {0}
protected

Which is the next byte from the INPUT_PACKET to send back.

Definition at line 230 of file TivaTestPacketSource.hxx.

◆ packet_

template<class HW >
char TivaTestPacketSource< HW >::packet_[40]
protected

Text-rendered form of the next packet.

Definition at line 236 of file TivaTestPacketSource.hxx.

◆ readSelect_

template<class HW >
SelectInfo TivaTestPacketSource< HW >::readSelect_
protected

Helper structure for select() support.

Definition at line 228 of file TivaTestPacketSource.hxx.


The documentation for this class was generated from the following file: