[dpdk-dev] [PATCH v1 01/10] app/test: introduce resources for tests
Thomas Monjalon
thomas.monjalon at 6wind.com
Fri May 6 16:01:08 CEST 2016
2016-05-06 12:48, Jan Viktorin:
> --- /dev/null
> +++ b/app/test/resource.h
> @@ -0,0 +1,61 @@
> +/*-
> + * BSD LICENSE
[...]
> + */
Please include a multi-line comment here to explain what is a resource
and why it is needed.
> +
> +#ifndef _RESOURCE_H_
> +#define _RESOURCE_H_
> +
|...]
|> +
> +TAILQ_HEAD(resource_list, resource);
> +extern struct resource_list resource_list;
Why extern?
> +
> +struct resource {
> + const char *name;
> + const char *beg;
begin?
Bruce is removing some megabytes from lpm tests, so we have
some room for field names ;)
> + const char *end;
> + TAILQ_ENTRY(resource) next;
> +};
> +
> +static inline size_t resource_size(const struct resource *r)
Why inline? It could be in .c
> +{
> + return r->end - r->beg;
> +}
> +
> +const struct resource *resource_find(const char *name);
> +
> +void __resource_register(struct resource *r);
A comment is needed to explain the role of this function.
Why a double underscore?
> +#define REGISTER_RESOURCE(_n, _b, _e) \
I'm not a big fan of the underscores.
> +static struct resource linkres_ ##_n = { \
> + .name = RTE_STR(_n), \
> + .beg = _b, \
> + .end = _e, \
> +}; \
> +__REGISTER_RESOURCE(linkres_ ##_n)
Please avoid nested macros.
> +#define __REGISTER_RESOURCE(name) \
> +static void __attribute__((constructor,used)) resinitfn_ ##name(void); \
Why declaring the function just before its implementation?
> +static void __attribute__((constructor,used)) resinitfn_ ##name(void) \
> +{ \
> + __resource_register(&name); \
> +}
More information about the dev
mailing list