From fd784ccaf649128965be016f857708669e798479 Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Sun, 4 Mar 2007 20:15:04 +0100 Subject: [PATCH] Increase internal clock resolution to nsec [IPROUTE]: Increase internal clock resolution to nsec Signed-off-by: Patrick McHardy Signed-off-by: Stephen Hemminger --- tc/tc_core.h | 2 +- tc/tc_util.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tc/tc_core.h b/tc/tc_core.h index a139da6f..28bf97a2 100644 --- a/tc/tc_core.h +++ b/tc/tc_core.h @@ -4,7 +4,7 @@ #include #include -#define TIME_UNITS_PER_SEC 1000000 +#define TIME_UNITS_PER_SEC 1000000000 int tc_core_time2big(long time); long tc_core_time2tick(long time); diff --git a/tc/tc_util.c b/tc/tc_util.c index a7e42572..a07c6aad 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -228,6 +228,9 @@ int get_time(unsigned *time, const char *str) else if (strcasecmp(p, "us") == 0 || strcasecmp(p, "usec")==0 || strcasecmp(p, "usecs") == 0) t *= TIME_UNITS_PER_SEC/1000000; + else if (strcasecmp(p, "ns") == 0 || strcasecmp(p, "nsec")==0 || + strcasecmp(p, "nsecs") == 0) + t *= TIME_UNITS_PER_SEC/1000000000; else return -1; } @@ -245,8 +248,10 @@ void print_time(char *buf, int len, __u32 time) snprintf(buf, len, "%.1fs", tmp/TIME_UNITS_PER_SEC); else if (tmp >= TIME_UNITS_PER_SEC/1000) snprintf(buf, len, "%.1fms", tmp/(TIME_UNITS_PER_SEC/1000)); + else if (tmp >= TIME_UNITS_PER_SEC/1000000) + snprintf(buf, len, "%.1fus", tmp/(TIME_UNITS_PER_SEC/1000000)); else - snprintf(buf, len, "%uus", time); + snprintf(buf, len, "%uns", time); } char * sprint_time(__u32 time, char *buf)