aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMahmoud Mandour <ma.mandourr@gmail.com>2021-07-30 15:58:06 +0200
committerAlex Bennée <alex.bennee@linaro.org>2021-09-02 11:29:34 +0100
commit6a9e8a086d7c3d836bcc4772b3ab60072648f9aa (patch)
tree54a12802e69aaf7ae9bb926fc345c0eaacfb676b
parent3a445acb491131c27636363eff607cf2344e1cf3 (diff)
plugins/api: added a boolean parsing plugin api
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> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20210730135817.17816-3-ma.mandourr@gmail.com> [AJB: add to symbols] Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
-rw-r--r--include/qemu/qemu-plugin.h13
-rw-r--r--plugins/api.c5
-rw-r--r--plugins/qemu-plugins.symbols1
3 files changed, 19 insertions, 0 deletions
diff --git a/include/qemu/qemu-plugin.h b/include/qemu/qemu-plugin.h
index e6e815abc5..5f1017201f 100644
--- a/include/qemu/qemu-plugin.h
+++ b/include/qemu/qemu-plugin.h
@@ -577,4 +577,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 2d521e6ba8..acff9ce8ac 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 name && value && qapi_bool_parse(name, value, ret, NULL);
+}
diff --git a/plugins/qemu-plugins.symbols b/plugins/qemu-plugins.symbols
index dee7610387..67b309ea2a 100644
--- a/plugins/qemu-plugins.symbols
+++ b/plugins/qemu-plugins.symbols
@@ -1,4 +1,5 @@
{
+ qemu_plugin_bool_parse;
qemu_plugin_get_hwaddr;
qemu_plugin_hwaddr_is_io;
qemu_plugin_insn_data;