add -iec flag, and since all print functions return 0, change to just

void.

(Logical change 1.40)
This commit is contained in:
osdl.net!shemminger 2004-06-28 20:42:59 +00:00
parent 3ea2bf45b0
commit d40b38b4d8
1 changed files with 29 additions and 27 deletions

View File

@ -166,24 +166,34 @@ int get_rate_and_cell(unsigned *rate, int *cell_log, char *str)
return 0; return 0;
} }
void print_rate(char *buf, int len, __u32 rate)
int print_rate(char *buf, int len, __u32 rate)
{ {
double tmp = (double)rate*8; double tmp = (double)rate*8;
extern int use_iec;
if (tmp >= 999999 && fabs(1000000.*rint(tmp/1000000.) - tmp) < 1000) if (use_iec) {
snprintf(buf, len, "%gmbit", rint(tmp/1000000.)); if (tmp >= 1024*1023 &&
else if (tmp >= 990 && fabs(1000.*rint(tmp/1000.) - tmp) < 10) fabs(1024*1024*rint(tmp/(1024*1024)) - tmp) < 1024)
snprintf(buf, len, "%gkbit", rint(tmp/1000.)); snprintf(buf, len, "%gMibps", rint(tmp/(1024*1024)));
else else if (tmp >= 1024-16 && fabs(1024*rint(tmp/1024) - tmp) < 16)
snprintf(buf, len, "%ubit", rate); snprintf(buf, len, "%gKibps", rint(tmp/1024));
return 0; 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) char * sprint_rate(__u32 rate, char *buf)
{ {
if (print_rate(buf, SPRINT_BSIZE-1, rate)) print_rate(buf, SPRINT_BSIZE-1, rate);
strcpy(buf, "???");
return buf; 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; double tmp = usec;
@ -225,13 +235,11 @@ int print_usecs(char *buf, int len, __u32 usec)
snprintf(buf, len, "%.1fms", tmp/1000); snprintf(buf, len, "%.1fms", tmp/1000);
else else
snprintf(buf, len, "%uus", usec); snprintf(buf, len, "%uus", usec);
return 0;
} }
char * sprint_usecs(__u32 usecs, char *buf) char * sprint_usecs(__u32 usecs, char *buf)
{ {
if (print_usecs(buf, SPRINT_BSIZE-1, usecs)) print_usecs(buf, SPRINT_BSIZE-1, usecs);
strcpy(buf, "???");
return buf; return buf;
} }
@ -294,7 +302,7 @@ int get_size_and_cell(unsigned *size, int *cell_log, char *str)
return 0; return 0;
} }
int print_size(char *buf, int len, __u32 sz) void print_size(char *buf, int len, __u32 sz)
{ {
double tmp = sz; double tmp = sz;
@ -304,13 +312,11 @@ int print_size(char *buf, int len, __u32 sz)
snprintf(buf, len, "%gKb", rint(tmp/1024)); snprintf(buf, len, "%gKb", rint(tmp/1024));
else else
snprintf(buf, len, "%ub", sz); snprintf(buf, len, "%ub", sz);
return 0;
} }
char * sprint_size(__u32 size, char *buf) char * sprint_size(__u32 size, char *buf)
{ {
if (print_size(buf, SPRINT_BSIZE-1, size)) print_size(buf, SPRINT_BSIZE-1, size);
strcpy(buf, "???");
return buf; return buf;
} }
@ -330,29 +336,25 @@ int get_percent(__u32 *percent, const char *str)
return 0; 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); snprintf(buf, len, "%g%%", (double) per / percent_scale);
return 0;
} }
char * sprint_percent(__u32 per, char *buf) char * sprint_percent(__u32 per, char *buf)
{ {
if (print_percent(buf, SPRINT_BSIZE-1, per)) print_percent(buf, SPRINT_BSIZE-1, per);
strcpy(buf, "???");
return buf; 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); snprintf(buf, len, "%x:", TC_H_MAJ(h)>>16);
return 0;
} }
char * sprint_qdisc_handle(__u32 h, char *buf) char * sprint_qdisc_handle(__u32 h, char *buf)
{ {
if (print_qdisc_handle(buf, SPRINT_BSIZE-1, h)) print_qdisc_handle(buf, SPRINT_BSIZE-1, h);
strcpy(buf, "???");
return buf; return buf;
} }