2009-01-05 14:05:29 +00:00
|
|
|
#
|
2009-11-10 14:53:20 +00:00
|
|
|
# General private symbols. Add symbols here, and see Makefile.am for
|
|
|
|
# more details.
|
2009-01-05 14:05:29 +00:00
|
|
|
#
|
2010-10-20 17:10:45 +00:00
|
|
|
# Keep this file sorted by header name, then by symbols with each header.
|
|
|
|
#
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2012-01-20 18:02:55 +00:00
|
|
|
# access/viraccessmanager.h
|
|
|
|
virAccessManagerCheckConnect;
|
|
|
|
virAccessManagerCheckDomain;
|
|
|
|
virAccessManagerCheckInterface;
|
|
|
|
virAccessManagerCheckNetwork;
|
|
|
|
virAccessManagerCheckNodeDevice;
|
|
|
|
virAccessManagerCheckNWFilter;
|
|
|
|
virAccessManagerCheckSecret;
|
|
|
|
virAccessManagerCheckStoragePool;
|
|
|
|
virAccessManagerCheckStorageVol;
|
|
|
|
virAccessManagerGetDefault;
|
|
|
|
virAccessManagerNew;
|
|
|
|
virAccessManagerNewStack;
|
|
|
|
virAccessManagerSetDefault;
|
|
|
|
|
|
|
|
|
|
|
|
# access/viraccessperm.h
|
|
|
|
virAccessPermConnectTypeFromString;
|
|
|
|
virAccessPermConnectTypeToString;
|
|
|
|
virAccessPermDomainTypeFromString;
|
|
|
|
virAccessPermDomainTypeToString;
|
|
|
|
virAccessPermInterfaceTypeFromString;
|
|
|
|
virAccessPermInterfaceTypeToString;
|
|
|
|
virAccessPermNetworkTypeFromString;
|
|
|
|
virAccessPermNetworkTypeToString;
|
|
|
|
virAccessPermNodeDeviceTypeFromString;
|
|
|
|
virAccessPermNodeDeviceTypeToString;
|
|
|
|
virAccessPermNWFilterTypeFromString;
|
|
|
|
virAccessPermNWFilterTypeToString;
|
|
|
|
virAccessPermSecretTypeFromString;
|
|
|
|
virAccessPermSecretTypeToString;
|
|
|
|
virAccessPermStoragePoolTypeFromString;
|
|
|
|
virAccessPermStoragePoolTypeToString;
|
|
|
|
virAccessPermStorageVolTypeFromString;
|
|
|
|
virAccessPermStorageVolTypeToString;
|
|
|
|
|
|
|
|
|
2019-08-22 01:42:44 +00:00
|
|
|
# conf/backup_conf.h
|
|
|
|
virDomainBackupAlignDisks;
|
|
|
|
virDomainBackupDefFormat;
|
|
|
|
virDomainBackupDefFree;
|
|
|
|
virDomainBackupDefParseNode;
|
|
|
|
virDomainBackupDefParseString;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/capabilities.h
|
2009-01-05 14:05:29 +00:00
|
|
|
virCapabilitiesAddGuest;
|
|
|
|
virCapabilitiesAddGuestDomain;
|
|
|
|
virCapabilitiesAddGuestFeature;
|
2019-11-12 12:57:23 +00:00
|
|
|
virCapabilitiesAddGuestFeatureWithToggle;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCapabilitiesAddHostFeature;
|
2009-01-05 14:05:29 +00:00
|
|
|
virCapabilitiesAddHostMigrateTransport;
|
2019-01-10 12:19:35 +00:00
|
|
|
virCapabilitiesAddStoragePool;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCapabilitiesAllocMachines;
|
2013-01-22 17:42:08 +00:00
|
|
|
virCapabilitiesClearHostNUMACellCPUTopology;
|
2015-04-17 16:38:55 +00:00
|
|
|
virCapabilitiesDomainDataLookup;
|
2019-11-26 16:09:33 +00:00
|
|
|
virCapabilitiesDomainSupported;
|
2009-01-05 14:05:29 +00:00
|
|
|
virCapabilitiesFormatXML;
|
2017-03-15 12:01:13 +00:00
|
|
|
virCapabilitiesFreeGuest;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCapabilitiesFreeMachines;
|
2017-03-07 09:40:15 +00:00
|
|
|
virCapabilitiesGetNodeInfo;
|
2018-06-01 08:15:59 +00:00
|
|
|
virCapabilitiesHostInitIOMMU;
|
2019-11-29 09:55:59 +00:00
|
|
|
virCapabilitiesHostNUMAAddCell;
|
|
|
|
virCapabilitiesHostNUMAGetCpus;
|
|
|
|
virCapabilitiesHostNUMANew;
|
|
|
|
virCapabilitiesHostNUMANewHost;
|
|
|
|
virCapabilitiesHostNUMARef;
|
|
|
|
virCapabilitiesHostNUMAUnref;
|
2013-10-18 12:13:21 +00:00
|
|
|
virCapabilitiesHostSecModelAddBaseLabel;
|
2017-03-30 13:01:27 +00:00
|
|
|
virCapabilitiesInitCaches;
|
2017-03-11 15:32:13 +00:00
|
|
|
virCapabilitiesInitPages;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCapabilitiesNew;
|
2016-02-03 21:40:33 +00:00
|
|
|
virCapabilitiesSetNetPrefix;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
|
|
|
|
backup: Parse and output checkpoint XML
Add a new file checkpoint_conf.c that performs the translation to and
from new XML describing a checkpoint. The code shares a common base
class with snapshots, since a checkpoint similarly represents the
domain state at a moment in time. Add some basic testing of round trip
XML handling through the new code.
Of note - this code intentionally differs from snapshots in that XML
schema validation is unconditional, rather than based on a public API
flag. We have many existing interfaces that still need to add a flag
for opt-in schema validation, but those interfaces have existing
clients that may not have been producing strictly-compliant XML, or we
may still uncover bugs where our RNG grammar is inconsistent with our
code (where omitting the opt-in flag allows existing apps to keep
working while waiting for an RNG patch). But since checkpoints are
brand-new, it's easier to ensure the code matches the schema by always
using the schema. If needed, a later patch could extend the API and
add a flag to turn on to request schema validation, rather than having
it forced (possibly just the validation of the <domain> sub-element
during REDEFINE) - but if a user encounters XML that looks like it
should be good but fails to validate with our RNG schema, they would
either have to upgrade to a new libvirt that adds the new flag, or
upgrade to a new libvirt that fixes the RNG schema, which implies
adding such a flag won't help much.
Also, the redefine flag requires the <domain> sub-element to be
present, rather than catering to historical back-compat to older
versions.
Signed-off-by: Eric Blake <eblake@redhat.com>
2018-07-08 02:01:14 +00:00
|
|
|
# conf/checkpoint_conf.h
|
|
|
|
virDomainCheckpointAlignDisks;
|
|
|
|
virDomainCheckpointDefFormat;
|
|
|
|
virDomainCheckpointDefNew;
|
|
|
|
virDomainCheckpointDefParseString;
|
|
|
|
virDomainCheckpointFormatConvertXMLFlags;
|
2019-07-26 19:28:44 +00:00
|
|
|
virDomainCheckpointRedefinePrep;
|
backup: Parse and output checkpoint XML
Add a new file checkpoint_conf.c that performs the translation to and
from new XML describing a checkpoint. The code shares a common base
class with snapshots, since a checkpoint similarly represents the
domain state at a moment in time. Add some basic testing of round trip
XML handling through the new code.
Of note - this code intentionally differs from snapshots in that XML
schema validation is unconditional, rather than based on a public API
flag. We have many existing interfaces that still need to add a flag
for opt-in schema validation, but those interfaces have existing
clients that may not have been producing strictly-compliant XML, or we
may still uncover bugs where our RNG grammar is inconsistent with our
code (where omitting the opt-in flag allows existing apps to keep
working while waiting for an RNG patch). But since checkpoints are
brand-new, it's easier to ensure the code matches the schema by always
using the schema. If needed, a later patch could extend the API and
add a flag to turn on to request schema validation, rather than having
it forced (possibly just the validation of the <domain> sub-element
during REDEFINE) - but if a user encounters XML that looks like it
should be good but fails to validate with our RNG schema, they would
either have to upgrade to a new libvirt that adds the new flag, or
upgrade to a new libvirt that fixes the RNG schema, which implies
adding such a flag won't help much.
Also, the redefine flag requires the <domain> sub-element to be
present, rather than catering to historical back-compat to older
versions.
Signed-off-by: Eric Blake <eblake@redhat.com>
2018-07-08 02:01:14 +00:00
|
|
|
virDomainCheckpointTypeFromString;
|
|
|
|
virDomainCheckpointTypeToString;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/cpu_conf.h
|
2017-04-24 13:40:07 +00:00
|
|
|
virCPUCacheModeTypeFromString;
|
|
|
|
virCPUCacheModeTypeToString;
|
2009-12-18 13:44:55 +00:00
|
|
|
virCPUDefAddFeature;
|
2019-06-19 17:01:30 +00:00
|
|
|
virCPUDefCheckFeatures;
|
2010-03-23 08:34:04 +00:00
|
|
|
virCPUDefCopy;
|
2011-12-19 14:41:16 +00:00
|
|
|
virCPUDefCopyModel;
|
2016-06-28 08:44:20 +00:00
|
|
|
virCPUDefCopyModelFilter;
|
2016-06-17 07:44:43 +00:00
|
|
|
virCPUDefCopyWithoutModel;
|
2019-06-07 12:07:10 +00:00
|
|
|
virCPUDefFilterFeatures;
|
2017-10-09 14:20:43 +00:00
|
|
|
virCPUDefFindFeature;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCPUDefFormat;
|
|
|
|
virCPUDefFormatBuf;
|
2017-05-16 11:26:54 +00:00
|
|
|
virCPUDefFormatBufFull;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCPUDefFree;
|
2017-03-16 11:21:58 +00:00
|
|
|
virCPUDefFreeFeatures;
|
2011-12-19 14:41:16 +00:00
|
|
|
virCPUDefFreeModel;
|
2017-05-16 11:26:54 +00:00
|
|
|
virCPUDefIsEqual;
|
2017-09-13 13:23:43 +00:00
|
|
|
virCPUDefListFree;
|
|
|
|
virCPUDefListParse;
|
2019-11-29 11:00:26 +00:00
|
|
|
virCPUDefNew;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCPUDefParseXML;
|
2019-09-19 20:25:04 +00:00
|
|
|
virCPUDefParseXMLString;
|
2019-11-29 11:00:26 +00:00
|
|
|
virCPUDefRef;
|
2016-06-23 10:54:19 +00:00
|
|
|
virCPUDefStealModel;
|
2013-07-15 12:36:09 +00:00
|
|
|
virCPUDefUpdateFeature;
|
2011-12-21 12:47:17 +00:00
|
|
|
virCPUModeTypeToString;
|
2009-12-18 13:44:55 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/device_conf.h
|
2018-11-08 11:00:28 +00:00
|
|
|
virDeviceInfoPCIAddressExtensionIsPresent;
|
|
|
|
virDeviceInfoPCIAddressExtensionIsWanted;
|
2018-08-17 13:35:19 +00:00
|
|
|
virDeviceInfoPCIAddressIsPresent;
|
|
|
|
virDeviceInfoPCIAddressIsWanted;
|
2018-08-29 16:19:15 +00:00
|
|
|
virDomainDeviceAddressIsValid;
|
2018-08-29 15:59:20 +00:00
|
|
|
virDomainDeviceAddressTypeToString;
|
2018-08-29 17:14:24 +00:00
|
|
|
virDomainDeviceCcidAddressParseXML;
|
2018-08-29 16:19:15 +00:00
|
|
|
virDomainDeviceCCWAddressIsValid;
|
2018-08-29 17:14:24 +00:00
|
|
|
virDomainDeviceCCWAddressParseXML;
|
|
|
|
virDomainDeviceDriveAddressParseXML;
|
2017-06-27 06:30:58 +00:00
|
|
|
virDomainDeviceInfoAddressIsEqual;
|
2018-08-29 17:14:24 +00:00
|
|
|
virDomainDeviceSpaprVioAddressParseXML;
|
|
|
|
virDomainDeviceUSBAddressParseXML;
|
|
|
|
virDomainDeviceVirtioSerialAddressParseXML;
|
2014-05-07 12:21:35 +00:00
|
|
|
virInterfaceLinkFormat;
|
|
|
|
virInterfaceLinkParseXML;
|
2016-04-03 18:16:51 +00:00
|
|
|
virPCIDeviceAddressFormat;
|
|
|
|
virPCIDeviceAddressParseXML;
|
2012-08-16 15:41:06 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
|
2014-05-13 16:10:40 +00:00
|
|
|
# conf/domain_addr.h
|
2014-06-17 14:17:41 +00:00
|
|
|
virDomainCCWAddressAssign;
|
2020-09-14 19:11:47 +00:00
|
|
|
virDomainCCWAddressAsString;
|
2018-07-03 15:25:28 +00:00
|
|
|
virDomainCCWAddressSetCreateFromDomain;
|
2014-06-17 14:17:41 +00:00
|
|
|
virDomainCCWAddressSetFree;
|
2017-06-29 14:13:02 +00:00
|
|
|
virDomainPCIAddressBusIsFullyReserved;
|
2014-05-13 16:10:40 +00:00
|
|
|
virDomainPCIAddressBusSetModel;
|
|
|
|
virDomainPCIAddressEnsureAddr;
|
2018-11-08 11:00:28 +00:00
|
|
|
virDomainPCIAddressExtensionReleaseAddr;
|
|
|
|
virDomainPCIAddressExtensionReserveAddr;
|
|
|
|
virDomainPCIAddressExtensionReserveNextAddr;
|
2016-10-24 15:25:53 +00:00
|
|
|
virDomainPCIAddressReleaseAddr;
|
2016-10-23 16:14:16 +00:00
|
|
|
virDomainPCIAddressReserveAddr;
|
2016-09-01 13:29:01 +00:00
|
|
|
virDomainPCIAddressReserveNextAddr;
|
2017-01-10 05:02:40 +00:00
|
|
|
virDomainPCIAddressSetAllMulti;
|
2014-05-13 16:10:40 +00:00
|
|
|
virDomainPCIAddressSetAlloc;
|
|
|
|
virDomainPCIAddressSetFree;
|
|
|
|
virDomainPCIAddressSlotInUse;
|
|
|
|
virDomainPCIAddressValidate;
|
2016-03-16 18:20:52 +00:00
|
|
|
virDomainPCIControllerModelToConnectType;
|
2015-08-12 14:52:18 +00:00
|
|
|
virDomainUSBAddressAssign;
|
2016-06-17 07:49:54 +00:00
|
|
|
virDomainUSBAddressCountAllPorts;
|
2015-08-12 14:52:18 +00:00
|
|
|
virDomainUSBAddressEnsure;
|
2015-08-12 14:52:13 +00:00
|
|
|
virDomainUSBAddressPortFormatBuf;
|
|
|
|
virDomainUSBAddressPortIsValid;
|
2016-10-21 11:09:04 +00:00
|
|
|
virDomainUSBAddressPresent;
|
2015-08-12 14:52:19 +00:00
|
|
|
virDomainUSBAddressRelease;
|
2015-08-12 14:52:17 +00:00
|
|
|
virDomainUSBAddressReserve;
|
2015-08-12 14:52:16 +00:00
|
|
|
virDomainUSBAddressSetAddControllers;
|
2015-08-12 14:52:18 +00:00
|
|
|
virDomainUSBAddressSetAddHub;
|
2015-08-12 14:52:15 +00:00
|
|
|
virDomainUSBAddressSetCreate;
|
|
|
|
virDomainUSBAddressSetFree;
|
2016-10-21 11:09:36 +00:00
|
|
|
virDomainVirtioSerialAddrAutoAssign;
|
2016-10-21 10:58:54 +00:00
|
|
|
virDomainVirtioSerialAddrAutoAssignFromCache;
|
2015-03-02 09:57:51 +00:00
|
|
|
virDomainVirtioSerialAddrIsComplete;
|
2016-07-23 01:47:06 +00:00
|
|
|
virDomainVirtioSerialAddrSetCreateFromDomain;
|
2015-03-02 09:57:51 +00:00
|
|
|
virDomainVirtioSerialAddrSetFree;
|
2014-05-13 16:10:40 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/domain_audit.h
|
Move qemu_audit.h helpers into shared code
The LXC and UML drivers can both make use of auditing. Move
the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
* src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
* src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
* src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
* src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
src/qemu/qemu_process.c: Update for changed audit API names
2011-07-04 10:56:13 +00:00
|
|
|
virDomainAuditCgroup;
|
|
|
|
virDomainAuditCgroupMajor;
|
|
|
|
virDomainAuditCgroupPath;
|
2014-07-03 08:59:58 +00:00
|
|
|
virDomainAuditChardev;
|
Move qemu_audit.h helpers into shared code
The LXC and UML drivers can both make use of auditing. Move
the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
* src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
* src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
* src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
* src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
src/qemu/qemu_process.c: Update for changed audit API names
2011-07-04 10:56:13 +00:00
|
|
|
virDomainAuditDisk;
|
2011-07-04 11:00:33 +00:00
|
|
|
virDomainAuditFS;
|
Move qemu_audit.h helpers into shared code
The LXC and UML drivers can both make use of auditing. Move
the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
* src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
* src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
* src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
* src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
src/qemu/qemu_process.c: Update for changed audit API names
2011-07-04 10:56:13 +00:00
|
|
|
virDomainAuditHostdev;
|
2012-11-20 17:49:25 +00:00
|
|
|
virDomainAuditInit;
|
2017-10-04 09:09:27 +00:00
|
|
|
virDomainAuditInput;
|
2015-03-18 10:51:12 +00:00
|
|
|
virDomainAuditIOThread;
|
Move qemu_audit.h helpers into shared code
The LXC and UML drivers can both make use of auditing. Move
the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
* src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
* src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
* src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
* src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
src/qemu/qemu_process.c: Update for changed audit API names
2011-07-04 10:56:13 +00:00
|
|
|
virDomainAuditMemory;
|
|
|
|
virDomainAuditNet;
|
|
|
|
virDomainAuditNetDevice;
|
2011-09-02 15:09:14 +00:00
|
|
|
virDomainAuditRedirdev;
|
2015-01-17 05:09:36 +00:00
|
|
|
virDomainAuditRNG;
|
Move qemu_audit.h helpers into shared code
The LXC and UML drivers can both make use of auditing. Move
the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
* src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
* src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
* src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
* src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
src/qemu/qemu_process.c: Update for changed audit API names
2011-07-04 10:56:13 +00:00
|
|
|
virDomainAuditSecurityLabel;
|
2016-08-11 09:40:18 +00:00
|
|
|
virDomainAuditShmem;
|
Move qemu_audit.h helpers into shared code
The LXC and UML drivers can both make use of auditing. Move
the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
* src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
* src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
* src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
* src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
src/qemu/qemu_process.c: Update for changed audit API names
2011-07-04 10:56:13 +00:00
|
|
|
virDomainAuditStart;
|
|
|
|
virDomainAuditStop;
|
|
|
|
virDomainAuditVcpu;
|
|
|
|
|
|
|
|
|
2014-06-25 11:24:53 +00:00
|
|
|
# conf/domain_capabilities.h
|
2016-04-22 09:08:57 +00:00
|
|
|
virDomainCapsCPUModelsAdd;
|
|
|
|
virDomainCapsCPUModelsCopy;
|
2017-10-13 15:37:34 +00:00
|
|
|
virDomainCapsCPUModelsGet;
|
2016-04-22 09:08:57 +00:00
|
|
|
virDomainCapsCPUModelsNew;
|
2016-06-15 14:15:44 +00:00
|
|
|
virDomainCapsCPUUsableTypeFromString;
|
|
|
|
virDomainCapsCPUUsableTypeToString;
|
2019-04-04 17:09:18 +00:00
|
|
|
virDomainCapsDeviceDefValidate;
|
2014-06-25 11:24:53 +00:00
|
|
|
virDomainCapsEnumClear;
|
|
|
|
virDomainCapsEnumSet;
|
|
|
|
virDomainCapsFormat;
|
|
|
|
virDomainCapsNew;
|
2018-06-08 14:40:51 +00:00
|
|
|
virSEVCapabilitiesFree;
|
2014-06-25 11:24:53 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/domain_conf.h
|
2013-12-11 08:29:47 +00:00
|
|
|
virBlkioDeviceArrayClear;
|
2015-11-13 13:14:44 +00:00
|
|
|
virDiskNameParse;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDiskNameToBusDeviceIndex;
|
|
|
|
virDiskNameToIndex;
|
2011-06-26 08:09:00 +00:00
|
|
|
virDomainActualNetDefFree;
|
conf: add hypervisor agnostic, domain start-time, validation function for NetDef
<interface> devices (virDomainNetDef) are a bit different from other
types of devices in that their actual type may come from a network (in
the form of a port connection), and that doesn't happen until the
domain is started. This means that any validation of an <interface> at
parse time needs to be a bit liberal in what it accepts - when
type='network', you could think that something is/isn't allowed, but
once the domain is started and a port is created by the configured
network, the opposite might be true.
To solve this problem hypervisor drivers need to do an extra
validation step when the domain is being started. I recently (commit
3cff23f7, libvirt 5.7.0) added a function to peform such validation
for all interfaces to the QEMU driver -
qemuDomainValidateActualNetDef() - but while that function is a good
single point to call for the multiple places that need to "start" an
interface (domain startup, device hotplug, device update), it can't be
called by the other hypervisor drivers, since 1) it's in the QEMU
driver, and 2) it contains some checks specific to QEMU. For
validation that applies to network devices on *all* hypervisors, we
need yet another interface validation function that can be called by
any hypervisor driver (not just QEMU) right after its network port has
been created during domain startup or hotplug. This patch adds that
function - virDomainActualNetDefValidate(), in the conf directory,
and calls it in appropriate places in the QEMU, lxc, and libxl
drivers.
This new function is the place to put all network device validation
that 1) is hypervisor agnostic, and 2) can't be done until we know the
"actual type" of an interface.
There is no framework for validation at domain startup as there is for
post-parse validation, but I don't want to create a whole elaborate
system that will only be used by one type of device. For that reason,
I just made a single function that should be called directly from the
hypervisors, when they are initializing interfaces to start a domain,
right after conditionally allocating the network port (and regardless
of whether or not that was actually needed). In the case of the QEMU
driver, qemuDomainValidateActualNetDef() is already called in all the
appropriate places, so we can just call the new function from
there. In the case of the other hypervisors, we search for
virDomainNetAllocateActualDevice() (which is the hypervisor-agnostic
function that calls virNetworkPortCreateXML()), and add the call to our
new function right after that.
The new function itself could be plunked down into many places in the
code, but we already have 3 validation functions for network devices
in 2 different places (not counting any basic validation done in
virDomainNetDefParseXML() itself):
1) post-parse hypervisor-agnostic
(virDomainNetDefValidate() - domain_conf.c:6145)
2) post-parse hypervisor-specific
(qemuDomainDeviceDefValidateNetwork() - qemu_domain.c:5498)
3) domain-start hypervisor-specific
(qemuDomainValidateActualNetDef() - qemu_domain.c:5390)
I placed (3) right next to (2) when I added it, specifically to avoid
spreading validation all over the code. For the same reason, I decided
to put this new function right next to (1) - this way if someone needs
to add validation specific to qemu, they go to one location, and if
they need to add validation applying to everyone, they go to the
other. It looks a bit strange to have a public function in between a
bunch of statics, but I think it's better than the alternative of
further fragmentation. (I'm open to other ideas though, of course.)
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-10-18 19:48:13 +00:00
|
|
|
virDomainActualNetDefValidate;
|
2020-07-18 06:23:57 +00:00
|
|
|
virDomainAudioTypeTypeFromString;
|
|
|
|
virDomainAudioTypeTypeToString;
|
2011-09-15 13:07:51 +00:00
|
|
|
virDomainBlockedReasonTypeFromString;
|
|
|
|
virDomainBlockedReasonTypeToString;
|
2020-01-08 06:49:26 +00:00
|
|
|
virDomainBlockIoTuneInfoCopy;
|
2020-01-08 06:49:27 +00:00
|
|
|
virDomainBlockIoTuneInfoEqual;
|
2020-01-08 06:49:25 +00:00
|
|
|
virDomainBlockIoTuneInfoHasAny;
|
|
|
|
virDomainBlockIoTuneInfoHasBasic;
|
|
|
|
virDomainBlockIoTuneInfoHasMax;
|
|
|
|
virDomainBlockIoTuneInfoHasMaxLength;
|
2016-01-02 18:36:40 +00:00
|
|
|
virDomainBootTypeFromString;
|
|
|
|
virDomainBootTypeToString;
|
2014-07-18 08:02:29 +00:00
|
|
|
virDomainCapabilitiesPolicyTypeToString;
|
2020-04-27 12:14:27 +00:00
|
|
|
virDomainCFPCTypeFromString;
|
|
|
|
virDomainCFPCTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainChrConsoleTargetTypeFromString;
|
|
|
|
virDomainChrConsoleTargetTypeToString;
|
|
|
|
virDomainChrDefForeach;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainChrDefFree;
|
2011-04-14 16:05:14 +00:00
|
|
|
virDomainChrDefNew;
|
2018-01-23 04:24:42 +00:00
|
|
|
virDomainChrDeviceTypeToString;
|
2013-03-12 14:59:25 +00:00
|
|
|
virDomainChrEquals;
|
2013-03-12 14:55:07 +00:00
|
|
|
virDomainChrFind;
|
|
|
|
virDomainChrGetDomainPtrs;
|
2015-01-27 17:30:15 +00:00
|
|
|
virDomainChrInsertPreAlloced;
|
|
|
|
virDomainChrPreAlloc;
|
2013-03-12 14:55:07 +00:00
|
|
|
virDomainChrRemove;
|
2017-11-20 19:03:20 +00:00
|
|
|
virDomainChrSerialTargetModelTypeFromString;
|
|
|
|
virDomainChrSerialTargetModelTypeToString;
|
2013-01-05 05:25:36 +00:00
|
|
|
virDomainChrSerialTargetTypeFromString;
|
|
|
|
virDomainChrSerialTargetTypeToString;
|
2013-07-22 14:45:32 +00:00
|
|
|
virDomainChrSourceDefClear;
|
2011-11-15 08:01:31 +00:00
|
|
|
virDomainChrSourceDefCopy;
|
2017-06-19 14:43:25 +00:00
|
|
|
virDomainChrSourceDefGetPath;
|
2018-04-06 15:49:01 +00:00
|
|
|
virDomainChrSourceDefNew;
|
2011-02-04 02:23:31 +00:00
|
|
|
virDomainChrSpicevmcTypeFromString;
|
|
|
|
virDomainChrSpicevmcTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainChrTcpProtocolTypeFromString;
|
|
|
|
virDomainChrTcpProtocolTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainChrTypeFromString;
|
|
|
|
virDomainChrTypeToString;
|
2012-02-06 13:59:16 +00:00
|
|
|
virDomainClockBasisTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainClockOffsetTypeFromString;
|
|
|
|
virDomainClockOffsetTypeToString;
|
|
|
|
virDomainConfigFile;
|
2015-04-29 19:37:20 +00:00
|
|
|
virDomainControllerAliasFind;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainControllerDefFree;
|
2016-04-24 15:05:31 +00:00
|
|
|
virDomainControllerDefNew;
|
2012-07-23 08:18:57 +00:00
|
|
|
virDomainControllerFind;
|
2015-03-02 09:58:48 +00:00
|
|
|
virDomainControllerFindByType;
|
2016-05-08 20:28:40 +00:00
|
|
|
virDomainControllerFindUnusedIndex;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainControllerInsert;
|
|
|
|
virDomainControllerInsertPreAlloced;
|
2017-07-24 11:26:57 +00:00
|
|
|
virDomainControllerIsPSeriesPHB;
|
2017-10-24 19:35:32 +00:00
|
|
|
virDomainControllerModelIDETypeFromString;
|
|
|
|
virDomainControllerModelIDETypeToString;
|
qemu: set/validate slot/connection type when assigning slots for PCI devices
Since PCI bridges, PCIe bridges, PCIe switches, and PCIe root ports
all share the same namespace, they are all defined as controllers of
type='pci' in libvirt (but with a differing model attribute). Each of
these controllers has a certain connection type upstream, allows
certain connection types downstream, and each can either allow a
single downstream connection at slot 0, or connections from slot 1 -
31.
Right now, we only support the pci-root and pci-bridge devices, both
of which only allow PCI devices to connect, and both which have usable
slots 1 - 31. In preparation for adding other types of controllers
that have different capabilities, this patch 1) adds info to the
qemuDomainPCIAddressBus object to indicate the capabilities, 2) sets
those capabilities appropriately for pci-root and pci-bridge devices,
and 3) validates that the controller being connected to is the proper
type when allocating slots or validating that a user-selected slot is
appropriate for a device..
Having this infrastructure in place will make it much easier to add
support for the other PCI controller types.
While it would be possible to do all the necessary checking by just
storing the controller model in the qemyuDomainPCIAddressBus, it
greatly simplifies all the validation code to also keep a "flags",
"minSlot" and "maxSlot" for each - that way we can just check those
attributes rather than requiring a nearly identical switch statement
everywhere we need to validate compatibility.
You may notice many places where the flags are seemingly hard-coded to
QEMU_PCI_CONNECT_HOTPLUGGABLE | QEMU_PCI_CONNECT_TYPE_PCI
This is currently the correct value for all PCI devices, and in the
future will be the default, with small bits of code added to change to
the flags for the few devices which are the exceptions to this rule.
Finally, there are a few places with "FIXME" comments. Note that these
aren't indicating places that are broken according to the currently
supported devices, they are places that will need fixing when support
for new PCI controller models is added.
To assure that there was no regression in the auto-allocation of PCI
addresses or auto-creation of integrated pci-root, ide, and usb
controllers, a new test case (pci-bridge-many-disks) has been added to
both the qemuxml2argv and qemuxml2xml tests. This new test defines a
domain with several dozen virtio disks but no pci-root or
pci-bridges. The .args file of the new test case was created using
libvirt sources from before this patch, and the test still passes
after this patch has been applied.
2013-07-15 00:09:44 +00:00
|
|
|
virDomainControllerModelPCITypeToString;
|
2011-09-02 13:06:15 +00:00
|
|
|
virDomainControllerModelSCSITypeFromString;
|
|
|
|
virDomainControllerModelSCSITypeToString;
|
2012-01-02 21:35:12 +00:00
|
|
|
virDomainControllerModelUSBTypeFromString;
|
|
|
|
virDomainControllerModelUSBTypeToString;
|
conf: add new <model> subelement with name attribute to <controller>
This new subelement is used in PCI controllers: the toplevel
*attribute* "model" of a controller denotes what kind of PCI
controller is being described, e.g. a "dmi-to-pci-bridge",
"pci-bridge", or "pci-root". But in the future there will be different
implementations of some of those types of PCI controllers, which
behave similarly from libvirt's point of view (and so should have the
same model), but use a different device in qemu (and present
themselves as a different piece of hardware in the guest). In an ideal
world we (i.e. "I") would have thought of that back when the pci
controllers were added, and used some sort of type/class/model
notation (where class was used in the way we are now using model, and
model was used for the actual manufacturer's model number of a
particular family of PCI controller), but that opportunity is long
past, so as an alternative, this patch allows selecting a particular
implementation of a pci controller with the "name" attribute of the
<model> subelement, e.g.:
<controller type='pci' model='dmi-to-pci-bridge' index='1'>
<model name='i82801b11-bridge'/>
</controller>
In this case, "dmi-to-pci-bridge" is the kind of controller (one that
has a single PCIe port upstream, and 32 standard PCI ports downstream,
which are not hotpluggable), and the qemu device to be used to
implement this kind of controller is named "i82801b11-bridge".
Implementing the above now will allow us in the future to add a new
kind of dmi-to-pci-bridge that doesn't use qemu's i82801b11-bridge
device, but instead uses something else (which doesn't yet exist, but
qemu people have been discussing it), all without breaking existing
configs.
(note that for the existing "pci-bridge" type of PCI controller, both
the model attribute and <model> name are 'pci-bridge'. This is just a
coincidence, since it turns out that in this case the device name in
qemu really is a generic 'pci-bridge' rather than being the name of
some real-world chip)
2015-06-25 17:30:23 +00:00
|
|
|
virDomainControllerPCIModelNameTypeFromString;
|
|
|
|
virDomainControllerPCIModelNameTypeToString;
|
2012-07-23 08:18:57 +00:00
|
|
|
virDomainControllerRemove;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainControllerTypeToString;
|
2012-03-15 11:40:33 +00:00
|
|
|
virDomainCpuPlacementModeTypeFromString;
|
|
|
|
virDomainCpuPlacementModeTypeToString;
|
2016-04-19 19:31:36 +00:00
|
|
|
virDomainDefAddController;
|
2016-01-08 03:49:58 +00:00
|
|
|
virDomainDefAddImplicitDevices;
|
2015-11-05 20:16:50 +00:00
|
|
|
virDomainDefAddUSBController;
|
2011-05-27 09:47:30 +00:00
|
|
|
virDomainDefCheckABIStability;
|
2016-06-09 14:32:32 +00:00
|
|
|
virDomainDefCheckABIStabilityFlags;
|
2012-07-03 13:30:25 +00:00
|
|
|
virDomainDefCompatibleDevice;
|
2012-11-15 20:40:25 +00:00
|
|
|
virDomainDefCopy;
|
2020-07-18 11:23:28 +00:00
|
|
|
virDomainDefFindAudioForSound;
|
2013-07-11 14:54:16 +00:00
|
|
|
virDomainDefFindDevice;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDefFormat;
|
2014-11-18 16:44:00 +00:00
|
|
|
virDomainDefFormatConvertXMLFlags;
|
2011-09-17 12:57:30 +00:00
|
|
|
virDomainDefFormatInternal;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDefFree;
|
2013-03-11 11:12:08 +00:00
|
|
|
virDomainDefGetDefaultEmulator;
|
2015-02-17 17:01:09 +00:00
|
|
|
virDomainDefGetMemoryInitial;
|
2016-06-15 13:34:04 +00:00
|
|
|
virDomainDefGetMemoryTotal;
|
2015-12-07 05:36:37 +00:00
|
|
|
virDomainDefGetOnlineVcpumap;
|
2012-08-15 22:10:36 +00:00
|
|
|
virDomainDefGetSecurityLabelDef;
|
2017-10-23 13:13:09 +00:00
|
|
|
virDomainDefGetShortName;
|
2015-11-03 07:47:23 +00:00
|
|
|
virDomainDefGetVcpu;
|
2016-02-22 14:29:25 +00:00
|
|
|
virDomainDefGetVcpuPinInfoHelper;
|
2015-10-22 12:59:03 +00:00
|
|
|
virDomainDefGetVcpus;
|
2015-10-19 17:21:24 +00:00
|
|
|
virDomainDefGetVcpusMax;
|
2016-10-10 13:46:25 +00:00
|
|
|
virDomainDefGetVcpusTopology;
|
2015-01-21 14:41:44 +00:00
|
|
|
virDomainDefHasDeviceAddress;
|
2018-05-14 05:53:09 +00:00
|
|
|
virDomainDefHasManagedPR;
|
2019-09-17 05:54:32 +00:00
|
|
|
virDomainDefHasMdevHostdev;
|
2016-04-06 13:02:31 +00:00
|
|
|
virDomainDefHasMemballoon;
|
2015-09-14 14:42:46 +00:00
|
|
|
virDomainDefHasMemoryHotplug;
|
2019-06-21 16:00:01 +00:00
|
|
|
virDomainDefHasNVMeDisk;
|
2020-01-07 09:34:03 +00:00
|
|
|
virDomainDefHasOldStyleROUEFI;
|
|
|
|
virDomainDefHasOldStyleUEFI;
|
2017-09-14 07:13:20 +00:00
|
|
|
virDomainDefHasUSB;
|
2015-10-19 16:23:23 +00:00
|
|
|
virDomainDefHasVcpusOffline;
|
2019-06-24 08:01:16 +00:00
|
|
|
virDomainDefHasVFIOHostdev;
|
2017-10-11 14:09:49 +00:00
|
|
|
virDomainDefLifecycleActionAllowed;
|
2013-04-22 12:16:13 +00:00
|
|
|
virDomainDefMaybeAddController;
|
2014-02-17 10:17:52 +00:00
|
|
|
virDomainDefMaybeAddInput;
|
2014-06-09 13:00:22 +00:00
|
|
|
virDomainDefNeedsPlacementAdvice;
|
2013-05-01 09:31:23 +00:00
|
|
|
virDomainDefNew;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDefParseFile;
|
|
|
|
virDomainDefParseNode;
|
|
|
|
virDomainDefParseString;
|
2013-04-22 11:41:52 +00:00
|
|
|
virDomainDefPostParse;
|
2019-11-26 19:40:46 +00:00
|
|
|
virDomainDefSave;
|
2015-09-16 12:25:42 +00:00
|
|
|
virDomainDefSetMemoryTotal;
|
2015-10-22 08:52:05 +00:00
|
|
|
virDomainDefSetVcpus;
|
2015-10-16 14:10:27 +00:00
|
|
|
virDomainDefSetVcpusMax;
|
2016-05-26 13:58:53 +00:00
|
|
|
virDomainDefValidate;
|
2016-09-21 05:59:57 +00:00
|
|
|
virDomainDefVcpuOrderClear;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDeleteConfig;
|
2017-11-29 13:02:51 +00:00
|
|
|
virDomainDeviceAliasIsUserAlias;
|
2012-03-01 18:47:34 +00:00
|
|
|
virDomainDeviceDefCopy;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDeviceDefFree;
|
|
|
|
virDomainDeviceDefParse;
|
2018-01-30 15:04:03 +00:00
|
|
|
virDomainDeviceFindSCSIController;
|
2014-03-20 21:34:00 +00:00
|
|
|
virDomainDeviceGetInfo;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDeviceInfoIterate;
|
2019-01-22 20:19:29 +00:00
|
|
|
virDomainDeviceSetData;
|
2009-03-02 17:39:43 +00:00
|
|
|
virDomainDeviceTypeToString;
|
2017-10-18 15:46:18 +00:00
|
|
|
virDomainDeviceValidateAliasForHotplug;
|
2019-03-21 09:29:53 +00:00
|
|
|
virDomainDiskBackingStoreFormat;
|
2019-03-21 09:16:36 +00:00
|
|
|
virDomainDiskBackingStoreParse;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDiskBusTypeToString;
|
2015-05-21 06:53:40 +00:00
|
|
|
virDomainDiskByAddress;
|
|
|
|
virDomainDiskByName;
|
2019-10-14 14:54:53 +00:00
|
|
|
virDomainDiskByTarget;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDiskCacheTypeFromString;
|
|
|
|
virDomainDiskCacheTypeToString;
|
|
|
|
virDomainDiskDefAssignAddress;
|
2016-02-04 12:39:15 +00:00
|
|
|
virDomainDiskDefCheckDuplicateInfo;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDiskDefFree;
|
2014-05-21 22:50:41 +00:00
|
|
|
virDomainDiskDefNew;
|
2018-03-16 11:43:23 +00:00
|
|
|
virDomainDiskDefParse;
|
2016-04-14 20:32:54 +00:00
|
|
|
virDomainDiskDetectZeroesTypeFromString;
|
|
|
|
virDomainDiskDetectZeroesTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDiskDeviceTypeToString;
|
2013-05-14 12:44:54 +00:00
|
|
|
virDomainDiskDiscardTypeToString;
|
2017-03-31 13:59:54 +00:00
|
|
|
virDomainDiskEmptySource;
|
2010-04-21 14:28:21 +00:00
|
|
|
virDomainDiskErrorPolicyTypeFromString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDiskErrorPolicyTypeToString;
|
2012-08-20 13:58:50 +00:00
|
|
|
virDomainDiskGeometryTransTypeFromString;
|
|
|
|
virDomainDiskGeometryTransTypeToString;
|
2017-11-29 14:17:10 +00:00
|
|
|
virDomainDiskGetDetectZeroesMode;
|
conf: accessors for common source information
A future patch will split virDomainDiskDef, in order to track
multiple host resources per guest <disk>. To reduce the size
of that patch, I've factored out the four most common accesses
into functions, so that I can incrementally upgrade the code
base to use the accessors, and so that code that doesn't care
about the distinction of per-file details won't have to be
changed when the struct changes.
* src/conf/domain_conf.h (virDomainDiskGetType)
(virDomainDiskSetType, virDomainDiskGetSource)
(virDomainDiskSetSource, virDomainDiskGetDriver)
(virDomainDiskSetDriver, virDomainDiskGetFormat)
(virDomainDiskSetFormat): New prototypes.
* src/conf/domain_conf.c (virDomainDiskGetType)
(virDomainDiskSetType, virDomainDiskGetSource)
(virDomainDiskSetSource, virDomainDiskGetDriver)
(virDomainDiskSetDriver, virDomainDiskGetFormat)
(virDomainDiskSetFormat): Implement them.
* src/libvirt_private.syms (domain_conf.h): Export them.
Signed-off-by: Eric Blake <eblake@redhat.com>
2014-03-17 17:39:57 +00:00
|
|
|
virDomainDiskGetDriver;
|
|
|
|
virDomainDiskGetFormat;
|
|
|
|
virDomainDiskGetSource;
|
|
|
|
virDomainDiskGetType;
|
2014-11-22 01:27:38 +00:00
|
|
|
virDomainDiskIndexByAddress;
|
2011-04-22 03:09:32 +00:00
|
|
|
virDomainDiskIndexByName;
|
2009-08-14 09:31:36 +00:00
|
|
|
virDomainDiskInsert;
|
|
|
|
virDomainDiskInsertPreAlloced;
|
2010-04-21 14:28:21 +00:00
|
|
|
virDomainDiskIoTypeFromString;
|
|
|
|
virDomainDiskIoTypeToString;
|
2015-05-11 12:50:48 +00:00
|
|
|
virDomainDiskMirrorStateTypeFromString;
|
|
|
|
virDomainDiskMirrorStateTypeToString;
|
2019-01-11 20:06:05 +00:00
|
|
|
virDomainDiskModelTypeFromString;
|
|
|
|
virDomainDiskModelTypeToString;
|
2010-08-23 09:31:26 +00:00
|
|
|
virDomainDiskRemove;
|
2011-04-22 03:09:32 +00:00
|
|
|
virDomainDiskRemoveByName;
|
2017-01-30 19:37:48 +00:00
|
|
|
virDomainDiskSetBlockIOTune;
|
conf: accessors for common source information
A future patch will split virDomainDiskDef, in order to track
multiple host resources per guest <disk>. To reduce the size
of that patch, I've factored out the four most common accesses
into functions, so that I can incrementally upgrade the code
base to use the accessors, and so that code that doesn't care
about the distinction of per-file details won't have to be
changed when the struct changes.
* src/conf/domain_conf.h (virDomainDiskGetType)
(virDomainDiskSetType, virDomainDiskGetSource)
(virDomainDiskSetSource, virDomainDiskGetDriver)
(virDomainDiskSetDriver, virDomainDiskGetFormat)
(virDomainDiskSetFormat): New prototypes.
* src/conf/domain_conf.c (virDomainDiskGetType)
(virDomainDiskSetType, virDomainDiskGetSource)
(virDomainDiskSetSource, virDomainDiskGetDriver)
(virDomainDiskSetDriver, virDomainDiskGetFormat)
(virDomainDiskSetFormat): Implement them.
* src/libvirt_private.syms (domain_conf.h): Export them.
Signed-off-by: Eric Blake <eblake@redhat.com>
2014-03-17 17:39:57 +00:00
|
|
|
virDomainDiskSetDriver;
|
|
|
|
virDomainDiskSetFormat;
|
|
|
|
virDomainDiskSetSource;
|
|
|
|
virDomainDiskSetType;
|
2019-03-22 15:35:03 +00:00
|
|
|
virDomainDiskSourceFormat;
|
2018-01-25 09:35:51 +00:00
|
|
|
virDomainDiskTranslateSourcePool;
|
2018-02-02 15:05:01 +00:00
|
|
|
virDomainFeatureTypeFromString;
|
|
|
|
virDomainFeatureTypeToString;
|
2020-01-21 07:14:46 +00:00
|
|
|
virDomainFSCacheModeTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainFSDefFree;
|
2016-07-14 13:52:38 +00:00
|
|
|
virDomainFSDefNew;
|
2018-01-25 09:35:59 +00:00
|
|
|
virDomainFSDriverTypeToString;
|
2012-05-29 18:46:38 +00:00
|
|
|
virDomainFSIndexByName;
|
2014-02-06 14:30:07 +00:00
|
|
|
virDomainFSInsert;
|
|
|
|
virDomainFSRemove;
|
2011-07-22 11:11:12 +00:00
|
|
|
virDomainFSTypeFromString;
|
|
|
|
virDomainFSTypeToString;
|
2012-01-17 12:44:18 +00:00
|
|
|
virDomainFSWrpolicyTypeFromString;
|
|
|
|
virDomainFSWrpolicyTypeToString;
|
2018-06-26 19:53:30 +00:00
|
|
|
virDomainGetBlkioParametersAssignFromDef;
|
2013-11-12 11:57:56 +00:00
|
|
|
virDomainGetFilesystemForTarget;
|
2011-05-26 14:15:54 +00:00
|
|
|
virDomainGraphicsAuthConnectedTypeFromString;
|
|
|
|
virDomainGraphicsAuthConnectedTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainGraphicsDefFree;
|
2018-06-30 16:20:33 +00:00
|
|
|
virDomainGraphicsDefHasOpenGL;
|
2020-05-06 13:35:52 +00:00
|
|
|
virDomainGraphicsDefNew;
|
2016-04-10 16:57:12 +00:00
|
|
|
virDomainGraphicsGetListen;
|
2018-11-26 10:07:42 +00:00
|
|
|
virDomainGraphicsGetRenderNode;
|
2016-03-23 07:55:46 +00:00
|
|
|
virDomainGraphicsListenAppendAddress;
|
2016-06-08 08:35:37 +00:00
|
|
|
virDomainGraphicsListenAppendSocket;
|
2018-11-26 10:07:42 +00:00
|
|
|
virDomainGraphicsNeedsAutoRenderNode;
|
2010-04-09 16:56:00 +00:00
|
|
|
virDomainGraphicsSpiceChannelModeTypeFromString;
|
|
|
|
virDomainGraphicsSpiceChannelModeTypeToString;
|
|
|
|
virDomainGraphicsSpiceChannelNameTypeFromString;
|
|
|
|
virDomainGraphicsSpiceChannelNameTypeToString;
|
2011-04-14 08:44:20 +00:00
|
|
|
virDomainGraphicsSpiceImageCompressionTypeFromString;
|
2011-06-14 11:35:48 +00:00
|
|
|
virDomainGraphicsSpiceImageCompressionTypeToString;
|
2011-04-14 08:44:20 +00:00
|
|
|
virDomainGraphicsSpiceJpegCompressionTypeFromString;
|
|
|
|
virDomainGraphicsSpiceJpegCompressionTypeToString;
|
2012-03-09 07:26:24 +00:00
|
|
|
virDomainGraphicsSpiceMouseModeTypeFromString;
|
|
|
|
virDomainGraphicsSpiceMouseModeTypeToString;
|
2011-05-23 15:16:42 +00:00
|
|
|
virDomainGraphicsSpiceStreamingModeTypeFromString;
|
|
|
|
virDomainGraphicsSpiceStreamingModeTypeToString;
|
2011-04-14 08:44:20 +00:00
|
|
|
virDomainGraphicsSpiceZlibCompressionTypeFromString;
|
|
|
|
virDomainGraphicsSpiceZlibCompressionTypeToString;
|
2018-11-26 10:07:42 +00:00
|
|
|
virDomainGraphicsSupportsRenderNode;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainGraphicsTypeFromString;
|
2010-03-22 18:44:58 +00:00
|
|
|
virDomainGraphicsTypeToString;
|
2013-05-21 14:31:48 +00:00
|
|
|
virDomainGraphicsVNCSharePolicyTypeFromString;
|
|
|
|
virDomainGraphicsVNCSharePolicyTypeToString;
|
2015-03-06 14:36:15 +00:00
|
|
|
virDomainHasNet;
|
2012-11-23 13:50:29 +00:00
|
|
|
virDomainHostdevCapsTypeToString;
|
2012-01-31 09:16:54 +00:00
|
|
|
virDomainHostdevDefClear;
|
2009-04-24 12:19:00 +00:00
|
|
|
virDomainHostdevDefFree;
|
2017-06-25 12:11:12 +00:00
|
|
|
virDomainHostdevDefNew;
|
2012-02-27 06:46:47 +00:00
|
|
|
virDomainHostdevFind;
|
|
|
|
virDomainHostdevInsert;
|
2009-08-14 07:31:10 +00:00
|
|
|
virDomainHostdevModeTypeToString;
|
2012-02-27 06:46:47 +00:00
|
|
|
virDomainHostdevRemove;
|
2014-03-13 11:59:32 +00:00
|
|
|
virDomainHostdevSubsysPCIBackendTypeToString;
|
2019-01-17 17:52:33 +00:00
|
|
|
virDomainHostdevSubsysSCSIVHostModelTypeFromString;
|
|
|
|
virDomainHostdevSubsysSCSIVHostModelTypeToString;
|
2009-08-14 07:31:10 +00:00
|
|
|
virDomainHostdevSubsysTypeToString;
|
2017-11-06 15:39:40 +00:00
|
|
|
virDomainHPTResizingTypeToString;
|
2011-09-02 14:20:40 +00:00
|
|
|
virDomainHubTypeFromString;
|
|
|
|
virDomainHubTypeToString;
|
2012-10-16 16:25:56 +00:00
|
|
|
virDomainHypervTypeFromString;
|
|
|
|
virDomainHypervTypeToString;
|
2020-04-27 12:14:31 +00:00
|
|
|
virDomainIBSTypeFromString;
|
|
|
|
virDomainIBSTypeToString;
|
2017-10-04 09:09:27 +00:00
|
|
|
virDomainInputBusTypeToString;
|
2017-10-03 14:25:13 +00:00
|
|
|
virDomainInputDefFind;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainInputDefFree;
|
2017-11-21 12:28:28 +00:00
|
|
|
virDomainInputDefGetPath;
|
2019-03-06 11:30:25 +00:00
|
|
|
virDomainInputTypeToString;
|
2016-06-22 14:28:22 +00:00
|
|
|
virDomainIOMMUModelTypeFromString;
|
|
|
|
virDomainIOMMUModelTypeToString;
|
2015-04-02 23:59:25 +00:00
|
|
|
virDomainIOThreadIDAdd;
|
|
|
|
virDomainIOThreadIDDefFree;
|
|
|
|
virDomainIOThreadIDDel;
|
|
|
|
virDomainIOThreadIDFind;
|
2015-04-27 21:57:27 +00:00
|
|
|
virDomainKeyWrapCipherNameTypeFromString;
|
|
|
|
virDomainKeyWrapCipherNameTypeToString;
|
2012-03-07 02:06:30 +00:00
|
|
|
virDomainLeaseDefFree;
|
2011-05-18 16:20:53 +00:00
|
|
|
virDomainLeaseIndex;
|
|
|
|
virDomainLeaseInsert;
|
|
|
|
virDomainLeaseInsertPreAlloc;
|
|
|
|
virDomainLeaseInsertPreAlloced;
|
|
|
|
virDomainLeaseRemove;
|
|
|
|
virDomainLeaseRemoveAt;
|
2017-10-10 12:32:58 +00:00
|
|
|
virDomainLifecycleActionTypeFromString;
|
|
|
|
virDomainLifecycleActionTypeToString;
|
2014-08-06 11:18:53 +00:00
|
|
|
virDomainLoaderDefFree;
|
|
|
|
virDomainLoaderTypeFromString;
|
|
|
|
virDomainLoaderTypeToString;
|
2012-09-06 20:17:01 +00:00
|
|
|
virDomainLockFailureTypeFromString;
|
|
|
|
virDomainLockFailureTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainMemballoonModelTypeFromString;
|
|
|
|
virDomainMemballoonModelTypeToString;
|
2014-09-29 17:02:04 +00:00
|
|
|
virDomainMemoryDefFree;
|
2015-01-21 14:49:44 +00:00
|
|
|
virDomainMemoryFindByDef;
|
|
|
|
virDomainMemoryFindInactiveByDef;
|
|
|
|
virDomainMemoryInsert;
|
2018-01-23 04:24:42 +00:00
|
|
|
virDomainMemoryModelTypeToString;
|
2015-01-21 14:49:44 +00:00
|
|
|
virDomainMemoryRemove;
|
2017-05-19 14:46:27 +00:00
|
|
|
virDomainMemorySourceTypeFromString;
|
|
|
|
virDomainMemorySourceTypeToString;
|
2018-01-25 09:35:47 +00:00
|
|
|
virDomainNetAllocateActualDevice;
|
2016-06-08 16:48:50 +00:00
|
|
|
virDomainNetAppendIPAddress;
|
2020-01-21 03:37:10 +00:00
|
|
|
virDomainNetARPInterfaces;
|
2018-01-25 09:35:48 +00:00
|
|
|
virDomainNetBandwidthUpdate;
|
2018-09-03 15:59:52 +00:00
|
|
|
virDomainNetDefActualFromNetworkPort;
|
|
|
|
virDomainNetDefActualToNetworkPort;
|
2016-06-21 18:22:15 +00:00
|
|
|
virDomainNetDefClear;
|
2014-02-21 10:01:36 +00:00
|
|
|
virDomainNetDefFormat;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainNetDefFree;
|
2019-08-08 14:55:01 +00:00
|
|
|
virDomainNetDefNew;
|
2018-09-03 15:59:52 +00:00
|
|
|
virDomainNetDefToNetworkPort;
|
2020-01-21 03:37:10 +00:00
|
|
|
virDomainNetDHCPInterfaces;
|
2012-01-02 21:35:12 +00:00
|
|
|
virDomainNetFind;
|
2017-10-02 13:04:14 +00:00
|
|
|
virDomainNetFindByName;
|
qemu: fix attach/detach of netdevs with matching mac addrs
This resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=862515
which describes inconsistencies in dealing with duplicate mac
addresses on network devices in a domain.
(at any rate, it resolves *almost* everything, and prints out an
informative error message for the one problem that isn't solved, but
has a workaround.)
A synopsis of the problems:
1) you can't do a persistent attach-interface of a device with a mac
address that matches an existing device.
2) you *can* do a live attach-interface of such a device.
3) you *can* directly edit a domain and put in two devices with
matching mac addresses.
4) When running virsh detach-device (live or config), only MAC address
is checked when matching the device to remove, so the first device
with the desired mac address will be removed. This isn't always the
one that's wanted.
5) when running virsh detach-interface (live or config), the only two
items that can be specified to match against are mac address and model
type (virtio, etc) - if multiple netdevs match both of those
attributes, it again just finds the first one added and assumes that
is the only match.
Since it is completely valid to have multiple network devices with the
same MAC address (although it can cause problems in many cases, there
*are* valid use cases), what is needed is:
1) remove the restriction that prohibits doing a persistent add of a
netdev with a duplicate mac address.
2) enhance the backend of virDomainDetachDeviceFlags to check for
something that *is* guaranteed unique (but still work with just mac
address, as long as it yields only a single results.
This patch does three things:
1) removes the check for duplicate mac address during a persistent
netdev attach.
2) unifies the searching for both live and config detach of netdevices
in the subordinate functions of qemuDomainModifyDeviceFlags() to use the
new function virDomainNetFindIdx (which matches mac address and PCI
address if available, checking for duplicates if only mac address was
specified). This function returns -2 if multiple matches are found,
allowing the callers to print out an appropriate message.
Steps 1 & 2 are enough to fully fix the problem when using virsh
attach-device and detach-device (which require an XML description of
the device rather than a bunch of commandline args)
3) modifies the virsh detach-interface command to check for multiple
matches of mac address and show an error message suggesting use of the
detach-device command in cases where there are multiple matching mac
addresses.
Later we should decide how we want to input a PCI address on the virsh
commandline, and enhance detach-interface to take a --address option,
eliminating the need to use detach-device
* src/conf/domain_conf.c
* src/conf/domain_conf.h
* src/libvirt_private.syms
* added new virDomainNetFindIdx function
* removed now unused virDomainNetIndexByMac and
virDomainNetRemoveByMac
* src/qemu/qemu_driver.c
* remove check for duplicate max from qemuDomainAttachDeviceConfig
* use virDomainNetFindIdx/virDomainNetRemove instead
of virDomainNetRemoveByMac in qemuDomainDetachDeviceConfig
* use virDomainNetFindIdx instead of virDomainIndexByMac
in qemuDomainUpdateDeviceConfig
* src/qemu/qemu_hotplug.c
* use virDomainNetFindIdx instead of a homespun loop in
qemuDomainDetachNetDevice.
* tools/virsh-domain.c: modified detach-interface command as described
above
2012-10-25 20:03:35 +00:00
|
|
|
virDomainNetFindIdx;
|
2013-03-15 14:44:12 +00:00
|
|
|
virDomainNetGenerateMAC;
|
2011-07-26 12:42:37 +00:00
|
|
|
virDomainNetGetActualBandwidth;
|
network: store network macTableManager setting in NetDef actual object
At the time that the network driver allocates a connection to a
network, the tap device that will be used hasn't yet been created -
that will be done later by qemu (or lxc or whoever) - but if the
network has macTableManager='libvirt', then when we do get around to
creating the tap device, we will need to add an entry for it to the
network bridge's fdb (forwarding database) *and* turn off learning and
unicast_flood for that tap device in the bridge's sysfs settings. This
means that qemu needs to know both the bridge name as well as the
setting of macTableManager, so we either need to create a new API to
retrieve that info, or just pass it back in the ActualNetDef that is
created during networkAllocateActualDevice. We choose the latter
method, since it's already done for the bridge device, and it has the
side effect of making the information available in domain status.
(NB: in the future, I think that the tap device should actually be
created by networkAllocateActualDevice(), as that will solve several
other problems, but that is a battle for another day, and this
information will still be useful outside the network driver)
2014-11-21 17:35:15 +00:00
|
|
|
virDomainNetGetActualBridgeMACTableManager;
|
2011-06-26 08:09:00 +00:00
|
|
|
virDomainNetGetActualBridgeName;
|
|
|
|
virDomainNetGetActualDirectDev;
|
|
|
|
virDomainNetGetActualDirectMode;
|
2012-02-15 17:37:15 +00:00
|
|
|
virDomainNetGetActualHostdev;
|
2020-01-29 15:29:21 +00:00
|
|
|
virDomainNetGetActualPortOptionsIsolated;
|
2014-09-23 18:19:08 +00:00
|
|
|
virDomainNetGetActualTrustGuestRxFilters;
|
2012-01-02 21:35:12 +00:00
|
|
|
virDomainNetGetActualType;
|
2012-02-15 19:19:32 +00:00
|
|
|
virDomainNetGetActualVirtPortProfile;
|
2012-08-12 07:51:30 +00:00
|
|
|
virDomainNetGetActualVlan;
|
2019-01-17 22:06:28 +00:00
|
|
|
virDomainNetGetModelString;
|
2011-05-27 07:01:47 +00:00
|
|
|
virDomainNetInsert;
|
2019-01-21 22:59:02 +00:00
|
|
|
virDomainNetIsVirtioModel;
|
2019-01-18 00:12:27 +00:00
|
|
|
virDomainNetModelTypeFromString;
|
|
|
|
virDomainNetModelTypeToString;
|
2018-01-25 09:35:47 +00:00
|
|
|
virDomainNetNotifyActualDevice;
|
|
|
|
virDomainNetReleaseActualDevice;
|
2012-02-27 17:13:41 +00:00
|
|
|
virDomainNetRemove;
|
2013-08-27 17:06:18 +00:00
|
|
|
virDomainNetRemoveHostdev;
|
2018-01-25 09:35:50 +00:00
|
|
|
virDomainNetResolveActualType;
|
2019-01-17 22:06:28 +00:00
|
|
|
virDomainNetSetModelString;
|
2015-02-09 15:07:30 +00:00
|
|
|
virDomainNetTypeFromString;
|
2017-11-02 18:58:00 +00:00
|
|
|
virDomainNetTypeSharesHostView;
|
2009-07-17 21:08:34 +00:00
|
|
|
virDomainNetTypeToString;
|
2019-09-25 16:42:51 +00:00
|
|
|
virDomainNetUpdate;
|
2011-09-15 13:07:51 +00:00
|
|
|
virDomainNostateReasonTypeFromString;
|
|
|
|
virDomainNostateReasonTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainObjAssignDef;
|
2015-05-26 14:43:58 +00:00
|
|
|
virDomainObjBroadcast;
|
2018-04-17 22:13:26 +00:00
|
|
|
virDomainObjCheckActive;
|
2011-04-22 03:07:56 +00:00
|
|
|
virDomainObjCopyPersistentDef;
|
2015-04-23 15:27:58 +00:00
|
|
|
virDomainObjEndAPI;
|
2015-03-24 12:25:27 +00:00
|
|
|
virDomainObjFormat;
|
2015-05-29 12:37:20 +00:00
|
|
|
virDomainObjGetDefs;
|
2013-06-11 13:45:05 +00:00
|
|
|
virDomainObjGetMetadata;
|
2015-06-15 17:04:41 +00:00
|
|
|
virDomainObjGetOneDef;
|
2016-09-14 05:22:40 +00:00
|
|
|
virDomainObjGetOneDefState;
|
2010-11-19 19:51:46 +00:00
|
|
|
virDomainObjGetPersistentDef;
|
2011-05-04 09:07:01 +00:00
|
|
|
virDomainObjGetState;
|
2012-07-11 13:35:46 +00:00
|
|
|
virDomainObjNew;
|
2018-01-25 09:35:59 +00:00
|
|
|
virDomainObjParseFile;
|
2015-03-24 12:25:27 +00:00
|
|
|
virDomainObjParseNode;
|
2016-09-08 13:16:58 +00:00
|
|
|
virDomainObjRemoveTransientDef;
|
2019-11-26 19:40:46 +00:00
|
|
|
virDomainObjSave;
|
2011-04-22 03:07:56 +00:00
|
|
|
virDomainObjSetDefTransient;
|
2013-06-11 13:45:05 +00:00
|
|
|
virDomainObjSetMetadata;
|
2011-05-04 09:07:01 +00:00
|
|
|
virDomainObjSetState;
|
2011-05-04 10:40:59 +00:00
|
|
|
virDomainObjTaint;
|
2015-05-29 12:37:20 +00:00
|
|
|
virDomainObjUpdateModificationImpact;
|
2015-05-26 14:43:58 +00:00
|
|
|
virDomainObjWait;
|
|
|
|
virDomainObjWaitUntil;
|
2019-02-22 14:25:17 +00:00
|
|
|
virDomainOsDefFirmwareTypeFromString;
|
|
|
|
virDomainOsDefFirmwareTypeToString;
|
2015-04-16 23:18:32 +00:00
|
|
|
virDomainOSTypeFromString;
|
|
|
|
virDomainOSTypeToString;
|
2014-11-10 11:52:05 +00:00
|
|
|
virDomainParseMemory;
|
2011-09-15 13:07:51 +00:00
|
|
|
virDomainPausedReasonTypeFromString;
|
|
|
|
virDomainPausedReasonTypeToString;
|
conf: avoid NULL deref for pmsuspended domain state
While working with a pmsuspend vs. snapshot issue, I noticed that
the state file in /var/run/libvirt/qemu/dom.xml contained a rather
suspicious "(null)" string, which does not round-trip well through
a libvirtd restart. Had I been on a platform other than glibc
where printf("%s",NULL) crashes instead of printing (null), we might
have noticed the problem much sooner.
And in fixing that problem, I also noticed that we had several
missing states, because we were #defining several *_LAST names
to a value _different_ than what they were already given as enums
in libvirt.h. Yuck. I got rid of default: labels in the case
statements, because they get in the way of gcc's -Wswitch helping
us ensure we cover all enum values.
* src/conf/domain_conf.c (virDomainStateReasonToString)
(virDomainStateReasonFromString): Fill in missing domain states;
rewrite case statement to let compiler enforce checking.
(VIR_DOMAIN_NOSTATE_LAST, VIR_DOMAIN_RUNNING_LAST)
(VIR_DOMAIN_BLOCKED_LAST, VIR_DOMAIN_PAUSED_LAST)
(VIR_DOMAIN_SHUTDOWN_LAST, VIR_DOMAIN_SHUTOFF_LAST)
(VIR_DOMAIN_CRASHED_LAST): Drop dead defines.
(VIR_DOMAIN_PMSUSPENDED_LAST): Drop dead define.
(virDomainPMSuspendedReason): Add missing enum function.
(virDomainRunningReason, virDomainPausedReason): Add missing enum
value.
* src/conf/domain_conf.h (virDomainPMSuspendedReason): Declare
missing functions.
* src/libvirt_private.syms (domain_conf.h): Export them.
2013-01-24 00:06:06 +00:00
|
|
|
virDomainPMSuspendedReasonTypeFromString;
|
|
|
|
virDomainPMSuspendedReasonTypeToString;
|
2019-10-25 12:50:15 +00:00
|
|
|
virDomainProcessCapsFeatureTypeToString;
|
2011-09-02 15:09:14 +00:00
|
|
|
virDomainRedirdevBusTypeFromString;
|
|
|
|
virDomainRedirdevBusTypeToString;
|
2016-06-09 09:17:01 +00:00
|
|
|
virDomainRedirdevDefFind;
|
2016-06-09 09:56:46 +00:00
|
|
|
virDomainRedirdevDefFree;
|
2016-06-09 09:17:01 +00:00
|
|
|
virDomainRedirdevDefRemove;
|
2013-01-11 16:34:37 +00:00
|
|
|
virDomainRNGBackendTypeToString;
|
2015-02-05 12:46:06 +00:00
|
|
|
virDomainRNGDefFree;
|
2015-01-17 05:09:32 +00:00
|
|
|
virDomainRNGFind;
|
2013-01-11 16:34:37 +00:00
|
|
|
virDomainRNGModelTypeToString;
|
2015-01-17 05:09:32 +00:00
|
|
|
virDomainRNGRemove;
|
2011-09-15 13:07:51 +00:00
|
|
|
virDomainRunningReasonTypeFromString;
|
|
|
|
virDomainRunningReasonTypeToString;
|
2020-04-27 12:14:29 +00:00
|
|
|
virDomainSBBCTypeFromString;
|
|
|
|
virDomainSBBCTypeToString;
|
2019-04-11 13:44:14 +00:00
|
|
|
virDomainSCSIDriveAddressIsUsed;
|
2012-04-02 15:45:01 +00:00
|
|
|
virDomainSeclabelTypeFromString;
|
|
|
|
virDomainSeclabelTypeToString;
|
2016-09-12 11:41:07 +00:00
|
|
|
virDomainShmemDefEquals;
|
|
|
|
virDomainShmemDefFind;
|
|
|
|
virDomainShmemDefFree;
|
|
|
|
virDomainShmemDefInsert;
|
|
|
|
virDomainShmemDefRemove;
|
2016-08-19 12:57:07 +00:00
|
|
|
virDomainShmemModelTypeFromString;
|
|
|
|
virDomainShmemModelTypeToString;
|
2020-07-24 03:34:11 +00:00
|
|
|
virDomainShmemRoleTypeFromString;
|
|
|
|
virDomainShmemRoleTypeToString;
|
2011-09-15 13:07:51 +00:00
|
|
|
virDomainShutdownReasonTypeFromString;
|
|
|
|
virDomainShutdownReasonTypeToString;
|
|
|
|
virDomainShutoffReasonTypeFromString;
|
|
|
|
virDomainShutoffReasonTypeToString;
|
2011-01-10 16:41:33 +00:00
|
|
|
virDomainSmartcardDefForeach;
|
|
|
|
virDomainSmartcardDefFree;
|
|
|
|
virDomainSmartcardTypeFromString;
|
|
|
|
virDomainSmartcardTypeToString;
|
2012-04-02 15:45:01 +00:00
|
|
|
virDomainSmbiosModeTypeFromString;
|
|
|
|
virDomainSmbiosModeTypeToString;
|
2019-11-29 09:40:46 +00:00
|
|
|
virDomainSoundDefFind;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainSoundDefFree;
|
2019-11-29 09:40:46 +00:00
|
|
|
virDomainSoundDefRemove;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainSoundModelTypeFromString;
|
|
|
|
virDomainSoundModelTypeToString;
|
2011-10-17 14:54:03 +00:00
|
|
|
virDomainStartupPolicyTypeFromString;
|
|
|
|
virDomainStartupPolicyTypeToString;
|
2011-05-04 09:07:01 +00:00
|
|
|
virDomainStateReasonFromString;
|
|
|
|
virDomainStateReasonToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainStateTypeFromString;
|
|
|
|
virDomainStateTypeToString;
|
2018-10-09 20:07:35 +00:00
|
|
|
virDomainStorageNetworkParseHost;
|
2018-05-09 14:21:55 +00:00
|
|
|
virDomainStorageSourceParse;
|
2019-03-20 15:12:45 +00:00
|
|
|
virDomainStorageSourceParseBase;
|
2011-05-04 10:40:59 +00:00
|
|
|
virDomainTaintTypeFromString;
|
|
|
|
virDomainTaintTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainTimerModeTypeFromString;
|
|
|
|
virDomainTimerModeTypeToString;
|
|
|
|
virDomainTimerNameTypeFromString;
|
|
|
|
virDomainTimerNameTypeToString;
|
|
|
|
virDomainTimerTickpolicyTypeFromString;
|
|
|
|
virDomainTimerTickpolicyTypeToString;
|
|
|
|
virDomainTimerTrackTypeFromString;
|
|
|
|
virDomainTimerTrackTypeToString;
|
2013-04-12 20:55:45 +00:00
|
|
|
virDomainTPMBackendTypeFromString;
|
|
|
|
virDomainTPMBackendTypeToString;
|
|
|
|
virDomainTPMDefFree;
|
|
|
|
virDomainTPMModelTypeFromString;
|
|
|
|
virDomainTPMModelTypeToString;
|
2016-06-23 03:04:48 +00:00
|
|
|
virDomainUSBDeviceDefForeach;
|
2009-07-06 13:54:44 +00:00
|
|
|
virDomainVideoDefaultRAM;
|
2018-06-28 07:36:26 +00:00
|
|
|
virDomainVideoDefClear;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainVideoDefFree;
|
2017-06-28 14:24:33 +00:00
|
|
|
virDomainVideoDefNew;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainVideoTypeFromString;
|
|
|
|
virDomainVideoTypeToString;
|
2017-05-09 10:48:30 +00:00
|
|
|
virDomainVideoVGAConfTypeFromString;
|
|
|
|
virDomainVideoVGAConfTypeToString;
|
2014-06-25 16:39:29 +00:00
|
|
|
virDomainVirtTypeFromString;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainVirtTypeToString;
|
2018-05-30 13:52:28 +00:00
|
|
|
virDomainVsockDefEquals;
|
2018-05-30 11:53:52 +00:00
|
|
|
virDomainVsockDefFree;
|
2018-05-22 08:37:50 +00:00
|
|
|
virDomainVsockDefNew;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainWatchdogActionTypeFromString;
|
|
|
|
virDomainWatchdogActionTypeToString;
|
2017-09-05 08:13:05 +00:00
|
|
|
virDomainWatchdogDefFree;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainWatchdogModelTypeFromString;
|
|
|
|
virDomainWatchdogModelTypeToString;
|
2020-04-16 14:31:48 +00:00
|
|
|
virDomainXenPassthroughModeTypeFromString;
|
|
|
|
virDomainXenPassthroughModeTypeToString;
|
2013-03-31 18:03:42 +00:00
|
|
|
virDomainXMLOptionGetNamespace;
|
2017-06-01 22:44:46 +00:00
|
|
|
virDomainXMLOptionGetSaveCookie;
|
2013-03-31 18:03:42 +00:00
|
|
|
virDomainXMLOptionNew;
|
2019-04-16 02:59:44 +00:00
|
|
|
virDomainXMLOptionSetMomentPostParse;
|
2010-03-30 11:44:22 +00:00
|
|
|
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/domain_event.h
|
2014-11-19 09:32:20 +00:00
|
|
|
virDomainEventAgentLifecycleNewFromDom;
|
|
|
|
virDomainEventAgentLifecycleNewFromObj;
|
2012-07-13 09:05:17 +00:00
|
|
|
virDomainEventBalloonChangeNewFromDom;
|
|
|
|
virDomainEventBalloonChangeNewFromObj;
|
blockjob: use stable disk string in job event
When the block job event was first added, it was for block pull,
where the active layer of the disk remains the same name. It was
also in a day where we only cared about local files, and so we
always had a canonical absolute file name. But two things have
changed since then: we now have network disks, where determining
a single absolute string does not really make sense; and we have
two-phase jobs (copy and active commit) where the name of the
active layer changes between the first event (ready, on the old
name) and second (complete, on the pivoted name).
Adam Litke reported that having an unstable string between events
makes life harder for clients. Furthermore, all of our API that
operate on a particular disk of a domain accept multiple strings:
not only the absolute name of the active layer, but also the
destination device name (such as 'vda'). As this latter name is
stable, even for network sources, it serves as a better string
to supply in block job events.
But backwards-compatibility demands that we should not change the
name handed to users unless they explicitly request it. Therefore,
this patch adds a new event, BLOCK_JOB_2 (alas, I couldn't think of
any nicer name - but at least Migrate2 and Migrate3 are precedent
for a number suffix). We must double up on emitting both old-style
and new-style events according to what clients have registered for
(see also how IOError and IOErrorReason emits double events, but
there the difference was a larger struct rather than changed
meaning of one of the struct members).
Unfortunately, adding a new event isn't something that can easily
be broken into pieces, so the commit is rather large.
* include/libvirt/libvirt.h.in (virDomainEventID): Add a new id
for VIR_DOMAIN_EVENT_ID_BLOCK_JOB_2.
(virConnectDomainEventBlockJobCallback): Document new semantics.
* src/conf/domain_event.c (_virDomainEventBlockJob): Rename field,
to ensure we catch all clients.
(virDomainEventBlockJobNew): Add parameter.
(virDomainEventBlockJobDispose)
(virDomainEventBlockJobNewFromObj)
(virDomainEventBlockJobNewFromDom)
(virDomainEventDispatchDefaultFunc): Adjust clients.
(virDomainEventBlockJob2NewFromObj)
(virDomainEventBlockJob2NewFromDom): New functions.
* src/conf/domain_event.h: Add new prototypes.
* src/libvirt_private.syms (domain_event.h): Export new functions.
* src/qemu/qemu_driver.c (qemuDomainBlockJobImpl): Generate two
different events.
* src/qemu/qemu_process.c (qemuProcessHandleBlockJob): Likewise.
* src/remote/remote_protocol.x
(remote_domain_event_block_job_2_msg): New struct.
(REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB_2): New RPC.
* src/remote/remote_driver.c
(remoteDomainBuildEventBlockJob2): New handler.
(remoteEvents): Register new event.
* daemon/remote.c (remoteRelayDomainEventBlockJob2): New handler.
(domainEventCallbacks): Register new event.
* tools/virsh-domain.c (vshEventCallbacks): Likewise.
(vshEventBlockJobPrint): Adjust client.
* src/remote_protocol-structs: Regenerate.
Signed-off-by: Eric Blake <eblake@redhat.com>
2014-06-14 13:18:04 +00:00
|
|
|
virDomainEventBlockJob2NewFromDom;
|
|
|
|
virDomainEventBlockJob2NewFromObj;
|
2011-07-22 05:57:42 +00:00
|
|
|
virDomainEventBlockJobNewFromDom;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainEventBlockJobNewFromObj;
|
2017-02-21 14:03:07 +00:00
|
|
|
virDomainEventBlockThresholdNewFromDom;
|
|
|
|
virDomainEventBlockThresholdNewFromObj;
|
2011-05-29 12:21:53 +00:00
|
|
|
virDomainEventControlErrorNewFromDom;
|
|
|
|
virDomainEventControlErrorNewFromObj;
|
2015-03-30 16:46:21 +00:00
|
|
|
virDomainEventDeviceAddedNewFromDom;
|
|
|
|
virDomainEventDeviceAddedNewFromObj;
|
2016-03-30 16:09:45 +00:00
|
|
|
virDomainEventDeviceRemovalFailedNewFromDom;
|
|
|
|
virDomainEventDeviceRemovalFailedNewFromObj;
|
2013-06-19 13:27:29 +00:00
|
|
|
virDomainEventDeviceRemovedNewFromDom;
|
|
|
|
virDomainEventDeviceRemovedNewFromObj;
|
2011-10-18 14:15:42 +00:00
|
|
|
virDomainEventDiskChangeNewFromDom;
|
|
|
|
virDomainEventDiskChangeNewFromObj;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainEventGraphicsNewFromDom;
|
|
|
|
virDomainEventGraphicsNewFromObj;
|
|
|
|
virDomainEventIOErrorNewFromDom;
|
|
|
|
virDomainEventIOErrorNewFromObj;
|
|
|
|
virDomainEventIOErrorReasonNewFromDom;
|
|
|
|
virDomainEventIOErrorReasonNewFromObj;
|
2016-02-17 20:20:11 +00:00
|
|
|
virDomainEventJobCompletedNewFromDom;
|
|
|
|
virDomainEventJobCompletedNewFromObj;
|
2013-11-21 17:03:26 +00:00
|
|
|
virDomainEventLifecycleNew;
|
|
|
|
virDomainEventLifecycleNewFromDef;
|
|
|
|
virDomainEventLifecycleNewFromDom;
|
|
|
|
virDomainEventLifecycleNewFromObj;
|
2016-12-22 14:41:30 +00:00
|
|
|
virDomainEventMetadataChangeNewFromDom;
|
|
|
|
virDomainEventMetadataChangeNewFromObj;
|
2015-12-10 15:09:09 +00:00
|
|
|
virDomainEventMigrationIterationNewFromDom;
|
|
|
|
virDomainEventMigrationIterationNewFromObj;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainEventPMSuspendDiskNewFromDom;
|
|
|
|
virDomainEventPMSuspendDiskNewFromObj;
|
2012-03-23 14:50:36 +00:00
|
|
|
virDomainEventPMSuspendNewFromDom;
|
|
|
|
virDomainEventPMSuspendNewFromObj;
|
2012-03-23 14:43:14 +00:00
|
|
|
virDomainEventPMWakeupNewFromDom;
|
|
|
|
virDomainEventPMWakeupNewFromObj;
|
2011-04-25 11:35:23 +00:00
|
|
|
virDomainEventRebootNew;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainEventRebootNewFromDom;
|
|
|
|
virDomainEventRebootNewFromObj;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainEventRTCChangeNewFromDom;
|
|
|
|
virDomainEventRTCChangeNewFromObj;
|
2011-01-05 22:51:45 +00:00
|
|
|
virDomainEventStateDeregister;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainEventStateRegister;
|
|
|
|
virDomainEventStateRegisterID;
|
2012-03-23 13:44:50 +00:00
|
|
|
virDomainEventTrayChangeNewFromDom;
|
|
|
|
virDomainEventTrayChangeNewFromObj;
|
2014-09-10 11:28:24 +00:00
|
|
|
virDomainEventTunableNewFromDom;
|
|
|
|
virDomainEventTunableNewFromObj;
|
Add support for an explicit watchdog event
This introduces a new event type
VIR_DOMAIN_EVENT_ID_WATCHDOG
This event includes the action that is about to be taken
as a result of the watchdog triggering
typedef enum {
VIR_DOMAIN_EVENT_WATCHDOG_NONE = 0,
VIR_DOMAIN_EVENT_WATCHDOG_PAUSE,
VIR_DOMAIN_EVENT_WATCHDOG_RESET,
VIR_DOMAIN_EVENT_WATCHDOG_POWEROFF,
VIR_DOMAIN_EVENT_WATCHDOG_SHUTDOWN,
VIR_DOMAIN_EVENT_WATCHDOG_DEBUG,
} virDomainEventWatchdogAction;
Thus there is a new callback definition for this event type
typedef void (*virConnectDomainEventWatchdogCallback)(virConnectPtr conn,
virDomainPtr dom,
int action,
void *opaque);
* daemon/remote.c: Dispatch watchdog events to client
* examples/domain-events/events-c/event-test.c: Watch for
watchdog events
* include/libvirt/libvirt.h.in: Define new watchdg event ID
and callback signature
* src/conf/domain_event.c, src/conf/domain_event.h,
src/libvirt_private.syms: Extend API to handle watchdog events
* src/qemu/qemu_driver.c: Connect to the QEMU monitor event
for watchdogs and emit a libvirt watchdog event
* src/remote/remote_driver.c: Receive and dispatch watchdog
events to application
* src/remote/remote_protocol.x: Wire protocol definition for
watchdog events
* src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
src/qemu/qemu_monitor_json.c: Watch for WATCHDOG event
from QEMU monitor
2010-03-18 19:07:48 +00:00
|
|
|
virDomainEventWatchdogNewFromDom;
|
|
|
|
virDomainEventWatchdogNewFromObj;
|
2013-12-31 13:33:42 +00:00
|
|
|
virDomainQemuMonitorEventNew;
|
|
|
|
virDomainQemuMonitorEventStateRegisterID;
|
2020-02-16 22:25:26 +00:00
|
|
|
virHostdevIsMdevDevice;
|
|
|
|
virHostdevIsSCSIDevice;
|
|
|
|
virHostdevIsVFIODevice;
|
2010-10-20 17:10:45 +00:00
|
|
|
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/domain_nwfilter.h
|
2010-06-21 18:18:31 +00:00
|
|
|
virDomainConfNWFilterInstantiate;
|
|
|
|
virDomainConfNWFilterTeardown;
|
|
|
|
virDomainConfVMNWFilterTeardown;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2010-10-12 11:23:18 +00:00
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# conf/interface_conf.h
|
|
|
|
virInterfaceDefFormat;
|
|
|
|
virInterfaceDefFree;
|
|
|
|
virInterfaceDefParseFile;
|
|
|
|
virInterfaceDefParseNode;
|
|
|
|
virInterfaceDefParseString;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/netdev_bandwidth_conf.h
|
2014-11-18 23:55:48 +00:00
|
|
|
virDomainClearNetBandwidth;
|
Adjust naming of network device bandwidth management APIs
Rename virBandwidth to virNetDevBandwidth, and virRate to
virNetDevBandwidthRate.
* src/util/network.c, src/util/network.h: Rename bandwidth
structs and APIs
* src/conf/domain_conf.c, src/conf/domain_conf.h,
src/conf/network_conf.c, src/conf/network_conf.h,
src/lxc/lxc_driver.c, src/network/bridge_driver.c,
src/qemu/qemu_command.c, src/util/macvtap.c,
src/util/macvtap.h, tools/virsh.c: Update for API changes.
2011-11-02 14:29:05 +00:00
|
|
|
virNetDevBandwidthFormat;
|
2020-02-14 16:26:19 +00:00
|
|
|
virNetDevBandwidthHasFloor;
|
Adjust naming of network device bandwidth management APIs
Rename virBandwidth to virNetDevBandwidth, and virRate to
virNetDevBandwidthRate.
* src/util/network.c, src/util/network.h: Rename bandwidth
structs and APIs
* src/conf/domain_conf.c, src/conf/domain_conf.h,
src/conf/network_conf.c, src/conf/network_conf.h,
src/lxc/lxc_driver.c, src/network/bridge_driver.c,
src/qemu/qemu_command.c, src/util/macvtap.c,
src/util/macvtap.h, tools/virsh.c: Update for API changes.
2011-11-02 14:29:05 +00:00
|
|
|
virNetDevBandwidthParse;
|
2020-02-14 16:26:20 +00:00
|
|
|
virNetDevBandwidthSupportsFloor;
|
2020-02-17 17:35:37 +00:00
|
|
|
virNetDevSupportsBandwidth;
|
2011-11-18 16:07:48 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/netdev_vlan_conf.h
|
2012-08-12 07:51:30 +00:00
|
|
|
virNetDevVlanFormat;
|
|
|
|
virNetDevVlanParse;
|
|
|
|
|
|
|
|
|
2013-02-20 00:59:20 +00:00
|
|
|
# conf/netdev_vport_profile_conf.h
|
2011-11-02 14:43:16 +00:00
|
|
|
virNetDevVPortProfileFormat;
|
|
|
|
virNetDevVPortProfileParse;
|
2012-03-06 01:12:44 +00:00
|
|
|
virNetDevVPortTypeFromString;
|
|
|
|
virNetDevVPortTypeToString;
|
2009-10-30 15:36:04 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/network_conf.h
|
conf: new network bridge device attribute macTableManager
The macTableManager attribute of a network's bridge subelement tells
libvirt how the bridge's MAC address table (used to determine the
egress port for packets) is managed. In the default mode, "kernel",
management is left to the kernel, which usually determines entries in
part by turning on promiscuous mode on all ports of the bridge,
flooding packets to all ports when the correct destination is unknown,
and adding/removing entries to the fdb as it sees incoming traffic
from particular MAC addresses. In "libvirt" mode, libvirt turns off
learning and flooding on all the bridge ports connected to guest
domain interfaces, and adds/removes entries according to the MAC
addresses in the domain interface configurations. A side effect of
turning off learning and unicast_flood on the ports of a bridge is
that (with Linux kernel 3.17 and newer), the kernel can automatically
turn off promiscuous mode on one or more of the bridge's ports
(usually only the one interface that is used to connect the bridge to
the physical network). The result is better performance (because
packets aren't being flooded to all ports, and can be dropped earlier
when they are of no interest) and slightly better security (a guest
can still send out packets with a spoofed source MAC address, but will
only receive traffic intended for the guest interface's configured MAC
address).
The attribute looks like this in the configuration:
<network>
<name>test</name>
<bridge name='br0' macTableManager='libvirt'/>
...
This patch only adds the config knob, documentation, and test
cases. The functionality behind this knob is added in later patches.
2014-11-20 17:40:33 +00:00
|
|
|
virNetworkBridgeMACTableManagerTypeFromString;
|
|
|
|
virNetworkBridgeMACTableManagerTypeToString;
|
2012-12-11 22:21:17 +00:00
|
|
|
virNetworkConfigFile;
|
2012-09-14 15:35:35 +00:00
|
|
|
virNetworkDefCopy;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNetworkDefFormat;
|
2014-02-12 16:36:35 +00:00
|
|
|
virNetworkDefFormatBuf;
|
2016-03-03 07:14:37 +00:00
|
|
|
virNetworkDefForwardIf;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNetworkDefFree;
|
2016-06-08 16:48:50 +00:00
|
|
|
virNetworkDefGetIPByIndex;
|
2015-07-09 13:50:41 +00:00
|
|
|
virNetworkDefGetRouteByIndex;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNetworkDefParseFile;
|
|
|
|
virNetworkDefParseNode;
|
|
|
|
virNetworkDefParseString;
|
2017-03-08 15:25:24 +00:00
|
|
|
virNetworkDefParseXML;
|
2013-07-29 15:17:47 +00:00
|
|
|
virNetworkDefUpdateSection;
|
2020-04-22 20:05:57 +00:00
|
|
|
virNetworkDHCPLeaseTimeUnitTypeFromString;
|
|
|
|
virNetworkDHCPLeaseTimeUnitTypeToString;
|
network: prevent a few invalid configuration combinations
This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=767057
It was possible to define a network with <forward mode='bridge'> that
had both a bridge device and a forward device defined. These two are
mutually exclusive by definition (if you are using a bridge device,
then this is a host bridge, and if you have a forward dev defined,
this is using macvtap). It was also possible to put <ip>, <dns>, and
<domain> elements in this definition, although those aren't supported
by the current driver (although it's conceivable that some other
driver might support that).
The items that are invalid by definition, are now checked in the XML
parser (since they will definitely *always* be wrong), and the others
are checked in networkValidate() in the network driver (since, as
mentioned, it's possible that some other network driver, or even this
one, could some day support setting those).
2012-12-05 19:10:24 +00:00
|
|
|
virNetworkForwardTypeToString;
|
2016-06-08 16:48:50 +00:00
|
|
|
virNetworkIPDefNetmask;
|
|
|
|
virNetworkIPDefPrefix;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNetworkSaveConfig;
|
Give each virtual network bridge its own fixed MAC address
This fixes https://bugzilla.redhat.com/show_bug.cgi?id=609463
The problem was that, since a bridge always acquires the MAC address
of the connected interface with the numerically lowest MAC, as guests
are started and stopped, it was possible for the MAC address to change
over time, and this change in the network was being detected by
Windows 7 (it sees the MAC of the default route change), so on each
reboot it would bring up a dialog box asking about this "new network".
The solution is to create a dummy tap interface with a MAC guaranteed
to be lower than any guest interface's MAC, and attach that tap to the
bridge as soon as it's created. Since all guest MAC addresses start
with 0xFE, we can just generate a MAC with the standard "0x52, 0x54,
0" prefix, and it's guaranteed to always win (physical interfaces are
never connected to these bridges, so we don't need to worry about
competing numerically with them).
Note that the dummy tap is never set to IFF_UP state - that's not
necessary in order for the bridge to take its MAC, and not setting it
to UP eliminates the clutter of having an (eg) "virbr0-nic" displayed
in the output of the ifconfig command.
I chose to not auto-generate the MAC address in the network XML
parser, as there are likely to be consumers of that API that don't
need or want to have a MAC address associated with the
bridge.
Instead, in bridge_driver.c when the network is being defined, if
there is no MAC, one is generated. To account for virtual network
configs that already exist when upgrading from an older version of
libvirt, I've added a %post script to the specfile that searches for
all network definitions in both the config directory
(/etc/libvirt/qemu/networks) and the state directory
(/var/lib/libvirt/network) that are missing a mac address, generates a
random address, and adds it to the config (and a matching address to
the state file, if there is one).
docs/formatnetwork.html.in: document <mac address.../>
docs/schemas/network.rng: add nac address to schema
libvirt.spec.in: %post script to update existing networks
src/conf/network_conf.[ch]: parse and format <mac address.../>
src/libvirt_private.syms: export a couple private symbols we need
src/network/bridge_driver.c:
auto-generate mac address when needed,
create dummy interface if mac address is present.
tests/networkxml2xmlin/isolated-network.xml
tests/networkxml2xmlin/routed-network.xml
tests/networkxml2xmlout/isolated-network.xml
tests/networkxml2xmlout/routed-network.xml: add mac address to some tests
2011-02-09 08:28:12 +00:00
|
|
|
virNetworkSetBridgeMacAddr;
|
2014-02-04 16:36:54 +00:00
|
|
|
virNetworkTaintTypeFromString;
|
|
|
|
virNetworkTaintTypeToString;
|
2019-07-14 16:11:06 +00:00
|
|
|
virNetworkXMLOptionNew;
|
conf: support abstracted interface info in network XML
The network XML is updated in the following ways:
1) The <forward> element can now contain a list of forward interfaces:
<forward .... >
<interface dev='eth10'/>
<interface dev='eth11'/>
<interface dev='eth12'/>
<interface dev='eth13'/>
</forward>
The first of these takes the place of the dev attribute that is
normally in <forward> - when defining a network you can specify
either one, and on output both will be present. If you specify
both on input, they must match.
2) In addition to forward modes of 'nat' and 'route', these new modes
are supported:
private, passthrough, vepa - when this network is referenced by a
domain's interface, it will have the same effect as if the
interface had been defined as type='direct', e.g.:
<interface type='direct'>
<source mode='${mode}' dev='${dev}>
...
</interface>
where ${mode} is one of the three new modes, and ${dev} is an interface
selected from the list given in <forward>.
bridge - if a <forward> dev (or multiple devs) is defined, and
forward mode is 'bridge' this is just like the modes 'private',
'passthrough', and 'vepa' above. If there is no forward dev
specified but a bridge name is given (e.g. "<bridge
name='br0'/>"), then guest interfaces using this network will use
libvirt's "host bridge" mode, equivalent to this:
<interface type='bridge'>
<source bridge='${bridge-name}'/>
...
</interface>
3) A network can have multiple <portgroup> elements, which may be
selected by the guest interface definition (by adding
"portgroup='${name}'" in the <source> element along with the
network name). Currently a portgroup can only contain a
virtportprofile, but the intent is that other configuration items
may be put there int the future (e.g. bandwidth config). When
building a guest's interface, if the <interface> XML itself has no
virtportprofile, and if the requested network has a portgroup with
a name matching the name given in the <interface> (or if one of the
network's portgroups is marked with the "default='yes'" attribute),
the virtportprofile from that portgroup will be used by the
interface.
4) A network can have a virtportprofile defined at the top level,
which will be used by a guest interface when connecting in one of
the 'direct' modes if the guest interface XML itself hasn't
specified any virtportprofile, and if there are also no matching
portgroups on the network.
2011-07-20 03:01:09 +00:00
|
|
|
virPortGroupFindByName;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
|
|
|
|
2014-01-02 14:16:49 +00:00
|
|
|
# conf/network_event.h
|
|
|
|
virNetworkEventLifecycleNew;
|
|
|
|
virNetworkEventStateRegisterID;
|
|
|
|
|
|
|
|
|
2015-01-14 13:21:10 +00:00
|
|
|
# conf/networkcommon_conf.h
|
2016-06-14 17:40:04 +00:00
|
|
|
virNetDevIPRouteCreate;
|
|
|
|
virNetDevIPRouteFormat;
|
|
|
|
virNetDevIPRouteParseXML;
|
2015-01-14 13:21:10 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/node_device_conf.h
|
2012-12-11 22:21:17 +00:00
|
|
|
virNodeDevCapsDefFree;
|
2012-09-17 03:32:53 +00:00
|
|
|
virNodeDevCapTypeFromString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNodeDevCapTypeToString;
|
2018-01-19 09:57:03 +00:00
|
|
|
virNodeDeviceCapsListExport;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNodeDeviceDefFormat;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNodeDeviceDefFree;
|
2010-10-12 11:23:18 +00:00
|
|
|
virNodeDeviceDefParseFile;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNodeDeviceDefParseNode;
|
|
|
|
virNodeDeviceDefParseString;
|
2018-01-12 12:14:26 +00:00
|
|
|
virNodeDeviceGetPCIDynamicCaps;
|
2017-05-25 14:20:58 +00:00
|
|
|
virNodeDeviceGetSCSIHostCaps;
|
2018-01-12 12:14:26 +00:00
|
|
|
virNodeDeviceGetSCSITargetCaps;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNodeDeviceGetWWNs;
|
2018-01-18 10:07:25 +00:00
|
|
|
virNodeDeviceUpdateCaps;
|
2010-10-20 17:10:45 +00:00
|
|
|
|
|
|
|
|
2016-07-28 12:02:51 +00:00
|
|
|
# conf/node_device_event.h
|
|
|
|
virNodeDeviceEventLifecycleNew;
|
|
|
|
virNodeDeviceEventStateRegisterID;
|
2016-08-11 15:15:23 +00:00
|
|
|
virNodeDeviceEventUpdateNew;
|
2016-07-28 12:02:51 +00:00
|
|
|
|
2018-09-19 11:34:35 +00:00
|
|
|
# conf/node_device_util.h
|
|
|
|
virNodeDeviceCreateVport;
|
|
|
|
virNodeDeviceDeleteVport;
|
|
|
|
virNodeDeviceGetParentName;
|
2016-07-28 12:02:51 +00:00
|
|
|
|
2015-02-11 09:08:35 +00:00
|
|
|
# conf/numa_conf.h
|
2020-05-27 09:46:33 +00:00
|
|
|
virDomainCacheAssociativityTypeFromString;
|
|
|
|
virDomainCacheAssociativityTypeToString;
|
|
|
|
virDomainCachePolicyTypeFromString;
|
|
|
|
virDomainCachePolicyTypeToString;
|
2017-12-12 12:52:50 +00:00
|
|
|
virDomainMemoryAccessTypeFromString;
|
|
|
|
virDomainMemoryAccessTypeToString;
|
2020-05-27 09:46:33 +00:00
|
|
|
virDomainMemoryLatencyTypeFromString;
|
|
|
|
virDomainMemoryLatencyTypeToString;
|
2015-02-16 19:34:37 +00:00
|
|
|
virDomainNumaCheckABIStability;
|
2015-02-11 13:54:59 +00:00
|
|
|
virDomainNumaEquals;
|
2020-06-10 18:35:50 +00:00
|
|
|
virDomainNumaFillCPUsInNode;
|
2015-02-11 13:54:59 +00:00
|
|
|
virDomainNumaFree;
|
2016-04-27 14:39:41 +00:00
|
|
|
virDomainNumaGetCPUCountTotal;
|
2020-05-29 12:55:57 +00:00
|
|
|
virDomainNumaGetInterconnect;
|
|
|
|
virDomainNumaGetInterconnectsCount;
|
2015-08-07 14:31:57 +00:00
|
|
|
virDomainNumaGetMaxCPUID;
|
2015-02-16 19:15:04 +00:00
|
|
|
virDomainNumaGetMemorySize;
|
2020-05-29 12:55:57 +00:00
|
|
|
virDomainNumaGetNodeCache;
|
|
|
|
virDomainNumaGetNodeCacheCount;
|
2015-02-16 17:11:46 +00:00
|
|
|
virDomainNumaGetNodeCount;
|
2015-02-16 17:38:43 +00:00
|
|
|
virDomainNumaGetNodeCpumask;
|
2018-05-11 13:08:53 +00:00
|
|
|
virDomainNumaGetNodeDiscard;
|
xenconfig: add domxml conversions for xen-xl
This patch converts NUMA configurations between the Xen libxl
configuration file format and libvirt's XML format.
XML HVM domain on a 4 node (2 cores/socket) configuration:
<cpu>
<numa>
<cell id='0' cpus='0-1' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='10'/>
<sibling id='1' value='21'/>
<sibling id='2' value='31'/>
<sibling id='3' value='21'/>
</distances>
</cell>
<cell id='1' cpus='2-3' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='21'/>
<sibling id='1' value='10'/>
<sibling id='2' value='21'/>
<sibling id='3' value='31'/>
</distances>
</cell>
<cell id='2' cpus='3-4' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='31'/>
<sibling id='1' value='21'/>
<sibling id='2' value='10'/>
<sibling id='3' value='21'/>
</distances>
</cell>
<cell id='3' cpus='5-6' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='21'/>
<sibling id='1' value='31'/>
<sibling id='2' value='21'/>
<sibling id='3' value='10'/>
</distances>
</cell>
</numa>
</cpu>
Xen xl.cfg domain configuration:
vnuma = [["pnode=0","size=2048","vcpus=0-1","vdistances=10,21,31,21"],
["pnode=1","size=2048","vcpus=2-3","vdistances=21,10,21,31"],
["pnode=2","size=2048","vcpus=4-5","vdistances=31,21,10,21"],
["pnode=3","size=2048","vcpus=6-7","vdistances=21,31,21,10"]]
If there is no XML <distances> description amongst the <cell> data the
conversion schema from xml to native will generate 10 for local and 20
for all remote instances.
Signed-off-by: Wim ten Have <wim.ten.have@oracle.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
2017-11-02 15:47:21 +00:00
|
|
|
virDomainNumaGetNodeDistance;
|
2020-05-29 12:55:57 +00:00
|
|
|
virDomainNumaGetNodeInitiator;
|
2015-02-16 17:51:36 +00:00
|
|
|
virDomainNumaGetNodeMemoryAccessMode;
|
2015-02-16 18:14:23 +00:00
|
|
|
virDomainNumaGetNodeMemorySize;
|
2020-05-29 12:55:57 +00:00
|
|
|
virDomainNumaHasHMAT;
|
2015-02-16 15:42:13 +00:00
|
|
|
virDomainNumaNew;
|
2017-11-14 13:28:11 +00:00
|
|
|
virDomainNumaNodeDistanceIsUsingDefaults;
|
2019-12-09 23:15:11 +00:00
|
|
|
virDomainNumaNodesDistancesAreBeingSet;
|
xenconfig: add domxml conversions for xen-xl
This patch converts NUMA configurations between the Xen libxl
configuration file format and libvirt's XML format.
XML HVM domain on a 4 node (2 cores/socket) configuration:
<cpu>
<numa>
<cell id='0' cpus='0-1' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='10'/>
<sibling id='1' value='21'/>
<sibling id='2' value='31'/>
<sibling id='3' value='21'/>
</distances>
</cell>
<cell id='1' cpus='2-3' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='21'/>
<sibling id='1' value='10'/>
<sibling id='2' value='21'/>
<sibling id='3' value='31'/>
</distances>
</cell>
<cell id='2' cpus='3-4' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='31'/>
<sibling id='1' value='21'/>
<sibling id='2' value='10'/>
<sibling id='3' value='21'/>
</distances>
</cell>
<cell id='3' cpus='5-6' memory='2097152' unit='KiB'>
<distances>
<sibling id='0' value='21'/>
<sibling id='1' value='31'/>
<sibling id='2' value='21'/>
<sibling id='3' value='10'/>
</distances>
</cell>
</numa>
</cpu>
Xen xl.cfg domain configuration:
vnuma = [["pnode=0","size=2048","vcpus=0-1","vdistances=10,21,31,21"],
["pnode=1","size=2048","vcpus=2-3","vdistances=21,10,21,31"],
["pnode=2","size=2048","vcpus=4-5","vdistances=31,21,10,21"],
["pnode=3","size=2048","vcpus=6-7","vdistances=21,31,21,10"]]
If there is no XML <distances> description amongst the <cell> data the
conversion schema from xml to native will generate 10 for local and 20
for all remote instances.
Signed-off-by: Wim ten Have <wim.ten.have@oracle.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
2017-11-02 15:47:21 +00:00
|
|
|
virDomainNumaSetNodeCount;
|
|
|
|
virDomainNumaSetNodeCpumask;
|
|
|
|
virDomainNumaSetNodeDistance;
|
|
|
|
virDomainNumaSetNodeDistanceCount;
|
2015-02-16 18:14:23 +00:00
|
|
|
virDomainNumaSetNodeMemorySize;
|
2014-06-09 13:00:22 +00:00
|
|
|
virDomainNumatuneFormatNodeset;
|
|
|
|
virDomainNumatuneFormatXML;
|
|
|
|
virDomainNumatuneGetMode;
|
|
|
|
virDomainNumatuneGetNodeset;
|
2014-06-26 17:46:45 +00:00
|
|
|
virDomainNumatuneHasPerNodeBinding;
|
2014-06-09 13:00:22 +00:00
|
|
|
virDomainNumatuneHasPlacementAuto;
|
|
|
|
virDomainNumatuneMaybeFormatNodeset;
|
2015-01-15 21:40:15 +00:00
|
|
|
virDomainNumatuneMaybeGetNodeset;
|
2014-06-06 14:50:39 +00:00
|
|
|
virDomainNumatuneMemModeTypeFromString;
|
|
|
|
virDomainNumatuneMemModeTypeToString;
|
2014-11-06 11:16:54 +00:00
|
|
|
virDomainNumatuneNodesetIsAvailable;
|
2015-02-12 16:37:46 +00:00
|
|
|
virDomainNumatuneNodeSpecified;
|
2014-06-09 13:00:22 +00:00
|
|
|
virDomainNumatuneParseXML;
|
2014-06-08 17:15:42 +00:00
|
|
|
virDomainNumatunePlacementTypeFromString;
|
|
|
|
virDomainNumatunePlacementTypeToString;
|
2014-06-09 13:00:22 +00:00
|
|
|
virDomainNumatuneSet;
|
2014-11-05 16:58:30 +00:00
|
|
|
virDomainNumatuneSpecifiedMaxNode;
|
2014-06-06 14:50:39 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/nwfilter_conf.h
|
2010-10-20 17:10:45 +00:00
|
|
|
virNWFilterChainSuffixTypeToString;
|
|
|
|
virNWFilterConfLayerInit;
|
|
|
|
virNWFilterConfLayerShutdown;
|
|
|
|
virNWFilterDefFormat;
|
|
|
|
virNWFilterDefFree;
|
2014-04-01 06:19:38 +00:00
|
|
|
virNWFilterDefParseFile;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNWFilterDefParseString;
|
2017-02-28 22:25:36 +00:00
|
|
|
virNWFilterDeleteDef;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNWFilterJumpTargetTypeToString;
|
|
|
|
virNWFilterPrintStateMatchFlags;
|
2011-04-08 00:13:38 +00:00
|
|
|
virNWFilterPrintTCPFlags;
|
2014-01-22 17:28:29 +00:00
|
|
|
virNWFilterReadLockFilterUpdates;
|
2010-03-25 17:46:09 +00:00
|
|
|
virNWFilterRuleActionTypeToString;
|
2011-11-22 20:12:03 +00:00
|
|
|
virNWFilterRuleDirectionTypeToString;
|
2014-03-25 11:50:18 +00:00
|
|
|
virNWFilterRuleIsProtocolEthernet;
|
|
|
|
virNWFilterRuleIsProtocolIPv4;
|
|
|
|
virNWFilterRuleIsProtocolIPv6;
|
2010-03-25 17:46:12 +00:00
|
|
|
virNWFilterRuleProtocolTypeToString;
|
2017-04-19 18:19:41 +00:00
|
|
|
virNWFilterSaveConfig;
|
2018-04-27 12:25:10 +00:00
|
|
|
virNWFilterTriggerRebuild;
|
nwfilter: Support for learning a VM's IP address
This patch implements support for learning a VM's IP address. It uses
the pcap library to listen on the VM's backend network interface (tap)
or the physical ethernet device (macvtap) and tries to capture packets
with source or destination MAC address of the VM and learn from DHCP
Offers, ARP traffic, or first-sent IPv4 packet what the IP address of
the VM's interface is. This then allows to instantiate the network
traffic filtering rules without the user having to provide the IP
parameter somewhere in the filter description or in the interface
description as a parameter. This only supports to detect the parameter
IP, which is for the assumed single IPv4 address of a VM. There is not
support for interfaces that may have multiple IP addresses (IP
aliasing) or IPv6 that may then require more than one valid IP address
to be detected. A VM can have multiple independent interfaces that each
uses a different IP address and in that case it will be attempted to
detect each one of the address independently.
So, when for example an interface description in the domain XML has
looked like this up to now:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'>
<parameter name='IP' value='10.2.3.4'/>
</filterref>
</interface>
you may omit the IP parameter:
<interface type='bridge'>
<source bridge='mybridge'/>
<model type='virtio'/>
<filterref filter='clean-traffic'/>
</interface>
Internally I am walking the 'tree' of a VM's referenced network filters
and determine with the given variables which variables are missing. Now,
the above IP parameter may be missing and this causes a libvirt-internal
thread to be started that uses the pcap library's API to listen to the
backend interface (in case of macvtap to the physical interface) in an
attempt to determine the missing IP parameter. If the backend interface
disappears the thread terminates assuming the VM was brought down. In
case of a macvtap device a timeout is being used to wait for packets
from the given VM (filtering by VM's interface MAC address). If the VM's
macvtap device disappeared the thread also terminates. In all other
cases it tries to determine the IP address of the VM and will then apply
the rules late on the given interface, which would have happened
immediately if the IP parameter had been explicitly given. In case an
error happens while the firewall rules are applied, the VM's backend
interface is 'down'ed preventing it to communicate. Reasons for failure
for applying the network firewall rules may that an ebtables/iptables
command failes or OOM errors. Essentially the same failure reasons may
occur as when the firewall rules are applied immediately on VM start,
except that due to the late application of the filtering rules the VM
now is already running and cannot be hindered anymore from starting.
Bringing down the whole VM would probably be considered too drastic.
While a VM's IP address is attempted to be determined only limited
updates to network filters are allowed. In particular it is prevented
that filters are modified in such a way that they would introduce new
variables.
A caveat: The algorithm does not know which one is the appropriate IP
address of a VM. If the VM spoofs an IP address in its first ARP traffic
or IPv4 packets its filtering rules will be instantiated for this IP
address, thus 'locking' it to the found IP address. So, it's still
'safer' to explicitly provide the IP address of a VM's interface in the
filter description if it is known beforehand.
* configure.ac: detect libpcap
* libvirt.spec.in: require libpcap[-devel] if qemu is built
* src/internal.h: add the new ATTRIBUTE_PACKED define
* src/Makefile.am src/libvirt_private.syms: add the new modules and symbols
* src/nwfilter/nwfilter_learnipaddr.[ch]: new module being added
* src/nwfilter/nwfilter_driver.c src/conf/nwfilter_conf.[ch]
src/nwfilter/nwfilter_ebiptables_driver.[ch]
src/nwfilter/nwfilter_gentech_driver.[ch]: plu the new functionality in
* tests/nwfilterxml2xmltest: extend testing
2010-04-07 21:02:18 +00:00
|
|
|
virNWFilterUnlockFilterUpdates;
|
2014-01-22 17:28:29 +00:00
|
|
|
virNWFilterWriteLockFilterUpdates;
|
2010-03-25 17:46:09 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/nwfilter_ipaddrmap.h
|
2012-06-01 23:32:06 +00:00
|
|
|
virNWFilterIPAddrMapAddIPAddr;
|
|
|
|
virNWFilterIPAddrMapDelIPAddr;
|
|
|
|
virNWFilterIPAddrMapGetIPAddr;
|
|
|
|
virNWFilterIPAddrMapInit;
|
|
|
|
virNWFilterIPAddrMapShutdown;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/nwfilter_params.h
|
2010-03-25 17:46:09 +00:00
|
|
|
virNWFilterHashTableCreate;
|
2012-11-12 16:21:10 +00:00
|
|
|
virNWFilterHashTableEqual;
|
2010-03-25 17:46:09 +00:00
|
|
|
virNWFilterHashTablePutAll;
|
2012-01-11 11:42:37 +00:00
|
|
|
virNWFilterVarAccessGetVarName;
|
2012-01-11 11:42:37 +00:00
|
|
|
virNWFilterVarAccessIsAvailable;
|
|
|
|
virNWFilterVarAccessPrint;
|
2011-11-18 16:58:18 +00:00
|
|
|
virNWFilterVarCombIterCreate;
|
|
|
|
virNWFilterVarCombIterFree;
|
|
|
|
virNWFilterVarCombIterGetVarValue;
|
|
|
|
virNWFilterVarCombIterNext;
|
2011-11-23 00:05:45 +00:00
|
|
|
virNWFilterVarValueAddValue;
|
2014-04-01 06:19:38 +00:00
|
|
|
virNWFilterVarValueAddValueCopy;
|
2011-11-23 00:05:45 +00:00
|
|
|
virNWFilterVarValueCopy;
|
2011-11-18 16:58:18 +00:00
|
|
|
virNWFilterVarValueCreateSimple;
|
|
|
|
virNWFilterVarValueCreateSimpleCopyValue;
|
2011-11-23 00:05:45 +00:00
|
|
|
virNWFilterVarValueDelValue;
|
2012-11-29 17:49:32 +00:00
|
|
|
virNWFilterVarValueEqual;
|
2011-11-23 00:05:45 +00:00
|
|
|
virNWFilterVarValueFree;
|
|
|
|
virNWFilterVarValueGetCardinality;
|
|
|
|
virNWFilterVarValueGetNthValue;
|
2011-11-18 16:58:18 +00:00
|
|
|
virNWFilterVarValueGetSimple;
|
2010-03-25 17:46:09 +00:00
|
|
|
|
|
|
|
|
2013-11-26 14:10:15 +00:00
|
|
|
# conf/object_event.h
|
|
|
|
virObjectEventStateDeregisterID;
|
|
|
|
virObjectEventStateEventID;
|
|
|
|
virObjectEventStateNew;
|
|
|
|
virObjectEventStateQueue;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/secret_conf.h
|
2010-10-20 17:10:45 +00:00
|
|
|
virSecretDefFormat;
|
2009-09-01 15:27:46 +00:00
|
|
|
virSecretDefFree;
|
|
|
|
virSecretDefParseFile;
|
2010-10-20 17:10:45 +00:00
|
|
|
virSecretDefParseString;
|
2014-05-14 19:48:15 +00:00
|
|
|
virSecretUsageTypeFromString;
|
|
|
|
virSecretUsageTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2009-08-14 19:48:55 +00:00
|
|
|
|
2016-12-22 15:24:43 +00:00
|
|
|
# conf/secret_event.h
|
|
|
|
virSecretEventLifecycleNew;
|
|
|
|
virSecretEventStateRegisterID;
|
2017-01-05 13:51:07 +00:00
|
|
|
virSecretEventValueChangedNew;
|
2016-12-22 15:24:43 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/snapshot_conf.h
|
2012-10-19 09:52:54 +00:00
|
|
|
virDomainSnapshotAlignDisks;
|
|
|
|
virDomainSnapshotDefFormat;
|
2013-01-03 13:10:39 +00:00
|
|
|
virDomainSnapshotDefIsExternal;
|
2019-05-08 18:30:38 +00:00
|
|
|
virDomainSnapshotDefNew;
|
2012-10-19 09:52:54 +00:00
|
|
|
virDomainSnapshotDefParseString;
|
2019-11-27 17:11:20 +00:00
|
|
|
virDomainSnapshotDiskDefFree;
|
|
|
|
virDomainSnapshotDiskDefParseXML;
|
2019-02-15 20:43:43 +00:00
|
|
|
virDomainSnapshotFormatConvertXMLFlags;
|
2012-10-19 09:55:36 +00:00
|
|
|
virDomainSnapshotIsExternal;
|
2012-10-19 09:52:54 +00:00
|
|
|
virDomainSnapshotLocationTypeFromString;
|
|
|
|
virDomainSnapshotLocationTypeToString;
|
2013-08-21 20:39:02 +00:00
|
|
|
virDomainSnapshotRedefinePrep;
|
2012-10-19 09:52:54 +00:00
|
|
|
virDomainSnapshotStateTypeFromString;
|
|
|
|
virDomainSnapshotStateTypeToString;
|
|
|
|
|
|
|
|
|
2017-03-10 12:32:46 +00:00
|
|
|
# conf/storage_adapter_conf.h
|
2017-03-10 18:24:56 +00:00
|
|
|
virStorageAdapterClear;
|
|
|
|
virStorageAdapterFormat;
|
|
|
|
virStorageAdapterParseXML;
|
|
|
|
virStorageAdapterValidate;
|
2017-03-10 12:32:46 +00:00
|
|
|
|
|
|
|
|
2019-02-07 17:29:43 +00:00
|
|
|
# conf/storage_capabilities.h
|
|
|
|
virStoragePoolCapsFormat;
|
|
|
|
virStoragePoolCapsNew;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/storage_conf.h
|
2014-05-14 19:48:15 +00:00
|
|
|
virStoragePartedFsTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virStoragePoolDefFormat;
|
|
|
|
virStoragePoolDefFree;
|
2009-06-22 16:41:34 +00:00
|
|
|
virStoragePoolDefParseFile;
|
|
|
|
virStoragePoolDefParseNode;
|
2010-10-20 17:10:45 +00:00
|
|
|
virStoragePoolDefParseSourceString;
|
|
|
|
virStoragePoolDefParseString;
|
2015-10-01 12:24:14 +00:00
|
|
|
virStoragePoolFormatDiskTypeFromString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virStoragePoolFormatDiskTypeToString;
|
|
|
|
virStoragePoolFormatFileSystemNetTypeToString;
|
|
|
|
virStoragePoolFormatFileSystemTypeToString;
|
2016-12-15 13:39:13 +00:00
|
|
|
virStoragePoolFormatLogicalTypeToString;
|
2019-02-07 17:29:43 +00:00
|
|
|
virStoragePoolOptionsFormatPool;
|
|
|
|
virStoragePoolOptionsFormatVolume;
|
2019-01-03 16:47:48 +00:00
|
|
|
virStoragePoolOptionsPoolTypeSetXMLNamespace;
|
2014-11-10 17:23:46 +00:00
|
|
|
virStoragePoolSaveConfig;
|
2015-04-02 14:41:51 +00:00
|
|
|
virStoragePoolSaveState;
|
2011-10-21 22:44:52 +00:00
|
|
|
virStoragePoolSourceClear;
|
2014-03-11 07:44:22 +00:00
|
|
|
virStoragePoolSourceDeviceClear;
|
2009-01-05 14:05:29 +00:00
|
|
|
virStoragePoolSourceFree;
|
|
|
|
virStoragePoolSourceListFormat;
|
2010-10-20 17:10:45 +00:00
|
|
|
virStoragePoolSourceListNewSource;
|
|
|
|
virStoragePoolTypeFromString;
|
2013-11-20 09:37:31 +00:00
|
|
|
virStoragePoolTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virStorageVolDefFindByKey;
|
|
|
|
virStorageVolDefFindByName;
|
|
|
|
virStorageVolDefFindByPath;
|
|
|
|
virStorageVolDefFormat;
|
|
|
|
virStorageVolDefFree;
|
2009-06-22 16:41:34 +00:00
|
|
|
virStorageVolDefParseFile;
|
|
|
|
virStorageVolDefParseNode;
|
2010-10-20 17:10:45 +00:00
|
|
|
virStorageVolDefParseString;
|
2019-03-19 13:42:17 +00:00
|
|
|
virStorageVolDefRefreshAllocationTypeFromString;
|
|
|
|
virStorageVolDefRefreshAllocationTypeToString;
|
2013-11-20 15:02:00 +00:00
|
|
|
virStorageVolTypeFromString;
|
|
|
|
virStorageVolTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2016-06-15 17:59:16 +00:00
|
|
|
# conf/storage_event.h
|
|
|
|
virStoragePoolEventLifecycleNew;
|
2016-06-24 16:35:51 +00:00
|
|
|
virStoragePoolEventRefreshNew;
|
2016-06-15 17:59:16 +00:00
|
|
|
virStoragePoolEventStateRegisterID;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# conf/virchrdev.h
|
|
|
|
virChrdevAlloc;
|
|
|
|
virChrdevFree;
|
|
|
|
virChrdevOpen;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
|
backup: Allow for lists of checkpoint objects
Create a new file for managing a list of checkpoint objects, borrowing
heavily from existing virDomainSnapshotObjList paradigms.
Note that while snapshots definitely have a use case for multiple
children to a single parent (create a base snapshot, create a child
snapshot, revert to the base, then create another child snapshot),
it's harder to predict how checkpoints will play out with reverting to
prior points in time. Thus, in initial use, given a list of
checkpoints, you never have more than one child, and we can treat the
most-recent leaf node as the parent of the next node creation, without
having to expose a notion of a current node in XML or public API.
However, as the snapshot machinery is already generic, it is easier to
reuse the generic machinery that tracks relations between domain
moments than it is to open-code a new list-management scheme just for
checkpoints (hence, we still have internal functions related to a
current checkpoint, even though that has no observable effect
externally, as well as the addition of a function to easily find the
lone leaf in the list to use as the current checkpoint).
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-07-19 02:24:54 +00:00
|
|
|
# conf/virdomaincheckpointobjlist.h
|
|
|
|
virDomainCheckpointAssignDef;
|
|
|
|
virDomainCheckpointFindByName;
|
|
|
|
virDomainCheckpointForEach;
|
|
|
|
virDomainCheckpointGetCurrent;
|
|
|
|
virDomainCheckpointGetCurrentName;
|
|
|
|
virDomainCheckpointLinkParent;
|
|
|
|
virDomainCheckpointObjListFree;
|
|
|
|
virDomainCheckpointObjListNew;
|
|
|
|
virDomainCheckpointObjListRemove;
|
|
|
|
virDomainCheckpointObjListRemoveAll;
|
|
|
|
virDomainCheckpointSetCurrent;
|
|
|
|
virDomainCheckpointUpdateRelations;
|
|
|
|
virDomainListCheckpoints;
|
|
|
|
|
|
|
|
|
2019-03-22 04:46:26 +00:00
|
|
|
# conf/virdomainmomentobjlist.h
|
|
|
|
virDomainMomentDropChildren;
|
|
|
|
virDomainMomentDropParent;
|
|
|
|
virDomainMomentForEachChild;
|
|
|
|
virDomainMomentForEachDescendant;
|
|
|
|
virDomainMomentMoveChildren;
|
|
|
|
|
|
|
|
|
2015-07-17 09:11:23 +00:00
|
|
|
# conf/virdomainobjlist.h
|
|
|
|
virDomainObjListAdd;
|
|
|
|
virDomainObjListCollect;
|
|
|
|
virDomainObjListConvert;
|
|
|
|
virDomainObjListExport;
|
|
|
|
virDomainObjListFindByID;
|
|
|
|
virDomainObjListFindByName;
|
|
|
|
virDomainObjListFindByUUID;
|
|
|
|
virDomainObjListForEach;
|
|
|
|
virDomainObjListGetActiveIDs;
|
|
|
|
virDomainObjListGetInactiveNames;
|
|
|
|
virDomainObjListLoadAllConfigs;
|
|
|
|
virDomainObjListNew;
|
|
|
|
virDomainObjListNumOfDomains;
|
|
|
|
virDomainObjListRemove;
|
|
|
|
virDomainObjListRemoveLocked;
|
2016-02-01 09:33:45 +00:00
|
|
|
virDomainObjListRename;
|
2015-07-17 09:11:23 +00:00
|
|
|
|
|
|
|
|
2019-03-15 02:19:18 +00:00
|
|
|
# conf/virdomainsnapshotobjlist.h
|
|
|
|
virDomainListSnapshots;
|
|
|
|
virDomainSnapshotAssignDef;
|
|
|
|
virDomainSnapshotFindByName;
|
|
|
|
virDomainSnapshotForEach;
|
2019-03-21 20:00:08 +00:00
|
|
|
virDomainSnapshotGetCurrent;
|
|
|
|
virDomainSnapshotGetCurrentName;
|
2019-07-24 03:26:05 +00:00
|
|
|
virDomainSnapshotLinkParent;
|
2019-03-15 02:19:18 +00:00
|
|
|
virDomainSnapshotObjListFree;
|
|
|
|
virDomainSnapshotObjListGetNames;
|
|
|
|
virDomainSnapshotObjListNew;
|
|
|
|
virDomainSnapshotObjListNum;
|
|
|
|
virDomainSnapshotObjListRemove;
|
2019-03-17 03:38:33 +00:00
|
|
|
virDomainSnapshotObjListRemoveAll;
|
2019-03-21 20:00:08 +00:00
|
|
|
virDomainSnapshotSetCurrent;
|
2019-03-15 02:19:18 +00:00
|
|
|
virDomainSnapshotUpdateRelations;
|
|
|
|
|
|
|
|
|
2017-02-28 21:20:44 +00:00
|
|
|
# conf/virinterfaceobj.h
|
2017-05-15 18:31:44 +00:00
|
|
|
virInterfaceObjEndAPI;
|
2017-04-25 21:45:02 +00:00
|
|
|
virInterfaceObjGetDef;
|
|
|
|
virInterfaceObjIsActive;
|
2017-04-14 20:49:48 +00:00
|
|
|
virInterfaceObjListAssignDef;
|
2017-02-28 21:20:44 +00:00
|
|
|
virInterfaceObjListClone;
|
2018-07-10 19:01:45 +00:00
|
|
|
virInterfaceObjListExport;
|
2017-04-14 20:49:48 +00:00
|
|
|
virInterfaceObjListFindByMACString;
|
|
|
|
virInterfaceObjListFindByName;
|
|
|
|
virInterfaceObjListGetNames;
|
2017-04-14 19:45:27 +00:00
|
|
|
virInterfaceObjListNew;
|
2017-04-14 20:49:48 +00:00
|
|
|
virInterfaceObjListNumOfInterfaces;
|
|
|
|
virInterfaceObjListRemove;
|
2017-04-25 21:45:02 +00:00
|
|
|
virInterfaceObjSetActive;
|
2017-02-28 21:20:44 +00:00
|
|
|
|
|
|
|
|
2017-03-08 15:25:24 +00:00
|
|
|
# conf/virnetworkobj.h
|
2018-12-19 14:24:53 +00:00
|
|
|
virNetworkObjAddPort;
|
2017-03-08 16:41:18 +00:00
|
|
|
virNetworkObjAssignDef;
|
|
|
|
virNetworkObjBridgeInUse;
|
2018-12-19 14:24:53 +00:00
|
|
|
virNetworkObjDeleteAllPorts;
|
2017-03-08 16:41:18 +00:00
|
|
|
virNetworkObjDeleteConfig;
|
2018-12-19 14:24:53 +00:00
|
|
|
virNetworkObjDeletePort;
|
2017-03-08 15:25:24 +00:00
|
|
|
virNetworkObjEndAPI;
|
|
|
|
virNetworkObjFindByName;
|
|
|
|
virNetworkObjFindByUUID;
|
2017-05-09 21:41:23 +00:00
|
|
|
virNetworkObjGetClassIdMap;
|
2017-05-09 22:38:58 +00:00
|
|
|
virNetworkObjGetDef;
|
2017-05-09 21:22:43 +00:00
|
|
|
virNetworkObjGetDnsmasqPid;
|
2017-05-09 21:57:41 +00:00
|
|
|
virNetworkObjGetFloorSum;
|
2017-05-09 20:51:05 +00:00
|
|
|
virNetworkObjGetMacMap;
|
2017-05-09 22:38:58 +00:00
|
|
|
virNetworkObjGetNewDef;
|
2017-03-08 15:25:24 +00:00
|
|
|
virNetworkObjGetPersistentDef;
|
2018-12-19 14:24:53 +00:00
|
|
|
virNetworkObjGetPortStatusDir;
|
2017-05-09 21:22:43 +00:00
|
|
|
virNetworkObjGetRadvdPid;
|
2017-05-10 11:22:15 +00:00
|
|
|
virNetworkObjIsActive;
|
2017-05-10 11:12:27 +00:00
|
|
|
virNetworkObjIsAutostart;
|
2017-05-10 11:29:57 +00:00
|
|
|
virNetworkObjIsPersistent;
|
2017-03-08 15:25:24 +00:00
|
|
|
virNetworkObjListExport;
|
|
|
|
virNetworkObjListForEach;
|
|
|
|
virNetworkObjListGetNames;
|
|
|
|
virNetworkObjListNew;
|
|
|
|
virNetworkObjListNumOfNetworks;
|
|
|
|
virNetworkObjListPrune;
|
2017-03-08 16:41:18 +00:00
|
|
|
virNetworkObjLoadAllConfigs;
|
|
|
|
virNetworkObjLoadAllState;
|
2018-12-19 14:24:53 +00:00
|
|
|
virNetworkObjLookupPort;
|
2017-05-09 20:51:05 +00:00
|
|
|
virNetworkObjMacMgrAdd;
|
|
|
|
virNetworkObjMacMgrDel;
|
2017-03-08 15:25:24 +00:00
|
|
|
virNetworkObjNew;
|
2019-09-13 14:54:18 +00:00
|
|
|
virNetworkObjPortForEach;
|
2018-12-19 14:24:53 +00:00
|
|
|
virNetworkObjPortListExport;
|
2017-03-08 16:41:18 +00:00
|
|
|
virNetworkObjRemoveInactive;
|
2017-03-08 15:25:24 +00:00
|
|
|
virNetworkObjReplacePersistentDef;
|
2017-03-08 16:41:18 +00:00
|
|
|
virNetworkObjSaveStatus;
|
2017-05-10 11:22:15 +00:00
|
|
|
virNetworkObjSetActive;
|
2017-05-10 11:12:27 +00:00
|
|
|
virNetworkObjSetAutostart;
|
2017-05-09 22:38:58 +00:00
|
|
|
virNetworkObjSetDef;
|
2017-03-08 15:25:24 +00:00
|
|
|
virNetworkObjSetDefTransient;
|
2017-05-09 21:22:43 +00:00
|
|
|
virNetworkObjSetDnsmasqPid;
|
2017-05-09 21:57:41 +00:00
|
|
|
virNetworkObjSetFloorSum;
|
2017-05-09 20:51:05 +00:00
|
|
|
virNetworkObjSetMacMap;
|
2017-05-09 21:22:43 +00:00
|
|
|
virNetworkObjSetRadvdPid;
|
2017-03-08 15:25:24 +00:00
|
|
|
virNetworkObjTaint;
|
2017-05-09 20:51:05 +00:00
|
|
|
virNetworkObjUnrefMacMap;
|
2017-03-08 15:25:24 +00:00
|
|
|
virNetworkObjUnsetDefTransient;
|
|
|
|
virNetworkObjUpdate;
|
2017-03-08 16:19:20 +00:00
|
|
|
virNetworkObjUpdateAssignDef;
|
2017-03-08 15:25:24 +00:00
|
|
|
|
|
|
|
|
2018-08-31 14:21:34 +00:00
|
|
|
# conf/virnetworkportdef.h
|
|
|
|
virNetworkPortDefFormat;
|
|
|
|
virNetworkPortDefFormatBuf;
|
|
|
|
virNetworkPortDefFree;
|
|
|
|
virNetworkPortDefParseFile;
|
|
|
|
virNetworkPortDefParseNode;
|
|
|
|
virNetworkPortDefParseString;
|
|
|
|
virNetworkPortDefSaveStatus;
|
|
|
|
|
|
|
|
|
2017-02-28 18:24:26 +00:00
|
|
|
# conf/virnodedeviceobj.h
|
2017-05-15 15:00:59 +00:00
|
|
|
virNodeDeviceObjEndAPI;
|
2017-06-03 11:36:01 +00:00
|
|
|
virNodeDeviceObjGetDef;
|
2017-05-12 18:47:17 +00:00
|
|
|
virNodeDeviceObjListAssignDef;
|
2017-02-28 18:24:26 +00:00
|
|
|
virNodeDeviceObjListExport;
|
2017-05-12 18:47:17 +00:00
|
|
|
virNodeDeviceObjListFindByName;
|
|
|
|
virNodeDeviceObjListFindBySysfsPath;
|
2020-06-18 21:05:59 +00:00
|
|
|
virNodeDeviceObjListFindMediatedDeviceByUUID;
|
2017-05-12 19:31:10 +00:00
|
|
|
virNodeDeviceObjListFindSCSIHostByWWNs;
|
2017-02-28 18:24:26 +00:00
|
|
|
virNodeDeviceObjListFree;
|
2017-05-12 18:47:17 +00:00
|
|
|
virNodeDeviceObjListGetNames;
|
|
|
|
virNodeDeviceObjListGetParentHost;
|
2017-05-12 17:51:25 +00:00
|
|
|
virNodeDeviceObjListNew;
|
2017-05-12 18:47:17 +00:00
|
|
|
virNodeDeviceObjListNumOfDevices;
|
|
|
|
virNodeDeviceObjListRemove;
|
2017-02-28 18:24:26 +00:00
|
|
|
|
|
|
|
|
2018-05-10 13:30:42 +00:00
|
|
|
# conf/virnwfilterbindingdef.h
|
|
|
|
virNWFilterBindingDefCopy;
|
2018-05-10 12:37:53 +00:00
|
|
|
virNWFilterBindingDefFormat;
|
|
|
|
virNWFilterBindingDefFormatBuf;
|
2018-05-10 13:30:42 +00:00
|
|
|
virNWFilterBindingDefFree;
|
2018-05-10 12:37:53 +00:00
|
|
|
virNWFilterBindingDefParseFile;
|
|
|
|
virNWFilterBindingDefParseNode;
|
|
|
|
virNWFilterBindingDefParseString;
|
2018-05-10 13:30:42 +00:00
|
|
|
|
|
|
|
|
2018-05-10 16:21:24 +00:00
|
|
|
# conf/virnwfilterbindingobj.h
|
|
|
|
virNWFilterBindingObjConfigFile;
|
|
|
|
virNWFilterBindingObjDelete;
|
|
|
|
virNWFilterBindingObjEndAPI;
|
|
|
|
virNWFilterBindingObjFormat;
|
|
|
|
virNWFilterBindingObjGetDef;
|
|
|
|
virNWFilterBindingObjGetRemoving;
|
|
|
|
virNWFilterBindingObjNew;
|
|
|
|
virNWFilterBindingObjParseFile;
|
|
|
|
virNWFilterBindingObjSave;
|
|
|
|
virNWFilterBindingObjSetDef;
|
|
|
|
virNWFilterBindingObjSetRemoving;
|
2019-03-20 08:59:48 +00:00
|
|
|
virNWFilterBindingObjStealDef;
|
2018-05-10 16:21:24 +00:00
|
|
|
|
|
|
|
|
2018-05-10 14:29:46 +00:00
|
|
|
# conf/virnwfilterbindingobjlist.h
|
|
|
|
virNWFilterBindingObjListAdd;
|
|
|
|
virNWFilterBindingObjListExport;
|
|
|
|
virNWFilterBindingObjListFindByPortDev;
|
|
|
|
virNWFilterBindingObjListForEach;
|
|
|
|
virNWFilterBindingObjListLoadAllConfigs;
|
|
|
|
virNWFilterBindingObjListNew;
|
|
|
|
virNWFilterBindingObjListRemove;
|
|
|
|
|
|
|
|
|
2017-02-28 22:37:15 +00:00
|
|
|
# conf/virnwfilterobj.h
|
2017-04-18 16:02:12 +00:00
|
|
|
virNWFilterObjGetDef;
|
|
|
|
virNWFilterObjGetNewDef;
|
2017-04-18 16:38:50 +00:00
|
|
|
virNWFilterObjListAssignDef;
|
2017-03-20 11:08:46 +00:00
|
|
|
virNWFilterObjListExport;
|
2017-04-18 16:38:50 +00:00
|
|
|
virNWFilterObjListFindByName;
|
|
|
|
virNWFilterObjListFindByUUID;
|
2017-05-30 21:27:04 +00:00
|
|
|
virNWFilterObjListFindInstantiateFilter;
|
2017-02-28 22:37:15 +00:00
|
|
|
virNWFilterObjListFree;
|
2017-04-18 16:38:50 +00:00
|
|
|
virNWFilterObjListGetNames;
|
|
|
|
virNWFilterObjListLoadAllConfigs;
|
2017-04-18 16:52:10 +00:00
|
|
|
virNWFilterObjListNew;
|
2017-04-18 16:38:50 +00:00
|
|
|
virNWFilterObjListNumOfNWFilters;
|
|
|
|
virNWFilterObjListRemove;
|
2017-02-28 22:37:15 +00:00
|
|
|
virNWFilterObjLock;
|
2017-03-02 18:18:32 +00:00
|
|
|
virNWFilterObjTestUnassignDef;
|
2017-02-28 22:37:15 +00:00
|
|
|
virNWFilterObjUnlock;
|
2017-04-18 16:02:12 +00:00
|
|
|
virNWFilterObjWantRemoved;
|
2017-02-28 22:37:15 +00:00
|
|
|
|
|
|
|
|
2017-06-01 22:44:06 +00:00
|
|
|
# conf/virsavecookie.h
|
|
|
|
virSaveCookieFormat;
|
|
|
|
virSaveCookieFormatBuf;
|
|
|
|
virSaveCookieParse;
|
|
|
|
virSaveCookieParseString;
|
|
|
|
|
|
|
|
|
2016-02-25 11:30:39 +00:00
|
|
|
# conf/virsecretobj.h
|
2016-03-02 18:10:54 +00:00
|
|
|
virSecretLoadAllConfigs;
|
2016-03-07 23:06:57 +00:00
|
|
|
virSecretObjDeleteConfig;
|
|
|
|
virSecretObjDeleteData;
|
2016-02-25 11:30:39 +00:00
|
|
|
virSecretObjEndAPI;
|
2016-03-08 00:22:04 +00:00
|
|
|
virSecretObjGetDef;
|
2016-03-08 00:40:58 +00:00
|
|
|
virSecretObjGetValue;
|
|
|
|
virSecretObjGetValueSize;
|
2016-02-25 11:30:39 +00:00
|
|
|
virSecretObjListAdd;
|
|
|
|
virSecretObjListExport;
|
|
|
|
virSecretObjListFindByUsage;
|
|
|
|
virSecretObjListFindByUUID;
|
|
|
|
virSecretObjListGetUUIDs;
|
|
|
|
virSecretObjListNew;
|
|
|
|
virSecretObjListNumOfSecrets;
|
|
|
|
virSecretObjListRemove;
|
2016-03-18 14:17:25 +00:00
|
|
|
virSecretObjSaveConfig;
|
|
|
|
virSecretObjSaveData;
|
2016-03-08 00:22:04 +00:00
|
|
|
virSecretObjSetDef;
|
2016-03-08 00:40:58 +00:00
|
|
|
virSecretObjSetValue;
|
|
|
|
virSecretObjSetValueSize;
|
2016-02-25 11:30:39 +00:00
|
|
|
|
|
|
|
|
2017-03-07 20:18:01 +00:00
|
|
|
# conf/virstorageobj.h
|
2017-05-09 12:05:16 +00:00
|
|
|
virStoragePoolObjAddVol;
|
2017-03-07 20:18:01 +00:00
|
|
|
virStoragePoolObjClearVols;
|
2017-05-07 11:56:03 +00:00
|
|
|
virStoragePoolObjDecrAsyncjobs;
|
|
|
|
virStoragePoolObjDefUseNewDef;
|
2017-03-07 20:18:01 +00:00
|
|
|
virStoragePoolObjDeleteDef;
|
2017-10-08 13:09:09 +00:00
|
|
|
virStoragePoolObjEndAPI;
|
2017-03-07 20:18:01 +00:00
|
|
|
virStoragePoolObjFindByName;
|
|
|
|
virStoragePoolObjFindByUUID;
|
2017-05-09 12:18:33 +00:00
|
|
|
virStoragePoolObjForEachVolume;
|
2017-05-07 11:56:03 +00:00
|
|
|
virStoragePoolObjGetAsyncjobs;
|
|
|
|
virStoragePoolObjGetAutostartLink;
|
|
|
|
virStoragePoolObjGetConfigFile;
|
|
|
|
virStoragePoolObjGetDef;
|
2017-03-21 13:15:18 +00:00
|
|
|
virStoragePoolObjGetNames;
|
2017-05-07 11:56:03 +00:00
|
|
|
virStoragePoolObjGetNewDef;
|
2017-05-09 12:05:16 +00:00
|
|
|
virStoragePoolObjGetVolumesCount;
|
2017-05-07 11:56:03 +00:00
|
|
|
virStoragePoolObjIncrAsyncjobs;
|
|
|
|
virStoragePoolObjIsActive;
|
|
|
|
virStoragePoolObjIsAutostart;
|
2019-05-24 14:35:46 +00:00
|
|
|
virStoragePoolObjIsStarting;
|
2019-05-24 14:35:41 +00:00
|
|
|
virStoragePoolObjListAdd;
|
2017-03-07 20:18:01 +00:00
|
|
|
virStoragePoolObjListExport;
|
2017-10-08 12:14:56 +00:00
|
|
|
virStoragePoolObjListForEach;
|
2017-10-07 11:24:24 +00:00
|
|
|
virStoragePoolObjListNew;
|
2017-10-08 12:44:31 +00:00
|
|
|
virStoragePoolObjListSearch;
|
2017-03-07 21:10:38 +00:00
|
|
|
virStoragePoolObjLoadAllConfigs;
|
|
|
|
virStoragePoolObjLoadAllState;
|
2017-05-08 20:02:36 +00:00
|
|
|
virStoragePoolObjNew;
|
2017-03-21 10:30:46 +00:00
|
|
|
virStoragePoolObjNumOfStoragePools;
|
2017-03-20 14:13:27 +00:00
|
|
|
virStoragePoolObjNumOfVolumes;
|
2017-03-07 20:18:01 +00:00
|
|
|
virStoragePoolObjRemove;
|
2017-05-09 12:05:16 +00:00
|
|
|
virStoragePoolObjRemoveVol;
|
2017-03-07 20:18:01 +00:00
|
|
|
virStoragePoolObjSaveDef;
|
2017-05-09 12:18:33 +00:00
|
|
|
virStoragePoolObjSearchVolume;
|
2017-05-07 11:56:03 +00:00
|
|
|
virStoragePoolObjSetActive;
|
|
|
|
virStoragePoolObjSetAutostart;
|
|
|
|
virStoragePoolObjSetConfigFile;
|
|
|
|
virStoragePoolObjSetDef;
|
2019-05-24 14:35:46 +00:00
|
|
|
virStoragePoolObjSetStarting;
|
2017-03-20 16:16:26 +00:00
|
|
|
virStoragePoolObjVolumeGetNames;
|
2017-03-20 17:48:47 +00:00
|
|
|
virStoragePoolObjVolumeListExport;
|
2017-03-07 20:18:01 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# cpu/cpu.h
|
|
|
|
cpuDecode;
|
|
|
|
cpuEncode;
|
2020-02-25 15:05:06 +00:00
|
|
|
virCPUArchIsSupported;
|
2018-05-15 08:50:32 +00:00
|
|
|
virCPUBaseline;
|
2016-09-16 12:13:09 +00:00
|
|
|
virCPUCheckFeature;
|
2016-08-09 11:26:53 +00:00
|
|
|
virCPUCompare;
|
|
|
|
virCPUCompareXML;
|
2016-11-09 16:09:48 +00:00
|
|
|
virCPUConvertLegacy;
|
2017-03-29 12:45:44 +00:00
|
|
|
virCPUCopyMigratable;
|
2019-06-18 08:09:31 +00:00
|
|
|
virCPUDataAddFeature;
|
2016-08-08 13:48:15 +00:00
|
|
|
virCPUDataCheckFeature;
|
2016-11-04 14:09:20 +00:00
|
|
|
virCPUDataFormat;
|
2017-02-02 14:37:40 +00:00
|
|
|
virCPUDataFree;
|
2017-02-02 11:09:52 +00:00
|
|
|
virCPUDataNew;
|
2016-11-04 14:02:26 +00:00
|
|
|
virCPUDataParse;
|
2017-03-16 11:23:50 +00:00
|
|
|
virCPUExpandFeatures;
|
2017-03-06 20:35:49 +00:00
|
|
|
virCPUGetHost;
|
2017-04-11 18:45:07 +00:00
|
|
|
virCPUGetHostIsSupported;
|
2016-11-04 13:20:39 +00:00
|
|
|
virCPUGetModels;
|
2017-03-15 08:07:38 +00:00
|
|
|
virCPUProbeHost;
|
2016-06-17 07:45:48 +00:00
|
|
|
virCPUTranslate;
|
2016-06-23 13:27:07 +00:00
|
|
|
virCPUUpdate;
|
2017-03-13 11:32:02 +00:00
|
|
|
virCPUUpdateLive;
|
2017-09-14 14:04:13 +00:00
|
|
|
virCPUValidateFeatures;
|
2010-11-05 14:22:13 +00:00
|
|
|
|
|
|
|
|
2013-07-23 21:54:17 +00:00
|
|
|
# cpu/cpu_x86.h
|
2019-03-14 21:02:44 +00:00
|
|
|
virCPUx86DataAdd;
|
2019-02-25 09:04:21 +00:00
|
|
|
virCPUx86DataGetSignature;
|
2017-02-02 15:14:22 +00:00
|
|
|
virCPUx86DataSetSignature;
|
2017-02-02 19:12:38 +00:00
|
|
|
virCPUx86DataSetVendor;
|
2019-06-19 19:59:12 +00:00
|
|
|
virCPUx86FeatureFilterDropMSR;
|
|
|
|
virCPUx86FeatureFilterSelectMSR;
|
2013-07-23 21:54:17 +00:00
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# datatypes.h
|
|
|
|
virConnectClass;
|
2016-04-13 23:05:08 +00:00
|
|
|
virConnectCloseCallbackDataCall;
|
|
|
|
virConnectCloseCallbackDataClass;
|
|
|
|
virConnectCloseCallbackDataGetCallback;
|
|
|
|
virConnectCloseCallbackDataRegister;
|
|
|
|
virConnectCloseCallbackDataUnregister;
|
2019-01-03 01:55:25 +00:00
|
|
|
virDomainCheckpointClass;
|
2013-02-16 03:34:42 +00:00
|
|
|
virDomainClass;
|
|
|
|
virDomainSnapshotClass;
|
|
|
|
virGetConnect;
|
|
|
|
virGetDomain;
|
2019-01-03 01:55:25 +00:00
|
|
|
virGetDomainCheckpoint;
|
2013-02-16 03:34:42 +00:00
|
|
|
virGetDomainSnapshot;
|
|
|
|
virGetInterface;
|
|
|
|
virGetNetwork;
|
2018-11-30 14:55:56 +00:00
|
|
|
virGetNetworkPort;
|
2013-02-16 03:34:42 +00:00
|
|
|
virGetNodeDevice;
|
|
|
|
virGetNWFilter;
|
2018-05-09 11:21:25 +00:00
|
|
|
virGetNWFilterBinding;
|
2013-02-16 03:34:42 +00:00
|
|
|
virGetSecret;
|
|
|
|
virGetStoragePool;
|
|
|
|
virGetStorageVol;
|
|
|
|
virGetStream;
|
|
|
|
virInterfaceClass;
|
|
|
|
virNetworkClass;
|
2018-11-30 14:55:56 +00:00
|
|
|
virNetworkPortClass;
|
2016-04-13 23:05:08 +00:00
|
|
|
virNewConnectCloseCallbackData;
|
2013-02-16 03:34:42 +00:00
|
|
|
virNodeDeviceClass;
|
|
|
|
virNWFilterClass;
|
|
|
|
virSecretClass;
|
|
|
|
virStoragePoolClass;
|
|
|
|
virStorageVolClass;
|
|
|
|
virStreamClass;
|
2010-12-08 06:19:06 +00:00
|
|
|
|
|
|
|
|
2018-01-31 18:21:52 +00:00
|
|
|
# driver.h
|
2019-09-26 14:56:36 +00:00
|
|
|
virConnectValidateURIPath;
|
2019-10-04 14:57:04 +00:00
|
|
|
virDriverShouldAutostart;
|
2018-01-31 18:21:52 +00:00
|
|
|
virGetConnectInterface;
|
|
|
|
virGetConnectNetwork;
|
|
|
|
virGetConnectNodeDev;
|
|
|
|
virGetConnectNWFilter;
|
|
|
|
virGetConnectSecret;
|
|
|
|
virGetConnectStorage;
|
2018-02-13 10:08:00 +00:00
|
|
|
virSetConnectInterface;
|
|
|
|
virSetConnectNetwork;
|
|
|
|
virSetConnectNodeDev;
|
|
|
|
virSetConnectNWFilter;
|
|
|
|
virSetConnectSecret;
|
|
|
|
virSetConnectStorage;
|
2018-01-31 18:21:52 +00:00
|
|
|
|
|
|
|
|
2020-02-17 21:29:11 +00:00
|
|
|
# hypervisor/domain_cgroup.h
|
2020-02-17 21:29:20 +00:00
|
|
|
virDomainCgroupSetMemoryLimitParameters;
|
2020-02-17 21:29:11 +00:00
|
|
|
virDomainCgroupSetupBlkio;
|
2020-02-17 21:29:18 +00:00
|
|
|
virDomainCgroupSetupDomainBlkioParameters;
|
2020-02-17 21:29:12 +00:00
|
|
|
virDomainCgroupSetupMemtune;
|
2020-02-17 21:29:11 +00:00
|
|
|
|
|
|
|
|
2020-02-23 13:32:32 +00:00
|
|
|
# hypervisor/domain_driver.h
|
2020-03-20 17:14:22 +00:00
|
|
|
virDomainDriverGenerateMachineName;
|
2020-03-20 18:52:32 +00:00
|
|
|
virDomainDriverGenerateRootHash;
|
2020-02-17 21:29:16 +00:00
|
|
|
virDomainDriverMergeBlkioDevice;
|
2020-02-17 21:29:17 +00:00
|
|
|
virDomainDriverParseBlkioDeviceStr;
|
2020-02-17 21:29:19 +00:00
|
|
|
virDomainDriverSetupPersistentDefBlkioParams;
|
2020-02-17 21:29:16 +00:00
|
|
|
|
|
|
|
|
2020-02-22 17:16:19 +00:00
|
|
|
# hypervisor/virclosecallbacks.h
|
|
|
|
virCloseCallbacksGet;
|
|
|
|
virCloseCallbacksGetConn;
|
|
|
|
virCloseCallbacksNew;
|
|
|
|
virCloseCallbacksRun;
|
|
|
|
virCloseCallbacksSet;
|
|
|
|
virCloseCallbacksUnset;
|
|
|
|
|
|
|
|
|
2020-02-22 16:52:59 +00:00
|
|
|
# hypervisor/virhostdev.h
|
|
|
|
virHostdevFindUSBDevice;
|
|
|
|
virHostdevManagerGetDefault;
|
|
|
|
virHostdevPCINodeDeviceDetach;
|
|
|
|
virHostdevPCINodeDeviceReAttach;
|
|
|
|
virHostdevPCINodeDeviceReset;
|
|
|
|
virHostdevPrepareDomainDevices;
|
|
|
|
virHostdevPrepareMediatedDevices;
|
|
|
|
virHostdevPrepareNVMeDevices;
|
|
|
|
virHostdevPrepareOneNVMeDevice;
|
|
|
|
virHostdevPreparePCIDevices;
|
|
|
|
virHostdevPrepareSCSIDevices;
|
|
|
|
virHostdevPrepareSCSIVHostDevices;
|
|
|
|
virHostdevPrepareUSBDevices;
|
|
|
|
virHostdevReAttachDomainDevices;
|
|
|
|
virHostdevReAttachMediatedDevices;
|
|
|
|
virHostdevReAttachNVMeDevices;
|
|
|
|
virHostdevReAttachOneNVMeDevice;
|
|
|
|
virHostdevReAttachPCIDevices;
|
|
|
|
virHostdevReAttachSCSIDevices;
|
|
|
|
virHostdevReAttachSCSIVHostDevices;
|
|
|
|
virHostdevReAttachUSBDevices;
|
|
|
|
virHostdevUpdateActiveDomainDevices;
|
|
|
|
virHostdevUpdateActiveMediatedDevices;
|
|
|
|
virHostdevUpdateActiveNVMeDevices;
|
|
|
|
virHostdevUpdateActivePCIDevices;
|
|
|
|
virHostdevUpdateActiveSCSIDevices;
|
|
|
|
virHostdevUpdateActiveUSBDevices;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# libvirt_internal.h
|
2013-04-22 17:26:01 +00:00
|
|
|
virConnectSupportsFeature;
|
2013-02-16 03:34:42 +00:00
|
|
|
virDomainMigrateBegin3;
|
2013-05-20 14:59:08 +00:00
|
|
|
virDomainMigrateBegin3Params;
|
2018-09-20 11:33:45 +00:00
|
|
|
virDomainMigrateCheckNotLocal;
|
2013-02-16 03:34:42 +00:00
|
|
|
virDomainMigrateConfirm3;
|
2013-05-20 14:59:08 +00:00
|
|
|
virDomainMigrateConfirm3Params;
|
2013-02-16 03:34:42 +00:00
|
|
|
virDomainMigrateFinish;
|
|
|
|
virDomainMigrateFinish2;
|
|
|
|
virDomainMigrateFinish3;
|
2013-05-20 14:59:08 +00:00
|
|
|
virDomainMigrateFinish3Params;
|
2013-02-16 03:34:42 +00:00
|
|
|
virDomainMigratePerform;
|
|
|
|
virDomainMigratePerform3;
|
2013-05-20 14:59:08 +00:00
|
|
|
virDomainMigratePerform3Params;
|
2013-02-16 03:34:42 +00:00
|
|
|
virDomainMigratePrepare;
|
|
|
|
virDomainMigratePrepare2;
|
|
|
|
virDomainMigratePrepare3;
|
2013-05-20 14:59:08 +00:00
|
|
|
virDomainMigratePrepare3Params;
|
2013-02-16 03:34:42 +00:00
|
|
|
virDomainMigratePrepareTunnel;
|
|
|
|
virDomainMigratePrepareTunnel3;
|
2013-05-20 14:59:08 +00:00
|
|
|
virDomainMigratePrepareTunnel3Params;
|
2015-01-20 16:16:26 +00:00
|
|
|
virRegisterConnectDriver;
|
2015-01-19 16:56:04 +00:00
|
|
|
virRegisterStateDriver;
|
2015-01-20 16:16:26 +00:00
|
|
|
virSetSharedInterfaceDriver;
|
|
|
|
virSetSharedNetworkDriver;
|
|
|
|
virSetSharedNodeDeviceDriver;
|
|
|
|
virSetSharedNWFilterDriver;
|
|
|
|
virSetSharedSecretDriver;
|
|
|
|
virSetSharedStorageDriver;
|
2015-01-19 16:56:04 +00:00
|
|
|
virStateCleanup;
|
|
|
|
virStateInitialize;
|
|
|
|
virStateReload;
|
2020-07-09 07:46:34 +00:00
|
|
|
virStateShutdownPrepare;
|
|
|
|
virStateShutdownWait;
|
2015-01-19 16:56:04 +00:00
|
|
|
virStateStop;
|
2016-05-21 12:25:14 +00:00
|
|
|
virStreamInData;
|
2010-10-20 17:10:45 +00:00
|
|
|
|
2009-01-15 19:56:05 +00:00
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# locking/domain_lock.h
|
2014-06-23 13:16:46 +00:00
|
|
|
virDomainLockImageAttach;
|
|
|
|
virDomainLockImageDetach;
|
2013-02-16 03:34:42 +00:00
|
|
|
virDomainLockLeaseAttach;
|
|
|
|
virDomainLockLeaseDetach;
|
|
|
|
virDomainLockProcessInquire;
|
|
|
|
virDomainLockProcessPause;
|
|
|
|
virDomainLockProcessResume;
|
|
|
|
virDomainLockProcessStart;
|
|
|
|
|
|
|
|
|
|
|
|
# locking/lock_manager.h
|
|
|
|
virLockManagerAcquire;
|
|
|
|
virLockManagerAddResource;
|
|
|
|
virLockManagerFree;
|
|
|
|
virLockManagerInquire;
|
|
|
|
virLockManagerNew;
|
|
|
|
virLockManagerPluginGetName;
|
|
|
|
virLockManagerPluginNew;
|
|
|
|
virLockManagerPluginRef;
|
|
|
|
virLockManagerPluginUnref;
|
|
|
|
virLockManagerPluginUsesState;
|
|
|
|
virLockManagerRelease;
|
|
|
|
|
|
|
|
|
2015-11-03 11:09:25 +00:00
|
|
|
# logging/log_manager.h
|
2016-06-07 14:15:22 +00:00
|
|
|
virLogManagerDomainAppendMessage;
|
2015-11-03 11:09:25 +00:00
|
|
|
virLogManagerDomainGetLogFilePosition;
|
|
|
|
virLogManagerDomainOpenLogFile;
|
|
|
|
virLogManagerDomainReadLogFile;
|
|
|
|
virLogManagerFree;
|
|
|
|
virLogManagerNew;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# security/security_driver.h
|
|
|
|
virSecurityDriverLookup;
|
|
|
|
|
|
|
|
|
|
|
|
# security/security_manager.h
|
2015-02-12 17:32:40 +00:00
|
|
|
virSecurityManagerCheckAllLabel;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerClearSocketLabel;
|
2020-06-17 09:32:53 +00:00
|
|
|
virSecurityManagerDomainRestorePathLabel;
|
2016-04-14 07:20:55 +00:00
|
|
|
virSecurityManagerDomainSetPathLabel;
|
2020-04-03 12:31:35 +00:00
|
|
|
virSecurityManagerDomainSetPathLabelRO;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerGenLabel;
|
2013-10-18 12:13:20 +00:00
|
|
|
virSecurityManagerGetBaseLabel;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerGetDOI;
|
|
|
|
virSecurityManagerGetModel;
|
|
|
|
virSecurityManagerGetMountOptions;
|
|
|
|
virSecurityManagerGetNested;
|
|
|
|
virSecurityManagerGetProcessLabel;
|
2019-03-21 10:44:21 +00:00
|
|
|
virSecurityManagerMoveImageMetadata;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerNew;
|
|
|
|
virSecurityManagerNewDAC;
|
|
|
|
virSecurityManagerNewStack;
|
|
|
|
virSecurityManagerPostFork;
|
|
|
|
virSecurityManagerPreFork;
|
|
|
|
virSecurityManagerReleaseLabel;
|
|
|
|
virSecurityManagerReserveLabel;
|
|
|
|
virSecurityManagerRestoreAllLabel;
|
2017-12-01 09:39:26 +00:00
|
|
|
virSecurityManagerRestoreChardevLabel;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerRestoreHostdevLabel;
|
2014-06-23 14:35:34 +00:00
|
|
|
virSecurityManagerRestoreImageLabel;
|
2017-11-21 12:31:53 +00:00
|
|
|
virSecurityManagerRestoreInputLabel;
|
2016-08-04 12:48:15 +00:00
|
|
|
virSecurityManagerRestoreMemoryLabel;
|
2020-06-26 15:05:39 +00:00
|
|
|
virSecurityManagerRestoreSavedStateLabel;
|
2018-04-04 16:40:32 +00:00
|
|
|
virSecurityManagerRestoreTPMLabels;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerSetAllLabel;
|
2017-12-01 09:39:26 +00:00
|
|
|
virSecurityManagerSetChardevLabel;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerSetChildProcessLabel;
|
|
|
|
virSecurityManagerSetDaemonSocketLabel;
|
|
|
|
virSecurityManagerSetHostdevLabel;
|
|
|
|
virSecurityManagerSetImageFDLabel;
|
2014-06-23 14:35:34 +00:00
|
|
|
virSecurityManagerSetImageLabel;
|
2017-11-21 12:31:53 +00:00
|
|
|
virSecurityManagerSetInputLabel;
|
2016-08-04 12:48:15 +00:00
|
|
|
virSecurityManagerSetMemoryLabel;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerSetProcessLabel;
|
2020-06-26 15:05:39 +00:00
|
|
|
virSecurityManagerSetSavedStateLabel;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerSetSocketLabel;
|
|
|
|
virSecurityManagerSetTapFDLabel;
|
2018-04-04 16:40:32 +00:00
|
|
|
virSecurityManagerSetTPMLabels;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerStackAddNested;
|
2016-12-14 09:14:49 +00:00
|
|
|
virSecurityManagerTransactionAbort;
|
|
|
|
virSecurityManagerTransactionCommit;
|
|
|
|
virSecurityManagerTransactionStart;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSecurityManagerVerify;
|
|
|
|
|
|
|
|
|
2019-10-17 15:17:01 +00:00
|
|
|
# util/glibcompat.h
|
2020-01-06 11:54:20 +00:00
|
|
|
vir_g_canonicalize_filename;
|
2019-12-23 10:10:20 +00:00
|
|
|
vir_g_fsync;
|
2019-10-17 15:17:01 +00:00
|
|
|
vir_g_strdup_printf;
|
|
|
|
vir_g_strdup_vprintf;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/viralloc.h
|
|
|
|
virAlloc;
|
|
|
|
virAllocN;
|
|
|
|
virAllocVar;
|
|
|
|
virDeleteElementsN;
|
2016-05-13 12:59:01 +00:00
|
|
|
virDispose;
|
2019-04-01 13:04:53 +00:00
|
|
|
virDisposeString;
|
2013-02-16 03:34:42 +00:00
|
|
|
virExpandN;
|
|
|
|
virInsertElementsN;
|
|
|
|
virReallocN;
|
|
|
|
virResizeN;
|
|
|
|
virShrinkN;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virarch.h
|
|
|
|
virArchFromHost;
|
|
|
|
virArchFromString;
|
|
|
|
virArchGetEndian;
|
|
|
|
virArchGetWordSize;
|
|
|
|
virArchToString;
|
|
|
|
|
|
|
|
|
2018-03-08 07:11:56 +00:00
|
|
|
# util/virarptable.h
|
|
|
|
virArpTableFree;
|
|
|
|
virArpTableGet;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/viraudit.h
|
|
|
|
virAuditClose;
|
|
|
|
virAuditEncode;
|
|
|
|
virAuditLog;
|
|
|
|
virAuditOpen;
|
|
|
|
virAuditSend;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virauth.h
|
|
|
|
virAuthGetConfigFilePath;
|
2013-07-24 11:49:24 +00:00
|
|
|
virAuthGetConfigFilePathURI;
|
2013-02-16 03:34:42 +00:00
|
|
|
virAuthGetPassword;
|
2013-07-24 11:49:24 +00:00
|
|
|
virAuthGetPasswordPath;
|
2013-02-16 03:34:42 +00:00
|
|
|
virAuthGetUsername;
|
2013-07-24 11:49:24 +00:00
|
|
|
virAuthGetUsernamePath;
|
2013-02-16 03:34:42 +00:00
|
|
|
|
|
|
|
|
|
|
|
# util/virauthconfig.h
|
|
|
|
virAuthConfigFree;
|
|
|
|
virAuthConfigLookup;
|
|
|
|
virAuthConfigNew;
|
|
|
|
virAuthConfigNewData;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virbitmap.h
|
|
|
|
virBitmapClearAll;
|
|
|
|
virBitmapClearBit;
|
2016-03-18 14:41:59 +00:00
|
|
|
virBitmapClearBitExpand;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBitmapCopy;
|
|
|
|
virBitmapCountBits;
|
2017-08-23 07:05:41 +00:00
|
|
|
virBitmapDataFormat;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBitmapEqual;
|
|
|
|
virBitmapFormat;
|
|
|
|
virBitmapFree;
|
|
|
|
virBitmapGetBit;
|
2017-07-12 11:30:47 +00:00
|
|
|
virBitmapIntersect;
|
2013-04-05 18:06:16 +00:00
|
|
|
virBitmapIsAllClear;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBitmapIsAllSet;
|
2015-03-11 15:41:57 +00:00
|
|
|
virBitmapIsBitSet;
|
2014-11-04 02:44:39 +00:00
|
|
|
virBitmapLastSetBit;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBitmapNew;
|
|
|
|
virBitmapNewCopy;
|
|
|
|
virBitmapNewData;
|
2016-03-18 14:41:59 +00:00
|
|
|
virBitmapNewEmpty;
|
2015-01-30 10:19:59 +00:00
|
|
|
virBitmapNewQuiet;
|
2017-08-23 07:12:10 +00:00
|
|
|
virBitmapNewString;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBitmapNextClearBit;
|
|
|
|
virBitmapNextSetBit;
|
2014-07-23 15:37:19 +00:00
|
|
|
virBitmapOverlaps;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBitmapParse;
|
2016-06-17 12:38:11 +00:00
|
|
|
virBitmapParseSeparator;
|
2016-06-17 13:12:02 +00:00
|
|
|
virBitmapParseUnlimited;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBitmapSetAll;
|
|
|
|
virBitmapSetBit;
|
2016-03-18 14:41:59 +00:00
|
|
|
virBitmapSetBitExpand;
|
2017-11-09 15:12:33 +00:00
|
|
|
virBitmapShrink;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBitmapSize;
|
2017-10-05 13:09:30 +00:00
|
|
|
virBitmapSubtract;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBitmapToData;
|
2015-05-21 16:25:36 +00:00
|
|
|
virBitmapToDataBuf;
|
2017-08-22 06:30:43 +00:00
|
|
|
virBitmapToString;
|
2019-05-30 17:08:28 +00:00
|
|
|
virBitmapUnion;
|
2013-02-16 03:34:42 +00:00
|
|
|
|
|
|
|
|
2019-09-09 07:37:32 +00:00
|
|
|
# util/virbpf.h
|
|
|
|
virBPFAttachProg;
|
|
|
|
virBPFCreateMap;
|
|
|
|
virBPFDeleteElem;
|
|
|
|
virBPFDetachProg;
|
|
|
|
virBPFGetMap;
|
|
|
|
virBPFGetMapInfo;
|
|
|
|
virBPFGetNextElem;
|
|
|
|
virBPFGetProg;
|
|
|
|
virBPFGetProgInfo;
|
|
|
|
virBPFLoadProg;
|
|
|
|
virBPFLookupElem;
|
|
|
|
virBPFQueryProg;
|
|
|
|
virBPFUpdateElem;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virbuffer.h
|
|
|
|
virBufferAdd;
|
2015-02-19 09:56:58 +00:00
|
|
|
virBufferAddBuffer;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBufferAddChar;
|
2015-03-24 09:53:29 +00:00
|
|
|
virBufferAddStr;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBufferAdjustIndent;
|
|
|
|
virBufferAsprintf;
|
|
|
|
virBufferContentAndReset;
|
|
|
|
virBufferCurrentContent;
|
|
|
|
virBufferEscape;
|
2017-05-12 12:26:09 +00:00
|
|
|
virBufferEscapeRegex;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBufferEscapeSexpr;
|
|
|
|
virBufferEscapeShell;
|
2017-10-06 06:47:34 +00:00
|
|
|
virBufferEscapeSQL;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBufferEscapeString;
|
|
|
|
virBufferFreeAndReset;
|
2019-10-24 10:29:12 +00:00
|
|
|
virBufferGetEffectiveIndent;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBufferGetIndent;
|
2017-03-09 16:02:19 +00:00
|
|
|
virBufferSetIndent;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBufferStrcat;
|
2017-07-24 16:54:15 +00:00
|
|
|
virBufferStrcatVArgs;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBufferTrim;
|
2020-01-14 07:04:14 +00:00
|
|
|
virBufferTrimChars;
|
2020-02-02 19:16:36 +00:00
|
|
|
virBufferTrimLen;
|
2013-02-16 03:34:42 +00:00
|
|
|
virBufferURIEncodeString;
|
|
|
|
virBufferUse;
|
|
|
|
virBufferVasprintf;
|
|
|
|
|
|
|
|
|
|
|
|
# util/vircgroup.h
|
2018-09-11 13:03:22 +00:00
|
|
|
virCgroupAddMachineProcess;
|
|
|
|
virCgroupAddProcess;
|
2018-09-24 22:54:04 +00:00
|
|
|
virCgroupAddThread;
|
2014-07-18 08:02:29 +00:00
|
|
|
virCgroupAllowAllDevices;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupAllowDevice;
|
|
|
|
virCgroupAllowDevicePath;
|
2013-07-04 15:49:24 +00:00
|
|
|
virCgroupAvailable;
|
2016-01-22 16:07:18 +00:00
|
|
|
virCgroupBindMount;
|
2015-03-31 09:39:13 +00:00
|
|
|
virCgroupControllerAvailable;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupControllerTypeFromString;
|
|
|
|
virCgroupControllerTypeToString;
|
2016-08-04 21:36:38 +00:00
|
|
|
virCgroupDelThread;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupDenyAllDevices;
|
|
|
|
virCgroupDenyDevice;
|
|
|
|
virCgroupDenyDevicePath;
|
|
|
|
virCgroupFree;
|
2014-02-14 17:48:59 +00:00
|
|
|
virCgroupGetBlkioIoDeviceServiced;
|
|
|
|
virCgroupGetBlkioIoServiced;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupGetBlkioWeight;
|
|
|
|
virCgroupGetCpuacctPercpuUsage;
|
|
|
|
virCgroupGetCpuacctStat;
|
|
|
|
virCgroupGetCpuacctUsage;
|
|
|
|
virCgroupGetCpuCfsPeriod;
|
|
|
|
virCgroupGetCpuCfsQuota;
|
2020-02-17 21:29:21 +00:00
|
|
|
virCgroupGetCpuPeriodQuota;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupGetCpusetCpus;
|
2015-03-11 10:15:29 +00:00
|
|
|
virCgroupGetCpusetMemoryMigrate;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupGetCpusetMems;
|
|
|
|
virCgroupGetCpuShares;
|
2014-06-20 11:33:16 +00:00
|
|
|
virCgroupGetDevicePermsString;
|
2014-02-14 17:49:01 +00:00
|
|
|
virCgroupGetDomainTotalCpuStats;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupGetFreezerState;
|
|
|
|
virCgroupGetMemoryHardLimit;
|
|
|
|
virCgroupGetMemorySoftLimit;
|
2018-07-20 12:47:11 +00:00
|
|
|
virCgroupGetMemoryStat;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupGetMemoryUsage;
|
|
|
|
virCgroupGetMemSwapHardLimit;
|
|
|
|
virCgroupGetMemSwapUsage;
|
2014-02-14 17:49:02 +00:00
|
|
|
virCgroupGetPercpuStats;
|
2013-03-21 13:38:31 +00:00
|
|
|
virCgroupHasController;
|
2014-12-13 08:56:00 +00:00
|
|
|
virCgroupHasEmptyTasks;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupKillPainfully;
|
|
|
|
virCgroupKillRecursive;
|
2013-07-19 10:13:05 +00:00
|
|
|
virCgroupNewDetect;
|
2013-07-24 16:36:42 +00:00
|
|
|
virCgroupNewDetectMachine;
|
2013-03-28 18:08:39 +00:00
|
|
|
virCgroupNewDomainPartition;
|
2013-07-04 15:49:24 +00:00
|
|
|
virCgroupNewIgnoreError;
|
2013-07-18 15:55:37 +00:00
|
|
|
virCgroupNewMachine;
|
2013-03-28 18:08:39 +00:00
|
|
|
virCgroupNewPartition;
|
2013-03-28 16:33:22 +00:00
|
|
|
virCgroupNewSelf;
|
2015-04-07 12:28:05 +00:00
|
|
|
virCgroupNewThread;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupPathOfController;
|
|
|
|
virCgroupRemove;
|
|
|
|
virCgroupSetBlkioWeight;
|
|
|
|
virCgroupSetCpuCfsPeriod;
|
|
|
|
virCgroupSetCpuCfsQuota;
|
|
|
|
virCgroupSetCpusetCpus;
|
2015-03-11 10:15:29 +00:00
|
|
|
virCgroupSetCpusetMemoryMigrate;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCgroupSetCpusetMems;
|
|
|
|
virCgroupSetCpuShares;
|
|
|
|
virCgroupSetFreezerState;
|
|
|
|
virCgroupSetMemory;
|
|
|
|
virCgroupSetMemoryHardLimit;
|
|
|
|
virCgroupSetMemorySoftLimit;
|
|
|
|
virCgroupSetMemSwapHardLimit;
|
2014-02-24 12:23:33 +00:00
|
|
|
virCgroupSetOwner;
|
2020-02-17 21:29:08 +00:00
|
|
|
virCgroupSetupBlkioDeviceReadBps;
|
|
|
|
virCgroupSetupBlkioDeviceReadIops;
|
|
|
|
virCgroupSetupBlkioDeviceWeight;
|
|
|
|
virCgroupSetupBlkioDeviceWriteBps;
|
|
|
|
virCgroupSetupBlkioDeviceWriteIops;
|
2020-02-17 21:29:15 +00:00
|
|
|
virCgroupSetupCpuPeriodQuota;
|
2020-02-17 21:29:13 +00:00
|
|
|
virCgroupSetupCpusetCpus;
|
2020-02-17 21:29:14 +00:00
|
|
|
virCgroupSetupCpuShares;
|
2013-09-13 14:03:14 +00:00
|
|
|
virCgroupSupportsCpuBW;
|
2014-09-25 11:32:58 +00:00
|
|
|
virCgroupTerminateMachine;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2018-08-15 11:10:24 +00:00
|
|
|
# util/vircgroupbackend.h
|
|
|
|
virCgroupBackendGetAll;
|
|
|
|
virCgroupBackendRegister;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2018-08-17 08:19:59 +00:00
|
|
|
# util/vircgroupv1.h
|
|
|
|
virCgroupV1Register;
|
|
|
|
|
2018-09-18 15:48:33 +00:00
|
|
|
# util/vircgroupv2.h
|
|
|
|
virCgroupV2Register;
|
|
|
|
|
2019-09-09 07:40:06 +00:00
|
|
|
# util/vircgroupv2devices.h
|
|
|
|
virCgroupV2DevicesAvailable;
|
2019-06-24 12:30:59 +00:00
|
|
|
virCgroupV2DevicesCreateProg;
|
2019-06-24 12:25:04 +00:00
|
|
|
virCgroupV2DevicesDetectProg;
|
2019-06-24 12:46:53 +00:00
|
|
|
virCgroupV2DevicesGetKey;
|
2019-06-24 12:41:50 +00:00
|
|
|
virCgroupV2DevicesGetPerms;
|
2019-06-24 12:34:51 +00:00
|
|
|
virCgroupV2DevicesPrepareProg;
|
2019-06-24 12:39:23 +00:00
|
|
|
virCgroupV2DevicesRemoveProg;
|
2019-09-09 07:40:06 +00:00
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/vircommand.h
|
|
|
|
virCommandAbort;
|
|
|
|
virCommandAddArg;
|
|
|
|
virCommandAddArgBuffer;
|
|
|
|
virCommandAddArgFormat;
|
|
|
|
virCommandAddArgList;
|
|
|
|
virCommandAddArgPair;
|
|
|
|
virCommandAddArgSet;
|
|
|
|
virCommandAddEnvBuffer;
|
|
|
|
virCommandAddEnvFormat;
|
|
|
|
virCommandAddEnvPair;
|
2019-08-01 12:52:00 +00:00
|
|
|
virCommandAddEnvPass;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandAddEnvPassCommon;
|
|
|
|
virCommandAddEnvString;
|
2019-03-04 11:47:08 +00:00
|
|
|
virCommandAddEnvXDG;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandAllowCap;
|
|
|
|
virCommandClearCaps;
|
|
|
|
virCommandDaemonize;
|
|
|
|
virCommandDoAsyncIO;
|
|
|
|
virCommandExec;
|
|
|
|
virCommandFree;
|
2020-05-13 15:55:21 +00:00
|
|
|
virCommandGetArgList;
|
2017-10-09 19:14:55 +00:00
|
|
|
virCommandGetGID;
|
|
|
|
virCommandGetUID;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandHandshakeNotify;
|
|
|
|
virCommandHandshakeWait;
|
|
|
|
virCommandNew;
|
|
|
|
virCommandNewArgList;
|
|
|
|
virCommandNewArgs;
|
2016-03-28 13:03:00 +00:00
|
|
|
virCommandNewVAList;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandNonblockingFDs;
|
2013-07-11 10:31:56 +00:00
|
|
|
virCommandPassFD;
|
2015-03-05 23:57:06 +00:00
|
|
|
virCommandPassFDGetFDIndex;
|
2014-02-20 00:32:19 +00:00
|
|
|
virCommandRawStatus;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandRequireHandshake;
|
|
|
|
virCommandRun;
|
|
|
|
virCommandRunAsync;
|
2014-03-18 14:35:01 +00:00
|
|
|
virCommandRunNul;
|
|
|
|
virCommandRunRegex;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandSetAppArmorProfile;
|
2014-01-28 18:18:43 +00:00
|
|
|
virCommandSetDryRun;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandSetErrorBuffer;
|
|
|
|
virCommandSetErrorFD;
|
|
|
|
virCommandSetGID;
|
|
|
|
virCommandSetInputBuffer;
|
|
|
|
virCommandSetInputFD;
|
2015-03-18 11:14:55 +00:00
|
|
|
virCommandSetMaxCoreSize;
|
2013-04-25 16:10:10 +00:00
|
|
|
virCommandSetMaxFiles;
|
|
|
|
virCommandSetMaxMemLock;
|
|
|
|
virCommandSetMaxProcesses;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandSetOutputBuffer;
|
|
|
|
virCommandSetOutputFD;
|
|
|
|
virCommandSetPidFile;
|
|
|
|
virCommandSetPreExecHook;
|
|
|
|
virCommandSetSELinuxLabel;
|
2019-07-25 18:22:06 +00:00
|
|
|
virCommandSetSendBuffer;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandSetUID;
|
qemu: ensure sane umask for qemu process
Add umask to _virCommand, allow user to set umask to command.
Set umask(002) to qemu process to overwrite the default umask
of 022 set by many distros, so that unix sockets created for
virtio-serial has expected permissions.
Fix problem reported here:
https://sourceware.org/bugzilla/show_bug.cgi?id=13078#c11
https://bugzilla.novell.com/show_bug.cgi?id=888166
To use virtio-serial device, unix socket created for chardev with
default umask(022) has insufficient permissions.
e.g.:
-device virtio-serial \
-chardev socket,path=/tmp/foo,server,nowait,id=foo \
-device virtserialport,chardev=foo,name=org.fedoraproject.port.0
srwxr-xr-x 1 qemu qemu 0 21. Jul 14:19 /tmp/somefile.sock
Other users in the same group (like real user, test engines, etc)
cannot write to this socket.
Signed-off-by: Chunyan Liu <cyliu@suse.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
2014-09-03 06:18:07 +00:00
|
|
|
virCommandSetUmask;
|
2013-02-16 03:34:42 +00:00
|
|
|
virCommandSetWorkingDirectory;
|
|
|
|
virCommandToString;
|
|
|
|
virCommandWait;
|
|
|
|
virCommandWriteArgLog;
|
|
|
|
virFork;
|
2010-10-20 17:10:45 +00:00
|
|
|
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virconf.h
|
|
|
|
virConfFree;
|
|
|
|
virConfFreeValue;
|
|
|
|
virConfGetValue;
|
2016-07-07 15:52:47 +00:00
|
|
|
virConfGetValueBool;
|
|
|
|
virConfGetValueInt;
|
|
|
|
virConfGetValueLLong;
|
|
|
|
virConfGetValueSizeT;
|
|
|
|
virConfGetValueSSizeT;
|
|
|
|
virConfGetValueString;
|
|
|
|
virConfGetValueStringList;
|
|
|
|
virConfGetValueType;
|
|
|
|
virConfGetValueUInt;
|
|
|
|
virConfGetValueULLong;
|
2015-10-12 14:09:53 +00:00
|
|
|
virConfLoadConfig;
|
2013-02-16 03:34:42 +00:00
|
|
|
virConfNew;
|
|
|
|
virConfReadFile;
|
2017-08-07 15:12:02 +00:00
|
|
|
virConfReadString;
|
2013-02-16 03:34:42 +00:00
|
|
|
virConfSetValue;
|
2014-12-09 13:53:28 +00:00
|
|
|
virConfTypeFromString;
|
|
|
|
virConfTypeToString;
|
2014-02-05 14:09:59 +00:00
|
|
|
virConfWalk;
|
2013-02-16 03:34:42 +00:00
|
|
|
virConfWriteFile;
|
|
|
|
virConfWriteMem;
|
2012-03-20 15:40:05 +00:00
|
|
|
|
|
|
|
|
2014-03-05 12:34:10 +00:00
|
|
|
# util/vircrypto.h
|
2016-05-18 15:29:06 +00:00
|
|
|
virCryptoEncryptData;
|
2018-05-11 14:31:10 +00:00
|
|
|
virCryptoHashBuf;
|
2014-03-05 12:34:10 +00:00
|
|
|
virCryptoHashString;
|
2016-05-18 15:29:06 +00:00
|
|
|
virCryptoHaveCipher;
|
2014-03-05 12:34:10 +00:00
|
|
|
|
|
|
|
|
2020-03-26 15:18:00 +00:00
|
|
|
# util/virdaemon.h
|
|
|
|
virDaemonForkIntoBackground;
|
|
|
|
virDaemonSetupLogging;
|
|
|
|
virDaemonUnixSocketPaths;
|
|
|
|
|
|
|
|
|
2018-03-26 12:48:07 +00:00
|
|
|
# util/virdevmapper.h
|
|
|
|
virDevMapperGetTargets;
|
2020-06-11 09:57:14 +00:00
|
|
|
virIsDevMapperDevice;
|
2018-03-26 12:48:07 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virdnsmasq.h
|
|
|
|
dnsmasqAddDhcpHost;
|
|
|
|
dnsmasqAddHost;
|
|
|
|
dnsmasqCapsGet;
|
|
|
|
dnsmasqCapsGetBinaryPath;
|
|
|
|
dnsmasqCapsGetVersion;
|
|
|
|
dnsmasqCapsNewFromBinary;
|
|
|
|
dnsmasqCapsNewFromBuffer;
|
|
|
|
dnsmasqCapsNewFromFile;
|
|
|
|
dnsmasqCapsRefresh;
|
|
|
|
dnsmasqContextFree;
|
|
|
|
dnsmasqContextNew;
|
|
|
|
dnsmasqDelete;
|
2020-04-22 20:05:57 +00:00
|
|
|
dnsmasqDhcpHostsToString;
|
2013-02-16 03:34:42 +00:00
|
|
|
dnsmasqReload;
|
|
|
|
dnsmasqSave;
|
2010-10-12 11:23:18 +00:00
|
|
|
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virebtables.h
|
|
|
|
ebtablesAddForwardAllowIn;
|
|
|
|
ebtablesAddForwardPolicyReject;
|
|
|
|
ebtablesContextFree;
|
|
|
|
ebtablesContextNew;
|
|
|
|
ebtablesRemoveForwardAllowIn;
|
2012-12-18 19:31:47 +00:00
|
|
|
|
|
|
|
|
2019-04-01 10:14:26 +00:00
|
|
|
# util/virenum.h
|
|
|
|
virEnumFromString;
|
|
|
|
virEnumToString;
|
|
|
|
virTristateBoolFromBool;
|
|
|
|
virTristateBoolTypeFromString;
|
|
|
|
virTristateBoolTypeToString;
|
|
|
|
virTristateSwitchFromBool;
|
|
|
|
virTristateSwitchTypeFromString;
|
|
|
|
virTristateSwitchTypeToString;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virerror.h
|
|
|
|
virDispatchError;
|
2015-07-10 06:44:41 +00:00
|
|
|
virErrorCopyNew;
|
2013-02-16 03:34:42 +00:00
|
|
|
virErrorInitialize;
|
2018-11-12 14:33:02 +00:00
|
|
|
virErrorMsg;
|
2017-09-01 14:19:56 +00:00
|
|
|
virErrorPreserveLast;
|
|
|
|
virErrorRestore;
|
2013-07-19 10:14:51 +00:00
|
|
|
virErrorSetErrnoFromLastError;
|
|
|
|
virLastErrorIsSystemErrno;
|
2019-06-11 09:23:48 +00:00
|
|
|
virLastErrorPrefixMessage;
|
2013-02-16 03:34:42 +00:00
|
|
|
virRaiseErrorFull;
|
2015-01-19 12:30:24 +00:00
|
|
|
virRaiseErrorObject;
|
2013-02-16 03:34:42 +00:00
|
|
|
virReportErrorHelper;
|
|
|
|
virReportOOMErrorFull;
|
|
|
|
virReportSystemErrorFull;
|
|
|
|
virSetError;
|
|
|
|
virSetErrorLogPriorityFunc;
|
2011-11-25 15:25:14 +00:00
|
|
|
|
|
|
|
|
2020-01-14 12:34:09 +00:00
|
|
|
# util/vireventglib.h
|
|
|
|
virEventGLibRegister;
|
|
|
|
virEventGLibRunOnce;
|
|
|
|
|
|
|
|
|
2020-02-13 15:53:15 +00:00
|
|
|
# util/vireventthread.h
|
|
|
|
virEventThreadGetContext;
|
|
|
|
virEventThreadNew;
|
|
|
|
|
|
|
|
|
2017-05-22 06:38:24 +00:00
|
|
|
# util/virfcp.h
|
|
|
|
virFCIsCapableRport;
|
|
|
|
virFCReadRportValue;
|
|
|
|
|
|
|
|
|
2017-03-07 09:34:47 +00:00
|
|
|
# util/virfdstream.h
|
|
|
|
virFDStreamConnectUNIX;
|
|
|
|
virFDStreamCreateFile;
|
|
|
|
virFDStreamOpen;
|
|
|
|
virFDStreamOpenBlockDevice;
|
|
|
|
virFDStreamOpenFile;
|
|
|
|
virFDStreamOpenPTY;
|
|
|
|
virFDStreamSetInternalCloseCb;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virfile.h
|
2013-05-09 18:59:04 +00:00
|
|
|
saferead;
|
|
|
|
safewrite;
|
|
|
|
safezero;
|
|
|
|
virBuildPathInternal;
|
2016-06-21 10:40:29 +00:00
|
|
|
virDirClose;
|
2013-05-09 18:59:04 +00:00
|
|
|
virDirCreate;
|
2016-06-21 14:33:36 +00:00
|
|
|
virDirOpen;
|
2016-06-21 14:43:16 +00:00
|
|
|
virDirOpenIfExists;
|
2016-06-21 14:52:11 +00:00
|
|
|
virDirOpenQuiet;
|
2014-04-20 11:53:45 +00:00
|
|
|
virDirRead;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileAbsPath;
|
|
|
|
virFileAccessibleAs;
|
2019-08-29 10:52:08 +00:00
|
|
|
virFileActivateDirOverrideForLib;
|
|
|
|
virFileActivateDirOverrideForProg;
|
2016-11-10 15:17:48 +00:00
|
|
|
virFileBindMountDevice;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileBuildPath;
|
2018-05-03 07:55:19 +00:00
|
|
|
virFileCanonicalizePath;
|
2017-04-04 16:22:31 +00:00
|
|
|
virFileChownFiles;
|
2011-07-19 18:32:58 +00:00
|
|
|
virFileClose;
|
2017-02-07 09:19:06 +00:00
|
|
|
virFileComparePaths;
|
2016-11-22 10:14:08 +00:00
|
|
|
virFileCopyACLs;
|
2019-12-24 15:14:13 +00:00
|
|
|
virFileDataSync;
|
2013-03-28 14:46:45 +00:00
|
|
|
virFileDeleteTree;
|
2011-07-11 21:26:33 +00:00
|
|
|
virFileDirectFdFlag;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileExists;
|
2011-07-19 18:32:58 +00:00
|
|
|
virFileFclose;
|
|
|
|
virFileFdopen;
|
2014-07-23 15:37:17 +00:00
|
|
|
virFileFindHugeTLBFS;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileFindMountPoint;
|
2014-04-24 14:05:42 +00:00
|
|
|
virFileFindResource;
|
|
|
|
virFileFindResourceFull;
|
2016-11-22 10:14:08 +00:00
|
|
|
virFileFreeACLs;
|
|
|
|
virFileGetACLs;
|
2019-03-29 15:10:09 +00:00
|
|
|
virFileGetDefaultHugepage;
|
2014-07-23 15:37:17 +00:00
|
|
|
virFileGetHugepageSize;
|
2013-11-27 15:19:49 +00:00
|
|
|
virFileGetMountReverseSubtree;
|
|
|
|
virFileGetMountSubtree;
|
2018-08-06 08:50:03 +00:00
|
|
|
virFileGetXAttr;
|
2019-03-22 14:08:36 +00:00
|
|
|
virFileGetXAttrQuiet;
|
2016-06-16 08:42:47 +00:00
|
|
|
virFileInData;
|
2018-04-23 15:41:14 +00:00
|
|
|
virFileIsCDROM;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileIsDir;
|
|
|
|
virFileIsExecutable;
|
|
|
|
virFileIsLink;
|
2013-10-07 11:51:58 +00:00
|
|
|
virFileIsMountPoint;
|
2018-06-06 16:24:12 +00:00
|
|
|
virFileIsRegular;
|
2014-03-29 20:15:33 +00:00
|
|
|
virFileIsSharedFS;
|
|
|
|
virFileIsSharedFSType;
|
2016-11-17 17:18:27 +00:00
|
|
|
virFileLength;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileLinkPointsTo;
|
|
|
|
virFileLock;
|
2012-12-11 22:21:17 +00:00
|
|
|
virFileLoopDeviceAssociate;
|
2014-01-30 17:06:39 +00:00
|
|
|
virFileMakeParentPath;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileMakePath;
|
|
|
|
virFileMakePathWithMode;
|
2017-01-11 10:29:00 +00:00
|
|
|
virFileMoveMount;
|
2013-04-22 14:06:16 +00:00
|
|
|
virFileNBDDeviceAssociate;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileOpenAs;
|
|
|
|
virFileOpenTty;
|
|
|
|
virFileReadAll;
|
2014-06-30 12:59:42 +00:00
|
|
|
virFileReadAllQuiet;
|
2016-05-03 09:12:40 +00:00
|
|
|
virFileReadBufQuiet;
|
2013-11-05 17:30:56 +00:00
|
|
|
virFileReadHeaderFD;
|
2017-12-12 15:23:40 +00:00
|
|
|
virFileReadHeaderQuiet;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileReadLimFD;
|
2017-03-07 09:36:54 +00:00
|
|
|
virFileReadValueBitmap;
|
|
|
|
virFileReadValueInt;
|
2017-04-05 14:13:52 +00:00
|
|
|
virFileReadValueScaledInt;
|
|
|
|
virFileReadValueString;
|
2017-03-07 09:36:54 +00:00
|
|
|
virFileReadValueUint;
|
2020-01-02 10:45:04 +00:00
|
|
|
virFileReadValueUllong;
|
2014-04-10 23:36:06 +00:00
|
|
|
virFileRelLinkPointsTo;
|
2015-09-21 11:36:55 +00:00
|
|
|
virFileRemove;
|
2016-05-12 11:05:37 +00:00
|
|
|
virFileRemoveLastComponent;
|
2018-08-06 08:50:03 +00:00
|
|
|
virFileRemoveXAttr;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileResolveAllLinks;
|
|
|
|
virFileResolveLink;
|
2011-10-13 10:17:12 +00:00
|
|
|
virFileRewrite;
|
2016-11-28 08:00:55 +00:00
|
|
|
virFileRewriteStr;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileSanitizePath;
|
2016-11-22 10:14:08 +00:00
|
|
|
virFileSetACLs;
|
2020-07-17 18:16:27 +00:00
|
|
|
virFileSetCOW;
|
2016-11-10 15:17:48 +00:00
|
|
|
virFileSetupDev;
|
2018-08-06 08:50:03 +00:00
|
|
|
virFileSetXAttr;
|
2012-01-11 09:58:59 +00:00
|
|
|
virFileTouch;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileUnlock;
|
2012-04-27 13:50:22 +00:00
|
|
|
virFileUpdatePerm;
|
2017-06-20 14:09:33 +00:00
|
|
|
virFileWaitForExists;
|
2012-12-11 22:21:17 +00:00
|
|
|
virFileWrapperFdClose;
|
|
|
|
virFileWrapperFdFree;
|
|
|
|
virFileWrapperFdNew;
|
2013-05-09 18:59:04 +00:00
|
|
|
virFileWriteStr;
|
|
|
|
virFindFileInPath;
|
2013-03-04 16:30:40 +00:00
|
|
|
|
|
|
|
|
2017-04-07 15:34:53 +00:00
|
|
|
# util/virfilecache.h
|
|
|
|
virFileCacheGetPriv;
|
|
|
|
virFileCacheInsertData;
|
|
|
|
virFileCacheLookup;
|
|
|
|
virFileCacheLookupByFunc;
|
|
|
|
virFileCacheNew;
|
|
|
|
virFileCacheSetPriv;
|
|
|
|
|
|
|
|
|
2013-03-04 16:30:40 +00:00
|
|
|
# util/virfirewall.h
|
|
|
|
virFirewallAddRuleFull;
|
|
|
|
virFirewallApply;
|
|
|
|
virFirewallFree;
|
|
|
|
virFirewallNew;
|
|
|
|
virFirewallRemoveRule;
|
|
|
|
virFirewallRuleAddArg;
|
|
|
|
virFirewallRuleAddArgFormat;
|
|
|
|
virFirewallRuleAddArgList;
|
|
|
|
virFirewallRuleAddArgSet;
|
|
|
|
virFirewallRuleGetArgCount;
|
|
|
|
virFirewallSetBackend;
|
2014-12-22 21:57:21 +00:00
|
|
|
virFirewallSetLockOverride;
|
2013-03-04 16:30:40 +00:00
|
|
|
virFirewallStartRollback;
|
|
|
|
virFirewallStartTransaction;
|
2016-05-17 22:45:27 +00:00
|
|
|
|
|
|
|
|
2019-01-09 19:11:32 +00:00
|
|
|
# util/virfirewalld.h
|
|
|
|
virFirewallDApplyRule;
|
2019-01-09 19:40:51 +00:00
|
|
|
virFirewallDGetBackend;
|
|
|
|
virFirewallDGetVersion;
|
|
|
|
virFirewallDGetZones;
|
|
|
|
virFirewallDInterfaceSetZone;
|
2019-01-09 19:11:32 +00:00
|
|
|
virFirewallDIsRegistered;
|
2019-01-09 19:40:51 +00:00
|
|
|
virFirewallDZoneExists;
|
2019-01-09 19:11:32 +00:00
|
|
|
|
|
|
|
|
2016-05-17 22:45:27 +00:00
|
|
|
# util/virfirmware.h
|
2019-08-05 09:38:06 +00:00
|
|
|
virFirmwareFree;
|
2016-05-17 22:45:27 +00:00
|
|
|
virFirmwareFreeList;
|
|
|
|
virFirmwareParse;
|
|
|
|
virFirmwareParseList;
|
2011-07-19 18:32:58 +00:00
|
|
|
|
|
|
|
|
2020-09-08 11:55:24 +00:00
|
|
|
# util/virgdbus.h
|
|
|
|
virGDBusCallMethod;
|
|
|
|
virGDBusCallMethodWithFD;
|
|
|
|
virGDBusCloseSystemBus;
|
|
|
|
virGDBusErrorIsUnknownMethod;
|
|
|
|
virGDBusGetSessionBus;
|
|
|
|
virGDBusGetSystemBus;
|
|
|
|
virGDBusHasSystemBus;
|
|
|
|
virGDBusIsServiceEnabled;
|
|
|
|
virGDBusIsServiceRegistered;
|
|
|
|
virGDBusMessageIsSignal;
|
|
|
|
virGDBusSetSharedBus;
|
|
|
|
|
|
|
|
|
2016-04-12 22:29:52 +00:00
|
|
|
# util/virgettext.h
|
|
|
|
virGettextInitialize;
|
|
|
|
|
|
|
|
|
2016-02-03 13:33:28 +00:00
|
|
|
# util/virgic.h
|
|
|
|
virGICVersionTypeFromString;
|
|
|
|
virGICVersionTypeToString;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virhash.h
|
|
|
|
virHashAddEntry;
|
2015-07-02 12:21:27 +00:00
|
|
|
virHashAtomicNew;
|
|
|
|
virHashAtomicSteal;
|
|
|
|
virHashAtomicUpdate;
|
2013-02-16 03:34:42 +00:00
|
|
|
virHashCreate;
|
|
|
|
virHashEqual;
|
|
|
|
virHashForEach;
|
|
|
|
virHashFree;
|
|
|
|
virHashGetItems;
|
2019-10-17 12:45:47 +00:00
|
|
|
virHashHasEntry;
|
2013-02-16 03:34:42 +00:00
|
|
|
virHashLookup;
|
2019-10-09 13:34:54 +00:00
|
|
|
virHashNew;
|
2013-02-16 03:34:42 +00:00
|
|
|
virHashRemoveAll;
|
|
|
|
virHashRemoveEntry;
|
|
|
|
virHashRemoveSet;
|
|
|
|
virHashSearch;
|
|
|
|
virHashSize;
|
|
|
|
virHashSteal;
|
|
|
|
virHashTableSize;
|
|
|
|
virHashUpdateEntry;
|
2014-04-04 23:36:25 +00:00
|
|
|
virHashValueFree;
|
2013-02-16 03:34:42 +00:00
|
|
|
|
|
|
|
|
2017-08-02 15:31:14 +00:00
|
|
|
# util/virhashcode.h
|
|
|
|
virHashCodeGen;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virhook.h
|
|
|
|
virHookCall;
|
|
|
|
virHookInitialize;
|
|
|
|
virHookPresent;
|
|
|
|
|
|
|
|
|
2017-03-07 09:27:54 +00:00
|
|
|
# util/virhostcpu.h
|
2020-06-26 22:10:43 +00:00
|
|
|
virHostCPUGetAvailableCPUsBitmap;
|
2017-03-07 09:27:54 +00:00
|
|
|
virHostCPUGetCount;
|
|
|
|
virHostCPUGetInfo;
|
|
|
|
virHostCPUGetKVMMaxVCPUs;
|
|
|
|
virHostCPUGetMap;
|
2017-12-12 15:23:41 +00:00
|
|
|
virHostCPUGetMicrocodeVersion;
|
2019-03-22 15:44:02 +00:00
|
|
|
virHostCPUGetMSR;
|
2017-03-07 14:11:22 +00:00
|
|
|
virHostCPUGetOnline;
|
2017-03-07 09:27:54 +00:00
|
|
|
virHostCPUGetOnlineBitmap;
|
|
|
|
virHostCPUGetPresentBitmap;
|
2020-03-31 22:44:00 +00:00
|
|
|
virHostCPUGetSignature;
|
2017-03-07 09:27:54 +00:00
|
|
|
virHostCPUGetStats;
|
|
|
|
virHostCPUGetThreadsPerSubcore;
|
|
|
|
virHostCPUHasBitmap;
|
2020-03-31 22:44:00 +00:00
|
|
|
virHostCPUReadSignature;
|
2017-03-07 09:27:54 +00:00
|
|
|
virHostCPUStatsAssign;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virhostmem.h
|
|
|
|
virHostMemAllocPages;
|
|
|
|
virHostMemGetCellsFree;
|
|
|
|
virHostMemGetFreePages;
|
|
|
|
virHostMemGetInfo;
|
|
|
|
virHostMemGetParameters;
|
|
|
|
virHostMemGetStats;
|
|
|
|
virHostMemSetParameters;
|
|
|
|
|
|
|
|
|
2019-08-08 08:16:48 +00:00
|
|
|
# util/virhostuptime.h
|
2019-12-19 09:11:04 +00:00
|
|
|
virHostBootTimeInit;
|
2019-08-08 08:16:48 +00:00
|
|
|
virHostGetBootTime;
|
|
|
|
|
|
|
|
|
2012-01-20 17:49:32 +00:00
|
|
|
# util/viridentity.h
|
2013-04-17 11:01:24 +00:00
|
|
|
virIdentityGetCurrent;
|
2019-07-26 10:59:15 +00:00
|
|
|
virIdentityGetGroupName;
|
2019-07-26 15:36:29 +00:00
|
|
|
virIdentityGetParameters;
|
2019-07-26 10:59:15 +00:00
|
|
|
virIdentityGetProcessID;
|
|
|
|
virIdentityGetProcessTime;
|
2013-08-22 15:43:35 +00:00
|
|
|
virIdentityGetSASLUserName;
|
|
|
|
virIdentityGetSELinuxContext;
|
2013-04-17 11:01:24 +00:00
|
|
|
virIdentityGetSystem;
|
2013-08-22 15:43:35 +00:00
|
|
|
virIdentityGetUNIXGroupID;
|
|
|
|
virIdentityGetUNIXUserID;
|
2019-07-26 10:59:15 +00:00
|
|
|
virIdentityGetUserName;
|
2013-08-22 15:43:35 +00:00
|
|
|
virIdentityGetX509DName;
|
2012-01-20 17:49:32 +00:00
|
|
|
virIdentityNew;
|
2013-04-17 11:01:24 +00:00
|
|
|
virIdentitySetCurrent;
|
2019-07-26 10:59:15 +00:00
|
|
|
virIdentitySetGroupName;
|
2019-07-26 15:36:29 +00:00
|
|
|
virIdentitySetParameters;
|
2019-07-26 10:59:15 +00:00
|
|
|
virIdentitySetProcessID;
|
|
|
|
virIdentitySetProcessTime;
|
2013-08-22 15:43:35 +00:00
|
|
|
virIdentitySetSASLUserName;
|
|
|
|
virIdentitySetSELinuxContext;
|
|
|
|
virIdentitySetUNIXGroupID;
|
|
|
|
virIdentitySetUNIXUserID;
|
2019-07-26 10:59:15 +00:00
|
|
|
virIdentitySetUserName;
|
2013-08-22 15:43:35 +00:00
|
|
|
virIdentitySetX509DName;
|
2012-01-20 17:49:32 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virinitctl.h
|
2019-01-25 11:37:53 +00:00
|
|
|
virInitctlFifos;
|
2012-11-28 12:17:31 +00:00
|
|
|
virInitctlSetRunLevel;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/viriptables.h
|
2013-09-25 10:45:25 +00:00
|
|
|
iptablesAddDontMasquerade;
|
2013-02-16 03:34:42 +00:00
|
|
|
iptablesAddForwardAllowCross;
|
|
|
|
iptablesAddForwardAllowIn;
|
|
|
|
iptablesAddForwardAllowOut;
|
|
|
|
iptablesAddForwardAllowRelatedIn;
|
|
|
|
iptablesAddForwardMasquerade;
|
|
|
|
iptablesAddForwardRejectIn;
|
|
|
|
iptablesAddForwardRejectOut;
|
|
|
|
iptablesAddOutputFixUdpChecksum;
|
|
|
|
iptablesAddTcpInput;
|
2019-09-27 16:10:34 +00:00
|
|
|
iptablesAddTcpOutput;
|
2013-02-16 03:34:42 +00:00
|
|
|
iptablesAddUdpInput;
|
2013-12-17 17:56:28 +00:00
|
|
|
iptablesAddUdpOutput;
|
2013-09-25 10:45:25 +00:00
|
|
|
iptablesRemoveDontMasquerade;
|
2013-02-16 03:34:42 +00:00
|
|
|
iptablesRemoveForwardAllowCross;
|
|
|
|
iptablesRemoveForwardAllowIn;
|
|
|
|
iptablesRemoveForwardAllowOut;
|
|
|
|
iptablesRemoveForwardAllowRelatedIn;
|
|
|
|
iptablesRemoveForwardMasquerade;
|
|
|
|
iptablesRemoveForwardRejectIn;
|
|
|
|
iptablesRemoveForwardRejectOut;
|
|
|
|
iptablesRemoveOutputFixUdpChecksum;
|
|
|
|
iptablesRemoveTcpInput;
|
2019-09-27 16:10:34 +00:00
|
|
|
iptablesRemoveTcpOutput;
|
2013-02-16 03:34:42 +00:00
|
|
|
iptablesRemoveUdpInput;
|
2013-12-17 17:56:28 +00:00
|
|
|
iptablesRemoveUdpOutput;
|
2018-12-05 15:53:55 +00:00
|
|
|
iptablesSetDeletePrivate;
|
util: create private chains for virtual network firewall rules
Historically firewall rules for virtual networks were added straight
into the base chains. This works but has a number of bugs and design
limitations:
- It is inflexible for admins wanting to add extra rules ahead
of libvirt's rules, via hook scripts.
- It is not clear to the admin that the rules were created by
libvirt
- Each rule must be deleted by libvirt individually since they
are all directly in the builtin chains
- The ordering of rules in the forward chain is incorrect
when multiple networks are created, allowing traffic to
mistakenly flow between networks in one direction.
To address all of these problems, libvirt needs to move to creating
rules in its own private chains. In the top level builtin chains,
libvirt will add links to its own private top level chains.
Addressing the traffic ordering bug requires some extra steps. With
everything going into the FORWARD chain there was interleaving of rules
for outbound traffic and inbound traffic for each network:
-A FORWARD -d 192.168.3.0/24 -o virbr1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.3.0/24 -i virbr1 -j ACCEPT
-A FORWARD -i virbr1 -o virbr1 -j ACCEPT
-A FORWARD -o virbr1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -d 192.168.2.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
The rule allowing outbound traffic from virbr1 would mistakenly
allow packets from virbr1 to virbr0, before the rule denying input
to virbr0 gets a chance to run.
What we really need todo is group the forwarding rules into three
distinct sets:
* Cross rules - LIBVIRT_FWX
-A FORWARD -i virbr1 -o virbr1 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
* Incoming rules - LIBVIRT_FWI
-A FORWARD -d 192.168.3.0/24 -o virbr1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o virbr1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -d 192.168.2.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
* Outgoing rules - LIBVIRT_FWO
-A FORWARD -s 192.168.3.0/24 -i virbr1 -j ACCEPT
-A FORWARD -i virbr1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.2.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
There is thus no risk of outgoing rules for one network mistakenly
allowing incoming traffic for another network, as all incoming rules
are evalated first.
With this in mind, we'll thus need three distinct chains linked from
the FORWARD chain, so we end up with:
INPUT --> LIBVIRT_INP (filter)
OUTPUT --> LIBVIRT_OUT (filter)
FORWARD +-> LIBVIRT_FWX (filter)
+-> LIBVIRT_FWO
\-> LIBVIRT_FWI
POSTROUTING --> LIBVIRT_PRT (nat & mangle)
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-10-31 19:33:21 +00:00
|
|
|
iptablesSetupPrivateChains;
|
2013-02-16 03:34:42 +00:00
|
|
|
|
|
|
|
|
2014-03-19 15:03:11 +00:00
|
|
|
# util/viriscsi.h
|
|
|
|
virISCSIConnectionLogin;
|
|
|
|
virISCSIConnectionLogout;
|
|
|
|
virISCSIGetSession;
|
2016-07-16 12:10:30 +00:00
|
|
|
virISCSINodeNew;
|
2014-03-19 15:03:11 +00:00
|
|
|
virISCSINodeUpdate;
|
|
|
|
virISCSIRescanLUNs;
|
|
|
|
virISCSIScanTargets;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virjson.h
|
2016-11-30 09:46:57 +00:00
|
|
|
virJSONStringReformat;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueArrayAppend;
|
2019-01-25 03:32:55 +00:00
|
|
|
virJSONValueArrayAppendString;
|
2020-01-28 14:26:49 +00:00
|
|
|
virJSONValueArrayConcat;
|
2016-10-17 11:44:16 +00:00
|
|
|
virJSONValueArrayForeachSteal;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueArrayGet;
|
|
|
|
virJSONValueArraySize;
|
2015-04-13 14:11:03 +00:00
|
|
|
virJSONValueArraySteal;
|
2014-08-21 10:23:41 +00:00
|
|
|
virJSONValueCopy;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueFree;
|
|
|
|
virJSONValueFromString;
|
2015-01-13 14:06:16 +00:00
|
|
|
virJSONValueGetArrayAsBitmap;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueGetBoolean;
|
|
|
|
virJSONValueGetNumberDouble;
|
|
|
|
virJSONValueGetNumberInt;
|
|
|
|
virJSONValueGetNumberLong;
|
2018-03-29 18:38:35 +00:00
|
|
|
virJSONValueGetNumberString;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueGetNumberUint;
|
|
|
|
virJSONValueGetNumberUlong;
|
|
|
|
virJSONValueGetString;
|
2018-03-20 13:07:26 +00:00
|
|
|
virJSONValueGetType;
|
2017-03-16 09:19:32 +00:00
|
|
|
virJSONValueHashFree;
|
2015-04-13 14:11:03 +00:00
|
|
|
virJSONValueIsArray;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueIsNull;
|
2017-06-26 09:32:35 +00:00
|
|
|
virJSONValueIsObject;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueNewArray;
|
2015-01-13 14:06:16 +00:00
|
|
|
virJSONValueNewArrayFromBitmap;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueNewBoolean;
|
|
|
|
virJSONValueNewNull;
|
|
|
|
virJSONValueNewNumberDouble;
|
|
|
|
virJSONValueNewNumberInt;
|
|
|
|
virJSONValueNewNumberLong;
|
|
|
|
virJSONValueNewNumberUint;
|
|
|
|
virJSONValueNewNumberUlong;
|
|
|
|
virJSONValueNewObject;
|
|
|
|
virJSONValueNewString;
|
2018-08-13 11:39:56 +00:00
|
|
|
virJSONValueNewStringLen;
|
2015-01-12 15:35:17 +00:00
|
|
|
virJSONValueObjectAdd;
|
|
|
|
virJSONValueObjectAddVArgs;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueObjectAppend;
|
|
|
|
virJSONValueObjectAppendBoolean;
|
|
|
|
virJSONValueObjectAppendNull;
|
|
|
|
virJSONValueObjectAppendNumberDouble;
|
|
|
|
virJSONValueObjectAppendNumberInt;
|
|
|
|
virJSONValueObjectAppendNumberLong;
|
|
|
|
virJSONValueObjectAppendNumberUint;
|
|
|
|
virJSONValueObjectAppendNumberUlong;
|
|
|
|
virJSONValueObjectAppendString;
|
2020-05-14 06:09:56 +00:00
|
|
|
virJSONValueObjectAppendStringPrintf;
|
2014-09-22 14:35:02 +00:00
|
|
|
virJSONValueObjectCreate;
|
|
|
|
virJSONValueObjectCreateVArgs;
|
2017-06-26 14:29:04 +00:00
|
|
|
virJSONValueObjectDeflatten;
|
2015-01-13 15:43:30 +00:00
|
|
|
virJSONValueObjectForeachKeyValue;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueObjectGet;
|
2015-06-19 23:13:03 +00:00
|
|
|
virJSONValueObjectGetArray;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueObjectGetBoolean;
|
2015-06-19 23:13:03 +00:00
|
|
|
virJSONValueObjectGetByType;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueObjectGetKey;
|
|
|
|
virJSONValueObjectGetNumberDouble;
|
|
|
|
virJSONValueObjectGetNumberInt;
|
|
|
|
virJSONValueObjectGetNumberLong;
|
|
|
|
virJSONValueObjectGetNumberUint;
|
|
|
|
virJSONValueObjectGetNumberUlong;
|
2015-06-19 23:13:03 +00:00
|
|
|
virJSONValueObjectGetObject;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueObjectGetString;
|
|
|
|
virJSONValueObjectGetValue;
|
|
|
|
virJSONValueObjectHasKey;
|
|
|
|
virJSONValueObjectIsNull;
|
|
|
|
virJSONValueObjectKeysNumber;
|
2019-02-05 17:45:05 +00:00
|
|
|
virJSONValueObjectPrependString;
|
2013-04-26 14:59:02 +00:00
|
|
|
virJSONValueObjectRemoveKey;
|
2016-10-03 18:45:13 +00:00
|
|
|
virJSONValueObjectStealArray;
|
2018-03-28 07:01:30 +00:00
|
|
|
virJSONValueObjectStealObject;
|
2019-03-26 16:56:14 +00:00
|
|
|
virJSONValueToBuffer;
|
2013-02-16 03:34:42 +00:00
|
|
|
virJSONValueToString;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virkeycode.h
|
2012-01-02 22:03:19 +00:00
|
|
|
virKeycodeSetTypeFromString;
|
|
|
|
virKeycodeSetTypeToString;
|
|
|
|
virKeycodeValueFromString;
|
|
|
|
virKeycodeValueTranslate;
|
|
|
|
|
|
|
|
|
2014-01-29 14:36:26 +00:00
|
|
|
# util/virkmod.h
|
2020-06-16 11:12:09 +00:00
|
|
|
virKModIsProhibited;
|
2014-01-29 14:36:26 +00:00
|
|
|
virKModLoad;
|
|
|
|
virKModUnload;
|
|
|
|
|
|
|
|
|
2016-02-14 06:50:12 +00:00
|
|
|
# util/virlease.h
|
|
|
|
virLeaseNew;
|
|
|
|
virLeasePrintLeases;
|
|
|
|
virLeaseReadCustomLeaseFile;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virlockspace.h
|
Introduce an internal API for handling file based lockspaces
The previously introduced virFile{Lock,Unlock} APIs provide a
way to acquire/release fcntl() locks on individual files. For
unknown reason though, the POSIX spec says that fcntl() locks
are released when *any* file handle referring to the same path
is closed. In the following sequence
threadA: fd1 = open("foo")
threadB: fd2 = open("foo")
threadA: virFileLock(fd1)
threadB: virFileLock(fd2)
threadB: close(fd2)
you'd expect threadA to come out holding a lock on 'foo', and
indeed it does hold a lock for a very short time. Unfortunately
when threadB does close(fd2) this releases the lock associated
with fd1. For the current libvirt use case for virFileLock -
pidfiles - this doesn't matter since the lock is acquired
at startup while single threaded an never released until
exit.
To provide a more generally useful API though, it is necessary
to introduce a slightly higher level abstraction, which is to
be referred to as a "lockspace". This is to be provided by
a virLockSpacePtr object in src/util/virlockspace.{c,h}. The
core idea is that the lockspace keeps track of what files are
already open+locked. This means that when a 2nd thread comes
along and tries to acquire a lock, it doesn't end up opening
and closing a new FD. The lockspace just checks the current
list of held locks and immediately returns VIR_ERR_RESOURCE_BUSY.
NB, the API as it stands is designed on the basis that the
files being locked are not being otherwise opened and used
by the application code. One approach to using this API is to
acquire locks based on a hash of the filepath.
eg to lock /var/lib/libvirt/images/foo.img the application
might do
virLockSpacePtr lockspace = virLockSpaceNew("/var/lib/libvirt/imagelocks");
lockname = md5sum("/var/lib/libvirt/images/foo.img");
virLockSpaceAcquireLock(lockspace, lockname);
NB, in this example, the caller should ensure that the path
is canonicalized before calculating the checksum.
It is also possible to do locks directly on resources by
using a NULL lockspace directory and then using the file
path as the lock name eg
virLockSpacePtr lockspace = virLockSpaceNew(NULL);
virLockSpaceAcquireLock(lockspace, "/var/lib/libvirt/images/foo.img");
This is only safe to do though if no other part of the process
will be opening the files. This will be the case when this
code is used inside the soon-to-be-reposted virlockd daemon
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-08-02 16:02:40 +00:00
|
|
|
virLockSpaceAcquireResource;
|
|
|
|
virLockSpaceCreateResource;
|
|
|
|
virLockSpaceDeleteResource;
|
|
|
|
virLockSpaceFree;
|
|
|
|
virLockSpaceGetDirectory;
|
|
|
|
virLockSpaceNew;
|
2012-08-09 10:54:37 +00:00
|
|
|
virLockSpaceNewPostExecRestart;
|
|
|
|
virLockSpacePreExecRestart;
|
Introduce an internal API for handling file based lockspaces
The previously introduced virFile{Lock,Unlock} APIs provide a
way to acquire/release fcntl() locks on individual files. For
unknown reason though, the POSIX spec says that fcntl() locks
are released when *any* file handle referring to the same path
is closed. In the following sequence
threadA: fd1 = open("foo")
threadB: fd2 = open("foo")
threadA: virFileLock(fd1)
threadB: virFileLock(fd2)
threadB: close(fd2)
you'd expect threadA to come out holding a lock on 'foo', and
indeed it does hold a lock for a very short time. Unfortunately
when threadB does close(fd2) this releases the lock associated
with fd1. For the current libvirt use case for virFileLock -
pidfiles - this doesn't matter since the lock is acquired
at startup while single threaded an never released until
exit.
To provide a more generally useful API though, it is necessary
to introduce a slightly higher level abstraction, which is to
be referred to as a "lockspace". This is to be provided by
a virLockSpacePtr object in src/util/virlockspace.{c,h}. The
core idea is that the lockspace keeps track of what files are
already open+locked. This means that when a 2nd thread comes
along and tries to acquire a lock, it doesn't end up opening
and closing a new FD. The lockspace just checks the current
list of held locks and immediately returns VIR_ERR_RESOURCE_BUSY.
NB, the API as it stands is designed on the basis that the
files being locked are not being otherwise opened and used
by the application code. One approach to using this API is to
acquire locks based on a hash of the filepath.
eg to lock /var/lib/libvirt/images/foo.img the application
might do
virLockSpacePtr lockspace = virLockSpaceNew("/var/lib/libvirt/imagelocks");
lockname = md5sum("/var/lib/libvirt/images/foo.img");
virLockSpaceAcquireLock(lockspace, lockname);
NB, in this example, the caller should ensure that the path
is canonicalized before calculating the checksum.
It is also possible to do locks directly on resources by
using a NULL lockspace directory and then using the file
path as the lock name eg
virLockSpacePtr lockspace = virLockSpaceNew(NULL);
virLockSpaceAcquireLock(lockspace, "/var/lib/libvirt/images/foo.img");
This is only safe to do though if no other part of the process
will be opening the files. This will be the case when this
code is used inside the soon-to-be-reposted virlockd daemon
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-08-02 16:02:40 +00:00
|
|
|
virLockSpaceReleaseResource;
|
|
|
|
virLockSpaceReleaseResourcesForOwner;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virlog.h
|
2016-03-29 15:04:36 +00:00
|
|
|
virLogDefineFilters;
|
2016-03-17 14:18:06 +00:00
|
|
|
virLogDefineOutputs;
|
2016-07-04 10:16:36 +00:00
|
|
|
virLogFilterFree;
|
2016-10-06 07:11:28 +00:00
|
|
|
virLogFilterListFree;
|
2016-07-08 12:15:43 +00:00
|
|
|
virLogFilterNew;
|
2016-03-30 10:22:15 +00:00
|
|
|
virLogFindOutput;
|
2016-10-31 11:50:24 +00:00
|
|
|
virLogGetDefaultOutput;
|
2013-02-16 03:34:42 +00:00
|
|
|
virLogGetDefaultPriority;
|
|
|
|
virLogGetFilters;
|
|
|
|
virLogGetNbFilters;
|
|
|
|
virLogGetNbOutputs;
|
|
|
|
virLogGetOutputs;
|
|
|
|
virLogLock;
|
|
|
|
virLogMessage;
|
2016-07-04 10:19:38 +00:00
|
|
|
virLogOutputFree;
|
2016-03-30 12:11:12 +00:00
|
|
|
virLogOutputListFree;
|
2016-07-08 11:46:36 +00:00
|
|
|
virLogOutputNew;
|
2013-02-16 03:34:42 +00:00
|
|
|
virLogParseDefaultPriority;
|
2016-10-05 12:41:51 +00:00
|
|
|
virLogParseFilter;
|
2016-10-05 14:48:47 +00:00
|
|
|
virLogParseFilters;
|
2016-08-16 14:27:47 +00:00
|
|
|
virLogParseOutput;
|
2016-10-05 14:29:15 +00:00
|
|
|
virLogParseOutputs;
|
2013-06-07 09:55:27 +00:00
|
|
|
virLogPriorityFromSyslog;
|
2013-03-04 20:46:32 +00:00
|
|
|
virLogProbablyLogMessage;
|
2013-02-16 03:34:42 +00:00
|
|
|
virLogReset;
|
2016-10-31 11:50:24 +00:00
|
|
|
virLogSetDefaultOutput;
|
2013-02-16 03:34:42 +00:00
|
|
|
virLogSetDefaultPriority;
|
2016-03-24 13:34:11 +00:00
|
|
|
virLogSetFilters;
|
2013-02-16 03:34:42 +00:00
|
|
|
virLogSetFromEnv;
|
2016-03-08 12:37:56 +00:00
|
|
|
virLogSetOutputs;
|
2013-02-16 03:34:42 +00:00
|
|
|
virLogUnlock;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virmacaddr.h
|
2012-07-17 12:07:59 +00:00
|
|
|
virMacAddrCmp;
|
|
|
|
virMacAddrCmpRaw;
|
2012-01-27 17:23:05 +00:00
|
|
|
virMacAddrCompare;
|
|
|
|
virMacAddrFormat;
|
|
|
|
virMacAddrGenerate;
|
2012-07-17 12:07:59 +00:00
|
|
|
virMacAddrGetRaw;
|
2012-08-30 18:29:49 +00:00
|
|
|
virMacAddrIsBroadcastRaw;
|
2012-03-19 16:49:17 +00:00
|
|
|
virMacAddrIsMulticast;
|
|
|
|
virMacAddrIsUnicast;
|
2012-01-27 17:23:05 +00:00
|
|
|
virMacAddrParse;
|
2014-10-10 17:55:42 +00:00
|
|
|
virMacAddrParseHex;
|
2012-07-17 12:07:59 +00:00
|
|
|
virMacAddrSet;
|
|
|
|
virMacAddrSetRaw;
|
2012-01-27 17:23:05 +00:00
|
|
|
|
|
|
|
|
2016-11-25 06:30:30 +00:00
|
|
|
# util/virmacmap.h
|
|
|
|
virMacMapAdd;
|
|
|
|
virMacMapDumpStr;
|
2017-07-26 10:59:19 +00:00
|
|
|
virMacMapFileName;
|
2016-11-25 06:30:30 +00:00
|
|
|
virMacMapLookup;
|
|
|
|
virMacMapNew;
|
|
|
|
virMacMapRemove;
|
|
|
|
virMacMapWriteFile;
|
|
|
|
|
2017-03-22 14:50:33 +00:00
|
|
|
# util/virmdev.h
|
2020-06-18 21:05:56 +00:00
|
|
|
virMediatedDeviceAttrFree;
|
|
|
|
virMediatedDeviceAttrNew;
|
2017-03-22 14:50:33 +00:00
|
|
|
virMediatedDeviceFree;
|
|
|
|
virMediatedDeviceGetIOMMUGroupDev;
|
|
|
|
virMediatedDeviceGetIOMMUGroupNum;
|
|
|
|
virMediatedDeviceGetSysfsPath;
|
|
|
|
virMediatedDeviceGetUsedBy;
|
|
|
|
virMediatedDeviceIsUsed;
|
|
|
|
virMediatedDeviceListAdd;
|
|
|
|
virMediatedDeviceListCount;
|
|
|
|
virMediatedDeviceListDel;
|
|
|
|
virMediatedDeviceListFind;
|
|
|
|
virMediatedDeviceListGet;
|
|
|
|
virMediatedDeviceListMarkDevices;
|
|
|
|
virMediatedDeviceListNew;
|
|
|
|
virMediatedDeviceListSteal;
|
|
|
|
virMediatedDeviceListStealIndex;
|
|
|
|
virMediatedDeviceModelTypeFromString;
|
|
|
|
virMediatedDeviceModelTypeToString;
|
|
|
|
virMediatedDeviceNew;
|
|
|
|
virMediatedDeviceSetUsedBy;
|
2018-01-23 08:47:43 +00:00
|
|
|
virMediatedDeviceTypeFree;
|
2018-01-23 08:55:52 +00:00
|
|
|
virMediatedDeviceTypeReadAttrs;
|
2017-03-22 14:50:33 +00:00
|
|
|
|
|
|
|
|
2018-04-25 14:35:27 +00:00
|
|
|
# util/virmodule.h
|
|
|
|
virModuleLoad;
|
|
|
|
|
2016-11-25 06:30:30 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdev.h
|
2014-10-10 17:55:42 +00:00
|
|
|
virNetDevAddMulti;
|
|
|
|
virNetDevDelMulti;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevExists;
|
2016-06-13 17:06:15 +00:00
|
|
|
virNetDevFeatureTypeFromString;
|
|
|
|
virNetDevFeatureTypeToString;
|
2015-02-23 15:38:29 +00:00
|
|
|
virNetDevGetFeatures;
|
2012-01-13 12:08:10 +00:00
|
|
|
virNetDevGetIndex;
|
2014-06-05 14:14:49 +00:00
|
|
|
virNetDevGetLinkInfo;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevGetMAC;
|
2017-03-18 00:57:18 +00:00
|
|
|
virNetDevGetMaster;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevGetMTU;
|
2017-03-15 13:46:56 +00:00
|
|
|
virNetDevGetName;
|
2015-01-22 19:47:02 +00:00
|
|
|
virNetDevGetOnline;
|
2011-11-18 16:07:48 +00:00
|
|
|
virNetDevGetPhysicalFunction;
|
2017-07-31 03:32:43 +00:00
|
|
|
virNetDevGetPhysPortID;
|
2015-01-22 19:47:02 +00:00
|
|
|
virNetDevGetPromiscuous;
|
|
|
|
virNetDevGetRcvAllMulti;
|
|
|
|
virNetDevGetRcvMulti;
|
2014-10-10 17:55:42 +00:00
|
|
|
virNetDevGetRxFilter;
|
2012-01-13 12:08:10 +00:00
|
|
|
virNetDevGetVirtualFunctionIndex;
|
2012-03-06 01:12:34 +00:00
|
|
|
virNetDevGetVirtualFunctionInfo;
|
2012-01-13 12:08:10 +00:00
|
|
|
virNetDevGetVirtualFunctions;
|
2012-12-11 22:21:17 +00:00
|
|
|
virNetDevGetVLanID;
|
2016-06-13 17:06:15 +00:00
|
|
|
virNetDevIfStateTypeFromString;
|
|
|
|
virNetDevIfStateTypeToString;
|
2011-11-18 16:07:48 +00:00
|
|
|
virNetDevIsVirtualFunction;
|
2017-03-02 19:55:01 +00:00
|
|
|
virNetDevPFGetVF;
|
2017-02-20 21:14:53 +00:00
|
|
|
virNetDevReadNetConfig;
|
2016-04-13 08:36:00 +00:00
|
|
|
virNetDevRunEthernetScript;
|
2014-09-20 18:39:44 +00:00
|
|
|
virNetDevRxFilterFree;
|
|
|
|
virNetDevRxFilterModeTypeFromString;
|
|
|
|
virNetDevRxFilterModeTypeToString;
|
|
|
|
virNetDevRxFilterNew;
|
2017-02-20 21:14:53 +00:00
|
|
|
virNetDevSaveNetConfig;
|
2017-04-07 15:38:06 +00:00
|
|
|
virNetDevSetCoalesce;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevSetMAC;
|
|
|
|
virNetDevSetMTU;
|
|
|
|
virNetDevSetMTUFromDevice;
|
2011-11-16 02:59:57 +00:00
|
|
|
virNetDevSetName;
|
|
|
|
virNetDevSetNamespace;
|
2017-02-20 21:14:53 +00:00
|
|
|
virNetDevSetNetConfig;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevSetOnline;
|
2015-01-22 19:47:02 +00:00
|
|
|
virNetDevSetPromiscuous;
|
|
|
|
virNetDevSetRcvAllMulti;
|
|
|
|
virNetDevSetRcvMulti;
|
2013-06-13 06:26:20 +00:00
|
|
|
virNetDevSetupControl;
|
2014-06-11 13:05:00 +00:00
|
|
|
virNetDevSysfsFile;
|
2011-11-18 16:07:48 +00:00
|
|
|
virNetDevValidateConfig;
|
2011-11-11 05:50:46 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdevbandwidth.h
|
2011-11-16 02:59:57 +00:00
|
|
|
virNetDevBandwidthClear;
|
|
|
|
virNetDevBandwidthCopy;
|
|
|
|
virNetDevBandwidthEqual;
|
|
|
|
virNetDevBandwidthFree;
|
2012-11-16 13:29:01 +00:00
|
|
|
virNetDevBandwidthPlug;
|
2011-11-16 02:59:57 +00:00
|
|
|
virNetDevBandwidthSet;
|
2012-11-16 13:29:01 +00:00
|
|
|
virNetDevBandwidthUnplug;
|
2015-04-14 16:04:30 +00:00
|
|
|
virNetDevBandwidthUpdateFilter;
|
2012-11-16 13:29:01 +00:00
|
|
|
virNetDevBandwidthUpdateRate;
|
2011-11-16 02:59:57 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdevbridge.h
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevBridgeAddPort;
|
|
|
|
virNetDevBridgeCreate;
|
|
|
|
virNetDevBridgeDelete;
|
2014-11-20 16:55:50 +00:00
|
|
|
virNetDevBridgeFDBAdd;
|
|
|
|
virNetDevBridgeFDBDel;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevBridgeGetSTP;
|
|
|
|
virNetDevBridgeGetSTPDelay;
|
2014-11-19 18:28:57 +00:00
|
|
|
virNetDevBridgeGetVlanFiltering;
|
2020-01-20 21:27:02 +00:00
|
|
|
virNetDevBridgePortGetIsolated;
|
2014-11-19 18:28:57 +00:00
|
|
|
virNetDevBridgePortGetLearning;
|
|
|
|
virNetDevBridgePortGetUnicastFlood;
|
2020-01-20 21:27:02 +00:00
|
|
|
virNetDevBridgePortSetIsolated;
|
2014-11-19 18:28:57 +00:00
|
|
|
virNetDevBridgePortSetLearning;
|
|
|
|
virNetDevBridgePortSetUnicastFlood;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevBridgeRemovePort;
|
|
|
|
virNetDevBridgeSetSTP;
|
|
|
|
virNetDevBridgeSetSTPDelay;
|
2014-11-19 18:28:57 +00:00
|
|
|
virNetDevBridgeSetVlanFiltering;
|
2011-11-11 05:50:46 +00:00
|
|
|
|
|
|
|
|
2016-06-13 21:01:27 +00:00
|
|
|
# util/virnetdevip.h
|
|
|
|
virNetDevIPAddrAdd;
|
|
|
|
virNetDevIPAddrDel;
|
|
|
|
virNetDevIPAddrGet;
|
2017-03-03 13:14:51 +00:00
|
|
|
virNetDevIPCheckIPv6Forwarding;
|
2016-06-16 16:22:07 +00:00
|
|
|
virNetDevIPInfoAddToDev;
|
2016-06-06 19:19:23 +00:00
|
|
|
virNetDevIPInfoClear;
|
2016-06-13 21:01:27 +00:00
|
|
|
virNetDevIPRouteAdd;
|
2016-06-14 17:40:04 +00:00
|
|
|
virNetDevIPRouteFree;
|
|
|
|
virNetDevIPRouteGetAddress;
|
|
|
|
virNetDevIPRouteGetGateway;
|
|
|
|
virNetDevIPRouteGetMetric;
|
|
|
|
virNetDevIPRouteGetPrefix;
|
2016-06-13 21:01:27 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdevmacvlan.h
|
2011-11-18 16:07:48 +00:00
|
|
|
virNetDevMacVLanCreate;
|
|
|
|
virNetDevMacVLanCreateWithVPortProfile;
|
2012-12-11 22:21:17 +00:00
|
|
|
virNetDevMacVLanDelete;
|
2011-11-18 16:07:48 +00:00
|
|
|
virNetDevMacVLanDeleteWithVPortProfile;
|
2019-08-26 05:24:08 +00:00
|
|
|
virNetDevMacVLanIsMacvtap;
|
2018-07-24 03:49:48 +00:00
|
|
|
virNetDevMacVLanModeTypeFromString;
|
2016-01-19 19:20:54 +00:00
|
|
|
virNetDevMacVLanReserveName;
|
2012-03-29 12:55:04 +00:00
|
|
|
virNetDevMacVLanRestartWithVPortProfile;
|
2019-08-26 05:51:40 +00:00
|
|
|
virNetDevMacVLanTapOpen;
|
|
|
|
virNetDevMacVLanTapSetup;
|
2012-03-29 11:15:00 +00:00
|
|
|
virNetDevMacVLanVPortProfileRegisterCallback;
|
2011-11-18 16:07:48 +00:00
|
|
|
|
|
|
|
|
2015-02-23 20:54:54 +00:00
|
|
|
# util/virnetdevmidonet.h
|
|
|
|
virNetDevMidonetBindPort;
|
|
|
|
virNetDevMidonetUnbindPort;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdevopenvswitch.h
|
2012-02-10 21:09:00 +00:00
|
|
|
virNetDevOpenvswitchAddPort;
|
2012-10-01 15:18:21 +00:00
|
|
|
virNetDevOpenvswitchGetMigrateData;
|
2016-12-22 09:33:28 +00:00
|
|
|
virNetDevOpenvswitchGetVhostuserIfname;
|
2018-07-01 23:24:19 +00:00
|
|
|
virNetDevOpenvswitchInterfaceGetMaster;
|
2019-07-16 07:33:38 +00:00
|
|
|
virNetDevOpenvswitchInterfaceParseStats;
|
2016-11-18 22:51:13 +00:00
|
|
|
virNetDevOpenvswitchInterfaceStats;
|
2012-02-10 21:09:00 +00:00
|
|
|
virNetDevOpenvswitchRemovePort;
|
2012-10-01 15:18:21 +00:00
|
|
|
virNetDevOpenvswitchSetMigrateData;
|
2017-02-07 15:16:43 +00:00
|
|
|
virNetDevOpenvswitchSetTimeout;
|
2017-07-17 15:49:00 +00:00
|
|
|
virNetDevOpenvswitchUpdateVlan;
|
2012-02-10 21:09:00 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdevtap.h
|
2017-03-18 18:03:20 +00:00
|
|
|
virNetDevTapAttachBridge;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevTapCreate;
|
|
|
|
virNetDevTapCreateInBridgePort;
|
|
|
|
virNetDevTapDelete;
|
2013-04-20 09:11:24 +00:00
|
|
|
virNetDevTapGetName;
|
2014-03-26 16:53:48 +00:00
|
|
|
virNetDevTapGetRealDeviceName;
|
2016-11-18 22:51:15 +00:00
|
|
|
virNetDevTapInterfaceStats;
|
2019-02-01 12:39:25 +00:00
|
|
|
virNetDevTapReattachBridge;
|
util: assign tap device names using a monotonically increasing integer
When creating a standard tap device, if provided with an ifname that
contains "%d", rather than taking that literally as the name to use
for the new device, the kernel will instead use that string as a
template, and search for the lowest number that could be put in place
of %d and produce an otherwise unused and unique name for the new
device. For example, if there is no tap device name given in the XML,
libvirt will always send "vnet%d" as the device name, and the kernel
will create new devices named "vnet0", "vnet1", etc. If one of those
devices is deleted, creating a "hole" in the name list, the kernel
will always attempt to reuse the name in the hole first before using a
name with a higher number (i.e. it finds the lowest possible unused
number).
The problem with this, as described in the previous patch dealing with
macvtap device naming, is that it makes "immediate reuse" of a newly
freed tap device name *much* more common, and in the aftermath of
deleting a tap device, there is some other necessary cleanup of things
which are named based on the device name (nwfilter rules, bandwidth
rules, OVS switch ports, to name a few) that could end up stomping
over the top of the setup of a new device of the same name for a
different guest.
Since the kernel "create a name based on a template" functionality for
tap devices doesn't exist for macvtap, this patch for standard tap
devices is a bit different from the previous patch for macvtap - in
particular there was no previous "bitmap ID reservation system" or
overly-complex retry loop that needed to be removed. We simply find
and unused name, and pass that name on to the kernel instead of
"vnet%d".
This counter is also wrapped when either it gets to INT_MAX or if the
full name would overflow IFNAMSIZ-1 characters. In the case of
"vnet%d" and a 32 bit int, we would reach INT_MAX first, but possibly
someday someone will change the name from vnet to something else.
(NB: It is still possible for a user to provide their own
parameterized template name (e.g. "mytap%d") in the XML, and libvirt
will just pass that through to the kernel as it always has.)
Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2020-08-24 01:20:13 +00:00
|
|
|
virNetDevTapReserveName;
|
2011-11-11 05:50:46 +00:00
|
|
|
|
2011-10-21 10:48:03 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdevveth.h
|
2011-11-16 02:59:57 +00:00
|
|
|
virNetDevVethCreate;
|
|
|
|
virNetDevVethDelete;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdevvlan.h
|
2012-08-11 17:44:27 +00:00
|
|
|
virNetDevVlanClear;
|
|
|
|
virNetDevVlanCopy;
|
|
|
|
virNetDevVlanEqual;
|
|
|
|
virNetDevVlanFree;
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virnetdevvportprofile.h
|
|
|
|
virNetDevVPortProfileAssociate;
|
|
|
|
virNetDevVPortProfileCheckComplete;
|
|
|
|
virNetDevVPortProfileCheckNoExtras;
|
2018-09-03 16:02:35 +00:00
|
|
|
virNetDevVPortProfileCopy;
|
2013-02-16 03:34:42 +00:00
|
|
|
virNetDevVPortProfileDisassociate;
|
|
|
|
virNetDevVPortProfileEqual;
|
|
|
|
virNetDevVPortProfileMerge3;
|
|
|
|
virNetDevVPortProfileOpTypeFromString;
|
|
|
|
virNetDevVPortProfileOpTypeToString;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virnetlink.h
|
|
|
|
virNetlinkCommand;
|
2015-03-17 18:27:21 +00:00
|
|
|
virNetlinkDelLink;
|
2017-03-03 11:22:50 +00:00
|
|
|
virNetlinkDumpCommand;
|
2016-06-13 11:59:12 +00:00
|
|
|
virNetlinkDumpLink;
|
2013-02-16 03:34:42 +00:00
|
|
|
virNetlinkEventAddClient;
|
|
|
|
virNetlinkEventRemoveClient;
|
|
|
|
virNetlinkEventServiceIsRunning;
|
|
|
|
virNetlinkEventServiceLocalPid;
|
|
|
|
virNetlinkEventServiceStart;
|
|
|
|
virNetlinkEventServiceStop;
|
|
|
|
virNetlinkEventServiceStopAll;
|
2014-08-05 17:15:11 +00:00
|
|
|
virNetlinkGetErrorCode;
|
2018-03-08 07:11:55 +00:00
|
|
|
virNetlinkGetNeighbor;
|
2018-09-07 07:17:24 +00:00
|
|
|
virNetlinkNewLink;
|
2013-02-16 03:34:42 +00:00
|
|
|
virNetlinkShutdown;
|
|
|
|
virNetlinkStartup;
|
2011-09-30 13:38:39 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnodesuspend.h
|
2017-03-07 09:44:06 +00:00
|
|
|
virNodeSuspend;
|
2011-11-29 14:44:28 +00:00
|
|
|
virNodeSuspendGetTargetMask;
|
Implement the core API to suspend/resume the host
Add the core functions that implement the functionality of the API.
Suspend is done by using an asynchronous mechanism so that we can return
the status to the caller before the host gets suspended. This asynchronous
operation is achieved by suspending the host in a separate thread of
execution. However, returning the status to the caller is only best-effort,
but not guaranteed.
To resume the host, an RTC alarm is set up (based on how long we want to
suspend) before suspending the host. When this alarm fires, the host
gets woken up.
Suspend-to-RAM operation on a host running Linux can take upto more than 20
seconds, depending on the load of the system. (Freezing of tasks, an operation
preceding any suspend operation, is given up after a 20 second timeout).
And Suspend-to-Disk can take even more time, considering the time required
for compaction, creating the memory image and writing it to disk etc.
So, we do not allow the user to specify a suspend duration of less than 60
seconds, to be on the safer side, since we don't want to prematurely declare
failure when we only had to wait for some more time.
2011-11-29 09:07:38 +00:00
|
|
|
|
|
|
|
|
2013-03-18 09:04:01 +00:00
|
|
|
# util/virnuma.h
|
|
|
|
virNumaGetAutoPlacementAdvice;
|
2014-06-02 10:06:56 +00:00
|
|
|
virNumaGetDistances;
|
2016-09-13 13:55:06 +00:00
|
|
|
virNumaGetHostMemoryNodeset;
|
2013-10-17 15:42:22 +00:00
|
|
|
virNumaGetMaxNode;
|
2017-03-23 16:02:27 +00:00
|
|
|
virNumaGetNodeCPUs;
|
2013-10-17 16:30:09 +00:00
|
|
|
virNumaGetNodeMemory;
|
2014-06-06 16:09:01 +00:00
|
|
|
virNumaGetPageInfo;
|
|
|
|
virNumaGetPages;
|
2013-10-17 14:57:29 +00:00
|
|
|
virNumaIsAvailable;
|
2014-06-16 12:29:15 +00:00
|
|
|
virNumaNodeIsAvailable;
|
2014-11-04 02:44:40 +00:00
|
|
|
virNumaNodesetIsAvailable;
|
2019-05-30 16:01:35 +00:00
|
|
|
virNumaNodesetToCPUset;
|
2014-09-18 07:24:16 +00:00
|
|
|
virNumaSetPagePoolSize;
|
2013-03-20 03:35:08 +00:00
|
|
|
virNumaSetupMemoryPolicy;
|
2014-06-06 14:50:39 +00:00
|
|
|
|
2013-03-18 09:04:01 +00:00
|
|
|
|
2019-06-06 09:57:23 +00:00
|
|
|
# util/virnvme.h
|
|
|
|
virNVMeDeviceAddressGet;
|
|
|
|
virNVMeDeviceCopy;
|
|
|
|
virNVMeDeviceFree;
|
|
|
|
virNVMeDeviceListAdd;
|
|
|
|
virNVMeDeviceListCount;
|
|
|
|
virNVMeDeviceListCreateDetachList;
|
|
|
|
virNVMeDeviceListDel;
|
|
|
|
virNVMeDeviceListGet;
|
|
|
|
virNVMeDeviceListLookup;
|
|
|
|
virNVMeDeviceListLookupIndex;
|
|
|
|
virNVMeDeviceListNew;
|
|
|
|
virNVMeDeviceNew;
|
|
|
|
virNVMeDeviceUsedByClear;
|
|
|
|
virNVMeDeviceUsedByGet;
|
|
|
|
virNVMeDeviceUsedBySet;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virobject.h
|
2013-01-09 17:37:27 +00:00
|
|
|
virClassForObject;
|
2013-01-09 17:54:07 +00:00
|
|
|
virClassForObjectLockable;
|
2017-07-19 07:31:50 +00:00
|
|
|
virClassForObjectRWLockable;
|
2013-01-09 17:37:27 +00:00
|
|
|
virClassIsDerivedFrom;
|
Add a generic reference counted virObject type
This introduces a fairly basic reference counted virObject type
and an associated virClass type, that use atomic operations for
ref counting.
In a global initializer (recommended to be invoked using the
virOnceInit API), a virClass type must be allocated for each
object type. This requires a class name, a "dispose" callback
which will be invoked to free memory associated with the object's
fields, and the size in bytes of the object struct.
eg,
virClassPtr connclass = virClassNew("virConnect",
sizeof(virConnect),
virConnectDispose);
The struct for the object, must include 'virObject' as its
first member
eg
struct _virConnect {
virObject object;
virURIPtr uri;
};
The 'dispose' callback is only responsible for freeing
fields in the object, not the object itself. eg a suitable
impl for the above struct would be
void virConnectDispose(void *obj) {
virConnectPtr conn = obj;
virURIFree(conn->uri);
}
There is no need to reset fields to 'NULL' or '0' in the
dispose callback, since the entire object will be memset
to 0, and the klass pointer & magic integer fields will
be poisoned with 0xDEADBEEF before being free()d
When creating an instance of an object, one needs simply
pass the virClassPtr eg
virConnectPtr conn = virObjectNew(connclass);
if (!conn)
return NULL;
conn->uri = virURIParse("foo:///bar")
Object references can be manipulated with
virObjectRef(conn)
virObjectUnref(conn)
The latter returns a true value, if the object has been
freed (ie its ref count hit zero)
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-07-11 13:35:44 +00:00
|
|
|
virClassName;
|
|
|
|
virClassNew;
|
|
|
|
virObjectFreeCallback;
|
2014-04-04 23:36:25 +00:00
|
|
|
virObjectFreeHashData;
|
Add a generic reference counted virObject type
This introduces a fairly basic reference counted virObject type
and an associated virClass type, that use atomic operations for
ref counting.
In a global initializer (recommended to be invoked using the
virOnceInit API), a virClass type must be allocated for each
object type. This requires a class name, a "dispose" callback
which will be invoked to free memory associated with the object's
fields, and the size in bytes of the object struct.
eg,
virClassPtr connclass = virClassNew("virConnect",
sizeof(virConnect),
virConnectDispose);
The struct for the object, must include 'virObject' as its
first member
eg
struct _virConnect {
virObject object;
virURIPtr uri;
};
The 'dispose' callback is only responsible for freeing
fields in the object, not the object itself. eg a suitable
impl for the above struct would be
void virConnectDispose(void *obj) {
virConnectPtr conn = obj;
virURIFree(conn->uri);
}
There is no need to reset fields to 'NULL' or '0' in the
dispose callback, since the entire object will be memset
to 0, and the klass pointer & magic integer fields will
be poisoned with 0xDEADBEEF before being free()d
When creating an instance of an object, one needs simply
pass the virClassPtr eg
virConnectPtr conn = virObjectNew(connclass);
if (!conn)
return NULL;
conn->uri = virURIParse("foo:///bar")
Object references can be manipulated with
virObjectRef(conn)
virObjectUnref(conn)
The latter returns a true value, if the object has been
freed (ie its ref count hit zero)
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-07-11 13:35:44 +00:00
|
|
|
virObjectIsClass;
|
2015-04-29 09:54:58 +00:00
|
|
|
virObjectListFree;
|
|
|
|
virObjectListFreeCount;
|
2013-01-09 17:54:07 +00:00
|
|
|
virObjectLock;
|
|
|
|
virObjectLockableNew;
|
Add a generic reference counted virObject type
This introduces a fairly basic reference counted virObject type
and an associated virClass type, that use atomic operations for
ref counting.
In a global initializer (recommended to be invoked using the
virOnceInit API), a virClass type must be allocated for each
object type. This requires a class name, a "dispose" callback
which will be invoked to free memory associated with the object's
fields, and the size in bytes of the object struct.
eg,
virClassPtr connclass = virClassNew("virConnect",
sizeof(virConnect),
virConnectDispose);
The struct for the object, must include 'virObject' as its
first member
eg
struct _virConnect {
virObject object;
virURIPtr uri;
};
The 'dispose' callback is only responsible for freeing
fields in the object, not the object itself. eg a suitable
impl for the above struct would be
void virConnectDispose(void *obj) {
virConnectPtr conn = obj;
virURIFree(conn->uri);
}
There is no need to reset fields to 'NULL' or '0' in the
dispose callback, since the entire object will be memset
to 0, and the klass pointer & magic integer fields will
be poisoned with 0xDEADBEEF before being free()d
When creating an instance of an object, one needs simply
pass the virClassPtr eg
virConnectPtr conn = virObjectNew(connclass);
if (!conn)
return NULL;
conn->uri = virURIParse("foo:///bar")
Object references can be manipulated with
virObjectRef(conn)
virObjectUnref(conn)
The latter returns a true value, if the object has been
freed (ie its ref count hit zero)
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-07-11 13:35:44 +00:00
|
|
|
virObjectNew;
|
|
|
|
virObjectRef;
|
2017-07-19 07:31:50 +00:00
|
|
|
virObjectRWLockableNew;
|
2017-07-28 13:57:04 +00:00
|
|
|
virObjectRWLockRead;
|
2017-07-28 14:06:55 +00:00
|
|
|
virObjectRWLockWrite;
|
2017-07-28 16:03:50 +00:00
|
|
|
virObjectRWUnlock;
|
2013-01-09 17:54:07 +00:00
|
|
|
virObjectUnlock;
|
Add a generic reference counted virObject type
This introduces a fairly basic reference counted virObject type
and an associated virClass type, that use atomic operations for
ref counting.
In a global initializer (recommended to be invoked using the
virOnceInit API), a virClass type must be allocated for each
object type. This requires a class name, a "dispose" callback
which will be invoked to free memory associated with the object's
fields, and the size in bytes of the object struct.
eg,
virClassPtr connclass = virClassNew("virConnect",
sizeof(virConnect),
virConnectDispose);
The struct for the object, must include 'virObject' as its
first member
eg
struct _virConnect {
virObject object;
virURIPtr uri;
};
The 'dispose' callback is only responsible for freeing
fields in the object, not the object itself. eg a suitable
impl for the above struct would be
void virConnectDispose(void *obj) {
virConnectPtr conn = obj;
virURIFree(conn->uri);
}
There is no need to reset fields to 'NULL' or '0' in the
dispose callback, since the entire object will be memset
to 0, and the klass pointer & magic integer fields will
be poisoned with 0xDEADBEEF before being free()d
When creating an instance of an object, one needs simply
pass the virClassPtr eg
virConnectPtr conn = virObjectNew(connclass);
if (!conn)
return NULL;
conn->uri = virURIParse("foo:///bar")
Object references can be manipulated with
virObjectRef(conn)
virObjectUnref(conn)
The latter returns a true value, if the object has been
freed (ie its ref count hit zero)
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2012-07-11 13:35:44 +00:00
|
|
|
virObjectUnref;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virpci.h
|
2018-09-04 16:50:32 +00:00
|
|
|
virPCIDeviceAddressAsString;
|
2019-06-07 14:32:37 +00:00
|
|
|
virPCIDeviceAddressCopy;
|
2018-09-13 14:36:25 +00:00
|
|
|
virPCIDeviceAddressEqual;
|
2019-07-18 13:18:09 +00:00
|
|
|
virPCIDeviceAddressFree;
|
2013-06-23 18:47:57 +00:00
|
|
|
virPCIDeviceAddressGetIOMMUGroupAddresses;
|
2019-09-19 12:43:13 +00:00
|
|
|
virPCIDeviceAddressGetIOMMUGroupDev;
|
2013-06-23 18:47:57 +00:00
|
|
|
virPCIDeviceAddressGetIOMMUGroupNum;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceAddressGetSysfsFile;
|
2013-06-23 18:47:57 +00:00
|
|
|
virPCIDeviceAddressIOMMUGroupIterate;
|
2018-09-13 14:36:25 +00:00
|
|
|
virPCIDeviceAddressIsEmpty;
|
|
|
|
virPCIDeviceAddressIsValid;
|
2013-06-17 15:57:19 +00:00
|
|
|
virPCIDeviceAddressParse;
|
2013-05-31 15:06:32 +00:00
|
|
|
virPCIDeviceCopy;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceDetach;
|
|
|
|
virPCIDeviceFileIterate;
|
|
|
|
virPCIDeviceFree;
|
2019-07-18 13:18:09 +00:00
|
|
|
virPCIDeviceGetAddress;
|
2016-11-19 19:30:03 +00:00
|
|
|
virPCIDeviceGetConfigPath;
|
2014-01-16 11:27:23 +00:00
|
|
|
virPCIDeviceGetDriverPathAndName;
|
2013-06-14 20:18:44 +00:00
|
|
|
virPCIDeviceGetIOMMUGroupDev;
|
2013-06-23 18:47:57 +00:00
|
|
|
virPCIDeviceGetIOMMUGroupList;
|
2014-05-15 08:04:28 +00:00
|
|
|
virPCIDeviceGetLinkCapSta;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceGetManaged;
|
|
|
|
virPCIDeviceGetName;
|
|
|
|
virPCIDeviceGetRemoveSlot;
|
|
|
|
virPCIDeviceGetReprobe;
|
2013-04-23 18:50:15 +00:00
|
|
|
virPCIDeviceGetStubDriver;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceGetUnbindFromStub;
|
|
|
|
virPCIDeviceGetUsedBy;
|
2014-05-15 08:04:28 +00:00
|
|
|
virPCIDeviceHasPCIExpressLink;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceIsAssignable;
|
2014-05-15 08:04:28 +00:00
|
|
|
virPCIDeviceIsPCIExpress;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceListAdd;
|
2013-06-25 01:27:52 +00:00
|
|
|
virPCIDeviceListAddCopy;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceListCount;
|
|
|
|
virPCIDeviceListDel;
|
|
|
|
virPCIDeviceListFind;
|
2013-05-31 15:06:32 +00:00
|
|
|
virPCIDeviceListFindByIDs;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceListFindIndex;
|
|
|
|
virPCIDeviceListGet;
|
|
|
|
virPCIDeviceListNew;
|
|
|
|
virPCIDeviceListSteal;
|
|
|
|
virPCIDeviceListStealIndex;
|
|
|
|
virPCIDeviceNew;
|
|
|
|
virPCIDeviceReattach;
|
2017-03-07 17:58:15 +00:00
|
|
|
virPCIDeviceRebind;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceReset;
|
|
|
|
virPCIDeviceSetManaged;
|
|
|
|
virPCIDeviceSetRemoveSlot;
|
|
|
|
virPCIDeviceSetReprobe;
|
2013-04-23 18:50:15 +00:00
|
|
|
virPCIDeviceSetStubDriver;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIDeviceSetUnbindFromStub;
|
|
|
|
virPCIDeviceSetUsedBy;
|
2014-01-16 11:27:23 +00:00
|
|
|
virPCIDeviceUnbind;
|
2014-07-23 04:38:30 +00:00
|
|
|
virPCIEDeviceInfoFree;
|
2019-07-18 13:18:09 +00:00
|
|
|
virPCIELinkSpeedTypeFromString;
|
|
|
|
virPCIELinkSpeedTypeToString;
|
2017-03-07 19:23:01 +00:00
|
|
|
virPCIGetDeviceAddressFromSysfsLink;
|
2016-03-15 11:22:03 +00:00
|
|
|
virPCIGetHeaderType;
|
2018-01-19 19:33:43 +00:00
|
|
|
virPCIGetMdevTypes;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIGetNetName;
|
|
|
|
virPCIGetPhysicalFunction;
|
2019-07-18 13:18:09 +00:00
|
|
|
virPCIGetSysfsFile;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIGetVirtualFunctionIndex;
|
|
|
|
virPCIGetVirtualFunctionInfo;
|
|
|
|
virPCIGetVirtualFunctions;
|
2016-03-15 11:22:03 +00:00
|
|
|
virPCIHeaderTypeFromString;
|
|
|
|
virPCIHeaderTypeToString;
|
2013-02-16 03:34:42 +00:00
|
|
|
virPCIIsVirtualFunction;
|
2015-10-23 09:54:07 +00:00
|
|
|
virPCIStubDriverTypeFromString;
|
|
|
|
virPCIStubDriverTypeToString;
|
conf: fix zPCI address auto-generation on s390
Let us fix the issues with zPCI address validation and auto-generation
on s390.
Currently, there are two issues with handling the ZPCI address
extension. Firstly, when the uid is to be auto-generated with a
specified fid, .i.e.:
...
<address type='pci'>
<zpci fid='0x0000001f'/>
</address>
...
we expect uid='0x0001' (or the next available uid for the domain).
However, we get a parsing error:
$ virsh define zpci.xml
error: XML error: Invalid PCI address uid='0x0000', must be > 0x0000
and <= 0xffff
Secondly, when the uid is specified explicitly with the invalid
numerical value '0x0000', we actually expect the parsing error above.
However, the domain is being defined and the uid value is silently
changed to a valid value.
The first issue is a bug and the second one is undesired behaviour, and
both issues are related to how we (in-band) signal invalid values for
uid and fid. So let's fix the XML parsing to do validation based on what
is actually specified in the XML.
The first issue is also related to the current code behaviour, which
is, if either uid or fid is specified by the user, it is incorrectly
assumed that both uid and fid are specified. This bug is fixed by
identifying when the user specified ZPCI address is incomplete and
auto-generating the missing ZPCI address.
Signed-off-by: Bjoern Walk <bwalk@linux.ibm.com>
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Signed-off-by: Shalini Chellathurai Saroja <shalini@linux.ibm.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2020-06-18 08:25:15 +00:00
|
|
|
virZPCIDeviceAddressIsIncomplete;
|
|
|
|
virZPCIDeviceAddressIsPresent;
|
2013-02-16 03:34:42 +00:00
|
|
|
|
|
|
|
|
2016-03-28 13:30:28 +00:00
|
|
|
# util/virperf.h
|
|
|
|
virPerfEventDisable;
|
|
|
|
virPerfEventEnable;
|
|
|
|
virPerfEventIsEnabled;
|
|
|
|
virPerfEventTypeFromString;
|
|
|
|
virPerfEventTypeToString;
|
|
|
|
virPerfFree;
|
|
|
|
virPerfNew;
|
|
|
|
virPerfReadEvent;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virpidfile.h
|
2011-07-06 16:12:26 +00:00
|
|
|
virPidFileAcquire;
|
|
|
|
virPidFileAcquirePath;
|
2011-08-05 13:13:12 +00:00
|
|
|
virPidFileBuildPath;
|
2014-09-07 17:52:34 +00:00
|
|
|
virPidFileConstructPath;
|
2012-12-11 22:21:17 +00:00
|
|
|
virPidFileDelete;
|
|
|
|
virPidFileDeletePath;
|
2014-10-12 11:40:36 +00:00
|
|
|
virPidFileForceCleanupPath;
|
2011-08-05 13:13:12 +00:00
|
|
|
virPidFileRead;
|
2011-08-05 13:41:25 +00:00
|
|
|
virPidFileReadIfAlive;
|
2011-08-05 13:13:12 +00:00
|
|
|
virPidFileReadPath;
|
2011-08-05 13:41:25 +00:00
|
|
|
virPidFileReadPathIfAlive;
|
2011-07-06 16:12:26 +00:00
|
|
|
virPidFileRelease;
|
|
|
|
virPidFileReleasePath;
|
2011-08-05 13:13:12 +00:00
|
|
|
virPidFileWrite;
|
|
|
|
virPidFileWritePath;
|
|
|
|
|
|
|
|
|
2013-08-22 13:27:19 +00:00
|
|
|
# util/virpolkit.h
|
2016-02-09 15:09:44 +00:00
|
|
|
virPolkitAgentCreate;
|
|
|
|
virPolkitAgentDestroy;
|
2013-08-22 13:27:19 +00:00
|
|
|
virPolkitCheckAuth;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virportallocator.h
|
2013-01-09 15:11:50 +00:00
|
|
|
virPortAllocatorAcquire;
|
2018-02-06 09:09:06 +00:00
|
|
|
virPortAllocatorRangeFree;
|
|
|
|
virPortAllocatorRangeNew;
|
2013-01-09 15:11:50 +00:00
|
|
|
virPortAllocatorRelease;
|
2014-06-24 11:34:17 +00:00
|
|
|
virPortAllocatorSetUsed;
|
2013-01-09 15:11:50 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virprocess.h
|
2012-09-24 17:10:37 +00:00
|
|
|
virProcessAbort;
|
2014-02-20 03:04:40 +00:00
|
|
|
virProcessExitWithStatus;
|
2012-12-13 14:58:41 +00:00
|
|
|
virProcessGetAffinity;
|
2015-11-20 16:06:41 +00:00
|
|
|
virProcessGetMaxMemLock;
|
2012-12-21 16:50:18 +00:00
|
|
|
virProcessGetNamespaces;
|
2015-06-01 12:31:44 +00:00
|
|
|
virProcessGetPids;
|
2013-06-12 08:13:29 +00:00
|
|
|
virProcessGetStartTime;
|
2012-09-24 16:54:51 +00:00
|
|
|
virProcessKill;
|
2012-09-26 14:42:58 +00:00
|
|
|
virProcessKillPainfully;
|
2018-08-02 07:05:18 +00:00
|
|
|
virProcessKillPainfullyDelay;
|
2017-01-11 09:23:39 +00:00
|
|
|
virProcessNamespaceAvailable;
|
2018-10-16 08:50:33 +00:00
|
|
|
virProcessRunInFork;
|
2014-01-30 13:11:23 +00:00
|
|
|
virProcessRunInMountNamespace;
|
2015-01-08 14:36:54 +00:00
|
|
|
virProcessSchedPolicyTypeFromString;
|
|
|
|
virProcessSchedPolicyTypeToString;
|
2012-12-13 14:58:41 +00:00
|
|
|
virProcessSetAffinity;
|
2015-03-18 11:14:55 +00:00
|
|
|
virProcessSetMaxCoreSize;
|
2013-04-25 16:10:10 +00:00
|
|
|
virProcessSetMaxFiles;
|
|
|
|
virProcessSetMaxMemLock;
|
|
|
|
virProcessSetMaxProcesses;
|
2012-12-21 16:50:18 +00:00
|
|
|
virProcessSetNamespaces;
|
2015-01-08 14:36:54 +00:00
|
|
|
virProcessSetScheduler;
|
2016-11-10 13:55:48 +00:00
|
|
|
virProcessSetupPrivateMountNS;
|
2012-09-24 17:10:37 +00:00
|
|
|
virProcessTranslateStatus;
|
|
|
|
virProcessWait;
|
|
|
|
|
2012-09-24 16:54:51 +00:00
|
|
|
|
2016-05-31 21:35:14 +00:00
|
|
|
# util/virqemu.h
|
2016-07-15 11:02:05 +00:00
|
|
|
virQEMUBuildBufferEscapeComma;
|
2016-07-22 13:54:57 +00:00
|
|
|
virQEMUBuildCommandLineJSON;
|
2016-07-22 15:50:03 +00:00
|
|
|
virQEMUBuildCommandLineJSONArrayBitmap;
|
2016-07-25 17:47:40 +00:00
|
|
|
virQEMUBuildCommandLineJSONArrayNumbered;
|
2016-07-25 17:51:18 +00:00
|
|
|
virQEMUBuildDriveCommandlineFromJSON;
|
2020-05-14 08:10:16 +00:00
|
|
|
virQEMUBuildNetdevCommandlineFromJSON;
|
2018-05-18 12:04:21 +00:00
|
|
|
virQEMUBuildObjectCommandlineFromJSON;
|
2018-04-19 13:47:31 +00:00
|
|
|
virQEMUBuildQemuImgKeySecretOpts;
|
2016-05-31 21:35:14 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virrandom.h
|
2012-08-10 13:01:23 +00:00
|
|
|
virRandom;
|
2012-01-25 15:17:46 +00:00
|
|
|
virRandomBits;
|
2016-03-29 22:15:33 +00:00
|
|
|
virRandomBytes;
|
2012-02-10 04:51:47 +00:00
|
|
|
virRandomGenerateWWN;
|
2012-08-10 13:01:23 +00:00
|
|
|
virRandomInt;
|
2012-01-25 15:17:46 +00:00
|
|
|
|
|
|
|
|
2017-07-25 14:03:11 +00:00
|
|
|
# util/virresctrl.h
|
2018-02-08 14:55:09 +00:00
|
|
|
virCacheKernelTypeFromString;
|
|
|
|
virCacheKernelTypeToString;
|
2017-07-25 14:03:11 +00:00
|
|
|
virCacheTypeFromString;
|
|
|
|
virCacheTypeToString;
|
2017-10-16 15:17:32 +00:00
|
|
|
virResctrlAllocAddPID;
|
|
|
|
virResctrlAllocCreate;
|
2018-01-30 22:57:42 +00:00
|
|
|
virResctrlAllocDeterminePath;
|
2018-07-30 03:12:25 +00:00
|
|
|
virResctrlAllocForeachCache;
|
2018-07-30 03:12:33 +00:00
|
|
|
virResctrlAllocForeachMemory;
|
2017-10-16 15:17:32 +00:00
|
|
|
virResctrlAllocFormat;
|
|
|
|
virResctrlAllocGetID;
|
|
|
|
virResctrlAllocGetUnused;
|
2019-06-11 03:31:06 +00:00
|
|
|
virResctrlAllocIsEmpty;
|
2017-10-16 15:17:32 +00:00
|
|
|
virResctrlAllocNew;
|
|
|
|
virResctrlAllocRemove;
|
2018-07-30 03:12:25 +00:00
|
|
|
virResctrlAllocSetCacheSize;
|
2017-10-16 15:17:32 +00:00
|
|
|
virResctrlAllocSetID;
|
2018-07-30 03:12:34 +00:00
|
|
|
virResctrlAllocSetMemoryBandwidth;
|
2017-11-20 10:12:06 +00:00
|
|
|
virResctrlInfoGetCache;
|
2018-09-20 10:10:50 +00:00
|
|
|
virResctrlInfoGetMonitorPrefix;
|
|
|
|
virResctrlInfoMonFree;
|
2017-11-20 10:12:06 +00:00
|
|
|
virResctrlInfoNew;
|
2018-11-12 13:31:37 +00:00
|
|
|
virResctrlMonitorAddPID;
|
2018-11-12 13:31:39 +00:00
|
|
|
virResctrlMonitorCreate;
|
2018-11-12 13:31:35 +00:00
|
|
|
virResctrlMonitorDeterminePath;
|
2018-11-12 13:31:41 +00:00
|
|
|
virResctrlMonitorGetID;
|
2019-06-11 03:31:14 +00:00
|
|
|
virResctrlMonitorGetStats;
|
2018-11-12 13:31:33 +00:00
|
|
|
virResctrlMonitorNew;
|
2018-11-12 13:31:41 +00:00
|
|
|
virResctrlMonitorRemove;
|
|
|
|
virResctrlMonitorSetAlloc;
|
|
|
|
virResctrlMonitorSetID;
|
2019-06-11 03:31:12 +00:00
|
|
|
virResctrlMonitorStatsFree;
|
2017-07-25 14:03:11 +00:00
|
|
|
|
|
|
|
|
2015-11-06 14:25:48 +00:00
|
|
|
# util/virrotatingfile.h
|
|
|
|
virRotatingFileReaderConsume;
|
|
|
|
virRotatingFileReaderFree;
|
|
|
|
virRotatingFileReaderNew;
|
|
|
|
virRotatingFileReaderSeek;
|
|
|
|
virRotatingFileWriterAppend;
|
|
|
|
virRotatingFileWriterFree;
|
|
|
|
virRotatingFileWriterGetINode;
|
|
|
|
virRotatingFileWriterGetOffset;
|
|
|
|
virRotatingFileWriterGetPath;
|
|
|
|
virRotatingFileWriterNew;
|
|
|
|
|
|
|
|
|
2013-05-03 18:07:22 +00:00
|
|
|
# util/virscsi.h
|
|
|
|
virSCSIDeviceFileIterate;
|
|
|
|
virSCSIDeviceFree;
|
|
|
|
virSCSIDeviceGetAdapter;
|
|
|
|
virSCSIDeviceGetBus;
|
2013-05-03 18:07:36 +00:00
|
|
|
virSCSIDeviceGetDevName;
|
2013-05-03 18:07:22 +00:00
|
|
|
virSCSIDeviceGetName;
|
2016-11-16 14:27:20 +00:00
|
|
|
virSCSIDeviceGetPath;
|
2013-05-03 18:07:22 +00:00
|
|
|
virSCSIDeviceGetReadonly;
|
|
|
|
virSCSIDeviceGetSgName;
|
2014-01-08 14:51:29 +00:00
|
|
|
virSCSIDeviceGetShareable;
|
2013-05-03 18:07:22 +00:00
|
|
|
virSCSIDeviceGetTarget;
|
|
|
|
virSCSIDeviceGetUnit;
|
2014-01-29 17:22:42 +00:00
|
|
|
virSCSIDeviceIsAvailable;
|
2013-05-03 18:07:22 +00:00
|
|
|
virSCSIDeviceListAdd;
|
|
|
|
virSCSIDeviceListCount;
|
|
|
|
virSCSIDeviceListDel;
|
|
|
|
virSCSIDeviceListFind;
|
|
|
|
virSCSIDeviceListGet;
|
|
|
|
virSCSIDeviceListNew;
|
|
|
|
virSCSIDeviceListSteal;
|
|
|
|
virSCSIDeviceNew;
|
|
|
|
virSCSIDeviceSetUsedBy;
|
|
|
|
|
|
|
|
|
2017-01-23 19:48:12 +00:00
|
|
|
# util/virscsihost.h
|
|
|
|
virSCSIHostFindByPCI;
|
|
|
|
virSCSIHostGetNameByParentaddr;
|
|
|
|
virSCSIHostGetNumber;
|
|
|
|
virSCSIHostGetUniqueId;
|
|
|
|
|
2016-11-22 03:58:17 +00:00
|
|
|
# util/virscsivhost.h
|
|
|
|
virSCSIVHostDeviceFileIterate;
|
|
|
|
virSCSIVHostDeviceFree;
|
|
|
|
virSCSIVHostDeviceGetName;
|
2016-12-06 15:06:02 +00:00
|
|
|
virSCSIVHostDeviceGetPath;
|
2016-11-22 03:58:17 +00:00
|
|
|
virSCSIVHostDeviceListAdd;
|
|
|
|
virSCSIVHostDeviceListCount;
|
|
|
|
virSCSIVHostDeviceListDel;
|
|
|
|
virSCSIVHostDeviceListFind;
|
|
|
|
virSCSIVHostDeviceListGet;
|
|
|
|
virSCSIVHostDeviceListNew;
|
|
|
|
virSCSIVHostDeviceListSteal;
|
|
|
|
virSCSIVHostDeviceNew;
|
|
|
|
virSCSIVHostDeviceSetUsedBy;
|
|
|
|
virSCSIVHostOpenVhostSCSI;
|
|
|
|
|
|
|
|
|
2014-03-26 20:09:46 +00:00
|
|
|
# util/virseclabel.h
|
|
|
|
virSecurityDeviceLabelDefFree;
|
|
|
|
virSecurityDeviceLabelDefNew;
|
|
|
|
virSecurityLabelDefFree;
|
|
|
|
virSecurityLabelDefNew;
|
|
|
|
|
|
|
|
|
2016-05-28 12:43:23 +00:00
|
|
|
# util/virsecret.h
|
2019-10-24 16:00:55 +00:00
|
|
|
virSecretGetSecretString;
|
2016-05-28 12:43:23 +00:00
|
|
|
virSecretLookupDefClear;
|
|
|
|
virSecretLookupDefCopy;
|
2016-06-13 23:40:34 +00:00
|
|
|
virSecretLookupFormatSecret;
|
2016-06-13 20:23:42 +00:00
|
|
|
virSecretLookupParseSecret;
|
2016-05-28 12:43:23 +00:00
|
|
|
|
|
|
|
|
2020-01-17 11:57:17 +00:00
|
|
|
# util/virsocket.h
|
|
|
|
virSocketRecvFD;
|
|
|
|
virSocketSendFD;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virsocketaddr.h
|
2011-11-18 16:07:48 +00:00
|
|
|
virSocketAddrBroadcast;
|
|
|
|
virSocketAddrBroadcastByPrefix;
|
|
|
|
virSocketAddrCheckNetmask;
|
2012-04-25 13:53:29 +00:00
|
|
|
virSocketAddrEqual;
|
2011-11-18 16:07:48 +00:00
|
|
|
virSocketAddrFormat;
|
|
|
|
virSocketAddrFormatFull;
|
2016-06-08 16:48:50 +00:00
|
|
|
virSocketAddrGetIPPrefix;
|
2016-04-20 14:05:36 +00:00
|
|
|
virSocketAddrGetNumNetmaskBits;
|
2019-06-24 10:25:48 +00:00
|
|
|
virSocketAddrGetPath;
|
2011-11-18 16:07:48 +00:00
|
|
|
virSocketAddrGetPort;
|
|
|
|
virSocketAddrGetRange;
|
|
|
|
virSocketAddrIsNetmask;
|
2014-10-07 04:07:31 +00:00
|
|
|
virSocketAddrIsNumericLocalhost;
|
2012-11-22 02:17:30 +00:00
|
|
|
virSocketAddrIsPrivate;
|
2013-06-06 13:50:01 +00:00
|
|
|
virSocketAddrIsWildcard;
|
2011-11-18 16:07:48 +00:00
|
|
|
virSocketAddrMask;
|
|
|
|
virSocketAddrMaskByPrefix;
|
2014-10-07 04:07:30 +00:00
|
|
|
virSocketAddrNumericFamily;
|
2011-11-18 16:07:48 +00:00
|
|
|
virSocketAddrParse;
|
2018-03-26 18:53:05 +00:00
|
|
|
virSocketAddrParseAny;
|
2011-11-18 16:07:48 +00:00
|
|
|
virSocketAddrParseIPv4;
|
|
|
|
virSocketAddrParseIPv6;
|
|
|
|
virSocketAddrPrefixToNetmask;
|
2016-12-08 21:21:39 +00:00
|
|
|
virSocketAddrPTRDomain;
|
2019-06-24 10:26:28 +00:00
|
|
|
virSocketAddrResolveService;
|
2012-04-25 13:53:29 +00:00
|
|
|
virSocketAddrSetIPv4Addr;
|
2016-03-18 15:34:10 +00:00
|
|
|
virSocketAddrSetIPv4AddrNetOrder;
|
2016-03-15 15:35:23 +00:00
|
|
|
virSocketAddrSetIPv6Addr;
|
2016-03-18 15:34:10 +00:00
|
|
|
virSocketAddrSetIPv6AddrNetOrder;
|
2011-11-18 16:07:48 +00:00
|
|
|
virSocketAddrSetPort;
|
|
|
|
|
2017-03-07 09:45:18 +00:00
|
|
|
|
2014-03-28 03:26:44 +00:00
|
|
|
# util/virstorageencryption.h
|
|
|
|
virStorageEncryptionFormat;
|
|
|
|
virStorageEncryptionFree;
|
|
|
|
virStorageEncryptionParseNode;
|
|
|
|
virStorageGenerateQcowPassphrase;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virstoragefile.h
|
2014-06-23 14:40:49 +00:00
|
|
|
virStorageAuthDefCopy;
|
|
|
|
virStorageAuthDefFormat;
|
|
|
|
virStorageAuthDefFree;
|
|
|
|
virStorageAuthDefParse;
|
2018-01-25 09:35:46 +00:00
|
|
|
virStorageFileAccess;
|
2014-05-02 17:22:17 +00:00
|
|
|
virStorageFileCanonicalizePath;
|
2013-07-29 12:51:15 +00:00
|
|
|
virStorageFileChainGetBroken;
|
2013-02-16 03:34:42 +00:00
|
|
|
virStorageFileChainLookup;
|
2018-01-25 09:35:46 +00:00
|
|
|
virStorageFileChown;
|
|
|
|
virStorageFileCreate;
|
|
|
|
virStorageFileDeinit;
|
2013-05-16 10:38:26 +00:00
|
|
|
virStorageFileFeatureTypeFromString;
|
|
|
|
virStorageFileFeatureTypeToString;
|
2013-02-16 03:34:42 +00:00
|
|
|
virStorageFileFormatTypeFromString;
|
|
|
|
virStorageFileFormatTypeToString;
|
2018-01-25 09:35:46 +00:00
|
|
|
virStorageFileGetBackingStoreStr;
|
2013-02-16 03:34:42 +00:00
|
|
|
virStorageFileGetLVMKey;
|
2018-01-25 09:35:46 +00:00
|
|
|
virStorageFileGetMetadata;
|
2013-11-05 20:50:29 +00:00
|
|
|
virStorageFileGetMetadataFromBuf;
|
2013-02-16 03:34:42 +00:00
|
|
|
virStorageFileGetMetadataFromFD;
|
2019-01-16 00:07:07 +00:00
|
|
|
virStorageFileGetNPIVKey;
|
2014-05-13 08:10:56 +00:00
|
|
|
virStorageFileGetRelativeBackingPath;
|
2013-02-16 03:34:42 +00:00
|
|
|
virStorageFileGetSCSIKey;
|
2018-01-25 09:35:46 +00:00
|
|
|
virStorageFileGetUniqueIdentifier;
|
|
|
|
virStorageFileInit;
|
|
|
|
virStorageFileInitAs;
|
2013-02-16 03:34:42 +00:00
|
|
|
virStorageFileIsClusterFS;
|
2017-02-23 16:10:43 +00:00
|
|
|
virStorageFileParseBackingStoreStr;
|
2014-04-18 12:35:33 +00:00
|
|
|
virStorageFileParseChainIndex;
|
2013-02-16 03:34:42 +00:00
|
|
|
virStorageFileProbeFormat;
|
2018-01-25 09:35:46 +00:00
|
|
|
virStorageFileRead;
|
|
|
|
virStorageFileReportBrokenChain;
|
2013-02-16 03:34:42 +00:00
|
|
|
virStorageFileResize;
|
2018-01-25 09:35:46 +00:00
|
|
|
virStorageFileStat;
|
|
|
|
virStorageFileSupportsAccess;
|
2019-08-13 10:41:40 +00:00
|
|
|
virStorageFileSupportsBackingChainTraversal;
|
2019-07-29 15:43:22 +00:00
|
|
|
virStorageFileSupportsCreate;
|
2018-01-25 09:35:46 +00:00
|
|
|
virStorageFileSupportsSecurityDriver;
|
|
|
|
virStorageFileUnlink;
|
2014-04-09 22:08:42 +00:00
|
|
|
virStorageIsFile;
|
2017-06-19 16:06:34 +00:00
|
|
|
virStorageIsRelative;
|
conf: split network host structs to util/
Continuing the refactoring of host-side storage descriptions out
of conf/domain_conf and into util/virstoragefile, this patch
focuses on details about a host name/port/transport as used by
a network storage volume.
* src/conf/domain_conf.h (virDomainDiskProtocolTransport)
(virDomainDiskHostDef, virDomainDiskHostDefClear)
(virDomainDiskHostDefFree, virDomainDiskHostDefCopy): Move...
* src/util/virstoragefile.h (virStorageNetHostTransport)
(virStorageNetHostDef, virStorageNetHostDefClear)
(virStorageNetHostDefFree, virStorageNetHostDefCopy): ...here,
with better names.
* src/util/virstoragefile.c (virStorageNetHostDefClear)
(virStorageNetHostDefFree, virStorageNetHostDefCopy): Moved from...
* src/conf/domain_conf.c (virDomainDiskHostDefClear)
(virDomainDiskHostDefFree, virDomainDiskHostDefCopy): ...here.
(virDomainDiskSourceDefClear, virDomainDiskSourceDefParse)
(virDomainDiskSourceDefFormatInternal): Adjust callers.
* src/conf/snapshot_conf.h (_virDomainSnapshotDiskDef): Likewise.
* src/conf/snapshot_conf.c (virDomainSnapshotDiskDefClear):
Likewise.
* src/qemu/qemu_command.c (qemuAddRBDHost)
(qemuParseDriveURIString, qemuParseNBDString)
(qemuBuildNetworkDriveURI, qemuParseCommandLineDisk)
(qemuParseCommandLine, qemuGetDriveSourceString): Likewise.
* src/qemu/qemu_command.h: Likewise.
* src/qemu/qemu_conf.c (qemuAddISCSIPoolSourceHost)
(qemuTranslateDiskSourcePool): Likewise.
* src/qemu/qemu_driver.c
(qemuDomainSnapshotCreateSingleDiskActive)
(qemuDomainSnapshotUndoSingleDiskActive): Likewise.
* src/storage/storage_backend_gluster.c
(virStorageFileBackendGlusterInit): Likewise.
* src/storage/storage_driver.c (virStorageFileFree)
(virStorageFileInitInternal): Likewise.
* src/storage/storage_driver.h (_virStorageFile): Likewise.
* src/libvirt_private.syms (domain_conf.h): Move symbols...
(virstoragefile.h): ...as appropriate.
Signed-off-by: Eric Blake <eblake@redhat.com>
2014-03-26 22:33:08 +00:00
|
|
|
virStorageNetHostDefClear;
|
|
|
|
virStorageNetHostDefCopy;
|
|
|
|
virStorageNetHostDefFree;
|
|
|
|
virStorageNetHostTransportTypeFromString;
|
|
|
|
virStorageNetHostTransportTypeToString;
|
2014-03-27 22:47:39 +00:00
|
|
|
virStorageNetProtocolTypeToString;
|
2017-11-27 10:54:33 +00:00
|
|
|
virStoragePRDefFormat;
|
|
|
|
virStoragePRDefFree;
|
2017-12-14 10:47:02 +00:00
|
|
|
virStoragePRDefIsEqual;
|
2018-04-18 14:55:14 +00:00
|
|
|
virStoragePRDefIsManaged;
|
2017-11-27 10:54:33 +00:00
|
|
|
virStoragePRDefParseXML;
|
2014-06-20 08:40:45 +00:00
|
|
|
virStorageSourceBackingStoreClear;
|
2018-05-17 10:52:02 +00:00
|
|
|
virStorageSourceChainHasManagedPR;
|
2019-06-21 15:59:29 +00:00
|
|
|
virStorageSourceChainHasNVMe;
|
2014-03-29 18:00:38 +00:00
|
|
|
virStorageSourceClear;
|
2014-06-16 11:10:42 +00:00
|
|
|
virStorageSourceCopy;
|
2017-02-22 15:20:00 +00:00
|
|
|
virStorageSourceFindByNodeName;
|
2014-04-08 06:51:06 +00:00
|
|
|
virStorageSourceGetActualType;
|
2014-06-18 16:39:47 +00:00
|
|
|
virStorageSourceGetSecurityLabelDef;
|
2017-10-12 17:27:40 +00:00
|
|
|
virStorageSourceHasBacking;
|
2014-06-25 16:48:27 +00:00
|
|
|
virStorageSourceInitChainElement;
|
2018-08-07 11:01:40 +00:00
|
|
|
virStorageSourceInitiatorClear;
|
|
|
|
virStorageSourceInitiatorCopy;
|
|
|
|
virStorageSourceInitiatorFormatXML;
|
|
|
|
virStorageSourceInitiatorParseXML;
|
2017-10-12 17:27:40 +00:00
|
|
|
virStorageSourceIsBacking;
|
2016-05-02 11:42:32 +00:00
|
|
|
virStorageSourceIsBlockLocal;
|
2014-09-11 17:43:53 +00:00
|
|
|
virStorageSourceIsEmpty;
|
2014-06-25 11:47:32 +00:00
|
|
|
virStorageSourceIsLocalStorage;
|
2016-12-16 17:30:39 +00:00
|
|
|
virStorageSourceIsRelative;
|
2018-07-13 15:25:33 +00:00
|
|
|
virStorageSourceIsSameLocation;
|
2017-05-09 12:52:40 +00:00
|
|
|
virStorageSourceNetCookiesValidate;
|
2017-07-10 11:41:43 +00:00
|
|
|
virStorageSourceNetworkAssignDefaultPorts;
|
2019-02-14 15:20:25 +00:00
|
|
|
virStorageSourceNew;
|
2014-04-25 11:23:50 +00:00
|
|
|
virStorageSourceNewFromBacking;
|
2016-07-12 15:04:16 +00:00
|
|
|
virStorageSourceNewFromBackingAbsolute;
|
2019-06-03 15:31:13 +00:00
|
|
|
virStorageSourceNVMeDefFree;
|
2014-10-31 16:49:56 +00:00
|
|
|
virStorageSourceParseRBDColonString;
|
2014-03-29 18:00:38 +00:00
|
|
|
virStorageSourcePoolDefFree;
|
2014-03-28 04:33:45 +00:00
|
|
|
virStorageSourcePoolModeTypeFromString;
|
|
|
|
virStorageSourcePoolModeTypeToString;
|
2017-12-13 16:04:54 +00:00
|
|
|
virStorageSourcePrivateDataFormatRelPath;
|
|
|
|
virStorageSourcePrivateDataParseRelPath;
|
2016-12-01 21:39:36 +00:00
|
|
|
virStorageSourceUpdateBackingSizes;
|
2016-12-01 21:23:58 +00:00
|
|
|
virStorageSourceUpdateCapacity;
|
2016-12-01 21:19:26 +00:00
|
|
|
virStorageSourceUpdatePhysicalSize;
|
conf: move host disk type to util/
A continuation of the migration of disk details to virstoragefile.
This patch moves a single enum, but converting the name has quite
a bit of fallout.
* src/conf/domain_conf.h (virDomainDiskType): Move...
* src/util/virstoragefile.h (virStorageType): ...and rename.
* src/bhyve/bhyve_command.c (bhyveBuildDiskArgStr)
(virBhyveProcessBuildLoadCmd): Update clients.
* src/conf/domain_conf.c (virDomainDiskSourceDefParse)
(virDomainDiskDefParseXML, virDomainDiskSourceDefFormatInternal)
(virDomainDiskDefFormat, virDomainDiskGetActualType)
(virDomainDiskDefForeachPath, virDomainDiskSourceIsBlockType):
Likewise.
* src/conf/snapshot_conf.h (_virDomainSnapshotDiskDef): Likewise.
* src/conf/snapshot_conf.c (virDomainSnapshotDiskDefParseXML)
(virDomainSnapshotAlignDisks, virDomainSnapshotDiskDefFormat):
Likewise.
* src/esx/esx_driver.c (esxAutodetectSCSIControllerModel)
(esxDomainDefineXML): Likewise.
* src/locking/domain_lock.c (virDomainLockManagerAddDisk):
Likewise.
* src/lxc/lxc_controller.c
(virLXCControllerSetupLoopDeviceDisk)
(virLXCControllerSetupNBDDeviceDisk)
(virLXCControllerSetupLoopDevices, virLXCControllerSetupDisk):
Likewise.
* src/parallels/parallels_driver.c (parallelsGetHddInfo):
Likewise.
* src/phyp/phyp_driver.c (phypDiskType): Likewise.
* src/qemu/qemu_command.c (qemuGetDriveSourceString)
(qemuDomainDiskGetSourceString, qemuBuildDriveStr)
(qemuBuildCommandLine, qemuParseCommandLineDisk)
(qemuParseCommandLine): Likewise.
* src/qemu/qemu_conf.c (qemuCheckSharedDevice)
(qemuTranslateDiskSourcePool)
(qemuTranslateSnapshotDiskSourcePool): Likewise.
* src/qemu/qemu_domain.c (qemuDomainDeviceDefPostParse)
(qemuDomainDetermineDiskChain): Likewise.
* src/qemu/qemu_driver.c (qemuDomainGetBlockInfo)
(qemuDomainSnapshotPrepareDiskExternalBackingInactive)
(qemuDomainSnapshotPrepareDiskExternalBackingActive)
(qemuDomainSnapshotPrepareDiskExternalOverlayActive)
(qemuDomainSnapshotPrepareDiskExternalOverlayInactive)
(qemuDomainSnapshotPrepareDiskInternal)
(qemuDomainSnapshotPrepare)
(qemuDomainSnapshotCreateSingleDiskActive): Likewise.
* src/qemu/qemu_hotplug.c (qemuDomainChangeEjectableMedia):
Likewise.
* src/qemu/qemu_migration.c (qemuMigrationIsSafe): Likewise.
* src/security/security_apparmor.c
(AppArmorRestoreSecurityImageLabel)
(AppArmorSetSecurityImageLabel): Likewise.
* src/security/security_dac.c (virSecurityDACSetSecurityImageLabel)
(virSecurityDACRestoreSecurityImageLabelInt)
(virSecurityDACSetSecurityAllLabel): Likewise.
* src/security/security_selinux.c
(virSecuritySELinuxRestoreSecurityImageLabelInt)
(virSecuritySELinuxSetSecurityImageLabel)
(virSecuritySELinuxSetSecurityAllLabel): Likewise.
* src/storage/storage_backend.c (virStorageFileBackendForType):
Likewise.
* src/storage/storage_backend_fs.c (virStorageFileBackendFile)
(virStorageFileBackendBlock): Likewise.
* src/storage/storage_backend_gluster.c
(virStorageFileBackendGluster): Likewise.
* src/vbox/vbox_tmpl.c (vboxDomainGetXMLDesc, vboxAttachDrives)
(vboxDomainAttachDeviceImpl, vboxDomainDetachDevice): Likewise.
* src/vmware/vmware_conf.c (vmwareVmxPath): Likewise.
* src/vmx/vmx.c (virVMXParseDisk, virVMXFormatDisk)
(virVMXFormatFloppy): Likewise.
* src/xenxs/xen_sxpr.c (xenParseSxprDisks, xenParseSxpr)
(xenFormatSxprDisk): Likewise.
* src/xenxs/xen_xm.c (xenParseXM, xenFormatXMDisk): Likewise.
* tests/securityselinuxlabeltest.c (testSELinuxLoadDef):
Likewise.
* src/libvirt_private.syms (domain_conf.h): Move symbols...
(virstoragefile.h): ...as appropriate.
Signed-off-by: Eric Blake <eblake@redhat.com>
2014-03-27 21:57:49 +00:00
|
|
|
virStorageTypeFromString;
|
|
|
|
virStorageTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2011-11-29 12:11:01 +00:00
|
|
|
|
2018-01-25 09:35:46 +00:00
|
|
|
# util/virstoragefilebackend.h
|
|
|
|
virStorageFileBackendRegister;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virstring.h
|
2013-04-03 10:36:23 +00:00
|
|
|
virSkipSpaces;
|
|
|
|
virSkipSpacesAndBackslash;
|
|
|
|
virSkipSpacesBackwards;
|
|
|
|
virStrcpy;
|
2016-05-12 15:43:39 +00:00
|
|
|
virStringBufferIsPrintable;
|
2017-12-18 14:46:53 +00:00
|
|
|
virStringFilterChars;
|
2019-03-06 14:07:26 +00:00
|
|
|
virStringHasCaseSuffix;
|
2017-04-26 14:26:53 +00:00
|
|
|
virStringHasChars;
|
2015-04-14 10:30:16 +00:00
|
|
|
virStringHasControlChars;
|
2019-03-06 16:05:03 +00:00
|
|
|
virStringHasSuffix;
|
2014-10-22 08:26:42 +00:00
|
|
|
virStringIsEmpty;
|
2016-04-11 11:35:25 +00:00
|
|
|
virStringIsPrintable;
|
2016-11-25 14:43:53 +00:00
|
|
|
virStringListAdd;
|
2019-02-26 15:10:17 +00:00
|
|
|
virStringListAutoFree;
|
2016-11-25 08:18:35 +00:00
|
|
|
virStringListFreeCount;
|
|
|
|
virStringListGetFirstWithPrefix;
|
|
|
|
virStringListHasString;
|
|
|
|
virStringListJoin;
|
2013-04-25 16:05:00 +00:00
|
|
|
virStringListLength;
|
2017-11-25 08:29:54 +00:00
|
|
|
virStringListMerge;
|
2016-11-28 13:38:58 +00:00
|
|
|
virStringListRemove;
|
2017-05-11 15:16:13 +00:00
|
|
|
virStringMatch;
|
2019-03-06 14:45:15 +00:00
|
|
|
virStringMatchesNameSuffix;
|
2017-07-13 13:31:50 +00:00
|
|
|
virStringParsePort;
|
2019-03-13 06:30:10 +00:00
|
|
|
virStringParseYesNo;
|
2014-02-19 20:30:46 +00:00
|
|
|
virStringReplace;
|
2014-01-23 09:28:29 +00:00
|
|
|
virStringSearch;
|
2013-11-28 11:14:59 +00:00
|
|
|
virStringSortCompare;
|
|
|
|
virStringSortRevCompare;
|
2012-12-11 22:21:17 +00:00
|
|
|
virStringSplit;
|
2014-05-12 07:46:37 +00:00
|
|
|
virStringSplitCount;
|
2015-04-14 10:30:16 +00:00
|
|
|
virStringStripControlChars;
|
2014-10-07 15:27:40 +00:00
|
|
|
virStringStripIPv6Brackets;
|
2019-03-06 14:30:04 +00:00
|
|
|
virStringStripSuffix;
|
2015-06-15 16:53:58 +00:00
|
|
|
virStringToUpper;
|
2017-05-10 08:16:11 +00:00
|
|
|
virStringTrimOptionalNewline;
|
2013-04-03 10:36:23 +00:00
|
|
|
virStrncpy;
|
|
|
|
virStrToDouble;
|
|
|
|
virStrToLong_i;
|
|
|
|
virStrToLong_l;
|
|
|
|
virStrToLong_ll;
|
|
|
|
virStrToLong_ui;
|
2014-05-01 02:11:09 +00:00
|
|
|
virStrToLong_uip;
|
2013-04-03 10:36:23 +00:00
|
|
|
virStrToLong_ul;
|
|
|
|
virStrToLong_ull;
|
2014-05-01 02:11:09 +00:00
|
|
|
virStrToLong_ullp;
|
|
|
|
virStrToLong_ulp;
|
2013-04-03 10:36:23 +00:00
|
|
|
virTrimSpaces;
|
2012-11-30 15:21:02 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virsysinfo.h
|
2015-05-12 14:47:49 +00:00
|
|
|
virSysinfoBaseBoardDefClear;
|
2015-05-12 10:02:29 +00:00
|
|
|
virSysinfoBIOSDefFree;
|
2018-02-14 09:22:38 +00:00
|
|
|
virSysinfoChassisDefFree;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSysinfoDefFree;
|
|
|
|
virSysinfoFormat;
|
|
|
|
virSysinfoRead;
|
|
|
|
virSysinfoSetup;
|
2015-05-12 12:33:12 +00:00
|
|
|
virSysinfoSystemDefFree;
|
2013-02-16 03:34:42 +00:00
|
|
|
|
|
|
|
|
2017-03-06 14:14:45 +00:00
|
|
|
# util/virsysinfopriv.h
|
|
|
|
virSysinfoReadARM;
|
2019-05-10 12:08:09 +00:00
|
|
|
virSysinfoReadDMI;
|
2017-03-06 14:14:45 +00:00
|
|
|
virSysinfoReadPPC;
|
|
|
|
virSysinfoReadS390;
|
|
|
|
|
|
|
|
|
2013-07-18 09:54:21 +00:00
|
|
|
# util/virsystemd.h
|
2019-06-25 12:03:56 +00:00
|
|
|
virSystemdActivationClaimFDs;
|
|
|
|
virSystemdActivationComplete;
|
|
|
|
virSystemdActivationFree;
|
|
|
|
virSystemdActivationHasName;
|
2014-04-11 07:20:48 +00:00
|
|
|
virSystemdCanHibernate;
|
|
|
|
virSystemdCanHybridSleep;
|
|
|
|
virSystemdCanSuspend;
|
2013-07-18 09:54:21 +00:00
|
|
|
virSystemdCreateMachine;
|
2019-06-25 12:03:56 +00:00
|
|
|
virSystemdGetActivation;
|
2016-02-02 18:45:55 +00:00
|
|
|
virSystemdGetMachineNameByPID;
|
2019-08-13 14:43:27 +00:00
|
|
|
virSystemdHasLogind;
|
2019-08-13 14:34:30 +00:00
|
|
|
virSystemdHasLogindResetCachedValue;
|
2016-06-24 15:41:09 +00:00
|
|
|
virSystemdHasMachinedResetCachedValue;
|
2013-07-26 14:18:55 +00:00
|
|
|
virSystemdMakeScopeName;
|
|
|
|
virSystemdMakeSliceName;
|
2014-02-21 12:06:42 +00:00
|
|
|
virSystemdNotifyStartup;
|
2013-09-30 14:46:29 +00:00
|
|
|
virSystemdTerminateMachine;
|
2013-07-18 09:54:21 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virthread.h
|
|
|
|
virCondBroadcast;
|
|
|
|
virCondDestroy;
|
|
|
|
virCondInit;
|
|
|
|
virCondSignal;
|
|
|
|
virCondWait;
|
|
|
|
virCondWaitUntil;
|
|
|
|
virMutexDestroy;
|
|
|
|
virMutexInit;
|
|
|
|
virMutexInitRecursive;
|
|
|
|
virMutexLock;
|
|
|
|
virMutexUnlock;
|
|
|
|
virOnce;
|
2014-01-22 15:26:21 +00:00
|
|
|
virRWLockDestroy;
|
|
|
|
virRWLockInit;
|
|
|
|
virRWLockRead;
|
|
|
|
virRWLockUnlock;
|
|
|
|
virRWLockWrite;
|
2012-01-23 14:58:13 +00:00
|
|
|
virThreadCancel;
|
2015-03-20 16:43:55 +00:00
|
|
|
virThreadCreateFull;
|
2013-02-16 03:34:42 +00:00
|
|
|
virThreadID;
|
|
|
|
virThreadIsSelf;
|
|
|
|
virThreadJoin;
|
2020-02-14 10:44:01 +00:00
|
|
|
virThreadMaxName;
|
2013-02-16 03:34:42 +00:00
|
|
|
virThreadSelf;
|
|
|
|
virThreadSelfID;
|
|
|
|
|
|
|
|
|
2013-07-08 10:27:34 +00:00
|
|
|
# util/virthreadjob.h
|
|
|
|
virThreadJobClear;
|
|
|
|
virThreadJobGet;
|
|
|
|
virThreadJobSet;
|
|
|
|
virThreadJobSetWorker;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virthreadpool.h
|
2020-07-09 07:58:02 +00:00
|
|
|
virThreadPoolDrain;
|
2013-02-16 03:34:42 +00:00
|
|
|
virThreadPoolFree;
|
2016-02-25 12:14:36 +00:00
|
|
|
virThreadPoolGetCurrentWorkers;
|
|
|
|
virThreadPoolGetFreeWorkers;
|
|
|
|
virThreadPoolGetJobQueueDepth;
|
2013-02-16 03:34:42 +00:00
|
|
|
virThreadPoolGetMaxWorkers;
|
|
|
|
virThreadPoolGetMinWorkers;
|
|
|
|
virThreadPoolGetPriorityWorkers;
|
2015-03-20 16:44:25 +00:00
|
|
|
virThreadPoolNewFull;
|
2013-02-16 03:34:42 +00:00
|
|
|
virThreadPoolSendJob;
|
admin: Introduce virAdmServerSetThreadPoolParameters
Since threadpool increments the current number of threads according to current
load, i.e. how many jobs are waiting in the queue. The count however, is
constrained by max and min limits of workers. The logic of this new API works
like this:
1) setting the minimum
a) When the limit is increased, depending on the current number of
threads, new threads are possibly spawned if the current number of
threads is less than the new minimum limit
b) Decreasing the minimum limit has no possible effect on the current
number of threads
2) setting the maximum
a) Icreasing the maximum limit has no immediate effect on the current
number of threads, it only allows the threadpool to spawn more
threads when new jobs, that would otherwise end up queued, arrive.
b) Decreasing the maximum limit may affect the current number of
threads, if the current number of threads is less than the new
maximum limit. Since there may be some ongoing time-consuming jobs
that would effectively block this API from killing any threads.
Therefore, this API is asynchronous with best-effort execution,
i.e. the necessary number of workers will be terminated once they
finish their previous job, unless other workers had already
terminated, decreasing the limit to the requested value.
3) setting priority workers
- both increase and decrease in count of these workers have an
immediate impact on the current number of workers, new ones will be
spawned or some of them get terminated respectively.
Signed-off-by: Erik Skultety <eskultet@redhat.com>
2016-02-22 13:24:04 +00:00
|
|
|
virThreadPoolSetParameters;
|
2020-07-09 07:58:02 +00:00
|
|
|
virThreadPoolStop;
|
2013-02-16 03:34:42 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virtime.h
|
2016-04-08 11:11:10 +00:00
|
|
|
virTimeBackOffStart;
|
|
|
|
virTimeBackOffWait;
|
2011-11-29 12:11:01 +00:00
|
|
|
virTimeFieldsNow;
|
2011-12-05 14:04:25 +00:00
|
|
|
virTimeFieldsNowRaw;
|
2011-11-29 12:11:01 +00:00
|
|
|
virTimeFieldsThen;
|
util: new function virTimeLocalOffsetFromUTC
Since there isn't a single libc API to get this value, this patch
supplies one which gets the value by grabbing current time, then
converting that into a struct tm with gmtime_r(), then back to a
time_t using mktime.
The returned value is the difference between UTC and localtime in
seconds. If localtime is ahead of UTC (east) the offset will be a
positive number, and if localtime is behind UTC (west) the offset will
be negative.
This function should be POSIX-compliant, and is threadsafe, but not
async signal safe. If it was ever necessary to know this value in a
child process, we could cache it with a one-time init function when
libvirtd starts, then just supply the cached value, but that
complexity isn't needed for current usage; that would also have the
problem that it might not be accurate after a local daylight savings
boundary.
(If it weren't for DST, we could simply replace this entire function
with "-timezone"; timezone contains the offset of the current timezone
(negated from what we want) but doesn't account for DST. And in spite
of being guaranteed by POSIX, it isn't available on older versions of
mingw.)
Signed-off-by: Eric Blake <eblake@redhat.com>
2014-05-24 14:21:26 +00:00
|
|
|
virTimeLocalOffsetFromUTC;
|
2011-12-05 14:04:25 +00:00
|
|
|
virTimeMillisNow;
|
|
|
|
virTimeMillisNowRaw;
|
2011-11-29 12:11:01 +00:00
|
|
|
virTimeStringNow;
|
2011-12-05 14:04:25 +00:00
|
|
|
virTimeStringNowRaw;
|
2011-11-29 12:11:01 +00:00
|
|
|
virTimeStringThen;
|
2011-12-05 14:04:25 +00:00
|
|
|
virTimeStringThenRaw;
|
2011-11-29 12:11:01 +00:00
|
|
|
|
|
|
|
|
2013-04-12 20:55:45 +00:00
|
|
|
# util/virtpm.h
|
|
|
|
virTPMCreateCancelPath;
|
2019-07-25 18:22:02 +00:00
|
|
|
virTPMEmulatorInit;
|
|
|
|
virTPMGetSwtpm;
|
|
|
|
virTPMGetSwtpmIoctl;
|
|
|
|
virTPMGetSwtpmSetup;
|
2019-07-25 18:22:11 +00:00
|
|
|
virTPMSwtpmCapsGet;
|
2019-07-25 18:22:05 +00:00
|
|
|
virTPMSwtpmFeatureTypeFromString;
|
2019-07-25 18:22:11 +00:00
|
|
|
virTPMSwtpmSetupCapsGet;
|
2019-07-25 18:22:05 +00:00
|
|
|
virTPMSwtpmSetupFeatureTypeFromString;
|
2013-04-12 20:55:45 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virtypedparam.h
|
2012-01-02 22:03:19 +00:00
|
|
|
virTypedParameterAssign;
|
2013-06-06 16:54:48 +00:00
|
|
|
virTypedParameterToString;
|
|
|
|
virTypedParameterTypeFromString;
|
|
|
|
virTypedParameterTypeToString;
|
2019-09-19 07:20:49 +00:00
|
|
|
virTypedParamListAddBoolean;
|
|
|
|
virTypedParamListAddDouble;
|
|
|
|
virTypedParamListAddInt;
|
|
|
|
virTypedParamListAddLLong;
|
|
|
|
virTypedParamListAddString;
|
|
|
|
virTypedParamListAddUInt;
|
|
|
|
virTypedParamListAddULLong;
|
|
|
|
virTypedParamListFree;
|
|
|
|
virTypedParamListStealParams;
|
2013-05-06 10:04:06 +00:00
|
|
|
virTypedParamsCheck;
|
2013-06-07 14:34:13 +00:00
|
|
|
virTypedParamsCopy;
|
2016-01-28 16:27:42 +00:00
|
|
|
virTypedParamsDeserialize;
|
2015-06-15 22:42:08 +00:00
|
|
|
virTypedParamsFilter;
|
|
|
|
virTypedParamsGetStringList;
|
2016-02-02 12:19:35 +00:00
|
|
|
virTypedParamsRemoteFree;
|
2013-05-21 13:11:56 +00:00
|
|
|
virTypedParamsReplaceString;
|
2016-02-02 13:13:15 +00:00
|
|
|
virTypedParamsSerialize;
|
2013-05-03 13:34:10 +00:00
|
|
|
virTypedParamsValidate;
|
2012-01-02 22:03:19 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/viruri.h
|
2012-02-24 18:48:55 +00:00
|
|
|
virURIFormat;
|
2012-03-20 13:59:32 +00:00
|
|
|
virURIFormatParams;
|
2012-03-20 11:59:42 +00:00
|
|
|
virURIFree;
|
2019-12-20 14:59:47 +00:00
|
|
|
virURIGetParam;
|
2012-02-24 18:48:55 +00:00
|
|
|
virURIParse;
|
2015-11-06 09:44:53 +00:00
|
|
|
virURIResolveAlias;
|
2012-02-24 18:48:55 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virusb.h
|
|
|
|
virUSBDeviceFileIterate;
|
|
|
|
virUSBDeviceFind;
|
|
|
|
virUSBDeviceFindByBus;
|
|
|
|
virUSBDeviceFindByVendor;
|
|
|
|
virUSBDeviceFree;
|
|
|
|
virUSBDeviceGetBus;
|
|
|
|
virUSBDeviceGetDevno;
|
|
|
|
virUSBDeviceGetName;
|
2016-11-16 14:26:59 +00:00
|
|
|
virUSBDeviceGetPath;
|
2013-02-16 03:34:42 +00:00
|
|
|
virUSBDeviceGetUsedBy;
|
|
|
|
virUSBDeviceListAdd;
|
|
|
|
virUSBDeviceListCount;
|
|
|
|
virUSBDeviceListDel;
|
|
|
|
virUSBDeviceListFind;
|
|
|
|
virUSBDeviceListGet;
|
|
|
|
virUSBDeviceListNew;
|
|
|
|
virUSBDeviceListSteal;
|
|
|
|
virUSBDeviceNew;
|
|
|
|
virUSBDeviceSetUsedBy;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virutil.h
|
2018-09-12 14:24:30 +00:00
|
|
|
virDoesGroupExist;
|
|
|
|
virDoesUserExist;
|
2013-02-16 03:34:42 +00:00
|
|
|
virDoubleToStr;
|
|
|
|
virFormatIntDecimal;
|
2017-11-09 15:19:25 +00:00
|
|
|
virFormatIntPretty;
|
2013-02-16 03:34:42 +00:00
|
|
|
virGetDeviceID;
|
|
|
|
virGetDeviceUnprivSGIO;
|
|
|
|
virGetGroupID;
|
2013-05-21 23:47:48 +00:00
|
|
|
virGetGroupList;
|
2013-02-16 03:34:42 +00:00
|
|
|
virGetGroupName;
|
|
|
|
virGetHostname;
|
2015-12-04 17:35:54 +00:00
|
|
|
virGetHostnameQuiet;
|
2020-01-14 10:40:52 +00:00
|
|
|
virGetPassword;
|
2014-03-05 17:20:50 +00:00
|
|
|
virGetSelfLastChanged;
|
2015-02-02 10:26:49 +00:00
|
|
|
virGetSystemPageSize;
|
|
|
|
virGetSystemPageSizeKB;
|
2013-02-16 03:34:42 +00:00
|
|
|
virGetUnprivSGIOSysfsPath;
|
|
|
|
virGetUserCacheDirectory;
|
|
|
|
virGetUserConfigDirectory;
|
|
|
|
virGetUserDirectory;
|
2013-07-30 19:55:44 +00:00
|
|
|
virGetUserDirectoryByUID;
|
2013-02-16 03:34:42 +00:00
|
|
|
virGetUserID;
|
|
|
|
virGetUserName;
|
|
|
|
virGetUserRuntimeDirectory;
|
2016-04-12 17:11:20 +00:00
|
|
|
virGetUserShell;
|
2018-11-08 10:47:09 +00:00
|
|
|
virHostGetDRMRenderNode;
|
2018-06-01 08:15:58 +00:00
|
|
|
virHostHasIOMMU;
|
2013-02-16 03:34:42 +00:00
|
|
|
virIndexToDiskName;
|
2020-06-15 08:28:06 +00:00
|
|
|
virKernelCmdlineMatchParam;
|
|
|
|
virKernelCmdlineNextParam;
|
2015-03-04 14:08:09 +00:00
|
|
|
virMemoryLimitIsSet;
|
|
|
|
virMemoryLimitTruncate;
|
2015-05-05 15:58:49 +00:00
|
|
|
virMemoryMaxValue;
|
2013-05-24 15:35:01 +00:00
|
|
|
virParseOwnershipIds;
|
2013-02-16 03:34:42 +00:00
|
|
|
virParseVersionString;
|
2020-01-24 15:21:00 +00:00
|
|
|
virPipe;
|
|
|
|
virPipeNonBlock;
|
|
|
|
virPipeQuiet;
|
2013-02-16 03:34:42 +00:00
|
|
|
virScaleInteger;
|
|
|
|
virSetBlocking;
|
|
|
|
virSetCloseExec;
|
|
|
|
virSetDeviceUnprivSGIO;
|
|
|
|
virSetInherit;
|
|
|
|
virSetNonBlock;
|
2014-04-25 16:47:08 +00:00
|
|
|
virSetSockReuseAddr;
|
2013-02-16 03:34:42 +00:00
|
|
|
virSetUIDGID;
|
|
|
|
virSetUIDGIDWithCaps;
|
2014-03-05 17:20:50 +00:00
|
|
|
virUpdateSelfLastChanged;
|
2013-02-16 03:34:42 +00:00
|
|
|
virValidateWWN;
|
2017-02-20 12:00:51 +00:00
|
|
|
virWaitForDevices;
|
2013-02-16 03:34:42 +00:00
|
|
|
|
|
|
|
|
|
|
|
# util/viruuid.h
|
|
|
|
virGetHostUUID;
|
|
|
|
virSetHostUUIDStr;
|
|
|
|
virUUIDFormat;
|
|
|
|
virUUIDGenerate;
|
|
|
|
virUUIDIsValid;
|
|
|
|
virUUIDParse;
|
|
|
|
|
|
|
|
|
2017-01-23 17:54:42 +00:00
|
|
|
# util/virvhba.h
|
|
|
|
virVHBAFindVportHost;
|
|
|
|
virVHBAGetConfig;
|
|
|
|
virVHBAGetHostByFabricWWN;
|
|
|
|
virVHBAGetHostByWWN;
|
|
|
|
virVHBAIsVportCapable;
|
|
|
|
virVHBAManageVport;
|
|
|
|
virVHBAPathExists;
|
|
|
|
|
|
|
|
|
2018-05-22 13:52:52 +00:00
|
|
|
# util/virvsock.h
|
|
|
|
virVsockAcquireGuestCid;
|
|
|
|
virVsockSetGuestCid;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virxml.h
|
2020-05-28 10:38:43 +00:00
|
|
|
virParseScaledValue;
|
2016-10-19 20:57:46 +00:00
|
|
|
virXMLCheckIllegalChars;
|
2011-12-07 22:06:18 +00:00
|
|
|
virXMLChildElementCount;
|
2013-09-06 15:34:43 +00:00
|
|
|
virXMLExtractNamespaceXML;
|
2017-08-24 13:08:23 +00:00
|
|
|
virXMLFormatElement;
|
2017-08-16 08:26:09 +00:00
|
|
|
virXMLNodeContentString;
|
2017-08-14 12:31:52 +00:00
|
|
|
virXMLNodeNameEqual;
|
2016-06-24 15:19:35 +00:00
|
|
|
virXMLNodeSanitizeNamespaces;
|
2013-09-04 14:49:40 +00:00
|
|
|
virXMLNodeToString;
|
2011-05-26 21:30:21 +00:00
|
|
|
virXMLParseHelper;
|
2012-10-29 12:15:55 +00:00
|
|
|
virXMLPickShellSafeComment;
|
2010-10-20 17:10:45 +00:00
|
|
|
virXMLPropString;
|
2017-08-15 13:20:55 +00:00
|
|
|
virXMLPropStringLimit;
|
2011-10-06 09:57:06 +00:00
|
|
|
virXMLSaveFile;
|
2014-11-18 14:50:05 +00:00
|
|
|
virXMLValidateAgainstSchema;
|
2016-06-07 16:57:29 +00:00
|
|
|
virXMLValidatorFree;
|
2016-06-07 16:56:23 +00:00
|
|
|
virXMLValidatorInit;
|
2016-06-07 16:58:02 +00:00
|
|
|
virXMLValidatorValidate;
|
2019-09-09 06:33:58 +00:00
|
|
|
virXMLXPathContextNew;
|
2009-11-26 17:57:00 +00:00
|
|
|
virXPathBoolean;
|
2019-02-26 16:34:57 +00:00
|
|
|
virXPathContextNodeRestore;
|
2011-01-13 22:09:18 +00:00
|
|
|
virXPathInt;
|
2009-01-05 14:05:29 +00:00
|
|
|
virXPathLong;
|
2010-10-20 17:10:45 +00:00
|
|
|
virXPathLongHex;
|
|
|
|
virXPathLongLong;
|
2009-01-05 14:05:29 +00:00
|
|
|
virXPathNode;
|
|
|
|
virXPathNodeSet;
|
2010-10-20 17:10:45 +00:00
|
|
|
virXPathNumber;
|
2009-01-05 14:05:29 +00:00
|
|
|
virXPathString;
|
2009-03-03 09:44:41 +00:00
|
|
|
virXPathStringLimit;
|
2011-01-13 22:09:18 +00:00
|
|
|
virXPathUInt;
|
2009-12-04 18:24:25 +00:00
|
|
|
virXPathULong;
|
|
|
|
virXPathULongHex;
|
2010-10-20 17:10:45 +00:00
|
|
|
virXPathULongLong;
|
2013-01-24 01:20:01 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
|
2013-01-24 01:20:01 +00:00
|
|
|
# Let emacs know we want case-insensitive sorting
|
|
|
|
# Local Variables:
|
|
|
|
# sort-fold-case: t
|
|
|
|
# End:
|