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
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/capabilities.h
|
2009-01-05 14:05:29 +00:00
|
|
|
virCapabilitiesAddGuest;
|
|
|
|
virCapabilitiesAddGuestDomain;
|
|
|
|
virCapabilitiesAddGuestFeature;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCapabilitiesAddHostFeature;
|
2009-01-05 14:05:29 +00:00
|
|
|
virCapabilitiesAddHostMigrateTransport;
|
|
|
|
virCapabilitiesAddHostNUMACell;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCapabilitiesAllocMachines;
|
2013-01-22 17:42:08 +00:00
|
|
|
virCapabilitiesClearHostNUMACellCPUTopology;
|
2009-01-05 14:05:29 +00:00
|
|
|
virCapabilitiesDefaultGuestArch;
|
|
|
|
virCapabilitiesDefaultGuestEmulator;
|
|
|
|
virCapabilitiesDefaultGuestMachine;
|
|
|
|
virCapabilitiesFormatXML;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCapabilitiesFreeMachines;
|
2009-06-29 10:41:56 +00:00
|
|
|
virCapabilitiesFreeNUMAInfo;
|
2009-03-02 20:19:13 +00:00
|
|
|
virCapabilitiesGenerateMac;
|
2009-06-16 15:27:33 +00:00
|
|
|
virCapabilitiesIsEmulatorRequired;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCapabilitiesNew;
|
|
|
|
virCapabilitiesSetEmulatorRequired;
|
2009-12-18 13:44:55 +00:00
|
|
|
virCapabilitiesSetHostCPU;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCapabilitiesSetMacPrefix;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/cpu_conf.h
|
2009-12-18 13:44:55 +00:00
|
|
|
virCPUDefAddFeature;
|
2010-03-23 08:34:04 +00:00
|
|
|
virCPUDefCopy;
|
2011-12-19 14:41:16 +00:00
|
|
|
virCPUDefCopyModel;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCPUDefFormat;
|
|
|
|
virCPUDefFormatBuf;
|
|
|
|
virCPUDefFree;
|
2011-12-19 14:41:16 +00:00
|
|
|
virCPUDefFreeModel;
|
2010-10-20 17:10:45 +00:00
|
|
|
virCPUDefParseXML;
|
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
|
2012-08-16 15:41:06 +00:00
|
|
|
virDeviceAddressPciMultiTypeFromString;
|
|
|
|
virDeviceAddressPciMultiTypeToString;
|
2012-08-16 15:42:14 +00:00
|
|
|
virDevicePCIAddressEqual;
|
2012-08-16 15:41:06 +00:00
|
|
|
virDevicePCIAddressFormat;
|
|
|
|
virDevicePCIAddressIsValid;
|
|
|
|
virDevicePCIAddressParseXML;
|
|
|
|
|
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;
|
|
|
|
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;
|
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;
|
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;
|
|
|
|
virDomainAuditStart;
|
|
|
|
virDomainAuditStop;
|
|
|
|
virDomainAuditVcpu;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/domain_conf.h
|
2011-11-08 11:00:33 +00:00
|
|
|
virBlkioDeviceWeightArrayClear;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDiskNameToBusDeviceIndex;
|
|
|
|
virDiskNameToIndex;
|
2011-06-26 08:09:00 +00:00
|
|
|
virDomainActualNetDefFree;
|
2011-09-15 13:07:51 +00:00
|
|
|
virDomainBlockedReasonTypeFromString;
|
|
|
|
virDomainBlockedReasonTypeToString;
|
2012-09-18 09:38:18 +00:00
|
|
|
virDomainBootMenuTypeFromString;
|
|
|
|
virDomainBootMenuTypeToString;
|
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;
|
2013-01-05 05:25:36 +00:00
|
|
|
virDomainChrSerialTargetTypeFromString;
|
|
|
|
virDomainChrSerialTargetTypeToString;
|
2011-11-15 08:01:31 +00:00
|
|
|
virDomainChrSourceDefCopy;
|
domain_conf: split source data out from ChrDef
This opens up the possibility of reusing the smaller ChrSourceDef
for both qemu monitor and a passthrough smartcard device.
* src/conf/domain_conf.h (_virDomainChrDef): Factor host
details...
(_virDomainChrSourceDef): ...into new struct.
(virDomainChrSourceDefFree): New prototype.
* src/conf/domain_conf.c (virDomainChrDefFree)
(virDomainChrDefParseXML, virDomainChrDefFormat): Split...
(virDomainChrSourceDefClear, virDomainChrSourceDefFree)
(virDomainChrSourceDefParseXML, virDomainChrSourceDefFormat):
...into new functions.
(virDomainChrDefParseTargetXML): Update clients to reflect type
split.
* src/vmx/vmx.c (virVMXParseSerial, virVMXParseParallel)
(virVMXFormatSerial, virVMXFormatParallel): Likewise.
* src/xen/xen_driver.c (xenUnifiedDomainOpenConsole): Likewise.
* src/xen/xend_internal.c (xenDaemonParseSxprChar)
(xenDaemonFormatSxprChr): Likewise.
* src/vbox/vbox_tmpl.c (vboxDomainDumpXML, vboxAttachSerial)
(vboxAttachParallel): Likewise.
* src/security/security_dac.c (virSecurityDACSetChardevLabel)
(virSecurityDACSetChardevCallback)
(virSecurityDACRestoreChardevLabel)
(virSecurityDACRestoreChardevCallback): Likewise.
* src/security/security_selinux.c (SELinuxSetSecurityChardevLabel)
(SELinuxSetSecurityChardevCallback)
(SELinuxRestoreSecurityChardevLabel)
(SELinuxSetSecurityChardevCallback): Likewise.
* src/security/virt-aa-helper.c (get_files): Likewise.
* src/lxc/lxc_driver.c (lxcVmStart, lxcDomainOpenConsole):
Likewise.
* src/uml/uml_conf.c (umlBuildCommandLineChr): Likewise.
* src/uml/uml_driver.c (umlIdentifyOneChrPTY, umlIdentifyChrPTY)
(umlDomainOpenConsole): Likewise.
* src/qemu/qemu_command.c (qemuBuildChrChardevStr)
(qemuBuildChrArgStr, qemuBuildCommandLine)
(qemuParseCommandLineChr): Likewise.
* src/qemu/qemu_domain.c (qemuDomainObjPrivateXMLFormat)
(qemuDomainObjPrivateXMLParse): Likewise.
* src/qemu/qemu_cgroup.c (qemuSetupChardevCgroup): Likewise.
* src/qemu/qemu_hotplug.c (qemuDomainAttachNetDevice): Likewise.
* src/qemu/qemu_driver.c (qemudFindCharDevicePTYsMonitor)
(qemudFindCharDevicePTYs, qemuPrepareChardevDevice)
(qemuPrepareMonitorChr, qemudShutdownVMDaemon)
(qemuDomainOpenConsole): Likewise.
* src/qemu/qemu_command.h (qemuBuildChrChardevStr)
(qemuBuildChrArgStr): Delete, now that they are static.
* src/libvirt_private.syms (domain_conf.h): New exports.
* cfg.mk (useless_free_options): Update list.
* tests/qemuxml2argvtest.c (testCompareXMLToArgvFiles): Update
tests.
2011-01-07 22:45:01 +00:00
|
|
|
virDomainChrSourceDefFree;
|
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;
|
|
|
|
virDomainControllerDefFree;
|
2012-07-23 08:18:57 +00:00
|
|
|
virDomainControllerFind;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainControllerInsert;
|
|
|
|
virDomainControllerInsertPreAlloced;
|
2011-09-02 13:06:15 +00:00
|
|
|
virDomainControllerModelSCSITypeFromString;
|
|
|
|
virDomainControllerModelSCSITypeToString;
|
2012-01-02 21:35:12 +00:00
|
|
|
virDomainControllerModelUSBTypeFromString;
|
|
|
|
virDomainControllerModelUSBTypeToString;
|
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;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDefAddImplicitControllers;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainDefAddSecurityLabelDef;
|
2011-05-27 09:47:30 +00:00
|
|
|
virDomainDefCheckABIStability;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDefClearDeviceAliases;
|
|
|
|
virDomainDefClearPCIAddresses;
|
2012-07-03 13:30:25 +00:00
|
|
|
virDomainDefCompatibleDevice;
|
2012-11-15 20:40:25 +00:00
|
|
|
virDomainDefCopy;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDefFormat;
|
2011-09-17 12:57:30 +00:00
|
|
|
virDomainDefFormatInternal;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDefFree;
|
2012-08-15 22:10:36 +00:00
|
|
|
virDomainDefGetSecurityLabelDef;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDefParseFile;
|
|
|
|
virDomainDefParseNode;
|
|
|
|
virDomainDefParseString;
|
|
|
|
virDomainDeleteConfig;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDeviceAddressIsValid;
|
|
|
|
virDomainDeviceAddressTypeToString;
|
2012-03-01 18:47:34 +00:00
|
|
|
virDomainDeviceDefCopy;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDeviceDefFree;
|
|
|
|
virDomainDeviceDefParse;
|
2012-10-11 05:09:00 +00:00
|
|
|
virDomainDeviceInfoCopy;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDeviceInfoIterate;
|
2009-03-02 17:39:43 +00:00
|
|
|
virDomainDeviceTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDiskBusTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDiskCacheTypeFromString;
|
|
|
|
virDomainDiskCacheTypeToString;
|
2012-01-12 09:31:14 +00:00
|
|
|
virDomainDiskCopyOnReadTypeFromString;
|
|
|
|
virDomainDiskCopyOnReadTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDiskDefAssignAddress;
|
|
|
|
virDomainDiskDefForeachPath;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDiskDefFree;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainDiskDefGetSecurityLabelDef;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainDiskDeviceTypeToString;
|
2010-04-21 14:28:21 +00:00
|
|
|
virDomainDiskErrorPolicyTypeFromString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDiskErrorPolicyTypeToString;
|
2013-02-19 12:27:45 +00:00
|
|
|
virDomainDiskFindByBusAndDst;
|
2012-02-27 09:20:11 +00:00
|
|
|
virDomainDiskFindControllerModel;
|
2012-08-20 13:58:50 +00:00
|
|
|
virDomainDiskGeometryTransTypeFromString;
|
|
|
|
virDomainDiskGeometryTransTypeToString;
|
2012-11-22 18:10:39 +00:00
|
|
|
virDomainDiskHostDefFree;
|
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;
|
snapshot: also support disks by path
I got confused when 'virsh domblkinfo dom disk' required the
path to a disk (which can be ambiguous, since a single file
can back multiple disks), rather than the unambiguous target
device name that I was using in disk snapshots. So, in true
developer fashion, I went for the best of both worlds - all
interfaces that operate on a disk (aka block) now accept
either the target name or the unambiguous path to the backing
file used by the disk.
* src/conf/domain_conf.h (virDomainDiskIndexByName): Add
parameter.
(virDomainDiskPathByName): New prototype.
* src/libvirt_private.syms (domain_conf.h): Export it.
* src/conf/domain_conf.c (virDomainDiskIndexByName): Also allow
searching by path, and decide whether ambiguity is okay.
(virDomainDiskPathByName): New function.
(virDomainDiskRemoveByName, virDomainSnapshotAlignDisks): Update
callers.
* src/qemu/qemu_driver.c (qemudDomainBlockPeek)
(qemuDomainAttachDeviceConfig, qemuDomainUpdateDeviceConfig)
(qemuDomainGetBlockInfo, qemuDiskPathToAlias): Likewise.
* src/qemu/qemu_process.c (qemuProcessFindDomainDiskByPath):
Likewise.
* src/libxl/libxl_driver.c (libxlDomainAttachDeviceDiskLive)
(libxlDomainDetachDeviceDiskLive, libxlDomainAttachDeviceConfig)
(libxlDomainUpdateDeviceConfig): Likewise.
* src/uml/uml_driver.c (umlDomainBlockPeek): Likewise.
* src/xen/xend_internal.c (xenDaemonDomainBlockPeek): Likewise.
* docs/formatsnapshot.html.in: Update documentation.
* tools/virsh.pod (domblkstat, domblkinfo): Likewise.
* docs/schemas/domaincommon.rng (diskTarget): Tighten pattern on
disk targets.
* docs/schemas/domainsnapshot.rng (disksnapshot): Update to match.
* tests/domainsnapshotxml2xmlin/disk_snapshot.xml: Update test.
2011-08-20 02:38:36 +00:00
|
|
|
virDomainDiskPathByName;
|
2012-11-22 18:10:38 +00:00
|
|
|
virDomainDiskProtocolTransportTypeFromString;
|
|
|
|
virDomainDiskProtocolTransportTypeToString;
|
2010-08-23 09:31:26 +00:00
|
|
|
virDomainDiskRemove;
|
2011-04-22 03:09:32 +00:00
|
|
|
virDomainDiskRemoveByName;
|
2010-10-12 11:23:18 +00:00
|
|
|
virDomainDiskTypeFromString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainDiskTypeToString;
|
2012-08-21 09:18:36 +00:00
|
|
|
virDomainEmulatorPinAdd;
|
|
|
|
virDomainEmulatorPinDel;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainFeatureStateTypeFromString;
|
|
|
|
virDomainFeatureStateTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainFSDefFree;
|
2012-05-29 18:46:38 +00:00
|
|
|
virDomainFSIndexByName;
|
2011-07-22 11:11:12 +00:00
|
|
|
virDomainFSTypeFromString;
|
|
|
|
virDomainFSTypeToString;
|
2012-01-17 12:44:18 +00:00
|
|
|
virDomainFSWrpolicyTypeFromString;
|
|
|
|
virDomainFSWrpolicyTypeToString;
|
2009-04-22 14:26:50 +00:00
|
|
|
virDomainGetRootFilesystem;
|
2011-05-26 14:15:54 +00:00
|
|
|
virDomainGraphicsAuthConnectedTypeFromString;
|
|
|
|
virDomainGraphicsAuthConnectedTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainGraphicsDefFree;
|
conf: add <listen> subelement to domain <graphics> element
Once it's plugged in, the <listen> element will be an optional
replacement for the "listen" attribute that graphics elements already
have. If the <listen> element is type='address', it will have an
attribute called 'address' which will contain an IP address or dns
name that the guest's display server should listen on. If, however,
type='network', the <listen> element should have an attribute called
'network' that will be set to the name of a network configuration to
get the IP address from.
* docs/schemas/domain.rng: updated to allow the <listen> element
* docs/formatdomain.html.in: document the <listen> element and its
attributes.
* src/conf/domain_conf.[hc]:
1) The domain parser, formatter, and data structure are modified to
support 0 or more <listen> subelements to each <graphics>
element. The old style "legacy" listen attribute is also still
accepted, and will be stored internally just as if it were a
separate <listen> element. On output (i.e. format), the address
attribute of the first <listen> element of type 'address' will be
duplicated in the legacy "listen" attribute of the <graphic>
element.
2) The "listenAddr" attribute has been removed from the unions in
virDomainGRaphicsDef for graphics types vnc, rdp, and spice.
This attribute is now in the <listen> subelement (aka
virDomainGraphicsListenDef)
3) Helper functions were written to provide simple access
(both Get and Set) to the listen elements and their attributes.
* src/libvirt_private.syms: export the listen helper functions
* src/qemu/qemu_command.c, src/qemu/qemu_hotplug.c,
src/qemu/qemu_migration.c, src/vbox/vbox_tmpl.c,
src/vmx/vmx.c, src/xenxs/xen_sxpr.c, src/xenxs/xen_xm.c
Modify all these files to use the listen helper functions rather
than directly referencing the (now missing) listenAddr
attribute. There can be multiple <listen> elements to a single
<graphics>, but the drivers all currently only support one, so all
replacements of direct access with a helper function indicate index
"0".
* tests/* - only 3 of these are new files added explicitly to test the
new <listen> element. All the others have been modified to reflect
the fact that any legacy "listen" attributes passed in to the domain
parse will be saved in a <listen> element (i.e. one of the
virDomainGraphicsListenDefs), and during the domain format function,
both the <listen> element as well as the legacy attributes will be
output.
2011-07-07 04:20:28 +00:00
|
|
|
virDomainGraphicsListenGetAddress;
|
|
|
|
virDomainGraphicsListenGetNetwork;
|
|
|
|
virDomainGraphicsListenGetType;
|
|
|
|
virDomainGraphicsListenSetAddress;
|
|
|
|
virDomainGraphicsListenSetNetwork;
|
|
|
|
virDomainGraphicsListenSetType;
|
2010-04-09 16:56:00 +00:00
|
|
|
virDomainGraphicsSpiceChannelModeTypeFromString;
|
|
|
|
virDomainGraphicsSpiceChannelModeTypeToString;
|
|
|
|
virDomainGraphicsSpiceChannelNameTypeFromString;
|
|
|
|
virDomainGraphicsSpiceChannelNameTypeToString;
|
2011-06-15 17:23:51 +00:00
|
|
|
virDomainGraphicsSpiceClipboardCopypasteTypeFromString;
|
|
|
|
virDomainGraphicsSpiceClipboardCopypasteTypeToString;
|
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-04-14 08:44:20 +00:00
|
|
|
virDomainGraphicsSpicePlaybackCompressionTypeFromString;
|
|
|
|
virDomainGraphicsSpicePlaybackCompressionTypeToString;
|
2011-05-23 15:16:42 +00:00
|
|
|
virDomainGraphicsSpiceStreamingModeTypeFromString;
|
|
|
|
virDomainGraphicsSpiceStreamingModeTypeToString;
|
2011-04-14 08:44:20 +00:00
|
|
|
virDomainGraphicsSpiceZlibCompressionTypeFromString;
|
|
|
|
virDomainGraphicsSpiceZlibCompressionTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainGraphicsTypeFromString;
|
2010-03-22 18:44:58 +00:00
|
|
|
virDomainGraphicsTypeToString;
|
blockjob: react to active block copy
For now, disk migration via block copy job is not implemented in
libvirt. But when we do implement it, we have to deal with the
fact that qemu does not yet provide an easy way to re-start a qemu
process with mirroring still intact. Paolo has proposed an idea
for a persistent dirty bitmap that might make this possible, but
until that design is complete, it's hard to say what changes
libvirt would need. Even something like 'virDomainSave' becomes
hairy, if you realize the implications that 'virDomainRestore'
would be stuck with recreating the same mirror layout.
But if we step back and look at the bigger picture, we realize that
the initial client of live storage migration via disk mirroring is
oVirt, which always uses transient domains, and that if a transient
domain is destroyed while a mirror exists, oVirt can easily restart
the storage migration by creating a new domain that visits just the
source storage, with no loss in data.
We can make life a lot easier by being cowards for now, forbidding
certain operations on a domain. This patch guarantees that we
never get in a state where we would have to restart a domain with
a mirroring block copy, by preventing saves, snapshots, migration,
hot unplug of a disk in use, and conversion to a persistent domain
(thankfully, it is still relatively easy to 'virsh undefine' a
running domain to temporarily make it transient, run tests on
'virsh blockcopy', then 'virsh define' to restore the persistence).
Later, if the qemu design is enhanced, we can relax our code.
The change to qemudDomainDefine looks a bit odd for undoing an
assignment, rather than probing up front to avoid the assignment,
but this is because of how virDomainAssignDef combines both a
lookup and assignment into a single function call.
* src/conf/domain_conf.h (virDomainHasDiskMirror): New prototype.
* src/conf/domain_conf.c (virDomainHasDiskMirror): New function.
* src/libvirt_private.syms (domain_conf.h): Export it.
* src/qemu/qemu_driver.c (qemuDomainSaveInternal)
(qemuDomainSnapshotCreateXML, qemuDomainRevertToSnapshot)
(qemuDomainBlockJobImpl, qemudDomainDefine): Prevent dangerous
actions while block copy is already in action.
* src/qemu/qemu_hotplug.c (qemuDomainDetachDiskDevice): Likewise.
* src/qemu/qemu_migration.c (qemuMigrationIsAllowed): Likewise.
2012-04-10 02:39:47 +00:00
|
|
|
virDomainHasDiskMirror;
|
2012-11-23 13:50:29 +00:00
|
|
|
virDomainHostdevCapsTypeToString;
|
2012-01-31 09:16:54 +00:00
|
|
|
virDomainHostdevDefAlloc;
|
|
|
|
virDomainHostdevDefClear;
|
2009-04-24 12:19:00 +00:00
|
|
|
virDomainHostdevDefFree;
|
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;
|
2009-08-14 07:31:10 +00:00
|
|
|
virDomainHostdevSubsysTypeToString;
|
2011-09-02 14:20:40 +00:00
|
|
|
virDomainHubTypeFromString;
|
|
|
|
virDomainHubTypeToString;
|
2012-10-16 16:25:56 +00:00
|
|
|
virDomainHypervTypeFromString;
|
|
|
|
virDomainHypervTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainInputDefFree;
|
2011-06-20 08:26:47 +00:00
|
|
|
virDomainIoEventFdTypeFromString;
|
|
|
|
virDomainIoEventFdTypeToString;
|
2012-03-07 02:06:30 +00:00
|
|
|
virDomainLeaseDefFree;
|
2011-05-18 16:20:53 +00:00
|
|
|
virDomainLeaseIndex;
|
|
|
|
virDomainLeaseInsert;
|
|
|
|
virDomainLeaseInsertPreAlloc;
|
|
|
|
virDomainLeaseInsertPreAlloced;
|
|
|
|
virDomainLeaseRemove;
|
|
|
|
virDomainLeaseRemoveAt;
|
2010-10-12 11:23:18 +00:00
|
|
|
virDomainLifecycleCrashTypeFromString;
|
|
|
|
virDomainLifecycleCrashTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainLifecycleTypeFromString;
|
|
|
|
virDomainLifecycleTypeToString;
|
2011-12-12 05:16:49 +00:00
|
|
|
virDomainLiveConfigHelperMethod;
|
2012-09-06 20:17:01 +00:00
|
|
|
virDomainLockFailureTypeFromString;
|
|
|
|
virDomainLockFailureTypeToString;
|
2012-10-12 09:50:47 +00:00
|
|
|
virDomainLookupVcpuPin;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainMemballoonModelTypeFromString;
|
|
|
|
virDomainMemballoonModelTypeToString;
|
2012-08-15 07:51:58 +00:00
|
|
|
virDomainMemDumpTypeFromString;
|
|
|
|
virDomainMemDumpTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainNetDefFree;
|
2012-01-02 21:35:12 +00:00
|
|
|
virDomainNetFind;
|
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;
|
2011-07-26 12:42:37 +00:00
|
|
|
virDomainNetGetActualBandwidth;
|
2011-06-26 08:09:00 +00:00
|
|
|
virDomainNetGetActualBridgeName;
|
|
|
|
virDomainNetGetActualDirectDev;
|
|
|
|
virDomainNetGetActualDirectMode;
|
2012-02-15 17:37:15 +00:00
|
|
|
virDomainNetGetActualHostdev;
|
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;
|
2011-05-27 07:01:47 +00:00
|
|
|
virDomainNetInsert;
|
2012-02-27 17:13:41 +00:00
|
|
|
virDomainNetRemove;
|
2009-07-17 21:08:34 +00:00
|
|
|
virDomainNetTypeToString;
|
2011-09-15 13:07:51 +00:00
|
|
|
virDomainNostateReasonTypeFromString;
|
|
|
|
virDomainNostateReasonTypeToString;
|
2011-06-20 07:15:44 +00:00
|
|
|
virDomainNumatuneMemModeTypeFromString;
|
|
|
|
virDomainNumatuneMemModeTypeToString;
|
numad: Set memory policy from numad advisory nodeset
Though numad will manage the memory allocation of task dynamically,
it wants management application (libvirt) to pre-set the memory
policy according to the advisory nodeset returned from querying numad,
(just like pre-bind CPU nodeset for domain process), and thus the
performance could benefit much more from it.
This patch introduces new XML tag 'placement', value 'auto' indicates
whether to set the memory policy with the advisory nodeset from numad,
and its value defaults to the value of <vcpu> placement, or 'static'
if 'nodeset' is specified. Example of the new XML tag's usage:
<numatune>
<memory placement='auto' mode='interleave'/>
</numatune>
Just like what current "numatune" does, the 'auto' numa memory policy
setting uses libnuma's API too.
If <vcpu> "placement" is "auto", and <numatune> is not specified
explicitly, a default <numatume> will be added with "placement"
set as "auto", and "mode" set as "strict".
The following XML can now fully drive numad:
1) <vcpu> placement is 'auto', no <numatune> is specified.
<vcpu placement='auto'>10</vcpu>
2) <vcpu> placement is 'auto', no 'placement' is specified for
<numatune>.
<vcpu placement='auto'>10</vcpu>
<numatune>
<memory mode='interleave'/>
</numatune>
And it's also able to control the CPU placement and memory policy
independently. e.g.
1) <vcpu> placement is 'auto', and <numatune> placement is 'static'
<vcpu placement='auto'>10</vcpu>
<numatune>
<memory mode='strict' nodeset='0-10,^7'/>
</numatune>
2) <vcpu> placement is 'static', and <numatune> placement is 'auto'
<vcpu placement='static' cpuset='0-24,^12'>10</vcpu>
<numatune>
<memory mode='interleave' placement='auto'/>
</numatume>
A follow up patch will change the XML formatting codes to always output
'placement' for <vcpu>, even it's 'static'.
2012-05-08 16:04:34 +00:00
|
|
|
virDomainNumatuneMemPlacementModeTypeFromString;
|
|
|
|
virDomainNumatuneMemPlacementModeTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainObjAssignDef;
|
2011-04-22 03:07:56 +00:00
|
|
|
virDomainObjCopyPersistentDef;
|
2010-11-19 19:51:46 +00:00
|
|
|
virDomainObjGetPersistentDef;
|
2011-05-04 09:07:01 +00:00
|
|
|
virDomainObjGetState;
|
2013-01-11 16:04:47 +00:00
|
|
|
virDomainObjListAdd;
|
|
|
|
virDomainObjListExport;
|
|
|
|
virDomainObjListFindByID;
|
|
|
|
virDomainObjListFindByName;
|
|
|
|
virDomainObjListFindByUUID;
|
2013-01-11 13:54:15 +00:00
|
|
|
virDomainObjListForEach;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainObjListGetActiveIDs;
|
|
|
|
virDomainObjListGetInactiveNames;
|
2013-01-11 16:04:47 +00:00
|
|
|
virDomainObjListLoadAllConfigs;
|
|
|
|
virDomainObjListNew;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainObjListNumOfDomains;
|
2013-01-11 16:04:47 +00:00
|
|
|
virDomainObjListRemove;
|
2012-07-11 13:35:46 +00:00
|
|
|
virDomainObjNew;
|
2011-04-22 03:07:56 +00:00
|
|
|
virDomainObjSetDefTransient;
|
2011-05-04 09:07:01 +00:00
|
|
|
virDomainObjSetState;
|
2011-05-04 10:40:59 +00:00
|
|
|
virDomainObjTaint;
|
2011-09-15 13:07:51 +00:00
|
|
|
virDomainPausedReasonTypeFromString;
|
|
|
|
virDomainPausedReasonTypeToString;
|
2011-09-20 17:31:52 +00:00
|
|
|
virDomainPciRombarModeTypeFromString;
|
|
|
|
virDomainPciRombarModeTypeToString;
|
2012-08-02 10:12:50 +00:00
|
|
|
virDomainPMStateTypeFromString;
|
|
|
|
virDomainPMStateTypeToString;
|
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;
|
2011-09-02 15:09:14 +00:00
|
|
|
virDomainRedirdevBusTypeFromString;
|
|
|
|
virDomainRedirdevBusTypeToString;
|
2013-01-11 16:34:37 +00:00
|
|
|
virDomainRNGBackendTypeToString;
|
|
|
|
virDomainRNGModelTypeToString;
|
2011-09-15 13:07:51 +00:00
|
|
|
virDomainRunningReasonTypeFromString;
|
|
|
|
virDomainRunningReasonTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainSaveConfig;
|
2009-06-12 11:38:50 +00:00
|
|
|
virDomainSaveStatus;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainSaveXML;
|
2012-04-02 15:45:01 +00:00
|
|
|
virDomainSeclabelTypeFromString;
|
|
|
|
virDomainSeclabelTypeToString;
|
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;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainSoundDefFree;
|
|
|
|
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;
|
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;
|
2011-06-24 23:09:46 +00:00
|
|
|
virDomainVcpuPinAdd;
|
2012-09-14 07:46:58 +00:00
|
|
|
virDomainVcpuPinDefArrayFree;
|
2012-08-21 09:18:29 +00:00
|
|
|
virDomainVcpuPinDefCopy;
|
|
|
|
virDomainVcpuPinDefFree;
|
2011-06-24 23:09:46 +00:00
|
|
|
virDomainVcpuPinDel;
|
|
|
|
virDomainVcpuPinFindByVcpu;
|
|
|
|
virDomainVcpuPinIsDuplicate;
|
2009-07-06 13:54:44 +00:00
|
|
|
virDomainVideoDefaultRAM;
|
|
|
|
virDomainVideoDefaultType;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainVideoDefFree;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainVideoTypeFromString;
|
|
|
|
virDomainVideoTypeToString;
|
2011-08-13 06:32:45 +00:00
|
|
|
virDomainVirtioEventIdxTypeFromString;
|
|
|
|
virDomainVirtioEventIdxTypeToString;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainVirtTypeToString;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainWatchdogActionTypeFromString;
|
|
|
|
virDomainWatchdogActionTypeToString;
|
|
|
|
virDomainWatchdogModelTypeFromString;
|
|
|
|
virDomainWatchdogModelTypeToString;
|
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
|
2012-07-13 09:05:17 +00:00
|
|
|
virDomainEventBalloonChangeNewFromDom;
|
|
|
|
virDomainEventBalloonChangeNewFromObj;
|
2011-07-22 05:57:42 +00:00
|
|
|
virDomainEventBlockJobNewFromDom;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainEventBlockJobNewFromObj;
|
2011-05-29 12:21:53 +00:00
|
|
|
virDomainEventControlErrorNewFromDom;
|
|
|
|
virDomainEventControlErrorNewFromObj;
|
2011-10-18 14:15:42 +00:00
|
|
|
virDomainEventDiskChangeNewFromDom;
|
|
|
|
virDomainEventDiskChangeNewFromObj;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainEventFree;
|
|
|
|
virDomainEventGraphicsNewFromDom;
|
|
|
|
virDomainEventGraphicsNewFromObj;
|
|
|
|
virDomainEventIOErrorNewFromDom;
|
|
|
|
virDomainEventIOErrorNewFromObj;
|
|
|
|
virDomainEventIOErrorReasonNewFromDom;
|
|
|
|
virDomainEventIOErrorReasonNewFromObj;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainEventNew;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainEventNewFromDef;
|
2009-01-05 14:05:29 +00:00
|
|
|
virDomainEventNewFromDom;
|
|
|
|
virDomainEventNewFromObj;
|
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;
|
Return count of callbacks when registering callbacks
When registering a callback for a particular event some callers
need to know how many callbacks already exist for that event.
While it is possible to ask for a count, this is not free from
race conditions when threaded. Thus the API for registering
callbacks should return the count of callbacks. Also rename
virDomainEventStateDeregisterAny to virDomainEventStateDeregisterID
* src/conf/domain_event.c, src/conf/domain_event.h,
src/libvirt_private.syms: Return count of callbacks when
registering callbacks
* src/libxl/libxl_driver.c, src/libxl/libxl_driver.c,
src/qemu/qemu_driver.c, src/remote/remote_driver.c,
src/remote/remote_driver.c, src/uml/uml_driver.c,
src/vbox/vbox_tmpl.c, src/xen/xen_driver.c: Update
for change in APIs
2011-12-13 23:38:54 +00:00
|
|
|
virDomainEventStateDeregisterID;
|
2011-12-13 23:38:54 +00:00
|
|
|
virDomainEventStateEventID;
|
2011-01-05 22:27:40 +00:00
|
|
|
virDomainEventStateFree;
|
|
|
|
virDomainEventStateNew;
|
2011-01-05 22:51:45 +00:00
|
|
|
virDomainEventStateQueue;
|
2012-12-11 22:21:17 +00:00
|
|
|
virDomainEventStateRegister;
|
|
|
|
virDomainEventStateRegisterID;
|
2012-03-23 13:44:50 +00:00
|
|
|
virDomainEventTrayChangeNewFromDom;
|
|
|
|
virDomainEventTrayChangeNewFromObj;
|
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;
|
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;
|
2010-10-20 17:10:45 +00:00
|
|
|
virDomainConfNWFilterRegister;
|
2010-06-21 18:18:31 +00:00
|
|
|
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
|
|
|
|
virInterfaceAssignDef;
|
|
|
|
virInterfaceDefFormat;
|
|
|
|
virInterfaceDefFree;
|
|
|
|
virInterfaceDefParseFile;
|
|
|
|
virInterfaceDefParseNode;
|
|
|
|
virInterfaceDefParseString;
|
|
|
|
virInterfaceFindByMACString;
|
|
|
|
virInterfaceFindByName;
|
|
|
|
virInterfaceObjListClone;
|
|
|
|
virInterfaceObjListFree;
|
|
|
|
virInterfaceObjLock;
|
|
|
|
virInterfaceObjUnlock;
|
|
|
|
virInterfaceRemove;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/netdev_bandwidth_conf.h
|
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;
|
|
|
|
virNetDevBandwidthParse;
|
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
|
2009-01-05 14:05:29 +00:00
|
|
|
virNetworkAssignDef;
|
2012-09-14 15:35:35 +00:00
|
|
|
virNetworkConfigChangeSetup;
|
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;
|
|
|
|
virNetworkDefFree;
|
2010-11-17 18:36:19 +00:00
|
|
|
virNetworkDefGetIpByIndex;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNetworkDefParseFile;
|
|
|
|
virNetworkDefParseNode;
|
|
|
|
virNetworkDefParseString;
|
|
|
|
virNetworkDeleteConfig;
|
|
|
|
virNetworkFindByName;
|
|
|
|
virNetworkFindByUUID;
|
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;
|
2010-11-17 18:36:19 +00:00
|
|
|
virNetworkIpDefNetmask;
|
|
|
|
virNetworkIpDefPrefix;
|
2012-09-04 15:55:17 +00:00
|
|
|
virNetworkList;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNetworkLoadAllConfigs;
|
2012-09-14 15:35:35 +00:00
|
|
|
virNetworkObjAssignDef;
|
|
|
|
virNetworkObjFree;
|
|
|
|
virNetworkObjGetPersistentDef;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNetworkObjIsDuplicate;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNetworkObjListFree;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNetworkObjLock;
|
2012-09-14 15:35:35 +00:00
|
|
|
virNetworkObjReplacePersistentDef;
|
|
|
|
virNetworkObjSetDefTransient;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNetworkObjUnlock;
|
network: free/null newDef if network fails to start
https://bugzilla.redhat.com/show_bug.cgi?id=866364
pointed out a crash due to virNetworkObjAssignDef free'ing
network->newDef without NULLing it afterward. A fix for this is in
upstream commit b7e9202401ebaa039b8f05acdefda8c24081537a. While the
NULLing of newDef was a legitimate fix, newDef should have already
been empty (NULL) anyway (as indicated in the comment that was deleted
by that commit).
The reason that newDef had a non-NULL value (i.e. the root cause) was
that networkStartNetwork() had failed after populating
network->newDef, but then neglected to free/NULL newDef in the
cleanup.
(A bit of background here: network->newDef should contain the
persistent config of a network when a network is active (and of course
only when it is persisten), and NULL at all other times. There is also
a network->def which should contain the persistent definition of the
network when it is inactive, and the current live state at all other
times. The idea is that you can make changes to network->newDef which
will take effect the next time the network is restarted, but won't
mess with the current state of the network (virDomainObj has a similar
pair of virDomainDefs that behave in the same fashion). Personally I
think there should be a network->live and network->config, and the
location of the persistent config should *always* be in
network->config, but that's for a later cleanup).
Since I love things to be symmetric, I created a new function called
virNetworkObjUnsetDefTransient(), which reverses the effects of
virNetworkObjSetDefTransient(). I don't really like the name of the
new function, but then I also didn't really like the name of the old
one either (it's just named that way to match a similar function in
the domain conf code).
2012-10-19 16:13:49 +00:00
|
|
|
virNetworkObjUnsetDefTransient;
|
2012-09-14 19:14:57 +00:00
|
|
|
virNetworkObjUpdate;
|
2012-11-18 15:59:21 +00:00
|
|
|
virNetworkObjUpdateParseFile;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNetworkRemoveInactive;
|
|
|
|
virNetworkSaveConfig;
|
2012-09-14 15:35:35 +00:00
|
|
|
virNetworkSaveStatus;
|
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;
|
2009-03-02 17:37:03 +00:00
|
|
|
virNetworkSetBridgeName;
|
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
|
|
|
|
|
|
|
|
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;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNodeDeviceAssignDef;
|
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;
|
|
|
|
virNodeDeviceFindByName;
|
|
|
|
virNodeDeviceFindBySysfsPath;
|
|
|
|
virNodeDeviceGetParentHost;
|
|
|
|
virNodeDeviceGetWWNs;
|
|
|
|
virNodeDeviceHasCap;
|
2012-09-05 05:34:09 +00:00
|
|
|
virNodeDeviceList;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNodeDeviceObjListFree;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNodeDeviceObjLock;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNodeDeviceObjRemove;
|
2009-01-05 14:05:29 +00:00
|
|
|
virNodeDeviceObjUnlock;
|
2010-10-20 17:10:45 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/nwfilter_conf.h
|
2010-10-20 17:10:45 +00:00
|
|
|
virNWFilterCallbackDriversLock;
|
|
|
|
virNWFilterCallbackDriversUnlock;
|
|
|
|
virNWFilterChainSuffixTypeToString;
|
|
|
|
virNWFilterConfLayerInit;
|
|
|
|
virNWFilterConfLayerShutdown;
|
|
|
|
virNWFilterDefFormat;
|
|
|
|
virNWFilterDefFree;
|
|
|
|
virNWFilterDefParseString;
|
2012-01-27 13:19:58 +00:00
|
|
|
virNWFilterInstFiltersOnAllVMs;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNWFilterJumpTargetTypeToString;
|
2011-01-15 15:06:52 +00:00
|
|
|
virNWFilterLoadAllConfigs;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNWFilterLockFilterUpdates;
|
2011-01-15 15:06:52 +00:00
|
|
|
virNWFilterObjAssignDef;
|
|
|
|
virNWFilterObjDeleteDef;
|
|
|
|
virNWFilterObjFindByName;
|
|
|
|
virNWFilterObjFindByUUID;
|
|
|
|
virNWFilterObjListFree;
|
|
|
|
virNWFilterObjLock;
|
|
|
|
virNWFilterObjRemove;
|
|
|
|
virNWFilterObjSaveDef;
|
|
|
|
virNWFilterObjUnlock;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNWFilterPrintStateMatchFlags;
|
2011-04-08 00:13:38 +00:00
|
|
|
virNWFilterPrintTCPFlags;
|
2010-10-20 17:10:45 +00:00
|
|
|
virNWFilterRegisterCallbackDriver;
|
2010-03-25 17:46:09 +00:00
|
|
|
virNWFilterRuleActionTypeToString;
|
2011-11-22 20:12:03 +00:00
|
|
|
virNWFilterRuleDirectionTypeToString;
|
2010-03-25 17:46:12 +00:00
|
|
|
virNWFilterRuleProtocolTypeToString;
|
2010-03-25 17:46:09 +00:00
|
|
|
virNWFilterTestUnassignDef;
|
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;
|
2012-12-11 22:21:17 +00:00
|
|
|
virNWFilterUnRegisterCallbackDriver;
|
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
|
|
|
virNWFilterHashTableFree;
|
|
|
|
virNWFilterHashTablePut;
|
|
|
|
virNWFilterHashTablePutAll;
|
|
|
|
virNWFilterHashTableRemoveEntry;
|
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;
|
|
|
|
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-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;
|
2011-10-28 18:29:39 +00:00
|
|
|
virSecretUsageTypeTypeFromString;
|
|
|
|
virSecretUsageTypeTypeToString;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2009-08-14 19:48:55 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/snapshot_conf.h
|
2012-10-19 09:52:54 +00:00
|
|
|
virDomainListSnapshots;
|
|
|
|
virDomainSnapshotAlignDisks;
|
|
|
|
virDomainSnapshotAssignDef;
|
|
|
|
virDomainSnapshotDefFormat;
|
|
|
|
virDomainSnapshotDefFree;
|
2013-01-03 13:10:39 +00:00
|
|
|
virDomainSnapshotDefIsExternal;
|
2012-10-19 09:52:54 +00:00
|
|
|
virDomainSnapshotDefParseString;
|
|
|
|
virDomainSnapshotDropParent;
|
|
|
|
virDomainSnapshotFindByName;
|
|
|
|
virDomainSnapshotForEach;
|
|
|
|
virDomainSnapshotForEachChild;
|
|
|
|
virDomainSnapshotForEachDescendant;
|
2012-10-19 09:55:36 +00:00
|
|
|
virDomainSnapshotIsExternal;
|
2012-10-19 09:52:54 +00:00
|
|
|
virDomainSnapshotLocationTypeFromString;
|
|
|
|
virDomainSnapshotLocationTypeToString;
|
|
|
|
virDomainSnapshotObjListGetNames;
|
|
|
|
virDomainSnapshotObjListNum;
|
|
|
|
virDomainSnapshotObjListRemove;
|
|
|
|
virDomainSnapshotStateTypeFromString;
|
|
|
|
virDomainSnapshotStateTypeToString;
|
|
|
|
virDomainSnapshotUpdateRelations;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/storage_conf.h
|
2010-10-20 17:10:45 +00:00
|
|
|
virStoragePartedFsTypeTypeToString;
|
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;
|
|
|
|
virStoragePoolFormatDiskTypeToString;
|
|
|
|
virStoragePoolFormatFileSystemNetTypeToString;
|
|
|
|
virStoragePoolFormatFileSystemTypeToString;
|
2012-09-04 15:16:25 +00:00
|
|
|
virStoragePoolList;
|
2009-01-05 14:05:29 +00:00
|
|
|
virStoragePoolLoadAllConfigs;
|
|
|
|
virStoragePoolObjAssignDef;
|
|
|
|
virStoragePoolObjClearVols;
|
|
|
|
virStoragePoolObjDeleteDef;
|
|
|
|
virStoragePoolObjFindByName;
|
|
|
|
virStoragePoolObjFindByUUID;
|
2010-10-20 17:10:45 +00:00
|
|
|
virStoragePoolObjIsDuplicate;
|
2009-01-05 14:05:29 +00:00
|
|
|
virStoragePoolObjListFree;
|
2010-10-20 17:10:45 +00:00
|
|
|
virStoragePoolObjLock;
|
2009-01-05 14:05:29 +00:00
|
|
|
virStoragePoolObjRemove;
|
|
|
|
virStoragePoolObjSaveDef;
|
2010-10-20 17:10:45 +00:00
|
|
|
virStoragePoolObjUnlock;
|
2011-10-21 22:44:52 +00:00
|
|
|
virStoragePoolSourceClear;
|
|
|
|
virStoragePoolSourceFindDuplicate;
|
|
|
|
virStoragePoolSourceFindDuplicateDevices;
|
2009-01-05 14:05:29 +00:00
|
|
|
virStoragePoolSourceFree;
|
|
|
|
virStoragePoolSourceListFormat;
|
2010-10-20 17:10:45 +00:00
|
|
|
virStoragePoolSourceListNewSource;
|
|
|
|
virStoragePoolTypeFromString;
|
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;
|
|
|
|
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# conf/storage_encryption_conf.h
|
2010-10-20 17:10:45 +00:00
|
|
|
virStorageEncryptionFormat;
|
2009-08-19 19:50:10 +00:00
|
|
|
virStorageEncryptionFree;
|
|
|
|
virStorageEncryptionParseNode;
|
2009-08-14 18:06:59 +00:00
|
|
|
virStorageGenerateQcowPassphrase;
|
2009-08-19 19:50:10 +00:00
|
|
|
|
2010-10-20 17:10:45 +00:00
|
|
|
|
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
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# cpu/cpu.h
|
|
|
|
cpuBaseline;
|
|
|
|
cpuBaselineXML;
|
|
|
|
cpuCompare;
|
|
|
|
cpuCompareXML;
|
|
|
|
cpuDataFree;
|
|
|
|
cpuDecode;
|
|
|
|
cpuEncode;
|
|
|
|
cpuGuestData;
|
|
|
|
cpuHasFeature;
|
|
|
|
cpuMapOverride;
|
|
|
|
cpuNodeData;
|
|
|
|
cpuUpdate;
|
2010-11-05 14:22:13 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# datatypes.h
|
|
|
|
virConnectClass;
|
|
|
|
virDomainClass;
|
|
|
|
virDomainSnapshotClass;
|
|
|
|
virGetConnect;
|
|
|
|
virGetDomain;
|
|
|
|
virGetDomainSnapshot;
|
|
|
|
virGetInterface;
|
|
|
|
virGetNetwork;
|
|
|
|
virGetNodeDevice;
|
|
|
|
virGetNWFilter;
|
|
|
|
virGetSecret;
|
|
|
|
virGetStoragePool;
|
|
|
|
virGetStorageVol;
|
|
|
|
virGetStream;
|
|
|
|
virInterfaceClass;
|
|
|
|
virNetworkClass;
|
|
|
|
virNodeDeviceClass;
|
|
|
|
virNWFilterClass;
|
|
|
|
virSecretClass;
|
|
|
|
virStoragePoolClass;
|
|
|
|
virStorageVolClass;
|
|
|
|
virStreamClass;
|
2010-12-08 06:19:06 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# fdstream.h
|
|
|
|
virFDStreamConnectUNIX;
|
|
|
|
virFDStreamCreateFile;
|
|
|
|
virFDStreamOpen;
|
|
|
|
virFDStreamOpenFile;
|
2009-01-15 19:56:05 +00:00
|
|
|
|
2010-10-20 17:10:45 +00:00
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# libvirt_internal.h
|
|
|
|
virDomainMigrateBegin3;
|
|
|
|
virDomainMigrateConfirm3;
|
|
|
|
virDomainMigrateFinish;
|
|
|
|
virDomainMigrateFinish2;
|
|
|
|
virDomainMigrateFinish3;
|
|
|
|
virDomainMigratePerform;
|
|
|
|
virDomainMigratePerform3;
|
|
|
|
virDomainMigratePrepare;
|
|
|
|
virDomainMigratePrepare2;
|
|
|
|
virDomainMigratePrepare3;
|
|
|
|
virDomainMigratePrepareTunnel;
|
|
|
|
virDomainMigratePrepareTunnel3;
|
|
|
|
virDrvSupportsFeature;
|
|
|
|
virRegisterDeviceMonitor;
|
|
|
|
virRegisterDriver;
|
|
|
|
virRegisterInterfaceDriver;
|
|
|
|
virRegisterNetworkDriver;
|
|
|
|
virRegisterNWFilterDriver;
|
|
|
|
virRegisterSecretDriver;
|
|
|
|
virRegisterStorageDriver;
|
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
|
|
|
|
virDomainLockDiskAttach;
|
|
|
|
virDomainLockDiskDetach;
|
|
|
|
virDomainLockLeaseAttach;
|
|
|
|
virDomainLockLeaseDetach;
|
|
|
|
virDomainLockProcessInquire;
|
|
|
|
virDomainLockProcessPause;
|
|
|
|
virDomainLockProcessResume;
|
|
|
|
virDomainLockProcessStart;
|
|
|
|
|
|
|
|
|
|
|
|
# locking/lock_manager.h
|
|
|
|
virLockManagerAcquire;
|
|
|
|
virLockManagerAddResource;
|
|
|
|
virLockManagerFree;
|
|
|
|
virLockManagerInquire;
|
|
|
|
virLockManagerNew;
|
|
|
|
virLockManagerPluginGetName;
|
|
|
|
virLockManagerPluginNew;
|
|
|
|
virLockManagerPluginRef;
|
|
|
|
virLockManagerPluginUnref;
|
|
|
|
virLockManagerPluginUsesState;
|
|
|
|
virLockManagerRelease;
|
|
|
|
virLockManagerSetPluginDir;
|
|
|
|
|
|
|
|
|
|
|
|
# nodeinfo.h
|
|
|
|
nodeCapsInitNUMA;
|
|
|
|
nodeGetCellsFreeMemory;
|
|
|
|
nodeGetCPUBitmap;
|
|
|
|
nodeGetCPUCount;
|
|
|
|
nodeGetCPUMap;
|
|
|
|
nodeGetCPUStats;
|
|
|
|
nodeGetFreeMemory;
|
|
|
|
nodeGetInfo;
|
|
|
|
nodeGetMemoryParameters;
|
|
|
|
nodeGetMemoryStats;
|
|
|
|
nodeSetMemoryParameters;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetclient.h
|
|
|
|
virNetClientAddProgram;
|
|
|
|
virNetClientAddStream;
|
|
|
|
virNetClientClose;
|
|
|
|
virNetClientDupFD;
|
|
|
|
virNetClientGetFD;
|
|
|
|
virNetClientGetTLSKeySize;
|
|
|
|
virNetClientHasPassFD;
|
|
|
|
virNetClientIsEncrypted;
|
|
|
|
virNetClientIsOpen;
|
|
|
|
virNetClientKeepAliveIsSupported;
|
|
|
|
virNetClientKeepAliveStart;
|
|
|
|
virNetClientKeepAliveStop;
|
|
|
|
virNetClientLocalAddrString;
|
|
|
|
virNetClientNewExternal;
|
|
|
|
virNetClientNewLibSSH2;
|
|
|
|
virNetClientNewSSH;
|
|
|
|
virNetClientNewTCP;
|
|
|
|
virNetClientNewUNIX;
|
|
|
|
virNetClientRegisterAsyncIO;
|
|
|
|
virNetClientRegisterKeepAlive;
|
|
|
|
virNetClientRemoteAddrString;
|
|
|
|
virNetClientRemoveStream;
|
|
|
|
virNetClientSendNonBlock;
|
|
|
|
virNetClientSendNoReply;
|
|
|
|
virNetClientSendWithReply;
|
|
|
|
virNetClientSendWithReplyStream;
|
|
|
|
virNetClientSetCloseCallback;
|
|
|
|
virNetClientSetTLSSession;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetclientprogram.h
|
|
|
|
virNetClientProgramCall;
|
|
|
|
virNetClientProgramDispatch;
|
|
|
|
virNetClientProgramGetProgram;
|
|
|
|
virNetClientProgramGetVersion;
|
|
|
|
virNetClientProgramMatches;
|
|
|
|
virNetClientProgramNew;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetclientstream.h
|
|
|
|
virNetClientStreamEOF;
|
|
|
|
virNetClientStreamEventAddCallback;
|
|
|
|
virNetClientStreamEventRemoveCallback;
|
|
|
|
virNetClientStreamEventUpdateCallback;
|
|
|
|
virNetClientStreamMatches;
|
|
|
|
virNetClientStreamNew;
|
|
|
|
virNetClientStreamQueuePacket;
|
|
|
|
virNetClientStreamRaiseError;
|
|
|
|
virNetClientStreamRecvPacket;
|
|
|
|
virNetClientStreamSendPacket;
|
|
|
|
virNetClientStreamSetError;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetmessage.h
|
|
|
|
virNetMessageClear;
|
|
|
|
virNetMessageDecodeHeader;
|
|
|
|
virNetMessageDecodeLength;
|
|
|
|
virNetMessageDecodeNumFDs;
|
|
|
|
virNetMessageDecodePayload;
|
|
|
|
virNetMessageDupFD;
|
|
|
|
virNetMessageEncodeHeader;
|
|
|
|
virNetMessageEncodeNumFDs;
|
|
|
|
virNetMessageEncodePayload;
|
|
|
|
virNetMessageEncodePayloadRaw;
|
|
|
|
virNetMessageFree;
|
|
|
|
virNetMessageNew;
|
|
|
|
virNetMessageQueuePush;
|
|
|
|
virNetMessageQueueServe;
|
|
|
|
virNetMessageSaveError;
|
|
|
|
xdr_virNetMessageError;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetserver.h
|
|
|
|
virNetServerAddProgram;
|
|
|
|
virNetServerAddService;
|
|
|
|
virNetServerAddShutdownInhibition;
|
|
|
|
virNetServerAddSignalHandler;
|
|
|
|
virNetServerAutoShutdown;
|
|
|
|
virNetServerClose;
|
|
|
|
virNetServerIsPrivileged;
|
|
|
|
virNetServerKeepAliveRequired;
|
|
|
|
virNetServerNew;
|
|
|
|
virNetServerNewPostExecRestart;
|
|
|
|
virNetServerPreExecRestart;
|
|
|
|
virNetServerQuit;
|
|
|
|
virNetServerRemoveShutdownInhibition;
|
|
|
|
virNetServerRun;
|
|
|
|
virNetServerSetTLSContext;
|
|
|
|
virNetServerUpdateServices;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetserverclient.h
|
|
|
|
virNetServerClientAddFilter;
|
|
|
|
virNetServerClientClose;
|
|
|
|
virNetServerClientDelayedClose;
|
|
|
|
virNetServerClientGetAuth;
|
|
|
|
virNetServerClientGetFD;
|
|
|
|
virNetServerClientGetIdentity;
|
|
|
|
virNetServerClientGetPrivateData;
|
|
|
|
virNetServerClientGetReadonly;
|
|
|
|
virNetServerClientGetTLSKeySize;
|
|
|
|
virNetServerClientGetUNIXIdentity;
|
|
|
|
virNetServerClientHasTLSSession;
|
|
|
|
virNetServerClientImmediateClose;
|
|
|
|
virNetServerClientInit;
|
|
|
|
virNetServerClientInitKeepAlive;
|
|
|
|
virNetServerClientIsClosed;
|
|
|
|
virNetServerClientIsSecure;
|
|
|
|
virNetServerClientLocalAddrString;
|
|
|
|
virNetServerClientNeedAuth;
|
|
|
|
virNetServerClientNew;
|
|
|
|
virNetServerClientNewPostExecRestart;
|
|
|
|
virNetServerClientPreExecRestart;
|
|
|
|
virNetServerClientRemoteAddrString;
|
|
|
|
virNetServerClientRemoveFilter;
|
|
|
|
virNetServerClientSendMessage;
|
|
|
|
virNetServerClientSetCloseHook;
|
|
|
|
virNetServerClientSetDispatcher;
|
|
|
|
virNetServerClientSetIdentity;
|
|
|
|
virNetServerClientStartKeepAlive;
|
|
|
|
virNetServerClientWantClose;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetservermdns.h
|
|
|
|
virNetServerMDNSAddEntry;
|
|
|
|
virNetServerMDNSAddGroup;
|
|
|
|
virNetServerMDNSEntryFree;
|
|
|
|
virNetServerMDNSFree;
|
|
|
|
virNetServerMDNSGroupFree;
|
|
|
|
virNetServerMDNSNew;
|
|
|
|
virNetServerMDNSRemoveEntry;
|
|
|
|
virNetServerMDNSRemoveGroup;
|
|
|
|
virNetServerMDNSStart;
|
|
|
|
virNetServerMDNSStop;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetserverprogram.h
|
|
|
|
virNetServerProgramDispatch;
|
|
|
|
virNetServerProgramGetID;
|
|
|
|
virNetServerProgramGetPriority;
|
|
|
|
virNetServerProgramGetVersion;
|
|
|
|
virNetServerProgramMatches;
|
|
|
|
virNetServerProgramNew;
|
|
|
|
virNetServerProgramSendReplyError;
|
|
|
|
virNetServerProgramSendStreamData;
|
|
|
|
virNetServerProgramSendStreamError;
|
|
|
|
virNetServerProgramUnknownError;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetserverservice.h
|
|
|
|
virNetServerServiceClose;
|
|
|
|
virNetServerServiceGetAuth;
|
|
|
|
virNetServerServiceGetMaxRequests;
|
|
|
|
virNetServerServiceGetPort;
|
|
|
|
virNetServerServiceGetTLSContext;
|
|
|
|
virNetServerServiceIsReadonly;
|
|
|
|
virNetServerServiceNewFD;
|
|
|
|
virNetServerServiceNewPostExecRestart;
|
|
|
|
virNetServerServiceNewTCP;
|
|
|
|
virNetServerServiceNewUNIX;
|
|
|
|
virNetServerServicePreExecRestart;
|
|
|
|
virNetServerServiceSetDispatcher;
|
|
|
|
virNetServerServiceToggle;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnetsocket.h
|
|
|
|
virNetSocketAccept;
|
|
|
|
virNetSocketAddIOCallback;
|
|
|
|
virNetSocketClose;
|
|
|
|
virNetSocketDupFD;
|
|
|
|
virNetSocketGetFD;
|
|
|
|
virNetSocketGetPort;
|
|
|
|
virNetSocketGetUNIXIdentity;
|
|
|
|
virNetSocketHasCachedData;
|
|
|
|
virNetSocketHasPassFD;
|
|
|
|
virNetSocketHasPendingData;
|
|
|
|
virNetSocketIsLocal;
|
|
|
|
virNetSocketListen;
|
|
|
|
virNetSocketLocalAddrString;
|
|
|
|
virNetSocketNewConnectCommand;
|
|
|
|
virNetSocketNewConnectExternal;
|
|
|
|
virNetSocketNewConnectLibSSH2;
|
|
|
|
virNetSocketNewConnectSSH;
|
|
|
|
virNetSocketNewConnectTCP;
|
|
|
|
virNetSocketNewConnectUNIX;
|
|
|
|
virNetSocketNewListenFD;
|
|
|
|
virNetSocketNewListenTCP;
|
|
|
|
virNetSocketNewListenUNIX;
|
|
|
|
virNetSocketNewPostExecRestart;
|
|
|
|
virNetSocketPreExecRestart;
|
|
|
|
virNetSocketRead;
|
|
|
|
virNetSocketRecvFD;
|
|
|
|
virNetSocketRemoteAddrString;
|
|
|
|
virNetSocketRemoveIOCallback;
|
|
|
|
virNetSocketSendFD;
|
|
|
|
virNetSocketSetBlocking;
|
|
|
|
virNetSocketSetTLSSession;
|
|
|
|
virNetSocketUpdateIOCallback;
|
|
|
|
virNetSocketWrite;
|
|
|
|
|
|
|
|
|
|
|
|
# rpc/virnettlscontext.h
|
|
|
|
virNetTLSContextCheckCertificate;
|
|
|
|
virNetTLSContextNewClient;
|
|
|
|
virNetTLSContextNewClientPath;
|
|
|
|
virNetTLSContextNewServer;
|
|
|
|
virNetTLSContextNewServerPath;
|
|
|
|
virNetTLSInit;
|
|
|
|
virNetTLSSessionGetHandshakeStatus;
|
|
|
|
virNetTLSSessionGetKeySize;
|
|
|
|
virNetTLSSessionHandshake;
|
|
|
|
virNetTLSSessionNew;
|
|
|
|
virNetTLSSessionRead;
|
|
|
|
virNetTLSSessionSetIOCallbacks;
|
|
|
|
virNetTLSSessionWrite;
|
|
|
|
|
|
|
|
|
|
|
|
# security/security_driver.h
|
|
|
|
virSecurityDriverLookup;
|
|
|
|
|
|
|
|
|
|
|
|
# security/security_manager.h
|
|
|
|
virSecurityManagerClearSocketLabel;
|
|
|
|
virSecurityManagerGenLabel;
|
|
|
|
virSecurityManagerGetDOI;
|
|
|
|
virSecurityManagerGetModel;
|
|
|
|
virSecurityManagerGetMountOptions;
|
|
|
|
virSecurityManagerGetNested;
|
|
|
|
virSecurityManagerGetProcessLabel;
|
|
|
|
virSecurityManagerNew;
|
|
|
|
virSecurityManagerNewDAC;
|
|
|
|
virSecurityManagerNewStack;
|
|
|
|
virSecurityManagerPostFork;
|
|
|
|
virSecurityManagerPreFork;
|
|
|
|
virSecurityManagerReleaseLabel;
|
|
|
|
virSecurityManagerReserveLabel;
|
|
|
|
virSecurityManagerRestoreAllLabel;
|
|
|
|
virSecurityManagerRestoreHostdevLabel;
|
|
|
|
virSecurityManagerRestoreImageLabel;
|
|
|
|
virSecurityManagerRestoreSavedStateLabel;
|
|
|
|
virSecurityManagerSetAllLabel;
|
|
|
|
virSecurityManagerSetChildProcessLabel;
|
|
|
|
virSecurityManagerSetDaemonSocketLabel;
|
|
|
|
virSecurityManagerSetHostdevLabel;
|
|
|
|
virSecurityManagerSetHugepages;
|
|
|
|
virSecurityManagerSetImageFDLabel;
|
|
|
|
virSecurityManagerSetImageLabel;
|
|
|
|
virSecurityManagerSetProcessLabel;
|
|
|
|
virSecurityManagerSetSavedStateLabel;
|
|
|
|
virSecurityManagerSetSocketLabel;
|
|
|
|
virSecurityManagerSetTapFDLabel;
|
|
|
|
virSecurityManagerStackAddNested;
|
|
|
|
virSecurityManagerVerify;
|
|
|
|
|
|
|
|
|
|
|
|
# util/viralloc.h
|
|
|
|
virAlloc;
|
|
|
|
virAllocN;
|
|
|
|
virAllocVar;
|
|
|
|
virDeleteElementsN;
|
|
|
|
virExpandN;
|
|
|
|
virFree;
|
|
|
|
virInsertElementsN;
|
|
|
|
virReallocN;
|
|
|
|
virResizeN;
|
|
|
|
virShrinkN;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virarch.h
|
|
|
|
virArchFromHost;
|
|
|
|
virArchFromString;
|
|
|
|
virArchGetEndian;
|
|
|
|
virArchGetWordSize;
|
|
|
|
virArchToString;
|
|
|
|
|
|
|
|
|
|
|
|
# util/viraudit.h
|
|
|
|
virAuditClose;
|
|
|
|
virAuditEncode;
|
|
|
|
virAuditLog;
|
|
|
|
virAuditOpen;
|
|
|
|
virAuditSend;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virauth.h
|
|
|
|
virAuthGetConfigFilePath;
|
|
|
|
virAuthGetPassword;
|
|
|
|
virAuthGetUsername;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virauthconfig.h
|
|
|
|
virAuthConfigFree;
|
|
|
|
virAuthConfigLookup;
|
|
|
|
virAuthConfigNew;
|
|
|
|
virAuthConfigNewData;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virbitmap.h
|
|
|
|
virBitmapClearAll;
|
|
|
|
virBitmapClearBit;
|
|
|
|
virBitmapCopy;
|
|
|
|
virBitmapCountBits;
|
|
|
|
virBitmapEqual;
|
|
|
|
virBitmapFormat;
|
|
|
|
virBitmapFree;
|
|
|
|
virBitmapGetBit;
|
|
|
|
virBitmapIsAllSet;
|
|
|
|
virBitmapNew;
|
|
|
|
virBitmapNewCopy;
|
|
|
|
virBitmapNewData;
|
|
|
|
virBitmapNextClearBit;
|
|
|
|
virBitmapNextSetBit;
|
|
|
|
virBitmapParse;
|
|
|
|
virBitmapSetAll;
|
|
|
|
virBitmapSetBit;
|
|
|
|
virBitmapSize;
|
|
|
|
virBitmapString;
|
|
|
|
virBitmapToData;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virbuffer.h
|
|
|
|
virBufferAdd;
|
|
|
|
virBufferAddChar;
|
|
|
|
virBufferAdjustIndent;
|
|
|
|
virBufferAsprintf;
|
|
|
|
virBufferContentAndReset;
|
|
|
|
virBufferCurrentContent;
|
|
|
|
virBufferError;
|
|
|
|
virBufferEscape;
|
|
|
|
virBufferEscapeSexpr;
|
|
|
|
virBufferEscapeShell;
|
|
|
|
virBufferEscapeString;
|
|
|
|
virBufferFreeAndReset;
|
|
|
|
virBufferGetIndent;
|
|
|
|
virBufferStrcat;
|
|
|
|
virBufferTrim;
|
|
|
|
virBufferURIEncodeString;
|
|
|
|
virBufferUse;
|
|
|
|
virBufferVasprintf;
|
|
|
|
|
|
|
|
|
|
|
|
# util/vircgroup.h
|
|
|
|
virCgroupAddTask;
|
|
|
|
virCgroupAddTaskController;
|
|
|
|
virCgroupAllowDevice;
|
|
|
|
virCgroupAllowDeviceMajor;
|
|
|
|
virCgroupAllowDevicePath;
|
|
|
|
virCgroupControllerTypeFromString;
|
|
|
|
virCgroupControllerTypeToString;
|
|
|
|
virCgroupDenyAllDevices;
|
|
|
|
virCgroupDenyDevice;
|
|
|
|
virCgroupDenyDeviceMajor;
|
|
|
|
virCgroupDenyDevicePath;
|
|
|
|
virCgroupForDomain;
|
|
|
|
virCgroupForDriver;
|
|
|
|
virCgroupForEmulator;
|
|
|
|
virCgroupForVcpu;
|
|
|
|
virCgroupFree;
|
|
|
|
virCgroupGetAppRoot;
|
|
|
|
virCgroupGetBlkioWeight;
|
|
|
|
virCgroupGetCpuacctPercpuUsage;
|
|
|
|
virCgroupGetCpuacctStat;
|
|
|
|
virCgroupGetCpuacctUsage;
|
|
|
|
virCgroupGetCpuCfsPeriod;
|
|
|
|
virCgroupGetCpuCfsQuota;
|
|
|
|
virCgroupGetCpusetCpus;
|
|
|
|
virCgroupGetCpusetMems;
|
|
|
|
virCgroupGetCpuShares;
|
|
|
|
virCgroupGetFreezerState;
|
|
|
|
virCgroupGetMemoryHardLimit;
|
|
|
|
virCgroupGetMemorySoftLimit;
|
|
|
|
virCgroupGetMemoryUsage;
|
|
|
|
virCgroupGetMemSwapHardLimit;
|
|
|
|
virCgroupGetMemSwapUsage;
|
|
|
|
virCgroupKill;
|
|
|
|
virCgroupKillPainfully;
|
|
|
|
virCgroupKillRecursive;
|
|
|
|
virCgroupMounted;
|
|
|
|
virCgroupMoveTask;
|
|
|
|
virCgroupPathOfController;
|
|
|
|
virCgroupRemove;
|
|
|
|
virCgroupSetBlkioDeviceWeight;
|
|
|
|
virCgroupSetBlkioWeight;
|
|
|
|
virCgroupSetCpuCfsPeriod;
|
|
|
|
virCgroupSetCpuCfsQuota;
|
|
|
|
virCgroupSetCpusetCpus;
|
|
|
|
virCgroupSetCpusetMems;
|
|
|
|
virCgroupSetCpuShares;
|
|
|
|
virCgroupSetFreezerState;
|
|
|
|
virCgroupSetMemory;
|
|
|
|
virCgroupSetMemoryHardLimit;
|
|
|
|
virCgroupSetMemorySoftLimit;
|
|
|
|
virCgroupSetMemSwapHardLimit;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/vircommand.h
|
|
|
|
virCommandAbort;
|
|
|
|
virCommandAddArg;
|
|
|
|
virCommandAddArgBuffer;
|
|
|
|
virCommandAddArgFormat;
|
|
|
|
virCommandAddArgList;
|
|
|
|
virCommandAddArgPair;
|
|
|
|
virCommandAddArgSet;
|
|
|
|
virCommandAddEnvBuffer;
|
|
|
|
virCommandAddEnvFormat;
|
|
|
|
virCommandAddEnvPair;
|
|
|
|
virCommandAddEnvPass;
|
|
|
|
virCommandAddEnvPassCommon;
|
|
|
|
virCommandAddEnvString;
|
|
|
|
virCommandAllowCap;
|
|
|
|
virCommandClearCaps;
|
|
|
|
virCommandDaemonize;
|
|
|
|
virCommandDoAsyncIO;
|
|
|
|
virCommandExec;
|
|
|
|
virCommandFree;
|
|
|
|
virCommandHandshakeNotify;
|
|
|
|
virCommandHandshakeWait;
|
|
|
|
virCommandNew;
|
|
|
|
virCommandNewArgList;
|
|
|
|
virCommandNewArgs;
|
|
|
|
virCommandNonblockingFDs;
|
|
|
|
virCommandPreserveFD;
|
|
|
|
virCommandRequireHandshake;
|
|
|
|
virCommandRun;
|
|
|
|
virCommandRunAsync;
|
|
|
|
virCommandSetAppArmorProfile;
|
|
|
|
virCommandSetErrorBuffer;
|
|
|
|
virCommandSetErrorFD;
|
|
|
|
virCommandSetGID;
|
|
|
|
virCommandSetInputBuffer;
|
|
|
|
virCommandSetInputFD;
|
|
|
|
virCommandSetOutputBuffer;
|
|
|
|
virCommandSetOutputFD;
|
|
|
|
virCommandSetPidFile;
|
|
|
|
virCommandSetPreExecHook;
|
|
|
|
virCommandSetSELinuxLabel;
|
|
|
|
virCommandSetUID;
|
|
|
|
virCommandSetWorkingDirectory;
|
|
|
|
virCommandToString;
|
|
|
|
virCommandTransferFD;
|
|
|
|
virCommandWait;
|
|
|
|
virCommandWriteArgLog;
|
|
|
|
virFork;
|
|
|
|
virRun;
|
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;
|
|
|
|
virConfNew;
|
|
|
|
virConfReadFile;
|
|
|
|
virConfReadMem;
|
|
|
|
virConfSetValue;
|
|
|
|
virConfWriteFile;
|
|
|
|
virConfWriteMem;
|
2012-03-20 15:40:05 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virdbus.h
|
|
|
|
virDBusGetSessionBus;
|
|
|
|
virDBusGetSystemBus;
|
2012-03-19 16:23:47 +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;
|
|
|
|
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
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virerror.h
|
|
|
|
virDispatchError;
|
|
|
|
virErrorInitialize;
|
|
|
|
virRaiseErrorFull;
|
|
|
|
virReportErrorHelper;
|
|
|
|
virReportOOMErrorFull;
|
|
|
|
virReportSystemErrorFull;
|
|
|
|
virSetError;
|
|
|
|
virSetErrorLogPriorityFunc;
|
|
|
|
virStrerror;
|
2011-11-25 15:25:14 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/vireventpoll.h
|
|
|
|
virEventPollAddHandle;
|
|
|
|
virEventPollAddTimeout;
|
|
|
|
virEventPollFromNativeEvents;
|
|
|
|
virEventPollInit;
|
|
|
|
virEventPollRemoveHandle;
|
|
|
|
virEventPollRemoveTimeout;
|
|
|
|
virEventPollRunOnce;
|
|
|
|
virEventPollToNativeEvents;
|
|
|
|
virEventPollUpdateHandle;
|
|
|
|
virEventPollUpdateTimeout;
|
2012-04-19 14:34:35 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virfile.h
|
2011-07-19 18:32:58 +00:00
|
|
|
virFileClose;
|
2011-07-11 21:26:33 +00:00
|
|
|
virFileDirectFdFlag;
|
2011-07-19 18:32:58 +00:00
|
|
|
virFileFclose;
|
|
|
|
virFileFdopen;
|
2012-12-11 22:21:17 +00:00
|
|
|
virFileLoopDeviceAssociate;
|
2011-10-13 10:17:12 +00:00
|
|
|
virFileRewrite;
|
2012-01-11 09:58:59 +00:00
|
|
|
virFileTouch;
|
2012-04-27 13:50:22 +00:00
|
|
|
virFileUpdatePerm;
|
2012-12-11 22:21:17 +00:00
|
|
|
virFileWrapperFdClose;
|
|
|
|
virFileWrapperFdFree;
|
|
|
|
virFileWrapperFdNew;
|
2011-07-19 18:32:58 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virhash.h
|
|
|
|
virHashAddEntry;
|
|
|
|
virHashCreate;
|
|
|
|
virHashEqual;
|
|
|
|
virHashForEach;
|
|
|
|
virHashFree;
|
|
|
|
virHashGetItems;
|
|
|
|
virHashLookup;
|
|
|
|
virHashRemoveAll;
|
|
|
|
virHashRemoveEntry;
|
|
|
|
virHashRemoveSet;
|
|
|
|
virHashSearch;
|
|
|
|
virHashSize;
|
|
|
|
virHashSteal;
|
|
|
|
virHashTableSize;
|
|
|
|
virHashUpdateEntry;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virhook.h
|
|
|
|
virHookCall;
|
|
|
|
virHookInitialize;
|
|
|
|
virHookPresent;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virinitctl.h
|
2012-11-28 12:17:31 +00:00
|
|
|
virInitctlSetRunLevel;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/viriptables.h
|
|
|
|
iptablesAddForwardAllowCross;
|
|
|
|
iptablesAddForwardAllowIn;
|
|
|
|
iptablesAddForwardAllowOut;
|
|
|
|
iptablesAddForwardAllowRelatedIn;
|
|
|
|
iptablesAddForwardMasquerade;
|
|
|
|
iptablesAddForwardRejectIn;
|
|
|
|
iptablesAddForwardRejectOut;
|
|
|
|
iptablesAddOutputFixUdpChecksum;
|
|
|
|
iptablesAddTcpInput;
|
|
|
|
iptablesAddUdpInput;
|
|
|
|
iptablesContextFree;
|
|
|
|
iptablesContextNew;
|
|
|
|
iptablesRemoveForwardAllowCross;
|
|
|
|
iptablesRemoveForwardAllowIn;
|
|
|
|
iptablesRemoveForwardAllowOut;
|
|
|
|
iptablesRemoveForwardAllowRelatedIn;
|
|
|
|
iptablesRemoveForwardMasquerade;
|
|
|
|
iptablesRemoveForwardRejectIn;
|
|
|
|
iptablesRemoveForwardRejectOut;
|
|
|
|
iptablesRemoveOutputFixUdpChecksum;
|
|
|
|
iptablesRemoveTcpInput;
|
|
|
|
iptablesRemoveUdpInput;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virjson.h
|
|
|
|
virJSONValueArrayAppend;
|
|
|
|
virJSONValueArrayGet;
|
|
|
|
virJSONValueArraySize;
|
|
|
|
virJSONValueFree;
|
|
|
|
virJSONValueFromString;
|
|
|
|
virJSONValueGetBoolean;
|
|
|
|
virJSONValueGetNumberDouble;
|
|
|
|
virJSONValueGetNumberInt;
|
|
|
|
virJSONValueGetNumberLong;
|
|
|
|
virJSONValueGetNumberUint;
|
|
|
|
virJSONValueGetNumberUlong;
|
|
|
|
virJSONValueGetString;
|
|
|
|
virJSONValueIsNull;
|
|
|
|
virJSONValueNewArray;
|
|
|
|
virJSONValueNewBoolean;
|
|
|
|
virJSONValueNewNull;
|
|
|
|
virJSONValueNewNumberDouble;
|
|
|
|
virJSONValueNewNumberInt;
|
|
|
|
virJSONValueNewNumberLong;
|
|
|
|
virJSONValueNewNumberUint;
|
|
|
|
virJSONValueNewNumberUlong;
|
|
|
|
virJSONValueNewObject;
|
|
|
|
virJSONValueNewString;
|
|
|
|
virJSONValueNewStringLen;
|
|
|
|
virJSONValueObjectAppend;
|
|
|
|
virJSONValueObjectAppendBoolean;
|
|
|
|
virJSONValueObjectAppendNull;
|
|
|
|
virJSONValueObjectAppendNumberDouble;
|
|
|
|
virJSONValueObjectAppendNumberInt;
|
|
|
|
virJSONValueObjectAppendNumberLong;
|
|
|
|
virJSONValueObjectAppendNumberUint;
|
|
|
|
virJSONValueObjectAppendNumberUlong;
|
|
|
|
virJSONValueObjectAppendString;
|
|
|
|
virJSONValueObjectGet;
|
|
|
|
virJSONValueObjectGetBoolean;
|
|
|
|
virJSONValueObjectGetKey;
|
|
|
|
virJSONValueObjectGetNumberDouble;
|
|
|
|
virJSONValueObjectGetNumberInt;
|
|
|
|
virJSONValueObjectGetNumberLong;
|
|
|
|
virJSONValueObjectGetNumberUint;
|
|
|
|
virJSONValueObjectGetNumberUlong;
|
|
|
|
virJSONValueObjectGetString;
|
|
|
|
virJSONValueObjectGetValue;
|
|
|
|
virJSONValueObjectHasKey;
|
|
|
|
virJSONValueObjectIsNull;
|
|
|
|
virJSONValueObjectKeysNumber;
|
|
|
|
virJSONValueToString;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virkeycode.h
|
2012-01-02 22:03:19 +00:00
|
|
|
virKeycodeSetTypeFromString;
|
|
|
|
virKeycodeSetTypeToString;
|
|
|
|
virKeycodeValueFromString;
|
|
|
|
virKeycodeValueTranslate;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virkeyfile.h
|
2012-03-16 16:29:49 +00:00
|
|
|
virKeyFileFree;
|
|
|
|
virKeyFileGetValueString;
|
2012-12-11 22:21:17 +00:00
|
|
|
virKeyFileHasGroup;
|
|
|
|
virKeyFileHasValue;
|
|
|
|
virKeyFileLoadData;
|
|
|
|
virKeyFileLoadFile;
|
|
|
|
virKeyFileNew;
|
2012-03-16 16:29:49 +00:00
|
|
|
|
|
|
|
|
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
|
|
|
|
virLogDefineFilter;
|
|
|
|
virLogDefineOutput;
|
|
|
|
virLogEmergencyDumpAll;
|
|
|
|
virLogGetDefaultPriority;
|
|
|
|
virLogGetFilters;
|
|
|
|
virLogGetNbFilters;
|
|
|
|
virLogGetNbOutputs;
|
|
|
|
virLogGetOutputs;
|
|
|
|
virLogLock;
|
|
|
|
virLogMessage;
|
|
|
|
virLogParseDefaultPriority;
|
|
|
|
virLogParseFilters;
|
|
|
|
virLogParseOutputs;
|
|
|
|
virLogReset;
|
|
|
|
virLogSetBufferSize;
|
|
|
|
virLogSetDefaultPriority;
|
|
|
|
virLogSetFromEnv;
|
|
|
|
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;
|
2012-07-17 12:07:59 +00:00
|
|
|
virMacAddrSet;
|
|
|
|
virMacAddrSetRaw;
|
2012-01-27 17:23:05 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdev.h
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevClearIPv4Address;
|
|
|
|
virNetDevExists;
|
2012-01-13 12:08:10 +00:00
|
|
|
virNetDevGetIndex;
|
2012-12-11 22:21:17 +00:00
|
|
|
virNetDevGetIPv4Address;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevGetMAC;
|
|
|
|
virNetDevGetMTU;
|
2011-11-18 16:07:48 +00:00
|
|
|
virNetDevGetPhysicalFunction;
|
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;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevIsOnline;
|
2011-11-18 16:07:48 +00:00
|
|
|
virNetDevIsVirtualFunction;
|
2012-03-06 01:12:34 +00:00
|
|
|
virNetDevLinkDump;
|
2011-11-18 16:07:48 +00:00
|
|
|
virNetDevReplaceMacAddress;
|
2012-03-06 01:12:34 +00:00
|
|
|
virNetDevReplaceNetConfig;
|
2011-11-18 16:07:48 +00:00
|
|
|
virNetDevRestoreMacAddress;
|
2012-03-06 01:12:34 +00:00
|
|
|
virNetDevRestoreNetConfig;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevSetIPv4Address;
|
|
|
|
virNetDevSetMAC;
|
|
|
|
virNetDevSetMTU;
|
|
|
|
virNetDevSetMTUFromDevice;
|
2011-11-16 02:59:57 +00:00
|
|
|
virNetDevSetName;
|
|
|
|
virNetDevSetNamespace;
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevSetOnline;
|
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;
|
|
|
|
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;
|
|
|
|
virNetDevBridgeGetSTP;
|
|
|
|
virNetDevBridgeGetSTPDelay;
|
|
|
|
virNetDevBridgeRemovePort;
|
|
|
|
virNetDevBridgeSetSTP;
|
|
|
|
virNetDevBridgeSetSTPDelay;
|
|
|
|
|
|
|
|
|
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;
|
2012-03-29 12:55:04 +00:00
|
|
|
virNetDevMacVLanRestartWithVPortProfile;
|
2012-03-29 11:15:00 +00:00
|
|
|
virNetDevMacVLanVPortProfileRegisterCallback;
|
2011-11-18 16:07:48 +00:00
|
|
|
|
|
|
|
|
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;
|
2012-02-10 21:09:00 +00:00
|
|
|
virNetDevOpenvswitchRemovePort;
|
2012-10-01 15:18:21 +00:00
|
|
|
virNetDevOpenvswitchSetMigrateData;
|
2012-02-10 21:09:00 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnetdevtap.h
|
2011-11-11 05:50:46 +00:00
|
|
|
virNetDevTapCreate;
|
|
|
|
virNetDevTapCreateInBridgePort;
|
|
|
|
virNetDevTapDelete;
|
|
|
|
|
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;
|
|
|
|
virNetDevVPortProfileDisassociate;
|
|
|
|
virNetDevVPortProfileEqual;
|
|
|
|
virNetDevVPortProfileMerge3;
|
|
|
|
virNetDevVPortProfileOpTypeFromString;
|
|
|
|
virNetDevVPortProfileOpTypeToString;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virnetlink.h
|
|
|
|
virNetlinkCommand;
|
|
|
|
virNetlinkEventAddClient;
|
|
|
|
virNetlinkEventRemoveClient;
|
|
|
|
virNetlinkEventServiceIsRunning;
|
|
|
|
virNetlinkEventServiceLocalPid;
|
|
|
|
virNetlinkEventServiceStart;
|
|
|
|
virNetlinkEventServiceStop;
|
|
|
|
virNetlinkEventServiceStopAll;
|
|
|
|
virNetlinkShutdown;
|
|
|
|
virNetlinkStartup;
|
2011-09-30 13:38:39 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virnodesuspend.h
|
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
|
|
|
nodeSuspendForDuration;
|
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-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;
|
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;
|
|
|
|
virObjectIsClass;
|
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;
|
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
|
|
|
|
virPCIDeviceAddressGetSysfsFile;
|
|
|
|
virPCIDeviceDetach;
|
|
|
|
virPCIDeviceFileIterate;
|
|
|
|
virPCIDeviceFree;
|
|
|
|
virPCIDeviceGetManaged;
|
|
|
|
virPCIDeviceGetName;
|
|
|
|
virPCIDeviceGetRemoveSlot;
|
|
|
|
virPCIDeviceGetReprobe;
|
|
|
|
virPCIDeviceGetUnbindFromStub;
|
|
|
|
virPCIDeviceGetUsedBy;
|
|
|
|
virPCIDeviceIsAssignable;
|
|
|
|
virPCIDeviceListAdd;
|
|
|
|
virPCIDeviceListCount;
|
|
|
|
virPCIDeviceListDel;
|
|
|
|
virPCIDeviceListFind;
|
|
|
|
virPCIDeviceListFindIndex;
|
|
|
|
virPCIDeviceListGet;
|
|
|
|
virPCIDeviceListNew;
|
|
|
|
virPCIDeviceListSteal;
|
|
|
|
virPCIDeviceListStealIndex;
|
|
|
|
virPCIDeviceNew;
|
|
|
|
virPCIDeviceReattach;
|
|
|
|
virPCIDeviceReattachInit;
|
|
|
|
virPCIDeviceReset;
|
|
|
|
virPCIDeviceSetManaged;
|
|
|
|
virPCIDeviceSetRemoveSlot;
|
|
|
|
virPCIDeviceSetReprobe;
|
|
|
|
virPCIDeviceSetUnbindFromStub;
|
|
|
|
virPCIDeviceSetUsedBy;
|
|
|
|
virPCIDeviceWaitForCleanup;
|
|
|
|
virPCIGetNetName;
|
|
|
|
virPCIGetPhysicalFunction;
|
|
|
|
virPCIGetVirtualFunctionIndex;
|
|
|
|
virPCIGetVirtualFunctionInfo;
|
|
|
|
virPCIGetVirtualFunctions;
|
|
|
|
virPCIIsVirtualFunction;
|
|
|
|
|
|
|
|
|
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;
|
2012-12-11 22:21:17 +00:00
|
|
|
virPidFileDelete;
|
|
|
|
virPidFileDeletePath;
|
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-02-16 03:25:09 +00:00
|
|
|
# util/virportallocator.h
|
2013-01-09 15:11:50 +00:00
|
|
|
virPortAllocatorAcquire;
|
|
|
|
virPortAllocatorNew;
|
|
|
|
virPortAllocatorRelease;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virprocess.h
|
2012-09-24 17:10:37 +00:00
|
|
|
virProcessAbort;
|
2012-12-13 14:58:41 +00:00
|
|
|
virProcessGetAffinity;
|
2012-12-21 16:50:18 +00:00
|
|
|
virProcessGetNamespaces;
|
2012-09-24 16:54:51 +00:00
|
|
|
virProcessKill;
|
2012-09-26 14:42:58 +00:00
|
|
|
virProcessKillPainfully;
|
2012-12-13 14:58:41 +00:00
|
|
|
virProcessSetAffinity;
|
2012-12-21 16:50:18 +00:00
|
|
|
virProcessSetNamespaces;
|
2012-09-24 17:10:37 +00:00
|
|
|
virProcessTranslateStatus;
|
|
|
|
virProcessWait;
|
|
|
|
|
2012-09-24 16:54:51 +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;
|
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
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virsexpr.h
|
|
|
|
sexpr2string;
|
|
|
|
sexpr_append;
|
|
|
|
sexpr_cons;
|
|
|
|
sexpr_float;
|
|
|
|
sexpr_fmt_node;
|
|
|
|
sexpr_free;
|
|
|
|
sexpr_has;
|
|
|
|
sexpr_int;
|
|
|
|
sexpr_lookup;
|
|
|
|
sexpr_nil;
|
|
|
|
sexpr_node;
|
|
|
|
sexpr_node_copy;
|
|
|
|
sexpr_string;
|
|
|
|
sexpr_u64;
|
|
|
|
string2sexpr;
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
virSocketAddrGetPort;
|
|
|
|
virSocketAddrGetRange;
|
|
|
|
virSocketAddrIsNetmask;
|
2012-11-22 02:17:30 +00:00
|
|
|
virSocketAddrIsPrivate;
|
2011-11-18 16:07:48 +00:00
|
|
|
virSocketAddrMask;
|
|
|
|
virSocketAddrMaskByPrefix;
|
|
|
|
virSocketAddrParse;
|
|
|
|
virSocketAddrParseIPv4;
|
|
|
|
virSocketAddrParseIPv6;
|
|
|
|
virSocketAddrPrefixToNetmask;
|
2012-04-25 13:53:29 +00:00
|
|
|
virSocketAddrSetIPv4Addr;
|
2011-11-18 16:07:48 +00:00
|
|
|
virSocketAddrSetPort;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virstoragefile.h
|
|
|
|
virStorageFileChainLookup;
|
|
|
|
virStorageFileFormatTypeFromString;
|
|
|
|
virStorageFileFormatTypeToString;
|
|
|
|
virStorageFileFreeMetadata;
|
|
|
|
virStorageFileGetLVMKey;
|
|
|
|
virStorageFileGetMetadata;
|
|
|
|
virStorageFileGetMetadataFromFD;
|
|
|
|
virStorageFileGetSCSIKey;
|
|
|
|
virStorageFileIsClusterFS;
|
|
|
|
virStorageFileIsSharedFS;
|
|
|
|
virStorageFileIsSharedFSType;
|
|
|
|
virStorageFileProbeFormat;
|
|
|
|
virStorageFileProbeFormatFromFD;
|
|
|
|
virStorageFileResize;
|
2009-01-05 14:05:29 +00:00
|
|
|
|
2011-11-29 12:11:01 +00:00
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virstring.h
|
2012-11-30 15:21:02 +00:00
|
|
|
virStringFreeList;
|
2012-12-11 22:21:17 +00:00
|
|
|
virStringJoin;
|
|
|
|
virStringSplit;
|
2012-11-30 15:21:02 +00:00
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virsysinfo.h
|
|
|
|
virSysinfoDefFree;
|
|
|
|
virSysinfoFormat;
|
|
|
|
virSysinfoRead;
|
|
|
|
virSysinfoSetup;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virthread.h
|
|
|
|
virCondBroadcast;
|
|
|
|
virCondDestroy;
|
|
|
|
virCondInit;
|
|
|
|
virCondSignal;
|
|
|
|
virCondWait;
|
|
|
|
virCondWaitUntil;
|
|
|
|
virMutexDestroy;
|
|
|
|
virMutexInit;
|
|
|
|
virMutexInitRecursive;
|
|
|
|
virMutexLock;
|
|
|
|
virMutexUnlock;
|
|
|
|
virOnce;
|
|
|
|
virThreadCreate;
|
|
|
|
virThreadID;
|
|
|
|
virThreadInitialize;
|
|
|
|
virThreadIsSelf;
|
|
|
|
virThreadJoin;
|
|
|
|
virThreadSelf;
|
|
|
|
virThreadSelfID;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virthreadpool.h
|
|
|
|
virThreadPoolFree;
|
|
|
|
virThreadPoolGetMaxWorkers;
|
|
|
|
virThreadPoolGetMinWorkers;
|
|
|
|
virThreadPoolGetPriorityWorkers;
|
|
|
|
virThreadPoolNew;
|
|
|
|
virThreadPoolSendJob;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virtime.h
|
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;
|
2011-12-05 14:04:25 +00:00
|
|
|
virTimeFieldsThenRaw;
|
|
|
|
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-02-16 03:25:09 +00:00
|
|
|
# util/virtypedparam.h
|
2012-01-02 22:03:19 +00:00
|
|
|
virTypedParameterArrayValidate;
|
|
|
|
virTypedParameterAssign;
|
2012-09-06 12:47:40 +00:00
|
|
|
virTypedParameterAssignFromStr;
|
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;
|
2012-02-24 18:48:55 +00:00
|
|
|
virURIParse;
|
|
|
|
|
|
|
|
|
2013-02-16 03:34:42 +00:00
|
|
|
# util/virusb.h
|
|
|
|
virUSBDeviceFileIterate;
|
|
|
|
virUSBDeviceFind;
|
|
|
|
virUSBDeviceFindByBus;
|
|
|
|
virUSBDeviceFindByVendor;
|
|
|
|
virUSBDeviceFree;
|
|
|
|
virUSBDeviceGetBus;
|
|
|
|
virUSBDeviceGetDevno;
|
|
|
|
virUSBDeviceGetName;
|
|
|
|
virUSBDeviceGetUsedBy;
|
|
|
|
virUSBDeviceListAdd;
|
|
|
|
virUSBDeviceListCount;
|
|
|
|
virUSBDeviceListDel;
|
|
|
|
virUSBDeviceListFind;
|
|
|
|
virUSBDeviceListGet;
|
|
|
|
virUSBDeviceListNew;
|
|
|
|
virUSBDeviceListSteal;
|
|
|
|
virUSBDeviceNew;
|
|
|
|
virUSBDeviceSetUsedBy;
|
|
|
|
|
|
|
|
|
|
|
|
# util/virutil.h
|
|
|
|
saferead;
|
|
|
|
safewrite;
|
|
|
|
safezero;
|
|
|
|
virArgvToString;
|
|
|
|
virAsprintf;
|
|
|
|
virBuildPathInternal;
|
|
|
|
virDirCreate;
|
|
|
|
virDoubleToStr;
|
|
|
|
virEnumFromString;
|
|
|
|
virEnumToString;
|
|
|
|
virFileAbsPath;
|
|
|
|
virFileAccessibleAs;
|
|
|
|
virFileBuildPath;
|
|
|
|
virFileExists;
|
|
|
|
virFileFindMountPoint;
|
|
|
|
virFileHasSuffix;
|
|
|
|
virFileIsAbsPath;
|
|
|
|
virFileIsDir;
|
|
|
|
virFileIsExecutable;
|
|
|
|
virFileIsLink;
|
|
|
|
virFileLinkPointsTo;
|
|
|
|
virFileLock;
|
|
|
|
virFileMakePath;
|
|
|
|
virFileMakePathWithMode;
|
|
|
|
virFileMatchesNameSuffix;
|
|
|
|
virFileOpenAs;
|
|
|
|
virFileOpenTty;
|
|
|
|
virFileReadAll;
|
|
|
|
virFileReadLimFD;
|
|
|
|
virFileResolveAllLinks;
|
|
|
|
virFileResolveLink;
|
|
|
|
virFileSanitizePath;
|
|
|
|
virFileSkipRoot;
|
|
|
|
virFileStripSuffix;
|
|
|
|
virFileUnlock;
|
|
|
|
virFileWaitForDevices;
|
|
|
|
virFileWriteStr;
|
|
|
|
virFindFileInPath;
|
|
|
|
virFormatIntDecimal;
|
|
|
|
virGetDeviceID;
|
|
|
|
virGetDeviceUnprivSGIO;
|
|
|
|
virGetGroupID;
|
|
|
|
virGetGroupName;
|
|
|
|
virGetHostname;
|
|
|
|
virGetUnprivSGIOSysfsPath;
|
|
|
|
virGetUserCacheDirectory;
|
|
|
|
virGetUserConfigDirectory;
|
|
|
|
virGetUserDirectory;
|
|
|
|
virGetUserID;
|
|
|
|
virGetUserName;
|
|
|
|
virGetUserRuntimeDirectory;
|
|
|
|
virHexToBin;
|
|
|
|
virIndexToDiskName;
|
|
|
|
virIsDevMapperDevice;
|
|
|
|
virParseNumber;
|
|
|
|
virParseVersionString;
|
|
|
|
virPipeReadUntilEOF;
|
|
|
|
virScaleInteger;
|
|
|
|
virSetBlocking;
|
|
|
|
virSetCloseExec;
|
|
|
|
virSetDeviceUnprivSGIO;
|
|
|
|
virSetInherit;
|
|
|
|
virSetNonBlock;
|
|
|
|
virSetUIDGID;
|
|
|
|
virSetUIDGIDWithCaps;
|
|
|
|
virSkipSpaces;
|
|
|
|
virSkipSpacesAndBackslash;
|
|
|
|
virSkipSpacesBackwards;
|
|
|
|
virStrcpy;
|
|
|
|
virStrIsPrint;
|
|
|
|
virStrncpy;
|
|
|
|
virStrToDouble;
|
|
|
|
virStrToLong_i;
|
|
|
|
virStrToLong_l;
|
|
|
|
virStrToLong_ll;
|
|
|
|
virStrToLong_ui;
|
|
|
|
virStrToLong_ul;
|
|
|
|
virStrToLong_ull;
|
|
|
|
virTrimSpaces;
|
|
|
|
virValidateWWN;
|
|
|
|
virVasprintf;
|
|
|
|
|
|
|
|
|
|
|
|
# util/viruuid.h
|
|
|
|
virGetHostUUID;
|
|
|
|
virSetHostUUIDStr;
|
|
|
|
virUUIDFormat;
|
|
|
|
virUUIDGenerate;
|
|
|
|
virUUIDIsValid;
|
|
|
|
virUUIDParse;
|
|
|
|
|
|
|
|
|
2013-02-16 03:25:09 +00:00
|
|
|
# util/virxml.h
|
2011-12-07 22:06:18 +00:00
|
|
|
virXMLChildElementCount;
|
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;
|
2011-10-06 09:57:06 +00:00
|
|
|
virXMLSaveFile;
|
2009-11-26 17:57:00 +00:00
|
|
|
virXPathBoolean;
|
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:
|