rogue
Loading...
Searching...
No Matches
Public Member Functions | List of all members
rogue::protocols::xilinx::XvcConnection Class Reference

Manages one TCP client connection speaking the XVC protocol. More...

#include <XvcConnection.h>

Public Member Functions

 XvcConnection (int sd, JtagDriver *drv, uint64_t maxVecLen_=32768)
 Accepts and initializes a new XVC TCP sub-connection.
 
virtual void fill (uint64_t n)
 Ensures at least n bytes are available in RX buffer.
 
virtual void flush ()
 Flushes pending TX buffer bytes to socket.
 
virtual void bump (uint64_t n)
 Marks n RX bytes as consumed.
 
virtual void allocBufs ()
 Allocates/reinitializes internal RX/TX buffers.
 
virtual void run ()
 Runs command processing loop for this connection.
 
ssize_t readTo (void *buf, size_t count)
 Reads up to count bytes with timeout.
 
virtual ~XvcConnection ()
 Closes this XVC TCP sub-connection.
 

Detailed Description

Manages one TCP client connection speaking the XVC protocol.

XvcConnection parses XVC commands (getinfo, settck, shift) from a connected socket, dispatches JTAG operations through JtagDriver, and sends protocol responses back to the TCP client.

Definition at line 41 of file XvcConnection.h.

Constructor & Destructor Documentation

◆ XvcConnection()

rogue::protocols::xilinx::XvcConnection::XvcConnection ( int  sd,
JtagDriver drv,
uint64_t  maxVecLen = 32768 
)

Accepts and initializes a new XVC TCP sub-connection.

Parameters
sdListening socket descriptor.
drvDriver used to execute JTAG operations.
maxVecLenMaximum vector length in bytes accepted from client.

Company : SLAC National Accelerator Laboratory

Description:

JTAG support

This file is part of the rogue software platform. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of the rogue software platform, including this file, may be copied, modified, propagated, or distributed except according to the terms

contained in the LICENSE.txt file.

Definition at line 29 of file XvcConnection.cpp.

◆ ~XvcConnection()

rogue::protocols::xilinx::XvcConnection::~XvcConnection ( )
virtual

Closes this XVC TCP sub-connection.

Definition at line 48 of file XvcConnection.cpp.

Member Function Documentation

◆ allocBufs()

void rogue::protocols::xilinx::XvcConnection::allocBufs ( )
virtual

Allocates/reinitializes internal RX/TX buffers.

Definition at line 102 of file XvcConnection.cpp.

◆ bump()

void rogue::protocols::xilinx::XvcConnection::bump ( uint64_t  n)
virtual

Marks n RX bytes as consumed.

Parameters
nNumber of bytes to consume.

Definition at line 94 of file XvcConnection.cpp.

◆ fill()

void rogue::protocols::xilinx::XvcConnection::fill ( uint64_t  n)
virtual

Ensures at least n bytes are available in RX buffer.

Parameters
nRequired number of bytes.

Definition at line 74 of file XvcConnection.cpp.

◆ flush()

void rogue::protocols::xilinx::XvcConnection::flush ( )
virtual

Flushes pending TX buffer bytes to socket.

Definition at line 134 of file XvcConnection.cpp.

◆ readTo()

ssize_t rogue::protocols::xilinx::XvcConnection::readTo ( void *  buf,
size_t  count 
)

Reads up to count bytes with timeout.

Parameters
bufDestination buffer.
countMaximum bytes to read.
Returns
Number of bytes read, or 0 on timeout/no data.

Definition at line 52 of file XvcConnection.cpp.

◆ run()

void rogue::protocols::xilinx::XvcConnection::run ( )
virtual

Runs command processing loop for this connection.

Definition at line 148 of file XvcConnection.cpp.


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