More init fixes. Fixed sync segfault.
-Erik
This commit is contained in:
parent
219d6f5e0c
commit
be971d6b69
@ -8,6 +8,7 @@
|
|||||||
* Major adjustment of init.c. Code is now readable IMHO,
|
* Major adjustment of init.c. Code is now readable IMHO,
|
||||||
and much more solid.
|
and much more solid.
|
||||||
* Wrote sed -- weighs only 1.8k (5.8k with full regular expressions!).
|
* Wrote sed -- weighs only 1.8k (5.8k with full regular expressions!).
|
||||||
|
* Fixed a stupid seg-fault in sync
|
||||||
|
|
||||||
-Erik Andersen
|
-Erik Andersen
|
||||||
|
|
||||||
|
@ -37,8 +37,8 @@
|
|||||||
|
|
||||||
|
|
||||||
static const char tar_usage[] =
|
static const char tar_usage[] =
|
||||||
"Create, extract, or list files from a TAR file\n\n"
|
"tar -[cxtvOf] [tarFileName] [FILE] ...\n"
|
||||||
"usage: tar -[cxtvOf] [tarFileName] [FILE] ...\n"
|
"Create, extract, or list files from a tar file\n\n"
|
||||||
"\tc=create, x=extract, t=list contents, v=verbose,\n"
|
"\tc=create, x=extract, t=list contents, v=verbose,\n"
|
||||||
"\tO=extract to stdout, f=tarfile or \"-\" for stdin\n";
|
"\tO=extract to stdout, f=tarfile or \"-\" for stdin\n";
|
||||||
|
|
||||||
@ -151,10 +151,8 @@ extern int tar_main (int argc, char **argv)
|
|||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
|
|
||||||
if (argc < 1) {
|
if (argc < 1)
|
||||||
fprintf (stderr, "%s", tar_usage);
|
usage( tar_usage);
|
||||||
exit (FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
errorFlag = FALSE;
|
errorFlag = FALSE;
|
||||||
|
@ -30,7 +30,7 @@ h=`cat busybox.links`
|
|||||||
|
|
||||||
for i in $h ; do
|
for i in $h ; do
|
||||||
mkdir -p $RPM_BUILD_ROOT/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `
|
mkdir -p $RPM_BUILD_ROOT/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `
|
||||||
(cd $RPM_BUILD_ROOT/bin ; ln -s ln `echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` );
|
(cd $RPM_BUILD_ROOT/bin ; ln -s busybox `echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` );
|
||||||
done
|
done
|
||||||
rm -f $RPM_BUILD_ROOT/bin/busybox
|
rm -f $RPM_BUILD_ROOT/bin/busybox
|
||||||
install -m 755 busybox $RPM_BUILD_ROOT/bin/busybox
|
install -m 755 busybox $RPM_BUILD_ROOT/bin/busybox
|
||||||
|
@ -26,9 +26,9 @@
|
|||||||
extern int
|
extern int
|
||||||
sync_main(int argc, char * * argv)
|
sync_main(int argc, char * * argv)
|
||||||
{
|
{
|
||||||
if ( **(argv+1) == '-' ) {
|
if ( argc>1 && **(argv+1) == '-' ) {
|
||||||
usage( "sync\nWrite all buffered filesystem blocks to disk.\n");
|
usage( "sync\nWrite all buffered filesystem blocks to disk.\n");
|
||||||
}
|
}
|
||||||
return sync();
|
exit( sync());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ h=`cat busybox.links`
|
|||||||
|
|
||||||
for i in $h ; do
|
for i in $h ; do
|
||||||
mkdir -p $RPM_BUILD_ROOT/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `
|
mkdir -p $RPM_BUILD_ROOT/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `
|
||||||
(cd $RPM_BUILD_ROOT/bin ; ln -s ln `echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` );
|
(cd $RPM_BUILD_ROOT/bin ; ln -s busybox `echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` );
|
||||||
done
|
done
|
||||||
rm -f $RPM_BUILD_ROOT/bin/busybox
|
rm -f $RPM_BUILD_ROOT/bin/busybox
|
||||||
install -m 755 busybox $RPM_BUILD_ROOT/bin/busybox
|
install -m 755 busybox $RPM_BUILD_ROOT/bin/busybox
|
||||||
|
30
init.c
30
init.c
@ -45,18 +45,18 @@
|
|||||||
//#define DEBUG_INIT
|
//#define DEBUG_INIT
|
||||||
|
|
||||||
#define CONSOLE "/dev/console" /* Logical system console */
|
#define CONSOLE "/dev/console" /* Logical system console */
|
||||||
#define VT_PRIMARY "/dev/tty0" /* Primary virtual console */
|
#define VT_PRIMARY "/dev/tty1" /* Primary virtual console */
|
||||||
#define VT_SECONDARY "/dev/tty1" /* Virtual console */
|
#define VT_SECONDARY "/dev/tty2" /* Virtual console */
|
||||||
#define VT_LOG "/dev/tty2" /* Virtual console */
|
#define VT_LOG "/dev/tty3" /* Virtual console */
|
||||||
#define SERIAL_CON0 "/dev/ttyS0" /* Primary serial console */
|
#define SERIAL_CON0 "/dev/ttyS0" /* Primary serial console */
|
||||||
#define SERIAL_CON1 "/dev/ttyS1" /* Serial console */
|
#define SERIAL_CON1 "/dev/ttyS1" /* Serial console */
|
||||||
#define SHELL "/bin/sh" /* Default shell */
|
#define SHELL "/bin/sh" /* Default shell */
|
||||||
#define INITSCRIPT "/etc/init.d/rcS" /* Initscript. */
|
#define INITSCRIPT "/etc/init.d/rcS" /* Initscript. */
|
||||||
#define PATH_DEFAULT "PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin"
|
#define PATH_DEFAULT "PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin"
|
||||||
|
|
||||||
static char *console = VT_PRIMARY;
|
static char *console = CONSOLE;
|
||||||
static char *second_terminal = VT_SECONDARY;
|
static char *second_console = VT_SECONDARY;
|
||||||
static char *log = "/dev/tty3";
|
static char *log = VT_LOG;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -173,23 +173,23 @@ static void console_init()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
console = VT_PRIMARY;
|
console = CONSOLE;
|
||||||
tried_vtprimary++;
|
tried_devcons++;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((fd = open(console, O_RDONLY | O_NONBLOCK)) < 0) {
|
while ((fd = open(console, O_RDONLY | O_NONBLOCK)) < 0) {
|
||||||
/* Can't open selected console -- try vt1 */
|
|
||||||
if (!tried_vtprimary) {
|
|
||||||
tried_vtprimary++;
|
|
||||||
console = VT_PRIMARY;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
/* Can't open selected console -- try /dev/console */
|
/* Can't open selected console -- try /dev/console */
|
||||||
if (!tried_devcons) {
|
if (!tried_devcons) {
|
||||||
tried_devcons++;
|
tried_devcons++;
|
||||||
console = CONSOLE;
|
console = CONSOLE;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
/* Can't open selected console -- try vt1 */
|
||||||
|
if (!tried_vtprimary) {
|
||||||
|
tried_vtprimary++;
|
||||||
|
console = VT_PRIMARY;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
@ -449,7 +449,7 @@ extern int init_main(int argc, char **argv)
|
|||||||
pid1 = run(tty0_commands, console, wait_for_enter);
|
pid1 = run(tty0_commands, console, wait_for_enter);
|
||||||
}
|
}
|
||||||
if (pid2 == 0 && tty1_commands) {
|
if (pid2 == 0 && tty1_commands) {
|
||||||
pid2 = run(tty1_commands, second_terminal, TRUE);
|
pid2 = run(tty1_commands, second_console, TRUE);
|
||||||
}
|
}
|
||||||
wpid = wait(&status);
|
wpid = wait(&status);
|
||||||
if (wpid > 0 ) {
|
if (wpid > 0 ) {
|
||||||
|
30
init/init.c
30
init/init.c
@ -45,18 +45,18 @@
|
|||||||
//#define DEBUG_INIT
|
//#define DEBUG_INIT
|
||||||
|
|
||||||
#define CONSOLE "/dev/console" /* Logical system console */
|
#define CONSOLE "/dev/console" /* Logical system console */
|
||||||
#define VT_PRIMARY "/dev/tty0" /* Primary virtual console */
|
#define VT_PRIMARY "/dev/tty1" /* Primary virtual console */
|
||||||
#define VT_SECONDARY "/dev/tty1" /* Virtual console */
|
#define VT_SECONDARY "/dev/tty2" /* Virtual console */
|
||||||
#define VT_LOG "/dev/tty2" /* Virtual console */
|
#define VT_LOG "/dev/tty3" /* Virtual console */
|
||||||
#define SERIAL_CON0 "/dev/ttyS0" /* Primary serial console */
|
#define SERIAL_CON0 "/dev/ttyS0" /* Primary serial console */
|
||||||
#define SERIAL_CON1 "/dev/ttyS1" /* Serial console */
|
#define SERIAL_CON1 "/dev/ttyS1" /* Serial console */
|
||||||
#define SHELL "/bin/sh" /* Default shell */
|
#define SHELL "/bin/sh" /* Default shell */
|
||||||
#define INITSCRIPT "/etc/init.d/rcS" /* Initscript. */
|
#define INITSCRIPT "/etc/init.d/rcS" /* Initscript. */
|
||||||
#define PATH_DEFAULT "PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin"
|
#define PATH_DEFAULT "PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin"
|
||||||
|
|
||||||
static char *console = VT_PRIMARY;
|
static char *console = CONSOLE;
|
||||||
static char *second_terminal = VT_SECONDARY;
|
static char *second_console = VT_SECONDARY;
|
||||||
static char *log = "/dev/tty3";
|
static char *log = VT_LOG;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -173,23 +173,23 @@ static void console_init()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
console = VT_PRIMARY;
|
console = CONSOLE;
|
||||||
tried_vtprimary++;
|
tried_devcons++;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((fd = open(console, O_RDONLY | O_NONBLOCK)) < 0) {
|
while ((fd = open(console, O_RDONLY | O_NONBLOCK)) < 0) {
|
||||||
/* Can't open selected console -- try vt1 */
|
|
||||||
if (!tried_vtprimary) {
|
|
||||||
tried_vtprimary++;
|
|
||||||
console = VT_PRIMARY;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
/* Can't open selected console -- try /dev/console */
|
/* Can't open selected console -- try /dev/console */
|
||||||
if (!tried_devcons) {
|
if (!tried_devcons) {
|
||||||
tried_devcons++;
|
tried_devcons++;
|
||||||
console = CONSOLE;
|
console = CONSOLE;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
/* Can't open selected console -- try vt1 */
|
||||||
|
if (!tried_vtprimary) {
|
||||||
|
tried_vtprimary++;
|
||||||
|
console = VT_PRIMARY;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
@ -449,7 +449,7 @@ extern int init_main(int argc, char **argv)
|
|||||||
pid1 = run(tty0_commands, console, wait_for_enter);
|
pid1 = run(tty0_commands, console, wait_for_enter);
|
||||||
}
|
}
|
||||||
if (pid2 == 0 && tty1_commands) {
|
if (pid2 == 0 && tty1_commands) {
|
||||||
pid2 = run(tty1_commands, second_terminal, TRUE);
|
pid2 = run(tty1_commands, second_console, TRUE);
|
||||||
}
|
}
|
||||||
wpid = wait(&status);
|
wpid = wait(&status);
|
||||||
if (wpid > 0 ) {
|
if (wpid > 0 ) {
|
||||||
|
4
sync.c
4
sync.c
@ -26,9 +26,9 @@
|
|||||||
extern int
|
extern int
|
||||||
sync_main(int argc, char * * argv)
|
sync_main(int argc, char * * argv)
|
||||||
{
|
{
|
||||||
if ( **(argv+1) == '-' ) {
|
if ( argc>1 && **(argv+1) == '-' ) {
|
||||||
usage( "sync\nWrite all buffered filesystem blocks to disk.\n");
|
usage( "sync\nWrite all buffered filesystem blocks to disk.\n");
|
||||||
}
|
}
|
||||||
return sync();
|
exit( sync());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
tar.c
10
tar.c
@ -37,8 +37,8 @@
|
|||||||
|
|
||||||
|
|
||||||
static const char tar_usage[] =
|
static const char tar_usage[] =
|
||||||
"Create, extract, or list files from a TAR file\n\n"
|
"tar -[cxtvOf] [tarFileName] [FILE] ...\n"
|
||||||
"usage: tar -[cxtvOf] [tarFileName] [FILE] ...\n"
|
"Create, extract, or list files from a tar file\n\n"
|
||||||
"\tc=create, x=extract, t=list contents, v=verbose,\n"
|
"\tc=create, x=extract, t=list contents, v=verbose,\n"
|
||||||
"\tO=extract to stdout, f=tarfile or \"-\" for stdin\n";
|
"\tO=extract to stdout, f=tarfile or \"-\" for stdin\n";
|
||||||
|
|
||||||
@ -151,10 +151,8 @@ extern int tar_main (int argc, char **argv)
|
|||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
|
|
||||||
if (argc < 1) {
|
if (argc < 1)
|
||||||
fprintf (stderr, "%s", tar_usage);
|
usage( tar_usage);
|
||||||
exit (FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
errorFlag = FALSE;
|
errorFlag = FALSE;
|
||||||
|
Loading…
Reference in New Issue
Block a user