1112ed241SMarkus Armbruster# -*- Mode: Python -*- 2f7160f32SAndrea Bolognani# vim: filetype=python 3112ed241SMarkus Armbruster# 4112ed241SMarkus Armbruster 5112ed241SMarkus Armbruster## 6112ed241SMarkus Armbruster# = Miscellanea 7112ed241SMarkus Armbruster## 8112ed241SMarkus Armbruster 9b47aa7b3SLaszlo Ersek{ 'include': 'common.json' } 10b47aa7b3SLaszlo Ersek 11112ed241SMarkus Armbruster## 12112ed241SMarkus Armbruster# @add_client: 13112ed241SMarkus Armbruster# 14a937b6aaSMarkus Armbruster# Allow client connections for VNC, Spice and socket based character 15a937b6aaSMarkus Armbruster# devices to be passed in to QEMU via SCM_RIGHTS. 16112ed241SMarkus Armbruster# 17a937b6aaSMarkus Armbruster# If the FD associated with @fdname is not a socket, the command will 18a937b6aaSMarkus Armbruster# fail and the FD will be closed. 19bf5de8c5SMarc-André Lureau# 20a937b6aaSMarkus Armbruster# @protocol: protocol name. Valid names are "vnc", "spice", 21ff62c210SMarkus Armbruster# "@dbus-display" or the name of a character device (e.g. from 22a937b6aaSMarkus Armbruster# -chardev id=XXXX) 23112ed241SMarkus Armbruster# 24112ed241SMarkus Armbruster# @fdname: file descriptor name previously passed via 'getfd' command 25112ed241SMarkus Armbruster# 26a937b6aaSMarkus Armbruster# @skipauth: whether to skip authentication. Only applies to "vnc" 27a937b6aaSMarkus Armbruster# and "spice" protocols 28112ed241SMarkus Armbruster# 29a937b6aaSMarkus Armbruster# @tls: whether to perform TLS. Only applies to the "spice" protocol 30112ed241SMarkus Armbruster# 319bc6e893SMarkus Armbruster# Since: 0.14 32112ed241SMarkus Armbruster# 3314b48aaaSJohn Snow# .. qmp-example:: 34112ed241SMarkus Armbruster# 35112ed241SMarkus Armbruster# -> { "execute": "add_client", "arguments": { "protocol": "vnc", 36112ed241SMarkus Armbruster# "fdname": "myclient" } } 37112ed241SMarkus Armbruster# <- { "return": {} } 38112ed241SMarkus Armbruster## 39112ed241SMarkus Armbruster{ 'command': 'add_client', 40112ed241SMarkus Armbruster 'data': { 'protocol': 'str', 'fdname': 'str', '*skipauth': 'bool', 41112ed241SMarkus Armbruster '*tls': 'bool' } } 42112ed241SMarkus Armbruster 43112ed241SMarkus Armbruster## 44112ed241SMarkus Armbruster# @NameInfo: 45112ed241SMarkus Armbruster# 46112ed241SMarkus Armbruster# Guest name information. 47112ed241SMarkus Armbruster# 48112ed241SMarkus Armbruster# @name: The name of the guest 49112ed241SMarkus Armbruster# 509bc6e893SMarkus Armbruster# Since: 0.14 51112ed241SMarkus Armbruster## 52112ed241SMarkus Armbruster{ 'struct': 'NameInfo', 'data': {'*name': 'str'} } 53112ed241SMarkus Armbruster 54112ed241SMarkus Armbruster## 55112ed241SMarkus Armbruster# @query-name: 56112ed241SMarkus Armbruster# 57112ed241SMarkus Armbruster# Return the name information of a guest. 58112ed241SMarkus Armbruster# 59112ed241SMarkus Armbruster# Returns: @NameInfo of the guest 60112ed241SMarkus Armbruster# 619bc6e893SMarkus Armbruster# Since: 0.14 62112ed241SMarkus Armbruster# 6314b48aaaSJohn Snow# .. qmp-example:: 64112ed241SMarkus Armbruster# 65112ed241SMarkus Armbruster# -> { "execute": "query-name" } 66112ed241SMarkus Armbruster# <- { "return": { "name": "qemu-name" } } 67112ed241SMarkus Armbruster## 68a87706c8SIgor Mammedov{ 'command': 'query-name', 'returns': 'NameInfo', 'allow-preconfig': true } 69112ed241SMarkus Armbruster 70112ed241SMarkus Armbruster## 71112ed241SMarkus Armbruster# @IOThreadInfo: 72112ed241SMarkus Armbruster# 73112ed241SMarkus Armbruster# Information about an iothread 74112ed241SMarkus Armbruster# 75112ed241SMarkus Armbruster# @id: the identifier of the iothread 76112ed241SMarkus Armbruster# 77112ed241SMarkus Armbruster# @thread-id: ID of the underlying host thread 78112ed241SMarkus Armbruster# 79a937b6aaSMarkus Armbruster# @poll-max-ns: maximum polling time in ns, 0 means polling is 80a937b6aaSMarkus Armbruster# disabled (since 2.9) 81112ed241SMarkus Armbruster# 82a937b6aaSMarkus Armbruster# @poll-grow: how many ns will be added to polling time, 0 means that 83112ed241SMarkus Armbruster# it's not configured (since 2.9) 84112ed241SMarkus Armbruster# 85a937b6aaSMarkus Armbruster# @poll-shrink: how many ns will be removed from polling time, 0 means 86a937b6aaSMarkus Armbruster# that it's not configured (since 2.9) 87a937b6aaSMarkus Armbruster# 88a937b6aaSMarkus Armbruster# @aio-max-batch: maximum number of requests in a batch for the AIO 89a937b6aaSMarkus Armbruster# engine, 0 means that the engine will use its default (since 6.1) 901793ad02SStefano Garzarella# 91112ed241SMarkus Armbruster# Since: 2.0 92112ed241SMarkus Armbruster## 93112ed241SMarkus Armbruster{ 'struct': 'IOThreadInfo', 94112ed241SMarkus Armbruster 'data': {'id': 'str', 95112ed241SMarkus Armbruster 'thread-id': 'int', 96112ed241SMarkus Armbruster 'poll-max-ns': 'int', 97112ed241SMarkus Armbruster 'poll-grow': 'int', 981793ad02SStefano Garzarella 'poll-shrink': 'int', 991793ad02SStefano Garzarella 'aio-max-batch': 'int' } } 100112ed241SMarkus Armbruster 101112ed241SMarkus Armbruster## 102112ed241SMarkus Armbruster# @query-iothreads: 103112ed241SMarkus Armbruster# 104112ed241SMarkus Armbruster# Returns a list of information about each iothread. 105112ed241SMarkus Armbruster# 106d461c279SJohn Snow# .. note:: This list excludes the QEMU main loop thread, which is not 107*01bed0ffSMarkus Armbruster# declared using the ``-object iothread`` command-line option. It 108*01bed0ffSMarkus Armbruster# is always the main thread of the process. 109112ed241SMarkus Armbruster# 110112ed241SMarkus Armbruster# Returns: a list of @IOThreadInfo for each iothread 111112ed241SMarkus Armbruster# 112112ed241SMarkus Armbruster# Since: 2.0 113112ed241SMarkus Armbruster# 11414b48aaaSJohn Snow# .. qmp-example:: 115112ed241SMarkus Armbruster# 116112ed241SMarkus Armbruster# -> { "execute": "query-iothreads" } 117112ed241SMarkus Armbruster# <- { "return": [ 118112ed241SMarkus Armbruster# { 119112ed241SMarkus Armbruster# "id":"iothread0", 120112ed241SMarkus Armbruster# "thread-id":3134 121112ed241SMarkus Armbruster# }, 122112ed241SMarkus Armbruster# { 123112ed241SMarkus Armbruster# "id":"iothread1", 124112ed241SMarkus Armbruster# "thread-id":3135 125112ed241SMarkus Armbruster# } 126112ed241SMarkus Armbruster# ] 127112ed241SMarkus Armbruster# } 128112ed241SMarkus Armbruster## 129a87706c8SIgor Mammedov{ 'command': 'query-iothreads', 'returns': ['IOThreadInfo'], 130a87706c8SIgor Mammedov 'allow-preconfig': true } 131112ed241SMarkus Armbruster 132112ed241SMarkus Armbruster## 133112ed241SMarkus Armbruster# @stop: 134112ed241SMarkus Armbruster# 135b9ae473dSSteve Sistare# Stop guest VM execution. 136112ed241SMarkus Armbruster# 1379bc6e893SMarkus Armbruster# Since: 0.14 138112ed241SMarkus Armbruster# 139d461c279SJohn Snow# .. note:: This function will succeed even if the guest is already in 140d461c279SJohn Snow# the stopped state. In "inmigrate" state, it will ensure that the 141543ff13aSJohn Snow# guest remains paused once migration finishes, as if the ``-S`` 142543ff13aSJohn Snow# option was passed on the command line. 143112ed241SMarkus Armbruster# 144*01bed0ffSMarkus Armbruster# In the "suspended" state, it will completely stop the VM and 145*01bed0ffSMarkus Armbruster# cause a transition to the "paused" state. (Since 9.0) 146b9ae473dSSteve Sistare# 14714b48aaaSJohn Snow# .. qmp-example:: 148112ed241SMarkus Armbruster# 149112ed241SMarkus Armbruster# -> { "execute": "stop" } 150112ed241SMarkus Armbruster# <- { "return": {} } 151112ed241SMarkus Armbruster## 152112ed241SMarkus Armbruster{ 'command': 'stop' } 153112ed241SMarkus Armbruster 154112ed241SMarkus Armbruster## 155112ed241SMarkus Armbruster# @cont: 156112ed241SMarkus Armbruster# 157b9ae473dSSteve Sistare# Resume guest VM execution. 158112ed241SMarkus Armbruster# 1599bc6e893SMarkus Armbruster# Since: 0.14 160112ed241SMarkus Armbruster# 161*01bed0ffSMarkus Armbruster# .. note:: This command will succeed if the guest is currently 162*01bed0ffSMarkus Armbruster# running. It will also succeed if the guest is in the "inmigrate" 163*01bed0ffSMarkus Armbruster# state; in this case, the effect of the command is to make sure 164*01bed0ffSMarkus Armbruster# the guest starts once migration finishes, removing the effect of 165*01bed0ffSMarkus Armbruster# the ``-S`` command line option if it was passed. 166112ed241SMarkus Armbruster# 167b9ae473dSSteve Sistare# If the VM was previously suspended, and not been reset or woken, 168*01bed0ffSMarkus Armbruster# this command will transition back to the "suspended" state. 169*01bed0ffSMarkus Armbruster# (Since 9.0) 170b9ae473dSSteve Sistare# 17114b48aaaSJohn Snow# .. qmp-example:: 172112ed241SMarkus Armbruster# 173112ed241SMarkus Armbruster# -> { "execute": "cont" } 174112ed241SMarkus Armbruster# <- { "return": {} } 175112ed241SMarkus Armbruster## 176112ed241SMarkus Armbruster{ 'command': 'cont' } 177112ed241SMarkus Armbruster 178112ed241SMarkus Armbruster## 179361ac948SMarkus Armbruster# @x-exit-preconfig: 180047f7038SIgor Mammedov# 181047f7038SIgor Mammedov# Exit from "preconfig" state 182047f7038SIgor Mammedov# 183a937b6aaSMarkus Armbruster# This command makes QEMU exit the preconfig state and proceed with VM 184a937b6aaSMarkus Armbruster# initialization using configuration data provided on the command line 185a937b6aaSMarkus Armbruster# and via the QMP monitor during the preconfig state. The command is 186a937b6aaSMarkus Armbruster# only available during the preconfig state (i.e. when the --preconfig 187a937b6aaSMarkus Armbruster# command line option was in use). 188047f7038SIgor Mammedov# 1899fb49daaSMarkus Armbruster# Features: 190a937b6aaSMarkus Armbruster# 1919fb49daaSMarkus Armbruster# @unstable: This command is experimental. 1929fb49daaSMarkus Armbruster# 193433a4fdcSMarkus Armbruster# Since: 3.0 194047f7038SIgor Mammedov# 19514b48aaaSJohn Snow# .. qmp-example:: 196047f7038SIgor Mammedov# 197361ac948SMarkus Armbruster# -> { "execute": "x-exit-preconfig" } 198047f7038SIgor Mammedov# <- { "return": {} } 199047f7038SIgor Mammedov## 2009fb49daaSMarkus Armbruster{ 'command': 'x-exit-preconfig', 'allow-preconfig': true, 2019fb49daaSMarkus Armbruster 'features': [ 'unstable' ] } 202047f7038SIgor Mammedov 203047f7038SIgor Mammedov## 204112ed241SMarkus Armbruster# @human-monitor-command: 205112ed241SMarkus Armbruster# 206112ed241SMarkus Armbruster# Execute a command on the human monitor and return the output. 207112ed241SMarkus Armbruster# 208112ed241SMarkus Armbruster# @command-line: the command to execute in the human monitor 209112ed241SMarkus Armbruster# 210112ed241SMarkus Armbruster# @cpu-index: The CPU to use for commands that require an implicit CPU 211112ed241SMarkus Armbruster# 2125f76a7aaSPeter Krempa# Features: 213a937b6aaSMarkus Armbruster# 2145f76a7aaSPeter Krempa# @savevm-monitor-nodes: If present, HMP command savevm only snapshots 215a937b6aaSMarkus Armbruster# monitor-owned nodes if they have no parents. This allows the 216a937b6aaSMarkus Armbruster# use of 'savevm' with -blockdev. (since 4.2) 2175f76a7aaSPeter Krempa# 218112ed241SMarkus Armbruster# Returns: the output of the command as a string 219112ed241SMarkus Armbruster# 2209bc6e893SMarkus Armbruster# Since: 0.14 221112ed241SMarkus Armbruster# 222d461c279SJohn Snow# .. note:: This command only exists as a stop-gap. Its use is highly 223a937b6aaSMarkus Armbruster# discouraged. The semantics of this command are not guaranteed: 224d461c279SJohn Snow# this means that command names, arguments and responses can change 225d461c279SJohn Snow# or be removed at ANY time. Applications that rely on long term 226d461c279SJohn Snow# stability guarantees should NOT use this command. 227112ed241SMarkus Armbruster# 228112ed241SMarkus Armbruster# Known limitations: 229112ed241SMarkus Armbruster# 230*01bed0ffSMarkus Armbruster# * This command is stateless, this means that commands that depend 231*01bed0ffSMarkus Armbruster# on state information (such as getfd) might not work. 232112ed241SMarkus Armbruster# 233d461c279SJohn Snow# * Commands that prompt the user for data don't currently work. 234112ed241SMarkus Armbruster# 23514b48aaaSJohn Snow# .. qmp-example:: 236112ed241SMarkus Armbruster# 237112ed241SMarkus Armbruster# -> { "execute": "human-monitor-command", 238112ed241SMarkus Armbruster# "arguments": { "command-line": "info kvm" } } 239112ed241SMarkus Armbruster# <- { "return": "kvm support: enabled\r\n" } 240112ed241SMarkus Armbruster## 241112ed241SMarkus Armbruster{ 'command': 'human-monitor-command', 242112ed241SMarkus Armbruster 'data': {'command-line': 'str', '*cpu-index': 'int'}, 2435f76a7aaSPeter Krempa 'returns': 'str', 2445f76a7aaSPeter Krempa 'features': [ 'savevm-monitor-nodes' ] } 245112ed241SMarkus Armbruster 246112ed241SMarkus Armbruster## 247112ed241SMarkus Armbruster# @getfd: 248112ed241SMarkus Armbruster# 249112ed241SMarkus Armbruster# Receive a file descriptor via SCM rights and assign it a name 250112ed241SMarkus Armbruster# 251112ed241SMarkus Armbruster# @fdname: file descriptor name 252112ed241SMarkus Armbruster# 2539bc6e893SMarkus Armbruster# Since: 0.14 254112ed241SMarkus Armbruster# 255d461c279SJohn Snow# .. note:: If @fdname already exists, the file descriptor assigned to 256d461c279SJohn Snow# it will be closed and replaced by the received file descriptor. 257112ed241SMarkus Armbruster# 258a937b6aaSMarkus Armbruster# The 'closefd' command can be used to explicitly close the file 259a937b6aaSMarkus Armbruster# descriptor when it is no longer needed. 260112ed241SMarkus Armbruster# 26114b48aaaSJohn Snow# .. qmp-example:: 262112ed241SMarkus Armbruster# 263112ed241SMarkus Armbruster# -> { "execute": "getfd", "arguments": { "fdname": "fd1" } } 264112ed241SMarkus Armbruster# <- { "return": {} } 265112ed241SMarkus Armbruster## 2664bf21c7fSMarc-André Lureau{ 'command': 'getfd', 'data': {'fdname': 'str'}, 'if': 'CONFIG_POSIX' } 267112ed241SMarkus Armbruster 268112ed241SMarkus Armbruster## 2694cda177cSMarc-André Lureau# @get-win32-socket: 2704cda177cSMarc-André Lureau# 2714cda177cSMarc-André Lureau# Add a socket that was duplicated to QEMU process with 2724cda177cSMarc-André Lureau# WSADuplicateSocketW() via WSASocket() & WSAPROTOCOL_INFOW structure 2734cda177cSMarc-André Lureau# and assign it a name (the SOCKET is associated with a CRT file 2744cda177cSMarc-André Lureau# descriptor) 2754cda177cSMarc-André Lureau# 2764cda177cSMarc-André Lureau# @info: the WSAPROTOCOL_INFOW structure (encoded in base64) 2774cda177cSMarc-André Lureau# 2784cda177cSMarc-André Lureau# @fdname: file descriptor name 2794cda177cSMarc-André Lureau# 2804cda177cSMarc-André Lureau# Since: 8.0 2814cda177cSMarc-André Lureau# 282d461c279SJohn Snow# .. note:: If @fdname already exists, the file descriptor assigned to 283d461c279SJohn Snow# it will be closed and replaced by the received file descriptor. 2844cda177cSMarc-André Lureau# 285a937b6aaSMarkus Armbruster# The 'closefd' command can be used to explicitly close the file 286a937b6aaSMarkus Armbruster# descriptor when it is no longer needed. 2874cda177cSMarc-André Lureau# 28814b48aaaSJohn Snow# .. qmp-example:: 2894cda177cSMarc-André Lureau# 2909f2b8488SJohn Snow# -> { "execute": "get-win32-socket", 2919f2b8488SJohn Snow# "arguments": { "info": "abcd123..", "fdname": "skclient" } } 2924cda177cSMarc-André Lureau# <- { "return": {} } 2934cda177cSMarc-André Lureau## 2944cda177cSMarc-André Lureau{ 'command': 'get-win32-socket', 'data': {'info': 'str', 'fdname': 'str'}, 'if': 'CONFIG_WIN32' } 2954cda177cSMarc-André Lureau 2964cda177cSMarc-André Lureau## 297112ed241SMarkus Armbruster# @closefd: 298112ed241SMarkus Armbruster# 299112ed241SMarkus Armbruster# Close a file descriptor previously passed via SCM rights 300112ed241SMarkus Armbruster# 301112ed241SMarkus Armbruster# @fdname: file descriptor name 302112ed241SMarkus Armbruster# 3039bc6e893SMarkus Armbruster# Since: 0.14 304112ed241SMarkus Armbruster# 30514b48aaaSJohn Snow# .. qmp-example:: 306112ed241SMarkus Armbruster# 307112ed241SMarkus Armbruster# -> { "execute": "closefd", "arguments": { "fdname": "fd1" } } 308112ed241SMarkus Armbruster# <- { "return": {} } 309112ed241SMarkus Armbruster## 310112ed241SMarkus Armbruster{ 'command': 'closefd', 'data': {'fdname': 'str'} } 311112ed241SMarkus Armbruster 312112ed241SMarkus Armbruster## 313112ed241SMarkus Armbruster# @AddfdInfo: 314112ed241SMarkus Armbruster# 315112ed241SMarkus Armbruster# Information about a file descriptor that was added to an fd set. 316112ed241SMarkus Armbruster# 317112ed241SMarkus Armbruster# @fdset-id: The ID of the fd set that @fd was added to. 318112ed241SMarkus Armbruster# 319a937b6aaSMarkus Armbruster# @fd: The file descriptor that was received via SCM rights and added 320a937b6aaSMarkus Armbruster# to the fd set. 321112ed241SMarkus Armbruster# 3229bc6e893SMarkus Armbruster# Since: 1.2 323112ed241SMarkus Armbruster## 324112ed241SMarkus Armbruster{ 'struct': 'AddfdInfo', 'data': {'fdset-id': 'int', 'fd': 'int'} } 325112ed241SMarkus Armbruster 326112ed241SMarkus Armbruster## 327112ed241SMarkus Armbruster# @add-fd: 328112ed241SMarkus Armbruster# 329112ed241SMarkus Armbruster# Add a file descriptor, that was passed via SCM rights, to an fd set. 330112ed241SMarkus Armbruster# 331112ed241SMarkus Armbruster# @fdset-id: The ID of the fd set to add the file descriptor to. 332112ed241SMarkus Armbruster# 333112ed241SMarkus Armbruster# @opaque: A free-form string that can be used to describe the fd. 334112ed241SMarkus Armbruster# 335a937b6aaSMarkus Armbruster# Returns: 336e2c1dcbcSMarkus Armbruster# @AddfdInfo 3372746f060SMarkus Armbruster# 3382746f060SMarkus Armbruster# Errors: 33971568864SMarkus Armbruster# - If file descriptor was not received, GenericError 34071568864SMarkus Armbruster# - If @fdset-id is a negative value, GenericError 341112ed241SMarkus Armbruster# 342d461c279SJohn Snow# .. note:: The list of fd sets is shared by all monitor connections. 343112ed241SMarkus Armbruster# 344*01bed0ffSMarkus Armbruster# .. note:: If @fdset-id is not specified, a new fd set will be 345*01bed0ffSMarkus Armbruster# created. 346112ed241SMarkus Armbruster# 3479bc6e893SMarkus Armbruster# Since: 1.2 348112ed241SMarkus Armbruster# 34914b48aaaSJohn Snow# .. qmp-example:: 350112ed241SMarkus Armbruster# 351112ed241SMarkus Armbruster# -> { "execute": "add-fd", "arguments": { "fdset-id": 1 } } 352112ed241SMarkus Armbruster# <- { "return": { "fdset-id": 1, "fd": 3 } } 353112ed241SMarkus Armbruster## 354b0ddeba2SMarc-André Lureau{ 'command': 'add-fd', 355b0ddeba2SMarc-André Lureau 'data': { '*fdset-id': 'int', 356b0ddeba2SMarc-André Lureau '*opaque': 'str' }, 357112ed241SMarkus Armbruster 'returns': 'AddfdInfo' } 358112ed241SMarkus Armbruster 359112ed241SMarkus Armbruster## 360112ed241SMarkus Armbruster# @remove-fd: 361112ed241SMarkus Armbruster# 362112ed241SMarkus Armbruster# Remove a file descriptor from an fd set. 363112ed241SMarkus Armbruster# 364112ed241SMarkus Armbruster# @fdset-id: The ID of the fd set that the file descriptor belongs to. 365112ed241SMarkus Armbruster# 366112ed241SMarkus Armbruster# @fd: The file descriptor that is to be removed. 367112ed241SMarkus Armbruster# 3682746f060SMarkus Armbruster# Errors: 36971568864SMarkus Armbruster# - If @fdset-id or @fd is not found, GenericError 370112ed241SMarkus Armbruster# 3719bc6e893SMarkus Armbruster# Since: 1.2 372112ed241SMarkus Armbruster# 373d461c279SJohn Snow# .. note:: The list of fd sets is shared by all monitor connections. 374112ed241SMarkus Armbruster# 375d461c279SJohn Snow# .. note:: If @fd is not specified, all file descriptors in @fdset-id 376d461c279SJohn Snow# will be removed. 377112ed241SMarkus Armbruster# 37814b48aaaSJohn Snow# .. qmp-example:: 379112ed241SMarkus Armbruster# 380112ed241SMarkus Armbruster# -> { "execute": "remove-fd", "arguments": { "fdset-id": 1, "fd": 3 } } 381112ed241SMarkus Armbruster# <- { "return": {} } 382112ed241SMarkus Armbruster## 383112ed241SMarkus Armbruster{ 'command': 'remove-fd', 'data': {'fdset-id': 'int', '*fd': 'int'} } 384112ed241SMarkus Armbruster 385112ed241SMarkus Armbruster## 386112ed241SMarkus Armbruster# @FdsetFdInfo: 387112ed241SMarkus Armbruster# 388112ed241SMarkus Armbruster# Information about a file descriptor that belongs to an fd set. 389112ed241SMarkus Armbruster# 390112ed241SMarkus Armbruster# @fd: The file descriptor value. 391112ed241SMarkus Armbruster# 392112ed241SMarkus Armbruster# @opaque: A free-form string that can be used to describe the fd. 393112ed241SMarkus Armbruster# 3949bc6e893SMarkus Armbruster# Since: 1.2 395112ed241SMarkus Armbruster## 396112ed241SMarkus Armbruster{ 'struct': 'FdsetFdInfo', 397112ed241SMarkus Armbruster 'data': {'fd': 'int', '*opaque': 'str'} } 398112ed241SMarkus Armbruster 399112ed241SMarkus Armbruster## 400112ed241SMarkus Armbruster# @FdsetInfo: 401112ed241SMarkus Armbruster# 402112ed241SMarkus Armbruster# Information about an fd set. 403112ed241SMarkus Armbruster# 404112ed241SMarkus Armbruster# @fdset-id: The ID of the fd set. 405112ed241SMarkus Armbruster# 406112ed241SMarkus Armbruster# @fds: A list of file descriptors that belong to this fd set. 407112ed241SMarkus Armbruster# 4089bc6e893SMarkus Armbruster# Since: 1.2 409112ed241SMarkus Armbruster## 410112ed241SMarkus Armbruster{ 'struct': 'FdsetInfo', 411112ed241SMarkus Armbruster 'data': {'fdset-id': 'int', 'fds': ['FdsetFdInfo']} } 412112ed241SMarkus Armbruster 413112ed241SMarkus Armbruster## 414112ed241SMarkus Armbruster# @query-fdsets: 415112ed241SMarkus Armbruster# 416112ed241SMarkus Armbruster# Return information describing all fd sets. 417112ed241SMarkus Armbruster# 418112ed241SMarkus Armbruster# Returns: A list of @FdsetInfo 419112ed241SMarkus Armbruster# 4209bc6e893SMarkus Armbruster# Since: 1.2 421112ed241SMarkus Armbruster# 422d461c279SJohn Snow# .. note:: The list of fd sets is shared by all monitor connections. 423112ed241SMarkus Armbruster# 42414b48aaaSJohn Snow# .. qmp-example:: 425112ed241SMarkus Armbruster# 426112ed241SMarkus Armbruster# -> { "execute": "query-fdsets" } 427112ed241SMarkus Armbruster# <- { "return": [ 428112ed241SMarkus Armbruster# { 429112ed241SMarkus Armbruster# "fds": [ 430112ed241SMarkus Armbruster# { 431112ed241SMarkus Armbruster# "fd": 30, 432112ed241SMarkus Armbruster# "opaque": "rdonly:/path/to/file" 433112ed241SMarkus Armbruster# }, 434112ed241SMarkus Armbruster# { 435112ed241SMarkus Armbruster# "fd": 24, 436112ed241SMarkus Armbruster# "opaque": "rdwr:/path/to/file" 437112ed241SMarkus Armbruster# } 438112ed241SMarkus Armbruster# ], 439112ed241SMarkus Armbruster# "fdset-id": 1 440112ed241SMarkus Armbruster# }, 441112ed241SMarkus Armbruster# { 442112ed241SMarkus Armbruster# "fds": [ 443112ed241SMarkus Armbruster# { 444112ed241SMarkus Armbruster# "fd": 28 445112ed241SMarkus Armbruster# }, 446112ed241SMarkus Armbruster# { 447112ed241SMarkus Armbruster# "fd": 29 448112ed241SMarkus Armbruster# } 449112ed241SMarkus Armbruster# ], 450112ed241SMarkus Armbruster# "fdset-id": 0 451112ed241SMarkus Armbruster# } 452112ed241SMarkus Armbruster# ] 453112ed241SMarkus Armbruster# } 454112ed241SMarkus Armbruster## 455112ed241SMarkus Armbruster{ 'command': 'query-fdsets', 'returns': ['FdsetInfo'] } 456112ed241SMarkus Armbruster 457112ed241SMarkus Armbruster## 458112ed241SMarkus Armbruster# @CommandLineParameterType: 459112ed241SMarkus Armbruster# 460112ed241SMarkus Armbruster# Possible types for an option parameter. 461112ed241SMarkus Armbruster# 462112ed241SMarkus Armbruster# @string: accepts a character string 463112ed241SMarkus Armbruster# 464112ed241SMarkus Armbruster# @boolean: accepts "on" or "off" 465112ed241SMarkus Armbruster# 466112ed241SMarkus Armbruster# @number: accepts a number 467112ed241SMarkus Armbruster# 468112ed241SMarkus Armbruster# @size: accepts a number followed by an optional suffix (K)ilo, 469112ed241SMarkus Armbruster# (M)ega, (G)iga, (T)era 470112ed241SMarkus Armbruster# 471112ed241SMarkus Armbruster# Since: 1.5 472112ed241SMarkus Armbruster## 473112ed241SMarkus Armbruster{ 'enum': 'CommandLineParameterType', 474112ed241SMarkus Armbruster 'data': ['string', 'boolean', 'number', 'size'] } 475112ed241SMarkus Armbruster 476112ed241SMarkus Armbruster## 477112ed241SMarkus Armbruster# @CommandLineParameterInfo: 478112ed241SMarkus Armbruster# 479112ed241SMarkus Armbruster# Details about a single parameter of a command line option. 480112ed241SMarkus Armbruster# 481112ed241SMarkus Armbruster# @name: parameter name 482112ed241SMarkus Armbruster# 483112ed241SMarkus Armbruster# @type: parameter @CommandLineParameterType 484112ed241SMarkus Armbruster# 485112ed241SMarkus Armbruster# @help: human readable text string, not suitable for parsing. 486112ed241SMarkus Armbruster# 487112ed241SMarkus Armbruster# @default: default value string (since 2.1) 488112ed241SMarkus Armbruster# 489112ed241SMarkus Armbruster# Since: 1.5 490112ed241SMarkus Armbruster## 491112ed241SMarkus Armbruster{ 'struct': 'CommandLineParameterInfo', 492112ed241SMarkus Armbruster 'data': { 'name': 'str', 493112ed241SMarkus Armbruster 'type': 'CommandLineParameterType', 494112ed241SMarkus Armbruster '*help': 'str', 495112ed241SMarkus Armbruster '*default': 'str' } } 496112ed241SMarkus Armbruster 497112ed241SMarkus Armbruster## 498112ed241SMarkus Armbruster# @CommandLineOptionInfo: 499112ed241SMarkus Armbruster# 500a937b6aaSMarkus Armbruster# Details about a command line option, including its list of parameter 501a937b6aaSMarkus Armbruster# details 502112ed241SMarkus Armbruster# 503112ed241SMarkus Armbruster# @option: option name 504112ed241SMarkus Armbruster# 505112ed241SMarkus Armbruster# @parameters: an array of @CommandLineParameterInfo 506112ed241SMarkus Armbruster# 507112ed241SMarkus Armbruster# Since: 1.5 508112ed241SMarkus Armbruster## 509112ed241SMarkus Armbruster{ 'struct': 'CommandLineOptionInfo', 510112ed241SMarkus Armbruster 'data': { 'option': 'str', 'parameters': ['CommandLineParameterInfo'] } } 511112ed241SMarkus Armbruster 512112ed241SMarkus Armbruster## 513112ed241SMarkus Armbruster# @query-command-line-options: 514112ed241SMarkus Armbruster# 515112ed241SMarkus Armbruster# Query command line option schema. 516112ed241SMarkus Armbruster# 517112ed241SMarkus Armbruster# @option: option name 518112ed241SMarkus Armbruster# 519a937b6aaSMarkus Armbruster# Returns: list of @CommandLineOptionInfo for all options (or for the 5202746f060SMarkus Armbruster# given @option). 5212746f060SMarkus Armbruster# 5222746f060SMarkus Armbruster# Errors: 5232746f060SMarkus Armbruster# - if the given @option doesn't exist 524112ed241SMarkus Armbruster# 525112ed241SMarkus Armbruster# Since: 1.5 526112ed241SMarkus Armbruster# 52714b48aaaSJohn Snow# .. qmp-example:: 528112ed241SMarkus Armbruster# 529112ed241SMarkus Armbruster# -> { "execute": "query-command-line-options", 530112ed241SMarkus Armbruster# "arguments": { "option": "option-rom" } } 531112ed241SMarkus Armbruster# <- { "return": [ 532112ed241SMarkus Armbruster# { 533112ed241SMarkus Armbruster# "parameters": [ 534112ed241SMarkus Armbruster# { 535112ed241SMarkus Armbruster# "name": "romfile", 536112ed241SMarkus Armbruster# "type": "string" 537112ed241SMarkus Armbruster# }, 538112ed241SMarkus Armbruster# { 539112ed241SMarkus Armbruster# "name": "bootindex", 540112ed241SMarkus Armbruster# "type": "number" 541112ed241SMarkus Armbruster# } 542112ed241SMarkus Armbruster# ], 543112ed241SMarkus Armbruster# "option": "option-rom" 544112ed241SMarkus Armbruster# } 545112ed241SMarkus Armbruster# ] 546112ed241SMarkus Armbruster# } 547112ed241SMarkus Armbruster## 548b0ddeba2SMarc-André Lureau{'command': 'query-command-line-options', 549b0ddeba2SMarc-André Lureau 'data': {'*option': 'str'}, 550d6fe3d02SIgor Mammedov 'returns': ['CommandLineOptionInfo'], 551d6fe3d02SIgor Mammedov 'allow-preconfig': true} 5521f216b8cSPeter Maydell 5531f216b8cSPeter Maydell## 5541f216b8cSPeter Maydell# @RTC_CHANGE: 5551f216b8cSPeter Maydell# 5561f216b8cSPeter Maydell# Emitted when the guest changes the RTC time. 5571f216b8cSPeter Maydell# 558a937b6aaSMarkus Armbruster# @offset: offset in seconds between base RTC clock (as specified by 559a937b6aaSMarkus Armbruster# -rtc base), and new RTC clock value 5601f216b8cSPeter Maydell# 5612beb1e5fSMarkus Armbruster# @qom-path: path to the RTC object in the QOM tree 5622beb1e5fSMarkus Armbruster# 563d461c279SJohn Snow# .. note:: This event is rate-limited. It is not guaranteed that the 564d461c279SJohn Snow# RTC in the system implements this event, or even that the system 565d461c279SJohn Snow# has an RTC at all. 5661f216b8cSPeter Maydell# 5671f216b8cSPeter Maydell# Since: 0.13 5681f216b8cSPeter Maydell# 56914b48aaaSJohn Snow# .. qmp-example:: 5701f216b8cSPeter Maydell# 5711f216b8cSPeter Maydell# <- { "event": "RTC_CHANGE", 5721f216b8cSPeter Maydell# "data": { "offset": 78 }, 5731f216b8cSPeter Maydell# "timestamp": { "seconds": 1267020223, "microseconds": 435656 } } 5741f216b8cSPeter Maydell## 5751f216b8cSPeter Maydell{ 'event': 'RTC_CHANGE', 5762beb1e5fSMarkus Armbruster 'data': { 'offset': 'int', 'qom-path': 'str' } } 5779fb3fba1SJagannathan Raman 5789fb3fba1SJagannathan Raman## 5799fb3fba1SJagannathan Raman# @VFU_CLIENT_HANGUP: 5809fb3fba1SJagannathan Raman# 5819fb3fba1SJagannathan Raman# Emitted when the client of a TYPE_VFIO_USER_SERVER closes the 5829fb3fba1SJagannathan Raman# communication channel 5839fb3fba1SJagannathan Raman# 584a937b6aaSMarkus Armbruster# @vfu-id: ID of the TYPE_VFIO_USER_SERVER object. It is the last 585a937b6aaSMarkus Armbruster# component of @vfu-qom-path referenced below 5869fb3fba1SJagannathan Raman# 587a937b6aaSMarkus Armbruster# @vfu-qom-path: path to the TYPE_VFIO_USER_SERVER object in the QOM 588a937b6aaSMarkus Armbruster# tree 5899fb3fba1SJagannathan Raman# 5909fb3fba1SJagannathan Raman# @dev-id: ID of attached PCI device 5919fb3fba1SJagannathan Raman# 5929fb3fba1SJagannathan Raman# @dev-qom-path: path to attached PCI device in the QOM tree 5939fb3fba1SJagannathan Raman# 5949fb3fba1SJagannathan Raman# Since: 7.1 5959fb3fba1SJagannathan Raman# 59614b48aaaSJohn Snow# .. qmp-example:: 5979fb3fba1SJagannathan Raman# 5989fb3fba1SJagannathan Raman# <- { "event": "VFU_CLIENT_HANGUP", 5999fb3fba1SJagannathan Raman# "data": { "vfu-id": "vfu1", 6009fb3fba1SJagannathan Raman# "vfu-qom-path": "/objects/vfu1", 6019fb3fba1SJagannathan Raman# "dev-id": "sas1", 6029fb3fba1SJagannathan Raman# "dev-qom-path": "/machine/peripheral/sas1" }, 6039fb3fba1SJagannathan Raman# "timestamp": { "seconds": 1265044230, "microseconds": 450486 } } 6049fb3fba1SJagannathan Raman## 6059fb3fba1SJagannathan Raman{ 'event': 'VFU_CLIENT_HANGUP', 6069fb3fba1SJagannathan Raman 'data': { 'vfu-id': 'str', 'vfu-qom-path': 'str', 6079fb3fba1SJagannathan Raman 'dev-id': 'str', 'dev-qom-path': 'str' } } 608