66 lines
1.3 KiB
C
66 lines
1.3 KiB
C
/*
|
|
* stats.h
|
|
*
|
|
* Created on: Sep 16, 2019
|
|
* Author: abody
|
|
*/
|
|
|
|
#ifndef STATS_H_
|
|
#define STATS_H_
|
|
|
|
#ifndef DIAG_ERROR_EVENT
|
|
# define DIAG_ERROR_EVENT()
|
|
#endif
|
|
|
|
typedef struct {
|
|
uint32_t overrun;
|
|
uint32_t hdrError;
|
|
uint32_t lastErrHdr;
|
|
uint32_t payloadErrror;
|
|
uint32_t pep1, pep2;
|
|
uint32_t dmaError;
|
|
uint32_t rcvd;
|
|
uint32_t premature_hdr;
|
|
uint32_t premature_payload;
|
|
uint32_t sent;
|
|
uint32_t skiped;
|
|
} STATS;
|
|
|
|
#ifndef STATS_DISABLED
|
|
static inline void StatsIncOverrun(STATS *s) {
|
|
++s->overrun;
|
|
}
|
|
static inline void StatsIncHdrError(STATS *s, uint32_t hdr) {
|
|
DIAG_ERROR_EVENT();
|
|
++s->hdrError;
|
|
}
|
|
static inline void StatsIncPayloadError(STATS *s, uint32_t pep1, uint32_t pep2) {
|
|
DIAG_ERROR_EVENT();
|
|
++s->payloadErrror;
|
|
s->pep1 = pep1;
|
|
s->pep2 = pep2;
|
|
}
|
|
static inline void StatsIncDmaError(STATS *s) {
|
|
++s->dmaError;
|
|
}
|
|
static inline void StatsIncRcvd(STATS *s) {
|
|
++s->rcvd;
|
|
}
|
|
static inline void StatsIncPremature_hdr(STATS *s) {
|
|
++s->premature_hdr;
|
|
}
|
|
static inline void StatsIncPremature_payload(STATS *s) {
|
|
++s->premature_payload;
|
|
}
|
|
static inline void StatsIncSent(STATS *s) {
|
|
++s->sent;
|
|
}
|
|
static inline void StatsAddSkiped(STATS *s, uint8_t cnt) {
|
|
s->skiped += s->rcvd > 2 ? cnt : 0;
|
|
}
|
|
|
|
#else // STATS_DISABLED
|
|
#define StatsIncSent(x)
|
|
#endif // STATS_DISABLED
|
|
|
|
#endif /* STATS_H_ */
|