/* * MAC entry points. */ int efe_m_getstat(void *arg, uint_t stat, uint64_t *val) { efe_t *efep = arg; if (mii_m_getstat(efep->efe_miih, stat, val) == 0) { return (0); } switch (stat) { case MAC_STAT_MULTIRCV: *val = efep->efe_multircv; break; case MAC_STAT_BRDCSTRCV: *val = efep->efe_brdcstrcv; break; case MAC_STAT_MULTIXMT: *val = efep->efe_multixmt; break; case MAC_STAT_BRDCSTXMT: *val = efep->efe_brdcstxmt; break; case MAC_STAT_NORCVBUF: *val = efep->efe_norcvbuf; break; case MAC_STAT_IERRORS: *val = efep->efe_ierrors; break; case MAC_STAT_NOXMTBUF: *val = efep->efe_noxmtbuf; break; case MAC_STAT_OERRORS: *val = efep->efe_oerrors; break; case MAC_STAT_COLLISIONS: *val = efep->efe_collisions; break; case MAC_STAT_RBYTES: *val = efep->efe_rbytes; break; case MAC_STAT_IPACKETS: *val = efep->efe_ipackets; break; case MAC_STAT_OBYTES: *val = efep->efe_obytes; break; case MAC_STAT_OPACKETS: *val = efep->efe_opackets; break; case MAC_STAT_UNDERFLOWS: *val = efep->efe_uflo; break; case MAC_STAT_OVERFLOWS: *val = efep->efe_oflo; break; case ETHER_STAT_ALIGN_ERRORS: *val = efep->efe_align_errors; break; case ETHER_STAT_FCS_ERRORS: *val = efep->efe_fcs_errors; break; case ETHER_STAT_FIRST_COLLISIONS: *val = efep->efe_first_collisions; break; case ETHER_STAT_TX_LATE_COLLISIONS: *val = efep->efe_tx_late_collisions; break; case ETHER_STAT_DEFER_XMTS: *val = efep->efe_defer_xmts; break; case ETHER_STAT_EX_COLLISIONS: *val = efep->efe_ex_collisions; break; case ETHER_STAT_MACXMT_ERRORS: *val = efep->efe_macxmt_errors; break; case ETHER_STAT_CARRIER_ERRORS: *val = efep->efe_carrier_errors; break; case ETHER_STAT_TOOLONG_ERRORS: *val = efep->efe_toolong_errors; break; case ETHER_STAT_MACRCV_ERRORS: *val = efep->efe_macrcv_errors; break; case ETHER_STAT_TOOSHORT_ERRORS: *val = efep->efe_runt_errors; break; case ETHER_STAT_JABBER_ERRORS: *val = efep->efe_jabber_errors; break; default: return (ENOTSUP); } return (0); }
static int pcn_m_stat(void *arg, uint_t stat, uint64_t *val) { pcn_t *pcnp = (pcn_t *)arg; if (mii_m_getstat(pcnp->pcn_mii, stat, val) == 0) return (0); switch (stat) { case MAC_STAT_MULTIRCV: *val = pcnp->pcn_multircv; break; case MAC_STAT_BRDCSTRCV: *val = pcnp->pcn_brdcstrcv; break; case MAC_STAT_MULTIXMT: *val = pcnp->pcn_multixmt; break; case MAC_STAT_BRDCSTXMT: *val = pcnp->pcn_brdcstxmt; break; case MAC_STAT_IPACKETS: *val = pcnp->pcn_ipackets; break; case MAC_STAT_RBYTES: *val = pcnp->pcn_rbytes; break; case MAC_STAT_OPACKETS: *val = pcnp->pcn_opackets; break; case MAC_STAT_OBYTES: *val = pcnp->pcn_obytes; break; case MAC_STAT_NORCVBUF: *val = pcnp->pcn_norcvbuf; break; case MAC_STAT_NOXMTBUF: *val = 0; break; case MAC_STAT_COLLISIONS: *val = pcnp->pcn_collisions; break; case MAC_STAT_IERRORS: *val = pcnp->pcn_errrcv; break; case MAC_STAT_OERRORS: *val = pcnp->pcn_errxmt; break; case ETHER_STAT_ALIGN_ERRORS: *val = pcnp->pcn_align_errors; break; case ETHER_STAT_FCS_ERRORS: *val = pcnp->pcn_fcs_errors; break; case ETHER_STAT_SQE_ERRORS: *val = pcnp->pcn_sqe_errors; break; case ETHER_STAT_DEFER_XMTS: *val = pcnp->pcn_defer_xmts; break; case ETHER_STAT_FIRST_COLLISIONS: *val = pcnp->pcn_first_collisions; break; case ETHER_STAT_MULTI_COLLISIONS: *val = pcnp->pcn_multi_collisions; break; case ETHER_STAT_TX_LATE_COLLISIONS: *val = pcnp->pcn_tx_late_collisions; break; case ETHER_STAT_EX_COLLISIONS: *val = pcnp->pcn_ex_collisions; break; case ETHER_STAT_MACXMT_ERRORS: *val = pcnp->pcn_macxmt_errors; break; case ETHER_STAT_CARRIER_ERRORS: *val = pcnp->pcn_carrier_errors; break; case ETHER_STAT_TOOLONG_ERRORS: *val = pcnp->pcn_toolong_errors; break; case ETHER_STAT_MACRCV_ERRORS: *val = pcnp->pcn_macrcv_errors; break; case MAC_STAT_OVERFLOWS: *val = pcnp->pcn_overflow; break; case MAC_STAT_UNDERFLOWS: *val = pcnp->pcn_underflow; break; case ETHER_STAT_TOOSHORT_ERRORS: *val = pcnp->pcn_runt; break; case ETHER_STAT_JABBER_ERRORS: *val = pcnp->pcn_jabber; break; default: return (ENOTSUP); } return (0); }