find_stray_communal_vars: script which finds communal variables

resize: remove globals var
mdev: remove globals var
This commit is contained in:
Denis Vlasenko 2007-06-03 22:30:22 +00:00
parent dd6e1f0deb
commit 4e5f82c76f
4 changed files with 25 additions and 18 deletions

View File

@ -11,16 +11,15 @@
#define ESC "\033" #define ESC "\033"
struct termios old; #define old_termios (*(struct termios*)&bb_common_bufsiz1)
static void static void
onintr(int sig ATTRIBUTE_UNUSED) onintr(int sig ATTRIBUTE_UNUSED)
{ {
tcsetattr(STDERR_FILENO, TCSANOW, &old); tcsetattr(STDERR_FILENO, TCSANOW, &old_termios);
exit(1); exit(1);
} }
int resize_main(int argc, char **argv); int resize_main(int argc, char **argv);
int resize_main(int argc, char **argv) int resize_main(int argc, char **argv)
{ {
@ -34,8 +33,8 @@ int resize_main(int argc, char **argv)
* and operate on it - should we do the same? * and operate on it - should we do the same?
*/ */
tcgetattr(STDERR_FILENO, &old); /* fiddle echo */ tcgetattr(STDERR_FILENO, &old_termios); /* fiddle echo */
new = old; new = old_termios;
new.c_cflag |= (CLOCAL | CREAD); new.c_cflag |= (CLOCAL | CREAD);
new.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); new.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
signal(SIGINT, onintr); signal(SIGINT, onintr);
@ -60,7 +59,7 @@ int resize_main(int argc, char **argv)
* (gotten via TIOCGWINSZ) and recomputing *pixel values */ * (gotten via TIOCGWINSZ) and recomputing *pixel values */
ret = ioctl(STDERR_FILENO, TIOCSWINSZ, &w); ret = ioctl(STDERR_FILENO, TIOCSWINSZ, &w);
tcsetattr(STDERR_FILENO, TCSANOW, &old); tcsetattr(STDERR_FILENO, TCSANOW, &old_termios);
if (ENABLE_FEATURE_RESIZE_PRINT) if (ENABLE_FEATURE_RESIZE_PRINT)
printf("COLUMNS=%d;LINES=%d;export COLUMNS LINES;\n", printf("COLUMNS=%d;LINES=%d;export COLUMNS LINES;\n",

View File

@ -79,7 +79,7 @@ struct globals {
struct termios termios_raw; struct termios termios_raw;
}; };
#define G (*(struct globals*)bb_common_bufsiz1) #define G (*(struct globals*)&bb_common_bufsiz1)
/* Function prototypes */ /* Function prototypes */

View File

@ -0,0 +1,10 @@
#!/bin/sh
# Communal variables are elusize, then don't show in size output!
# This script will show all communals in *.o, sorted by size
find -name '*.o' \
| while read name; do
b=`basename "$name"`
nm "$name" | sed "s/^/$b: /"
done | grep -i ' c ' | sort -k2

View File

@ -12,14 +12,12 @@
#include "libbb.h" #include "libbb.h"
#include "xregex.h" #include "xregex.h"
#define DEV_PATH "/dev" struct globals {
struct mdev_globals
{
int root_major, root_minor; int root_major, root_minor;
} mdev_globals; };
#define G (*(struct globals*)&bb_common_bufsiz1)
#define bbg mdev_globals #define root_major (G.root_major)
#define root_minor (G.root_minor)
/* mknod in /dev based on a path like "/sys/block/hda/hda1" */ /* mknod in /dev based on a path like "/sys/block/hda/hda1" */
static void make_device(char *path, int delete) static void make_device(char *path, int delete)
@ -174,7 +172,7 @@ static void make_device(char *path, int delete)
if (mknod(device_name, mode | type, makedev(major, minor)) && errno != EEXIST) if (mknod(device_name, mode | type, makedev(major, minor)) && errno != EEXIST)
bb_perror_msg_and_die("mknod %s", device_name); bb_perror_msg_and_die("mknod %s", device_name);
if (major == bbg.root_major && minor == bbg.root_minor) if (major == root_major && minor == root_minor)
symlink(device_name, "root"); symlink(device_name, "root");
if (ENABLE_FEATURE_MDEV_CONF) chown(device_name, uid, gid); if (ENABLE_FEATURE_MDEV_CONF) chown(device_name, uid, gid);
@ -237,7 +235,7 @@ int mdev_main(int argc, char **argv)
char *env_path; char *env_path;
RESERVE_CONFIG_BUFFER(temp,PATH_MAX); RESERVE_CONFIG_BUFFER(temp,PATH_MAX);
xchdir(DEV_PATH); xchdir("/dev");
/* Scan */ /* Scan */
@ -245,8 +243,8 @@ int mdev_main(int argc, char **argv)
struct stat st; struct stat st;
xstat("/", &st); xstat("/", &st);
bbg.root_major = major(st.st_dev); root_major = major(st.st_dev);
bbg.root_minor = minor(st.st_dev); root_minor = minor(st.st_dev);
strcpy(temp,"/sys/block"); strcpy(temp,"/sys/block");
find_dev(temp); find_dev(temp);
strcpy(temp,"/sys/class"); strcpy(temp,"/sys/class");