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 |
} |