All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Mahmoud Mandour <ma.mandourr@gmail.com>
Cc: cota@braap.org, qemu-devel@nongnu.org
Subject: Re: [PATCH 02/13] plugins/api: added a boolean parsing plugin api
Date: Mon, 19 Jul 2021 15:11:34 +0100	[thread overview]
Message-ID: <87fswapenv.fsf@linaro.org> (raw)
In-Reply-To: <20210717100920.240793-3-ma.mandourr@gmail.com>


Mahmoud Mandour <ma.mandourr@gmail.com> writes:

> This call will help boolean argument parsing since arguments are now
> passed to plugins as a name and value.
>
> Signed-off-by: Mahmoud Mandour <ma.mandourr@gmail.com>
> ---
>  include/qemu/qemu-plugin.h | 13 +++++++++++++
>  plugins/api.c              |  5 +++++
>  2 files changed, 18 insertions(+)
>
> diff --git a/include/qemu/qemu-plugin.h b/include/qemu/qemu-plugin.h
> index dc3496f36c..7d0b23c659 100644
> --- a/include/qemu/qemu-plugin.h
> +++ b/include/qemu/qemu-plugin.h
> @@ -564,4 +564,17 @@ int qemu_plugin_n_max_vcpus(void);
>   */
>  void qemu_plugin_outs(const char *string);
>  
> +/**
> + * qemu_plugin_bool_parse() - parses a boolean argument in the form of
> + * "<argname>=[on|yes|true|off|no|false]"
> + *
> + * @name: argument name, the part before the equals sign
> + * @val: argument value, what's after the equals sign
> + * @ret: output return value
> + *
> + * returns true if the combination @name=@val parses correctly to a boolean
> + * argument, and false otherwise
> + */
> +bool qemu_plugin_bool_parse(const char *name, const char *val, bool *ret);
> +
>  #endif /* QEMU_PLUGIN_API_H */
> diff --git a/plugins/api.c b/plugins/api.c
> index 332e2c60e2..43e239f377 100644
> --- a/plugins/api.c
> +++ b/plugins/api.c
> @@ -383,3 +383,8 @@ void qemu_plugin_outs(const char *string)
>  {
>      qemu_log_mask(CPU_LOG_PLUGIN, "%s", string);
>  }
> +
> +bool qemu_plugin_bool_parse(const char *name, const char *value, bool *ret)
> +{
> +    return qapi_bool_parse(name, value, ret, NULL);
> +}

I'm not sure we want to have such a naive pass through of
qapi_bool_parse here. For one thing I think all the current call sites
guarantee value will be set to something. I think that's still the case
for args we supply to plugin_init because of our pre-processing but the
plugin user could at any point decide to parse a random string pair with
it.

We should check for name/value being non-NULL before the pass through I
think.

-- 
Alex Bennée


  reply	other threads:[~2021-07-19 14:22 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-17 10:09 [PATCH 00/13] new plugin argument passing scheme Mahmoud Mandour
2021-07-17 10:09 ` [PATCH 01/13] plugins: allow plugin arguments to be passed directly Mahmoud Mandour
2021-07-19 13:31   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 02/13] plugins/api: added a boolean parsing plugin api Mahmoud Mandour
2021-07-19 14:11   ` Alex Bennée [this message]
2021-07-17 10:09 ` [PATCH 03/13] plugins/hotpages: introduce sortby arg and parsed bool args correctly Mahmoud Mandour
2021-07-19 14:23   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 04/13] plugins/hotblocks: Added correct boolean argument parsing Mahmoud Mandour
2021-07-19 14:24   ` Alex Bennée
2021-07-19 14:26   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 05/13] plugins/lockstep: make socket path not positional & parse bool arg Mahmoud Mandour
2021-07-19 14:25   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 06/13] plugins/hwprofile: adapt to the new plugin arguments scheme Mahmoud Mandour
2021-07-17 10:09 ` [PATCH 07/13] plugins/howvec: Adapting to the new argument passing scheme Mahmoud Mandour
2021-07-19 14:57   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 08/13] docs/tcg-plugins: new passing parameters scheme for cache docs Mahmoud Mandour
2021-07-19 14:58   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 09/13] tests/plugins/bb: adapt to the new arg passing scheme Mahmoud Mandour
2021-07-19 14:58   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 10/13] tests/plugins/insn: made arg inline not positional and parse it as bool Mahmoud Mandour
2021-07-19 14:59   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 11/13] tests/plugins/mem: introduce "track" arg and make args not positional Mahmoud Mandour
2021-07-19 15:31   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 12/13] tests/plugins/syscalls: adhere to new arg-passing scheme Mahmoud Mandour
2021-07-19 15:32   ` Alex Bennée
2021-07-17 10:09 ` [PATCH 13/13] docs/deprecated: deprecate passing plugin args through `arg=` Mahmoud Mandour
2021-07-19 12:13   ` Peter Krempa
2021-07-17 13:29 ` [PATCH 00/13] new plugin argument passing scheme Alex Bennée
2021-07-17 13:48   ` Mahmoud Mandour

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=87fswapenv.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=cota@braap.org \
    --cc=ma.mandourr@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.