MCPcopy Create free account
hub / github.com/F-Stack/f-stack / efx_port_loopback_set

Function efx_port_loopback_set

dpdk/drivers/common/sfc_efx/base/efx_port.c:105–143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103#if EFSYS_OPT_LOOPBACK
104
105 __checkReturn efx_rc_t
106efx_port_loopback_set(
107 __in efx_nic_t *enp,
108 __in efx_link_mode_t link_mode,
109 __in efx_loopback_type_t loopback_type)
110{
111 efx_port_t *epp = &(enp->en_port);
112 efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
113 const efx_mac_ops_t *emop = epp->ep_emop;
114 efx_rc_t rc;
115
116 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
117 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PORT);
118 EFSYS_ASSERT(emop != NULL);
119
120 EFSYS_ASSERT(link_mode < EFX_LINK_NMODES);
121
122 if (EFX_TEST_QWORD_BIT(encp->enc_loopback_types[link_mode],
123 (int)loopback_type) == 0) {
124 rc = ENOTSUP;
125 goto fail1;
126 }
127
128 if (epp->ep_loopback_type == loopback_type &&
129 epp->ep_loopback_link_mode == link_mode)
130 return (0);
131
132 if ((rc = emop->emo_loopback_set(enp, link_mode, loopback_type)) != 0)
133 goto fail2;
134
135 return (0);
136
137fail2:
138 EFSYS_PROBE(fail2);
139fail1:
140 EFSYS_PROBE1(fail1, efx_rc_t, rc);
141
142 return (rc);
143}
144
145#if EFSYS_OPT_NAMES
146

Callers 1

sfc_port_startFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected