util/virstorageencryption.c util/virstorageencryption.h \
util/virstoragefile.c util/virstoragefile.h \
util/virstring.h util/virstring.c \
- util/virsysfs.c util/virsysfs.h util/virsysfspriv.h \
util/virsysinfo.c util/virsysinfo.h util/virsysinfopriv.h \
util/virsystemd.c util/virsystemd.h util/virsystemdpriv.h \
util/virthread.c util/virthread.h \
util/virrandom.c \
util/virsocketaddr.c \
util/virstring.c \
- util/virsysfs.c \
util/virsystemd.c \
util/virtime.c \
util/virthread.c \
#include "virlog.h"
#include "virnuma.h"
#include "virstring.h"
-#include "virsysfs.h"
#include "virtypedparam.h"
#include "viruuid.h"
virFileReadLink;
virFileReadValueBitmap;
virFileReadValueInt;
+virFileReadValueScaledInt;
+virFileReadValueString;
virFileReadValueUint;
virFileRelLinkPointsTo;
virFileRemove;
virVasprintfInternal;
-# util/virsysfs.h
-virSysfsGetCpuValueBitmap;
-virSysfsGetCpuValueInt;
-virSysfsGetCpuValueString;
-virSysfsGetCpuValueUint;
-virSysfsGetNodeValueBitmap;
-virSysfsGetNodeValueString;
-virSysfsGetSystemPath;
-virSysfsGetValueBitmap;
-virSysfsGetValueInt;
-virSysfsGetValueString;
-virSysfsSetSystemPath;
-
-
# util/virsysinfo.h
virSysinfoBaseBoardDefClear;
virSysinfoBIOSDefFree;
/**
* virFileReadValueInt:
- * @path: file to read from
* @value: pointer to int to be filled in with the value
+ * @format, ...: file to read from
*
- * Read int from @path and put it into @value.
+ * Read int from @format and put it into @value.
*
* Return -2 for non-existing file, -1 on other errors and 0 if everything went
* fine.
*/
int
-virFileReadValueInt(const char *path, int *value)
+virFileReadValueInt(int *value, const char *format, ...)
{
+ int ret = -1;
char *str = NULL;
+ char *path = NULL;
+ va_list ap;
- if (!virFileExists(path))
- return -2;
+ va_start(ap, format);
+ if (virVasprintf(&path, format, ap) < 0) {
+ va_end(ap);
+ goto cleanup;
+ }
+ va_end(ap);
- if (virFileReadAll(path, INT_STRLEN_BOUND(*value), &str) < 0)
- return -1;
+ if (!virFileExists(path)) {
+ ret = -2;
+ goto cleanup;
+ }
+
+ if (virFileReadAll(path, INT_BUFSIZE_BOUND(*value), &str) < 0)
+ goto cleanup;
virStringTrimOptionalNewline(str);
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Invalid integer value '%s' in file '%s'"),
str, path);
- return -1;
+ goto cleanup;
}
+ ret = 0;
+ cleanup:
+ VIR_FREE(path);
VIR_FREE(str);
-
- return 0;
+ return ret;
}
/**
* virFileReadValueUint:
- * @path: file to read from
- * @value: pointer to unsigned int to be filled in with the value
+ * @value: pointer to int to be filled in with the value
+ * @format, ...: file to read from
*
- * Read int from @path and put it into @value.
+ * Read unsigned int from @format and put it into @value.
*
* Return -2 for non-existing file, -1 on other errors and 0 if everything went
* fine.
*/
int
-virFileReadValueUint(const char *path, unsigned int *value)
+virFileReadValueUint(unsigned int *value, const char *format, ...)
{
+ int ret = -1;
char *str = NULL;
+ char *path = NULL;
+ va_list ap;
- if (!virFileExists(path))
- return -2;
+ va_start(ap, format);
+ if (virVasprintf(&path, format, ap) < 0) {
+ va_end(ap);
+ goto cleanup;
+ }
+ va_end(ap);
- if (virFileReadAll(path, INT_STRLEN_BOUND(*value), &str) < 0)
- return -1;
+ if (!virFileExists(path)) {
+ ret = -2;
+ goto cleanup;
+ }
+
+ if (virFileReadAll(path, INT_BUFSIZE_BOUND(*value), &str) < 0)
+ goto cleanup;
virStringTrimOptionalNewline(str);
- if (virStrToLong_uip(str, NULL, 10, value)) {
+ if (virStrToLong_uip(str, NULL, 10, value) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Invalid unsigned integer value '%s' in file '%s'"),
str, path);
- return -1;
+ goto cleanup;
}
+ ret = 0;
+ cleanup:
+ VIR_FREE(path);
VIR_FREE(str);
+ return ret;
+}
- return 0;
+
+/**
+ * virFileReadValueScaledInt:
+ * @value: pointer to unsigned long long int to be filled in with the value
+ * @format, ...: file to read from
+ *
+ * Read unsigned scaled int from @format and put it into @value.
+ *
+ * Return -2 for non-existing file, -1 on other errors and 0 if everything went
+ * fine.
+ */
+int
+virFileReadValueScaledInt(unsigned long long *value, const char *format, ...)
+{
+ int ret = -1;
+ char *str = NULL;
+ char *endp = NULL;
+ char *path = NULL;
+ va_list ap;
+
+ va_start(ap, format);
+ if (virVasprintf(&path, format, ap) < 0) {
+ va_end(ap);
+ goto cleanup;
+ }
+ va_end(ap);
+
+ if (!virFileExists(path)) {
+ ret = -2;
+ goto cleanup;
+ }
+
+ if (virFileReadAll(path, INT_BUFSIZE_BOUND(*value), &str) < 0)
+ goto cleanup;
+
+ virStringTrimOptionalNewline(str);
+
+ if (virStrToLong_ullp(str, &endp, 10, value) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Invalid unsigned scaled integer value '%s' in file '%s'"),
+ str, path);
+ goto cleanup;
+ }
+
+ ret = virScaleInteger(value, endp, 1024, ULLONG_MAX);
+ cleanup:
+ VIR_FREE(path);
+ VIR_FREE(str);
+ return ret;
}
+/* Arbitrarily sized number, feel free to change, but the function should be
+ * used for small, interface-like files, so it should not be huge (subjective) */
+#define VIR_FILE_READ_VALUE_STRING_MAX 4096
+
/**
* virFileReadValueBitmap:
- * @path: file to read from
- * @value: double pointer to virBitmap to be allocated and filled in with the
- * value
+ * @value: pointer to virBitmapPtr to be allocated and filled in with the value
+ * @format, ...: file to read from
*
- * Read int from @path and put it into @value.
+ * Read int from @format and put it into @value.
*
* Return -2 for non-existing file, -1 on other errors and 0 if everything went
* fine.
*/
int
-virFileReadValueBitmap(const char *path,
- int maxlen,
- virBitmapPtr *value)
+virFileReadValueBitmap(virBitmapPtr *value, const char *format, ...)
{
- char *buf = NULL;
int ret = -1;
+ char *str = NULL;
+ char *path = NULL;
+ va_list ap;
- if (!virFileExists(path))
- return -2;
+ va_start(ap, format);
+ if (virVasprintf(&path, format, ap) < 0) {
+ va_end(ap);
+ goto cleanup;
+ }
+ va_end(ap);
- if (virFileReadAll(path, maxlen, &buf) < 0)
+ if (!virFileExists(path)) {
+ ret = -2;
goto cleanup;
+ }
- virStringTrimOptionalNewline(buf);
+ if (virFileReadAll(path, VIR_FILE_READ_VALUE_STRING_MAX, &str) < 0)
+ goto cleanup;
- *value = virBitmapParseUnlimited(buf);
+ virStringTrimOptionalNewline(str);
+
+ *value = virBitmapParseUnlimited(str);
if (!*value)
goto cleanup;
ret = 0;
cleanup:
- VIR_FREE(buf);
+ VIR_FREE(path);
+ VIR_FREE(str);
+ return ret;
+}
+
+/**
+ * virFileReadValueString:
+ * @value: pointer to char * to be allocated and filled in with the value
+ * @format, ...: file to read from
+ *
+ * Read string from @format and put it into @value. Don't get this mixed with
+ * virFileReadAll(). This function is a wrapper over it with the behaviour
+ * aligned to other virFileReadValue* functions
+ *
+ * Return -2 for non-existing file, -1 on other errors and 0 if everything went
+ * fine.
+ */
+int
+virFileReadValueString(char **value, const char *format, ...)
+{
+ int ret = -1;
+ char *str = NULL;
+ char *path = NULL;
+ va_list ap;
+
+ va_start(ap, format);
+ if (virVasprintf(&path, format, ap) < 0) {
+ va_end(ap);
+ goto cleanup;
+ }
+ va_end(ap);
+
+ if (!virFileExists(path)) {
+ ret = -2;
+ goto cleanup;
+ }
+
+ ret = virFileReadAll(path, VIR_FILE_READ_VALUE_STRING_MAX, value);
+
+ if (*value)
+ virStringTrimOptionalNewline(*value);
+ cleanup:
+ VIR_FREE(path);
+ VIR_FREE(str);
return ret;
}
int virFileComparePaths(const char *p1, const char *p2);
-int virFileReadValueInt(const char *path, int *value);
-int virFileReadValueUint(const char *path, unsigned int *value);
-int virFileReadValueBitmap(const char *path, int maxlen, virBitmapPtr *value);
+int virFileReadValueInt(int *value, const char *format, ...)
+ ATTRIBUTE_FMT_PRINTF(2, 3);
+int virFileReadValueUint(unsigned int *value, const char *format, ...)
+ ATTRIBUTE_FMT_PRINTF(2, 3);
+int virFileReadValueBitmap(virBitmapPtr *value, const char *format, ...)
+ ATTRIBUTE_FMT_PRINTF(2, 3);
+int virFileReadValueScaledInt(unsigned long long *value, const char *format, ...)
+ ATTRIBUTE_FMT_PRINTF(2, 3);
+int virFileReadValueString(char **value, const char *format, ...)
+ ATTRIBUTE_FMT_PRINTF(2, 3);
+
#endif /* __VIR_FILE_H */
#include "virfile.h"
#include "virtypedparam.h"
#include "virstring.h"
-#include "virsysfs.h"
#include "virnuma.h"
#include "virlog.h"
#ifdef __linux__
# define CPUINFO_PATH "/proc/cpuinfo"
# define PROCSTAT_PATH "/proc/stat"
+# define SYSFS_SYSTEM_PATH "/sys/devices/system"
# define VIR_HOST_CPU_MASK_LEN 1024
# define LINUX_NB_CPU_STATS 4
char *str = NULL;
size_t i;
- rv = virSysfsGetCpuValueString(cpu, "topology/thread_siblings", &str);
+ rv = virFileReadValueString(&str,
+ "%s/cpu/cpu%u/topology/thread_siblings",
+ SYSFS_SYSTEM_PATH, cpu);
if (rv == -2) {
ret = 1;
goto cleanup;
virHostCPUGetSocket(unsigned int cpu, unsigned int *socket)
{
int tmp;
- int ret = virSysfsGetCpuValueInt(cpu,
- "topology/physical_package_id",
- &tmp);
+ int ret = virFileReadValueInt(&tmp,
+ "%s/cpu/cpu%u/topology/physical_package_id",
+ SYSFS_SYSTEM_PATH, cpu);
/* If the file is not there, it's 0 */
if (ret == -2)
int
virHostCPUGetCore(unsigned int cpu, unsigned int *core)
{
- int ret = virSysfsGetCpuValueUint(cpu, "topology/core_id", core);
+ int ret = virFileReadValueUint(core,
+ "%s/cpu/cpu%u/topology/core_id",
+ SYSFS_SYSTEM_PATH, cpu);
/* If the file is not there, it's 0 */
if (ret == -2)
virBitmapPtr ret = NULL;
int rv = -1;
- rv = virSysfsGetCpuValueBitmap(cpu, "topology/thread_siblings_list", &ret);
+ rv = virFileReadValueBitmap(&ret,
+ "%s/cpu/cpu%u/topology/thread_siblings_list",
+ SYSFS_SYSTEM_PATH, cpu);
if (rv == -2) {
/* If the file doesn't exist, the threadis its only sibling */
ret = virBitmapNew(cpu + 1);
/* OK, we've parsed clock speed out of /proc/cpuinfo. Get the
* core, node, socket, thread and topology information from /sys
*/
- if (virAsprintf(&sysfs_nodedir, "%s/node", virSysfsGetSystemPath()) < 0)
+ if (virAsprintf(&sysfs_nodedir, "%s/node", SYSFS_SYSTEM_PATH) < 0)
goto cleanup;
if (virDirOpenQuiet(&nodedir, sysfs_nodedir) < 0) {
(*nodes)++;
- if (virAsprintf(&sysfs_cpudir, "%s/node/%s",
- virSysfsGetSystemPath(), nodedirent->d_name) < 0)
+ if (virAsprintf(&sysfs_cpudir, "%s/node/%s", SYSFS_SYSTEM_PATH,
+ nodedirent->d_name) < 0)
goto cleanup;
if ((nodecpus = virHostCPUParseNode(sysfs_cpudir, arch,
fallback:
VIR_FREE(sysfs_cpudir);
- if (virAsprintf(&sysfs_cpudir, "%s/cpu", virSysfsGetSystemPath()) < 0)
+ if (virAsprintf(&sysfs_cpudir, "%s/cpu", SYSFS_SYSTEM_PATH) < 0)
goto cleanup;
if ((nodecpus = virHostCPUParseNode(sysfs_cpudir, arch,
char *tmp;
int ret = -1;
- if (virSysfsGetValueString("cpu/present", &str) < 0)
+ if (virFileReadValueString(&str, "%s/cpu/present", SYSFS_SYSTEM_PATH) < 0)
return -1;
tmp = str;
virHostCPUGetOnline(unsigned int cpu, bool *online)
{
unsigned int tmp = 0;
- int ret = virSysfsGetCpuValueUint(cpu, "online", &tmp);
-
+ int ret = virFileReadValueUint(&tmp,
+ "%s/cpu/cpu%u/online",
+ SYSFS_SYSTEM_PATH, cpu);
/* If the file is not there, it's online (doesn't support offlining) */
if (ret == -2)
#ifdef __linux__
virBitmapPtr ret = NULL;
- virSysfsGetValueBitmap("cpu/present", &ret);
+ virFileReadValueBitmap(&ret, "%s/cpu/present", SYSFS_SYSTEM_PATH);
return ret;
#else
#ifdef __linux__
virBitmapPtr ret = NULL;
- virSysfsGetValueBitmap("cpu/online", &ret);
+ virFileReadValueBitmap(&ret, "%s/cpu/online", SYSFS_SYSTEM_PATH);
return ret;
#else
+++ /dev/null
-/*
- * virsysfs.c: Helper functions for manipulating sysfs files
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- * Author: Martin Kletzander <mkletzan@redhat.com>
- */
-
-#include <config.h>
-
-#include "internal.h"
-
-#include "virsysfspriv.h"
-
-#include "viralloc.h"
-#include "virfile.h"
-#include "virlog.h"
-#include "virstring.h"
-
-#define VIR_FROM_THIS VIR_FROM_NONE
-
-VIR_LOG_INIT("util.sysfs");
-
-
-#define VIR_SYSFS_VALUE_MAXLEN 8192
-#define SYSFS_SYSTEM_PATH "/sys/devices/system"
-
-static const char *sysfs_system_path = SYSFS_SYSTEM_PATH;
-
-
-void virSysfsSetSystemPath(const char *path)
-{
- if (path)
- sysfs_system_path = path;
- else
- sysfs_system_path = SYSFS_SYSTEM_PATH;
-}
-
-
-const char *
-virSysfsGetSystemPath(void)
-{
- return sysfs_system_path;
-}
-
-int
-virSysfsGetValueInt(const char *file,
- int *value)
-{
- char *path = NULL;
- int ret = -1;
-
- if (virAsprintf(&path, "%s/%s", sysfs_system_path, file) < 0)
- return -1;
-
- ret = virFileReadValueInt(path, value);
-
- VIR_FREE(path);
- return ret;
-}
-
-int
-virSysfsGetValueString(const char *file,
- char **value)
-{
- char *path = NULL;
- int ret = -1;
-
- if (virAsprintf(&path, "%s/%s", sysfs_system_path, file) < 0)
- return -1;
-
- if (!virFileExists(path)) {
- ret = -2;
- goto cleanup;
- }
-
- if (virFileReadAll(path, VIR_SYSFS_VALUE_MAXLEN, value) < 0)
- goto cleanup;
-
- virStringTrimOptionalNewline(*value);
-
- ret = 0;
- cleanup:
- VIR_FREE(path);
- return ret;
-}
-
-int
-virSysfsGetValueBitmap(const char *file,
- virBitmapPtr *value)
-{
- char *path = NULL;
- int ret = -1;
-
- if (virAsprintf(&path, "%s/%s", sysfs_system_path, file) < 0)
- return -1;
-
- ret = virFileReadValueBitmap(path, VIR_SYSFS_VALUE_MAXLEN, value);
- VIR_FREE(path);
- return ret;
-}
-
-int
-virSysfsGetCpuValueInt(unsigned int cpu,
- const char *file,
- int *value)
-{
- char *path = NULL;
- int ret = -1;
-
- if (virAsprintf(&path, "%s/cpu/cpu%u/%s", sysfs_system_path, cpu, file) < 0)
- return -1;
-
- ret = virFileReadValueInt(path, value);
-
- VIR_FREE(path);
- return ret;
-}
-
-
-int
-virSysfsGetCpuValueUint(unsigned int cpu,
- const char *file,
- unsigned int *value)
-{
- char *path = NULL;
- int ret = -1;
-
- if (virAsprintf(&path, "%s/cpu/cpu%u/%s", sysfs_system_path, cpu, file) < 0)
- return -1;
-
- ret = virFileReadValueUint(path, value);
-
- VIR_FREE(path);
- return ret;
-}
-
-
-int
-virSysfsGetCpuValueString(unsigned int cpu,
- const char *file,
- char **value)
-{
- char *path = NULL;
- int ret = -1;
-
- if (virAsprintf(&path, "%s/cpu/cpu%u/%s", sysfs_system_path, cpu, file) < 0)
- return -1;
-
- if (!virFileExists(path)) {
- ret = -2;
- goto cleanup;
- }
-
- if (virFileReadAll(path, VIR_SYSFS_VALUE_MAXLEN, value) < 0)
- goto cleanup;
-
- ret = 0;
- cleanup:
- VIR_FREE(path);
- return ret;
-}
-
-int
-virSysfsGetCpuValueBitmap(unsigned int cpu,
- const char *file,
- virBitmapPtr *value)
-{
- char *path = NULL;
- int ret = -1;
-
- if (virAsprintf(&path, "%s/cpu/cpu%u/%s", sysfs_system_path, cpu, file) < 0)
- return -1;
-
- ret = virFileReadValueBitmap(path, VIR_SYSFS_VALUE_MAXLEN, value);
- VIR_FREE(path);
- return ret;
-}
-
-int
-virSysfsGetNodeValueString(unsigned int node,
- const char *file,
- char **value)
-{
- char *path = NULL;
- int ret = -1;
-
- if (virAsprintf(&path, "%s/node/node%u/%s", sysfs_system_path, node, file) < 0)
- return -1;
-
- if (!virFileExists(path)) {
- ret = -2;
- goto cleanup;
- }
-
- if (virFileReadAll(path, VIR_SYSFS_VALUE_MAXLEN, value) < 0)
- goto cleanup;
-
- ret = 0;
- cleanup:
- VIR_FREE(path);
- return ret;
-}
-
-int
-virSysfsGetNodeValueBitmap(unsigned int node,
- const char *file,
- virBitmapPtr *value)
-{
- char *path = NULL;
- int ret = -1;
-
- if (virAsprintf(&path, "%s/node/node%u/%s", sysfs_system_path, node, file) < 0)
- return -1;
-
- ret = virFileReadValueBitmap(path, VIR_SYSFS_VALUE_MAXLEN, value);
- VIR_FREE(path);
- return ret;
-}
+++ /dev/null
-/*
- * virsysfs.h: Helper functions for manipulating sysfs files
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- * Author: Martin Kletzander <mkletzan@redhat.com>
- */
-
-#ifndef __VIR_SYSFS_H__
-# define __VIR_SYSFS_H__
-
-# include "internal.h"
-# include "virbitmap.h"
-
-const char * virSysfsGetSystemPath(void);
-
-int
-virSysfsGetValueInt(const char *file,
- int *value);
-
-int
-virSysfsGetValueString(const char *file,
- char **value);
-
-int
-virSysfsGetValueBitmap(const char *file,
- virBitmapPtr *value);
-
-int
-virSysfsGetCpuValueInt(unsigned int cpu,
- const char *file,
- int *value);
-int
-virSysfsGetCpuValueUint(unsigned int cpu,
- const char *file,
- unsigned int *value);
-
-int
-virSysfsGetCpuValueString(unsigned int cpu,
- const char *file,
- char **value);
-
-int
-virSysfsGetCpuValueBitmap(unsigned int cpu,
- const char *file,
- virBitmapPtr *value);
-
-int
-virSysfsGetNodeValueString(unsigned int node,
- const char *file,
- char **value);
-
-int
-virSysfsGetNodeValueBitmap(unsigned int cpu,
- const char *file,
- virBitmapPtr *value);
-
-#endif /* __VIR_SYSFS_H__*/
+++ /dev/null
-/*
- * virsysfspriv.h: Helper functions for manipulating sysfs files
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- * Author: Martin Kletzander <mkletzan@redhat.com>
- */
-
-#ifndef __VIR_SYSFS_PRIV_H__
-# define __VIR_SYSFS_PRIV_H__
-
-# include "virsysfs.h"
-
-void virSysfsSetSystemPath(const char *path);
-
-#endif /* __VIR_SYSFS_PRIV_H__*/
virconftest_LDADD = $(LDADDS)
virhostcputest_SOURCES = \
- virhostcputest.c testutils.h testutils.c
+ virhostcputest.c testutils.h testutils.c virfilewrapper.c
virhostcputest_LDADD = $(LDADDS)
commandtest_SOURCES = \
if WITH_LINUX
vircaps2xmltest_SOURCES = \
- vircaps2xmltest.c testutils.h testutils.c
+ vircaps2xmltest.c testutils.h testutils.c virfilewrapper.c
vircaps2xmltest_LDADD = $(LDADDS)
virnumamock_la_SOURCES = \
virnumamock_la_CFLAGS = $(AM_CFLAGS)
virnumamock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
virnumamock_la_LIBADD = $(MOCKLIBS_LIBS)
+
else ! WITH_LINUX
EXTRA_DIST += vircaps2xmltest.c virnumamock.c virfilewrapper.c virfilewrapper.h
endif ! WITH_LINUX
#include "testutils.h"
#include "capabilities.h"
#include "virbitmap.h"
-#include "virsysfspriv.h"
+#include "virfilewrapper.h"
#define VIR_FROM_THIS VIR_FROM_NONE
abs_srcdir, data->filename) < 0)
goto cleanup;
- virSysfsSetSystemPath(dir);
+ virFileWrapperAddPrefix("/sys/devices/system", dir);
caps = virCapabilitiesNew(data->arch, data->offlineMigrate, data->liveMigrate);
if (!caps)
if (virCapabilitiesInitNUMA(caps) < 0)
goto cleanup;
- virSysfsSetSystemPath(NULL);
+ virFileWrapperClearPrefixes();
if (!(capsXML = virCapabilitiesFormatXML(caps)))
goto cleanup;
#include "testutils.h"
#include "internal.h"
#include "virhostcpupriv.h"
-#include "virsysfspriv.h"
#include "virfile.h"
#include "virstring.h"
+#include "virfilewrapper.h"
#define VIR_FROM_THIS VIR_FROM_NONE
+#define SYSFS_SYSTEM_PATH "/sys/devices/system"
+
#if !(defined __linux__)
int
goto cleanup;
}
- virSysfsSetSystemPath(sysfs_prefix);
+ virFileWrapperAddPrefix(SYSFS_SYSTEM_PATH, sysfs_prefix);
result = linuxTestCompareFiles(cpuinfo, data->arch, output);
- virSysfsSetSystemPath(NULL);
+ virFileWrapperRemovePrefix(SYSFS_SYSTEM_PATH);
cleanup:
VIR_FREE(cpuinfo);
/*
- * virnumamock.c: Mock some virNuma functions using virsysfs
+ * virnumamock.c: Mock some virNuma functions using sysfs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
#include "virfile.h"
#include "viralloc.h"
#include "virstring.h"
-#include "virsysfspriv.h"
#define VIR_FROM_THIS VIR_FROM_NONE
+#define SYSFS_SYSTEM_PATH "/sys/devices/system"
+
static int numa_avail = -1;
if (numa_avail < 0) {
char *sysfs_node_path = NULL;
- if (virAsprintfQuiet(&sysfs_node_path, "%s/node", virSysfsGetSystemPath()) < 0)
+ if (virAsprintfQuiet(&sysfs_node_path, "%s/node", SYSFS_SYSTEM_PATH) < 0)
return false;
numa_avail = virFileExists(sysfs_node_path);
int ret = -1;
virBitmapPtr map = NULL;
- if (virSysfsGetValueBitmap("node/online", &map) < 0)
+ if (virFileReadValueBitmap(&map, "%s/node/online", SYSFS_SYSTEM_PATH) < 0)
return -1;
ret = virBitmapLastSetBit(map);
bool ret = false;
virBitmapPtr map = NULL;
- if (virSysfsGetValueBitmap("node/online", &map) < 0)
+ if (virFileReadValueBitmap(&map, "%s/node/online", SYSFS_SYSTEM_PATH) < 0)
return false;
ret = virBitmapIsBitSet(map, node);
}
/*
- * TODO: Adapt virNumaGetHugePageInfo{Path,Dir} to use virsysfs so that the
+ * TODO: Adapt virNumaGetHugePageInfo{Path,Dir} to use sysfs so that the
* paths can be modified and this function can be thrown away and instead we'd
* have copied info from /sys (as we do with /sys/devices/system).
*/
int ret = -1;
char *cpulist = NULL;
- if (virSysfsGetNodeValueString(node, "cpulist", &cpulist) < 0)
+ if (virFileReadValueString(&cpulist,
+ "%s/node/node%u/cpulist",
+ SYSFS_SYSTEM_PATH, node) < 0)
return -1;
*cpus = virBitmapParseUnlimited(cpulist);