Update to libvirt 0.7.6

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=36
This commit is contained in:
James Fehlig 2010-02-04 20:17:25 +00:00 committed by Git OBS Bridge
parent 1b2d2dbf16
commit abc111875d
16 changed files with 240 additions and 603 deletions

View File

@ -2,7 +2,7 @@ Index: src/lxc/lxc_container.c
===================================================================
--- src/lxc/lxc_container.c.orig
+++ src/lxc/lxc_container.c
@@ -813,6 +813,9 @@ int lxcContainerStart(virDomainDefPtr de
@@ -814,6 +814,9 @@ int lxcContainerStart(virDomainDefPtr de
lxc_child_argv_t args = { def, nveths, veths, control, ttyPath };
/* allocate a stack for the container */
@ -12,7 +12,7 @@ Index: src/lxc/lxc_container.c
if (VIR_ALLOC_N(stack, stacksize) < 0) {
virReportOOMError(NULL);
return -1;
@@ -827,7 +830,11 @@ int lxcContainerStart(virDomainDefPtr de
@@ -828,7 +831,11 @@ int lxcContainerStart(virDomainDefPtr de
if (def->nets != NULL)
flags |= CLONE_NEWNET;
@ -24,7 +24,7 @@ Index: src/lxc/lxc_container.c
VIR_FREE(stack);
DEBUG("clone() returned, %d", pid);
@@ -853,6 +860,7 @@ int lxcContainerAvailable(int features)
@@ -854,6 +861,7 @@ int lxcContainerAvailable(int features)
char *childStack;
char *stack;
int childStatus;
@ -32,7 +32,7 @@ Index: src/lxc/lxc_container.c
if (features & LXC_CONTAINER_FEATURE_USER)
flags |= CLONE_NEWUSER;
@@ -860,14 +868,21 @@ int lxcContainerAvailable(int features)
@@ -861,14 +869,21 @@ int lxcContainerAvailable(int features)
if (features & LXC_CONTAINER_FEATURE_NET)
flags |= CLONE_NEWNET;

View File

@ -11,11 +11,11 @@ Date: Wed Jan 13 18:24:51 2010 -0700
V2: Only change doc, dropping the hunk that forced the restriction
in libvirt frontend.
Index: libvirt-0.7.5/src/libvirt.c
Index: libvirt-0.7.6/src/libvirt.c
===================================================================
--- libvirt-0.7.5.orig/src/libvirt.c
+++ libvirt-0.7.5/src/libvirt.c
@@ -5066,7 +5066,8 @@ error:
--- libvirt-0.7.6.orig/src/libvirt.c
+++ libvirt-0.7.6/src/libvirt.c
@@ -5121,7 +5121,8 @@ error:
* @domain: pointer to domain object
* @xml: pointer to XML description of one device
*
@ -25,7 +25,7 @@ Index: libvirt-0.7.5/src/libvirt.c
*
* Returns 0 in case of success, -1 in case of failure.
*/
@@ -5109,7 +5110,8 @@ error:
@@ -5164,7 +5165,8 @@ error:
* @domain: pointer to domain object
* @xml: pointer to XML description of one device
*

View File

@ -8,11 +8,11 @@ Date: Wed Jan 13 18:34:23 2010 -0700
V2: Don't break remote compatibility with older libvirtd
Index: libvirt-0.7.5/src/libvirt.c
Index: libvirt-0.7.6/src/libvirt.c
===================================================================
--- libvirt-0.7.5.orig/src/libvirt.c
+++ libvirt-0.7.5/src/libvirt.c
@@ -5090,14 +5090,69 @@ virDomainAttachDevice(virDomainPtr domai
--- libvirt-0.7.6.orig/src/libvirt.c
+++ libvirt-0.7.6/src/libvirt.c
@@ -5146,14 +5146,69 @@ virDomainAttachDevice(virDomainPtr domai
conn = domain->conn;
if (conn->driver->domainAttachDevice) {
@ -26,8 +26,7 @@ Index: libvirt-0.7.5/src/libvirt.c
+ virLibConnError (conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
+
+error:
+ /* Copy to connection error object for back compatability */
+ virSetConnError(conn);
+ virDispatchError(domain->conn);
+ return -1;
+}
+
@ -62,6 +61,7 @@ Index: libvirt-0.7.5/src/libvirt.c
+
+ if (!VIR_IS_CONNECTED_DOMAIN(domain)) {
+ virLibDomainError(NULL, VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
+ virDispatchError(NULL);
+ return (-1);
+ }
+ if (domain->conn->flags & VIR_CONNECT_RO) {
@ -83,8 +83,8 @@ Index: libvirt-0.7.5/src/libvirt.c
+ virLibConnError(conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
error:
/* Copy to connection error object for back compatability */
@@ -5136,12 +5191,67 @@ virDomainDetachDevice(virDomainPtr domai
virDispatchError(domain->conn);
@@ -5192,12 +5247,67 @@ virDomainDetachDevice(virDomainPtr domai
if (conn->driver->domainDetachDevice) {
int ret;
ret = conn->driver->domainDetachDevice (domain, xml);
@ -96,8 +96,7 @@ Index: libvirt-0.7.5/src/libvirt.c
+ virLibConnError (conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
+
+error:
+ /* Copy to connection error object for back compatability */
+ virSetConnError(conn);
+ virDispatchError(domain->conn);
+ return -1;
+}
+
@ -132,6 +131,7 @@ Index: libvirt-0.7.5/src/libvirt.c
+
+ if (!VIR_IS_CONNECTED_DOMAIN(domain)) {
+ virLibDomainError(NULL, VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
+ virDispatchError(NULL);
+ return (-1);
+ }
+ if (domain->conn->flags & VIR_CONNECT_RO) {
@ -152,4 +152,4 @@ Index: libvirt-0.7.5/src/libvirt.c
+ virLibConnError(conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
error:
/* Copy to connection error object for back compatability */
virDispatchError(domain->conn);

View File

@ -7,11 +7,11 @@ Date: Wed Jan 13 18:44:26 2010 -0700
Implementation of domain{Attach,Detach}DeviceFlags handlers
in the drivers.
Index: libvirt-0.7.5/src/esx/esx_driver.c
Index: libvirt-0.7.6/src/esx/esx_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/esx/esx_driver.c
+++ libvirt-0.7.5/src/esx/esx_driver.c
@@ -3426,7 +3426,9 @@ static virDriver esxDriver = {
--- libvirt-0.7.6.orig/src/esx/esx_driver.c
+++ libvirt-0.7.6/src/esx/esx_driver.c
@@ -3372,7 +3372,9 @@ static virDriver esxDriver = {
esxDomainDefineXML, /* domainDefineXML */
esxDomainUndefine, /* domainUndefine */
NULL, /* domainAttachDevice */
@ -21,10 +21,10 @@ Index: libvirt-0.7.5/src/esx/esx_driver.c
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
esxDomainGetSchedulerType, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/lxc/lxc_driver.c
Index: libvirt-0.7.6/src/lxc/lxc_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/lxc/lxc_driver.c
+++ libvirt-0.7.5/src/lxc/lxc_driver.c
--- libvirt-0.7.6.orig/src/lxc/lxc_driver.c
+++ libvirt-0.7.6/src/lxc/lxc_driver.c
@@ -2427,7 +2427,9 @@ static virDriver lxcDriver = {
lxcDomainDefine, /* domainDefineXML */
lxcDomainUndefine, /* domainUndefine */
@ -35,10 +35,10 @@ Index: libvirt-0.7.5/src/lxc/lxc_driver.c
lxcDomainGetAutostart, /* domainGetAutostart */
lxcDomainSetAutostart, /* domainSetAutostart */
lxcGetSchedulerType, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/opennebula/one_driver.c
Index: libvirt-0.7.6/src/opennebula/one_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/opennebula/one_driver.c
+++ libvirt-0.7.5/src/opennebula/one_driver.c
--- libvirt-0.7.6.orig/src/opennebula/one_driver.c
+++ libvirt-0.7.6/src/opennebula/one_driver.c
@@ -754,7 +754,9 @@ static virDriver oneDriver = {
oneDomainDefine, /* domainDefineXML */
oneDomainUndefine, /* domainUndefine */
@ -49,10 +49,10 @@ Index: libvirt-0.7.5/src/opennebula/one_driver.c
oneGetAutostart, /* domainGetAutostart */
NULL, /* domainSetAutostart */
NULL, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/openvz/openvz_driver.c
Index: libvirt-0.7.6/src/openvz/openvz_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/openvz/openvz_driver.c
+++ libvirt-0.7.5/src/openvz/openvz_driver.c
--- libvirt-0.7.6.orig/src/openvz/openvz_driver.c
+++ libvirt-0.7.6/src/openvz/openvz_driver.c
@@ -1506,7 +1506,9 @@ static virDriver openvzDriver = {
openvzDomainDefineXML, /* domainDefineXML */
openvzDomainUndefine, /* domainUndefine */
@ -63,10 +63,10 @@ Index: libvirt-0.7.5/src/openvz/openvz_driver.c
openvzDomainGetAutostart, /* domainGetAutostart */
openvzDomainSetAutostart, /* domainSetAutostart */
NULL, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/phyp/phyp_driver.c
Index: libvirt-0.7.6/src/phyp/phyp_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/phyp/phyp_driver.c
+++ libvirt-0.7.5/src/phyp/phyp_driver.c
--- libvirt-0.7.6.orig/src/phyp/phyp_driver.c
+++ libvirt-0.7.6/src/phyp/phyp_driver.c
@@ -1622,7 +1622,9 @@ virDriver phypDriver = {
NULL, /* domainDefineXML */
NULL, /* domainUndefine */
@ -77,11 +77,11 @@ Index: libvirt-0.7.5/src/phyp/phyp_driver.c
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
NULL, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/qemu/qemu_driver.c
Index: libvirt-0.7.6/src/qemu/qemu_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/qemu/qemu_driver.c
+++ libvirt-0.7.5/src/qemu/qemu_driver.c
@@ -5528,6 +5528,18 @@ cleanup:
--- libvirt-0.7.6.orig/src/qemu/qemu_driver.c
+++ libvirt-0.7.6/src/qemu/qemu_driver.c
@@ -6057,6 +6057,18 @@ cleanup:
return ret;
}
@ -100,7 +100,7 @@ Index: libvirt-0.7.5/src/qemu/qemu_driver.c
static int qemudDomainDetachPciDiskDevice(virConnectPtr conn,
struct qemud_driver *driver,
virDomainObjPtr vm,
@@ -5856,6 +5868,18 @@ cleanup:
@@ -6464,6 +6476,18 @@ cleanup:
return ret;
}
@ -119,7 +119,7 @@ Index: libvirt-0.7.5/src/qemu/qemu_driver.c
static int qemudDomainGetAutostart(virDomainPtr dom,
int *autostart) {
struct qemud_driver *driver = dom->conn->privateData;
@@ -7961,7 +7985,9 @@ static virDriver qemuDriver = {
@@ -8577,7 +8601,9 @@ static virDriver qemuDriver = {
qemudDomainDefine, /* domainDefineXML */
qemudDomainUndefine, /* domainUndefine */
qemudDomainAttachDevice, /* domainAttachDevice */
@ -129,10 +129,10 @@ Index: libvirt-0.7.5/src/qemu/qemu_driver.c
qemudDomainGetAutostart, /* domainGetAutostart */
qemudDomainSetAutostart, /* domainSetAutostart */
qemuGetSchedulerType, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/test/test_driver.c
Index: libvirt-0.7.6/src/test/test_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/test/test_driver.c
+++ libvirt-0.7.5/src/test/test_driver.c
--- libvirt-0.7.6.orig/src/test/test_driver.c
+++ libvirt-0.7.6/src/test/test_driver.c
@@ -5209,7 +5209,9 @@ static virDriver testDriver = {
testDomainDefineXML, /* domainDefineXML */
testDomainUndefine, /* domainUndefine */
@ -143,10 +143,10 @@ Index: libvirt-0.7.5/src/test/test_driver.c
testDomainGetAutostart, /* domainGetAutostart */
testDomainSetAutostart, /* domainSetAutostart */
testDomainGetSchedulerType, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/uml/uml_driver.c
Index: libvirt-0.7.6/src/uml/uml_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/uml/uml_driver.c
+++ libvirt-0.7.5/src/uml/uml_driver.c
--- libvirt-0.7.6.orig/src/uml/uml_driver.c
+++ libvirt-0.7.6/src/uml/uml_driver.c
@@ -1895,7 +1895,9 @@ static virDriver umlDriver = {
umlDomainDefine, /* domainDefineXML */
umlDomainUndefine, /* domainUndefine */
@ -157,11 +157,11 @@ Index: libvirt-0.7.5/src/uml/uml_driver.c
umlDomainGetAutostart, /* domainGetAutostart */
umlDomainSetAutostart, /* domainSetAutostart */
NULL, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/vbox/vbox_tmpl.c
Index: libvirt-0.7.6/src/vbox/vbox_tmpl.c
===================================================================
--- libvirt-0.7.5.orig/src/vbox/vbox_tmpl.c
+++ libvirt-0.7.5/src/vbox/vbox_tmpl.c
@@ -4841,6 +4841,17 @@ cleanup:
--- libvirt-0.7.6.orig/src/vbox/vbox_tmpl.c
+++ libvirt-0.7.6/src/vbox/vbox_tmpl.c
@@ -4835,6 +4835,17 @@ cleanup:
return ret;
}
@ -179,7 +179,7 @@ Index: libvirt-0.7.5/src/vbox/vbox_tmpl.c
static int vboxDomainDetachDevice(virDomainPtr dom, const char *xml) {
VBOX_OBJECT_CHECK(dom->conn, int, -1);
IMachine *machine = NULL;
@@ -4971,6 +4982,17 @@ cleanup:
@@ -4965,6 +4976,17 @@ cleanup:
return ret;
}
@ -197,7 +197,7 @@ Index: libvirt-0.7.5/src/vbox/vbox_tmpl.c
#if VBOX_API_VERSION == 2002
/* No Callback support for VirtualBox 2.2.* series */
#else /* !(VBOX_API_VERSION == 2002) */
@@ -7017,7 +7039,9 @@ virDriver NAME(Driver) = {
@@ -7001,7 +7023,9 @@ virDriver NAME(Driver) = {
vboxDomainDefineXML, /* domainDefineXML */
vboxDomainUndefine, /* domainUndefine */
vboxDomainAttachDevice, /* domainAttachDevice */
@ -207,10 +207,10 @@ Index: libvirt-0.7.5/src/vbox/vbox_tmpl.c
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
NULL, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/xen/proxy_internal.c
Index: libvirt-0.7.6/src/xen/proxy_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/proxy_internal.c
+++ libvirt-0.7.5/src/xen/proxy_internal.c
--- libvirt-0.7.6.orig/src/xen/proxy_internal.c
+++ libvirt-0.7.6/src/xen/proxy_internal.c
@@ -76,8 +76,8 @@ struct xenUnifiedDriver xenProxyDriver =
NULL, /* domainCreate */
NULL, /* domainDefineXML */
@ -222,11 +222,11 @@ Index: libvirt-0.7.5/src/xen/proxy_internal.c
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
NULL, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/xen/xen_driver.c
Index: libvirt-0.7.6/src/xen/xen_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_driver.c
+++ libvirt-0.7.5/src/xen/xen_driver.c
@@ -1426,10 +1426,29 @@ xenUnifiedDomainAttachDevice (virDomainP
--- libvirt-0.7.6.orig/src/xen/xen_driver.c
+++ libvirt-0.7.6/src/xen/xen_driver.c
@@ -1428,10 +1428,29 @@ xenUnifiedDomainAttachDevice (virDomainP
{
GET_PRIVATE(dom->conn);
int i;
@ -258,7 +258,7 @@ Index: libvirt-0.7.5/src/xen/xen_driver.c
return 0;
return -1;
@@ -1440,10 +1459,29 @@ xenUnifiedDomainDetachDevice (virDomainP
@@ -1442,10 +1461,29 @@ xenUnifiedDomainDetachDevice (virDomainP
{
GET_PRIVATE(dom->conn);
int i;
@ -290,7 +290,7 @@ Index: libvirt-0.7.5/src/xen/xen_driver.c
return 0;
return -1;
@@ -1833,7 +1871,9 @@ static virDriver xenUnifiedDriver = {
@@ -1835,7 +1873,9 @@ static virDriver xenUnifiedDriver = {
xenUnifiedDomainDefineXML, /* domainDefineXML */
xenUnifiedDomainUndefine, /* domainUndefine */
xenUnifiedDomainAttachDevice, /* domainAttachDevice */
@ -300,10 +300,10 @@ Index: libvirt-0.7.5/src/xen/xen_driver.c
xenUnifiedDomainGetAutostart, /* domainGetAutostart */
xenUnifiedDomainSetAutostart, /* domainSetAutostart */
xenUnifiedDomainGetSchedulerType, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/xen/xen_driver.h
Index: libvirt-0.7.6/src/xen/xen_driver.h
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_driver.h
+++ libvirt-0.7.5/src/xen/xen_driver.h
--- libvirt-0.7.6.orig/src/xen/xen_driver.h
+++ libvirt-0.7.6/src/xen/xen_driver.h
@@ -93,8 +93,8 @@ struct xenUnifiedDriver {
virDrvDomainCreate domainCreate;
virDrvDomainDefineXML domainDefineXML;
@ -315,10 +315,10 @@ Index: libvirt-0.7.5/src/xen/xen_driver.h
virDrvDomainGetAutostart domainGetAutostart;
virDrvDomainSetAutostart domainSetAutostart;
virDrvDomainGetSchedulerType domainGetSchedulerType;
Index: libvirt-0.7.5/src/xen/xen_hypervisor.c
Index: libvirt-0.7.6/src/xen/xen_hypervisor.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_hypervisor.c
+++ libvirt-0.7.5/src/xen/xen_hypervisor.c
--- libvirt-0.7.6.orig/src/xen/xen_hypervisor.c
+++ libvirt-0.7.6/src/xen/xen_hypervisor.c
@@ -793,8 +793,8 @@ struct xenUnifiedDriver xenHypervisorDri
NULL, /* domainCreate */
NULL, /* domainDefineXML */
@ -330,10 +330,10 @@ Index: libvirt-0.7.5/src/xen/xen_hypervisor.c
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
xenHypervisorGetSchedulerType, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/xen/xen_inotify.c
Index: libvirt-0.7.6/src/xen/xen_inotify.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_inotify.c
+++ libvirt-0.7.5/src/xen/xen_inotify.c
--- libvirt-0.7.6.orig/src/xen/xen_inotify.c
+++ libvirt-0.7.6/src/xen/xen_inotify.c
@@ -79,8 +79,8 @@ struct xenUnifiedDriver xenInotifyDriver
NULL, /* domainCreate */
NULL, /* domainDefineXML */
@ -345,11 +345,11 @@ Index: libvirt-0.7.5/src/xen/xen_inotify.c
NULL, /* domainGetAutostart */
NULL, /* domainSetAutostart */
NULL, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/xen/xend_internal.c
Index: libvirt-0.7.6/src/xen/xend_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xend_internal.c
+++ libvirt-0.7.5/src/xen/xend_internal.c
@@ -4095,9 +4095,10 @@ xenDaemonCreateXML(virConnectPtr conn, c
--- libvirt-0.7.6.orig/src/xen/xend_internal.c
+++ libvirt-0.7.6/src/xen/xend_internal.c
@@ -4096,9 +4096,10 @@ xenDaemonCreateXML(virConnectPtr conn, c
}
/**
@ -361,7 +361,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
*
* Create a virtual device attachment to backend.
* XML description is translated into S-expression.
@@ -4105,7 +4106,8 @@ xenDaemonCreateXML(virConnectPtr conn, c
@@ -4106,7 +4107,8 @@ xenDaemonCreateXML(virConnectPtr conn, c
* Returns 0 in case of success, -1 in case of failure.
*/
static int
@ -371,7 +371,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
{
xenUnifiedPrivatePtr priv;
char *sexpr = NULL;
@@ -4123,12 +4125,41 @@ xenDaemonAttachDevice(virDomainPtr domai
@@ -4124,12 +4126,41 @@ xenDaemonAttachDevice(virDomainPtr domai
priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
@ -419,7 +419,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
if (!(def = xenDaemonDomainFetch(domain->conn,
domain->id,
@@ -4202,16 +4233,18 @@ cleanup:
@@ -4203,16 +4234,18 @@ cleanup:
}
/**
@ -440,7 +440,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
{
xenUnifiedPrivatePtr priv;
char class[8], ref[80];
@@ -4229,12 +4262,41 @@ xenDaemonDetachDevice(virDomainPtr domai
@@ -4230,12 +4263,41 @@ xenDaemonDetachDevice(virDomainPtr domai
priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
@ -488,7 +488,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
if (!(def = xenDaemonDomainFetch(domain->conn,
domain->id,
@@ -5164,8 +5226,8 @@ struct xenUnifiedDriver xenDaemonDriver
@@ -5165,8 +5227,8 @@ struct xenUnifiedDriver xenDaemonDriver
xenDaemonDomainCreate, /* domainCreate */
xenDaemonDomainDefineXML, /* domainDefineXML */
xenDaemonDomainUndefine, /* domainUndefine */
@ -499,10 +499,10 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
xenDaemonDomainGetAutostart, /* domainGetAutostart */
xenDaemonDomainSetAutostart, /* domainSetAutostart */
xenDaemonGetSchedulerType, /* domainGetSchedulerType */
Index: libvirt-0.7.5/src/xen/xm_internal.c
Index: libvirt-0.7.6/src/xen/xm_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xm_internal.c
+++ libvirt-0.7.5/src/xen/xm_internal.c
--- libvirt-0.7.6.orig/src/xen/xm_internal.c
+++ libvirt-0.7.6/src/xen/xm_internal.c
@@ -65,8 +65,10 @@
static int xenXMConfigSetString(virConfPtr conf, const char *setting,
const char *str);
@ -592,10 +592,10 @@ Index: libvirt-0.7.5/src/xen/xm_internal.c
return -1;
priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
Index: libvirt-0.7.5/src/xen/xs_internal.c
Index: libvirt-0.7.6/src/xen/xs_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xs_internal.c
+++ libvirt-0.7.5/src/xen/xs_internal.c
--- libvirt-0.7.6.orig/src/xen/xs_internal.c
+++ libvirt-0.7.6/src/xen/xs_internal.c
@@ -76,8 +76,8 @@ struct xenUnifiedDriver xenStoreDriver =
NULL, /* domainCreate */
NULL, /* domainDefineXML */

View File

@ -14,11 +14,11 @@ Date: Wed Jan 13 18:54:58 2010 -0700
"--persistent" flag is specified. Otherwise invoke
virDomain{Attach,Detach}Device() to retain current behavior.
Index: libvirt-0.7.5/tools/virsh.c
Index: libvirt-0.7.6/tools/virsh.c
===================================================================
--- libvirt-0.7.5.orig/tools/virsh.c
+++ libvirt-0.7.5/tools/virsh.c
@@ -6281,6 +6281,7 @@ static const vshCmdInfo info_attach_devi
--- libvirt-0.7.6.orig/tools/virsh.c
+++ libvirt-0.7.6/tools/virsh.c
@@ -6285,6 +6285,7 @@ static const vshCmdInfo info_attach_devi
static const vshCmdOptDef opts_attach_device[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{"file", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("XML file")},
@ -26,7 +26,7 @@ Index: libvirt-0.7.5/tools/virsh.c
{NULL, 0, 0, NULL}
};
@@ -6292,6 +6293,7 @@ cmdAttachDevice(vshControl *ctl, const v
@@ -6296,6 +6297,7 @@ cmdAttachDevice(vshControl *ctl, const v
char *buffer;
int ret = TRUE;
int found;
@ -34,7 +34,7 @@ Index: libvirt-0.7.5/tools/virsh.c
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
return FALSE;
@@ -6311,7 +6313,14 @@ cmdAttachDevice(vshControl *ctl, const v
@@ -6315,7 +6317,14 @@ cmdAttachDevice(vshControl *ctl, const v
return FALSE;
}
@ -47,10 +47,10 @@ Index: libvirt-0.7.5/tools/virsh.c
+ } else {
+ ret = virDomainAttachDevice(dom, buffer);
+ }
free (buffer);
VIR_FREE(buffer);
if (ret < 0) {
@@ -6339,6 +6348,7 @@ static const vshCmdInfo info_detach_devi
@@ -6343,6 +6352,7 @@ static const vshCmdInfo info_detach_devi
static const vshCmdOptDef opts_detach_device[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{"file", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("XML file")},
@ -58,7 +58,7 @@ Index: libvirt-0.7.5/tools/virsh.c
{NULL, 0, 0, NULL}
};
@@ -6350,6 +6360,7 @@ cmdDetachDevice(vshControl *ctl, const v
@@ -6354,6 +6364,7 @@ cmdDetachDevice(vshControl *ctl, const v
char *buffer;
int ret = TRUE;
int found;
@ -66,7 +66,7 @@ Index: libvirt-0.7.5/tools/virsh.c
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
return FALSE;
@@ -6369,7 +6380,14 @@ cmdDetachDevice(vshControl *ctl, const v
@@ -6373,7 +6384,14 @@ cmdDetachDevice(vshControl *ctl, const v
return FALSE;
}
@ -79,10 +79,10 @@ Index: libvirt-0.7.5/tools/virsh.c
+ } else {
+ ret = virDomainDetachDevice(dom, buffer);
+ }
free (buffer);
VIR_FREE(buffer);
if (ret < 0) {
@@ -6401,6 +6419,7 @@ static const vshCmdOptDef opts_attach_in
@@ -6405,6 +6423,7 @@ static const vshCmdOptDef opts_attach_in
{"target", VSH_OT_DATA, 0, gettext_noop("target network name")},
{"mac", VSH_OT_DATA, 0, gettext_noop("MAC address")},
{"script", VSH_OT_DATA, 0, gettext_noop("script used to bridge network interface")},
@ -90,7 +90,7 @@ Index: libvirt-0.7.5/tools/virsh.c
{NULL, 0, 0, NULL}
};
@@ -6411,6 +6430,7 @@ cmdAttachInterface(vshControl *ctl, cons
@@ -6415,6 +6434,7 @@ cmdAttachInterface(vshControl *ctl, cons
char *mac, *target, *script, *type, *source;
int typ, ret = FALSE;
char *buf = NULL, *tmp = NULL;
@ -98,7 +98,7 @@ Index: libvirt-0.7.5/tools/virsh.c
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
goto cleanup;
@@ -6485,13 +6505,22 @@ cmdAttachInterface(vshControl *ctl, cons
@@ -6489,13 +6509,22 @@ cmdAttachInterface(vshControl *ctl, cons
if (!buf) goto cleanup;
strcat(buf, " </interface>\n");
@ -125,7 +125,7 @@ Index: libvirt-0.7.5/tools/virsh.c
cleanup:
if (dom)
@@ -6514,6 +6543,7 @@ static const vshCmdOptDef opts_detach_in
@@ -6518,6 +6547,7 @@ static const vshCmdOptDef opts_detach_in
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{"type", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("network interface type")},
{"mac", VSH_OT_STRING, 0, gettext_noop("MAC address")},
@ -133,7 +133,7 @@ Index: libvirt-0.7.5/tools/virsh.c
{NULL, 0, 0, NULL}
};
@@ -6530,6 +6560,7 @@ cmdDetachInterface(vshControl *ctl, cons
@@ -6534,6 +6564,7 @@ cmdDetachInterface(vshControl *ctl, cons
char *doc, *mac =NULL, *type;
char buf[64];
int i = 0, diff_mac, ret = FALSE;
@ -141,7 +141,7 @@ Index: libvirt-0.7.5/tools/virsh.c
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
goto cleanup;
@@ -6601,10 +6632,21 @@ cmdDetachInterface(vshControl *ctl, cons
@@ -6605,10 +6636,21 @@ cmdDetachInterface(vshControl *ctl, cons
goto cleanup;
}
@ -166,7 +166,7 @@ Index: libvirt-0.7.5/tools/virsh.c
vshPrint(ctl, "%s", _("Interface detached successfully\n"));
ret = TRUE;
}
@@ -6638,6 +6680,7 @@ static const vshCmdOptDef opts_attach_di
@@ -6642,6 +6684,7 @@ static const vshCmdOptDef opts_attach_di
{"subdriver", VSH_OT_STRING, 0, gettext_noop("subdriver of disk device")},
{"type", VSH_OT_STRING, 0, gettext_noop("target device type")},
{"mode", VSH_OT_STRING, 0, gettext_noop("mode of device reading and writing")},
@ -174,7 +174,7 @@ Index: libvirt-0.7.5/tools/virsh.c
{NULL, 0, 0, NULL}
};
@@ -6648,6 +6691,7 @@ cmdAttachDisk(vshControl *ctl, const vsh
@@ -6652,6 +6695,7 @@ cmdAttachDisk(vshControl *ctl, const vsh
char *source, *target, *driver, *subdriver, *type, *mode;
int isFile = 0, ret = FALSE;
char *buf = NULL, *tmp = NULL;
@ -182,7 +182,7 @@ Index: libvirt-0.7.5/tools/virsh.c
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
goto cleanup;
@@ -6763,12 +6807,22 @@ cmdAttachDisk(vshControl *ctl, const vsh
@@ -6767,12 +6811,22 @@ cmdAttachDisk(vshControl *ctl, const vsh
if (!buf) goto cleanup;
strcat(buf, " </disk>\n");
@ -210,7 +210,7 @@ Index: libvirt-0.7.5/tools/virsh.c
cleanup:
if (dom)
@@ -6790,6 +6844,7 @@ static const vshCmdInfo info_detach_disk
@@ -6794,6 +6848,7 @@ static const vshCmdInfo info_detach_disk
static const vshCmdOptDef opts_detach_disk[] = {
{"domain", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("domain name, id or uuid")},
{"target", VSH_OT_DATA, VSH_OFLAG_REQ, gettext_noop("target of disk device")},
@ -218,7 +218,7 @@ Index: libvirt-0.7.5/tools/virsh.c
{NULL, 0, 0, NULL}
};
@@ -6805,6 +6860,7 @@ cmdDetachDisk(vshControl *ctl, const vsh
@@ -6809,6 +6864,7 @@ cmdDetachDisk(vshControl *ctl, const vsh
virDomainPtr dom = NULL;
char *doc, *target;
int i = 0, diff_tgt, ret = FALSE;
@ -226,7 +226,7 @@ Index: libvirt-0.7.5/tools/virsh.c
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
goto cleanup;
@@ -6870,10 +6926,21 @@ cmdDetachDisk(vshControl *ctl, const vsh
@@ -6874,10 +6930,21 @@ cmdDetachDisk(vshControl *ctl, const vsh
goto cleanup;
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fe638808c19a9d3d1bb0c44e03326e7069b1daf11cd697c9a3fc9d2f47538279
size 6046975

3
libvirt-0.7.6.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0977f5e00922b2b3c5eca9c7f7e01ff9aee117f24853c53286fea7a010c86495
size 6280159

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Thu Feb 4 12:36:48 MST 2010 - jfehlig@novell.com
- Updated to version 0.7.6
- Implement support for multi IQN
- Implement CPU topology support for QEMU driver
- Use QEmu new device adressing when possible
- Implement SCSI controller hotplug/unplug for QEMU
- lots of improvements and bug fixes
-------------------------------------------------------------------
Wed Jan 27 17:48:18 MST 2010 - jfehlig@novell.com

View File

@ -1,5 +1,5 @@
#
# spec file for package libvirt (Version 0.7.5)
# spec file for package libvirt (Version 0.7.6)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -111,7 +111,7 @@ Url: http://libvirt.org/
License: LGPLv2.1+
Group: Development/Libraries/C and C++
AutoReqProv: yes
Version: 0.7.5
Version: 0.7.6
Release: 1
Summary: A C toolkit to interract with the virtualization capabilities of Linux
# The client side, i.e. shared libs and virsh are in a subpackage
@ -123,7 +123,6 @@ Requires: parted
Requires: virt-utils
Recommends: logrotate
Requires: dnsmasq
Requires: PolicyKit >= 0.6
Requires: open-iscsi
Requires: nfs-client
%if %{with_hal}
@ -137,20 +136,16 @@ Requires: PolicyKit >= 0.6
Source0: %{name}-%{version}.tar.bz2
Source1: libvirtd.init
# Upstream patches
Patch0: xen-shr-pages.patch
Patch1: node-dev-free.patch
Patch2: xen-migration-params.patch
Patch3: xen-sysctl-v7.patch
Patch4: devflag-01.patch
Patch5: devflag-02.patch
Patch6: devflag-03.patch
Patch7: devflag-04.patch
Patch8: devflag-05.patch
Patch9: devflag-06.patch
Patch10: devflag-07.patch
Patch11: devflag-08.patch
Patch12: devflag-09.patch
Patch13: xen-name-for-devid.patch
Patch0: devflag-01.patch
Patch1: devflag-02.patch
Patch2: devflag-03.patch
Patch3: devflag-04.patch
Patch4: devflag-05.patch
Patch5: devflag-06.patch
Patch6: devflag-07.patch
Patch7: devflag-08.patch
Patch8: devflag-09.patch
Patch9: xen-name-for-devid.patch
# Need to go upstream
Patch100: socat.patch
Patch101: clone.patch
@ -272,10 +267,6 @@ Authors:
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch100 -p1
%patch101
%patch102 -p1

View File

@ -1,29 +0,0 @@
This invalid free results in heap corruption. Some symptoms I saw
because of this were libvirtd crashing and virt-manager hanging
while trying to enumerate devices.
---
src/node_device/node_device_driver.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index: libvirt-0.7.5/src/node_device/node_device_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/node_device/node_device_driver.c
+++ libvirt-0.7.5/src/node_device/node_device_driver.c
@@ -78,7 +78,7 @@ static int update_driver_name(virConnect
virNodeDeviceObjPtr dev)
{
char *driver_link = NULL;
- char *devpath;
+ char *devpath = NULL;
char *p;
int ret = -1;
@@ -114,7 +114,7 @@ static int update_driver_name(virConnect
cleanup:
VIR_FREE(driver_link);
- free(devpath);
+ VIR_FREE(devpath);
return ret;
}
#else

View File

@ -1,7 +1,7 @@
Index: libvirt-0.7.5/include/libvirt/libvirt.h.in
Index: libvirt-0.7.6/include/libvirt/libvirt.h.in
===================================================================
--- libvirt-0.7.5.orig/include/libvirt/libvirt.h.in
+++ libvirt-0.7.5/include/libvirt/libvirt.h.in
--- libvirt-0.7.6.orig/include/libvirt/libvirt.h.in
+++ libvirt-0.7.6/include/libvirt/libvirt.h.in
@@ -621,6 +621,21 @@ int virDomainRestore
const char *from);
@ -24,11 +24,11 @@ Index: libvirt-0.7.5/include/libvirt/libvirt.h.in
* Domain core dump
*/
int virDomainCoreDump (virDomainPtr domain,
Index: libvirt-0.7.5/src/libvirt.c
Index: libvirt-0.7.6/src/libvirt.c
===================================================================
--- libvirt-0.7.5.orig/src/libvirt.c
+++ libvirt-0.7.5/src/libvirt.c
@@ -2339,6 +2339,166 @@ error:
--- libvirt-0.7.6.orig/src/libvirt.c
+++ libvirt-0.7.6/src/libvirt.c
@@ -2379,6 +2379,166 @@ error:
}
/**
@ -195,10 +195,10 @@ Index: libvirt-0.7.5/src/libvirt.c
* virDomainCoreDump:
* @domain: a domain object
* @to: path for the core file
Index: libvirt-0.7.5/src/driver.h
Index: libvirt-0.7.6/src/driver.h
===================================================================
--- libvirt-0.7.5.orig/src/driver.h
+++ libvirt-0.7.5/src/driver.h
--- libvirt-0.7.6.orig/src/driver.h
+++ libvirt-0.7.6/src/driver.h
@@ -136,6 +136,21 @@ typedef int
(*virDrvDomainRestore) (virConnectPtr conn,
const char *from);
@ -233,10 +233,10 @@ Index: libvirt-0.7.5/src/driver.h
};
typedef int
Index: libvirt-0.7.5/src/xen/xen_driver.c
Index: libvirt-0.7.6/src/xen/xen_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_driver.c
+++ libvirt-0.7.5/src/xen/xen_driver.c
--- libvirt-0.7.6.orig/src/xen/xen_driver.c
+++ libvirt-0.7.6/src/xen/xen_driver.c
@@ -1052,6 +1052,81 @@ xenUnifiedDomainRestore (virConnectPtr c
}
@ -319,7 +319,7 @@ Index: libvirt-0.7.5/src/xen/xen_driver.c
xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags)
{
GET_PRIVATE(dom->conn);
@@ -1902,6 +1977,11 @@ static virDriver xenUnifiedDriver = {
@@ -1904,6 +1979,11 @@ static virDriver xenUnifiedDriver = {
xenUnifiedDomainIsActive,
xenUnifiedDomainisPersistent,
NULL, /* cpuCompare */
@ -331,10 +331,10 @@ Index: libvirt-0.7.5/src/xen/xen_driver.c
};
/**
Index: libvirt-0.7.5/src/xen/xen_driver.h
Index: libvirt-0.7.6/src/xen/xen_driver.h
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_driver.h
+++ libvirt-0.7.5/src/xen/xen_driver.h
--- libvirt-0.7.6.orig/src/xen/xen_driver.h
+++ libvirt-0.7.6/src/xen/xen_driver.h
@@ -100,6 +100,11 @@ struct xenUnifiedDriver {
virDrvDomainGetSchedulerType domainGetSchedulerType;
virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
@ -347,10 +347,10 @@ Index: libvirt-0.7.5/src/xen/xen_driver.h
};
typedef struct xenXMConfCache *xenXMConfCachePtr;
Index: libvirt-0.7.5/src/xen/xend_internal.c
Index: libvirt-0.7.6/src/xen/xend_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xend_internal.c
+++ libvirt-0.7.5/src/xen/xend_internal.c
--- libvirt-0.7.6.orig/src/xen/xend_internal.c
+++ libvirt-0.7.6/src/xen/xend_internal.c
@@ -53,6 +53,12 @@
#ifndef PROXY
@ -364,7 +364,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
/*
* The number of Xen scheduler parameters
*/
@@ -3283,6 +3289,87 @@ xenDaemonDomainRestore(virConnectPtr con
@@ -3284,6 +3290,87 @@ xenDaemonDomainRestore(virConnectPtr con
}
return xend_op(conn, "", "op", "restore", "file", filename, NULL);
}
@ -452,7 +452,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
#endif /* !PROXY */
/**
@@ -5234,6 +5321,11 @@ struct xenUnifiedDriver xenDaemonDriver
@@ -5235,6 +5322,11 @@ struct xenUnifiedDriver xenDaemonDriver
xenDaemonGetSchedulerType, /* domainGetSchedulerType */
xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */
xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */
@ -464,10 +464,10 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
};
/************************************************************************
Index: libvirt-0.7.5/src/xen/proxy_internal.c
Index: libvirt-0.7.6/src/xen/proxy_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/proxy_internal.c
+++ libvirt-0.7.5/src/xen/proxy_internal.c
--- libvirt-0.7.6.orig/src/xen/proxy_internal.c
+++ libvirt-0.7.6/src/xen/proxy_internal.c
@@ -83,6 +83,11 @@ struct xenUnifiedDriver xenProxyDriver =
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
@ -480,10 +480,10 @@ Index: libvirt-0.7.5/src/xen/proxy_internal.c
};
Index: libvirt-0.7.5/src/xen/xen_hypervisor.c
Index: libvirt-0.7.6/src/xen/xen_hypervisor.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_hypervisor.c
+++ libvirt-0.7.5/src/xen/xen_hypervisor.c
--- libvirt-0.7.6.orig/src/xen/xen_hypervisor.c
+++ libvirt-0.7.6/src/xen/xen_hypervisor.c
@@ -800,6 +800,11 @@ struct xenUnifiedDriver xenHypervisorDri
xenHypervisorGetSchedulerType, /* domainGetSchedulerType */
xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */
@ -496,10 +496,10 @@ Index: libvirt-0.7.5/src/xen/xen_hypervisor.c
};
#endif /* !PROXY */
Index: libvirt-0.7.5/src/xen/xm_internal.c
Index: libvirt-0.7.6/src/xen/xm_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xm_internal.c
+++ libvirt-0.7.5/src/xen/xm_internal.c
--- libvirt-0.7.6.orig/src/xen/xm_internal.c
+++ libvirt-0.7.6/src/xen/xm_internal.c
@@ -118,6 +118,11 @@ struct xenUnifiedDriver xenXMDriver = {
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
@ -512,10 +512,10 @@ Index: libvirt-0.7.5/src/xen/xm_internal.c
};
#define xenXMError(conn, code, fmt...) \
Index: libvirt-0.7.5/src/xen/xs_internal.c
Index: libvirt-0.7.6/src/xen/xs_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xs_internal.c
+++ libvirt-0.7.5/src/xen/xs_internal.c
--- libvirt-0.7.6.orig/src/xen/xs_internal.c
+++ libvirt-0.7.6/src/xen/xs_internal.c
@@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver =
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
@ -528,11 +528,11 @@ Index: libvirt-0.7.5/src/xen/xs_internal.c
};
#endif /* ! PROXY */
Index: libvirt-0.7.5/tools/virsh.c
Index: libvirt-0.7.6/tools/virsh.c
===================================================================
--- libvirt-0.7.5.orig/tools/virsh.c
+++ libvirt-0.7.5/tools/virsh.c
@@ -1233,6 +1233,188 @@ cmdSave(vshControl *ctl, const vshCmd *c
--- libvirt-0.7.6.orig/tools/virsh.c
+++ libvirt-0.7.6/tools/virsh.c
@@ -1237,6 +1237,188 @@ cmdSave(vshControl *ctl, const vshCmd *c
}
/*
@ -721,7 +721,7 @@ Index: libvirt-0.7.5/tools/virsh.c
* "schedinfo" command
*/
static const vshCmdInfo info_schedinfo[] = {
@@ -7498,6 +7680,12 @@ static const vshCmdDef commands[] = {
@@ -7502,6 +7684,12 @@ static const vshCmdDef commands[] = {
{"undefine", cmdUndefine, opts_undefine, info_undefine},
{"uri", cmdURI, NULL, info_uri},
@ -734,10 +734,10 @@ Index: libvirt-0.7.5/tools/virsh.c
{"vol-create", cmdVolCreate, opts_vol_create, info_vol_create},
{"vol-create-from", cmdVolCreateFrom, opts_vol_create_from, info_vol_create_from},
{"vol-create-as", cmdVolCreateAs, opts_vol_create_as, info_vol_create_as},
Index: libvirt-0.7.5/src/lxc/lxc_driver.c
Index: libvirt-0.7.6/src/lxc/lxc_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/lxc/lxc_driver.c
+++ libvirt-0.7.5/src/lxc/lxc_driver.c
--- libvirt-0.7.6.orig/src/lxc/lxc_driver.c
+++ libvirt-0.7.6/src/lxc/lxc_driver.c
@@ -2458,6 +2458,11 @@ static virDriver lxcDriver = {
lxcDomainIsActive,
lxcDomainIsPersistent,
@ -750,10 +750,10 @@ Index: libvirt-0.7.5/src/lxc/lxc_driver.c
};
static virStateDriver lxcStateDriver = {
Index: libvirt-0.7.5/src/openvz/openvz_driver.c
Index: libvirt-0.7.6/src/openvz/openvz_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/openvz/openvz_driver.c
+++ libvirt-0.7.5/src/openvz/openvz_driver.c
--- libvirt-0.7.6.orig/src/openvz/openvz_driver.c
+++ libvirt-0.7.6/src/openvz/openvz_driver.c
@@ -1537,6 +1537,11 @@ static virDriver openvzDriver = {
openvzDomainIsActive,
openvzDomainIsPersistent,
@ -766,11 +766,11 @@ Index: libvirt-0.7.5/src/openvz/openvz_driver.c
};
int openvzRegister(void) {
Index: libvirt-0.7.5/src/qemu/qemu_driver.c
Index: libvirt-0.7.6/src/qemu/qemu_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/qemu/qemu_driver.c
+++ libvirt-0.7.5/src/qemu/qemu_driver.c
@@ -8016,6 +8016,11 @@ static virDriver qemuDriver = {
--- libvirt-0.7.6.orig/src/qemu/qemu_driver.c
+++ libvirt-0.7.6/src/qemu/qemu_driver.c
@@ -8632,6 +8632,11 @@ static virDriver qemuDriver = {
qemuDomainIsActive,
qemuDomainIsPersistent,
qemuCPUCompare, /* cpuCompare */
@ -782,11 +782,11 @@ Index: libvirt-0.7.5/src/qemu/qemu_driver.c
};
Index: libvirt-0.7.5/src/esx/esx_driver.c
Index: libvirt-0.7.6/src/esx/esx_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/esx/esx_driver.c
+++ libvirt-0.7.5/src/esx/esx_driver.c
@@ -3457,6 +3457,11 @@ static virDriver esxDriver = {
--- libvirt-0.7.6.orig/src/esx/esx_driver.c
+++ libvirt-0.7.6/src/esx/esx_driver.c
@@ -3403,6 +3403,11 @@ static virDriver esxDriver = {
esxDomainIsActive, /* domainIsActive */
esxDomainIsPersistent, /* domainIsPersistent */
NULL, /* cpuCompare */
@ -798,10 +798,10 @@ Index: libvirt-0.7.5/src/esx/esx_driver.c
};
Index: libvirt-0.7.5/src/test/test_driver.c
Index: libvirt-0.7.6/src/test/test_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/test/test_driver.c
+++ libvirt-0.7.5/src/test/test_driver.c
--- libvirt-0.7.6.orig/src/test/test_driver.c
+++ libvirt-0.7.6/src/test/test_driver.c
@@ -5240,6 +5240,11 @@ static virDriver testDriver = {
testDomainIsActive, /* domainIsActive */
testDomainIsPersistent, /* domainIsPersistent */
@ -814,10 +814,10 @@ Index: libvirt-0.7.5/src/test/test_driver.c
};
static virNetworkDriver testNetworkDriver = {
Index: libvirt-0.7.5/src/uml/uml_driver.c
Index: libvirt-0.7.6/src/uml/uml_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/uml/uml_driver.c
+++ libvirt-0.7.5/src/uml/uml_driver.c
--- libvirt-0.7.6.orig/src/uml/uml_driver.c
+++ libvirt-0.7.6/src/uml/uml_driver.c
@@ -1926,6 +1926,11 @@ static virDriver umlDriver = {
umlDomainIsActive,
umlDomainIsPersistent,
@ -830,11 +830,11 @@ Index: libvirt-0.7.5/src/uml/uml_driver.c
};
Index: libvirt-0.7.5/src/vbox/vbox_tmpl.c
Index: libvirt-0.7.6/src/vbox/vbox_tmpl.c
===================================================================
--- libvirt-0.7.5.orig/src/vbox/vbox_tmpl.c
+++ libvirt-0.7.5/src/vbox/vbox_tmpl.c
@@ -7075,6 +7075,11 @@ virDriver NAME(Driver) = {
--- libvirt-0.7.6.orig/src/vbox/vbox_tmpl.c
+++ libvirt-0.7.6/src/vbox/vbox_tmpl.c
@@ -7059,6 +7059,11 @@ virDriver NAME(Driver) = {
vboxDomainIsActive,
vboxDomainIsPersistent,
NULL, /* cpuCompare */
@ -846,10 +846,10 @@ Index: libvirt-0.7.5/src/vbox/vbox_tmpl.c
};
virNetworkDriver NAME(NetworkDriver) = {
Index: libvirt-0.7.5/src/opennebula/one_driver.c
Index: libvirt-0.7.6/src/opennebula/one_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/opennebula/one_driver.c
+++ libvirt-0.7.5/src/opennebula/one_driver.c
--- libvirt-0.7.6.orig/src/opennebula/one_driver.c
+++ libvirt-0.7.6/src/opennebula/one_driver.c
@@ -785,6 +785,11 @@ static virDriver oneDriver = {
NULL, /* domainIsActive */
NULL, /* domainIsPersistent */
@ -862,10 +862,10 @@ Index: libvirt-0.7.5/src/opennebula/one_driver.c
};
static virStateDriver oneStateDriver = {
Index: libvirt-0.7.5/src/phyp/phyp_driver.c
Index: libvirt-0.7.6/src/phyp/phyp_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/phyp/phyp_driver.c
+++ libvirt-0.7.5/src/phyp/phyp_driver.c
--- libvirt-0.7.6.orig/src/phyp/phyp_driver.c
+++ libvirt-0.7.6/src/phyp/phyp_driver.c
@@ -1653,6 +1653,11 @@ virDriver phypDriver = {
NULL, /* domainIsActive */
NULL, /* domainIsPersistent */
@ -878,10 +878,10 @@ Index: libvirt-0.7.5/src/phyp/phyp_driver.c
};
int
Index: libvirt-0.7.5/src/remote/remote_driver.c
Index: libvirt-0.7.6/src/remote/remote_driver.c
===================================================================
--- libvirt-0.7.5.orig/src/remote/remote_driver.c
+++ libvirt-0.7.5/src/remote/remote_driver.c
--- libvirt-0.7.6.orig/src/remote/remote_driver.c
+++ libvirt-0.7.6/src/remote/remote_driver.c
@@ -8994,6 +8994,11 @@ static virDriver remote_driver = {
remoteDomainIsActive, /* domainIsActive */
remoteDomainIsPersistent, /* domainIsPersistent */
@ -894,10 +894,10 @@ Index: libvirt-0.7.5/src/remote/remote_driver.c
};
static virNetworkDriver network_driver = {
Index: libvirt-0.7.5/docs/libvirt-api.xml
Index: libvirt-0.7.6/docs/libvirt-api.xml
===================================================================
--- libvirt-0.7.5.orig/docs/libvirt-api.xml
+++ libvirt-0.7.5/docs/libvirt-api.xml
--- libvirt-0.7.6.orig/docs/libvirt-api.xml
+++ libvirt-0.7.6/docs/libvirt-api.xml
@@ -293,6 +293,11 @@
<exports symbol='virDomainSetVcpus' type='function'/>
<exports symbol='virDomainShutdown' type='function'/>
@ -947,10 +947,10 @@ Index: libvirt-0.7.5/docs/libvirt-api.xml
<function name='virDomainUndefine' file='libvirt' module='libvirt'>
<info><![CDATA[Undefine a domain but does not stop it if it is running]]></info>
<return type='int' info='0 in case of success, -1 in case of error'/>
Index: libvirt-0.7.5/src/libvirt_public.syms
Index: libvirt-0.7.6/src/libvirt_public.syms
===================================================================
--- libvirt-0.7.5.orig/src/libvirt_public.syms
+++ libvirt-0.7.5/src/libvirt_public.syms
--- libvirt-0.7.6.orig/src/libvirt_public.syms
+++ libvirt-0.7.6/src/libvirt_public.syms
@@ -215,6 +215,11 @@ LIBVIRT_0.4.2 {
LIBVIRT_0.4.5 {
global:
@ -963,11 +963,11 @@ Index: libvirt-0.7.5/src/libvirt_public.syms
} LIBVIRT_0.4.2;
LIBVIRT_0.5.0 {
Index: libvirt-0.7.5/python/generator.py
Index: libvirt-0.7.6/python/generator.py
===================================================================
--- libvirt-0.7.5.orig/python/generator.py
+++ libvirt-0.7.5/python/generator.py
@@ -288,6 +288,7 @@ skip_impl = (
--- libvirt-0.7.6.orig/python/generator.py
+++ libvirt-0.7.6/python/generator.py
@@ -289,6 +289,7 @@ skip_impl = (
'virDomainSetSchedulerParameters',
'virDomainGetVcpus',
'virDomainPinVcpu',
@ -975,11 +975,11 @@ Index: libvirt-0.7.5/python/generator.py
'virSecretGetValue',
'virSecretSetValue',
'virSecretGetUUID',
Index: libvirt-0.7.5/python/libvirt-override.c
Index: libvirt-0.7.6/python/libvirt-override.c
===================================================================
--- libvirt-0.7.5.orig/python/libvirt-override.c
+++ libvirt-0.7.5/python/libvirt-override.c
@@ -1516,6 +1516,34 @@ libvirt_virStoragePoolGetInfo(PyObject *
--- libvirt-0.7.6.orig/python/libvirt-override.c
+++ libvirt-0.7.6/python/libvirt-override.c
@@ -1542,6 +1542,34 @@ libvirt_virStoragePoolGetInfo(PyObject *
return(py_retval);
}
@ -1014,7 +1014,7 @@ Index: libvirt-0.7.5/python/libvirt-override.c
static PyObject *
libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -2690,6 +2718,7 @@ static PyMethodDef libvirtMethods[] = {
@@ -2717,6 +2745,7 @@ static PyMethodDef libvirtMethods[] = {
{(char *) "virStoragePoolGetAutostart", libvirt_virStoragePoolGetAutostart, METH_VARARGS, NULL},
{(char *) "virStoragePoolListVolumes", libvirt_virStoragePoolListVolumes, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetInfo", libvirt_virStoragePoolGetInfo, METH_VARARGS, NULL},
@ -1022,11 +1022,11 @@ Index: libvirt-0.7.5/python/libvirt-override.c
{(char *) "virStorageVolGetInfo", libvirt_virStorageVolGetInfo, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetUUID", libvirt_virStoragePoolGetUUID, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetUUIDString", libvirt_virStoragePoolGetUUIDString, METH_VARARGS, NULL},
Index: libvirt-0.7.5/python/libvirt-override-api.xml
Index: libvirt-0.7.6/python/libvirt-override-api.xml
===================================================================
--- libvirt-0.7.5.orig/python/libvirt-override-api.xml
+++ libvirt-0.7.5/python/libvirt-override-api.xml
@@ -145,6 +145,11 @@
--- libvirt-0.7.6.orig/python/libvirt-override-api.xml
+++ libvirt-0.7.6/python/libvirt-override-api.xml
@@ -150,6 +150,11 @@
<arg name='domain' type='virDomainPtr' info='pointer to domain object'/>
<arg name='params' type='virSchedParameterPtr' info='pointer to scheduler parameter objects'/>
</function>
@ -1038,10 +1038,10 @@ Index: libvirt-0.7.5/python/libvirt-override-api.xml
<function name='virConnectListStoragePools' file='python'>
<info>list the storage pools, stores the pointers to the names in @names</info>
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
Index: libvirt-0.7.5/src/xen/xen_inotify.c
Index: libvirt-0.7.6/src/xen/xen_inotify.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_inotify.c
+++ libvirt-0.7.5/src/xen/xen_inotify.c
--- libvirt-0.7.6.orig/src/xen/xen_inotify.c
+++ libvirt-0.7.6/src/xen/xen_inotify.c
@@ -86,6 +86,11 @@ struct xenUnifiedDriver xenInotifyDriver
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */

View File

@ -1,49 +0,0 @@
From 8e53215d5a73d88cceab0040b27529e4f547e74d Mon Sep 17 00:00:00 2001
From: Jim Fehlig <jfehlig@novell.com>
Date: Tue, 12 Jan 2010 11:18:34 -0700
Subject: [PATCH] Fix migration in xend driver
Upstream xen has changed parameters to the migration operation
several times over the past 18 months. Changeset 17553 removed
the resouce parameter, Changesets 17709, 17753, and 20326 added
ssl, node, and change_home_server parameters respectively.
Fortunately, testing has revealed that xend will fail the
operation if a parameter is missing but happily honor it if
unknown parameters are provided. Thus all currently supported
parameters can be provided, satisfying current xend but not
regressing older versions.
---
src/xen/xend_internal.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
Index: libvirt-0.7.5/src/xen/xend_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xend_internal.c
+++ libvirt-0.7.5/src/xen/xend_internal.c
@@ -4552,15 +4552,21 @@ xenDaemonDomainMigratePerform (virDomain
DEBUG("hostname = %s, port = %s", hostname, port);
- /* Make the call. */
+ /* Make the call.
+ * NB: xend will fail the operation if any parameters are
+ * missing but happily accept unknown parameters. This works
+ * to our advantage since all parameters supported and required
+ * by current xend can be included without breaking older xend.
+ */
ret = xend_op (domain->conn, domain->name,
"op", "migrate",
"destination", hostname,
"live", live,
"port", port,
- "node", "-1",
- "ssl", "0",
- "resource", "0", /* required, xend ignores it */
+ "node", "-1", /* xen-unstable c/s 17753 */
+ "ssl", "0", /* xen-unstable c/s 17709 */
+ "change_home_server", "0", /* xen-unstable c/s 20326 */
+ "resource", "0", /* removed by xen-unstable c/s 17553 */
NULL);
VIR_FREE (hostname);

View File

@ -13,10 +13,10 @@ Date: Wed Jan 27 16:11:41 2010 -0700
This approach allows removing a disk when domain is inactive. We
obviously can't search xenstore when the domain is inactive.
Index: libvirt-0.7.5/src/xen/xend_internal.c
Index: libvirt-0.7.6/src/xen/xend_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xend_internal.c
+++ libvirt-0.7.5/src/xen/xend_internal.c
--- libvirt-0.7.6.orig/src/xen/xend_internal.c
+++ libvirt-0.7.6/src/xen/xend_internal.c
@@ -93,6 +93,7 @@ xenDaemonFormatSxprOnePCI(virConnectPtr
static int
@ -25,7 +25,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
virDomainDeviceDefPtr dev,
char *class,
char *ref,
@@ -4214,7 +4215,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr
@@ -4215,7 +4216,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr
sexpr = virBufferContentAndReset(&buf);
@ -34,7 +34,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
/* device doesn't exist, define it */
ret = xend_op(domain->conn, domain->name, "op", "device_create",
"config", sexpr, NULL);
@@ -4309,7 +4310,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr
@@ -4310,7 +4311,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr
def, xml, VIR_DOMAIN_XML_INACTIVE)))
goto cleanup;
@ -43,7 +43,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
goto cleanup;
if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) {
@@ -6051,6 +6052,7 @@ error:
@@ -6052,6 +6053,7 @@ error:
*/
static int
virDomainXMLDevID(virDomainPtr domain,
@ -51,7 +51,7 @@ Index: libvirt-0.7.5/src/xen/xend_internal.c
virDomainDeviceDefPtr dev,
char *class,
char *ref,
@@ -6059,27 +6061,33 @@ virDomainXMLDevID(virDomainPtr domain,
@@ -6060,27 +6062,33 @@ virDomainXMLDevID(virDomainPtr domain,
xenUnifiedPrivatePtr priv = domain->conn->privateData;
char *xref;
char *tmp;

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.5/src/xen/xend_internal.c
Index: libvirt-0.7.6/src/xen/xend_internal.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xend_internal.c
+++ libvirt-0.7.5/src/xen/xend_internal.c
@@ -5478,7 +5478,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
--- libvirt-0.7.6.orig/src/xen/xend_internal.c
+++ libvirt-0.7.6/src/xen/xend_internal.c
@@ -5479,7 +5479,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
} else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst);
} else {

View File

@ -1,248 +0,0 @@
Index: libvirt-0.7.5/src/xen/xen_hypervisor.c
===================================================================
--- libvirt-0.7.5.orig/src/xen/xen_hypervisor.c
+++ libvirt-0.7.5/src/xen/xen_hypervisor.c
@@ -215,10 +215,26 @@ struct xen_v2d5_getdomaininfo {
};
typedef struct xen_v2d5_getdomaininfo xen_v2d5_getdomaininfo;
+struct xen_v2d6_getdomaininfo {
+ domid_t domain; /* the domain number */
+ uint32_t flags; /* flags, see before */
+ uint64_t tot_pages ALIGN_64; /* total number of pages used */
+ uint64_t max_pages ALIGN_64; /* maximum number of pages allowed */
+ uint64_t shr_pages ALIGN_64; /* number of shared pages */
+ uint64_t shared_info_frame ALIGN_64; /* MFN of shared_info struct */
+ uint64_t cpu_time ALIGN_64; /* CPU time used */
+ uint32_t nr_online_vcpus; /* Number of VCPUs currently online. */
+ uint32_t max_vcpu_id; /* Maximum VCPUID in use by this domain. */
+ uint32_t ssidref;
+ xen_domain_handle_t handle;
+};
+typedef struct xen_v2d6_getdomaininfo xen_v2d6_getdomaininfo;
+
union xen_getdomaininfo {
struct xen_v0_getdomaininfo v0;
struct xen_v2_getdomaininfo v2;
struct xen_v2d5_getdomaininfo v2d5;
+ struct xen_v2d6_getdomaininfo v2d6;
};
typedef union xen_getdomaininfo xen_getdomaininfo;
@@ -226,6 +242,7 @@ union xen_getdomaininfolist {
struct xen_v0_getdomaininfo *v0;
struct xen_v2_getdomaininfo *v2;
struct xen_v2d5_getdomaininfo *v2d5;
+ struct xen_v2d6_getdomaininfo *v2d6;
};
typedef union xen_getdomaininfolist xen_getdomaininfolist;
@@ -263,114 +280,147 @@ typedef struct xen_v2s5_availheap xen_v
#define XEN_GETDOMAININFOLIST_ALLOC(domlist, size) \
(hypervisor_version < 2 ? \
(VIR_ALLOC_N(domlist.v0, (size)) == 0) : \
- (dom_interface_version < 5 ? \
- (VIR_ALLOC_N(domlist.v2, (size)) == 0) : \
- (VIR_ALLOC_N(domlist.v2d5, (size)) == 0)))
+ (dom_interface_version >= 6 ? \
+ (VIR_ALLOC_N(domlist.v2d6, (size)) == 0) : \
+ (dom_interface_version == 5 ? \
+ (VIR_ALLOC_N(domlist.v2d5, (size)) == 0) : \
+ (VIR_ALLOC_N(domlist.v2, (size)) == 0))))
#define XEN_GETDOMAININFOLIST_FREE(domlist) \
(hypervisor_version < 2 ? \
VIR_FREE(domlist.v0) : \
- (dom_interface_version < 5 ? \
- VIR_FREE(domlist.v2) : \
- VIR_FREE(domlist.v2d5)))
+ (dom_interface_version >= 6 ? \
+ VIR_FREE(domlist.v2d6) : \
+ (dom_interface_version == 5 ? \
+ VIR_FREE(domlist.v2d5) : \
+ VIR_FREE(domlist.v2))))
#define XEN_GETDOMAININFOLIST_CLEAR(domlist, size) \
(hypervisor_version < 2 ? \
memset(domlist.v0, 0, sizeof(*domlist.v0) * size) : \
- (dom_interface_version < 5 ? \
- memset(domlist.v2, 0, sizeof(*domlist.v2) * size) : \
- memset(domlist.v2d5, 0, sizeof(*domlist.v2d5) * size)))
+ (dom_interface_version >= 6 ? \
+ memset(domlist.v2d6, 0, sizeof(*domlist.v2d6) * size) : \
+ (dom_interface_version == 5 ? \
+ memset(domlist.v2d5, 0, sizeof(*domlist.v2d5) * size) : \
+ memset(domlist.v2, 0, sizeof(*domlist.v2) * size))))
#define XEN_GETDOMAININFOLIST_DOMAIN(domlist, n) \
(hypervisor_version < 2 ? \
domlist.v0[n].domain : \
- (dom_interface_version < 5 ? \
- domlist.v2[n].domain : \
- domlist.v2d5[n].domain))
+ (dom_interface_version >= 6 ? \
+ domlist.v2d6[n].domain : \
+ (dom_interface_version == 5 ? \
+ domlist.v2d5[n].domain : \
+ domlist.v2[n].domain)))
#define XEN_GETDOMAININFOLIST_UUID(domlist, n) \
(hypervisor_version < 2 ? \
domlist.v0[n].handle : \
- (dom_interface_version < 5 ? \
- domlist.v2[n].handle : \
- domlist.v2d5[n].handle))
+ (dom_interface_version >= 6 ? \
+ domlist.v2d6[n].handle : \
+ (dom_interface_version == 5 ? \
+ domlist.v2d5[n].handle : \
+ domlist.v2[n].handle)))
#define XEN_GETDOMAININFOLIST_DATA(domlist) \
(hypervisor_version < 2 ? \
(void*)(domlist->v0) : \
- (dom_interface_version < 5 ? \
- (void*)(domlist->v2) : \
- (void*)(domlist->v2d5)))
+ (dom_interface_version >= 6 ? \
+ (void*)(domlist->v2d6) : \
+ (dom_interface_version == 5 ? \
+ (void*)(domlist->v2d5) : \
+ (void*)(domlist->v2))))
#define XEN_GETDOMAININFO_SIZE \
(hypervisor_version < 2 ? \
sizeof(xen_v0_getdomaininfo) : \
- (dom_interface_version < 5 ? \
- sizeof(xen_v2_getdomaininfo) : \
- sizeof(xen_v2d5_getdomaininfo)))
+ (dom_interface_version >= 6 ? \
+ sizeof(xen_v2d6_getdomaininfo) : \
+ (dom_interface_version == 5 ? \
+ sizeof(xen_v2d5_getdomaininfo) : \
+ sizeof(xen_v2_getdomaininfo))))
#define XEN_GETDOMAININFO_CLEAR(dominfo) \
(hypervisor_version < 2 ? \
memset(&(dominfo.v0), 0, sizeof(xen_v0_getdomaininfo)) : \
- (dom_interface_version < 5 ? \
- memset(&(dominfo.v2), 0, sizeof(xen_v2_getdomaininfo)) : \
- memset(&(dominfo.v2d5), 0, sizeof(xen_v2d5_getdomaininfo))))
+ (dom_interface_version >= 6 ? \
+ memset(&(dominfo.v2d6), 0, sizeof(xen_v2d6_getdomaininfo)) : \
+ (dom_interface_version == 5 ? \
+ memset(&(dominfo.v2d5), 0, sizeof(xen_v2d5_getdomaininfo)) : \
+ memset(&(dominfo.v2), 0, sizeof(xen_v2_getdomaininfo)))))
#define XEN_GETDOMAININFO_DOMAIN(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.domain : \
- (dom_interface_version < 5 ? \
- dominfo.v2.domain : \
- dominfo.v2d5.domain))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.domain : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.domain : \
+ dominfo.v2.domain)))
#define XEN_GETDOMAININFO_CPUTIME(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.cpu_time : \
- (dom_interface_version < 5 ? \
- dominfo.v2.cpu_time : \
- dominfo.v2d5.cpu_time))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.cpu_time : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.cpu_time : \
+ dominfo.v2.cpu_time)))
+
#define XEN_GETDOMAININFO_CPUCOUNT(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.nr_online_vcpus : \
- (dom_interface_version < 5 ? \
- dominfo.v2.nr_online_vcpus : \
- dominfo.v2d5.nr_online_vcpus))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.nr_online_vcpus : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.nr_online_vcpus : \
+ dominfo.v2.nr_online_vcpus)))
#define XEN_GETDOMAININFO_MAXCPUID(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.max_vcpu_id : \
- (dom_interface_version < 5 ? \
- dominfo.v2.max_vcpu_id : \
- dominfo.v2d5.max_vcpu_id))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.max_vcpu_id : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.max_vcpu_id : \
+ dominfo.v2.max_vcpu_id)))
#define XEN_GETDOMAININFO_FLAGS(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.flags : \
- (dom_interface_version < 5 ? \
- dominfo.v2.flags : \
- dominfo.v2d5.flags))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.flags : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.flags : \
+ dominfo.v2.flags)))
#define XEN_GETDOMAININFO_TOT_PAGES(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.tot_pages : \
- (dom_interface_version < 5 ? \
- dominfo.v2.tot_pages : \
- dominfo.v2d5.tot_pages))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.tot_pages : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.tot_pages : \
+ dominfo.v2.tot_pages)))
#define XEN_GETDOMAININFO_MAX_PAGES(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.max_pages : \
- (dom_interface_version < 5 ? \
- dominfo.v2.max_pages : \
- dominfo.v2d5.max_pages))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.max_pages : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.max_pages : \
+ dominfo.v2.max_pages)))
#define XEN_GETDOMAININFO_UUID(dominfo) \
(hypervisor_version < 2 ? \
dominfo.v0.handle : \
- (dom_interface_version < 5 ? \
- dominfo.v2.handle : \
- dominfo.v2d5.handle))
+ (dom_interface_version >= 6 ? \
+ dominfo.v2d6.handle : \
+ (dom_interface_version == 5 ? \
+ dominfo.v2d5.handle : \
+ dominfo.v2.handle)))
static int
@@ -2050,6 +2100,12 @@ xenHypervisorInit(void)
DEBUG0("Using hypervisor call v2, sys ver6 dom ver5\n");
goto done;
}
+ /* Xen 4.0 */
+ dom_interface_version = 6; /* XEN_DOMCTL_INTERFACE_VERSION */
+ if (virXen_getvcpusinfo(fd, 0, 0, ipt, NULL, 0) == 0){
+ DEBUG0("Using hypervisor call v2, sys ver6 dom ver6\n");
+ goto done;
+ }
}
hypervisor_version = 1;

View File

@ -1,38 +0,0 @@
commit 3bd3d6b0bf9b8f054a8b31c716f03e2d0dd8751f
Author: Jim Fehlig <jfehlig@novell.com>
Date: Wed Jan 27 10:56:18 2010 -0700
Support Xen 4.0 sysctl version 7
xen-unstable c/s 20762 bumped XEN_SYSCTL_INTERFACE_VERSION to 7. The
interface change does not affect libvirt, other than xenHypervisorInit()
failing since version 7 is not tried.
The attached patch accommodates the upcoming Xen 4.0 release by checking
for XEN_SYSCTL_INTERFACE_VERSION 7. If found, it sets
XEN_DOMCTL_INTERFACE_VERSION to 6, which is also new to Xen 4.0.
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index 6d8accc..7f39095 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -2100,12 +2100,14 @@ xenHypervisorInit(void)
DEBUG0("Using hypervisor call v2, sys ver6 dom ver5\n");
goto done;
}
- /* Xen 4.0 */
+ }
+
+ /* Xen 4.0 */
+ sys_interface_version = 7; /* XEN_SYSCTL_INTERFACE_VERSION */
+ if (virXen_getdomaininfo(fd, 0, &info) == 1) {
dom_interface_version = 6; /* XEN_DOMCTL_INTERFACE_VERSION */
- if (virXen_getvcpusinfo(fd, 0, 0, ipt, NULL, 0) == 0){
- DEBUG0("Using hypervisor call v2, sys ver6 dom ver6\n");
- goto done;
- }
+ DEBUG0("Using hypervisor call v2, sys ver7 dom ver6\n");
+ goto done;
}
hypervisor_version = 1;