root / qmp.c @ 463ce4ae
History | View | Annotate | Download (2.6 kB)
1 | 48a32bed | Anthony Liguori | /*
|
---|---|---|---|
2 | 48a32bed | Anthony Liguori | * QEMU Management Protocol
|
3 | 48a32bed | Anthony Liguori | *
|
4 | 48a32bed | Anthony Liguori | * Copyright IBM, Corp. 2011
|
5 | 48a32bed | Anthony Liguori | *
|
6 | 48a32bed | Anthony Liguori | * Authors:
|
7 | 48a32bed | Anthony Liguori | * Anthony Liguori <aliguori@us.ibm.com>
|
8 | 48a32bed | Anthony Liguori | *
|
9 | 48a32bed | Anthony Liguori | * This work is licensed under the terms of the GNU GPL, version 2. See
|
10 | 48a32bed | Anthony Liguori | * the COPYING file in the top-level directory.
|
11 | 48a32bed | Anthony Liguori | *
|
12 | 48a32bed | Anthony Liguori | */
|
13 | 48a32bed | Anthony Liguori | |
14 | 48a32bed | Anthony Liguori | #include "qemu-common.h" |
15 | 48a32bed | Anthony Liguori | #include "sysemu.h" |
16 | 48a32bed | Anthony Liguori | #include "qmp-commands.h" |
17 | 292a2602 | Luiz Capitulino | #include "kvm.h" |
18 | 292a2602 | Luiz Capitulino | #include "arch_init.h" |
19 | 48a32bed | Anthony Liguori | |
20 | 48a32bed | Anthony Liguori | NameInfo *qmp_query_name(Error **errp) |
21 | 48a32bed | Anthony Liguori | { |
22 | 48a32bed | Anthony Liguori | NameInfo *info = g_malloc0(sizeof(*info));
|
23 | 48a32bed | Anthony Liguori | |
24 | 48a32bed | Anthony Liguori | if (qemu_name) {
|
25 | 48a32bed | Anthony Liguori | info->has_name = true;
|
26 | 48a32bed | Anthony Liguori | info->name = g_strdup(qemu_name); |
27 | 48a32bed | Anthony Liguori | } |
28 | 48a32bed | Anthony Liguori | |
29 | 48a32bed | Anthony Liguori | return info;
|
30 | 48a32bed | Anthony Liguori | } |
31 | b9c15f16 | Luiz Capitulino | |
32 | b9c15f16 | Luiz Capitulino | VersionInfo *qmp_query_version(Error **err) |
33 | b9c15f16 | Luiz Capitulino | { |
34 | b9c15f16 | Luiz Capitulino | VersionInfo *info = g_malloc0(sizeof(*info));
|
35 | b9c15f16 | Luiz Capitulino | const char *version = QEMU_VERSION; |
36 | b9c15f16 | Luiz Capitulino | char *tmp;
|
37 | b9c15f16 | Luiz Capitulino | |
38 | b9c15f16 | Luiz Capitulino | info->qemu.major = strtol(version, &tmp, 10);
|
39 | b9c15f16 | Luiz Capitulino | tmp++; |
40 | b9c15f16 | Luiz Capitulino | info->qemu.minor = strtol(tmp, &tmp, 10);
|
41 | b9c15f16 | Luiz Capitulino | tmp++; |
42 | b9c15f16 | Luiz Capitulino | info->qemu.micro = strtol(tmp, &tmp, 10);
|
43 | b9c15f16 | Luiz Capitulino | info->package = g_strdup(QEMU_PKGVERSION); |
44 | b9c15f16 | Luiz Capitulino | |
45 | b9c15f16 | Luiz Capitulino | return info;
|
46 | b9c15f16 | Luiz Capitulino | } |
47 | 292a2602 | Luiz Capitulino | |
48 | 292a2602 | Luiz Capitulino | KvmInfo *qmp_query_kvm(Error **errp) |
49 | 292a2602 | Luiz Capitulino | { |
50 | 292a2602 | Luiz Capitulino | KvmInfo *info = g_malloc0(sizeof(*info));
|
51 | 292a2602 | Luiz Capitulino | |
52 | 292a2602 | Luiz Capitulino | info->enabled = kvm_enabled(); |
53 | 292a2602 | Luiz Capitulino | info->present = kvm_available(); |
54 | 292a2602 | Luiz Capitulino | |
55 | 292a2602 | Luiz Capitulino | return info;
|
56 | 292a2602 | Luiz Capitulino | } |
57 | 292a2602 | Luiz Capitulino | |
58 | efab767e | Luiz Capitulino | UuidInfo *qmp_query_uuid(Error **errp) |
59 | efab767e | Luiz Capitulino | { |
60 | efab767e | Luiz Capitulino | UuidInfo *info = g_malloc0(sizeof(*info));
|
61 | efab767e | Luiz Capitulino | char uuid[64]; |
62 | efab767e | Luiz Capitulino | |
63 | efab767e | Luiz Capitulino | snprintf(uuid, sizeof(uuid), UUID_FMT, qemu_uuid[0], qemu_uuid[1], |
64 | efab767e | Luiz Capitulino | qemu_uuid[2], qemu_uuid[3], qemu_uuid[4], qemu_uuid[5], |
65 | efab767e | Luiz Capitulino | qemu_uuid[6], qemu_uuid[7], qemu_uuid[8], qemu_uuid[9], |
66 | efab767e | Luiz Capitulino | qemu_uuid[10], qemu_uuid[11], qemu_uuid[12], qemu_uuid[13], |
67 | efab767e | Luiz Capitulino | qemu_uuid[14], qemu_uuid[15]); |
68 | efab767e | Luiz Capitulino | |
69 | efab767e | Luiz Capitulino | info->UUID = g_strdup(uuid); |
70 | efab767e | Luiz Capitulino | return info;
|
71 | efab767e | Luiz Capitulino | } |
72 | efab767e | Luiz Capitulino | |
73 | 7a7f325e | Luiz Capitulino | void qmp_quit(Error **err)
|
74 | 7a7f325e | Luiz Capitulino | { |
75 | 7a7f325e | Luiz Capitulino | no_shutdown = 0;
|
76 | 7a7f325e | Luiz Capitulino | qemu_system_shutdown_request(); |
77 | 7a7f325e | Luiz Capitulino | } |
78 | 7a7f325e | Luiz Capitulino | |
79 | 5f158f21 | Luiz Capitulino | void qmp_stop(Error **errp)
|
80 | 5f158f21 | Luiz Capitulino | { |
81 | 5f158f21 | Luiz Capitulino | vm_stop(RUN_STATE_PAUSED); |
82 | 5f158f21 | Luiz Capitulino | } |
83 | 5f158f21 | Luiz Capitulino | |
84 | 38d22653 | Luiz Capitulino | void qmp_system_reset(Error **errp)
|
85 | 38d22653 | Luiz Capitulino | { |
86 | 38d22653 | Luiz Capitulino | qemu_system_reset_request(); |
87 | 38d22653 | Luiz Capitulino | } |
88 | 5bc465e4 | Luiz Capitulino | |
89 | 5bc465e4 | Luiz Capitulino | void qmp_system_powerdown(Error **erp)
|
90 | 5bc465e4 | Luiz Capitulino | { |
91 | 5bc465e4 | Luiz Capitulino | qemu_system_powerdown_request(); |
92 | 5bc465e4 | Luiz Capitulino | } |
93 | 755f1968 | Luiz Capitulino | |
94 | 755f1968 | Luiz Capitulino | void qmp_cpu(int64_t index, Error **errp)
|
95 | 755f1968 | Luiz Capitulino | { |
96 | 755f1968 | Luiz Capitulino | /* Just do nothing */
|
97 | 755f1968 | Luiz Capitulino | } |
98 | 2b54aa87 | Luiz Capitulino | |
99 | 2b54aa87 | Luiz Capitulino | #ifndef CONFIG_VNC
|
100 | 2b54aa87 | Luiz Capitulino | /* If VNC support is enabled, the "true" query-vnc command is
|
101 | 2b54aa87 | Luiz Capitulino | defined in the VNC subsystem */
|
102 | 2b54aa87 | Luiz Capitulino | VncInfo *qmp_query_vnc(Error **errp) |
103 | 2b54aa87 | Luiz Capitulino | { |
104 | 2b54aa87 | Luiz Capitulino | error_set(errp, QERR_FEATURE_DISABLED, "vnc");
|
105 | 2b54aa87 | Luiz Capitulino | return NULL; |
106 | 2b54aa87 | Luiz Capitulino | }; |
107 | 2b54aa87 | Luiz Capitulino | #endif
|
108 | d1f29646 | Luiz Capitulino | |
109 | d1f29646 | Luiz Capitulino | #ifndef CONFIG_SPICE
|
110 | d1f29646 | Luiz Capitulino | /* If SPICE support is enabled, the "true" query-spice command is
|
111 | d1f29646 | Luiz Capitulino | defined in the SPICE subsystem. Also note that we use a small
|
112 | d1f29646 | Luiz Capitulino | trick to maintain query-spice's original behavior, which is not
|
113 | d1f29646 | Luiz Capitulino | to be available in the namespace if SPICE is not compiled in */
|
114 | d1f29646 | Luiz Capitulino | SpiceInfo *qmp_query_spice(Error **errp) |
115 | d1f29646 | Luiz Capitulino | { |
116 | d1f29646 | Luiz Capitulino | error_set(errp, QERR_COMMAND_NOT_FOUND, "query-spice");
|
117 | d1f29646 | Luiz Capitulino | return NULL; |
118 | d1f29646 | Luiz Capitulino | }; |
119 | d1f29646 | Luiz Capitulino | #endif |