int ncpus,
virCapsHostNUMACellCPU **cpus,
int ndistances,
- virCapsHostNUMACellDistance **distances,
+ virNumaDistance **distances,
int npageinfo,
virCapsHostNUMACellPageInfo **pageinfo)
{
cell->pageinfo[j].avail);
}
- if (cell->ndistances) {
- virBufferAddLit(buf, "<distances>\n");
- virBufferAdjustIndent(buf, 2);
- for (j = 0; j < cell->ndistances; j++) {
- virBufferAsprintf(buf, "<sibling id='%d' value='%d'/>\n",
- cell->distances[j].node,
- cell->distances[j].distance);
- }
- virBufferAdjustIndent(buf, -2);
- virBufferAddLit(buf, "</distances>\n");
- }
+ virNumaDistanceFormat(buf, cell->distances, cell->ndistances);
virBufferAsprintf(buf, "<cpus num='%d'>\n", cell->ncpus);
virBufferAdjustIndent(buf, 2);
static int
virCapabilitiesGetNUMADistances(int node,
- virCapsHostNUMACellDistance **distancesRet,
+ virNumaDistance **distancesRet,
int *ndistancesRet)
{
- virCapsHostNUMACellDistance *tmp = NULL;
+ virNumaDistance *tmp = NULL;
int tmp_size = 0;
int ret = -1;
int *distances = NULL;
return 0;
}
- tmp = g_new0(virCapsHostNUMACellDistance, ndistances);
+ tmp = g_new0(virNumaDistance, ndistances);
for (i = 0; i < ndistances; i++) {
if (!distances[i])
continue;
- tmp[tmp_size].node = i;
- tmp[tmp_size].distance = distances[i];
+ tmp[tmp_size].cellid = i;
+ tmp[tmp_size].value = distances[i];
tmp_size++;
}
for (n = 0; n <= max_node; n++) {
g_autoptr(virBitmap) cpumap = NULL;
- g_autofree virCapsHostNUMACellDistance *distances = NULL;
+ g_autofree virNumaDistance *distances = NULL;
int ndistances = 0;
g_autofree virCapsHostNUMACellPageInfo *pageinfo = NULL;
int npageinfo;
virBitmap *siblings;
};
-struct _virCapsHostNUMACellDistance {
- int node; /* foreign NUMA node */
- unsigned int distance; /* distance to the node */
-};
-
struct _virCapsHostNUMACellPageInfo {
unsigned int size; /* page size in kibibytes */
unsigned long long avail; /* the size of pool */
int ncpus;
unsigned long long mem; /* in kibibytes */
virCapsHostNUMACellCPU *cpus;
- int ndistances;
- virCapsHostNUMACellDistance *distances;
+ size_t ndistances;
+ virNumaDistance *distances;
int npageinfo;
virCapsHostNUMACellPageInfo *pageinfo;
};
int ncpus,
virCapsHostNUMACellCPU **cpus,
int ndistances,
- virCapsHostNUMACellDistance **distances,
+ virNumaDistance **distances,
int npageinfo,
virCapsHostNUMACellPageInfo **pageinfo);
libxl_cputopology *cpu_topo = NULL;
int nr_nodes = 0, nr_cpus = 0, nr_distances = 0;
virCapsHostNUMACellCPU **cpus = NULL;
- virCapsHostNUMACellDistance *distances = NULL;
+ virNumaDistance *distances = NULL;
int *nr_cpus_node = NULL;
size_t i;
int ret = -1;
if (nr_distances) {
size_t j;
- distances = g_new0(virCapsHostNUMACellDistance, nr_distances);
+ distances = g_new0(virNumaDistance, nr_distances);
for (j = 0; j < nr_distances; j++) {
- distances[j].node = j;
- distances[j].distance = numa_info[i].dists[j];
+ distances[j].cellid = j;
+ distances[j].value = numa_info[i].dists[j];
}
}