staticint linkstate_get_sqi(struct phy_device *phydev)
{ int ret;
if (!phydev) return -EOPNOTSUPP;
mutex_lock(&phydev->lock); if (!phydev->drv || !phydev->drv->get_sqi)
ret = -EOPNOTSUPP; elseif (!phydev->link)
ret = -ENETDOWN; else
ret = phydev->drv->get_sqi(phydev);
mutex_unlock(&phydev->lock);
return ret;
}
staticint linkstate_get_sqi_max(struct phy_device *phydev)
{ int ret;
if (!phydev) return -EOPNOTSUPP;
mutex_lock(&phydev->lock); if (!phydev->drv || !phydev->drv->get_sqi_max)
ret = -EOPNOTSUPP; elseif (!phydev->link)
ret = -ENETDOWN; else
ret = phydev->drv->get_sqi_max(phydev);
mutex_unlock(&phydev->lock);
if (data->link >= 0 &&
nla_put_u8(skb, ETHTOOL_A_LINKSTATE_LINK, !!data->link)) return -EMSGSIZE;
if (linkstate_sqi_valid(data)) { if (nla_put_u32(skb, ETHTOOL_A_LINKSTATE_SQI, data->sqi)) return -EMSGSIZE;
if (nla_put_u32(skb, ETHTOOL_A_LINKSTATE_SQI_MAX,
data->sqi_max)) return -EMSGSIZE;
}
if (data->link_ext_state_provided) { if (nla_put_u8(skb, ETHTOOL_A_LINKSTATE_EXT_STATE,
data->ethtool_link_ext_state_info.link_ext_state)) return -EMSGSIZE;
if (data->ethtool_link_ext_state_info.__link_ext_substate &&
nla_put_u8(skb, ETHTOOL_A_LINKSTATE_EXT_SUBSTATE,
data->ethtool_link_ext_state_info.__link_ext_substate)) return -EMSGSIZE;
}
if (data->link_stats.link_down_events != ETHTOOL_STAT_NOT_SET) if (nla_put_u32(skb, ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT,
data->link_stats.link_down_events)) return -EMSGSIZE;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.