+Tue Jun 16 10:30:22 BST 2009 Daniel P. Berrange <berrange@redhat.com>
+
+ * src/xen_internal.c: Add new variant of availheap sysctl
+ for ABI changes in Xen
+
Mon Jun 15 18:15:22 BST 2009 Daniel P. Berrange <berrange@redhat.com>
Fix build on non-Linux targets
typedef struct xen_v2s4_availheap xen_v2s4_availheap;
+struct xen_v2s5_availheap {
+ uint32_t min_bitwidth; /* Smallest address width (zero if don't care). */
+ uint32_t max_bitwidth; /* Largest address width (zero if don't care). */
+ int32_t node; /* NUMA node (-1 for sum across all nodes). */
+ uint64_t avail_bytes ALIGN_64; /* Bytes available in the specified region. */
+};
+
+typedef struct xen_v2s5_availheap xen_v2s5_availheap;
+
#define XEN_GETDOMAININFOLIST_ALLOC(domlist, size) \
(hypervisor_version < 2 ? \
xen_v2s3_getdomaininfolistop getdomaininfolists3;
xen_v2_getschedulerid getschedulerid;
xen_v2s4_availheap availheap;
+ xen_v2s5_availheap availheap5;
uint8_t padding[128];
} u;
};
op_sys.cmd = XEN_V2_OP_GETAVAILHEAP;
for (i = startCell, j = 0;(i < priv->nbNodeCells) && (j < maxCells);i++,j++) {
- op_sys.u.availheap.node = i;
+ if (sys_interface_version >= 5)
+ op_sys.u.availheap5.node = i;
+ else
+ op_sys.u.availheap.node = i;
ret = xenHypervisorDoV2Sys(priv->handle, &op_sys);
if (ret < 0) {
return(-1);
}
- freeMems[j] = op_sys.u.availheap.avail_bytes;
+ if (sys_interface_version >= 5)
+ freeMems[j] = op_sys.u.availheap5.avail_bytes;
+ else
+ freeMems[j] = op_sys.u.availheap.avail_bytes;
}
return (j);
}