QAPI patches patches for 2020-10-21
-----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAl+PpJUSHGFybWJydUBy ZWRoYXQuY29tAAoJEDhwtADrkYZTkT8P/iGv6mzciCEsEL1LrYIrHXCpUDeQyXoZ i+pXisOaUNXQzwb9HIcUzy95srWQjORVMCzanRkS/LIm7XziAAWJDKFQrNXK6S/6 8DNkzymOQaswRRGpEEX7KqgJFWCwhy+RqGlWXAtVVQLPMIfMIkCnx/vOtEGrvItt USzWwXkOnqy+cd4yNYi7V3oidE8uHbaVFopXs1MQCiGJ49uUMBibdFt/KGC0tTwQ q/1hJOJyCQrAjzBh6cNwych+5QdOwhRMEVp8Lqly87hEyaTBJvXKdnf4LuFRWcaF PIh265CPqxsETc/rR7S2LWmFmsXj6ruPUwIPIWKQKjqTDaqseOCOcHvLI7I+5ccT i4La+tWmH6U/8VuyGfplYZ2CphA51bkBlIGZVWsXw/eGc2md9p19fUMyLM65WfBW /Oi98O+ZveqOvZbfOtEN4Sanxx5VJ9aCMOyr97GjER2W1Q2BkZjKz67qpFws1amX +pgS7GaMyN3vcy9CMQ3aCZx8LNJMTyBIzBsWYKtDJbaDzaMvAcsIPgSQVSDGkpy3 d1dph7tgOLaamvVCn44J/R/DefrTZHK19NY3OG8BUm7lxBeWAaj+GeeCHlDDoF73 q0CpcMeUdPGGFcS1XE0AlpRq95J+M/Cs+p080TYM4RUEzJumoKZwvJLurH2jhh4o 9X3GzMMZ6cpu =fsLv -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2020-10-21' into staging QAPI patches patches for 2020-10-21 # gpg: Signature made Wed 21 Oct 2020 04:01:41 BST # gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653 # gpg: issuer "armbru@redhat.com" # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full] # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-qapi-2020-10-21: qapi: Restrict Xen migration commands to migration.json qapi: Restrict 'query-kvm' command to machine code qapi: Restrict '(p)memsave' command to machine code qapi: Restrict 'system wakeup/reset/powerdown' commands to machine.json qapi: Restrict 'inject-nmi' command to machine code Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
e06c687fdf
@ -7,7 +7,7 @@
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "sysemu/xen.h"
|
||||
#include "qapi/qapi-commands-misc.h"
|
||||
#include "qapi/qapi-commands-migration.h"
|
||||
|
||||
bool xen_allowed;
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "hw/xen/xen-bus.h"
|
||||
#include "hw/xen/xen-x86.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qapi/qapi-commands-misc.h"
|
||||
#include "qapi/qapi-commands-migration.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/main-loop.h"
|
||||
#include "qemu/range.h"
|
||||
|
@ -42,7 +42,6 @@
|
||||
#include "postcopy-ram.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qapi/qapi-commands-migration.h"
|
||||
#include "qapi/qapi-commands-misc.h"
|
||||
#include "qapi/qmp/qerror.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "sysemu/cpus.h"
|
||||
|
@ -452,6 +452,63 @@
|
||||
##
|
||||
{ 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' }
|
||||
|
||||
##
|
||||
# @system_reset:
|
||||
#
|
||||
# Performs a hard reset of a guest.
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "system_reset" }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'system_reset' }
|
||||
|
||||
##
|
||||
# @system_powerdown:
|
||||
#
|
||||
# Requests that a guest perform a powerdown operation.
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Notes: A guest may or may not respond to this command. This command
|
||||
# returning does not indicate that a guest has accepted the request or
|
||||
# that it has shut down. Many guests will respond to this command by
|
||||
# prompting the user in some way.
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "system_powerdown" }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'system_powerdown' }
|
||||
|
||||
##
|
||||
# @system_wakeup:
|
||||
#
|
||||
# Wake up guest from suspend. If the guest has wake-up from suspend
|
||||
# support enabled (wakeup-suspend-support flag from
|
||||
# query-current-machine), wake-up guest from suspend if the guest is
|
||||
# in SUSPENDED state. Return an error otherwise.
|
||||
#
|
||||
# Since: 1.1
|
||||
#
|
||||
# Returns: nothing.
|
||||
#
|
||||
# Note: prior to 4.0, this command does nothing in case the guest
|
||||
# isn't suspended.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "system_wakeup" }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'system_wakeup' }
|
||||
|
||||
##
|
||||
# @LostTickPolicy:
|
||||
#
|
||||
@ -484,6 +541,56 @@
|
||||
{ 'enum': 'LostTickPolicy',
|
||||
'data': ['discard', 'delay', 'slew' ] }
|
||||
|
||||
##
|
||||
# @inject-nmi:
|
||||
#
|
||||
# Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or all CPUs (ppc64).
|
||||
# The command fails when the guest doesn't support injecting.
|
||||
#
|
||||
# Returns: If successful, nothing
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Note: prior to 2.1, this command was only supported for x86 and s390 VMs
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "inject-nmi" }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'inject-nmi' }
|
||||
|
||||
##
|
||||
# @KvmInfo:
|
||||
#
|
||||
# Information about support for KVM acceleration
|
||||
#
|
||||
# @enabled: true if KVM acceleration is active
|
||||
#
|
||||
# @present: true if KVM acceleration is built into this executable
|
||||
#
|
||||
# Since: 0.14.0
|
||||
##
|
||||
{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
|
||||
|
||||
##
|
||||
# @query-kvm:
|
||||
#
|
||||
# Returns information about KVM acceleration
|
||||
#
|
||||
# Returns: @KvmInfo
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "query-kvm" }
|
||||
# <- { "return": { "enabled": true, "present": true } }
|
||||
#
|
||||
##
|
||||
{ 'command': 'query-kvm', 'returns': 'KvmInfo' }
|
||||
|
||||
##
|
||||
# @NumaOptionsType:
|
||||
#
|
||||
@ -810,6 +917,67 @@
|
||||
{ 'enum': 'HostMemPolicy',
|
||||
'data': [ 'default', 'preferred', 'bind', 'interleave' ] }
|
||||
|
||||
##
|
||||
# @memsave:
|
||||
#
|
||||
# Save a portion of guest memory to a file.
|
||||
#
|
||||
# @val: the virtual address of the guest to start from
|
||||
#
|
||||
# @size: the size of memory region to save
|
||||
#
|
||||
# @filename: the file to save the memory to as binary data
|
||||
#
|
||||
# @cpu-index: the index of the virtual CPU to use for translating the
|
||||
# virtual address (defaults to CPU 0)
|
||||
#
|
||||
# Returns: Nothing on success
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Notes: Errors were not reliably returned until 1.1
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "memsave",
|
||||
# "arguments": { "val": 10,
|
||||
# "size": 100,
|
||||
# "filename": "/tmp/virtual-mem-dump" } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'memsave',
|
||||
'data': {'val': 'int', 'size': 'int', 'filename': 'str', '*cpu-index': 'int'} }
|
||||
|
||||
##
|
||||
# @pmemsave:
|
||||
#
|
||||
# Save a portion of guest physical memory to a file.
|
||||
#
|
||||
# @val: the physical address of the guest to start from
|
||||
#
|
||||
# @size: the size of memory region to save
|
||||
#
|
||||
# @filename: the file to save the memory to as binary data
|
||||
#
|
||||
# Returns: Nothing on success
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Notes: Errors were not reliably returned until 1.1
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "pmemsave",
|
||||
# "arguments": { "val": 10,
|
||||
# "size": 100,
|
||||
# "filename": "/tmp/physical-mem-dump" } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'pmemsave',
|
||||
'data': {'val': 'int', 'size': 'int', 'filename': 'str'} }
|
||||
|
||||
##
|
||||
# @Memdev:
|
||||
#
|
||||
|
@ -1551,6 +1551,47 @@
|
||||
{ 'command': 'xen-save-devices-state',
|
||||
'data': {'filename': 'str', '*live':'bool' } }
|
||||
|
||||
##
|
||||
# @xen-set-global-dirty-log:
|
||||
#
|
||||
# Enable or disable the global dirty log mode.
|
||||
#
|
||||
# @enable: true to enable, false to disable.
|
||||
#
|
||||
# Returns: nothing
|
||||
#
|
||||
# Since: 1.3
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "xen-set-global-dirty-log",
|
||||
# "arguments": { "enable": true } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'xen-set-global-dirty-log', 'data': { 'enable': 'bool' } }
|
||||
|
||||
##
|
||||
# @xen-load-devices-state:
|
||||
#
|
||||
# Load the state of all devices from file. The RAM and the block devices
|
||||
# of the VM are not loaded by this command.
|
||||
#
|
||||
# @filename: the file to load the state of the devices from as binary
|
||||
# data. See xen-save-devices-state.txt for a description of the binary
|
||||
# format.
|
||||
#
|
||||
# Since: 2.7
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "xen-load-devices-state",
|
||||
# "arguments": { "filename": "/tmp/resume" } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'xen-load-devices-state', 'data': {'filename': 'str'} }
|
||||
|
||||
##
|
||||
# @xen-set-replication:
|
||||
#
|
||||
|
209
qapi/misc.json
209
qapi/misc.json
@ -68,36 +68,6 @@
|
||||
##
|
||||
{ 'command': 'query-name', 'returns': 'NameInfo', 'allow-preconfig': true }
|
||||
|
||||
##
|
||||
# @KvmInfo:
|
||||
#
|
||||
# Information about support for KVM acceleration
|
||||
#
|
||||
# @enabled: true if KVM acceleration is active
|
||||
#
|
||||
# @present: true if KVM acceleration is built into this executable
|
||||
#
|
||||
# Since: 0.14.0
|
||||
##
|
||||
{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
|
||||
|
||||
##
|
||||
# @query-kvm:
|
||||
#
|
||||
# Returns information about KVM acceleration
|
||||
#
|
||||
# Returns: @KvmInfo
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "query-kvm" }
|
||||
# <- { "return": { "enabled": true, "present": true } }
|
||||
#
|
||||
##
|
||||
{ 'command': 'query-kvm', 'returns': 'KvmInfo' }
|
||||
|
||||
##
|
||||
# @IOThreadInfo:
|
||||
#
|
||||
@ -177,101 +147,6 @@
|
||||
##
|
||||
{ 'command': 'stop' }
|
||||
|
||||
##
|
||||
# @system_reset:
|
||||
#
|
||||
# Performs a hard reset of a guest.
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "system_reset" }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'system_reset' }
|
||||
|
||||
##
|
||||
# @system_powerdown:
|
||||
#
|
||||
# Requests that a guest perform a powerdown operation.
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Notes: A guest may or may not respond to this command. This command
|
||||
# returning does not indicate that a guest has accepted the request or
|
||||
# that it has shut down. Many guests will respond to this command by
|
||||
# prompting the user in some way.
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "system_powerdown" }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'system_powerdown' }
|
||||
|
||||
##
|
||||
# @memsave:
|
||||
#
|
||||
# Save a portion of guest memory to a file.
|
||||
#
|
||||
# @val: the virtual address of the guest to start from
|
||||
#
|
||||
# @size: the size of memory region to save
|
||||
#
|
||||
# @filename: the file to save the memory to as binary data
|
||||
#
|
||||
# @cpu-index: the index of the virtual CPU to use for translating the
|
||||
# virtual address (defaults to CPU 0)
|
||||
#
|
||||
# Returns: Nothing on success
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Notes: Errors were not reliably returned until 1.1
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "memsave",
|
||||
# "arguments": { "val": 10,
|
||||
# "size": 100,
|
||||
# "filename": "/tmp/virtual-mem-dump" } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'memsave',
|
||||
'data': {'val': 'int', 'size': 'int', 'filename': 'str', '*cpu-index': 'int'} }
|
||||
|
||||
##
|
||||
# @pmemsave:
|
||||
#
|
||||
# Save a portion of guest physical memory to a file.
|
||||
#
|
||||
# @val: the physical address of the guest to start from
|
||||
#
|
||||
# @size: the size of memory region to save
|
||||
#
|
||||
# @filename: the file to save the memory to as binary data
|
||||
#
|
||||
# Returns: Nothing on success
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Notes: Errors were not reliably returned until 1.1
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "pmemsave",
|
||||
# "arguments": { "val": 10,
|
||||
# "size": 100,
|
||||
# "filename": "/tmp/physical-mem-dump" } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'pmemsave',
|
||||
'data': {'val': 'int', 'size': 'int', 'filename': 'str'} }
|
||||
|
||||
##
|
||||
# @cont:
|
||||
#
|
||||
@ -318,49 +193,6 @@
|
||||
##
|
||||
{ 'command': 'x-exit-preconfig', 'allow-preconfig': true }
|
||||
|
||||
##
|
||||
# @system_wakeup:
|
||||
#
|
||||
# Wake up guest from suspend. If the guest has wake-up from suspend
|
||||
# support enabled (wakeup-suspend-support flag from
|
||||
# query-current-machine), wake-up guest from suspend if the guest is
|
||||
# in SUSPENDED state. Return an error otherwise.
|
||||
#
|
||||
# Since: 1.1
|
||||
#
|
||||
# Returns: nothing.
|
||||
#
|
||||
# Note: prior to 4.0, this command does nothing in case the guest
|
||||
# isn't suspended.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "system_wakeup" }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'system_wakeup' }
|
||||
|
||||
##
|
||||
# @inject-nmi:
|
||||
#
|
||||
# Injects a Non-Maskable Interrupt into the default CPU (x86/s390) or all CPUs (ppc64).
|
||||
# The command fails when the guest doesn't support injecting.
|
||||
#
|
||||
# Returns: If successful, nothing
|
||||
#
|
||||
# Since: 0.14.0
|
||||
#
|
||||
# Note: prior to 2.1, this command was only supported for x86 and s390 VMs
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "inject-nmi" }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'inject-nmi' }
|
||||
|
||||
##
|
||||
# @human-monitor-command:
|
||||
#
|
||||
@ -455,26 +287,6 @@
|
||||
'data': {'device': 'str', 'target': 'str', '*arg': 'str'},
|
||||
'features': [ 'deprecated' ] }
|
||||
|
||||
##
|
||||
# @xen-set-global-dirty-log:
|
||||
#
|
||||
# Enable or disable the global dirty log mode.
|
||||
#
|
||||
# @enable: true to enable, false to disable.
|
||||
#
|
||||
# Returns: nothing
|
||||
#
|
||||
# Since: 1.3
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "xen-set-global-dirty-log",
|
||||
# "arguments": { "enable": true } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'xen-set-global-dirty-log', 'data': { 'enable': 'bool' } }
|
||||
|
||||
##
|
||||
# @getfd:
|
||||
#
|
||||
@ -756,24 +568,3 @@
|
||||
'data': { '*option': 'str' },
|
||||
'returns': ['CommandLineOptionInfo'],
|
||||
'allow-preconfig': true }
|
||||
|
||||
##
|
||||
# @xen-load-devices-state:
|
||||
#
|
||||
# Load the state of all devices from file. The RAM and the block devices
|
||||
# of the VM are not loaded by this command.
|
||||
#
|
||||
# @filename: the file to load the state of the devices from as binary
|
||||
# data. See xen-save-devices-state.txt for a description of the binary
|
||||
# format.
|
||||
#
|
||||
# Since: 2.7
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "xen-load-devices-state",
|
||||
# "arguments": { "filename": "/tmp/resume" } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'xen-load-devices-state', 'data': {'filename': 'str'} }
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "qemu-common.h"
|
||||
#include "monitor/monitor.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qapi/qapi-commands-machine.h"
|
||||
#include "qapi/qapi-commands-misc.h"
|
||||
#include "qapi/qapi-events-run-state.h"
|
||||
#include "qapi/qmp/qerror.h"
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "sysemu/cpu-throttle.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qapi/qapi-commands-block.h"
|
||||
#include "qapi/qapi-commands-machine.h"
|
||||
#include "qapi/qapi-commands-misc.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "qemu-version.h"
|
||||
|
Loading…
Reference in New Issue
Block a user