[libvirt] [PATCH] qemu: Align virQEMUCapsFlags members
by Andrea Bolognani
---
This pushes a lot of lines well beyond 80 columns, but then again some
of the entries were already as long as 92 columns...
src/qemu/qemu_capabilities.h | 412 +++++++++++++++++++++----------------------
1 file changed, 205 insertions(+), 207 deletions(-)
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index a1d98d0..06c928c 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -32,215 +32,213 @@
/* Internal flags to keep track of qemu command line capabilities */
typedef enum {
- QEMU_CAPS_KQEMU = 0, /* Whether KQEMU is compiled in */
- QEMU_CAPS_VNC_COLON = 1, /* VNC takes or address + display */
- QEMU_CAPS_NO_REBOOT = 2, /* Is the -no-reboot flag available */
- QEMU_CAPS_DRIVE = 3, /* Is the new -drive arg available */
- QEMU_CAPS_DRIVE_BOOT = 4, /* Does -drive support boot=on */
- QEMU_CAPS_NAME = 5, /* Is the -name flag available */
- QEMU_CAPS_UUID = 6, /* Is the -uuid flag available */
- QEMU_CAPS_DOMID = 7, /* Xenner: -domid flag available */
- QEMU_CAPS_VNET_HDR = 8,
- QEMU_CAPS_MIGRATE_KVM_STDIO = 9, /* avoid kvm tcp migration bug */
- QEMU_CAPS_MIGRATE_QEMU_TCP = 10, /* have qemu tcp migration */
- QEMU_CAPS_MIGRATE_QEMU_EXEC = 11, /* have qemu exec migration */
- QEMU_CAPS_DRIVE_CACHE_V2 = 12, /* cache= flag wanting new v2 values */
- QEMU_CAPS_KVM = 13, /* Whether KVM is enabled by default */
- QEMU_CAPS_DRIVE_FORMAT = 14, /* Is -drive format= avail */
- QEMU_CAPS_VGA = 15, /* Is -vga avail */
+ QEMU_CAPS_KQEMU = 0, /* Whether KQEMU is compiled in */
+ QEMU_CAPS_VNC_COLON = 1, /* VNC takes or address + display */
+ QEMU_CAPS_NO_REBOOT = 2, /* Is the -no-reboot flag available */
+ QEMU_CAPS_DRIVE = 3, /* Is the new -drive arg available */
+ QEMU_CAPS_DRIVE_BOOT = 4, /* Does -drive support boot=on */
+ QEMU_CAPS_NAME = 5, /* Is the -name flag available */
+ QEMU_CAPS_UUID = 6, /* Is the -uuid flag available */
+ QEMU_CAPS_DOMID = 7, /* Xenner: -domid flag available */
+ QEMU_CAPS_VNET_HDR = 8,
+ QEMU_CAPS_MIGRATE_KVM_STDIO = 9, /* avoid kvm tcp migration bug */
+ QEMU_CAPS_MIGRATE_QEMU_TCP = 10, /* have qemu tcp migration */
+ QEMU_CAPS_MIGRATE_QEMU_EXEC = 11, /* have qemu exec migration */
+ QEMU_CAPS_DRIVE_CACHE_V2 = 12, /* cache= flag wanting new v2 values */
+ QEMU_CAPS_KVM = 13, /* Whether KVM is enabled by default */
+ QEMU_CAPS_DRIVE_FORMAT = 14, /* Is -drive format= avail */
+ QEMU_CAPS_VGA = 15, /* Is -vga avail */
/* features added in qemu-0.10.0 or later */
- QEMU_CAPS_0_10 = 16,
- QEMU_CAPS_NET_NAME = QEMU_CAPS_0_10, /* -net ...,name=str */
- QEMU_CAPS_HOST_NET_ADD = QEMU_CAPS_0_10, /* host_net_add command */
-
- QEMU_CAPS_PCIDEVICE = 17, /* PCI device assignment supported */
- QEMU_CAPS_MEM_PATH = 18, /* mmap'ped guest backing supported */
- QEMU_CAPS_DRIVE_SERIAL = 19, /* -driver serial= available */
- QEMU_CAPS_XEN_DOMID = 20, /* -xen-domid */
- QEMU_CAPS_MIGRATE_QEMU_UNIX = 21, /* qemu migration via unix sockets */
- QEMU_CAPS_CHARDEV = 22, /* Is the new -chardev arg available */
- QEMU_CAPS_ENABLE_KVM = 23, /* -enable-kvm flag */
- QEMU_CAPS_MONITOR_JSON = 24, /* JSON mode for monitor */
- QEMU_CAPS_BALLOON = 25, /* -balloon available */
- QEMU_CAPS_DEVICE = 26, /* Is the new -device arg available */
- QEMU_CAPS_SDL = 27, /* Is the new -sdl arg available */
- QEMU_CAPS_SMP_TOPOLOGY = 28, /* -smp has sockets/cores/threads */
- QEMU_CAPS_NETDEV = 29, /* -netdev flag & netdev_add/remove */
- QEMU_CAPS_RTC = 30, /* The -rtc flag for clock options */
- QEMU_CAPS_VHOST_NET = 31, /* vhost-net support available */
- QEMU_CAPS_RTC_TD_HACK = 32, /* -rtc-td-hack available */
- QEMU_CAPS_NO_HPET = 33, /* -no-hpet flag is supported */
- QEMU_CAPS_NO_KVM_PIT = 34, /* -no-kvm-pit-reinjection supported */
- QEMU_CAPS_TDF = 35, /* -tdf flag (user-mode pit catchup) */
- QEMU_CAPS_PCI_CONFIGFD = 36, /* pci-assign.configfd */
- QEMU_CAPS_NODEFCONFIG = 37, /* -nodefconfig */
- QEMU_CAPS_BOOT_MENU = 38, /* -boot menu=on support */
- QEMU_CAPS_ENABLE_KQEMU = 39, /* -enable-kqemu flag */
- QEMU_CAPS_FSDEV = 40, /* -fstype filesystem passthrough */
- QEMU_CAPS_NESTING = 41, /* -enable-nesting (SVM/VMX) */
- QEMU_CAPS_NAME_PROCESS = 42, /* Is -name process= available */
- QEMU_CAPS_DRIVE_READONLY = 43, /* -drive readonly=on|off */
- QEMU_CAPS_SMBIOS_TYPE = 44, /* Is -smbios type= available */
- QEMU_CAPS_VGA_QXL = 45, /* The 'qxl' arg for '-vga' */
- QEMU_CAPS_SPICE = 46, /* Is -spice avail */
- QEMU_CAPS_VGA_NONE = 47, /* The 'none' arg for '-vga' */
- QEMU_CAPS_MIGRATE_QEMU_FD = 48, /* -incoming fd:n */
- QEMU_CAPS_BOOTINDEX = 49, /* -device bootindex property */
- QEMU_CAPS_HDA_DUPLEX = 50, /* -device hda-duplex */
- QEMU_CAPS_DRIVE_AIO = 51, /* -drive aio= supported */
- QEMU_CAPS_PCI_MULTIBUS = 52, /* bus=pci.0 vs bus=pci */
- QEMU_CAPS_PCI_BOOTINDEX = 53, /* pci-assign.bootindex */
- QEMU_CAPS_CCID_EMULATED = 54, /* -device ccid-card-emulated */
- QEMU_CAPS_CCID_PASSTHRU = 55, /* -device ccid-card-passthru */
- QEMU_CAPS_CHARDEV_SPICEVMC = 56, /* newer -chardev spicevmc */
- QEMU_CAPS_DEVICE_SPICEVMC = 57, /* older -device spicevmc*/
- QEMU_CAPS_VIRTIO_TX_ALG = 58, /* -device virtio-net-pci,tx=string */
- QEMU_CAPS_DEVICE_QXL_VGA = 59, /* primary qxl device named qxl-vga? */
- QEMU_CAPS_PCI_MULTIFUNCTION = 60, /* -device multifunction=on|off */
- QEMU_CAPS_VIRTIO_IOEVENTFD = 61, /* virtio-{net|blk}-pci.ioeventfd=on */
- QEMU_CAPS_SGA = 62, /* Serial Graphics Adapter */
- QEMU_CAPS_VIRTIO_BLK_EVENT_IDX = 63, /* virtio-blk-pci.event_idx */
- QEMU_CAPS_VIRTIO_NET_EVENT_IDX = 64, /* virtio-net-pci.event_idx */
- QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC = 65, /* Is cache=directsync supported? */
- QEMU_CAPS_PIIX3_USB_UHCI = 66, /* -device piix3-usb-uhci */
- QEMU_CAPS_PIIX4_USB_UHCI = 67, /* -device piix4-usb-uhci */
- QEMU_CAPS_USB_EHCI = 68, /* -device usb-ehci */
- QEMU_CAPS_ICH9_USB_EHCI1 = 69, /* -device ich9-usb-ehci1 and friends */
- QEMU_CAPS_VT82C686B_USB_UHCI = 70, /* -device vt82c686b-usb-uhci */
- QEMU_CAPS_PCI_OHCI = 71, /* -device pci-ohci */
- QEMU_CAPS_USB_REDIR = 72, /* -device usb-redir */
- QEMU_CAPS_USB_HUB = 73, /* -device usb-hub */
- QEMU_CAPS_NO_SHUTDOWN = 74, /* usable -no-shutdown */
- QEMU_CAPS_DRIVE_CACHE_UNSAFE = 75, /* Is cache=unsafe supported? */
- QEMU_CAPS_PCI_ROMBAR = 76, /* -device rombar=0|1 */
- QEMU_CAPS_ICH9_AHCI = 77, /* -device ich9-ahci */
- QEMU_CAPS_NO_ACPI = 78, /* -no-acpi */
- QEMU_CAPS_FSDEV_READONLY = 79, /* -fsdev readonly supported */
- QEMU_CAPS_VIRTIO_BLK_SCSI = 80, /* virtio-blk-pci.scsi */
- QEMU_CAPS_VIRTIO_BLK_SG_IO = 81, /* SG_IO commands, since 0.11 */
- QEMU_CAPS_DRIVE_COPY_ON_READ = 82, /* -drive copy-on-read */
- QEMU_CAPS_CPU_HOST = 83, /* support for -cpu host */
- QEMU_CAPS_FSDEV_WRITEOUT = 84, /* -fsdev writeout supported */
- QEMU_CAPS_DRIVE_IOTUNE = 85, /* -drive bps= and friends */
- QEMU_CAPS_WAKEUP = 86, /* system_wakeup monitor command */
- QEMU_CAPS_SCSI_DISK_CHANNEL = 87, /* Is scsi-disk.channel available? */
- QEMU_CAPS_SCSI_BLOCK = 88, /* -device scsi-block */
- QEMU_CAPS_TRANSACTION = 89, /* transaction monitor command */
- QEMU_CAPS_BLOCKJOB_SYNC = 90, /* old block_job_cancel, block_stream */
- QEMU_CAPS_BLOCKJOB_ASYNC = 91, /* new block-job-cancel, block-stream */
- QEMU_CAPS_SCSI_CD = 92, /* -device scsi-cd */
- QEMU_CAPS_IDE_CD = 93, /* -device ide-cd */
- QEMU_CAPS_NO_USER_CONFIG = 94, /* -no-user-config */
- QEMU_CAPS_HDA_MICRO = 95, /* -device hda-micro */
- QEMU_CAPS_DUMP_GUEST_MEMORY = 96, /* dump-guest-memory command */
- QEMU_CAPS_NEC_USB_XHCI = 97, /* -device nec-usb-xhci */
- QEMU_CAPS_VIRTIO_S390 = 98, /* -device virtio-*-s390 */
- QEMU_CAPS_BALLOON_EVENT = 99, /* Async event for balloon changes */
- QEMU_CAPS_NETDEV_BRIDGE = 100, /* bridge helper support */
- QEMU_CAPS_SCSI_LSI = 101, /* -device lsi */
- QEMU_CAPS_VIRTIO_SCSI = 102, /* -device virtio-scsi-* */
- QEMU_CAPS_BLOCKIO = 103, /* -device ...logical_block_size & co */
- QEMU_CAPS_DISABLE_S3 = 104, /* S3 BIOS Advertisement on/off */
- QEMU_CAPS_DISABLE_S4 = 105, /* S4 BIOS Advertisement on/off */
- QEMU_CAPS_USB_REDIR_FILTER = 106, /* usb-redir.filter */
- QEMU_CAPS_IDE_DRIVE_WWN = 107, /* Is ide-drive.wwn available? */
- QEMU_CAPS_SCSI_DISK_WWN = 108, /* Is scsi-disk.wwn available? */
- QEMU_CAPS_SECCOMP_SANDBOX = 109, /* -sandbox */
- QEMU_CAPS_REBOOT_TIMEOUT = 110, /* -boot reboot-timeout */
- QEMU_CAPS_DUMP_GUEST_CORE = 111, /* dump-guest-core-parameter */
- QEMU_CAPS_SEAMLESS_MIGRATION = 112, /* seamless-migration for SPICE */
- QEMU_CAPS_BLOCK_COMMIT = 113, /* block-commit */
- QEMU_CAPS_VNC = 114, /* Is -vnc available? */
- QEMU_CAPS_DRIVE_MIRROR = 115, /* drive-mirror monitor command */
- QEMU_CAPS_USB_REDIR_BOOTINDEX = 116, /* usb-redir.bootindex */
- QEMU_CAPS_USB_HOST_BOOTINDEX = 117, /* usb-host.bootindex */
- QEMU_CAPS_DISK_SNAPSHOT = 118, /* blockdev-snapshot-sync command */
- QEMU_CAPS_DEVICE_QXL = 119, /* -device qxl */
- QEMU_CAPS_DEVICE_VGA = 120, /* -device VGA */
- QEMU_CAPS_DEVICE_CIRRUS_VGA = 121, /* -device cirrus-vga */
- QEMU_CAPS_DEVICE_VMWARE_SVGA = 122, /* -device vmware-svga */
- QEMU_CAPS_DEVICE_VIDEO_PRIMARY = 123, /* safe to use -device XXX
- for primary video device */
- QEMU_CAPS_SCLP_S390 = 124, /* -device sclp* */
- QEMU_CAPS_DEVICE_USB_SERIAL = 125, /* -device usb-serial */
- QEMU_CAPS_DEVICE_USB_NET = 126, /* -device usb-net */
- QEMU_CAPS_ADD_FD = 127, /* -add-fd */
- QEMU_CAPS_NBD_SERVER = 128, /* nbd-server-start QMP command */
- QEMU_CAPS_DEVICE_VIRTIO_RNG = 129, /* virtio-rng device */
- QEMU_CAPS_OBJECT_RNG_RANDOM = 130, /* the rng-random backend for
- virtio rng */
- QEMU_CAPS_OBJECT_RNG_EGD = 131, /* EGD protocol daemon for rng */
- QEMU_CAPS_VIRTIO_CCW = 132, /* -device virtio-*-ccw */
- QEMU_CAPS_DTB = 133, /* -dtb file */
- QEMU_CAPS_SCSI_MEGASAS = 134, /* -device megasas */
- QEMU_CAPS_IPV6_MIGRATION = 135, /* -incoming [::] */
- QEMU_CAPS_MACHINE_OPT = 136, /* -machine xxxx*/
- QEMU_CAPS_MACHINE_USB_OPT = 137, /* -machine xxx,usb=on/off */
- QEMU_CAPS_DEVICE_TPM_PASSTHROUGH = 138, /* -tpmdev passthrough */
- QEMU_CAPS_DEVICE_TPM_TIS = 139, /* -device tpm_tis */
- QEMU_CAPS_DEVICE_NVRAM = 140, /* -global spapr-nvram.reg=xxxx */
- QEMU_CAPS_DEVICE_PCI_BRIDGE = 141, /* -device pci-bridge */
- QEMU_CAPS_DEVICE_VFIO_PCI = 142, /* -device vfio-pci */
- QEMU_CAPS_VFIO_PCI_BOOTINDEX = 143, /* bootindex param for vfio-pci device */
- QEMU_CAPS_DEVICE_SCSI_GENERIC = 144, /* -device scsi-generic */
- QEMU_CAPS_DEVICE_SCSI_GENERIC_BOOTINDEX = 145, /* -device scsi-generic.bootindex */
- QEMU_CAPS_MEM_MERGE = 146, /* -machine mem-merge */
- QEMU_CAPS_VNC_WEBSOCKET = 147, /* -vnc x:y,websocket */
- QEMU_CAPS_DRIVE_DISCARD = 148, /* -drive discard=off(ignore)|on(unmap) */
- QEMU_CAPS_MLOCK = 149, /* -realtime mlock=on|off */
- QEMU_CAPS_VNC_SHARE_POLICY = 150, /* set display sharing policy */
- QEMU_CAPS_DEVICE_DEL_EVENT = 151, /* DEVICE_DELETED event */
- QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE = 152, /* -device i82801b11-bridge */
- QEMU_CAPS_I440FX_PCI_HOLE64_SIZE = 153, /* i440FX-pcihost.pci-hole64-size */
- QEMU_CAPS_Q35_PCI_HOLE64_SIZE = 154, /* q35-pcihost.pci-hole64-size */
- QEMU_CAPS_DEVICE_USB_STORAGE = 155, /* -device usb-storage */
- QEMU_CAPS_USB_STORAGE_REMOVABLE = 156, /* usb-storage.removable */
- QEMU_CAPS_DEVICE_VIRTIO_MMIO = 157, /* -device virtio-mmio */
- QEMU_CAPS_DEVICE_ICH9_INTEL_HDA = 158, /* -device ich9-intel-hda */
- QEMU_CAPS_KVM_PIT_TICK_POLICY = 159, /* kvm-pit.lost_tick_policy */
- QEMU_CAPS_BOOT_STRICT = 160, /* -boot strict */
- QEMU_CAPS_DEVICE_PANIC = 161, /* -device pvpanic */
- QEMU_CAPS_ENABLE_FIPS = 162, /* -enable-fips */
- QEMU_CAPS_SPICE_FILE_XFER_DISABLE = 163, /* -spice disable-agent-file-xfer */
- QEMU_CAPS_CHARDEV_SPICEPORT = 164, /* -chardev spiceport */
- QEMU_CAPS_DEVICE_USB_KBD = 165, /* -device usb-kbd */
- QEMU_CAPS_HOST_PCI_MULTIDOMAIN = 166, /* support domain > 0 in host pci address */
- QEMU_CAPS_MSG_TIMESTAMP = 167, /* -msg timestamp */
- QEMU_CAPS_ACTIVE_COMMIT = 168, /* block-commit works without 'top' */
- QEMU_CAPS_CHANGE_BACKING_FILE = 169, /* change name of backing file in metadata */
- QEMU_CAPS_OBJECT_MEMORY_RAM = 170, /* -object memory-backend-ram */
- QEMU_CAPS_NUMA = 171, /* newer -numa handling with disjoint cpu ranges */
- QEMU_CAPS_OBJECT_MEMORY_FILE = 172, /* -object memory-backend-file */
- QEMU_CAPS_OBJECT_USB_AUDIO = 173, /* usb-audio device support */
- QEMU_CAPS_RTC_RESET_REINJECTION = 174, /* rtc-reset-reinjection monitor command */
- QEMU_CAPS_SPLASH_TIMEOUT = 175, /* -boot splash-time */
- QEMU_CAPS_OBJECT_IOTHREAD = 176, /* -object iothread */
- QEMU_CAPS_MIGRATE_RDMA = 177, /* have rdma migration */
- QEMU_CAPS_DEVICE_IVSHMEM = 178, /* -device ivshmem */
- QEMU_CAPS_DRIVE_IOTUNE_MAX = 179, /* -drive bps_max= and friends */
- QEMU_CAPS_VGA_VGAMEM = 180, /* -device VGA.vgamem_mb */
- QEMU_CAPS_VMWARE_SVGA_VGAMEM = 181, /* -device vmware-svga.vgamem_mb */
- QEMU_CAPS_QXL_VGAMEM = 182, /* -device qxl.vgamem_mb */
- QEMU_CAPS_QXL_VGA_VGAMEM = 183, /* -device qxl-vga.vgamem_mb */
- QEMU_CAPS_DEVICE_PC_DIMM = 184, /* pc-dimm device */
- QEMU_CAPS_MACHINE_VMPORT_OPT = 185, /* -machine xxx,vmport=on/off/auto */
- QEMU_CAPS_AES_KEY_WRAP = 186, /* -machine aes_key_wrap */
- QEMU_CAPS_DEA_KEY_WRAP = 187, /* -machine dea_key_wrap */
- QEMU_CAPS_DEVICE_PCI_SERIAL = 188, /* -device pci-serial */
- QEMU_CAPS_CPU_AARCH64_OFF = 189, /* -cpu ...,aarch64=off */
- QEMU_CAPS_VHOSTUSER_MULTIQUEUE = 190, /* vhost-user with -netdev queues= */
- QEMU_CAPS_MIGRATION_EVENT = 191, /* MIGRATION event */
- QEMU_CAPS_OBJECT_GPEX = 192, /* have generic PCI host controller */
- QEMU_CAPS_DEVICE_IOH3420 = 193, /* -device ioh3420 */
- QEMU_CAPS_DEVICE_X3130_UPSTREAM = 194, /* -device x3130-upstream */
- QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM = 195, /* -device xio3130-downstream */
- QEMU_CAPS_DEVICE_RTL8139 = 196, /* -device rtl8139 */
- QEMU_CAPS_DEVICE_E1000 = 197, /* -device e1000 */
- QEMU_CAPS_DEVICE_VIRTIO_NET = 198, /* -device virtio-net-* */
- QEMU_CAPS_MACH_VIRT_GIC_VERSION = 199, /* -machine virt,gic-version */
-
- QEMU_CAPS_LAST, /* this must always be the last item */
+ QEMU_CAPS_0_10 = 16,
+ QEMU_CAPS_NET_NAME = QEMU_CAPS_0_10, /* -net ...,name=str */
+ QEMU_CAPS_HOST_NET_ADD = QEMU_CAPS_0_10, /* host_net_add command */
+
+ QEMU_CAPS_PCIDEVICE = 17, /* PCI device assignment supported */
+ QEMU_CAPS_MEM_PATH = 18, /* mmap'ped guest backing supported */
+ QEMU_CAPS_DRIVE_SERIAL = 19, /* -driver serial= available */
+ QEMU_CAPS_XEN_DOMID = 20, /* -xen-domid */
+ QEMU_CAPS_MIGRATE_QEMU_UNIX = 21, /* qemu migration via unix sockets */
+ QEMU_CAPS_CHARDEV = 22, /* Is the new -chardev arg available */
+ QEMU_CAPS_ENABLE_KVM = 23, /* -enable-kvm flag */
+ QEMU_CAPS_MONITOR_JSON = 24, /* JSON mode for monitor */
+ QEMU_CAPS_BALLOON = 25, /* -balloon available */
+ QEMU_CAPS_DEVICE = 26, /* Is the new -device arg available */
+ QEMU_CAPS_SDL = 27, /* Is the new -sdl arg available */
+ QEMU_CAPS_SMP_TOPOLOGY = 28, /* -smp has sockets/cores/threads */
+ QEMU_CAPS_NETDEV = 29, /* -netdev flag & netdev_add/remove */
+ QEMU_CAPS_RTC = 30, /* The -rtc flag for clock options */
+ QEMU_CAPS_VHOST_NET = 31, /* vhost-net support available */
+ QEMU_CAPS_RTC_TD_HACK = 32, /* -rtc-td-hack available */
+ QEMU_CAPS_NO_HPET = 33, /* -no-hpet flag is supported */
+ QEMU_CAPS_NO_KVM_PIT = 34, /* -no-kvm-pit-reinjection supported */
+ QEMU_CAPS_TDF = 35, /* -tdf flag (user-mode pit catchup) */
+ QEMU_CAPS_PCI_CONFIGFD = 36, /* pci-assign.configfd */
+ QEMU_CAPS_NODEFCONFIG = 37, /* -nodefconfig */
+ QEMU_CAPS_BOOT_MENU = 38, /* -boot menu=on support */
+ QEMU_CAPS_ENABLE_KQEMU = 39, /* -enable-kqemu flag */
+ QEMU_CAPS_FSDEV = 40, /* -fstype filesystem passthrough */
+ QEMU_CAPS_NESTING = 41, /* -enable-nesting (SVM/VMX) */
+ QEMU_CAPS_NAME_PROCESS = 42, /* Is -name process= available */
+ QEMU_CAPS_DRIVE_READONLY = 43, /* -drive readonly=on|off */
+ QEMU_CAPS_SMBIOS_TYPE = 44, /* Is -smbios type= available */
+ QEMU_CAPS_VGA_QXL = 45, /* The 'qxl' arg for '-vga' */
+ QEMU_CAPS_SPICE = 46, /* Is -spice avail */
+ QEMU_CAPS_VGA_NONE = 47, /* The 'none' arg for '-vga' */
+ QEMU_CAPS_MIGRATE_QEMU_FD = 48, /* -incoming fd:n */
+ QEMU_CAPS_BOOTINDEX = 49, /* -device bootindex property */
+ QEMU_CAPS_HDA_DUPLEX = 50, /* -device hda-duplex */
+ QEMU_CAPS_DRIVE_AIO = 51, /* -drive aio= supported */
+ QEMU_CAPS_PCI_MULTIBUS = 52, /* bus=pci.0 vs bus=pci */
+ QEMU_CAPS_PCI_BOOTINDEX = 53, /* pci-assign.bootindex */
+ QEMU_CAPS_CCID_EMULATED = 54, /* -device ccid-card-emulated */
+ QEMU_CAPS_CCID_PASSTHRU = 55, /* -device ccid-card-passthru */
+ QEMU_CAPS_CHARDEV_SPICEVMC = 56, /* newer -chardev spicevmc */
+ QEMU_CAPS_DEVICE_SPICEVMC = 57, /* older -device spicevmc*/
+ QEMU_CAPS_VIRTIO_TX_ALG = 58, /* -device virtio-net-pci,tx=string */
+ QEMU_CAPS_DEVICE_QXL_VGA = 59, /* primary qxl device named qxl-vga? */
+ QEMU_CAPS_PCI_MULTIFUNCTION = 60, /* -device multifunction=on|off */
+ QEMU_CAPS_VIRTIO_IOEVENTFD = 61, /* virtio-{net|blk}-pci.ioeventfd=on */
+ QEMU_CAPS_SGA = 62, /* Serial Graphics Adapter */
+ QEMU_CAPS_VIRTIO_BLK_EVENT_IDX = 63, /* virtio-blk-pci.event_idx */
+ QEMU_CAPS_VIRTIO_NET_EVENT_IDX = 64, /* virtio-net-pci.event_idx */
+ QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC = 65, /* Is cache=directsync supported? */
+ QEMU_CAPS_PIIX3_USB_UHCI = 66, /* -device piix3-usb-uhci */
+ QEMU_CAPS_PIIX4_USB_UHCI = 67, /* -device piix4-usb-uhci */
+ QEMU_CAPS_USB_EHCI = 68, /* -device usb-ehci */
+ QEMU_CAPS_ICH9_USB_EHCI1 = 69, /* -device ich9-usb-ehci1 and friends */
+ QEMU_CAPS_VT82C686B_USB_UHCI = 70, /* -device vt82c686b-usb-uhci */
+ QEMU_CAPS_PCI_OHCI = 71, /* -device pci-ohci */
+ QEMU_CAPS_USB_REDIR = 72, /* -device usb-redir */
+ QEMU_CAPS_USB_HUB = 73, /* -device usb-hub */
+ QEMU_CAPS_NO_SHUTDOWN = 74, /* usable -no-shutdown */
+ QEMU_CAPS_DRIVE_CACHE_UNSAFE = 75, /* Is cache=unsafe supported? */
+ QEMU_CAPS_PCI_ROMBAR = 76, /* -device rombar=0|1 */
+ QEMU_CAPS_ICH9_AHCI = 77, /* -device ich9-ahci */
+ QEMU_CAPS_NO_ACPI = 78, /* -no-acpi */
+ QEMU_CAPS_FSDEV_READONLY = 79, /* -fsdev readonly supported */
+ QEMU_CAPS_VIRTIO_BLK_SCSI = 80, /* virtio-blk-pci.scsi */
+ QEMU_CAPS_VIRTIO_BLK_SG_IO = 81, /* SG_IO commands, since 0.11 */
+ QEMU_CAPS_DRIVE_COPY_ON_READ = 82, /* -drive copy-on-read */
+ QEMU_CAPS_CPU_HOST = 83, /* support for -cpu host */
+ QEMU_CAPS_FSDEV_WRITEOUT = 84, /* -fsdev writeout supported */
+ QEMU_CAPS_DRIVE_IOTUNE = 85, /* -drive bps= and friends */
+ QEMU_CAPS_WAKEUP = 86, /* system_wakeup monitor command */
+ QEMU_CAPS_SCSI_DISK_CHANNEL = 87, /* Is scsi-disk.channel available? */
+ QEMU_CAPS_SCSI_BLOCK = 88, /* -device scsi-block */
+ QEMU_CAPS_TRANSACTION = 89, /* transaction monitor command */
+ QEMU_CAPS_BLOCKJOB_SYNC = 90, /* old block_job_cancel, block_stream */
+ QEMU_CAPS_BLOCKJOB_ASYNC = 91, /* new block-job-cancel, block-stream */
+ QEMU_CAPS_SCSI_CD = 92, /* -device scsi-cd */
+ QEMU_CAPS_IDE_CD = 93, /* -device ide-cd */
+ QEMU_CAPS_NO_USER_CONFIG = 94, /* -no-user-config */
+ QEMU_CAPS_HDA_MICRO = 95, /* -device hda-micro */
+ QEMU_CAPS_DUMP_GUEST_MEMORY = 96, /* dump-guest-memory command */
+ QEMU_CAPS_NEC_USB_XHCI = 97, /* -device nec-usb-xhci */
+ QEMU_CAPS_VIRTIO_S390 = 98, /* -device virtio-*-s390 */
+ QEMU_CAPS_BALLOON_EVENT = 99, /* Async event for balloon changes */
+ QEMU_CAPS_NETDEV_BRIDGE = 100, /* bridge helper support */
+ QEMU_CAPS_SCSI_LSI = 101, /* -device lsi */
+ QEMU_CAPS_VIRTIO_SCSI = 102, /* -device virtio-scsi-* */
+ QEMU_CAPS_BLOCKIO = 103, /* -device ...logical_block_size & co */
+ QEMU_CAPS_DISABLE_S3 = 104, /* S3 BIOS Advertisement on/off */
+ QEMU_CAPS_DISABLE_S4 = 105, /* S4 BIOS Advertisement on/off */
+ QEMU_CAPS_USB_REDIR_FILTER = 106, /* usb-redir.filter */
+ QEMU_CAPS_IDE_DRIVE_WWN = 107, /* Is ide-drive.wwn available? */
+ QEMU_CAPS_SCSI_DISK_WWN = 108, /* Is scsi-disk.wwn available? */
+ QEMU_CAPS_SECCOMP_SANDBOX = 109, /* -sandbox */
+ QEMU_CAPS_REBOOT_TIMEOUT = 110, /* -boot reboot-timeout */
+ QEMU_CAPS_DUMP_GUEST_CORE = 111, /* dump-guest-core-parameter */
+ QEMU_CAPS_SEAMLESS_MIGRATION = 112, /* seamless-migration for SPICE */
+ QEMU_CAPS_BLOCK_COMMIT = 113, /* block-commit */
+ QEMU_CAPS_VNC = 114, /* Is -vnc available? */
+ QEMU_CAPS_DRIVE_MIRROR = 115, /* drive-mirror monitor command */
+ QEMU_CAPS_USB_REDIR_BOOTINDEX = 116, /* usb-redir.bootindex */
+ QEMU_CAPS_USB_HOST_BOOTINDEX = 117, /* usb-host.bootindex */
+ QEMU_CAPS_DISK_SNAPSHOT = 118, /* blockdev-snapshot-sync command */
+ QEMU_CAPS_DEVICE_QXL = 119, /* -device qxl */
+ QEMU_CAPS_DEVICE_VGA = 120, /* -device VGA */
+ QEMU_CAPS_DEVICE_CIRRUS_VGA = 121, /* -device cirrus-vga */
+ QEMU_CAPS_DEVICE_VMWARE_SVGA = 122, /* -device vmware-svga */
+ QEMU_CAPS_DEVICE_VIDEO_PRIMARY = 123, /* safe to use -device for primary video device */
+ QEMU_CAPS_SCLP_S390 = 124, /* -device sclp* */
+ QEMU_CAPS_DEVICE_USB_SERIAL = 125, /* -device usb-serial */
+ QEMU_CAPS_DEVICE_USB_NET = 126, /* -device usb-net */
+ QEMU_CAPS_ADD_FD = 127, /* -add-fd */
+ QEMU_CAPS_NBD_SERVER = 128, /* nbd-server-start QMP command */
+ QEMU_CAPS_DEVICE_VIRTIO_RNG = 129, /* virtio-rng device */
+ QEMU_CAPS_OBJECT_RNG_RANDOM = 130, /* the rng-random backend for virtio rng */
+ QEMU_CAPS_OBJECT_RNG_EGD = 131, /* EGD protocol daemon for rng */
+ QEMU_CAPS_VIRTIO_CCW = 132, /* -device virtio-*-ccw */
+ QEMU_CAPS_DTB = 133, /* -dtb file */
+ QEMU_CAPS_SCSI_MEGASAS = 134, /* -device megasas */
+ QEMU_CAPS_IPV6_MIGRATION = 135, /* -incoming [::] */
+ QEMU_CAPS_MACHINE_OPT = 136, /* -machine xxxx*/
+ QEMU_CAPS_MACHINE_USB_OPT = 137, /* -machine xxx,usb=on/off */
+ QEMU_CAPS_DEVICE_TPM_PASSTHROUGH = 138, /* -tpmdev passthrough */
+ QEMU_CAPS_DEVICE_TPM_TIS = 139, /* -device tpm_tis */
+ QEMU_CAPS_DEVICE_NVRAM = 140, /* -global spapr-nvram.reg=xxxx */
+ QEMU_CAPS_DEVICE_PCI_BRIDGE = 141, /* -device pci-bridge */
+ QEMU_CAPS_DEVICE_VFIO_PCI = 142, /* -device vfio-pci */
+ QEMU_CAPS_VFIO_PCI_BOOTINDEX = 143, /* bootindex param for vfio-pci device */
+ QEMU_CAPS_DEVICE_SCSI_GENERIC = 144, /* -device scsi-generic */
+ QEMU_CAPS_DEVICE_SCSI_GENERIC_BOOTINDEX = 145, /* -device scsi-generic.bootindex */
+ QEMU_CAPS_MEM_MERGE = 146, /* -machine mem-merge */
+ QEMU_CAPS_VNC_WEBSOCKET = 147, /* -vnc x:y,websocket */
+ QEMU_CAPS_DRIVE_DISCARD = 148, /* -drive discard=off(ignore)|on(unmap) */
+ QEMU_CAPS_MLOCK = 149, /* -realtime mlock=on|off */
+ QEMU_CAPS_VNC_SHARE_POLICY = 150, /* set display sharing policy */
+ QEMU_CAPS_DEVICE_DEL_EVENT = 151, /* DEVICE_DELETED event */
+ QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE = 152, /* -device i82801b11-bridge */
+ QEMU_CAPS_I440FX_PCI_HOLE64_SIZE = 153, /* i440FX-pcihost.pci-hole64-size */
+ QEMU_CAPS_Q35_PCI_HOLE64_SIZE = 154, /* q35-pcihost.pci-hole64-size */
+ QEMU_CAPS_DEVICE_USB_STORAGE = 155, /* -device usb-storage */
+ QEMU_CAPS_USB_STORAGE_REMOVABLE = 156, /* usb-storage.removable */
+ QEMU_CAPS_DEVICE_VIRTIO_MMIO = 157, /* -device virtio-mmio */
+ QEMU_CAPS_DEVICE_ICH9_INTEL_HDA = 158, /* -device ich9-intel-hda */
+ QEMU_CAPS_KVM_PIT_TICK_POLICY = 159, /* kvm-pit.lost_tick_policy */
+ QEMU_CAPS_BOOT_STRICT = 160, /* -boot strict */
+ QEMU_CAPS_DEVICE_PANIC = 161, /* -device pvpanic */
+ QEMU_CAPS_ENABLE_FIPS = 162, /* -enable-fips */
+ QEMU_CAPS_SPICE_FILE_XFER_DISABLE = 163, /* -spice disable-agent-file-xfer */
+ QEMU_CAPS_CHARDEV_SPICEPORT = 164, /* -chardev spiceport */
+ QEMU_CAPS_DEVICE_USB_KBD = 165, /* -device usb-kbd */
+ QEMU_CAPS_HOST_PCI_MULTIDOMAIN = 166, /* support domain > 0 in host pci address */
+ QEMU_CAPS_MSG_TIMESTAMP = 167, /* -msg timestamp */
+ QEMU_CAPS_ACTIVE_COMMIT = 168, /* block-commit works without 'top' */
+ QEMU_CAPS_CHANGE_BACKING_FILE = 169, /* change name of backing file in metadata */
+ QEMU_CAPS_OBJECT_MEMORY_RAM = 170, /* -object memory-backend-ram */
+ QEMU_CAPS_NUMA = 171, /* newer -numa handling with disjoint cpu ranges */
+ QEMU_CAPS_OBJECT_MEMORY_FILE = 172, /* -object memory-backend-file */
+ QEMU_CAPS_OBJECT_USB_AUDIO = 173, /* usb-audio device support */
+ QEMU_CAPS_RTC_RESET_REINJECTION = 174, /* rtc-reset-reinjection monitor command */
+ QEMU_CAPS_SPLASH_TIMEOUT = 175, /* -boot splash-time */
+ QEMU_CAPS_OBJECT_IOTHREAD = 176, /* -object iothread */
+ QEMU_CAPS_MIGRATE_RDMA = 177, /* have rdma migration */
+ QEMU_CAPS_DEVICE_IVSHMEM = 178, /* -device ivshmem */
+ QEMU_CAPS_DRIVE_IOTUNE_MAX = 179, /* -drive bps_max= and friends */
+ QEMU_CAPS_VGA_VGAMEM = 180, /* -device VGA.vgamem_mb */
+ QEMU_CAPS_VMWARE_SVGA_VGAMEM = 181, /* -device vmware-svga.vgamem_mb */
+ QEMU_CAPS_QXL_VGAMEM = 182, /* -device qxl.vgamem_mb */
+ QEMU_CAPS_QXL_VGA_VGAMEM = 183, /* -device qxl-vga.vgamem_mb */
+ QEMU_CAPS_DEVICE_PC_DIMM = 184, /* pc-dimm device */
+ QEMU_CAPS_MACHINE_VMPORT_OPT = 185, /* -machine xxx,vmport=on/off/auto */
+ QEMU_CAPS_AES_KEY_WRAP = 186, /* -machine aes_key_wrap */
+ QEMU_CAPS_DEA_KEY_WRAP = 187, /* -machine dea_key_wrap */
+ QEMU_CAPS_DEVICE_PCI_SERIAL = 188, /* -device pci-serial */
+ QEMU_CAPS_CPU_AARCH64_OFF = 189, /* -cpu ...,aarch64=off */
+ QEMU_CAPS_VHOSTUSER_MULTIQUEUE = 190, /* vhost-user with -netdev queues= */
+ QEMU_CAPS_MIGRATION_EVENT = 191, /* MIGRATION event */
+ QEMU_CAPS_OBJECT_GPEX = 192, /* have generic PCI host controller */
+ QEMU_CAPS_DEVICE_IOH3420 = 193, /* -device ioh3420 */
+ QEMU_CAPS_DEVICE_X3130_UPSTREAM = 194, /* -device x3130-upstream */
+ QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM = 195, /* -device xio3130-downstream */
+ QEMU_CAPS_DEVICE_RTL8139 = 196, /* -device rtl8139 */
+ QEMU_CAPS_DEVICE_E1000 = 197, /* -device e1000 */
+ QEMU_CAPS_DEVICE_VIRTIO_NET = 198, /* -device virtio-net-* */
+ QEMU_CAPS_MACH_VIRT_GIC_VERSION = 199, /* -machine virt,gic-version */
+
+ QEMU_CAPS_LAST, /* this must always be the last item */
} virQEMUCapsFlags;
typedef struct _virQEMUCaps virQEMUCaps;
--
2.4.3
9 years
[libvirt] [PATCH] storage: Fix incorrect format for <disk> <auth> XML
by John Ferlan
https://bugzilla.redhat.com/show_bug.cgi?id=1256999
When creating a copy of the 'authdef', need to take into account the
slight variation between <disk> and <pool> before blindly copying
the 'authType' field. This ensures virStorageAuthDefFormat will
properly format the <auth> XML for a <disk>.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/util/virstoragefile.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 2aa1d90..0b72cb3 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -1522,7 +1522,12 @@ virStorageAuthDefCopy(const virStorageAuthDef *src)
/* Not present for storage pool, but used for disk source */
if (VIR_STRDUP(ret->secrettype, src->secrettype) < 0)
goto error;
- ret->authType = src->authType;
+ /* A <disk> uses secrettype, while a <pool> uses authType, so
+ * if we have a secrettype, then don't copy authType; otherwise,
+ * we will format the authType in <disk>
+ */
+ if (!ret->secrettype)
+ ret->authType = src->authType;
ret->secretType = src->secretType;
if (ret->secretType == VIR_STORAGE_SECRET_TYPE_UUID) {
memcpy(ret->secret.uuid, src->secret.uuid, sizeof(ret->secret.uuid));
--
2.1.0
9 years
[libvirt] [PATCH 0/4] qemu: Refactor and fix qemuMigrationIsAllowed for offline migration
by Peter Krempa
Note that the patches are formatted with "--patience" so that the last patch
isn't that ugly.
Peter Krempa (4):
qemu: migration: Split source and destination migration checks
qemu: migration: Drop @def from qemuMigrationIsAllowed
qemu: migration: Use migration flags in qemuMigrationIsAllowed
qemu: migration: Skip few checks while doing offline migration
src/qemu/qemu_driver.c | 8 +-
src/qemu/qemu_migration.c | 186 ++++++++++++++++++++++++++--------------------
src/qemu/qemu_migration.h | 3 +-
3 files changed, 110 insertions(+), 87 deletions(-)
--
2.4.5
9 years
[libvirt] [PATCH 1/1] qemu: add support for multiple gluster hosts
by Prasanna Kumar Kalever
currently libvirt has the capability to parse only one host and convert that
into URI formatted string, with the help of this patch libvirt will be able
to parse multiple hosts from the domain xml and can convert that into JSON
formatted string
before:
------
example.xml:
...
<disk type='network' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source protocol='gluster' name='testvol/a.qcow2'>
<host name='1.2.3.4' port='24007' transport="tcp"/>
</source>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
...
resultant string:
file=gluster://1.2.3.4:24007/testvol/a.qcow2, \
if=none,id=drive-virtio-disk0,format=qcow2,cache=none
after:
-----
example.xml:
...
<disk type='network' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source protocol='gluster' name='testvol/a.qcow2'>
<host name='1.2.3.4' port='24009' transport="tcp"/>
<host name='3.4.5.6' port="24008"/>
<host name='5.6.7.8' />
</source>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
...
resultant string:
-drive file=json:{
"file": {
"driver": "gluster",,
"volname": "testvol",,
"image-path": "/a.qcow2",,
"volfile-servers": [
{
"server": "1.2.3.4",,
"port": 24009,,
"transport": "tcp"
},,
{
"server": "3.4.5.6",,
"port": 24008,,
"transport": "tcp"
},,
{
"server": "5.6.7.8",,
"port": 24007,,
"transport": "tcp"
}
]
},,
"driver": "qcow2"
}
,if=none,id=drive-virtio-disk0,cache=none
if the number of hosts supplied is only one, then we use existing URI format
for backward compatibility and if number of hosts is greater than one we switch
to the new JSON format
this patch requires qemu latest patch
https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg07062.html
Credits: Sincere thanks to Kevin Wolf <kwolf(a)redhat.com> and
"Deepak C Shetty" <deepakcs(a)redhat.com> for their support
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever(a)redhat.com>
---
src/qemu/qemu_command.c | 192 ++++++++++++++++++++++++++++++++++++------------
1 file changed, 145 insertions(+), 47 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index bb1835c..8c1bf1a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3256,16 +3256,106 @@ qemuNetworkDriveGetPort(int protocol,
return -1;
}
+#define QEMU_DEFAULT_GLUSTER_PORT 24007
+
+static virJSONValuePtr
+qemuBuildGlusterDriveJSON(virStorageSourcePtr src)
+{
+ virJSONValuePtr parent = NULL;
+ virJSONValuePtr object = NULL;
+ virJSONValuePtr dict_array = NULL;
+ int port;
+ int i;
+
+ if (!(parent = virJSONValueNewObject()))
+ return NULL;
+ /* 1. prepare { driver:"gluster", volname:"testvol", image-path:"/a.img"} */
+ if (virJSONValueObjectAdd(parent,
+ "s:driver", virStorageNetProtocolTypeToString(src->protocol),
+ "s:volname", src->volume,
+ "s:image-path", src->path,
+ NULL) < 0)
+ goto cleanup;
+
+ if (!(dict_array = virJSONValueNewArray()))
+ goto cleanup;
+ /* 2. prepare array [ {server:"1.2.3.4", port:24007, transport:"tcp"} ,
+ * {server:"5.6.7.8", port:24008, transport:"rdma"},
+ * {}, ... ] */
+ for (i = 0; i < src->nhosts; i++) {
+ if (!(object = virJSONValueNewObject()))
+ goto cleanup;
+ port = qemuNetworkDriveGetPort(src->protocol, src->hosts[i].port);
+ if (virJSONValueObjectAdd(object, "s:server", src->hosts[i].name,
+ "i:port", port ? port : QEMU_DEFAULT_GLUSTER_PORT ,
+ "s:transport",
+ virStorageNetHostTransportTypeToString(src->hosts[i].transport),
+ NULL) < 0)
+ goto cleanup;
+ if (virJSONValueArrayAppend(dict_array, object) < 0) {
+ virJSONValueFree(object);
+ goto cleanup;
+ }
+ }
+ /* 3. append 1 and 2
+ * { driver:"gluster", volname:"testvol", image-path:"/a.img",
+ * volfile-servers :[ {server:"1.2.3.4", port:24007, transport:"tcp"} ,
+ * {server:"5.6.7.8", port:24008, transport:"rdma"},
+ * {}, ... ] }
+ */
+ if (virJSONValueObjectAppend(parent, "volfile-servers", dict_array) < 0) {
+ virJSONValueFree(dict_array);
+ goto cleanup;
+ }
+ /* 4. assign key to 3
+ * { file: { driver:"gluster", volname:"testvol", image-path:"/a.img",
+ * volfile-servers :[ {server:"1.2.3.4", port:24007, transport:"tcp"} ,
+ * {server:"5.6.7.8", port:24008, transport:"rdma"},
+ * {}, ... ] } }
+ */
+ if (!(object = virJSONValueNewObject()))
+ goto cleanup;
+ if (virJSONValueObjectAppend(object, "file", parent) < 0) {
+ virJSONValueFree(parent);
+ goto cleanup;
+ }
+ /* 5. append format to 4
+ * { file: { driver:"gluster", volname:"testvol", image-path:"/a.img",
+ * volfile-servers :[ {server:"1.2.3.4", port:24007, transport:"tcp"} ,
+ * {server:"5.6.7.8", port:24008, transport:"rdma"},
+ * {}, ... ] }, driver:"qcow2" }
+ */
+ if (virJSONValueObjectAdd(object,
+ "s:driver", virStorageFileFormatTypeToString(src->format),
+ NULL) < 0)
+ goto cleanup;
+ else
+ /* since we have already captured the format type, let's make it '0' to
+ * avoid further checks for format information
+ */
+ src->format = 0;
+
+ return object;
+
+cleanup:
+ virJSONValueFree(dict_array);
+ virJSONValueFree(parent);
+ virJSONValueFree(object);
+ return NULL;
+}
+
#define QEMU_DEFAULT_NBD_PORT "10809"
static char *
-qemuBuildNetworkDriveURI(virStorageSourcePtr src,
+qemuBuildNetworkDriveStr(virStorageSourcePtr src,
const char *username,
const char *secret)
{
char *ret = NULL;
+ char *str = NULL;
virBuffer buf = VIR_BUFFER_INITIALIZER;
virURIPtr uri = NULL;
+ virJSONValuePtr json = NULL;
size_t i;
switch ((virStorageNetProtocol) src->protocol) {
@@ -3331,61 +3421,67 @@ qemuBuildNetworkDriveURI(virStorageSourcePtr src,
case VIR_STORAGE_NET_PROTOCOL_TFTP:
case VIR_STORAGE_NET_PROTOCOL_ISCSI:
case VIR_STORAGE_NET_PROTOCOL_GLUSTER:
- if (src->nhosts != 1) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("protocol '%s' accepts only one host"),
- virStorageNetProtocolTypeToString(src->protocol));
- goto cleanup;
- }
-
- if (VIR_ALLOC(uri) < 0)
- goto cleanup;
-
- if (src->hosts->transport == VIR_STORAGE_NET_HOST_TRANS_TCP) {
- if (VIR_STRDUP(uri->scheme,
- virStorageNetProtocolTypeToString(src->protocol)) < 0)
+ if (src->nhosts == 1) {
+ /* URI syntax generation */
+ if (VIR_ALLOC(uri) < 0)
goto cleanup;
- } else {
- if (virAsprintf(&uri->scheme, "%s+%s",
- virStorageNetProtocolTypeToString(src->protocol),
- virStorageNetHostTransportTypeToString(src->hosts->transport)) < 0)
- goto cleanup;
- }
-
- if ((uri->port = qemuNetworkDriveGetPort(src->protocol, src->hosts->port)) < 0)
- goto cleanup;
- if (src->path) {
- if (src->volume) {
- if (virAsprintf(&uri->path, "/%s%s",
- src->volume, src->path) < 0)
+ if (src->hosts->transport == VIR_STORAGE_NET_HOST_TRANS_TCP) {
+ if (VIR_STRDUP(uri->scheme,
+ virStorageNetProtocolTypeToString(src->protocol)) < 0)
goto cleanup;
} else {
- if (virAsprintf(&uri->path, "%s%s",
- src->path[0] == '/' ? "" : "/",
- src->path) < 0)
+ if (virAsprintf(&uri->scheme, "%s+%s",
+ virStorageNetProtocolTypeToString(src->protocol),
+ virStorageNetHostTransportTypeToString(src->hosts->transport)) < 0)
goto cleanup;
}
- }
- if (src->hosts->socket &&
- virAsprintf(&uri->query, "socket=%s", src->hosts->socket) < 0)
- goto cleanup;
+ if ((uri->port = qemuNetworkDriveGetPort(src->protocol, src->hosts->port)) < 0)
+ goto cleanup;
- if (username) {
- if (secret) {
- if (virAsprintf(&uri->user, "%s:%s", username, secret) < 0)
- goto cleanup;
- } else {
- if (VIR_STRDUP(uri->user, username) < 0)
- goto cleanup;
+ if (src->path) {
+ if (src->volume) {
+ if (virAsprintf(&uri->path, "/%s%s",
+ src->volume, src->path) < 0)
+ goto cleanup;
+ } else {
+ if (virAsprintf(&uri->path, "%s%s",
+ src->path[0] == '/' ? "" : "/",
+ src->path) < 0)
+ goto cleanup;
+ }
}
- }
- if (VIR_STRDUP(uri->server, src->hosts->name) < 0)
- goto cleanup;
+ if (src->hosts->socket &&
+ virAsprintf(&uri->query, "socket=%s", src->hosts->socket) < 0)
+ goto cleanup;
- ret = virURIFormat(uri);
+ if (username) {
+ if (secret) {
+ if (virAsprintf(&uri->user, "%s:%s", username, secret) < 0)
+ goto cleanup;
+ } else {
+ if (VIR_STRDUP(uri->user, username) < 0)
+ goto cleanup;
+ }
+ }
+
+ if (VIR_STRDUP(uri->server, src->hosts->name) < 0)
+ goto cleanup;
+
+ ret = virURIFormat(uri);
+ } else {
+ /* switch to new json formated syntax */
+ if(!(json = qemuBuildGlusterDriveJSON(src)))
+ goto cleanup;
+
+ if (!(str = virJSONValueToString(json, false)))
+ goto cleanup;
+
+ if (virAsprintf (&ret, "json:%s", str) < 0)
+ goto cleanup;
+ }
break;
@@ -3472,7 +3568,9 @@ qemuBuildNetworkDriveURI(virStorageSourcePtr src,
}
cleanup:
+ VIR_FREE(str);
virBufferFreeAndReset(&buf);
+ virJSONValueFree(json);
virURIFree(uri);
return ret;
@@ -3530,7 +3628,7 @@ qemuGetDriveSourceString(virStorageSourcePtr src,
break;
case VIR_STORAGE_TYPE_NETWORK:
- if (!(*source = qemuBuildNetworkDriveURI(src, username, secret)))
+ if (!(*source = qemuBuildNetworkDriveStr(src, username, secret)))
goto cleanup;
break;
@@ -6391,7 +6489,7 @@ qemuBuildSCSIiSCSIHostdevDrvStr(virConnectPtr conn,
src.nhosts = iscsisrc->nhosts;
/* Rather than pull what we think we want - use the network disk code */
- source = qemuBuildNetworkDriveURI(&src, username, secret);
+ source = qemuBuildNetworkDriveStr(&src, username, secret);
cleanup:
VIR_FREE(secret);
--
2.1.0
9 years
[libvirt] [libvirt-python PATCH 00/23] Cleanup of the libvirt-python C code
by Pavel Hrdina
This patch series tries to cleanup the libvirt-python C code and also make it
more readable. It also fixes places, where we didn't checked for return values
and where we also returned wrong values in case of errors. There are some other
minor issues, that I've found.
Pavel Hrdina (23):
update virDomainGetVcpus xml API description
refactor the function to not override python exceptions
remove useless check for NULL before Py_XDECREF
drop unnecessary goto
Move utils and shared code into libvirt-utils
cleanup functions definition
indent labels by one space
fix indentation
wrap lines to 80 columns
Return NULL if python exception is set
Return correct python object
Return NULL and set an exception if allocation fails
Use VIR_PY_NONE instead
use Py_CLEAR instead of Py_XDECREF followed by NULL assignment
all Py*_New function has to be checked for return value
change the order of some statements
drop unnecessary py_retval variable
improve usage of cleanup paths
utils: introduce new macro helpers for tuple, list and dict objects
use VIR_PY_TUPLE_GOTO
use VYR_PY_LIST_SET_GOTO and VIR_PY_LIST_APPEND_GOTO
use VIR_PY_DICT_SET_GOTO
coverity: resolve dead_error_condition
libvirt-lxc-override.c | 61 +-
libvirt-override-api.xml | 4 +-
libvirt-override.c | 3156 +++++++++++++++++++++-------------------------
libvirt-qemu-override.c | 60 +-
libvirt-utils.c | 422 ++++++-
libvirt-utils.h | 133 ++
typewrappers.c | 65 +-
7 files changed, 2047 insertions(+), 1854 deletions(-)
--
2.5.3
9 years
[libvirt] [PATCH] spec: Delete .git after applying patches
by Cole Robinson
I'm hitting this little annoyance in fedora's package repo:
$ fedpkg prep
Downloading libvirt-1.2.20.tar.gz
...
+ /usr/bin/gzip -dc /home/crobinso/src/fedora/libvirt/libvirt-1.2.20.tar.gz
$ git clean -xdf
Removing libvirt-1.2.20.tar.gz
Skipping repository libvirt-1.2.20/
We git-ify the libvirt directory as part of applying patches in the spec
file, but 'git clean' will ignore subfolders that appear to be standalone
git repos.
Let's just delete the .git directory after we're done with it.
---
libvirt.spec.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index ed401f7..9dff994 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1256,6 +1256,7 @@ if [ $COUNT -gt 0 ]; then
fi
echo "Applied $COUNT patches"
rm -f $PATCHLIST
+rm -rf .git
%build
%if ! %{with_xen}
--
2.5.0
9 years
[libvirt] [PATCH] tests: qemu: Add aarch64 virtio pci tests
by Cole Robinson
- qemuxml2argv-aarch64-mmio-default-pci: Verify that we still default
to virtio-mmio even if qemu is new enough to support PCI
- qemuxml2argv-aarch64-virtio-pci: Check generated arm virtio PCI args
---
.../qemuxml2argv-aarch64-mmio-default-pci.args | 17 ++++++++
.../qemuxml2argv-aarch64-mmio-default-pci.xml | 48 ++++++++++++++++++++++
.../qemuxml2argv-aarch64-virtio-pci.args | 15 +++++++
.../qemuxml2argv-aarch64-virtio-pci.xml | 43 +++++++++++++++++++
tests/qemuxml2argvtest.c | 12 ++++++
5 files changed, 135 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-mmio-default-pci.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-mmio-default-pci.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci.xml
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-mmio-default-pci.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-mmio-default-pci.args
new file mode 100644
index 0000000..9720936
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-mmio-default-pci.args
@@ -0,0 +1,17 @@
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-aarch64 -S -M virt -cpu cortex-a53 -m 1024 -smp 1 \
+-nographic -nodefconfig -nodefaults \
+-monitor unix:/tmp/test-monitor,server,nowait -boot c \
+-kernel /aarch64.kernel -initrd /aarch64.initrd \
+-append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
+-dtb /aarch64.dtb -device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1 \
+-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x1 \
+-device virtio-serial-device,id=virtio-serial0 -usb \
+-drive file=/aarch64.raw,if=none,id=drive-virtio-disk0 \
+-device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
+-device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
+-net user,vlan=0,name=hostnet0 -serial pty -chardev pty,id=charconsole1 \
+-device virtconsole,chardev=charconsole1,id=console1 \
+-device virtio-balloon-device,id=balloon0 \
+-object rng-random,id=objrng0,filename=/dev/random \
+-device virtio-rng-device,rng=objrng0,id=rng0
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-mmio-default-pci.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-mmio-default-pci.xml
new file mode 100644
index 0000000..ad34615
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-mmio-default-pci.xml
@@ -0,0 +1,48 @@
+<domain type="qemu">
+ <name>aarch64test</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory>1048576</memory>
+ <currentMemory>1048576</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch="aarch64" machine="virt">hvm</type>
+ <kernel>/aarch64.kernel</kernel>
+ <initrd>/aarch64.initrd</initrd>
+ <dtb>/aarch64.dtb</dtb>
+ <cmdline>earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait</cmdline>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <pae/>
+ </features>
+ <cpu match='exact'>
+ <model>cortex-a53</model>
+ </cpu>
+ <clock offset="utc"/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <disk type='file' device='disk'>
+ <source file='/aarch64.raw'/>
+ <target dev='vda' bus='virtio'/>
+ </disk>
+ <interface type='user'>
+ <mac address='52:54:00:09:a4:37'/>
+ <model type='virtio'/>
+ </interface>
+ <console type='pty'/>
+ <console type='pty'>
+ <target type='virtio' port='0'/>
+ </console>
+ <memballoon model='virtio'/>
+ <!--
+ This actually doesn't work in practice because vexpress only has
+ 4 virtio slots available, rng makes 5 -->
+ <rng model='virtio'>
+ <backend model='random'>/dev/random</backend>
+ </rng>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci.args
new file mode 100644
index 0000000..3ae6e34
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci.args
@@ -0,0 +1,15 @@
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-aarch64 -S -M virt -cpu cortex-a53 -m 1024 -smp 1 \
+-nographic -nodefconfig -nodefaults \
+-monitor unix:/tmp/test-monitor,server,nowait -boot c \
+-kernel /aarch64.kernel -initrd /aarch64.initrd \
+-append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
+-dtb /aarch64.dtb -device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1 \
+-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x1 \
+-device virtio-scsi-pci,id=scsi0,bus=pcie.0,addr=0x3 \
+-usb -drive file=/aarch64.raw,if=none,id=drive-scsi0-0-0-0 \
+-device scsi-disk,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
+drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 \
+-device virtio-net-pci,vlan=0,id=net0,\
+mac=52:54:00:09:a4:37,bus=pcie.0,addr=0x2 \
+-net user,vlan=0,name=hostnet0
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci.xml
new file mode 100644
index 0000000..6a44f19
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci.xml
@@ -0,0 +1,43 @@
+<domain type='qemu'>
+ <name>aarch64test</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <currentMemory unit='KiB'>1048576</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='aarch64' machine='virt'>hvm</type>
+ <kernel>/aarch64.kernel</kernel>
+ <initrd>/aarch64.initrd</initrd>
+ <cmdline>earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait</cmdline>
+ <dtb>/aarch64.dtb</dtb>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <pae/>
+ </features>
+ <cpu mode='custom' match='exact'>
+ <model fallback='allow'>cortex-a53</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <disk type='file' device='disk'>
+ <source file='/aarch64.raw'/>
+ <target dev='sda' bus='scsi'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='scsi' index='0' model='virtio-scsi'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </controller>
+ <interface type='user'>
+ <mac address='52:54:00:09:a4:37'/>
+ <model type='virtio'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+ </interface>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index ae67779..ecfee11 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1632,6 +1632,18 @@ mymain(void)
QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB,
QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE_VIRTIO_MMIO,
QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM);
+ DO_TEST("aarch64-mmio-default-pci",
+ QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB,
+ QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE_VIRTIO_MMIO,
+ QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM,
+ QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE);
+ DO_TEST("aarch64-virtio-pci",
+ QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB,
+ QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE_VIRTIO_MMIO,
+ QEMU_CAPS_DEVICE_VIRTIO_RNG, QEMU_CAPS_OBJECT_RNG_RANDOM,
+ QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_DEVICE_PCI_BRIDGE,
+ QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, QEMU_CAPS_VIRTIO_SCSI);
DO_TEST("aarch64-aavmf-virtio-mmio",
QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DTB,
QEMU_CAPS_DRIVE, QEMU_CAPS_DEVICE_VIRTIO_MMIO,
--
2.5.0
9 years
[libvirt] [PATCH] docs: domain: Show canonical pvspinlock XML
by Cole Robinson
The example pvspinlock XML is:
<pvspinlock/>
While this is accepted by libvirt and works correctly, it's currently
always output as a tristate like
<pvspinlock state='on'/>
So document that format instead
---
docs/formatdomain.html.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index efa485c..c88b032 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1464,7 +1464,7 @@
<kvm>
<hidden state='on'/>
</kvm>
- <pvspinlock/>
+ <pvspinlock state='on'/>
<gic version='2'/>
</features>
--
2.5.0
9 years
[libvirt] [PATCH 0/5] qemu: Wait until destination QEMU consumes all migration data
by Jiri Denemark
Even though QEMU on the source host reports completed migration and thus
we move to the Finish phase, QEMU on the destination host may still be
processing migration data. Thus before we can start guest CPUs on the
destination, we have to wait for a completed migration event.
https://bugzilla.redhat.com/show_bug.cgi?id=1265902
Jiri Denemark (5):
qemu: Always update migration times on destination
qemu: Copy completed migration stats only on success
qemu: Introduce flags in qemuMigrationCompleted
qemu: Make updating stats in qemuMigrationCheckJobStatus optional
qemu: Wait until destination QEMU consumes all migration data
src/qemu/qemu_migration.c | 86 ++++++++++++++++++++++++++++++++++-------------
1 file changed, 63 insertions(+), 23 deletions(-)
--
2.6.0
9 years