Commit Graph

147 Commits

Author SHA1 Message Date
Denis Vlasenko
11c17f75a7 mdev: enlarge inline documentation 2009-04-19 23:38:08 +00:00
Denis Vlasenko
3798db58cf mdev: support $ENVVAR=regex 2009-04-19 21:37:07 +00:00
Denis Vlasenko
c7cc5a9432 mdev: Rob's #if forest removal
*: remove superfluous conts in "f(type *const param)"
2009-04-19 01:27:20 +00:00
Denis Vlasenko
5ff9629b8f mdev: add large comment, fix a buglet with subsystem and /sys/block 2009-04-17 00:01:04 +00:00
Denis Vlasenko
3161b61199 mdev: set mode, needed when device node already exists. 2009-04-16 22:42:01 +00:00
Denis Vlasenko
6dda5dec23 mdev: change subsystem syntax from /subsystem to subsystem/devname 2009-04-16 21:42:12 +00:00
Denis Vlasenko
32a3d084d3 mdev: safer handling of $SUBSYSTEM in mdev -s 2009-04-14 21:23:33 +00:00
Denis Vlasenko
7f9593753a randomconfig fixes 2009-04-14 08:06:59 +00:00
Denis Vlasenko
f2b39e088d mdev: add support for - "dont stop here" char
function                                             old     new   delta
make_device                                         1340    1362     +22
packed_usage                                       26291   26299      +8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 30/0)               Total: 30 bytes
2009-04-13 23:18:52 +00:00
Denis Vlasenko
065c714791 mdev: provide $SUBSYSTEM (by Vladimir)
function                                             old     new   delta
make_device                                         1265    1340     +75
dirAction                                             14      60     +46
mdev_main                                            676     695     +19
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 140/0)             Total: 140 bytes
2009-04-13 22:23:02 +00:00
Denis Vlasenko
323cbbfaa2 mdev: fix a bug where \t is not treated as delimiter after [>|=PATH] 2009-04-13 13:59:26 +00:00
Denis Vlasenko
aafbae6181 mdev: make usage text more useful
function                                             old     new   delta
packed_usage                                       26235   26291     +56
2009-04-13 13:33:02 +00:00
Denis Vlasenko
1fb26da071 mdev: ignore events with "$SUBSYSTEM" == "firmware" && "$ACTION" == "remove"
function                                             old     new   delta
mdev_main                                            665     676     +11
2009-04-13 02:15:57 +00:00
Denis Vlasenko
f1df35c40b mdev: do not complain if /sys/block doesn't exist 2009-04-12 14:00:12 +00:00
Denis Vlasenko
d63cd1bf1c mdev: if /sys/class/block exists, don't scan /sys/block 2009-02-13 00:02:54 +00:00
Denis Vlasenko
319fe129a1 mdev: fix breakage caused by unified parser usage 2009-01-12 07:57:52 +00:00
Mike Frysinger
870ccd7212 do not whine if /sys/block does not exist ... embedded systems dont need stinkin block devices 2009-01-08 17:19:01 +00:00
Denis Vlasenko
76ddc2e3e4 libbb: add bb_unsetenv (taken from hush).
udhcpc: stop filtering environment passed to the script.
crond: fix uncovered potential bug (failing unsetenv)
mdev: fix uncovered potential bug (failing unsetenv)
tcp, udpsvd: fix uncovered potential bug (failing unsetenv)

function                                             old     new   delta
safe_setenv                                            -      58     +58
bb_unsetenv                                            -      55     +55
builtin_unset                                        139     138      -1
tcpudpsvd_main                                      1843    1830     -13
free_strings_and_unsetenv                             87      53     -34
udhcp_run_script                                    1186    1133     -53
safe_setenv4                                          62       -     -62
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 0/4 up/down: 113/-163)          Total: -50 bytes
2008-12-30 05:05:31 +00:00
Denis Vlasenko
9504e444b8 whitespace fixes, no code changes 2008-10-29 01:19:15 +00:00
Denis Vlasenko
8d89bed840 watchdog: add -T option
function                                             old     new   delta
 watchdog_main                                        159     219     +60
mdev: support match by major,minor. See bug 4714.
 +100 bytes.
2008-09-07 23:22:08 +00:00
Denis Vlasenko
084266ed52 fix several problems with config parser:
a bug where it underflows the string
 a bug where it never frees parser_t struct
make read_config() return 0 if parser is NULL,
 make config_close() accept and ignore NULL parser -
 eliminates many if() blocks
reverse the sense of parser bit flags - negative flags
 are harder to grok.
hexdump: revert the change to use config parser, it is BIGGER
 and also requires additional quirks in parser
*: explicitly use PARSER_NORMAL instead of 0

function                                             old     new   delta
login_main                                          1575    1596     +21
config_close                                          18      29     +11
bbunpack                                             383     391      +8
qgravechar                                           106     109      +3
rtnl_tab_initialize                                  121     117      -4
expand                                              1697    1693      -4
man_main                                             717     712      -5
nameif_main                                          674     668      -6
hexdump_main                                         597     591      -6
read_config                                          217     209      -8
dnsd_main                                           1478    1470      -8
sysctl_main                                          203     189     -14
config_open2                                          44      25     -19
make_device                                         1177    1141     -36
config_read                                          597     549     -48
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/11 up/down: 43/-158)         Total: -115 bytes
2008-07-26 23:08:31 +00:00
Denis Vlasenko
df96df9c7c mdev: do not complain if mdev.conf does not exist;
use #if to prevent gcc from generating dead code
 (sadly, it's more ugly this way)
2008-07-26 18:35:10 +00:00
Bernhard Reutner-Fischer
b62bd7b261 - unused variables if !ENABLE_FEATURE_MDEV_RENAME_REGEXP 2008-07-22 07:33:53 +00:00
Denis Vlasenko
2e157ddf9e libbb: updated config_parse() from Vladimir
function                                             old     new   delta
config_read                                          385     460     +75
runsvdir_main                                       1701    1716     +15
readit                                               331     338      +7
passwd_main                                         1049    1053      +4
parse_command                                       1504    1507      +3
decode_format_string                                 822     824      +2
bb__parsespent                                       117     119      +2
udhcp_get_option                                     221     222      +1
changepath                                           196     194      -2
parse_inittab                                        400     396      -4
nameif_main                                          683     679      -4
make_device                                         1176    1172      -4
config_open                                           48      40      -8
expand_main                                          698     689      -9
readcmd                                             1012    1002     -10
config_free_data                                      37      21     -16
SynchronizeFile                                      683     643     -40
sleep_main                                           474     362    -112
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 8/10 up/down: 109/-209)        Total: -100 bytes
2008-07-19 09:27:19 +00:00
Bernhard Reutner-Fischer
679212836a - fix segfault in nameif with mactab file
(by fixing and shrink config parser)

function                                             old     new   delta
config_free_data                                       -      37     +37
config_open                                           43      48      +5
pack_gzip                                           1658    1660      +2
nameif_main                                          527     525      -2
SynchronizeFile                                      629     623      -6
make_device                                         1184    1176      -8
config_close                                          31      18     -13
config_read                                          431     393     -38
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/5 up/down: 44/-67)            Total: -23 bytes
2008-07-17 11:59:13 +00:00
Denis Vlasenko
fb1642f2ca fix up callsites of config_read to check for >= 0 2008-07-16 23:04:49 +00:00
Denis Vlasenko
018bee6afb mdev: support for serializing hotplug
function                                             old     new   delta
mdev_main                                            503     647    +144
2008-07-15 22:33:13 +00:00
Denis Vlasenko
e559e0a757 libbb: unified config parser (By Vladimir Dronnikov)
mdev: use it

function                                             old     new   delta
config_read                                            -     400    +400
config_open                                            -      43     +43
config_close                                           -       9      +9
qrealloc                                              33      36      +3
compare_keys                                         735     737      +2
xstrtoull_range_sfx                                  296     295      -1
qgravechar                                           109     106      -3
get_address                                          181     178      -3
next_token                                           928     923      -5
sv_main                                             1228    1222      -6
find_main                                            418     406     -12
next_field                                            32       -     -32
make_device                                         1269    1184     -85
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 2/7 up/down: 457/-147)          Total: 310 bytes
2008-07-15 21:09:30 +00:00
Denis Vlasenko
a87045ce37 mdev: check for "/block/" substring for block dev detection
function                                             old     new   delta
make_device                                         1294    1269     -25
2008-07-12 10:28:41 +00:00
Denis Vlasenko
d9860487e0 mdev: if device was moved at creation, at removal coreectly remove
it from moved location and also remove symlinks to it

function                                             old     new   delta
build_alias                                            -      78     +78
mdev_main                                            505     503      -2
make_device                                         1300    1294      -6
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 78/-8)              Total: 70 bytes
2008-07-12 10:23:16 +00:00
Denis Vlasenko
67075bb95f mdev: reinstate "follow symlinks" flag, this time with explanation 2008-07-06 17:00:49 +00:00
Denis Vlasenko
d48e81f0cd mdev: do not follow symlinks in /sys (as was intended prior to rev 18811).
If this breaks things, please document why!
mdev,init: use shared code for fd sanitization

function                                             old     new   delta
bb_daemonize_or_rexec                                155     172     +17
mdev_main                                            500     505      +5
init_main                                            907     856     -51
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 22/-51)            Total: -29 bytes
2008-07-06 07:00:11 +00:00
Denis Vlasenko
a60f84ebf0 *: rename ATTRIBUTE_XXX to just XXX. 2008-07-05 09:18:54 +00:00
Denis Vlasenko
defc1ea340 *: introduce and use FAST_FUNC: regparm on i386, otherwise no-on
text    data     bss     dec     hex filename
 808035     611    6868  815514   c719a busybox_old
 804472     611    6868  811951   c63af busybox_unstripped
2008-06-27 02:52:20 +00:00
Denis Vlasenko
7049ff8696 whitespace fixes. no code changes 2008-06-25 09:53:17 +00:00
Denis Vlasenko
f4e6bd0bf3 mdev: add commented-out debug code to open stdio. 2008-05-31 18:27:58 +00:00
Denis Vlasenko
e94a87134d mdev: fix counting of '%' in pattern 2008-05-24 16:46:13 +00:00
Denis Vlasenko
ff9234948e mdev: fix whitespace damage 2008-05-23 20:36:33 +00:00
Denis Vlasenko
a959a2abdd mdev: suppress "may be used uninitialized" warning 2008-05-22 21:35:16 +00:00
Denis Vlasenko
4801441e9a mdev: add support for "only rename" option in mdev.conf 2008-05-22 17:49:58 +00:00
Denis Vlasenko
77ad97f199 more -Wall warning fixes from Cristian Ionescu-Idbohrn.
This time it resulted in small code changes:

function                                             old     new   delta
nexpr                                                820     828      +8
tail_main                                           1200    1202      +2
wrapf                                                166     167      +1
parse_mount_options                                  227     209     -18
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 11/-18)             Total: -7 bytes
2008-05-13 02:27:31 +00:00
Denis Vlasenko
4579e9c1c8 mdev: /sys/class/block/ are also block devices
function                                             old     new   delta
make_device                                         1200    1221     +21
2008-05-08 21:49:28 +00:00
Denis Vlasenko
32dcc53b71 mdev: fix a bug where we were eating argv[0] of helper 2008-05-02 13:21:24 +00:00
Denis Vlasenko
1f228985b2 whitespace fixes. no code changes 2008-04-22 00:16:29 +00:00
Denis Vlasenko
f2f3868e0d mdev: optional support for regex pattern group substitution.
+142 bytes.
2008-03-29 17:26:10 +00:00
Denis Vlasenko
aa8a601084 mdev: fix block/char device detection. Closes bug 2144. 2008-03-29 16:07:46 +00:00
Denis Vlasenko
cae11b51aa mdev: fix "foo 0:0 444 >bar/baz" rule handling. make_device() +23 bytes 2008-03-29 15:11:07 +00:00
Denis Vlasenko
4461564c77 mdev: fix a bug where it was not stopping on first matching rule
(testsuite entry added). Revamped line parsing while at it.

function                                             old     new   delta
next_field                                             -      36     +36
make_device                                         1104    1022     -82
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 36/-82)            Total: -46 bytes
2008-03-29 13:10:57 +00:00
Denis Vlasenko
cf26ab70c1 mdev: plug a few memory and fd leaks; simplify code a bit 2008-03-27 22:45:44 +00:00
Denis Vlasenko
8ee649a02e *: more uniform naming: s/xmalloc_getline/xmalloc_fgetline/ 2008-03-26 20:04:27 +00:00
Denis Vlasenko
68404f13d4 *: add -Wunused-parameter; fix resulting breakage
function                                             old     new   delta
procps_scan                                         1265    1298     +33
aliascmd                                             278     283      +5
parse_file_cmd                                       116     120      +4
dname_enc                                            373     377      +4
setcmd                                                90      93      +3
execcmd                                               57      60      +3
count_lines                                           72      74      +2
process_command_subs                                 340     339      -1
test_main                                            409     407      -2
mknod_main                                           179     177      -2
handle_incoming_and_exit                            2653    2651      -2
argstr                                              1312    1310      -2
shiftcmd                                             131     128      -3
exitcmd                                               46      43      -3
dotcmd                                               297     294      -3
breakcmd                                              86      83      -3
evalpipe                                             353     349      -4
evalcommand                                         1180    1176      -4
evalcmd                                              109     105      -4
send_tree                                            374     369      -5
mkfifo_main                                           82      77      -5
evalsubshell                                         152     147      -5
typecmd                                               75      69      -6
letcmd                                                61      55      -6
add_cmd                                             1190    1183      -7
main                                                 891     883      -8
ash_main                                            1415    1407      -8
parse_stream                                        1377    1367     -10
alloc_procps_scan                                     55       -     -55
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 7/21 up/down: 54/-148)          Total: -94 bytes
   text    data     bss     dec     hex filename
 797195     658    7428  805281   c49a1 busybox_old
 797101     658    7428  805187   c4943 busybox_unstripped
2008-03-17 09:00:54 +00:00
Mike Frysinger
ae86a338b8 [#1334] exec script for devices even if they dont have device nodes 2008-02-20 18:31:36 +00:00
Denis Vlasenko
cb448fe01b libbb: introduce and use xrename and rename_or_warn. 2008-02-17 14:28:53 +00:00
Mike Frysinger
f0044c480c add support for renaming/relocating device nodes 2008-02-01 06:53:50 +00:00
Mike Frysinger
46ef46aefb as reported by George Boudreau, make sure we properly skip blank lines 2008-01-23 18:48:26 +00:00
Denis Vlasenko
ee87ebf381 fix buglets found by randomconfig 2007-12-21 22:18:16 +00:00
Mike Frysinger
c881c733bb cleanup comments and coding style and rewrite the mdev.conf parser to use common busybox functions and call strdup() less often ... saves a ~few hundred bytes 2007-11-19 09:04:22 +00:00
Denis Vlasenko
9b49a5ed85 add -fvisibility=hidden to CC flags, mark XXX_main functions
EXTERNALLY_VISIBLE. 5% size reduction of libbusybox.so
2007-10-11 10:05:36 +00:00
Denis Vlasenko
6ca409e0e4 trylink: produce even more info about final link stage
trylink: explain how to modify link and drastically decrease amount
  of padding (unfortunately, needs hand editing ATM).
*: add ALIGN1 / ALIGN2 to global strings and arrays of bytes and shorts

size saving: 0.5k
2007-08-12 20:58:27 +00:00
Denis Vlasenko
dc757aa16c introduce and use bb_basename()
function                                             old     new   delta
bb_basename                                            -      26     +26
sv_main                                             1226    1225      -1
passwd_main                                         1985    1983      -2
showdirs                                             482     478      -4
sendCgi                                             1811    1807      -4
make_device                                         1354    1350      -4
handleIncoming                                      2443    2439      -4
func_name                                             82      78      -4
service_name                                        2292    2285      -7
main                                                 909     901      -8
cmp_main                                             555     547      -8
test_main                                            434     422     -12
act                                                  228     216     -12
find_pair                                            180     164     -16
rmmod_main                                           298     280     -18
find_pid_by_name                                     156     134     -22
modprobe_main                                       1606    1576     -30
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/16 up/down: 26/-156)         Total: -130 bytes
   text    data     bss     dec     hex filename
 734933    3028   14400  752361   b7ae9 busybox_old
 734801    3028   14400  752229   b7a65 busybox_unstripped
2007-06-30 08:04:05 +00:00
Bernhard Reutner-Fischer
bb0baed564 - strndupa is a GNU extension. Using strdup to avoid several errors like:
util-linux/mdev.c:(.text+0x29a): undefined reference to `strndupa'
2007-06-20 09:56:47 +00:00
Mike Frysinger
0e0639b702 Alex Landau writes: open firmware for reading, not writing 2007-06-14 09:29:48 +00:00
Mike Frysinger
b51fd3525e as suggested by Renaud Cerrato and Souf, switch over to recursive_action() for some nice shrinkage and so we work even when CONFIG_SYSFS_DEPRECATED is off 2007-06-13 09:24:50 +00:00
Mike Frysinger
a78ef2ccf1 add support for firmware loading 2007-06-13 07:34:15 +00:00
Denis Vlasenko
d6766c71a9 mdev: microscopic enhancement, should change nothing 2007-06-08 16:18:15 +00:00
Denis Vlasenko
4e5f82c76f find_stray_communal_vars: script which finds communal variables
resize: remove globals var
mdev: remove globals var
2007-06-03 22:30:22 +00:00
Denis Vlasenko
b6adbf1be2 usage.c: remove reference to busybox.h
*: s/include "busybox.h"/include "libbb.h"
2007-05-26 19:00:18 +00:00
Bernhard Reutner-Fischer
febe3c4211 - sed -e "s/char[[:space:]]*\*[[:space:]]*argv\[\]/char **argv/g" 2007-04-04 20:52:03 +00:00
Denis Vlasenko
06af216528 suppress warnings about easch <applet>_main() having
no preceding prototype
2007-02-03 17:28:39 +00:00
Denis Vlasenko
b6aae0f381 preparatory patch for -Wwrite-strings #2 2007-01-29 22:51:25 +00:00
Denis Vlasenko
cf749bc10c small fixes:
fix xstrdup to not grossly overallocate memory
use xopen instean of xopen3 in several places
etc.
2006-11-26 15:45:17 +00:00
Denis Vlasenko
f46be09106 mdev: reduce excessive indentation 2006-10-16 19:39:37 +00:00
Denis Vlasenko
ea62077b85 add open_read_close() and similar stuff 2006-10-14 02:23:43 +00:00
Denis Vlasenko
9275814a9e lots of silly indent fixes 2006-10-03 19:56:34 +00:00
Denis Vlasenko
a959588b80 Yet another silly little byte saving. couldn't -> cannot 2006-09-29 21:30:43 +00:00
Rob Landley
e9a7a6212b Change license statements (and clean up headers) on some of the files that
Erik or I are primary copyright holders on.
2006-09-22 02:52:41 +00:00
Denis Vlasenko
9213a9e0f2 whitespace cleanup 2006-09-17 16:28:10 +00:00
Rob Landley
10b36f94bb Patch from Chris Steel to fix mdev deleting device nodes. 2006-08-10 01:09:37 +00:00
Rob Landley
d921b2ecc0 Remove bb_ prefixes from xfuncs.c (and a few other places), consolidate
things like xasprintf() into xfuncs.c, remove xprint_file_by_name() (it only
had one user), clean up lots of #includes...  General cleanup pass.  What I've
been doing for the last couple days.

And it conflicts!  I've removed httpd.c from this checkin due to somebody else
touching that file.  It builds for me.  I have to catch a bus.  (Now you know
why I'm looking forward to Mercurial.)
2006-08-03 15:41:12 +00:00
"Robert P. J. Day"
63fc1a9e08 Standardize on the vi editing directives being on the first line. 2006-07-02 19:47:05 +00:00
Rob Landley
ef10d52745 Upgrade mdev to allow commands to be run on create/delete.
Both Jason Schoon and Giuseppe Ciotta deserve credit for this, I used elements
of both.  It's been upgraded so that you can specify that a given command
should run at create, at delete, or at both using different special characters
(@, $, and * respectively).  It uses the system() method of running command
lines which means you can use environment variables on the command line (it
sets $MDEV to the name of the current device being created/deleted, which is
useful if you matched it via regex), and the documentation warns that you need
a /bin/sh to make that work, so you probably want to pick a default shell.
2006-06-26 14:11:33 +00:00
Rob Landley
0960ca7383 Work around a persistent uClibc bug, since 0.9.29 still hasn't shipped.
Poked to do this by Jason Schoon.
2006-06-13 18:27:16 +00:00
Rob Landley
5cd1ccd995 Convert to a global struct, the way sed was. Now I have two, I can work out
the infrastructure to merge global structs into a union...
2006-05-21 18:33:27 +00:00
Rob Landley
15fe2e11d7 Shrink the code about 50 bytes, allocate less run-time memory, and add a
comment that null terminating the string we sscanf() shouldn't be required
since the kernel adds \n to the end of it and sscanf will stop there.
2006-05-08 02:53:23 +00:00
Rob Landley
a7e3d05208 Create /dev/root symlink pointing to real root device, if any. 2006-02-21 06:11:13 +00:00
Mike Frysinger
271aa40a15 add back in path nulling after calling find_dev() since it is needed for now ... 2006-02-07 06:10:45 +00:00
Mike Frysinger
a421ba8203 cleanup style ... just because you use less spaces doesnt mean the resulting code is smaller 2006-02-03 00:25:37 +00:00
Mike Frysinger
248d2220f9 shrink the code a bit 2006-02-03 00:19:42 +00:00
Mike Frysinger
53d57dbe6b gavinl writes in Bug 661:
if read() file return less than 1, we should close the fd and then goto end.
2006-02-03 00:16:53 +00:00
Tim Riker
c1ef7bdd8d just whitespace 2006-01-25 00:08:53 +00:00
Rob Landley
e927743bb0 There was a missing ! on strcmp (despite the fact it worked in my testing,
I have no idea _how_), and a simpler fix for the extra \n problem.  I tested
this and it worked for me, for what that's worth...
2006-01-22 23:14:16 +00:00
Rob Landley
29e08ffcdf Frank Sorenson added hotplug support to mdev. (I tweaked it a bit. Need
to come up with a test suite for all the stuff that requires root access.
Something involving User Mode Linux or QEMU, probably...)
2006-01-12 06:13:50 +00:00
Rob Landley
1c19deed17 The major:minor read from dev ends with \n, need to trim that. 2006-01-12 03:07:49 +00:00
Mike Frysinger
5990efb795 use MAP_PRIVATE instead of MAP_SHARED for uClinux systems (see Bug 550) 2006-01-04 07:31:19 +00:00
Rob Landley
9bdd742dd2 Sigh. Left the debug path in. Fixed. 2005-12-17 10:54:17 +00:00
Rob Landley
b56c285da5 Added /etc/mdev.conf support. Adds about 1.9k to mdev. 2005-12-17 10:52:30 +00:00
Rob Landley
70f7ef7be3 Nothing to see here. Move along.
Not buying it, eh?

I know I said new features before 1.1, but, well...  (I was weak!)

The config file and hotplug modes aren't implemented yet.  Might take a stab at
those tomorrow.  (I _should_ go back to focusing on the bug triage list.)
2005-12-13 08:21:33 +00:00