Implement fmt_human_2() and fmt_human_10()

These functions take the raw number and a unit and automatically
print it out "scaled down" to a proper SI-prefix, for powers of 2
and 10 respectively.

Apply them to the 2-power cases and keep the 10-power for a later
commit.
This commit is contained in:
Laslo Hunhold
2018-05-19 22:52:17 +02:00
committed by Aaron Marcher
parent 74c4f4ebda
commit 46c4540dd2
6 changed files with 61 additions and 32 deletions

View File

@ -25,9 +25,12 @@
if (pscanf(path, "%llu", &rxbytes) != 1) {
return NULL;
}
if (oldrxbytes == 0) {
return NULL;
}
return oldrxbytes ? fmt_scaled((rxbytes - oldrxbytes) *
1000 / interval) : NULL;
return fmt_human_2((rxbytes - oldrxbytes) *
1000 / interval, "B/s");
}
const char *
@ -48,9 +51,12 @@
if (pscanf(path, "%llu", &txbytes) != 1) {
return NULL;
}
if (oldtxbytes == 0) {
return NULL;
}
return oldtxbytes ? fmt_scaled((txbytes - oldtxbytes) *
1000 / interval) : NULL;
return fmt_human_2((txbytes - oldtxbytes) *
1000 / interval, "B/s");
}
#elif defined(__OpenBSD__)
#include <string.h>
@ -87,9 +93,12 @@
warn("reading 'if_data' failed");
return NULL;
}
if (oldrxbytes == 0) {
return NULL;
}
return oldrxbytes ? fmt_scaled((rxbytes - oldrxbytes) *
1000 / interval) : NULL;
return fmt_human_2((rxbytes - oldrxbytes) *
1000 / interval, "B/s");
}
const char *
@ -120,8 +129,11 @@
warn("reading 'if_data' failed");
return NULL;
}
if (oldtxbytes == 0) {
return NULL;
}
return oldtxbytes ? fmt_scaled((txbytes - oldtxbytes) *
1000 / interval) : NULL;
return fmt_human_2((txbytes - oldtxbytes) *
1000 / interval, "B/s");
}
#endif