aboutsummaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-10-24 05:00:29 +0000
committerandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-10-24 05:00:29 +0000
commit1e2799601614452a40df7862e6ca180ecb08c04d (patch)
tree153a573095afac8d8d0ea857759ecabd77fb28b7 /init
parent47f91d1f7fc06cf27e2a6c3c2ada99226ba50cb9 (diff)
downloadbusybox-w32-1e2799601614452a40df7862e6ca180ecb08c04d.tar.gz
busybox-w32-1e2799601614452a40df7862e6ca180ecb08c04d.tar.bz2
busybox-w32-1e2799601614452a40df7862e6ca180ecb08c04d.zip
Major rework of the directory structure and the entire build system.
-Erik git-svn-id: svn://busybox.net/trunk/busybox@3561 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'init')
-rw-r--r--init/Makefile39
-rw-r--r--init/config.in25
-rw-r--r--init/halt.c2
-rw-r--r--init/init.c32
-rw-r--r--init/poweroff.c2
-rw-r--r--init/reboot.c2
6 files changed, 83 insertions, 19 deletions
diff --git a/init/Makefile b/init/Makefile
new file mode 100644
index 000000000..472fb02b1
--- /dev/null
+++ b/init/Makefile
@@ -0,0 +1,39 @@
1# Makefile for busybox
2#
3# Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
4#
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18#
19
20TOPDIR :=..
21L_TARGET := init.a
22
23obj-y :=
24obj-n :=
25obj- :=
26
27obj-$(CONFIG_HALT) += halt.o
28obj-$(CONFIG_INIT) += init.o
29obj-$(CONFIG_POWEROFF) += poweroff.o
30obj-$(CONFIG_REBOOT) += reboot.o
31obj-$(CONFIG_START_STOP_DAEMON) += start_stop_daemon.o
32
33
34# Hand off to toplevel Rules.mak
35include $(TOPDIR)/Rules.mak
36
37clean:
38 rm -f $(L_TARGET) *.o core
39
diff --git a/init/config.in b/init/config.in
new file mode 100644
index 000000000..1d4760c2c
--- /dev/null
+++ b/init/config.in
@@ -0,0 +1,25 @@
1#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
6mainmenu_option next_comment
7comment 'Init Utilities'
8
9
10bool 'init' CONFIG_INIT
11if [ "$CONFIG_INIT" = "y" ]; then
12 bool ' Support reading an inittab file?' CONFIG_FEATURE_USE_INITTAB
13 bool ' Support running init from within an initrd?' CONFIG_FEATURE_INITRD
14 bool ' Support dumping core for child processes (debugging only)?' CONFIG_FEATURE_INIT_COREDUMPS
15 bool ' Should init be _extra_ quiet on boot?' CONFIG_FEATURE_EXTRA_QUIET
16
17 # Some more apps that are meaningless without BusyBox running as init
18 bool 'halt' CONFIG_HALT
19 bool 'poweroff' CONFIG_POWEROFF
20 bool 'reboot' CONFIG_REBOOT
21 bool 'start-stop-daemon' CONFIG_START_STOP_DAEMON
22fi
23
24endmenu
25
diff --git a/init/halt.c b/init/halt.c
index d66e28d0e..307c1022d 100644
--- a/init/halt.c
+++ b/init/halt.c
@@ -26,7 +26,7 @@
26 26
27extern int halt_main(int argc, char **argv) 27extern int halt_main(int argc, char **argv)
28{ 28{
29#ifdef BB_FEATURE_LINUXRC 29#ifdef CONFIG_FEATURE_INITRD
30 /* don't assume init's pid == 1 */ 30 /* don't assume init's pid == 1 */
31 pid_t *pid = find_pid_by_name("init"); 31 pid_t *pid = find_pid_by_name("init");
32 if (!pid || *pid<=0) { 32 if (!pid || *pid<=0) {
diff --git a/init/init.c b/init/init.c
index 068e1df16..b6eaa46ea 100644
--- a/init/init.c
+++ b/init/init.c
@@ -43,7 +43,7 @@
43#include <sys/types.h> 43#include <sys/types.h>
44#include <sys/wait.h> 44#include <sys/wait.h>
45#include "busybox.h" 45#include "busybox.h"
46#ifdef BB_SYSLOGD 46#ifdef CONFIG_SYSLOGD
47# include <sys/syslog.h> 47# include <sys/syslog.h>
48#endif 48#endif
49 49
@@ -96,7 +96,7 @@ static const int RB_AUTOBOOT = 0x01234567;
96#endif 96#endif
97 97
98 98
99#if defined BB_FEATURE_INIT_COREDUMPS 99#if defined CONFIG_FEATURE_INIT_COREDUMPS
100/* 100/*
101 * When a file named CORE_ENABLE_FLAG_FILE exists, setrlimit is called 101 * When a file named CORE_ENABLE_FLAG_FILE exists, setrlimit is called
102 * before processes are spawned to set core file size as unlimited. 102 * before processes are spawned to set core file size as unlimited.
@@ -194,7 +194,7 @@ static void message(int device, char *fmt, ...)
194 va_list arguments; 194 va_list arguments;
195 int fd; 195 int fd;
196 196
197#ifdef BB_SYSLOGD 197#ifdef CONFIG_SYSLOGD
198 198
199 /* Log the message to syslogd */ 199 /* Log the message to syslogd */
200 if (device & LOG) { 200 if (device & LOG) {
@@ -546,7 +546,7 @@ static pid_t run(char *command, char *terminal, int get_enter)
546 getpid(), terminal, command); 546 getpid(), terminal, command);
547#endif 547#endif
548 548
549#if defined BB_FEATURE_INIT_COREDUMPS 549#if defined CONFIG_FEATURE_INIT_COREDUMPS
550 if (stat (CORE_ENABLE_FLAG_FILE, &sb) == 0) { 550 if (stat (CORE_ENABLE_FLAG_FILE, &sb) == 0) {
551 struct rlimit limit; 551 struct rlimit limit;
552 limit.rlim_cur = RLIM_INFINITY; 552 limit.rlim_cur = RLIM_INFINITY;
@@ -701,7 +701,7 @@ static void ctrlaltdel_signal(int sig)
701static void new_initAction(initActionEnum action, char *process, char *cons) 701static void new_initAction(initActionEnum action, char *process, char *cons)
702{ 702{
703 initAction *newAction; 703 initAction *newAction;
704#ifdef BB_FEATURE_INIT_NORMAL_ORDER 704#ifdef CONFIG_FEATURE_INIT_NORMAL_ORDER
705 initAction *a; 705 initAction *a;
706#endif 706#endif
707 707
@@ -723,7 +723,7 @@ static void new_initAction(initActionEnum action, char *process, char *cons)
723 message(LOG | CONSOLE, "Memory allocation failure\n"); 723 message(LOG | CONSOLE, "Memory allocation failure\n");
724 loop_forever(); 724 loop_forever();
725 } 725 }
726#ifdef BB_FEATURE_INIT_NORMAL_ORDER 726#ifdef CONFIG_FEATURE_INIT_NORMAL_ORDER
727 for (a = initActionList; a && a->nextPtr; a = a->nextPtr) ; 727 for (a = initActionList; a && a->nextPtr; a = a->nextPtr) ;
728 if (a) { 728 if (a) {
729 a->nextPtr = newAction; 729 a->nextPtr = newAction;
@@ -759,16 +759,16 @@ static void delete_initAction(initAction * action)
759 } 759 }
760} 760}
761 761
762/* NOTE that if BB_FEATURE_USE_INITTAB is NOT defined, 762/* NOTE that if CONFIG_FEATURE_USE_INITTAB is NOT defined,
763 * then parse_inittab() simply adds in some default 763 * then parse_inittab() simply adds in some default
764 * actions(i.e., runs INIT_SCRIPT and then starts a pair 764 * actions(i.e., runs INIT_SCRIPT and then starts a pair
765 * of "askfirst" shells). If BB_FEATURE_USE_INITTAB 765 * of "askfirst" shells). If CONFIG_FEATURE_USE_INITTAB
766 * _is_ defined, but /etc/inittab is missing, this 766 * _is_ defined, but /etc/inittab is missing, this
767 * results in the same set of default behaviors. 767 * results in the same set of default behaviors.
768 * */ 768 * */
769static void parse_inittab(void) 769static void parse_inittab(void)
770{ 770{
771#ifdef BB_FEATURE_USE_INITTAB 771#ifdef CONFIG_FEATURE_USE_INITTAB
772 FILE *file; 772 FILE *file;
773 char buf[256], lineAsRead[256], tmpConsole[256]; 773 char buf[256], lineAsRead[256], tmpConsole[256];
774 char *id, *runlev, *action, *process, *eol; 774 char *id, *runlev, *action, *process, *eol;
@@ -782,7 +782,7 @@ static void parse_inittab(void)
782#endif 782#endif
783 /* Reboot on Ctrl-Alt-Del */ 783 /* Reboot on Ctrl-Alt-Del */
784 new_initAction(CTRLALTDEL, "/sbin/reboot", console); 784 new_initAction(CTRLALTDEL, "/sbin/reboot", console);
785#ifdef BB_FEATURE_INIT_NORMAL_ORDER 785#ifdef CONFIG_FEATURE_INIT_NORMAL_ORDER
786 /* Umount all filesystems on halt/reboot */ 786 /* Umount all filesystems on halt/reboot */
787 new_initAction(SHUTDOWN, "/bin/umount -a -r", console); 787 new_initAction(SHUTDOWN, "/bin/umount -a -r", console);
788 /* Swapoff on halt/reboot */ 788 /* Swapoff on halt/reboot */
@@ -808,7 +808,7 @@ static void parse_inittab(void)
808 new_initAction(SYSINIT, INIT_SCRIPT, console); 808 new_initAction(SYSINIT, INIT_SCRIPT, console);
809 809
810 return; 810 return;
811#ifdef BB_FEATURE_USE_INITTAB 811#ifdef CONFIG_FEATURE_USE_INITTAB
812 } 812 }
813 813
814 while (fgets(buf, 255, file) != NULL) { 814 while (fgets(buf, 255, file) != NULL) {
@@ -880,7 +880,7 @@ static void parse_inittab(void)
880 } 880 }
881 } 881 }
882 return; 882 return;
883#endif /* BB_FEATURE_USE_INITTAB */ 883#endif /* CONFIG_FEATURE_USE_INITTAB */
884} 884}
885 885
886 886
@@ -894,7 +894,7 @@ extern int init_main(int argc, char **argv)
894#ifndef DEBUG_INIT 894#ifndef DEBUG_INIT
895 /* Expect to be invoked as init with PID=1 or be invoked as linuxrc */ 895 /* Expect to be invoked as init with PID=1 or be invoked as linuxrc */
896 if (getpid() != 1 896 if (getpid() != 1
897#ifdef BB_FEATURE_LINUXRC 897#ifdef CONFIG_FEATURE_INITRD
898 && strstr(applet_name, "linuxrc") == NULL 898 && strstr(applet_name, "linuxrc") == NULL
899#endif 899#endif
900 ) 900 )
@@ -933,14 +933,14 @@ extern int init_main(int argc, char **argv)
933 /* Hello world */ 933 /* Hello world */
934#ifndef DEBUG_INIT 934#ifndef DEBUG_INIT
935 message( 935 message(
936#if ! defined BB_FEATURE_EXTRA_QUIET 936#if ! defined CONFIG_FEATURE_EXTRA_QUIET
937 CONSOLE| 937 CONSOLE|
938#endif 938#endif
939 LOG, 939 LOG,
940 "init started: %s\r\n", full_version); 940 "init started: %s\r\n", full_version);
941#else 941#else
942 message( 942 message(
943#if ! defined BB_FEATURE_EXTRA_QUIET 943#if ! defined CONFIG_FEATURE_EXTRA_QUIET
944 CONSOLE| 944 CONSOLE|
945#endif 945#endif
946 LOG, 946 LOG,
@@ -966,7 +966,7 @@ extern int init_main(int argc, char **argv)
966 } else { 966 } else {
967 /* Not in single user mode -- see what inittab says */ 967 /* Not in single user mode -- see what inittab says */
968 968
969 /* NOTE that if BB_FEATURE_USE_INITTAB is NOT defined, 969 /* NOTE that if CONFIG_FEATURE_USE_INITTAB is NOT defined,
970 * then parse_inittab() simply adds in some default 970 * then parse_inittab() simply adds in some default
971 * actions(i.e., runs INIT_SCRIPT and then starts a pair 971 * actions(i.e., runs INIT_SCRIPT and then starts a pair
972 * of "askfirst" shells */ 972 * of "askfirst" shells */
diff --git a/init/poweroff.c b/init/poweroff.c
index db20a4572..cec2d6ddd 100644
--- a/init/poweroff.c
+++ b/init/poweroff.c
@@ -26,7 +26,7 @@
26 26
27extern int poweroff_main(int argc, char **argv) 27extern int poweroff_main(int argc, char **argv)
28{ 28{
29#ifdef BB_FEATURE_LINUXRC 29#ifdef CONFIG_FEATURE_INITRD
30 /* don't assume init's pid == 1 */ 30 /* don't assume init's pid == 1 */
31 pid_t *pid = find_pid_by_name("init"); 31 pid_t *pid = find_pid_by_name("init");
32 if (!pid || *pid<=0) { 32 if (!pid || *pid<=0) {
diff --git a/init/reboot.c b/init/reboot.c
index 35afd74ff..a13d42492 100644
--- a/init/reboot.c
+++ b/init/reboot.c
@@ -26,7 +26,7 @@
26 26
27extern int reboot_main(int argc, char **argv) 27extern int reboot_main(int argc, char **argv)
28{ 28{
29#ifdef BB_FEATURE_LINUXRC 29#ifdef CONFIG_FEATURE_INITRD
30 /* don't assume init's pid == 1 */ 30 /* don't assume init's pid == 1 */
31 pid_t *pid = find_pid_by_name("init"); 31 pid_t *pid = find_pid_by_name("init");
32 if (!pid || *pid<=0) { 32 if (!pid || *pid<=0) {