X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=busybox.c;h=67485de8d51c0c7e68d112172d0226b32eaec924;hb=f4acea8cf5175de2292c86b58f2f30d262f14345;hp=c41c350d197eef892b03b5ffeec1e35680f75c19;hpb=d80e851dc05f978dded84b7ac9fcae7066e3ffe0;p=oweals%2Fbusybox.git diff --git a/busybox.c b/busybox.c index c41c350d1..67485de8d 100644 --- a/busybox.c +++ b/busybox.c @@ -3,8 +3,28 @@ #include #include +#ifndef BB_INIT +#undef BB_FEATURE_LINUXRC +#endif + static int been_there_done_that = 0; +/* It has been alledged that doing such things can + * help reduce binary size when staticly linking, + * of course with glibc, this is unlikely as long + * as we use things like printf -- perhaps a printf + * replacement may be in order + */ +#if 0 +void exit (int status) __attribute__ ((noreturn)); +void exit (int status) { _exit(status); }; +void abort (void) __attribute__ ((__noreturn__)); +void abort (void) { _exit(0); }; +int atexit (void (*__func) (void)) { _exit(0); }; +void *__libc_stack_end; +#endif + + static const struct Applet applets[] = { #ifdef BB_BUSYBOX //bin @@ -27,6 +47,9 @@ static const struct Applet applets[] = { #ifdef BB_CLEAR //usr/bin {"clear", clear_main}, #endif +#ifdef BB_CHVT //usr/bin + {"chvt", chvt_main}, +#endif #ifdef BB_CP //bin {"cp", cp_main}, #endif @@ -42,17 +65,23 @@ static const struct Applet applets[] = { #ifdef BB_DMESG //bin {"dmesg", dmesg_main}, #endif +#ifdef BB_DU //bin + {"du", du_main}, +#endif #ifdef BB_DUTMP //usr/sbin {"dutmp", dutmp_main}, #endif +#ifdef BB_FBSET //usr/sbin + {"fbset", fbset_main}, +#endif #ifdef BB_FDFLUSH //bin {"fdflush", fdflush_main}, #endif #ifdef BB_FIND //usr/bin {"find", find_main}, #endif -#ifdef BB_CHVT //usr/bin - {"chvt", chvt_main}, +#ifdef BB_FREE //usr/bin + {"free", free_main}, #endif #ifdef BB_DEALLOCVT //usr/bin {"deallocvt", deallocvt_main}, @@ -69,9 +98,24 @@ static const struct Applet applets[] = { #ifdef BB_HALT //sbin {"halt", halt_main}, #endif +#ifdef BB_HEAD //bin + {"head", head_main}, +#endif +#ifdef BB_HOSTID //usr/bin + {"hostid", hostid_main}, +#endif +#ifdef BB_HOSTNAME //bin + {"hostname", hostname_main}, +#endif #ifdef BB_INIT //sbin {"init", init_main}, #endif +#ifdef BB_INSMOD //sbin + {"insmod", insmod_main}, +#endif +#ifdef BB_FEATURE_LINUXRC // + {"linuxrc", init_main}, +#endif #ifdef BB_KILL //bin {"kill", kill_main}, #endif @@ -81,6 +125,9 @@ static const struct Applet applets[] = { #ifdef BB_LN //bin {"ln", ln_main}, #endif +#ifdef BB_LOADACM //usr/bin + {"loadacm", loadacm_main}, +#endif #ifdef BB_LOADFONT //usr/bin {"loadfont", loadfont_main}, #endif @@ -90,6 +137,9 @@ static const struct Applet applets[] = { #ifdef BB_LS //bin {"ls", ls_main}, #endif +#ifdef BB_LSMOD //sbin + {"lsmod", lsmod_main}, +#endif #ifdef BB_MAKEDEVS //sbin {"makedevs", makedevs_main}, #endif @@ -99,6 +149,9 @@ static const struct Applet applets[] = { #ifdef BB_MKDIR //bin {"mkdir", mkdir_main}, #endif +#ifdef BB_MKFIFO //usr/bin + {"mkfifo", mkfifo_main}, +#endif #ifdef BB_MKNOD //bin {"mknod", mknod_main}, #endif @@ -120,6 +173,12 @@ static const struct Applet applets[] = { #ifdef BB_MV //bin {"mv", mv_main}, #endif +#ifdef BB_PING //bin + {"ping", ping_main}, +#endif +#ifdef BB_POWEROFF //sbin + {"poweroff", poweroff_main}, +#endif #ifdef BB_PRINTF //usr/bin {"printf", printf_main}, #endif @@ -138,6 +197,9 @@ static const struct Applet applets[] = { #ifdef BB_RMDIR //bin {"rmdir", rmdir_main}, #endif +#ifdef BB_RMMOD //sbin + {"rmmod", rmmod_main}, +#endif #ifdef BB_SFDISK //sbin {"fdisk", sfdisk_main}, {"sfdisk", sfdisk_main}, @@ -148,15 +210,33 @@ static const struct Applet applets[] = { #ifdef BB_SLEEP //bin {"sleep", sleep_main}, #endif -#ifdef BB_TAR //bin - {"tar", tar_main}, +#ifdef BB_SORT //bin + {"sort", sort_main}, +#endif +#ifdef BB_SYNC //bin + {"sync", sync_main}, +#endif +#ifdef BB_SYSLOGD //sbin + {"syslogd", syslogd_main}, +#endif +#ifdef BB_LOGGER //usr/bin + {"logger", logger_main}, +#endif +#ifdef BB_LOGNAME //usr/bin + {"logname", logname_main}, #endif #ifdef BB_SWAPONOFF //sbin {"swapon", swap_on_off_main}, {"swapoff", swap_on_off_main}, #endif -#ifdef BB_SYNC //bin - {"sync", sync_main}, +#ifdef BB_TAIL //usr/bin + {"tail", tail_main}, +#endif +#ifdef BB_TAR //bin + {"tar", tar_main}, +#endif +#ifdef BB_TEE //bin + {"tee", tee_main}, #endif #ifdef BB_TOUCH //usr/bin {"touch", touch_main}, @@ -165,15 +245,30 @@ static const struct Applet applets[] = { {"true", true_main}, {"false", false_main}, #endif +#ifdef BB_TTY //usr/bin + {"tty", tty_main}, +#endif #ifdef BB_UNAME //bin {"uname", uname_main}, #endif #ifdef BB_UMOUNT //bin {"umount", umount_main}, #endif +#ifdef BB_UNIQ //bin + {"uniq", uniq_main}, +#endif #ifdef BB_UPDATE //sbin {"update", update_main}, #endif +#ifdef BB_WC //usr/bin + {"wc", wc_main}, +#endif +#ifdef BB_WHOAMI //usr/bin + {"whoami", whoami_main}, +#endif +#ifdef BB_YES //usr/bin + {"yes", yes_main}, +#endif #ifdef BB_GUNZIP //bin {"zcat", gunzip_main}, {"gunzip", gunzip_main}, @@ -184,6 +279,8 @@ static const struct Applet applets[] = { {0} }; + + int main(int argc, char **argv) { char *s = argv[0];