Tweak outdated documentation and comments
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		@@ -10,13 +10,8 @@ of reimplemented Unix commands, and we can do the same trick
 | 
			
		||||
for speeding up busybox shells, and more. NOEXEC and NOFORK applets
 | 
			
		||||
are exactly those applets which are eligible for these tricks.
 | 
			
		||||
 | 
			
		||||
Applet will be subject to NOFORK/NOEXEC tricks if it is marked as such
 | 
			
		||||
in applets.h. FEATURE_PREFER_APPLETS is a config option which
 | 
			
		||||
globally enables usage of NOFORK/NOEXEC tricks.
 | 
			
		||||
If it is enabled, FEATURE_SH_STANDALONE can be enabled too,
 | 
			
		||||
and then shells will use NOFORK/NOEXEC tricks for ordinary commands.
 | 
			
		||||
NB: shell builtins use these tricks regardless of FEATURE_SH_STANDALONE
 | 
			
		||||
or FEATURE_PREFER_APPLETS.
 | 
			
		||||
Applet will be subject to NOFORK/NOEXEC tricks only if it is marked
 | 
			
		||||
as such in applets.src.h or in their inline "//applet:" directives.
 | 
			
		||||
 | 
			
		||||
In C, if you want to call a program and wait for it, use
 | 
			
		||||
spawn_and_wait(argv), BB_EXECVP(prog,argv) or BB_EXECLP(prog,argv0,...).
 | 
			
		||||
@@ -24,6 +19,31 @@ They check whether program name is an applet name and optionally
 | 
			
		||||
do NOFORK/NOEXEC thing depending on configuration.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	Relevant CONFIG options
 | 
			
		||||
 | 
			
		||||
FEATURE_PREFER_APPLETS
 | 
			
		||||
  Globally enables NOFORK/NOEXEC tricks for such programs as xargs
 | 
			
		||||
  and find:
 | 
			
		||||
  BB_EXECVP(cmd, argv) will try to exec /proc/self/exe
 | 
			
		||||
  if command's name matches some applet name;
 | 
			
		||||
  spawn_and_wait(argv) will do NOFORK/NOEXEC tricks
 | 
			
		||||
 | 
			
		||||
//TODO: the above two things probably should have separate options?
 | 
			
		||||
 | 
			
		||||
FEATURE_SH_STANDALONE
 | 
			
		||||
  shells will try to exec /proc/self/exe if command's name matches
 | 
			
		||||
  some applet name; shells will do NOEXEC trick on NOEXEC applets
 | 
			
		||||
 | 
			
		||||
//TODO: split (same as for PREFER_APPLETS)
 | 
			
		||||
 | 
			
		||||
FEATURE_SH_NOFORK
 | 
			
		||||
  shells will do NOFORK trick on NOFORK applets
 | 
			
		||||
 | 
			
		||||
NB: shell builtins use these tricks regardless of FEATURE_SH_STANDALONE,
 | 
			
		||||
FEATURE_PREFER_APPLETS or FEATURE_SH_NOFORK. In effect, builtins
 | 
			
		||||
are "always NOFORK".
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	NOEXEC
 | 
			
		||||
 | 
			
		||||
NOEXEC applet should work correctly if another applet forks and then
 | 
			
		||||
@@ -121,22 +141,3 @@ option_mask32 getting trashed.
 | 
			
		||||
It's the same trusty spawn_and_wait(argv). If FEATURE_PREFER_APPLETS=y,
 | 
			
		||||
it does NOEXEC trick. It resets xfunc_error_retval = 1 and
 | 
			
		||||
logmode = LOGMODE_STDIO in the child.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	Relevant CONFIG options
 | 
			
		||||
 | 
			
		||||
FEATURE_PREFER_APPLETS
 | 
			
		||||
  BB_EXECVP(cmd, argv) will try to exec /proc/self/exe
 | 
			
		||||
  if command's name matches some applet name;
 | 
			
		||||
  spawn_and_wait(argv) will do NOFORK/NOEXEC tricks
 | 
			
		||||
 | 
			
		||||
//TODO: the above two things probably should have separate options?
 | 
			
		||||
 | 
			
		||||
FEATURE_SH_STANDALONE
 | 
			
		||||
  shells will try to exec /proc/self/exe if command's name matches
 | 
			
		||||
  some applet name; shells will do NOEXEC trick on NOEXEC applets
 | 
			
		||||
 | 
			
		||||
//TODO: split (same as for PREFER_APPLETS)
 | 
			
		||||
 | 
			
		||||
FEATURE_SH_NOFORK
 | 
			
		||||
  shells will do NOFORK trick on NOFORK applets
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user