On Thursday, 30 March 2017 at 10:03 PM, Martin Kletzander wrote:
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>---src/libvirt_private.syms | 5 +++src/util/virsysfs.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++src/util/virsysfs.h | 34 ++++++++++++++++3 files changed, 141 insertions(+)diff --git a/src/libvirt_private.syms b/src/libvirt_private.symsindex bcd2506ef7c9..0b3b41516fe6 100644--- a/src/libvirt_private.syms+++ b/src/libvirt_private.syms@@ -2623,6 +2623,11 @@ virVasprintfInternal;# util/virsysfs.hvirSysfsCpuDirOpen;virSysfsDirOpen;+virSysfsGetCpuCacheValueBitmap;+virSysfsGetCpuCacheValueInt;+virSysfsGetCpuCacheValueScaledInt;+virSysfsGetCpuCacheValueString;+virSysfsGetCpuCacheValueUint;virSysfsGetCpuValueBitmap;virSysfsGetCpuValueInt;virSysfsGetCpuValueString;diff --git a/src/util/virsysfs.c b/src/util/virsysfs.cindex a8550bbfbc26..2a64be4f5f73 100644--- a/src/util/virsysfs.c+++ b/src/util/virsysfs.c@@ -221,6 +221,108 @@ virSysfsCpuDirOpen(unsigned int cpu,}+/*+ * Per-CPU/cache getters+ */+int+virSysfsGetCpuCacheValueInt(unsigned int cpu,+ const char *cache,+ const char *file,+ int *value)
+{+ char *path = NULL;+ int ret = -1;++ if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s",
+ sysfs_system_path, cpu, cache, file) < 0)+ return -1;++ ret = virFileReadValueInt(path, value);++ VIR_FREE(path);+ return ret;+}+++int+virSysfsGetCpuCacheValueUint(unsigned int cpu,+ const char *cache,+ const char *file,+ unsigned int *value)+{+ char *path = NULL;+ int ret = -1;++ if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s",+ sysfs_system_path, cpu, cache, file) < 0)+ return -1;++ ret = virFileReadValueUint(path, value);++ VIR_FREE(path);+ return ret;+}++int+virSysfsGetCpuCacheValueScaledInt(unsigned int cpu,+ const char *cache,+ const char *file,+ unsigned long long *value)
+{+ char *path = NULL;+ int ret = -1;++ if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s",+ sysfs_system_path, cpu, cache, file) < 0)+ return -1;++ ret = virFileReadValueScaledInt(path, value);++ VIR_FREE(path);+ return ret;+}+++int+virSysfsGetCpuCacheValueString(unsigned int cpu,+ const char *cache,+ const char *file,+ char **value)+{+ char *path = NULL;+ int ret = -1;++ if (virAsprintf(&path, "cpu/cpu%u/cache/%s/%s", cpu, cache, file) < 0)+ return -1;++ ret = virSysfsGetValueString(path, value);++ VIR_FREE(path);+ return ret;+}++int+virSysfsGetCpuCacheValueBitmap(unsigned int cpu,+ const char *cache,+ const char *file,+ virBitmapPtr *value)+{+ char *path = NULL;+ int ret = -1;++ if (virAsprintf(&path, "%s/cpu/cpu%u/cache/%s/%s",+ sysfs_system_path, cpu, cache, file) < 0)+ return -1;++ ret = virFileReadValueBitmap(path, VIR_SYSFS_VALUE_MAXLEN, value);+ VIR_FREE(path);+ return ret;+}+++/*+ * Per-NUMA node getters+ */intvirSysfsGetNodeValueString(unsigned int node,const char *file,diff --git a/src/util/virsysfs.h b/src/util/virsysfs.hindex 25bd100ea9cb..92f9111b069f 100644--- a/src/util/virsysfs.h+++ b/src/util/virsysfs.h@@ -77,6 +77,40 @@ virSysfsCpuDirOpen(unsigned int cpu,/*+ * Per-CPU/cache getters+ */+int+virSysfsGetCpuCacheValueInt(unsigned int cpu,+ const char *cache,+ const char *file,+ int *value);++int+virSysfsGetCpuCacheValueUint(unsigned int cpu,+ const char *cache,+ const char *file,+ unsigned int *value);++int+virSysfsGetCpuCacheValueScaledInt(unsigned int cpu,+ const char *cache,+ const char *file,+ unsigned long long *value);++int+virSysfsGetCpuCacheValueString(unsigned int cpu,+ const char *cache,+ const char *file,+ char **value);++int+virSysfsGetCpuCacheValueBitmap(unsigned int cpu,+ const char *cache,+ const char *file,+ virBitmapPtr *value);+++/** Per-NUMA node getters*/int--2.12.2--libvir-list mailing list