bus/vmbus: add devargs support

Take device arguments from command line and put
them in the device devargs.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
This commit is contained in:
Stephen Hemminger 2018-08-30 15:35:08 -07:00 committed by Ferruh Yigit
parent 323e7b667f
commit cf2b90756c
3 changed files with 26 additions and 1 deletions

View File

@ -276,6 +276,8 @@ vmbus_scan_one(const char *name)
dev->device.numa_node = SOCKET_ID_ANY;
}
dev->device.devargs = vmbus_devargs_lookup(dev);
/* device is valid, add in list (sorted) */
VMBUS_LOG(DEBUG, "Adding vmbus device %s", name);

View File

@ -66,6 +66,9 @@ struct vmbus_channel {
#define VMBUS_MAX_CHANNELS 64
struct rte_devargs *
vmbus_devargs_lookup(struct rte_vmbus_device *dev);
int vmbus_chan_create(const struct rte_vmbus_device *device,
uint16_t relid, uint16_t subid, uint8_t monitor_id,
struct vmbus_channel **new_chan);

View File

@ -85,7 +85,6 @@ vmbus_match(const struct rte_vmbus_driver *dr,
return false;
}
/*
* If device ID match, call the devinit() function of the driver.
*/
@ -204,6 +203,27 @@ vmbus_parse(const char *name, void *addr)
return ret;
}
/*
* scan for matching device args on command line
* example:
* -w 'vmbus:635a7ae3-091e-4410-ad59-667c4f8c04c3,latency=20'
*/
struct rte_devargs *
vmbus_devargs_lookup(struct rte_vmbus_device *dev)
{
struct rte_devargs *devargs;
rte_uuid_t addr;
RTE_EAL_DEVARGS_FOREACH("vmbus", devargs) {
vmbus_parse(devargs->name, &addr);
if (rte_uuid_compare(dev->device_id, addr) == 0)
return devargs;
}
return NULL;
}
/* register vmbus driver */
void
rte_vmbus_register(struct rte_vmbus_driver *driver)