# HG changeset patch # User john.levon@xxxxxxx # Date 1230005985 28800 # Node ID 9621540df10095ea8b0cdc83cdd3d17a68509a64 # Parent 60090fd4e447795742265241b39f2759d9530514 Split out version script into multiple files Some (private) symbols disappear depending on build options. Introduce infrastructure to account for this correctly, and use it for --enable-debug related symbols. Signed-off-by: John Levon <john.levon@xxxxxxx> diff --git a/configure.in b/configure.in --- a/configure.in +++ b/configure.in @@ -195,6 +195,7 @@ AC_ARG_ENABLE([debug], AC_ARG_ENABLE([debug], [AC_HELP_STRING([--enable-debug=no/yes], [enable debugging output])],[],[enable_debug=yes]) +AM_CONDITIONAL([ENABLE_DEBUG], test x"$enable_debug" = x"yes") if test x"$enable_debug" = x"yes"; then AC_DEFINE([ENABLE_DEBUG], [], [whether debugging is enabled]) fi @@ -1253,7 +1254,6 @@ AC_OUTPUT(Makefile src/Makefile include/ gnulib/lib/Makefile \ gnulib/tests/Makefile \ libvirt.pc libvirt.spec mingw32-libvirt.spec \ - src/libvirt_sym.version \ include/libvirt/Makefile include/libvirt/libvirt.h \ python/Makefile python/tests/Makefile \ qemud/Makefile \ diff --git a/src/Makefile.am b/src/Makefile.am --- a/src/Makefile.am +++ b/src/Makefile.am @@ -191,6 +191,8 @@ libvirt_driver_la_SOURCES = \ libvirt_driver_la_CFLAGS = $(XEN_CFLAGS) $(NUMACTL_CFLAGS) libvirt_driver_la_LDFLAGS = $(XEN_LIBS) $(NUMACTL_LIBS) + +PRIVSYMFILES = libvirt_private.syms if WITH_TEST if WITH_DRIVER_MODULES @@ -390,31 +392,65 @@ EXTRA_DIST += \ $(NODE_DEVICE_DRIVER_HAL_SOURCES) \ $(NODE_DEVICE_DRIVER_DEVKIT_SOURCES) +# +# Build our version script. This is composed of three parts: +# +# 1. libvirt_public.syms - public API. These functions are always +# present in the library and should never change incompatibly. +# +# 2. libvirt_private.syms - private API. These symbols are private and +# semantics may change on every release, hence the version number is +# spliced in at build time. This ensures that if libvirtd, virsh, or a +# driver module was built against one libvirt release, it will refuse to +# load with another where symbols may have same names but different +# semantics. Such symbols should never be visible in an (installed) +# public header file. +# +# 3. libvirt_*.syms - dynamic private API. Like libvirt_private.syms, +# except that build options (such as --enable-debug) can mean these +# symbols aren't present at all. +# + +if ENABLE_DEBUG +PRIVSYMFILES += libvirt_debug.syms +endif + +EXTRA_DIST += libvirt_public.syms $(PRIVSYMFILES) + +libvirt.syms: libvirt_public.syms $(PRIVSYMFILES) + rm -f $@-tmp + cat $(srcdir)/libvirt_public.syms >$@-tmp + printf "\n\n# Private symbols\n\n" >>$@-tmp + printf "LIBVIRT_PRIVATE_@VERSION@ {\n\n" >>$@-tmp + printf "global:\n\n" >>$@-tmp + for file in $(PRIVSYMFILES); do \ + cat $(srcdir)/$${file} >>$@-tmp ; \ + done + printf "\n\nlocal:\n*;\n\n};" >>$@-tmp + mv $@-tmp libvirt.syms # Empty source list - it merely links a bunch of convenience libs together libvirt_la_SOURCES = libvirt_la_LIBADD += \ @CYGWIN_EXTRA_LIBADD@ ../gnulib/lib/libgnu.la -libvirt_la_LDFLAGS = @VERSION_SCRIPT_FLAGS@xxxxxxxxxxxxxxxxxxx \ +libvirt_la_LDFLAGS = @VERSION_SCRIPT_FLAGS@xxxxxxxxxxxx \ -version-info @LIBVIRT_VERSION_INFO@ \ $(COVERAGE_CFLAGS:-f%=-Wc,-f%) \ $(LIBXML_LIBS) $(SELINUX_LIBS) \ $(XEN_LIBS) $(DRIVER_MODULE_LIBS) \ @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@ libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT -libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt_sym.version +libvirt_la_DEPENDENCIES = $(libvirt_la_LIBADD) libvirt.syms # Create an automake "convenience library" version of libvirt_la, # just for testing, since the test harness requires access to internal # bits and pieces that we don't want to make publicly accessible. noinst_LTLIBRARIES += libvirt_test.la -# Convert libvirt_sym.version -# to libvirt_test_sym.version, and -# remove -version-info X.Y.Z (not needed since this is a convenience library. +# Remove version script from convenience library test_LDFLAGS = \ $$(echo '$(libvirt_la_LDFLAGS)' \ - |sed 's!-Wl,--v.*_sym\.version!!' \ + |sed 's!@VERSION_SCRIPT_FLAGS@libvirt.syms!!' \ |sed 's!-version-info @LIBVIRT_VERSION_INFO@!!') # Just like the above, but with a slightly different set of public symbols. @@ -438,7 +474,7 @@ virsh_LDADD = \ ../gnulib/lib/libgnu.la \ $(VIRSH_LIBS) virsh_CFLAGS = $(COVERAGE_CFLAGS) $(READLINE_CFLAGS) $(NUMACTL_CFLAGS) -BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c +BUILT_SOURCES = virsh-net-edit.c virsh-pool-edit.c libvirt.syms virsh-net-edit.c: virsh.c Makefile.am rm -f $@-tmp diff --git a/src/libvirt_debug.syms b/src/libvirt_debug.syms new file mode 100644 --- /dev/null +++ b/src/libvirt_debug.syms @@ -0,0 +1,19 @@ +# +# These symbols are dependent upon --enable-debug. +# + + +# libvirt_internal.h +debugFlag; + + +# logging.h +virLogMessage; +virLogSetDefaultPriority; +virLogDefineFilter; +virLogDefineOutput; +virLogParseFilters; +virLogParseOutputs; +virLogStartup; +virLogShutdown; +virLogReset; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms new file mode 100644 --- /dev/null +++ b/src/libvirt_private.syms @@ -0,0 +1,346 @@ +# +# General private symbols. See Makefile.am. +# + + +# bridge.h +brAddBridge; +brAddInterface; +brAddTap; +brDeleteBridge; +brInit; +brSetEnableSTP; +brSetForwardDelay; +brSetInetAddress; +brSetInetNetmask; +brSetInterfaceUp; +brShutdown; + + +# buf.h +virBufferVSprintf; +virBufferEscapeString; +virBufferAdd; +virBufferAddChar; +virBufferContentAndReset; +virBufferError; + + +# caps.h +virCapabilitiesAddGuest; +virCapabilitiesAddGuestDomain; +virCapabilitiesAddGuestFeature; +virCapabilitiesAddHostMigrateTransport; +virCapabilitiesAddHostNUMACell; +virCapabilitiesAddHostFeature; +virCapabilitiesDefaultGuestArch; +virCapabilitiesDefaultGuestEmulator; +virCapabilitiesDefaultGuestMachine; +virCapabilitiesFormatXML; +virCapabilitiesFree; +virCapabilitiesNew; +virCapabilitiesSetMacPrefix; + + +# conf.h +virConfNew; +virConfReadFile; +virConfReadMem; +virConfFree; +virConfFreeValue; +virConfGetValue; +virConfSetValue; +virConfWriteFile; +virConfWriteMem; + + +# datatypes.h +virGetDomain; +virGetNetwork; +virGetStoragePool; +virGetStorageVol; +virGetNodeDevice; +virUnrefDomain; + + +# domain_conf.h +virDiskNameToBusDeviceIndex; +virDiskNameToIndex; +virDomainAssignDef; +virDomainConfigFile; +virDomainCpuSetFormat; +virDomainCpuSetParse; +virDomainChrDefFree; +virDomainChrTypeFromString; +virDomainChrTypeToString; +virDomainDefDefaultEmulator; +virDomainDefFormat; +virDomainDefFree; +virDomainDefParseFile; +virDomainDefParseNode; +virDomainDefParseString; +virDomainDeleteConfig; +virDomainDeviceDefFree; +virDomainDeviceDefParse; +virDomainDiskBusTypeToString; +virDomainDiskDefFree; +virDomainDiskDeviceTypeToString; +virDomainDiskQSort; +virDomainFindByID; +virDomainFindByName; +virDomainFindByUUID; +virDomainGraphicsTypeFromString; +virDomainGraphicsDefFree; +virDomainInputDefFree; +virDomainLifecycleTypeFromString; +virDomainLifecycleTypeToString; +virDomainLoadAllConfigs; +virDomainNetDefFree; +virDomainObjFree; +virDomainObjListFree; +virDomainRemoveInactive; +virDomainSaveXML; +virDomainSaveConfig; +virDomainSoundDefFree; +virDomainSoundModelTypeFromString; +virDomainSoundModelTypeToString; +virDomainVirtTypeToString; +virDomainFSDefFree; +virDomainObjLock; +virDomainObjUnlock; + + +# domain_event.h +virDomainEventCallbackListAdd; +virDomainEventCallbackListFree; +virDomainEventCallbackListRemove; +virDomainEventCallbackListRemoveConn; +virDomainEventCallbackListMarkDelete; +virDomainEventCallbackListPurgeMarked; +virDomainEventQueueNew; +virDomainEventQueueFree; +virDomainEventQueuePop; +virDomainEventQueuePush; +virDomainEventNew; +virDomainEventNewFromDom; +virDomainEventNewFromObj; +virDomainEventNewFromDef; +virDomainEventFree; +virDomainEventDispatchDefaultFunc; +virDomainEventDispatch; +virDomainEventQueueDispatch; + + +# driver.h +virDriverLoadModule; + + +# event.h +virEventAddHandle; +virEventAddTimeout; +virEventRemoveHandle; +virEventRemoveTimeout; +virEventUpdateHandle; +virEventUpdateTimeout; + + +# hash.h +virHashAddEntry; +virHashCreate; +virHashForEach; +virHashFree; +virHashLookup; +virHashRemoveEntry; +virHashRemoveSet; +virHashSearch; +virHashSize; + + +# iptables.h +iptablesAddForwardAllowCross; +iptablesAddForwardAllowIn; +iptablesAddForwardAllowOut; +iptablesAddForwardAllowRelatedIn; +iptablesAddForwardMasquerade; +iptablesAddForwardRejectIn; +iptablesAddForwardRejectOut; +iptablesAddTcpInput; +iptablesAddUdpInput; +iptablesContextFree; +iptablesContextNew; +iptablesReloadRules; +iptablesRemoveForwardAllowCross; +iptablesRemoveForwardAllowIn; +iptablesRemoveForwardAllowOut; +iptablesRemoveForwardAllowRelatedIn; +iptablesRemoveForwardMasquerade; +iptablesRemoveForwardRejectIn; +iptablesRemoveForwardRejectOut; +iptablesRemoveTcpInput; +iptablesRemoveUdpInput; +iptablesSaveRules; + + +# libvirt_internal.h +virStateInitialize; +virStateCleanup; +virStateReload; +virStateActive; +virDrvSupportsFeature; +virDomainMigratePrepare; +virDomainMigratePerform; +virDomainMigrateFinish; +virDomainMigratePrepare2; +virDomainMigrateFinish2; +virRegisterDriver; +virRegisterNetworkDriver; +virRegisterStateDriver; +virRegisterStorageDriver; +virRegisterDeviceMonitor; + + +# memory.h +virAlloc; +virAllocN; +virReallocN; +virFree; + + +# network_conf.h +virNetworkAssignDef; +virNetworkDefFormat; +virNetworkDefFree; +virNetworkDefParseFile; +virNetworkDefParseNode; +virNetworkDefParseString; +virNetworkDeleteConfig; +virNetworkFindByName; +virNetworkFindByUUID; +virNetworkLoadAllConfigs; +virNetworkObjListFree; +virNetworkDefParseNode; +virNetworkRemoveInactive; +virNetworkSaveConfig; +virNetworkObjLock; +virNetworkObjUnlock; + + +# nodeinfo.h +virNodeInfoPopulate; +virCapsInitNUMA; + + +# node_device_conf.h +virNodeDeviceObjRemove; +virNodeDevCapTypeToString; +virNodeDeviceFindByName; +virNodeDeviceObjListFree; +virNodeDeviceDefFree; +virNodeDevCapsDefFree; +virNodeDeviceDefFormat; +virNodeDeviceObjLock; +virNodeDeviceObjUnlock; +virNodeDeviceAssignDef; + + +# qparams.h +qparam_get_query; +qparam_query_parse; +free_qparam_set; + + +# stats_linux.h +linuxDomainInterfaceStats; +xenLinuxDomainBlockStats; + + +# storage_backend.h +virStorageBackendForType; +virStorageBackendRunProgNul; +virStorageBackendRunProgRegex; +virStorageBackendStablePath; +virStorageBackendUpdateVolInfo; +virStorageBackendUpdateVolInfoFD; + + +# storage_conf.h +virStoragePoolDefFormat; +virStoragePoolDefFree; +virStoragePoolDefParse; +virStoragePoolLoadAllConfigs; +virStoragePoolObjAssignDef; +virStoragePoolObjClearVols; +virStoragePoolObjDeleteDef; +virStoragePoolObjFindByName; +virStoragePoolObjFindByUUID; +virStoragePoolObjListFree; +virStoragePoolObjRemove; +virStoragePoolObjSaveDef; +virStoragePoolSourceFree; +virStoragePoolSourceListFormat; +virStorageVolDefFindByKey; +virStorageVolDefFindByName; +virStorageVolDefFindByPath; +virStorageVolDefFormat; +virStorageVolDefFree; +virStorageVolDefParse; +virStoragePoolFormatDiskTypeToString; +virStoragePoolFormatFileSystemTypeToString; +virStoragePoolFormatFileSystemNetTypeToString; +virStorageVolFormatFileSystemTypeToString; +virStoragePoolTypeFromString; +virStoragePoolObjLock; +virStoragePoolObjUnlock; + + +# util.h +virFileReadAll; +virStrToLong_i; +virStrToLong_ll; +virStrToLong_ull; +virStrToLong_ui; +virFileLinkPointsTo; +saferead; +safewrite; +virMacAddrCompare; +virEnumFromString; +virEnumToString; +virEventAddHandle; +virEventRemoveHandle; +virExec; +virFormatMacAddr; +virParseMacAddr; +virFileDeletePid; +virFileExists; +virFileHasSuffix; +virFileLinkPointsTo; +virFileMakePath; +virFileOpenTty; +virFileReadLimFD; +virFilePid; +virFileReadPid; +virFileLinkPointsTo; +virParseNumber; +virAsprintf; +virRun; +virSkipSpaces; + + +# uuid.h +virUUIDFormat; +virUUIDGenerate; +virUUIDParse; + + +# virterror_internal.h +virReportErrorHelper; +virErrorMsg; +virRaiseError; + + +# xml.h +virXPathLong; +virXPathNode; +virXPathNodeSet; +virXPathString; +virXMLPropString; diff --git a/src/libvirt_sym.version.in b/src/libvirt_public.syms rename from src/libvirt_sym.version.in rename to src/libvirt_public.syms --- a/src/libvirt_public.syms +++ b/src/libvirt_public.syms @@ -1,11 +1,5 @@ # -# WARNING: libvirt_sym.version.in is the master file -# -# WARNING: libvirt_sym.version is auto-generated by configure -# - -# -# First officially exported symbols, for which header +# Officially exported symbols, for which header # file definitions are installed in /usr/include/libvirt # either from libvirt.h and virterror.h # @@ -244,383 +238,3 @@ LIBVIRT_0.5.0 { # no new entry point in 0.5.1 # .... define new API here using predicted next version number .... - - - - -# Finally these symbols are private and semantics may change -# on every release, hence the version number is spliced in at -# build time. This ensures that if libvirtd, virsh, or a driver -# module was built against one libvirt release, it will refuse -# to load with another where symbols may have same names but -# different semantics. -# -# No header files are provided outside the source tree. -# -# Keep this section ordered alphabetically by header file name -# -# Symbols here are only for use by virsh, libvirtd and dlopen -# driver modules -# -LIBVIRT_PRIVATE_@VERSION@ { - - global: - # bridge.h - brAddBridge; - brAddInterface; - brAddTap; - brDeleteBridge; - brInit; - brSetEnableSTP; - brSetForwardDelay; - brSetInetAddress; - brSetInetNetmask; - brSetInterfaceUp; - brShutdown; - - - # buf.h - virBufferVSprintf; - virBufferEscapeString; - virBufferAdd; - virBufferAddChar; - virBufferContentAndReset; - virBufferError; - - - # caps.h - virCapabilitiesAddGuest; - virCapabilitiesAddGuestDomain; - virCapabilitiesAddGuestFeature; - virCapabilitiesAddHostMigrateTransport; - virCapabilitiesAddHostNUMACell; - virCapabilitiesAddHostFeature; - virCapabilitiesDefaultGuestArch; - virCapabilitiesDefaultGuestEmulator; - virCapabilitiesDefaultGuestMachine; - virCapabilitiesFormatXML; - virCapabilitiesFree; - virCapabilitiesNew; - virCapabilitiesSetMacPrefix; - - - # conf.h - virConfNew; - virConfReadFile; - virConfReadMem; - virConfFree; - virConfFreeValue; - virConfGetValue; - virConfSetValue; - virConfWriteFile; - virConfWriteMem; - - - # datatypes.h - virGetDomain; - virGetNetwork; - virGetStoragePool; - virGetStorageVol; - virGetNodeDevice; - virUnrefDomain; - - - # domain_conf.h - virDiskNameToBusDeviceIndex; - virDiskNameToIndex; - virDomainAssignDef; - virDomainConfigFile; - virDomainCpuSetFormat; - virDomainCpuSetParse; - virDomainChrDefFree; - virDomainChrTypeFromString; - virDomainChrTypeToString; - virDomainDefDefaultEmulator; - virDomainDefFormat; - virDomainDefFree; - virDomainDefParseFile; - virDomainDefParseNode; - virDomainDefParseString; - virDomainDeleteConfig; - virDomainDeviceDefFree; - virDomainDeviceDefParse; - virDomainDiskBusTypeToString; - virDomainDiskDefFree; - virDomainDiskDeviceTypeToString; - virDomainDiskQSort; - virDomainFindByID; - virDomainFindByName; - virDomainFindByUUID; - virDomainGraphicsTypeFromString; - virDomainGraphicsDefFree; - virDomainInputDefFree; - virDomainLifecycleTypeFromString; - virDomainLifecycleTypeToString; - virDomainLoadAllConfigs; - virDomainNetDefFree; - virDomainObjFree; - virDomainObjListFree; - virDomainRemoveInactive; - virDomainSaveXML; - virDomainSaveConfig; - virDomainSoundDefFree; - virDomainSoundModelTypeFromString; - virDomainSoundModelTypeToString; - virDomainVirtTypeToString; - virDomainFSDefFree; - virDomainObjLock; - virDomainObjUnlock; - - - # domain_event.h - virDomainEventCallbackListAdd; - virDomainEventCallbackListFree; - virDomainEventCallbackListRemove; - virDomainEventCallbackListRemoveConn; - virDomainEventCallbackListMarkDelete; - virDomainEventCallbackListPurgeMarked; - virDomainEventQueueNew; - virDomainEventQueueFree; - virDomainEventQueuePop; - virDomainEventQueuePush; - virDomainEventNew; - virDomainEventNewFromDom; - virDomainEventNewFromObj; - virDomainEventNewFromDef; - virDomainEventFree; - virDomainEventDispatchDefaultFunc; - virDomainEventDispatch; - virDomainEventQueueDispatch; - - - - # driver.h - virDriverLoadModule; - - - # event.h - virEventAddHandle; - virEventAddTimeout; - virEventRemoveHandle; - virEventRemoveTimeout; - virEventUpdateHandle; - virEventUpdateTimeout; - - - # hash.h - virHashAddEntry; - virHashCreate; - virHashForEach; - virHashFree; - virHashLookup; - virHashRemoveEntry; - virHashRemoveSet; - virHashSearch; - virHashSize; - - - # iptables.h - iptablesAddForwardAllowCross; - iptablesAddForwardAllowIn; - iptablesAddForwardAllowOut; - iptablesAddForwardAllowRelatedIn; - iptablesAddForwardMasquerade; - iptablesAddForwardRejectIn; - iptablesAddForwardRejectOut; - iptablesAddTcpInput; - iptablesAddUdpInput; - iptablesContextFree; - iptablesContextNew; - iptablesReloadRules; - iptablesRemoveForwardAllowCross; - iptablesRemoveForwardAllowIn; - iptablesRemoveForwardAllowOut; - iptablesRemoveForwardAllowRelatedIn; - iptablesRemoveForwardMasquerade; - iptablesRemoveForwardRejectIn; - iptablesRemoveForwardRejectOut; - iptablesRemoveTcpInput; - iptablesRemoveUdpInput; - iptablesSaveRules; - - - # libvirt_internal.h - debugFlag; - virStateInitialize; - virStateCleanup; - virStateReload; - virStateActive; - virDrvSupportsFeature; - virDomainMigratePrepare; - virDomainMigratePerform; - virDomainMigrateFinish; - virDomainMigratePrepare2; - virDomainMigrateFinish2; - virRegisterDriver; - virRegisterNetworkDriver; - virRegisterStateDriver; - virRegisterStorageDriver; - virRegisterDeviceMonitor; - - # logging.h - virLogSetDefaultPriority; - virLogDefineFilter; - virLogDefineOutput; - virLogParseFilters; - virLogParseOutputs; - virLogStartup; - virLogShutdown; - virLogReset; - virLogMessage; - - # memory.h - virAlloc; - virAllocN; - virReallocN; - virFree; - - - # network_conf.h - virNetworkAssignDef; - virNetworkDefFormat; - virNetworkDefFree; - virNetworkDefParseFile; - virNetworkDefParseNode; - virNetworkDefParseString; - virNetworkDeleteConfig; - virNetworkFindByName; - virNetworkFindByUUID; - virNetworkLoadAllConfigs; - virNetworkObjListFree; - virNetworkDefParseNode; - virNetworkRemoveInactive; - virNetworkSaveConfig; - virNetworkObjLock; - virNetworkObjUnlock; - - - # nodeinfo.h - virNodeInfoPopulate; - virCapsInitNUMA; - - - # node_device_conf.h - virNodeDeviceObjRemove; - virNodeDevCapTypeToString; - virNodeDeviceFindByName; - virNodeDeviceObjListFree; - virNodeDeviceDefFree; - virNodeDevCapsDefFree; - virNodeDeviceDefFormat; - virNodeDeviceObjLock; - virNodeDeviceObjUnlock; - virNodeDeviceAssignDef; - - - # qparams.h - qparam_get_query; - qparam_query_parse; - free_qparam_set; - - - # stats_linux.h - linuxDomainInterfaceStats; - xenLinuxDomainBlockStats; - - - # storage_backend.h - virStorageBackendForType; - virStorageBackendRunProgNul; - virStorageBackendRunProgRegex; - virStorageBackendStablePath; - virStorageBackendUpdateVolInfo; - virStorageBackendUpdateVolInfoFD; - - - # storage_conf.h - virStoragePoolDefFormat; - virStoragePoolDefFree; - virStoragePoolDefParse; - virStoragePoolLoadAllConfigs; - virStoragePoolObjAssignDef; - virStoragePoolObjClearVols; - virStoragePoolObjDeleteDef; - virStoragePoolObjFindByName; - virStoragePoolObjFindByUUID; - virStoragePoolObjListFree; - virStoragePoolObjRemove; - virStoragePoolObjSaveDef; - virStoragePoolSourceFree; - virStoragePoolSourceListFormat; - virStorageVolDefFindByKey; - virStorageVolDefFindByName; - virStorageVolDefFindByPath; - virStorageVolDefFormat; - virStorageVolDefFree; - virStorageVolDefParse; - virStoragePoolFormatDiskTypeToString; - virStoragePoolFormatFileSystemTypeToString; - virStoragePoolFormatFileSystemNetTypeToString; - virStorageVolFormatFileSystemTypeToString; - virStoragePoolTypeFromString; - virStoragePoolObjLock; - virStoragePoolObjUnlock; - - - # util.h - virFileReadAll; - virStrToLong_i; - virStrToLong_ll; - virStrToLong_ull; - virStrToLong_ui; - virFileLinkPointsTo; - saferead; - safewrite; - virMacAddrCompare; - virEnumFromString; - virEnumToString; - virEventAddHandle; - virEventRemoveHandle; - virExec; - virFormatMacAddr; - virParseMacAddr; - virFileDeletePid; - virFileExists; - virFileHasSuffix; - virFileLinkPointsTo; - virFileMakePath; - virFileOpenTty; - virFileReadLimFD; - virFilePid; - virFileReadPid; - virFileLinkPointsTo; - virParseNumber; - virAsprintf; - virRun; - virSkipSpaces; - - - # uuid.h - virUUIDFormat; - virUUIDGenerate; - virUUIDParse; - - - # virterror_internal.h - virReportErrorHelper; - virErrorMsg; - virRaiseError; - - - # xml.h - virXPathLong; - virXPathNode; - virXPathNodeSet; - virXPathString; - virXMLPropString; - - - # Finally everything else is totally private - local: - *; -}; -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list