qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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: Wed, 19 Jun 2013 20:49:14 +0800	[thread overview]
Message-ID: <20130619124914.GA11095@amosk.info> (raw)
In-Reply-To: <1371644677-11041-1-git-send-email-akong@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 3839 bytes --]

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.

>>>> dict
  {'type': 't1', 'data': {'a1': 'b1'} }
  {'type': 't2', 'data': {'a2': 't1'} }

then we would retrieve t2 to:

   {'type': 't2', 'data': {'a2': {'a1': 'b1'} } }

>>>> list
  {'enum': 't1', 'data': ['a1', 'b1'] }
  {'type': 't2', 'data': {'a2': 't1'} }

then we would retrieve t2 to:

   {'type': 't2', 'data': {'a2': ['a1', 'b1'] } }

>>>> union
  {'union': 't1', 'data': {'a1':'v1', 'b1':'v2'} }
  {'type': 't2', 'data': {'a2': 't1'} }

then we would retrieve t2 to:

   {'type': 't2', 'data': {'a2': {'a2': ['a1', 'b1'] } } }

 
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
>  Makefile                 |   4 +-
>  qapi-schema.json         |  68 +++++++++++++++++++
>  qmp-commands.hx          |  39 +++++++++++
>  qmp.c                    | 170 +++++++++++++++++++++++++++++++++++++++++++++++
>  scripts/qapi-commands.py |   2 +-
>  scripts/qapi-types.py    |  34 +++++++++-
>  scripts/qapi-visit.py    |   2 +-
>  scripts/qapi.py          |   7 +-
>  8 files changed, 320 insertions(+), 6 deletions(-)


You can find three kind of examples(string/list/dict) in the bottom.
Attached (query-qmp-schema--output.txt) the full output of execut query-qmp-schema command.

String:
{ 'command': 'query-name', 'returns': 'NameInfo' }
---------------------------------------------------------------------
        {
            "name": "NameInfo",
            "type": "Type",
            "data": [
                {
                    "name": "*name",
                    "type": "str"
                }
            ]
        },


List:
{ 'enum': 'ErrorClass',
  'data': [ 'GenericError', 'CommandNotFound', 'DeviceEncrypted',
            'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
---------------------------------------------------------------------
        {
            "name": "ErrorClass",
            "type": "Enumeration",
            "data": [
                {
                    "type": "GenericError"
                },
                {
                    "type": "CommandNotFound"
                },
                {
                    "type": "DeviceEncrypted"
                },
                {
                    "type": "DeviceNotActive"
                },
                {
                    "type": "DeviceNotFound"
                },
                {
                    "type": "KVMMissingCap"
                }
            ]
        },


Dict:
{ 'type': 'VersionInfo',
  'data': {'qemu': {'major': 'int', 'minor': 'int', 'micro': 'int'},
           'package': 'str'} }
---------------------------------------------------------------------
        {
            "name": "VersionInfo",
            "type": "Type",
            "data": [
                {
                    "name": "qemu",
                    "data": [
                        {
                            "name": "micro",
                            "type": "int"
                        },
                        {
                            "name": "minor",
                            "type": "int"
                        },
                        {
                            "name": "major",
                            "type": "int"
                        }
                    ]
                },
                {
                    "name": "package",
                    "type": "str"
                }
            ]
        },




[-- Attachment #2: query-qmp-schema--output.txt --]
[-- Type: text/plain, Size: 91834 bytes --]

{
    "QMP": {
        "version": {
            "qemu": {
                "micro": 50, 
                "minor": 5, 
                "major": 1
            }, 
            "package": ""
        }, 
        "capabilities": [
        ]
    }
}
{
    "return": {
    }
}
{
    "return": [
        {
            "name": "ErrorClass", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "GenericError"
                }, 
                {
                    "type": "CommandNotFound"
                }, 
                {
                    "type": "DeviceEncrypted"
                }, 
                {
                    "type": "DeviceNotActive"
                }, 
                {
                    "type": "DeviceNotFound"
                }, 
                {
                    "type": "KVMMissingCap"
                }
            ]
        }, 
        {
            "name": "add_client", 
            "type": "Command", 
            "data": [
                {
                    "name": "*skipauth", 
                    "type": "bool"
                }, 
                {
                    "name": "protocol", 
                    "type": "str"
                }, 
                {
                    "name": "fdname", 
                    "type": "str"
                }, 
                {
                    "name": "*tls", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "NameInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "*name", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-name", 
            "type": "Command"
        }, 
        {
            "name": "VersionInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "qemu", 
                    "data": [
                        {
                            "name": "micro", 
                            "type": "int"
                        }, 
                        {
                            "name": "minor", 
                            "type": "int"
                        }, 
                        {
                            "name": "major", 
                            "type": "int"
                        }
                    ]
                }, 
                {
                    "name": "package", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-version", 
            "type": "Command"
        }, 
        {
            "name": "KvmInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "enabled", 
                    "type": "bool"
                }, 
                {
                    "name": "present", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "query-kvm", 
            "type": "Command"
        }, 
        {
            "name": "RunState", 
            "type": "Enumeration", 
            "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": "SnapshotInfo", 
            "type": "Type", 
            "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": "ImageInfo", 
            "type": "Type", 
            "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"
                        }
                    ]
                }, 
                {
                    "name": "*backing-filename-format", 
                    "type": "str"
                }, 
                {
                    "name": "*dirty-flag", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "ImageCheck", 
            "type": "Type", 
            "data": [
                {
                    "name": "*allocated-clusters", 
                    "type": "int"
                }, 
                {
                    "name": "*image-end-offset", 
                    "type": "int"
                }, 
                {
                    "name": "*leaks-fixed", 
                    "type": "int"
                }, 
                {
                    "name": "check-errors", 
                    "type": "int"
                }, 
                {
                    "name": "*corruptions-fixed", 
                    "type": "int"
                }, 
                {
                    "name": "*fragmented-clusters", 
                    "type": "int"
                }, 
                {
                    "name": "*compressed-clusters", 
                    "type": "int"
                }, 
                {
                    "name": "filename", 
                    "type": "str"
                }, 
                {
                    "name": "*leaks", 
                    "type": "int"
                }, 
                {
                    "name": "format", 
                    "type": "str"
                }, 
                {
                    "name": "*total-clusters", 
                    "type": "int"
                }, 
                {
                    "name": "*corruptions", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "StatusInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "status", 
                    "type": "RunState"
                }, 
                {
                    "name": "singlestep", 
                    "type": "bool"
                }, 
                {
                    "name": "running", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "query-status", 
            "type": "Command"
        }, 
        {
            "name": "UuidInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "UUID", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-uuid", 
            "type": "Command"
        }, 
        {
            "name": "ChardevInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "filename", 
                    "type": "str"
                }, 
                {
                    "name": "label", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-chardev", 
            "type": "Command"
        }, 
        {
            "name": "DataFormat", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "utf8"
                }, 
                {
                    "type": "base64"
                }
            ]
        }, 
        {
            "name": "ringbuf-write", 
            "type": "Command", 
            "data": [
                {
                    "name": "device", 
                    "type": "str"
                }, 
                {
                    "name": "*format", 
                    "type": "DataFormat"
                }, 
                {
                    "name": "data", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "ringbuf-read", 
            "type": "Command", 
            "data": [
                {
                    "name": "device", 
                    "type": "str"
                }, 
                {
                    "name": "*format", 
                    "type": "DataFormat"
                }, 
                {
                    "name": "size", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "CommandInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "name", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-commands", 
            "type": "Command"
        }, 
        {
            "name": "EventInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "name", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-events", 
            "type": "Command"
        }, 
        {
            "name": "MigrationStats", 
            "type": "Type", 
            "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": "XBZRLECacheStats", 
            "type": "Type", 
            "data": [
                {
                    "name": "bytes", 
                    "type": "int"
                }, 
                {
                    "name": "cache-size", 
                    "type": "int"
                }, 
                {
                    "name": "pages", 
                    "type": "int"
                }, 
                {
                    "name": "overflow", 
                    "type": "int"
                }, 
                {
                    "name": "cache-miss", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "MigrationInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "*disk", 
                    "type": "MigrationStats"
                }, 
                {
                    "name": "*xbzrle-cache", 
                    "type": "XBZRLECacheStats"
                }, 
                {
                    "name": "*downtime", 
                    "type": "int"
                }, 
                {
                    "name": "*expected-downtime", 
                    "type": "int"
                }, 
                {
                    "name": "*status", 
                    "type": "str"
                }, 
                {
                    "name": "*ram", 
                    "type": "MigrationStats"
                }, 
                {
                    "name": "*total-time", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "query-migrate", 
            "type": "Command"
        }, 
        {
            "name": "MigrationCapability", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "xbzrle"
                }
            ]
        }, 
        {
            "name": "MigrationCapabilityStatus", 
            "type": "Type", 
            "data": [
                {
                    "name": "state", 
                    "type": "bool"
                }, 
                {
                    "name": "capability", 
                    "type": "MigrationCapability"
                }
            ]
        }, 
        {
            "name": "migrate-set-capabilities", 
            "type": "Command", 
            "data": [
                {
                    "name": "capabilities", 
                    "data": [
                        {
                            "type": "MigrationCapabilityStatus"
                        }
                    ]
                }
            ]
        }, 
        {
            "name": "query-migrate-capabilities", 
            "type": "Command"
        }, 
        {
            "name": "MouseInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "index", 
                    "type": "int"
                }, 
                {
                    "name": "name", 
                    "type": "str"
                }, 
                {
                    "name": "current", 
                    "type": "bool"
                }, 
                {
                    "name": "absolute", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "query-mice", 
            "type": "Command"
        }, 
        {
            "name": "CpuInfo", 
            "type": "Type", 
            "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-cpus", 
            "type": "Command"
        }, 
        {
            "name": "BlockDeviceInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "iops_rd", 
                    "type": "int"
                }, 
                {
                    "name": "*backing_file", 
                    "type": "str"
                }, 
                {
                    "name": "image", 
                    "type": "ImageInfo"
                }, 
                {
                    "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": "BlockDeviceIoStatus", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "ok"
                }, 
                {
                    "type": "failed"
                }, 
                {
                    "type": "nospace"
                }
            ]
        }, 
        {
            "name": "BlockDirtyInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "granularity", 
                    "type": "int"
                }, 
                {
                    "name": "count", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "BlockInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "device", 
                    "type": "str"
                }, 
                {
                    "name": "locked", 
                    "type": "bool"
                }, 
                {
                    "name": "removable", 
                    "type": "bool"
                }, 
                {
                    "name": "*dirty", 
                    "type": "BlockDirtyInfo"
                }, 
                {
                    "name": "*io-status", 
                    "type": "BlockDeviceIoStatus"
                }, 
                {
                    "name": "*tray_open", 
                    "type": "bool"
                }, 
                {
                    "name": "type", 
                    "type": "str"
                }, 
                {
                    "name": "*inserted", 
                    "type": "BlockDeviceInfo"
                }
            ]
        }, 
        {
            "name": "query-block", 
            "type": "Command"
        }, 
        {
            "name": "BlockDeviceStats", 
            "type": "Type", 
            "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": "BlockStats", 
            "type": "Type", 
            "data": [
                {
                    "name": "stats", 
                    "type": "BlockDeviceStats"
                }, 
                {
                    "name": "*device", 
                    "type": "str"
                }, 
                {
                    "name": "*parent", 
                    "type": "BlockStats"
                }
            ]
        }, 
        {
            "name": "query-blockstats", 
            "type": "Command"
        }, 
        {
            "name": "VncClientInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "family", 
                    "type": "str"
                }, 
                {
                    "name": "*sasl_username", 
                    "type": "str"
                }, 
                {
                    "name": "service", 
                    "type": "str"
                }, 
                {
                    "name": "host", 
                    "type": "str"
                }, 
                {
                    "name": "*x509_dname", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "VncInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "*clients", 
                    "data": [
                        {
                            "type": "VncClientInfo"
                        }
                    ]
                }, 
                {
                    "name": "*family", 
                    "type": "str"
                }, 
                {
                    "name": "enabled", 
                    "type": "bool"
                }, 
                {
                    "name": "*service", 
                    "type": "str"
                }, 
                {
                    "name": "*host", 
                    "type": "str"
                }, 
                {
                    "name": "*auth", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-vnc", 
            "type": "Command"
        }, 
        {
            "name": "SpiceChannel", 
            "type": "Type", 
            "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": "SpiceQueryMouseMode", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "client"
                }, 
                {
                    "type": "server"
                }, 
                {
                    "type": "unknown"
                }
            ]
        }, 
        {
            "name": "SpiceInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "migrated", 
                    "type": "bool"
                }, 
                {
                    "name": "enabled", 
                    "type": "bool"
                }, 
                {
                    "name": "*port", 
                    "type": "int"
                }, 
                {
                    "name": "*channels", 
                    "data": [
                        {
                            "type": "SpiceChannel"
                        }
                    ]
                }, 
                {
                    "name": "*compiled-version", 
                    "type": "str"
                }, 
                {
                    "name": "mouse-mode", 
                    "type": "SpiceQueryMouseMode"
                }, 
                {
                    "name": "*tls-port", 
                    "type": "int"
                }, 
                {
                    "name": "*host", 
                    "type": "str"
                }, 
                {
                    "name": "*auth", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-spice", 
            "type": "Command"
        }, 
        {
            "name": "BalloonInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "actual", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "query-balloon", 
            "type": "Command"
        }, 
        {
            "name": "PciMemoryRange", 
            "type": "Type", 
            "data": [
                {
                    "name": "limit", 
                    "type": "int"
                }, 
                {
                    "name": "base", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "PciMemoryRegion", 
            "type": "Type", 
            "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": "PciBridgeInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "bus", 
                    "data": [
                        {
                            "name": "prefetchable_range", 
                            "type": "PciMemoryRange"
                        }, 
                        {
                            "name": "memory_range", 
                            "type": "PciMemoryRange"
                        }, 
                        {
                            "name": "secondary", 
                            "type": "int"
                        }, 
                        {
                            "name": "io_range", 
                            "type": "PciMemoryRange"
                        }, 
                        {
                            "name": "number", 
                            "type": "int"
                        }, 
                        {
                            "name": "subordinate", 
                            "type": "int"
                        }
                    ]
                }, 
                {
                    "name": "*devices", 
                    "data": [
                        {
                            "type": "PciDeviceInfo"
                        }
                    ]
                }
            ]
        }, 
        {
            "name": "PciDeviceInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "bus", 
                    "type": "int"
                }, 
                {
                    "name": "*irq", 
                    "type": "int"
                }, 
                {
                    "name": "qdev_id", 
                    "type": "str"
                }, 
                {
                    "name": "slot", 
                    "type": "int"
                }, 
                {
                    "name": "*pci_bridge", 
                    "type": "PciBridgeInfo"
                }, 
                {
                    "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"
                        }
                    ]
                }
            ]
        }, 
        {
            "name": "PciInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "bus", 
                    "type": "int"
                }, 
                {
                    "name": "devices", 
                    "data": [
                        {
                            "type": "PciDeviceInfo"
                        }
                    ]
                }
            ]
        }, 
        {
            "name": "query-pci", 
            "type": "Command"
        }, 
        {
            "name": "BlockdevOnError", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "report"
                }, 
                {
                    "type": "ignore"
                }, 
                {
                    "type": "enospc"
                }, 
                {
                    "type": "stop"
                }
            ]
        }, 
        {
            "name": "MirrorSyncMode", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "top"
                }, 
                {
                    "type": "full"
                }, 
                {
                    "type": "none"
                }
            ]
        }, 
        {
            "name": "BlockJobInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "io-status", 
                    "type": "BlockDeviceIoStatus"
                }, 
                {
                    "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": "query-block-jobs", 
            "type": "Command"
        }, 
        {
            "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": "NewImageMode", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "existing"
                }, 
                {
                    "type": "absolute-paths"
                }
            ]
        }, 
        {
            "name": "BlockdevSnapshot", 
            "type": "Type", 
            "data": [
                {
                    "name": "device", 
                    "type": "str"
                }, 
                {
                    "name": "*mode", 
                    "type": "NewImageMode"
                }, 
                {
                    "name": "*format", 
                    "type": "str"
                }, 
                {
                    "name": "snapshot-file", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "TransactionAction", 
            "type": "Union", 
            "data": [
                {
                    "name": "blockdev-snapshot-sync", 
                    "type": "BlockdevSnapshot"
                }
            ]
        }, 
        {
            "name": "transaction", 
            "type": "Command", 
            "data": [
                {
                    "name": "actions", 
                    "data": [
                        {
                            "type": "TransactionAction"
                        }
                    ]
                }
            ]
        }, 
        {
            "name": "blockdev-snapshot-sync", 
            "type": "Command", 
            "data": [
                {
                    "name": "device", 
                    "type": "str"
                }, 
                {
                    "name": "*mode", 
                    "type": "NewImageMode"
                }, 
                {
                    "name": "*format", 
                    "type": "str"
                }, 
                {
                    "name": "snapshot-file", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "human-monitor-command", 
            "type": "Command", 
            "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"
                }, 
                {
                    "name": "*buf-size", 
                    "type": "int"
                }, 
                {
                    "name": "*format", 
                    "type": "str"
                }, 
                {
                    "name": "*on-source-error", 
                    "type": "BlockdevOnError"
                }, 
                {
                    "name": "*on-target-error", 
                    "type": "BlockdevOnError"
                }, 
                {
                    "name": "sync", 
                    "type": "MirrorSyncMode"
                }, 
                {
                    "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"
        }, 
        {
            "name": "ObjectPropertyInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "name", 
                    "type": "str"
                }, 
                {
                    "name": "type", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "qom-list", 
            "type": "Command", 
            "data": [
                {
                    "name": "path", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "qom-get", 
            "type": "Command", 
            "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": "password", 
                    "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"
                }, 
                {
                    "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": "ObjectTypeInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "name", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "qom-list-types", 
            "type": "Command", 
            "data": [
                {
                    "name": "*implements", 
                    "type": "str"
                }, 
                {
                    "name": "*abstract", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "DevicePropertyInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "name", 
                    "type": "str"
                }, 
                {
                    "name": "type", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "device-list-properties", 
            "type": "Command", 
            "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": "NetdevNoneOptions", 
            "type": "Type", 
            "data": [
            ]
        }, 
        {
            "name": "NetLegacyNicOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "*model", 
                    "type": "str"
                }, 
                {
                    "name": "*netdev", 
                    "type": "str"
                }, 
                {
                    "name": "*macaddr", 
                    "type": "str"
                }, 
                {
                    "name": "*vectors", 
                    "type": "uint32"
                }, 
                {
                    "name": "*addr", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "String", 
            "type": "Type", 
            "data": [
                {
                    "name": "str", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "NetdevUserOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "*tftp", 
                    "type": "str"
                }, 
                {
                    "name": "*guestfwd", 
                    "data": [
                        {
                            "type": "String"
                        }
                    ]
                }, 
                {
                    "name": "*hostfwd", 
                    "data": [
                        {
                            "type": "String"
                        }
                    ]
                }, 
                {
                    "name": "*smb", 
                    "type": "str"
                }, 
                {
                    "name": "*ip", 
                    "type": "str"
                }, 
                {
                    "name": "*hostname", 
                    "type": "str"
                }, 
                {
                    "name": "*smbserver", 
                    "type": "str"
                }, 
                {
                    "name": "*host", 
                    "type": "str"
                }, 
                {
                    "name": "*net", 
                    "type": "str"
                }, 
                {
                    "name": "*bootfile", 
                    "type": "str"
                }, 
                {
                    "name": "*dns", 
                    "type": "str"
                }, 
                {
                    "name": "*dhcpstart", 
                    "type": "str"
                }, 
                {
                    "name": "*restrict", 
                    "type": "bool"
                }, 
                {
                    "name": "*dnssearch", 
                    "data": [
                        {
                            "type": "String"
                        }
                    ]
                }
            ]
        }, 
        {
            "name": "NetdevTapOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "*ifname", 
                    "type": "str"
                }, 
                {
                    "name": "*fd", 
                    "type": "str"
                }, 
                {
                    "name": "*fds", 
                    "type": "str"
                }, 
                {
                    "name": "*vhostfd", 
                    "type": "str"
                }, 
                {
                    "name": "*vnet_hdr", 
                    "type": "bool"
                }, 
                {
                    "name": "*vhostfds", 
                    "type": "str"
                }, 
                {
                    "name": "*queues", 
                    "type": "uint32"
                }, 
                {
                    "name": "*downscript", 
                    "type": "str"
                }, 
                {
                    "name": "*sndbuf", 
                    "type": "size"
                }, 
                {
                    "name": "*script", 
                    "type": "str"
                }, 
                {
                    "name": "*helper", 
                    "type": "str"
                }, 
                {
                    "name": "*vhost", 
                    "type": "bool"
                }, 
                {
                    "name": "*vhostforce", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "NetdevSocketOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "*listen", 
                    "type": "str"
                }, 
                {
                    "name": "*fd", 
                    "type": "str"
                }, 
                {
                    "name": "*localaddr", 
                    "type": "str"
                }, 
                {
                    "name": "*udp", 
                    "type": "str"
                }, 
                {
                    "name": "*mcast", 
                    "type": "str"
                }, 
                {
                    "name": "*connect", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "NetdevVdeOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "*mode", 
                    "type": "uint16"
                }, 
                {
                    "name": "*port", 
                    "type": "uint16"
                }, 
                {
                    "name": "*sock", 
                    "type": "str"
                }, 
                {
                    "name": "*group", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "NetdevDumpOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "*file", 
                    "type": "str"
                }, 
                {
                    "name": "*len", 
                    "type": "size"
                }
            ]
        }, 
        {
            "name": "NetdevBridgeOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "*br", 
                    "type": "str"
                }, 
                {
                    "name": "*helper", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "NetdevHubPortOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "hubid", 
                    "type": "int32"
                }
            ]
        }, 
        {
            "name": "NetClientOptions", 
            "type": "Union", 
            "data": [
                {
                    "name": "tap", 
                    "type": "NetdevTapOptions"
                }, 
                {
                    "name": "socket", 
                    "type": "NetdevSocketOptions"
                }, 
                {
                    "name": "nic", 
                    "type": "NetLegacyNicOptions"
                }, 
                {
                    "name": "bridge", 
                    "type": "NetdevBridgeOptions"
                }, 
                {
                    "name": "none", 
                    "type": "NetdevNoneOptions"
                }, 
                {
                    "name": "dump", 
                    "type": "NetdevDumpOptions"
                }, 
                {
                    "name": "vde", 
                    "type": "NetdevVdeOptions"
                }, 
                {
                    "name": "user", 
                    "type": "NetdevUserOptions"
                }, 
                {
                    "name": "hubport", 
                    "type": "NetdevHubPortOptions"
                }
            ]
        }, 
        {
            "name": "NetLegacy", 
            "type": "Type", 
            "data": [
                {
                    "name": "*id", 
                    "type": "str"
                }, 
                {
                    "name": "*vlan", 
                    "type": "int32"
                }, 
                {
                    "name": "opts", 
                    "type": "NetClientOptions"
                }, 
                {
                    "name": "*name", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "Netdev", 
            "type": "Type", 
            "data": [
                {
                    "name": "opts", 
                    "type": "NetClientOptions"
                }, 
                {
                    "name": "id", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "InetSocketAddress", 
            "type": "Type", 
            "data": [
                {
                    "name": "port", 
                    "type": "str"
                }, 
                {
                    "name": "*ipv6", 
                    "type": "bool"
                }, 
                {
                    "name": "*ipv4", 
                    "type": "bool"
                }, 
                {
                    "name": "host", 
                    "type": "str"
                }, 
                {
                    "name": "*to", 
                    "type": "uint16"
                }
            ]
        }, 
        {
            "name": "UnixSocketAddress", 
            "type": "Type", 
            "data": [
                {
                    "name": "path", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "SocketAddress", 
            "type": "Union", 
            "data": [
                {
                    "name": "fd", 
                    "type": "String"
                }, 
                {
                    "name": "unix", 
                    "type": "UnixSocketAddress"
                }, 
                {
                    "name": "inet", 
                    "type": "InetSocketAddress"
                }
            ]
        }, 
        {
            "name": "getfd", 
            "type": "Command", 
            "data": [
                {
                    "name": "fdname", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "closefd", 
            "type": "Command", 
            "data": [
                {
                    "name": "fdname", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "MachineInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "*alias", 
                    "type": "str"
                }, 
                {
                    "name": "name", 
                    "type": "str"
                }, 
                {
                    "name": "*is-default", 
                    "type": "bool"
                }, 
                {
                    "name": "cpu-max", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "query-machines", 
            "type": "Command"
        }, 
        {
            "name": "CpuDefinitionInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "name", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-cpu-definitions", 
            "type": "Command"
        }, 
        {
            "name": "AddfdInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "fd", 
                    "type": "int"
                }, 
                {
                    "name": "fdset-id", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "add-fd", 
            "type": "Command", 
            "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": "FdsetFdInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "fd", 
                    "type": "int"
                }, 
                {
                    "name": "*opaque", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "FdsetInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "fds", 
                    "data": [
                        {
                            "type": "FdsetFdInfo"
                        }
                    ]
                }, 
                {
                    "name": "fdset-id", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "query-fdsets", 
            "type": "Command"
        }, 
        {
            "name": "TargetInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "arch", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-target", 
            "type": "Command"
        }, 
        {
            "name": "QKeyCode", 
            "type": "Enumeration", 
            "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": "KeyValue", 
            "type": "Union", 
            "data": [
                {
                    "name": "qcode", 
                    "type": "QKeyCode"
                }, 
                {
                    "name": "number", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "send-key", 
            "type": "Command", 
            "data": [
                {
                    "name": "keys", 
                    "data": [
                        {
                            "type": "KeyValue"
                        }
                    ]
                }, 
                {
                    "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"
                }
            ]
        }, 
        {
            "name": "nbd-server-add", 
            "type": "Command", 
            "data": [
                {
                    "name": "device", 
                    "type": "str"
                }, 
                {
                    "name": "*writable", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "nbd-server-stop", 
            "type": "Command"
        }, 
        {
            "name": "ChardevFile", 
            "type": "Type", 
            "data": [
                {
                    "name": "*in", 
                    "type": "str"
                }, 
                {
                    "name": "out", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "ChardevHostdev", 
            "type": "Type", 
            "data": [
                {
                    "name": "device", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "ChardevSocket", 
            "type": "Type", 
            "data": [
                {
                    "name": "*wait", 
                    "type": "bool"
                }, 
                {
                    "name": "*server", 
                    "type": "bool"
                }, 
                {
                    "name": "addr", 
                    "type": "SocketAddress"
                }, 
                {
                    "name": "*nodelay", 
                    "type": "bool"
                }, 
                {
                    "name": "*telnet", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "ChardevUdp", 
            "type": "Type", 
            "data": [
                {
                    "name": "remote", 
                    "type": "SocketAddress"
                }, 
                {
                    "name": "*local", 
                    "type": "SocketAddress"
                }
            ]
        }, 
        {
            "name": "ChardevMux", 
            "type": "Type", 
            "data": [
                {
                    "name": "chardev", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "ChardevStdio", 
            "type": "Type", 
            "data": [
                {
                    "name": "*signal", 
                    "type": "bool"
                }
            ]
        }, 
        {
            "name": "ChardevSpiceChannel", 
            "type": "Type", 
            "data": [
                {
                    "name": "type", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "ChardevSpicePort", 
            "type": "Type", 
            "data": [
                {
                    "name": "fqdn", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "ChardevVC", 
            "type": "Type", 
            "data": [
                {
                    "name": "*cols", 
                    "type": "int"
                }, 
                {
                    "name": "*width", 
                    "type": "int"
                }, 
                {
                    "name": "*rows", 
                    "type": "int"
                }, 
                {
                    "name": "*height", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "ChardevMemory", 
            "type": "Type", 
            "data": [
                {
                    "name": "*size", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "ChardevDummy", 
            "type": "Type", 
            "data": [
            ]
        }, 
        {
            "name": "ChardevBackend", 
            "type": "Union", 
            "data": [
                {
                    "name": "serial", 
                    "type": "ChardevHostdev"
                }, 
                {
                    "name": "spiceport", 
                    "type": "ChardevSpicePort"
                }, 
                {
                    "name": "stdio", 
                    "type": "ChardevStdio"
                }, 
                {
                    "name": "memory", 
                    "type": "ChardevMemory"
                }, 
                {
                    "name": "socket", 
                    "type": "ChardevSocket"
                }, 
                {
                    "name": "msmouse", 
                    "type": "ChardevDummy"
                }, 
                {
                    "name": "pty", 
                    "type": "ChardevDummy"
                }, 
                {
                    "name": "braille", 
                    "type": "ChardevDummy"
                }, 
                {
                    "name": "udp", 
                    "type": "ChardevUdp"
                }, 
                {
                    "name": "mux", 
                    "type": "ChardevMux"
                }, 
                {
                    "name": "console", 
                    "type": "ChardevDummy"
                }, 
                {
                    "name": "parallel", 
                    "type": "ChardevHostdev"
                }, 
                {
                    "name": "null", 
                    "type": "ChardevDummy"
                }, 
                {
                    "name": "file", 
                    "type": "ChardevFile"
                }, 
                {
                    "name": "spicevmc", 
                    "type": "ChardevSpiceChannel"
                }, 
                {
                    "name": "vc", 
                    "type": "ChardevVC"
                }, 
                {
                    "name": "pipe", 
                    "type": "ChardevHostdev"
                }
            ]
        }, 
        {
            "name": "ChardevReturn", 
            "type": "Type", 
            "data": [
                {
                    "name": "*pty", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "chardev-add", 
            "type": "Command", 
            "data": [
                {
                    "name": "backend", 
                    "type": "ChardevBackend"
                }, 
                {
                    "name": "id", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "chardev-remove", 
            "type": "Command", 
            "data": [
                {
                    "name": "id", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "TpmModel", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "tpm-tis"
                }
            ]
        }, 
        {
            "name": "query-tpm-models", 
            "type": "Command"
        }, 
        {
            "name": "TpmType", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "passthrough"
                }
            ]
        }, 
        {
            "name": "query-tpm-types", 
            "type": "Command"
        }, 
        {
            "name": "TPMPassthroughOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "*path", 
                    "type": "str"
                }, 
                {
                    "name": "*cancel-path", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "TpmTypeOptions", 
            "type": "Union", 
            "data": [
                {
                    "name": "passthrough", 
                    "type": "TPMPassthroughOptions"
                }
            ]
        }, 
        {
            "name": "TPMInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "model", 
                    "type": "TpmModel"
                }, 
                {
                    "name": "options", 
                    "type": "TpmTypeOptions"
                }, 
                {
                    "name": "id", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-tpm", 
            "type": "Command"
        }, 
        {
            "name": "AcpiTableOptions", 
            "type": "Type", 
            "data": [
                {
                    "name": "*data", 
                    "type": "str"
                }, 
                {
                    "name": "*oem_id", 
                    "type": "str"
                }, 
                {
                    "name": "*oem_table_id", 
                    "type": "str"
                }, 
                {
                    "name": "*sig", 
                    "type": "str"
                }, 
                {
                    "name": "*oem_rev", 
                    "type": "uint32"
                }, 
                {
                    "name": "*file", 
                    "type": "str"
                }, 
                {
                    "name": "*rev", 
                    "type": "uint8"
                }, 
                {
                    "name": "*asl_compiler_rev", 
                    "type": "uint32"
                }, 
                {
                    "name": "*asl_compiler_id", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "CommandLineParameterType", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "string"
                }, 
                {
                    "type": "boolean"
                }, 
                {
                    "type": "number"
                }, 
                {
                    "type": "size"
                }
            ]
        }, 
        {
            "name": "CommandLineParameterInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "name", 
                    "type": "str"
                }, 
                {
                    "name": "*help", 
                    "type": "str"
                }, 
                {
                    "name": "type", 
                    "type": "CommandLineParameterType"
                }
            ]
        }, 
        {
            "name": "CommandLineOptionInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "parameters", 
                    "data": [
                        {
                            "type": "CommandLineParameterInfo"
                        }
                    ]
                }, 
                {
                    "name": "option", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "query-command-line-options", 
            "type": "Command", 
            "data": [
                {
                    "name": "*option", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "X86CPURegister32", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "EAX"
                }, 
                {
                    "type": "EBX"
                }, 
                {
                    "type": "ECX"
                }, 
                {
                    "type": "EDX"
                }, 
                {
                    "type": "ESP"
                }, 
                {
                    "type": "EBP"
                }, 
                {
                    "type": "ESI"
                }, 
                {
                    "type": "EDI"
                }
            ]
        }, 
        {
            "name": "X86CPUFeatureWordInfo", 
            "type": "Type", 
            "data": [
                {
                    "name": "*cpuid-input-ecx", 
                    "type": "int"
                }, 
                {
                    "name": "cpuid-register", 
                    "type": "X86CPURegister32"
                }, 
                {
                    "name": "cpuid-input-eax", 
                    "type": "int"
                }, 
                {
                    "name": "features", 
                    "type": "int"
                }
            ]
        }, 
        {
            "name": "DataObject", 
            "type": "Type", 
            "data": [
                {
                    "name": "*data", 
                    "data": [
                        {
                            "type": "DataObject"
                        }
                    ]
                }, 
                {
                    "name": "*type", 
                    "type": "str"
                }, 
                {
                    "name": "*name", 
                    "type": "str"
                }
            ]
        }, 
        {
            "name": "SchemaMetatype", 
            "type": "Enumeration", 
            "data": [
                {
                    "type": "Command"
                }, 
                {
                    "type": "Type"
                }, 
                {
                    "type": "Enumeration"
                }, 
                {
                    "type": "Union"
                }, 
                {
                    "type": "Event"
                }
            ]
        }, 
        {
            "name": "SchemaData", 
            "type": "Type", 
            "data": [
                {
                    "name": "*data", 
                    "data": [
                        {
                            "type": "DataObject"
                        }
                    ]
                }, 
                {
                    "name": "name", 
                    "type": "str"
                }, 
                {
                    "name": "*returns", 
                    "data": [
                        {
                            "type": "DataObject"
                        }
                    ]
                }, 
                {
                    "name": "type", 
                    "type": "SchemaMetatype"
                }
            ]
        }, 
        {
            "name": "query-qmp-schema", 
            "type": "Command"
        }
    ]
}


  reply	other threads:[~2013-06-19 12:49 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 [this message]
2013-06-20 10:16   ` Amos Kong
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=20130619124914.GA11095@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).