[libvirt] [PATCH 0/4] storage: Add a 'created' boolean for buildVol[From]
by John Ferlan
In the review of a recent series dealing with a needing to refresh a pool
prior to adding a new volume:
http://www.redhat.com/archives/libvir-list/2015-October/msg00109.html
it was noted that there would be a small timing window possible between
the check and the actual volume creation attempt. Michal noted that we
could add a 'created' type flag in order to "know" whether the libvirt
API's created the volume or not during their buildVol API. As these
things usually do, this also morphed into also needing the same boolean
for the buildVolFrom API.
So that's what this series does... Ok mostly, patch 1 doesn't have anything
to do with this, but I saw the anomaly why working my way through the code.
John Ferlan (4):
storage: Perform some cleanup of calls
storage: Add created to virFileOpenAs
storage: Add created to virDirCreate
storage: Add checks for buildVol create file
src/libxl/libxl_domain.c | 3 ++-
src/libxl/libxl_driver.c | 3 ++-
src/qemu/qemu_driver.c | 7 +++++--
src/qemu/qemu_process.c | 6 +++---
src/storage/storage_backend.c | 28 ++++++++++++++++------------
src/storage/storage_backend.h | 3 +++
src/storage/storage_backend_disk.c | 3 ++-
src/storage/storage_backend_fs.c | 22 +++++++++++++++++-----
src/storage/storage_backend_logical.c | 3 ++-
src/storage/storage_backend_rbd.c | 2 ++
src/storage/storage_backend_sheepdog.c | 2 ++
src/storage/storage_driver.c | 16 +++++++++++-----
src/util/virfile.c | 23 ++++++++++++++++++-----
src/util/virfile.h | 4 ++--
src/util/virstoragefile.c | 3 ++-
15 files changed, 89 insertions(+), 39 deletions(-)
--
2.1.0
9 years, 2 months
[libvirt] [PATCH v4] qemu: Validate address type when attaching a disk device.
by Ruifeng Bian
Bug fix for: https://bugzilla.redhat.com/show_bug.cgi?id=1257844
Attach-device can hotplug a virtio disk device with any address type now,
it need to validate the address type before the attachment.
Attaching a disk device with --config option need to check address type.
Otherwise, the domain cloudn't be started normally. This patch add a basic
check for address type.
Detaching a disk device with --config also need to check disk options,
add qemuCheckDiskConfig() method in qemuDomainDetachDeviceConfig().
Add virDomainDeviceAddressTypeIsValid method in domain_conf to check disk
address type. Address type should match with disk driver, report error
messages if any mismatch.
Signed-off-by: Ruifeng Bian <rbian(a)redhat.com>
---
src/conf/domain_conf.c | 32 ++++++++++++++++++++++++++++++++
src/conf/domain_conf.h | 1 +
src/libvirt_private.syms | 1 +
src/qemu/qemu_command.c | 7 +++++++
src/qemu/qemu_driver.c | 2 ++
src/qemu/qemu_hotplug.c | 22 ++++++++++++++++++++++
6 files changed, 65 insertions(+)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 6df1618..f86760b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -3200,6 +3200,38 @@ int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
return 0;
}
+int virDomainDeviceAddressTypeIsValid(virDomainDiskDefPtr disk)
+{
+ if (disk->info.type) {
+ switch (disk->bus) {
+ case VIR_DOMAIN_DISK_BUS_IDE:
+ case VIR_DOMAIN_DISK_BUS_SCSI:
+ case VIR_DOMAIN_DISK_BUS_SATA:
+ case VIR_DOMAIN_DISK_BUS_FDC:
+ if (disk->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE)
+ return 1;
+ break;
+ case VIR_DOMAIN_DISK_BUS_USB:
+ if (disk->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB)
+ return 1;
+ break;
+ case VIR_DOMAIN_DISK_BUS_VIRTIO:
+ if (disk->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW &&
+ disk->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390 &&
+ disk->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO &&
+ disk->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)
+ return 1;
+ break;
+ case VIR_DOMAIN_DISK_BUS_XEN:
+ case VIR_DOMAIN_DISK_BUS_UML:
+ case VIR_DOMAIN_DISK_BUS_SD:
+ /* no address type currently, return false if address provided */
+ return 1;
+ }
+ }
+ return 0;
+}
+
virDomainDeviceInfoPtr
virDomainDeviceGetInfo(virDomainDeviceDefPtr device)
{
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index f043554..337fe51 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2543,6 +2543,7 @@ virDomainDeviceDefPtr virDomainDeviceDefCopy(virDomainDeviceDefPtr src,
virDomainXMLOptionPtr xmlopt);
int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
int type);
+int virDomainDeviceAddressTypeIsValid(virDomainDiskDefPtr disk);
virDomainDeviceInfoPtr virDomainDeviceGetInfo(virDomainDeviceDefPtr device);
int virDomainDeviceInfoCopy(virDomainDeviceInfoPtr dst,
virDomainDeviceInfoPtr src);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 5b3da83..6cd5b9e 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -229,6 +229,7 @@ virDomainDefPostParse;
virDomainDefSetMemoryInitial;
virDomainDeleteConfig;
virDomainDeviceAddressIsValid;
+virDomainDeviceAddressTypeIsValid;
virDomainDeviceAddressTypeToString;
virDomainDeviceDefCheckUnsupportedMemoryDevice;
virDomainDeviceDefCopy;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 25f57f2..56ba08d 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3606,6 +3606,13 @@ qemuCheckDiskConfig(virDomainDiskDefPtr disk)
goto error;
}
}
+
+ if (virDomainDeviceAddressTypeIsValid(disk)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("disk cannot have an address of type '%s'"),
+ virDomainDeviceAddressTypeToString(disk->info.type));
+ goto error;
+ }
return 0;
error:
return -1;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index fcf86b6..26c1502 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -8208,6 +8208,8 @@ qemuDomainDetachDeviceConfig(virDomainDefPtr vmdef,
switch ((virDomainDeviceType) dev->type) {
case VIR_DOMAIN_DEVICE_DISK:
disk = dev->data.disk;
+ if (qemuCheckDiskConfig(disk) < 0)
+ return -1;
if (!(det_disk = virDomainDiskRemoveByName(vmdef, disk->dst))) {
virReportError(VIR_ERR_INVALID_ARG,
_("no target device %s"), disk->dst);
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index e84a78d..6156243 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -336,6 +336,28 @@ qemuDomainAttachVirtioDiskDevice(virConnectPtr conn,
if (!qemuCheckCCWS390AddressSupport(vm->def, disk->info, priv->qemuCaps,
disk->dst))
goto cleanup;
+
+ if (qemuDomainMachineIsS390CCW(vm->def) &&
+ virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_VIRTIO_CCW)) {
+ if (!virDomainDeviceAddressIsValid(&disk->info,
+ VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW)) {
+ virReportError(VIR_ERR_OPERATION_FAILED, "%s",
+ _("device cannot be attached without a valid CCW address"));
+ goto cleanup;
+ }
+ } else if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_VIRTIO_S390)) {
+ if (!virDomainDeviceAddressIsValid(&disk->info,
+ VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390)) {
+ virReportError(VIR_ERR_OPERATION_FAILED, "%s",
+ _("device cannot be attached without a valid S390 address"));
+ goto cleanup;
+ }
+ } else if (!virDomainDeviceAddressIsValid(&disk->info,
+ VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)) {
+ virReportError(VIR_ERR_OPERATION_FAILED, "%s",
+ _("device cannot be attached without a valid PCI address"));
+ goto cleanup;
+ }
}
for (i = 0; i < vm->def->ndisks; i++) {
--
2.4.3
9 years, 2 months
[libvirt] [PATCH 0/8] Resolve some storage and disk backend issues
by John Ferlan
The following patches resolve a few issues either explicitly generated
via a bz or seen while investigating/testing the results from bzs.
Patches 1-2 were discovered while working through patch 3. I found that
deleting volumes from a pool was always going through the fork processing.
I neglected to recall that when the volume was placed into the pool the
mode, uid, & gid values can be updated. Thus on some delete paths we may
not be called with -1 values. Because we were going through the fork
processing I found that the error message displayed when a volume target
no longer exists was wrong - that is the caller was expecting a return
of -1 and errno being set. In this case looking for ENOENT and continuing
on with removal of the volume from the pool.
Patch 3 stands by itself - it's certainly one of those that could be
deemed don't do that, but since we do check whether the volume was
removed without libvirt doing the removal, I guess we should check
whether the volume exists before trying to create it and using the
refresh pool is the simplest mechanism for all pools.
Patches 4-7 are intertwined - the disk backend code made the assumption
that the volume/device being used for the pool was "good". The normal
mode of operation is to define, build, start, but there's never been
a "guarantee" or check that what is "on" the volume is valid for the
type of pool
Patch 8 was disk backend related - so while I'm in the code, I may as
well make the change as well.
John Ferlan (8):
virfile: Add extra check for direct delete in virFileRemove
virfile: Fix error path for forked virFileRemove
storage: Prior to creating a volume, refresh the pool
storage: Refactor disk label checking
storage: Add param to check whether we can write a disk label
storage: Add additional errors/checks for disk label
storage: Introduce virStorageBackendDiskStartPool
storage: Adjust calculation of alloc/capacity for disk
src/libvirt_private.syms | 1 +
src/storage/storage_backend_disk.c | 162 ++++++++++++++++++++++++++++++-------
src/storage/storage_driver.c | 9 +++
src/util/virfile.c | 11 ++-
4 files changed, 151 insertions(+), 32 deletions(-)
--
2.1.0
9 years, 2 months
[libvirt] [PATCH v2 0/6] Fix some Coverity issues
by John Ferlan
This series is based off the review of patch 1 from the series:
http://www.redhat.com/archives/libvir-list/2015-September/msg00841.html
In review of patch 1:
http://www.redhat.com/archives/libvir-list/2015-September/msg00859.html
it was noted that instead of using sa_assert, the proper checks should be
made. During investigation, I found that while the caller could check for
a non-NULL "first" parameter that ends up being used for strtok_r, that
was not "good enough" for Coverity which still needed to consider the
function where the to be first param cannot be NULL.
In any case, I separated out each into their own patch rather than
lumping them together.
Patches 1-4 should be relatively straightforward.
Patch 5 is new - it's one that I had been working on and finally
figured out what the issue is/was. It was a bit more complex and hidden.
Patch 6 was from the original patch 1, but it's review had a comment
regarding using virBitmap* instead of the open coding. This one I
believe I have intoned the magic words to make it better, but since
I don't use xenapi, perhaps extra care would be necessary to make
sure I got it right.
John Ferlan (6):
openvz: Resolve Coverity FORWARD_NULL
openvz: Resolve Coverity FORWARD_NULL
libxl: Resolve Coverity FORWARD_NULL
esx: Resolve Coverity FORWARD_NULL
qemu: Resolve Coverity FORWARD_NULL
xenapi: Resolve Coverity FORWARD_NULL
src/esx/esx_vi.c | 5 +++++
src/libxl/libxl_conf.c | 6 ++++++
src/openvz/openvz_conf.c | 8 ++++----
src/qemu/qemu_process.c | 14 ++++++++++++--
src/xenapi/xenapi_driver.c | 12 +++++++-----
src/xenapi/xenapi_utils.c | 21 ---------------------
src/xenapi/xenapi_utils.h | 2 --
7 files changed, 34 insertions(+), 34 deletions(-)
--
2.1.0
9 years, 2 months
[libvirt] [PATCH] tests: eventtest: Fix coverity warning
by Cole Robinson
We can ignore the result of virtTestResult here, because failure is
unconditionally reported by the callers
---
tests/eventtest.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/eventtest.c b/tests/eventtest.c
index 625be86..c4be606 100644
--- a/tests/eventtest.c
+++ b/tests/eventtest.c
@@ -92,7 +92,7 @@ testEventReport(const char *name, bool failed, const char *msg, ...)
data.failed = failed;
data.msg = str;
- virtTestRun(name, testEventResultCallback, &data);
+ ignore_value(virtTestRun(name, testEventResultCallback, &data));
va_end(vargs);
VIR_FREE(str);
--
2.5.0
9 years, 2 months
[libvirt] [PATCH] virSecurityManagerNew: Turn array of booleans into flags
by Michal Privoznik
So imagine you want to crate new security manager:
if (!(mgr = virSecurityManagerNew("selinux", "QEMU", false, true, false, true)));
Hard to parse, right? What about this:
if (!(mgr = virSecurityManagerNew("selinux", "QEMU",
VIR_SECURITY_MANAGER_DEFAULT_CONFINED |
VIR_SECURITY_MANAGER_PRIVILEGED)));
Now that's better! This is what the commit does.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/lxc/lxc_controller.c | 3 +-
src/lxc/lxc_driver.c | 14 +++++---
src/qemu/qemu_driver.c | 28 ++++++++--------
src/security/security_manager.c | 70 +++++++++++++---------------------------
src/security/security_manager.h | 25 ++++++++------
tests/qemuhotplugtest.c | 3 +-
tests/seclabeltest.c | 2 +-
tests/securityselinuxlabeltest.c | 4 ++-
tests/securityselinuxtest.c | 4 ++-
9 files changed, 72 insertions(+), 81 deletions(-)
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index b064919..3e5d2b4 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -2645,8 +2645,7 @@ int main(int argc, char *argv[])
ctrl->handshakeFd = handshakeFd;
if (!(ctrl->securityManager = virSecurityManagerNew(securityDriver,
- LXC_DRIVER_NAME,
- false, false, false, false)))
+ LXC_DRIVER_NAME, 0)))
goto cleanup;
if (ctrl->def->seclabels) {
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index b408be0..1a9550e 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -1556,13 +1556,17 @@ static int lxcCheckNetNsSupport(void)
static virSecurityManagerPtr
lxcSecurityInit(virLXCDriverConfigPtr cfg)
{
+ unsigned int flags = VIR_SECURITY_MANAGER_PRIVILEGED;
+
VIR_INFO("lxcSecurityInit %s", cfg->securityDriverName);
+
+ if (cfg->securityDefaultConfined)
+ flags |= VIR_SECURITY_MANAGER_DEFAULT_CONFINED;
+ if (cfg->securityRequireConfined)
+ flags |= VIR_SECURITY_MANAGER_REQUIRE_CONFINED;
+
virSecurityManagerPtr mgr = virSecurityManagerNew(cfg->securityDriverName,
- LXC_DRIVER_NAME,
- false,
- cfg->securityDefaultConfined,
- cfg->securityRequireConfined,
- true);
+ LXC_DRIVER_NAME, flags);
if (!mgr)
goto error;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index aff1915..598d159 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -389,6 +389,16 @@ qemuSecurityInit(virQEMUDriverPtr driver)
virSecurityManagerPtr mgr = NULL;
virSecurityManagerPtr stack = NULL;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
+ unsigned int flags = 0;
+
+ if (cfg->allowDiskFormatProbing)
+ flags |= VIR_SECURITY_MANAGER_ALLOW_DISK_PROBE;
+ if (cfg->securityDefaultConfined)
+ flags |= VIR_SECURITY_MANAGER_DEFAULT_CONFINED;
+ if (cfg->securityRequireConfined)
+ flags |= VIR_SECURITY_MANAGER_REQUIRE_CONFINED;
+ if (virQEMUDriverIsPrivileged(driver))
+ flags |= VIR_SECURITY_MANAGER_PRIVILEGED;
if (cfg->securityDriverNames &&
cfg->securityDriverNames[0]) {
@@ -396,10 +406,7 @@ qemuSecurityInit(virQEMUDriverPtr driver)
while (names && *names) {
if (!(mgr = virSecurityManagerNew(*names,
QEMU_DRIVER_NAME,
- cfg->allowDiskFormatProbing,
- cfg->securityDefaultConfined,
- cfg->securityRequireConfined,
- virQEMUDriverIsPrivileged(driver))))
+ flags)))
goto error;
if (!stack) {
if (!(stack = virSecurityManagerNewStack(mgr)))
@@ -414,10 +421,7 @@ qemuSecurityInit(virQEMUDriverPtr driver)
} else {
if (!(mgr = virSecurityManagerNew(NULL,
QEMU_DRIVER_NAME,
- cfg->allowDiskFormatProbing,
- cfg->securityDefaultConfined,
- cfg->securityRequireConfined,
- virQEMUDriverIsPrivileged(driver))))
+ flags)))
goto error;
if (!(stack = virSecurityManagerNewStack(mgr)))
goto error;
@@ -425,14 +429,12 @@ qemuSecurityInit(virQEMUDriverPtr driver)
}
if (virQEMUDriverIsPrivileged(driver)) {
+ if (cfg->dynamicOwnership)
+ flags |= VIR_SECURITY_MANAGER_DYNAMIC_OWNERSHIP;
if (!(mgr = virSecurityManagerNewDAC(QEMU_DRIVER_NAME,
cfg->user,
cfg->group,
- cfg->allowDiskFormatProbing,
- cfg->securityDefaultConfined,
- cfg->securityRequireConfined,
- cfg->dynamicOwnership,
- virQEMUDriverIsPrivileged(driver),
+ flags,
qemuSecurityChownCallback)))
goto error;
if (!stack) {
diff --git a/src/security/security_manager.c b/src/security/security_manager.c
index 28d7dfd..46b1a25 100644
--- a/src/security/security_manager.c
+++ b/src/security/security_manager.c
@@ -37,10 +37,7 @@ struct _virSecurityManager {
virObjectLockable parent;
virSecurityDriverPtr drv;
- bool allowDiskFormatProbing;
- bool defaultConfined;
- bool requireConfined;
- bool privileged;
+ unsigned int flags;
const char *virtDriver;
void *privateData;
};
@@ -77,10 +74,7 @@ VIR_ONCE_GLOBAL_INIT(virSecurityManager);
static virSecurityManagerPtr
virSecurityManagerNewDriver(virSecurityDriverPtr drv,
const char *virtDriver,
- bool allowDiskFormatProbing,
- bool defaultConfined,
- bool requireConfined,
- bool privileged)
+ unsigned int flags)
{
virSecurityManagerPtr mgr;
char *privateData;
@@ -88,11 +82,10 @@ virSecurityManagerNewDriver(virSecurityDriverPtr drv,
if (virSecurityManagerInitialize() < 0)
return NULL;
- VIR_DEBUG("drv=%p (%s) virtDriver=%s allowDiskFormatProbing=%d "
- "defaultConfined=%d requireConfined=%d privileged=%d",
- drv, drv->name, virtDriver,
- allowDiskFormatProbing, defaultConfined,
- requireConfined, privileged);
+ VIR_DEBUG("drv=%p (%s) virtDriver=%s flags=%x",
+ drv, drv->name, virtDriver, flags);
+
+ virCheckFlags(VIR_SECURITY_MANAGER_NEW_MASK, NULL);
if (VIR_ALLOC_N(privateData, drv->privateDataLen) < 0)
return NULL;
@@ -103,10 +96,7 @@ virSecurityManagerNewDriver(virSecurityDriverPtr drv,
}
mgr->drv = drv;
- mgr->allowDiskFormatProbing = allowDiskFormatProbing;
- mgr->defaultConfined = defaultConfined;
- mgr->requireConfined = requireConfined;
- mgr->privileged = privileged;
+ mgr->flags = flags;
mgr->virtDriver = virtDriver;
mgr->privateData = privateData;
@@ -125,10 +115,7 @@ virSecurityManagerNewStack(virSecurityManagerPtr primary)
virSecurityManagerPtr mgr =
virSecurityManagerNewDriver(&virSecurityDriverStack,
virSecurityManagerGetDriver(primary),
- virSecurityManagerGetAllowDiskFormatProbing(primary),
- virSecurityManagerGetDefaultConfined(primary),
- virSecurityManagerGetRequireConfined(primary),
- virSecurityManagerGetPrivileged(primary));
+ primary->flags);
if (!mgr)
return NULL;
@@ -153,20 +140,13 @@ virSecurityManagerPtr
virSecurityManagerNewDAC(const char *virtDriver,
uid_t user,
gid_t group,
- bool allowDiskFormatProbing,
- bool defaultConfined,
- bool requireConfined,
- bool dynamicOwnership,
- bool privileged,
+ unsigned int flags,
virSecurityManagerDACChownCallback chownCallback)
{
virSecurityManagerPtr mgr =
virSecurityManagerNewDriver(&virSecurityDriverDAC,
virtDriver,
- allowDiskFormatProbing,
- defaultConfined,
- requireConfined,
- privileged);
+ flags & VIR_SECURITY_MANAGER_NEW_MASK);
if (!mgr)
return NULL;
@@ -176,7 +156,7 @@ virSecurityManagerNewDAC(const char *virtDriver,
return NULL;
}
- virSecurityDACSetDynamicOwnership(mgr, dynamicOwnership);
+ virSecurityDACSetDynamicOwnership(mgr, flags & VIR_SECURITY_MANAGER_DYNAMIC_OWNERSHIP);
virSecurityDACSetChownCallback(mgr, chownCallback);
return mgr;
@@ -186,10 +166,7 @@ virSecurityManagerNewDAC(const char *virtDriver,
virSecurityManagerPtr
virSecurityManagerNew(const char *name,
const char *virtDriver,
- bool allowDiskFormatProbing,
- bool defaultConfined,
- bool requireConfined,
- bool privileged)
+ unsigned int flags)
{
virSecurityDriverPtr drv = virSecurityDriverLookup(name, virtDriver);
if (!drv)
@@ -197,13 +174,13 @@ virSecurityManagerNew(const char *name,
/* driver "none" needs some special handling of *Confined bools */
if (STREQ(drv->name, "none")) {
- if (requireConfined) {
+ if (flags & VIR_SECURITY_MANAGER_REQUIRE_CONFINED) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Security driver \"none\" cannot create confined guests"));
return NULL;
}
- if (defaultConfined) {
+ if (flags & VIR_SECURITY_MANAGER_DEFAULT_CONFINED) {
if (name != NULL) {
VIR_WARN("Configured security driver \"none\" disables default"
" policy to create confined guests");
@@ -211,16 +188,13 @@ virSecurityManagerNew(const char *name,
VIR_DEBUG("Auto-probed security driver is \"none\";"
" confined guests will not be created");
}
- defaultConfined = false;
+ flags &= ~VIR_SECURITY_MANAGER_DEFAULT_CONFINED;
}
}
return virSecurityManagerNewDriver(drv,
virtDriver,
- allowDiskFormatProbing,
- defaultConfined,
- requireConfined,
- privileged);
+ flags);
}
@@ -323,28 +297,28 @@ virSecurityManagerGetBaseLabel(virSecurityManagerPtr mgr,
bool
virSecurityManagerGetAllowDiskFormatProbing(virSecurityManagerPtr mgr)
{
- return mgr->allowDiskFormatProbing;
+ return mgr->flags & VIR_SECURITY_MANAGER_ALLOW_DISK_PROBE;
}
bool
virSecurityManagerGetDefaultConfined(virSecurityManagerPtr mgr)
{
- return mgr->defaultConfined;
+ return mgr->flags & VIR_SECURITY_MANAGER_DEFAULT_CONFINED;
}
bool
virSecurityManagerGetRequireConfined(virSecurityManagerPtr mgr)
{
- return mgr->requireConfined;
+ return mgr->flags & VIR_SECURITY_MANAGER_REQUIRE_CONFINED;
}
bool
virSecurityManagerGetPrivileged(virSecurityManagerPtr mgr)
{
- return mgr->privileged;
+ return mgr->flags & VIR_SECURITY_MANAGER_PRIVILEGED;
}
@@ -611,7 +585,7 @@ virSecurityManagerGenLabel(virSecurityManagerPtr mgr,
}
if (seclabel->type == VIR_DOMAIN_SECLABEL_DEFAULT) {
- if (sec_managers[i]->defaultConfined) {
+ if (virSecurityManagerGetDefaultConfined(sec_managers[i])) {
seclabel->type = VIR_DOMAIN_SECLABEL_DYNAMIC;
} else {
seclabel->type = VIR_DOMAIN_SECLABEL_NONE;
@@ -620,7 +594,7 @@ virSecurityManagerGenLabel(virSecurityManagerPtr mgr,
}
if (seclabel->type == VIR_DOMAIN_SECLABEL_NONE) {
- if (sec_managers[i]->requireConfined) {
+ if (virSecurityManagerGetRequireConfined(sec_managers[i])) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Unconfined guests are not allowed on this host"));
goto cleanup;
diff --git a/src/security/security_manager.h b/src/security/security_manager.h
index 53e56f6..e534e31 100644
--- a/src/security/security_manager.h
+++ b/src/security/security_manager.h
@@ -30,12 +30,23 @@
typedef struct _virSecurityManager virSecurityManager;
typedef virSecurityManager *virSecurityManagerPtr;
+typedef enum {
+ VIR_SECURITY_MANAGER_ALLOW_DISK_PROBE = 1 << 0,
+ VIR_SECURITY_MANAGER_DEFAULT_CONFINED = 1 << 1,
+ VIR_SECURITY_MANAGER_REQUIRE_CONFINED = 1 << 2,
+ VIR_SECURITY_MANAGER_PRIVILEGED = 1 << 3,
+ VIR_SECURITY_MANAGER_DYNAMIC_OWNERSHIP = 1 << 4,
+} virSecurityManagerNewFlags;
+
+# define VIR_SECURITY_MANAGER_NEW_MASK \
+ (VIR_SECURITY_MANAGER_ALLOW_DISK_PROBE | \
+ VIR_SECURITY_MANAGER_DEFAULT_CONFINED | \
+ VIR_SECURITY_MANAGER_REQUIRE_CONFINED | \
+ VIR_SECURITY_MANAGER_PRIVILEGED)
+
virSecurityManagerPtr virSecurityManagerNew(const char *name,
const char *virtDriver,
- bool allowDiskFormatProbing,
- bool defaultConfined,
- bool requireConfined,
- bool privileged);
+ unsigned int flags);
virSecurityManagerPtr virSecurityManagerNewStack(virSecurityManagerPtr primary);
int virSecurityManagerStackAddNested(virSecurityManagerPtr stack,
@@ -59,11 +70,7 @@ typedef int
virSecurityManagerPtr virSecurityManagerNewDAC(const char *virtDriver,
uid_t user,
gid_t group,
- bool allowDiskFormatProbing,
- bool defaultConfined,
- bool requireConfined,
- bool dynamicOwnership,
- bool privileged,
+ unsigned int flags,
virSecurityManagerDACChownCallback chownCallback);
int virSecurityManagerPreFork(virSecurityManagerPtr mgr);
diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index 2135b5a..2c5c48f 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -364,7 +364,8 @@ mymain(void)
if (!driver.lockManager)
return EXIT_FAILURE;
- if (!(mgr = virSecurityManagerNew("none", "qemu", false, false, false, true)))
+ if (!(mgr = virSecurityManagerNew("none", "qemu",
+ VIR_SECURITY_MANAGER_PRIVILEGED)))
return EXIT_FAILURE;
if (!(driver.securityManager = virSecurityManagerNewStack(mgr)))
return EXIT_FAILURE;
diff --git a/tests/seclabeltest.c b/tests/seclabeltest.c
index 93ddcbb..6b1e789 100644
--- a/tests/seclabeltest.c
+++ b/tests/seclabeltest.c
@@ -17,7 +17,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
if (virThreadInitialize() < 0)
return EXIT_FAILURE;
- mgr = virSecurityManagerNew(NULL, "QEMU", false, true, false, false);
+ mgr = virSecurityManagerNew(NULL, "QEMU", VIR_SECURITY_MANAGER_DEFAULT_CONFINED);
if (mgr == NULL) {
fprintf(stderr, "Failed to start security driver");
return EXIT_FAILURE;
diff --git a/tests/securityselinuxlabeltest.c b/tests/securityselinuxlabeltest.c
index 4b8fa6f..86660f4 100644
--- a/tests/securityselinuxlabeltest.c
+++ b/tests/securityselinuxlabeltest.c
@@ -351,7 +351,9 @@ mymain(void)
if (!rc)
return EXIT_AM_SKIP;
- if (!(mgr = virSecurityManagerNew("selinux", "QEMU", false, true, false, true))) {
+ if (!(mgr = virSecurityManagerNew("selinux", "QEMU",
+ VIR_SECURITY_MANAGER_DEFAULT_CONFINED |
+ VIR_SECURITY_MANAGER_PRIVILEGED))) {
virErrorPtr err = virGetLastError();
VIR_TEST_VERBOSE("Unable to initialize security driver: %s\n",
err->message);
diff --git a/tests/securityselinuxtest.c b/tests/securityselinuxtest.c
index 3a7862f..49694f3 100644
--- a/tests/securityselinuxtest.c
+++ b/tests/securityselinuxtest.c
@@ -272,7 +272,9 @@ mymain(void)
int ret = 0;
virSecurityManagerPtr mgr;
- if (!(mgr = virSecurityManagerNew("selinux", "QEMU", false, true, false, true))) {
+ if (!(mgr = virSecurityManagerNew("selinux", "QEMU",
+ VIR_SECURITY_MANAGER_DEFAULT_CONFINED |
+ VIR_SECURITY_MANAGER_PRIVILEGED))) {
virErrorPtr err = virGetLastError();
fprintf(stderr, "Unable to initialize security driver: %s\n",
err->message);
--
2.4.9
9 years, 2 months
[libvirt] [PATCH 0/3] tests: Drop virtTestResult
by Cole Robinson
virtTestResult poorly duplicates logic from virtTestRun. We could fix it,
but there's really only one legitimate user in eventtest.c, so drop the
improper users, and opencode the legit usage. More justification in the
last patch
Thanks,
Cole
Cole Robinson (3):
tests: sheepdog: Drop use of virtTestResult
tests: eventtest: Open code virtTestResult
testutils: Drop virtTestResult
tests/eventtest.c | 57 ++++++++++++++++++++++++++++------
tests/storagebackendsheepdogtest.c | 63 ++++++++++++++++++++++++++++----------
tests/testutils.c | 38 -----------------------
tests/testutils.h | 2 --
4 files changed, 94 insertions(+), 66 deletions(-)
--
2.5.0
9 years, 2 months
[libvirt] [PATCH 0/2] tests: Add nodeinfo test data utility scripts
by Andrea Bolognani
Both scripts can be useful when adding new test cases to the
nodeinfo test.
Andrea Bolognani (2):
tests: Add script to display nodeinfo test data
tests: Add script to copy nodeinfo test data from host
tests/nodeinfodata/copy-from-host.sh | 170 +++++++++++++++++++++++++++++++++++
tests/nodeinfodata/display.sh | 101 +++++++++++++++++++++
2 files changed, 271 insertions(+)
create mode 100755 tests/nodeinfodata/copy-from-host.sh
create mode 100755 tests/nodeinfodata/display.sh
--
2.4.3
9 years, 2 months
[libvirt] [PATCH v2] qemu: Remove explicit values from virQEMUCapsFlags
by Andrea Bolognani
This gets rid of the partially enforced alignment and makes it less
likely for a bogus value to be introduced in the enumeration.
Use #define for QEMU_CAPS_NET_NAME and QEMU_CAPS_HOST_NET_ADD, both
of which are aliases for QEMU_CAPS_0_10.
---
First attempt was
[libvirt] [PATCH] qemu: Align virQEMUCapsFlags members
https://www.redhat.com/archives/libvir-list/2015-October/msg00112.html
Changes based on suggestions from Dan and Jirka.
src/qemu/qemu_capabilities.h | 415 +++++++++++++++++++++----------------------
1 file changed, 206 insertions(+), 209 deletions(-)
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index a1d98d0..b5b1af4 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -32,217 +32,214 @@
/* 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 */
-
- /* 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_KQEMU, /* Whether KQEMU is compiled in */
+ QEMU_CAPS_VNC_COLON, /* VNC takes or address + display */
+ QEMU_CAPS_NO_REBOOT, /* Is the -no-reboot flag available */
+ QEMU_CAPS_DRIVE, /* Is the new -drive arg available */
+ QEMU_CAPS_DRIVE_BOOT, /* Does -drive support boot=on */
+ QEMU_CAPS_NAME, /* Is the -name flag available */
+ QEMU_CAPS_UUID, /* Is the -uuid flag available */
+ QEMU_CAPS_DOMID, /* Xenner: -domid flag available */
+ QEMU_CAPS_VNET_HDR,
+ QEMU_CAPS_MIGRATE_KVM_STDIO, /* avoid kvm tcp migration bug */
+ QEMU_CAPS_MIGRATE_QEMU_TCP, /* have qemu tcp migration */
+ QEMU_CAPS_MIGRATE_QEMU_EXEC, /* have qemu exec migration */
+ QEMU_CAPS_DRIVE_CACHE_V2, /* cache= flag wanting new v2 values */
+ QEMU_CAPS_KVM, /* Whether KVM is enabled by default */
+ QEMU_CAPS_DRIVE_FORMAT, /* Is -drive format= avail */
+ QEMU_CAPS_VGA, /* Is -vga avail */
+ QEMU_CAPS_0_10, /* features added in qemu-0.10.0 or later */
+ QEMU_CAPS_PCIDEVICE, /* PCI device assignment supported */
+ QEMU_CAPS_MEM_PATH, /* mmap'ped guest backing supported */
+ QEMU_CAPS_DRIVE_SERIAL, /* -driver serial= available */
+ QEMU_CAPS_XEN_DOMID, /* -xen-domid */
+ QEMU_CAPS_MIGRATE_QEMU_UNIX, /* qemu migration via unix sockets */
+ QEMU_CAPS_CHARDEV, /* Is the new -chardev arg available */
+ QEMU_CAPS_ENABLE_KVM, /* -enable-kvm flag */
+ QEMU_CAPS_MONITOR_JSON, /* JSON mode for monitor */
+ QEMU_CAPS_BALLOON, /* -balloon available */
+ QEMU_CAPS_DEVICE, /* Is the new -device arg available */
+ QEMU_CAPS_SDL, /* Is the new -sdl arg available */
+ QEMU_CAPS_SMP_TOPOLOGY, /* -smp has sockets/cores/threads */
+ QEMU_CAPS_NETDEV, /* -netdev flag & netdev_add/remove */
+ QEMU_CAPS_RTC, /* The -rtc flag for clock options */
+ QEMU_CAPS_VHOST_NET, /* vhost-net support available */
+ QEMU_CAPS_RTC_TD_HACK, /* -rtc-td-hack available */
+ QEMU_CAPS_NO_HPET, /* -no-hpet flag is supported */
+ QEMU_CAPS_NO_KVM_PIT, /* -no-kvm-pit-reinjection supported */
+ QEMU_CAPS_TDF, /* -tdf flag (user-mode pit catchup) */
+ QEMU_CAPS_PCI_CONFIGFD, /* pci-assign.configfd */
+ QEMU_CAPS_NODEFCONFIG, /* -nodefconfig */
+ QEMU_CAPS_BOOT_MENU, /* -boot menu=on support */
+ QEMU_CAPS_ENABLE_KQEMU, /* -enable-kqemu flag */
+ QEMU_CAPS_FSDEV, /* -fstype filesystem passthrough */
+ QEMU_CAPS_NESTING, /* -enable-nesting (SVM/VMX) */
+ QEMU_CAPS_NAME_PROCESS, /* Is -name process= available */
+ QEMU_CAPS_DRIVE_READONLY, /* -drive readonly=on|off */
+ QEMU_CAPS_SMBIOS_TYPE, /* Is -smbios type= available */
+ QEMU_CAPS_VGA_QXL, /* The 'qxl' arg for '-vga' */
+ QEMU_CAPS_SPICE, /* Is -spice avail */
+ QEMU_CAPS_VGA_NONE, /* The 'none' arg for '-vga' */
+ QEMU_CAPS_MIGRATE_QEMU_FD, /* -incoming fd:n */
+ QEMU_CAPS_BOOTINDEX, /* -device bootindex property */
+ QEMU_CAPS_HDA_DUPLEX, /* -device hda-duplex */
+ QEMU_CAPS_DRIVE_AIO, /* -drive aio= supported */
+ QEMU_CAPS_PCI_MULTIBUS, /* bus=pci.0 vs bus=pci */
+ QEMU_CAPS_PCI_BOOTINDEX, /* pci-assign.bootindex */
+ QEMU_CAPS_CCID_EMULATED, /* -device ccid-card-emulated */
+ QEMU_CAPS_CCID_PASSTHRU, /* -device ccid-card-passthru */
+ QEMU_CAPS_CHARDEV_SPICEVMC, /* newer -chardev spicevmc */
+ QEMU_CAPS_DEVICE_SPICEVMC, /* older -device spicevmc*/
+ QEMU_CAPS_VIRTIO_TX_ALG, /* -device virtio-net-pci,tx=string */
+ QEMU_CAPS_DEVICE_QXL_VGA, /* primary qxl device named qxl-vga? */
+ QEMU_CAPS_PCI_MULTIFUNCTION, /* -device multifunction=on|off */
+ QEMU_CAPS_VIRTIO_IOEVENTFD, /* virtio-{net|blk}-pci.ioeventfd=on */
+ QEMU_CAPS_SGA, /* Serial Graphics Adapter */
+ QEMU_CAPS_VIRTIO_BLK_EVENT_IDX, /* virtio-blk-pci.event_idx */
+ QEMU_CAPS_VIRTIO_NET_EVENT_IDX, /* virtio-net-pci.event_idx */
+ QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC, /* Is cache=directsync supported? */
+ QEMU_CAPS_PIIX3_USB_UHCI, /* -device piix3-usb-uhci */
+ QEMU_CAPS_PIIX4_USB_UHCI, /* -device piix4-usb-uhci */
+ QEMU_CAPS_USB_EHCI, /* -device usb-ehci */
+ QEMU_CAPS_ICH9_USB_EHCI1, /* -device ich9-usb-ehci1 and friends */
+ QEMU_CAPS_VT82C686B_USB_UHCI, /* -device vt82c686b-usb-uhci */
+ QEMU_CAPS_PCI_OHCI, /* -device pci-ohci */
+ QEMU_CAPS_USB_REDIR, /* -device usb-redir */
+ QEMU_CAPS_USB_HUB, /* -device usb-hub */
+ QEMU_CAPS_NO_SHUTDOWN, /* usable -no-shutdown */
+ QEMU_CAPS_DRIVE_CACHE_UNSAFE, /* Is cache=unsafe supported? */
+ QEMU_CAPS_PCI_ROMBAR, /* -device rombar=0|1 */
+ QEMU_CAPS_ICH9_AHCI, /* -device ich9-ahci */
+ QEMU_CAPS_NO_ACPI, /* -no-acpi */
+ QEMU_CAPS_FSDEV_READONLY, /* -fsdev readonly supported */
+ QEMU_CAPS_VIRTIO_BLK_SCSI, /* virtio-blk-pci.scsi */
+ QEMU_CAPS_VIRTIO_BLK_SG_IO, /* SG_IO commands, since 0.11 */
+ QEMU_CAPS_DRIVE_COPY_ON_READ, /* -drive copy-on-read */
+ QEMU_CAPS_CPU_HOST, /* support for -cpu host */
+ QEMU_CAPS_FSDEV_WRITEOUT, /* -fsdev writeout supported */
+ QEMU_CAPS_DRIVE_IOTUNE, /* -drive bps= and friends */
+ QEMU_CAPS_WAKEUP, /* system_wakeup monitor command */
+ QEMU_CAPS_SCSI_DISK_CHANNEL, /* Is scsi-disk.channel available? */
+ QEMU_CAPS_SCSI_BLOCK, /* -device scsi-block */
+ QEMU_CAPS_TRANSACTION, /* transaction monitor command */
+ QEMU_CAPS_BLOCKJOB_SYNC, /* old block_job_cancel, block_stream */
+ QEMU_CAPS_BLOCKJOB_ASYNC, /* new block-job-cancel, block-stream */
+ QEMU_CAPS_SCSI_CD, /* -device scsi-cd */
+ QEMU_CAPS_IDE_CD, /* -device ide-cd */
+ QEMU_CAPS_NO_USER_CONFIG, /* -no-user-config */
+ QEMU_CAPS_HDA_MICRO, /* -device hda-micro */
+ QEMU_CAPS_DUMP_GUEST_MEMORY, /* dump-guest-memory command */
+ QEMU_CAPS_NEC_USB_XHCI, /* -device nec-usb-xhci */
+ QEMU_CAPS_VIRTIO_S390, /* -device virtio-*-s390 */
+ QEMU_CAPS_BALLOON_EVENT, /* Async event for balloon changes */
+ QEMU_CAPS_NETDEV_BRIDGE, /* bridge helper support */
+ QEMU_CAPS_SCSI_LSI, /* -device lsi */
+ QEMU_CAPS_VIRTIO_SCSI, /* -device virtio-scsi-* */
+ QEMU_CAPS_BLOCKIO, /* -device ...logical_block_size & co */
+ QEMU_CAPS_DISABLE_S3, /* S3 BIOS Advertisement on/off */
+ QEMU_CAPS_DISABLE_S4, /* S4 BIOS Advertisement on/off */
+ QEMU_CAPS_USB_REDIR_FILTER, /* usb-redir.filter */
+ QEMU_CAPS_IDE_DRIVE_WWN, /* Is ide-drive.wwn available? */
+ QEMU_CAPS_SCSI_DISK_WWN, /* Is scsi-disk.wwn available? */
+ QEMU_CAPS_SECCOMP_SANDBOX, /* -sandbox */
+ QEMU_CAPS_REBOOT_TIMEOUT, /* -boot reboot-timeout */
+ QEMU_CAPS_DUMP_GUEST_CORE, /* dump-guest-core-parameter */
+ QEMU_CAPS_SEAMLESS_MIGRATION, /* seamless-migration for SPICE */
+ QEMU_CAPS_BLOCK_COMMIT, /* block-commit */
+ QEMU_CAPS_VNC, /* Is -vnc available? */
+ QEMU_CAPS_DRIVE_MIRROR, /* drive-mirror monitor command */
+ QEMU_CAPS_USB_REDIR_BOOTINDEX, /* usb-redir.bootindex */
+ QEMU_CAPS_USB_HOST_BOOTINDEX, /* usb-host.bootindex */
+ QEMU_CAPS_DISK_SNAPSHOT, /* blockdev-snapshot-sync command */
+ QEMU_CAPS_DEVICE_QXL, /* -device qxl */
+ QEMU_CAPS_DEVICE_VGA, /* -device VGA */
+ QEMU_CAPS_DEVICE_CIRRUS_VGA, /* -device cirrus-vga */
+ QEMU_CAPS_DEVICE_VMWARE_SVGA, /* -device vmware-svga */
+ QEMU_CAPS_DEVICE_VIDEO_PRIMARY, /* -device safe for primary video device */
+ QEMU_CAPS_SCLP_S390, /* -device sclp* */
+ QEMU_CAPS_DEVICE_USB_SERIAL, /* -device usb-serial */
+ QEMU_CAPS_DEVICE_USB_NET, /* -device usb-net */
+ QEMU_CAPS_ADD_FD, /* -add-fd */
+ QEMU_CAPS_NBD_SERVER, /* nbd-server-start QMP command */
+ QEMU_CAPS_DEVICE_VIRTIO_RNG, /* virtio-rng device */
+ QEMU_CAPS_OBJECT_RNG_RANDOM, /* the rng-random backend for virtio rng */
+ QEMU_CAPS_OBJECT_RNG_EGD, /* EGD protocol daemon for rng */
+ QEMU_CAPS_VIRTIO_CCW, /* -device virtio-*-ccw */
+ QEMU_CAPS_DTB, /* -dtb file */
+ QEMU_CAPS_SCSI_MEGASAS, /* -device megasas */
+ QEMU_CAPS_IPV6_MIGRATION, /* -incoming [::] */
+ QEMU_CAPS_MACHINE_OPT, /* -machine xxxx*/
+ QEMU_CAPS_MACHINE_USB_OPT, /* -machine xxx,usb=on/off */
+ QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, /* -tpmdev passthrough */
+ QEMU_CAPS_DEVICE_TPM_TIS, /* -device tpm_tis */
+ QEMU_CAPS_DEVICE_NVRAM, /* -global spapr-nvram.reg=xxxx */
+ QEMU_CAPS_DEVICE_PCI_BRIDGE, /* -device pci-bridge */
+ QEMU_CAPS_DEVICE_VFIO_PCI, /* -device vfio-pci */
+ QEMU_CAPS_VFIO_PCI_BOOTINDEX, /* bootindex param for vfio-pci device */
+ QEMU_CAPS_DEVICE_SCSI_GENERIC, /* -device scsi-generic */
+ QEMU_CAPS_DEVICE_SCSI_GENERIC_BOOTINDEX, /* -device scsi-generic.bootindex */
+ QEMU_CAPS_MEM_MERGE, /* -machine mem-merge */
+ QEMU_CAPS_VNC_WEBSOCKET, /* -vnc x:y,websocket */
+ QEMU_CAPS_DRIVE_DISCARD, /* -drive discard=off(ignore)|on(unmap) */
+ QEMU_CAPS_MLOCK, /* -realtime mlock=on|off */
+ QEMU_CAPS_VNC_SHARE_POLICY, /* set display sharing policy */
+ QEMU_CAPS_DEVICE_DEL_EVENT, /* DEVICE_DELETED event */
+ QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, /* -device i82801b11-bridge */
+ QEMU_CAPS_I440FX_PCI_HOLE64_SIZE, /* i440FX-pcihost.pci-hole64-size */
+ QEMU_CAPS_Q35_PCI_HOLE64_SIZE, /* q35-pcihost.pci-hole64-size */
+ QEMU_CAPS_DEVICE_USB_STORAGE, /* -device usb-storage */
+ QEMU_CAPS_USB_STORAGE_REMOVABLE, /* usb-storage.removable */
+ QEMU_CAPS_DEVICE_VIRTIO_MMIO, /* -device virtio-mmio */
+ QEMU_CAPS_DEVICE_ICH9_INTEL_HDA, /* -device ich9-intel-hda */
+ QEMU_CAPS_KVM_PIT_TICK_POLICY, /* kvm-pit.lost_tick_policy */
+ QEMU_CAPS_BOOT_STRICT, /* -boot strict */
+ QEMU_CAPS_DEVICE_PANIC, /* -device pvpanic */
+ QEMU_CAPS_ENABLE_FIPS, /* -enable-fips */
+ QEMU_CAPS_SPICE_FILE_XFER_DISABLE, /* -spice disable-agent-file-xfer */
+ QEMU_CAPS_CHARDEV_SPICEPORT, /* -chardev spiceport */
+ QEMU_CAPS_DEVICE_USB_KBD, /* -device usb-kbd */
+ QEMU_CAPS_HOST_PCI_MULTIDOMAIN, /* support domain > 0 in host pci address */
+ QEMU_CAPS_MSG_TIMESTAMP, /* -msg timestamp */
+ QEMU_CAPS_ACTIVE_COMMIT, /* block-commit works without 'top' */
+ QEMU_CAPS_CHANGE_BACKING_FILE, /* change name of backing file in metadata */
+ QEMU_CAPS_OBJECT_MEMORY_RAM, /* -object memory-backend-ram */
+ QEMU_CAPS_NUMA, /* newer -numa handling with disjoint cpu ranges */
+ QEMU_CAPS_OBJECT_MEMORY_FILE, /* -object memory-backend-file */
+ QEMU_CAPS_OBJECT_USB_AUDIO, /* usb-audio device support */
+ QEMU_CAPS_RTC_RESET_REINJECTION, /* rtc-reset-reinjection monitor command */
+ QEMU_CAPS_SPLASH_TIMEOUT, /* -boot splash-time */
+ QEMU_CAPS_OBJECT_IOTHREAD, /* -object iothread */
+ QEMU_CAPS_MIGRATE_RDMA, /* have rdma migration */
+ QEMU_CAPS_DEVICE_IVSHMEM, /* -device ivshmem */
+ QEMU_CAPS_DRIVE_IOTUNE_MAX, /* -drive bps_max= and friends */
+ QEMU_CAPS_VGA_VGAMEM, /* -device VGA.vgamem_mb */
+ QEMU_CAPS_VMWARE_SVGA_VGAMEM, /* -device vmware-svga.vgamem_mb */
+ QEMU_CAPS_QXL_VGAMEM, /* -device qxl.vgamem_mb */
+ QEMU_CAPS_QXL_VGA_VGAMEM, /* -device qxl-vga.vgamem_mb */
+ QEMU_CAPS_DEVICE_PC_DIMM, /* pc-dimm device */
+ QEMU_CAPS_MACHINE_VMPORT_OPT, /* -machine xxx,vmport=on/off/auto */
+ QEMU_CAPS_AES_KEY_WRAP, /* -machine aes_key_wrap */
+ QEMU_CAPS_DEA_KEY_WRAP, /* -machine dea_key_wrap */
+ QEMU_CAPS_DEVICE_PCI_SERIAL, /* -device pci-serial */
+ QEMU_CAPS_CPU_AARCH64_OFF, /* -cpu ...,aarch64=off */
+ QEMU_CAPS_VHOSTUSER_MULTIQUEUE, /* vhost-user with -netdev queues= */
+ QEMU_CAPS_MIGRATION_EVENT, /* MIGRATION event */
+ QEMU_CAPS_OBJECT_GPEX, /* have generic PCI host controller */
+ QEMU_CAPS_DEVICE_IOH3420, /* -device ioh3420 */
+ QEMU_CAPS_DEVICE_X3130_UPSTREAM, /* -device x3130-upstream */
+ QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM, /* -device xio3130-downstream */
+ QEMU_CAPS_DEVICE_RTL8139, /* -device rtl8139 */
+ QEMU_CAPS_DEVICE_E1000, /* -device e1000 */
+ QEMU_CAPS_DEVICE_VIRTIO_NET, /* -device virtio-net-* */
+ QEMU_CAPS_MACH_VIRT_GIC_VERSION, /* -machine virt,gic-version */
+
+ QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
+/* Aliases for some of the capabilities defined above */
+#define QEMU_CAPS_NET_NAME QEMU_CAPS_0_10 /* -net ...,name=str */
+#define QEMU_CAPS_HOST_NET_ADD QEMU_CAPS_0_10 /* host_net_add command */
+
typedef struct _virQEMUCaps virQEMUCaps;
typedef virQEMUCaps *virQEMUCapsPtr;
--
2.4.3
9 years, 2 months
[libvirt] [PATCH] qemu: Fix indentation issue
by Andrea Bolognani
Two #define lines introduced by b527aa0 did not respect the
indentation rules, thus breaking syntax-check.
---
Pushed as trivial.
src/qemu/qemu_capabilities.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 7b0e3eb..b883315 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -316,8 +316,8 @@ typedef enum {
} virQEMUCapsFlags;
/* Aliases for some of the capabilities defined above */
-#define QEMU_CAPS_NET_NAME QEMU_CAPS_0_10 /* -net ...,name=str */
-#define QEMU_CAPS_HOST_NET_ADD QEMU_CAPS_0_10 /* host_net_add command */
+# define QEMU_CAPS_NET_NAME QEMU_CAPS_0_10 /* -net ...,name=str */
+# define QEMU_CAPS_HOST_NET_ADD QEMU_CAPS_0_10 /* host_net_add command */
typedef struct _virQEMUCaps virQEMUCaps;
typedef virQEMUCaps *virQEMUCapsPtr;
--
2.4.3
9 years, 2 months