From b9256054419582dc35917b1cb39c7e09f489dfad Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Fri, 28 Sep 2007 10:29:17 +0000 Subject: assorted static vars removal function old new delta tcpudpsvd_main 1829 1839 +10 update_status 567 569 +2 sigterm 1 - -1 ......... dhcprelay_signal_handler 8 - -8 nfs_strerror 60 49 -11 singlemount 4579 4564 -15 static.p 16 - -16 svstatus 20 - -20 dhcprelay_xid_list 32 - -32 runsv_main 1785 1746 -39 static.buf 74 28 -46 svd 56 - -56 dhcprelay_main 1141 1080 -61 ------------------------------------------------------------------------------ (add/remove: 0/20 grow/shrink: 2/10 up/down: 12/-386) Total: -374 bytes --- runit/runsv.c | 31 +++++++++++++++++++++++-------- runit/sv.c | 22 +++++++++++++++++----- 2 files changed, 40 insertions(+), 13 deletions(-) (limited to 'runit') diff --git a/runit/runsv.c b/runit/runsv.c index b35c26630..1ee3dda01 100644 --- a/runit/runsv.c +++ b/runit/runsv.c @@ -61,8 +61,6 @@ static void gettimeofday_ns(struct timespec *ts) /* Compare possibly overflowing unsigned counters */ #define LESS(a,b) ((int)((unsigned)(b) - (unsigned)(a)) > 0) -static int selfpipe[2]; - /* state */ #define S_DOWN 0 #define S_RUN 1 @@ -88,12 +86,27 @@ struct svdir { int fdcontrolwrite; }; -static struct svdir svd[2]; -static smallint sigterm; -static smallint haslog; -static smallint pidchanged = 1; -static int logpipe[2]; -static char *dir; +struct globals { + smallint haslog; + smallint sigterm; + smallint pidchanged; + int selfpipe[2]; + int logpipe[2]; + char *dir; + struct svdir svd[2]; +}; +#define G (*(struct globals*)&bb_common_bufsiz1) +#define haslog (G.haslog ) +#define sigterm (G.sigterm ) +#define pidchanged (G.pidchanged ) +#define selfpipe (G.selfpipe ) +#define logpipe (G.logpipe ) +#define dir (G.dir ) +#define svd (G.svd ) +#define INIT_G() \ + do { \ + pidchanged = 1; \ + } while (0) static void fatal2_cannot(const char *m1, const char *m2) { @@ -434,6 +447,8 @@ int runsv_main(int argc, char **argv) int r; char buf[256]; + INIT_G(); + if (!argv[1] || argv[2]) bb_show_usage(); dir = argv[1]; diff --git a/runit/sv.c b/runit/sv.c index 7283bbf7d..757391a54 100644 --- a/runit/sv.c +++ b/runit/sv.c @@ -158,12 +158,22 @@ Exit Codes #include "libbb.h" #include "runit_lib.h" -static const char *acts; -static char **service; -static unsigned rc; +struct globals { + const char *acts; + char **service; + unsigned rc; /* "Bernstein" time format: unix + 0x400000000000000aULL */ -static uint64_t tstart, tnow; -static svstatus_t svstatus; + uint64_t tstart, tnow; + svstatus_t svstatus; +}; +#define G (*(struct globals*)&bb_common_bufsiz1) +#define acts (G.acts ) +#define service (G.service ) +#define rc (G.rc ) +#define tstart (G.tstart ) +#define tnow (G.tnow ) +#define svstatus (G.svstatus ) +#define INIT_G() do { } while (0) static void fatal_cannot(const char *m1) ATTRIBUTE_NORETURN; @@ -418,6 +428,8 @@ int sv_main(int argc, char **argv) int (*cbk)(const char*); int curdir; + INIT_G(); + xfunc_error_retval = 100; x = getenv("SVDIR"); -- cgit v1.2.3