aboutsummaryrefslogtreecommitdiff
path: root/modutils
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2006-08-03 15:41:12 +0000
committerRob Landley <rob@landley.net>2006-08-03 15:41:12 +0000
commitd921b2ecc0d294ad4bf8c7458fc52a60c28727d2 (patch)
treee4a2769349867c441cf2983d83097bb66701a733 /modutils
parent6dce0b6fa79f2d4bb7e9d90e1fbc0f6beb25f855 (diff)
downloadbusybox-w32-d921b2ecc0d294ad4bf8c7458fc52a60c28727d2.tar.gz
busybox-w32-d921b2ecc0d294ad4bf8c7458fc52a60c28727d2.tar.bz2
busybox-w32-d921b2ecc0d294ad4bf8c7458fc52a60c28727d2.zip
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.)
Diffstat (limited to 'modutils')
-rw-r--r--modutils/insmod.c54
-rw-r--r--modutils/modprobe.c35
2 files changed, 24 insertions, 65 deletions
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 3113f7446..be41e4449 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -59,17 +59,6 @@
59 */ 59 */
60 60
61#include "busybox.h" 61#include "busybox.h"
62#include <stdlib.h>
63#include <stdio.h>
64#include <stddef.h>
65#include <errno.h>
66#include <unistd.h>
67#include <dirent.h>
68#include <ctype.h>
69#include <assert.h>
70#include <string.h>
71#include <getopt.h>
72#include <fcntl.h>
73#include <sys/utsname.h> 62#include <sys/utsname.h>
74 63
75#if !defined(CONFIG_FEATURE_2_4_MODULES) && \ 64#if !defined(CONFIG_FEATURE_2_4_MODULES) && \
@@ -804,12 +793,12 @@ static int check_module_name_match(const char *filename, struct stat *statbuf,
804 if (fullname[0] == '\0') 793 if (fullname[0] == '\0')
805 return (FALSE); 794 return (FALSE);
806 else { 795 else {
807 char *tmp, *tmp1 = bb_xstrdup(filename); 796 char *tmp, *tmp1 = xstrdup(filename);
808 tmp = bb_get_last_path_component(tmp1); 797 tmp = bb_get_last_path_component(tmp1);
809 if (strcmp(tmp, fullname) == 0) { 798 if (strcmp(tmp, fullname) == 0) {
810 free(tmp1); 799 free(tmp1);
811 /* Stop searching if we find a match */ 800 /* Stop searching if we find a match */
812 m_filename = bb_xstrdup(filename); 801 m_filename = xstrdup(filename);
813 return (FALSE); 802 return (FALSE);
814 } 803 }
815 free(tmp1); 804 free(tmp1);
@@ -893,7 +882,6 @@ arch_apply_relocation(struct obj_file *f,
893 * (which is .got) similar to branch, 882 * (which is .got) similar to branch,
894 * but is full 32 bits relative */ 883 * but is full 32 bits relative */
895 884
896 assert(got != 0);
897 *loc += got - dot; 885 *loc += got - dot;
898 break; 886 break;
899 887
@@ -902,7 +890,6 @@ arch_apply_relocation(struct obj_file *f,
902 goto bb_use_plt; 890 goto bb_use_plt;
903 891
904 case R_ARM_GOTOFF: /* address relative to the got */ 892 case R_ARM_GOTOFF: /* address relative to the got */
905 assert(got != 0);
906 *loc += v - got; 893 *loc += v - got;
907 break; 894 break;
908 895
@@ -972,7 +959,6 @@ arch_apply_relocation(struct obj_file *f,
972 break; 959 break;
973 960
974 case R_386_GOTPC: 961 case R_386_GOTPC:
975 assert(got != 0);
976 *loc += got - dot; 962 *loc += got - dot;
977 break; 963 break;
978 964
@@ -980,7 +966,6 @@ arch_apply_relocation(struct obj_file *f,
980 goto bb_use_got; 966 goto bb_use_got;
981 967
982 case R_386_GOTOFF: 968 case R_386_GOTOFF:
983 assert(got != 0);
984 *loc += v - got; 969 *loc += v - got;
985 break; 970 break;
986 971
@@ -1102,7 +1087,6 @@ arch_apply_relocation(struct obj_file *f,
1102 1087
1103# ifdef R_68K_GOTOFF 1088# ifdef R_68K_GOTOFF
1104 case R_68K_GOTOFF: 1089 case R_68K_GOTOFF:
1105 assert(got != 0);
1106 *loc += v - got; 1090 *loc += v - got;
1107 break; 1091 break;
1108# endif 1092# endif
@@ -1157,9 +1141,6 @@ arch_apply_relocation(struct obj_file *f,
1157 struct mips_hi16 *next; 1141 struct mips_hi16 *next;
1158 unsigned long insn; 1142 unsigned long insn;
1159 1143
1160 /* The value for the HI16 had best be the same. */
1161 assert(v == l->value);
1162
1163 /* Do the HI16 relocation. Note that we actually don't 1144 /* Do the HI16 relocation. Note that we actually don't
1164 need to know anything about the LO16 itself, except where 1145 need to know anything about the LO16 itself, except where
1165 to find the low 16 bits of the addend needed by the LO16. */ 1146 to find the low 16 bits of the addend needed by the LO16. */
@@ -1408,9 +1389,7 @@ arch_apply_relocation(struct obj_file *f,
1408 case R_390_PLT32: 1389 case R_390_PLT32:
1409 case R_390_PLT16DBL: 1390 case R_390_PLT16DBL:
1410 /* find the plt entry and initialize it. */ 1391 /* find the plt entry and initialize it. */
1411 assert(isym != NULL);
1412 pe = (struct arch_single_entry *) &isym->pltent; 1392 pe = (struct arch_single_entry *) &isym->pltent;
1413 assert(pe->allocated);
1414 if (pe->inited == 0) { 1393 if (pe->inited == 0) {
1415 ip = (unsigned long *)(ifile->plt->contents + pe->offset); 1394 ip = (unsigned long *)(ifile->plt->contents + pe->offset);
1416 ip[0] = 0x0d105810; /* basr 1,0; lg 1,10(1); br 1 */ 1395 ip[0] = 0x0d105810; /* basr 1,0; lg 1,10(1); br 1 */
@@ -1440,15 +1419,12 @@ arch_apply_relocation(struct obj_file *f,
1440 break; 1419 break;
1441 1420
1442 case R_390_GOTPC: 1421 case R_390_GOTPC:
1443 assert(got != 0);
1444 *(unsigned long *) loc += got - dot; 1422 *(unsigned long *) loc += got - dot;
1445 break; 1423 break;
1446 1424
1447 case R_390_GOT12: 1425 case R_390_GOT12:
1448 case R_390_GOT16: 1426 case R_390_GOT16:
1449 case R_390_GOT32: 1427 case R_390_GOT32:
1450 assert(isym != NULL);
1451 assert(got != 0);
1452 if (!isym->gotent.inited) 1428 if (!isym->gotent.inited)
1453 { 1429 {
1454 isym->gotent.inited = 1; 1430 isym->gotent.inited = 1;
@@ -1466,7 +1442,6 @@ arch_apply_relocation(struct obj_file *f,
1466# define R_390_GOTOFF32 R_390_GOTOFF 1442# define R_390_GOTOFF32 R_390_GOTOFF
1467# endif 1443# endif
1468 case R_390_GOTOFF32: 1444 case R_390_GOTOFF32:
1469 assert(got != 0);
1470 *loc += v - got; 1445 *loc += v - got;
1471 break; 1446 break;
1472 1447
@@ -1497,7 +1472,6 @@ arch_apply_relocation(struct obj_file *f,
1497 break; 1472 break;
1498 1473
1499 case R_SH_GOTPC: 1474 case R_SH_GOTPC:
1500 assert(got != 0);
1501 *loc = got - dot + rel->r_addend; 1475 *loc = got - dot + rel->r_addend;
1502 break; 1476 break;
1503 1477
@@ -1505,7 +1479,6 @@ arch_apply_relocation(struct obj_file *f,
1505 goto bb_use_got; 1479 goto bb_use_got;
1506 1480
1507 case R_SH_GOTOFF: 1481 case R_SH_GOTOFF:
1508 assert(got != 0);
1509 *loc = v - got; 1482 *loc = v - got;
1510 break; 1483 break;
1511 1484
@@ -1627,7 +1600,6 @@ arch_apply_relocation(struct obj_file *f,
1627 case R_X86_64_GOTPCREL: 1600 case R_X86_64_GOTPCREL:
1628 goto bb_use_got; 1601 goto bb_use_got;
1629# if 0 1602# if 0
1630 assert(isym != NULL);
1631 if (!isym->gotent.reloc_done) 1603 if (!isym->gotent.reloc_done)
1632 { 1604 {
1633 isym->gotent.reloc_done = 1; 1605 isym->gotent.reloc_done = 1;
@@ -1655,12 +1627,10 @@ arch_apply_relocation(struct obj_file *f,
1655bb_use_plt: 1627bb_use_plt:
1656 1628
1657 /* find the plt entry and initialize it if necessary */ 1629 /* find the plt entry and initialize it if necessary */
1658 assert(isym != NULL);
1659 1630
1660#if defined(CONFIG_USE_PLT_LIST) 1631#if defined(CONFIG_USE_PLT_LIST)
1661 for (pe = isym->pltent; pe != NULL && pe->addend != rel->r_addend;) 1632 for (pe = isym->pltent; pe != NULL && pe->addend != rel->r_addend;)
1662 pe = pe->next; 1633 pe = pe->next;
1663 assert(pe != NULL);
1664#else 1634#else
1665 pe = &isym->pltent; 1635 pe = &isym->pltent;
1666#endif 1636#endif
@@ -1734,7 +1704,6 @@ bb_use_plt:
1734#if defined(CONFIG_USE_GOT_ENTRIES) 1704#if defined(CONFIG_USE_GOT_ENTRIES)
1735bb_use_got: 1705bb_use_got:
1736 1706
1737 assert(isym != NULL);
1738 /* needs an entry in the .got: set it, once */ 1707 /* needs an entry in the .got: set it, once */
1739 if (!isym->gotent.inited) { 1708 if (!isym->gotent.inited) {
1740 isym->gotent.inited = 1; 1709 isym->gotent.inited = 1;
@@ -1814,7 +1783,6 @@ static struct obj_section *arch_xsect_init(struct obj_file *f, char *name,
1814 } else { 1783 } else {
1815 myrelsec = obj_create_alloced_section(f, name, 1784 myrelsec = obj_create_alloced_section(f, name,
1816 size, offset); 1785 size, offset);
1817 assert(myrelsec);
1818 } 1786 }
1819 1787
1820 return myrelsec; 1788 return myrelsec;
@@ -3778,14 +3746,14 @@ add_ksymoops_symbols(struct obj_file *f, const char *filename,
3778 }; 3746 };
3779 3747
3780 if (realpath(filename, real)) { 3748 if (realpath(filename, real)) {
3781 absolute_filename = bb_xstrdup(real); 3749 absolute_filename = xstrdup(real);
3782 } 3750 }
3783 else { 3751 else {
3784 int save_errno = errno; 3752 int save_errno = errno;
3785 bb_error_msg("cannot get realpath for %s", filename); 3753 bb_error_msg("cannot get realpath for %s", filename);
3786 errno = save_errno; 3754 errno = save_errno;
3787 perror(""); 3755 perror("");
3788 absolute_filename = bb_xstrdup(filename); 3756 absolute_filename = xstrdup(filename);
3789 } 3757 }
3790 3758
3791 lm_name = strlen(m_name); 3759 lm_name = strlen(m_name);
@@ -4022,7 +3990,7 @@ int insmod_main( int argc, char **argv)
4022 break; 3990 break;
4023 case 'o': /* name the output module */ 3991 case 'o': /* name the output module */
4024 free(m_name); 3992 free(m_name);
4025 m_name = bb_xstrdup(optarg); 3993 m_name = xstrdup(optarg);
4026 break; 3994 break;
4027 case 'L': /* Stub warning */ 3995 case 'L': /* Stub warning */
4028 /* This is needed for compatibility with modprobe. 3996 /* This is needed for compatibility with modprobe.
@@ -4045,7 +4013,7 @@ int insmod_main( int argc, char **argv)
4045 } 4013 }
4046 4014
4047 /* Grab the module name */ 4015 /* Grab the module name */
4048 tmp1 = bb_xstrdup(argv[optind]); 4016 tmp1 = xstrdup(argv[optind]);
4049 tmp = basename(tmp1); 4017 tmp = basename(tmp1);
4050 len = strlen(tmp); 4018 len = strlen(tmp);
4051 4019
@@ -4071,10 +4039,10 @@ int insmod_main( int argc, char **argv)
4071 4039
4072#if defined(CONFIG_FEATURE_2_6_MODULES) 4040#if defined(CONFIG_FEATURE_2_6_MODULES)
4073 if (k_version > 4) 4041 if (k_version > 4)
4074 m_fullName = bb_xasprintf("%s.ko", tmp); 4042 m_fullName = xasprintf("%s.ko", tmp);
4075 else 4043 else
4076#endif 4044#endif
4077 m_fullName = bb_xasprintf("%s.o", tmp); 4045 m_fullName = xasprintf("%s.o", tmp);
4078 4046
4079 if (!m_name) { 4047 if (!m_name) {
4080 m_name = tmp; 4048 m_name = tmp;
@@ -4132,7 +4100,7 @@ int insmod_main( int argc, char **argv)
4132 bb_error_msg_and_die("%s: no module by that name found", m_fullName); 4100 bb_error_msg_and_die("%s: no module by that name found", m_fullName);
4133 } 4101 }
4134 } else 4102 } else
4135 m_filename = bb_xstrdup(argv[optind]); 4103 m_filename = xstrdup(argv[optind]);
4136 4104
4137 if (flag_verbose) 4105 if (flag_verbose)
4138 printf("Using %s\n", m_filename); 4106 printf("Using %s\n", m_filename);
@@ -4334,7 +4302,7 @@ int insmod_ng_main( int argc, char **argv)
4334 struct stat st; 4302 struct stat st;
4335 unsigned long len; 4303 unsigned long len;
4336 void *map; 4304 void *map;
4337 char *filename, *options = bb_xstrdup(""); 4305 char *filename, *options = xstrdup("");
4338 4306
4339 filename = argv[1]; 4307 filename = argv[1];
4340 if (!filename) { 4308 if (!filename) {
@@ -4356,7 +4324,7 @@ int insmod_ng_main( int argc, char **argv)
4356 strcat(options, " "); 4324 strcat(options, " ");
4357 } 4325 }
4358 4326
4359 fd = bb_xopen3(filename, O_RDONLY, 0); 4327 fd = xopen3(filename, O_RDONLY, 0);
4360 4328
4361 fstat(fd, &st); 4329 fstat(fd, &st);
4362 len = st.st_size; 4330 len = st.st_size;
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index b11e58d55..5a94c7c92 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -13,15 +13,6 @@
13 13
14#include "busybox.h" 14#include "busybox.h"
15#include <sys/utsname.h> 15#include <sys/utsname.h>
16#include <sys/types.h>
17#include <sys/wait.h>
18#include <getopt.h>
19#include <stdlib.h>
20#include <unistd.h>
21#include <syslog.h>
22#include <string.h>
23#include <ctype.h>
24#include <fcntl.h>
25#include <fnmatch.h> 16#include <fnmatch.h>
26 17
27struct mod_opt_t { /* one-way list of options to pass to a module */ 18struct mod_opt_t { /* one-way list of options to pass to a module */
@@ -148,7 +139,7 @@ static struct mod_opt_t *append_option( struct mod_opt_t *opt_list, char *opt )
148 ol = opt_list = xmalloc( sizeof( struct mod_opt_t ) ); 139 ol = opt_list = xmalloc( sizeof( struct mod_opt_t ) );
149 } 140 }
150 141
151 ol-> m_opt_val = bb_xstrdup( opt ); 142 ol-> m_opt_val = xstrdup( opt );
152 ol-> m_next = NULL; 143 ol-> m_next = NULL;
153 144
154 return opt_list; 145 return opt_list;
@@ -160,7 +151,7 @@ static struct mod_opt_t *append_option( struct mod_opt_t *opt_list, char *opt )
160 * dst: pointer to where to store the parsed argument 151 * dst: pointer to where to store the parsed argument
161 * return value: the pointer to the first char after the parsed argument, 152 * return value: the pointer to the first char after the parsed argument,
162 * NULL if there was no argument parsed (only trailing spaces). 153 * NULL if there was no argument parsed (only trailing spaces).
163 * Note that memory is allocated with bb_xstrdup when a new argument was 154 * Note that memory is allocated with xstrdup when a new argument was
164 * parsed. Don't forget to free it! 155 * parsed. Don't forget to free it!
165 */ 156 */
166#define ARG_EMPTY 0x00 157#define ARG_EMPTY 0x00
@@ -185,7 +176,7 @@ static char *parse_command_string( char *src, char **dst )
185 /* Reached the start of an argument 176 /* Reached the start of an argument
186 * By the way, we duplicate a little too much 177 * By the way, we duplicate a little too much
187 * here but what is too much is freed later. */ 178 * here but what is too much is freed later. */
188 *dst = tmp_str = bb_xstrdup( src ); 179 *dst = tmp_str = xstrdup( src );
189 /* Get to the end of that argument */ 180 /* Get to the end of that argument */
190 while( ( *tmp_str != '\0' ) 181 while( ( *tmp_str != '\0' )
191 && ( ( *tmp_str != ' ' ) 182 && ( ( *tmp_str != ' ' )
@@ -309,7 +300,7 @@ static void include_conf ( struct dep_t **first, struct dep_t **current, char *b
309 (*current)-> m_next = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t )); 300 (*current)-> m_next = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t ));
310 (*current) = (*current)-> m_next; 301 (*current) = (*current)-> m_next;
311 } 302 }
312 (*current)-> m_name = bb_xstrdup ( alias ); 303 (*current)-> m_name = xstrdup ( alias );
313 (*current)-> m_isalias = 1; 304 (*current)-> m_isalias = 1;
314 305
315 if (( strcmp ( mod, "off" ) == 0 ) || ( strcmp ( mod, "null" ) == 0 )) { 306 if (( strcmp ( mod, "off" ) == 0 ) || ( strcmp ( mod, "null" ) == 0 )) {
@@ -319,7 +310,7 @@ static void include_conf ( struct dep_t **first, struct dep_t **current, char *b
319 else { 310 else {
320 (*current)-> m_depcnt = 1; 311 (*current)-> m_depcnt = 1;
321 (*current)-> m_deparr = xmalloc ( 1 * sizeof( char * )); 312 (*current)-> m_deparr = xmalloc ( 1 * sizeof( char * ));
322 (*current)-> m_deparr[0] = bb_xstrdup ( mod ); 313 (*current)-> m_deparr[0] = xstrdup ( mod );
323 } 314 }
324 (*current)-> m_next = 0; 315 (*current)-> m_next = 0;
325 } 316 }
@@ -388,7 +379,7 @@ static struct dep_t *build_dep ( void )
388 k_version = un.release[2] - '0'; 379 k_version = un.release[2] - '0';
389 } 380 }
390 381
391 filename = bb_xasprintf("/lib/modules/%s/modules.dep", un.release ); 382 filename = xasprintf("/lib/modules/%s/modules.dep", un.release );
392 fd = open ( filename, O_RDONLY ); 383 fd = open ( filename, O_RDONLY );
393 if (ENABLE_FEATURE_CLEAN_UP) 384 if (ENABLE_FEATURE_CLEAN_UP)
394 free(filename); 385 free(filename);
@@ -447,7 +438,7 @@ static struct dep_t *build_dep ( void )
447 if (( *(col-2) == '.' ) && ( *(col-1) == 'o' )) 438 if (( *(col-2) == '.' ) && ( *(col-1) == 'o' ))
448 dot = col - 2; 439 dot = col - 2;
449 440
450 mod = bb_xstrndup ( mods, dot - mods ); 441 mod = xstrndup ( mods, dot - mods );
451 442
452 /* enqueue new module */ 443 /* enqueue new module */
453 if ( !current ) { 444 if ( !current ) {
@@ -458,7 +449,7 @@ static struct dep_t *build_dep ( void )
458 current = current-> m_next; 449 current = current-> m_next;
459 } 450 }
460 current-> m_name = mod; 451 current-> m_name = mod;
461 current-> m_path = bb_xstrdup(modpath); 452 current-> m_path = xstrdup(modpath);
462 current-> m_options = NULL; 453 current-> m_options = NULL;
463 current-> m_isalias = 0; 454 current-> m_isalias = 0;
464 current-> m_depcnt = 0; 455 current-> m_depcnt = 0;
@@ -525,7 +516,7 @@ static struct dep_t *build_dep ( void )
525 /* Cope with blank lines */ 516 /* Cope with blank lines */
526 if ((next-deps-ext+1) <= 0) 517 if ((next-deps-ext+1) <= 0)
527 continue; 518 continue;
528 dep = bb_xstrndup ( deps, next - deps - ext + 1 ); 519 dep = xstrndup ( deps, next - deps - ext + 1 );
529 520
530 /* Add the new dependable module name */ 521 /* Add the new dependable module name */
531 current-> m_depcnt++; 522 current-> m_depcnt++;
@@ -562,7 +553,7 @@ static struct dep_t *build_dep ( void )
562 /* Only 2.6 has a modules.alias file */ 553 /* Only 2.6 has a modules.alias file */
563 if (ENABLE_FEATURE_2_6_MODULES) { 554 if (ENABLE_FEATURE_2_6_MODULES) {
564 /* Parse kernel-declared aliases */ 555 /* Parse kernel-declared aliases */
565 filename = bb_xasprintf("/lib/modules/%s/modules.alias", un.release); 556 filename = xasprintf("/lib/modules/%s/modules.alias", un.release);
566 if ((fd = open ( filename, O_RDONLY )) < 0) { 557 if ((fd = open ( filename, O_RDONLY )) < 0) {
567 /* Ok, that didn't work. Fall back to looking in /lib/modules */ 558 /* Ok, that didn't work. Fall back to looking in /lib/modules */
568 fd = open ( "/lib/modules/modules.alias", O_RDONLY ); 559 fd = open ( "/lib/modules/modules.alias", O_RDONLY );
@@ -687,7 +678,7 @@ static int mod_process ( struct mod_list_t *list, int do_insert )
687 printf("%s module %s\n", do_insert?"Loading":"Unloading", list-> m_name ); 678 printf("%s module %s\n", do_insert?"Loading":"Unloading", list-> m_name );
688 } 679 }
689 if (!show_only) { 680 if (!show_only) {
690 int rc2 = wait4pid(bb_spawn(argv)); 681 int rc2 = wait4pid(spawn(argv));
691 682
692 if (do_insert) { 683 if (do_insert) {
693 rc = rc2; /* only last module matters */ 684 rc = rc2; /* only last module matters */
@@ -724,8 +715,8 @@ static int check_pattern( const char* pat_src, const char* mod_src ) {
724 char* mod; 715 char* mod;
725 char* p; 716 char* p;
726 717
727 pat = bb_xstrdup (pat_src); 718 pat = xstrdup (pat_src);
728 mod = bb_xstrdup (mod_src); 719 mod = xstrdup (mod_src);
729 720
730 for (p = pat; (p = strchr(p, '-')); *p++ = '_' ); 721 for (p = pat; (p = strchr(p, '-')); *p++ = '_' );
731 for (p = mod; (p = strchr(p, '-')); *p++ = '_' ); 722 for (p = mod; (p = strchr(p, '-')); *p++ = '_' );