extern int numeric;
extern bool do_all;
extern int echo_request;
+extern int use_iec;
#ifndef CONF_USR_DIR
#define CONF_USR_DIR "/usr/lib/iproute2"
int get_time64(__s64 *time, const char *str);
char *sprint_time(__u32 time, char *buf);
char *sprint_time64(__s64 time, char *buf);
+void print_num(FILE *fp, unsigned int width, uint64_t count);
int do_batch(const char *name, bool force,
int (*cmd)(int argc, char *argv[], void *user), void *user);
#endif
int preferred_family = AF_UNSPEC;
-int human_readable;
-int use_iec;
int show_stats;
int show_details;
int oneline;
#include "json_print.h"
-extern int use_iec;
-
struct link_filter {
int ifindex;
int family;
#define LABEL_MAX_MASK 0xFFFFFU
#endif
-void print_num(FILE *fp, unsigned int width, uint64_t count);
void print_rt_flags(FILE *fp, unsigned int flags);
void print_rta_ifidx(FILE *fp, __u32 ifidx, const char *prefix);
void __print_rta_gateway(FILE *fp, unsigned char family, const char *gateway);
va_end(args);
}
-void print_num(FILE *fp, unsigned int width, uint64_t count)
-{
- const char *prefix = "kMGTPE";
- const unsigned int base = use_iec ? 1024 : 1000;
- uint64_t powi = 1;
- uint16_t powj = 1;
- uint8_t precision = 2;
- char buf[64];
-
- if (!human_readable || count < base) {
- fprintf(fp, "%*"PRIu64" ", width, count);
- return;
- }
-
- /* increase value by a factor of 1000/1024 and print
- * if result is something a human can read
- */
- for (;;) {
- powi *= base;
- if (count / base < powi)
- break;
-
- if (!prefix[1])
- break;
- ++prefix;
- }
-
- /* try to guess a good number of digits for precision */
- for (; precision > 0; precision--) {
- powj *= 10;
- if (count / powi < powj)
- break;
- }
-
- snprintf(buf, sizeof(buf), "%.*f%c%s", precision,
- (double) count / powi, *prefix, use_iec ? "i" : "");
-
- fprintf(fp, "%*s ", width, buf);
-}
-
static void print_vf_stats64(FILE *fp, struct rtattr *vfstats)
{
struct rtattr *vf[IFLA_VF_STATS_MAX + 1];
#include <stdio.h>
#include <stdlib.h>
+#include <inttypes.h>
#include <math.h>
#include <unistd.h>
#include <fcntl.h>
int resolve_hosts;
int timestamp_short;
int pretty;
+int use_iec;
+int human_readable;
const char *_SL_ = "\n";
static int af_byte_len(int af);
return fopen(p, "r");
}
+
+void print_num(FILE *fp, unsigned int width, uint64_t count)
+{
+ const char *prefix = "kMGTPE";
+ const unsigned int base = use_iec ? 1024 : 1000;
+ uint64_t powi = 1;
+ uint16_t powj = 1;
+ uint8_t precision = 2;
+ char buf[64];
+
+ if (!human_readable || count < base) {
+ fprintf(fp, "%*"PRIu64" ", width, count);
+ return;
+ }
+
+ /* increase value by a factor of 1000/1024 and print
+ * if result is something a human can read
+ */
+ for (;;) {
+ powi *= base;
+ if (count / base < powi)
+ break;
+
+ if (!prefix[1])
+ break;
+ ++prefix;
+ }
+
+ /* try to guess a good number of digits for precision */
+ for (; precision > 0; precision--) {
+ powj *= 10;
+ if (count / powi < powj)
+ break;
+ }
+
+ snprintf(buf, sizeof(buf), "%.*f%c%s", precision,
+ (double) count / powi, *prefix, use_iec ? "i" : "");
+
+ fprintf(fp, "%*s ", width, buf);
+}
int timestamp;
int batch_mode;
-int use_iec;
int force;
bool use_names;
int json;
extern int show_graph;
extern bool use_names;
-extern int use_iec;