qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Mahmoud Mandour <ma.mandourr@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Mahmoud Mandour" <ma.mandourr@gmail.com>,
	cota@braap.org, "Alex Bennée" <alex.bennee@linaro.org>
Subject: [PATCH v3 10/13] tests/plugins/insn: made arg inline not positional and parse it as bool
Date: Thu, 22 Jul 2021 09:12:33 +0200	[thread overview]
Message-ID: <20210722071236.139520-11-ma.mandourr@gmail.com> (raw)
In-Reply-To: <20210722071236.139520-1-ma.mandourr@gmail.com>

Made argument "inline" not positional, this has two benefits. First is
that we adhere to how QEMU passes args generally, by taking the last
value of an argument and drop the others. And the second is that this
sets up a framework for potentially adding new args easily.

Signed-off-by: Mahmoud Mandour <ma.mandourr@gmail.com>
---
 tests/plugin/insn.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/tests/plugin/insn.c b/tests/plugin/insn.c
index c253980ec8..0f6a1938c1 100644
--- a/tests/plugin/insn.c
+++ b/tests/plugin/insn.c
@@ -62,8 +62,18 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
                                            const qemu_info_t *info,
                                            int argc, char **argv)
 {
-    if (argc && !strcmp(argv[0], "inline")) {
-        do_inline = true;
+    for (int i = 0; i < argc; i++) {
+        char *opt = argv[i];
+        g_autofree char **tokens = g_strsplit(opt, "=", 2);
+        if (g_strcmp0(tokens[0], "inline") == 0) {
+            if (!qemu_plugin_bool_parse(tokens[0], tokens[1], &do_inline)) {
+                fprintf(stderr, "boolean argument parsing failed: %s\n", opt);
+                return -1;
+            }
+        } else {
+            fprintf(stderr, "option parsing failed: %s\n", opt);
+            return -1;
+        }
     }
 
     qemu_plugin_register_vcpu_tb_trans_cb(id, vcpu_tb_trans);
-- 
2.25.1



  parent reply	other threads:[~2021-07-22  7:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-22  7:12 [PATCH v3 00/13] new plugin argument passing scheme Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 01/13] plugins: allow plugin arguments to be passed directly Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 02/13] plugins/api: added a boolean parsing plugin api Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 03/13] plugins/hotpages: introduce sortby arg and parsed bool args correctly Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 04/13] plugins/hotblocks: Added correct boolean argument parsing Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 05/13] plugins/lockstep: make socket path not positional & parse bool arg Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 06/13] plugins/hwprofile: adapt to the new plugin arguments scheme Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 07/13] plugins/howvec: Adapting to the new argument passing scheme Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 08/13] docs/tcg-plugins: new passing parameters scheme for cache docs Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 09/13] tests/plugins/bb: adapt to the new arg passing scheme Mahmoud Mandour
2021-07-22  7:12 ` Mahmoud Mandour [this message]
2021-07-22  7:12 ` [PATCH v3 11/13] tests/plugins/mem: introduce "track" arg and make args not positional Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 12/13] tests/plugins/syscalls: adhere to new arg-passing scheme Mahmoud Mandour
2021-07-22  7:12 ` [PATCH v3 13/13] docs/deprecated: deprecate passing plugin args through `arg=` Mahmoud Mandour
2021-07-23  8:57 ` [PATCH v3 00/13] new plugin argument passing scheme 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=20210722071236.139520-11-ma.mandourr@gmail.com \
    --to=ma.mandourr@gmail.com \
    --cc=alex.bennee@linaro.org \
    --cc=cota@braap.org \
    --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 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).