diff options
author | Denis Vlasenko | 2008-08-05 13:10:34 +0000 |
---|---|---|
committer | Denis Vlasenko | 2008-08-05 13:10:34 +0000 |
commit | e9ad84dfd4c7eb2936374f02989dacf7026a7276 (patch) | |
tree | 37412d21c0a2ccec7c162e0fb42833058f5934e3 /modutils | |
parent | 9b44613202a6f2f080ec23746d0680dcef88628d (diff) | |
download | busybox-e9ad84dfd4c7eb2936374f02989dacf7026a7276.zip busybox-e9ad84dfd4c7eb2936374f02989dacf7026a7276.tar.gz |
*: refactor handling of archived files. "tar f file.tar.lzma" now works too.
function old new delta
unpack_Z_stream - 1229 +1229
open_zipped - 176 +176
unpack_bz2_stream_prime - 60 +60
tar_main 642 677 +35
find_main 406 418 +12
sv_main 1222 1233 +11
decode_format_string 829 837 +8
cmp_main 641 649 +8
popstring 134 140 +6
filter_accept_list_reassign 120 125 +5
parse_and_put_prompt 800 804 +4
passwd_main 1053 1049 -4
make_new_name_gunzip 119 114 -5
rpm_main 1688 1670 -18
prepare 302 283 -19
xmalloc_open_zipped_read_close 135 61 -74
uncompress 1229 - -1229
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 8/5 up/down: 1554/-1349) Total: 205 bytes
Diffstat (limited to 'modutils')
-rw-r--r-- | modutils/Config.in | 7 | ||||
-rw-r--r-- | modutils/modprobe-small.c | 12 |
2 files changed, 3 insertions, 16 deletions
diff --git a/modutils/Config.in b/modutils/Config.in index f76a082..a430fca 100644 --- a/modutils/Config.in +++ b/modutils/Config.in @@ -54,13 +54,6 @@ config FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED Check if the module is already loaded. N.B. It's racy. -config FEATURE_MODPROBE_SMALL_ZIPPED - bool "Handle gzipped or bzipped modules" - default n - depends on MODPROBE_SMALL - help - Handle compressed modules. Bloaty. Sloooow. - config DEPMOD bool "depmod" default n diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c index ea130b8..ac08ba7 100644 --- a/modutils/modprobe-small.c +++ b/modutils/modprobe-small.c @@ -100,7 +100,7 @@ static char* find_keyword(char *ptr, size_t len, const char *word) { int wlen; - if (!ptr) /* happens if read_module cannot read it */ + if (!ptr) /* happens if xmalloc_open_zipped_read_close cannot read it */ return NULL; wlen = strlen(word); @@ -141,12 +141,6 @@ static char* str_2_list(const char *str) return dst; } -#if ENABLE_FEATURE_MODPROBE_SMALL_ZIPPED -# define read_module xmalloc_open_zipped_read_close -#else -# define read_module xmalloc_open_read_close -#endif - /* We use error numbers in a loose translation... */ static const char *moderror(int err) { @@ -173,7 +167,7 @@ static int load_module(const char *fname, const char *options) char *module_image; dbg1_error_msg("load_module('%s','%s')", fname, options); - module_image = read_module(fname, &len); + module_image = xmalloc_open_zipped_read_close(fname, &len); r = (!module_image || init_module(module_image, len, options ? options : "") != 0); free(module_image); dbg1_error_msg("load_module:%d", r); @@ -195,7 +189,7 @@ static void parse_module(module_info *info, const char *pathname) /* Read (possibly compressed) module */ len = 64 * 1024 * 1024; /* 64 Mb at most */ - module_image = read_module(pathname, &len); + module_image = xmalloc_open_zipped_read_close(pathname, &len); //TODO: optimize redundant module body reads /* "alias1 symbol:sym1 alias2 symbol:sym2" */ |