aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2023-11-07 04:20:55 -0500
committerMichael S. Tsirkin <mst@redhat.com>2023-12-01 08:53:04 -0500
commitdc864d3a3777424187280e50c9bfb84dced54f12 (patch)
treebeb14aa042607de7a6a9d7387fde104ab8a8eec7
parentabf635ddfe3242df907f58967f3c1e6763bbca2d (diff)
downloadqemu-dc864d3a3777424187280e50c9bfb84dced54f12.zip
qemu-dc864d3a3777424187280e50c9bfb84dced54f12.tar.gz
qemu-dc864d3a3777424187280e50c9bfb84dced54f12.tar.bz2
osdep: add getloadavg
getloadavg is supported on Linux, BSDs, Solaris. Following man page: RETURN VALUE If the load average was unobtainable, -1 is returned; otherwise, the number of samples actually retrieved is returned. accordingly, make stub for systems which don't support this function return -1 for consistency. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--include/qemu/osdep.h10
-rw-r--r--meson.build1
2 files changed, 11 insertions, 0 deletions
diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index 475a1c6..d30ba73 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -779,6 +779,16 @@ static inline int platform_does_not_support_system(const char *command)
}
#endif /* !HAVE_SYSTEM_FUNCTION */
+/**
+ * If the load average was unobtainable, -1 is returned
+ */
+#ifndef HAVE_GETLOADAVG_FUNCTION
+static inline int getloadavg(double loadavg[], int nelem)
+{
+ return -1;
+}
+#endif /* !HAVE_GETLOADAVG_FUNCTION */
+
#ifdef __cplusplus
}
#endif
diff --git a/meson.build b/meson.build
index ec01f8b..d2c4c2a 100644
--- a/meson.build
+++ b/meson.build
@@ -2293,6 +2293,7 @@ config_host_data.set('HAVE_GLIB_WITH_SLICE_ALLOCATOR', glib_has_gslice)
config_host_data.set('HAVE_OPENPTY', cc.has_function('openpty', dependencies: util))
config_host_data.set('HAVE_STRCHRNUL', cc.has_function('strchrnul'))
config_host_data.set('HAVE_SYSTEM_FUNCTION', cc.has_function('system', prefix: '#include <stdlib.h>'))
+config_host_data.set('HAVE_GETLOADAVG_FUNCTION', cc.has_function('getloadavg', prefix: '#include <stdlib.h>'))
if rbd.found()
config_host_data.set('HAVE_RBD_NAMESPACE_EXISTS',
cc.has_function('rbd_namespace_exists',