]>
Commit | Line | Data |
---|---|---|
43c20a43 MR |
1 | /* |
2 | * Core Definitions for QAPI/QMP Dispatch | |
3 | * | |
4 | * Copyright IBM, Corp. 2011 | |
5 | * | |
6 | * Authors: | |
7 | * Anthony Liguori <[email protected]> | |
8 | * | |
9 | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. | |
10 | * See the COPYING.LIB file in the top-level directory. | |
11 | * | |
12 | */ | |
13 | ||
14 | #ifndef QMP_CORE_H | |
15 | #define QMP_CORE_H | |
16 | ||
17 | #include "qobject.h" | |
18 | #include "qdict.h" | |
19 | #include "error.h" | |
20 | ||
21 | typedef void (QmpCommandFunc)(QDict *, QObject **, Error **); | |
22 | ||
23 | typedef enum QmpCommandType | |
24 | { | |
25 | QCT_NORMAL, | |
26 | } QmpCommandType; | |
27 | ||
d34b867d LC |
28 | typedef enum QmpCommandOptions |
29 | { | |
30 | QCO_NO_OPTIONS = 0x0, | |
31 | QCO_NO_SUCCESS_RESP = 0x1, | |
32 | } QmpCommandOptions; | |
33 | ||
43c20a43 MR |
34 | typedef struct QmpCommand |
35 | { | |
36 | const char *name; | |
37 | QmpCommandType type; | |
38 | QmpCommandFunc *fn; | |
d34b867d | 39 | QmpCommandOptions options; |
43c20a43 | 40 | QTAILQ_ENTRY(QmpCommand) node; |
abd6cf6d | 41 | bool enabled; |
43c20a43 MR |
42 | } QmpCommand; |
43 | ||
d34b867d LC |
44 | void qmp_register_command(const char *name, QmpCommandFunc *fn, |
45 | QmpCommandOptions options); | |
43c20a43 | 46 | QmpCommand *qmp_find_command(const char *name); |
ab02ab2a | 47 | QObject *qmp_dispatch(QObject *request); |
abd6cf6d | 48 | void qmp_disable_command(const char *name); |
f22d85e9 | 49 | void qmp_enable_command(const char *name); |
bf95c0d5 | 50 | bool qmp_command_is_enabled(const char *name); |
abd6cf6d | 51 | char **qmp_get_command_list(void); |
43c20a43 MR |
52 | |
53 | #endif | |
ab02ab2a | 54 |