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

Function efx_tx_init

dpdk/drivers/common/sfc_efx/base/efx_tx.c:236–314  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234
235
236 __checkReturn efx_rc_t
237efx_tx_init(
238 __in efx_nic_t *enp)
239{
240 const efx_tx_ops_t *etxop;
241 efx_rc_t rc;
242
243 EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
244 EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_NIC);
245
246 if (!(enp->en_mod_flags & EFX_MOD_EV)) {
247 rc = EINVAL;
248 goto fail1;
249 }
250
251 if (enp->en_mod_flags & EFX_MOD_TX) {
252 rc = EINVAL;
253 goto fail2;
254 }
255
256 switch (enp->en_family) {
257#if EFSYS_OPT_SIENA
258 case EFX_FAMILY_SIENA:
259 etxop = &__efx_tx_siena_ops;
260 break;
261#endif /* EFSYS_OPT_SIENA */
262
263#if EFSYS_OPT_HUNTINGTON
264 case EFX_FAMILY_HUNTINGTON:
265 etxop = &__efx_tx_hunt_ops;
266 break;
267#endif /* EFSYS_OPT_HUNTINGTON */
268
269#if EFSYS_OPT_MEDFORD
270 case EFX_FAMILY_MEDFORD:
271 etxop = &__efx_tx_medford_ops;
272 break;
273#endif /* EFSYS_OPT_MEDFORD */
274
275#if EFSYS_OPT_MEDFORD2
276 case EFX_FAMILY_MEDFORD2:
277 etxop = &__efx_tx_medford2_ops;
278 break;
279#endif /* EFSYS_OPT_MEDFORD2 */
280
281#if EFSYS_OPT_RIVERHEAD
282 case EFX_FAMILY_RIVERHEAD:
283 etxop = &__efx_tx_rhead_ops;
284 break;
285#endif /* EFSYS_OPT_RIVERHEAD */
286
287 default:
288 EFSYS_ASSERT(0);
289 rc = ENOTSUP;
290 goto fail3;
291 }
292
293 EFSYS_ASSERT3U(enp->en_tx_qcount, ==, 0);

Callers 1

sfc_tx_startFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected