int get_rate(unsigned int *rate, const char *str);
int get_rate64(__u64 *rate, const char *str);
int get_size(unsigned int *size, const char *str);
+int get_size64(__u64 *size, const char *str);
int hex2mem(const char *buf, uint8_t *mem, int count);
char *hexstring_n2a(const __u8 *str, int len, char *buf, int blen);
return 0;
}
-int get_size(unsigned int *size, const char *str)
+int get_size64(__u64 *size, const char *str)
{
double sz;
char *p;
return 0;
}
+
+int get_size(unsigned int *size, const char *str)
+{
+ __u64 sz64;
+ int rv;
+
+ rv = get_size64(&sz64, str);
+ *size = sz64;
+
+ if (rv)
+ return rv;
+
+ if (sz64 > UINT_MAX)
+ return -1;
+
+ return 0;
+}
print_rate(use_iec, t, key, fmt, rate);
}
-int get_size_and_cell(unsigned int *size, int *cell_log, char *str)
+int get_size64_and_cell(__u64 *size, int *cell_log, char *str)
{
char *slash = strchr(str, '/');
if (slash)
*slash = 0;
- if (get_size(size, str))
+ if (get_size64(size, str))
return -1;
if (slash) {
return 0;
}
+int get_size_and_cell(unsigned int *size, int *cell_log, char *str)
+{
+ __u64 size64;
+ int rv;
+
+ rv = get_size64_and_cell(&size64, cell_log, str);
+ if (rv)
+ return rv;
+
+ if (size64 > UINT32_MAX)
+ return -1;
+
+ *size = size64;
+
+ return 0;
+}
+
void print_devname(enum output_type type, int ifindex)
{
const char *ifname = ll_index_to_name(ifindex);
int get_percent_rate(unsigned int *rate, const char *str, const char *dev);
int get_percent_rate64(__u64 *rate, const char *str, const char *dev);
int get_size_and_cell(unsigned int *size, int *cell_log, char *str);
+int get_size64_and_cell(__u64 *size, int *cell_log, char *str);
int get_linklayer(unsigned int *val, const char *arg);
void tc_print_rate(enum output_type t, const char *key, const char *fmt,