diff --git a/include/libbb.h b/include/libbb.h index fa69a7fe6..7a3610bb9 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -738,6 +738,7 @@ unsigned bb_arg_max(void) FAST_FUNC; #else # define bb_arg_max() ((unsigned)(32 * 1024)) #endif +unsigned bb_clk_tck(void) FAST_FUNC; #define SEAMLESS_COMPRESSION (0 \ || ENABLE_FEATURE_SEAMLESS_XZ \ diff --git a/libbb/sysconf.c b/libbb/sysconf.c index c5fa5e001..4dbffbebd 100644 --- a/libbb/sysconf.c +++ b/libbb/sysconf.c @@ -14,3 +14,9 @@ unsigned FAST_FUNC bb_arg_max(void) return sysconf(_SC_ARG_MAX); } #endif + +/* Return the number of clock ticks per second. */ +unsigned FAST_FUNC bb_clk_tck(void) +{ + return sysconf(_SC_CLK_TCK); +} diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c index f8a67d9ee..ec4d8ba03 100644 --- a/networking/libiproute/iproute.c +++ b/networking/libiproute/iproute.c @@ -73,7 +73,7 @@ static unsigned get_hz(void) fclose(fp); } if (!hz_internal) - hz_internal = sysconf(_SC_CLK_TCK); + hz_internal = bb_clk_tck(); return hz_internal; } diff --git a/networking/route.c b/networking/route.c index 4235ea72c..24cc2eb5a 100644 --- a/networking/route.c +++ b/networking/route.c @@ -283,7 +283,7 @@ static NOINLINE void INET_setroute(int action, char **args) if (k == KW_IPVx_IRTT) { rt->rt_flags |= RTF_IRTT; rt->rt_irtt = xatoul(args_m1); - rt->rt_irtt *= (sysconf(_SC_CLK_TCK) / 100); /* FIXME */ + rt->rt_irtt *= (bb_clk_tck() / 100); /* FIXME */ #if 0 /* FIXME: do we need to check anything of this? */ if (rt->rt_irtt < 1 || rt->rt_irtt > (120 * HZ)) { bb_error_msg_and_die("bad irtt"); diff --git a/procps/iostat.c b/procps/iostat.c index 978d23430..8d272c87c 100644 --- a/procps/iostat.c +++ b/procps/iostat.c @@ -109,11 +109,6 @@ enum { OPT_m = 1 << 5, }; -static ALWAYS_INLINE unsigned get_user_hz(void) -{ - return sysconf(_SC_CLK_TCK); -} - static ALWAYS_INLINE int this_is_smp(void) { return (G.total_cpus > 1); @@ -414,7 +409,7 @@ int iostat_main(int argc UNUSED_PARAM, char **argv) memset(&stats_data, 0, sizeof(stats_data)); /* Get number of clock ticks per sec */ - G.clk_tck = get_user_hz(); + G.clk_tck = bb_clk_tck(); /* Determine number of CPUs */ G.total_cpus = get_cpu_count(); diff --git a/procps/mpstat.c b/procps/mpstat.c index aa5a5c73f..c628d6215 100644 --- a/procps/mpstat.c +++ b/procps/mpstat.c @@ -775,12 +775,6 @@ static void main_loop(void) /* Initialization */ -/* Get number of clock ticks per sec */ -static ALWAYS_INLINE unsigned get_hz(void) -{ - return sysconf(_SC_CLK_TCK); -} - static void alloc_struct(int cpus) { int i; @@ -873,7 +867,7 @@ int mpstat_main(int UNUSED_PARAM argc, char **argv) G.cpu_nr = get_cpu_count(); /* Get number of clock ticks per sec */ - G.hz = get_hz(); + G.hz = bb_clk_tck(); /* Calculate number of interrupts per processor */ G.irqcpu_nr = get_irqcpu_nr(PROCFS_INTERRUPTS, NR_IRQS) + NR_IRQCPU_PREALLOC; diff --git a/shell/ash.c b/shell/ash.c index cabeb40c5..dc7a9bf4f 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -12759,7 +12759,7 @@ timescmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) const unsigned char *p; struct tms buf; - clk_tck = sysconf(_SC_CLK_TCK); + clk_tck = bb_clk_tck(); times(&buf); p = timescmd_str;