From e9ad84dfd4c7eb2936374f02989dacf7026a7276 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Tue, 5 Aug 2008 13:10:34 +0000 Subject: *: 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 --- modutils/Config.in | 7 ------- modutils/modprobe-small.c | 12 +++--------- 2 files changed, 3 insertions(+), 16 deletions(-) (limited to 'modutils') 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" */ -- cgit v1.1