virDomainNumatuneMemModeTypeFromString;
virDomainNumatuneMemModeTypeToString;
virNumaGetAutoPlacementAdvice;
+virNumaIsAvailable;
virNumaSetupMemoryPolicy;
virNumaTuneMemPlacementModeTypeFromString;
virNumaTuneMemPlacementModeTypeToString;
#include "virfile.h"
#include "virtypedparam.h"
#include "virstring.h"
+#include "virnuma.h"
#define VIR_FROM_THIS VIR_FROM_NONE
if (VIR_STRDUP(meminfo_path, MEMINFO_PATH) < 0)
return -1;
} else {
-# if WITH_NUMACTL
- if (numa_available() < 0) {
-# endif
+ if (!virNumaIsAvailable()) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("NUMA not supported on this host"));
return -1;
-# if WITH_NUMACTL
}
-# endif
# if WITH_NUMACTL
if (cellNum > numa_max_node()) {
int ncpus = 0;
bool topology_failed = false;
- if (numa_available() < 0)
+ if (!virNumaIsAvailable())
return nodeCapsInitNUMAFake(caps);
int mask_n_bytes = max_n_cpus / 8;
int ret = -1;
int maxCell;
- if (numa_available() < 0)
+ if (!virNumaIsAvailable())
return nodeGetCellsFreeMemoryFake(freeMems,
startCell, maxCells);
unsigned long long freeMem = 0;
int n;
- if (numa_available() < 0)
+ if (!virNumaIsAvailable())
return nodeGetFreeMemoryFake();
cleanup:
return ret;
}
+
+
+bool
+virNumaIsAvailable(void)
+{
+ return numa_available() != -1;
+}
#else
int
virNumaSetupMemoryPolicy(virNumaTuneDef numatune,
return 0;
}
+
+
+bool
+virNumaIsAvailable(void)
+{
+ return false;
+}
#endif