[dpdk-dev] [PATCH v10 08/27] devargs: add function to parse device layers

Gaëtan Rivet gaetan.rivet at 6wind.com
Wed Jul 11 10:41:16 CEST 2018


Hi Thomas,

On Wed, Jul 11, 2018 at 10:19:07AM +0200, Thomas Monjalon wrote:
> 05/07/2018 13:48, Gaetan Rivet:
> > +/**
> > + * @internal
> > + * Parse a device string and store its information in an
> > + * rte_devargs structure.
> 
> Please, explain what is a layer.
> 
> > + *
> > + * Note: if the "data" field of da points to devstr,
> 
> Better to use "devargs" as variable name, instead of "da".
> 
> > + * then no dynamic allocation is performed and the rte_devargs
> > + * can be safely discarded.
> > + *
> > + * Otherwise ``data`` will hold a workable copy of devstr, that will be
> > + * used by layers descriptors within rte_devargs. In this case,
> > + * any rte_devargs should be cleaned-up before being freed.
> > + *
> > + * @param da
> > + *   rte_devargs structure to fill.
> > + *
> > + * @param devstr
> > + *   Device string.
> > + *
> > + * @return
> > + *   0 on success.
> > + *   Negative errno values on error (rte_errno is set).
> > + */
> > +int
> > +rte_devargs_layers_parse(struct rte_devargs *da,
> > +			 const char *devstr);
> > +
> >  #endif /* _EAL_PRIVATE_H_ */
> > diff --git a/lib/librte_eal/common/include/rte_devargs.h b/lib/librte_eal/common/include/rte_devargs.h
> > index 6c3b6326b..148600258 100644
> > --- a/lib/librte_eal/common/include/rte_devargs.h
> > +++ b/lib/librte_eal/common/include/rte_devargs.h
> > @@ -51,12 +51,19 @@ struct rte_devargs {
> >  	enum rte_devtype type;
> >  	/** Device policy. */
> >  	enum rte_dev_policy policy;
> > -	/** Bus handle for the device. */
> > -	struct rte_bus *bus;
> >  	/** Name of the device. */
> >  	char name[RTE_DEV_NAME_MAX_LEN];
> > +	RTE_STD_C11
> > +	union {
> >  	/** Arguments string as given by user or "" for no argument. */
> > -	char *args;
> > +		char *args;
> > +		const char *drvstr;
> > +	};
> > +	struct rte_bus *bus; /**< bus handle. */
> > +	struct rte_class *cls; /**< class handle. */
> 
> "class" is more readable than "cls"
> 

I was thinking that maybe this could be a problem when trying to build
with C++. The EAL headers in DPDK are meant to be included in C++ apps,
I think ``class`` would be an issue then.

If I'm mistaken, then sure, class is a better name.

> > +	const char *busstr; /**< bus-related part of device string. */
> 
> bus_str ?
> 
> > +	const char *clsstr; /**< bus-related part of device string. */
> 
> class_str ?
> + there is a typo in the comment (copy/pasted "bus")
> 
> > +	const char *data; /**< Device string storage. */
> >  };
> 
> 
> 

Otherwise, ok with the rest of the comments, will fix (as well as the
previous emails). Thanks for reading.

-- 
Gaëtan Rivet
6WIND


More information about the dev mailing list