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

Function efx_rx_init

dpdk/drivers/common/sfc_efx/base/efx_rx.c:213–289  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

211
212
213 __checkReturn efx_rc_t
214efx_rx_init(
215 __inout efx_nic_t *enp)
216{
217 const efx_rx_ops_t *erxop;
218 efx_rc_t rc;
219
220 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
221 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NIC);
222
223 if (!(enp->en_mod_flags & EFX_MOD_EV)) {
224 rc = EINVAL;
225 goto fail1;
226 }
227
228 if (enp->en_mod_flags & EFX_MOD_RX) {
229 rc = EINVAL;
230 goto fail2;
231 }
232
233 switch (enp->en_family) {
234#if EFSYS_OPT_SIENA
235 case EFX_FAMILY_SIENA:
236 erxop = &__efx_rx_siena_ops;
237 break;
238#endif /* EFSYS_OPT_SIENA */
239
240#if EFSYS_OPT_HUNTINGTON
241 case EFX_FAMILY_HUNTINGTON:
242 erxop = &__efx_rx_ef10_ops;
243 break;
244#endif /* EFSYS_OPT_HUNTINGTON */
245
246#if EFSYS_OPT_MEDFORD
247 case EFX_FAMILY_MEDFORD:
248 erxop = &__efx_rx_ef10_ops;
249 break;
250#endif /* EFSYS_OPT_MEDFORD */
251
252#if EFSYS_OPT_MEDFORD2
253 case EFX_FAMILY_MEDFORD2:
254 erxop = &__efx_rx_ef10_ops;
255 break;
256#endif /* EFSYS_OPT_MEDFORD2 */
257
258#if EFSYS_OPT_RIVERHEAD
259 case EFX_FAMILY_RIVERHEAD:
260 erxop = &__efx_rx_rhead_ops;
261 break;
262#endif /* EFSYS_OPT_RIVERHEAD */
263
264 default:
265 EFSYS_ASSERT(0);
266 rc = ENOTSUP;
267 goto fail3;
268 }
269
270 if ((rc = erxop->erxo_init(enp)) != 0)

Callers 2

sfc_rx_startFunction · 0.85
sfc_rss_attachFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected