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@nokia-bell-labs.com>
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
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