find_stray_communal_vars: script which finds communal variables
resize: remove globals var mdev: remove globals var
This commit is contained in:
parent
dd6e1f0deb
commit
4e5f82c76f
@ -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",
|
||||||
|
@ -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 */
|
||||||
|
10
scripts/find_stray_communal_vars
Executable file
10
scripts/find_stray_communal_vars
Executable 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
|
@ -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");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user