Return to BSD News archive
Path: sserve!manuel.anu.edu.au!munnari.oz.au!news.hawaii.edu!ames!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!cs.utexas.edu!devnull!altair!fmayhar From: fmayhar@altair.mpd.tandem.com (Frank Mayhar) Newsgroups: comp.unix.bsd Subject: [386BSD] Config ignores "flags" param! + FIX Message-ID: <2998@devnull.mpd.tandem.com> Date: 25 Nov 92 22:14:25 GMT Sender: news@devnull.mpd.tandem.com Reply-To: fmayhar@mpd.tandem.com Organization: Tandem Computers (MPD) Austin, TX Lines: 214 See the README. A copy of this also send to Terry Lambert for (hopefully) inclusion in the patchkit. #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of shell archive." # Contents: README config-flag-patch # Wrapped by fmayhar@altair on Wed Nov 25 16:09:39 1992 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f README -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"README\" else echo shar: Extracting \"README\" \(926 characters\) sed "s/^X//" >README <<'END_OF_README' XThis is a patch to add a working 'flags' parameter to device specifications Xin config files. I'm working on Chris Demetriou's new com driver, and wanted Xa way to turn on "real carrier" by default, rather than using his comcontrol Xcommand. Since Sun uses the flags parameter for a similar function, I thought XI would emulate them. Looked around, and lo and behold, the flags param, Xwhile syntactically OK, is ignored! X XSo this is a patch to usr.sbin/config/mkioconf.c to emit the flags parameter Xwith the rest of the isa_device info, and to sys.386bsd/i386/isa/isa_device.h, Xto insert an "id_flags" entry into the isa_device structure. I made "id_flags" Xan int; would have liked a short, but I wanted to preserve the structure Xalignment. X XTo apply, extract into /tmp, cd /usr/src, then patch </tmp/config-flag-patch X XUse this in a config file like: X Xdevice com0 at isa? port "IO_COM1" tty irq 3 flags 0x1 vector comintr END_OF_README if test 926 -ne `wc -c <README`; then echo shar: \"README\" unpacked with wrong size! fi # end of overwriting check fi if test -f config-flag-patch -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"config-flag-patch\" else echo shar: Extracting \"config-flag-patch\" \(5911 characters\) sed "s/^X//" >config-flag-patch <<'END_OF_config-flag-patch' X*** sys.386bsd/i386/isa/isa_device.h.save Tue Nov 24 23:40:37 1992 X--- sys.386bsd/i386/isa/isa_device.h Tue Nov 24 23:41:15 1992 X*************** X*** 49,54 **** X--- 49,55 ---- X int id_msize; /* size of i/o memory */ X int (*id_intr)(); /* interrupt interface routine */ X int id_unit; /* unit number */ X+ int id_flags; /* per-device flags, if any */ X int id_scsiid; /* scsi id if needed */ X int id_alive; /* device is present */ X }; X*** usr.sbin/config/mkioconf.c.save Wed Nov 25 00:03:49 1992 X--- usr.sbin/config/mkioconf.c Wed Nov 25 00:17:30 1992 X*************** X*** 649,655 **** X } X fprintf(fp, "\nstruct isa_device isa_devtab_bio[] = {\n"); X fprintf(fp, "\ X! /* driver iobase irq drq maddr msiz intr unit */\n"); X for (dp = dtab; dp != 0; dp = dp->d_next) { X mp = dp->d_conn; X if (dp->d_unit == QUES || mp == 0 || X--- 649,655 ---- X } X fprintf(fp, "\nstruct isa_device isa_devtab_bio[] = {\n"); X fprintf(fp, "\ X! /* driver iobase irq drq maddr msiz intr unit flags */\n"); X for (dp = dtab; dp != 0; dp = dp->d_next) { X mp = dp->d_conn; X if (dp->d_unit == QUES || mp == 0 || X*************** X*** 660,674 **** X fprintf(fp, "{ &%sdriver, %8.8s,", dp->d_name, dp->d_port); X else X fprintf(fp, "{ &%sdriver, 0x%03x,", dp->d_name, dp->d_portn); X! fprintf(fp, " %5.5s, %2d, C 0x%05X, %5d, V(%s%d), %2d },\n", X sirq(dp->d_irq), dp->d_drq, dp->d_maddr, X! dp->d_msize, dp->d_name, dp->d_unit, dp->d_unit); X } X fprintf(fp, "0\n};\n"); X X fprintf(fp, "struct isa_device isa_devtab_tty[] = {\n"); X fprintf(fp, "\ X! /* driver iobase irq drq maddr msiz intr unit */\n"); X for (dp = dtab; dp != 0; dp = dp->d_next) { X mp = dp->d_conn; X if (dp->d_unit == QUES || mp == 0 || X--- 660,675 ---- X fprintf(fp, "{ &%sdriver, %8.8s,", dp->d_name, dp->d_port); X else X fprintf(fp, "{ &%sdriver, 0x%03x,", dp->d_name, dp->d_portn); X! fprintf(fp, " %5.5s, %2d, C 0x%05X, %5d, V(%s%d), %2d, 0x%x },\n", X sirq(dp->d_irq), dp->d_drq, dp->d_maddr, X! dp->d_msize, dp->d_name, dp->d_unit, dp->d_unit, X! dp->d_flags); X } X fprintf(fp, "0\n};\n"); X X fprintf(fp, "struct isa_device isa_devtab_tty[] = {\n"); X fprintf(fp, "\ X! /* driver iobase irq drq maddr msiz intr unit flags */\n"); X for (dp = dtab; dp != 0; dp = dp->d_next) { X mp = dp->d_conn; X if (dp->d_unit == QUES || mp == 0 || X*************** X*** 679,693 **** X fprintf(fp, "{ &%sdriver, %8.8s,", dp->d_name, dp->d_port); X else X fprintf(fp, "{ &%sdriver, 0x%03x,", dp->d_name, dp->d_portn); X! fprintf(fp, " %5.5s, %2d, C 0x%05X, %5d, V(%s%d), %2d },\n", X sirq(dp->d_irq), dp->d_drq, dp->d_maddr, X! dp->d_msize, dp->d_name, dp->d_unit, dp->d_unit); X } X fprintf(fp, "0\n};\n\n"); X X fprintf(fp, "struct isa_device isa_devtab_net[] = {\n"); X fprintf(fp, "\ X! /* driver iobase irq drq maddr msiz intr unit */\n"); X for (dp = dtab; dp != 0; dp = dp->d_next) { X mp = dp->d_conn; X if (dp->d_unit == QUES || mp == 0 || X--- 680,695 ---- X fprintf(fp, "{ &%sdriver, %8.8s,", dp->d_name, dp->d_port); X else X fprintf(fp, "{ &%sdriver, 0x%03x,", dp->d_name, dp->d_portn); X! fprintf(fp, " %5.5s, %2d, C 0x%05X, %5d, V(%s%d), %2d, 0x%x },\n", X sirq(dp->d_irq), dp->d_drq, dp->d_maddr, X! dp->d_msize, dp->d_name, dp->d_unit, dp->d_unit, X! dp->d_flags); X } X fprintf(fp, "0\n};\n\n"); X X fprintf(fp, "struct isa_device isa_devtab_net[] = {\n"); X fprintf(fp, "\ X! /* driver iobase irq drq maddr msiz intr unit flags */\n"); X for (dp = dtab; dp != 0; dp = dp->d_next) { X mp = dp->d_conn; X if (dp->d_unit == QUES || mp == 0 || X*************** X*** 698,712 **** X fprintf(fp, "{ &%sdriver, %8.8s,", dp->d_name, dp->d_port); X else X fprintf(fp, "{ &%sdriver, 0x%03x,", dp->d_name, dp->d_portn); X! fprintf(fp, " %5.5s, %2d, C 0x%05X, %5d, V(%s%d), %2d },\n", X sirq(dp->d_irq), dp->d_drq, dp->d_maddr, X! dp->d_msize, dp->d_name, dp->d_unit, dp->d_unit); X } X fprintf(fp, "0\n};\n\n"); X X fprintf(fp, "struct isa_device isa_devtab_null[] = {\n"); X fprintf(fp, "\ X! /* driver iobase irq drq maddr msiz intr unit */\n"); X for (dp = dtab; dp != 0; dp = dp->d_next) { X mp = dp->d_conn; X if (dp->d_unit == QUES || mp == 0 || X--- 700,715 ---- X fprintf(fp, "{ &%sdriver, %8.8s,", dp->d_name, dp->d_port); X else X fprintf(fp, "{ &%sdriver, 0x%03x,", dp->d_name, dp->d_portn); X! fprintf(fp, " %5.5s, %2d, C 0x%05X, %5d, V(%s%d), %2d, 0x%x },\n", X sirq(dp->d_irq), dp->d_drq, dp->d_maddr, X! dp->d_msize, dp->d_name, dp->d_unit, dp->d_unit, X! dp->d_flags); X } X fprintf(fp, "0\n};\n\n"); X X fprintf(fp, "struct isa_device isa_devtab_null[] = {\n"); X fprintf(fp, "\ X! /* driver iobase irq drq maddr msiz intr unit flags */\n"); X for (dp = dtab; dp != 0; dp = dp->d_next) { X mp = dp->d_conn; X if (dp->d_unit == QUES || mp == 0 || X*************** X*** 717,725 **** X fprintf(fp, "{ &%sdriver, %8.8s,", dp->d_name, dp->d_port); X else X fprintf(fp, "{ &%sdriver, 0x%03x,", dp->d_name, dp->d_portn); X! fprintf(fp, " %5.5s, %2d, C 0x%05X, %5d, V(%s%d), %2d },\n", X sirq(dp->d_irq), dp->d_drq, dp->d_maddr, X! dp->d_msize, dp->d_name, dp->d_unit, dp->d_unit); X } X fprintf(fp, "0\n};\n\n"); X } X--- 720,729 ---- X fprintf(fp, "{ &%sdriver, %8.8s,", dp->d_name, dp->d_port); X else X fprintf(fp, "{ &%sdriver, 0x%03x,", dp->d_name, dp->d_portn); X! fprintf(fp, " %5.5s, %2d, C 0x%05X, %5d, V(%s%d), %2d, 0x%x },\n", X sirq(dp->d_irq), dp->d_drq, dp->d_maddr, X! dp->d_msize, dp->d_name, dp->d_unit, dp->d_unit, X! dp->d_flags); X } X fprintf(fp, "0\n};\n\n"); X } END_OF_config-flag-patch if test 5911 -ne `wc -c <config-flag-patch`; then echo shar: \"config-flag-patch\" unpacked with wrong size! fi # end of overwriting check fi echo shar: End of shell archive. exit 0 -- Frank Mayhar fmayhar@mpd.tandem.com Tandem Computers, Inc. Micro Products Division 14231 Tandem Blvd., Austin, TX 78728 Phone: (512) 244-8969