aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorvda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2007-04-09 13:04:50 +0000
committervda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2007-04-09 13:04:50 +0000
commit68a4a5b8a86e3c0f0f371e6d3ad04cb513f10d19 (patch)
tree9aa16703d48b9a7a38ccaec3759a19e95e976383 /include
parent4565afa16cb2dd94d5aac41b6627e0a5240fbbe0 (diff)
downloadbusybox-w32-68a4a5b8a86e3c0f0f371e6d3ad04cb513f10d19.tar.gz
busybox-w32-68a4a5b8a86e3c0f0f371e6d3ad04cb513f10d19.tar.bz2
busybox-w32-68a4a5b8a86e3c0f0f371e6d3ad04cb513f10d19.zip
Implement first instance of NOFORK applet - echo
find: use NOFORK/NOEXEC; small -exec buglet also eliminated vfork_daemon_rexec: honor PREFER_APPLETS echo: small size improvements find -exec echo {} \; with PREFER_APPLETS=y runs 4 times faster git-svn-id: svn://busybox.net/trunk/busybox@18372 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'include')
-rw-r--r--include/applets.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/applets.h b/include/applets.h
index f411aa258..f20b79629 100644
--- a/include/applets.h
+++ b/include/applets.h
@@ -28,24 +28,28 @@ s - suid type:
28# define APPLET_NOUSAGE(name,main,l,s) int main##_main(int argc, char **argv); 28# define APPLET_NOUSAGE(name,main,l,s) int main##_main(int argc, char **argv);
29# define APPLET_ODDNAME(name,main,l,s,name2) int main##_main(int argc, char **argv); 29# define APPLET_ODDNAME(name,main,l,s,name2) int main##_main(int argc, char **argv);
30# define APPLET_NOEXEC(name,main,l,s,name2) int main##_main(int argc, char **argv); 30# define APPLET_NOEXEC(name,main,l,s,name2) int main##_main(int argc, char **argv);
31# define APPLET_NOFORK(name,main,l,s,name2) int main##_main(int argc, char **argv);
31 32
32#elif defined(MAKE_USAGE) && ENABLE_FEATURE_VERBOSE_USAGE 33#elif defined(MAKE_USAGE) && ENABLE_FEATURE_VERBOSE_USAGE
33# define APPLET(name,l,s) name##_trivial_usage "\n\n" name##_full_usage "\0" 34# define APPLET(name,l,s) name##_trivial_usage "\n\n" name##_full_usage "\0"
34# define APPLET_NOUSAGE(name,main,l,s) "\b\0" 35# define APPLET_NOUSAGE(name,main,l,s) "\b\0"
35# define APPLET_ODDNAME(name,main,l,s,name2) name2##_trivial_usage "\n\n" name2##_full_usage "\0" 36# define APPLET_ODDNAME(name,main,l,s,name2) name2##_trivial_usage "\n\n" name2##_full_usage "\0"
36# define APPLET_NOEXEC(name,main,l,s,name2) name2##_trivial_usage "\n\n" name2##_full_usage "\0" 37# define APPLET_NOEXEC(name,main,l,s,name2) name2##_trivial_usage "\n\n" name2##_full_usage "\0"
38# define APPLET_NOFORK(name,main,l,s,name2) name2##_trivial_usage "\n\n" name2##_full_usage "\0"
37 39
38#elif defined(MAKE_USAGE) && !ENABLE_FEATURE_VERBOSE_USAGE 40#elif defined(MAKE_USAGE) && !ENABLE_FEATURE_VERBOSE_USAGE
39# define APPLET(name,l,s) name##_trivial_usage "\0" 41# define APPLET(name,l,s) name##_trivial_usage "\0"
40# define APPLET_NOUSAGE(name,main,l,s) "\b\0" 42# define APPLET_NOUSAGE(name,main,l,s) "\b\0"
41# define APPLET_ODDNAME(name,main,l,s,name2) name2##_trivial_usage "\0" 43# define APPLET_ODDNAME(name,main,l,s,name2) name2##_trivial_usage "\0"
42# define APPLET_NOEXEC(name,main,l,s,name2) name2##_trivial_usage "\0" 44# define APPLET_NOEXEC(name,main,l,s,name2) name2##_trivial_usage "\0"
45# define APPLET_NOFORK(name,main,l,s,name2) name2##_trivial_usage "\0"
43 46
44#elif defined(MAKE_LINKS) 47#elif defined(MAKE_LINKS)
45# define APPLET(name,l,c) LINK l name 48# define APPLET(name,l,c) LINK l name
46# define APPLET_NOUSAGE(name,main,l,s) LINK l name 49# define APPLET_NOUSAGE(name,main,l,s) LINK l name
47# define APPLET_ODDNAME(name,main,l,s,name2) LINK l name 50# define APPLET_ODDNAME(name,main,l,s,name2) LINK l name
48# define APPLET_NOEXEC(name,main,l,s,name2) LINK l name 51# define APPLET_NOEXEC(name,main,l,s,name2) LINK l name
52# define APPLET_NOFORK(name,main,l,s,name2) LINK l name
49 53
50#else 54#else
51 const struct BB_applet applets[] = { /* name,main,location,need_suid */ 55 const struct BB_applet applets[] = { /* name,main,location,need_suid */
@@ -53,6 +57,7 @@ s - suid type:
53# define APPLET_NOUSAGE(name,main,l,s) {#name,main##_main,l,s}, 57# define APPLET_NOUSAGE(name,main,l,s) {#name,main##_main,l,s},
54# define APPLET_ODDNAME(name,main,l,s,name2) {#name,main##_main,l,s}, 58# define APPLET_ODDNAME(name,main,l,s,name2) {#name,main##_main,l,s},
55# define APPLET_NOEXEC(name,main,l,s,name2) {#name,main##_main,l,s,1}, 59# define APPLET_NOEXEC(name,main,l,s,name2) {#name,main##_main,l,s,1},
60# define APPLET_NOFORK(name,main,l,s,name2) {#name,main##_main,l,s,1,1},
56#endif 61#endif
57 62
58#if ENABLE_INSTALL_NO_USR 63#if ENABLE_INSTALL_NO_USR
@@ -118,7 +123,7 @@ USE_DUMPKMAP(APPLET(dumpkmap, _BB_DIR_BIN, _BB_SUID_NEVER))
118USE_APP_DUMPLEASES(APPLET(dumpleases, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) 123USE_APP_DUMPLEASES(APPLET(dumpleases, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
119//USE_E2FSCK(APPLET(e2fsck, _BB_DIR_SBIN, _BB_SUID_NEVER)) 124//USE_E2FSCK(APPLET(e2fsck, _BB_DIR_SBIN, _BB_SUID_NEVER))
120//USE_E2LABEL(APPLET_NOUSAGE(e2label, tune2fs, _BB_DIR_SBIN, _BB_SUID_NEVER)) 125//USE_E2LABEL(APPLET_NOUSAGE(e2label, tune2fs, _BB_DIR_SBIN, _BB_SUID_NEVER))
121USE_ECHO(APPLET_NOEXEC(echo, echo, _BB_DIR_BIN, _BB_SUID_NEVER, echo)) 126USE_ECHO(APPLET_NOFORK(echo, echo, _BB_DIR_BIN, _BB_SUID_NEVER, echo))
122USE_ED(APPLET(ed, _BB_DIR_BIN, _BB_SUID_NEVER)) 127USE_ED(APPLET(ed, _BB_DIR_BIN, _BB_SUID_NEVER))
123USE_FEATURE_GREP_EGREP_ALIAS(APPLET_NOUSAGE(egrep, grep, _BB_DIR_BIN, _BB_SUID_NEVER)) 128USE_FEATURE_GREP_EGREP_ALIAS(APPLET_NOUSAGE(egrep, grep, _BB_DIR_BIN, _BB_SUID_NEVER))
124USE_EJECT(APPLET(eject, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) 129USE_EJECT(APPLET(eject, _BB_DIR_USR_BIN, _BB_SUID_NEVER))