From: osdl.net!shemminger Date: Mon, 28 Jun 2004 20:42:59 +0000 (+0000) Subject: add -iec flag, and since all print functions return 0, change to just X-Git-Tag: v4.13.0~2402 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=d40b38b4d8566f020af89990d51112432b7b1834;p=mirror_iproute2.git add -iec flag, and since all print functions return 0, change to just void. (Logical change 1.40) --- diff --git a/tc/tc_util.c b/tc/tc_util.c index 7b52ea15..876f1d01 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -166,24 +166,34 @@ int get_rate_and_cell(unsigned *rate, int *cell_log, char *str) return 0; } - -int print_rate(char *buf, int len, __u32 rate) +void print_rate(char *buf, int len, __u32 rate) { double tmp = (double)rate*8; - - if (tmp >= 999999 && fabs(1000000.*rint(tmp/1000000.) - tmp) < 1000) - snprintf(buf, len, "%gmbit", rint(tmp/1000000.)); - else if (tmp >= 990 && fabs(1000.*rint(tmp/1000.) - tmp) < 10) - snprintf(buf, len, "%gkbit", rint(tmp/1000.)); - else - snprintf(buf, len, "%ubit", rate); - return 0; + extern int use_iec; + + if (use_iec) { + if (tmp >= 1024*1023 && + fabs(1024*1024*rint(tmp/(1024*1024)) - tmp) < 1024) + snprintf(buf, len, "%gMibps", rint(tmp/(1024*1024))); + else if (tmp >= 1024-16 && fabs(1024*rint(tmp/1024) - tmp) < 16) + snprintf(buf, len, "%gKibps", rint(tmp/1024)); + else + snprintf(buf, len, "%ubps", rate); + + } else { + if (tmp >= 999999 && + fabs(1000000.*rint(tmp/1000000.) - tmp) < 1000) + snprintf(buf, len, "%gMbit", rint(tmp/1000000.)); + else if (tmp >= 990 && fabs(1000.*rint(tmp/1000.) - tmp) < 10) + snprintf(buf, len, "%gKbit", rint(tmp/1000.)); + else + snprintf(buf, len, "%ubit", rate); + } } char * sprint_rate(__u32 rate, char *buf) { - if (print_rate(buf, SPRINT_BSIZE-1, rate)) - strcpy(buf, "???"); + print_rate(buf, SPRINT_BSIZE-1, rate); return buf; } @@ -215,7 +225,7 @@ int get_usecs(unsigned *usecs, const char *str) } -int print_usecs(char *buf, int len, __u32 usec) +void print_usecs(char *buf, int len, __u32 usec) { double tmp = usec; @@ -225,13 +235,11 @@ int print_usecs(char *buf, int len, __u32 usec) snprintf(buf, len, "%.1fms", tmp/1000); else snprintf(buf, len, "%uus", usec); - return 0; } char * sprint_usecs(__u32 usecs, char *buf) { - if (print_usecs(buf, SPRINT_BSIZE-1, usecs)) - strcpy(buf, "???"); + print_usecs(buf, SPRINT_BSIZE-1, usecs); return buf; } @@ -294,7 +302,7 @@ int get_size_and_cell(unsigned *size, int *cell_log, char *str) return 0; } -int print_size(char *buf, int len, __u32 sz) +void print_size(char *buf, int len, __u32 sz) { double tmp = sz; @@ -304,13 +312,11 @@ int print_size(char *buf, int len, __u32 sz) snprintf(buf, len, "%gKb", rint(tmp/1024)); else snprintf(buf, len, "%ub", sz); - return 0; } char * sprint_size(__u32 size, char *buf) { - if (print_size(buf, SPRINT_BSIZE-1, size)) - strcpy(buf, "???"); + print_size(buf, SPRINT_BSIZE-1, size); return buf; } @@ -330,29 +336,25 @@ int get_percent(__u32 *percent, const char *str) return 0; } -int print_percent(char *buf, int len, __u32 per) +void print_percent(char *buf, int len, __u32 per) { snprintf(buf, len, "%g%%", (double) per / percent_scale); - return 0; } char * sprint_percent(__u32 per, char *buf) { - if (print_percent(buf, SPRINT_BSIZE-1, per)) - strcpy(buf, "???"); + print_percent(buf, SPRINT_BSIZE-1, per); return buf; } -int print_qdisc_handle(char *buf, int len, __u32 h) +void print_qdisc_handle(char *buf, int len, __u32 h) { snprintf(buf, len, "%x:", TC_H_MAJ(h)>>16); - return 0; } char * sprint_qdisc_handle(__u32 h, char *buf) { - if (print_qdisc_handle(buf, SPRINT_BSIZE-1, h)) - strcpy(buf, "???"); + print_qdisc_handle(buf, SPRINT_BSIZE-1, h); return buf; }