From: Tyler Retzlaff <roretzla@linux.microsoft.com>
To: Euan Bourke <euan.bourke@intel.com>
Cc: dev@dpdk.org, Thomas Monjalon <thomas@monjalon.net>,
Bruce Richardson <bruce.richardson@intel.com>
Subject: Re: [PATCH v3 1/8] arg_parser: new library for command line parsing
Date: Thu, 7 Dec 2023 11:32:49 -0800 [thread overview]
Message-ID: <20231207193249.GA17449@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> (raw)
In-Reply-To: <20231207161818.2590661-2-euan.bourke@intel.com>
On Thu, Dec 07, 2023 at 04:18:11PM +0000, Euan Bourke wrote:
> Add a new library to make it easier for eal and other libraries to parse
> command line arguments.
>
> The first function in this library is one to parse a corelist string
> into an array of individual core ids. The function will then return the
> total number of cores described in the corelist.
>
> Signed-off-by: Euan Bourke <euan.bourke@intel.com>
> ---
> .mailmap | 1 +
> MAINTAINERS | 4 ++
> doc/api/doxy-api-index.md | 3 +-
> doc/api/doxy-api.conf.in | 1 +
> lib/arg_parser/arg_parser.c | 108 ++++++++++++++++++++++++++++++++
> lib/arg_parser/meson.build | 7 +++
> lib/arg_parser/rte_arg_parser.h | 66 +++++++++++++++++++
> lib/arg_parser/version.map | 10 +++
> lib/meson.build | 2 +
> 9 files changed, 201 insertions(+), 1 deletion(-)
> create mode 100644 lib/arg_parser/arg_parser.c
> create mode 100644 lib/arg_parser/meson.build
> create mode 100644 lib/arg_parser/rte_arg_parser.h
> create mode 100644 lib/arg_parser/version.map
>
> diff --git a/.mailmap b/.mailmap
> index ab0742a382..528bc68a30 100644
> --- a/.mailmap
> +++ b/.mailmap
> @@ -379,6 +379,7 @@ Eric Zhang <eric.zhang@windriver.com>
> Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
> Erik Ziegenbalg <eziegenb@brocade.com>
> Erlu Chen <erlu.chen@intel.com>
> +Euan Bourke <euan.bourke@intel.com>
> Eugenio Pérez <eperezma@redhat.com>
> Eugeny Parshutin <eugeny.parshutin@linux.intel.com>
> Evan Swanson <evan.swanson@intel.com>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 0d1c8126e3..68ef5ba14b 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1756,6 +1756,10 @@ M: Nithin Dabilpuram <ndabilpuram@marvell.com>
> M: Pavan Nikhilesh <pbhagavatula@marvell.com>
> F: lib/node/
>
> +Argument parsing
> +M: Bruce Richardson <bruce.richardson@intel.com>
> +F: lib/arg_parser/
> +
>
> Test Applications
> -----------------
> diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md
> index a6a768bd7c..f711010140 100644
> --- a/doc/api/doxy-api-index.md
> +++ b/doc/api/doxy-api-index.md
> @@ -221,7 +221,8 @@ The public API headers are grouped by topics:
> [config file](@ref rte_cfgfile.h),
> [key/value args](@ref rte_kvargs.h),
> [string](@ref rte_string_fns.h),
> - [thread](@ref rte_thread.h)
> + [thread](@ref rte_thread.h),
> + [argument parsing](@ref rte_arg_parser.h)
>
> - **debug**:
> [jobstats](@ref rte_jobstats.h),
> diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in
> index e94c9e4e46..05718ba6ed 100644
> --- a/doc/api/doxy-api.conf.in
> +++ b/doc/api/doxy-api.conf.in
> @@ -28,6 +28,7 @@ INPUT = @TOPDIR@/doc/api/doxy-api-index.md \
> @TOPDIR@/lib/eal/include \
> @TOPDIR@/lib/eal/include/generic \
> @TOPDIR@/lib/acl \
> + @TOPDIR@/lib/arg_parser \
> @TOPDIR@/lib/bbdev \
> @TOPDIR@/lib/bitratestats \
> @TOPDIR@/lib/bpf \
> diff --git a/lib/arg_parser/arg_parser.c b/lib/arg_parser/arg_parser.c
> new file mode 100644
> index 0000000000..240f63d8e1
> --- /dev/null
> +++ b/lib/arg_parser/arg_parser.c
> @@ -0,0 +1,108 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2023 Intel Corporation
> + */
> +
> +#include "errno.h"
> +#include "stdlib.h"
> +#include "ctype.h"
> +#include "string.h"
> +#include "stdbool.h"
should be <> not "" quotes for system or standard library headers includes.
> +
> +#include <rte_arg_parser.h>
> +#include <rte_common.h>
> +
> +
> +struct core_bits {
> + uint8_t bits[(UINT16_MAX + 1) / CHAR_BIT];
> + uint16_t max_bit_set;
> + uint16_t min_bit_set;
> + uint32_t total_bits_set;
> +};
> +
> +static inline bool
> +get_core_bit(struct core_bits *mask, uint16_t idx)
nit: use size_t typed parameters for things that are used as an offset /
subscript value. applies to all instances in the series.
next prev parent reply other threads:[~2023-12-07 19:32 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-07 16:18 [PATCH v3 0/8] add new command line argument parsing library Euan Bourke
2023-12-07 16:18 ` [PATCH v3 1/8] arg_parser: new library for command line parsing Euan Bourke
2023-12-07 16:44 ` Bruce Richardson
2023-12-07 19:32 ` Tyler Retzlaff [this message]
2023-12-07 16:18 ` [PATCH v3 2/8] arg_parser: add new coremask parsing API Euan Bourke
2023-12-07 16:18 ` [PATCH v3 3/8] eal: add support for new arg parsing library Euan Bourke
2023-12-07 16:18 ` [PATCH v3 4/8] eal: update to service core related parsers Euan Bourke
2023-12-07 16:18 ` [PATCH v3 5/8] event/dlb2: add new arg parsing library API support Euan Bourke
2023-12-07 16:18 ` [PATCH v3 6/8] arg_parser: added common core string and heuristic parsers Euan Bourke
2023-12-07 16:58 ` Bruce Richardson
2023-12-07 16:18 ` [PATCH v3 7/8] examples/eventdev_pipeline: update to call arg parser API Euan Bourke
2023-12-07 16:18 ` [PATCH v3 8/8] examples/l3fwd-power: " Euan Bourke
2023-12-11 12:01 ` Hunt, David
2023-12-11 16:50 ` Tummala, Sivaprasad
2023-12-07 17:34 ` [PATCH v3 0/8] add new command line argument parsing library Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231207193249.GA17449@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net \
--to=roretzla@linux.microsoft.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=euan.bourke@intel.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).