Просмотр исходного кода

qapi: Support unregistering QMP commands

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20160912091913.15831-7-marcandre.lureau@redhat.com>
Markus Armbruster 9 лет назад
Родитель
Сommit
60b03e4e6a
2 измененных файлов с 9 добавлено и 0 удалено
  1. 1 0
      include/qapi/qmp/dispatch.h
  2. 8 0
      qapi/qmp-registry.c

+ 1 - 0
include/qapi/qmp/dispatch.h

@@ -36,6 +36,7 @@ typedef struct QmpCommand
 
 void qmp_register_command(const char *name, QmpCommandFunc *fn,
                           QmpCommandOptions options);
+void qmp_unregister_command(const char *name);
 QmpCommand *qmp_find_command(const char *name);
 QObject *qmp_dispatch(QObject *request);
 void qmp_disable_command(const char *name);

+ 8 - 0
qapi/qmp-registry.c

@@ -30,6 +30,14 @@ void qmp_register_command(const char *name, QmpCommandFunc *fn,
     QTAILQ_INSERT_TAIL(&qmp_commands, cmd, node);
 }
 
+void qmp_unregister_command(const char *name)
+{
+    QmpCommand *cmd = qmp_find_command(name);
+
+    QTAILQ_REMOVE(&qmp_commands, cmd, node);
+    g_free(cmd);
+}
+
 QmpCommand *qmp_find_command(const char *name)
 {
     QmpCommand *cmd;