114 lines
3.2 KiB
Diff
114 lines
3.2 KiB
Diff
From 5b17171ce7363e597009e07fb143522a2d79c77b Mon Sep 17 00:00:00 2001
|
|
From: Andrea Claudi <aclaudi@redhat.com>
|
|
Date: Fri, 28 Jun 2019 18:03:45 +0200
|
|
Subject: [PATCH] utils: move parse_percent() to tc_util
|
|
|
|
As parse_percent() is used only in tc.
|
|
|
|
This reduces ip, bridge and genl binaries size:
|
|
|
|
$ bloat-o-meter -t bridge/bridge bridge/bridge.new
|
|
add/remove: 0/1 grow/shrink: 0/0 up/down: 0/-109 (-109)
|
|
Total: Before=50973, After=50864, chg -0.21%
|
|
|
|
$ bloat-o-meter -t genl/genl genl/genl.new
|
|
add/remove: 0/1 grow/shrink: 0/0 up/down: 0/-109 (-109)
|
|
Total: Before=30298, After=30189, chg -0.36%
|
|
|
|
$ bloat-o-meter ip/ip ip/ip.new
|
|
add/remove: 0/1 grow/shrink: 0/0 up/down: 0/-109 (-109)
|
|
Total: Before=674164, After=674055, chg -0.02%
|
|
|
|
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
|
|
Signed-off-by: David Ahern <dsahern@gmail.com>
|
|
(cherry picked from commit 1e5746d5e13d895b63da954f0290cffbb076cefa)
|
|
Signed-off-by: Phil Sutter <psutter@redhat.com>
|
|
---
|
|
include/utils.h | 1 -
|
|
lib/utils.c | 16 ----------------
|
|
tc/tc_util.c | 16 ++++++++++++++++
|
|
tc/tc_util.h | 1 +
|
|
4 files changed, 17 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/include/utils.h b/include/utils.h
|
|
index 927fdc17e09dd..f9a4916b517ab 100644
|
|
--- a/include/utils.h
|
|
+++ b/include/utils.h
|
|
@@ -145,7 +145,6 @@ int get_addr_rta(inet_prefix *dst, const struct rtattr *rta, int family);
|
|
int get_addr_ila(__u64 *val, const char *arg);
|
|
|
|
int read_prop(const char *dev, char *prop, long *value);
|
|
-int parse_percent(double *val, const char *str);
|
|
int get_hex(char c);
|
|
int get_integer(int *val, const char *arg, int base);
|
|
int get_unsigned(unsigned *val, const char *arg, int base);
|
|
diff --git a/lib/utils.c b/lib/utils.c
|
|
index be0f11b00280d..5da9a47848966 100644
|
|
--- a/lib/utils.c
|
|
+++ b/lib/utils.c
|
|
@@ -101,22 +101,6 @@ out:
|
|
return -1;
|
|
}
|
|
|
|
-/* Parse a percent e.g: '30%'
|
|
- * return: 0 = ok, -1 = error, 1 = out of range
|
|
- */
|
|
-int parse_percent(double *val, const char *str)
|
|
-{
|
|
- char *p;
|
|
-
|
|
- *val = strtod(str, &p) / 100.;
|
|
- if (*val == HUGE_VALF || *val == HUGE_VALL)
|
|
- return 1;
|
|
- if (*p && strcmp(p, "%"))
|
|
- return -1;
|
|
-
|
|
- return 0;
|
|
-}
|
|
-
|
|
int get_hex(char c)
|
|
{
|
|
if (c >= 'A' && c <= 'F')
|
|
diff --git a/tc/tc_util.c b/tc/tc_util.c
|
|
index e5d15281581df..53d15e08e9734 100644
|
|
--- a/tc/tc_util.c
|
|
+++ b/tc/tc_util.c
|
|
@@ -190,6 +190,22 @@ static const struct rate_suffix {
|
|
{ NULL }
|
|
};
|
|
|
|
+/* Parse a percent e.g: '30%'
|
|
+ * return: 0 = ok, -1 = error, 1 = out of range
|
|
+ */
|
|
+int parse_percent(double *val, const char *str)
|
|
+{
|
|
+ char *p;
|
|
+
|
|
+ *val = strtod(str, &p) / 100.;
|
|
+ if (*val == HUGE_VALF || *val == HUGE_VALL)
|
|
+ return 1;
|
|
+ if (*p && strcmp(p, "%"))
|
|
+ return -1;
|
|
+
|
|
+ return 0;
|
|
+}
|
|
+
|
|
static int parse_percent_rate(char *rate, size_t len,
|
|
const char *str, const char *dev)
|
|
{
|
|
diff --git a/tc/tc_util.h b/tc/tc_util.h
|
|
index 825fea36a0809..eb4b60db3fdd7 100644
|
|
--- a/tc/tc_util.h
|
|
+++ b/tc/tc_util.h
|
|
@@ -101,6 +101,7 @@ int print_tc_classid(char *buf, int len, __u32 h);
|
|
char *sprint_tc_classid(__u32 h, char *buf);
|
|
|
|
int tc_print_police(FILE *f, struct rtattr *tb);
|
|
+int parse_percent(double *val, const char *str);
|
|
int parse_police(int *argc_p, char ***argv_p, int tca_id, struct nlmsghdr *n);
|
|
|
|
int parse_action_control(int *argc_p, char ***argv_p,
|
|
--
|
|
2.22.0
|
|
|