Rename linuxDomainInterfaceStats to virNetInterfaceStats in order to allow adding platform specific implementations without making consumer worrying about specific implementation to be used. Also, rename util/virstatslinux.c to util/virstats.c so placing other platform specific implementations into this file don't look unexpected from the file name. --- po/POTFILES.in | 2 +- src/Makefile.am | 2 +- src/libvirt_linux.syms | 3 --- src/libvirt_private.syms | 2 ++ src/lxc/lxc_driver.c | 4 +-- src/openvz/openvz_driver.c | 4 +-- src/qemu/qemu_driver.c | 16 ++---------- src/uml/uml_driver.c | 2 +- src/util/{virstatslinux.c => virstats.c} | 44 ++++++++++++++++++-------------- src/util/{virstatslinux.h => virstats.h} | 12 +++------ src/xen/xen_hypervisor.c | 4 +-- tests/statstest.c | 2 +- 12 files changed, 43 insertions(+), 54 deletions(-) rename src/util/{virstatslinux.c => virstats.c} (82%) rename src/util/{virstatslinux.h => virstats.h} (77%) diff --git a/po/POTFILES.in b/po/POTFILES.in index 64a987e..fd4b56e 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -198,7 +198,7 @@ src/util/virrandom.c src/util/virsexpr.c src/util/virscsi.c src/util/virsocketaddr.c -src/util/virstatslinux.c +src/util/virstats.c src/util/virstorageencryption.c src/util/virstoragefile.c src/util/virstring.c diff --git a/src/Makefile.am b/src/Makefile.am index e2f76a7..a40e63f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -149,7 +149,7 @@ UTIL_SOURCES = \ util/virseclabel.c util/virseclabel.h \ util/virsexpr.c util/virsexpr.h \ util/virsocketaddr.h util/virsocketaddr.c \ - util/virstatslinux.c util/virstatslinux.h \ + util/virstats.c util/virstats.h \ util/virstorageencryption.c util/virstorageencryption.h \ util/virstoragefile.c util/virstoragefile.h \ util/virstring.h util/virstring.c \ diff --git a/src/libvirt_linux.syms b/src/libvirt_linux.syms index b3b2384..1a7f263 100644 --- a/src/libvirt_linux.syms +++ b/src/libvirt_linux.syms @@ -6,9 +6,6 @@ linuxNodeGetCPUStats; linuxNodeInfoCPUPopulate; -# util/virstatslinux.h -linuxDomainInterfaceStats; - # Let emacs know we want case-insensitive sorting # Local Variables: # sort-fold-case: t diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 29e9db9..1aca260 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1880,6 +1880,8 @@ virSocketAddrPrefixToNetmask; virSocketAddrSetIPv4Addr; virSocketAddrSetPort; +# util/virstats.h +virNetInterfaceStats; # util/virstorageencryption.h virStorageEncryptionFormat; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index fce16f2..fe1e555 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -51,7 +51,7 @@ #include "virnetdevveth.h" #include "nodeinfo.h" #include "viruuid.h" -#include "virstatslinux.h" +#include "virstats.h" #include "virhook.h" #include "virfile.h" #include "virpidfile.h" @@ -3092,7 +3092,7 @@ lxcDomainInterfaceStats(virDomainPtr dom, } if (ret == 0) - ret = linuxDomainInterfaceStats(path, stats); + ret = virNetInterfaceStats(path, stats); else virReportError(VIR_ERR_INVALID_ARG, _("Invalid path, '%s' is not a known interface"), path); diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index baa7256..851ed30 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -56,7 +56,7 @@ #include "virlog.h" #include "vircommand.h" #include "viruri.h" -#include "virstatslinux.h" +#include "virstats.h" #include "virstring.h" #define VIR_FROM_THIS VIR_FROM_OPENVZ @@ -2010,7 +2010,7 @@ openvzDomainInterfaceStats(virDomainPtr dom, } if (ret == 0) - ret = linuxDomainInterfaceStats(path, stats); + ret = virNetInterfaceStats(path, stats); else virReportError(VIR_ERR_INVALID_ARG, _("invalid path, '%s' is not a known interface"), path); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 2d1aa9e..027a7ef 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -61,7 +61,7 @@ #include "datatypes.h" #include "virbuffer.h" #include "nodeinfo.h" -#include "virstatslinux.h" +#include "virstats.h" #include "capabilities.h" #include "viralloc.h" #include "viruuid.h" @@ -9760,7 +9760,6 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, return ret; } -#ifdef __linux__ static int qemuDomainInterfaceStats(virDomainPtr dom, const char *path, @@ -9792,7 +9791,7 @@ qemuDomainInterfaceStats(virDomainPtr dom, } if (ret == 0) - ret = linuxDomainInterfaceStats(path, stats); + ret = virNetInterfaceStats(path, stats); else virReportError(VIR_ERR_INVALID_ARG, _("invalid path, '%s' is not a known interface"), path); @@ -9802,17 +9801,6 @@ qemuDomainInterfaceStats(virDomainPtr dom, virObjectUnlock(vm); return ret; } -#else -static int -qemuDomainInterfaceStats(virDomainPtr dom ATTRIBUTE_UNUSED, - const char *path ATTRIBUTE_UNUSED, - struct _virDomainInterfaceStats *stats ATTRIBUTE_UNUSED) -{ - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("interface stats not implemented on this platform")); - return -1; -} -#endif static int qemuDomainSetInterfaceParameters(virDomainPtr dom, diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 62d1afe..7039afc 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -47,7 +47,7 @@ #include "uml_conf.h" #include "virbuffer.h" #include "nodeinfo.h" -#include "virstatslinux.h" +#include "virstats.h" #include "capabilities.h" #include "viralloc.h" #include "viruuid.h" diff --git a/src/util/virstatslinux.c b/src/util/virstats.c similarity index 82% rename from src/util/virstatslinux.c rename to src/util/virstats.c index 60b72dc..17ef5b6 100644 --- a/src/util/virstatslinux.c +++ b/src/util/virstats.c @@ -1,5 +1,5 @@ /* - * virstatslinux.c: Linux block and network stats. + * virstats.c: Block and network stats. * * Copyright (C) 2007-2010 Red Hat, Inc. * @@ -22,23 +22,20 @@ #include <config.h> -/* This file only applies on Linux. */ -#ifdef __linux__ - -# include <stdio.h> -# include <stdlib.h> -# include <fcntl.h> -# include <string.h> -# include <unistd.h> -# include <regex.h> +#include <stdio.h> +#include <stdlib.h> +#include <fcntl.h> +#include <string.h> +#include <unistd.h> +#include <regex.h> -# include "virerror.h" -# include "datatypes.h" -# include "virstatslinux.h" -# include "viralloc.h" -# include "virfile.h" +#include "virerror.h" +#include "datatypes.h" +#include "virstats.h" +#include "viralloc.h" +#include "virfile.h" -# define VIR_FROM_THIS VIR_FROM_STATS_LINUX +#define VIR_FROM_THIS VIR_FROM_STATS_LINUX /*-------------------- interface stats --------------------*/ @@ -46,10 +43,10 @@ * NB. Caller must check that libvirt user is trying to query * the interface of a domain they own. We do no such checking. */ - +#ifdef __linux__ int -linuxDomainInterfaceStats(const char *path, - struct _virDomainInterfaceStats *stats) +virNetInterfaceStats(const char *path, + struct _virDomainInterfaceStats *stats) { int path_len; FILE *fp; @@ -117,5 +114,14 @@ linuxDomainInterfaceStats(const char *path, _("/proc/net/dev: Interface not found")); return -1; } +#else +int +virNetInterfaceStats(const char *path ATTRIBUTE_UNUSED, + struct _virDomainInterfaceStats *stats ATTRIBUTE_UNUSED) +{ + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("interface stats not implemented on this platform")); + return -1; +} #endif /* __linux__ */ diff --git a/src/util/virstatslinux.h b/src/util/virstats.h similarity index 77% rename from src/util/virstatslinux.h rename to src/util/virstats.h index d5900ed..9724d8e 100644 --- a/src/util/virstatslinux.h +++ b/src/util/virstats.h @@ -1,5 +1,5 @@ /* - * virstatslinux.h: Linux block and network stats. + * virstats.h: Block and network stats. * * Copyright (C) 2007 Red Hat, Inc. * @@ -23,13 +23,9 @@ #ifndef __STATS_LINUX_H__ # define __STATS_LINUX_H__ -# ifdef __linux__ +# include "internal.h" -# include "internal.h" - -extern int linuxDomainInterfaceStats(const char *path, - struct _virDomainInterfaceStats *stats); - -# endif /* __linux__ */ +extern int virNetInterfaceStats(const char *path, + struct _virDomainInterfaceStats *stats); #endif /* __STATS_LINUX_H__ */ diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c index 524b21f..af24e2e 100644 --- a/src/xen/xen_hypervisor.c +++ b/src/xen/xen_hypervisor.c @@ -68,7 +68,7 @@ #include "xen_driver.h" #include "xen_hypervisor.h" #include "xs_internal.h" -#include "virstatslinux.h" +#include "virstats.h" #include "block_stats.h" #include "xend_internal.h" #include "virbuffer.h" @@ -1470,7 +1470,7 @@ xenHypervisorDomainInterfaceStats(virDomainDefPtr def, return -1; } - return linuxDomainInterfaceStats(path, stats); + return virNetInterfaceStats(path, stats); #else virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("/proc/net/dev: Interface not found")); diff --git a/tests/statstest.c b/tests/statstest.c index ce1567c..f9b4573 100644 --- a/tests/statstest.c +++ b/tests/statstest.c @@ -5,7 +5,7 @@ #include <string.h> #include <sys/utsname.h> -#include "virstatslinux.h" +#include "virstats.h" #include "internal.h" #include "xen/block_stats.h" #include "testutils.h" -- 1.9.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list