From: Amos Kong <akong@redhat.com>
To: qemu-devel@nongnu.org
Cc: pbonzini@redhat.com, qiaonuohan@cn.fujitsu.com,
lcapitulino@redhat.com, aliguori@us.ibm.com, armbru@redhat.com
Subject: Re: [Qemu-devel] [PATCH] full introspection support for QMP
Date: Thu, 20 Jun 2013 18:16:14 +0800 [thread overview]
Message-ID: <20130620101614.GA9587@amosk.info> (raw)
In-Reply-To: <20130619124914.GA11095@amosk.info>
[-- Attachment #1: Type: text/plain, Size: 3119 bytes --]
On Wed, Jun 19, 2013 at 08:49:14PM +0800, Amos Kong wrote:
> On Wed, Jun 19, 2013 at 08:24:37PM +0800, Amos Kong wrote:
> > Introduces new monitor command to query QMP schema information,
> > the return data is a nested dict/list, it contains the useful
> > metadata.
> >
> > we can add events definations to qapi-schema.json, then it can
> > also be queried.
>
> I didn't implement to return complete schema in one go in this
> version, will do it in next version. We have a recursive define
> 'DataObject', we only display one layer for it.
I have implemented the return whole schema in one go.
Attached the whole output [query-qmp-schema--whole.txt]
I will send the patch out after cleanup.
DataObject description might cause confuse, I also plan
to add a detail document [docs/qmp-full-introspection.txt] (uncompleted)
Welcome your comments :)
============== full introspection support for QMP ===================
== Purpose ==
Add a new interface to provide QMP schema information to management,
== Usage ==
Execute QMP command:
{ "execute": "query-qmp-schema" }
Returns:
{ "return": [
{
"name": "query-name",
"type": "Command",
"returns": [
{
"name": "*name",
"type": "str"
}
]
}
}
The whole schema information will be returned in one go, it contains
commands and event. It doesn't support to filter information by type
or name.
We have four types (ImageInfo, BlockStats, PciDeviceInfo,
SchemaData) that uses themself in their own define data
directly or indirectly, we will not repeatedly extend them.
== more description of 'DataObject' type ==
We use 'DataObject' to describe dynamical data struct, it might be
nested dictionary, list or string.
'DataObject' itself is a arbitrary and nested dictionary, the
dictionary has three keys ('name', 'type', 'data'), 'name' and
'data' are optional.
* For describing Dictionary, we set the key to 'name', and set the
value to 'type'
* For describing List, we don't set 'name', just set the value to
'type'
* If the value of dictionary or list is non-native type, we extend
the non-native type to dictionary, set it to 'data', and set the
non-native type's name to 'type'.
1) Dict, value is native type
{ 'id': 'str', ... }
--------------------
[
{
"name": "id",
"type": "str"
},
.....
]
2) Dict, value is defined types
{ 'options': 'TpmTypeOptions' }
-------------------------------
[
{
"name": "options",
"type": "TpmTypeOptions",
"data": [
{
"name": "passthrough",
"type": "str",
}
]
},
.....
]
3) List, value is native type
['str', ... ]
-------------
[
{
"type": "str"
},
....
]
4) List, value is defined types
['TpmTypeOptions', ... ]
------------------------
[
{
"type": "TpmTypeOptions",
"data": [
{
"name": "passthrough",
"type": "str",
}
]
},
.....
]
[-- Attachment #2: query-qmp-schema--whole.txt --]
[-- Type: text/plain, Size: 117255 bytes --]
{
"QMP": {
"version": {
"qemu": {
"micro": 50,
"minor": 5,
"major": 1
},
"package": ""
},
"capabilities": [
]
}
}
{
"return": {
}
}
{
"return": [
{
"name": "add_client",
"type": "Command",
"data": [
{
"name": "*skipauth",
"type": "bool"
},
{
"name": "protocol",
"type": "str"
},
{
"name": "fdname",
"type": "str"
},
{
"name": "*tls",
"type": "bool"
}
]
},
{
"name": "query-name",
"type": "Command",
"returns": [
{
"name": "*name",
"type": "str"
}
]
},
{
"name": "query-version",
"type": "Command",
"returns": [
{
"name": "qemu",
"data": [
{
"name": "micro",
"type": "int"
},
{
"name": "minor",
"type": "int"
},
{
"name": "major",
"type": "int"
}
]
},
{
"name": "package",
"type": "str"
}
]
},
{
"name": "query-kvm",
"type": "Command",
"returns": [
{
"name": "enabled",
"type": "bool"
},
{
"name": "present",
"type": "bool"
}
]
},
{
"name": "query-status",
"type": "Command",
"returns": [
{
"name": "status",
"type": "RunState",
"data": [
{
"type": "debug"
},
{
"type": "inmigrate"
},
{
"type": "internal-error"
},
{
"type": "io-error"
},
{
"type": "paused"
},
{
"type": "postmigrate"
},
{
"type": "prelaunch"
},
{
"type": "finish-migrate"
},
{
"type": "restore-vm"
},
{
"type": "running"
},
{
"type": "save-vm"
},
{
"type": "shutdown"
},
{
"type": "suspended"
},
{
"type": "watchdog"
},
{
"type": "guest-panicked"
}
]
},
{
"name": "singlestep",
"type": "bool"
},
{
"name": "running",
"type": "bool"
}
]
},
{
"name": "query-uuid",
"type": "Command",
"returns": [
{
"name": "UUID",
"type": "str"
}
]
},
{
"name": "query-chardev",
"type": "Command",
"returns": [
{
"type": "ChardevInfo",
"data": [
{
"name": "filename",
"type": "str"
},
{
"name": "label",
"type": "str"
}
]
}
]
},
{
"name": "ringbuf-write",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*format",
"type": "DataFormat",
"data": [
{
"type": "utf8"
},
{
"type": "base64"
}
]
},
{
"name": "data",
"type": "str"
}
]
},
{
"name": "ringbuf-read",
"type": "Command",
"returns": [
{
"type": "str"
}
],
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*format",
"type": "DataFormat",
"data": [
{
"type": "utf8"
},
{
"type": "base64"
}
]
},
{
"name": "size",
"type": "int"
}
]
},
{
"name": "query-commands",
"type": "Command",
"returns": [
{
"type": "CommandInfo",
"data": [
{
"name": "name",
"type": "str"
}
]
}
]
},
{
"name": "query-events",
"type": "Command",
"returns": [
{
"type": "EventInfo",
"data": [
{
"name": "name",
"type": "str"
}
]
}
]
},
{
"name": "query-migrate",
"type": "Command",
"returns": [
{
"name": "*disk",
"type": "MigrationStats",
"data": [
{
"name": "total",
"type": "int"
},
{
"name": "remaining",
"type": "int"
},
{
"name": "transferred",
"type": "int"
},
{
"name": "duplicate",
"type": "int"
},
{
"name": "dirty-pages-rate",
"type": "int"
},
{
"name": "skipped",
"type": "int"
},
{
"name": "normal-bytes",
"type": "int"
},
{
"name": "normal",
"type": "int"
}
]
},
{
"name": "*xbzrle-cache",
"type": "XBZRLECacheStats",
"data": [
{
"name": "bytes",
"type": "int"
},
{
"name": "cache-size",
"type": "int"
},
{
"name": "pages",
"type": "int"
},
{
"name": "overflow",
"type": "int"
},
{
"name": "cache-miss",
"type": "int"
}
]
},
{
"name": "*downtime",
"type": "int"
},
{
"name": "*expected-downtime",
"type": "int"
},
{
"name": "*status",
"type": "str"
},
{
"name": "*ram",
"type": "MigrationStats",
"data": [
{
"name": "total",
"type": "int"
},
{
"name": "remaining",
"type": "int"
},
{
"name": "transferred",
"type": "int"
},
{
"name": "duplicate",
"type": "int"
},
{
"name": "dirty-pages-rate",
"type": "int"
},
{
"name": "skipped",
"type": "int"
},
{
"name": "normal-bytes",
"type": "int"
},
{
"name": "normal",
"type": "int"
}
]
},
{
"name": "*total-time",
"type": "int"
}
]
},
{
"name": "migrate-set-capabilities",
"type": "Command",
"data": [
{
"name": "capabilities",
"data": [
{
"type": "MigrationCapabilityStatus",
"data": [
{
"name": "state",
"type": "bool"
},
{
"name": "capability",
"type": "MigrationCapability",
"data": [
{
"type": "xbzrle"
}
]
}
]
}
]
}
]
},
{
"name": "query-migrate-capabilities",
"type": "Command",
"returns": [
{
"type": "MigrationCapabilityStatus",
"data": [
{
"name": "state",
"type": "bool"
},
{
"name": "capability",
"type": "MigrationCapability",
"data": [
{
"type": "xbzrle"
}
]
}
]
}
]
},
{
"name": "query-mice",
"type": "Command",
"returns": [
{
"type": "MouseInfo",
"data": [
{
"name": "index",
"type": "int"
},
{
"name": "name",
"type": "str"
},
{
"name": "current",
"type": "bool"
},
{
"name": "absolute",
"type": "bool"
}
]
}
]
},
{
"name": "query-cpus",
"type": "Command",
"returns": [
{
"type": "CpuInfo",
"data": [
{
"name": "*PC",
"type": "int"
},
{
"name": "*pc",
"type": "int"
},
{
"name": "current",
"type": "bool"
},
{
"name": "CPU",
"type": "int"
},
{
"name": "halted",
"type": "bool"
},
{
"name": "*npc",
"type": "int"
},
{
"name": "*nip",
"type": "int"
},
{
"name": "thread_id",
"type": "int"
}
]
}
]
},
{
"name": "query-block",
"type": "Command",
"returns": [
{
"type": "BlockInfo",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "locked",
"type": "bool"
},
{
"name": "removable",
"type": "bool"
},
{
"name": "*dirty",
"type": "BlockDirtyInfo",
"data": [
{
"name": "granularity",
"type": "int"
},
{
"name": "count",
"type": "int"
}
]
},
{
"name": "*io-status",
"type": "BlockDeviceIoStatus",
"data": [
{
"type": "ok"
},
{
"type": "failed"
},
{
"type": "nospace"
}
]
},
{
"name": "*tray_open",
"type": "bool"
},
{
"name": "type",
"type": "str"
},
{
"name": "*inserted",
"type": "BlockDeviceInfo",
"data": [
{
"name": "iops_rd",
"type": "int"
},
{
"name": "*backing_file",
"type": "str"
},
{
"name": "image",
"type": "ImageInfo",
"data": [
{
"name": "*backing-filename",
"type": "str"
},
{
"name": "*actual-size",
"type": "int"
},
{
"name": "*backing-image",
"type": "ImageInfo"
},
{
"name": "*full-backing-filename",
"type": "str"
},
{
"name": "*cluster-size",
"type": "int"
},
{
"name": "virtual-size",
"type": "int"
},
{
"name": "filename",
"type": "str"
},
{
"name": "*encrypted",
"type": "bool"
},
{
"name": "format",
"type": "str"
},
{
"name": "*snapshots",
"data": [
{
"type": "SnapshotInfo",
"data": [
{
"name": "vm-clock-nsec",
"type": "int"
},
{
"name": "name",
"type": "str"
},
{
"name": "date-sec",
"type": "int"
},
{
"name": "date-nsec",
"type": "int"
},
{
"name": "vm-clock-sec",
"type": "int"
},
{
"name": "id",
"type": "str"
},
{
"name": "vm-state-size",
"type": "int"
}
]
}
]
},
{
"name": "*backing-filename-format",
"type": "str"
},
{
"name": "*dirty-flag",
"type": "bool"
}
]
},
{
"name": "iops_wr",
"type": "int"
},
{
"name": "ro",
"type": "bool"
},
{
"name": "backing_file_depth",
"type": "int"
},
{
"name": "drv",
"type": "str"
},
{
"name": "iops",
"type": "int"
},
{
"name": "bps_wr",
"type" : "int"
},
{
"name": "encrypted",
"type": "bool"
},
{
"name": "bps",
"type": "int"
},
{
"name": "bps_rd",
"type": "int"
},
{
"name": "file",
"type": "str"
},
{
"name": "encryption_key_missing",
"type": "bool"
}
]
}
]
}
]
},
{
"name": "query-blockstats",
"type": "Command",
"returns": [
{
"type": "BlockStats",
"data": [
{
"name": "stats",
"type": "BlockDeviceStats",
"data": [
{
"name": "flush_total_time_ns",
"type": "int"
},
{
"name": "wr_highest_offset",
"type": "int"
},
{
"name": "wr_total_time_ns",
"type": "int"
},
{
"name": "wr_bytes",
"type": "int"
},
{
"name": "rd_total_time_ns",
"type": "int"
},
{
"name": "flush_operations",
"type": "int"
},
{
"name": "wr_operations",
"type": "int"
},
{
"name": "rd_bytes",
"type": "int"
},
{
"name": "rd_operations",
"type": "int"
}
]
},
{
"name": "*device",
"type": "str"
},
{
"name": "*parent",
"type": "BlockStats"
}
]
}
]
},
{
"name": "query-vnc",
"type": "Command",
"returns": [
{
"name": "*clients",
"data": [
{
"type": "VncClientInfo",
"data": [
{
"name": "family",
"type": "str"
},
{
"name": "*sasl_username",
"type": "str"
},
{
"name": "service",
"type": "str"
},
{
"name": "host",
"type": "str"
},
{
"name": "*x509_dname",
"type": "str"
}
]
}
]
},
{
"name": "*family",
"type": "str"
},
{
"name": "enabled",
"type": "bool"
},
{
"name": "*service",
"type": "str"
},
{
"name": "*host",
"type": "str"
},
{
"name": "*auth",
"type": "str"
}
]
},
{
"name": "query-spice",
"type": "Command",
"returns": [
{
"name": "migrated",
"type": "bool"
},
{
"name": "enabled",
"type": "bool"
},
{
"name": "*port",
"type": "int"
},
{
"name": "*channels",
"data": [
{
"type": "SpiceChannel",
"data": [
{
"name": "port",
"type": "str"
},
{
"name": "family",
"type": "str"
},
{
"name": "channel-type",
"type": "int"
},
{
"name": "connection-id",
"type": "int"
},
{
"name": "host",
"type": "str"
},
{
"name": "channel-id",
"type": "int"
},
{
"name": "tls",
"type": "bool"
}
]
}
]
},
{
"name": "*compiled-version",
"type": "str"
},
{
"name": "mouse-mode",
"type": "SpiceQueryMouseMode",
"data": [
{
"type": "client"
},
{
"type": "server"
},
{
"type": "unknown"
}
]
},
{
"name": "*tls-port",
"type": "int"
},
{
"name": "*host",
"type": "str"
},
{
"name": "*auth",
"type": "str"
}
]
},
{
"name": "query-balloon",
"type": "Command",
"returns": [
{
"name": "actual",
"type": "int"
}
]
},
{
"name": "query-pci",
"type": "Command",
"returns": [
{
"type": "PciInfo",
"data": [
{
"name": "bus",
"type": "int"
},
{
"name": "devices",
"data": [
{
"type": "PciDeviceInfo",
"data": [
{
"name": "bus",
"type": "int"
},
{
"name": "*irq",
"type": "int"
},
{
"name": "qdev_id",
"type": "str"
},
{
"name": "slot",
"type": "int"
},
{
"name": "*pci_bridge",
"type": "PciBridgeInfo",
"data": [
{
"name": "bus",
"data": [
{
"name": "prefetchable_range",
"type": "PciMemoryRange",
"data": [
{
"name": "limit",
"type": "int"
},
{
"name": "base",
"type": "int"
}
]
},
{
"name": "memory_range",
"type": "PciMemoryRange",
"data": [
{
"name": "limit",
"type": "int"
},
{
"name": "base",
"type": "int"
}
]
},
{
"name": "secondary",
"type": "int"
},
{
"name": "io_range",
"type": "PciMemoryRange",
"data": [
{
"name": "limit",
"type": "int"
},
{
"name": "base",
"type": "int"
}
]
},
{
"name": "number",
"type": "int"
},
{
"name": "subordinate",
"type": "int"
}
]
},
{
"name": "*devices",
"data": [
{
"type": "PciDeviceInfo"
}
]
}
]
},
{
"name": "class_info",
"data": [
{
"name": "*desc",
"type": "str"
},
{
"name": "class",
"type": "int"
}
]
},
{
"name": "id",
"data": [
{
"name": "device",
"type": "int"
},
{
"name": "vendor",
"type": "int"
}
]
},
{
"name": "function",
"type": "int"
},
{
"name": "regions",
"data": [
{
"type": "PciMemoryRegion",
"data": [
{
"name": "*prefetch",
"type": "bool"
},
{
"name": "bar",
"type": "int"
},
{
"name": "size",
"type": "int"
},
{
"name": "*mem_type_64",
"type": "bool"
},
{
"name": "address",
"type": "int"
},
{
"name": "type",
"type": "str"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name": "query-block-jobs",
"type": "Command",
"returns": [
{
"type": "BlockJobInfo",
"data": [
{
"name": "io-status",
"type": "BlockDeviceIoStatus",
"data": [
{
"type": "ok"
},
{
"type": "failed"
},
{
"type": "nospace"
}
]
},
{
"name": "device",
"type": "str"
},
{
"name": "busy",
"type": "bool"
},
{
"name": "len",
"type": "int"
},
{
"name": "offset",
"type": "int"
},
{
"name": "paused",
"type": "bool"
},
{
"name": "speed",
"type": "int"
},
{
"name": "type",
"type": "str"
}
]
}
]
},
{
"name": "quit",
"type": "Command"
},
{
"name": "stop",
"type": "Command"
},
{
"name": "system_reset",
"type": "Command"
},
{
"name": "system_powerdown",
"type": "Command"
},
{
"name": "cpu",
"type": "Command",
"data": [
{
"name": "index",
"type": "int"
}
]
},
{
"name": "cpu-add",
"type": "Command",
"data": [
{
"name": "id",
"type": "int"
}
]
},
{
"name": "memsave",
"type": "Command",
"data": [
{
"name": "filename",
"type": "str"
},
{
"name": "size",
"type": "int"
},
{
"name": "val",
"type ": "int"
},
{
"name": "*cpu-index",
"type": "int"
}
]
},
{
"name": "pmemsave",
"type": "Command",
"data": [
{
"name": "filename",
"type": "str"
},
{
"name": "size",
"type": "int"
},
{
"name": "val",
"type": "int"
}
]
},
{
"name": "cont",
"type": "Command"
},
{
"name": "system_wakeup",
"type": "Command"
},
{
"name": "inject-nmi",
"type": "Command"
},
{
"name": "set_link",
"type": "Command",
"data": [
{
"name": "name",
"type": "str"
},
{
"name": "up",
"type": "bool"
}
]
},
{
"name": "block_passwd",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "password",
"type": "str"
}
]
},
{
"name": "balloon",
"type": "Command",
"data": [
{
"name": "value",
"type": "int"
}
]
},
{
"name": "block_resize",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "size",
"type": "int"
}
]
},
{
"name": "transaction",
"type": "Command",
"data": [
{
"name": "actions",
"data": [
{
"type": "TransactionAction",
"data": [
{
"name": "blockdev-snapshot-sync",
"type": "BlockdevSnapshot",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*mode",
"type": "NewImageMode",
"data": [
{
"type": "existing"
},
{
"type": "absolute-paths"
}
]
},
{
"name": "*format",
"type": "str"
},
{
"name": "snapshot-file",
"type": "str"
}
]
}
]
}
]
}
]
},
{
"name": "blockdev-snapshot-sync",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*mode",
"type": "NewImageMode",
"data": [
{
"type": "existing"
},
{
"type": "absolute-paths"
}
]
},
{
"name": "*format",
"type": "str"
},
{
"name": "snapshot-file",
"type": "str"
}
]
},
{
"name": "human-monitor-command",
"type": "Command",
"returns": [
{
"type": "str"
}
],
"data": [
{
"name": "command-line",
"type": "str"
},
{
"name": "*cpu-index",
"type": "int"
}
]
},
{
"name": "block-commit",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*speed",
"type": "int"
},
{
"name": "*base",
"type": "str"
},
{
"name": "top",
"type": "str"
}
]
},
{
"name": "drive-mirror",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*speed",
"type": "int"
},
{
"name": "*mode",
"type": "NewImageMode",
"data": [
{
"type": "existing"
},
{
"type": "absolute-paths"
}
]
},
{
"name": "*buf-size",
"type": "int"
},
{
"name": "*format",
"type": "str"
},
{
"name": "*on-source-error",
"type": "BlockdevOnError",
"data": [
{
"type": "report"
},
{
"type": "ignore"
},
{
"type": "enospc"
},
{
"type": "stop"
}
]
},
{
"name": "*on-target-error",
"type": "BlockdevOnError",
"data": [
{
"type": "report"
},
{
"type": "ignore"
},
{
"type": "enospc"
},
{
"type": "stop"
}
]
},
{
"name": "sync",
"type": "MirrorSyncMode",
"data": [
{
"type": "top"
},
{
"type": "full"
},
{
"type": "none"
}
]
},
{
"name": "*granularity",
"type": "uint32"
},
{
"name": "target",
"type": "str"
}
]
},
{
"name": "migrate_cancel",
"type": "Command"
},
{
"name": "migrate_set_downtime",
"type": "Command",
"data": [
{
"name": "value",
"type": "number"
}
]
},
{
"name": "migrate_set_speed",
"type": "Command",
"data": [
{
"name": "value",
"type": "int"
}
]
},
{
"name": "migrate-set-cache-size",
"type": "Command",
"data": [
{
"name": "value",
"type": "int"
}
]
},
{
"name": "query-migrate-cache-size",
"type": "Command",
"returns": [
{
"type": "int"
}
]
},
{
"name": "qom-list",
"type": "Command",
"returns": [
{
"type": "ObjectPropertyInfo",
"data": [
{
"name": "name",
"type": "str"
},
{
"name": "type",
"type": "str"
}
]
}
],
"data": [
{
"name": "path",
"type": "str"
}
]
},
{
"name": "qom-get",
"type": "Command",
"returns": [
{
"type": "visitor"
}
],
"data": [
{
"name": "path",
"type": "str"
},
{
"name": "property",
"type": "str"
}
]
},
{
"name": "qom-set",
"type": "Command",
"data": [
{
"name": "path",
"type": "str"
},
{
"name": "property",
"type": "str"
},
{
"name": "value",
"type": "visitor"
}
]
},
{
"name": "set_password",
"type": "Command",
"data": [
{
"name": "*connected",
"type": "str"
},
{
"name": "protocol",
"type": "str"
},
{
"name": "pass word",
"type": "str"
}
]
},
{
"name": "expire_password",
"type": "Command",
"data": [
{
"name": "protocol",
"type": "str"
},
{
"name": "time",
"type": "str"
}
]
},
{
"name": "eject",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*force",
"type": "bool"
}
]
},
{
"name": "change-vnc-password",
"type": "Command",
"data": [
{
"name": "password",
"type": "str"
}
]
},
{
"name": "change",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*arg",
"type": "str"
},
{
"name": "target",
"type": "str"
}
]
},
{
"name": "block_set_io_throttle",
"type": "Command",
"data": [
{
"name": "iops_rd",
"type": "int"
},
{
"name": "device",
"type": "str"
},
{
"name": "iops_wr",
"type": "int"
},
{
"name": "iops",
"type": "int"
},
{
"name": "bps_wr",
"type": "int"
},
{
"name": "bps",
"type": "int"
},
{
"name": "bps_rd",
"type": "int"
}
]
},
{
"name": "block-stream",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*speed",
"type": "int"
},
{
"name": "*on-error",
"type": "BlockdevOnError",
"data": [
{
"type": "report"
},
{
"type": "ignore"
},
{
"type": "enospc"
},
{
"type": "stop"
}
]
},
{
"name": "*base",
"type": "str"
}
]
},
{
"name": "block-job-set-speed",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "speed",
"type": "int"
}
]
},
{
"name": "block-job-cancel",
"type": "Command",
"data": [
{
"name": "device",
" type": "str"
},
{
"name": "*force",
"type": "bool"
}
]
},
{
"name": "block-job-pause",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
}
]
},
{
"name": "block-job-resume",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
}
]
},
{
"name": "block-job-complete",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
}
]
},
{
"name": "qom-list-types",
"type": "Command",
"returns": [
{
"type": "ObjectTypeInfo",
"data": [
{
"name": "name",
"type": "str"
}
]
}
],
"data": [
{
"name": "*implements",
"type": "str"
},
{
"name": "*abstract",
"type": "bool"
}
]
},
{
"name": "device-list-properties",
"type": "Command",
"returns": [
{
"type": "DevicePropertyInfo",
"data": [
{
"name": "name",
"type": "str"
},
{
"n ame": "type",
"type": "str"
}
]
}
],
"data": [
{
"name": "typename",
"type": "str"
}
]
},
{
"name": "migrate",
"type": "Command",
"data": [
{
"name": "uri",
"type": "str"
},
{
"name": "*inc",
"type": "bool"
},
{
"name": "*detach",
"type": "bool"
},
{
"name": "*blk",
"type": "bool"
}
]
},
{
"name": "xen-save-devices-state",
"type": "Command",
"data": [
{
"name": "filename",
"type": "str"
}
]
},
{
"name": "xen-set-global-dirty-log",
"type": "Command",
"data": [
{
"name": "enable",
"type": "bool"
}
]
},
{
"name": "device_del",
"type": "Command",
"data": [
{
"name": "id",
"type": "str"
}
]
},
{
"name": "dump-guest-memory",
"type": "Command",
"data": [
{
"name": "*length",
"type": "int"
},
{
"name": "protocol",
"type": "str"
},
{
"name": "*begin ",
"type": "int"
},
{
"name": "paging",
"type": "bool"
}
]
},
{
"name": "netdev_add",
"type": "Command",
"data": [
{
"name": "*props",
"type": "**"
},
{
"name": "type",
"type": "str"
},
{
"name": "id",
"type": "str"
}
]
},
{
"name": "netdev_del",
"type": "Command",
"data": [
{
"name": "id",
"type": "str"
}
]
},
{
"name": "getfd",
"type": "Command",
"data": [
{
"name": "fdname",
"type": "str"
}
]
},
{
"name": "closefd",
"type": "Command",
"data": [
{
"name": "fdname",
"type": "str"
}
]
},
{
"name": "query-machines",
"type": "Command",
"returns": [
{
"type": "MachineInfo",
"data": [
{
"name": "*alias",
"type": "str"
},
{
"name": "name",
"type": "str"
},
{
"name": "*is-default",
"type": "bool"
},
{
"name": "cpu-max",
"type": "int"
}
]
}
]
},
{
"name": "query-cpu-definitions",
"type": "Command",
"returns": [
{
"type": "CpuDefinitionInfo",
"data": [
{
"name": "name",
"type": "str"
}
]
}
]
},
{
"name": "add-fd",
"type": "Command",
"returns": [
{
"name": "fd",
"type": "int"
},
{
"name": "fdset-id",
"type": "int"
}
],
"data": [
{
"name": "*fdset-id",
"type": "int"
},
{
"name": "*opaque",
"type": "str"
}
]
},
{
"name": "remove-fd",
"type": "Command",
"data": [
{
"name": "*fd",
"type": "int"
},
{
"name": "fdset-id",
"type": "int"
}
]
},
{
"name": "query-fdsets",
"type": "Command",
"returns": [
{
"type": "FdsetInfo",
"data": [
{
"name": "fds",
"data": [
{
"type": "FdsetFdInfo",
"data": [
{
"name": "fd",
"type": "int"
},
{
"name": "*opaque",
"type": "str"
}
]
}
]
},
{
"name": "fdset-id",
"type": "int"
}
]
}
]
},
{
"name": "query-target",
"type": "Command",
"returns": [
{
"name": "arch",
"type": "str"
}
]
},
{
"name": "send-key",
"type": "Command",
"data": [
{
"name": "keys",
"data": [
{
"type": "KeyValue",
"data": [
{
"name": "qcode",
"type": "QKeyCode",
"data": [
{
"type": "shift"
},
{
"type": "shift_r"
},
{
"type": "alt"
},
{
"type": "alt_r"
},
{
"type": "altgr"
},
{
"type": "altgr_r"
},
{
"type": "ctrl"
},
{
"type": "ctrl_r"
},
{
"type": "menu"
},
{
"type": "esc"
},
{
"type": "1"
},
{
"type": "2"
},
{
"type": "3"
},
{
"type": "4"
},
{
"type": "5"
},
{
"type": "6"
},
{
"type": "7"
},
{
"type": "8"
},
{
"type": "9"
},
{
"type": "0"
},
{
"type": "minus"
},
{
"type": "equal"
},
{
"type": "backspace"
},
{
"type": "tab"
},
{
"type": "q"
},
{
"type": "w"
},
{
"type": "e"
},
{
"type": "r"
},
{
"type": "t"
},
{
"type": "y"
},
{
"type": "u"
},
{
"type": "i"
},
{
"type": "o"
},
{
"type": "p"
},
{
"type": "bracket_left"
},
{
"type": "bracket_right"
},
{
"type": "ret"
},
{
"type": "a"
},
{
"type": "s"
},
{
"type": "d"
},
{
"type": "f"
},
{
"type": "g"
},
{
"type": "h"
},
{
"type": "j"
},
{
"type": "k"
},
{
"type": "l"
},
{
"type": "semicolon"
},
{
"type": "apostrophe"
},
{
"type": "grave_accent"
},
{
"type": "backslash"
},
{
"type": "z"
},
{
"type": "x"
},
{
"type": "c"
},
{
"type": "v"
},
{
"type": "b"
},
{
"type": "n"
},
{
"type": "m"
},
{
"type": "comma"
},
{
"type": "dot"
},
{
"type": "slash"
},
{
"type": "asterisk"
},
{
"type": "spc"
},
{
"type": "caps_lock"
},
{
"type": "f1"
},
{
"type": "f2"
},
{
"type": "f3"
},
{
"type": "f4"
},
{
"type": "f5"
},
{
"type": "f6"
},
{
"type": "f7"
},
{
"type": "f8"
},
{
"type": "f9"
},
{
"type": "f10"
},
{
"type": "num_lock"
},
{
"type": "scroll_lock"
},
{
"type": "kp_divide"
},
{
"type": "kp_multiply"
},
{
"type": "kp_subtract"
},
{
"type": "kp_add"
},
{
"type": "kp_enter"
},
{
"type": "kp_decimal"
},
{
"type": "sysrq"
},
{
"type": "kp_0"
},
{
"type": "kp_1"
},
{
"type": "kp_2"
},
{
"type": "kp_3"
},
{
"type": "kp_4"
},
{
"type": "kp_5"
},
{
"type": "kp_6"
},
{
"type": "kp_7"
},
{
"type": "kp_8"
},
{
"type": "kp_9"
},
{
"type": "less"
},
{
"type": "f11"
},
{
"type": "f12"
},
{
"type": "print"
},
{
"type": "home"
},
{
"type": "pgup"
},
{
"type": "pgdn"
},
{
"type": "end"
},
{
"type": "left"
},
{
"type": "up"
},
{
"type": "down"
},
{
"type": "right"
},
{
"type": "insert"
},
{
"type": "delete"
},
{
"type": "stop"
},
{
"type": "again"
},
{
"type": "props"
},
{
"type": "undo"
},
{
"type": "front"
},
{
"type": "copy"
},
{
"type": "open"
},
{
"type": "paste"
},
{
"type": "find"
},
{
"type": "cut"
},
{
"type": "lf"
},
{
"type": "help"
},
{
"type": "meta_l"
},
{
"type": "meta_r"
},
{
"type": "compose"
}
]
},
{
"name": "number",
"type": "int"
}
]
}
]
},
{
"name": "*hold-time",
"type": "int"
}
]
},
{
"name": "screendump",
"type": "Command",
"data": [
{
"name": "filename",
"type": "str"
}
]
},
{
"name": "nbd-server-start",
"type": "Command",
"data": [
{
"name": "addr",
"type": "SocketAddress",
"data": [
{
"name": "fd",
"type": "String",
"data": [
{
"name": "str",
"type": "str"
}
]
},
{
"name": "unix",
"type": "UnixSocketAddress",
"data": [
{
"name": "path",
"type": "str"
}
]
},
{
"name": "inet",
"type": "InetSocketAddress",
"data": [
{
"name": "port",
"type": "str"
},
{
"name": "*ipv6",
"type": "bool"
},
{
"name": "*ipv4",
"type": "bool"
},
{
"name": "host",
"type": "str"
},
{
"name": "*to",
"type": "uint16"
}
]
}
]
}
]
},
{
"name": "nbd-server-add",
"type": "Command",
"data": [
{
"name": "device",
"type": "str"
},
{
"name": "*writable",
"type": "bool"
}
]
},
{
"name": "nbd-server-stop",
"type": "Command"
},
{
"name": "chardev-add",
"type": "Command",
"returns": [
{
"name": "*pty",
"type": "str"
}
],
"data": [
{
"name": "backend",
"type": "ChardevBackend",
"data": [
{
"name": "serial",
"type": "ChardevHostdev",
"data": [
{
"name": "device",
"type": "str"
}
]
},
{
"name": "spiceport",
"type": "ChardevSpicePort",
"data": [
{
"name": "fqdn",
"type": "str"
}
]
},
{
"name": "stdio",
"type": "ChardevStdio",
"data": [
{
"name": "*signal",
"type": "bool"
}
]
},
{
"name": "memory",
"type": "ChardevMemory",
"data": [
{
"name": "*size",
"type": "int"
}
]
},
{
"name": "socket",
"type": "ChardevSocket",
"data": [
{
"name": "*wait",
"type": "bool"
},
{
"name": "*server",
"type": "bool"
},
{
"name": "addr",
"type": "SocketAddress",
"data": [
{
"name": "fd",
"type": "String",
"data": [
{
"name": "str",
"type": "str"
}
]
},
{
"name": "unix",
"type": "UnixSocketAddress",
"data": [
{
"name": "path",
"type": "str"
}
]
},
{
"name": "inet",
"type": "InetSocketAddress",
"data": [
{
"name": "port",
"type": "str"
},
{
"name": "*ipv6",
"type": "bool"
},
{
"name": "*ipv4",
"type": "bool"
},
{
"name": "host",
"type": "str"
},
{
"name": "*to",
"type": "uint16"
}
]
}
]
},
{
"name": "*nodelay",
"type": "bool"
},
{
"name": "*telnet",
"type": "bool"
}
]
},
{
"name": "msmouse",
"type": "ChardevDummy",
"data": [
]
},
{
"name": "pty",
"type": "ChardevDummy",
"data": [
]
},
{
"name": "braille",
"type": "ChardevDummy",
"data": [
]
},
{
"name": "udp",
"type": "ChardevUdp",
"data": [
{
"name": "remote",
"type": "SocketAddress",
"data": [
{
"name": "fd",
"type": "String",
"data": [
{
"name": "str",
"type": "str"
}
]
},
{
"name": "unix",
"type": "UnixSocketAddress",
"data": [
{
"name": "path",
"type": "str"
}
]
},
{
"name": "inet",
"type": "InetSocketAddress",
"data": [
{
"name": "port",
"type": "str"
},
{
"name": "*ipv6",
"type": "bool"
},
{
"name": "*ipv4",
"type": "bool"
},
{
"name": "host",
"type": "str"
},
{
"name": "*to",
"type": "uint16"
}
]
}
]
},
{
"name": "*local",
"type": "SocketAddress",
"data": [
{
"name": "fd",
"type": "String",
"data": [
{
"name": "str",
"type": "str"
}
]
},
{
"name": "unix",
"type": "UnixSocketAddress",
"data": [
{
"name": "path",
"type": "str"
}
]
},
{
"name": "inet",
"type": "InetSocketAddress",
"data": [
{
"name": "port",
"type": "str"
},
{
"name": "*ipv6",
"type": "bool"
},
{
"name": "*ipv4",
"type": "bool"
},
{
"name": "host",
"type": "str"
},
{
"name": "*to",
"type": "uint16"
}
]
}
]
}
]
},
{
"name": "mux",
"type": "ChardevMux",
"data": [
{
"name": "chardev",
"type": "str"
}
]
},
{
"name": "console",
"type": "ChardevDummy",
"data": [
]
},
{
"name": "parallel",
"type": "ChardevHostdev",
"data": [
{
"name": "device",
"type": "str"
}
]
},
{
"name": "null",
"type": "ChardevDummy",
"data": [
]
},
{
"name": "file",
"type": "ChardevFile",
"data": [
{
"name": "*in",
"type": "str"
},
{
"name": "out",
"type": "str"
}
]
},
{
"name": "spicevmc",
"type": "ChardevSpiceChannel",
"data": [
{
"name": "type",
"type": "str"
}
]
},
{
"name": "vc",
"type": "ChardevVC",
"data": [
{
"name": "*cols",
"type": "int"
},
{
"name": "*width",
"type": "int"
},
{
"name": "*rows",
"type": "int"
},
{
"name": "*height",
"type": "int"
}
]
},
{
"name": "pipe",
"type": "ChardevHostdev",
"data": [
{
"name": "device",
"type": "str"
}
]
}
]
},
{
"name": "id",
"type": "str"
}
]
},
{
"name": "chardev-remove",
"type": "Command",
"data": [
{
"name": "id",
"type": "str"
}
]
},
{
"name": "query-tpm-models",
"type": "Command",
"returns": [
{
"type": "TpmModel",
"data": [
{
"type": "tpm-tis"
}
]
}
]
},
{
"name": "query-tpm-types",
"type": "Command",
"returns": [
{
"type": "TpmType",
"data": [
{
"type": "passthrough"
}
]
}
]
},
{
"name": "query-tpm",
"type": "Command",
"returns": [
{
"type": "TPMInfo",
"data": [
{
"name": "model",
"type": "TpmModel",
"data": [
{
"type": "tpm-tis"
}
]
},
{
"name": "options",
"type": "TpmTypeOptions",
"data": [
{
"name": "passthrough",
"type": "TPMPassthroughOptions",
"data": [
{
"name": "*path",
"type": "str"
},
{
"name": "*cancel-path",
"type": "str"
}
]
}
]
},
{
"name": "id",
"type": "str"
}
]
}
]
},
{
"name": "query-command-line-options",
"type": "Command",
"returns": [
{
"type": "CommandLineOptionInfo",
"data": [
{
"name": "parameters",
"data": [
{
"type": "CommandLineParameterInfo",
"data": [
{
"name": "name",
"type": "str"
},
{
"name": "*help",
"type": "str"
},
{
"name": "type",
"type": "CommandLineParameterType",
"data": [
{
"type": "string"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "size"
}
]
}
]
}
]
},
{
"name": "option",
"type": "str"
}
]
}
],
"data": [
{
"name": "*option",
"type": "str"
}
]
},
{
"name": "query-qmp-schema",
"type": "Command",
"returns": [
{
"type": "SchemaData",
"data": [
{
"name": "*data",
"data": [
{
"type": "DataObject",
"data": [
{
"name": "*data",
"data": [
{
"type": "DataObject"
}
]
},
{
"name": "*type",
"type": "str"
},
{
"name": "*name",
"type": "str"
}
]
}
]
},
{
"name": "name",
"type": "str"
},
{
"name": "*returns",
"data": [
{
"type": "DataObject",
"data": [
{
"name": "*data",
"data": [
{
"type": "DataObject"
}
]
},
{
"name": "*type",
"type": "str"
},
{
"name": "*name",
"type": "str"
}
]
}
]
},
{
"name": "type",
"type": "SchemaMetatype",
"data": [
{
"type": "Command"
},
{
"type": "Type"
},
{
"type": "Enumeration"
},
{
"type": "Union"
},
{
"type": "Event"
}
]
}
]
}
]
}
]
}
next prev parent reply other threads:[~2013-06-20 10:16 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-06-19 12:24 [Qemu-devel] [PATCH] full introspection support for QMP Amos Kong 2013-06-19 12:49 ` Amos Kong 2013-06-20 10:16 ` Amos Kong [this message] 2013-07-02 16:39 ` Eric Blake 2013-06-21 3:20 ` Luiz Capitulino 2013-07-02 8:37 ` Amos Kong 2013-07-02 14:20 ` Luiz Capitulino 2013-07-16 10:52 ` Amos Kong 2013-07-02 14:51 ` Anthony Liguori 2013-07-02 15:28 ` Eric Blake 2013-07-02 15:39 ` Daniel P. Berrange 2013-07-02 16:44 ` Eric Blake 2013-07-02 17:01 ` Paolo Bonzini 2013-07-02 17:06 ` Eric Blake 2013-07-02 18:27 ` Anthony Liguori 2013-07-04 3:54 ` Amos Kong 2013-07-02 18:21 ` Anthony Liguori 2013-07-02 20:00 ` Paolo Bonzini 2013-07-02 20:08 ` Eric Blake 2013-07-02 20:58 ` Anthony Liguori 2013-07-03 5:52 ` Paolo Bonzini 2013-07-03 12:54 ` Anthony Liguori 2013-07-03 14:45 ` Paolo Bonzini 2013-07-03 16:06 ` Anthony Liguori 2013-07-04 7:53 ` Paolo Bonzini 2013-07-11 13:37 ` Amos Kong 2013-07-02 17:06 ` Anthony Liguori 2013-07-02 17:11 ` Eric Blake 2013-07-02 18:28 ` Anthony Liguori 2013-07-03 15:08 ` Kevin Wolf 2013-07-03 15:59 ` Anthony Liguori 2013-07-04 7:42 ` Kevin Wolf 2013-07-04 7:55 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130620101614.GA9587@amosk.info \
--to=akong@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qiaonuohan@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.