split version script into multiple files

* src/Makefile.am (PRIVSYMFILES): Define.
(EXTRA_DIST): Append $(PRIVSYMFILES).
(libvirt.syms): New rule.
Reflect renaming: s/libvirt_sym.version/libvirt.syms/.
(BUILT_SOURCES): Depend on libvirt.syms.
* configure.in: Define ENABLE_DEBUG as an automake conditional.
(AC_OUTPUT): Remove src/libvirt_sym.version.
* src/.cvsignore: s/libvirt_sym.version/libvirt.syms/.
* src/.gitignore: Regenerate.
* src/libvirt_public.syms: Renamed from src/libvirt_sym.version.in.
* src/libvirt_debug.syms: New file.
* src/libvirt_private.syms: New file.
Author: John Levon
This commit is contained in:
Jim Meyering 2009-01-05 14:05:29 +00:00
parent 7924fec593
commit ad17ffa034
9 changed files with 673 additions and 636 deletions

View File

@ -1,3 +1,23 @@
Mon Jan 5 2009 14:53:48 CET John Levon <john.levon@sun.com>
split up linker script, as described below and in
http://thread.gmane.org/gmane.comp.emulators.libvirt/10728
split version script into multiple files
* src/Makefile.am (PRIVSYMFILES): Define.
(EXTRA_DIST): Append $(PRIVSYMFILES).
(libvirt.syms): New rule.
Reflect renaming: s/libvirt_sym.version/libvirt.syms/.
(BUILT_SOURCES): Depend on libvirt.syms.
* configure.in: Define ENABLE_DEBUG as an automake conditional.
(AC_OUTPUT): Remove src/libvirt_sym.version.
* src/.cvsignore: s/libvirt_sym.version/libvirt.syms/.
* src/.gitignore: Regenerate.
* src/libvirt_public.syms: Renamed from src/libvirt_sym.version.in.
* src/libvirt_debug.syms: New file.
* src/libvirt_private.syms: New file.
Author: John Levon
Mon Jan 5 14:22:06 CET 2009 Jim Meyering <meyering@redhat.com>
avoid xgettext warning aboug bug-reporting address

View File

@ -195,6 +195,7 @@ dnl --enable-debug=(yes|no)
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/Makefile docs/Makefile \
gnulib/lib/Makefile \
gnulib/tests/Makefile \
libvirt.pc libvirt.spec mingw32-libvirt.spec \
src/libvirt_sym.version \
po/Makefile.in \
include/libvirt/Makefile include/libvirt/libvirt.h \
python/Makefile python/tests/Makefile \

View File

@ -15,4 +15,4 @@ libvirt_parthelper
libvirt_lxc
virsh-net-edit.c
virsh-pool-edit.c
libvirt_sym.version
libvirt.syms

2
src/.gitignore vendored
View File

@ -15,4 +15,4 @@ libvirt_parthelper
libvirt_lxc
virsh-net-edit.c
virsh-pool-edit.c
libvirt_sym.version
libvirt.syms

View File

@ -192,6 +192,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
mod_LTLIBRARIES += libvirt_driver_test.la
@ -390,31 +392,67 @@ 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 $@
printf '# WARNING: generated from the following:\n# $^\n\n' >$@-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
chmod a-w $@-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@libvirt_sym.version \
libvirt_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)libvirt.syms \
-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 +476,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

19
src/libvirt_debug.syms Normal file
View File

@ -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;

346
src/libvirt_private.syms Normal file
View File

@ -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;

240
src/libvirt_public.syms Normal file
View File

@ -0,0 +1,240 @@
#
# Officially exported symbols, for which header
# file definitions are installed in /usr/include/libvirt
# either from libvirt.h and virterror.h
#
# Versions here are *fixed* to match the libvirt version
# at which the symbol was introduced. This ensures that
# a new client app requiring symbol foo() can't accidentally
# run with old libvirt.so not providing foo() - the global
# soname version info can't enforce this since we never
# change the soname
#
LIBVIRT_0.0.3 {
global:
virConnectClose;
virConnectGetType;
virConnectGetVersion;
virConnectListDomains;
virConnectNumOfDomains;
virConnectOpen;
virConnectOpenReadOnly;
virDomainCreateLinux;
virDomainDestroy;
virDomainFree;
virDomainGetID;
virDomainGetInfo;
virDomainGetMaxMemory;
virDomainGetName;
virDomainGetOSType;
virDomainGetXMLDesc;
virDomainLookupByID;
virDomainLookupByName;
virDomainRestore;
virDomainResume;
virDomainSave;
virDomainSetMaxMemory;
virDomainShutdown;
virDomainSuspend;
virGetVersion;
};
LIBVIRT_0.0.5 {
global:
virDomainLookupByUUID;
virDomainGetUUID;
} LIBVIRT_0.0.3;
LIBVIRT_0.1.0 {
global:
virInitialize;
virNodeGetInfo;
virDomainReboot;
virCopyLastError;
virConnSetErrorFunc;
virResetLastError;
virResetError;
virConnGetLastError;
virGetLastError;
virSetErrorFunc;
virConnCopyLastError;
virConnResetLastError;
virDefaultErrorFunc;
} LIBVIRT_0.0.5;
LIBVIRT_0.1.1 {
global:
virDomainLookupByUUIDString;
virDomainGetUUIDString;
virDomainSetMemory;
virDomainDefineXML;
virDomainCreate;
virDomainUndefine;
virConnectListDefinedDomains;
} LIBVIRT_0.1.0;
LIBVIRT_0.1.4 {
global:
virDomainSetVcpus;
virDomainPinVcpu;
virDomainGetVcpus;
} LIBVIRT_0.1.1;
LIBVIRT_0.1.5 {
global:
virConnectNumOfDefinedDomains;
} LIBVIRT_0.1.4;
LIBVIRT_0.1.9 {
global:
virDomainCoreDump;
virDomainAttachDevice;
virDomainDetachDevice;
} LIBVIRT_0.1.5;
LIBVIRT_0.2.0 {
global:
virConnectNumOfNetworks;
virConnectListNetworks;
virConnectNumOfDefinedNetworks;
virConnectListDefinedNetworks;
virNetworkLookupByName;
virNetworkLookupByUUID;
virNetworkLookupByUUIDString;
virNetworkCreateXML;
virNetworkDefineXML;
virNetworkUndefine;
virNetworkCreate;
virNetworkDestroy;
virNetworkFree;
virNetworkGetName;
virNetworkGetUUID;
virNetworkGetUUIDString;
virNetworkGetXMLDesc;
virNetworkGetBridgeName;
} LIBVIRT_0.1.9;
LIBVIRT_0.2.1 {
global:
virConnectGetCapabilities;
virConnectGetMaxVcpus;
virDomainGetMaxVcpus;
virDomainGetAutostart;
virDomainSetAutostart;
virNetworkGetAutostart;
virNetworkSetAutostart;
} LIBVIRT_0.2.0;
LIBVIRT_0.2.3 {
global:
virDomainGetSchedulerType;
virDomainGetSchedulerParameters;
virDomainSetSchedulerParameters;
} LIBVIRT_0.2.1;
LIBVIRT_0.3.0 {
global:
virConnectGetHostname;
virConnectGetURI;
virDomainGetConnect;
virNetworkGetConnect;
} LIBVIRT_0.2.3;
LIBVIRT_0.3.2 {
global:
virDomainMigrate;
virDomainBlockStats;
virDomainInterfaceStats;
} LIBVIRT_0.3.0;
LIBVIRT_0.3.3 {
global:
virNodeGetCellsFreeMemory;
virNodeGetFreeMemory;
} LIBVIRT_0.3.2;
LIBVIRT_0.4.0 {
global:
virConnectOpenAuth;
virConnectAuthPtrDefault;
} LIBVIRT_0.3.3;
LIBVIRT_0.4.1 {
global:
virStoragePoolGetConnect;
virConnectNumOfStoragePools;
virConnectNumOfDefinedStoragePools;
virConnectListStoragePools;
virConnectListDefinedStoragePools;
virStoragePoolLookupByName;
virStoragePoolLookupByUUID;
virStoragePoolLookupByUUIDString;
virStoragePoolLookupByVolume;
virStoragePoolCreateXML;
virStoragePoolDefineXML;
virStoragePoolUndefine;
virStoragePoolCreate;
virStoragePoolBuild;
virStoragePoolDestroy;
virStoragePoolDelete;
virStoragePoolRefresh;
virStoragePoolFree;
virStoragePoolGetName;
virStoragePoolGetUUID;
virStoragePoolGetUUIDString;
virStoragePoolGetInfo;
virStoragePoolGetXMLDesc;
virStoragePoolSetAutostart;
virStoragePoolGetAutostart;
virStoragePoolNumOfVolumes;
virStoragePoolListVolumes;
virStorageVolGetConnect;
virStorageVolLookupByName;
virStorageVolLookupByKey;
virStorageVolLookupByPath;
virStorageVolCreateXML;
virStorageVolDelete;
virStorageVolFree;
virStorageVolGetName;
virStorageVolGetKey;
virStorageVolGetInfo;
virStorageVolGetXMLDesc;
virStorageVolGetPath;
} LIBVIRT_0.4.0;
LIBVIRT_0.4.2 {
global:
virDomainBlockPeek;
virDomainMemoryPeek;
} LIBVIRT_0.4.1;
LIBVIRT_0.4.5 {
global:
virConnectFindStoragePoolSources;
} LIBVIRT_0.4.2;
LIBVIRT_0.5.0 {
global:
virDomainCreateXML;
virEventRegisterImpl;
virConnectDomainEventRegister;
virConnectDomainEventDeregister;
virNodeNumOfDevices;
virNodeListDevices;
virNodeDeviceLookupByName;
virNodeDeviceFree;
virNodeDeviceGetXMLDesc;
virNodeDeviceGetName;
virNodeDeviceGetParent;
virNodeDeviceNumOfCaps;
virNodeDeviceListCaps;
} LIBVIRT_0.4.5;
# no new entry point in 0.5.1
# .... define new API here using predicted next version number ....

View File

@ -1,626 +0,0 @@
#
# 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
# file definitions are installed in /usr/include/libvirt
# either from libvirt.h and virterror.h
#
# Versions here are *fixed* to match the libvirt version
# at which the symbol was introduced. This ensures that
# a new client app requiring symbol foo() can't accidentally
# run with old libvirt.so not providing foo() - the global
# soname version info can't enforce this since we never
# change the soname
#
LIBVIRT_0.0.3 {
global:
virConnectClose;
virConnectGetType;
virConnectGetVersion;
virConnectListDomains;
virConnectNumOfDomains;
virConnectOpen;
virConnectOpenReadOnly;
virDomainCreateLinux;
virDomainDestroy;
virDomainFree;
virDomainGetID;
virDomainGetInfo;
virDomainGetMaxMemory;
virDomainGetName;
virDomainGetOSType;
virDomainGetXMLDesc;
virDomainLookupByID;
virDomainLookupByName;
virDomainRestore;
virDomainResume;
virDomainSave;
virDomainSetMaxMemory;
virDomainShutdown;
virDomainSuspend;
virGetVersion;
};
LIBVIRT_0.0.5 {
global:
virDomainLookupByUUID;
virDomainGetUUID;
} LIBVIRT_0.0.3;
LIBVIRT_0.1.0 {
global:
virInitialize;
virNodeGetInfo;
virDomainReboot;
virCopyLastError;
virConnSetErrorFunc;
virResetLastError;
virResetError;
virConnGetLastError;
virGetLastError;
virSetErrorFunc;
virConnCopyLastError;
virConnResetLastError;
virDefaultErrorFunc;
} LIBVIRT_0.0.5;
LIBVIRT_0.1.1 {
global:
virDomainLookupByUUIDString;
virDomainGetUUIDString;
virDomainSetMemory;
virDomainDefineXML;
virDomainCreate;
virDomainUndefine;
virConnectListDefinedDomains;
} LIBVIRT_0.1.0;
LIBVIRT_0.1.4 {
global:
virDomainSetVcpus;
virDomainPinVcpu;
virDomainGetVcpus;
} LIBVIRT_0.1.1;
LIBVIRT_0.1.5 {
global:
virConnectNumOfDefinedDomains;
} LIBVIRT_0.1.4;
LIBVIRT_0.1.9 {
global:
virDomainCoreDump;
virDomainAttachDevice;
virDomainDetachDevice;
} LIBVIRT_0.1.5;
LIBVIRT_0.2.0 {
global:
virConnectNumOfNetworks;
virConnectListNetworks;
virConnectNumOfDefinedNetworks;
virConnectListDefinedNetworks;
virNetworkLookupByName;
virNetworkLookupByUUID;
virNetworkLookupByUUIDString;
virNetworkCreateXML;
virNetworkDefineXML;
virNetworkUndefine;
virNetworkCreate;
virNetworkDestroy;
virNetworkFree;
virNetworkGetName;
virNetworkGetUUID;
virNetworkGetUUIDString;
virNetworkGetXMLDesc;
virNetworkGetBridgeName;
} LIBVIRT_0.1.9;
LIBVIRT_0.2.1 {
global:
virConnectGetCapabilities;
virConnectGetMaxVcpus;
virDomainGetMaxVcpus;
virDomainGetAutostart;
virDomainSetAutostart;
virNetworkGetAutostart;
virNetworkSetAutostart;
} LIBVIRT_0.2.0;
LIBVIRT_0.2.3 {
global:
virDomainGetSchedulerType;
virDomainGetSchedulerParameters;
virDomainSetSchedulerParameters;
} LIBVIRT_0.2.1;
LIBVIRT_0.3.0 {
global:
virConnectGetHostname;
virConnectGetURI;
virDomainGetConnect;
virNetworkGetConnect;
} LIBVIRT_0.2.3;
LIBVIRT_0.3.2 {
global:
virDomainMigrate;
virDomainBlockStats;
virDomainInterfaceStats;
} LIBVIRT_0.3.0;
LIBVIRT_0.3.3 {
global:
virNodeGetCellsFreeMemory;
virNodeGetFreeMemory;
} LIBVIRT_0.3.2;
LIBVIRT_0.4.0 {
global:
virConnectOpenAuth;
virConnectAuthPtrDefault;
} LIBVIRT_0.3.3;
LIBVIRT_0.4.1 {
global:
virStoragePoolGetConnect;
virConnectNumOfStoragePools;
virConnectNumOfDefinedStoragePools;
virConnectListStoragePools;
virConnectListDefinedStoragePools;
virStoragePoolLookupByName;
virStoragePoolLookupByUUID;
virStoragePoolLookupByUUIDString;
virStoragePoolLookupByVolume;
virStoragePoolCreateXML;
virStoragePoolDefineXML;
virStoragePoolUndefine;
virStoragePoolCreate;
virStoragePoolBuild;
virStoragePoolDestroy;
virStoragePoolDelete;
virStoragePoolRefresh;
virStoragePoolFree;
virStoragePoolGetName;
virStoragePoolGetUUID;
virStoragePoolGetUUIDString;
virStoragePoolGetInfo;
virStoragePoolGetXMLDesc;
virStoragePoolSetAutostart;
virStoragePoolGetAutostart;
virStoragePoolNumOfVolumes;
virStoragePoolListVolumes;
virStorageVolGetConnect;
virStorageVolLookupByName;
virStorageVolLookupByKey;
virStorageVolLookupByPath;
virStorageVolCreateXML;
virStorageVolDelete;
virStorageVolFree;
virStorageVolGetName;
virStorageVolGetKey;
virStorageVolGetInfo;
virStorageVolGetXMLDesc;
virStorageVolGetPath;
} LIBVIRT_0.4.0;
LIBVIRT_0.4.2 {
global:
virDomainBlockPeek;
virDomainMemoryPeek;
} LIBVIRT_0.4.1;
LIBVIRT_0.4.5 {
global:
virConnectFindStoragePoolSources;
} LIBVIRT_0.4.2;
LIBVIRT_0.5.0 {
global:
virDomainCreateXML;
virEventRegisterImpl;
virConnectDomainEventRegister;
virConnectDomainEventDeregister;
virNodeNumOfDevices;
virNodeListDevices;
virNodeDeviceLookupByName;
virNodeDeviceFree;
virNodeDeviceGetXMLDesc;
virNodeDeviceGetName;
virNodeDeviceGetParent;
virNodeDeviceNumOfCaps;
virNodeDeviceListCaps;
} LIBVIRT_0.4.5;
# 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:
*;
};