Statistics
| Branch: | Revision:

root / qapi / qmp-registry.c @ 7267c094

History | View | Annotate | Download (893 Bytes)

1
/*
2
 * Core Definitions for QAPI/QMP Dispatch
3
 *
4
 * Copyright IBM, Corp. 2011
5
 *
6
 * Authors:
7
 *  Anthony Liguori   <aliguori@us.ibm.com>
8
 *  Michael Roth      <mdroth@us.ibm.com>
9
 *
10
 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
11
 * See the COPYING.LIB file in the top-level directory.
12
 *
13
 */
14

    
15
#include "qapi/qmp-core.h"
16

    
17
static QTAILQ_HEAD(, QmpCommand) qmp_commands =
18
    QTAILQ_HEAD_INITIALIZER(qmp_commands);
19

    
20
void qmp_register_command(const char *name, QmpCommandFunc *fn)
21
{
22
    QmpCommand *cmd = g_malloc0(sizeof(*cmd));
23

    
24
    cmd->name = name;
25
    cmd->type = QCT_NORMAL;
26
    cmd->fn = fn;
27
    QTAILQ_INSERT_TAIL(&qmp_commands, cmd, node);
28
}
29

    
30
QmpCommand *qmp_find_command(const char *name)
31
{
32
    QmpCommand *i;
33

    
34
    QTAILQ_FOREACH(i, &qmp_commands, node) {
35
        if (strcmp(i->name, name) == 0) {
36
            return i;
37
        }
38
    }
39
    return NULL;
40
}