[git commit] libbb: use a wrapper around sysconf(_SC_CLK_TCK) to save a few bytes

Denys Vlasenko vda.linux at googlemail.com
Sun Jun 22 12:01:13 UTC 2014


commit: http://git.busybox.net/busybox/commit/?id=5d2e409ef8224dc32fde59702e8ec90b231441ed
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
bb_sc_clk_tck                                          -      10     +10
timescmd                                             118     113      -5
print_route                                         1763    1758      -5
mpstat_main                                         1288    1283      -5
iostat_main                                         1947    1942      -5
INET_setroute                                        879     871      -8
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/5 up/down: 10/-28)            Total: -18 bytes
Signed-off-by: Bartosz Golaszewski <bartekgola at gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 include/libbb.h                 |    1 +
 libbb/sysconf.c                 |    6 ++++++
 networking/libiproute/iproute.c |    2 +-
 networking/route.c              |    2 +-
 procps/iostat.c                 |    7 +------
 procps/mpstat.c                 |    8 +-------
 shell/ash.c                     |    2 +-
 7 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/include/libbb.h b/include/libbb.h
index fa69a7f..7a3610b 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 c5fa5e0..4dbffbe 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 f8a67d9..ec4d8ba 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 4235ea7..24cc2eb 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 978d234..8d272c8 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 aa5a5c7..c628d62 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 cabeb40..dc7a9bf 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;


More information about the busybox-cvs mailing list