GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > EDS / V2-10-0
Constituent: eds     Tag: mv2304
Typedefs | |
typedef enum _EBF_SIV_V | EBF_SIV_V |
Typedef for EBF_SIV_V. | |
typedef enum _EBF_SIV_M | EBF_SIV_M |
Typedef for EBF_SIV_M. | |
typedef signed int | EBF_siv |
The state information vector. | |
Enumerations | |
enum | _EBF_SIV_V { EBF_SIV_V_STATE = 30, EBF_SIV_V_STATE_MORE = EBF_SIV_V_STATE + 1, EBF_SIV_V_STATE_NOTFIRST = EBF_SIV_V_STATE + 0, EBF_SIV_V_RSVD = 24, EBF_SIV_V_ERR = 16, EBF_SIV_V_ERR_RSVD_7 = EBF_SIV_V_ERR + 7, EBF_SIV_V_ERR_RSVD_6 = EBF_SIV_V_ERR + 6, EBF_SIV_V_ERR_SEQ = EBF_SIV_V_ERR + 5, EBF_SIV_V_ERR_SEQ0 = EBF_SIV_V_ERR + 4, EBF_SIV_V_ERR_EBM = EBF_SIV_V_ERR + 3, EBF_SIV_V_ERR_PARITY = EBF_SIV_V_ERR + 2, EBF_SIV_V_ERR_XFR = EBF_SIV_V_ERR + 1, EBF_SIV_V_ERR_RCV = EBF_SIV_V_ERR + 0, EBF_SIV_V_VAL = 0, EBF_SIV_V_VAL_RSVD = EBF_SIV_V_VAL + 13, EBF_SIV_V_VAL_EDWSTATUS = EBF_SIV_V_VAL + 8, EBF_SIV_V_VAL_EBMERR = EBF_SIV_V_VAL + 5, EBF_SIV_V_VAL_EBMSEQ = EBF_SIV_V_VAL + 0 } |
The right justified bit offsets of the Packet Reassembly state information vector. More... | |
enum | _EBF_SIV_M { EBF_SIV_M_STATE = (0x3 << EBF_SIV_V_STATE), EBF_SIV_M_STATE_MORE = (1 << EBF_SIV_V_STATE_MORE), EBF_SIV_M_STATE_NOTFIRST = (1 << EBF_SIV_V_STATE_NOTFIRST), EBF_SIV_M_RSVD = (0x3f << EBF_SIV_V_RSVD), EBF_SIV_M_ERR = (0xff << EBF_SIV_V_ERR), EBF_SIV_M_ERR_SEQ = (1 << EBF_SIV_V_ERR_SEQ ), EBF_SIV_M_ERR_SEQ0 = (1 << EBF_SIV_V_ERR_SEQ0), EBF_SIV_M_ERR_EBM = (1 << EBF_SIV_V_ERR_EBM), EBF_SIV_M_ERR_PARITY = (1 << EBF_SIV_V_ERR_PARITY), EBF_SIV_M_ERR_XFR = (1 << EBF_SIV_V_ERR_XFR ), EBF_SIV_M_ERR_RCV = (1 << EBF_SIV_V_ERR_RCV ), EBF_SIV_M_VAL = (0xffff << EBF_SIV_V_VAL), EBF_SIV_M_VAL_RSVD = (0x3 << EBF_SIV_V_VAL_RSVD), EBF_SIV_M_VAL_EDWSTATUS = (0x1f << EBF_SIV_V_VAL_EDWSTATUS), EBF_SIV_M_VAL_EBMERR = (0x7 << EBF_SIV_V_VAL_EBMERR), EBF_SIV_M_VAL_EBMSEQ = (0x1f << EBF_SIV_V_VAL_EBMSEQ) } |
The in place mask of the Packet Reassembly state information vector. More... | |
Functions | |
EBF_siv | EBF_sivInit (void) |
Returns an initializes the Packet Reassembly State Information Vector. | |
EBF_siv | EBF_sivUpdate (EBF_siv siv, unsigned int edw, const EBF_pkt *pkt) |
Returns the updated the State Information Vector. | |
static __inline int | EBF__sivIsFirst (EBF_siv siv) |
Returns non-zero is this is the first or only packet in a sequence. | |
static __inline int | EBF__sivIsNotFirst (EBF_siv siv) |
Returns non-zero is this is the not first or only packet in a sequence. | |
static __inline int | EBF__sivIsMid (EBF_siv siv) |
Returns non-zero is this is not the first or last member of a sequence. | |
static __inline int | EBF__sivIsFirstOrLast (EBF_siv siv) |
Returns non-zero is this is the first or last member of a sequence. | |
static __inline int | EBF__sivIsLast (EBF_siv siv) |
Returns non-zero is this is not the last or only member of a sequence. | |
static __inline int | EBF__sivIsMore (EBF_siv siv) |
Returns non-zero if there are more packets to come. | |
static __inline int | EBF__sivIsList (EBF_siv siv) |
Returns non-zero is this is a member of a sequence. | |
static __inline int | EBF__sivIsOnly (EBF_siv siv) |
Returns non-zero is this is not the only member of a sequence. | |
static __inline int | EBF__sivIsLastSeq (EBF_siv siv) |
Returns non-zero if this is the last packet in a sequence. | |
static __inline int | EBF__sivHasErrors (EBF_siv siv) |
Returns a non-zero value if errors are present. |
CVS $Id: EBF_siv.h,v 1.4 2005/10/13 22:00:53 russell Exp $
State | Interpretation
|
Done, No list, No Error | Well-behaved single packet
|
Done, No list, Error | Single packet with an error
|
Done, List, No Error | Completed list of packets, no error
|
Done, List,Error | Completed list of packets, with error(s)
|
List in progress, No list, No Error | First packet in a list of packets
|
List in progress, No list, Error | First packet in a list of packets, with error(s)
|
List in progress, List, No Error | Middle packet in a list of packets, no error
|
List in progress, List,Error | Middle packet in a list of packets, with error(s)
siv = EBF_sivUpdate (ctl->siv, edw, pkt); // Update the previous siv ctl->siv = siv; // Retain state EBF_dirCompose (dir, siv); // Always update the dir if (EBF_sivIsFirst (siv)) // Check if first { ... } if (EBF_sivIsLast (siv)) // Check is sequence is done { .. if (EBF_sivIsList (siv)) // If last in a list { EBF_dirReassemble (dir, ALL); } } |
enum _EBF_SIV_M |
The in place mask of the Packet Reassembly state information vector.
enum _EBF_SIV_V |
The right justified bit offsets of the Packet Reassembly state information vector.
static __inline int EBF__sivHasErrors | ( | EBF_siv | siv | ) | [static] |
Returns a non-zero value if errors are present.
Non-zero | if errors are present | |
Zero | is error free |
siv | The state information vector to test |
static __inline int EBF__sivIsFirst | ( | EBF_siv | siv | ) | [static] |
Returns non-zero is this is the first or only packet in a sequence.
== | 0 if this is not the first or only member of a sequence != 0 if this is the first or only member of a sequence |
siv | The state information vector to test |
static __inline int EBF__sivIsFirstOrLast | ( | EBF_siv | siv | ) | [static] |
Returns non-zero is this is the first or last member of a sequence.
== | 0 if this is the first or last member of a sequence != 0 if this is not the first or last member of a sequence |
siv | The state information vector to test |
static __inline int EBF__sivIsLast | ( | EBF_siv | siv | ) | [static] |
Returns non-zero is this is not the last or only member of a sequence.
== | 0 if this is not the last or only member of a sequence != 0 if this is the last or only member of a sequence |
siv | The state information vector to test |
static __inline int EBF__sivIsLastSeq | ( | EBF_siv | siv | ) | [static] |
Returns non-zero if this is the last packet in a sequence.
== | 0 if this is not the last member of a sequence != 0 if this is the last member of a sequence |
siv | The state information vector to test |
static __inline int EBF__sivIsList | ( | EBF_siv | siv | ) | [static] |
Returns non-zero is this is a member of a sequence.
== | 0 if this is not a member of a sequence != 0 if this is a member of a sequence |
siv | The state information vector to test |
static __inline int EBF__sivIsMid | ( | EBF_siv | siv | ) | [static] |
Returns non-zero is this is not the first or last member of a sequence.
== | 0 if this is not the first or last member of a sequence != 0 if this is the first or last member of a sequence |
siv | The state information vector to test |
static __inline int EBF__sivIsMore | ( | EBF_siv | siv | ) | [static] |
Returns non-zero if there are more packets to come.
== | 0 if this is not the only member of a sequence != 0 if this is the only member of a sequence |
siv | The state information vector to test |
static __inline int EBF__sivIsNotFirst | ( | EBF_siv | siv | ) | [static] |
Returns non-zero is this is the not first or only packet in a sequence.
== | 0 if this is the first or only member of a sequence != 0 if this is not the first or only member of a sequence |
siv | The state information vector to test |
static __inline int EBF__sivIsOnly | ( | EBF_siv | siv | ) | [static] |
Returns non-zero is this is not the only member of a sequence.
== | 0 if this is not the only member of a sequence != 0 if this is the only member of a sequence |
siv | The state information vector to test |
EBF_siv EBF_sivInit | ( | void | ) |
Returns an initializes the Packet Reassembly State Information Vector.
Returns the updated the State Information Vector.
siv | The current value of the State Information Vector | |
edw | The event descriptor word | |
pkt | The new EBF packet. This contains the information used to perform the update |