[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250804122019.57829-3-chia-yu.chang@nokia-bell-labs.com>
Date: Mon, 4 Aug 2025 14:20:18 +0200
From: chia-yu.chang@...ia-bell-labs.com
To: dsahern@...nel.org,
alok.a.tiwari@...cle.com,
donald.hunter@...il.com,
xandfury@...il.com,
netdev@...r.kernel.org,
dave.taht@...il.com,
pabeni@...hat.com,
jhs@...atatu.com,
kuba@...nel.org,
stephen@...workplumber.org,
xiyou.wangcong@...il.com,
jiri@...nulli.us,
davem@...emloft.net,
edumazet@...gle.com,
horms@...nel.org,
andrew+netdev@...n.ch,
ast@...erby.net,
liuhangbin@...il.com,
shuah@...nel.org,
linux-kselftest@...r.kernel.org,
ij@...nel.org,
ncardwell@...gle.com,
koen.de_schepper@...ia-bell-labs.com,
g.white@...lelabs.com,
ingemar.s.johansson@...csson.com,
mirja.kuehlewind@...csson.com,
cheshire@...le.com,
rs.ietf@....at,
Jason_Livingood@...cast.com,
vidhi_goel@...le.com
Cc: Chia-Yu Chang <chia-yu.chang@...ia-bell-labs.com>
Subject: [PATCH v12 iproute2-next 2/3] Add get_float_min_max() in lib/utils.c
From: Chia-Yu Chang <chia-yu.chang@...ia-bell-labs.com>
get_float_min_max() is based on get_float() and does an additional
check within the range strictly between the minimum and maximum values.
Signed-off-by: Chia-Yu Chang <chia-yu.chang@...ia-bell-labs.com>
---
include/utils.h | 1 +
lib/utils.c | 16 ++++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/include/utils.h b/include/utils.h
index 9a8b8026..91e6e31f 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -147,6 +147,7 @@ int get_long(long *val, const char *arg, int base);
int get_integer(int *val, const char *arg, int base);
int get_unsigned(unsigned *val, const char *arg, int base);
int get_float(float *val, const char *arg);
+int get_float_min_max(float *val, const char *arg, float min, float max);
int get_time_rtt(unsigned *val, const char *arg, int *raw);
#define get_byte get_u8
#define get_ushort get_u16
diff --git a/lib/utils.c b/lib/utils.c
index 103e4875..dd242d4d 100644
--- a/lib/utils.c
+++ b/lib/utils.c
@@ -234,6 +234,22 @@ int get_float(float *val, const char *arg)
return 0;
}
+int get_float_min_max(float *val, const char *arg, float min, float max)
+{
+ float res;
+ char *ptr;
+
+ if (!arg || !*arg)
+ return -1;
+ res = strtof(arg, &ptr);
+ if (!ptr || ptr == arg || *ptr)
+ return -1;
+ if (res < min || res > max)
+ return -1;
+ *val = res;
+ return 0;
+}
+
/*
* get_time_rtt is "translated" from a similar routine "get_time" in
* tc_util.c. We don't use the exact same routine because tc passes
--
2.34.1
Powered by blists - more mailing lists