diff options
author | marius <marius@FreeBSD.org> | 2007-01-07 22:25:45 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2007-01-07 22:25:45 +0000 |
commit | 1d842041db07130def480402fd39e9724816e4f8 (patch) | |
tree | a26bf684ee92f450497fcf3ed2222eefffb54993 | |
parent | 198bd4c0fc478412c60f02355042f40cb9ab32de (diff) | |
download | FreeBSD-src-1d842041db07130def480402fd39e9724816e4f8.zip FreeBSD-src-1d842041db07130def480402fd39e9724816e4f8.tar.gz |
Garbage collect the code for auto-loading modules based on ISAPNP IDs,
which is #if'ed out since nearly eight years, along with its outdated
database.
Agreed by: ru (some months ago)
-rw-r--r-- | sys/boot/common/pnp.c | 198 | ||||
-rw-r--r-- | sys/boot/common/pnpdata | 183 |
2 files changed, 0 insertions, 381 deletions
diff --git a/sys/boot/common/pnp.c b/sys/boot/common/pnp.c index 05cce99..589926b 100644 --- a/sys/boot/common/pnp.c +++ b/sys/boot/common/pnp.c @@ -82,52 +82,6 @@ pnp_scan(int argc, char *argv[]) return(CMD_OK); } -#if 0 -/* - * Try to load outstanding modules (eg. after disk change) - */ -COMMAND_SET(pnpload, "pnpload", "load modules for PnP devices", pnp_load); - -static int -pnp_load(int argc, char *argv[]) -{ - struct pnpinfo *pi; - char *modfname; - - /* find anything? */ - if (STAILQ_FIRST(&pnp_devices) != NULL) { - - /* check for kernel, assign modules handled by static drivers there */ - if (pnp_scankernel()) { - command_errmsg = "cannot load drivers until kernel loaded"; - return(CMD_ERROR); - } - if (fname == NULL) { - /* default paths */ - pnp_readconf("/boot/pnpdata.local"); - pnp_readconf("/boot/pnpdata"); - } else { - if (pnp_readconf(fname)) { - sprintf(command_errbuf, "can't read PnP information from '%s'", fname); - return(CMD_ERROR); - } - } - - /* try to load any modules that have been nominated */ - STAILQ_FOREACH(pi, &pnp_devices, pi_link) { - /* Already loaded? */ - if ((pi->pi_module != NULL) && (file_findfile(pi->pi_module, NULL) == NULL)) { - modfname = malloc(strlen(pi->pi_module) + 4); - sprintf(modfname, "%s.ko", pi->pi_module); /* XXX implicit knowledge of KLD module filenames */ - if (mod_load(pi->pi_module, pi->pi_argc, pi->pi_argv)) - printf("Could not load module '%s' for device '%s'\n", modfname, STAILQ_FIRST(&pi->pi_ident)->id_ident); - free(modfname); - } - } - } - return(CMD_OK); -} -#endif /* * Throw away anything we think we know about PnP devices. */ @@ -142,159 +96,7 @@ pnp_discard(void) pnp_freeinfo(pi); } } -#if 0 -/* - * The PnP configuration database consists of a flat text file with - * entries one per line. Valid lines are: - * - * # <text> - * - * This line is a comment, and ignored. - * - * [<name>] - * - * Entries following this line are for devices connected to the - * bus <name>, At least one such entry must be encountered - * before identifiers are recognised. - * - * ident=<identifier> rev=<revision> module=<module> args=<arguments> - * - * This line describes an identifier:module mapping. The 'ident' - * and 'module' fields are required; the 'rev' field is currently - * ignored (but should be used), and the 'args' field must come - * last. - * - * Comments may be appended to lines; any character including or following - * '#' on a line is ignored. - */ -static int -pnp_readconf(char *path) -{ - struct pnpinfo *pi; - struct pnpident *id; - int fd, line; - char lbuf[128], *currbus, *ident, *revision, *module, *args; - char *cp, *ep, *tp, c; - - /* try to open the file */ - if ((fd = open(path, O_RDONLY)) >= 0) { - line = 0; - currbus = NULL; - - while (fgetstr(lbuf, sizeof(lbuf), fd) > 0) { - line++; - /* Find the first non-space character on the line */ - for (cp = lbuf; (*cp != 0) && !isspace(*cp); cp++) - ; - - /* keep/discard? */ - if ((*cp == 0) || (*cp == '#')) - continue; - - /* cut trailing comment? */ - if ((ep = strchr(cp, '#')) != NULL) - *ep = 0; - - /* bus declaration? */ - if (*cp == '[') { - if (((ep = strchr(cp, ']')) == NULL) || ((ep - cp) < 2)) { - printf("%s line %d: bad bus specification\n", path, line); - } else { - if (currbus != NULL) - free(currbus); - *ep = 0; - currbus = strdup(cp + 1); - } - continue; - } - - /* XXX should we complain? */ - if (currbus == NULL) - continue; - - /* mapping */ - for (ident = module = args = revision = NULL; *cp != 0;) { - - /* discard leading whitespace */ - if (isspace(*cp)) { - cp++; - continue; - } - - /* scan for terminator, separator */ - for (ep = cp; (*ep != 0) && (*ep != '=') && !isspace(*ep); ep++) - ; - - if (*ep == '=') { - *ep = 0; - for (tp = ep + 1; (*tp != 0) && !isspace(*tp); tp++) - ; - c = *tp; - *tp = 0; - if ((ident == NULL) && !strcmp(cp, "ident")) { - ident = ep + 1; - } else if ((revision == NULL) && !strcmp(cp, "revision")) { - revision = ep + 1; - } else if ((args == NULL) && !strcmp(cp, "args")) { - *tp = c; - while (*tp != 0) /* skip to end of string */ - tp++; - args = ep + 1; - } else { - /* XXX complain? */ - } - cp = tp; - continue; - } - - /* it's garbage or a keyword - ignore it for now */ - cp = ep; - } - - /* we must have at least ident and module set to be interesting */ - if ((ident == NULL) || (module == NULL)) - continue; - - /* - * Loop looking for module/bus that might match this, but aren't already - * assigned. - * XXX no revision parse/test here yet. - */ - STAILQ_FOREACH(pi, &pnp_devices, pi_link) { - - /* no driver assigned, bus matches OK */ - if ((pi->pi_module == NULL) && - !strcmp(pi->pi_handler->pp_name, currbus)) { - - /* scan idents, take first match */ - STAILQ_FOREACH(id, &pi->pi_ident, id_link) - if (!strcmp(id->id_ident, ident)) - break; - - /* find a match? */ - if (id != NULL) { - if (args != NULL) - if (parse(&pi->pi_argc, &pi->pi_argv, args)) { - printf("%s line %d: bad arguments\n", path, line); - continue; - } - pi->pi_module = strdup(module); - printf("use module '%s' for %s:%s\n", module, pi->pi_handler->pp_name, id->id_ident); - } - } - } - } - close(fd); - } - return(CMD_OK); -} -static int -pnp_scankernel(void) -{ - return(CMD_OK); -} -#endif /* * Add a unique identifier to (pi) */ diff --git a/sys/boot/common/pnpdata b/sys/boot/common/pnpdata deleted file mode 100644 index f2e2620..0000000 --- a/sys/boot/common/pnpdata +++ /dev/null @@ -1,183 +0,0 @@ -# -# $FreeBSD$ -# -# This file contains the system default Plug-and-Play data. It is -# derived from a number of sources, including: -# -# - The Microsoft "Windows Generic Device IDs" document -# - -[pci] -###################################################################### -# PCI devices. -# -# Required attributes: -# -# ident= PCI identifier in the form 0xDDDDVVVV where -# 'VVVV' is the 4-digit hex form of the vendor ID and -# 'DDDD' is the 4-digit hex form of the device ID. -# or -# -# vendor= 0xVVVV where 'VVVV' is above -# name= Vendor name - -vendor=0x8086 name=Intel - - -[isa] -###################################################################### -# ISA PnP devices -# -# Required attributes: -# -# ident= ISA PnP identifier in the form AAAIIRR where -# 'AAA' is the EISA vendor ID, 'II' is the device ID -# and 'RR' is the revision ID. -# or -# -# vendor= AAA to register just a vendor name. -# name= Vendor name -# -# Optional attributes: -# -# module= Support module identifier. -# -# args= Arguments to pass to the support module. -# - -vendor=CSC name=Crystal Semiconductor -vendor=CTL name=Creative Labs -vendor=PNP name=Generic - -# From "Windows Generic Device IDs" -# -# --Parallel Devices-- -ident=PNP0400 module=lpt # Standard LPT printer port -ident=PNP0401 module=lpt # ECP printer port - -# --Serial Devices-- -ident=PNP0500 module=sio # Standard PC COM port -ident=PNP0501 module=sio # 16550A-compatible COM port -ident=PNP0502 module=sio # Multiport serial device (non-intelligent 16550) - -# --Disk Controllers-- -ident=PNP0600 module=wd # Generic ESDI/IDE/ATA compatible hard disk controller -ident=PNP0603 module=wd # Generic IDE supporting Microsoft Device Bay Specification -ident=PNP0700 module=fd # PC standard floppy disk controller -ident=PNP0701 module=fd # Standard floppy controller supporting MS Device Bay Spec - -# --Peripheral Buses-- -ident=PNP0A00 module=isa # ISA Bus -ident=PNP0A01 module=eisa # EISA Bus -ident=PNP0A03 module=pci # PCI Bus -ident=PNP0A04 module=isa # VESA/VL Bus - -# -- Real Time Clock, BIOS, System board devices-- -ident=PNP0C04 module=npx # Math Coprocessor -ident=PNP0C05 module=apm # APM BIOS (Version independent) - -# --PCMCIA Controller Chipsets-- -ident=PNP0E00 module=pcic # Intel 82365-Compatible PCMCIA Controller -ident=PNP0E01 module=pcic # Cirrus Logic CL-PD6720 PCMCIA Controller -ident=PNP0E02 module=pcic # VLSI VL82C146 PCMCIA Controller -ident=PNP0E03 module=pcic # Intel 82365-compatible CardBus controller - -# --Network Adapters-- -ident=PNP8001 module=ed # Novell/Anthem NE3200 -ident=PNP8004 # Compaq NE3200 -ident=PNP80d3 module=ed # Novell/Anthem NE1000 -ident=PNP80d4 module=ed # Novell/Anthem NE2000 -ident=PNP80d5 module=ed # NE1000 Compatible -ident=PNP80d6 module=ed # NE2000 Compatible -ident=PNP80d8 module=lnc # Novell/Anthem NE2100 -ident=PNP80e9 module=le # DEC (DE200) EtherWorks Turbo -ident=PNP80eb module=le # DEC (DE201) EtherWorks Turbo/TP -ident=PNP80ec module=le # DEC (DE202) EtherWorks Turbo/TP_BNC -ident=PNP80f1 module=eg # 3Com EtherLink Plus -ident=PNP80f3 module=ed # 3Com EtherLink II or IITP (8 or 16-bit) -ident=PNP80f6 module=ed # 3Com EtherLink 16 -ident=PNP80f7 module=ep # 3Com EtherLink III -ident=PNP80f8 module=ep # 3Com Generic Etherlink Plug and Play Device -ident=PNP8123 module=ed # SMC StarCard PLUS (WD/8003S) -ident=PNP8124 module=ed # SMC StarCard PLUS With On Board Hub (WD/8003SH) -ident=PNP8125 module=ed # SMC EtherCard PLUS (WD/8003E) -ident=PNP8126 module=ed # SMC EtherCard PLUS With Boot ROM Socket (WD/8003EBT) -ident=PNP8127 module=ed # SMC EtherCard PLUS With Boot ROM Socket (WD/8003EB) -ident=PNP8128 module=ed # SMC EtherCard PLUS TP (WD/8003WT) -ident=PNP812a module=ed # SMC EtherCard PLUS 16 With Boot ROM Socket (WD/8013EBT) -ident=PNP812d module=ie # Intel EtherExpress 16 or 16TP -ident=PNP8137 module=ed # Artisoft AE-1 -ident=PNP8138 module=ed # Artisoft AE-2 or AE-3 -ident=PNP8158 module=ed # HP PC LAN Adapter/16 TP Plus (HP27247B) -ident=PNP8159 module=ed # HP PC LAN Adapter/16 TL Plus (HP27252) -ident=PNP81c3 module=ed # SMC EtherCard PLUS Elite (WD/8003EP) -ident=PNP81c4 module=ed # SMC EtherCard PLUS 10T (WD/8003W) -ident=PNP81c5 module=ed # SMC EtherCard PLUS Elite 16 (WD/8013EP) -ident=PNP81c6 module=ed # SMC EtherCard PLUS Elite 16T (WD/8013W) -ident=PNP81c7 module=ed # SMC EtherCard PLUS Elite 16 Combo (WD/8013EW or 8013EWC) -ident=PNP81c8 module=ed # SMC EtherElite Ultra 16 -ident=PNP820a module=ed # Zenith Data Systems NE2000-Compatible -ident=PNP8231 module=lnc # Advanced Micro Devices AM2100/AM1500T -ident=PNP828C module=lnc # AMD PCNet Family cards -ident=PNP828D module=lnc # AMD PCNet32 (VL version) -ident=PNP8323 module=ed # SMC EtherCard (All Types except 8013/A) -ident=PNP8390 module=ed # Generic network adapter - -# --SCSI, Proprietary CD Adapters-- -ident=PNPA003 module=matcd # Panasonic proprietary CD-ROM adapter (SBPro/SB16) -ident=PNPA02B module=scd # Sony proprietary CD-ROM controller -ident=PNPA030 module=mcd # Mitsumi LU-005 Single Speed CD-ROM controller + drive -ident=PNPA031 module=mcd # Mitsumi FX-001 Single Speed CD-ROM controller + drive -ident=PNPA032 module=mcd # Mitsumi FX-001 Double Speed CD-ROM controller + drive - -# --Sound/Video-capture, multimedia-- -ident=PNPB000 module=pcm # Sound Blaster 1.5 sound device -ident=PNPB001 module=pcm # Sound Blaster 2.0 sound device -ident=PNPB002 module=pcm # Sound Blaster Pro sound device -ident=PNPB003 module=pcm # Sound Blaster 16 sound device -ident=PNPB007 module=pcm # Microsoft Windows Sound System-compatible sound device -ident=PNPB009 module=pcm # Plug and Play Microsoft Windows Sound System Device -ident=PNPB020 module=pcm # Yamaha OPL3-compatible FM synthesizer device -ident=PNPB02F module=joy # Joystick/Game port - -# --Compatibility with early device ID list-- -ident=PNP0802 module=pcm # Microsoft Sound System compatible device (obsolete, use PNPB0xx instead) - -# --Modems-- -ident=PNPC000 module=sio # Compaq 14400 Modem (TBD) -ident=PNPC001 module=sio # Compaq 2400/9600 Modem (TBD) - -# Vendor supplied IDs. - -# --Parallel Devices-- - -# --Serial Devices-- - -# --Disk Controllers-- - -# --Peripheral Buses-- - -# --Real Time Clock, BIOS, System board devices-- - -# --PCMCIA Controller Chipsets-- - -# --Network Adapters-- -ident=CSC6040 module=cs # Crystal Semiconductor CS8920 - -# --SCSI, Proprietary CD Adapters-- - -# --Sound/Video-capture, multimedia-- - -# --Modems-- - - - -[com] -###################################################################### -# COM PnP devices -# - -[lpt] -###################################################################### -# LPT PnP devices -# |