Trailing whitespace removal over entire tree
This commit is contained in:
parent
3821fb13ea
commit
f7996f3b70
20
Makefile
20
Makefile
@ -71,7 +71,7 @@ endif
|
|||||||
# In both cases the working directory must be the root of the kernel src.
|
# In both cases the working directory must be the root of the kernel src.
|
||||||
# 1) O=
|
# 1) O=
|
||||||
# Use "make O=dir/to/store/output/files/"
|
# Use "make O=dir/to/store/output/files/"
|
||||||
#
|
#
|
||||||
# 2) Set KBUILD_OUTPUT
|
# 2) Set KBUILD_OUTPUT
|
||||||
# Set the environment variable KBUILD_OUTPUT to point to the directory
|
# Set the environment variable KBUILD_OUTPUT to point to the directory
|
||||||
# where the output files shall be placed.
|
# where the output files shall be placed.
|
||||||
@ -145,7 +145,7 @@ export srctree objtree VPATH TOPDIR
|
|||||||
# SUBARCH tells the usermode build what the underlying arch is. That is set
|
# SUBARCH tells the usermode build what the underlying arch is. That is set
|
||||||
# first, and if a usermode build is happening, the "ARCH=um" on the command
|
# first, and if a usermode build is happening, the "ARCH=um" on the command
|
||||||
# line overrides the setting of ARCH below. If a native build is happening,
|
# line overrides the setting of ARCH below. If a native build is happening,
|
||||||
# then ARCH is assigned, getting whatever value it gets normally, and
|
# then ARCH is assigned, getting whatever value it gets normally, and
|
||||||
# SUBARCH is subsequently ignored.
|
# SUBARCH is subsequently ignored.
|
||||||
|
|
||||||
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
|
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
|
||||||
@ -229,7 +229,7 @@ export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD
|
|||||||
# cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
|
# cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
|
||||||
#
|
#
|
||||||
# If $(quiet) is empty, the whole command will be printed.
|
# If $(quiet) is empty, the whole command will be printed.
|
||||||
# If it is set to "quiet_", only the short version will be printed.
|
# If it is set to "quiet_", only the short version will be printed.
|
||||||
# If it is set to "silent_", nothing wil be printed at all, since
|
# If it is set to "silent_", nothing wil be printed at all, since
|
||||||
# the variable $(silent_cmd_cc_o_c) doesn't exist.
|
# the variable $(silent_cmd_cc_o_c) doesn't exist.
|
||||||
#
|
#
|
||||||
@ -313,7 +313,7 @@ export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION \
|
|||||||
HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
||||||
|
|
||||||
export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
|
export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
|
||||||
export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
|
export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
|
||||||
export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
|
export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
|
||||||
|
|
||||||
# When compiling out-of-tree modules, put MODVERDIR in the module
|
# When compiling out-of-tree modules, put MODVERDIR in the module
|
||||||
@ -351,7 +351,7 @@ endif
|
|||||||
# catch them early, and hand them over to scripts/kconfig/Makefile
|
# catch them early, and hand them over to scripts/kconfig/Makefile
|
||||||
# It is allowed to specify more targets when calling make, including
|
# It is allowed to specify more targets when calling make, including
|
||||||
# mixing *config targets and build targets.
|
# mixing *config targets and build targets.
|
||||||
# For example 'make oldconfig all'.
|
# For example 'make oldconfig all'.
|
||||||
# Detect when mixed targets is specified, and make a second invocation
|
# Detect when mixed targets is specified, and make a second invocation
|
||||||
# of make so .config is not included in this case either (for *config).
|
# of make so .config is not included in this case either (for *config).
|
||||||
|
|
||||||
@ -567,7 +567,7 @@ quiet_cmd_busybox__ ?= LINK $@
|
|||||||
-Wl,--start-group $(busybox-all) -Wl,--end-group
|
-Wl,--start-group $(busybox-all) -Wl,--end-group
|
||||||
|
|
||||||
# Generate System.map
|
# Generate System.map
|
||||||
quiet_cmd_sysmap = SYSMAP
|
quiet_cmd_sysmap = SYSMAP
|
||||||
cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap
|
cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap
|
||||||
|
|
||||||
# Link of busybox
|
# Link of busybox
|
||||||
@ -623,7 +623,7 @@ endef
|
|||||||
# First command is ':' to allow us to use + in front of this rule
|
# First command is ':' to allow us to use + in front of this rule
|
||||||
cmd_ksym_ld = $(cmd_busybox__)
|
cmd_ksym_ld = $(cmd_busybox__)
|
||||||
define rule_ksym_ld
|
define rule_ksym_ld
|
||||||
:
|
:
|
||||||
+$(call cmd,busybox_version)
|
+$(call cmd,busybox_version)
|
||||||
$(call cmd,busybox__)
|
$(call cmd,busybox__)
|
||||||
$(Q)echo 'cmd_$@ := $(cmd_busybox__)' > $(@D)/.$(@F).cmd
|
$(Q)echo 'cmd_$@ := $(cmd_busybox__)' > $(@D)/.$(@F).cmd
|
||||||
@ -674,7 +674,7 @@ busybox: busybox_unstripped
|
|||||||
$(Q)$(STRIP) -s --remove-section=.note --remove-section=.comment \
|
$(Q)$(STRIP) -s --remove-section=.note --remove-section=.comment \
|
||||||
busybox_unstripped -o $@
|
busybox_unstripped -o $@
|
||||||
|
|
||||||
# The actual objects are generated when descending,
|
# The actual objects are generated when descending,
|
||||||
# make sure no implicit rule kicks in
|
# make sure no implicit rule kicks in
|
||||||
$(sort $(busybox-all)): $(busybox-dirs) ;
|
$(sort $(busybox-all)): $(busybox-dirs) ;
|
||||||
|
|
||||||
@ -707,7 +707,7 @@ _localver = $(foreach f, $(__localver), $(if $(findstring ~, $(f)),,$(f)))
|
|||||||
localver = $(subst $(space),, \
|
localver = $(subst $(space),, \
|
||||||
$(shell cat /dev/null $(_localver)) \
|
$(shell cat /dev/null $(_localver)) \
|
||||||
$(patsubst "%",%,$(CONFIG_LOCALVERSION)))
|
$(patsubst "%",%,$(CONFIG_LOCALVERSION)))
|
||||||
|
|
||||||
# If CONFIG_LOCALVERSION_AUTO is set scripts/setlocalversion is called
|
# If CONFIG_LOCALVERSION_AUTO is set scripts/setlocalversion is called
|
||||||
# and if the SCM is know a tag from the SCM is appended.
|
# and if the SCM is know a tag from the SCM is appended.
|
||||||
# The appended tag is determinded by the SCM used.
|
# The appended tag is determinded by the SCM used.
|
||||||
@ -1235,7 +1235,7 @@ endif
|
|||||||
$(build)=$(build-dir) $(@:.ko=.o)
|
$(build)=$(build-dir) $(@:.ko=.o)
|
||||||
$(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
|
$(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
|
||||||
|
|
||||||
# FIXME Should go into a make.lib or something
|
# FIXME Should go into a make.lib or something
|
||||||
# ===========================================================================
|
# ===========================================================================
|
||||||
|
|
||||||
quiet_cmd_rmdirs = $(if $(wildcard $(rm-dirs)),CLEAN $(wildcard $(rm-dirs)))
|
quiet_cmd_rmdirs = $(if $(wildcard $(rm-dirs)),CLEAN $(wildcard $(rm-dirs)))
|
||||||
|
@ -792,13 +792,13 @@ static void check_match(IPos start, IPos match, int length)
|
|||||||
typedef uch extra_bits_t;
|
typedef uch extra_bits_t;
|
||||||
|
|
||||||
/* extra bits for each length code */
|
/* extra bits for each length code */
|
||||||
static const extra_bits_t extra_lbits[LENGTH_CODES]= {
|
static const extra_bits_t extra_lbits[LENGTH_CODES]= {
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4,
|
0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4,
|
||||||
4, 4, 5, 5, 5, 5, 0
|
4, 4, 5, 5, 5, 5, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
/* extra bits for each distance code */
|
/* extra bits for each distance code */
|
||||||
static const extra_bits_t extra_dbits[D_CODES] = {
|
static const extra_bits_t extra_dbits[D_CODES] = {
|
||||||
0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,
|
0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,
|
||||||
10, 10, 11, 11, 12, 12, 13, 13
|
10, 10, 11, 11, 12, 12, 13, 13
|
||||||
};
|
};
|
||||||
|
@ -673,7 +673,7 @@ static void handle_SIGCHLD(int status)
|
|||||||
if (WIFEXITED(status) && WEXITSTATUS(status)==0)
|
if (WIFEXITED(status) && WEXITSTATUS(status)==0)
|
||||||
/* child exited with 0 */
|
/* child exited with 0 */
|
||||||
return;
|
return;
|
||||||
/* Cannot happen?
|
/* Cannot happen?
|
||||||
if(!WIFSIGNALED(status) && !WIFEXITED(status)) return; */
|
if(!WIFSIGNALED(status) && !WIFEXITED(status)) return; */
|
||||||
child_error = 1;
|
child_error = 1;
|
||||||
}
|
}
|
||||||
|
@ -93,7 +93,7 @@ int chown_main(int argc, char **argv)
|
|||||||
fileAction, // file action
|
fileAction, // file action
|
||||||
fileAction, // dir action
|
fileAction, // dir action
|
||||||
NULL, // user data
|
NULL, // user data
|
||||||
0) // depth
|
0) // depth
|
||||||
) {
|
) {
|
||||||
retval = EXIT_FAILURE;
|
retval = EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
@ -146,7 +146,7 @@ int uudecode_main(int argc, char **argv)
|
|||||||
FILE *dst_stream;
|
FILE *dst_stream;
|
||||||
int mode;
|
int mode;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (strncmp(line, "begin-base64 ", 13) == 0) {
|
if (strncmp(line, "begin-base64 ", 13) == 0) {
|
||||||
line_ptr = line + 13;
|
line_ptr = line + 13;
|
||||||
decode_fn_ptr = read_base64;
|
decode_fn_ptr = read_base64;
|
||||||
|
@ -82,7 +82,7 @@ have additions to this FAQ document, we would love to add them,
|
|||||||
to determine which applet to run, as shown above.
|
to determine which applet to run, as shown above.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
BusyBox also has a feature called the
|
BusyBox also has a feature called the
|
||||||
<a name="standalone_shell">"standalone shell"</a>, where the busybox
|
<a name="standalone_shell">"standalone shell"</a>, where the busybox
|
||||||
shell runs any built-in applets before checking the command path. This
|
shell runs any built-in applets before checking the command path. This
|
||||||
feature is also enabled by "make allyesconfig", and to try it out run
|
feature is also enabled by "make allyesconfig", and to try it out run
|
||||||
@ -261,7 +261,7 @@ within each applet. More build coverage testing.</p></li>
|
|||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
<p>
|
<p>
|
||||||
<h2><a name="external">where can i find other small utilities since busybox
|
<h2><a name="external">where can i find other small utilities since busybox
|
||||||
does not include the features i want?</a></h2>
|
does not include the features i want?</a></h2>
|
||||||
<p>
|
<p>
|
||||||
we maintain such a <a href="tinyutils.html">list</a> on this site!
|
we maintain such a <a href="tinyutils.html">list</a> on this site!
|
||||||
@ -941,7 +941,7 @@ text console scrolling...)</p>
|
|||||||
|
|
||||||
<p>So will data always be read from the far end of a pipe at the
|
<p>So will data always be read from the far end of a pipe at the
|
||||||
same chunk sizes it was written in? Nope. Don't rely on that. For one
|
same chunk sizes it was written in? Nope. Don't rely on that. For one
|
||||||
counterexample, see <a href="http://www.faqs.org/rfcs/rfc896.html">rfc 896
|
counterexample, see <a href="http://www.faqs.org/rfcs/rfc896.html">rfc 896
|
||||||
for Nagle's algorithm</a>, which waits a fraction of a second or so before
|
for Nagle's algorithm</a>, which waits a fraction of a second or so before
|
||||||
sending out small amounts of data through a TCP/IP connection in case more
|
sending out small amounts of data through a TCP/IP connection in case more
|
||||||
data comes in that can be merged into the same packet. (In case you were
|
data comes in that can be merged into the same packet. (In case you were
|
||||||
@ -1089,7 +1089,7 @@ aaronl :Aaron Lehmann
|
|||||||
beppu :John Beppu
|
beppu :John Beppu
|
||||||
dwhedon :David Whedon
|
dwhedon :David Whedon
|
||||||
erik :Erik Andersen
|
erik :Erik Andersen
|
||||||
gfeldman :Gennady Feldman
|
gfeldman :Gennady Feldman
|
||||||
jimg :Jim Gleason
|
jimg :Jim Gleason
|
||||||
kraai :Matt Kraai
|
kraai :Matt Kraai
|
||||||
markw :Mark Whitley
|
markw :Mark Whitley
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
<li>grep: added -r, fixed -h
|
<li>grep: added -r, fixed -h
|
||||||
<li>watch: make it exec child like standard one does (was totally
|
<li>watch: make it exec child like standard one does (was totally
|
||||||
incompatible)
|
incompatible)
|
||||||
<li>tar: fix limitations which were preventing bbox tar usage
|
<li>tar: fix limitations which were preventing bbox tar usage
|
||||||
on big directories: long names and linknames, pax headers
|
on big directories: long names and linknames, pax headers
|
||||||
(Linux kernel tarballs have that). Fixed a number of obscure bugs.
|
(Linux kernel tarballs have that). Fixed a number of obscure bugs.
|
||||||
Raised max file limit (now 64Gb). Security fixes (/../ attacks).
|
Raised max file limit (now 64Gb). Security fixes (/../ attacks).
|
||||||
|
@ -40,7 +40,7 @@ scripts using <code>Control-C</code>. Or have interactive applications
|
|||||||
that don't behave right when sending SIGINT. Examples are emacs'es
|
that don't behave right when sending SIGINT. Examples are emacs'es
|
||||||
that die on Control-g or shellscript statements that sometimes are
|
that die on Control-g or shellscript statements that sometimes are
|
||||||
executed and sometimes not, apparently not determined by the user's
|
executed and sometimes not, apparently not determined by the user's
|
||||||
intention.
|
intention.
|
||||||
|
|
||||||
|
|
||||||
</td></tr><tr><th valign=top align=left>Required knowledge: </th>
|
</td></tr><tr><th valign=top align=left>Required knowledge: </th>
|
||||||
@ -101,7 +101,7 @@ just exit.
|
|||||||
|
|
||||||
<p>Now imagine the user hits C-c while a shellscript is executing its
|
<p>Now imagine the user hits C-c while a shellscript is executing its
|
||||||
first program. The following programs receive SIGINT: program1 and
|
first program. The following programs receive SIGINT: program1 and
|
||||||
also the shell executing the script. program1 exits.
|
also the shell executing the script. program1 exits.
|
||||||
|
|
||||||
<p>But what should the shell do? If we say that it is only the
|
<p>But what should the shell do? If we say that it is only the
|
||||||
innermost's programs business to react on SIGINT, the shell will do
|
innermost's programs business to react on SIGINT, the shell will do
|
||||||
@ -351,7 +351,7 @@ that do not properly communicate the required information up to the
|
|||||||
calling program.
|
calling program.
|
||||||
|
|
||||||
<p>Unless a program messes with signal handling, the system does this
|
<p>Unless a program messes with signal handling, the system does this
|
||||||
automatically.
|
automatically.
|
||||||
|
|
||||||
<p>There are programs that want to exit on SIGINT, but they don't let
|
<p>There are programs that want to exit on SIGINT, but they don't let
|
||||||
the system do the automatic exit, because they want to do some
|
the system do the automatic exit, because they want to do some
|
||||||
@ -425,7 +425,7 @@ Notes:
|
|||||||
special numeric value. People often assume this since the manuals for
|
special numeric value. People often assume this since the manuals for
|
||||||
shells often list some return value for exactly this. But this is just
|
shells often list some return value for exactly this. But this is just
|
||||||
a convention for your shell script. It does not work from one UNIX API
|
a convention for your shell script. It does not work from one UNIX API
|
||||||
program to another.
|
program to another.
|
||||||
|
|
||||||
<P>All that happens is that the shell sets the "$?" variable to a
|
<P>All that happens is that the shell sets the "$?" variable to a
|
||||||
special numeric value for the convenience of your script, because your
|
special numeric value for the convenience of your script, because your
|
||||||
@ -571,7 +571,7 @@ comments the scripts echo.
|
|||||||
<tr valign=top align=left>
|
<tr valign=top align=left>
|
||||||
<td>IUE</td>
|
<td>IUE</td>
|
||||||
<td>The shell executing a script exits immediately if it receives
|
<td>The shell executing a script exits immediately if it receives
|
||||||
SIGINT.</td>
|
SIGINT.</td>
|
||||||
<td>4.4BSD ash (ash), NetBSD, FreeBSD prior to 3.0/22.8</td>
|
<td>4.4BSD ash (ash), NetBSD, FreeBSD prior to 3.0/22.8</td>
|
||||||
<td>The editor session is lost and subsequent commands are not
|
<td>The editor session is lost and subsequent commands are not
|
||||||
executed.</td>
|
executed.</td>
|
||||||
@ -605,7 +605,7 @@ will further commands from the script be executed. </td>
|
|||||||
signal (either it had the default handler for SIGINT or it killed
|
signal (either it had the default handler for SIGINT or it killed
|
||||||
itself). </td>
|
itself). </td>
|
||||||
<td>bash (Linux /bin/sh), most commercial /bin/sh, FreeBSD /bin/sh
|
<td>bash (Linux /bin/sh), most commercial /bin/sh, FreeBSD /bin/sh
|
||||||
from 3.0/2.2.8.</td>
|
from 3.0/2.2.8.</td>
|
||||||
<td>The editor continues as normal and subsequent commands are
|
<td>The editor continues as normal and subsequent commands are
|
||||||
executed. </td>
|
executed. </td>
|
||||||
<td>The editor continues as normal and subsequent commands are
|
<td>The editor continues as normal and subsequent commands are
|
||||||
@ -615,7 +615,7 @@ child exits, but only if the child exited with signal status. If
|
|||||||
the child did a normal exit (even if it received SIGINT, but catches
|
the child did a normal exit (even if it received SIGINT, but catches
|
||||||
it), the script will continue. </td>
|
it), the script will continue. </td>
|
||||||
<td>The child must be implemented right, or the user will not be able
|
<td>The child must be implemented right, or the user will not be able
|
||||||
to break shell scripts reliably.</td>
|
to break shell scripts reliably.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
232
docs/tar_pax.txt
232
docs/tar_pax.txt
@ -4,197 +4,197 @@ for everything (filename, uid, filesize etc) which can overflow.
|
|||||||
|
|
||||||
pax Header Block
|
pax Header Block
|
||||||
|
|
||||||
The pax header block shall be identical to the ustar header block
|
The pax header block shall be identical to the ustar header block
|
||||||
described in ustar Interchange Format, except that two additional
|
described in ustar Interchange Format, except that two additional
|
||||||
typeflag values are defined:
|
typeflag values are defined:
|
||||||
|
|
||||||
x
|
x
|
||||||
Represents extended header records for the following file in
|
Represents extended header records for the following file in
|
||||||
the archive (which shall have its own ustar header block).
|
the archive (which shall have its own ustar header block).
|
||||||
|
|
||||||
g
|
g
|
||||||
Represents global extended header records for the following
|
Represents global extended header records for the following
|
||||||
files in the archive. Each value shall affect all subsequent files
|
files in the archive. Each value shall affect all subsequent files
|
||||||
that do not override that value in their own extended header
|
that do not override that value in their own extended header
|
||||||
record and until another global extended header record is reached
|
record and until another global extended header record is reached
|
||||||
that provides another value for the same field. The typeflag g
|
that provides another value for the same field. The typeflag g
|
||||||
global headers should not be used with interchange media that
|
global headers should not be used with interchange media that
|
||||||
could suffer partial data loss in transporting the archive.
|
could suffer partial data loss in transporting the archive.
|
||||||
|
|
||||||
For both of these types, the size field shall be the size of the
|
For both of these types, the size field shall be the size of the
|
||||||
extended header records in octets. The other fields in the header
|
extended header records in octets. The other fields in the header
|
||||||
block are not meaningful to this version of the pax utility.
|
block are not meaningful to this version of the pax utility.
|
||||||
However, if this archive is read by a pax utility conforming to
|
However, if this archive is read by a pax utility conforming to
|
||||||
the ISO POSIX-2:1993 standard, the header block fields are used to
|
the ISO POSIX-2:1993 standard, the header block fields are used to
|
||||||
create a regular file that contains the extended header records as
|
create a regular file that contains the extended header records as
|
||||||
data. Therefore, header block field values should be selected to
|
data. Therefore, header block field values should be selected to
|
||||||
provide reasonable file access to this regular file.
|
provide reasonable file access to this regular file.
|
||||||
|
|
||||||
A further difference from the ustar header block is that data
|
A further difference from the ustar header block is that data
|
||||||
blocks for files of typeflag 1 (the digit one) (hard link) may be
|
blocks for files of typeflag 1 (the digit one) (hard link) may be
|
||||||
included, which means that the size field may be greater than
|
included, which means that the size field may be greater than
|
||||||
zero.
|
zero.
|
||||||
|
|
||||||
pax Extended Header
|
pax Extended Header
|
||||||
|
|
||||||
An extended header shall consist of one or more records, each
|
An extended header shall consist of one or more records, each
|
||||||
constructed as follows:
|
constructed as follows:
|
||||||
|
|
||||||
"%d %s=%s\n", <length>, <keyword>, <value>
|
"%d %s=%s\n", <length>, <keyword>, <value>
|
||||||
|
|
||||||
The <length> field shall be the decimal length of the extended
|
The <length> field shall be the decimal length of the extended
|
||||||
header record in octets, including length string itself and the
|
header record in octets, including length string itself and the
|
||||||
trailing <newline>.
|
trailing <newline>.
|
||||||
|
|
||||||
[skip]
|
[skip]
|
||||||
|
|
||||||
atime
|
atime
|
||||||
The file access time for the following file(s), equivalent to
|
The file access time for the following file(s), equivalent to
|
||||||
the value of the st_atime member of the stat structure for a file,
|
the value of the st_atime member of the stat structure for a file,
|
||||||
as described by the stat() function. The access time shall be
|
as described by the stat() function. The access time shall be
|
||||||
restored if the process has the appropriate privilege required to
|
restored if the process has the appropriate privilege required to
|
||||||
do so. The format of the <value> shall be as described in pax
|
do so. The format of the <value> shall be as described in pax
|
||||||
Extended Header File Times.
|
Extended Header File Times.
|
||||||
|
|
||||||
charset
|
charset
|
||||||
The name of the character set used to encode the data in the
|
The name of the character set used to encode the data in the
|
||||||
following file(s).
|
following file(s).
|
||||||
|
|
||||||
The encoding is included in an extended header for information
|
The encoding is included in an extended header for information
|
||||||
only; when pax is used as described in IEEE Std 1003.1-2001, it
|
only; when pax is used as described in IEEE Std 1003.1-2001, it
|
||||||
shall not translate the file data into any other encoding. The
|
shall not translate the file data into any other encoding. The
|
||||||
BINARY entry indicates unencoded binary data.
|
BINARY entry indicates unencoded binary data.
|
||||||
|
|
||||||
When used in write or copy mode, it is implementation-defined
|
When used in write or copy mode, it is implementation-defined
|
||||||
whether pax includes a charset extended header record for a file.
|
whether pax includes a charset extended header record for a file.
|
||||||
|
|
||||||
comment
|
comment
|
||||||
A series of characters used as a comment. All characters in
|
A series of characters used as a comment. All characters in
|
||||||
the <value> field shall be ignored by pax.
|
the <value> field shall be ignored by pax.
|
||||||
|
|
||||||
gid
|
gid
|
||||||
The group ID of the group that owns the file, expressed as a
|
The group ID of the group that owns the file, expressed as a
|
||||||
decimal number using digits from the ISO/IEC 646:1991 standard.
|
decimal number using digits from the ISO/IEC 646:1991 standard.
|
||||||
This record shall override the gid field in the following header
|
This record shall override the gid field in the following header
|
||||||
block(s). When used in write or copy mode, pax shall include a gid
|
block(s). When used in write or copy mode, pax shall include a gid
|
||||||
extended header record for each file whose group ID is greater
|
extended header record for each file whose group ID is greater
|
||||||
than 2097151 (octal 7777777).
|
than 2097151 (octal 7777777).
|
||||||
|
|
||||||
gname
|
gname
|
||||||
The group of the file(s), formatted as a group name in the
|
The group of the file(s), formatted as a group name in the
|
||||||
group database. This record shall override the gid and gname
|
group database. This record shall override the gid and gname
|
||||||
fields in the following header block(s), and any gid extended
|
fields in the following header block(s), and any gid extended
|
||||||
header record. When used in read, copy, or list mode, pax shall
|
header record. When used in read, copy, or list mode, pax shall
|
||||||
translate the name from the UTF-8 encoding in the header record to
|
translate the name from the UTF-8 encoding in the header record to
|
||||||
the character set appropriate for the group database on the
|
the character set appropriate for the group database on the
|
||||||
receiving system. If any of the UTF-8 characters cannot be
|
receiving system. If any of the UTF-8 characters cannot be
|
||||||
translated, and if the -o invalid= UTF-8 option is not specified,
|
translated, and if the -o invalid= UTF-8 option is not specified,
|
||||||
the results are implementation-defined. When used in write or copy
|
the results are implementation-defined. When used in write or copy
|
||||||
mode, pax shall include a gname extended header record for each
|
mode, pax shall include a gname extended header record for each
|
||||||
file whose group name cannot be represented entirely with the
|
file whose group name cannot be represented entirely with the
|
||||||
letters and digits of the portable character set.
|
letters and digits of the portable character set.
|
||||||
|
|
||||||
linkpath
|
linkpath
|
||||||
The pathname of a link being created to another file, of any
|
The pathname of a link being created to another file, of any
|
||||||
type, previously archived. This record shall override the linkname
|
type, previously archived. This record shall override the linkname
|
||||||
field in the following ustar header block(s). The following ustar
|
field in the following ustar header block(s). The following ustar
|
||||||
header block shall determine the type of link created. If typeflag
|
header block shall determine the type of link created. If typeflag
|
||||||
of the following header block is 1, it shall be a hard link. If
|
of the following header block is 1, it shall be a hard link. If
|
||||||
typeflag is 2, it shall be a symbolic link and the linkpath value
|
typeflag is 2, it shall be a symbolic link and the linkpath value
|
||||||
shall be the contents of the symbolic link. The pax utility shall
|
shall be the contents of the symbolic link. The pax utility shall
|
||||||
translate the name of the link (contents of the symbolic link)
|
translate the name of the link (contents of the symbolic link)
|
||||||
from the UTF-8 encoding to the character set appropriate for the
|
from the UTF-8 encoding to the character set appropriate for the
|
||||||
local file system. When used in write or copy mode, pax shall
|
local file system. When used in write or copy mode, pax shall
|
||||||
include a linkpath extended header record for each link whose
|
include a linkpath extended header record for each link whose
|
||||||
pathname cannot be represented entirely with the members of the
|
pathname cannot be represented entirely with the members of the
|
||||||
portable character set other than NUL.
|
portable character set other than NUL.
|
||||||
|
|
||||||
mtime
|
mtime
|
||||||
The file modification time of the following file(s),
|
The file modification time of the following file(s),
|
||||||
equivalent to the value of the st_mtime member of the stat
|
equivalent to the value of the st_mtime member of the stat
|
||||||
structure for a file, as described in the stat() function. This
|
structure for a file, as described in the stat() function. This
|
||||||
record shall override the mtime field in the following header
|
record shall override the mtime field in the following header
|
||||||
block(s). The modification time shall be restored if the process
|
block(s). The modification time shall be restored if the process
|
||||||
has the appropriate privilege required to do so. The format of the
|
has the appropriate privilege required to do so. The format of the
|
||||||
<value> shall be as described in pax Extended Header File Times.
|
<value> shall be as described in pax Extended Header File Times.
|
||||||
|
|
||||||
path
|
path
|
||||||
The pathname of the following file(s). This record shall
|
The pathname of the following file(s). This record shall
|
||||||
override the name and prefix fields in the following header
|
override the name and prefix fields in the following header
|
||||||
block(s). The pax utility shall translate the pathname of the file
|
block(s). The pax utility shall translate the pathname of the file
|
||||||
from the UTF-8 encoding to the character set appropriate for the
|
from the UTF-8 encoding to the character set appropriate for the
|
||||||
local file system.
|
local file system.
|
||||||
|
|
||||||
When used in write or copy mode, pax shall include a path
|
When used in write or copy mode, pax shall include a path
|
||||||
extended header record for each file whose pathname cannot be
|
extended header record for each file whose pathname cannot be
|
||||||
represented entirely with the members of the portable character
|
represented entirely with the members of the portable character
|
||||||
set other than NUL.
|
set other than NUL.
|
||||||
|
|
||||||
realtime.any
|
realtime.any
|
||||||
The keywords prefixed by "realtime." are reserved for future
|
The keywords prefixed by "realtime." are reserved for future
|
||||||
standardization.
|
standardization.
|
||||||
|
|
||||||
security.any
|
security.any
|
||||||
The keywords prefixed by "security." are reserved for future
|
The keywords prefixed by "security." are reserved for future
|
||||||
standardization.
|
standardization.
|
||||||
|
|
||||||
size
|
size
|
||||||
The size of the file in octets, expressed as a decimal number
|
The size of the file in octets, expressed as a decimal number
|
||||||
using digits from the ISO/IEC 646:1991 standard. This record shall
|
using digits from the ISO/IEC 646:1991 standard. This record shall
|
||||||
override the size field in the following header block(s). When
|
override the size field in the following header block(s). When
|
||||||
used in write or copy mode, pax shall include a size extended
|
used in write or copy mode, pax shall include a size extended
|
||||||
header record for each file with a size value greater than
|
header record for each file with a size value greater than
|
||||||
8589934591 (octal 77777777777).
|
8589934591 (octal 77777777777).
|
||||||
|
|
||||||
uid
|
uid
|
||||||
The user ID of the file owner, expressed as a decimal number
|
The user ID of the file owner, expressed as a decimal number
|
||||||
using digits from the ISO/IEC 646:1991 standard. This record shall
|
using digits from the ISO/IEC 646:1991 standard. This record shall
|
||||||
override the uid field in the following header block(s). When used
|
override the uid field in the following header block(s). When used
|
||||||
in write or copy mode, pax shall include a uid extended header
|
in write or copy mode, pax shall include a uid extended header
|
||||||
record for each file whose owner ID is greater than 2097151 (octal
|
record for each file whose owner ID is greater than 2097151 (octal
|
||||||
7777777).
|
7777777).
|
||||||
|
|
||||||
uname
|
uname
|
||||||
The owner of the following file(s), formatted as a user name
|
The owner of the following file(s), formatted as a user name
|
||||||
in the user database. This record shall override the uid and uname
|
in the user database. This record shall override the uid and uname
|
||||||
fields in the following header block(s), and any uid extended
|
fields in the following header block(s), and any uid extended
|
||||||
header record. When used in read, copy, or list mode, pax shall
|
header record. When used in read, copy, or list mode, pax shall
|
||||||
translate the name from the UTF-8 encoding in the header record to
|
translate the name from the UTF-8 encoding in the header record to
|
||||||
the character set appropriate for the user database on the
|
the character set appropriate for the user database on the
|
||||||
receiving system. If any of the UTF-8 characters cannot be
|
receiving system. If any of the UTF-8 characters cannot be
|
||||||
translated, and if the -o invalid= UTF-8 option is not specified,
|
translated, and if the -o invalid= UTF-8 option is not specified,
|
||||||
the results are implementation-defined. When used in write or copy
|
the results are implementation-defined. When used in write or copy
|
||||||
mode, pax shall include a uname extended header record for each
|
mode, pax shall include a uname extended header record for each
|
||||||
file whose user name cannot be represented entirely with the
|
file whose user name cannot be represented entirely with the
|
||||||
letters and digits of the portable character set.
|
letters and digits of the portable character set.
|
||||||
|
|
||||||
If the <value> field is zero length, it shall delete any header
|
If the <value> field is zero length, it shall delete any header
|
||||||
block field, previously entered extended header value, or global
|
block field, previously entered extended header value, or global
|
||||||
extended header value of the same name.
|
extended header value of the same name.
|
||||||
|
|
||||||
If a keyword in an extended header record (or in a -o
|
If a keyword in an extended header record (or in a -o
|
||||||
option-argument) overrides or deletes a corresponding field in the
|
option-argument) overrides or deletes a corresponding field in the
|
||||||
ustar header block, pax shall ignore the contents of that header
|
ustar header block, pax shall ignore the contents of that header
|
||||||
block field.
|
block field.
|
||||||
|
|
||||||
Unlike the ustar header block fields, NULs shall not delimit
|
Unlike the ustar header block fields, NULs shall not delimit
|
||||||
<value>s; all characters within the <value> field shall be
|
<value>s; all characters within the <value> field shall be
|
||||||
considered data for the field. None of the length limitations of
|
considered data for the field. None of the length limitations of
|
||||||
the ustar header block fields in ustar Header Block shall apply to
|
the ustar header block fields in ustar Header Block shall apply to
|
||||||
the extended header records.
|
the extended header records.
|
||||||
|
|
||||||
pax Extended Header File Times
|
pax Extended Header File Times
|
||||||
|
|
||||||
Time records shall be formatted as a decimal representation of the
|
Time records shall be formatted as a decimal representation of the
|
||||||
time in seconds since the Epoch. If a period ( '.' ) decimal point
|
time in seconds since the Epoch. If a period ( '.' ) decimal point
|
||||||
character is present, the digits to the right of the point shall
|
character is present, the digits to the right of the point shall
|
||||||
represent the units of a subsecond timing granularity. In read or
|
represent the units of a subsecond timing granularity. In read or
|
||||||
copy mode, the pax utility shall truncate the time of a file to
|
copy mode, the pax utility shall truncate the time of a file to
|
||||||
the greatest value that is not greater than the input header
|
the greatest value that is not greater than the input header
|
||||||
file time. In write or copy mode, the pax utility shall output a
|
file time. In write or copy mode, the pax utility shall output a
|
||||||
time exactly if it can be represented exactly as a decimal number,
|
time exactly if it can be represented exactly as a decimal number,
|
||||||
and otherwise shall generate only enough digits so that the same
|
and otherwise shall generate only enough digits so that the same
|
||||||
time shall be recovered if the file is extracted on a system whose
|
time shall be recovered if the file is extracted on a system whose
|
||||||
underlying implementation supports the same time granularity.
|
underlying implementation supports the same time granularity.
|
||||||
|
|
||||||
Example from Linux kernel archive tarball:
|
Example from Linux kernel archive tarball:
|
||||||
|
@ -238,7 +238,7 @@ struct ocfs_volume_header {
|
|||||||
|
|
||||||
struct ocfs_volume_label {
|
struct ocfs_volume_label {
|
||||||
unsigned char disk_lock[48];
|
unsigned char disk_lock[48];
|
||||||
char label[64];
|
char label[64];
|
||||||
unsigned char label_len[2];
|
unsigned char label_len[2];
|
||||||
unsigned char vol_id[16];
|
unsigned char vol_id[16];
|
||||||
unsigned char vol_id_len[2];
|
unsigned char vol_id_len[2];
|
||||||
|
@ -1930,11 +1930,11 @@ static var *exec_builtin(node *op, var *res)
|
|||||||
s[n] = '\0';
|
s[n] = '\0';
|
||||||
setvar_p(res, s);
|
setvar_p(res, s);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case B_an:
|
case B_an:
|
||||||
setvar_i(res, (long)getvar_i(av[0]) & (long)getvar_i(av[1]));
|
setvar_i(res, (long)getvar_i(av[0]) & (long)getvar_i(av[1]));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case B_co:
|
case B_co:
|
||||||
setvar_i(res, ~(long)getvar_i(av[0]));
|
setvar_i(res, ~(long)getvar_i(av[0]));
|
||||||
break;
|
break;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*
|
*
|
||||||
* Based in part on code from sash, Copyright (c) 1999 by David I. Bell
|
* Based in part on code from sash, Copyright (c) 1999 by David I. Bell
|
||||||
* Permission has been granted to redistribute this code under the GPL.
|
* Permission has been granted to redistribute this code under the GPL.
|
||||||
*
|
*
|
||||||
* Licensed under the GPL version 2, see the file LICENSE in this tarball.
|
* Licensed under the GPL version 2, see the file LICENSE in this tarball.
|
||||||
*/
|
*/
|
||||||
#ifndef __LIBBUSYBOX_H__
|
#ifndef __LIBBUSYBOX_H__
|
||||||
|
@ -144,7 +144,7 @@ int copy_file(const char *source, const char *dest, int flags)
|
|||||||
|
|
||||||
} else if (S_ISREG(source_stat.st_mode)
|
} else if (S_ISREG(source_stat.st_mode)
|
||||||
// Huh? DEREF uses stat, which never returns links IIRC...
|
// Huh? DEREF uses stat, which never returns links IIRC...
|
||||||
|| (FLAGS_DEREF && S_ISLNK(source_stat.st_mode))
|
|| (FLAGS_DEREF && S_ISLNK(source_stat.st_mode))
|
||||||
) {
|
) {
|
||||||
int src_fd;
|
int src_fd;
|
||||||
int dst_fd;
|
int dst_fd;
|
||||||
|
@ -60,7 +60,7 @@ static off_t bb_full_fd_action(int src_fd, int dst_fd, off_t size)
|
|||||||
size -= rd;
|
size -= rd;
|
||||||
if (!size) {
|
if (!size) {
|
||||||
/* 'size' bytes copied - all done */
|
/* 'size' bytes copied - all done */
|
||||||
status = 0;
|
status = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include "libbb.h"
|
#include "libbb.h"
|
||||||
|
|
||||||
/* This function reads an entire line from a text file, up to a newline
|
/* This function reads an entire line from a text file, up to a newline
|
||||||
* or NUL byte, inclusive. It returns a malloc'ed char * which must be
|
* or NUL byte, inclusive. It returns a malloc'ed char * which must be
|
||||||
* stored and free'ed by the caller. If end is null '\n' isn't considered
|
* stored and free'ed by the caller. If end is null '\n' isn't considered
|
||||||
* end of line. If end isn't null, length of the chunk read is stored in it. */
|
* end of line. If end isn't null, length of the chunk read is stored in it. */
|
||||||
|
@ -79,7 +79,7 @@ const struct option *applet_long_options
|
|||||||
(see getopt(3))
|
(see getopt(3))
|
||||||
|
|
||||||
static const struct option applet_long_options[] = {
|
static const struct option applet_long_options[] = {
|
||||||
//name,has_arg,flag,val
|
//name,has_arg,flag,val
|
||||||
{ "verbose", 0, 0, 'v' },
|
{ "verbose", 0, 0, 'v' },
|
||||||
{ 0, 0, 0, 0 }
|
{ 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
@ -141,7 +141,7 @@ procps_status_t* procps_scan(procps_status_t* sp, int flags)
|
|||||||
sp->uid = sb.st_uid;
|
sp->uid = sb.st_uid;
|
||||||
sp->gid = sb.st_gid;
|
sp->gid = sb.st_gid;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & PSSCAN_STAT) {
|
if (flags & PSSCAN_STAT) {
|
||||||
char *cp;
|
char *cp;
|
||||||
/* see proc(5) for some details on this */
|
/* see proc(5) for some details on this */
|
||||||
|
@ -33,7 +33,7 @@ static int true_action(const char *fileName, struct stat *statbuf, void* userDat
|
|||||||
*
|
*
|
||||||
* if !depthFirst, dirAction return value of 0 (FALSE) or 2 (SKIP)
|
* if !depthFirst, dirAction return value of 0 (FALSE) or 2 (SKIP)
|
||||||
* prevents recursion into that directory, instead
|
* prevents recursion into that directory, instead
|
||||||
* recursive_action() returns 0 (if FALSE) or 1 (if SKIP).
|
* recursive_action() returns 0 (if FALSE) or 1 (if SKIP).
|
||||||
*
|
*
|
||||||
* followLinks=0/1 differs mainly in handling of links to dirs.
|
* followLinks=0/1 differs mainly in handling of links to dirs.
|
||||||
* 0: lstat(statbuf). Calls fileAction on link name even if points to dir.
|
* 0: lstat(statbuf). Calls fileAction on link name even if points to dir.
|
||||||
|
@ -115,7 +115,7 @@ static int adduser(struct passwd *p, unsigned long flags)
|
|||||||
fseek(file, 0, SEEK_END);
|
fseek(file, 0, SEEK_END);
|
||||||
fprintf(file, "%s:!:%ld:%d:%d:%d:::\n",
|
fprintf(file, "%s:!:%ld:%d:%d:%d:::\n",
|
||||||
p->pw_name, /* username */
|
p->pw_name, /* username */
|
||||||
time(NULL) / 86400, /* sp->sp_lstchg */
|
time(NULL) / 86400, /* sp->sp_lstchg */
|
||||||
0, /* sp->sp_min */
|
0, /* sp->sp_min */
|
||||||
99999, /* sp->sp_max */
|
99999, /* sp->sp_max */
|
||||||
7); /* sp->sp_warn */
|
7); /* sp->sp_warn */
|
||||||
|
@ -19,7 +19,7 @@ static void del_line_matching(const char *login, const char *filename)
|
|||||||
int len = strlen(login);
|
int len = strlen(login);
|
||||||
int found = 0;
|
int found = 0;
|
||||||
llist_t *plist = NULL;
|
llist_t *plist = NULL;
|
||||||
|
|
||||||
passwd = fopen_or_warn(filename, "r");
|
passwd = fopen_or_warn(filename, "r");
|
||||||
if (!passwd) return;
|
if (!passwd) return;
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ static int table_lookup(uint16_t type, uint8_t * as, uint8_t * qs)
|
|||||||
char *p,*q;
|
char *p,*q;
|
||||||
q = (char *)&(qs[1]);
|
q = (char *)&(qs[1]);
|
||||||
p = &(d->name[1]);
|
p = &(d->name[1]);
|
||||||
fprintf(stderr, "\n%s: %d/%d p:%s q:%s %d",
|
fprintf(stderr, "\n%s: %d/%d p:%s q:%s %d",
|
||||||
__FUNCTION__, strlen(p), (int)(d->name[0]), p, q, strlen(q));
|
__FUNCTION__, strlen(p), (int)(d->name[0]), p, q, strlen(q));
|
||||||
#endif
|
#endif
|
||||||
if (type == REQ_A) { /* search by host name */
|
if (type == REQ_A) { /* search by host name */
|
||||||
@ -247,7 +247,7 @@ static int table_lookup(uint16_t type, uint8_t * as, uint8_t * qs)
|
|||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if (type == REQ_PTR) { /* search by IP-address */
|
if (type == REQ_PTR) { /* search by IP-address */
|
||||||
if (!strncmp((char*)&d->rip[1], (char*)&qs[1], strlen(d->rip)-1)) {
|
if (!strncmp((char*)&d->rip[1], (char*)&qs[1], strlen(d->rip)-1)) {
|
||||||
strcpy((char *)as, d->name);
|
strcpy((char *)as, d->name);
|
||||||
|
@ -240,68 +240,68 @@ int fakeidentd_main(int argc, char **argv)
|
|||||||
|
|
||||||
/* main loop where we process all events and never exit */
|
/* main loop where we process all events and never exit */
|
||||||
while (1) {
|
while (1) {
|
||||||
fd_set rfds = G.readfds;
|
fd_set rfds = G.readfds;
|
||||||
struct timeval tv = { 15, 0 };
|
struct timeval tv = { 15, 0 };
|
||||||
int i;
|
int i;
|
||||||
int tim = time(NULL);
|
int tim = time(NULL);
|
||||||
|
|
||||||
select(G.conncnt + FCS, &rfds, NULL, NULL, G.conncnt? &tv: NULL);
|
select(G.conncnt + FCS, &rfds, NULL, NULL, G.conncnt? &tv: NULL);
|
||||||
|
|
||||||
for (i = G.conncnt - 1; i >= 0; i--) {
|
for (i = G.conncnt - 1; i >= 0; i--) {
|
||||||
int s = i + FCS;
|
int s = i + FCS;
|
||||||
|
|
||||||
if (FD_ISSET(s, &rfds)) {
|
if (FD_ISSET(s, &rfds)) {
|
||||||
char *buf = conns[i].buf;
|
char *buf = conns[i].buf;
|
||||||
unsigned int len = conns[i].len;
|
unsigned int len = conns[i].len;
|
||||||
unsigned int l;
|
unsigned int l;
|
||||||
|
|
||||||
if ((l = read(s, buf + len, sizeof(conns[0].buf) - len)) > 0) {
|
if ((l = read(s, buf + len, sizeof(conns[0].buf) - len)) > 0) {
|
||||||
if (checkInput(buf, len, l)) {
|
if (checkInput(buf, len, l)) {
|
||||||
reply(s, buf);
|
reply(s, buf);
|
||||||
goto deleteconn;
|
goto deleteconn;
|
||||||
} else if (len + l >= sizeof(conns[0].buf)) {
|
} else if (len + l >= sizeof(conns[0].buf)) {
|
||||||
replyError(s, "X-INVALID-REQUEST");
|
replyError(s, "X-INVALID-REQUEST");
|
||||||
goto deleteconn;
|
goto deleteconn;
|
||||||
|
} else {
|
||||||
|
conns[i].len += l;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
conns[i].len += l;
|
goto deleteconn;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
goto deleteconn;
|
|
||||||
}
|
|
||||||
|
|
||||||
conns[i].lasttime = tim;
|
conns[i].lasttime = tim;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
deleteconn:
|
deleteconn:
|
||||||
deleteConn(s);
|
|
||||||
} else {
|
|
||||||
/* implement as time_after() in linux kernel sources ... */
|
|
||||||
if (conns[i].lasttime + MAXIDLETIME <= tim) {
|
|
||||||
replyError(s, "X-TIMEOUT");
|
|
||||||
deleteConn(s);
|
deleteConn(s);
|
||||||
|
} else {
|
||||||
|
/* implement as time_after() in linux kernel sources ... */
|
||||||
|
if (conns[i].lasttime + MAXIDLETIME <= tim) {
|
||||||
|
replyError(s, "X-TIMEOUT");
|
||||||
|
deleteConn(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (FD_ISSET(0, &rfds)) {
|
if (FD_ISSET(0, &rfds)) {
|
||||||
int s = accept(0, NULL, 0);
|
int s = accept(0, NULL, 0);
|
||||||
|
|
||||||
if (s < 0) {
|
if (s < 0) {
|
||||||
if (errno != EINTR) /* EINTR */
|
if (errno != EINTR) /* EINTR */
|
||||||
bb_perror_msg("accept");
|
bb_perror_msg("accept");
|
||||||
} else {
|
} else {
|
||||||
if (G.conncnt == MAXCONNS)
|
if (G.conncnt == MAXCONNS)
|
||||||
i = closeOldest();
|
i = closeOldest();
|
||||||
else
|
else
|
||||||
i = G.conncnt++;
|
i = G.conncnt++;
|
||||||
|
|
||||||
movefd(s, i + FCS); /* move if not already there */
|
movefd(s, i + FCS); /* move if not already there */
|
||||||
FD_SET(i + FCS, &G.readfds);
|
FD_SET(i + FCS, &G.readfds);
|
||||||
|
|
||||||
conns[i].len = 0;
|
conns[i].len = 0;
|
||||||
conns[i].lasttime = time(NULL);
|
conns[i].lasttime = time(NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} /* end of while (1) */
|
} /* end of while (1) */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -715,7 +715,7 @@ static char *decodeString(char *orig, int option_d)
|
|||||||
}
|
}
|
||||||
value1 = value1 * 16 + value2;
|
value1 = value1 * 16 + value2;
|
||||||
if (!option_d && (value1 == '/' || value1 == '\0')) {
|
if (!option_d && (value1 == '/' || value1 == '\0')) {
|
||||||
/* caller takes it as indication of invalid
|
/* caller takes it as indication of invalid
|
||||||
* (dangerous wrt exploits) chars */
|
* (dangerous wrt exploits) chars */
|
||||||
return orig + 1;
|
return orig + 1;
|
||||||
}
|
}
|
||||||
@ -998,7 +998,7 @@ static int sendCgi(const char *url,
|
|||||||
pid = fork();
|
pid = fork();
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!pid) {
|
if (!pid) {
|
||||||
/* child process */
|
/* child process */
|
||||||
char *script;
|
char *script;
|
||||||
|
@ -116,7 +116,7 @@ static int INET_getsock(char *bufp, struct sockaddr *sap)
|
|||||||
sock_in = (struct sockaddr_in *) sap;
|
sock_in = (struct sockaddr_in *) sap;
|
||||||
sock_in->sin_family = AF_INET;
|
sock_in->sin_family = AF_INET;
|
||||||
sock_in->sin_port = 0;
|
sock_in->sin_port = 0;
|
||||||
|
|
||||||
val = 0;
|
val = 0;
|
||||||
bp = (char *) &val;
|
bp = (char *) &val;
|
||||||
for (i = 0; i < sizeof(sock_in->sin_addr.s_addr); i++) {
|
for (i = 0; i < sizeof(sock_in->sin_addr.s_addr); i++) {
|
||||||
|
@ -562,7 +562,7 @@ static int iproute_list_or_flush(int argc, char **argv, int flush)
|
|||||||
if (matches(*argv, "cache") == 0) {
|
if (matches(*argv, "cache") == 0) {
|
||||||
filter.tb = -1;
|
filter.tb = -1;
|
||||||
#if 0 && ENABLE_FEATURE_IP_RULE
|
#if 0 && ENABLE_FEATURE_IP_RULE
|
||||||
|
|
||||||
#else
|
#else
|
||||||
} else if (matches(*argv, "main") != 0) {
|
} else if (matches(*argv, "main") != 0) {
|
||||||
invarg(*argv, "table");
|
invarg(*argv, "table");
|
||||||
|
@ -169,7 +169,7 @@ int ll_name_to_index(char *name)
|
|||||||
* to the reader... Jean II */
|
* to the reader... Jean II */
|
||||||
return ifr.ifr_ifindex;
|
return ifr.ifr_ifindex;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
* $ nslookup yahoo.com
|
* $ nslookup yahoo.com
|
||||||
* Server: 128.193.0.10
|
* Server: 128.193.0.10
|
||||||
* Address: 128.193.0.10#53
|
* Address: 128.193.0.10#53
|
||||||
*
|
*
|
||||||
* Non-authoritative answer:
|
* Non-authoritative answer:
|
||||||
* Name: yahoo.com
|
* Name: yahoo.com
|
||||||
* Address: 216.109.112.135
|
* Address: 216.109.112.135
|
||||||
@ -33,11 +33,11 @@
|
|||||||
* $ nslookup 204.152.191.37
|
* $ nslookup 204.152.191.37
|
||||||
* Server: 128.193.4.20
|
* Server: 128.193.4.20
|
||||||
* Address: 128.193.4.20#53
|
* Address: 128.193.4.20#53
|
||||||
*
|
*
|
||||||
* Non-authoritative answer:
|
* Non-authoritative answer:
|
||||||
* 37.191.152.204.in-addr.arpa canonical name = 37.32-27.191.152.204.in-addr.arpa.
|
* 37.191.152.204.in-addr.arpa canonical name = 37.32-27.191.152.204.in-addr.arpa.
|
||||||
* 37.32-27.191.152.204.in-addr.arpa name = zeus-pub2.kernel.org.
|
* 37.32-27.191.152.204.in-addr.arpa name = zeus-pub2.kernel.org.
|
||||||
*
|
*
|
||||||
* Authoritative answers can be found from:
|
* Authoritative answers can be found from:
|
||||||
* 32-27.191.152.204.in-addr.arpa nameserver = ns1.kernel.org.
|
* 32-27.191.152.204.in-addr.arpa nameserver = ns1.kernel.org.
|
||||||
* 32-27.191.152.204.in-addr.arpa nameserver = ns2.kernel.org.
|
* 32-27.191.152.204.in-addr.arpa nameserver = ns2.kernel.org.
|
||||||
|
@ -420,7 +420,7 @@ int ping6_main(int argc, char **argv)
|
|||||||
datalen = DEFDATALEN; /* initialized here rather than in global scope to work around gcc bug */
|
datalen = DEFDATALEN; /* initialized here rather than in global scope to work around gcc bug */
|
||||||
|
|
||||||
/* exactly one argument needed, -v and -q don't mix */
|
/* exactly one argument needed, -v and -q don't mix */
|
||||||
opt_complementary = "=1:q--v:v--q";
|
opt_complementary = "=1:q--v:v--q";
|
||||||
getopt32(argc, argv, OPT_STRING, &opt_c, &opt_s, &opt_I);
|
getopt32(argc, argv, OPT_STRING, &opt_c, &opt_s, &opt_I);
|
||||||
if (option_mask32 & 4) pingcount = xatoul(opt_c); // -c
|
if (option_mask32 & 4) pingcount = xatoul(opt_c); // -c
|
||||||
if (option_mask32 & 8) datalen = xatou16(opt_s); // -s
|
if (option_mask32 & 8) datalen = xatou16(opt_s); // -s
|
||||||
|
@ -286,7 +286,7 @@ make_new_session(
|
|||||||
ts->shell_pid = pid;
|
ts->shell_pid = pid;
|
||||||
return ts;
|
return ts;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* child */
|
/* child */
|
||||||
|
|
||||||
/* open the child's side of the tty. */
|
/* open the child's side of the tty. */
|
||||||
|
@ -42,7 +42,7 @@ config KILLALL5
|
|||||||
bool "killall5"
|
bool "killall5"
|
||||||
default n
|
default n
|
||||||
depends on KILL
|
depends on KILL
|
||||||
|
|
||||||
config PIDOF
|
config PIDOF
|
||||||
bool "pidof"
|
bool "pidof"
|
||||||
default n
|
default n
|
||||||
|
@ -271,7 +271,7 @@ static unsigned long display_generic(int scr_width)
|
|||||||
used, mfree, shared, buffers, cached);
|
used, mfree, shared, buffers, cached);
|
||||||
|
|
||||||
printf(OPT_BATCH_MODE ? "%s\n" : "\e[H\e[J%s\n", scrbuf);
|
printf(OPT_BATCH_MODE ? "%s\n" : "\e[H\e[J%s\n", scrbuf);
|
||||||
|
|
||||||
snprintf(scrbuf, scr_width, "Load average: %s", buf);
|
snprintf(scrbuf, scr_width, "Load average: %s", buf);
|
||||||
printf("%s\n", scrbuf);
|
printf("%s\n", scrbuf);
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ int chpst_main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
argv += optind;
|
argv += optind;
|
||||||
if (!argv || !*argv) bb_show_usage();
|
if (!argv || !*argv) bb_show_usage();
|
||||||
|
|
||||||
if (OPT_pgrp) setsid();
|
if (OPT_pgrp) setsid();
|
||||||
if (env_dir) edir(env_dir);
|
if (env_dir) edir(env_dir);
|
||||||
if (root) {
|
if (root) {
|
||||||
|
@ -84,7 +84,7 @@ int buffer_feed(buffer *s)
|
|||||||
int buffer_bget(buffer *s,char *buf,unsigned len)
|
int buffer_bget(buffer *s,char *buf,unsigned len)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
if (s->p > 0) return getthis(s,buf,len);
|
if (s->p > 0) return getthis(s,buf,len);
|
||||||
if (s->n <= len) return oneread(s->op,s->fd,buf,s->n);
|
if (s->n <= len) return oneread(s->op,s->fd,buf,s->n);
|
||||||
r = buffer_feed(s); if (r <= 0) return r;
|
r = buffer_feed(s); if (r <= 0) return r;
|
||||||
@ -94,7 +94,7 @@ int buffer_bget(buffer *s,char *buf,unsigned len)
|
|||||||
int buffer_get(buffer *s,char *buf,unsigned len)
|
int buffer_get(buffer *s,char *buf,unsigned len)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
if (s->p > 0) return getthis(s,buf,len);
|
if (s->p > 0) return getthis(s,buf,len);
|
||||||
if (s->n <= len) return oneread(s->op,s->fd,buf,len);
|
if (s->n <= len) return oneread(s->op,s->fd,buf,len);
|
||||||
r = buffer_feed(s); if (r <= 0) return r;
|
r = buffer_feed(s); if (r <= 0) return r;
|
||||||
@ -135,7 +135,7 @@ static int allwrite(int (*op)(int fd,char *buf,unsigned len),int fd,const char *
|
|||||||
int buffer_flush(buffer *s)
|
int buffer_flush(buffer *s)
|
||||||
{
|
{
|
||||||
int p;
|
int p;
|
||||||
|
|
||||||
p = s->p;
|
p = s->p;
|
||||||
if (!p) return 0;
|
if (!p) return 0;
|
||||||
s->p = 0;
|
s->p = 0;
|
||||||
@ -145,7 +145,7 @@ int buffer_flush(buffer *s)
|
|||||||
int buffer_putalign(buffer *s,const char *buf,unsigned len)
|
int buffer_putalign(buffer *s,const char *buf,unsigned len)
|
||||||
{
|
{
|
||||||
unsigned n;
|
unsigned n;
|
||||||
|
|
||||||
while (len > (n = s->n - s->p)) {
|
while (len > (n = s->n - s->p)) {
|
||||||
memcpy(s->x + s->p,buf,n);
|
memcpy(s->x + s->p,buf,n);
|
||||||
s->p += n;
|
s->p += n;
|
||||||
@ -162,7 +162,7 @@ int buffer_putalign(buffer *s,const char *buf,unsigned len)
|
|||||||
int buffer_put(buffer *s,const char *buf,unsigned len)
|
int buffer_put(buffer *s,const char *buf,unsigned len)
|
||||||
{
|
{
|
||||||
unsigned n;
|
unsigned n;
|
||||||
|
|
||||||
n = s->n;
|
n = s->n;
|
||||||
if (len > n - s->p) {
|
if (len > n - s->p) {
|
||||||
if (buffer_flush(s) == -1) return -1;
|
if (buffer_flush(s) == -1) return -1;
|
||||||
@ -487,7 +487,7 @@ void taia_sub(struct taia *t,const struct taia *u,const struct taia *v)
|
|||||||
{
|
{
|
||||||
unsigned long unano = u->nano;
|
unsigned long unano = u->nano;
|
||||||
unsigned long uatto = u->atto;
|
unsigned long uatto = u->atto;
|
||||||
|
|
||||||
t->sec.x = u->sec.x - v->sec.x;
|
t->sec.x = u->sec.x - v->sec.x;
|
||||||
t->nano = unano - v->nano;
|
t->nano = unano - v->nano;
|
||||||
t->atto = uatto - v->atto;
|
t->atto = uatto - v->atto;
|
||||||
|
@ -300,7 +300,7 @@ static void startservice(struct svdir *s)
|
|||||||
fatal_cannot("setup filedescriptor for ./log/run");
|
fatal_cannot("setup filedescriptor for ./log/run");
|
||||||
close(logpipe[1]);
|
close(logpipe[1]);
|
||||||
if (chdir("./log") == -1)
|
if (chdir("./log") == -1)
|
||||||
fatal_cannot("change directory to ./log");
|
fatal_cannot("change directory to ./log");
|
||||||
} else {
|
} else {
|
||||||
if (fd_copy(1, logpipe[1]) == -1)
|
if (fd_copy(1, logpipe[1]) == -1)
|
||||||
fatal_cannot("setup filedescriptor for ./run");
|
fatal_cannot("setup filedescriptor for ./run");
|
||||||
@ -405,7 +405,7 @@ int runsv_main(int argc, char **argv)
|
|||||||
coe(selfpipe[1]);
|
coe(selfpipe[1]);
|
||||||
ndelay_on(selfpipe[0]);
|
ndelay_on(selfpipe[0]);
|
||||||
ndelay_on(selfpipe[1]);
|
ndelay_on(selfpipe[1]);
|
||||||
|
|
||||||
sig_block(sig_child);
|
sig_block(sig_child);
|
||||||
sig_catch(sig_child, s_child);
|
sig_catch(sig_child, s_child);
|
||||||
sig_block(sig_term);
|
sig_block(sig_term);
|
||||||
@ -544,7 +544,7 @@ int runsv_main(int argc, char **argv)
|
|||||||
for (;;) {
|
for (;;) {
|
||||||
int child;
|
int child;
|
||||||
int wstat;
|
int wstat;
|
||||||
|
|
||||||
child = wait_nohang(&wstat);
|
child = wait_nohang(&wstat);
|
||||||
if (!child) break;
|
if (!child) break;
|
||||||
if ((child == -1) && (errno != EINTR)) break;
|
if ((child == -1) && (errno != EINTR)) break;
|
||||||
|
@ -36,7 +36,7 @@ static void fatal2_cannot(char *m1, char *m2)
|
|||||||
static void warn3x(char *m1, char *m2, char *m3)
|
static void warn3x(char *m1, char *m2, char *m3)
|
||||||
{
|
{
|
||||||
bb_error_msg("%s: warning: %s%s%s", svdir, m1, m2, m3);
|
bb_error_msg("%s: warning: %s%s%s", svdir, m1, m2, m3);
|
||||||
}
|
}
|
||||||
static void warn2_cannot(char *m1, char *m2)
|
static void warn2_cannot(char *m1, char *m2)
|
||||||
{
|
{
|
||||||
warn3x("cannot ", m1, m2);
|
warn3x("cannot ", m1, m2);
|
||||||
@ -44,7 +44,7 @@ static void warn2_cannot(char *m1, char *m2)
|
|||||||
static void warnx(char *m1)
|
static void warnx(char *m1)
|
||||||
{
|
{
|
||||||
warn3x(m1, "", "");
|
warn3x(m1, "", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void s_term(int sig_no)
|
static void s_term(int sig_no)
|
||||||
{
|
{
|
||||||
@ -208,7 +208,7 @@ int runsvdir_main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
curdir = open_read(".");
|
curdir = open_read(".");
|
||||||
if (curdir == -1)
|
if (curdir == -1)
|
||||||
fatal2_cannot("open current directory", "");
|
fatal2_cannot("open current directory", "");
|
||||||
coe(curdir);
|
coe(curdir);
|
||||||
|
|
||||||
@ -241,7 +241,7 @@ int runsvdir_main(int argc, char **argv)
|
|||||||
/* wait at least a second */
|
/* wait at least a second */
|
||||||
taia_uint(&deadline, 1);
|
taia_uint(&deadline, 1);
|
||||||
taia_add(&stampcheck, &now, &deadline);
|
taia_add(&stampcheck, &now, &deadline);
|
||||||
|
|
||||||
if (stat(svdir, &s) != -1) {
|
if (stat(svdir, &s) != -1) {
|
||||||
if (check || s.st_mtime != mtime
|
if (check || s.st_mtime != mtime
|
||||||
|| s.st_ino != ino || s.st_dev != dev
|
|| s.st_ino != ino || s.st_dev != dev
|
||||||
|
@ -88,7 +88,7 @@ static unsigned svstatus_print(char *m)
|
|||||||
int pid;
|
int pid;
|
||||||
int normallyup = 0;
|
int normallyup = 0;
|
||||||
struct stat s;
|
struct stat s;
|
||||||
|
|
||||||
if (stat("down", &s) == -1) {
|
if (stat("down", &s) == -1) {
|
||||||
if (errno != ENOENT) {
|
if (errno != ENOENT) {
|
||||||
bb_perror_msg(WARN"cannot stat %s/down", *service);
|
bb_perror_msg(WARN"cannot stat %s/down", *service);
|
||||||
|
@ -141,7 +141,7 @@ static unsigned processorstart(struct logdir *ld)
|
|||||||
sig_unblock(sig_term);
|
sig_unblock(sig_term);
|
||||||
sig_unblock(sig_alarm);
|
sig_unblock(sig_alarm);
|
||||||
sig_unblock(sig_hangup);
|
sig_unblock(sig_hangup);
|
||||||
|
|
||||||
if (verbose)
|
if (verbose)
|
||||||
bb_error_msg(INFO"processing: %s/%s", ld->name, ld->fnsave);
|
bb_error_msg(INFO"processing: %s/%s", ld->name, ld->fnsave);
|
||||||
fd = xopen(ld->fnsave, O_RDONLY|O_NDELAY);
|
fd = xopen(ld->fnsave, O_RDONLY|O_NDELAY);
|
||||||
@ -549,12 +549,12 @@ static unsigned logdir_open(struct logdir *ld, const char *fn)
|
|||||||
coe(ld->fdcur);
|
coe(ld->fdcur);
|
||||||
while (fchmod(ld->fdcur, 0644) == -1)
|
while (fchmod(ld->fdcur, 0644) == -1)
|
||||||
pause2cannot("set mode of current", ld->name);
|
pause2cannot("set mode of current", ld->name);
|
||||||
|
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
if (i == 0) bb_error_msg(INFO"append: %s/current", ld->name);
|
if (i == 0) bb_error_msg(INFO"append: %s/current", ld->name);
|
||||||
else bb_error_msg(INFO"new: %s/current", ld->name);
|
else bb_error_msg(INFO"new: %s/current", ld->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (fchdir(fdwdir) == -1)
|
while (fchdir(fdwdir) == -1)
|
||||||
pause1cannot("change to initial working directory");
|
pause1cannot("change to initial working directory");
|
||||||
return 1;
|
return 1;
|
||||||
@ -569,7 +569,7 @@ static void logdirs_reopen(void)
|
|||||||
tmaxflag = 0;
|
tmaxflag = 0;
|
||||||
taia_now(&now);
|
taia_now(&now);
|
||||||
for (l = 0; l < dirn; ++l) {
|
for (l = 0; l < dirn; ++l) {
|
||||||
logdir_close(&dir[l]);
|
logdir_close(&dir[l]);
|
||||||
if (logdir_open(&dir[l], fndir[l])) ok = 1;
|
if (logdir_open(&dir[l], fndir[l])) ok = 1;
|
||||||
}
|
}
|
||||||
if (!ok) fatalx("no functional log directories");
|
if (!ok) fatalx("no functional log directories");
|
||||||
|
@ -99,7 +99,7 @@ cmd = @$(echo-cmd) $(cmd_$(1))
|
|||||||
objectify = $(foreach o,$(1),$(if $(filter /%,$(o)),$(o),$(obj)/$(o)))
|
objectify = $(foreach o,$(1),$(if $(filter /%,$(o)),$(o),$(obj)/$(o)))
|
||||||
|
|
||||||
###
|
###
|
||||||
# if_changed - execute command if any prerequisite is newer than
|
# if_changed - execute command if any prerequisite is newer than
|
||||||
# target, or command line has changed
|
# target, or command line has changed
|
||||||
# if_changed_dep - as if_changed, but uses fixdep to reveal dependencies
|
# if_changed_dep - as if_changed, but uses fixdep to reveal dependencies
|
||||||
# including used config symbols
|
# including used config symbols
|
||||||
|
@ -216,7 +216,7 @@ $(real-objs-m) : modkern_aflags := $(AFLAGS_MODULE)
|
|||||||
$(real-objs-m:.o=.s): modkern_aflags := $(AFLAGS_MODULE)
|
$(real-objs-m:.o=.s): modkern_aflags := $(AFLAGS_MODULE)
|
||||||
|
|
||||||
quiet_cmd_as_s_S = CPP $(quiet_modtag) $@
|
quiet_cmd_as_s_S = CPP $(quiet_modtag) $@
|
||||||
cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
|
cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
|
||||||
|
|
||||||
%.s: %.S FORCE
|
%.s: %.S FORCE
|
||||||
$(call if_changed_dep,as_s_S)
|
$(call if_changed_dep,as_s_S)
|
||||||
@ -284,7 +284,7 @@ link_multi_deps = \
|
|||||||
$(filter $(addprefix $(obj)/, \
|
$(filter $(addprefix $(obj)/, \
|
||||||
$($(subst $(obj)/,,$(@:.o=-objs))) \
|
$($(subst $(obj)/,,$(@:.o=-objs))) \
|
||||||
$($(subst $(obj)/,,$(@:.o=-y)))), $^)
|
$($(subst $(obj)/,,$(@:.o=-y)))), $^)
|
||||||
|
|
||||||
quiet_cmd_link_multi-y = LD $@
|
quiet_cmd_link_multi-y = LD $@
|
||||||
cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps)
|
cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps)
|
||||||
|
|
||||||
|
@ -152,5 +152,5 @@ $(host-cshlib): %: $(host-cshobjs) FORCE
|
|||||||
$(call if_changed,host-cshlib)
|
$(call if_changed,host-cshlib)
|
||||||
|
|
||||||
targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\
|
targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\
|
||||||
$(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs)
|
$(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs)
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ lib-y := $(filter-out $(obj-y), $(sort $(lib-y) $(lib-m)))
|
|||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# o if we encounter foo/ in $(obj-y), replace it by foo/built-in.o
|
# o if we encounter foo/ in $(obj-y), replace it by foo/built-in.o
|
||||||
# and add the directory to the list of dirs to descend into: $(subdir-y)
|
# and add the directory to the list of dirs to descend into: $(subdir-y)
|
||||||
# o if we encounter foo/ in $(obj-m), remove it from $(obj-m)
|
# o if we encounter foo/ in $(obj-m), remove it from $(obj-m)
|
||||||
# and add the directory to the list of dirs to descend into: $(subdir-m)
|
# and add the directory to the list of dirs to descend into: $(subdir-m)
|
||||||
|
|
||||||
__subdir-y := $(patsubst %/,%,$(filter %/, $(obj-y)))
|
__subdir-y := $(patsubst %/,%,$(filter %/, $(obj-y)))
|
||||||
@ -32,7 +32,7 @@ obj-m := $(filter-out %/, $(obj-m))
|
|||||||
|
|
||||||
subdir-ym := $(sort $(subdir-y) $(subdir-m))
|
subdir-ym := $(sort $(subdir-y) $(subdir-m))
|
||||||
|
|
||||||
# if $(foo-objs) exists, foo.o is a composite object
|
# if $(foo-objs) exists, foo.o is a composite object
|
||||||
multi-used-y := $(sort $(foreach m,$(obj-y), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))), $(m))))
|
multi-used-y := $(sort $(foreach m,$(obj-y), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))), $(m))))
|
||||||
multi-used-m := $(sort $(foreach m,$(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))), $(m))))
|
multi-used-m := $(sort $(foreach m,$(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))), $(m))))
|
||||||
multi-used := $(multi-used-y) $(multi-used-m)
|
multi-used := $(multi-used-y) $(multi-used-m)
|
||||||
@ -76,7 +76,7 @@ obj-dirs := $(addprefix $(obj)/,$(obj-dirs))
|
|||||||
|
|
||||||
# These flags are needed for modversions and compiling, so we define them here
|
# These flags are needed for modversions and compiling, so we define them here
|
||||||
# already
|
# already
|
||||||
# $(modname_flags) #defines KBUILD_MODNAME as the name of the module it will
|
# $(modname_flags) #defines KBUILD_MODNAME as the name of the module it will
|
||||||
# end up in (or would, if it gets compiled in)
|
# end up in (or would, if it gets compiled in)
|
||||||
# Note: It's possible that one object gets potentially linked into more
|
# Note: It's possible that one object gets potentially linked into more
|
||||||
# than one module. In that case KBUILD_MODNAME will be set to foo_bar,
|
# than one module. In that case KBUILD_MODNAME will be set to foo_bar,
|
||||||
@ -134,7 +134,7 @@ $(obj)/%:: $(src)/%_shipped
|
|||||||
|
|
||||||
# Commands useful for building a boot image
|
# Commands useful for building a boot image
|
||||||
# ===========================================================================
|
# ===========================================================================
|
||||||
#
|
#
|
||||||
# Use as following:
|
# Use as following:
|
||||||
#
|
#
|
||||||
# target: source(s) FORCE
|
# target: source(s) FORCE
|
||||||
@ -148,7 +148,7 @@ $(obj)/%:: $(src)/%_shipped
|
|||||||
|
|
||||||
quiet_cmd_ld = LD $@
|
quiet_cmd_ld = LD $@
|
||||||
cmd_ld = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) \
|
cmd_ld = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) \
|
||||||
$(filter-out FORCE,$^) -o $@
|
$(filter-out FORCE,$^) -o $@
|
||||||
|
|
||||||
# Objcopy
|
# Objcopy
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
@ -42,7 +42,7 @@ typedef uint32_t flex_uint32_t;
|
|||||||
typedef signed char flex_int8_t;
|
typedef signed char flex_int8_t;
|
||||||
typedef short int flex_int16_t;
|
typedef short int flex_int16_t;
|
||||||
typedef int flex_int32_t;
|
typedef int flex_int32_t;
|
||||||
typedef unsigned char flex_uint8_t;
|
typedef unsigned char flex_uint8_t;
|
||||||
typedef unsigned short int flex_uint16_t;
|
typedef unsigned short int flex_uint16_t;
|
||||||
typedef unsigned int flex_uint32_t;
|
typedef unsigned int flex_uint32_t;
|
||||||
#endif /* ! C99 */
|
#endif /* ! C99 */
|
||||||
@ -148,7 +148,7 @@ extern FILE *zconfin, *zconfout;
|
|||||||
#define EOB_ACT_LAST_MATCH 2
|
#define EOB_ACT_LAST_MATCH 2
|
||||||
|
|
||||||
#define YY_LESS_LINENO(n)
|
#define YY_LESS_LINENO(n)
|
||||||
|
|
||||||
/* Return all but the first "n" matched characters back to the input stream. */
|
/* Return all but the first "n" matched characters back to the input stream. */
|
||||||
#define yyless(n) \
|
#define yyless(n) \
|
||||||
do \
|
do \
|
||||||
@ -215,7 +215,7 @@ struct yy_buffer_state
|
|||||||
|
|
||||||
int yy_bs_lineno; /**< The line count. */
|
int yy_bs_lineno; /**< The line count. */
|
||||||
int yy_bs_column; /**< The column count. */
|
int yy_bs_column; /**< The column count. */
|
||||||
|
|
||||||
/* Whether to try to fill the input buffer when we reach the
|
/* Whether to try to fill the input buffer when we reach the
|
||||||
* end of it.
|
* end of it.
|
||||||
*/
|
*/
|
||||||
@ -833,7 +833,7 @@ extern int zconfwrap (void );
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void yyunput (int c,char *buf_ptr );
|
static void yyunput (int c,char *buf_ptr );
|
||||||
|
|
||||||
#ifndef yytext_ptr
|
#ifndef yytext_ptr
|
||||||
static void yy_flex_strncpy (char *,yyconst char *,int );
|
static void yy_flex_strncpy (char *,yyconst char *,int );
|
||||||
#endif
|
#endif
|
||||||
@ -938,7 +938,7 @@ YY_DECL
|
|||||||
register yy_state_type yy_current_state;
|
register yy_state_type yy_current_state;
|
||||||
register char *yy_cp, *yy_bp;
|
register char *yy_cp, *yy_bp;
|
||||||
register int yy_act;
|
register int yy_act;
|
||||||
|
|
||||||
int str = 0;
|
int str = 0;
|
||||||
int ts, i;
|
int ts, i;
|
||||||
|
|
||||||
@ -1536,7 +1536,7 @@ static int yy_get_next_buffer (void)
|
|||||||
{
|
{
|
||||||
register yy_state_type yy_current_state;
|
register yy_state_type yy_current_state;
|
||||||
register char *yy_cp;
|
register char *yy_cp;
|
||||||
|
|
||||||
yy_current_state = (yy_start);
|
yy_current_state = (yy_start);
|
||||||
|
|
||||||
for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
|
for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
|
||||||
@ -1555,7 +1555,7 @@ static int yy_get_next_buffer (void)
|
|||||||
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
|
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
|
||||||
{
|
{
|
||||||
register int yy_is_jam;
|
register int yy_is_jam;
|
||||||
|
|
||||||
yy_current_state = yy_nxt[yy_current_state][1];
|
yy_current_state = yy_nxt[yy_current_state][1];
|
||||||
yy_is_jam = (yy_current_state <= 0);
|
yy_is_jam = (yy_current_state <= 0);
|
||||||
|
|
||||||
@ -1565,7 +1565,7 @@ static int yy_get_next_buffer (void)
|
|||||||
static void yyunput (int c, register char * yy_bp )
|
static void yyunput (int c, register char * yy_bp )
|
||||||
{
|
{
|
||||||
register char *yy_cp;
|
register char *yy_cp;
|
||||||
|
|
||||||
yy_cp = (yy_c_buf_p);
|
yy_cp = (yy_c_buf_p);
|
||||||
|
|
||||||
/* undo effects of setting up zconftext */
|
/* undo effects of setting up zconftext */
|
||||||
@ -1608,7 +1608,7 @@ static int yy_get_next_buffer (void)
|
|||||||
|
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
*(yy_c_buf_p) = (yy_hold_char);
|
*(yy_c_buf_p) = (yy_hold_char);
|
||||||
|
|
||||||
if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
|
if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
|
||||||
@ -1675,12 +1675,12 @@ static int yy_get_next_buffer (void)
|
|||||||
|
|
||||||
/** Immediately switch to a different input stream.
|
/** Immediately switch to a different input stream.
|
||||||
* @param input_file A readable stream.
|
* @param input_file A readable stream.
|
||||||
*
|
*
|
||||||
* @note This function does not reset the start condition to @c INITIAL .
|
* @note This function does not reset the start condition to @c INITIAL .
|
||||||
*/
|
*/
|
||||||
void zconfrestart (FILE * input_file )
|
void zconfrestart (FILE * input_file )
|
||||||
{
|
{
|
||||||
|
|
||||||
if ( ! YY_CURRENT_BUFFER ){
|
if ( ! YY_CURRENT_BUFFER ){
|
||||||
zconfensure_buffer_stack ();
|
zconfensure_buffer_stack ();
|
||||||
YY_CURRENT_BUFFER_LVALUE =
|
YY_CURRENT_BUFFER_LVALUE =
|
||||||
@ -1693,11 +1693,11 @@ static int yy_get_next_buffer (void)
|
|||||||
|
|
||||||
/** Switch to a different input buffer.
|
/** Switch to a different input buffer.
|
||||||
* @param new_buffer The new input buffer.
|
* @param new_buffer The new input buffer.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer )
|
void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer )
|
||||||
{
|
{
|
||||||
|
|
||||||
/* TODO. We should be able to replace this entire function body
|
/* TODO. We should be able to replace this entire function body
|
||||||
* with
|
* with
|
||||||
* zconfpop_buffer_state();
|
* zconfpop_buffer_state();
|
||||||
@ -1737,13 +1737,13 @@ static void zconf_load_buffer_state (void)
|
|||||||
/** Allocate and initialize an input buffer state.
|
/** Allocate and initialize an input buffer state.
|
||||||
* @param file A readable stream.
|
* @param file A readable stream.
|
||||||
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
|
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
|
||||||
*
|
*
|
||||||
* @return the allocated buffer state.
|
* @return the allocated buffer state.
|
||||||
*/
|
*/
|
||||||
YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size )
|
YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size )
|
||||||
{
|
{
|
||||||
YY_BUFFER_STATE b;
|
YY_BUFFER_STATE b;
|
||||||
|
|
||||||
b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
|
b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
|
||||||
if ( ! b )
|
if ( ! b )
|
||||||
YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
|
YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
|
||||||
@ -1766,11 +1766,11 @@ static void zconf_load_buffer_state (void)
|
|||||||
|
|
||||||
/** Destroy the buffer.
|
/** Destroy the buffer.
|
||||||
* @param b a buffer created with zconf_create_buffer()
|
* @param b a buffer created with zconf_create_buffer()
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void zconf_delete_buffer (YY_BUFFER_STATE b )
|
void zconf_delete_buffer (YY_BUFFER_STATE b )
|
||||||
{
|
{
|
||||||
|
|
||||||
if ( ! b )
|
if ( ! b )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -1791,7 +1791,7 @@ static void zconf_load_buffer_state (void)
|
|||||||
|
|
||||||
{
|
{
|
||||||
int oerrno = errno;
|
int oerrno = errno;
|
||||||
|
|
||||||
zconf_flush_buffer(b );
|
zconf_flush_buffer(b );
|
||||||
|
|
||||||
b->yy_input_file = file;
|
b->yy_input_file = file;
|
||||||
@ -1807,13 +1807,13 @@ static void zconf_load_buffer_state (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
b->yy_is_interactive = 0;
|
b->yy_is_interactive = 0;
|
||||||
|
|
||||||
errno = oerrno;
|
errno = oerrno;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
|
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
|
||||||
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
|
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void zconf_flush_buffer (YY_BUFFER_STATE b )
|
void zconf_flush_buffer (YY_BUFFER_STATE b )
|
||||||
{
|
{
|
||||||
@ -1842,7 +1842,7 @@ static void zconf_load_buffer_state (void)
|
|||||||
* the current state. This function will allocate the stack
|
* the current state. This function will allocate the stack
|
||||||
* if necessary.
|
* if necessary.
|
||||||
* @param new_buffer The new state.
|
* @param new_buffer The new state.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
|
void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
|
||||||
{
|
{
|
||||||
@ -1872,7 +1872,7 @@ void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
|
|||||||
|
|
||||||
/** Removes and deletes the top of the stack, if present.
|
/** Removes and deletes the top of the stack, if present.
|
||||||
* The next element becomes the new top.
|
* The next element becomes the new top.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void zconfpop_buffer_state (void)
|
void zconfpop_buffer_state (void)
|
||||||
{
|
{
|
||||||
@ -1896,7 +1896,7 @@ void zconfpop_buffer_state (void)
|
|||||||
static void zconfensure_buffer_stack (void)
|
static void zconfensure_buffer_stack (void)
|
||||||
{
|
{
|
||||||
int num_to_alloc;
|
int num_to_alloc;
|
||||||
|
|
||||||
if (!(yy_buffer_stack)) {
|
if (!(yy_buffer_stack)) {
|
||||||
|
|
||||||
/* First allocation is just for 2 elements, since we don't know if this
|
/* First allocation is just for 2 elements, since we don't know if this
|
||||||
@ -1907,9 +1907,9 @@ static void zconfensure_buffer_stack (void)
|
|||||||
(yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
|
(yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
|
||||||
(num_to_alloc * sizeof(struct yy_buffer_state*)
|
(num_to_alloc * sizeof(struct yy_buffer_state*)
|
||||||
);
|
);
|
||||||
|
|
||||||
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
|
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
|
||||||
|
|
||||||
(yy_buffer_stack_max) = num_to_alloc;
|
(yy_buffer_stack_max) = num_to_alloc;
|
||||||
(yy_buffer_stack_top) = 0;
|
(yy_buffer_stack_top) = 0;
|
||||||
return;
|
return;
|
||||||
@ -1935,13 +1935,13 @@ static void zconfensure_buffer_stack (void)
|
|||||||
/** Setup the input buffer state to scan directly from a user-specified character buffer.
|
/** Setup the input buffer state to scan directly from a user-specified character buffer.
|
||||||
* @param base the character buffer
|
* @param base the character buffer
|
||||||
* @param size the size in bytes of the character buffer
|
* @param size the size in bytes of the character buffer
|
||||||
*
|
*
|
||||||
* @return the newly allocated buffer state object.
|
* @return the newly allocated buffer state object.
|
||||||
*/
|
*/
|
||||||
YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
|
YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
|
||||||
{
|
{
|
||||||
YY_BUFFER_STATE b;
|
YY_BUFFER_STATE b;
|
||||||
|
|
||||||
if ( size < 2 ||
|
if ( size < 2 ||
|
||||||
base[size-2] != YY_END_OF_BUFFER_CHAR ||
|
base[size-2] != YY_END_OF_BUFFER_CHAR ||
|
||||||
base[size-1] != YY_END_OF_BUFFER_CHAR )
|
base[size-1] != YY_END_OF_BUFFER_CHAR )
|
||||||
@ -1970,14 +1970,14 @@ YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
|
|||||||
/** Setup the input buffer state to scan a string. The next call to zconflex() will
|
/** Setup the input buffer state to scan a string. The next call to zconflex() will
|
||||||
* scan from a @e copy of @a str.
|
* scan from a @e copy of @a str.
|
||||||
* @param yy_str a NUL-terminated string to scan
|
* @param yy_str a NUL-terminated string to scan
|
||||||
*
|
*
|
||||||
* @return the newly allocated buffer state object.
|
* @return the newly allocated buffer state object.
|
||||||
* @note If you want to scan bytes that may contain NUL values, then use
|
* @note If you want to scan bytes that may contain NUL values, then use
|
||||||
* zconf_scan_bytes() instead.
|
* zconf_scan_bytes() instead.
|
||||||
*/
|
*/
|
||||||
YY_BUFFER_STATE zconf_scan_string (yyconst char * yy_str )
|
YY_BUFFER_STATE zconf_scan_string (yyconst char * yy_str )
|
||||||
{
|
{
|
||||||
|
|
||||||
return zconf_scan_bytes(yy_str,strlen(yy_str) );
|
return zconf_scan_bytes(yy_str,strlen(yy_str) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1985,7 +1985,7 @@ YY_BUFFER_STATE zconf_scan_string (yyconst char * yy_str )
|
|||||||
* scan from a @e copy of @a bytes.
|
* scan from a @e copy of @a bytes.
|
||||||
* @param bytes the byte buffer to scan
|
* @param bytes the byte buffer to scan
|
||||||
* @param len the number of bytes in the buffer pointed to by @a bytes.
|
* @param len the number of bytes in the buffer pointed to by @a bytes.
|
||||||
*
|
*
|
||||||
* @return the newly allocated buffer state object.
|
* @return the newly allocated buffer state object.
|
||||||
*/
|
*/
|
||||||
YY_BUFFER_STATE zconf_scan_bytes (yyconst char * bytes, int len )
|
YY_BUFFER_STATE zconf_scan_bytes (yyconst char * bytes, int len )
|
||||||
@ -1994,7 +1994,7 @@ YY_BUFFER_STATE zconf_scan_bytes (yyconst char * bytes, int len )
|
|||||||
char *buf;
|
char *buf;
|
||||||
yy_size_t n;
|
yy_size_t n;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Get memory for full buffer, including space for trailing EOB's. */
|
/* Get memory for full buffer, including space for trailing EOB's. */
|
||||||
n = len + 2;
|
n = len + 2;
|
||||||
buf = (char *) zconfalloc(n );
|
buf = (char *) zconfalloc(n );
|
||||||
@ -2048,16 +2048,16 @@ static void yy_fatal_error (yyconst char* msg )
|
|||||||
/* Accessor methods (get/set functions) to struct members. */
|
/* Accessor methods (get/set functions) to struct members. */
|
||||||
|
|
||||||
/** Get the current line number.
|
/** Get the current line number.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
int zconfget_lineno (void)
|
int zconfget_lineno (void)
|
||||||
{
|
{
|
||||||
|
|
||||||
return zconflineno;
|
return zconflineno;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get the input stream.
|
/** Get the input stream.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
FILE *zconfget_in (void)
|
FILE *zconfget_in (void)
|
||||||
{
|
{
|
||||||
@ -2065,7 +2065,7 @@ FILE *zconfget_in (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Get the output stream.
|
/** Get the output stream.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
FILE *zconfget_out (void)
|
FILE *zconfget_out (void)
|
||||||
{
|
{
|
||||||
@ -2073,7 +2073,7 @@ FILE *zconfget_out (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Get the length of the current token.
|
/** Get the length of the current token.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
int zconfget_leng (void)
|
int zconfget_leng (void)
|
||||||
{
|
{
|
||||||
@ -2081,7 +2081,7 @@ int zconfget_leng (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Get the current token.
|
/** Get the current token.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *zconfget_text (void)
|
char *zconfget_text (void)
|
||||||
@ -2091,18 +2091,18 @@ char *zconfget_text (void)
|
|||||||
|
|
||||||
/** Set the current line number.
|
/** Set the current line number.
|
||||||
* @param line_number
|
* @param line_number
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void zconfset_lineno (int line_number )
|
void zconfset_lineno (int line_number )
|
||||||
{
|
{
|
||||||
|
|
||||||
zconflineno = line_number;
|
zconflineno = line_number;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set the input stream. This does not discard the current
|
/** Set the input stream. This does not discard the current
|
||||||
* input buffer.
|
* input buffer.
|
||||||
* @param in_str A readable stream.
|
* @param in_str A readable stream.
|
||||||
*
|
*
|
||||||
* @see zconf_switch_to_buffer
|
* @see zconf_switch_to_buffer
|
||||||
*/
|
*/
|
||||||
void zconfset_in (FILE * in_str )
|
void zconfset_in (FILE * in_str )
|
||||||
@ -2128,7 +2128,7 @@ void zconfset_debug (int bdebug )
|
|||||||
/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
|
/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
|
||||||
int zconflex_destroy (void)
|
int zconflex_destroy (void)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Pop the buffer stack, destroying each element. */
|
/* Pop the buffer stack, destroying each element. */
|
||||||
while(YY_CURRENT_BUFFER){
|
while(YY_CURRENT_BUFFER){
|
||||||
zconf_delete_buffer(YY_CURRENT_BUFFER );
|
zconf_delete_buffer(YY_CURRENT_BUFFER );
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
This is NOT the official version of dialog. This version has been
|
This is NOT the official version of dialog. This version has been
|
||||||
significantly modified from the original. It is for use by the Linux
|
significantly modified from the original. It is for use by the Linux
|
||||||
busybox configuration script. Please do not bother Savio Lam with
|
busybox configuration script. Please do not bother Savio Lam with
|
||||||
questions about this program.
|
questions about this program.
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
*
|
*
|
||||||
* *) A bugfix for the Page-Down problem
|
* *) A bugfix for the Page-Down problem
|
||||||
*
|
*
|
||||||
* *) Formerly when I used Page Down and Page Up, the cursor would be set
|
* *) Formerly when I used Page Down and Page Up, the cursor would be set
|
||||||
* to the first position in the menu box. Now lxdialog is a bit
|
* to the first position in the menu box. Now lxdialog is a bit
|
||||||
* smarter and works more like other menu systems (just have a look at
|
* smarter and works more like other menu systems (just have a look at
|
||||||
* it).
|
* it).
|
||||||
|
@ -1086,7 +1086,7 @@ yyparse ()
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
|
||||||
register int yystate;
|
register int yystate;
|
||||||
register int yyn;
|
register int yyn;
|
||||||
int yyresult;
|
int yyresult;
|
||||||
|
@ -2036,7 +2036,7 @@ static int is_safe_applet(char *name)
|
|||||||
{
|
{
|
||||||
/* It isn't a bug to have non-existent applet here... */
|
/* It isn't a bug to have non-existent applet here... */
|
||||||
/* ...just a waste of space... */
|
/* ...just a waste of space... */
|
||||||
static const char safe_applets[][8] = {
|
static const char safe_applets[][8] = {
|
||||||
"["
|
"["
|
||||||
USE_AWK (, "awk" )
|
USE_AWK (, "awk" )
|
||||||
USE_CAT (, "cat" )
|
USE_CAT (, "cat" )
|
||||||
@ -3763,7 +3763,7 @@ tryexec(char *cmd, char **argv, char **envp)
|
|||||||
struct BB_applet *a;
|
struct BB_applet *a;
|
||||||
int argc = 0;
|
int argc = 0;
|
||||||
char **c;
|
char **c;
|
||||||
|
|
||||||
if (strchr(cmd, '/') == NULL
|
if (strchr(cmd, '/') == NULL
|
||||||
&& (a = find_applet_by_name(cmd)) != NULL
|
&& (a = find_applet_by_name(cmd)) != NULL
|
||||||
&& is_safe_applet(cmd)
|
&& is_safe_applet(cmd)
|
||||||
|
14
shell/bbsh.c
14
shell/bbsh.c
@ -1,5 +1,5 @@
|
|||||||
/* vi: set ts=4 :
|
/* vi: set ts=4 :
|
||||||
*
|
*
|
||||||
* bbsh - busybox shell
|
* bbsh - busybox shell
|
||||||
*
|
*
|
||||||
* Copyright 2006 Rob Landley <rob@landley.net>
|
* Copyright 2006 Rob Landley <rob@landley.net>
|
||||||
@ -51,7 +51,7 @@
|
|||||||
// What we know about a single process.
|
// What we know about a single process.
|
||||||
struct command {
|
struct command {
|
||||||
struct command *next;
|
struct command *next;
|
||||||
int flags; // exit, suspend, && ||
|
int flags; // exit, suspend, && ||
|
||||||
int pid; // pid (or exit code)
|
int pid; // pid (or exit code)
|
||||||
int argc;
|
int argc;
|
||||||
char *argv[0];
|
char *argv[0];
|
||||||
@ -125,9 +125,9 @@ static char *parse_pipeline(char *cmdline, struct pipeline *line)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allocate next command structure if necessary
|
// Allocate next command structure if necessary
|
||||||
if (!*cmd) *cmd = xzalloc(sizeof(struct command)+8*sizeof(char *));
|
if (!*cmd) *cmd = xzalloc(sizeof(struct command)+8*sizeof(char *));
|
||||||
|
|
||||||
// Parse next argument and add the results to argv[]
|
// Parse next argument and add the results to argv[]
|
||||||
end = parse_word(start, cmd);
|
end = parse_word(start, cmd);
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ static char *parse_pipeline(char *cmdline, struct pipeline *line)
|
|||||||
start++;
|
start++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// handle | & < > >> << || &&
|
// handle | & < > >> << || &&
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -160,7 +160,7 @@ static int run_pipeline(struct pipeline *line)
|
|||||||
if (cmd->argc==2 && !strcmp(cmd->argv[0],"cd"))
|
if (cmd->argc==2 && !strcmp(cmd->argv[0],"cd"))
|
||||||
chdir(cmd->argv[1]);
|
chdir(cmd->argv[1]);
|
||||||
else if(!strcmp(cmd->argv[0],"exit"))
|
else if(!strcmp(cmd->argv[0],"exit"))
|
||||||
exit(cmd->argc>1 ? atoi(cmd->argv[1]) : 0);
|
exit(cmd->argc>1 ? atoi(cmd->argv[1]) : 0);
|
||||||
else {
|
else {
|
||||||
int status;
|
int status;
|
||||||
pid_t pid=fork();
|
pid_t pid=fork();
|
||||||
@ -217,6 +217,6 @@ int bbsh_main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
if (ENABLE_FEATURE_CLEAN_UP) free(command);
|
if (ENABLE_FEATURE_CLEAN_UP) free(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ static const struct systypes sun_sys_types[] = {
|
|||||||
{ "\x83" "Linux native" }, /* LINUX_NATIVE */
|
{ "\x83" "Linux native" }, /* LINUX_NATIVE */
|
||||||
{ "\x8e" "Linux LVM" }, /* 0x8e */
|
{ "\x8e" "Linux LVM" }, /* 0x8e */
|
||||||
/* New (2.2.x) raid partition with autodetect using persistent superblock */
|
/* New (2.2.x) raid partition with autodetect using persistent superblock */
|
||||||
{ "\xfd" "Linux raid autodetect" }, /* 0xfd */
|
{ "\xfd" "Linux raid autodetect" }, /* 0xfd */
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ sun_autoconfigure_scsi(void)
|
|||||||
|
|
||||||
if (ioctl(fd, SCSI_IOCTL_GET_IDLUN, &id))
|
if (ioctl(fd, SCSI_IOCTL_GET_IDLUN, &id))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
sprintf(buffer,
|
sprintf(buffer,
|
||||||
"Host: scsi%d Channel: %02d Id: %02d Lun: %02d\n",
|
"Host: scsi%d Channel: %02d Id: %02d Lun: %02d\n",
|
||||||
/* This is very wrong (works only if you have one HBA),
|
/* This is very wrong (works only if you have one HBA),
|
||||||
@ -651,14 +651,14 @@ sun_list_table(int xtra)
|
|||||||
uint32_t start = SUN_SSWAP32(sunlabel->partitions[i].start_cylinder) * heads * sectors;
|
uint32_t start = SUN_SSWAP32(sunlabel->partitions[i].start_cylinder) * heads * sectors;
|
||||||
uint32_t len = SUN_SSWAP32(sunlabel->partitions[i].num_sectors);
|
uint32_t len = SUN_SSWAP32(sunlabel->partitions[i].num_sectors);
|
||||||
printf("%s %c%c %9ld %9ld %9ld%c %2x %s\n",
|
printf("%s %c%c %9ld %9ld %9ld%c %2x %s\n",
|
||||||
partname(disk_device, i+1, w), /* device */
|
partname(disk_device, i+1, w), /* device */
|
||||||
(sunlabel->infos[i].flags & 0x01) ? 'u' : ' ', /* flags */
|
(sunlabel->infos[i].flags & 0x01) ? 'u' : ' ', /* flags */
|
||||||
(sunlabel->infos[i].flags & 0x10) ? 'r' : ' ',
|
(sunlabel->infos[i].flags & 0x10) ? 'r' : ' ',
|
||||||
(long) scround(start), /* start */
|
(long) scround(start), /* start */
|
||||||
(long) scround(start+len), /* end */
|
(long) scround(start+len), /* end */
|
||||||
(long) len / 2, len & 1 ? '+' : ' ', /* odd flag on end */
|
(long) len / 2, len & 1 ? '+' : ' ', /* odd flag on end */
|
||||||
sunlabel->infos[i].id, /* type id */
|
sunlabel->infos[i].id, /* type id */
|
||||||
partition_type(sunlabel->infos[i].id)); /* type name */
|
partition_type(sunlabel->infos[i].id)); /* type name */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user