[dpdk-dev] [PATCH v5 2/5] vhost: support selective datapath
Maxime Coquelin
maxime.coquelin at redhat.com
Tue Apr 3 10:19:05 CEST 2018
On 04/02/2018 01:46 PM, Zhihong Wang wrote:
> +int
> +rte_vdpa_register_device(struct rte_vdpa_dev_addr *addr,
> + struct rte_vdpa_dev_ops *ops)
> +{
> + struct rte_vdpa_device *dev;
> + char device_name[MAX_VDPA_NAME_LEN];
> + int i;
> +
> + if (vdpa_device_num >= MAX_VHOST_DEVICE)
> + return -1;
> +
> + for (i = 0; i < MAX_VHOST_DEVICE; i++) {
> + if (vdpa_devices[i] && is_same_vdpa_device(addr,
> + &vdpa_devices[i]->addr))
> + return -1;
> + }
For consistency, I changed above check to look like same one in
_find_device_id:
for (i = 0; i < MAX_VHOST_DEVICE; i++) {
dev = vdpa_devices[i];
if (dev && is_same_vdpa_device(&dev->addr, addr))
return -1;
}
> +
> + for (i = 0; i < MAX_VHOST_DEVICE; i++) {
> + if (vdpa_devices[i] == NULL)
> + break;
> + }
> +
> + sprintf(device_name, "vdpa-dev-%d", i);
> + dev = rte_zmalloc(device_name, sizeof(struct rte_vdpa_device),
> + RTE_CACHE_LINE_SIZE);
> + if (!dev)
> + return -1;
> +
> + memcpy(&dev->addr, addr, sizeof(struct rte_vdpa_dev_addr));
> + dev->ops = ops;
> + vdpa_devices[i] = dev;
> + vdpa_device_num++;
> +
> + return i;
> +}
> +
> +int
> +rte_vdpa_unregister_device(int did)
> +{
> + if (did < 0 || did >= MAX_VHOST_DEVICE || vdpa_devices[did] == NULL)
> + return -1;
> +
> + rte_free(vdpa_devices[did]);
> + vdpa_devices[did] = NULL;
> + vdpa_device_num--;
> +
> + return did;
> +}
> +
> +int
> +rte_vdpa_find_device_id(struct rte_vdpa_dev_addr *addr)
> +{
> + struct rte_vdpa_device *dev;
> + int i;
> +
> + for (i = 0; i < MAX_VHOST_DEVICE; ++i) {
> + dev = vdpa_devices[i];
> + if (dev && is_same_vdpa_device(&dev->addr, addr) == 0)
> + return i;
> + }
> +
> + return -1;
> +}
> +
More information about the dev
mailing list