diff options
author | Michael Roth <mdroth@linux.vnet.ibm.com> | 2011-12-06 22:03:43 -0600 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2011-12-12 17:06:21 -0600 |
commit | bf95c0d55c24e8ce1c03e1ba491437297f8f96f4 (patch) | |
tree | b389cce1a05698fcb908d44723ce5fe96a6773e1 /qapi | |
parent | abd6cf6d8e6be55a6535bf27b692bdf520462c15 (diff) | |
download | qemu-bf95c0d55c24e8ce1c03e1ba491437297f8f96f4.tar.gz qemu-bf95c0d55c24e8ce1c03e1ba491437297f8f96f4.tar.bz2 qemu-bf95c0d55c24e8ce1c03e1ba491437297f8f96f4.zip |
guest agent: add supported command list to guest-info RPC
Not that there is blacklisting functionality we can no longer infer
the agent's capabilities via version. This patch extends the current
guest-info RPC to also return a list of dictionaries containing the name
of each supported RPC, along with a boolean indicating whether or not
the command has been disabled by a guest administrator/distro.
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'qapi')
-rw-r--r-- | qapi/qmp-core.h | 1 | ||||
-rw-r--r-- | qapi/qmp-registry.c | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/qapi/qmp-core.h b/qapi/qmp-core.h index 3cf1781fa4..3bb3acb589 100644 --- a/qapi/qmp-core.h +++ b/qapi/qmp-core.h @@ -38,6 +38,7 @@ void qmp_register_command(const char *name, QmpCommandFunc *fn); QmpCommand *qmp_find_command(const char *name); QObject *qmp_dispatch(QObject *request); void qmp_disable_command(const char *name); +bool qmp_command_is_enabled(const char *name); char **qmp_get_command_list(void); #endif diff --git a/qapi/qmp-registry.c b/qapi/qmp-registry.c index abafa347fb..25c89ad098 100644 --- a/qapi/qmp-registry.c +++ b/qapi/qmp-registry.c @@ -52,6 +52,19 @@ void qmp_disable_command(const char *name) } } +bool qmp_command_is_enabled(const char *name) +{ + QmpCommand *cmd; + + QTAILQ_FOREACH(cmd, &qmp_commands, node) { + if (strcmp(cmd->name, name) == 0) { + return cmd->enabled; + } + } + + return false; +} + char **qmp_get_command_list(void) { QmpCommand *cmd; |