XvcConnection

For conceptual guidance, see Xilinx Protocols.

The class description is shown below:

class XvcConnection
[header]

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.

Public Functions

XvcConnection(int sd, JtagDriver *drv, uint64_t maxVecLen_ = 32768)
[header] [impl]

Accepts and initializes a new XVC TCP sub-connection.

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.

Parameters:
  • sd – Listening socket descriptor.

  • drv – Driver used to execute JTAG operations.

  • maxVecLen – Maximum vector length in bytes accepted from client.

virtual void fill(uint64_t n)
[header] [impl]

Ensures at least n bytes are available in RX buffer.

Parameters:

n – Required number of bytes.

virtual void flush()
[header] [impl]

Flushes pending TX buffer bytes to socket.

virtual void bump(uint64_t n)
[header] [impl]

Marks n RX bytes as consumed.

Parameters:

n – Number of bytes to consume.

virtual void allocBufs()
[header] [impl]

Allocates/reinitializes internal RX/TX buffers.

virtual void run()
[header] [impl]

Runs command processing loop for this connection.

ssize_t readTo(void *buf, size_t count)
[header] [impl]

Reads up to count bytes with timeout.

Parameters:
  • buf – Destination buffer.

  • count – Maximum bytes to read.

Returns:

Number of bytes read, or 0 on timeout/no data.

virtual ~XvcConnection()
[header] [impl]

Closes this XVC TCP sub-connection.