int vnic_dev_cmd(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd, u64 *a0, u64 *a1, int wait) { u64 args[2]; int err; args[0] = *a0; args[1] = *a1; memset(vdev->args, 0, sizeof(vdev->args)); switch (vdev->proxy) { case PROXY_BY_INDEX: err = vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_INDEX, cmd, args, ARRAY_SIZE(args), wait); break; case PROXY_BY_BDF: err = vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_BDF, cmd, args, ARRAY_SIZE(args), wait); break; case PROXY_NONE: default: err = vnic_dev_cmd_no_proxy(vdev, cmd, args, 2, wait); break; } if (err == 0) { *a0 = args[0]; *a1 = args[1]; } return err; }
int vnic_dev_cmd_args(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd, u64 *args, int nargs, int wait) { switch (vdev->proxy) { case PROXY_BY_INDEX: return vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_INDEX, cmd, args, nargs, wait); case PROXY_BY_BDF: return vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_BDF, cmd, args, nargs, wait); case PROXY_NONE: default: return vnic_dev_cmd_no_proxy(vdev, cmd, args, nargs, wait); } }
int vnic_dev_cmd(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd, u64 *a0, u64 *a1, int wait) { memset(vdev->args, 0, sizeof(vdev->args)); switch (vdev->proxy) { case PROXY_BY_INDEX: return vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_INDEX, cmd, a0, a1, wait); case PROXY_BY_BDF: return vnic_dev_cmd_proxy(vdev, CMD_PROXY_BY_BDF, cmd, a0, a1, wait); case PROXY_NONE: default: return vnic_dev_cmd_no_proxy(vdev, cmd, a0, a1, wait); } }