Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
bnx2x_stats.h File Reference
#include <linux/types.h>

Go to the source code of this file.

Data Structures

struct  nig_stats
 
struct  bnx2x_eth_stats
 
struct  bnx2x_eth_q_stats
 
struct  bnx2x_eth_stats_old
 
struct  bnx2x_eth_q_stats_old
 
struct  bnx2x_net_stats_old
 
struct  bnx2x_fw_port_stats_old
 

Macros

#define ADD_64(s_hi, a_hi, s_lo, a_lo)
 
#define LE32_0   ((__force __le32) 0)
 
#define LE16_0   ((__force __le16) 0)
 
#define ADD_64_LE(s_hi, a_hi_le, s_lo, a_lo_le)
 
#define ADD_64_LE16(s_hi, a_hi_le, s_lo, a_lo_le)
 
#define DIFF_64(d_hi, m_hi, s_hi, d_lo, m_lo, s_lo)
 
#define UPDATE_STAT64(s, t)
 
#define UPDATE_STAT64_NIG(s, t)
 
#define ADD_EXTEND_64(s_hi, s_lo, a)
 
#define ADD_STAT64(diff, t)
 
#define UPDATE_EXTEND_STAT(s)
 
#define UPDATE_EXTEND_TSTAT(s, t)
 
#define UPDATE_EXTEND_E_TSTAT(s, t)
 
#define UPDATE_EXTEND_USTAT(s, t)
 
#define UPDATE_EXTEND_E_USTAT(s, t)
 
#define UPDATE_EXTEND_XSTAT(s, t)
 
#define UPDATE_QSTAT(s, t)
 
#define UPDATE_QSTAT_OLD(f)
 
#define UPDATE_ESTAT_QSTAT_64(s)
 
#define UPDATE_ESTAT_QSTAT(s)
 
#define UPDATE_FSTAT_QSTAT(s)
 
#define UPDATE_FW_STAT(s)
 
#define UPDATE_FW_STAT_OLD(f)
 
#define UPDATE_ESTAT(s, t)
 
#define SUB_64(m_hi, s_hi, m_lo, s_lo)
 
#define SUB_EXTEND_64(m_hi, m_lo, s)
 
#define SUB_EXTEND_USTAT(s, t)
 

Enumerations

enum  bnx2x_stats_event {
  STATS_EVENT_PMF = 0, STATS_EVENT_LINK_UP, STATS_EVENT_UPDATE, STATS_EVENT_STOP,
  STATS_EVENT_MAX
}
 
enum  bnx2x_stats_state { STATS_STATE_DISABLED = 0, STATS_STATE_ENABLED, STATS_STATE_MAX }
 

Functions

void bnx2x_stats_init (struct bnx2x *bp)
 
void bnx2x_stats_handle (struct bnx2x *bp, enum bnx2x_stats_event event)
 
void bnx2x_save_statistics (struct bnx2x *bp)
 
void bnx2x_afex_collect_stats (struct bnx2x *bp, void *void_afex_stats, u32 stats_type)
 

Macro Definition Documentation

#define ADD_64 (   s_hi,
  a_hi,
  s_lo,
  a_lo 
)
Value:
do { \
s_lo += a_lo; \
s_hi += a_hi + ((s_lo < a_lo) ? 1 : 0); \
} while (0)

Definition at line 337 of file bnx2x_stats.h.

#define ADD_64_LE (   s_hi,
  a_hi_le,
  s_lo,
  a_lo_le 
)
Value:
ADD_64(s_hi, le32_to_cpu(a_hi_le), \
s_lo, le32_to_cpu(a_lo_le))

Definition at line 347 of file bnx2x_stats.h.

#define ADD_64_LE16 (   s_hi,
  a_hi_le,
  s_lo,
  a_lo_le 
)
Value:
ADD_64(s_hi, le16_to_cpu(a_hi_le), \
s_lo, le16_to_cpu(a_lo_le))

Definition at line 351 of file bnx2x_stats.h.

#define ADD_EXTEND_64 (   s_hi,
  s_lo,
  a 
)
Value:
do { \
s_lo += a; \
s_hi += (s_lo < a) ? 1 : 0; \
} while (0)

Definition at line 402 of file bnx2x_stats.h.

#define ADD_STAT64 (   diff,
  t 
)
Value:
do { \
ADD_64(pstats->mac_stx[1].t##_hi, new->diff##_hi, \
pstats->mac_stx[1].t##_lo, new->diff##_lo); \
} while (0)

Definition at line 408 of file bnx2x_stats.h.

#define DIFF_64 (   d_hi,
  m_hi,
  s_hi,
  d_lo,
  m_lo,
  s_lo 
)
Value:
do { \
if (m_lo < s_lo) { \
/* underflow */ \
d_hi = m_hi - s_hi; \
if (d_hi > 0) { \
/* we can 'loan' 1 */ \
d_hi--; \
d_lo = m_lo + (UINT_MAX - s_lo) + 1; \
} else { \
/* m_hi <= s_hi */ \
d_hi = 0; \
d_lo = 0; \
} \
} else { \
/* m_lo >= s_lo */ \
if (m_hi < s_hi) { \
d_hi = 0; \
d_lo = 0; \
} else { \
/* m_hi >= s_hi */ \
d_hi = m_hi - s_hi; \
d_lo = m_lo - s_lo; \
} \
} \
} while (0)

Definition at line 356 of file bnx2x_stats.h.

#define LE16_0   ((__force __le16) 0)

Definition at line 344 of file bnx2x_stats.h.

#define LE32_0   ((__force __le32) 0)

Definition at line 343 of file bnx2x_stats.h.

#define SUB_64 (   m_hi,
  s_hi,
  m_lo,
  s_lo 
)
Value:
do { \
DIFF_64(m_hi, m_hi, s_hi, m_lo, m_lo, s_lo); \
} while (0)

Definition at line 515 of file bnx2x_stats.h.

#define SUB_EXTEND_64 (   m_hi,
  m_lo,
  s 
)
Value:
do { \
SUB_64(m_hi, 0, m_lo, s); \
} while (0)

Definition at line 521 of file bnx2x_stats.h.

#define SUB_EXTEND_USTAT (   s,
  t 
)
Value:
do { \
diff = le32_to_cpu(uclient->s) - le32_to_cpu(old_uclient->s); \
SUB_EXTEND_64(qstats->t##_hi, qstats->t##_lo, diff); \
} while (0)

Definition at line 526 of file bnx2x_stats.h.

#define UPDATE_ESTAT (   s,
  t 
)
Value:
do { \
SUB_64(estats->s##_hi, estats_old->t##_hi, \
estats->s##_lo, estats_old->t##_lo); \
ADD_64(estats->s##_hi, estats->t##_hi, \
estats->s##_lo, estats->t##_lo); \
estats_old->t##_hi = estats->t##_hi; \
estats_old->t##_lo = estats->t##_lo; \
} while (0)

Definition at line 504 of file bnx2x_stats.h.

#define UPDATE_ESTAT_QSTAT (   s)
Value:
do { \
estats->s += qstats->s; \
estats->s -= qstats_old->s##_old; \
qstats_old->s##_old = qstats->s; \
} while (0)

Definition at line 475 of file bnx2x_stats.h.

#define UPDATE_ESTAT_QSTAT_64 (   s)
Value:
do { \
ADD_64(estats->s##_hi, qstats->s##_hi, \
estats->s##_lo, qstats->s##_lo); \
SUB_64(estats->s##_hi, qstats_old->s##_hi_old, \
estats->s##_lo, qstats_old->s##_lo_old); \
qstats_old->s##_hi_old = qstats->s##_hi; \
qstats_old->s##_lo_old = qstats->s##_lo; \
} while (0)

Definition at line 465 of file bnx2x_stats.h.

#define UPDATE_EXTEND_E_TSTAT (   s,
  t 
)
Value:
do { \
UPDATE_EXTEND_TSTAT(s, t); \
ADD_EXTEND_64(estats->t##_hi, estats->t##_lo, diff); \
} while (0)

Definition at line 428 of file bnx2x_stats.h.

#define UPDATE_EXTEND_E_USTAT (   s,
  t 
)
Value:
do { \
UPDATE_EXTEND_USTAT(s, t); \
ADD_EXTEND_64(estats->t##_hi, estats->t##_lo, diff); \
} while (0)

Definition at line 441 of file bnx2x_stats.h.

#define UPDATE_EXTEND_STAT (   s)
Value:
do { \
ADD_EXTEND_64(pstats->mac_stx[1].s##_hi, \
pstats->mac_stx[1].s##_lo, \
new->s); \
} while (0)

Definition at line 414 of file bnx2x_stats.h.

#define UPDATE_EXTEND_TSTAT (   s,
  t 
)
Value:
do { \
diff = le32_to_cpu(tclient->s) - le32_to_cpu(old_tclient->s); \
old_tclient->s = tclient->s; \
ADD_EXTEND_64(qstats->t##_hi, qstats->t##_lo, diff); \
} while (0)

Definition at line 421 of file bnx2x_stats.h.

#define UPDATE_EXTEND_USTAT (   s,
  t 
)
Value:
do { \
diff = le32_to_cpu(uclient->s) - le32_to_cpu(old_uclient->s); \
old_uclient->s = uclient->s; \
ADD_EXTEND_64(qstats->t##_hi, qstats->t##_lo, diff); \
} while (0)

Definition at line 434 of file bnx2x_stats.h.

#define UPDATE_EXTEND_XSTAT (   s,
  t 
)
Value:
do { \
diff = le32_to_cpu(xclient->s) - le32_to_cpu(old_xclient->s); \
old_xclient->s = xclient->s; \
ADD_EXTEND_64(qstats->t##_hi, qstats->t##_lo, diff); \
} while (0)

Definition at line 447 of file bnx2x_stats.h.

#define UPDATE_FSTAT_QSTAT (   s)
Value:
do { \
ADD_64(fstats->s##_hi, qstats->s##_hi, \
fstats->s##_lo, qstats->s##_lo); \
SUB_64(fstats->s##_hi, qstats_old->s##_hi, \
fstats->s##_lo, qstats_old->s##_lo); \
estats->s##_hi = fstats->s##_hi; \
estats->s##_lo = fstats->s##_lo; \
qstats_old->s##_hi = qstats->s##_hi; \
qstats_old->s##_lo = qstats->s##_lo; \
} while (0)

Definition at line 482 of file bnx2x_stats.h.

#define UPDATE_FW_STAT (   s)
Value:
do { \
estats->s = le32_to_cpu(tport->s) + fwstats->s; \
} while (0)

Definition at line 494 of file bnx2x_stats.h.

#define UPDATE_FW_STAT_OLD (   f)
Value:
do { \
fwstats->f = estats->f; \
} while (0)

Definition at line 499 of file bnx2x_stats.h.

#define UPDATE_QSTAT (   s,
  t 
)
Value:
do { \
qstats->t##_hi = qstats_old->t##_hi + le32_to_cpu(s.hi); \
qstats->t##_lo = qstats_old->t##_lo + le32_to_cpu(s.lo); \
} while (0)

Definition at line 454 of file bnx2x_stats.h.

#define UPDATE_QSTAT_OLD (   f)
Value:
do { \
qstats_old->f = qstats->f; \
} while (0)

Definition at line 460 of file bnx2x_stats.h.

#define UPDATE_STAT64 (   s,
  t 
)
Value:
do { \
DIFF_64(diff.hi, new->s##_hi, pstats->mac_stx[0].t##_hi, \
diff.lo, new->s##_lo, pstats->mac_stx[0].t##_lo); \
pstats->mac_stx[0].t##_hi = new->s##_hi; \
pstats->mac_stx[0].t##_lo = new->s##_lo; \
ADD_64(pstats->mac_stx[1].t##_hi, diff.hi, \
pstats->mac_stx[1].t##_lo, diff.lo); \
} while (0)

Definition at line 383 of file bnx2x_stats.h.

#define UPDATE_STAT64_NIG (   s,
  t 
)
Value:
do { \
DIFF_64(diff.hi, new->s##_hi, old->s##_hi, \
diff.lo, new->s##_lo, old->s##_lo); \
ADD_64(estats->t##_hi, diff.hi, \
estats->t##_lo, diff.lo); \
} while (0)

Definition at line 393 of file bnx2x_stats.h.

Enumeration Type Documentation

Enumerator:
STATS_EVENT_PMF 
STATS_EVENT_LINK_UP 
STATS_EVENT_UPDATE 
STATS_EVENT_STOP 
STATS_EVENT_MAX 

Definition at line 44 of file bnx2x_stats.h.

Enumerator:
STATS_STATE_DISABLED 
STATS_STATE_ENABLED 
STATS_STATE_MAX 

Definition at line 52 of file bnx2x_stats.h.

Function Documentation

void bnx2x_afex_collect_stats ( struct bnx2x bp,
void void_afex_stats,
u32  stats_type 
)

Definition at line 1612 of file bnx2x_stats.c.

void bnx2x_save_statistics ( struct bnx2x bp)

bnx2x_save_statistics - save statistics when unloading.

: driver handle

Definition at line 1569 of file bnx2x_stats.c.

void bnx2x_stats_handle ( struct bnx2x bp,
enum bnx2x_stats_event  event 
)

Definition at line 1308 of file bnx2x_stats.c.

void bnx2x_stats_init ( struct bnx2x bp)

Definition at line 1481 of file bnx2x_stats.c.