summaryrefslogtreecommitdiffhomepage
path: root/runit/runsvdir.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 09:33:45 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 09:33:45 +0000
commitd0a071a5281f8ba4b291f0c3beb74bee1f8df6a3 (patch)
tree37e443b155eb66fed37e889828fa60023c84010f /runit/runsvdir.c
parentb44c790e41e281965955a83408f35ea53ecdb3d2 (diff)
brctl: eliminate stray data object
brctl: use constant fd to reduce parameter passing runsvdir: do not use data/bss od: reuse bb_argv_dash last: do not go into endless loop on read error mount: make it not fail scripts/find_bad_common_bufsiz check dc: add INIT_G() (no-op for dc, but we want uniform usage of "G trick") function old new delta runsvdir_main 1646 1672 +26 set_pgrp 1 - -1 exitsoon 1 - -1 check 679 678 -1 svnum 4 - -4 svdir 4 - -4 sv 4 - -4 stamplog 4 - -4 rploglen 4 - -4 rplog 4 - -4 mount_main 995 988 -7 static.default_file_list 8 - -8 pfd 8 - -8 logpipe 8 - -8 static.info 20 - -20 brctl_main 767 739 -28 ------------------------------------------------------------------------------ (add/remove: 0/12 grow/shrink: 1/3 up/down: 26/-106) Total: -80 bytes text data bss dec hex filename 793327 662 7412 801401 c3a79 busybox_old 793329 641 7372 801342 c3a3e busybox_unstripped
Diffstat (limited to 'runit/runsvdir.c')
-rw-r--r--runit/runsvdir.c41
1 files changed, 30 insertions, 11 deletions
diff --git a/runit/runsvdir.c b/runit/runsvdir.c
index bca5c901c..32e4764d1 100644
--- a/runit/runsvdir.c
+++ b/runit/runsvdir.c
@@ -42,17 +42,34 @@ struct service {
smallint isgone;
};
-static struct service *sv;
-static char *svdir;
-static int svnum;
-static char *rplog;
-static int rploglen;
-static struct fd_pair logpipe;
-static struct pollfd pfd[1];
-static unsigned stamplog;
-static smallint check = 1;
-static smallint exitsoon;
-static smallint set_pgrp;
+struct globals {
+ struct service *sv;
+ char *svdir;
+ char *rplog;
+ int svnum;
+ int rploglen;
+ struct fd_pair logpipe;
+ struct pollfd pfd[1];
+ unsigned stamplog;
+ smallint check; /* = 1; */
+ smallint exitsoon;
+ smallint set_pgrp;
+};
+#define G (*(struct globals*)&bb_common_bufsiz1)
+#define sv (G.sv )
+#define svdir (G.svdir )
+#define rplog (G.rplog )
+#define svnum (G.svnum )
+#define rploglen (G.rploglen )
+#define logpipe (G.logpipe )
+#define pfd (G.pfd )
+#define stamplog (G.stamplog )
+#define check (G.check )
+#define exitsoon (G.exitsoon )
+#define set_pgrp (G.set_pgrp )
+#define INIT_G() do { \
+ check = 1; \
+} while (0)
static void fatal2_cannot(const char *m1, const char *m2)
{
@@ -222,6 +239,8 @@ int runsvdir_main(int argc ATTRIBUTE_UNUSED, char **argv)
char ch;
int i;
+ INIT_G();
+
argv++;
if (!*argv)
bb_show_usage();