aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'include/libvirt.h.in')
-rw-r--r--include/libvirt.h.in254
1 files changed, 254 insertions, 0 deletions
diff --git a/include/libvirt.h.in b/include/libvirt.h.in
new file mode 100644
index 000000000..a0000cc4e
--- /dev/null
+++ b/include/libvirt.h.in
@@ -0,0 +1,254 @@
+/*
+ * libvirt.h:
+ * Summary: core interfaces for the libvirt library
+ * Description: Provides the interfaces of the libvirt library to handle
+ * Xen domains from a process running in domain 0
+ *
+ * Copy: Copyright (C) 2005,2006 Red Hat, Inc.
+ *
+ * See COPYING.LIB for the License of this software
+ *
+ * Author: Daniel Veillard <veillard@redhat.com>
+ */
+
+#ifndef __VIR_VIRLIB_H__
+#define __VIR_VIRLIB_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;
+
+/**
+ * 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;
+
+/**
+ * virDomainRestart:
+ *
+ * Flags that determine the action to take on a shutdown or crash of a domain
+ */
+typedef enum {
+ VIR_DOMAIN_DESTROY = 1, /* destroy the domain */
+ VIR_DOMAIN_RESTART = 2, /* restart the domain */
+ VIR_DOMAIN_PRESERVE= 3, /* keep as is, need manual destroy, for debug */
+ VIR_DOMAIN_RENAME_RESTART= 4/* restart under an new unique name */
+} virDomainRestart;
+
+/**
+ * virDeviceMode:
+ *
+ * Flags that determine permission to expose a device to the guest
+ */
+typedef enum {
+ VIR_DEVICE_DEFAULT = 0, /* Default mode */
+ VIR_DEVICE_RO = 1, /* Access read-only */
+ VIR_DEVICE_RW = 2, /* Access read-write */
+ VIR_DEVICE_RW_FORCE= 3 /* Forced read-write even if already used */
+} virDeviceMode;
+
+/**
+ * virDomainInfoPtr:
+ *
+ * a virDomainInfo is a structure filled by virDomainGetInfo()
+ */
+
+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 */
+
+ /*
+ * Informations below are only available to clients with a connection
+ * with full access to the hypervisor
+ */
+ unsigned long long cpuTime; /* the CPU time used in nanoseconds */
+
+ /*
+ * TODO:
+ * - check what can be extracted publicly from xenstore
+ * and what's private limited to the hypervisor call.
+ * - add padding to this structure for ABI long term protection
+ */
+};
+
+/**
+ * virDomainInfoPtr:
+ *
+ * a virDomainInfoPtr is a pointer to a virDomainInfo structure.
+ */
+
+typedef virDomainInfo *virDomainInfoPtr;
+
+/**
+ * virDomainKernel:
+ *
+ * a virDomainImage is the set of kernel related informations associated
+ * to a domain
+ */
+
+typedef struct _virDomainKernel virDomainKernel;
+
+struct _virDomainKernel {
+ const char *kernel; /* filename pointing to the kernel image */
+ const char *ramdisk; /* an optional init ramdisk */
+ const char *root; /* an optional root block device */
+ const char *extra; /* optional kernel command line parameters */
+};
+
+/**
+ * virDomainKernelPtr:
+ *
+ * a virDomainKernelPtr is a pointer to a virDomainKernel structure.
+ */
+
+typedef virDomainKernel *virDomainKernelPtr;
+
+/**
+ * virDomainCreateFlags:
+ *
+ * Flags OR'ed together to provide specific behaviour when creating a
+ * Domain.
+ */
+typedef enum {
+ VIR_DOMAIN_NONE = 0
+} virDomainCreateFlags;
+
+/* library versionning */
+
+/**
+ * LIBVIR_VERSION_NUMBER:
+ *
+ * Macro providing the version of the library as
+ * version * 1,000,000 + minor * 1000 + micro
+ */
+
+#define LIBVIR_VERSION_NUMBER @LIBVIR_VERSION_NUMBER@
+
+int virGetVersion (unsigned long *libVer,
+ const char *type,
+ unsigned long *typeVer);
+
+/*
+ * Connection and disconnections to the Hypervisor
+ */
+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);
+
+/*
+ * Gather list of running domains
+ */
+int virConnectListDomains (virConnectPtr conn,
+ int *ids,
+ int maxids);
+
+/*
+ * Number of domains
+ */
+int virConnectNumOfDomains (virConnectPtr conn);
+
+
+/*
+ * Domain creation and destruction
+ */
+virDomainPtr virDomainCreateLinux (virConnectPtr conn,
+ const char *kernel_path,
+ const char *initrd_path,
+ const char *cmdline,
+ unsigned long memory,
+ unsigned int flags);
+virDomainPtr virDomainLookupByName (virConnectPtr conn,
+ const char *name);
+virDomainPtr virDomainLookupByID (virConnectPtr conn,
+ int id);
+int virDomainShutdown (virDomainPtr domain);
+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 runtime informations
+ */
+int virDomainGetInfo (virDomainPtr domain,
+ virDomainInfoPtr info);
+
+/*
+ * Dynamic control of domains
+ */
+const char * virDomainGetName (virDomainPtr domain);
+unsigned int virDomainGetID (virDomainPtr domain);
+char * virDomainGetOSType (virDomainPtr domain);
+unsigned long virDomainGetMaxMemory (virDomainPtr domain);
+int virDomainSetMaxMemory (virDomainPtr domain,
+ unsigned long memory);
+/*
+ * XML domain description
+ */
+char * virDomainGetXMLDesc (virDomainPtr domain, int flags);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VIR_VIRLIB_H__ */