igb_gld.c revision ac7f5757903d7806e03e59f71c10eec36e0deade
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * CDDL HEADER START
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner * The contents of this file are subject to the terms of the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Common Development and Distribution License (the "License").
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * You may not use this file except in compliance with the License.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * See the License for the specific language governing permissions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * and limitations under the License.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * When distributing Covered Code, include this CDDL HEADER in each
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * If applicable, add the following below this CDDL HEADER, with the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * fields enclosed by brackets "[]" replaced with your own identifying
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * information: Portions Copyright [yyyy] [name of copyright owner]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * CDDL HEADER END
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Copyright(c) 2007-2008 Intel Corporation. All rights reserved.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Use is subject to license terms.
return (ECANCELED);
switch (stat) {
case MAC_STAT_IFSPEED:
case MAC_STAT_MULTIRCV:
case MAC_STAT_BRDCSTRCV:
case MAC_STAT_MULTIXMT:
case MAC_STAT_BRDCSTXMT:
case MAC_STAT_NORCVBUF:
case MAC_STAT_IERRORS:
case MAC_STAT_NOXMTBUF:
*val = 0;
case MAC_STAT_OERRORS:
case MAC_STAT_COLLISIONS:
case MAC_STAT_RBYTES:
case MAC_STAT_IPACKETS:
case MAC_STAT_OBYTES:
case MAC_STAT_OPACKETS:
case ETHER_STAT_ALIGN_ERRORS:
case ETHER_STAT_FCS_ERRORS:
case ETHER_STAT_SQE_ERRORS:
case ETHER_STAT_DEFER_XMTS:
case ETHER_STAT_EX_COLLISIONS:
case ETHER_STAT_MACXMT_ERRORS:
case ETHER_STAT_MACRCV_ERRORS:
case ETHER_STAT_XCVR_ADDR:
case ETHER_STAT_XCVR_ID:
case ETHER_STAT_XCVR_INUSE:
case SPEED_1000:
*val =
case SPEED_100:
*val =
case SPEED_10:
case ETHER_STAT_CAP_1000FDX:
case ETHER_STAT_CAP_1000HDX:
case ETHER_STAT_CAP_100FDX:
case ETHER_STAT_CAP_100HDX:
case ETHER_STAT_CAP_10FDX:
case ETHER_STAT_CAP_10HDX:
case ETHER_STAT_CAP_ASMPAUSE:
case ETHER_STAT_CAP_PAUSE:
case ETHER_STAT_CAP_AUTONEG:
case ETHER_STAT_ADV_CAP_10FDX:
case ETHER_STAT_ADV_CAP_10HDX:
case ETHER_STAT_ADV_CAP_PAUSE:
case ETHER_STAT_LP_CAP_100FDX:
case ETHER_STAT_LP_CAP_100HDX:
case ETHER_STAT_LP_CAP_10FDX:
case ETHER_STAT_LP_CAP_10HDX:
case ETHER_STAT_LP_CAP_PAUSE:
case ETHER_STAT_LINK_ASMPAUSE:
case ETHER_STAT_LINK_PAUSE:
case ETHER_STAT_LINK_AUTONEG:
case ETHER_STAT_LINK_DUPLEX:
case ETHER_STAT_CAP_REMFAULT:
case ETHER_STAT_ADV_REMFAULT:
case ETHER_STAT_LP_REMFAULT:
case ETHER_STAT_JABBER_ERRORS:
case ETHER_STAT_CAP_100T4:
case ETHER_STAT_ADV_CAP_100T4:
case ETHER_STAT_LP_CAP_100T4:
return (ENOTSUP);
return (EIO);
return (ECANCELED);
return (EIO);
return (ECANCELED);
if (on)
return (EIO);
int result;
return (ECANCELED);
return (result);
case LB_GET_INFO_SIZE:
case LB_GET_INFO:
case LB_GET_MODE:
case LB_SET_MODE:
switch (status) {
case IOC_INVAL:
case IOC_DONE:
case IOC_ACK:
case IOC_REPLY:
int i, slot;
return (ECANCELED);
return (ENOSPC);
slot = i;
return (ENOSPC);
int slot;
return (ECANCELED);
return (EINVAL);
return (EINVAL);
rindex--;
if (rindex < 0)
switch (rtype) {
case MAC_RING_TYPE_RX: {
int global_index;
case MAC_RING_TYPE_TX: {
switch (rtype) {
case MAC_RING_TYPE_RX: {
case MAC_RING_TYPE_TX:
switch (cap) {
case MAC_CAPAB_HCKSUM: {
return (B_FALSE);
case MAC_CAPAB_LSO: {
return (B_FALSE);
case MAC_CAPAB_RINGS: {
case MAC_RING_TYPE_RX:
case MAC_RING_TYPE_TX:
return (B_FALSE);
return (B_TRUE);
int err = 0;
return (ECANCELED);
return (EBUSY);
switch (pr_num) {
case MAC_PROP_EN_1000FDX_CAP:
goto setup_link;
case MAC_PROP_EN_100FDX_CAP:
goto setup_link;
case MAC_PROP_EN_100HDX_CAP:
goto setup_link;
case MAC_PROP_EN_10FDX_CAP:
goto setup_link;
case MAC_PROP_EN_10HDX_CAP:
goto setup_link;
case MAC_PROP_AUTONEG:
goto setup_link;
case MAC_PROP_FLOWCTRL:
switch (flow_control) {
case LINK_FLOWCTRL_NONE:
case LINK_FLOWCTRL_RX:
case LINK_FLOWCTRL_TX:
case LINK_FLOWCTRL_BI:
if (err == 0) {
case MAC_PROP_ADV_1000FDX_CAP:
case MAC_PROP_ADV_1000HDX_CAP:
case MAC_PROP_ADV_100T4_CAP:
case MAC_PROP_ADV_100FDX_CAP:
case MAC_PROP_ADV_100HDX_CAP:
case MAC_PROP_ADV_10FDX_CAP:
case MAC_PROP_ADV_10HDX_CAP:
case MAC_PROP_EN_1000HDX_CAP:
case MAC_PROP_EN_100T4_CAP:
case MAC_PROP_STATUS:
case MAC_PROP_SPEED:
case MAC_PROP_DUPLEX:
case MAC_PROP_MTU:
err = 0;
if (err == 0) {
case MAC_PROP_PRIVATE:
return (EIO);
return (err);
int err = 0;
if (pr_valsize == 0)
return (EINVAL);
switch (pr_num) {
case MAC_PROP_DUPLEX:
sizeof (link_duplex_t));
case MAC_PROP_SPEED:
case MAC_PROP_AUTONEG:
case MAC_PROP_FLOWCTRL:
case e1000_fc_none:
case e1000_fc_rx_pause:
case e1000_fc_tx_pause:
case e1000_fc_full:
case MAC_PROP_ADV_1000FDX_CAP:
case MAC_PROP_EN_1000FDX_CAP:
case MAC_PROP_ADV_1000HDX_CAP:
case MAC_PROP_EN_1000HDX_CAP:
case MAC_PROP_ADV_100T4_CAP:
case MAC_PROP_EN_100T4_CAP:
case MAC_PROP_ADV_100FDX_CAP:
case MAC_PROP_EN_100FDX_CAP:
case MAC_PROP_ADV_100HDX_CAP:
case MAC_PROP_EN_100HDX_CAP:
case MAC_PROP_ADV_10FDX_CAP:
case MAC_PROP_EN_10FDX_CAP:
case MAC_PROP_ADV_10HDX_CAP:
case MAC_PROP_EN_10HDX_CAP:
case MAC_PROP_PRIVATE:
case MAC_PROP_MTU:
return (ENOTSUP);
return (EINVAL);
return (err);
int err = 0;
switch (pr_num) {
case MAC_PROP_AUTONEG:
case MAC_PROP_FLOWCTRL:
return (EINVAL);
case MAC_PROP_ADV_1000FDX_CAP:
case MAC_PROP_EN_1000FDX_CAP:
case MAC_PROP_ADV_1000HDX_CAP:
case MAC_PROP_EN_1000HDX_CAP:
case MAC_PROP_ADV_100T4_CAP:
case MAC_PROP_EN_100T4_CAP:
case MAC_PROP_ADV_100FDX_CAP:
case MAC_PROP_EN_100FDX_CAP:
case MAC_PROP_ADV_100HDX_CAP:
case MAC_PROP_EN_100HDX_CAP:
case MAC_PROP_ADV_10FDX_CAP:
case MAC_PROP_EN_10FDX_CAP:
case MAC_PROP_ADV_10HDX_CAP:
case MAC_PROP_EN_10HDX_CAP:
return (err);
switch (pr_num) {
case MAC_PROP_EN_1000FDX_CAP:
case MAC_PROP_EN_1000HDX_CAP:
case MAC_PROP_EN_100T4_CAP:
case MAC_PROP_EN_100FDX_CAP:
case MAC_PROP_EN_100HDX_CAP:
case MAC_PROP_EN_10FDX_CAP:
case MAC_PROP_EN_10HDX_CAP:
case MAC_PROP_AUTONEG:
case MAC_PROP_FLOWCTRL:
return (B_TRUE);
return (B_FALSE);
int err = 0;
long result;
return (err);
return (err);
return (err);
return (err);
return (err);
return (err);
return (err);
return (err);
return (err);
return (err);
return (err);
return (err);
return (err);
for (i = 0; i < MAX_NUM_EITR; i++)
return (err);
return (ENOTSUP);
int value;
err = 0;
goto done;
err = 0;
goto done;
err = 0;
goto done;
err = 0;
goto done;
err = 0;
goto done;
err = 0;
goto done;
err = 0;
goto done;
err = 0;
goto done;
err = 0;
goto done;
done:
if (err == 0) {
return (err);