diff --git a/ChangeLog b/ChangeLog index 5d67f4623e..f99cfc505d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Feb 20 10:15:27 EST 2008 Daniel P. Berrange + + * docs/libvirt-api.xml, docs/libvirt-refs.xml, docs/devhelp/*: + re-generate docs to include latest API details + Wed Feb 20 10:01:27 EST 2008 Daniel P. Berrange * include/libvirt/virterror.h, src/virterror.c: Add error codes diff --git a/NEWS b/NEWS index fb4878f68f..581acb6aeb 100644 --- a/NEWS +++ b/NEWS @@ -17,7 +17,7 @@ Releases various english fixes (Bruce Montague), OCaml docs links (Richard Jones), describe the various bindings add Ruby link, Windows support page (Richard Jones), authentication documentation updates (Daniel Berrange) - + - Bug fixes: NUMA topology error handling (Beth Kon), NUMA topology cells without CPU (Beth Kon), XML to/from XM bridge config (Daniel Berrange), XM processing of vnc parameters (Daniel Berrange), Reset @@ -42,7 +42,7 @@ Releases parameter setting in XM config (Saori Fukuta), credential handling fixes (Daniel Berrange), fix compatibility with Xen 3.2.0 (Daniel Berrange) - + - Improvements: /etc/libvirt/qemu.conf configuration for QEMU driver (Daniel Berrange), NUMA cpu pinning in config files (DV and Saori Fukuta), CDRom media change in KVM/QEMU (Daniel Berrange), tests for @@ -51,7 +51,7 @@ Releases --without-libvirtd config option (Richard Jones), Python bindings for NUMA, add extra utility functions to buffer (Richard Jones), separate qparams module for handling query parameters (Richard Jones) - + - Code cleanups: remove virDomainRestart from API as it was never used (Richard Jones), constify params for attach/detach APIs (Daniel Berrange), gcc printf attribute checkings (Jim Meyering), refactoring of device @@ -72,13 +72,13 @@ Releases port (Richard Jones), disable the proxy if using PolicyKit, readline availability detection, test libvirtd's config-processing code (Jim Meyering), use a variable name as sizeof argument (Jim Meyering) - + 0.3.3: Sep 30 2007: - New features: Avahi mDNS daemon export (Daniel Berrange), - NUMA support (Beth Kan) - - Documentation: cleanups (Toth Istvan), typos (Eduardo Pereira), + NUMA support (Beth Kan) + - Documentation: cleanups (Toth Istvan), typos (Eduardo Pereira), - Bug fixes: memory corruption on large dumps (Masayuki Sunou), fix virsh vncdisplay command exit (Masayuki Sunou), Fix network stats TX/RX result (Richard Jones), warning on Xen 3.0.3 (Richard Jones), @@ -124,10 +124,10 @@ Releases speedup of domain queries on Xen (Daniel berrange), augment XML dumps with interface devices names (Richard Jones), internal API to query drivers for features (Richard Jones). - + - Cleanups: Improve virNodeGetInfo implentation (Daniel berrange), general UUID code cleanup (Daniel berrange), fix API generator - file selection. + file selection. 0.3.1: Jul 24 2007: @@ -161,7 +161,7 @@ Releases - Secure Remote support (Richard Jones). See the remote page of the documentation - + - Documentation: remote support (Richard Jones), description of the URI connection strings (Richard Jones), update of virsh man page, matrix of libvirt API/hypervisor support with version @@ -202,7 +202,7 @@ Releases 0.2.3: Jun 8 2007: - Documentation: documentation for upcoming remote access (Richard Jones), virConnectNumOfDefinedDomains doc (Jan Michael), virsh help messages - for dumpxml and net-dumpxml (Chris Wright), + for dumpxml and net-dumpxml (Chris Wright), - Bug fixes: RelaxNG schemas regexp fix (Robin Green), RelaxNG arch bug (Mark McLoughlin), large buffers bug fixes (Shigeki Sakamoto), error on out of memory condition (Shigeki Sakamoto), virshStrdup fix, non-root @@ -262,7 +262,7 @@ Releases signal handler error cleanup (Richard Jones), iptables internal code claenup (Mark McLoughlin), unified Xen driver (Richard Jones), cleanup XPath libxml2 calls, IPTables rules tightening (Daniel - Berrange), + Berrange), - Improvements: more regression tests on XML (Daniel Berrange), Python bindings now generate exception in error cases (Richard Jones), Python bindings for vir*GetAutoStart (Daniel Berrange), @@ -270,7 +270,7 @@ Releases fix hypervisor call to work with Xen 3.0.5 (Daniel Berrange), DomainGetOSType for inactive domains (Daniel Berrange), multiple boot devices for HVM (Daniel Berrange), - + 0.2.1: Mar 16 2007: @@ -375,7 +375,7 @@ Releases - Support for localization of strings using gettext (Daniel Berrange) - Support for new Xen-3.0.3 cdrom and disk configuration (Daniel Berrange) - Support for setting VNC port when creating domains with new - xend config files (Daniel Berrange) + xend config files (Daniel Berrange) - Fix bug when running against xen-3.0.2 hypercalls (Jim Fehlig) - Fix reconnection problem when talking directly to http xend @@ -409,7 +409,7 @@ Releases floppy and cdrom (Daniel Berrange), features block in XML to report/ask PAE, ACPI, APIC for HVM domains (Daniel Berrange), fail saide-effect operations when using read-only connection, large improvements to test - driver (Daniel Berrange) + driver (Daniel Berrange) - documentation: spelling (Daniel Berrange), test driver examples. diff --git a/docs/devhelp/libvirt-libvirt.html b/docs/devhelp/libvirt-libvirt.html index 244bd2935b..27f790f033 100644 --- a/docs/devhelp/libvirt-libvirt.html +++ b/docs/devhelp/libvirt-libvirt.html @@ -57,111 +57,163 @@ typedef virDomainBlockS typedef struct _virConnect virConnect; typedef struct _virVcpuInfo virVcpuInfo; typedef struct _virDomainInfo virDomainInfo; +typedef enum virStoragePoolDeleteFlags; +typedef struct _virStoragePool virStoragePool; +typedef virStoragePool * virStoragePoolPtr; typedef struct _virDomainInterfaceStats virDomainInterfaceStatsStruct; +typedef struct _virStoragePoolInfo virStoragePoolInfo; typedef enum virDomainState; typedef struct _virDomain virDomain; typedef virDomainInterfaceStatsStruct * virDomainInterfaceStatsPtr; typedef virConnectAuth * virConnectAuthPtr; +typedef struct _virStorageVolInfo virStorageVolInfo; typedef enum virSchedParameterType; typedef virConnectCredential * virConnectCredentialPtr; typedef virNodeInfo * virNodeInfoPtr; typedef virNetwork * virNetworkPtr; typedef virDomainInfo * virDomainInfoPtr; typedef virConnect * virConnectPtr; +typedef struct _virStorageVol virStorageVol; +typedef virStorageVolInfo * virStorageVolInfoPtr; typedef struct _virSchedParameter virSchedParameter; typedef enum virConnectFlags; typedef virSchedParameter * virSchedParameterPtr; +typedef virStorageVol * virStorageVolPtr; typedef enum virVcpuState; +typedef enum virStorageVolDeleteFlags; typedef struct _virConnectAuth virConnectAuth; typedef struct _virConnectCredential virConnectCredential; typedef virVcpuInfo * virVcpuInfoPtr; +typedef enum virStoragePoolBuildFlags; typedef enum virDomainXMLFlags; +typedef enum virStorageVolType; typedef virDomain * virDomainPtr; typedef enum virConnectCredentialType; +typedef enum virStoragePoolState; +typedef virStoragePoolInfo * virStoragePoolInfoPtr; typedef enum virDomainCreateFlags; -int virDomainGetInfo (virDomainPtr domain,
virDomainInfoPtr info); -int virNetworkCreate (virNetworkPtr network); -int virNetworkFree (virNetworkPtr network); -const char * virNetworkGetName (virNetworkPtr network); -const char * virDomainGetName (virDomainPtr domain); -int virNetworkGetAutostart (virNetworkPtr network,
int * autostart); +char * virStoragePoolGetXMLDesc (virStoragePoolPtr pool,
unsigned int flags); +const char * virStorageVolGetKey (virStorageVolPtr vol); +int virConnectClose (virConnectPtr conn); virDomainPtr virDomainDefineXML (virConnectPtr conn,
const char * xml); int virDomainShutdown (virDomainPtr domain); -int virNetworkUndefine (virNetworkPtr network); +int virConnectListStoragePools (virConnectPtr conn,
char ** const names,
int maxnames); int virGetVersion (unsigned long * libVer,
const char * type,
unsigned long * typeVer); -int virConnectListDefinedDomains (virConnectPtr conn,
char ** const names,
int maxnames); -char * virConnectGetCapabilities (virConnectPtr conn); -int virInitialize (void); -virDomainPtr virDomainLookupByName (virConnectPtr conn,
const char * name); -virNetworkPtr virNetworkLookupByUUID (virConnectPtr conn,
const unsigned char * uuid); -char * virNetworkGetBridgeName (virNetworkPtr network); -int virDomainPinVcpu (virDomainPtr domain,
unsigned int vcpu,
unsigned char * cpumap,
int maplen); -int virDomainRestore (virConnectPtr conn,
const char * from); -const char * virConnectGetType (virConnectPtr conn); -virNetworkPtr virNetworkLookupByName (virConnectPtr conn,
const char * name); -unsigned long long virNodeGetFreeMemory (virConnectPtr conn); +int virNodeGetCellsFreeMemory (virConnectPtr conn,
unsigned long long * freeMems,
int startCell,
int maxCells); +int virStoragePoolSetAutostart (virStoragePoolPtr pool,
int autostart); +virStorageVolPtr virStorageVolCreateXML (virStoragePoolPtr pool,
const char * xmldesc,
unsigned int flags); int virDomainGetSchedulerParameters (virDomainPtr domain,
virSchedParameterPtr params,
int * nparams); -int virDomainCreate (virDomainPtr domain); -int virConnectListDomains (virConnectPtr conn,
int * ids,
int maxids); -virNetworkPtr virNetworkLookupByUUIDString (virConnectPtr conn,
const char * uuidstr); -int virDomainCoreDump (virDomainPtr domain,
const char * to,
int flags); -virDomainPtr virDomainLookupByUUID (virConnectPtr conn,
const unsigned char * uuid); virDomainPtr virDomainLookupByUUIDString (virConnectPtr conn,
const char * uuidstr); int virConnectNumOfDefinedNetworks (virConnectPtr conn); -int virDomainUndefine (virDomainPtr domain); -char * virDomainGetOSType (virDomainPtr domain); -int virConnectListDefinedNetworks (virConnectPtr conn,
char ** const names,
int maxnames); -int virNodeGetInfo (virConnectPtr conn,
virNodeInfoPtr info); -int virDomainGetUUID (virDomainPtr domain,
unsigned char * uuid); -int virDomainSetMemory (virDomainPtr domain,
unsigned long memory); -int virNetworkSetAutostart (virNetworkPtr network,
int autostart); int virConnectNumOfDomains (virConnectPtr conn); -int virDomainGetUUIDString (virDomainPtr domain,
char * buf); -virConnectPtr virDomainGetConnect (virDomainPtr dom); -unsigned long virDomainGetMaxMemory (virDomainPtr domain); -int virDomainAttachDevice (virDomainPtr domain,
const char * xml); -int virDomainGetMaxVcpus (virDomainPtr domain); +int virNetworkGetUUID (virNetworkPtr network,
unsigned char * uuid); +virConnectPtr virStoragePoolGetConnect (virStoragePoolPtr pool); +int virConnectGetVersion (virConnectPtr conn,
unsigned long * hvVer); int virDomainFree (virDomainPtr domain); -virConnectPtr virConnectOpen (const char * name); +const char * virStoragePoolGetName (virStoragePoolPtr pool); int virDomainSetAutostart (virDomainPtr domain,
int autostart); -int virDomainSuspend (virDomainPtr domain); -int virConnectGetMaxVcpus (virConnectPtr conn,
const char * type); -virConnectPtr virNetworkGetConnect (virNetworkPtr net); -int virConnectNumOfDefinedDomains (virConnectPtr conn); -virNetworkPtr virNetworkCreateXML (virConnectPtr conn,
const char * xmlDesc); -virNetworkPtr virNetworkDefineXML (virConnectPtr conn,
const char * xml); -virDomainPtr virDomainLookupByID (virConnectPtr conn,
int id); -int virDomainSetSchedulerParameters (virDomainPtr domain,
virSchedParameterPtr params,
int nparams); -int virNodeGetCellsFreeMemory (virConnectPtr conn,
unsigned long long * freeMems,
int startCell,
int maxCells); -int virConnectClose (virConnectPtr conn); -int virDomainReboot (virDomainPtr domain,
unsigned int flags); -int virDomainBlockStats (virDomainPtr dom,
const char * path,
virDomainBlockStatsPtr stats,
size_t size); -int virDomainSetVcpus (virDomainPtr domain,
unsigned int nvcpus); -virConnectPtr virConnectOpenAuth (const char * name,
virConnectAuthPtr auth,
int flags); -int virNetworkGetUUIDString (virNetworkPtr network,
char * buf); -virDomainPtr virDomainMigrate (virDomainPtr domain,
virConnectPtr dconn,
unsigned long flags,
const char * dname,
const char * uri,
unsigned long bandwidth); -char * virNetworkGetXMLDesc (virNetworkPtr network,
int flags); -unsigned int virDomainGetID (virDomainPtr domain); -int virDomainResume (virDomainPtr domain); +virStoragePoolPtr virStoragePoolDefineXML (virConnectPtr conn,
const char * xml,
unsigned int flags); +virStorageVolPtr virStorageVolLookupByPath (virConnectPtr conn,
const char * path); +virStorageVolPtr virStorageVolLookupByName (virStoragePoolPtr pool,
const char * name); virDomainPtr virDomainCreateLinux (virConnectPtr conn,
const char * xmlDesc,
unsigned int flags); -char * virDomainGetSchedulerType (virDomainPtr domain,
int * nparams); -int virNetworkDestroy (virNetworkPtr network); +int virDomainSetMaxMemory (virDomainPtr domain,
unsigned long memory); +int virInitialize (void); +virDomainPtr virDomainMigrate (virDomainPtr domain,
virConnectPtr dconn,
unsigned long flags,
const char * dname,
const char * uri,
unsigned long bandwidth); +int virDomainSuspend (virDomainPtr domain); +int virNetworkCreate (virNetworkPtr network); int virDomainDestroy (virDomainPtr domain); int virConnectNumOfNetworks (virConnectPtr conn); -int virDomainDetachDevice (virDomainPtr domain,
const char * xml); -int virDomainGetAutostart (virDomainPtr domain,
int * autostart); -int virDomainGetVcpus (virDomainPtr domain,
virVcpuInfoPtr info,
int maxinfo,
unsigned char * cpumaps,
int maplen); -int virNetworkGetUUID (virNetworkPtr network,
unsigned char * uuid); -char * virConnectGetHostname (virConnectPtr conn); +virStoragePoolPtr virStoragePoolLookupByUUIDString (virConnectPtr conn,
const char * uuidstr); char * virDomainGetXMLDesc (virDomainPtr domain,
int flags); -int virDomainSetMaxMemory (virDomainPtr domain,
unsigned long memory); -int virDomainInterfaceStats (virDomainPtr dom,
const char * path,
virDomainInterfaceStatsPtr stats,
size_t size); -typedef int virConnectAuthCallbackPtr (virConnectCredentialPtr cred,
unsigned int ncred,
void * cbdata); -int virConnectGetVersion (virConnectPtr conn,
unsigned long * hvVer); -int virConnectListNetworks (virConnectPtr conn,
char ** const names,
int maxnames); -char * virConnectGetURI (virConnectPtr conn); +int virStoragePoolGetUUID (virStoragePoolPtr pool,
unsigned char * uuid); +int virStorageVolGetInfo (virStorageVolPtr vol,
virStorageVolInfoPtr info); +const char * virNetworkGetName (virNetworkPtr network); +int virNetworkDestroy (virNetworkPtr network); +virStoragePoolPtr virStoragePoolLookupByName (virConnectPtr conn,
const char * name); +int virNetworkGetAutostart (virNetworkPtr network,
int * autostart); +char * virNetworkGetBridgeName (virNetworkPtr network); +char * virStorageVolGetXMLDesc (virStorageVolPtr vol,
unsigned int flags); +int virDomainSetSchedulerParameters (virDomainPtr domain,
virSchedParameterPtr params,
int nparams); +const char * virConnectGetType (virConnectPtr conn); int virDomainSave (virDomainPtr domain,
const char * to); +int virDomainCreate (virDomainPtr domain); +int virConnectListDomains (virConnectPtr conn,
int * ids,
int maxids); +int virDomainCoreDump (virDomainPtr domain,
const char * to,
int flags); +int virDomainSetMemory (virDomainPtr domain,
unsigned long memory); +int virNodeGetInfo (virConnectPtr conn,
virNodeInfoPtr info); +int virNetworkSetAutostart (virNetworkPtr network,
int autostart); +unsigned long virDomainGetMaxMemory (virDomainPtr domain); +int virStoragePoolFree (virStoragePoolPtr pool); +virNetworkPtr virNetworkDefineXML (virConnectPtr conn,
const char * xml); +int virDomainBlockStats (virDomainPtr dom,
const char * path,
virDomainBlockStatsPtr stats,
size_t size); +virConnectPtr virConnectOpenAuth (const char * name,
virConnectAuthPtr auth,
int flags); +int virStoragePoolDelete (virStoragePoolPtr pool,
unsigned int flags); +int virDomainResume (virDomainPtr domain); +const char * virStorageVolGetName (virStorageVolPtr vol); +int virStoragePoolGetAutostart (virStoragePoolPtr pool,
int * autostart); +int virDomainGetAutostart (virDomainPtr domain,
int * autostart); +int virStoragePoolListVolumes (virStoragePoolPtr pool,
char ** const names,
int maxnames); +char * virConnectGetHostname (virConnectPtr conn); +const char * virDomainGetName (virDomainPtr domain); +char * virNetworkGetXMLDesc (virNetworkPtr network,
int flags); +int virConnectNumOfStoragePools (virConnectPtr conn); +int virDomainGetInfo (virDomainPtr domain,
virDomainInfoPtr info); +int virConnectListDefinedDomains (virConnectPtr conn,
char ** const names,
int maxnames); +char * virConnectGetCapabilities (virConnectPtr conn); +virDomainPtr virDomainLookupByName (virConnectPtr conn,
const char * name); +int virDomainPinVcpu (virDomainPtr domain,
unsigned int vcpu,
unsigned char * cpumap,
int maplen); +int virDomainRestore (virConnectPtr conn,
const char * from); +char * virStorageVolGetPath (virStorageVolPtr vol); +virNetworkPtr virNetworkLookupByUUIDString (virConnectPtr conn,
const char * uuidstr); +virDomainPtr virDomainLookupByID (virConnectPtr conn,
int id); +int virStorageVolFree (virStorageVolPtr vol); +virNetworkPtr virNetworkLookupByUUID (virConnectPtr conn,
const unsigned char * uuid); +int virConnectListDefinedNetworks (virConnectPtr conn,
char ** const names,
int maxnames); +int virDomainGetUUID (virDomainPtr domain,
unsigned char * uuid); +virNetworkPtr virNetworkCreateXML (virConnectPtr conn,
const char * xmlDesc); +int virDomainGetVcpus (virDomainPtr domain,
virVcpuInfoPtr info,
int maxinfo,
unsigned char * cpumaps,
int maplen); +virStoragePoolPtr virStoragePoolCreateXML (virConnectPtr conn,
const char * xmlDesc,
unsigned int flags); +int virStoragePoolGetInfo (virStoragePoolPtr pool,
virStoragePoolInfoPtr info); +int virStoragePoolRefresh (virStoragePoolPtr pool,
unsigned int flags); +int virConnectNumOfDefinedDomains (virConnectPtr conn); +virStorageVolPtr virStorageVolLookupByKey (virConnectPtr conn,
const char * key); +int virDomainUndefine (virDomainPtr domain); +int virDomainReboot (virDomainPtr domain,
unsigned int flags); +int virNetworkGetUUIDString (virNetworkPtr network,
char * buf); +virNetworkPtr virNetworkLookupByName (virConnectPtr conn,
const char * name); +int virDomainGetMaxVcpus (virDomainPtr domain); +char * virDomainGetSchedulerType (virDomainPtr domain,
int * nparams); +int virDomainDetachDevice (virDomainPtr domain,
const char * xml); +int virStoragePoolNumOfVolumes (virStoragePoolPtr pool); +int virStoragePoolGetUUIDString (virStoragePoolPtr pool,
char * buf); +int virStoragePoolUndefine (virStoragePoolPtr pool); +typedef int virConnectAuthCallbackPtr (virConnectCredentialPtr cred,
unsigned int ncred,
void * cbdata); +int virDomainAttachDevice (virDomainPtr domain,
const char * xml); +char * virConnectGetURI (virConnectPtr conn); virConnectPtr virConnectOpenReadOnly (const char * name); +int virNetworkFree (virNetworkPtr network); +virStoragePoolPtr virStoragePoolLookupByUUID (virConnectPtr conn,
const unsigned char * uuid); +int virStorageVolDelete (virStorageVolPtr vol,
unsigned int flags); +int virNetworkUndefine (virNetworkPtr network); +int virConnectListDefinedStoragePools (virConnectPtr conn,
char ** const names,
int maxnames); +virConnectPtr virNetworkGetConnect (virNetworkPtr net); +unsigned long long virNodeGetFreeMemory (virConnectPtr conn); +virConnectPtr virStorageVolGetConnect (virStorageVolPtr vol); +int virStoragePoolDestroy (virStoragePoolPtr pool); +virStoragePoolPtr virStoragePoolLookupByVolume (virStorageVolPtr vol); +virDomainPtr virDomainLookupByUUID (virConnectPtr conn,
const unsigned char * uuid); +char * virDomainGetOSType (virDomainPtr domain); +int virStoragePoolBuild (virStoragePoolPtr pool,
unsigned int flags); +int virConnectGetMaxVcpus (virConnectPtr conn,
const char * type); +int virDomainGetUUIDString (virDomainPtr domain,
char * buf); +virConnectPtr virDomainGetConnect (virDomainPtr dom); +int virConnectNumOfDefinedStoragePools (virConnectPtr conn); +virConnectPtr virConnectOpen (const char * name); +int virStoragePoolCreate (virStoragePoolPtr pool,
unsigned int flags); +int virDomainSetVcpus (virDomainPtr domain,
unsigned int nvcpus); +unsigned int virDomainGetID (virDomainPtr domain); +int virDomainInterfaceStats (virDomainPtr dom,
const char * path,
virDomainInterfaceStatsPtr stats,
size_t size); +int virConnectListNetworks (virConnectPtr conn,
char ** const names,
int maxnames);
@@ -405,6 +457,89 @@ The content of this structure is not made public by the API. VIR_DOMAIN_SCHED_FIELD_BOOLEAN = 6 /* boolean(character) case */ };

+

+
+

Structure virStoragePool

struct _virStoragePool {
+The content of this structure is not made public by the API.
+} virStoragePool;
+

+

+
+

Enum virStoragePoolBuildFlags

enum virStoragePoolBuildFlags {
+    VIR_STORAGE_POOL_BUILD_NEW = 0 /* Regular build from scratch */
+    VIR_STORAGE_POOL_BUILD_REPAIR = 1 /* Repair / reinitialize */
+    VIR_STORAGE_POOL_BUILD_RESIZE = 2 /*  Extend existing pool */
+};
+

+

+
+

Enum virStoragePoolDeleteFlags

enum virStoragePoolDeleteFlags {
+    VIR_STORAGE_POOL_DELETE_NORMAL = 0 /* Delete metadata only    (fast) */
+    VIR_STORAGE_POOL_DELETE_ZEROED = 1 /*  Clear all data to zeros (slow) */
+};
+

+

+
+

Structure virStoragePoolInfo

struct _virStoragePoolInfo {
+    int	state	: virStoragePoolState flags
+    unsigned long long	capacity	: Logical size bytes
+    unsigned long long	allocation	: Current allocation bytes
+    unsigned long long	available	: Remaining free space bytes
+} virStoragePoolInfo;
+

+

+
+

Typedef virStoragePoolInfoPtr

virStoragePoolInfo * virStoragePoolInfoPtr;
+

+

+
+

Typedef virStoragePoolPtr

virStoragePool * virStoragePoolPtr;
+

a virStoragePoolPtr is pointer to a virStoragePool private structure, this is the type used to reference a storage pool in the API.

+
+
+

Enum virStoragePoolState

enum virStoragePoolState {
+    VIR_STORAGE_POOL_INACTIVE = 0 /* Not running */
+    VIR_STORAGE_POOL_BUILDING = 1 /* Initializing pool, not available */
+    VIR_STORAGE_POOL_RUNNING = 2 /* Running normally */
+    VIR_STORAGE_POOL_DEGRADED = 3 /*  Running degraded */
+};
+

+

+
+

Structure virStorageVol

struct _virStorageVol {
+The content of this structure is not made public by the API.
+} virStorageVol;
+

+

+
+

Enum virStorageVolDeleteFlags

enum virStorageVolDeleteFlags {
+    VIR_STORAGE_VOL_DELETE_NORMAL = 0 /* Delete metadata only    (fast) */
+    VIR_STORAGE_VOL_DELETE_ZEROED = 1 /*  Clear all data to zeros (slow) */
+};
+

+

+
+

Structure virStorageVolInfo

struct _virStorageVolInfo {
+    int	type	: virStorageVolType flags
+    unsigned long long	capacity	: Logical size bytes
+    unsigned long long	allocation	: Current allocation bytes
+} virStorageVolInfo;
+

+

+
+

Typedef virStorageVolInfoPtr

virStorageVolInfo * virStorageVolInfoPtr;
+

+

+
+

Typedef virStorageVolPtr

virStorageVol * virStorageVolPtr;
+

a virStorageVolPtr is pointer to a virStorageVol private structure, this is the type used to reference a storage volume in the API.

+
+
+

Enum virStorageVolType

enum virStorageVolType {
+    VIR_STORAGE_VOL_FILE = 0 /* Regular file based volumes */
+    VIR_STORAGE_VOL_BLOCK = 1 /*  Block based volumes */
+};
+


Structure virVcpuInfo

struct _virVcpuInfo {
@@ -471,6 +606,10 @@ The content of this structure is not made public by the API.
         

virConnectListDefinedNetworks ()

int	virConnectListDefinedNetworks	(virConnectPtr conn, 
char ** const names,
int maxnames)

list the inactive networks, stores the pointers to the names in @names

conn:pointer to the hypervisor connection
names:pointer to an array to store the names
maxnames:size of the array
Returns:the number of names provided in the array or -1 in case of error
+
+

virConnectListDefinedStoragePools ()

int	virConnectListDefinedStoragePools	(virConnectPtr conn, 
char ** const names,
int maxnames)
+

Provides the list of names of inactive storage pools upto maxnames. If there are more than maxnames, the remaining names will be silently ignored.

+
conn:pointer to hypervisor connection
names:array of char * to fill with pool names (allocated by caller)
maxnames:size of the names array
Returns:0 on success, -1 on error

virConnectListDomains ()

int	virConnectListDomains		(virConnectPtr conn, 
int * ids,
int maxids)

Collect the list of active domains, and store their ID in @maxids

@@ -479,6 +618,10 @@ The content of this structure is not made public by the API.

virConnectListNetworks ()

int	virConnectListNetworks		(virConnectPtr conn, 
char ** const names,
int maxnames)

Collect the list of active networks, and store their names in @names

conn:pointer to the hypervisor connection
names:array to collect the list of names of active networks
maxnames:size of @names
Returns:the number of networks found or -1 in case of error
+
+

virConnectListStoragePools ()

int	virConnectListStoragePools	(virConnectPtr conn, 
char ** const names,
int maxnames)
+

Provides the list of names of active storage pools upto maxnames. If there are more than maxnames, the remaining names will be silently ignored.

+
conn:pointer to hypervisor connection
names:array of char * to fill with pool names (allocated by caller)
maxnames:size of the names array
Returns:0 on success, -1 on error

virConnectNumOfDefinedDomains ()

int	virConnectNumOfDefinedDomains	(virConnectPtr conn)

Provides the number of inactive domains.

@@ -487,6 +630,10 @@ The content of this structure is not made public by the API.

virConnectNumOfDefinedNetworks ()

int	virConnectNumOfDefinedNetworks	(virConnectPtr conn)

Provides the number of inactive networks.

conn:pointer to the hypervisor connection
Returns:the number of networks found or -1 in case of error
+
+

virConnectNumOfDefinedStoragePools ()

int	virConnectNumOfDefinedStoragePools	(virConnectPtr conn)
+

Provides the number of inactive storage pools

+
conn:pointer to hypervisor connection
Returns:the number of pools found, or -1 on error

virConnectNumOfDomains ()

int	virConnectNumOfDomains		(virConnectPtr conn)

Provides the number of active domains.

@@ -495,6 +642,10 @@ The content of this structure is not made public by the API.

virConnectNumOfNetworks ()

int	virConnectNumOfNetworks		(virConnectPtr conn)

Provides the number of active networks.

conn:pointer to the hypervisor connection
Returns:the number of network found or -1 in case of error
+
+

virConnectNumOfStoragePools ()

int	virConnectNumOfStoragePools	(virConnectPtr conn)
+

Provides the number of active storage pools

+
conn:pointer to hypervisor connection
Returns:the number of pools found, or -1 on error

virConnectOpen ()

virConnectPtr	virConnectOpen		(const char * name)

This function should be called first to get a connection to the Hypervisor and xen store

@@ -764,6 +915,146 @@ The content of this structure is not made public by the API.

Extract hardware information about the node.

conn:pointer to the hypervisor connection
info:pointer to a virNodeInfo structure allocated by the user
Returns:0 in case of success and -1 in case of failure.

+

virStoragePoolBuild ()

int	virStoragePoolBuild		(virStoragePoolPtr pool, 
unsigned int flags)
+

Build the underlying storage pool

+
pool:pointer to storage pool
flags:
Returns:0 on success, or -1 upon failure
+
+

virStoragePoolCreate ()

int	virStoragePoolCreate		(virStoragePoolPtr pool, 
unsigned int flags)
+

Starts an inactive storage pool

+
pool:pointer to storage pool
flags:
Returns:0 on success, or -1 if it could not be started
+
+

virStoragePoolCreateXML ()

virStoragePoolPtr	virStoragePoolCreateXML	(virConnectPtr conn, 
const char * xmlDesc,
unsigned int flags)
+

Create a new storage based on its XML description. The pool is not persitent, so its definition will disappear when it is destroyed, or if the host is restarted

+
conn:pointer to hypervisor connection
xmlDesc:XML description for new pool
flags:
Returns:a virStoragePoolPtr object, or NULL if creation failed
+
+

virStoragePoolDefineXML ()

virStoragePoolPtr	virStoragePoolDefineXML	(virConnectPtr conn, 
const char * xml,
unsigned int flags)
+

Define a new inactive storage pool based on its XML description. The pool is persitent, until explicitly undefined.

+
conn:pointer to hypervisor connection
xml:XML description for new pool
flags:
Returns:a virStoragePoolPtr object, or NULL if creation failed
+
+

virStoragePoolDelete ()

int	virStoragePoolDelete		(virStoragePoolPtr pool, 
unsigned int flags)
+

Delete the underlying pool resources. This is a non-recoverable operation. The virStoragePoolPtr object itself is not free'd.

+
pool:pointer to storage pool
flags:flags for obliteration process
Returns:0 on success, or -1 if it could not be obliterate
+
+

virStoragePoolDestroy ()

int	virStoragePoolDestroy		(virStoragePoolPtr pool)
+

Destroy an active storage pool. This will deactivate the pool on the host, but keep any persistent config associated with it. If it has a persistent config it can later be restarted with virStoragePoolCreate(). This does not free the associated virStoragePoolPtr object.

+
pool:pointer to storage pool
Returns:0 on success, or -1 if it could not be destroyed
+
+

virStoragePoolFree ()

int	virStoragePoolFree		(virStoragePoolPtr pool)
+

Free a storage pool object, releasing all memory associated with it. Does not change the state of the pool on the host.

+
pool:pointer to storage pool
Returns:0 on success, or -1 if it could not be free'd.
+
+

virStoragePoolGetAutostart ()

int	virStoragePoolGetAutostart	(virStoragePoolPtr pool, 
int * autostart)
+

Fetches the value of the autostart flag, which determines whether the pool is automatically started at boot time

+
pool:pointer to storage pool
autostart:location in which to store autostart flag
Returns:0 on success, -1 on failure
+
+

virStoragePoolGetConnect ()

virConnectPtr	virStoragePoolGetConnect	(virStoragePoolPtr pool)
+

Provides the connection pointer associated with a storage pool. The reference counter on the connection is not increased by this call. WARNING: When writing libvirt bindings in other languages, do not use this function. Instead, store the connection and the pool object together.

+
pool:pointer to a poool
Returns:the virConnectPtr or NULL in case of failure.
+
+

virStoragePoolGetInfo ()

int	virStoragePoolGetInfo		(virStoragePoolPtr pool, 
virStoragePoolInfoPtr info)
+

Get volatile information about the storage pool such as free space / usage summary

+
pool:pointer to storage pool
info:pointer at which to store info
Returns:0 on success, or -1 on failure.
+
+

virStoragePoolGetName ()

const char *	virStoragePoolGetName	(virStoragePoolPtr pool)
+

Fetch the locally unique name of the storage pool

+
pool:pointer to storage pool
Returns:the name of the pool, or NULL on error
+
+

virStoragePoolGetUUID ()

int	virStoragePoolGetUUID		(virStoragePoolPtr pool, 
unsigned char * uuid)
+

Fetch the globally unique ID of the storage pool

+
pool:pointer to storage pool
uuid:buffer of VIR_UUID_BUFLEN bytes in size
Returns:0 on success, or -1 on error;
+
+

virStoragePoolGetUUIDString ()

int	virStoragePoolGetUUIDString	(virStoragePoolPtr pool, 
char * buf)
+

Fetch the globally unique ID of the storage pool as a string

+
pool:pointer to storage pool
buf:buffer of VIR_UUID_STRING_BUFLEN bytes in size
Returns:0 on success, or -1 on error;
+
+

virStoragePoolGetXMLDesc ()

char *	virStoragePoolGetXMLDesc	(virStoragePoolPtr pool, 
unsigned int flags)
+

Fetch an XML document describing all aspects of the storage pool. This is suitable for later feeding back into the virStoragePoolCreateXML method.

+
pool:pointer to storage pool
flags:flags for XML format options (unused, pass 0)
Returns:a XML document, or NULL on error
+
+

virStoragePoolListVolumes ()

int	virStoragePoolListVolumes	(virStoragePoolPtr pool, 
char ** const names,
int maxnames)
+

Fetch list of storage volume names, limiting to at most maxnames.

+
pool:pointer to storage pool
names:array in which to storage volume names
maxnames:size of names array
Returns:the number of names fetched, or -1 on error
+
+

virStoragePoolLookupByName ()

virStoragePoolPtr	virStoragePoolLookupByName	(virConnectPtr conn, 
const char * name)
+

Fetch a storage pool based on its unique name

+
conn:pointer to hypervisor connection
name:name of pool to fetch
Returns:a virStoragePoolPtr object, or NULL if no matching pool is found
+
+

virStoragePoolLookupByUUID ()

virStoragePoolPtr	virStoragePoolLookupByUUID	(virConnectPtr conn, 
const unsigned char * uuid)
+

Fetch a storage pool based on its globally unique id

+
conn:pointer to hypervisor connection
uuid:globally unique id of pool to fetch
Returns:a virStoragePoolPtr object, or NULL if no matching pool is found
+
+

virStoragePoolLookupByUUIDString ()

virStoragePoolPtr	virStoragePoolLookupByUUIDString	(virConnectPtr conn, 
const char * uuidstr)
+

Fetch a storage pool based on its globally unique id

+
conn:pointer to hypervisor connection
uuidstr:globally unique id of pool to fetch
Returns:a virStoragePoolPtr object, or NULL if no matching pool is found
+
+

virStoragePoolLookupByVolume ()

virStoragePoolPtr	virStoragePoolLookupByVolume	(virStorageVolPtr vol)
+

Fetch a storage pool which contains a particular volume

+
vol:pointer to storage volume
Returns:a virStoragePoolPtr object, or NULL if no matching pool is found
+
+

virStoragePoolNumOfVolumes ()

int	virStoragePoolNumOfVolumes	(virStoragePoolPtr pool)
+

Fetch the number of storage volumes within a pool

+
pool:pointer to storage pool
Returns:the number of storage pools, or -1 on failure
+
+

virStoragePoolRefresh ()

int	virStoragePoolRefresh		(virStoragePoolPtr pool, 
unsigned int flags)
+

Request that the pool refresh its list of volumes. This may involve communicating with a remote server, and/or initializing new devices at the OS layer

+
pool:pointer to storage pool
flags:flags to control refresh behaviour (currently unused, use 0)
Returns:0 if the volume list was refreshed, -1 on failure
+
+

virStoragePoolSetAutostart ()

int	virStoragePoolSetAutostart	(virStoragePoolPtr pool, 
int autostart)
+

Sets the autostart flag

+
pool:pointer to storage pool
autostart:new flag setting
Returns:0 on success, -1 on failure
+
+

virStoragePoolUndefine ()

int	virStoragePoolUndefine		(virStoragePoolPtr pool)
+

Undefine an inactive storage pool

+
pool:pointer to storage pool
Returns:a virStoragePoolPtr object, or NULL if creation failed
+
+

virStorageVolCreateXML ()

virStorageVolPtr	virStorageVolCreateXML	(virStoragePoolPtr pool, 
const char * xmldesc,
unsigned int flags)
+

Create a storage volume within a pool based on an XML description. Not all pools support creation of volumes

+
pool:pointer to storage pool
xmldesc:description of volume to create
flags:flags for creation (unused, pass 0)
Returns:the storage volume, or NULL on error
+
+

virStorageVolDelete ()

int	virStorageVolDelete		(virStorageVolPtr vol, 
unsigned int flags)
+

Delete the storage volume from the pool

+
vol:pointer to storage volume
flags:
Returns:0 on success, or -1 on error
+
+

virStorageVolFree ()

int	virStorageVolFree		(virStorageVolPtr vol)
+

Release the storage volume handle. The underlying storage volume contains to exist

+
vol:pointer to storage volume
Returns:0 on success, or -1 on error
+
+

virStorageVolGetConnect ()

virConnectPtr	virStorageVolGetConnect	(virStorageVolPtr vol)
+

Provides the connection pointer associated with a storage volume. The reference counter on the connection is not increased by this call. WARNING: When writing libvirt bindings in other languages, do not use this function. Instead, store the connection and the volume object together.

+
vol:pointer to a poool
Returns:the virConnectPtr or NULL in case of failure.
+
+

virStorageVolGetInfo ()

int	virStorageVolGetInfo		(virStorageVolPtr vol, 
virStorageVolInfoPtr info)
+

Fetches volatile information about the storage volume such as its current allocation

+
vol:pointer to storage volume
info:pointer at which to store info
Returns:0 on success, or -1 on failure
+
+

virStorageVolGetKey ()

const char *	virStorageVolGetKey	(virStorageVolPtr vol)
+

Fetch the storage volume key. This is globally unique, so the same volume will hve the same key no matter what host it is accessed from

+
vol:pointer to storage volume
Returns:the volume key, or NULL on error
+
+

virStorageVolGetName ()

const char *	virStorageVolGetName	(virStorageVolPtr vol)
+

Fetch the storage volume name. This is unique within the scope of a pool

+
vol:pointer to storage volume
Returns:the volume name, or NULL on error
+
+

virStorageVolGetPath ()

char *	virStorageVolGetPath		(virStorageVolPtr vol)
+

Fetch the storage volume path. Depending on the pool configuration this is either persistent across hosts, or dynamically assigned at pool startup. Consult pool documentation for information on getting the persistent naming

+
vol:pointer to storage volume
Returns:the storage volume path, or NULL on error
+
+

virStorageVolGetXMLDesc ()

char *	virStorageVolGetXMLDesc		(virStorageVolPtr vol, 
unsigned int flags)
+

Fetch an XML document describing all aspects of the storage volume

+
vol:pointer to storage volume
flags:flags for XML generation (unused, pass 0)
Returns:the XML document, or NULL on error
+
+

virStorageVolLookupByKey ()

virStorageVolPtr	virStorageVolLookupByKey	(virConnectPtr conn, 
const char * key)
+

Fetch a pointer to a storage volume based on its globally unique key

+
conn:pointer to hypervisor connection
key:globally unique key
Returns:a storage volume, or NULL if not found / error
+
+

virStorageVolLookupByName ()

virStorageVolPtr	virStorageVolLookupByName	(virStoragePoolPtr pool, 
const char * name)
+

Fetch a pointer to a storage volume based on its name within a pool

+
pool:pointer to storage pool
name:name of storage volume
Returns:a storage volume, or NULL if not found / error
+
+

virStorageVolLookupByPath ()

virStorageVolPtr	virStorageVolLookupByPath	(virConnectPtr conn, 
const char * path)
+

Fetch a pointer to a storage volume based on its locally (host) unique path

+
conn:pointer to hypervisor connection
path:locally unique path
Returns:a storage volume, or NULL if not found / error
+
diff --git a/docs/devhelp/libvirt-virterror.html b/docs/devhelp/libvirt-virterror.html index 0f6322e81f..e39aae8d9d 100644 --- a/docs/devhelp/libvirt-virterror.html +++ b/docs/devhelp/libvirt-virterror.html @@ -96,7 +96,8 @@ void virConnResetLastError (VIR_FROM_REMOTE = 13 /* Error from remote driver */ VIR_FROM_OPENVZ = 14 /* Error from OpenVZ driver */ VIR_FROM_XENXM = 15 /* Error at Xen XM layer */ - VIR_FROM_STATS_LINUX = 16 /* Error in the Linux Stats code */ + VIR_FROM_STATS_LINUX = 16 /* Error in the Linux Stats code */ + VIR_FROM_STORAGE = 17 /* Error from storage driver */ };

@@ -155,7 +156,10 @@ void virConnResetLastError (VIR_ERR_NO_DOMAIN = 42 /* domain not found or unexpectedly disappeared */ VIR_ERR_NO_NETWORK = 43 /* network not found */ VIR_ERR_INVALID_MAC = 44 /* invalid MAC adress */ - VIR_ERR_AUTH_FAILED = 45 /* authentication failed */ + VIR_ERR_AUTH_FAILED = 45 /* authentication failed */ + VIR_ERR_INVALID_STORAGE_POOL = 46 /* invalid storage pool object */ + VIR_ERR_INVALID_STORAGE_VOL = 47 /* invalid storage vol object */ + VIR_WAR_NO_STORAGE = 48 /* failed to start storage */ };

diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am index 9da4e219e0..6b5963ebca 100644 --- a/docs/examples/Makefile.am +++ b/docs/examples/Makefile.am @@ -22,9 +22,9 @@ install-data-local: -@INSTALL@ -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml \ $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) -EXTRA_DIST=examples.xsl index.py examples.xml +EXTRA_DIST=examples.xsl index.py examples.xml -noinst_PROGRAMS=info1 suspend +noinst_PROGRAMS=info1 suspend info1_SOURCES=info1.c info1_LDFLAGS= @@ -36,7 +36,7 @@ suspend_LDFLAGS= suspend_DEPENDENCIES= $(DEPS) suspend_LDADD= $(LDADDS) -valgrind: +valgrind: $(MAKE) CHECKER='valgrind' tests tests: $(noinst_PROGRAMS) diff --git a/docs/libvirt-api.xml b/docs/libvirt-api.xml index df25a88334..96878be834 100644 --- a/docs/libvirt-api.xml +++ b/docs/libvirt-api.xml @@ -16,12 +16,17 @@ + + + + + @@ -34,18 +39,26 @@ + + + + + + + + @@ -54,120 +67,174 @@ + + + + + + + + + + + + + + + - - - - - - + + + - + - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - - - - - - - - - + + + - - + + + + + - - - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

error handling interfaces for the libvirt library @@ -200,6 +267,7 @@ + @@ -221,12 +289,15 @@ + + + @@ -335,7 +406,7 @@ - + @@ -350,6 +421,8 @@ + + @@ -393,7 +466,8 @@ - + + @@ -401,10 +475,24 @@ + + + + + + + + + + + + + + @@ -511,6 +599,32 @@ a virSchedParameterPtr is a pointer to a virSchedParameter structure. + + + + + + + + + + + + a virStoragePoolPtr is pointer to a virStoragePool private structure, this is the type used to reference a storage pool in the API. + + + + + + + + + + + + a virStorageVolPtr is pointer to a virStorageVol private structure, this is the type used to reference a storage volume in the API. + + @@ -601,6 +715,13 @@ + + Provides the list of names of inactive storage pools upto maxnames. If there are more than maxnames, the remaining names will be silently ignored. + + + + + Collect the list of active domains, and store their ID in @maxids @@ -615,6 +736,13 @@ + + Provides the list of names of active storage pools upto maxnames. If there are more than maxnames, the remaining names will be silently ignored. + + + + + Provides the number of inactive domains. @@ -625,6 +753,11 @@ + + Provides the number of inactive storage pools + + + Provides the number of active domains. @@ -635,6 +768,11 @@ + + Provides the number of active storage pools + + + This function should be called first to get a connection to the Hypervisor and xen store @@ -1068,5 +1206,207 @@ + + Build the underlying storage pool + + + + + + Starts an inactive storage pool + + + + + + Create a new storage based on its XML description. The pool is not persitent, so its definition will disappear when it is destroyed, or if the host is restarted + + + + + + + Define a new inactive storage pool based on its XML description. The pool is persitent, until explicitly undefined. + + + + + + + Delete the underlying pool resources. This is a non-recoverable operation. The virStoragePoolPtr object itself is not free'd. + + + + + + Destroy an active storage pool. This will deactivate the pool on the host, but keep any persistent config associated with it. If it has a persistent config it can later be restarted with virStoragePoolCreate(). This does not free the associated virStoragePoolPtr object. + + + + + Free a storage pool object, releasing all memory associated with it. Does not change the state of the pool on the host. + + + + + Fetches the value of the autostart flag, which determines whether the pool is automatically started at boot time + + + + + + Provides the connection pointer associated with a storage pool. The reference counter on the connection is not increased by this call. WARNING: When writing libvirt bindings in other languages, do not use this function. Instead, store the connection and the pool object together. + + + + + Get volatile information about the storage pool such as free space / usage summary + + + + + + Fetch the locally unique name of the storage pool + + + + + Fetch the globally unique ID of the storage pool + + + + + + Fetch the globally unique ID of the storage pool as a string + + + + + + Fetch an XML document describing all aspects of the storage pool. This is suitable for later feeding back into the virStoragePoolCreateXML method. + + + + + + Fetch list of storage volume names, limiting to at most maxnames. + + + + + + + Fetch a storage pool based on its unique name + + + + + + Fetch a storage pool based on its globally unique id + + + + + + Fetch a storage pool based on its globally unique id + + + + + + Fetch a storage pool which contains a particular volume + + + + + Fetch the number of storage volumes within a pool + + + + + Request that the pool refresh its list of volumes. This may involve communicating with a remote server, and/or initializing new devices at the OS layer + + + + + + Sets the autostart flag + + + + + + Undefine an inactive storage pool + + + + + Create a storage volume within a pool based on an XML description. Not all pools support creation of volumes + + + + + + + Delete the storage volume from the pool + + + + + + Release the storage volume handle. The underlying storage volume contains to exist + + + + + Provides the connection pointer associated with a storage volume. The reference counter on the connection is not increased by this call. WARNING: When writing libvirt bindings in other languages, do not use this function. Instead, store the connection and the volume object together. + + + + + Fetches volatile information about the storage volume such as its current allocation + + + + + + Fetch the storage volume key. This is globally unique, so the same volume will hve the same key no matter what host it is accessed from + + + + + Fetch the storage volume name. This is unique within the scope of a pool + + + + + Fetch the storage volume path. Depending on the pool configuration this is either persistent across hosts, or dynamically assigned at pool startup. Consult pool documentation for information on getting the persistent naming + + + + + Fetch an XML document describing all aspects of the storage volume + + + + + + Fetch a pointer to a storage volume based on its globally unique key + + + + + + Fetch a pointer to a storage volume based on its name within a pool + + + + + + Fetch a pointer to a storage volume based on its locally (host) unique path + + + + diff --git a/docs/libvirt-refs.xml b/docs/libvirt-refs.xml index 45762b0a6e..a1c77dea17 100644 --- a/docs/libvirt-refs.xml +++ b/docs/libvirt-refs.xml @@ -47,6 +47,8 @@ + + @@ -91,6 +93,7 @@ + @@ -100,6 +103,19 @@ + + + + + + + + + + + + + @@ -108,6 +124,7 @@ + @@ -116,6 +133,8 @@ + + @@ -139,12 +158,16 @@ + + + + @@ -244,6 +267,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -298,6 +369,8 @@ + + @@ -342,6 +415,7 @@ + @@ -351,6 +425,19 @@ + + + + + + + + + + + + + @@ -359,6 +446,7 @@ + @@ -369,6 +457,8 @@ + + @@ -394,12 +484,16 @@ + + + + @@ -499,6 +593,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -520,6 +662,8 @@ + + @@ -541,16 +685,34 @@ + + + + + + + + + + + + + + + + + + @@ -558,6 +720,7 @@ + @@ -568,6 +731,7 @@ + @@ -575,6 +739,16 @@ + + + + + + + + + + @@ -608,12 +782,16 @@ + + + + @@ -630,6 +808,13 @@ + + + + + + + @@ -709,6 +894,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -755,6 +978,19 @@ + + + + + + + + + + + + + @@ -769,6 +1005,8 @@ + + @@ -788,12 +1026,16 @@ + + + + @@ -881,6 +1123,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -901,6 +1191,8 @@ + + @@ -945,6 +1237,7 @@ + @@ -952,6 +1245,7 @@ + @@ -1001,6 +1295,9 @@ + + + @@ -1051,6 +1348,9 @@ + + + @@ -1059,6 +1359,12 @@ + + + + + + @@ -1070,11 +1376,23 @@ + + + + + + + + + + + + @@ -1106,6 +1424,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -1117,6 +1458,7 @@ + @@ -1134,6 +1476,7 @@ + @@ -1159,6 +1502,8 @@ + + @@ -1179,6 +1524,10 @@ + + + + @@ -1206,6 +1555,9 @@ + + + @@ -1248,10 +1600,14 @@ + + + + @@ -1259,6 +1615,8 @@ + + @@ -1275,6 +1633,15 @@ + + + + + + + + + @@ -1290,6 +1657,8 @@ + + @@ -1298,6 +1667,9 @@ + + + @@ -1314,6 +1686,9 @@ + + + @@ -1371,6 +1746,7 @@ + @@ -1380,8 +1756,6 @@ - - @@ -1409,16 +1783,20 @@ + + + + @@ -1426,6 +1804,8 @@ + + @@ -1440,6 +1820,11 @@ + + + + + @@ -1456,6 +1841,8 @@ + + @@ -1470,18 +1857,27 @@ + + + + + + + + + @@ -1510,9 +1906,15 @@ + + + + + + @@ -1523,6 +1925,11 @@ + + + + + @@ -1545,6 +1952,9 @@ + + + @@ -1569,6 +1979,8 @@ + + @@ -1584,8 +1996,10 @@ + + @@ -1593,10 +2007,22 @@ + + + + + + + + + + + + @@ -1622,6 +2048,11 @@ + + + + + @@ -1636,12 +2067,15 @@ + + + @@ -1660,10 +2094,22 @@ + + + + + + + + + + + + @@ -1683,6 +2129,8 @@ + + @@ -1698,6 +2146,9 @@ + + + @@ -1713,6 +2164,8 @@ + + @@ -1726,12 +2179,15 @@ + + + @@ -1741,10 +2197,10 @@ + + - - @@ -1763,6 +2219,8 @@ + + @@ -1782,6 +2240,8 @@ + + @@ -1807,6 +2267,7 @@ + @@ -1851,6 +2312,11 @@ + + + + + @@ -1879,12 +2345,21 @@ + + + + + + + + + @@ -1911,6 +2386,10 @@ + + + + @@ -1920,6 +2399,7 @@ + @@ -1938,10 +2418,16 @@ + + + + + + @@ -1966,6 +2452,13 @@ + + + + + + + @@ -1976,11 +2469,15 @@ + + + + @@ -1994,6 +2491,9 @@ + + + @@ -2017,12 +2517,19 @@ + + + + + + + @@ -2032,6 +2539,9 @@ + + + @@ -2039,6 +2549,13 @@ + + + + + + + @@ -2049,6 +2566,7 @@ + @@ -2056,6 +2574,9 @@ + + + @@ -2067,8 +2588,13 @@ + + + + + @@ -2085,6 +2611,7 @@ + @@ -2111,9 +2638,10 @@ + + + - - @@ -2124,6 +2652,7 @@ + @@ -2151,12 +2680,18 @@ + + + + + + @@ -2177,12 +2712,28 @@ + + + + + + + + + + + + + + + + @@ -2197,6 +2748,10 @@ + + + + @@ -2216,12 +2771,23 @@ + + + + + + + + + + + @@ -2232,6 +2798,7 @@ + @@ -2239,8 +2806,10 @@ + + @@ -2249,8 +2818,16 @@ + + + + + + + + @@ -2260,6 +2837,10 @@ + + + + @@ -2286,6 +2867,8 @@ + + @@ -2312,6 +2895,8 @@ + + @@ -2321,10 +2906,15 @@ + + + + + @@ -2340,6 +2930,9 @@ + + + @@ -2359,6 +2952,14 @@ + + + + + + + + @@ -2371,6 +2972,9 @@ + + + @@ -2384,6 +2988,7 @@ + @@ -2401,11 +3006,19 @@ + + + + + + + + @@ -2424,6 +3037,9 @@ + + + @@ -2437,18 +3053,29 @@ + + + + + + + + + + + @@ -2465,6 +3092,8 @@ + + @@ -2475,12 +3104,16 @@ + + + + @@ -2512,6 +3145,10 @@ + + + + @@ -2524,16 +3161,30 @@ + + + + + + + + + + + + + - - + + + @@ -2541,6 +3192,10 @@ + + + + @@ -2560,6 +3215,8 @@ + + @@ -2574,10 +3231,15 @@ + + + + + @@ -2624,6 +3286,8 @@ + + @@ -2639,11 +3303,18 @@ + + + + + + + @@ -2654,6 +3325,13 @@ + + + + + + + @@ -2672,6 +3350,8 @@ + + @@ -2716,6 +3396,15 @@ + + + + + + + + + @@ -2730,6 +3419,11 @@ + + + + + @@ -2751,6 +3445,7 @@ + @@ -2769,6 +3464,7 @@ + @@ -2778,6 +3474,7 @@ + @@ -2809,6 +3506,8 @@ + + @@ -2816,6 +3515,9 @@ + + + @@ -2863,11 +3565,21 @@ + + + + + + + + + + @@ -2910,6 +3622,10 @@ + + + + @@ -2922,6 +3638,9 @@ + + + @@ -2931,12 +3650,16 @@ - - + + + + + + @@ -2966,6 +3689,7 @@ + @@ -2974,6 +3698,9 @@ + + + @@ -2990,6 +3717,8 @@ + + @@ -3006,6 +3735,8 @@ + + @@ -3034,9 +3765,13 @@ + + + + @@ -3048,6 +3783,8 @@ + + @@ -3058,6 +3795,14 @@ + + + + + + + + @@ -3073,8 +3818,18 @@ + + + + + + + + + + @@ -3113,6 +3868,7 @@ + @@ -3184,10 +3940,18 @@ + + + + + + + + @@ -3200,9 +3964,17 @@ + + + + + + + + @@ -3250,6 +4022,7 @@ + @@ -3259,6 +4032,8 @@ + + @@ -3346,7 +4121,7 @@ - + @@ -3356,6 +4131,7 @@ + @@ -3373,6 +4149,7 @@ + @@ -3382,6 +4159,9 @@ + + + @@ -3392,6 +4172,9 @@ + + + @@ -3419,6 +4202,10 @@ + + + + @@ -3429,10 +4216,14 @@ + + + + @@ -3440,6 +4231,9 @@ + + + @@ -3453,6 +4247,10 @@ + + + + @@ -3477,16 +4275,20 @@ + + + + @@ -3528,6 +4330,11 @@ + + + + + @@ -3550,6 +4357,7 @@ + @@ -3572,16 +4380,25 @@ + + + + + + + + + @@ -3623,6 +4440,8 @@ + + @@ -3643,6 +4462,7 @@ + @@ -3669,6 +4489,8 @@ + + @@ -3681,27 +4503,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -3711,10 +4512,13 @@ + + + @@ -3747,20 +4551,38 @@ - + + + + + + + + + + + + + + + + + + + @@ -3768,8 +4590,22 @@ + + + + + + + + + + + + + + @@ -3786,6 +4622,9 @@ + + + @@ -3793,6 +4632,9 @@ + + + @@ -3845,6 +4687,7 @@ + @@ -3889,6 +4732,8 @@ + + @@ -3965,6 +4810,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -3993,6 +4861,15 @@ + + + + + + + + + @@ -4004,6 +4881,10 @@ + + + + @@ -4012,6 +4893,7 @@ + @@ -4024,6 +4906,7 @@ + @@ -4040,6 +4923,11 @@ + + + + + @@ -4051,6 +4939,8 @@ + + @@ -4065,31 +4955,17 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -4100,13 +4976,15 @@ + + - + @@ -4135,15 +5013,16 @@ - - - - - - - - - + + + + + + + + + +