From 031a72de7dc0a4394f0bc6305c79631174cc272d Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Mon, 5 Dec 2016 15:08:27 +0100 Subject: [PATCH] T: new function 'bps' This function is used to print rates (say '1kb/s' or '16Mb/s'). --- common/utils/T/tracer/utils.c | 11 +++++++++++ common/utils/T/tracer/utils.h | 1 + 2 files changed, 12 insertions(+) diff --git a/common/utils/T/tracer/utils.c b/common/utils/T/tracer/utils.c index a22e0a0565..5071546735 100644 --- a/common/utils/T/tracer/utils.c +++ b/common/utils/T/tracer/utils.c @@ -7,6 +7,7 @@ #include <ctype.h> #include <netinet/in.h> #include <arpa/inet.h> +#include <math.h> void new_thread(void *(*f)(void *), void *data) { @@ -36,6 +37,16 @@ void sleepms(int ms) if (nanosleep(&t, NULL)) abort(); } +void bps(char *out, float v, char *suffix) +{ + static char *bps_unit[4] = { "", "k", "M", "G" }; + int flog; + if (v < 1000) flog = 0; else flog = floor(floor(log10(v)) / 3); + if (flog > 3) flog = 3; + v /= pow(10, flog*3); + sprintf(out, "%g%s%s", round(v*100)/100, bps_unit[flog], suffix); +} + /****************************************************************************/ /* list */ /****************************************************************************/ diff --git a/common/utils/T/tracer/utils.h b/common/utils/T/tracer/utils.h index 086e92b5dc..3be6cfe1a7 100644 --- a/common/utils/T/tracer/utils.h +++ b/common/utils/T/tracer/utils.h @@ -3,6 +3,7 @@ void new_thread(void *(*f)(void *), void *data); void sleepms(int ms); +void bps(char *out, float v, char *suffix); /****************************************************************************/ /* list */ -- GitLab