Statistics
| Branch: | Revision:

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