GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > LCBD / V1-4-0

Constituent: test_lcbb     Tag: mv2304


Interface   Data Structures   File List   Data Fields   Globals  

LCB_cr.h File Reference

Defines the command (request) and result items and lists for access to the LCB internal registers and functionality. More...

#include "PBI/Endianness.h"
#include "LCBD/LATP.h"

Include dependency graph for LCB_cr.h:

This graph shows which files directly or indirectly include this file:


Data Structures

struct  _LCB_cl_hdr
 Layout of a command list header. More...
struct  _LCB_ci_hdr_bf
 Structure to map out the bit fields of a command item header. More...
union  _LCB_ci_hdr
 Union of an uninterpretted 32-bit integer with the bit field representation. More...
struct  _LCB_ci_cmd_payload
 Lays out the payload portion of the transmit command and transmit command with response. More...
struct  _LCB_ci_simple
 Defines a simple command item. More...
struct  _LCB_cl_simple
 Defines a simple command list. More...
struct  _LCB_ci_reg
 Defines a register access command item. More...
struct  _LCB_cl_reg
 Defines the register access command list. More...
struct  _LCB_rl_hdr
 Layout of a result list header. More...
struct  _LCB_ri_hdr_bf
 layout of a 32-bit result item header More...
union  _LCB_ri_hdr
 union for 32-bit LCB result item header More...
struct  _LCB_ri_err_bf
 layout of a 32-bit LCB result item error field More...
union  _LCB_ri_err
 union for 32-bit LCB result item error More...
struct  _LCB_ri_simple
 layout of a simple LCB result item More...
struct  _LCB_rl_simple
 Defines a simple result list. More...
struct  _LCB_ri_cmd_payload
 Lays out the payload portion of the transmit command and transmit command with response. More...
struct  _LCB_ri_response
 layout of a response LCB result item More...
struct  _LCB_rl_response
 Defines a response result list. More...
struct  _LCB_ri_reg
 layout of a register response LCB result item More...
struct  _LCB_rl_reg
 Defines the register access result list. More...
struct  _LCB_ci_cmd
 Defines the transmit command without wait on response. More...
struct  _LCB_cl_cmd
 Defines a transmit commmand command list. More...
struct  _LCB_ci_event
 Defines the event transfer command item. More...
struct  _LCB_cl_event
 Defines the event command list. More...
struct  _LCB_ci_cmdr
 Defines the transmit command with wait on response. More...
struct  _LCB_cl_cmdr
 Defines a transmit commmand with wait on response command list. More...
struct  _LCB_csr_bf
 Bit field map of the LCB's LATp backend CSR register. More...
union  _LCB_csr
 union for 32-bit CSR register More...
struct  _LCB_faults_bf
 Bit map of the LATp backend FIFO FAULTS register. More...
union  _LCB_faults
 Union for 32-bit FIFO FAULTs register. More...
struct  _LCB_rxstats_bf
 Bit map of the LATp backend RECEIVE STATISTICS/STATUS register. More...
union  _LCB_rxstats
 Union for 32-bit RECEIVE STATISTICS/STATUS register. More...
union  _LCB_ci
 Defines a union of all command item. More...
struct  _LCB_cl
 Defines a structure encompassing all command lists. More...
union  _LCB_ri
 union for the two types of result item More...
struct  _LCB_rl
 Defines a structure encompassing all result lists. More...

Defines

#define LCB_RESULT_ADDR_MASK   (~0xF)
 Bitmask for the LCB result descriptor address bits.
#define LCB_REQUEST_ADDR_MASK   (~0x1FF)
 Bitmask for the LCB request descriptor address bits.
#define LCB_CI_HDR(_len32, _opcode)   (((_len32) << LCB_CI_HDR_V_LEN) | ((_opcode) << LCB_CI_HDR_V_OPCODE))
 Composes the header word for a command item.
#define LCB_CI_EVENT_LEN_32(_ints)
 Rounds the given number of integers to the next highest number of cells, returning the answer in ints.
#define LCB_CI_EVENT(_name, _n32)
 Defines a struct and typedef of the specified name for an event command item of the specified size.
#define LCB_CI_CMD(_payload, _stall)   { LCB_CI_HDR_CMD, _payload, _stall }
 Provides a method of statically composing a data statement that can be used to initialize a TRANSMIT COMMAND with no response command item.
#define LCB_CI_MARK_TIME(_stall)   { LCB_CI_HDR_MARK_TIME, _stall }
 Provides a method of statically composing a data statement that can be used to initialize a MARK TIME command item.
#define LCB_CI_LAT_RESET(_stall)   { LCB_CI_HDR_LAT_RESET, _stall }
 Provides a method of statically composing a data statement that can be used to initialize a LAT RESET command item.
#define LCB_CI_CMDR(_payload, _timeout)   { LCB_CI_HDR_CMDR, _payload, _timeout }
 Provides a method of statically composing a data statement that can be used to initialize a TRANSMIT COMMAND with no response command item.
#define LCB_CI_CSR(_value, _field_select, _stall)   { LCB_CI_HDR_CSR, _value, _field_select, _stall }
 Provides a method of statically composing a data statement that can be used to initialize a CSR ACCESS command item.
#define LCB_CI_FAULTS(_value, _field_select, _stall)   { LCB_CI_HDR_FAULTS, _value, _field_select, _stall }
 Provides a method of statically composing a data statement that can be used to initialize a FIFO FAULTS ACCESS command item.
#define LCB_CI_RXSTATS(_value, _field_select, _stall)   { LCB_CI_HDR_RXSTATS, _value, _field_select, _stall }
 Provides a method of statically composing a data statement that can be used to initialize a RECEIVE STATISTICS/STATUS ACCESS command item.

Typedefs

typedef enum _LCB_OPCODE LCB_OPCODE
 Typedefs for enum.
typedef enum _LCB_CI_N4BYTES LCB_CI_N4BYTES
 Typedef for enum _LCB_CI_N4BYTES.
typedef enum _LCB_CI_N8BYTES LCB_CI_N8BYTES
 Typedef for enum _LCB_CI_N8BYTES.
typedef _LCB_cl_hdr LCB_cl_hdr
 Typedef for struct _LCB_cl_hdr.
typedef enum _LCB_CI_HDR_S LCB_CI_HDR_S
 Typedef for enum _LCB_CI_HDR_S.
typedef enum _LCB_CI_HDR_V LCB_CI_HDR_V
 Typedef for enum _LCB_CI_HDR_V.
typedef enum _LCB_CI_HDR_M LCB_CI_HDR_M
 Typedef for enum _LCB_CI_HDR_M.
typedef _LCB_ci_hdr_bf LCB_ci_hdr_bf
 Typedef for struct _LCB_ci_hdr_bf.
typedef _LCB_ci_hdr LCB_ci_hdr
 Typedef for union _LCB_ci_hdr.
typedef enum _LCB_CI_HDR LCB_CI_HDR
 Typedefs for enum.
typedef _LATP_cell_hdr LCB_ci_latp
 Synomyn for union _LATP_cell_hdr, just to keep the naming conventions consistent.
typedef _LCB_ci_cmd_payload LCB_ci_cmd_payload
 Typedef for struct _LCB_ci_cmd_payload.
typedef _LCB_ci_simple LCB_ci_simple
 Typedef for struct.
typedef _LCB_cl_simple LCB_cl_simple
 Typedef for struct.
typedef _LCB_ci_reg LCB_ci_reg
 Typedef for struct.
typedef _LCB_cl_reg LCB_cl_reg
 Typedef for struct.
typedef enum _LCB_RI_N4BYTES LCB_RI_N4BYTES
 Typedef for enum _LCB_RI_N4BYTES.
typedef enum _LCB_RI_N8BYTES LCB_RI_N8BYTES
 Typedef for enum _LCB_RI_N8BYTES.
typedef _LCB_rl_hdr LCB_rl_hdr
 Typedef for struct _LCB_rl_hdr.
typedef enum _LCB_RI_HDR_S LCB_RI_HDR_S
 Typedef for enum _LCB_RI_HDR_S.
typedef enum _LCB_RI_HDR_V LCB_RI_HDR_V
 Typedef for enum _LCB_RI_HDR_V.
typedef enum _LCB_RI_HDR_M LCB_RI_HDR_M
 Typedef for enum _LCB_RI_HDR_M.
typedef _LCB_ri_hdr_bf LCB_ri_hdr_bf
 Typedef for struct _LCB_ri_hdr_bf.
typedef _LCB_ri_hdr LCB_ri_hdr
 Typedef for union _LCB_ri_hdr.
typedef enum _LCB_RI_ERR_S LCB_RI_ERR_S
 Typedef for enum _LCB_RI_ERR_S.
typedef enum _LCB_RI_ERR_V LCB_RI_ERR_V
 Typedef for enum _LCB_RI_ERR_V.
typedef enum _LCB_RI_ERR_M LCB_RI_ERR_M
 Typedef for enum _LCB_RI_ERR_M.
typedef _LCB_ri_err_bf LCB_ri_err_bf
 Typedef for struct _LCB_ri_err_bf.
typedef _LCB_ri_err LCB_ri_err
 Typedef for union _LCB_ri_err.
typedef _LCB_ri_simple LCB_ri_simple
 Typedef for struct _LCB_ri_simple.
typedef _LCB_rl_simple LCB_rl_simple
 Typedef for struct.
typedef _LCB_ri_cmd_payload LCB_ri_cmd_payload
 Typedef for struct _LCB_ri_cmd_payload.
typedef _LCB_ri_response LCB_ri_response
 Typedef for struct _LCB_ri_response.
typedef _LCB_rl_response LCB_rl_response
 Typedef for struct.
typedef _LCB_ri_reg LCB_ri_reg
 Typedef for struct _LCB_ri_reg.
typedef _LCB_rl_reg LCB_rl_reg
 Typedef for struct.
typedef _LCB_ci_cmd LCB_ci_cmd
 Typedef for struct.
typedef _LCB_cl_cmd LCB_cl_cmd
 Typedef for struct.
typedef LCB_ri_simple LCB_ri_cmd
 Defines the transmit command result item.
typedef LCB_rl_simple LCB_rl_cmd
 Typedef for the transmit command result list.
typedef LCB_ci_simple LCB_ci_mark_time
 Typedef for the mark time command item.
typedef LCB_cl_simple LCB_cl_mark_time
 Typedef for the mark time command list.
typedef LCB_ri_simple LCB_ri_mark_time
 Typedef for the mark time result item.
typedef LCB_rl_simple LCB_rl_mark_time
 Typedef for the mark time result list.
typedef _LATP_pckt_hdr LCB_ci_event_pckt_hdr
 Synoymn for union _LATP_pckt_hdr, just to keep the naming conventions consistent.
typedef _LCB_ci_event LCB_ci_event
 Typedef for struct.
typedef _LCB_cl_event LCB_cl_event
 Typedef for struct.
typedef LCB_ri_simple LCB_ri_event
 Typedef for struct.
typedef LCB_rl_simple LCB_rl_event
 Typedef for struct.
typedef _LCB_ci_cmdr LCB_ci_cmdr
 Typedef for struct.
typedef _LCB_cl_cmdr LCB_cl_cmdr
 Typedef for struct.
typedef LCB_ri_response LCB_ri_cmdr
 Typedef for the transfer command and wait on response result item.
typedef LCB_rl_response LCB_rl_cmdr
 Typedef for the transmit command and wait on response result list.
typedef LCB_ci_simple LCB_ci_lat_reset
 Typedef for the Reset LAT command item.
typedef LCB_cl_simple LCB_cl_lat_reset
 Typedef for the Reset LAT command list.
typedef LCB_ri_simple LCB_ri_lat_reset
 Typedef for the Reset LAT result item.
typedef LCB_rl_simple LCB_rl_lat_reset
 Typedef for the Reset LAT result list.
typedef enum _LCB_CSR_S LCB_CSR_S
 Typedef for enum _LCB_CSR_S.
typedef enum _LCB_CSR_V LCB_CSR_V
 Typedef for enum _LCB_CSR_V.
typedef enum _LCB_CSR_M LCB_CSR_M
 Typedef for enum _LCB_CSR_M.
typedef _LCB_csr_bf LCB_csr_bf
 Typedef form struct.
typedef _LCB_csr LCB_csr
 typedef for union
typedef LCB_ci_reg LCB_ci_csr
 Typedef for the CSR command item.
typedef LCB_cl_reg LCB_cl_csr
 Typedef for the CSR command list.
typedef LCB_ri_reg LCB_ri_csr
 Typedef for the CSR result item.
typedef LCB_rl_reg LCB_rl_csr
 Typedef for the CSR result list.
typedef enum _LCB_FAULTS_S LCB_FAULTS_S
 Typedef for enum _LCB_FAULTS_S.
typedef enum _LCB_FAULTS_V LCB_FAULTS_V
 Typedef for enum _LCB_FAULTS_V.
typedef enum _LCB_FAULTS_M LCB_FAULTS_M
 Typedef for enum _LCB_FAULTS_M.
typedef _LCB_faults_bf LCB_faults_bf
 Typedef for struct.
typedef _LCB_faults LCB_faults
 Typedef for union.
typedef LCB_ci_reg LCB_ci_faults
 Typedef for the FIFO Faults request item.
typedef LCB_cl_reg LCB_cl_faults
 Typedef for the FIFO Faults request list.
typedef LCB_ri_reg LCB_ri_faults
 Typedef for the FIFO Faults result item.
typedef LCB_rl_reg LCB_rl_faults
 Typedef for the FIFO Faults result list.
typedef enum _LCB_RXSTATS_S LCB_RXSTATS_S
 Typedef for enum _LCB_RXSTATS_S.
typedef enum _LCB_RXSTATS_V LCB_RXSTATS_V
 Typedef for enum _LCB_RXSTATS_V.
typedef enum _LCB_RXSTATS_M LCB_RXSTATS_M
 Typedef for enum _LCB_RXSTATS_M.
typedef _LCB_rxstats_bf LCB_rxstats_bf
 Typedef for struct.
typedef _LCB_rxstats LCB_rxstats
 Typedef for union.
typedef LCB_ci_reg LCB_ci_rxstats
 Typedef for the RECEIVE STATISTICS/STATUS request item.
typedef LCB_cl_reg LCB_cl_rxstats
 Typedef for the RECEIVE STATISTICS/STATUS request list.
typedef LCB_ri_reg LCB_ri_rxstats
 Typedef for the RECEIVE STATISTICS/STATUS result item.
typedef LCB_rl_reg LCB_rl_rxstats
 Typedef for the RECEIVE STATISTICS/STATUS result list.
typedef _LCB_ci LCB_ci
 Typedef for struct.
typedef _LCB_cl LCB_cl
 Typedef for struct.
typedef _LCB_ri LCB_ri
 Typedef for union _LCB_ri.
typedef _LCB_rl LCB_rl
 Typedef for struct.

Enumerations

enum  _LCB_OPCODE {
  LCB_OPCODE_CMD = 0x0,
  LCB_OPCODE_MARK_TIME = 0x1,
  LCB_OPCODE_EVENT = 0x2,
  LCB_OPCODE_LAT_RESET = 0x3,
  LCB_OPCODE_CMDR = 0x4,
  LCB_OPCODE_CSR = 0x5,
  LCB_OPCODE_6 = 0x6,
  LCB_OPCODE_FAULTS = 0x7,
  LCB_OPCODE_8 = 0x8,
  LCB_OPCODE_RXSTATS = 0x9,
  LCB_OPCODE_A = 0x6,
  LCB_OPCODE_B = 0x6,
  LCB_OPCODE_C = 0x6,
  LCB_OPCODE_D = 0x6,
  LCB_OPCODE_E = 0x6,
  LCB_OPCODE_F = 0x6
}
 Enumerates the values of the opcodes for each of the LCB's commands. More...
enum  _LCB_CI_N4BYTES {
  LCB_CI_N4BYTES_CMD = 6,
  LCB_CI_N4BYTES_MARK_TIME = 2,
  LCB_CI_N4BYTES_EVENT = 2,
  LCB_CI_N4BYTES_LAT_RESET = 2,
  LCB_CI_N4BYTES_CMDR = 6,
  LCB_CI_N4BYTES_CSR = 4,
  LCB_CI_N4BYTES_FAULTS = 4,
  LCB_CI_N4BYTES_RXSTATS = 4
}
 Enumerates the size, in 4 bytes units, of each result item. More...
enum  _LCB_CI_N8BYTES {
  LCB_CI_N8BYTES_CMD = 3,
  LCB_CI_N8BYTES_MARK_TIME = 1,
  LCB_CI_N8BYTES_EVENT = 1,
  LCB_CI_N8BYTES_LAT_RESET = 1,
  LCB_CI_N8BYTES_CMDR = 3,
  LCB_CI_N8BYTES_CSR = 2,
  LCB_CI_N8BYTES_FAULTS = 2,
  LCB_CI_N8BYTES_RXSTATS = 2
}
 Enumerates the size, in 8 bytes units, of each result item. More...
enum  _LCB_CI_HDR_S {
  LCB_CI_HDR_S_OPCODE = 4,
  LCB_CI_HDR_S_MBZ0 = 12,
  LCB_CI_HDR_S_LEN = 10,
  LCB_CI_HDR_S_MBZ1 = 6
}
 LCB command item header field sizes, in bits. More...
enum  _LCB_CI_HDR_V {
  LCB_CI_HDR_V_OPCODE = 0,
  LCB_CI_HDR_V_MBZ0 = 4,
  LCB_CI_HDR_V_LEN = 16,
  LCB_CI_HDR_V_MBZ1 = 22
}
 LCB command item header field right bit offsets. More...
enum  _LCB_CI_HDR_M {
  LCB_CI_HDR_M_OPCODE = 0x0000000f,
  LCB_CI_HDR_M_MBZ0 = 0x0000fff0,
  LCB_CI_HDR_M_LEN = 0x03ff0000,
  LCB_CI_HDR_M_MBZ1 = 0xfc000000
}
 LCB command item header field, in place masks. More...
enum  _LCB_CI_HDR {
  LCB_CI_HDR_CMD = HDR (4,CMD),
  LCB_CI_HDR_MARK_TIME = HDR (0,MARK_TIME),
  LCB_CI_HDR_LAT_RESET = HDR (0,LAT_RESET),
  LCB_CI_HDR_CMDR = HDR (4,CMDR),
  LCB_CI_HDR_CSR = HDR (2,CSR ),
  LCB_CI_HDR_FAULTS = HDR (2,FAULTS),
  LCB_CI_HDR_RXSTATS = HDR (2,RXSTATS)
}
 Enumerates the values of the command item header (length/opcode) word for each of the LCB's commands. More...
enum  _LCB_RI_N4BYTES {
  LCB_RI_N4BYTES_CMD = 2,
  LCB_RI_N4BYTES_MARK_TIME = 2,
  LCB_RI_N4BYTES_EVENT = 2,
  LCB_RI_N4BYTES_LAT_RESET = 2,
  LCB_RI_N4BYTES_CMDR = 6,
  LCB_RI_N4BYTES_CSR = 4,
  LCB_RI_N4BYTES_FAULTS = 4,
  LCB_RI_N4BYTES_RXSTATS = 4
}
 Enumerates the size, in 4 bytes units, of each result item. More...
enum  _LCB_RI_N8BYTES {
  LCB_RI_N8BYTES_CMD = 1,
  LCB_RI_N8BYTES_MARK_TIME = 1,
  LCB_RI_N8BYTES_EVENT = 1,
  LCB_RI_N8BYTES_LAT_RESET = 1,
  LCB_RI_N8BYTES_CMDR = 3,
  LCB_RI_N8BYTES_CSR = 2,
  LCB_RI_N8BYTES_FAULTS = 2,
  LCB_RI_N8BYTES_RXSTATS = 2
}
 Enumerates the size, in 8 bytes units, of each result item. More...
enum  _LCB_RI_HDR_S {
  LCB_RI_HDR_S_TIMESTAMP = 24,
  LCB_RI_HDR_S_RESERVED1 = 4,
  LCB_RI_HDR_S_OPCODE = 4
}
 LCB result item header field sizes, in bits. More...
enum  _LCB_RI_HDR_V {
  LCB_RI_HDR_V_TIMESTAMP = 0,
  LCB_RI_HDR_V_RESERVED1 = 24,
  LCB_RI_HDR_V_OPCODE = 28
}
 LCB result item header field sizes, right offset. More...
enum  _LCB_RI_HDR_M {
  LCB_RI_HDR_M_TIMESTAMP = 0x00ffffff,
  LCB_RI_HDR_M_RESERVED1 = 0x0f000000,
  LCB_RI_HDR_M_OPCODE = 0xf0000000
}
 LCB result item header field sizes, in place masks. More...
enum  _LCB_RI_ERR_S {
  LCB_RI_ERR_S_ERR = 16,
  LCB_RI_ERR_S_RESERVED1 = 16
}
 Result item error fields, size in bits. More...
enum  _LCB_RI_ERR_V {
  LCB_RI_ERR_V_ERR = 16,
  LCB_RI_ERR_V_RESERVED1 = 16
}
 Result item error fields, right offset. More...
enum  _LCB_RI_ERR_M {
  LCB_RI_ERR_M_ERR = 0x0000ffff,
  LCB_RI_ERR_M_RESERVED1 = 0xffff0000
}
 Result item error fields, in place masks. More...
enum  _LCB_CSR_S {
  LCB_CSR_S_USER_0 = 1,
  LCB_CSR_S_EVT_ENABLE = 1,
  LCB_CSR_S_ICLK_TRAILING = 1,
  LCB_CSR_S_OCLK_TRAILING = 1,
  LCB_CSR_S_HDR_PARITY = 1,
  LCB_CSR_S_PAYLOAD_PARITY = 1,
  LCB_CSR_S_BACK_PRESSURE = 1,
  LCB_CSR_S_USER_1 = 1,
  LCB_CSR_S_BOARD_ID = 5,
  LCB_CSR_S_MUST_BE_1 = 1,
  LCB_CSR_S_LATP8 = 1,
  LCB_CSR_S_RESET = 1,
  LCB_CSR_S_EVT_PAUSED = 1,
  LCB_CSR_S_USER = 7,
  LCB_CSR_S_VERSION = 8
}
 The sizes, in bits of the LATp backend CSR register fields. More...
enum  _LCB_CSR_V {
  LCB_CSR_V_USER_0 = 0,
  LCB_CSR_V_EVT_ENABLE = 1,
  LCB_CSR_V_ICLK_TRAILING = 2,
  LCB_CSR_V_OCLK_TRAILING = 3,
  LCB_CSR_V_HDR_PARITY = 4,
  LCB_CSR_V_PAYLOAD_PARITY = 5,
  LCB_CSR_V_BACK_PRESSURE = 6,
  LCB_CSR_V_USER_1 = 7,
  LCB_CSR_V_BOARD_ID = 8,
  LCB_CSR_V_MUST_BE_1 = 13,
  LCB_CSR_V_LATP8 = 14,
  LCB_CSR_V_RESET = 15,
  LCB_CSR_V_EVT_PAUSED = 16,
  LCB_CSR_V_USER = 17,
  LCB_CSR_V_VERSION = 24
}
 The right shift offset of the LATp backend CSR register fields. More...
enum  _LCB_CSR_M {
  LCB_CSR_M_USER_0 = (0x01 << LCB_CSR_V_USER_0),
  LCB_CSR_M_EVT_ENABLE = (0x01 << LCB_CSR_V_EVT_ENABLE),
  LCB_CSR_M_ICLK_TRAILING = (0x01 << LCB_CSR_V_ICLK_TRAILING),
  LCB_CSR_M_OCLK_TRAILING = (0x01 << LCB_CSR_V_OCLK_TRAILING),
  LCB_CSR_M_HDR_PARITY = (0x01 << LCB_CSR_V_HDR_PARITY),
  LCB_CSR_M_PAYLOAD_PARITY = (0x01 << LCB_CSR_V_PAYLOAD_PARITY),
  LCB_CSR_M_BACK_PRESSURE = (0x01 << LCB_CSR_V_BACK_PRESSURE),
  LCB_CSR_M_USER_1 = (0x01 << LCB_CSR_V_USER_1),
  LCB_CSR_M_BOARD_ID = (0x1f << LCB_CSR_V_BOARD_ID),
  LCB_CSR_M_MUST_BE_1 = (0x01 << LCB_CSR_V_MUST_BE_1),
  LCB_CSR_M_LATP8 = (0x01 << LCB_CSR_V_LATP8),
  LCB_CSR_M_RESET = (0x01 << LCB_CSR_V_RESET),
  LCB_CSR_M_EVT_PAUSED = (0x01 << LCB_CSR_V_EVT_PAUSED),
  LCB_CSR_M_USER = (0x7f << LCB_CSR_V_USER),
  LCB_CSR_M_VERSION = (0xff << LCB_CSR_V_VERSION)
}
 The in place mask of the LATp backend CSR register fields. More...
enum  _LCB_FAULTS_S {
  LCB_FAULTS_S_PENDEVT_ER = 1,
  LCB_FAULTS_S_PENDEVT_FW = 1,
  LCB_FAULTS_S_EVTBUF_ER = 1,
  LCB_FAULTS_S_EVTBUF_FW = 1,
  LCB_FAULTS_S_RSTBUF_ER = 1,
  LCB_FAULTS_S_RSTBUF_FW = 1,
  LCB_FAULTS_S_PENDRST_ER = 1,
  LCB_FAULTS_S_PENDRST_FW = 1,
  LCB_FAULTS_S_REQBUF_ER = 1,
  LCB_FAULTS_S_REQBUF_FW = 1,
  LCB_FAULTS_S_PENDREQ_ER = 1,
  LCB_FAULTS_S_PENDREQ_FW = 1,
  LCB_FAULTS_S_UNUSED1 = 20
}
 The sizes, in bits of the LATp backend FAULTS register fields. More...
enum  _LCB_FAULTS_V {
  LCB_FAULTS_V_PENDEVT_ER = 0,
  LCB_FAULTS_V_PENDEVT_FW = 1,
  LCB_FAULTS_V_EVTBUF_ER = 2,
  LCB_FAULTS_V_EVTBUF_FW = 3,
  LCB_FAULTS_V_RSTBUF_ER = 4,
  LCB_FAULTS_V_RSTBUF_FW = 5,
  LCB_FAULTS_V_PENDRST_ER = 6,
  LCB_FAULTS_V_PENDRST_FW = 7,
  LCB_FAULTS_V_REQBUF_ER = 8,
  LCB_FAULTS_V_REQBUF_FW = 9,
  LCB_FAULTS_V_PENDREQ_ER = 10,
  LCB_FAULTS_V_PENDREQ_FW = 11,
  LCB_FAULTS_V_UNUSED1 = 12
}
 The right offset, in bits, of the LATp backend FAULTS register fields. More...
enum  _LCB_FAULTS_M {
  LCB_FAULTS_M_PENDEVT_ER = (1 << LCB_FAULTS_V_PENDEVT_ER),
  LCB_FAULTS_M_PENDEVT_FW = (1 << LCB_FAULTS_V_PENDEVT_FW),
  LCB_FAULTS_M_EVTBUF_ER = (1 << LCB_FAULTS_V_EVTBUF_ER),
  LCB_FAULTS_M_EVTBUF_FW = (1 << LCB_FAULTS_V_EVTBUF_FW),
  LCB_FAULTS_M_RSTBUF_ER = (1 << LCB_FAULTS_V_RSTBUF_ER),
  LCB_FAULTS_M_RSTBUF_FW = (1 << LCB_FAULTS_V_RSTBUF_FW),
  LCB_FAULTS_M_PENDRST_ER = (1 << LCB_FAULTS_V_PENDRST_ER),
  LCB_FAULTS_M_PENDRST_FW = (1 << LCB_FAULTS_V_PENDRST_FW),
  LCB_FAULTS_M_REQBUF_ER = (1 << LCB_FAULTS_V_REQBUF_ER),
  LCB_FAULTS_M_REQBUF_FW = (1 << LCB_FAULTS_V_REQBUF_FW),
  LCB_FAULTS_M_PENDREQ_ER = (1 << LCB_FAULTS_V_PENDREQ_ER),
  LCB_FAULTS_M_PENDREQ_FW = (1 << LCB_FAULTS_V_PENDREQ_FW),
  LCB_FAULTS_M_UNUSED1 = (0xfffff < LCB_FAULTS_V_UNUSED1)
}
 The in-place mask, of the LATp backend FAULTS register fields. More...
enum  _LCB_RXSTATS_S {
  LCB_RXSTATS_S_CNT = 14,
  LCB_RXSTATS_S_CELL_PARITY = 1,
  LCB_RXSTATS_S_HEADER_PARITY = 1,
  LCB_RXSTATS_S_LATP_ADR = 1,
  LCB_RXSTATS_S_UNUSED1 = 15
}
 The sizes, in bits of the LATp backend RECEIVE STATISTICS/STATUS register fields. More...
enum  _LCB_RXSTATS_V {
  LCB_RXSTATS_V_CNT = 0,
  LCB_RXSTATS_V_CELL_PARITY = 14,
  LCB_RXSTATS_V_HEADER_PARITY = 15,
  LCB_RXSTATS_V_LATP_ADR = 16,
  LCB_RXSTATS_V_UNUSED1 = 17
}
 The right offset, in bits, of the LATp backend RECEIVE STATISTICS/STATUS register fields. More...
enum  _LCB_RXSTATS_M {
  LCB_RXSTATS_M_CNT = 0x00003fff,
  LCB_RXSTATS_M_CELL_PARITY = 0x00004000,
  LCB_RXSTATS_M_HEADER_PARITY = 0x00008000,
  LCB_RXSTATS_M_LATP_ADR = 0x00010000,
  LCB_RXSTATS_M_UNUSED1 = 0xfffe0000
}
 The in place mask, of the LATp backend RECEIVE STATISTICS/STATUS register fields. More...

Detailed Description

Defines the command (request) and result items and lists for access to the LCB internal registers and functionality.

Author:
JJRussell - russell@slac.stanford.edu
   CVS $Id

OVERVIEW
This defines C structures and constants to be used when accessing the LATp side registers and functionality.
What's Defined
The C structures corresponding to the request and result items are defined. These are almost universally useful. The C structures for the request and result lists corresponding to a single register access are also defined. The usefulness of these structures is limited to those cases where only a single register access is desired. By way of a counter-example, these are not useful when building lists of commands.
Constructing Custom Lists
As noted above, command and result lists are defined for single item lists. The user is encouraged to construct his own lists. This can be done either statically or dynamically.
Static Construction of Custom Lists
This is done by defining the appropriate "C" structures. The prescription is to lead off all such lists with the appropriate list header, either LCB_cl_hdr for command lists or LCB_rl_hdr for result lists, followed by the list of desired command or result items. In general, one will construct, the command and result lists corresponding in parallel.
Example,
To construct a list that will access the CSR and FAULTs
    typedef struct _RegAccessCl       typedef struct _RegAccessRl
    {                                 {
        LCB_cl_hdr        hdr;           LCB_rl_hdr        hdr;
        LCB_ci_csr        csr;           LCB_ri_csr        csr;
        LCB_ci_faults  faults;           LCB_ri_faults  faults;
    }                                 }
    RegAccessCl;                      RegAccessRl;

Dynamic Construction Of Custom Lists
The prescription is
  1. Compute the amount of memory needed for both the command and result lists. Keep in mind, that the lengths of these lists are not the same
  2. Allocate the properly aligned memory.
  3. Fill the command items, one-by-one
  4. Submit the fill command list to the driver
  5. When the command completes, parse the result items
COMMANDS
The following commands can be issued by the LCB. They are classified by its
  1. Opcode
  2. Shape of its request item
    • Simple, fixed 8 byte structure (header only)
    • Register, fixed 16 byte structure (header + 1 LATp cell)
    • Command, fixed 24 byte structure (header + 2 LATp cell)
    • Event Xfr, variable (header + variable length payload)
  3. Shape of its result item
    • Simple, fixed 8 byte structure (header only)
    • Response, fixed 24 byte structure (header + 2 LATp cells)
    • Register, fixed 15 byte structure (header + 1 LATp cels)
Opcode Name Request Class Result Class

0000 Transmit Command Command Simple

0001 Mark Time Simple Simple

0010 Transmit Event Event Xfr Simple

0011 Reset LAT Simple Simple

0100 Transmit Command and Wait for Response Command Response

0101 Access CSR Register Register

1001 Access FIFO Faults Register Register

0111 Access Receive Stats Register Register


Define Documentation

#define LCB_CI_CMD _payload,
_stall   )     { LCB_CI_HDR_CMD, _payload, _stall }
 

Provides a method of statically composing a data statement that can be used to initialize a TRANSMIT COMMAND with no response command item.

Parameters:
_payload The transfer command's payload
_stall The stall time, in units of 20MHz clock ticks

#define LCB_CI_CMDR _payload,
_timeout   )     { LCB_CI_HDR_CMDR, _payload, _timeout }
 

Provides a method of statically composing a data statement that can be used to initialize a TRANSMIT COMMAND with no response command item.

Parameters:
_payload The transfer command's payload
_timeout The timeout period, in units of 20MHz clock ticks.

#define LCB_CI_CSR _value,
_field_select,
_stall   )     { LCB_CI_HDR_CSR, _value, _field_select, _stall }
 

Provides a method of statically composing a data statement that can be used to initialize a CSR ACCESS command item.

Parameters:
_value The value to write. Only bits matching those in the _field_select parameter will actually be written.
_field_select Pattern of those bits in value to write
_stall The stall time, in units of 20MHz clock ticks

#define LCB_CI_EVENT _name,
_n32   ) 
 

Value:

typedef struct _ ## _name           \
{                                   \
   unsigned int          header;  \
   LCB_ci_event_pckt_hdr   latp;  \
   unsigned long int  dat[_n32];  \
}                                   \
_name;
Defines a struct and typedef of the specified name for an event command item of the specified size.

Parameters:
_name The typedef name of the structure. The structure name will be this name prefixed by one underscore.
_n32 The number of 32 bit data words. This must be less than or equal to 1024.
This macro allows one to define LCB event command list items of arbitrary sizes

#define LCB_CI_EVENT_LEN_32 _ints   ) 
 

Value:

LATP_NCELLS_BYTES ((_ints) * sizeof (unsigned int)) *              \
        LATP_CELL_SIZE_INTS
Rounds the given number of integers to the next highest number of cells, returning the answer in ints.

This macro can be used to round the size of a buffer, specified in ints, to be sent over the event fabric to the length argument needed by the hardware.

#define LCB_CI_FAULTS _value,
_field_select,
_stall   )     { LCB_CI_HDR_FAULTS, _value, _field_select, _stall }
 

Provides a method of statically composing a data statement that can be used to initialize a FIFO FAULTS ACCESS command item.

Parameters:
_value The value to write. Only bits matching those in the _field_select parameter will actually be written.
_field_select Pattern of those bits in value to write
_stall The stall time, in units of 20MHz clock ticks

#define LCB_CI_HDR _len32,
_opcode   )     (((_len32) << LCB_CI_HDR_V_LEN) | ((_opcode) << LCB_CI_HDR_V_OPCODE))
 

Composes the header word for a command item.

Parameters:
_len32 The length of the command item in 32-bit words.
_opcode The command's opcode

#define LCB_CI_LAT_RESET _stall   )     { LCB_CI_HDR_LAT_RESET, _stall }
 

Provides a method of statically composing a data statement that can be used to initialize a LAT RESET command item.

Parameters:
_stall The stall time, in units of 20MHz clock ticks

#define LCB_CI_MARK_TIME _stall   )     { LCB_CI_HDR_MARK_TIME, _stall }
 

Provides a method of statically composing a data statement that can be used to initialize a MARK TIME command item.

Parameters:
_stall The stall time, in units of 20MHz clock ticks

#define LCB_CI_RXSTATS _value,
_field_select,
_stall   )     { LCB_CI_HDR_RXSTATS, _value, _field_select, _stall }
 

Provides a method of statically composing a data statement that can be used to initialize a RECEIVE STATISTICS/STATUS ACCESS command item.

Parameters:
_value The value to write. Only bits matching those in the _field_select parameter will actually be written.
_field_select Pattern of those bits in value to write
_stall The stall time, in units of 20MHz clock ticks


Typedef Documentation

LCB_ci
 

Typedef for struct.

See also:
_LCB_ci

LCB_ci_cmd
 

Typedef for struct.

See also:
_LCB_ci_cmd

LCB_ci_cmd_payload
 

Typedef for struct _LCB_ci_cmd_payload.

There are two things to note about the command payload

  1. It follows the definition in the LCB document, defining the LATp header template as part of the payload
  2. The LATp header definition contains is, in fact, the header template, containing only the prototype and destination fields. All other fields are filled in by the LCB as the message goes out.

LCB_ci_cmdr
 

Typedef for struct.

See also:
_LCB_ci_cmdr

LCB_ci_event
 

Typedef for struct.

See also:
_LCB_ci_event

LCB_CI_HDR
 

Typedefs for enum.

See also:
_LCB_CI_HDR
Note that this can only be defined for commands

LCB_ci_hdr
 

Typedef for union _LCB_ci_hdr.

Note:
The command item are not defined in exactly the same way as result items. All result items have their header field defined as the union of an unintepretted 32-bit integer and the bit field represention. For the command items, the header field is defined as just the uninterpretted 332-bit integer, except in the grand union LCB_ci. This was done because the code writes and reads cleaner. Rarely does one need to access the fields separately, and, without transparent unions, the code just looks messier always typing
     ci->hdr.ui = header;

LCB_ci_reg
 

Typedef for struct.

See also:
_LCB_ci_reg
Warning:
This structure is meant only for internal use. Please use the command item structures defined for each specific register command, e.g. LCB_ci_csr, LCB_ci_faults and LCB_ci_rxstats.

LCB_ci_simple
 

Typedef for struct.

See also:
_LCB_ci_simple
Warning:
This structure is meant only for internal use. Please use the command item structures defined for each specific command, e.g. LCB_ci_mark, LCB_ci_reset, etc.

LCB_cl
 

Typedef for struct.

See also:
_LCB_ci

LCB_cl_cmd
 

Typedef for struct.

See also:
_LCB_cl_cmd

LCB_cl_cmdr
 

Typedef for struct.

See also:
_LCB_cl_cmdr

LCB_cl_event
 

Typedef for struct.

See also:
_LCB_cl_event

LCB_cl_reg
 

Typedef for struct.

See also:
_LCB_cl_reg
Warning:
This structure is meant only for internal use. Please use the command list structures defined for each specific register command, e.g. LCB_cl_csr, LCB_cl_faults and LCB_cl_rxstats.

LCB_cl_simple
 

Typedef for struct.

See also:
_LCB_cl_simple
Warning:
This structure is meant only for internal use. Please use the command list structures defined for each specific command list, e.g. LCB_cl_mark, LCB_cl_reset, etc.

LCB_csr
 

typedef for union

See also:
_LCB_csr

LCB_csr_bf
 

Typedef form struct.

See also:
_LCB_csr

LCB_faults
 

Typedef for union.

See also:
_LCB_faults

LCB_faults_bf
 

Typedef for struct.

See also:
_LCB_faults

LCB_OPCODE
 

Typedefs for enum.

See also:
_LCB_OPCODE

LCB_ri_cmd_payload
 

Typedef for struct _LCB_ri_cmd_payload.

There are two things to note about the response payload

  1. It follows the definition in the LATP document
  2. It is not the same as LCB_ci_cmd_payload

LCB_ri_event
 

Typedef for struct.

See also:
_LCB_ri_event

LCB_ri_reg
 

Typedef for struct _LCB_ri_reg.

Warning:
This structure is meant only for internal use. Please use the result item structures defined for each specific register result item, e.g. LCB_ri_csr, LCB_ri_faults and LCB_ri_rxstats.

LCB_ri_simple
 

Typedef for struct _LCB_ri_simple.

Warning:
This structure is meant only for internal use. Please use the result item structures defined for each specific result, e.g. LCB_ri_mark, LCB_ri_reset, etc.

LCB_rl
 

Typedef for struct.

See also:
_LCB_rl

LCB_rl_event
 

Typedef for struct.

See also:
_LCB_rl_event

LCB_rl_reg
 

Typedef for struct.

See also:
_LCB_rl_reg
Warning:
This structure is meant only for internal use. Please use the result list structures defined for each specific register result list, e.g. LCB_rl_csr, LCB_rl_faults and LCB_rl_rxstats.

LCB_rl_response
 

Typedef for struct.

See also:
_LCB_rl_response

LCB_rl_simple
 

Typedef for struct.

See also:
_LCB_rl_simple
Warning:
This structure is meant only for internal use. Please use the result list structures defined for each specific result list, e.g. LCB_rl_mark, LCB_rl_reset, etc.

LCB_rxstats
 

Typedef for union.

See also:
_LCB_rxstats

LCB_rxstats_bf
 

Typedef for struct.

See also:
_LCB_rxstats


Enumeration Type Documentation

enum _LCB_CI_HDR
 

Enumerates the values of the command item header (length/opcode) word for each of the LCB's commands.

Enumerator:
LCB_CI_HDR_CMD  Transmit command header
LCB_CI_HDR_MARK_TIME  Mark time header
LCB_CI_HDR_LAT_RESET  Reset LAT header
LCB_CI_HDR_CMDR  Transmit command and wait on response header
LCB_CI_HDR_CSR  Access CSR register header
LCB_CI_HDR_FAULTS  Access FIFO FAULTs register header
LCB_CI_HDR_RXSTATS  Access RECEIVE STATISTICS/ STATS register header

enum _LCB_CI_HDR_M
 

LCB command item header field, in place masks.

Enumerator:
LCB_CI_HDR_M_OPCODE  Opcode field, in place mask
LCB_CI_HDR_M_MBZ0  Reserved, must be 0 field, in place mask
LCB_CI_HDR_M_LEN  Length field, in place mask
LCB_CI_HDR_M_MBZ1  Reserved, must be 0 field, in place mask

enum _LCB_CI_HDR_S
 

LCB command item header field sizes, in bits.

Enumerator:
LCB_CI_HDR_S_OPCODE  Opcode field, size in bits
LCB_CI_HDR_S_MBZ0  Reserved, must be 0 field, size in bits
LCB_CI_HDR_S_LEN  Length field, size in bits
LCB_CI_HDR_S_MBZ1  Reserved, must be 0 field, size in bits

enum _LCB_CI_HDR_V
 

LCB command item header field right bit offsets.

Enumerator:
LCB_CI_HDR_V_OPCODE  Opcode field, right offset
LCB_CI_HDR_V_MBZ0  Reserved, must be 0 field, right offset
LCB_CI_HDR_V_LEN  Length field, right offset
LCB_CI_HDR_V_MBZ1  Reserved, must be 0 field, right offset

enum _LCB_CI_N4BYTES
 

Enumerates the size, in 4 bytes units, of each result item.

Enumerator:
LCB_CI_N4BYTES_CMD  Transmit command -> 6 4-byte words
LCB_CI_N4BYTES_MARK_TIME  Mark time -> 2 4-byte words
LCB_CI_N4BYTES_EVENT  XMIT Event is variable, this is just the overhead piece and does not include the payload
LCB_CI_N4BYTES_LAT_RESET  Transmit reset -> 2 4-byte words
LCB_CI_N4BYTES_CMDR  Transmit command and wait on response -> 6 4-byte words
LCB_CI_N4BYTES_CSR  Transmit CSR access -> 4 4-byte words
LCB_CI_N4BYTES_FAULTS  Transmit FIFO FAULTS access -> 4 4-byte words
LCB_CI_N4BYTES_RXSTATS  Transmit Receive Stats access -> 4 4-byte words

enum _LCB_CI_N8BYTES
 

Enumerates the size, in 8 bytes units, of each result item.

Enumerator:
LCB_CI_N8BYTES_CMD  Transmit command -> 3 8-byte words
LCB_CI_N8BYTES_MARK_TIME  Mark time -> 1 8-byte words
LCB_CI_N8BYTES_EVENT  XMIT Event is variable, this is just the overhead piece and does not include the payload
LCB_CI_N8BYTES_LAT_RESET  Transmit reset -> 1 8-byte words
LCB_CI_N8BYTES_CMDR  Transmit command and wait on response -> 3 8-byte words
LCB_CI_N8BYTES_CSR  Transmit CSR access -> 2 8-byte words
LCB_CI_N8BYTES_FAULTS  Transmit FIFO FAULTS access -> 2 8-byte words
LCB_CI_N8BYTES_RXSTATS  Transmit RECEIVE STATISTICS/STATUS access -> 2 8-byte words

enum _LCB_CSR_M
 

The in place mask of the LATp backend CSR register fields.

See also:
LCB_csr_bf
Enumerator:
LCB_CSR_M_USER_0  User defined field mask
LCB_CSR_M_EVT_ENABLE  Event enable field, bit mask
LCB_CSR_M_ICLK_TRAILING  Clock on trailing edge (incoming)
LCB_CSR_M_OCLK_TRAILING  Clock on trailing edge (outgoing)
LCB_CSR_M_HDR_PARITY  Header parity, bit mask
LCB_CSR_M_PAYLOAD_PARITY  Payload parity, bit mask
LCB_CSR_M_BACK_PRESSURE  Pause stick, bit mask
LCB_CSR_M_USER_1  User field 1, bit mask
LCB_CSR_M_BOARD_ID  Board Id (LATp address), bit mask
LCB_CSR_M_MUST_BE_1  Reserved readonly field, bit mask
LCB_CSR_M_LATP8  Byte wide LATp flag offset
LCB_CSR_M_RESET  Generate PCI reset offset set note in LCB_csr_bf
LCB_CSR_M_EVT_PAUSED  Event paused (read only), bit mask
LCB_CSR_M_USER  Useer defined field, bit mask
LCB_CSR_M_VERSION  LATp FPGA version, bit mask

enum _LCB_CSR_S
 

The sizes, in bits of the LATp backend CSR register fields.

See also:
LCB_csr_bf
Enumerator:
LCB_CSR_S_USER_0  User Field 0 size, in bits
LCB_CSR_S_EVT_ENABLE  Event enable field size, in bits
LCB_CSR_S_ICLK_TRAILING  Clock on trailing edge (incoming) size, in bits
LCB_CSR_S_OCLK_TRAILING  Clock on trailing edge (outgoing) size, in bits
LCB_CSR_S_HDR_PARITY  Header parity size, in bits
LCB_CSR_S_PAYLOAD_PARITY  Payload parity size, in bits
LCB_CSR_S_BACK_PRESSURE  Assert back pressure size, in bits
LCB_CSR_S_USER_1  User Field 1 size, in bits
LCB_CSR_S_BOARD_ID  Board Id (LATp address) size,in bits
LCB_CSR_S_MUST_BE_1  Reserved readonly field
LCB_CSR_S_LATP8  Byte wide LATp flag
LCB_CSR_S_RESET  Generate PCI reset, see note in LCB_csr_bf
LCB_CSR_S_EVT_PAUSED  Event paused (read only)
LCB_CSR_S_USER  User defined field size, in bits
LCB_CSR_S_VERSION  LATp FPGA version size, in bits

enum _LCB_CSR_V
 

The right shift offset of the LATp backend CSR register fields.

See also:
LCB_csr_bf
Enumerator:
LCB_CSR_V_USER_0  User Field 0, offset
LCB_CSR_V_EVT_ENABLE  Event enable field offset
LCB_CSR_V_ICLK_TRAILING  Clock on trailing edge (incoming) field offset
LCB_CSR_V_OCLK_TRAILING  Clock on trailing edge (outgoing) field offset
LCB_CSR_V_HDR_PARITY  Header parity offset
LCB_CSR_V_PAYLOAD_PARITY  Payload parity offset
LCB_CSR_V_BACK_PRESSURE  Assert back pressure offset
LCB_CSR_V_USER_1  User Field 1, offset
LCB_CSR_V_BOARD_ID  Board Id (LATp address) offset
LCB_CSR_V_MUST_BE_1  Reserved readonly field offset
LCB_CSR_V_LATP8  Byte wide LATp flag offset
LCB_CSR_V_RESET  Generate PCI reset offset see note in LCB_csr_bf
LCB_CSR_V_EVT_PAUSED  Event paused (read only) offset
LCB_CSR_V_USER  User defined field offset
LCB_CSR_V_VERSION  LATp FPGA version offset

enum _LCB_FAULTS_M
 

The in-place mask, of the LATp backend FAULTS register fields.

See also:
LCB_faults_bf
Enumerator:
LCB_FAULTS_M_PENDEVT_ER  Pending events -- empty on read, bit mask
LCB_FAULTS_M_PENDEVT_FW  Pending events -- full on write, bit mask
LCB_FAULTS_M_EVTBUF_ER  Event buffer -- empty on read, bit mask
LCB_FAULTS_M_EVTBUF_FW  Event buffer -- full on write, bit mask
LCB_FAULTS_M_RSTBUF_ER  Result buffer -- empty on read, bit mask
LCB_FAULTS_M_RSTBUF_FW  Result buffer -- full on write, bit mask
LCB_FAULTS_M_PENDRST_ER  Pending result -- empty on read, bit mask
LCB_FAULTS_M_PENDRST_FW  Pending result -- full on write, bit mask
LCB_FAULTS_M_REQBUF_ER  Request buffer -- empty on read, bit mask
LCB_FAULTS_M_REQBUF_FW  Request buffer -- full on write, bit mask
LCB_FAULTS_M_PENDREQ_ER  Pending request -- empty on read, bit mask
LCB_FAULTS_M_PENDREQ_FW  Pending request -- full on write, bit mask
LCB_FAULTS_M_UNUSED1  Unused MBZ, bit mask

enum _LCB_FAULTS_S
 

The sizes, in bits of the LATp backend FAULTS register fields.

See also:
LCB_faults_bf
Enumerator:
LCB_FAULTS_S_PENDEVT_ER  Pending events -- empty on read, size in bits
LCB_FAULTS_S_PENDEVT_FW  Pending events -- full on write, size in bits
LCB_FAULTS_S_EVTBUF_ER  Event buffer -- empty on read, size in bits
LCB_FAULTS_S_EVTBUF_FW  Event buffer -- full on write, size in bits
LCB_FAULTS_S_RSTBUF_ER  Result buffer -- empty on read, size in bits
LCB_FAULTS_S_RSTBUF_FW  Result buffer -- full on write, size in bits
LCB_FAULTS_S_PENDRST_ER  Pending result -- empty on read, size in bits
LCB_FAULTS_S_PENDRST_FW  Pending result -- full on write, size in bits
LCB_FAULTS_S_REQBUF_ER  Request buffer -- empty on read, size in bits
LCB_FAULTS_S_REQBUF_FW  Request buffer -- full on write, size in bits
LCB_FAULTS_S_PENDREQ_ER  Pending request -- empty on read, size in bits
LCB_FAULTS_S_PENDREQ_FW  Pending request -- full on write, size in bits
LCB_FAULTS_S_UNUSED1  Unused MBZ, size in bits

enum _LCB_FAULTS_V
 

The right offset, in bits, of the LATp backend FAULTS register fields.

See also:
LCB_faults_bf
Enumerator:
LCB_FAULTS_V_PENDEVT_ER  Pending events -- empty on read, right justified offset in bits
LCB_FAULTS_V_PENDEVT_FW  Eending events -- full on write, right justified offset in bits
LCB_FAULTS_V_EVTBUF_ER  Event buffer -- empty on read, right justified offset in bits
LCB_FAULTS_V_EVTBUF_FW  Event buffer -- full on write, right justified offset in bits
LCB_FAULTS_V_RSTBUF_ER  Result buffer -- empty on read, right justified offset in bits
LCB_FAULTS_V_RSTBUF_FW  Result buffer -- full on write, right justified offset in bits
LCB_FAULTS_V_PENDRST_ER  Pending result -- empty on read, right justified offset in bits
LCB_FAULTS_V_PENDRST_FW  Pending result -- full on write, right justified offset in bits
LCB_FAULTS_V_REQBUF_ER  Request buffer -- empty on read, right justified offset in bits
LCB_FAULTS_V_REQBUF_FW  Request buffer -- full on write, right justified offset in bits
LCB_FAULTS_V_PENDREQ_ER  Pending request -- empty on read, right justified offset in bits
LCB_FAULTS_V_PENDREQ_FW  Pending request -- full on write, right justified offset in bits
LCB_FAULTS_V_UNUSED1  Unused MBZ, right justified offset in bits

enum _LCB_OPCODE
 

Enumerates the values of the opcodes for each of the LCB's commands.

Enumerator:
LCB_OPCODE_CMD  Transmit Command, no response
LCB_OPCODE_MARK_TIME  Mark Time Command
LCB_OPCODE_EVENT  Transfer Event Command
LCB_OPCODE_LAT_RESET  Reset LAT Command
LCB_OPCODE_CMDR  Transmit Command, wait on response
LCB_OPCODE_CSR  Access CSR Command
LCB_OPCODE_6  Unused, 0x6
LCB_OPCODE_FAULTS  Access FIFO FAULT Register
LCB_OPCODE_8  Unused, 0x8
LCB_OPCODE_RXSTATS  Access Receive Stats Register
LCB_OPCODE_A  Unused, 0xA
LCB_OPCODE_B  Unused, 0xB
LCB_OPCODE_C  Unused, 0xC
LCB_OPCODE_D  Unused, 0xD
LCB_OPCODE_E  Unused, 0xE
LCB_OPCODE_F  Unused, 0xF

enum _LCB_RI_ERR_M
 

Result item error fields, in place masks.

Enumerator:
LCB_RI_ERR_M_ERR  Error field, right offset
LCB_RI_ERR_M_RESERVED1  Reserved field, right offset

enum _LCB_RI_ERR_S
 

Result item error fields, size in bits.

Enumerator:
LCB_RI_ERR_S_ERR  Error field, size in bits
LCB_RI_ERR_S_RESERVED1  Reserved field, size in bits

enum _LCB_RI_ERR_V
 

Result item error fields, right offset.

Enumerator:
LCB_RI_ERR_V_ERR  Error field, right offset
LCB_RI_ERR_V_RESERVED1  Reserved field, right offset

enum _LCB_RI_HDR_M
 

LCB result item header field sizes, in place masks.

Enumerator:
LCB_RI_HDR_M_TIMESTAMP  Timestamp field, in place mask
LCB_RI_HDR_M_RESERVED1  Reserved field, in place mask
LCB_RI_HDR_M_OPCODE  Opcode field, in place mask

enum _LCB_RI_HDR_S
 

LCB result item header field sizes, in bits.

Enumerator:
LCB_RI_HDR_S_TIMESTAMP  Timestamp field, size in bits
LCB_RI_HDR_S_RESERVED1  Reserved field, size in bits
LCB_RI_HDR_S_OPCODE  Opcode field, size in bits

enum _LCB_RI_HDR_V
 

LCB result item header field sizes, right offset.

Enumerator:
LCB_RI_HDR_V_TIMESTAMP  Timestamp field, right offset
LCB_RI_HDR_V_RESERVED1  Reserved field, right offset
LCB_RI_HDR_V_OPCODE  Opcode field, right offset

enum _LCB_RI_N4BYTES
 

Enumerates the size, in 4 bytes units, of each result item.

Enumerator:
LCB_RI_N4BYTES_CMD  Transmit command -> 2 4 byte words
LCB_RI_N4BYTES_MARK_TIME  Mark time -> 2 4-byte words
LCB_RI_N4BYTES_EVENT  XMIT Event is variable, this is just the overhead piece and does not include the payload
LCB_RI_N4BYTES_LAT_RESET  Transmit reset -> 2 4-byte words
LCB_RI_N4BYTES_CMDR  Transmit command and wait on response -> 6 4-byte words
LCB_RI_N4BYTES_CSR  Transmit CSR access -> 4 4-byte words
LCB_RI_N4BYTES_FAULTS  Transmit FIFO FAULTS access -> 4 4-byte words
LCB_RI_N4BYTES_RXSTATS  Transmit RECEIVE STATISTICS/STATS access, 4 4-byte words

enum _LCB_RI_N8BYTES
 

Enumerates the size, in 8 bytes units, of each result item.

Enumerator:
LCB_RI_N8BYTES_CMD  Transmit command -> 1 8-byte words
LCB_RI_N8BYTES_MARK_TIME  Mark time -> 1 8-byte words
LCB_RI_N8BYTES_EVENT  Transfer Event is variable, this is just the overhead piece and does not include the payload
LCB_RI_N8BYTES_LAT_RESET  Transmit reset -> 1 8-byte words
LCB_RI_N8BYTES_CMDR  Transmit command and wait on response -> 3 8-byte words
LCB_RI_N8BYTES_CSR  Transmit CSR access -> 2 8-byte words
LCB_RI_N8BYTES_FAULTS  Transmit FIFO FAULTS access -> 2 8-byte words
LCB_RI_N8BYTES_RXSTATS  Transmit RECEIVE STATISTICS/STATUS access -> 2 8-byte words

enum _LCB_RXSTATS_M
 

The in place mask, of the LATp backend RECEIVE STATISTICS/STATUS register fields.

See also:
LCB_rxstats_bf
Enumerator:
LCB_RXSTATS_M_CNT  Count of control cells received, mask
LCB_RXSTATS_M_CELL_PARITY  Flag if a received cell ever had a parity error, mask
LCB_RXSTATS_M_HEADER_PARITY  Flag if a received cell ever had a parity error, mask
LCB_RXSTATS_M_LATP_ADR  Flag if a receive cell ever had a bad LATp address, mask
LCB_RXSTATS_M_UNUSED1  Unused MBZ, mask

enum _LCB_RXSTATS_S
 

The sizes, in bits of the LATp backend RECEIVE STATISTICS/STATUS register fields.

See also:
LCB_rxstats_bf
Enumerator:
LCB_RXSTATS_S_CNT  Count of control cells received, size in bits
LCB_RXSTATS_S_CELL_PARITY  Flag if a received cell ever had a parity error, size in bits
LCB_RXSTATS_S_HEADER_PARITY  Flag if a received cell ever had a parity error, size in bits
LCB_RXSTATS_S_LATP_ADR  Flag if a receive cell ever had a bad LATp address
LCB_RXSTATS_S_UNUSED1  Unused MBZ, size in bits

enum _LCB_RXSTATS_V
 

The right offset, in bits, of the LATp backend RECEIVE STATISTICS/STATUS register fields.

See also:
LCB_rxstats_bf
Enumerator:
LCB_RXSTATS_V_CNT  Count of control cells received, offset
LCB_RXSTATS_V_CELL_PARITY  Flag if a received cell ever had a parity error, offset
LCB_RXSTATS_V_HEADER_PARITY  Flag if a received cell ever had a parity error, offset
LCB_RXSTATS_V_LATP_ADR  Flag if a receive cell ever had a bad LATp address, offset
LCB_RXSTATS_V_UNUSED1  Unused MBZ, offset


Generated on Fri Dec 9 20:56:12 2005 by  doxygen 1.4.4