]> xenbits.xensource.com Git - libvirt.git/commitdiff
nodeinfo: make nodeGetInfo() call nodeGetMemory for memory size
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 13 Apr 2016 16:28:10 +0000 (17:28 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 9 Jun 2016 17:03:37 +0000 (18:03 +0100)
The nodeGetInfo() method currently has its own code for getting
memory size in KB, that basically just re-invents what nodeGetMemory
already does. Remove it and just call nodeGetMemory, converting its
result from bytes to KB, allowing removal of more platform specific
conditional code.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/nodeinfo.c

index 1288543d8475ece8381dbce52c3fbbbfdc227d06..bc5400f45f375a59f15c36d8b98f8ce19406cdd5 100644 (file)
@@ -81,33 +81,6 @@ appleFreebsdNodeGetCPUCount(void)
 
     return ncpu;
 }
-
-/* VIR_HW_PHYSMEM - the resulting value of HW_PHYSMEM of FreeBSD
- * is 64 bits while that of Mac OS X is still 32 bits.
- * Mac OS X provides HW_MEMSIZE for 64 bits version of HW_PHYSMEM
- * since 10.6.8 (Snow Leopard) at least.
- */
-# ifdef HW_MEMSIZE
-#  define VIR_HW_PHYSMEM HW_MEMSIZE
-# else
-#  define VIR_HW_PHYSMEM HW_PHYSMEM
-# endif
-static int
-appleFreebsdNodeGetMemorySize(unsigned long *memory)
-{
-    int mib[2] = { CTL_HW, VIR_HW_PHYSMEM };
-    unsigned long physmem;
-    size_t len = sizeof(physmem);
-
-    if (sysctl(mib, 2, &physmem, &len, NULL, 0) == -1) {
-        virReportSystemError(errno, "%s", _("cannot obtain memory size"));
-        return -1;
-    }
-
-    *memory = (unsigned long)(physmem / 1024);
-
-    return 0;
-}
 #endif /* defined(__FreeBSD__) || defined(__APPLE__) */
 
 #ifdef __FreeBSD__
@@ -1192,12 +1165,17 @@ int
 nodeGetInfo(virNodeInfoPtr nodeinfo)
 {
     virArch hostarch = virArchFromHost();
+    unsigned long long memorybytes;
 
     memset(nodeinfo, 0, sizeof(*nodeinfo));
 
     if (virStrcpyStatic(nodeinfo->model, virArchToString(hostarch)) == NULL)
         return -1;
 
+    if (nodeGetMemory(&memorybytes, NULL) < 0)
+        return -1;
+    nodeinfo->memory = memorybytes / 1024;
+
 #ifdef __linux__
     {
     int ret = -1;
@@ -1213,9 +1191,6 @@ nodeGetInfo(virNodeInfoPtr nodeinfo)
     if (ret < 0)
         goto cleanup;
 
-    /* Convert to KB. */
-    nodeinfo->memory = physmem_total() / 1024;
-
  cleanup:
     VIR_FORCE_FCLOSE(cpuinfo);
     return ret;
@@ -1251,9 +1226,6 @@ nodeGetInfo(virNodeInfoPtr nodeinfo)
     nodeinfo->mhz = cpu_freq / 1000000;
 # endif
 
-    if (appleFreebsdNodeGetMemorySize(&nodeinfo->memory) < 0)
-        return -1;
-
     return 0;
     }
 #else