GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> LCBD / dev > lcbd / mv2304
#include <PBS/WCT.h>
#include <LCBD/LCBD_rst.h>
#include <LCBD/LCBD_evt.h>
#include <LCBD/LCB.h>
Classes | |
struct | _LCBD_stats_tim |
Information about the collection time. More... | |
struct | _LCBD_stats_isr |
Defines the statistics keep by the LCBD ISR routine. More... | |
struct | _LCBD_stats_rst |
Defines the statistics keep by RESULT handler. More... | |
struct | _LCBD_stats_evt_proto_xct |
This is a sub-structure of the LCBD event protocol statistics, keeping track of the events (packets) for a transaction. More... | |
struct | _LCBD_stats_evt_proto |
This is a sub-structure of the LCBD event statistics, keeping track of events (messages) by protocol type. More... | |
struct | _LCBD_stats_evt_tickle |
Statistics about LCBD_stats_evt_tickle. More... | |
struct | _LCBD_stats_evt |
Defines the statistics keep by the EVENT handler. More... | |
struct | _LCBD_stats |
Encompassing structure for all the LCBD driver statistics. More... | |
Defines | |
#define | LCBD_OK 0 |
Success return code, note that this is not an LCBD message code, but may be used as one. | |
Typedefs | |
typedef struct _LCBD_stats_tim | LCBD_stats_tim |
Typedef for struct _LCBD_stats_tim. | |
typedef enum _LCBD_STATS_ISR_K_EVT_QUE | LCBD_STATS_ISR_K_EVT_QUE |
Typedef for enum _LCBD_STATS_ISR_K_EVT_QUE. | |
typedef enum _LCBD_STATS_ISR_K_EVT_BUF | LCBD_STATS_ISR_K_EVT_BUF |
Typedef for enum _LCBD_STATS_ISR_K_EVT_BUF. | |
typedef struct _LCBD_stats_isr | LCBD_stats_isr |
Typedef for struct _LCBD_stats_isr. | |
typedef enum _LCBD_stats_rst_tx | LCBD_stats_rst_tx |
Typedef for enum _LCBD_stats_tx. | |
typedef struct _LCBD_stats_rst | LCBD_stats_rst |
Typedef for struct _LCBD_stats_rst. | |
typedef struct _LCBD_stats_evt_proto_xct | LCBD_stats_evt_proto_xct |
Typedef for the struct _LCBD_stats_evt_proto_xct. | |
typedef struct _LCBD_stats_evt_proto | LCBD_stats_evt_proto |
Typedef for the struct _LCBD_stats_evt_proto. | |
typedef enum _LCBD_STATS_EVT_TICKLE_K | LCBD_STATS_EVT_TICKLE_K |
Typedef for enum _LCBD_STATS_EVT_TICKLE_K. | |
typedef struct _LCBD_stats_evt_tickle | LCBD_stats_evt_tickle |
Typedef for LCBD_stats_evt_tickle. | |
typedef struct _LCBD_stats_evt | LCBD_stats_evt |
Typedef for struct _LCBD_stats_evt. | |
typedef struct _LCBD_stats | LCBD_stats |
Typedef for struct _LCBD_stats. | |
Enumerations | |
enum | _LCBD_STATS_ISR_K_EVT_QUE { LCBD_STATS_ISR_K_EVT_QUE_NONE = 0, LCBD_STATS_ISR_K_EVT_QUE_EMPTY = 1, LCBD_STATS_ISR_K_EVT_QUE_PRESENT = 2, LCBD_STATS_ISR_K_EVT_QUE_CNT = 3 } |
Enumerates the event que counters. More... | |
enum | _LCBD_STATS_ISR_K_EVT_BUF { LCBD_STATS_ISR_K_EVT_BUF_NONE = 0, LCBD_STATS_ISR_K_EVT_BUF_QUIET = 1, LCBD_STATS_ISR_K_EVT_BUF_DISABLE = 2, LCBD_STATS_ISR_K_EVT_BUF_CNT = 3 } |
Enumerates the event buffer counters. More... | |
enum | _LCBD_stats_rst_tx { LCBD_STATS_RST_TX_POSTED = 0, LCBD_STATS_RST_TX_PENDED = 1, LCBD_STATS_RST_TX_REMOVED = 2, LCBD_STATS_RST_TX_DELETED = 3, LCBD_STATS_RST_TX_CNT = 4 } |
Enumerates the transmission statistics. More... | |
enum | _LCBD_STATS_EVT_TICKLE_K { LCBD_STATS_EVT_TICKLE_K_EMPTY = 0, LCBD_STATS_EVT_TICKLE_K_POSTED = 1, LCBD_STATS_EVT_TICKLE_K_BUSY = 2, LCBD_STATS_EVT_TICKLE_K_RSVD = 3, LCBD_STATS_EVT_TICKLE_K_CNT = 4 } |
Enumerates the definitions of the LCBD_stats_evt_tickle statistics counters. More... | |
Functions | |
unsigned int | LCBD_stats_clr (LCBD lcb) |
Clears the statistics block. | |
unsigned int | LCBD_stats_get (const LCBD lcb, LCBD_stats *stats) |
Retrieves a copy of the current statistics. | |
void | LCBD_stats_sub (LCBD_stats *result, const LCBD_stats *stats, const LCBD_stats *base) |
Convenience function to subtract a baseline statistics block from another statistics block, storing in a destination block. | |
void | LCBD_stats_tim_show (const LCBD_stats_tim *tim) |
Shows (prints to standard output) the collection time data. | |
void | LCBD_stats_isr_show (const LCBD_stats_isr *isr) |
Shows (prints to the terminal) a display of the statistics gathered in the LCBD ISR routine. | |
void | LCBD_stats_rst_show (const LCBD_stats_rst *rst) |
Shows (prints to the terminal) a display of the statistics gathered in the LCBD RESULTs handler routine. | |
void | LCBD_stats_evt_show (const LCBD_stats_evt *evt) |
Shows (prints to the terminal) a display of the statistics gathered in the LCBD EVENTs handler routine. | |
void | LCBD_stats_show (const LCBD_stats *stats) |
Shows (prints at the terminal) all three statistics blocks. |
Typedef for struct _LCBD_stats_evt.
These error sets are not mutually exclusive, i.e. it is theoritically possible to get both a receive error and a transfer error on the same packet, although in practice the implementation may not support this.
Error Name | Meaning
|
Header Parity Error | While receiving a packet, the Event Enginer detected a parity error in the first 16 bits of the payload (the so-called payload header. The payload contents may not be valid. The remainder of the cells following the control cell (if any) were discarded. The data field contents which are present may not be valid.
|
Data Parity Error | While receiving a packet, the Event Enginer detecter an error in the parity for one of the cells of the packet. The remainder of the cells following the cell in error (if any) were discarded. The payload contents which are present may not be valid.
|
Packet Truncated | While receiving a packet, the Event Engine assert /e pause. The /e length field reflects only that fraction of the packet received before /e pause was asserted. The remainder of the cells following the truncated cell were either discarded, or will follow in a subsequent packet. |
Error Name | Meaning
|
PCI Master Abort | To be defined
|
PCI Parity Error | To be defined
|
PCI Target Abort | To be defined
|
Buffer Full | A FIFO used as an intermediate buffer became full prematurely full during a DMA which attempted to write to the FIFO.
|
Buffer Empty | A FIFO used as an intermediate buffer became prematurely empty during a DMA which attempt to read from the FIFO.
|
INSFMEM | The transfer engine attempted to transfer an event from the EVENT buffer to a location in the circular buffer. Sufficient space was not available within the circular buffer to transfer the event. The event was discarded.
|
I believe in the current implementation by Eric Siskind, INFSMEM can no longer occur. The Buffer Full and Buffer Empty indicate an internal LCB error.
Both these conditions are counted.
Typedef for the struct _LCBD_stats_evt_proto.
Typedef for the struct _LCBD_stats_evt_proto_xct.
Typedef for LCBD_stats_evt_tickle.
Typedef for struct _LCBD_stats_isr.
Typedef for struct _LCBD_stats_rst.
Typedef for struct _LCBD_stats_tim.
Enumerates the definitions of the LCBD_stats_evt_tickle statistics counters.
enum _LCBD_stats_rst_tx |
Enumerates the transmission statistics.
unsigned int LCBD_stats_clr | ( | LCBD | lcb | ) |
Clears the statistics block.
lcb | The LCB driver handle |
References _LCBD_scb::active, _LCBD_stats_tim::beg, _LCBD_scb::clear, _LCBD_scb::ledgerValid, _LCBD_scb::mutex, and _LCBD_stats::tim.
void LCBD_stats_evt_show | ( | const LCBD_stats_evt * | evt | ) |
Shows (prints to the terminal) a display of the statistics gathered in the LCBD EVENTs handler routine.
evt | The event statistics |
References _LCBD_stats_evt::proto, putEvtHandler(), putEvtProto(), putEvtTickle(), and _LCBD_stats_evt::tickle.
Referenced by LCBD_stats_show().
unsigned int LCBD_stats_get | ( | const LCBD | lcb, | |
LCBD_stats * | stats | |||
) |
Retrieves a copy of the current statistics.
Status. | The only real way this routine can fail is if the locking mutex has not been initialized or it has been corrupted. |
lcb | The LCB driver handle | |
stats | Area to copy the latest statistics into |
References _LCBD_scb::active, _LCBD_stats_tim::beg, _LCBD_scb::clear, _LCBD_stats_tim::end, _LCBD_scb::ledger, _LCBD_scb::ledgerValid, _LCBD_scb::mutex, _LCBD_stats::tim, and update().
void LCBD_stats_isr_show | ( | const LCBD_stats_isr * | isr | ) |
Shows (prints to the terminal) a display of the statistics gathered in the LCBD ISR routine.
isr | The driver statistics block |
References _LCBD_stats_isr::err, _LCBD_stats_isr::evt, and _LCBD_stats_isr::srcs.
Referenced by LCBD_stats_show().
void LCBD_stats_rst_show | ( | const LCBD_stats_rst * | rst | ) |
Shows (prints to the terminal) a display of the statistics gathered in the LCBD RESULTs handler routine.
rst | The results statistics block |
References _LCBD_stats_rst::cnts, LCB_RST_ERR_XFR_IN_PCI_MASTER_ABORT, LCB_RST_ERR_XFR_IN_PCI_PARITY_ERROR, LCB_RST_ERR_XFR_IN_PCI_TARGET_ABORT, LCB_RST_ERR_XFR_IN_SUCCESS, LCB_RST_ERR_XFR_IN_UNDEFINED_4, LCB_RST_ERR_XFR_IN_UNDEFINED_5, LCB_RST_ERR_XFR_IN_UNDEFINED_6, LCB_RST_ERR_XFR_IN_UNDEFINED_7, LCB_RST_ERR_XFR_OUT_BUFFER_EMPTY, LCB_RST_ERR_XFR_OUT_PCI_MASTER_ABORT, LCB_RST_ERR_XFR_OUT_PCI_PARITY_ERROR, LCB_RST_ERR_XFR_OUT_PCI_TARGET_ABORT, LCB_RST_ERR_XFR_OUT_Q_EMPTY, LCB_RST_ERR_XFR_OUT_SUCCESS, LCB_RST_ERR_XFR_OUT_UNDEFINED_4, LCB_RST_ERR_XFR_OUT_UNDEFINED_6, LCBD_SEQ_EMPTY, LCBD_SEQ_ORDER, LCBD_SEQ_SUCCESS, LCBD_SEQ_UNKNOWN, LCBD_STATS_RST_TX_DELETED, LCBD_STATS_RST_TX_PENDED, LCBD_STATS_RST_TX_POSTED, LCBD_STATS_RST_TX_REMOVED, _LCBD_stats_rst::null, _LCBD_stats_rst::rx, _LCBD_stats_rst::seq, and _LCBD_stats_rst::tx.
Referenced by LCBD_stats_show().
void LCBD_stats_show | ( | const LCBD_stats * | stats | ) |
Shows (prints at the terminal) all three statistics blocks.
stats | The statistics block to display |
References _LCBD_stats::evt, _LCBD_stats::isr, LCBD_stats_evt_show(), LCBD_stats_isr_show(), LCBD_stats_rst_show(), LCBD_stats_tim_show(), _LCBD_stats::rst, and _LCBD_stats::tim.
void LCBD_stats_sub | ( | LCBD_stats * | result, | |
const LCBD_stats * | stats, | |||
const LCBD_stats * | base | |||
) |
Convenience function to subtract a baseline statistics block from another statistics block, storing in a destination block.
result | The results of the subtraction | |
stats | The statistics block to subtract from | |
base | The baseline statistics block to subtract. |
References _LCBD_stats_tim::beg, _LCBD_stats_tim::end, _LCBD_stats::evt, _LCBD_stats::isr, LCBD_EVT_PROTO_CNT, _LCBD_stats_evt::proto, sub_32(), sub_evt_proto(), and _LCBD_stats::tim.
void LCBD_stats_tim_show | ( | const LCBD_stats_tim * | tim | ) |
Shows (prints to standard output) the collection time data.
tim | The collection time structure to display |
References _LCBD_stats_tim::beg, and _LCBD_stats_tim::end.
Referenced by LCBD_stats_show().