[libvirt] [PATCH 10/14] xen: Move xenParseSxprVifRate to xen_common

Peter Krempa pkrempa at redhat.com
Wed Jul 3 12:38:02 UTC 2019


It's the only place where it's used.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/libvirt_xenconfig.syms |  1 -
 src/xenconfig/xen_common.c | 62 ++++++++++++++++++++++++++++++++++++++
 src/xenconfig/xen_sxpr.c   | 62 --------------------------------------
 src/xenconfig/xen_sxpr.h   |  2 --
 4 files changed, 62 insertions(+), 65 deletions(-)

diff --git a/src/libvirt_xenconfig.syms b/src/libvirt_xenconfig.syms
index 77701c14d9..603f1ce420 100644
--- a/src/libvirt_xenconfig.syms
+++ b/src/libvirt_xenconfig.syms
@@ -6,7 +6,6 @@
 xenGetDomIdFromSxpr;
 xenGetDomIdFromSxprString;
 xenParseSxprChar;
-xenParseSxprVifRate;

 # xenconfig/xen_xm.h
 xenFormatXM;
diff --git a/src/xenconfig/xen_common.c b/src/xenconfig/xen_common.c
index a8905ad049..8eaa64a4e9 100644
--- a/src/xenconfig/xen_common.c
+++ b/src/xenconfig/xen_common.c
@@ -24,6 +24,8 @@

 #include <config.h>

+#include <regex.h>
+
 #include "internal.h"
 #include "virerror.h"
 #include "virconf.h"
@@ -926,6 +928,66 @@ xenParseVifBridge(virDomainNetDefPtr net, char *bridge)
 }


+static const char *vif_bytes_per_sec_re = "^[0-9]+[GMK]?[Bb]/s$";
+
+static int
+xenParseSxprVifRate(const char *rate, unsigned long long *kbytes_per_sec)
+{
+    char *trate = NULL;
+    char *p;
+    regex_t rec;
+    int err;
+    char *suffix;
+    unsigned long long tmp;
+    int ret = -1;
+
+    if (VIR_STRDUP(trate, rate) < 0)
+        return -1;
+
+    p = strchr(trate, '@');
+    if (p != NULL)
+        *p = 0;
+
+    err = regcomp(&rec, vif_bytes_per_sec_re, REG_EXTENDED|REG_NOSUB);
+    if (err != 0) {
+        char error[100];
+        regerror(err, &rec, error, sizeof(error));
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("Failed to compile regular expression '%s': %s"),
+                       vif_bytes_per_sec_re, error);
+        goto cleanup;
+    }
+
+    if (regexec(&rec, trate, 0, NULL, 0)) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("Invalid rate '%s' specified"), rate);
+        goto cleanup;
+    }
+
+    if (virStrToLong_ull(rate, &suffix, 10, &tmp)) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("Failed to parse rate '%s'"), rate);
+        goto cleanup;
+    }
+
+    if (*suffix == 'G')
+       tmp *= 1024 * 1024;
+    else if (*suffix == 'M')
+       tmp *= 1024;
+
+    if (*suffix == 'b' || *(suffix + 1) == 'b')
+       tmp /= 8;
+
+    *kbytes_per_sec = tmp;
+    ret = 0;
+
+ cleanup:
+    regfree(&rec);
+    VIR_FREE(trate);
+    return ret;
+}
+
+
 static virDomainNetDefPtr
 xenParseVif(char *entry, const char *vif_typename)
 {
diff --git a/src/xenconfig/xen_sxpr.c b/src/xenconfig/xen_sxpr.c
index 8876350b8f..953909e7b4 100644
--- a/src/xenconfig/xen_sxpr.c
+++ b/src/xenconfig/xen_sxpr.c
@@ -22,8 +22,6 @@

 #include <config.h>

-#include <regex.h>
-
 #include "internal.h"
 #include "virerror.h"
 #include "virconf.h"
@@ -210,63 +208,3 @@ xenParseSxprChar(const char *value,
     virDomainChrDefFree(def);
     return NULL;
 }
-
-
-static const char *vif_bytes_per_sec_re = "^[0-9]+[GMK]?[Bb]/s$";
-
-int
-xenParseSxprVifRate(const char *rate, unsigned long long *kbytes_per_sec)
-{
-    char *trate = NULL;
-    char *p;
-    regex_t rec;
-    int err;
-    char *suffix;
-    unsigned long long tmp;
-    int ret = -1;
-
-    if (VIR_STRDUP(trate, rate) < 0)
-        return -1;
-
-    p = strchr(trate, '@');
-    if (p != NULL)
-        *p = 0;
-
-    err = regcomp(&rec, vif_bytes_per_sec_re, REG_EXTENDED|REG_NOSUB);
-    if (err != 0) {
-        char error[100];
-        regerror(err, &rec, error, sizeof(error));
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Failed to compile regular expression '%s': %s"),
-                       vif_bytes_per_sec_re, error);
-        goto cleanup;
-    }
-
-    if (regexec(&rec, trate, 0, NULL, 0)) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Invalid rate '%s' specified"), rate);
-        goto cleanup;
-    }
-
-    if (virStrToLong_ull(rate, &suffix, 10, &tmp)) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Failed to parse rate '%s'"), rate);
-        goto cleanup;
-    }
-
-    if (*suffix == 'G')
-       tmp *= 1024 * 1024;
-    else if (*suffix == 'M')
-       tmp *= 1024;
-
-    if (*suffix == 'b' || *(suffix + 1) == 'b')
-       tmp /= 8;
-
-    *kbytes_per_sec = tmp;
-    ret = 0;
-
- cleanup:
-    regfree(&rec);
-    VIR_FREE(trate);
-    return ret;
-}
diff --git a/src/xenconfig/xen_sxpr.h b/src/xenconfig/xen_sxpr.h
index 54dfcbb53d..f7112bc6ee 100644
--- a/src/xenconfig/xen_sxpr.h
+++ b/src/xenconfig/xen_sxpr.h
@@ -32,5 +32,3 @@ int xenGetDomIdFromSxprString(const char *sexpr, int *id);
 int xenGetDomIdFromSxpr(const struct sexpr *root, int *id);

 virDomainChrDefPtr xenParseSxprChar(const char *value, const char *tty);
-
-int xenParseSxprVifRate(const char *rate, unsigned long long *kbytes_per_sec);
-- 
2.21.0




More information about the libvir-list mailing list