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

Function vnic_dev_cmd

dpdk/drivers/net/enic/base/vnic_dev.c:443–493  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

441}
442
443int vnic_dev_cmd(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd,
444 uint64_t *a0, uint64_t *a1, int wait)
445{
446 uint64_t args[2];
447 bool vf_rep;
448 int vf_idx;
449 int err;
450
451 vf_rep = false;
452 if (vdev->pf_vdev) {
453 vf_rep = true;
454 vf_idx = vdev->vf_id;
455 /* Everything below assumes PF vdev */
456 vdev = vdev->pf_vdev;
457 }
458 if (vdev->lock)
459 vdev->lock(vdev->priv);
460 /* For VF representor, proxy devcmd to VF index */
461 if (vf_rep)
462 vnic_dev_cmd_proxy_by_index_start(vdev, vf_idx);
463
464 args[0] = *a0;
465 args[1] = *a1;
466 memset(vdev->args, 0, sizeof(vdev->args));
467
468 switch (vdev->proxy) {
469 case PROXY_BY_INDEX:
470 err = vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_INDEX, cmd,
471 args, ARRAY_SIZE(args), wait);
472 break;
473 case PROXY_BY_BDF:
474 err = vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_BDF, cmd,
475 args, ARRAY_SIZE(args), wait);
476 break;
477 case PROXY_NONE:
478 default:
479 err = vnic_dev_cmd_no_proxy(vdev, cmd, args, 2, wait);
480 break;
481 }
482
483 if (vf_rep)
484 vnic_dev_cmd_proxy_end(vdev);
485 if (vdev->unlock)
486 vdev->unlock(vdev->priv);
487 if (err == 0) {
488 *a0 = args[0];
489 *a1 = args[1];
490 }
491
492 return err;
493}
494
495int vnic_dev_cmd_args(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd,
496 uint64_t *args, int nargs, int wait)

Callers 15

enic_set_nic_cfgFunction · 0.85
enic_set_rss_keyFunction · 0.85
enic_set_rss_cpuFunction · 0.85
vnic_dev_fw_infoFunction · 0.85
vnic_dev_capableFunction · 0.85
vnic_dev_specFunction · 0.85
vnic_dev_stats_clearFunction · 0.85
vnic_dev_stats_dumpFunction · 0.85
vnic_dev_closeFunction · 0.85
vnic_dev_enable_waitFunction · 0.85

Calls 5

memsetFunction · 0.85
vnic_dev_cmd_proxyFunction · 0.85
vnic_dev_cmd_no_proxyFunction · 0.85
vnic_dev_cmd_proxy_endFunction · 0.85

Tested by

no test coverage detected