Annotation of qemu/qapi-schema.json, revision 1.1.1.1

1.1       root        1: # -*- Mode: Python -*-
                      2: #
                      3: # QAPI Schema
                      4: 
                      5: ##
                      6: # @NameInfo:
                      7: #
                      8: # Guest name information.
                      9: #
                     10: # @name: #optional The name of the guest
                     11: #
                     12: # Since 0.14.0
                     13: ##
                     14: { 'type': 'NameInfo', 'data': {'*name': 'str'} }
                     15: 
                     16: ##
                     17: # @query-name:
                     18: #
                     19: # Return the name information of a guest.
                     20: #
                     21: # Returns: @NameInfo of the guest
                     22: #
                     23: # Since 0.14.0
                     24: ##
                     25: { 'command': 'query-name', 'returns': 'NameInfo' }
                     26: 
                     27: ##
                     28: # @VersionInfo:
                     29: #
                     30: # A description of QEMU's version.
                     31: #
                     32: # @qemu.major:  The major version of QEMU
                     33: #
                     34: # @qemu.minor:  The minor version of QEMU
                     35: #
                     36: # @qemu.micro:  The micro version of QEMU.  By current convention, a micro
                     37: #               version of 50 signifies a development branch.  A micro version
                     38: #               greater than or equal to 90 signifies a release candidate for
                     39: #               the next minor version.  A micro version of less than 50
                     40: #               signifies a stable release.
                     41: #
                     42: # @package:     QEMU will always set this field to an empty string.  Downstream
                     43: #               versions of QEMU should set this to a non-empty string.  The
                     44: #               exact format depends on the downstream however it highly
                     45: #               recommended that a unique name is used.
                     46: #
                     47: # Since: 0.14.0
                     48: ##
                     49: { 'type': 'VersionInfo',
                     50:   'data': {'qemu': {'major': 'int', 'minor': 'int', 'micro': 'int'},
                     51:            'package': 'str'} }
                     52: 
                     53: ##
                     54: # @query-version:
                     55: #
                     56: # Returns the current version of QEMU.
                     57: #
                     58: # Returns:  A @VersionInfo object describing the current version of QEMU.
                     59: #
                     60: # Since: 0.14.0
                     61: ##
                     62: { 'command': 'query-version', 'returns': 'VersionInfo' }
                     63: 
                     64: ##
                     65: # @KvmInfo:
                     66: #
                     67: # Information about support for KVM acceleration
                     68: #
                     69: # @enabled: true if KVM acceleration is active
                     70: #
                     71: # @present: true if KVM acceleration is built into this executable
                     72: #
                     73: # Since: 0.14.0
                     74: ##
                     75: { 'type': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
                     76: 
                     77: ##
                     78: # @query-kvm:
                     79: #
                     80: # Returns information about KVM acceleration
                     81: #
                     82: # Returns: @KvmInfo
                     83: #
                     84: # Since: 0.14.0
                     85: ##
                     86: { 'command': 'query-kvm', 'returns': 'KvmInfo' }
                     87: 
                     88: ##
                     89: # @RunState
                     90: #
                     91: # An enumation of VM run states.
                     92: #
                     93: # @debug: QEMU is running on a debugger
                     94: #
                     95: # @inmigrate: guest is paused waiting for an incoming migration
                     96: #
                     97: # @internal-error: An internal error that prevents further guest execution
                     98: # has occurred
                     99: #
                    100: # @io-error: the last IOP has failed and the device is configured to pause
                    101: # on I/O errors
                    102: #
                    103: # @paused: guest has been paused via the 'stop' command
                    104: #
                    105: # @postmigrate: guest is paused following a successful 'migrate'
                    106: #
                    107: # @prelaunch: QEMU was started with -S and guest has not started
                    108: #
                    109: # @finish-migrate: guest is paused to finish the migration process
                    110: #
                    111: # @restore-vm: guest is paused to restore VM state
                    112: #
                    113: # @running: guest is actively running
                    114: #
                    115: # @save-vm: guest is paused to save the VM state
                    116: #
                    117: # @shutdown: guest is shut down (and -no-shutdown is in use)
                    118: #
                    119: # @watchdog: the watchdog action is configured to pause and has been triggered
                    120: ##
                    121: { 'enum': 'RunState',
                    122:   'data': [ 'debug', 'inmigrate', 'internal-error', 'io-error', 'paused',
                    123:             'postmigrate', 'prelaunch', 'finish-migrate', 'restore-vm',
                    124:             'running', 'save-vm', 'shutdown', 'watchdog' ] }
                    125: 
                    126: ##
                    127: # @StatusInfo:
                    128: #
                    129: # Information about VCPU run state
                    130: #
                    131: # @running: true if all VCPUs are runnable, false if not runnable
                    132: #
                    133: # @singlestep: true if VCPUs are in single-step mode
                    134: #
                    135: # @status: the virtual machine @RunState
                    136: #
                    137: # Since:  0.14.0
                    138: #
                    139: # Notes: @singlestep is enabled through the GDB stub
                    140: ##
                    141: { 'type': 'StatusInfo',
                    142:   'data': {'running': 'bool', 'singlestep': 'bool', 'status': 'RunState'} }
                    143: 
                    144: ##
                    145: # @query-status:
                    146: #
                    147: # Query the run status of all VCPUs
                    148: #
                    149: # Returns: @StatusInfo reflecting all VCPUs
                    150: #
                    151: # Since:  0.14.0
                    152: ##
                    153: { 'command': 'query-status', 'returns': 'StatusInfo' }
                    154: 
                    155: ##
                    156: # @UuidInfo:
                    157: #
                    158: # Guest UUID information.
                    159: #
                    160: # @UUID: the UUID of the guest
                    161: #
                    162: # Since: 0.14.0
                    163: #
                    164: # Notes: If no UUID was specified for the guest, a null UUID is returned.
                    165: ##
                    166: { 'type': 'UuidInfo', 'data': {'UUID': 'str'} }
                    167: 
                    168: ##
                    169: # @query-uuid:
                    170: #
                    171: # Query the guest UUID information.
                    172: #
                    173: # Returns: The @UuidInfo for the guest
                    174: #
                    175: # Since 0.14.0
                    176: ##
                    177: { 'command': 'query-uuid', 'returns': 'UuidInfo' }
                    178: 
                    179: ##
                    180: # @ChardevInfo:
                    181: #
                    182: # Information about a character device.
                    183: #
                    184: # @label: the label of the character device
                    185: #
                    186: # @filename: the filename of the character device
                    187: #
                    188: # Notes: @filename is encoded using the QEMU command line character device
                    189: #        encoding.  See the QEMU man page for details.
                    190: #
                    191: # Since: 0.14.0
                    192: ##
                    193: { 'type': 'ChardevInfo', 'data': {'label': 'str', 'filename': 'str'} }
                    194: 
                    195: ##
                    196: # @query-chardev:
                    197: #
                    198: # Returns information about current character devices.
                    199: #
                    200: # Returns: a list of @ChardevInfo
                    201: #
                    202: # Since: 0.14.0
                    203: ##
                    204: { 'command': 'query-chardev', 'returns': ['ChardevInfo'] }
                    205: 
                    206: ##
                    207: # @CommandInfo:
                    208: #
                    209: # Information about a QMP command
                    210: #
                    211: # @name: The command name
                    212: #
                    213: # Since: 0.14.0
                    214: ##
                    215: { 'type': 'CommandInfo', 'data': {'name': 'str'} }
                    216: 
                    217: ##
                    218: # @query-commands:
                    219: #
                    220: # Return a list of supported QMP commands by this server
                    221: #
                    222: # Returns: A list of @CommandInfo for all supported commands
                    223: #
                    224: # Since: 0.14.0
                    225: ##
                    226: { 'command': 'query-commands', 'returns': ['CommandInfo'] }
                    227: 
                    228: ##
                    229: # @MigrationStats
                    230: #
                    231: # Detailed migration status.
                    232: #
                    233: # @transferred: amount of bytes already transferred to the target VM
                    234: #
                    235: # @remaining: amount of bytes remaining to be transferred to the target VM
                    236: #
                    237: # @total: total amount of bytes involved in the migration process
                    238: #
                    239: # Since: 0.14.0.
                    240: ##
                    241: { 'type': 'MigrationStats',
                    242:   'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' } }
                    243: 
                    244: ##
                    245: # @MigrationInfo
                    246: #
                    247: # Information about current migration process.
                    248: #
                    249: # @status: #optional string describing the current migration status.
                    250: #          As of 0.14.0 this can be 'active', 'completed', 'failed' or
                    251: #          'cancelled'. If this field is not returned, no migration process
                    252: #          has been initiated
                    253: #
                    254: # @ram: #optional @MigrationStats containing detailed migration status,
                    255: #       only returned if status is 'active'
                    256: #
                    257: # @disk: #optional @MigrationStats containing detailed disk migration
                    258: #        status, only returned if status is 'active' and it is a block
                    259: #        migration
                    260: #
                    261: # Since: 0.14.0
                    262: ##
                    263: { 'type': 'MigrationInfo',
                    264:   'data': {'*status': 'str', '*ram': 'MigrationStats',
                    265:            '*disk': 'MigrationStats'} }
                    266: 
                    267: ##
                    268: # @query-migrate
                    269: #
                    270: # Returns information about current migration process.
                    271: #
                    272: # Returns: @MigrationInfo
                    273: #
                    274: # Since: 0.14.0
                    275: ##
                    276: { 'command': 'query-migrate', 'returns': 'MigrationInfo' }
                    277: 
                    278: ##
                    279: # @MouseInfo:
                    280: #
                    281: # Information about a mouse device.
                    282: #
                    283: # @name: the name of the mouse device
                    284: #
                    285: # @index: the index of the mouse device
                    286: #
                    287: # @current: true if this device is currently receiving mouse events
                    288: #
                    289: # @absolute: true if this device supports absolute coordinates as input
                    290: #
                    291: # Since: 0.14.0
                    292: ##
                    293: { 'type': 'MouseInfo',
                    294:   'data': {'name': 'str', 'index': 'int', 'current': 'bool',
                    295:            'absolute': 'bool'} }
                    296: 
                    297: ##
                    298: # @query-mice:
                    299: #
                    300: # Returns information about each active mouse device
                    301: #
                    302: # Returns: a list of @MouseInfo for each device
                    303: #
                    304: # Since: 0.14.0
                    305: ##
                    306: { 'command': 'query-mice', 'returns': ['MouseInfo'] }
                    307: 
                    308: ##
                    309: # @CpuInfo:
                    310: #
                    311: # Information about a virtual CPU
                    312: #
                    313: # @CPU: the index of the virtual CPU
                    314: #
                    315: # @current: this only exists for backwards compatible and should be ignored
                    316: # 
                    317: # @halted: true if the virtual CPU is in the halt state.  Halt usually refers
                    318: #          to a processor specific low power mode.
                    319: #
                    320: # @pc: #optional If the target is i386 or x86_64, this is the 64-bit instruction
                    321: #                pointer.
                    322: #                If the target is Sparc, this is the PC component of the
                    323: #                instruction pointer.
                    324: #
                    325: # @nip: #optional If the target is PPC, the instruction pointer
                    326: #
                    327: # @npc: #optional If the target is Sparc, the NPC component of the instruction
                    328: #                 pointer
                    329: #
                    330: # @PC: #optional If the target is MIPS, the instruction pointer
                    331: #
                    332: # @thread_id: ID of the underlying host thread
                    333: #
                    334: # Since: 0.14.0
                    335: #
                    336: # Notes: @halted is a transient state that changes frequently.  By the time the
                    337: #        data is sent to the client, the guest may no longer be halted.
                    338: ##
                    339: { 'type': 'CpuInfo',
                    340:   'data': {'CPU': 'int', 'current': 'bool', 'halted': 'bool', '*pc': 'int',
                    341:            '*nip': 'int', '*npc': 'int', '*PC': 'int', 'thread_id': 'int'} }
                    342: 
                    343: ##
                    344: # @query-cpus:
                    345: #
                    346: # Returns a list of information about each virtual CPU.
                    347: #
                    348: # Returns: a list of @CpuInfo for each virtual CPU
                    349: #
                    350: # Since: 0.14.0
                    351: ##
                    352: { 'command': 'query-cpus', 'returns': ['CpuInfo'] }
                    353: 
                    354: ##
                    355: # @BlockDeviceInfo:
                    356: #
                    357: # Information about the backing device for a block device.
                    358: #
                    359: # @file: the filename of the backing device
                    360: #
                    361: # @ro: true if the backing device was open read-only
                    362: #
                    363: # @drv: the name of the block format used to open the backing device. As of
                    364: #       0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
                    365: #       'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device',
                    366: #       'host_floppy', 'http', 'https', 'nbd', 'parallels', 'qcow',
                    367: #       'qcow2', 'raw', 'tftp', 'vdi', 'vmdk', 'vpc', 'vvfat'
                    368: #
                    369: # @backing_file: #optional the name of the backing file (for copy-on-write)
                    370: #
                    371: # @encrypted: true if the backing device is encrypted
                    372: #
                    373: # Since: 0.14.0
                    374: #
                    375: # Notes: This interface is only found in @BlockInfo.
                    376: ##
                    377: { 'type': 'BlockDeviceInfo',
                    378:   'data': { 'file': 'str', 'ro': 'bool', 'drv': 'str',
                    379:             '*backing_file': 'str', 'encrypted': 'bool' } }
                    380: 
                    381: ##
                    382: # @BlockDeviceIoStatus:
                    383: #
                    384: # An enumeration of block device I/O status.
                    385: #
                    386: # @ok: The last I/O operation has succeeded
                    387: #
                    388: # @failed: The last I/O operation has failed
                    389: #
                    390: # @nospace: The last I/O operation has failed due to a no-space condition
                    391: #
                    392: # Since: 1.0
                    393: ##
                    394: { 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'failed', 'nospace' ] }
                    395: 
                    396: ##
                    397: # @BlockInfo:
                    398: #
                    399: # Block device information.  This structure describes a virtual device and
                    400: # the backing device associated with it.
                    401: #
                    402: # @device: The device name associated with the virtual device.
                    403: #
                    404: # @type: This field is returned only for compatibility reasons, it should
                    405: #        not be used (always returns 'unknown')
                    406: #
                    407: # @removable: True if the device supports removable media.
                    408: #
                    409: # @locked: True if the guest has locked this device from having its media
                    410: #          removed
                    411: #
                    412: # @tray_open: #optional True if the device has a tray and it is open
                    413: #             (only present if removable is true)
                    414: #
                    415: # @io-status: #optional @BlockDeviceIoStatus. Only present if the device
                    416: #             supports it and the VM is configured to stop on errors
                    417: #
                    418: # @inserted: #optional @BlockDeviceInfo describing the device if media is
                    419: #            present
                    420: #
                    421: # Since:  0.14.0
                    422: ##
                    423: { 'type': 'BlockInfo',
                    424:   'data': {'device': 'str', 'type': 'str', 'removable': 'bool',
                    425:            'locked': 'bool', '*inserted': 'BlockDeviceInfo',
                    426:            '*tray_open': 'bool', '*io-status': 'BlockDeviceIoStatus'} }
                    427: 
                    428: ##
                    429: # @query-block:
                    430: #
                    431: # Get a list of BlockInfo for all virtual block devices.
                    432: #
                    433: # Returns: a list of @BlockInfo describing each virtual block device
                    434: #
                    435: # Since: 0.14.0
                    436: ##
                    437: { 'command': 'query-block', 'returns': ['BlockInfo'] }
                    438: 
                    439: ##
                    440: # @BlockDeviceStats:
                    441: #
                    442: # Statistics of a virtual block device or a block backing device.
                    443: #
                    444: # @rd_bytes:      The number of bytes read by the device.
                    445: #
                    446: # @wr_bytes:      The number of bytes written by the device.
                    447: #
                    448: # @rd_operations: The number of read operations performed by the device.
                    449: #
                    450: # @wr_operations: The number of write operations performed by the device.
                    451: #
                    452: # @flush_operations: The number of cache flush operations performed by the
                    453: #                    device (since 0.15.0)
                    454: #
                    455: # @flush_total_time_ns: Total time spend on cache flushes in nano-seconds
                    456: #                       (since 0.15.0).
                    457: #
                    458: # @wr_total_time_ns: Total time spend on writes in nano-seconds (since 0.15.0).
                    459: #
                    460: # @rd_total_time_ns: Total_time_spend on reads in nano-seconds (since 0.15.0).
                    461: #
                    462: # @wr_highest_offset: The offset after the greatest byte written to the
                    463: #                     device.  The intended use of this information is for
                    464: #                     growable sparse files (like qcow2) that are used on top
                    465: #                     of a physical device.
                    466: #
                    467: # Since: 0.14.0
                    468: ##
                    469: { 'type': 'BlockDeviceStats',
                    470:   'data': {'rd_bytes': 'int', 'wr_bytes': 'int', 'rd_operations': 'int',
                    471:            'wr_operations': 'int', 'flush_operations': 'int',
                    472:            'flush_total_time_ns': 'int', 'wr_total_time_ns': 'int',
                    473:            'rd_total_time_ns': 'int', 'wr_highest_offset': 'int' } }
                    474: 
                    475: ##
                    476: # @BlockStats:
                    477: #
                    478: # Statistics of a virtual block device or a block backing device.
                    479: #
                    480: # @device: #optional If the stats are for a virtual block device, the name
                    481: #          corresponding to the virtual block device.
                    482: #
                    483: # @stats:  A @BlockDeviceStats for the device.
                    484: #
                    485: # @parent: #optional This may point to the backing block device if this is a
                    486: #          a virtual block device.  If it's a backing block, this will point
                    487: #          to the backing file is one is present.
                    488: #
                    489: # Since: 0.14.0
                    490: ##
                    491: { 'type': 'BlockStats',
                    492:   'data': {'*device': 'str', 'stats': 'BlockDeviceStats',
                    493:            '*parent': 'BlockStats'} }
                    494: 
                    495: ##
                    496: # @query-blockstats:
                    497: #
                    498: # Query the @BlockStats for all virtual block devices.
                    499: #
                    500: # Returns: A list of @BlockStats for each virtual block devices.
                    501: #
                    502: # Since: 0.14.0
                    503: ##
                    504: { 'command': 'query-blockstats', 'returns': ['BlockStats'] }
                    505: 
                    506: ##
                    507: # @VncClientInfo:
                    508: #
                    509: # Information about a connected VNC client.
                    510: #
                    511: # @host: The host name of the client.  QEMU tries to resolve this to a DNS name
                    512: #        when possible.
                    513: #
                    514: # @family: 'ipv6' if the client is connected via IPv6 and TCP
                    515: #          'ipv4' if the client is connected via IPv4 and TCP
                    516: #          'unix' if the client is connected via a unix domain socket
                    517: #          'unknown' otherwise
                    518: #
                    519: # @service: The service name of the client's port.  This may depends on the
                    520: #           host system's service database so symbolic names should not be
                    521: #           relied on.
                    522: #
                    523: # @x509_dname: #optional If x509 authentication is in use, the Distinguished
                    524: #              Name of the client.
                    525: #
                    526: # @sasl_username: #optional If SASL authentication is in use, the SASL username
                    527: #                 used for authentication.
                    528: #
                    529: # Since: 0.14.0
                    530: ##
                    531: { 'type': 'VncClientInfo',
                    532:   'data': {'host': 'str', 'family': 'str', 'service': 'str',
                    533:            '*x509_dname': 'str', '*sasl_username': 'str'} }
                    534: 
                    535: ##
                    536: # @VncInfo:
                    537: #
                    538: # Information about the VNC session.
                    539: #
                    540: # @enabled: true if the VNC server is enabled, false otherwise
                    541: #
                    542: # @host: #optional The hostname the VNC server is bound to.  This depends on
                    543: #        the name resolution on the host and may be an IP address.
                    544: #
                    545: # @family: #optional 'ipv6' if the host is listening for IPv6 connections
                    546: #                    'ipv4' if the host is listening for IPv4 connections
                    547: #                    'unix' if the host is listening on a unix domain socket
                    548: #                    'unknown' otherwise
                    549: #
                    550: # @service: #optional The service name of the server's port.  This may depends
                    551: #           on the host system's service database so symbolic names should not
                    552: #           be relied on.
                    553: #
                    554: # @auth: #optional the current authentication type used by the server
                    555: #        'none' if no authentication is being used
                    556: #        'vnc' if VNC authentication is being used
                    557: #        'vencrypt+plain' if VEncrypt is used with plain text authentication
                    558: #        'vencrypt+tls+none' if VEncrypt is used with TLS and no authentication
                    559: #        'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC authentication
                    560: #        'vencrypt+tls+plain' if VEncrypt is used with TLS and plain text auth
                    561: #        'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
                    562: #        'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
                    563: #        'vencrypt+x509+plain' if VEncrypt is used with x509 and plain text auth
                    564: #        'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
                    565: #        'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL auth
                    566: #
                    567: # @clients: a list of @VncClientInfo of all currently connected clients
                    568: #
                    569: # Since: 0.14.0
                    570: ##
                    571: { 'type': 'VncInfo',
                    572:   'data': {'enabled': 'bool', '*host': 'str', '*family': 'str',
                    573:            '*service': 'str', '*auth': 'str', '*clients': ['VncClientInfo']} }
                    574: 
                    575: ##
                    576: # @query-vnc:
                    577: #
                    578: # Returns information about the current VNC server
                    579: #
                    580: # Returns: @VncInfo
                    581: #          If VNC support is not compiled in, FeatureDisabled
                    582: #
                    583: # Since: 0.14.0
                    584: ##
                    585: { 'command': 'query-vnc', 'returns': 'VncInfo' }
                    586: 
                    587: ##
                    588: # @SpiceChannel
                    589: #
                    590: # Information about a SPICE client channel.
                    591: #
                    592: # @host: The host name of the client.  QEMU tries to resolve this to a DNS name
                    593: #        when possible.
                    594: #
                    595: # @family: 'ipv6' if the client is connected via IPv6 and TCP
                    596: #          'ipv4' if the client is connected via IPv4 and TCP
                    597: #          'unix' if the client is connected via a unix domain socket
                    598: #          'unknown' otherwise
                    599: #
                    600: # @port: The client's port number.
                    601: #
                    602: # @connection-id: SPICE connection id number.  All channels with the same id
                    603: #                 belong to the same SPICE session.
                    604: #
                    605: # @connection-type: SPICE channel type number.  "1" is the main control channel,
                    606: #                   filter for this one if you want track spice sessions only
                    607: #
                    608: # @channel-id: SPICE channel ID number.  Usually "0", might be different needed
                    609: #              when multiple channels of the same type exist, such as multiple
                    610: #              display channels in a multihead setup
                    611: #
                    612: # @tls: true if the channel is encrypted, false otherwise.
                    613: #
                    614: # Since: 0.14.0
                    615: ##
                    616: { 'type': 'SpiceChannel',
                    617:   'data': {'host': 'str', 'family': 'str', 'port': 'str',
                    618:            'connection-id': 'int', 'channel-type': 'int', 'channel-id': 'int',
                    619:            'tls': 'bool'} }
                    620: 
                    621: ##
                    622: # @SpiceInfo
                    623: #
                    624: # Information about the SPICE session.
                    625: # 
                    626: # @enabled: true if the SPICE server is enabled, false otherwise
                    627: #
                    628: # @host: #optional The hostname the SPICE server is bound to.  This depends on
                    629: #        the name resolution on the host and may be an IP address.
                    630: #
                    631: # @port: #optional The SPICE server's port number.
                    632: #
                    633: # @compiled-version: #optional SPICE server version.
                    634: #
                    635: # @tls-port: #optional The SPICE server's TLS port number.
                    636: #
                    637: # @auth: #optional the current authentication type used by the server
                    638: #        'none' if no authentication is being used
                    639: #        'spice' (TODO: describe)
                    640: #
                    641: # @channels: a list of @SpiceChannel for each active spice channel
                    642: #
                    643: # Since: 0.14.0
                    644: ##
                    645: { 'type': 'SpiceInfo',
                    646:   'data': {'enabled': 'bool', '*host': 'str', '*port': 'int',
                    647:            '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str',
                    648:            '*channels': ['SpiceChannel']} }
                    649: 
                    650: ##
                    651: # @query-spice
                    652: #
                    653: # Returns information about the current SPICE server
                    654: #
                    655: # Returns: @SpiceInfo
                    656: #
                    657: # Since: 0.14.0
                    658: ##
                    659: { 'command': 'query-spice', 'returns': 'SpiceInfo' }
                    660: 
                    661: ##
                    662: # @BalloonInfo:
                    663: #
                    664: # Information about the guest balloon device.
                    665: #
                    666: # @actual: the number of bytes the balloon currently contains
                    667: #
                    668: # @mem_swapped_in: #optional number of pages swapped in within the guest
                    669: #
                    670: # @mem_swapped_out: #optional number of pages swapped out within the guest
                    671: #
                    672: # @major_page_faults: #optional number of major page faults within the guest
                    673: #
                    674: # @minor_page_faults: #optional number of minor page faults within the guest
                    675: #
                    676: # @free_mem: #optional amount of memory (in bytes) free in the guest
                    677: #
                    678: # @total_mem: #optional amount of memory (in bytes) visible to the guest
                    679: #
                    680: # Since: 0.14.0
                    681: #
                    682: # Notes: all current versions of QEMU do not fill out optional information in
                    683: #        this structure.
                    684: ##
                    685: { 'type': 'BalloonInfo',
                    686:   'data': {'actual': 'int', '*mem_swapped_in': 'int',
                    687:            '*mem_swapped_out': 'int', '*major_page_faults': 'int',
                    688:            '*minor_page_faults': 'int', '*free_mem': 'int',
                    689:            '*total_mem': 'int'} }
                    690: 
                    691: ##
                    692: # @query-balloon:
                    693: #
                    694: # Return information about the balloon device.
                    695: #
                    696: # Returns: @BalloonInfo on success
                    697: #          If the balloon driver is enabled but not functional because the KVM
                    698: #          kernel module cannot support it, KvmMissingCap
                    699: #          If no balloon device is present, DeviceNotActive
                    700: #
                    701: # Since: 0.14.0
                    702: ##
                    703: { 'command': 'query-balloon', 'returns': 'BalloonInfo' }
                    704: 
                    705: ##
                    706: # @PciMemoryRange:
                    707: #
                    708: # A PCI device memory region
                    709: #
                    710: # @base: the starting address (guest physical)
                    711: #
                    712: # @limit: the ending address (guest physical)
                    713: #
                    714: # Since: 0.14.0
                    715: ##
                    716: { 'type': 'PciMemoryRange', 'data': {'base': 'int', 'limit': 'int'} }
                    717: 
                    718: ##
                    719: # @PciMemoryRegion
                    720: #
                    721: # Information about a PCI device I/O region.
                    722: #
                    723: # @bar: the index of the Base Address Register for this region
                    724: #
                    725: # @type: 'io' if the region is a PIO region
                    726: #        'memory' if the region is a MMIO region
                    727: #
                    728: # @prefetch: #optional if @type is 'memory', true if the memory is prefetchable
                    729: #
                    730: # @mem_type_64: #optional if @type is 'memory', true if the BAR is 64-bit
                    731: #
                    732: # Since: 0.14.0
                    733: ##
                    734: { 'type': 'PciMemoryRegion',
                    735:   'data': {'bar': 'int', 'type': 'str', 'address': 'int', 'size': 'int',
                    736:            '*prefetch': 'bool', '*mem_type_64': 'bool' } }
                    737: 
                    738: ##
                    739: # @PciBridgeInfo:
                    740: #
                    741: # Information about a PCI Bridge device
                    742: #
                    743: # @bus.number: primary bus interface number.  This should be the number of the
                    744: #              bus the device resides on.
                    745: #
                    746: # @bus.secondary: secondary bus interface number.  This is the number of the
                    747: #                 main bus for the bridge
                    748: #
                    749: # @bus.subordinate: This is the highest number bus that resides below the
                    750: #                   bridge.
                    751: #
                    752: # @bus.io_range: The PIO range for all devices on this bridge
                    753: #
                    754: # @bus.memory_range: The MMIO range for all devices on this bridge
                    755: #
                    756: # @bus.prefetchable_range: The range of prefetchable MMIO for all devices on
                    757: #                          this bridge
                    758: #
                    759: # @devices: a list of @PciDeviceInfo for each device on this bridge
                    760: #
                    761: # Since: 0.14.0
                    762: ##
                    763: { 'type': 'PciBridgeInfo',
                    764:   'data': {'bus': { 'number': 'int', 'secondary': 'int', 'subordinate': 'int',
                    765:                     'io_range': 'PciMemoryRange',
                    766:                     'memory_range': 'PciMemoryRange',
                    767:                     'prefetchable_range': 'PciMemoryRange' },
                    768:            '*devices': ['PciDeviceInfo']} }
                    769: 
                    770: ##
                    771: # @PciDeviceInfo:
                    772: #
                    773: # Information about a PCI device
                    774: #
                    775: # @bus: the bus number of the device
                    776: #
                    777: # @slot: the slot the device is located in
                    778: #
                    779: # @function: the function of the slot used by the device
                    780: #
                    781: # @class_info.desc: #optional a string description of the device's class
                    782: #
                    783: # @class_info.class: the class code of the device
                    784: #
                    785: # @id.device: the PCI device id
                    786: #
                    787: # @id.vendor: the PCI vendor id
                    788: #
                    789: # @irq: #optional if an IRQ is assigned to the device, the IRQ number
                    790: #
                    791: # @qdev_id: the device name of the PCI device
                    792: #
                    793: # @pci_bridge: if the device is a PCI bridge, the bridge information
                    794: #
                    795: # @regions: a list of the PCI I/O regions associated with the device
                    796: #
                    797: # Notes: the contents of @class_info.desc are not stable and should only be
                    798: #        treated as informational.
                    799: #
                    800: # Since: 0.14.0
                    801: ##
                    802: { 'type': 'PciDeviceInfo',
                    803:   'data': {'bus': 'int', 'slot': 'int', 'function': 'int',
                    804:            'class_info': {'*desc': 'str', 'class': 'int'},
                    805:            'id': {'device': 'int', 'vendor': 'int'},
                    806:            '*irq': 'int', 'qdev_id': 'str', '*pci_bridge': 'PciBridgeInfo',
                    807:            'regions': ['PciMemoryRegion']} }
                    808: 
                    809: ##
                    810: # @PciInfo:
                    811: #
                    812: # Information about a PCI bus
                    813: #
                    814: # @bus: the bus index
                    815: #
                    816: # @devices: a list of devices on this bus
                    817: #
                    818: # Since: 0.14.0
                    819: ##
                    820: { 'type': 'PciInfo', 'data': {'bus': 'int', 'devices': ['PciDeviceInfo']} }
                    821: 
                    822: ##
                    823: # @query-pci:
                    824: #
                    825: # Return information about the PCI bus topology of the guest.
                    826: #
                    827: # Returns: a list of @PciInfo for each PCI bus
                    828: #
                    829: # Since: 0.14.0
                    830: ##
                    831: { 'command': 'query-pci', 'returns': ['PciInfo'] }
                    832: 
                    833: ##
                    834: # @quit:
                    835: #
                    836: # This command will cause the QEMU process to exit gracefully.  While every
                    837: # attempt is made to send the QMP response before terminating, this is not
                    838: # guaranteed.  When using this interface, a premature EOF would not be
                    839: # unexpected.
                    840: #
                    841: # Since: 0.14.0
                    842: ##
                    843: { 'command': 'quit' }
                    844: 
                    845: ##
                    846: # @stop:
                    847: #
                    848: # Stop all guest VCPU execution.
                    849: #
                    850: # Since:  0.14.0
                    851: #
                    852: # Notes:  This function will succeed even if the guest is already in the stopped
                    853: #         state
                    854: ##
                    855: { 'command': 'stop' }
                    856: 
                    857: ##
                    858: # @system_reset:
                    859: #
                    860: # Performs a hard reset of a guest.
                    861: #
                    862: # Since: 0.14.0
                    863: ##
                    864: { 'command': 'system_reset' }
                    865: 
                    866: ##
                    867: # @system_powerdown:
                    868: #
                    869: # Requests that a guest perform a powerdown operation.
                    870: #
                    871: # Since: 0.14.0
                    872: #
                    873: # Notes: A guest may or may not respond to this command.  This command
                    874: #        returning does not indicate that a guest has accepted the request or
                    875: #        that it has shut down.  Many guests will respond to this command by
                    876: #        prompting the user in some way.
                    877: ##
                    878: { 'command': 'system_powerdown' }
                    879: 
                    880: ##
                    881: # @cpu:
                    882: #
                    883: # This command is a nop that is only provided for the purposes of compatibility.
                    884: #
                    885: # Since: 0.14.0
                    886: #
                    887: # Notes: Do not use this command.
                    888: ##
                    889: { 'command': 'cpu', 'data': {'index': 'int'} }

unix.superglobalmegacorp.com