aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-06-03 22:30:22 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-06-03 22:30:22 +0000
commit4e5f82c76f08614d0b69f9ec4a8baac303af15f6 (patch)
tree5eb42f026a1fb90ae72b27b7a9b700cd5fee3ab9
parentdd6e1f0deb6c0423b803137ca650cd85eaa570b3 (diff)
downloadbusybox-w32-4e5f82c76f08614d0b69f9ec4a8baac303af15f6.tar.gz
busybox-w32-4e5f82c76f08614d0b69f9ec4a8baac303af15f6.tar.bz2
busybox-w32-4e5f82c76f08614d0b69f9ec4a8baac303af15f6.zip
find_stray_communal_vars: script which finds communal variables
resize: remove globals var mdev: remove globals var
-rw-r--r--console-tools/resize.c11
-rw-r--r--networking/telnet.c2
-rwxr-xr-xscripts/find_stray_communal_vars10
-rw-r--r--util-linux/mdev.c20
4 files changed, 25 insertions, 18 deletions
diff --git a/console-tools/resize.c b/console-tools/resize.c
index 52fdb26f4..32551b2f2 100644
--- a/console-tools/resize.c
+++ b/console-tools/resize.c
@@ -11,16 +11,15 @@
11 11
12#define ESC "\033" 12#define ESC "\033"
13 13
14struct termios old; 14#define old_termios (*(struct termios*)&bb_common_bufsiz1)
15 15
16static void 16static void
17onintr(int sig ATTRIBUTE_UNUSED) 17onintr(int sig ATTRIBUTE_UNUSED)
18{ 18{
19 tcsetattr(STDERR_FILENO, TCSANOW, &old); 19 tcsetattr(STDERR_FILENO, TCSANOW, &old_termios);
20 exit(1); 20 exit(1);
21} 21}
22 22
23
24int resize_main(int argc, char **argv); 23int resize_main(int argc, char **argv);
25int resize_main(int argc, char **argv) 24int resize_main(int argc, char **argv)
26{ 25{
@@ -34,8 +33,8 @@ int resize_main(int argc, char **argv)
34 * and operate on it - should we do the same? 33 * and operate on it - should we do the same?
35 */ 34 */
36 35
37 tcgetattr(STDERR_FILENO, &old); /* fiddle echo */ 36 tcgetattr(STDERR_FILENO, &old_termios); /* fiddle echo */
38 new = old; 37 new = old_termios;
39 new.c_cflag |= (CLOCAL | CREAD); 38 new.c_cflag |= (CLOCAL | CREAD);
40 new.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); 39 new.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
41 signal(SIGINT, onintr); 40 signal(SIGINT, onintr);
@@ -60,7 +59,7 @@ int resize_main(int argc, char **argv)
60 * (gotten via TIOCGWINSZ) and recomputing *pixel values */ 59 * (gotten via TIOCGWINSZ) and recomputing *pixel values */
61 ret = ioctl(STDERR_FILENO, TIOCSWINSZ, &w); 60 ret = ioctl(STDERR_FILENO, TIOCSWINSZ, &w);
62 61
63 tcsetattr(STDERR_FILENO, TCSANOW, &old); 62 tcsetattr(STDERR_FILENO, TCSANOW, &old_termios);
64 63
65 if (ENABLE_FEATURE_RESIZE_PRINT) 64 if (ENABLE_FEATURE_RESIZE_PRINT)
66 printf("COLUMNS=%d;LINES=%d;export COLUMNS LINES;\n", 65 printf("COLUMNS=%d;LINES=%d;export COLUMNS LINES;\n",
diff --git a/networking/telnet.c b/networking/telnet.c
index a59450505..caca89d2d 100644
--- a/networking/telnet.c
+++ b/networking/telnet.c
@@ -79,7 +79,7 @@ struct globals {
79 struct termios termios_raw; 79 struct termios termios_raw;
80}; 80};
81 81
82#define G (*(struct globals*)bb_common_bufsiz1) 82#define G (*(struct globals*)&bb_common_bufsiz1)
83 83
84 84
85/* Function prototypes */ 85/* Function prototypes */
diff --git a/scripts/find_stray_communal_vars b/scripts/find_stray_communal_vars
new file mode 100755
index 000000000..9f999d705
--- /dev/null
+++ b/scripts/find_stray_communal_vars
@@ -0,0 +1,10 @@
1#!/bin/sh
2
3# Communal variables are elusize, then don't show in size output!
4# This script will show all communals in *.o, sorted by size
5
6find -name '*.o' \
7| while read name; do
8 b=`basename "$name"`
9 nm "$name" | sed "s/^/$b: /"
10done | grep -i ' c ' | sort -k2
diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index a4716e2da..cc729e72a 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -12,14 +12,12 @@
12#include "libbb.h" 12#include "libbb.h"
13#include "xregex.h" 13#include "xregex.h"
14 14
15#define DEV_PATH "/dev" 15struct globals {
16
17struct mdev_globals
18{
19 int root_major, root_minor; 16 int root_major, root_minor;
20} mdev_globals; 17};
21 18#define G (*(struct globals*)&bb_common_bufsiz1)
22#define bbg mdev_globals 19#define root_major (G.root_major)
20#define root_minor (G.root_minor)
23 21
24/* mknod in /dev based on a path like "/sys/block/hda/hda1" */ 22/* mknod in /dev based on a path like "/sys/block/hda/hda1" */
25static void make_device(char *path, int delete) 23static void make_device(char *path, int delete)
@@ -174,7 +172,7 @@ static void make_device(char *path, int delete)
174 if (mknod(device_name, mode | type, makedev(major, minor)) && errno != EEXIST) 172 if (mknod(device_name, mode | type, makedev(major, minor)) && errno != EEXIST)
175 bb_perror_msg_and_die("mknod %s", device_name); 173 bb_perror_msg_and_die("mknod %s", device_name);
176 174
177 if (major == bbg.root_major && minor == bbg.root_minor) 175 if (major == root_major && minor == root_minor)
178 symlink(device_name, "root"); 176 symlink(device_name, "root");
179 177
180 if (ENABLE_FEATURE_MDEV_CONF) chown(device_name, uid, gid); 178 if (ENABLE_FEATURE_MDEV_CONF) chown(device_name, uid, gid);
@@ -237,7 +235,7 @@ int mdev_main(int argc, char **argv)
237 char *env_path; 235 char *env_path;
238 RESERVE_CONFIG_BUFFER(temp,PATH_MAX); 236 RESERVE_CONFIG_BUFFER(temp,PATH_MAX);
239 237
240 xchdir(DEV_PATH); 238 xchdir("/dev");
241 239
242 /* Scan */ 240 /* Scan */
243 241
@@ -245,8 +243,8 @@ int mdev_main(int argc, char **argv)
245 struct stat st; 243 struct stat st;
246 244
247 xstat("/", &st); 245 xstat("/", &st);
248 bbg.root_major = major(st.st_dev); 246 root_major = major(st.st_dev);
249 bbg.root_minor = minor(st.st_dev); 247 root_minor = minor(st.st_dev);
250 strcpy(temp,"/sys/block"); 248 strcpy(temp,"/sys/block");
251 find_dev(temp); 249 find_dev(temp);
252 strcpy(temp,"/sys/class"); 250 strcpy(temp,"/sys/class");