On Mon, Oct 05, 2009 at 12:44:48PM +0100, Daniel P. Berrange wrote: > Move the VIR_DRV_FEATURE* constants into libvirt_internal.h > since these flags are indicating whether APIs in the > libvirt_internal.h file are supported by a driver > > * src/driver.h: Remove VIR_DRV_FEATURE* constants > * src/libvirt_internal.h: Add VIR_DRV_FEATURE* constants, using > an enum instead of #define > * src/internal.h: pull in libvirt_internal.h > --- > src/driver.h | 19 ------------------- > src/internal.h | 2 ++ > src/libvirt_internal.h | 27 +++++++++++++++++++++++++++ > 3 files changed, 29 insertions(+), 19 deletions(-) > > diff --git a/src/driver.h b/src/driver.h > index c926614..2773a95 100644 > --- a/src/driver.h > +++ b/src/driver.h > @@ -44,25 +44,6 @@ typedef enum { > VIR_DRV_OPEN_ERROR = -2, > } virDrvOpenStatus; > > -/* Feature detection. This is a libvirt-private interface for determining > - * what features are supported by the driver. > - * > - * The remote driver passes features through to the real driver at the > - * remote end unmodified, except if you query a VIR_DRV_FEATURE_REMOTE* > - * feature. > - */ > - /* Driver supports V1-style virDomainMigrate, ie. domainMigratePrepare/ > - * domainMigratePerform/domainMigrateFinish. > - */ > -#define VIR_DRV_FEATURE_MIGRATION_V1 1 > - > - /* Driver is not local. */ > -#define VIR_DRV_FEATURE_REMOTE 2 > - > - /* Driver supports V2-style virDomainMigrate, ie. domainMigratePrepare2/ > - * domainMigratePerform/domainMigrateFinish2. > - */ > -#define VIR_DRV_FEATURE_MIGRATION_V2 3 > > /* Internal feature-detection macro. Don't call drv->supports_feature > * directly, because it may be NULL, use this macro instead. > diff --git a/src/internal.h b/src/internal.h > index 8fa579c..bd1cfe6 100644 > --- a/src/internal.h > +++ b/src/internal.h > @@ -24,6 +24,8 @@ > #include "libvirt/libvirt.h" > #include "libvirt/virterror.h" > > +#include "libvirt_internal.h" > + > /* On architectures which lack these limits, define them (ie. Cygwin). > * Note that the libvirt code should be robust enough to handle the > * case where actual value is longer than these limits (eg. by setting > diff --git a/src/libvirt_internal.h b/src/libvirt_internal.h > index 8f1ac3d..d3edcfa 100644 > --- a/src/libvirt_internal.h > +++ b/src/libvirt_internal.h > @@ -17,6 +17,9 @@ > * License along with this library; if not, write to the Free Software > * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > * > + * NB This file is ABI sensitive. Things here impact the wire > + * protocol ABI in the remote driver. Same rules as for things > + * include/libvirt/libvirt.h apply. ie this file is *append* only > */ > > #ifndef __LIBVIRT_H_ > @@ -31,6 +34,30 @@ int virStateReload(void); > int virStateActive(void); > #endif > > +/* Feature detection. This is a libvirt-private interface for determining > + * what features are supported by the driver. > + * > + * The remote driver passes features through to the real driver at the > + * remote end unmodified, except if you query a VIR_DRV_FEATURE_REMOTE* > + * feature. > + * > + */ > +enum { > + /* Driver supports V1-style virDomainMigrate, ie. domainMigratePrepare/ > + * domainMigratePerform/domainMigrateFinish. > + */ > + VIR_DRV_FEATURE_MIGRATION_V1 = 1, > + > + /* Driver is not local. */ > + VIR_DRV_FEATURE_REMOTE = 2, > + > + /* Driver supports V2-style virDomainMigrate, ie. domainMigratePrepare2/ > + * domainMigratePerform/domainMigrateFinish2. > + */ > + VIR_DRV_FEATURE_MIGRATION_V2 = 3, > +}; > + > + > int virDrvSupportsFeature (virConnectPtr conn, int feature); > > int virDomainMigratePrepare (virConnectPtr dconn, ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list