From de47eb59bb829423b1d0f47ba13099073999b3cb Mon Sep 17 00:00:00 2001 From: Nicolas Planel Date: Wed, 29 Oct 2003 16:07:11 +0000 Subject: Corporate Server 2.1.1 release --- mdk-stage1/insmod-modutils/util/Makefile | 8 +-- mdk-stage1/insmod-modutils/util/alias.h | 80 ++++++++++++++++++++++++++--- mdk-stage1/insmod-modutils/util/arch64.c | 16 ++++-- mdk-stage1/insmod-modutils/util/config.c | 29 +++++++++-- mdk-stage1/insmod-modutils/util/logger.c | 49 +++++++++--------- mdk-stage1/insmod-modutils/util/snap_shot.c | 4 +- mdk-stage1/insmod-modutils/util/sys_cm.c | 2 - mdk-stage1/insmod-modutils/util/sys_dm.c | 2 - mdk-stage1/insmod-modutils/util/sys_gks.c | 2 - mdk-stage1/insmod-modutils/util/sys_nim.c | 2 - mdk-stage1/insmod-modutils/util/sys_oim.c | 2 - mdk-stage1/insmod-modutils/util/sys_qm.c | 2 - mdk-stage1/insmod-modutils/util/xmalloc.c | 4 +- mdk-stage1/insmod-modutils/util/xrealloc.c | 2 - mdk-stage1/insmod-modutils/util/xstrcat.c | 2 - mdk-stage1/insmod-modutils/util/xstrdup.c | 4 +- mdk-stage1/insmod-modutils/util/xsystem.c | 2 - 17 files changed, 142 insertions(+), 70 deletions(-) (limited to 'mdk-stage1/insmod-modutils/util') diff --git a/mdk-stage1/insmod-modutils/util/Makefile b/mdk-stage1/insmod-modutils/util/Makefile index 763f046f2..dd8107435 100644 --- a/mdk-stage1/insmod-modutils/util/Makefile +++ b/mdk-stage1/insmod-modutils/util/Makefile @@ -13,7 +13,7 @@ top_dir = ../.. include $(top_dir)/Makefile.common -all: libutil.a libutil-STANDALONE.a #libutil-DIET.a +all: libutil.a libutil-STANDALONE.a clean: rm -f *.o *.a @@ -36,7 +36,7 @@ libutil-STANDALONE.a: $(OBJS) logger-standalone.o ranlib $@ logger-standalone.o: logger.c - gcc $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -o $@ -D_STANDALONE_ -c logger.c + $(DIET) gcc $(CFLAGS) $(DEFS) $(INCS) $(INCLUDES) -o $@ -D_STANDALONE_ -c logger.c -.c.o: - gcc $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -c $< +%.o: %.c + $(DIET) gcc $(CFLAGS) $(DEFS) $(INCS) $(INCLUDES) -c $< diff --git a/mdk-stage1/insmod-modutils/util/alias.h b/mdk-stage1/insmod-modutils/util/alias.h index c925a04f3..7d0c08938 100644 --- a/mdk-stage1/insmod-modutils/util/alias.h +++ b/mdk-stage1/insmod-modutils/util/alias.h @@ -42,6 +42,7 @@ char *tbtype[] = */ char *aliaslist[] = { + "binfmt-0000 off", "binfmt-204 binfmt_aout", "binfmt-263 binfmt_aout", "binfmt-264 binfmt_aout", @@ -75,15 +76,23 @@ char *aliaslist[] = "block-major-34 ide-probe-mod", "block-major-37 ide-tape", "block-major-44 ftl", /* from David Woodhouse */ + "block-major-46 pcd", + "block-major-47 pf", "block-major-56 ide-probe-mod", "block-major-57 ide-probe-mod", + "block-major-58 lvm-mod", "block-major-88 ide-probe-mod", "block-major-89 ide-probe-mod", "block-major-90 ide-probe-mod", "block-major-91 ide-probe-mod", "block-major-93 nftl", /* from David Woodhouse */ + "block-major-97 pg", +#if !defined(__s390__) && !defined(__s390x__) "char-major-4 serial", +#else + "char-major-4 off", +#endif "char-major-5 serial", "char-major-6 lp", "char-major-9 st", @@ -102,13 +111,15 @@ char *aliaslist[] = "char-major-10-131 wdt", /* /dev/temperature Machine internal temperature */ /* /dev/hwtrap Hardware fault trap */ /* /dev/exttrp External device trap */ - "char-major-10-135 off", /* rtc cannot be compiled as a module */ + "char-major-10-135 rtc", /* /dev/rtc Real time clock */ "char-major-10-139 openprom", /* /dev/openprom Linux/Sparc interface */ "char-major-10-144 nvram", /* from Tigran Aivazian */ "char-major-10-157 applicom", /* from David Woodhouse */ "char-major-10-175 agpgart", /* /dev/agpgart GART AGP mapping access */ "char-major-10-184 microcode", /* Tigran Aivazian */ + "char-major-13 input", + "char-major-13-32 mousedev", "char-major-14 soundcore", "char-major-19 cyclades", "char-major-20 cyclades", @@ -126,9 +137,15 @@ char *aliaslist[] = "char-major-58 esp", "char-major-63 kdebug", "char-major-90 mtdchar", /* from David Woodhouse */ + "char-major-96 pt", "char-major-99 ppdev", "char-major-107 3dfx", /* from Tigran Aivazian */ + "char-major-108 ppp_generic", + "char-major-109 lvm-mod", "char-major-161 ircomm-tty", + "char-major-171 raw1394", + "char-major-195 NVdriver", + "char-major-200 vxspec", "dos msdos", "dummy0 dummy", @@ -139,6 +156,7 @@ char *aliaslist[] = "md-personality-2 raid0", "md-personality-3 raid1", "md-personality-4 raid5", + "md-personality-7 multipath", "net-pf-1 unix", /* PF_UNIX 1 Unix domain sockets */ "net-pf-2 ipv4", /* PF_INET 2 Internet IP Protocol */ @@ -149,29 +167,52 @@ char *aliaslist[] = /* PF_BRIDGE 7 Multiprotocol bridge */ /* PF_AAL5 8 Reserved for Werner's ATM */ /* PF_X25 9 Reserved for X.25 project */ - /* PF_INET6 10 IP version 6 */ + "net-pf-10 off", /* PF_INET6 10 IP version 6 */ /* next two from Thanks! */ "net-pf-17 af_packet", "net-pf-19 off", /* acorn econet */ "netalias-2 ip_alias", + + /* To be able to attach some dongles */ + "irlan0 irlan", + "irda-dongle-0 tekram", + "irda-dongle-1 esi", + "irda-dongle-2 actisys", + "irda-dongle-3 actisys", + "irda-dongle-4 girbil", + "irda-dongle-5 litelink", + "irda-dongle-6 airport", + "irda-dongle-7 old_belkin", + "plip0 plip", "plip1 plip", + "tunl0 ipip", "cipcb0 cipcb", "cipcb1 cipcb", "cipcb2 cipcb", "cipcb3 cipcb", +#if defined(__s390__) || defined(__s390x__) + "ctc0 ctc", + "ctc1 ctc", + "ctc2 ctc", + "iucv0 netiucv", + "iucv1 netiucv", +#endif "ppp0 ppp", "ppp1 ppp", - "scsi_hostadapter off", /* if not in config file */ "slip0 slip", "slip1 slip", "tty-ldisc-1 slip", - "tty-ldisc-3 ppp", + "tty-ldisc-3 ppp_async", + "tty-ldisc-11 irtty", /* IrDA over a normal serial port, or a serial port compatible IrDA port */ + "tty-ldisc-14 ppp_synctty", + "ppp-compress-18 ppp_mppe", "ppp-compress-21 bsd_comp", "ppp-compress-24 ppp_deflate", "ppp-compress-26 ppp_deflate", + "ppp ppp_async", /* for 2.4 */ #ifndef __sparc__ "parport_lowlevel parport_pc", @@ -179,8 +220,6 @@ char *aliaslist[] = "parport_lowlevel parport_ax", #endif - "tty-ldisc-11 irtty", - "usbdevfs usbcore", NULL /* marks the end of the list! */ @@ -205,6 +244,9 @@ char *optlist[] = */ char *above[] = { + "hid keybdev mousedev", + "usbmouse hid", + "wacom evdev", NULL /* marks the end of the list! */ }; @@ -218,6 +260,28 @@ char *below[] = NULL /* marks the end of the list! */ }; +/* + * This is the list of pre-defined "post-install"s, + * used to execute commands after loading modules. + * /etc/modules.conf can add entries but not remove them. + */ +char *post_install[] = +{ + "binfmt_misc /bin/mount -t binfmt_misc none /proc/sys/fs/binfmt_misc > /dev/null 2>&1 || :", + NULL +}; + +/* + * This is the list of pre-defined "pre-remove"s, + * used to execute commands before unloading modules. + * /etc/modules.conf can add entries but not remove them. + */ +char *pre_remove[] = +{ + "binfmt_misc /bin/umount /proc/sys/fs/binfmt_misc > /dev/null 2>&1 || :", + NULL +}; + /* * This is the list of pre-defined "prune"s, * used to exclude paths from scan of /lib/modules. @@ -225,13 +289,15 @@ char *below[] = */ char *prune[] = { - ".rhkmvtag", "modules.dep", + "modules.description", "modules.generic_string", "modules.pcimap", "modules.isapnpmap", "modules.usbmap", "modules.parportmap", + "modules.ieee1394map", + "modules.pnpbiosmap", "System.map", ".config", "build", /* symlink to source tree */ diff --git a/mdk-stage1/insmod-modutils/util/arch64.c b/mdk-stage1/insmod-modutils/util/arch64.c index 4d5ace223..90886d16b 100644 --- a/mdk-stage1/insmod-modutils/util/arch64.c +++ b/mdk-stage1/insmod-modutils/util/arch64.c @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - #include #include #include @@ -30,6 +28,16 @@ /* Indicate if the current machine uses 64 bit architecture */ int arch64(void) { - struct utsname u; - return(!uname(&u) && strstr(u.machine, "64")); + struct utsname uts; + char *uname_m; + if (uname(&uts)) + return(0); + if ((uname_m = getenv("UNAME_MACHINE"))) { + int l = strlen(uname_m); + if (l >= sizeof(uts.machine)) + l = sizeof(uts.machine)-1; + memcpy(uts.machine, uname_m, l); + uts.machine[l] = '\0'; + } + return(strstr(uts.machine, "64") != NULL); } diff --git a/mdk-stage1/insmod-modutils/util/config.c b/mdk-stage1/insmod-modutils/util/config.c index a860920f6..7568d955f 100644 --- a/mdk-stage1/insmod-modutils/util/config.c +++ b/mdk-stage1/insmod-modutils/util/config.c @@ -116,6 +116,8 @@ struct gen_files gen_file[] = { {"isapnpmap", NULL, 0}, {"usbmap", NULL, 0}, {"parportmap", NULL, 0}, + {"ieee1394map", NULL, 0}, + {"pnpbiosmap", NULL, 0}, {"dep", NULL, 0}, }; @@ -491,7 +493,7 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in int state[MAX_LEVEL + 1]; /* nested "if" */ int level = 0; char buf[3000]; - char tmpline[100]; + char tmpline[PATH_MAX]; char **pathp; char *envpath; char *version; @@ -692,6 +694,20 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in if (all && aliaslist[0]) n_aliases = build_list(aliaslist, &aliases, version, 0); + /* + * Build predef postinstalls + */ + if (all && post_install[0]) + for (i=0 ; post_install[i] ; i++ ) + decode_exec(xstrdup(post_install[i]), EXEC_POST_INSTALL); + + /* + * Build predef preremoves + */ + if (all && pre_remove[0]) + for (i=0 ; pre_remove[i] ; i++ ) + decode_exec(xstrdup(pre_remove[i]), EXEC_PRE_REMOVE); + /* Order and priority is now: (MODPATH + modules.conf) || (predefs + modules.conf) */ if ((envpath = getenv("MODPATH")) != NULL && !safemode) { size_t len; @@ -1073,7 +1089,7 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in arg2 = next_word(arg); meta_expand(arg2, &g, NULL, version, ME_ALL); snprintf(env, sizeof(env), "%s=%s", arg, (g.pathc ? g.pathv[0] : "")); - putenv(env); + putenv(xstrdup(env)); one_err = 0; } @@ -1108,7 +1124,7 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in /* * prune */ - else if (all && !assgn && strcmp(parm, "prune") == 0) { + else if (!assgn && strcmp(parm, "prune") == 0) { decode_list(&n_prunelist, &prunelist, arg, adding, version, 0); one_err = 0; } @@ -1349,9 +1365,11 @@ static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, in return ret; /* else */ + if (depth == 0) { /* Check we have names for generated files */ for (i = 0; !ret && i < gen_file_count; ++i) ret = gen_file_check(gen_file+i, &g, base_dir, version); + } return ret; } @@ -1367,7 +1385,12 @@ int config_read(int all, char *force_ver, char *base_dir, char *conf_file) return -1; } + if (access(MODUTILS_MACROS, R_OK) == 0){ + r = do_read(all, force_ver, base_dir, MODUTILS_MACROS, 0); + r = do_read(all, force_ver, "", conf_file, 1); + } else { r = do_read(all, force_ver, base_dir, conf_file, 0); + } if (quick && !r && !need_update (force_ver, base_dir)) exit (0); diff --git a/mdk-stage1/insmod-modutils/util/logger.c b/mdk-stage1/insmod-modutils/util/logger.c index 3b790df5a..4774a0beb 100644 --- a/mdk-stage1/insmod-modutils/util/logger.c +++ b/mdk-stage1/insmod-modutils/util/logger.c @@ -20,8 +20,7 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ -#ident "$Id$" - +#include #include #include #include @@ -32,9 +31,10 @@ /*======================================================================*/ +int log; + int errors; const char *error_file; -int log; #define STOREMSG #ifdef STOREMSG @@ -44,29 +44,12 @@ struct cbuf { char *msg; } *head, *tail; -static void savemsg(int type, char *msg) -{ - struct cbuf *me = (struct cbuf *)xmalloc(sizeof(struct cbuf)); - char *s = xstrdup(msg); - - me->next = NULL; - me->type = type; - me->msg = s; - - if (tail) - tail->next = me; - else - head = me; - tail = me; -} - -#endif /* STOREMSG */ - static void dumpmsg(void) { for (;head; head = head->next) syslog(head->type, "%s", head->msg); } +#endif /* STOREMSG */ void setsyslog(const char *program) { @@ -77,13 +60,27 @@ void setsyslog(const char *program) log = 1; } - - #ifdef _STANDALONE_ static int silent; const char *program_name; +static void savemsg(int type, char *msg) +{ + struct cbuf *me = (struct cbuf *)xmalloc(sizeof(struct cbuf)); + char *s = xstrdup(msg); + + me->next = NULL; + me->type = type; + me->msg = s; + + if (tail) + tail->next = me; + else + head = me; + tail = me; +} + void error(const char *fmt,...) { va_list args; @@ -91,7 +88,7 @@ void error(const char *fmt,...) if (silent) ; else if (log) { - char buf[1024]; + char buf[2*PATH_MAX]; int n; if (error_file) @@ -124,7 +121,7 @@ void lprintf(const char *fmt,...) if (silent); else if (log) { - char buf[1024]; + char buf[2*PATH_MAX]; va_start(args, fmt); vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); @@ -140,7 +137,6 @@ void lprintf(const char *fmt,...) putchar('\n'); } } - #else /* _STANDALONE_ */ #include "../../log.h" void error(const char *s, ...) @@ -161,3 +157,4 @@ void lprintf(const char *s, ...) va_end(p); } #endif + diff --git a/mdk-stage1/insmod-modutils/util/snap_shot.c b/mdk-stage1/insmod-modutils/util/snap_shot.c index ae0cc7c79..adf54d28e 100644 --- a/mdk-stage1/insmod-modutils/util/snap_shot.c +++ b/mdk-stage1/insmod-modutils/util/snap_shot.c @@ -20,8 +20,6 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ -#ident "$Id$" - #include #include #include @@ -108,6 +106,7 @@ void snap_shot(const char *module_names, int n_module_names) if (ferror(in)) error("unable to read from %s %m", infile[i]); fclose(in); + fflush(out); fclose(out); } } @@ -150,5 +149,6 @@ void snap_shot_log(const char *fmt,...) vfprintf(log, fmt, args); va_end(args); fprintf(log, "\n"); + fflush(log); fclose(log); } diff --git a/mdk-stage1/insmod-modutils/util/sys_cm.c b/mdk-stage1/insmod-modutils/util/sys_cm.c index 851fb709e..d19a5ba4b 100644 --- a/mdk-stage1/insmod-modutils/util/sys_cm.c +++ b/mdk-stage1/insmod-modutils/util/sys_cm.c @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - #include #include diff --git a/mdk-stage1/insmod-modutils/util/sys_dm.c b/mdk-stage1/insmod-modutils/util/sys_dm.c index a166a30f4..611234efa 100644 --- a/mdk-stage1/insmod-modutils/util/sys_dm.c +++ b/mdk-stage1/insmod-modutils/util/sys_dm.c @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - #include #include diff --git a/mdk-stage1/insmod-modutils/util/sys_gks.c b/mdk-stage1/insmod-modutils/util/sys_gks.c index f71772c71..b639fc990 100644 --- a/mdk-stage1/insmod-modutils/util/sys_gks.c +++ b/mdk-stage1/insmod-modutils/util/sys_gks.c @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - #include #include diff --git a/mdk-stage1/insmod-modutils/util/sys_nim.c b/mdk-stage1/insmod-modutils/util/sys_nim.c index bbe42135c..c267ddf10 100644 --- a/mdk-stage1/insmod-modutils/util/sys_nim.c +++ b/mdk-stage1/insmod-modutils/util/sys_nim.c @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - #include #include diff --git a/mdk-stage1/insmod-modutils/util/sys_oim.c b/mdk-stage1/insmod-modutils/util/sys_oim.c index 73ac6be52..b915e36a5 100644 --- a/mdk-stage1/insmod-modutils/util/sys_oim.c +++ b/mdk-stage1/insmod-modutils/util/sys_oim.c @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - #include #include diff --git a/mdk-stage1/insmod-modutils/util/sys_qm.c b/mdk-stage1/insmod-modutils/util/sys_qm.c index 119a219a2..ba478832b 100644 --- a/mdk-stage1/insmod-modutils/util/sys_qm.c +++ b/mdk-stage1/insmod-modutils/util/sys_qm.c @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - #include #include diff --git a/mdk-stage1/insmod-modutils/util/xmalloc.c b/mdk-stage1/insmod-modutils/util/xmalloc.c index 9113d47fe..da0be2953 100644 --- a/mdk-stage1/insmod-modutils/util/xmalloc.c +++ b/mdk-stage1/insmod-modutils/util/xmalloc.c @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - #include #include "util.h" @@ -29,7 +27,7 @@ void * xmalloc(size_t size) { - void *ptr = malloc(size); + void *ptr = malloc(size ? size : 1); if (!ptr) { error("Out of memory"); diff --git a/mdk-stage1/insmod-modutils/util/xrealloc.c b/mdk-stage1/insmod-modutils/util/xrealloc.c index d287486f7..adc0558f1 100644 --- a/mdk-stage1/insmod-modutils/util/xrealloc.c +++ b/mdk-stage1/insmod-modutils/util/xrealloc.c @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - #include #include "util.h" diff --git a/mdk-stage1/insmod-modutils/util/xstrcat.c b/mdk-stage1/insmod-modutils/util/xstrcat.c index abb075c83..ed4a2bf20 100644 --- a/mdk-stage1/insmod-modutils/util/xstrcat.c +++ b/mdk-stage1/insmod-modutils/util/xstrcat.c @@ -17,8 +17,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id" - #include #include #include "util.h" diff --git a/mdk-stage1/insmod-modutils/util/xstrdup.c b/mdk-stage1/insmod-modutils/util/xstrdup.c index 11b289eb0..46889a094 100644 --- a/mdk-stage1/insmod-modutils/util/xstrdup.c +++ b/mdk-stage1/insmod-modutils/util/xstrdup.c @@ -18,10 +18,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id$" - -#include #include +#include #include #include "util.h" diff --git a/mdk-stage1/insmod-modutils/util/xsystem.c b/mdk-stage1/insmod-modutils/util/xsystem.c index edb995268..8ffa490a9 100644 --- a/mdk-stage1/insmod-modutils/util/xsystem.c +++ b/mdk-stage1/insmod-modutils/util/xsystem.c @@ -17,8 +17,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ident "$Id" - #include #include #include -- cgit v1.2.1