From patchwork Thu Sep 30 20:56:14 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luiz Capitulino X-Patchwork-Id: 66266 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 4CA69B70AB for ; Fri, 1 Oct 2010 07:19:55 +1000 (EST) Received: from localhost ([127.0.0.1]:52750 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P1QUf-0004ki-76 for incoming@patchwork.ozlabs.org; Thu, 30 Sep 2010 17:16:45 -0400 Received: from [140.186.70.92] (port=50768 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P1QBr-0001nS-U9 for qemu-devel@nongnu.org; Thu, 30 Sep 2010 16:57:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1P1QBo-0003aq-Tz for qemu-devel@nongnu.org; Thu, 30 Sep 2010 16:57:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49276) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1P1QBo-0003ah-7o for qemu-devel@nongnu.org; Thu, 30 Sep 2010 16:57:16 -0400 Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o8UKvDXB018638 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 30 Sep 2010 16:57:15 -0400 Received: from localhost (ovpn-113-89.phx2.redhat.com [10.3.113.89]) by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o8UKvBAI016427; Thu, 30 Sep 2010 16:57:12 -0400 From: Luiz Capitulino To: qemu-devel@nongnu.org Date: Thu, 30 Sep 2010 17:56:14 -0300 Message-Id: <1285880180-29724-14-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1285880180-29724-1-git-send-email-lcapitulino@redhat.com> References: <1285880180-29724-1-git-send-email-lcapitulino@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.16 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. Cc: aliguori@us.ibm.com, armbru@redhat.com Subject: [Qemu-devel] [PATCH 13/19] Monitor: Drop QMP info from the qemu-monitor.hx file X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org QMP has its own dispatch table and documentation file (qmp-commands.hx), we can now drop the following QMP specific info from qemu-monitor.hx: o SQMP/EQMP sections o The qmp_capabilities command o The query-commands command However, note that QObject handlers entries are not being removed. This will only happen when we introduce a proper QMP call interface. Signed-off-by: Luiz Capitulino --- monitor.c | 8 - qemu-monitor.hx | 1358 ------------------------------------------------------- 2 files changed, 0 insertions(+), 1366 deletions(-) diff --git a/monitor.c b/monitor.c index bc8d054..572752d 100644 --- a/monitor.c +++ b/monitor.c @@ -2349,14 +2349,6 @@ static const mon_cmd_t info_cmds[] = { .mhandler.info_new = do_info_version, }, { - .name = "commands", - .args_type = "", - .params = "", - .help = "list QMP available commands", - .user_print = monitor_user_noop, - .mhandler.info_new = do_info_commands, - }, - { .name = "network", .args_type = "", .params = "", diff --git a/qemu-monitor.hx b/qemu-monitor.hx index 57d28ac..81999aa 100644 --- a/qemu-monitor.hx +++ b/qemu-monitor.hx @@ -1,70 +1,10 @@ HXCOMM Use DEFHEADING() to define headings in both help text and texi HXCOMM Text between STEXI and ETEXI are copied to texi version and HXCOMM discarded from C version -HXCOMM Text between SQMP and EQMP is copied to the QMP documention file and -HXCOMM does not show up in the other formats. HXCOMM DEF(command, args, callback, arg_string, help) is used to construct HXCOMM monitor commands HXCOMM HXCOMM can be used for comments, discarded from both texi and C -SQMP - QMP Supported Commands - ---------------------- - -This document describes all commands currently supported by QMP. - -Most of the time their usage is exactly the same as in the user Monitor, this -means that any other document which also describe commands (the manpage, -QEMU's manual, etc) can and should be consulted. - -QMP has two types of commands: regular and query commands. Regular commands -usually change the Virtual Machine's state someway, while query commands just -return information. The sections below are divided accordingly. - -It's important to observe that all communication examples are formatted in -a reader-friendly way, so that they're easier to understand. However, in real -protocol usage, they're emitted as a single line. - -Also, the following notation is used to denote data flow: - --> data issued by the Client -<- Server data response - -Please, refer to the QMP specification (QMP/qmp-spec.txt) for detailed -information on the Server command and response formats. - -NOTE: This document is temporary and will be replaced soon. - -1. Stability Considerations -=========================== - -The current QMP command set (described in this file) may be useful for a -number of use cases, however it's limited and several commands have bad -defined semantics, specially with regard to command completion. - -These problems are going to be solved incrementally in the next QEMU releases -and we're going to establish a deprecation policy for badly defined commands. - -If you're planning to adopt QMP, please observe the following: - - 1. The deprecation policy will take efect and be documented soon, please - check the documentation of each used command as soon as a new release of - QEMU is available - - 2. DO NOT rely on anything which is not explicit documented - - 3. Errors, in special, are not documented. Applications should NOT check - for specific errors classes or data (it's strongly recommended to only - check for the "error" key) - -2. Regular Commands -=================== - -Server's responses in the examples below are always a success response, please -refer to the QMP specification for more details on error responses. - -EQMP - STEXI @table @option ETEXI @@ -111,20 +51,6 @@ STEXI @findex quit Quit the emulator. ETEXI -SQMP -quit ----- - -Quit the emulator. - -Arguments: None. - -Example: - --> { "execute": "quit" } -<- { "return": {} } - -EQMP { .name = "eject", @@ -140,25 +66,6 @@ STEXI @findex eject Eject a removable medium (use -f to force it). ETEXI -SQMP -eject ------ - -Eject a removable medium. - -Arguments: - -- force: force ejection (json-bool, optional) -- device: device name (json-string) - -Example: - --> { "execute": "eject", "arguments": { "device": "ide1-cd0" } } -<- { "return": {} } - -Note: The "force" argument defaults to false. - -EQMP { .name = "change", @@ -206,35 +113,6 @@ Password: ******** @end table ETEXI -SQMP -change ------- - -Change a removable medium or VNC configuration. - -Arguments: - -- "device": device name (json-string) -- "target": filename or item (json-string) -- "arg": additional argument (json-string, optional) - -Examples: - -1. Change a removable medium - --> { "execute": "change", - "arguments": { "device": "ide1-cd0", - "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } } -<- { "return": {} } - -2. Change VNC password - --> { "execute": "change", - "arguments": { "device": "vnc", "target": "password", - "arg": "foobar1" } } -<- { "return": {} } - -EQMP { .name = "screendump", @@ -250,22 +128,6 @@ STEXI @findex screendump Save screen into PPM image @var{filename}. ETEXI -SQMP -screendump ----------- - -Save screen into PPM image. - -Arguments: - -- "filename": file path (json-string) - -Example: - --> { "execute": "screendump", "arguments": { "filename": "/tmp/image" } } -<- { "return": {} } - -EQMP { .name = "logfile", @@ -400,20 +262,6 @@ STEXI @findex stop Stop emulation. ETEXI -SQMP -stop ----- - -Stop the emulator. - -Arguments: None. - -Example: - --> { "execute": "stop" } -<- { "return": {} } - -EQMP { .name = "c|cont", @@ -429,20 +277,6 @@ STEXI @findex cont Resume emulation. ETEXI -SQMP -cont ----- - -Resume emulation. - -Arguments: None. - -Example: - --> { "execute": "cont" } -<- { "return": {} } - -EQMP { .name = "gdbserver", @@ -617,20 +451,6 @@ STEXI Reset the system. ETEXI -SQMP -system_reset ------------- - -Reset the system. - -Arguments: None. - -Example: - --> { "execute": "system_reset" } -<- { "return": {} } - -EQMP { .name = "system_powerdown", @@ -647,20 +467,6 @@ STEXI Power down the system (if supported). ETEXI -SQMP -system_powerdown ----------------- - -Send system power down event. - -Arguments: None. - -Example: - --> { "execute": "system_powerdown" } -<- { "return": {} } - -EQMP { .name = "sum", @@ -725,33 +531,6 @@ STEXI Add device. ETEXI -SQMP -device_add ----------- - -Add a device. - -Arguments: - -- "driver": the name of the new device's driver (json-string) -- "bus": the device's parent bus (device tree path, json-string, optional) -- "id": the device's ID, must be unique (json-string) -- device properties - -Example: - --> { "execute": "device_add", "arguments": { "driver": "e1000", "id": "net1" } } -<- { "return": {} } - -Notes: - -(1) For detailed information about this command, please refer to the - 'docs/qdev-device-use.txt' file. - -(2) It's possible to list device properties by running QEMU with the - "-device DEVICE,\?" command-line argument, where DEVICE is the device's name - -EQMP { .name = "device_del", @@ -768,22 +547,6 @@ STEXI Remove device @var{id}. ETEXI -SQMP -device_del ----------- - -Remove a device. - -Arguments: - -- "id": the device's ID (json-string) - -Example: - --> { "execute": "device_del", "arguments": { "id": "net1" } } -<- { "return": {} } - -EQMP { .name = "cpu", @@ -799,24 +562,6 @@ STEXI @findex cpu Set the default CPU. ETEXI -SQMP -cpu ---- - -Set the default CPU. - -Arguments: - -- "index": the CPU's index (json-int) - -Example: - --> { "execute": "cpu", "arguments": { "index": 0 } } -<- { "return": {} } - -Note: CPUs' indexes are obtained with the 'query-cpus' command. - -EQMP { .name = "mouse_move", @@ -920,29 +665,6 @@ STEXI @findex memsave save to disk virtual memory dump starting at @var{addr} of size @var{size}. ETEXI -SQMP -memsave -------- - -Save to disk virtual memory dump starting at 'val' of size 'size'. - -Arguments: - -- "val": the starting address (json-int) -- "size": the memory size, in bytes (json-int) -- "filename": file path (json-string) - -Example: - --> { "execute": "memsave", - "arguments": { "val": 10, - "size": 100, - "filename": "/tmp/virtual-mem-dump" } } -<- { "return": {} } - -Note: Depends on the current CPU. - -EQMP { .name = "pmemsave", @@ -958,27 +680,6 @@ STEXI @findex pmemsave save to disk physical memory dump starting at @var{addr} of size @var{size}. ETEXI -SQMP -pmemsave --------- - -Save to disk physical memory dump starting at 'val' of size 'size'. - -Arguments: - -- "val": the starting address (json-int) -- "size": the memory size, in bytes (json-int) -- "filename": file path (json-string) - -Example: - --> { "execute": "pmemsave", - "arguments": { "val": 10, - "size": 100, - "filename": "/tmp/physical-mem-dump" } } -<- { "return": {} } - -EQMP { .name = "boot_set", @@ -1035,32 +736,6 @@ Migrate to @var{uri} (using -d to not wait for completion). -b for migration with full copy of disk -i for migration with incremental copy of disk (base image is shared) ETEXI -SQMP -migrate -------- - -Migrate to URI. - -Arguments: - -- "blk": block migration, full disk copy (json-bool, optional) -- "inc": incremental disk copy (json-bool, optional) -- "uri": Destination URI (json-string) - -Example: - --> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } } -<- { "return": {} } - -Notes: - -(1) The 'query-migrate' command should be used to check migration's progress - and final result (this information is provided by the 'status' member) -(2) All boolean arguments default to false -(3) The user Monitor's "detach" argument is invalid in QMP and should not - be used - -EQMP { .name = "migrate_cancel", @@ -1076,20 +751,6 @@ STEXI @findex migrate_cancel Cancel the current VM migration. ETEXI -SQMP -migrate_cancel --------------- - -Cancel the current migration. - -Arguments: None. - -Example: - --> { "execute": "migrate_cancel" } -<- { "return": {} } - -EQMP { .name = "migrate_set_speed", @@ -1105,22 +766,6 @@ STEXI @findex migrate_set_speed Set maximum speed to @var{value} (in bytes) for migrations. ETEXI -SQMP -migrate_set_speed ------------------ - -Set maximum speed for migrations. - -Arguments: - -- "value": maximum speed, in bytes per second (json-number) - -Example: - --> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } } -<- { "return": {} } - -EQMP { .name = "migrate_set_downtime", @@ -1136,22 +781,6 @@ STEXI @findex migrate_set_downtime Set maximum tolerated downtime (in seconds) for migration. ETEXI -SQMP -migrate_set_downtime --------------------- - -Set maximum tolerated downtime (in seconds) for migrations. - -Arguments: - -- "value": maximum downtime (json-number) - -Example: - --> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } } -<- { "return": {} } - -EQMP #if defined(TARGET_I386) { @@ -1247,28 +876,6 @@ STEXI @findex netdev_add Add host network device. ETEXI -SQMP -netdev_add ----------- - -Add host network device. - -Arguments: - -- "type": the device type, "tap", "user", ... (json-string) -- "id": the device's ID, must be unique (json-string) -- device options - -Example: - --> { "execute": "netdev_add", "arguments": { "type": "user", "id": "netdev1" } } -<- { "return": {} } - -Note: The supported device options are the same ones supported by the '-net' - command-line argument, which are listed in the '-help' output or QEMU's - manual - -EQMP { .name = "netdev_del", @@ -1284,22 +891,6 @@ STEXI @findex netdev_del Remove host network device. ETEXI -SQMP -netdev_del ----------- - -Remove host network device. - -Arguments: - -- "id": the device's ID, must be unique (json-string) - -Example: - --> { "execute": "netdev_del", "arguments": { "id": "netdev1" } } -<- { "return": {} } - -EQMP #ifdef CONFIG_SLIRP { @@ -1347,22 +938,6 @@ STEXI @findex balloon Request VM to change its memory allocation to @var{value} (in MB). ETEXI -SQMP -balloon -------- - -Request VM to change its memory allocation (in bytes). - -Arguments: - -- "value": New memory allocation (json-int) - -Example: - --> { "execute": "balloon", "arguments": { "value": 536870912 } } -<- { "return": {} } - -EQMP { .name = "set_link", @@ -1378,23 +953,6 @@ STEXI @findex set_link Switch link @var{name} on (i.e. up) or off (i.e. down). ETEXI -SQMP -set_link --------- - -Change the link status of a network adapter. - -Arguments: - -- "name": network device name (json-string) -- "up": status is up (json-bool) - -Example: - --> { "execute": "set_link", "arguments": { "name": "e1000.0", "up": false } } -<- { "return": {} } - -EQMP { .name = "watchdog_action", @@ -1524,22 +1082,6 @@ If a file descriptor is passed alongside this command using the SCM_RIGHTS mechanism on unix sockets, it is stored using the name @var{fdname} for later use by other monitor commands. ETEXI -SQMP -getfd ------ - -Receive a file descriptor via SCM rights and assign it a name. - -Arguments: - -- "fdname": file descriptor name (json-string) - -Example: - --> { "execute": "getfd", "arguments": { "fdname": "fd1" } } -<- { "return": {} } - -EQMP { .name = "closefd", @@ -1557,22 +1099,6 @@ Close the file descriptor previously assigned to @var{fdname} using the @code{getfd} command. This is only needed if the file descriptor was never used by another monitor command. ETEXI -SQMP -closefd -------- - -Close a file descriptor previously passed via SCM rights. - -Arguments: - -- "fdname": file descriptor name (json-string) - -Example: - --> { "execute": "closefd", "arguments": { "fdname": "fd1" } } -<- { "return": {} } - -EQMP { .name = "block_passwd", @@ -1588,66 +1114,6 @@ STEXI @findex block_passwd Set the encrypted device @var{device} password to @var{password} ETEXI -SQMP -block_passwd ------------- - -Set the password of encrypted block devices. - -Arguments: - -- "device": device name (json-string) -- "password": password (json-string) - -Example: - --> { "execute": "block_passwd", "arguments": { "device": "ide0-hd0", - "password": "12345" } } -<- { "return": {} } - -EQMP - - { - .name = "qmp_capabilities", - .args_type = "", - .params = "", - .help = "enable QMP capabilities", - .user_print = monitor_user_noop, - .mhandler.cmd_new = do_qmp_capabilities, - }, - -STEXI -@item qmp_capabilities -@findex qmp_capabilities -Enable the specified QMP capabilities -ETEXI -SQMP -qmp_capabilities ----------------- - -Enable QMP capabilities. - -Arguments: None. - -Example: - --> { "execute": "qmp_capabilities" } -<- { "return": {} } - -Note: This command must be issued before issuing any other command. - -EQMP - - -HXCOMM Keep the 'info' command at the end! -HXCOMM This is required for the QMP documentation layout. - -SQMP - -3. Query Commands -================= - -EQMP { .name = "info", @@ -1665,579 +1131,38 @@ Show various information about the system state. @table @option @item info version show the version of QEMU -ETEXI -SQMP -query-version -------------- - -Show QEMU version. - -Return a json-object with the following information: - -- "qemu": A json-object containing three integer values: - - "major": QEMU's major version (json-int) - - "minor": QEMU's minor version (json-int) - - "micro": QEMU's micro version (json-int) -- "package": package's version (json-string) - -Example: - --> { "execute": "query-version" } -<- { - "return":{ - "qemu":{ - "major":0, - "minor":11, - "micro":5 - }, - "package":"" - } - } - -EQMP - -STEXI -@item info commands -list QMP available commands -ETEXI -SQMP -query-commands --------------- - -List QMP available commands. - -Each command is represented by a json-object, the returned value is a json-array -of all commands. - -Each json-object contain: - -- "name": command's name (json-string) - -Example: - --> { "execute": "query-commands" } -<- { - "return":[ - { - "name":"query-balloon" - }, - { - "name":"system_powerdown" - } - ] - } - -Note: This example has been shortened as the real response is too long. - -EQMP - -STEXI @item info network show the various VLANs and the associated devices -ETEXI - -STEXI @item info chardev show the character devices -ETEXI -SQMP -query-chardev -------------- - -Each device is represented by a json-object. The returned value is a json-array -of all devices. - -Each json-object contain the following: - -- "label": device's label (json-string) -- "filename": device's file (json-string) - -Example: - --> { "execute": "query-chardev" } -<- { - "return":[ - { - "label":"monitor", - "filename":"stdio" - }, - { - "label":"serial0", - "filename":"vc" - } - ] - } - -EQMP - -STEXI @item info block show the block devices -ETEXI -SQMP -query-block ------------ - -Show the block devices. - -Each block device information is stored in a json-object and the returned value -is a json-array of all devices. - -Each json-object contain the following: - -- "device": device name (json-string) -- "type": device type (json-string) - - Possible values: "hd", "cdrom", "floppy", "unknown" -- "removable": true if the device is removable, false otherwise (json-bool) -- "locked": true if the device is locked, false otherwise (json-bool) -- "inserted": only present if the device is inserted, it is a json-object - containing the following: - - "file": device file name (json-string) - - "ro": true if read-only, false otherwise (json-bool) - - "drv": driver format name (json-string) - - Possible values: "blkdebug", "bochs", "cloop", "cow", "dmg", - "file", "file", "ftp", "ftps", "host_cdrom", - "host_device", "host_floppy", "http", "https", - "nbd", "parallels", "qcow", "qcow2", "raw", - "tftp", "vdi", "vmdk", "vpc", "vvfat" - - "backing_file": backing file name (json-string, optional) - - "encrypted": true if encrypted, false otherwise (json-bool) - -Example: - --> { "execute": "query-block" } -<- { - "return":[ - { - "device":"ide0-hd0", - "locked":false, - "removable":false, - "inserted":{ - "ro":false, - "drv":"qcow2", - "encrypted":false, - "file":"disks/test.img" - }, - "type":"hd" - }, - { - "device":"ide1-cd0", - "locked":false, - "removable":true, - "type":"cdrom" - }, - { - "device":"floppy0", - "locked":false, - "removable":true, - "type": "floppy" - }, - { - "device":"sd0", - "locked":false, - "removable":true, - "type":"floppy" - } - ] - } - -EQMP - -STEXI @item info blockstats show block device statistics -ETEXI -SQMP -query-blockstats ----------------- - -Show block device statistics. - -Each device statistic information is stored in a json-object and the returned -value is a json-array of all devices. - -Each json-object contain the following: - -- "device": device name (json-string) -- "stats": A json-object with the statistics information, it contains: - - "rd_bytes": bytes read (json-int) - - "wr_bytes": bytes written (json-int) - - "rd_operations": read operations (json-int) - - "wr_operations": write operations (json-int) - - "wr_highest_offset": Highest offset of a sector written since the - BlockDriverState has been opened (json-int) -- "parent": Contains recursively the statistics of the underlying - protocol (e.g. the host file for a qcow2 image). If there is - no underlying protocol, this field is omitted - (json-object, optional) - -Example: - --> { "execute": "query-blockstats" } -<- { - "return":[ - { - "device":"ide0-hd0", - "parent":{ - "stats":{ - "wr_highest_offset":3686448128, - "wr_bytes":9786368, - "wr_operations":751, - "rd_bytes":122567168, - "rd_operations":36772 - } - }, - "stats":{ - "wr_highest_offset":2821110784, - "wr_bytes":9786368, - "wr_operations":692, - "rd_bytes":122739200, - "rd_operations":36604 - } - }, - { - "device":"ide1-cd0", - "stats":{ - "wr_highest_offset":0, - "wr_bytes":0, - "wr_operations":0, - "rd_bytes":0, - "rd_operations":0 - } - }, - { - "device":"floppy0", - "stats":{ - "wr_highest_offset":0, - "wr_bytes":0, - "wr_operations":0, - "rd_bytes":0, - "rd_operations":0 - } - }, - { - "device":"sd0", - "stats":{ - "wr_highest_offset":0, - "wr_bytes":0, - "wr_operations":0, - "rd_bytes":0, - "rd_operations":0 - } - } - ] - } - -EQMP - -STEXI @item info registers show the cpu registers @item info cpus show infos for each CPU -ETEXI -SQMP -query-cpus ----------- - -Show CPU information. - -Return a json-array. Each CPU is represented by a json-object, which contains: - -- "CPU": CPU index (json-int) -- "current": true if this is the current CPU, false otherwise (json-bool) -- "halted": true if the cpu is halted, false otherwise (json-bool) -- Current program counter. The key's name depends on the architecture: - "pc": i386/x86_64 (json-int) - "nip": PPC (json-int) - "pc" and "npc": sparc (json-int) - "PC": mips (json-int) - -Example: - --> { "execute": "query-cpus" } -<- { - "return":[ - { - "CPU":0, - "current":true, - "halted":false, - "pc":3227107138 - }, - { - "CPU":1, - "current":false, - "halted":true, - "pc":7108165 - } - ] - } - -EQMP - -STEXI @item info history show the command line history @item info irq show the interrupts statistics (if available) @item info pic show i8259 (PIC) state -ETEXI - -STEXI @item info pci show emulated PCI device info -ETEXI -SQMP -query-pci ---------- - -PCI buses and devices information. - -The returned value is a json-array of all buses. Each bus is represented by -a json-object, which has a key with a json-array of all PCI devices attached -to it. Each device is represented by a json-object. - -The bus json-object contains the following: - -- "bus": bus number (json-int) -- "devices": a json-array of json-objects, each json-object represents a - PCI device - -The PCI device json-object contains the following: - -- "bus": identical to the parent's bus number (json-int) -- "slot": slot number (json-int) -- "function": function number (json-int) -- "class_info": a json-object containing: - - "desc": device class description (json-string, optional) - - "class": device class number (json-int) -- "id": a json-object containing: - - "device": device ID (json-int) - - "vendor": vendor ID (json-int) -- "irq": device's IRQ if assigned (json-int, optional) -- "qdev_id": qdev id string (json-string) -- "pci_bridge": It's a json-object, only present if this device is a - PCI bridge, contains: - - "bus": bus number (json-int) - - "secondary": secondary bus number (json-int) - - "subordinate": subordinate bus number (json-int) - - "io_range": I/O memory range information, a json-object with the - following members: - - "base": base address, in bytes (json-int) - - "limit": limit address, in bytes (json-int) - - "memory_range": memory range information, a json-object with the - following members: - - "base": base address, in bytes (json-int) - - "limit": limit address, in bytes (json-int) - - "prefetchable_range": Prefetchable memory range information, a - json-object with the following members: - - "base": base address, in bytes (json-int) - - "limit": limit address, in bytes (json-int) - - "devices": a json-array of PCI devices if there's any attached, each - each element is represented by a json-object, which contains - the same members of the 'PCI device json-object' described - above (optional) -- "regions": a json-array of json-objects, each json-object represents a - memory region of this device - -The memory range json-object contains the following: - -- "base": base memory address (json-int) -- "limit": limit value (json-int) - -The region json-object can be an I/O region or a memory region, an I/O region -json-object contains the following: - -- "type": "io" (json-string, fixed) -- "bar": BAR number (json-int) -- "address": memory address (json-int) -- "size": memory size (json-int) - -A memory region json-object contains the following: - -- "type": "memory" (json-string, fixed) -- "bar": BAR number (json-int) -- "address": memory address (json-int) -- "size": memory size (json-int) -- "mem_type_64": true or false (json-bool) -- "prefetch": true or false (json-bool) - -Example: - --> { "execute": "query-pci" } -<- { - "return":[ - { - "bus":0, - "devices":[ - { - "bus":0, - "qdev_id":"", - "slot":0, - "class_info":{ - "class":1536, - "desc":"Host bridge" - }, - "id":{ - "device":32902, - "vendor":4663 - }, - "function":0, - "regions":[ - - ] - }, - { - "bus":0, - "qdev_id":"", - "slot":1, - "class_info":{ - "class":1537, - "desc":"ISA bridge" - }, - "id":{ - "device":32902, - "vendor":28672 - }, - "function":0, - "regions":[ - - ] - }, - { - "bus":0, - "qdev_id":"", - "slot":1, - "class_info":{ - "class":257, - "desc":"IDE controller" - }, - "id":{ - "device":32902, - "vendor":28688 - }, - "function":1, - "regions":[ - { - "bar":4, - "size":16, - "address":49152, - "type":"io" - } - ] - }, - { - "bus":0, - "qdev_id":"", - "slot":2, - "class_info":{ - "class":768, - "desc":"VGA controller" - }, - "id":{ - "device":4115, - "vendor":184 - }, - "function":0, - "regions":[ - { - "prefetch":true, - "mem_type_64":false, - "bar":0, - "size":33554432, - "address":4026531840, - "type":"memory" - }, - { - "prefetch":false, - "mem_type_64":false, - "bar":1, - "size":4096, - "address":4060086272, - "type":"memory" - }, - { - "prefetch":false, - "mem_type_64":false, - "bar":6, - "size":65536, - "address":-1, - "type":"memory" - } - ] - }, - { - "bus":0, - "qdev_id":"", - "irq":11, - "slot":4, - "class_info":{ - "class":1280, - "desc":"RAM controller" - }, - "id":{ - "device":6900, - "vendor":4098 - }, - "function":0, - "regions":[ - { - "bar":0, - "size":32, - "address":49280, - "type":"io" - } - ] - } - ] - } - ] - } - -Note: This example has been shortened as the real response is too long. - -EQMP - -STEXI @item info tlb show virtual to physical memory mappings (i386 only) @item info mem show the active virtual memory mappings (i386 only) -ETEXI - -STEXI @item info jit show dynamic compiler info @item info kvm show KVM information @item info numa show NUMA information -ETEXI - -STEXI @item info kvm show KVM information -ETEXI -SQMP -query-kvm ---------- - -Show KVM information. - -Return a json-object with the following information: - -- "enabled": true if KVM support is enabled, false otherwise (json-bool) -- "present": true if QEMU has KVM support, false otherwise (json-bool) - -Example: - --> { "execute": "query-kvm" } -<- { "return": { "enabled": true, "present": true } } - -EQMP - -STEXI @item info usb show USB devices plugged on the virtual USB hub @item info usbhost @@ -2248,307 +1173,26 @@ show profiling information show information about active capturing @item info snapshots show list of VM snapshots -ETEXI - -STEXI @item info status show the current VM status (running|paused) -ETEXI -SQMP -query-status ------------- - -Return a json-object with the following information: - -- "running": true if the VM is running, or false if it is paused (json-bool) -- "singlestep": true if the VM is in single step mode, - false otherwise (json-bool) - -Example: - --> { "execute": "query-status" } -<- { "return": { "running": true, "singlestep": false } } - -EQMP - -STEXI @item info pcmcia show guest PCMCIA status -ETEXI - -STEXI @item info mice show which guest mouse is receiving events -ETEXI -SQMP -query-mice ----------- - -Show VM mice information. - -Each mouse is represented by a json-object, the returned value is a json-array -of all mice. - -The mouse json-object contains the following: - -- "name": mouse's name (json-string) -- "index": mouse's index (json-int) -- "current": true if this mouse is receiving events, false otherwise (json-bool) -- "absolute": true if the mouse generates absolute input events (json-bool) - -Example: - --> { "execute": "query-mice" } -<- { - "return":[ - { - "name":"QEMU Microsoft Mouse", - "index":0, - "current":false, - "absolute":false - }, - { - "name":"QEMU PS/2 Mouse", - "index":1, - "current":true, - "absolute":true - } - ] - } - -EQMP - -STEXI @item info vnc show the vnc server status -ETEXI -SQMP -query-vnc ---------- - -Show VNC server information. - -Return a json-object with server information. Connected clients are returned -as a json-array of json-objects. - -The main json-object contains the following: - -- "enabled": true or false (json-bool) -- "host": server's IP address (json-string) -- "family": address family (json-string) - - Possible values: "ipv4", "ipv6", "unix", "unknown" -- "service": server's port number (json-string) -- "auth": authentication method (json-string) - - Possible values: "invalid", "none", "ra2", "ra2ne", "sasl", "tight", - "tls", "ultra", "unknown", "vencrypt", "vencrypt", - "vencrypt+plain", "vencrypt+tls+none", - "vencrypt+tls+plain", "vencrypt+tls+sasl", - "vencrypt+tls+vnc", "vencrypt+x509+none", - "vencrypt+x509+plain", "vencrypt+x509+sasl", - "vencrypt+x509+vnc", "vnc" -- "clients": a json-array of all connected clients - -Clients are described by a json-object, each one contain the following: - -- "host": client's IP address (json-string) -- "family": address family (json-string) - - Possible values: "ipv4", "ipv6", "unix", "unknown" -- "service": client's port number (json-string) -- "x509_dname": TLS dname (json-string, optional) -- "sasl_username": SASL username (json-string, optional) - -Example: - --> { "execute": "query-vnc" } -<- { - "return":{ - "enabled":true, - "host":"0.0.0.0", - "service":"50402", - "auth":"vnc", - "family":"ipv4", - "clients":[ - { - "host":"127.0.0.1", - "service":"50401", - "family":"ipv4" - } - ] - } - } - -EQMP - -STEXI @item info name show the current VM name -ETEXI -SQMP -query-name ----------- - -Show VM name. - -Return a json-object with the following information: - -- "name": VM's name (json-string, optional) - -Example: - --> { "execute": "query-name" } -<- { "return": { "name": "qemu-name" } } - -EQMP - -STEXI @item info uuid show the current VM UUID -ETEXI -SQMP -query-uuid ----------- - -Show VM UUID. - -Return a json-object with the following information: - -- "UUID": Universally Unique Identifier (json-string) - -Example: - --> { "execute": "query-uuid" } -<- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } } - -EQMP - -STEXI @item info cpustats show CPU statistics @item info usernet show user network stack connection states -ETEXI - -STEXI @item info migrate show migration status -ETEXI -SQMP -query-migrate -------------- - -Migration status. - -Return a json-object. If migration is active there will be another json-object -with RAM migration status and if block migration is active another one with -block migration status. - -The main json-object contains the following: - -- "status": migration status (json-string) - - Possible values: "active", "completed", "failed", "cancelled" -- "ram": only present if "status" is "active", it is a json-object with the - following RAM information (in bytes): - - "transferred": amount transferred (json-int) - - "remaining": amount remaining (json-int) - - "total": total (json-int) -- "disk": only present if "status" is "active" and it is a block migration, - it is a json-object with the following disk information (in bytes): - - "transferred": amount transferred (json-int) - - "remaining": amount remaining (json-int) - - "total": total (json-int) - -Examples: - -1. Before the first migration - --> { "execute": "query-migrate" } -<- { "return": {} } - -2. Migration is done and has succeeded - --> { "execute": "query-migrate" } -<- { "return": { "status": "completed" } } - -3. Migration is done and has failed - --> { "execute": "query-migrate" } -<- { "return": { "status": "failed" } } - -4. Migration is being performed and is not a block migration: - --> { "execute": "query-migrate" } -<- { - "return":{ - "status":"active", - "ram":{ - "transferred":123, - "remaining":123, - "total":246 - } - } - } - -5. Migration is being performed and is a block migration: - --> { "execute": "query-migrate" } -<- { - "return":{ - "status":"active", - "ram":{ - "total":1057024, - "remaining":1053304, - "transferred":3720 - }, - "disk":{ - "total":20971520, - "remaining":20880384, - "transferred":91136 - } - } - } - -EQMP - -STEXI @item info balloon show balloon information -ETEXI -SQMP -query-balloon -------------- - -Show balloon information. - -Make an asynchronous request for balloon info. When the request completes a -json-object will be returned containing the following data: - -- "actual": current balloon value in bytes (json-int) -- "mem_swapped_in": Amount of memory swapped in bytes (json-int, optional) -- "mem_swapped_out": Amount of memory swapped out in bytes (json-int, optional) -- "major_page_faults": Number of major faults (json-int, optional) -- "minor_page_faults": Number of minor faults (json-int, optional) -- "free_mem": Total amount of free and unused memory in - bytes (json-int, optional) -- "total_mem": Total amount of available memory in bytes (json-int, optional) - -Example: - --> { "execute": "query-balloon" } -<- { - "return":{ - "actual":1073741824, - "mem_swapped_in":0, - "mem_swapped_out":0, - "major_page_faults":142, - "minor_page_faults":239245, - "free_mem":1014185984, - "total_mem":1044668416 - } - } - -EQMP - -STEXI @item info qtree show device tree @item info qdm @@ -2567,8 +1211,6 @@ show available trace events and their state ETEXI #endif -HXCOMM DO NOT add new commands after 'info', move your addition before it! - STEXI @end table ETEXI