Implement virHostCPUGetOnlineBitmap() for FreeBSD. As FreeBSD
supports neither plugging nor taking CPUs offline,
all CPUs are always online.

Signed-off-by: Roman Bogorodskiy <[email protected]>
---
 src/util/virhostcpu.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c
index 7cecb4b2c8..8688b6ec67 100644
--- a/src/util/virhostcpu.c
+++ b/src/util/virhostcpu.c
@@ -1120,6 +1120,19 @@ virHostCPUGetOnlineBitmap(void)
 
     virFileReadValueBitmap(&ret, "%s/cpu/online", SYSFS_SYSTEM_PATH);
 
+    return ret;
+#elif defined(__FreeBSD__)
+    virBitmap *ret = NULL;
+    int ncpus = virHostCPUGetCountAppleFreeBSD();
+
+    if (ncpus == -1)
+        return ret;
+
+    /* FreeBSD does not support CPU hotplug, so it is safe to assume
+     * that all available CPUs are online */
+    ret = virBitmapNew(ncpus);
+    virBitmapSetAll(ret);
+
     return ret;
 #else
     virReportError(VIR_ERR_NO_SUPPORT, "%s",
-- 
2.52.0

Reply via email to