Re: PATCH: 1/7 Split up the public header files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch splits up the libvirt.h file into multiple pieces. The big header
file was getting rather long & hard to follow, with API calls for domains and
networks all mixed together, and macros & typedefs & methods all mixed up.
Adding another 25 APIs for storage won't improve this. So this splits up the 
header into

   libvirt/connection.h    - connection related API calls & objects
   libvirt/node.h          - host node information APIs  & objects
   libvirt/domain.h        - hypervisor/domain API calls & objects
   libvirt/network.h       - virtual networking API calls & objects

The original libvirt.h, now simply #include's all four of these files. The
header files aren't intended to be included directly - apps carry on just
using the main header file.


 Makefile.am                    |    2 
 b/include/libvirt/connection.h |   60 +++
 b/include/libvirt/domain.h     |  499 +++++++++++++++++++++++++++++++
 b/include/libvirt/network.h    |  125 +++++++
 b/include/libvirt/node.h       |   90 +++++
 include/libvirt/Makefile.am    |    3 
 include/libvirt/libvirt.h      |  644 -----------------------------------------
 include/libvirt/libvirt.h.in   |  644 -----------------------------------------
 src/libvirt.c                  |    1 
 9 files changed, 800 insertions(+), 1268 deletions(-)


diff -r 0d270ffcf3f0 Makefile.am
--- a/Makefile.am	Sat Oct 27 00:23:28 2007 +0000
+++ b/Makefile.am	Sat Oct 27 13:27:23 2007 -0400
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-SUBDIRS = src qemud proxy include docs @PYTHON_SUBDIR@ tests po m4 scripts
+SUBDIRS = include src qemud proxy docs @PYTHON_SUBDIR@ tests po m4 scripts
 
 ACLOCAL_AMFLAGS = -I m4
 
diff -r 0d270ffcf3f0 include/libvirt/Makefile.am
--- a/include/libvirt/Makefile.am	Sat Oct 27 00:23:28 2007 +0000
+++ b/include/libvirt/Makefile.am	Sat Oct 27 13:23:36 2007 -0400
@@ -3,6 +3,9 @@ virincdir = $(includedir)/libvirt
 virincdir = $(includedir)/libvirt
 
 virinc_HEADERS = libvirt.h		\
+                 node.h 		\
+                 domain.h 		\
+                 network.h 		\
 		 virterror.h
 
 install-exec-hook:
diff -r 0d270ffcf3f0 include/libvirt/connection.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/libvirt/connection.h	Sat Oct 27 13:26:34 2007 -0400
@@ -0,0 +1,60 @@
+/* -*- c -*-
+ * connection.h:
+ * Summary: connection interfaces
+ * Description: Provides the interfaces of the libvirt library to handle
+ *              connections from a process running in the host
+ *
+ * Copy:  Copyright (C) 2005-2007 Red Hat, Inc.
+ *
+ * See COPYING.LIB for the License of this software
+ *
+ * Author: Daniel Veillard <veillard@xxxxxxxxxx>
+ */
+
+
+
+#ifndef __VIR_VIRLIB_H__
+#error "Do not include connection.h directly. Use libvirt.h instead"
+#endif
+
+#ifndef __VIR_VIRLIB_CONNECTION_H__
+#define __VIR_VIRLIB_CONNECTION_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * virConnect:
+ *
+ * a virConnect is a private structure representing a connection to
+ * the Xen Hypervisor.
+ */
+typedef struct _virConnect virConnect;
+
+/**
+ * virConnectPtr:
+ *
+ * a virConnectPtr is pointer to a virConnect private structure, this is the
+ * type used to reference a connection to the Xen Hypervisor in the API.
+ */
+typedef virConnect *virConnectPtr;
+
+
+virConnectPtr		virConnectOpen		(const char *name);
+virConnectPtr		virConnectOpenReadOnly	(const char *name);
+int			virConnectClose		(virConnectPtr conn);
+const char *		virConnectGetType	(virConnectPtr conn);
+int			virConnectGetVersion	(virConnectPtr conn,
+						 unsigned long *hvVer);
+char *                  virConnectGetHostname   (virConnectPtr conn);
+char *                  virConnectGetURI        (virConnectPtr conn);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VIR_VIRLIB_CONNECTION_H__ */
diff -r 0d270ffcf3f0 include/libvirt/domain.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/libvirt/domain.h	Sat Oct 27 13:34:39 2007 -0400
@@ -0,0 +1,499 @@
+/* -*- c -*-
+ * domain.h:
+ * Summary: virtual domain interfaces
+ * Description: Provides the interfaces of the libvirt library to handle
+ *              virtual domains from a process running in the host
+ *
+ * Copy:  Copyright (C) 2005-2007 Red Hat, Inc.
+ *
+ * See COPYING.LIB for the License of this software
+ *
+ * Author: Daniel Veillard <veillard@xxxxxxxxxx>
+ */
+
+
+/* -*- c -*-
+ * domain.h:
+ * Summary: virtual domain interfaces
+ * Description: Provides the interfaces of the libvirt library to handle
+ *              virtual domains from a process running in the host
+ *
+ * Copy:  Copyright (C) 2005-2007 Red Hat, Inc.
+ *
+ * See COPYING.LIB for the License of this software
+ *
+ * Author: Daniel Veillard <veillard@xxxxxxxxxx>
+ */
+
+
+
+#ifndef __VIR_VIRLIB_H__
+#error "Do not include network.h directly. Use libvirt.h instead"
+#endif
+
+#ifndef __VIR_VIRLIB_DOMAIN_H__
+#define __VIR_VIRLIB_DOMAIN_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * virDomain:
+ *
+ * a virDomain is a private structure representing a Xen domain.
+ */
+typedef struct _virDomain virDomain;
+
+/**
+ * virDomainPtr:
+ *
+ * a virDomainPtr is pointer to a virDomain private structure, this is the
+ * type used to reference a Xen domain in the API.
+ */
+typedef virDomain *virDomainPtr;
+
+/**
+ * virDomainState:
+ *
+ * A domain may be in different states at a given point in time
+ */
+typedef enum {
+     VIR_DOMAIN_NOSTATE	= 0, /* no state */
+     VIR_DOMAIN_RUNNING	= 1, /* the domain is running */
+     VIR_DOMAIN_BLOCKED	= 2, /* the domain is blocked on resource */
+     VIR_DOMAIN_PAUSED	= 3, /* the domain is paused by user */
+     VIR_DOMAIN_SHUTDOWN= 4, /* the domain is being shut down */
+     VIR_DOMAIN_SHUTOFF	= 5, /* the domain is shut off */
+     VIR_DOMAIN_CRASHED = 6  /* the domain is crashed */
+} virDomainState;
+
+/**
+ * virDomainInfoPtr:
+ *
+ * a virDomainInfo is a structure filled by virDomainGetInfo() and extracting
+ * runtime informations for a given active Domain
+ */
+
+typedef struct _virDomainInfo virDomainInfo;
+
+struct _virDomainInfo {
+    unsigned char state;	/* the running state, one of virDomainFlags */
+    unsigned long maxMem;	/* the maximum memory in KBytes allowed */
+    unsigned long memory;	/* the memory in KBytes used by the domain */
+    unsigned short nrVirtCpu;	/* the number of virtual CPUs for the domain */
+    unsigned long long cpuTime;	/* the CPU time used in nanoseconds */
+};
+
+/**
+ * virDomainInfoPtr:
+ *
+ * a virDomainInfoPtr is a pointer to a virDomainInfo structure.
+ */
+
+typedef virDomainInfo *virDomainInfoPtr;
+
+/**
+ * virDomainCreateFlags:
+ *
+ * Flags OR'ed together to provide specific behaviour when creating a
+ * Domain.
+ */
+typedef enum {
+     VIR_DOMAIN_NONE = 0
+} virDomainCreateFlags;
+
+
+/**
+ * virDomainSchedParameterType:
+ *
+ * A scheduler parameter field type
+ */
+typedef enum {
+    VIR_DOMAIN_SCHED_FIELD_INT     = 1,	/* integer case */
+    VIR_DOMAIN_SCHED_FIELD_UINT    = 2,	/* unsigned integer case */
+    VIR_DOMAIN_SCHED_FIELD_LLONG   = 3,	/* long long case */
+    VIR_DOMAIN_SCHED_FIELD_ULLONG  = 4,	/* unsigned long long case */
+    VIR_DOMAIN_SCHED_FIELD_DOUBLE  = 5,	/* double case */
+    VIR_DOMAIN_SCHED_FIELD_BOOLEAN = 6	/* boolean(character) case */
+} virSchedParameterType;
+
+/**
+ * VIR_DOMAIN_SCHED_FIELD_LENGTH:
+ *
+ * Macro providing the field length of virSchedParameter
+ */
+
+#define VIR_DOMAIN_SCHED_FIELD_LENGTH 80
+
+/**
+ * virDomainSchedParameter:
+ *
+ * a virDomainSchedParameter is the set of scheduler parameters
+ */
+
+typedef struct _virSchedParameter virSchedParameter;
+
+struct _virSchedParameter {
+    char field[VIR_DOMAIN_SCHED_FIELD_LENGTH];	/* parameter name */
+    int type;	/* parameter type */
+    union {
+        int i;				/* data for integer case */
+        unsigned int ui;	/* data for unsigned integer case */
+        long long int l;	/* data for long long integer case */
+        unsigned long long int ul;	/* data for unsigned long long integer case */
+        double d;	/* data for double case */
+        char b;		/* data for char case */
+    } value; /* parameter value */
+};
+
+/**
+ * virSchedParameterPtr:
+ *
+ * a virSchedParameterPtr is a pointer to a virSchedParameter structure.
+ */
+
+typedef virSchedParameter *virSchedParameterPtr;
+
+
+/**
+ * virDomainBlockStats:
+ *
+ * Block device stats for virDomainBlockStats.
+ *
+ * Hypervisors may return a field set to ((long long)-1) which indicates
+ * that the hypervisor does not support that statistic.
+ *
+ * NB. Here 'long long' means 64 bit integer.
+ */
+typedef struct _virDomainBlockStats virDomainBlockStatsStruct;
+
+struct _virDomainBlockStats {
+  long long rd_req;
+  long long rd_bytes;
+  long long wr_req;
+  long long wr_bytes;
+  long long errs;   /* In Xen this returns the mysterious 'oo_req'. */
+};
+
+/**
+ * virDomainBlockStatsPtr:
+ *
+ * A pointer to a virDomainBlockStats structure
+ */
+typedef virDomainBlockStatsStruct *virDomainBlockStatsPtr;
+
+/**
+ * virDomainInterfaceStats:
+ *
+ * Network interface stats for virDomainInterfaceStats.
+ *
+ * Hypervisors may return a field set to ((long long)-1) which indicates
+ * that the hypervisor does not support that statistic.
+ *
+ * NB. Here 'long long' means 64 bit integer.
+ */
+typedef struct _virDomainInterfaceStats virDomainInterfaceStatsStruct;
+
+struct _virDomainInterfaceStats {
+  long long rx_bytes;
+  long long rx_packets;
+  long long rx_errs;
+  long long rx_drop;
+  long long tx_bytes;
+  long long tx_packets;
+  long long tx_errs;
+  long long tx_drop;
+};
+
+/**
+ * virDomainInterfaceStatsPtr:
+ *
+ * A pointe to a virDomainInterfaceStats structure
+ */
+typedef virDomainInterfaceStatsStruct *virDomainInterfaceStatsPtr;
+
+/**
+ * virVcpuInfo: structure for information about a virtual CPU in a domain.
+ */
+
+typedef enum {
+    VIR_VCPU_OFFLINE	= 0,	/* the virtual CPU is offline */
+    VIR_VCPU_RUNNING	= 1,	/* the virtual CPU is running */
+    VIR_VCPU_BLOCKED	= 2,	/* the virtual CPU is blocked on resource */
+} virVcpuState;
+
+typedef struct _virVcpuInfo virVcpuInfo;
+struct _virVcpuInfo {
+    unsigned int number;	/* virtual CPU number */
+    int state;			/* value from virVcpuState */
+    unsigned long long cpuTime; /* CPU time used, in nanoseconds */
+    int cpu;			/* real CPU number, or -1 if offline */
+};
+typedef virVcpuInfo *virVcpuInfoPtr;
+
+/**
+ * virDomainXMLFlags:
+ *
+ * Flags available for virDomainGetXMLDesc
+ */
+
+typedef enum {
+    VIR_DOMAIN_XML_SECURE = 1, /* dump security sensitive informations too */
+    VIR_DOMAIN_XML_INACTIVE = 2/* dump inactive domain informations */
+} virDomainXMLFlags;
+
+/* Domain migration flags. */
+typedef enum {
+  VIR_MIGRATE_LIVE              = 1, /* live migration */
+} virDomainMigrateFlags;
+
+/**
+ * VIR_USE_CPU:
+ * @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
+ * @cpu: the physical CPU number
+ *
+ * This macro is to be used in conjonction with virDomainPinVcpu() API.
+ * USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap.
+ */
+
+#define VIR_USE_CPU(cpumap,cpu)	(cpumap[(cpu)/8] |= (1<<((cpu)%8)))
+
+/**
+ * VIR_UNUSE_CPU:
+ * @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
+ * @cpu: the physical CPU number
+ *
+ * This macro is to be used in conjonction with virDomainPinVcpu() API.
+ * USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap.
+ */
+
+#define VIR_UNUSE_CPU(cpumap,cpu)	(cpumap[(cpu)/8] &= ~(1<<((cpu)%8)))
+
+/**
+ * VIR_CPU_MAPLEN:
+ * @cpu: number of physical CPUs
+ *
+ * This macro is to be used in conjonction with virDomainPinVcpu() API.
+ * It returns the length (in bytes) required to store the complete
+ * CPU map between a single virtual & all physical CPUs of a domain.
+ */
+
+#define VIR_CPU_MAPLEN(cpu)      (((cpu)+7)/8)
+
+/**
+ * VIR_CPU_USABLE:
+ * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
+ * @maplen: the length (in bytes) of one cpumap
+ * @vcpu: the virtual CPU number
+ * @cpu: the physical CPU number
+ *
+ * This macro is to be used in conjonction with virDomainGetVcpus() API.
+ * VIR_CPU_USABLE macro returns a non zero value (true) if the cpu
+ * is usable by the vcpu, and 0 otherwise.
+ */
+
+#define VIR_CPU_USABLE(cpumaps,maplen,vcpu,cpu) \
+	(cpumaps[((vcpu)*(maplen))+((cpu)/8)] & (1<<((cpu)%8)))
+
+/**
+ * VIR_COPY_CPUMAP:
+ * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
+ * @maplen: the length (in bytes) of one cpumap
+ * @vcpu: the virtual CPU number
+ * @cpumap: pointer to a cpumap (in 8-bit bytes) (OUT)
+ *	This cpumap must be previously allocated by the caller
+ *      (ie: malloc(maplen))
+ *
+ * This macro is to be used in conjonction with virDomainGetVcpus() and
+ * virDomainPinVcpu() APIs. VIR_COPY_CPUMAP macro extract the cpumap of
+ * the specified vcpu from cpumaps array and copy it into cpumap to be used
+ * later by virDomainPinVcpu() API.
+ */
+#define VIR_COPY_CPUMAP(cpumaps,maplen,vcpu,cpumap) \
+	memcpy(cpumap, &(cpumaps[(vcpu)*(maplen)]), (maplen))
+
+
+/**
+ * VIR_GET_CPUMAP:
+ * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
+ * @maplen: the length (in bytes) of one cpumap
+ * @vcpu: the virtual CPU number
+ *
+ * This macro is to be used in conjonction with virDomainGetVcpus() and
+ * virDomainPinVcpu() APIs. VIR_GET_CPUMAP macro returns a pointer to the
+ * cpumap of the specified vcpu from cpumaps array.
+ */
+#define VIR_GET_CPUMAP(cpumaps,maplen,vcpu)	&(cpumaps[(vcpu)*(maplen)])
+
+
+int                     virConnectGetMaxVcpus   (virConnectPtr conn,
+						 const char *type);
+/*
+ * Gather list of running domains
+ */
+int			virConnectListDomains	(virConnectPtr conn,
+						 int *ids,
+						 int maxids);
+
+/*
+ * Number of domains
+ */
+int			virConnectNumOfDomains	(virConnectPtr conn);
+
+
+/*
+ * Get connection from domain.
+ */
+virConnectPtr		virDomainGetConnect     (virDomainPtr domain);
+
+/*
+ * Domain creation and destruction
+ */
+virDomainPtr		virDomainCreateLinux	(virConnectPtr conn,
+						 const char *xmlDesc,
+						 unsigned int flags);
+virDomainPtr		virDomainLookupByName	(virConnectPtr conn,
+						 const char *name);
+virDomainPtr		virDomainLookupByID	(virConnectPtr conn,
+						 int id);
+virDomainPtr		virDomainLookupByUUID	(virConnectPtr conn,
+						 const unsigned char *uuid);
+virDomainPtr		virDomainLookupByUUIDString	(virConnectPtr conn,
+							const char *uuid);
+
+int			virDomainShutdown	(virDomainPtr domain);
+int			virDomainReboot		(virDomainPtr domain,
+						 unsigned int flags);
+int			virDomainDestroy	(virDomainPtr domain);
+int			virDomainFree		(virDomainPtr domain);
+
+/*
+ * Domain suspend/resume
+ */
+int			virDomainSuspend	(virDomainPtr domain);
+int			virDomainResume		(virDomainPtr domain);
+
+/*
+ * Domain save/restore
+ */
+int			virDomainSave		(virDomainPtr domain,
+						 const char *to);
+int			virDomainRestore	(virConnectPtr conn,
+						 const char *from);
+
+/*
+ * Domain core dump
+ */
+int			virDomainCoreDump	(virDomainPtr domain,
+						 const char *to,
+						 int flags);
+
+/*
+ * Domain runtime informations
+ */
+int			virDomainGetInfo	(virDomainPtr domain,
+						 virDomainInfoPtr info);
+
+/*
+ * Return scheduler type in effect 'sedf', 'credit', 'linux'
+ */
+char * 			virDomainGetSchedulerType(virDomainPtr domain,
+						 int *nparams);
+
+/*
+ * Dynamic control of domains
+ */
+const char *		virDomainGetName	(virDomainPtr domain);
+unsigned int		virDomainGetID		(virDomainPtr domain);
+int			virDomainGetUUID	(virDomainPtr domain,
+						 unsigned char *uuid);
+int			virDomainGetUUIDString	(virDomainPtr domain, 
+						char *buf);
+char *			virDomainGetOSType	(virDomainPtr domain);
+unsigned long		virDomainGetMaxMemory	(virDomainPtr domain);
+int			virDomainSetMaxMemory	(virDomainPtr domain,
+						 unsigned long memory);
+int			virDomainSetMemory	(virDomainPtr domain,
+						 unsigned long memory);
+int			virDomainGetMaxVcpus	(virDomainPtr domain);
+
+/*
+ * XML domain description
+ */
+
+char *			virDomainGetXMLDesc	(virDomainPtr domain,
+						 int flags);
+
+int                     virDomainBlockStats     (virDomainPtr dom,
+						 const char *path,
+						 virDomainBlockStatsPtr stats,
+						 size_t size);
+int                     virDomainInterfaceStats (virDomainPtr dom,
+						 const char *path,
+						 virDomainInterfaceStatsPtr stats,
+						 size_t size);
+
+
+/*
+ * defined but not running domains
+ */
+virDomainPtr		virDomainDefineXML	(virConnectPtr conn,
+						 const char *xml);
+int			virDomainUndefine	(virDomainPtr domain);
+int                     virConnectNumOfDefinedDomains  (virConnectPtr conn);
+int			virConnectListDefinedDomains (virConnectPtr conn,
+						 char **const names,
+						 int maxnames);
+int			virDomainCreate		(virDomainPtr domain);
+
+int			virDomainGetAutostart	(virDomainPtr domain,
+						 int *autostart);
+int			virDomainSetAutostart	(virDomainPtr domain,
+						 int autostart);
+
+/*
+ * Fetch scheduler parameters, caller allocates 'params' field of size 'nparams'
+ */
+int	virDomainGetSchedulerParameters	(virDomainPtr domain,
+					 virSchedParameterPtr params,
+					 int *nparams);
+
+/*
+ * Change scheduler parameters
+ */
+int	virDomainSetSchedulerParameters	(virDomainPtr domain,
+					 virSchedParameterPtr params,
+					 int nparams);
+
+
+int			virDomainSetVcpus	(virDomainPtr domain,
+						 unsigned int nvcpus);
+
+int			virDomainPinVcpu	(virDomainPtr domain,
+						 unsigned int vcpu,
+						 unsigned char *cpumap,
+						 int maplen);
+/* Domain migration. */
+virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
+			       unsigned long flags, const char *dname,
+			       const char *uri, unsigned long bandwidth);
+
+
+
+int			virDomainGetVcpus	(virDomainPtr domain,
+						 virVcpuInfoPtr info,
+						 int maxinfo,
+						 unsigned char *cpumaps,
+						 int maplen);
+
+
+int virDomainAttachDevice(virDomainPtr domain, const char *xml);
+int virDomainDetachDevice(virDomainPtr domain, const char *xml);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VIR_VIRLIB_DOMAIN_H__ */
diff -r 0d270ffcf3f0 include/libvirt/libvirt.h
--- a/include/libvirt/libvirt.h	Sat Oct 27 00:23:28 2007 +0000
+++ b/include/libvirt/libvirt.h	Sat Oct 27 13:33:58 2007 -0400
@@ -16,263 +16,26 @@
 
 #include <sys/types.h>
 
+#include <libvirt/connection.h>
+#include <libvirt/node.h>
+#include <libvirt/domain.h>
+#include <libvirt/network.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/**
- * virConnect:
- *
- * a virConnect is a private structure representing a connection to
- * the Xen Hypervisor.
- */
-typedef struct _virConnect virConnect;
+
+/* library versionning */
 
 /**
- * virConnectPtr:
+ * LIBVIR_VERSION_NUMBER:
  *
- * a virConnectPtr is pointer to a virConnect private structure, this is the
- * type used to reference a connection to the Xen Hypervisor in the API.
- */
-typedef virConnect *virConnectPtr;
-
-/**
- * virDomain:
- *
- * a virDomain is a private structure representing a Xen domain.
- */
-typedef struct _virDomain virDomain;
-
-/**
- * virDomainPtr:
- *
- * a virDomainPtr is pointer to a virDomain private structure, this is the
- * type used to reference a Xen domain in the API.
- */
-typedef virDomain *virDomainPtr;
-
-/**
- * virDomainState:
- *
- * A domain may be in different states at a given point in time
- */
-typedef enum {
-     VIR_DOMAIN_NOSTATE	= 0, /* no state */
-     VIR_DOMAIN_RUNNING	= 1, /* the domain is running */
-     VIR_DOMAIN_BLOCKED	= 2, /* the domain is blocked on resource */
-     VIR_DOMAIN_PAUSED	= 3, /* the domain is paused by user */
-     VIR_DOMAIN_SHUTDOWN= 4, /* the domain is being shut down */
-     VIR_DOMAIN_SHUTOFF	= 5, /* the domain is shut off */
-     VIR_DOMAIN_CRASHED = 6  /* the domain is crashed */
-} virDomainState;
-
-/**
- * virDomainInfoPtr:
- *
- * a virDomainInfo is a structure filled by virDomainGetInfo() and extracting
- * runtime informations for a given active Domain
+ * Macro providing the version of the library as 
+ * version * 1,000,000 + minor * 1000 + micro
  */
 
-typedef struct _virDomainInfo virDomainInfo;
-
-struct _virDomainInfo {
-    unsigned char state;	/* the running state, one of virDomainFlags */
-    unsigned long maxMem;	/* the maximum memory in KBytes allowed */
-    unsigned long memory;	/* the memory in KBytes used by the domain */
-    unsigned short nrVirtCpu;	/* the number of virtual CPUs for the domain */
-    unsigned long long cpuTime;	/* the CPU time used in nanoseconds */
-};
-
-/**
- * virDomainInfoPtr:
- *
- * a virDomainInfoPtr is a pointer to a virDomainInfo structure.
- */
-
-typedef virDomainInfo *virDomainInfoPtr;
-
-/**
- * virDomainCreateFlags:
- *
- * Flags OR'ed together to provide specific behaviour when creating a
- * Domain.
- */
-typedef enum {
-     VIR_DOMAIN_NONE = 0
-} virDomainCreateFlags;
-
-/**
- * virNodeInfoPtr:
- *
- * a virNodeInfo is a structure filled by virNodeGetInfo() and providing
- * the informations for the Node. 
- */
-
-typedef struct _virNodeInfo virNodeInfo;
-
-struct _virNodeInfo {
-    char model[32];	/* string indicating the CPU model */
-    unsigned long memory;/* memory size in kilobytes */
-    unsigned int cpus;	/* the number of active CPUs */
-    unsigned int mhz;	/* expected CPU frequency */
-    unsigned int nodes;	/* the number of NUMA cell, 1 for uniform mem access */
-    unsigned int sockets;/* number of CPU socket per node */
-    unsigned int cores;	/* number of core per socket */
-    unsigned int threads;/* number of threads per core */
-};
-
-
-/**
- * virDomainSchedParameterType:
- *
- * A scheduler parameter field type
- */
-typedef enum {
-    VIR_DOMAIN_SCHED_FIELD_INT     = 1,	/* integer case */
-    VIR_DOMAIN_SCHED_FIELD_UINT    = 2,	/* unsigned integer case */
-    VIR_DOMAIN_SCHED_FIELD_LLONG   = 3,	/* long long case */
-    VIR_DOMAIN_SCHED_FIELD_ULLONG  = 4,	/* unsigned long long case */
-    VIR_DOMAIN_SCHED_FIELD_DOUBLE  = 5,	/* double case */
-    VIR_DOMAIN_SCHED_FIELD_BOOLEAN = 6	/* boolean(character) case */
-} virSchedParameterType;
-
-/**
- * VIR_DOMAIN_SCHED_FIELD_LENGTH:
- *
- * Macro providing the field length of virSchedParameter
- */
-
-#define VIR_DOMAIN_SCHED_FIELD_LENGTH 80
-
-/**
- * virDomainSchedParameter:
- *
- * a virDomainSchedParameter is the set of scheduler parameters
- */
-
-typedef struct _virSchedParameter virSchedParameter;
-
-struct _virSchedParameter {
-    char field[VIR_DOMAIN_SCHED_FIELD_LENGTH];	/* parameter name */
-    int type;	/* parameter type */
-    union {
-        int i;				/* data for integer case */
-        unsigned int ui;	/* data for unsigned integer case */
-        long long int l;	/* data for long long integer case */
-        unsigned long long int ul;	/* data for unsigned long long integer case */
-        double d;	/* data for double case */
-        char b;		/* data for char case */
-    } value; /* parameter value */
-};
-
-/**
- * virSchedParameterPtr:
- *
- * a virSchedParameterPtr is a pointer to a virSchedParameter structure.
- */
-
-typedef virSchedParameter *virSchedParameterPtr;
-
-/*
- * Fetch scheduler parameters, caller allocates 'params' field of size 'nparams'
- */
-int	virDomainGetSchedulerParameters	(virDomainPtr domain,
-					 virSchedParameterPtr params,
-					 int *nparams);
-
-/*
- * Change scheduler parameters
- */
-int	virDomainSetSchedulerParameters	(virDomainPtr domain,
-					 virSchedParameterPtr params,
-					 int nparams);
-
-/**
- * virDomainBlockStats:
- *
- * Block device stats for virDomainBlockStats.
- *
- * Hypervisors may return a field set to ((long long)-1) which indicates
- * that the hypervisor does not support that statistic.
- *
- * NB. Here 'long long' means 64 bit integer.
- */
-typedef struct _virDomainBlockStats virDomainBlockStatsStruct;
-
-struct _virDomainBlockStats {
-  long long rd_req;
-  long long rd_bytes;
-  long long wr_req;
-  long long wr_bytes;
-  long long errs;   /* In Xen this returns the mysterious 'oo_req'. */
-};
-
-/**
- * virDomainBlockStatsPtr:
- *
- * A pointer to a virDomainBlockStats structure
- */
-typedef virDomainBlockStatsStruct *virDomainBlockStatsPtr;
-
-/**
- * virDomainInterfaceStats:
- *
- * Network interface stats for virDomainInterfaceStats.
- *
- * Hypervisors may return a field set to ((long long)-1) which indicates
- * that the hypervisor does not support that statistic.
- *
- * NB. Here 'long long' means 64 bit integer.
- */
-typedef struct _virDomainInterfaceStats virDomainInterfaceStatsStruct;
-
-struct _virDomainInterfaceStats {
-  long long rx_bytes;
-  long long rx_packets;
-  long long rx_errs;
-  long long rx_drop;
-  long long tx_bytes;
-  long long tx_packets;
-  long long tx_errs;
-  long long tx_drop;
-};
-
-/**
- * virDomainInterfaceStatsPtr:
- *
- * A pointe to a virDomainInterfaceStats structure
- */
-typedef virDomainInterfaceStatsStruct *virDomainInterfaceStatsPtr;
-
-
-/* Domain migration flags. */
-typedef enum {
-  VIR_MIGRATE_LIVE              = 1, /* live migration */
-} virDomainMigrateFlags;
-
-/* Domain migration. */
-virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
-			       unsigned long flags, const char *dname,
-			       const char *uri, unsigned long bandwidth);
-
-/**
- * VIR_NODEINFO_MAXCPUS:
- * @nodeinfo: virNodeInfo instance
- *
- * This macro is to calculate the total number of CPUs supported
- * but not neccessarily active in the host.
- */
-
-
-#define VIR_NODEINFO_MAXCPUS(nodeinfo) ((nodeinfo).nodes*(nodeinfo).sockets*(nodeinfo).cores*(nodeinfo).threads)
-
-/**
- * virNodeInfoPtr:
- *
- * a virNodeInfoPtr is a pointer to a virNodeInfo structure.
- */
-
-typedef virNodeInfo *virNodeInfoPtr;
+#define LIBVIR_VERSION_NUMBER 3003
 
 /**
  * VIR_UUID_BUFLEN:
@@ -292,17 +55,6 @@ typedef virNodeInfo *virNodeInfoPtr;
 
 #define VIR_UUID_STRING_BUFLEN (36+1)
 
-/* library versionning */
-
-/**
- * LIBVIR_VERSION_NUMBER:
- *
- * Macro providing the version of the library as 
- * version * 1,000,000 + minor * 1000 + micro
- */
-
-#define LIBVIR_VERSION_NUMBER 3003
-
 int			virGetVersion		(unsigned long *libVer,
 						 const char *type,
 						 unsigned long *typeVer);
@@ -312,380 +64,6 @@ int			virGetVersion		(unsigned long *lib
  */
 int			virInitialize		(void);
 
-virConnectPtr		virConnectOpen		(const char *name);
-virConnectPtr		virConnectOpenReadOnly	(const char *name);
-int			virConnectClose		(virConnectPtr conn);
-const char *		virConnectGetType	(virConnectPtr conn);
-int			virConnectGetVersion	(virConnectPtr conn,
-						 unsigned long *hvVer);
-char *                  virConnectGetHostname   (virConnectPtr conn);
-char *                  virConnectGetURI        (virConnectPtr conn);
-
-
-/*
- * Capabilities of the connection / driver.
- */
-
-int                     virConnectGetMaxVcpus   (virConnectPtr conn,
-						 const char *type);
-int			virNodeGetInfo		(virConnectPtr conn,
-						 virNodeInfoPtr info);
-char *                  virConnectGetCapabilities (virConnectPtr conn);
-
-unsigned long long	virNodeGetFreeMemory	(virConnectPtr conn);
-
-/*
- * Gather list of running domains
- */
-int			virConnectListDomains	(virConnectPtr conn,
-						 int *ids,
-						 int maxids);
-
-/*
- * Number of domains
- */
-int			virConnectNumOfDomains	(virConnectPtr conn);
-
-
-/*
- * Get connection from domain.
- */
-virConnectPtr		virDomainGetConnect     (virDomainPtr domain);
-
-/*
- * Domain creation and destruction
- */
-virDomainPtr		virDomainCreateLinux	(virConnectPtr conn,
-						 const char *xmlDesc,
-						 unsigned int flags);
-virDomainPtr		virDomainLookupByName	(virConnectPtr conn,
-						 const char *name);
-virDomainPtr		virDomainLookupByID	(virConnectPtr conn,
-						 int id);
-virDomainPtr		virDomainLookupByUUID	(virConnectPtr conn,
-						 const unsigned char *uuid);
-virDomainPtr		virDomainLookupByUUIDString	(virConnectPtr conn,
-							const char *uuid);
-
-int			virDomainShutdown	(virDomainPtr domain);
-int			virDomainReboot		(virDomainPtr domain,
-						 unsigned int flags);
-int			virDomainDestroy	(virDomainPtr domain);
-int			virDomainFree		(virDomainPtr domain);
-
-/*
- * Domain suspend/resume
- */
-int			virDomainSuspend	(virDomainPtr domain);
-int			virDomainResume		(virDomainPtr domain);
-
-/*
- * Domain save/restore
- */
-int			virDomainSave		(virDomainPtr domain,
-						 const char *to);
-int			virDomainRestore	(virConnectPtr conn,
-						 const char *from);
-
-/*
- * Domain core dump
- */
-int			virDomainCoreDump	(virDomainPtr domain,
-						 const char *to,
-						 int flags);
-
-/*
- * Domain runtime informations
- */
-int			virDomainGetInfo	(virDomainPtr domain,
-						 virDomainInfoPtr info);
-						 
-/*
- * Return scheduler type in effect 'sedf', 'credit', 'linux'
- */
-char * 			virDomainGetSchedulerType(virDomainPtr domain,
-						 int *nparams);
-
-/*
- * Dynamic control of domains
- */
-const char *		virDomainGetName	(virDomainPtr domain);
-unsigned int		virDomainGetID		(virDomainPtr domain);
-int			virDomainGetUUID	(virDomainPtr domain,
-						 unsigned char *uuid);
-int			virDomainGetUUIDString	(virDomainPtr domain, 
-						char *buf);
-char *			virDomainGetOSType	(virDomainPtr domain);
-unsigned long		virDomainGetMaxMemory	(virDomainPtr domain);
-int			virDomainSetMaxMemory	(virDomainPtr domain,
-						 unsigned long memory);
-int			virDomainSetMemory	(virDomainPtr domain,
-						 unsigned long memory);
-int			virDomainGetMaxVcpus	(virDomainPtr domain);
-
-/*
- * XML domain description
- */
-/**
- * virDomainXMLFlags:
- *
- * Flags available for virDomainGetXMLDesc
- */
-
-typedef enum {
-    VIR_DOMAIN_XML_SECURE = 1, /* dump security sensitive informations too */
-    VIR_DOMAIN_XML_INACTIVE = 2/* dump inactive domain informations */
-} virDomainXMLFlags;
-
-char *			virDomainGetXMLDesc	(virDomainPtr domain,
-						 int flags);
-
-int                     virDomainBlockStats     (virDomainPtr dom,
-						 const char *path,
-						 virDomainBlockStatsPtr stats,
-						 size_t size);
-int                     virDomainInterfaceStats (virDomainPtr dom,
-						 const char *path,
-						 virDomainInterfaceStatsPtr stats,
-						 size_t size);
-
-
-/*
- * defined but not running domains
- */
-virDomainPtr		virDomainDefineXML	(virConnectPtr conn,
-						 const char *xml);
-int			virDomainUndefine	(virDomainPtr domain);
-int                     virConnectNumOfDefinedDomains  (virConnectPtr conn);
-int			virConnectListDefinedDomains (virConnectPtr conn,
-						 char **const names,
-						 int maxnames);
-int			virDomainCreate		(virDomainPtr domain);
-
-int			virDomainGetAutostart	(virDomainPtr domain,
-						 int *autostart);
-int			virDomainSetAutostart	(virDomainPtr domain,
-						 int autostart);
-
-/**
- * virVcpuInfo: structure for information about a virtual CPU in a domain.
- */
-
-typedef enum {
-    VIR_VCPU_OFFLINE	= 0,	/* the virtual CPU is offline */
-    VIR_VCPU_RUNNING	= 1,	/* the virtual CPU is running */
-    VIR_VCPU_BLOCKED	= 2,	/* the virtual CPU is blocked on resource */
-} virVcpuState;
-
-typedef struct _virVcpuInfo virVcpuInfo;
-struct _virVcpuInfo {
-    unsigned int number;	/* virtual CPU number */
-    int state;			/* value from virVcpuState */
-    unsigned long long cpuTime; /* CPU time used, in nanoseconds */
-    int cpu;			/* real CPU number, or -1 if offline */
-};
-typedef virVcpuInfo *virVcpuInfoPtr;
-
-int			virDomainSetVcpus	(virDomainPtr domain,
-						 unsigned int nvcpus);
-
-int			virDomainPinVcpu	(virDomainPtr domain,
-						 unsigned int vcpu,
-						 unsigned char *cpumap,
-						 int maplen);
-
-/**
- * VIR_USE_CPU:
- * @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
- * @cpu: the physical CPU number
- *
- * This macro is to be used in conjonction with virDomainPinVcpu() API.
- * USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap.
- */
-
-#define VIR_USE_CPU(cpumap,cpu)	(cpumap[(cpu)/8] |= (1<<((cpu)%8)))
-
-/**
- * VIR_UNUSE_CPU:
- * @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
- * @cpu: the physical CPU number
- *
- * This macro is to be used in conjonction with virDomainPinVcpu() API.
- * USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap.
- */
-
-#define VIR_UNUSE_CPU(cpumap,cpu)	(cpumap[(cpu)/8] &= ~(1<<((cpu)%8)))
-
-/**
- * VIR_CPU_MAPLEN:
- * @cpu: number of physical CPUs
- *
- * This macro is to be used in conjonction with virDomainPinVcpu() API.
- * It returns the length (in bytes) required to store the complete
- * CPU map between a single virtual & all physical CPUs of a domain.
- */
-
-#define VIR_CPU_MAPLEN(cpu)      (((cpu)+7)/8)
-
-
-int			virDomainGetVcpus	(virDomainPtr domain,
-						 virVcpuInfoPtr info,
-						 int maxinfo,
-						 unsigned char *cpumaps,
-						 int maplen);
-
-/**
- * VIR_CPU_USABLE:
- * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
- * @maplen: the length (in bytes) of one cpumap
- * @vcpu: the virtual CPU number
- * @cpu: the physical CPU number
- *
- * This macro is to be used in conjonction with virDomainGetVcpus() API.
- * VIR_CPU_USABLE macro returns a non zero value (true) if the cpu
- * is usable by the vcpu, and 0 otherwise.
- */
-
-#define VIR_CPU_USABLE(cpumaps,maplen,vcpu,cpu) \
-	(cpumaps[((vcpu)*(maplen))+((cpu)/8)] & (1<<((cpu)%8)))
-
-/**
- * VIR_COPY_CPUMAP:
- * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
- * @maplen: the length (in bytes) of one cpumap
- * @vcpu: the virtual CPU number
- * @cpumap: pointer to a cpumap (in 8-bit bytes) (OUT)
- *	This cpumap must be previously allocated by the caller
- *      (ie: malloc(maplen))
- *
- * This macro is to be used in conjonction with virDomainGetVcpus() and
- * virDomainPinVcpu() APIs. VIR_COPY_CPUMAP macro extract the cpumap of
- * the specified vcpu from cpumaps array and copy it into cpumap to be used
- * later by virDomainPinVcpu() API.
- */
-#define VIR_COPY_CPUMAP(cpumaps,maplen,vcpu,cpumap) \
-	memcpy(cpumap, &(cpumaps[(vcpu)*(maplen)]), (maplen))
-
-
-/**
- * VIR_GET_CPUMAP:
- * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
- * @maplen: the length (in bytes) of one cpumap
- * @vcpu: the virtual CPU number
- *
- * This macro is to be used in conjonction with virDomainGetVcpus() and
- * virDomainPinVcpu() APIs. VIR_GET_CPUMAP macro returns a pointer to the
- * cpumap of the specified vcpu from cpumaps array.
- */
-#define VIR_GET_CPUMAP(cpumaps,maplen,vcpu)	&(cpumaps[(vcpu)*(maplen)])
-
-int virDomainAttachDevice(virDomainPtr domain, const char *xml);
-int virDomainDetachDevice(virDomainPtr domain, const char *xml);
-
-/*
- * NUMA support
- */
-
-int			 virNodeGetCellsFreeMemory(virConnectPtr conn,
-						   unsigned long long *freeMems,
-						   int startCell,
-						   int maxCells);
-
-/*
- * Virtual Networks API
- */
-
-/**
- * virNetwork:
- *
- * a virNetwork is a private structure representing a virtual network.
- */
-typedef struct _virNetwork virNetwork;
-
-/**
- * virNetworkPtr:
- *
- * a virNetworkPtr is pointer to a virNetwork private structure, this is the
- * type used to reference a virtual network in the API.
- */
-typedef virNetwork *virNetworkPtr;
-
-/*
- * Get connection from network.
- */
-virConnectPtr		virNetworkGetConnect    (virNetworkPtr network);
-
-/*
- * List active networks
- */
-int			virConnectNumOfNetworks	(virConnectPtr conn);
-int			virConnectListNetworks	(virConnectPtr conn,
-						 char **const names,
-						 int maxnames);
-
-/*
- * List inactive networks
- */
-int			virConnectNumOfDefinedNetworks	(virConnectPtr conn);
-int			virConnectListDefinedNetworks	(virConnectPtr conn,
-							 char **const names,
-							 int maxnames);
-
-/*
- * Lookup network by name or uuid
- */
-virNetworkPtr		virNetworkLookupByName		(virConnectPtr conn,
-							 const char *name);
-virNetworkPtr 		virNetworkLookupByUUID		(virConnectPtr conn,
-							 const unsigned char *uuid);
-virNetworkPtr		virNetworkLookupByUUIDString	(virConnectPtr conn,
-							 const char *uuid);
-
-/*
- * Create active transient network
- */
-virNetworkPtr		virNetworkCreateXML	(virConnectPtr conn,
-						 const char *xmlDesc);
-
-/*
- * Define inactive persistent network
- */
-virNetworkPtr		virNetworkDefineXML	(virConnectPtr conn,
-						 const char *xmlDesc);
-
-/*
- * Delete persistent network
- */
-int			virNetworkUndefine	(virNetworkPtr network);
-
-/*
- * Activate persistent network
- */
-int			virNetworkCreate	(virNetworkPtr network);
-
-/*
- * Network destroy/free
- */
-int			virNetworkDestroy	(virNetworkPtr network);
-int			virNetworkFree		(virNetworkPtr network);
-
-/*
- * Network informations
- */
-const char*		virNetworkGetName	(virNetworkPtr network);
-int			virNetworkGetUUID	(virNetworkPtr network,
-						 unsigned char *uuid);
-int			virNetworkGetUUIDString	(virNetworkPtr network,
-						 char *buf);
-char *			virNetworkGetXMLDesc	(virNetworkPtr network,
-						 int flags);
-char *			virNetworkGetBridgeName (virNetworkPtr network);
-
-int			virNetworkGetAutostart	(virNetworkPtr network,
-						 int *autostart);
-int			virNetworkSetAutostart	(virNetworkPtr network,
-						 int autostart);
-
 #ifdef __cplusplus
 }
 #endif
diff -r 0d270ffcf3f0 include/libvirt/libvirt.h.in
--- a/include/libvirt/libvirt.h.in	Sat Oct 27 00:23:28 2007 +0000
+++ b/include/libvirt/libvirt.h.in	Sat Oct 27 13:30:05 2007 -0400
@@ -16,263 +16,26 @@
 
 #include <sys/types.h>
 
+#include <libvirt/connection.h>
+#include <libvirt/node.h>
+#include <libvirt/domain.h>
+#include <libvirt/network.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/**
- * virConnect:
- *
- * a virConnect is a private structure representing a connection to
- * the Xen Hypervisor.
- */
-typedef struct _virConnect virConnect;
+
+/* library versionning */
 
 /**
- * virConnectPtr:
+ * LIBVIR_VERSION_NUMBER:
  *
- * a virConnectPtr is pointer to a virConnect private structure, this is the
- * type used to reference a connection to the Xen Hypervisor in the API.
- */
-typedef virConnect *virConnectPtr;
-
-/**
- * virDomain:
- *
- * a virDomain is a private structure representing a Xen domain.
- */
-typedef struct _virDomain virDomain;
-
-/**
- * virDomainPtr:
- *
- * a virDomainPtr is pointer to a virDomain private structure, this is the
- * type used to reference a Xen domain in the API.
- */
-typedef virDomain *virDomainPtr;
-
-/**
- * virDomainState:
- *
- * A domain may be in different states at a given point in time
- */
-typedef enum {
-     VIR_DOMAIN_NOSTATE	= 0, /* no state */
-     VIR_DOMAIN_RUNNING	= 1, /* the domain is running */
-     VIR_DOMAIN_BLOCKED	= 2, /* the domain is blocked on resource */
-     VIR_DOMAIN_PAUSED	= 3, /* the domain is paused by user */
-     VIR_DOMAIN_SHUTDOWN= 4, /* the domain is being shut down */
-     VIR_DOMAIN_SHUTOFF	= 5, /* the domain is shut off */
-     VIR_DOMAIN_CRASHED = 6  /* the domain is crashed */
-} virDomainState;
-
-/**
- * virDomainInfoPtr:
- *
- * a virDomainInfo is a structure filled by virDomainGetInfo() and extracting
- * runtime informations for a given active Domain
+ * Macro providing the version of the library as 
+ * version * 1,000,000 + minor * 1000 + micro
  */
 
-typedef struct _virDomainInfo virDomainInfo;
-
-struct _virDomainInfo {
-    unsigned char state;	/* the running state, one of virDomainFlags */
-    unsigned long maxMem;	/* the maximum memory in KBytes allowed */
-    unsigned long memory;	/* the memory in KBytes used by the domain */
-    unsigned short nrVirtCpu;	/* the number of virtual CPUs for the domain */
-    unsigned long long cpuTime;	/* the CPU time used in nanoseconds */
-};
-
-/**
- * virDomainInfoPtr:
- *
- * a virDomainInfoPtr is a pointer to a virDomainInfo structure.
- */
-
-typedef virDomainInfo *virDomainInfoPtr;
-
-/**
- * virDomainCreateFlags:
- *
- * Flags OR'ed together to provide specific behaviour when creating a
- * Domain.
- */
-typedef enum {
-     VIR_DOMAIN_NONE = 0
-} virDomainCreateFlags;
-
-/**
- * virNodeInfoPtr:
- *
- * a virNodeInfo is a structure filled by virNodeGetInfo() and providing
- * the informations for the Node. 
- */
-
-typedef struct _virNodeInfo virNodeInfo;
-
-struct _virNodeInfo {
-    char model[32];	/* string indicating the CPU model */
-    unsigned long memory;/* memory size in kilobytes */
-    unsigned int cpus;	/* the number of active CPUs */
-    unsigned int mhz;	/* expected CPU frequency */
-    unsigned int nodes;	/* the number of NUMA cell, 1 for uniform mem access */
-    unsigned int sockets;/* number of CPU socket per node */
-    unsigned int cores;	/* number of core per socket */
-    unsigned int threads;/* number of threads per core */
-};
-
-
-/**
- * virDomainSchedParameterType:
- *
- * A scheduler parameter field type
- */
-typedef enum {
-    VIR_DOMAIN_SCHED_FIELD_INT     = 1,	/* integer case */
-    VIR_DOMAIN_SCHED_FIELD_UINT    = 2,	/* unsigned integer case */
-    VIR_DOMAIN_SCHED_FIELD_LLONG   = 3,	/* long long case */
-    VIR_DOMAIN_SCHED_FIELD_ULLONG  = 4,	/* unsigned long long case */
-    VIR_DOMAIN_SCHED_FIELD_DOUBLE  = 5,	/* double case */
-    VIR_DOMAIN_SCHED_FIELD_BOOLEAN = 6	/* boolean(character) case */
-} virSchedParameterType;
-
-/**
- * VIR_DOMAIN_SCHED_FIELD_LENGTH:
- *
- * Macro providing the field length of virSchedParameter
- */
-
-#define VIR_DOMAIN_SCHED_FIELD_LENGTH 80
-
-/**
- * virDomainSchedParameter:
- *
- * a virDomainSchedParameter is the set of scheduler parameters
- */
-
-typedef struct _virSchedParameter virSchedParameter;
-
-struct _virSchedParameter {
-    char field[VIR_DOMAIN_SCHED_FIELD_LENGTH];	/* parameter name */
-    int type;	/* parameter type */
-    union {
-        int i;				/* data for integer case */
-        unsigned int ui;	/* data for unsigned integer case */
-        long long int l;	/* data for long long integer case */
-        unsigned long long int ul;	/* data for unsigned long long integer case */
-        double d;	/* data for double case */
-        char b;		/* data for char case */
-    } value; /* parameter value */
-};
-
-/**
- * virSchedParameterPtr:
- *
- * a virSchedParameterPtr is a pointer to a virSchedParameter structure.
- */
-
-typedef virSchedParameter *virSchedParameterPtr;
-
-/*
- * Fetch scheduler parameters, caller allocates 'params' field of size 'nparams'
- */
-int	virDomainGetSchedulerParameters	(virDomainPtr domain,
-					 virSchedParameterPtr params,
-					 int *nparams);
-
-/*
- * Change scheduler parameters
- */
-int	virDomainSetSchedulerParameters	(virDomainPtr domain,
-					 virSchedParameterPtr params,
-					 int nparams);
-
-/**
- * virDomainBlockStats:
- *
- * Block device stats for virDomainBlockStats.
- *
- * Hypervisors may return a field set to ((long long)-1) which indicates
- * that the hypervisor does not support that statistic.
- *
- * NB. Here 'long long' means 64 bit integer.
- */
-typedef struct _virDomainBlockStats virDomainBlockStatsStruct;
-
-struct _virDomainBlockStats {
-  long long rd_req;
-  long long rd_bytes;
-  long long wr_req;
-  long long wr_bytes;
-  long long errs;   /* In Xen this returns the mysterious 'oo_req'. */
-};
-
-/**
- * virDomainBlockStatsPtr:
- *
- * A pointer to a virDomainBlockStats structure
- */
-typedef virDomainBlockStatsStruct *virDomainBlockStatsPtr;
-
-/**
- * virDomainInterfaceStats:
- *
- * Network interface stats for virDomainInterfaceStats.
- *
- * Hypervisors may return a field set to ((long long)-1) which indicates
- * that the hypervisor does not support that statistic.
- *
- * NB. Here 'long long' means 64 bit integer.
- */
-typedef struct _virDomainInterfaceStats virDomainInterfaceStatsStruct;
-
-struct _virDomainInterfaceStats {
-  long long rx_bytes;
-  long long rx_packets;
-  long long rx_errs;
-  long long rx_drop;
-  long long tx_bytes;
-  long long tx_packets;
-  long long tx_errs;
-  long long tx_drop;
-};
-
-/**
- * virDomainInterfaceStatsPtr:
- *
- * A pointe to a virDomainInterfaceStats structure
- */
-typedef virDomainInterfaceStatsStruct *virDomainInterfaceStatsPtr;
-
-
-/* Domain migration flags. */
-typedef enum {
-  VIR_MIGRATE_LIVE              = 1, /* live migration */
-} virDomainMigrateFlags;
-
-/* Domain migration. */
-virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
-			       unsigned long flags, const char *dname,
-			       const char *uri, unsigned long bandwidth);
-
-/**
- * VIR_NODEINFO_MAXCPUS:
- * @nodeinfo: virNodeInfo instance
- *
- * This macro is to calculate the total number of CPUs supported
- * but not neccessarily active in the host.
- */
-
-
-#define VIR_NODEINFO_MAXCPUS(nodeinfo) ((nodeinfo).nodes*(nodeinfo).sockets*(nodeinfo).cores*(nodeinfo).threads)
-
-/**
- * virNodeInfoPtr:
- *
- * a virNodeInfoPtr is a pointer to a virNodeInfo structure.
- */
-
-typedef virNodeInfo *virNodeInfoPtr;
+#define LIBVIR_VERSION_NUMBER @LIBVIRT_VERSION_NUMBER@
 
 /**
  * VIR_UUID_BUFLEN:
@@ -292,17 +55,6 @@ typedef virNodeInfo *virNodeInfoPtr;
 
 #define VIR_UUID_STRING_BUFLEN (36+1)
 
-/* library versionning */
-
-/**
- * LIBVIR_VERSION_NUMBER:
- *
- * Macro providing the version of the library as 
- * version * 1,000,000 + minor * 1000 + micro
- */
-
-#define LIBVIR_VERSION_NUMBER @LIBVIRT_VERSION_NUMBER@
-
 int			virGetVersion		(unsigned long *libVer,
 						 const char *type,
 						 unsigned long *typeVer);
@@ -312,380 +64,6 @@ int			virGetVersion		(unsigned long *lib
  */
 int			virInitialize		(void);
 
-virConnectPtr		virConnectOpen		(const char *name);
-virConnectPtr		virConnectOpenReadOnly	(const char *name);
-int			virConnectClose		(virConnectPtr conn);
-const char *		virConnectGetType	(virConnectPtr conn);
-int			virConnectGetVersion	(virConnectPtr conn,
-						 unsigned long *hvVer);
-char *                  virConnectGetHostname   (virConnectPtr conn);
-char *                  virConnectGetURI        (virConnectPtr conn);
-
-
-/*
- * Capabilities of the connection / driver.
- */
-
-int                     virConnectGetMaxVcpus   (virConnectPtr conn,
-						 const char *type);
-int			virNodeGetInfo		(virConnectPtr conn,
-						 virNodeInfoPtr info);
-char *                  virConnectGetCapabilities (virConnectPtr conn);
-
-unsigned long long	virNodeGetFreeMemory	(virConnectPtr conn);
-
-/*
- * Gather list of running domains
- */
-int			virConnectListDomains	(virConnectPtr conn,
-						 int *ids,
-						 int maxids);
-
-/*
- * Number of domains
- */
-int			virConnectNumOfDomains	(virConnectPtr conn);
-
-
-/*
- * Get connection from domain.
- */
-virConnectPtr		virDomainGetConnect     (virDomainPtr domain);
-
-/*
- * Domain creation and destruction
- */
-virDomainPtr		virDomainCreateLinux	(virConnectPtr conn,
-						 const char *xmlDesc,
-						 unsigned int flags);
-virDomainPtr		virDomainLookupByName	(virConnectPtr conn,
-						 const char *name);
-virDomainPtr		virDomainLookupByID	(virConnectPtr conn,
-						 int id);
-virDomainPtr		virDomainLookupByUUID	(virConnectPtr conn,
-						 const unsigned char *uuid);
-virDomainPtr		virDomainLookupByUUIDString	(virConnectPtr conn,
-							const char *uuid);
-
-int			virDomainShutdown	(virDomainPtr domain);
-int			virDomainReboot		(virDomainPtr domain,
-						 unsigned int flags);
-int			virDomainDestroy	(virDomainPtr domain);
-int			virDomainFree		(virDomainPtr domain);
-
-/*
- * Domain suspend/resume
- */
-int			virDomainSuspend	(virDomainPtr domain);
-int			virDomainResume		(virDomainPtr domain);
-
-/*
- * Domain save/restore
- */
-int			virDomainSave		(virDomainPtr domain,
-						 const char *to);
-int			virDomainRestore	(virConnectPtr conn,
-						 const char *from);
-
-/*
- * Domain core dump
- */
-int			virDomainCoreDump	(virDomainPtr domain,
-						 const char *to,
-						 int flags);
-
-/*
- * Domain runtime informations
- */
-int			virDomainGetInfo	(virDomainPtr domain,
-						 virDomainInfoPtr info);
-						 
-/*
- * Return scheduler type in effect 'sedf', 'credit', 'linux'
- */
-char * 			virDomainGetSchedulerType(virDomainPtr domain,
-						 int *nparams);
-
-/*
- * Dynamic control of domains
- */
-const char *		virDomainGetName	(virDomainPtr domain);
-unsigned int		virDomainGetID		(virDomainPtr domain);
-int			virDomainGetUUID	(virDomainPtr domain,
-						 unsigned char *uuid);
-int			virDomainGetUUIDString	(virDomainPtr domain, 
-						char *buf);
-char *			virDomainGetOSType	(virDomainPtr domain);
-unsigned long		virDomainGetMaxMemory	(virDomainPtr domain);
-int			virDomainSetMaxMemory	(virDomainPtr domain,
-						 unsigned long memory);
-int			virDomainSetMemory	(virDomainPtr domain,
-						 unsigned long memory);
-int			virDomainGetMaxVcpus	(virDomainPtr domain);
-
-/*
- * XML domain description
- */
-/**
- * virDomainXMLFlags:
- *
- * Flags available for virDomainGetXMLDesc
- */
-
-typedef enum {
-    VIR_DOMAIN_XML_SECURE = 1, /* dump security sensitive informations too */
-    VIR_DOMAIN_XML_INACTIVE = 2/* dump inactive domain informations */
-} virDomainXMLFlags;
-
-char *			virDomainGetXMLDesc	(virDomainPtr domain,
-						 int flags);
-
-int                     virDomainBlockStats     (virDomainPtr dom,
-						 const char *path,
-						 virDomainBlockStatsPtr stats,
-						 size_t size);
-int                     virDomainInterfaceStats (virDomainPtr dom,
-						 const char *path,
-						 virDomainInterfaceStatsPtr stats,
-						 size_t size);
-
-
-/*
- * defined but not running domains
- */
-virDomainPtr		virDomainDefineXML	(virConnectPtr conn,
-						 const char *xml);
-int			virDomainUndefine	(virDomainPtr domain);
-int                     virConnectNumOfDefinedDomains  (virConnectPtr conn);
-int			virConnectListDefinedDomains (virConnectPtr conn,
-						 char **const names,
-						 int maxnames);
-int			virDomainCreate		(virDomainPtr domain);
-
-int			virDomainGetAutostart	(virDomainPtr domain,
-						 int *autostart);
-int			virDomainSetAutostart	(virDomainPtr domain,
-						 int autostart);
-
-/**
- * virVcpuInfo: structure for information about a virtual CPU in a domain.
- */
-
-typedef enum {
-    VIR_VCPU_OFFLINE	= 0,	/* the virtual CPU is offline */
-    VIR_VCPU_RUNNING	= 1,	/* the virtual CPU is running */
-    VIR_VCPU_BLOCKED	= 2,	/* the virtual CPU is blocked on resource */
-} virVcpuState;
-
-typedef struct _virVcpuInfo virVcpuInfo;
-struct _virVcpuInfo {
-    unsigned int number;	/* virtual CPU number */
-    int state;			/* value from virVcpuState */
-    unsigned long long cpuTime; /* CPU time used, in nanoseconds */
-    int cpu;			/* real CPU number, or -1 if offline */
-};
-typedef virVcpuInfo *virVcpuInfoPtr;
-
-int			virDomainSetVcpus	(virDomainPtr domain,
-						 unsigned int nvcpus);
-
-int			virDomainPinVcpu	(virDomainPtr domain,
-						 unsigned int vcpu,
-						 unsigned char *cpumap,
-						 int maplen);
-
-/**
- * VIR_USE_CPU:
- * @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
- * @cpu: the physical CPU number
- *
- * This macro is to be used in conjonction with virDomainPinVcpu() API.
- * USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap.
- */
-
-#define VIR_USE_CPU(cpumap,cpu)	(cpumap[(cpu)/8] |= (1<<((cpu)%8)))
-
-/**
- * VIR_UNUSE_CPU:
- * @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
- * @cpu: the physical CPU number
- *
- * This macro is to be used in conjonction with virDomainPinVcpu() API.
- * USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap.
- */
-
-#define VIR_UNUSE_CPU(cpumap,cpu)	(cpumap[(cpu)/8] &= ~(1<<((cpu)%8)))
-
-/**
- * VIR_CPU_MAPLEN:
- * @cpu: number of physical CPUs
- *
- * This macro is to be used in conjonction with virDomainPinVcpu() API.
- * It returns the length (in bytes) required to store the complete
- * CPU map between a single virtual & all physical CPUs of a domain.
- */
-
-#define VIR_CPU_MAPLEN(cpu)      (((cpu)+7)/8)
-
-
-int			virDomainGetVcpus	(virDomainPtr domain,
-						 virVcpuInfoPtr info,
-						 int maxinfo,
-						 unsigned char *cpumaps,
-						 int maplen);
-
-/**
- * VIR_CPU_USABLE:
- * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
- * @maplen: the length (in bytes) of one cpumap
- * @vcpu: the virtual CPU number
- * @cpu: the physical CPU number
- *
- * This macro is to be used in conjonction with virDomainGetVcpus() API.
- * VIR_CPU_USABLE macro returns a non zero value (true) if the cpu
- * is usable by the vcpu, and 0 otherwise.
- */
-
-#define VIR_CPU_USABLE(cpumaps,maplen,vcpu,cpu) \
-	(cpumaps[((vcpu)*(maplen))+((cpu)/8)] & (1<<((cpu)%8)))
-
-/**
- * VIR_COPY_CPUMAP:
- * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
- * @maplen: the length (in bytes) of one cpumap
- * @vcpu: the virtual CPU number
- * @cpumap: pointer to a cpumap (in 8-bit bytes) (OUT)
- *	This cpumap must be previously allocated by the caller
- *      (ie: malloc(maplen))
- *
- * This macro is to be used in conjonction with virDomainGetVcpus() and
- * virDomainPinVcpu() APIs. VIR_COPY_CPUMAP macro extract the cpumap of
- * the specified vcpu from cpumaps array and copy it into cpumap to be used
- * later by virDomainPinVcpu() API.
- */
-#define VIR_COPY_CPUMAP(cpumaps,maplen,vcpu,cpumap) \
-	memcpy(cpumap, &(cpumaps[(vcpu)*(maplen)]), (maplen))
-
-
-/**
- * VIR_GET_CPUMAP:
- * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN)
- * @maplen: the length (in bytes) of one cpumap
- * @vcpu: the virtual CPU number
- *
- * This macro is to be used in conjonction with virDomainGetVcpus() and
- * virDomainPinVcpu() APIs. VIR_GET_CPUMAP macro returns a pointer to the
- * cpumap of the specified vcpu from cpumaps array.
- */
-#define VIR_GET_CPUMAP(cpumaps,maplen,vcpu)	&(cpumaps[(vcpu)*(maplen)])
-
-int virDomainAttachDevice(virDomainPtr domain, const char *xml);
-int virDomainDetachDevice(virDomainPtr domain, const char *xml);
-
-/*
- * NUMA support
- */
-
-int			 virNodeGetCellsFreeMemory(virConnectPtr conn,
-						   unsigned long long *freeMems,
-						   int startCell,
-						   int maxCells);
-
-/*
- * Virtual Networks API
- */
-
-/**
- * virNetwork:
- *
- * a virNetwork is a private structure representing a virtual network.
- */
-typedef struct _virNetwork virNetwork;
-
-/**
- * virNetworkPtr:
- *
- * a virNetworkPtr is pointer to a virNetwork private structure, this is the
- * type used to reference a virtual network in the API.
- */
-typedef virNetwork *virNetworkPtr;
-
-/*
- * Get connection from network.
- */
-virConnectPtr		virNetworkGetConnect    (virNetworkPtr network);
-
-/*
- * List active networks
- */
-int			virConnectNumOfNetworks	(virConnectPtr conn);
-int			virConnectListNetworks	(virConnectPtr conn,
-						 char **const names,
-						 int maxnames);
-
-/*
- * List inactive networks
- */
-int			virConnectNumOfDefinedNetworks	(virConnectPtr conn);
-int			virConnectListDefinedNetworks	(virConnectPtr conn,
-							 char **const names,
-							 int maxnames);
-
-/*
- * Lookup network by name or uuid
- */
-virNetworkPtr		virNetworkLookupByName		(virConnectPtr conn,
-							 const char *name);
-virNetworkPtr 		virNetworkLookupByUUID		(virConnectPtr conn,
-							 const unsigned char *uuid);
-virNetworkPtr		virNetworkLookupByUUIDString	(virConnectPtr conn,
-							 const char *uuid);
-
-/*
- * Create active transient network
- */
-virNetworkPtr		virNetworkCreateXML	(virConnectPtr conn,
-						 const char *xmlDesc);
-
-/*
- * Define inactive persistent network
- */
-virNetworkPtr		virNetworkDefineXML	(virConnectPtr conn,
-						 const char *xmlDesc);
-
-/*
- * Delete persistent network
- */
-int			virNetworkUndefine	(virNetworkPtr network);
-
-/*
- * Activate persistent network
- */
-int			virNetworkCreate	(virNetworkPtr network);
-
-/*
- * Network destroy/free
- */
-int			virNetworkDestroy	(virNetworkPtr network);
-int			virNetworkFree		(virNetworkPtr network);
-
-/*
- * Network informations
- */
-const char*		virNetworkGetName	(virNetworkPtr network);
-int			virNetworkGetUUID	(virNetworkPtr network,
-						 unsigned char *uuid);
-int			virNetworkGetUUIDString	(virNetworkPtr network,
-						 char *buf);
-char *			virNetworkGetXMLDesc	(virNetworkPtr network,
-						 int flags);
-char *			virNetworkGetBridgeName (virNetworkPtr network);
-
-int			virNetworkGetAutostart	(virNetworkPtr network,
-						 int *autostart);
-int			virNetworkSetAutostart	(virNetworkPtr network,
-						 int autostart);
-
 #ifdef __cplusplus
 }
 #endif
diff -r 0d270ffcf3f0 include/libvirt/network.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/libvirt/network.h	Sat Oct 27 13:34:08 2007 -0400
@@ -0,0 +1,125 @@
+/* -*- c -*-
+ * network.h:
+ * Summary: virtual network interfaces
+ * Description: Provides the interfaces of the libvirt library to handle
+ *              virtual networks from a process running in the host
+ *
+ * Copy:  Copyright (C) 2005-2007 Red Hat, Inc.
+ *
+ * See COPYING.LIB for the License of this software
+ *
+ * Author: Daniel Veillard <veillard@xxxxxxxxxx>
+ */
+
+
+#ifndef __VIR_VIRLIB_H__
+#error "Do not include network.h directly. Use libvirt.h instead"
+#endif
+
+#ifndef __VIR_VIRLIB_NETWORK_H__
+#define __VIR_VIRLIB_NETWORK_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Virtual Networks API
+ */
+
+/**
+ * virNetwork:
+ *
+ * a virNetwork is a private structure representing a virtual network.
+ */
+typedef struct _virNetwork virNetwork;
+
+/**
+ * virNetworkPtr:
+ *
+ * a virNetworkPtr is pointer to a virNetwork private structure, this is the
+ * type used to reference a virtual network in the API.
+ */
+typedef virNetwork *virNetworkPtr;
+
+/*
+ * Get connection from network.
+ */
+virConnectPtr		virNetworkGetConnect    (virNetworkPtr network);
+
+/*
+ * List active networks
+ */
+int			virConnectNumOfNetworks	(virConnectPtr conn);
+int			virConnectListNetworks	(virConnectPtr conn,
+						 char **const names,
+						 int maxnames);
+
+/*
+ * List inactive networks
+ */
+int			virConnectNumOfDefinedNetworks	(virConnectPtr conn);
+int			virConnectListDefinedNetworks	(virConnectPtr conn,
+							 char **const names,
+							 int maxnames);
+
+/*
+ * Lookup network by name or uuid
+ */
+virNetworkPtr		virNetworkLookupByName		(virConnectPtr conn,
+							 const char *name);
+virNetworkPtr 		virNetworkLookupByUUID		(virConnectPtr conn,
+							 const unsigned char *uuid);
+virNetworkPtr		virNetworkLookupByUUIDString	(virConnectPtr conn,
+							 const char *uuid);
+
+/*
+ * Create active transient network
+ */
+virNetworkPtr		virNetworkCreateXML	(virConnectPtr conn,
+						 const char *xmlDesc);
+
+/*
+ * Define inactive persistent network
+ */
+virNetworkPtr		virNetworkDefineXML	(virConnectPtr conn,
+						 const char *xmlDesc);
+
+/*
+ * Delete persistent network
+ */
+int			virNetworkUndefine	(virNetworkPtr network);
+
+/*
+ * Activate persistent network
+ */
+int			virNetworkCreate	(virNetworkPtr network);
+
+/*
+ * Network destroy/free
+ */
+int			virNetworkDestroy	(virNetworkPtr network);
+int			virNetworkFree		(virNetworkPtr network);
+
+/*
+ * Network informations
+ */
+const char*		virNetworkGetName	(virNetworkPtr network);
+int			virNetworkGetUUID	(virNetworkPtr network,
+						 unsigned char *uuid);
+int			virNetworkGetUUIDString	(virNetworkPtr network,
+						 char *buf);
+char *			virNetworkGetXMLDesc	(virNetworkPtr network,
+						 int flags);
+char *			virNetworkGetBridgeName (virNetworkPtr network);
+
+int			virNetworkGetAutostart	(virNetworkPtr network,
+						 int *autostart);
+int			virNetworkSetAutostart	(virNetworkPtr network,
+						 int autostart);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VIR_VIRLIB_NETWORK_H__ */
diff -r 0d270ffcf3f0 include/libvirt/node.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/libvirt/node.h	Sat Oct 27 13:22:06 2007 -0400
@@ -0,0 +1,90 @@
+/* -*- c -*-
+ * node.h:
+ * Summary: host node information
+ * Description: Provides the interfaces of the libvirt library to handle
+ *              information about the host node.
+ *
+ * Copy:  Copyright (C) 2005-2007 Red Hat, Inc.
+ *
+ * See COPYING.LIB for the License of this software
+ *
+ * Author: Daniel Veillard <veillard@xxxxxxxxxx>
+ */
+
+
+
+#ifndef __VIR_VIRLIB_H__
+#error "Do not include node.h directly. Use libvirt.h instead"
+#endif
+
+#ifndef __VIR_VIRLIB_NODE_H__
+#define __VIR_VIRLIB_NODE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * virNodeInfo:
+ *
+ * a virNodeInfo is a structure filled by virNodeGetInfo() and providing
+ * the informations for the Node. 
+ */
+
+typedef struct _virNodeInfo virNodeInfo;
+
+struct _virNodeInfo {
+    char model[32];	/* string indicating the CPU model */
+    unsigned long memory;/* memory size in kilobytes */
+    unsigned int cpus;	/* the number of active CPUs */
+    unsigned int mhz;	/* expected CPU frequency */
+    unsigned int nodes;	/* the number of NUMA cell, 1 for uniform mem access */
+    unsigned int sockets;/* number of CPU socket per node */
+    unsigned int cores;	/* number of core per socket */
+    unsigned int threads;/* number of threads per core */
+};
+
+/**
+ * virNodeInfoPtr:
+ *
+ * a virNodeInfoPtr is a pointer to a virNodeInfo structure.
+ */
+
+typedef virNodeInfo *virNodeInfoPtr;
+
+
+/**
+ * VIR_NODEINFO_MAXCPUS:
+ * @nodeinfo: virNodeInfo instance
+ *
+ * This macro is to calculate the total number of CPUs supported
+ * but not neccessarily active in the host.
+ */
+
+
+#define VIR_NODEINFO_MAXCPUS(nodeinfo) ((nodeinfo).nodes*(nodeinfo).sockets*(nodeinfo).cores*(nodeinfo).threads)
+
+/*
+ * Capabilities of the connection / driver.
+ */
+
+int			virNodeGetInfo		(virConnectPtr conn,
+						 virNodeInfoPtr info);
+char *                  virConnectGetCapabilities (virConnectPtr conn);
+
+unsigned long long	virNodeGetFreeMemory	(virConnectPtr conn);
+
+/*
+ * NUMA support
+ */
+
+int			 virNodeGetCellsFreeMemory(virConnectPtr conn,
+						   unsigned long long *freeMems,
+						   int startCell,
+						   int maxCells);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VIR_VIRLIB_NODE_H__ */
diff -r 0d270ffcf3f0 src/libvirt.c
--- a/src/libvirt.c	Sat Oct 27 00:23:28 2007 +0000
+++ b/src/libvirt.c	Sat Oct 27 13:33:18 2007 -0400
@@ -10,7 +10,6 @@
  */
 
 #include "config.h"
-#include "libvirt/libvirt.h"
 
 #include <stdio.h>
 #include <stdlib.h>

-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

--
Libvir-list mailing list
Libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]