diff -u --recursive --new-file v2.1.22/linux/Documentation/Configure.help linux/Documentation/Configure.help --- v2.1.22/linux/Documentation/Configure.help Thu Jan 23 21:06:45 1997 +++ linux/Documentation/Configure.help Sat Jan 25 20:52:22 1997 @@ -31,16 +31,18 @@ # # If you add a help text to this file, please try to be as gentle as # possible. Don't use unexplained acronyms and generally write for the -# hypothetical user who has just bought a PC, removed Windows, -# installed Linux and is now recompiling the kernel for the first -# time. Tell them what to do if they're unsure. Technical information -# should go in a README in the Documentation directory. Mention all -# the relevant READMEs and HOWTOs in the help text. +# hypothetical ignorant but intelligent user who has just bought a PC, +# removed Windows, installed Linux and is now recompiling the kernel +# for the first time. Tell them what to do if they're +# unsure. Technical information should go in a README in the +# Documentation directory. Mention all the relevant READMEs and HOWTOs +# in the help text. # # All this was shamelessly stolen from several different sources. Many # thanks to all the contributors. Feel free to use these help texts # in your own kernel configuration tools. The texts are copyrighted -# (c) 1995,1996 by Axel Boldt and governed by the GNU Public License. +# (c) 1995-1997 by Axel Boldt and others and governed by the GNU +# Public License. Prompt for development and/or incomplete code/drivers CONFIG_EXPERIMENTAL @@ -54,14 +56,17 @@ avoid "Why doesn't this work?" type mail messages. However, active testing and use of these systems is welcomed. Just be aware that it may not meet the normal level of reliability or it may fail to work - in some special cases. Detailed bug reports from people familiar with - the kernel internals are usually welcomed by the developers. + in some special cases. Detailed bug reports from people familiar + with the kernel internals are usually welcomed by the developers + (before submitting bug reports, please read the documents README, + MAINTAINERS, Documentation/BUG-HUNTING, and + Documentation/oops-tracing.txt in the kernel source). Unless you intend to help test and develop a feature or driver that - falls into this category, or you have a situation that requires using - these features you should probably say N here, which will cause this - configure script to present you with fewer choices. If you say Y here, - you will be offered the choice of using features or drivers that are - currently considered to be in the alpha-test phase. + falls into this category, or you have a situation that requires + using these features you should probably say N here, which will + cause this configure script to present you with fewer choices. If + you say Y here, you will be offered the choice of using features or + drivers that are currently considered to be in the alpha-test phase. Kernel math emulation CONFIG_MATH_EMULATION @@ -70,61 +75,65 @@ a math coprocessor built in, 486SX and 386 do not, unless you added a 487DX or 387, respectively. (The messages during boot time can give you some hints here ["man dmesg"]) Everyone needs either a - coprocessor or this emulation. If you enable this emulation even + coprocessor or this emulation. If you say Y here even though you have a coprocessor, the coprocessor will be used nevertheless. (This behavior can be changed with the kernel command line option "no387", which comes handy if your coprocessor is - broken. See the documentation of your boot loader (lilo or loadlin) - about how to pass options to the kernel at boot time. The lilo - procedure is also explained in the SCSI-HOWTO, available via ftp - (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO.) This - means that it is a good idea to say Y here if you intend to use this - kernel on different machines. More information about the internals - of Linux math coprocessor emulation can be found in - arch/i386/math-emu/README. If you are not sure, say Y; apart from - resulting in a 45kB bigger kernel, it won't hurt. + broken. Try "man bootparam" or see the documentation of your boot + loader (lilo or loadlin) about how to pass options to the kernel at + boot time. The lilo procedure is also explained in the SCSI-HOWTO, + available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO.) This means that it is a good + idea to say Y here if you intend to use this kernel on different + machines. More information about the internals of Linux math + coprocessor emulation can be found in arch/i386/math-emu/README. If + you are not sure, say Y; apart from resulting in a 45kB bigger + kernel, it won't hurt. Normal floppy disk support CONFIG_BLK_DEV_FD If you want to use your floppy disk drive(s) under Linux, say Y. Information about this driver, especially important for IBM - Thinkpad users, is contained in drivers/block/README.fd. This - driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read + Thinkpad users, is contained in drivers/block/README.fd. This file + also contains the location of the Floppy driver FAQ as well as + location of the fdutils package used to configure additional + parameters of the driver at run time. This driver is also available + as a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + floppy.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. RAM disk support CONFIG_BLK_DEV_RAM - Enabling this option will allow you to use a portion of your RAM - memory as a block device, so that you can make filesystems on it, - read and write to it and do all the other things that normal block - devices (such as harddrives) can do. It is usually used to load and + Saying Y here will allow you to use a portion of your RAM memory as + a block device, so that you can make filesystems on it, read and + write to it and do all the other things that you can do with normal + block devices (such as harddrives). It is usually used to load and store a copy of a minimal root file system off of a floppy into RAM during the initial install of Linux. Note that the kernel command line option "ramdisk=XX" is now obsolete. For details, read Documentation/ramdisk.txt. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel - whenever you want), say M and read Documentation/modules.txt. Most - normal users won't need the RAM disk functionality, and can thus say - N here. + whenever you want), say M and read Documentation/modules.txt. The + module will be called rd.o. Most normal users won't need the RAM + disk functionality, and can thus say N here. Initial RAM disk (initrd) support CONFIG_BLK_DEV_INITRD The initial RAM disk is a RAM disk that is loaded by the boot loader - (LOADLIN or LILO) and that is mounted as root before the normal boot + (loadlin or lilo) and that is mounted as root before the normal boot procedure. It is typically used to load modules needed to mount the "real" root file system, etc. See Documentation/initrd.txt for details. Loop device support CONFIG_BLK_DEV_LOOP - Enabling this option will allow you to mount a file as a file - system. This is useful if you want to check an ISO9660 file system - before burning the CD, or want to use floppy images without first - writing them to floppy. This option also allows one to mount a - filesystem with encryption. To use these features, you need a - recent version of mount (available via ftp (user: anonymous) from + Saying Y here will allow you to mount a file as a file system. This + is useful if you want to check an ISO9660 file system before burning + the CD, or want to use floppy images without first writing them to + floppy. This option also allows one to mount a filesystem with + encryption. To use these features, you need a recent version of + mount (available via ftp (user: anonymous) from ftp.win.tue.nl/pub/linux/util/). Note that this loop device has nothing to do with the loopback device used for network connections from the machine to itself. Most users will answer N here. @@ -146,7 +155,7 @@ Old harddisk (MFM/RLL/IDE) driver CONFIG_BLK_DEV_HD_ONLY There are two drivers for MFM/RLL/IDE disks. Most people use the - newer enhanced driver, but the old one is still around for two + newer enhanced driver, but this old one is still around for two reasons. Some older systems have strange timing problems and seem to work only with the old driver (which itself does not work with some newer systems). The other reason is that the old driver is @@ -160,8 +169,8 @@ Use old disk-only driver on primary interface CONFIG_BLK_DEV_HD_IDE There are two drivers for MFM/RLL/IDE disks. Most people use just - the new enhanced driver by itself. This option installs the old - harddisk driver to control the primary IDE/disk interface in the + the new enhanced driver by itself. This option however installs the + old harddisk driver to control the primary IDE/disk interface in the system, leaving the new enhanced IDE driver take care of only the 2nd/3rd/4th IDE interfaces. Doing this will prevent you from having an IDE/ATAPI CDROM or tape drive connected to the primary IDE @@ -178,7 +187,8 @@ old harddisk driver instead, say Y. If you want to compile this driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. If unsure, say Y. + Documentation/modules.txt. The module will be called ide-disk.o. If + unsure, say Y. Include IDE/ATAPI CDROM support CONFIG_BLK_DEV_IDECD @@ -187,19 +197,19 @@ SCSI protocol. Most new CDROM drives use ATAPI, including the NEC-260, Mitsumi FX400, Sony 55E, and just about all non-SCSI double(2X), quad(4X), and six(6X) speed drives. At boot time, the - CDROM drive will be identified along with other IDE devices, as "hdb" - or "hdc", or something similar. - If this is your only CDROM drive, you can say N to all other CDROM - options, but be sure to say Y to the ISO9660 filesystem. Read the - CDROM-HOWTO, available via ftp (user: anonymous) in + CDROM drive will be identified along with other IDE devices, as + "hdb" or "hdc", or something similar. If this is your only CDROM + drive, you can say N to all other CDROM options, but be sure to say + Y to "ISO9660 cdrom filesystem support". Read the CDROM-HOWTO, + available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file Documentation/cdrom/ide-cd. Note that older versions of lilo (the linux boot loader) cannot properly deal with IDE/ATAPI CDROMs, so install lilo-16 or higher, available from - sunsite.unc.edu:/pub/Linux/system/Linux-boot/lilo. - If you want to compile the driver as a module ( = code which - can be inserted in and removed from the running kernel whenever you - want), say M here and read Documentation/modules.txt. + sunsite.unc.edu:/pub/Linux/system/Linux-boot/lilo. If you want to + compile the driver as a module ( = code which can be inserted in and + removed from the running kernel whenever you want), say M here and + read Documentation/modules.txt. The module will be called ide-cd.o. Include IDE/ATAPI TAPE support CONFIG_BLK_DEV_IDETAPE @@ -212,7 +222,7 @@ Documentation/ide.txt files for usage information. If you want to compile the driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. + read Documentation/modules.txt. The module will be called ide-tape.o. Include IDE/ATAPI FLOPPY support CONFIG_BLK_DEV_IDEFLOPPY @@ -224,7 +234,8 @@ something similar. If you want to compile the driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. - + The module will be called ide-floppy.o. + SCSI emulation support CONFIG_BLK_DEV_IDESCSI This will provide SCSI host adapter emulation for IDE ATAPI devices, @@ -272,10 +283,14 @@ Intel 82371 PIIX (Triton I/II) DMA support CONFIG_BLK_DEV_TRITON - This will improve performance if you have an Intel PCI Triton I/II - IDE interface chipset (i82371FB or i82371SB). For details, read the - comments at the beginning of drivers/block/triton.c and - Documentation/ide.txt. If unsure, say N. + If your PCI system uses an IDE harddrive (as opposed to SCSI, say) + and includes the Intel Triton I/II IDE interface chipset (i82371FB + or i82371SB), you will want to enable this option to allow use of + bus-mastering DMA data transfers. Read the comments at the beginning + of drivers/block/triton.c. You can get the latest version of the + hdparm utility via ftp (user: anonymous) from + sunsite.unc.edu/pub/Linux/kernel/patches/diskdrives/; it is used to + tune your harddisk. It is safe to say Y to this question. Other IDE chipset support CONFIG_IDE_CHIPSETS @@ -351,17 +366,18 @@ include a driver for these, say Y. If you want to compile the driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. It's pretty unlikely that you have one of - these: say N. + Documentation/modules.txt. The module will be called xd.o. It's + pretty unlikely that you have one of these: say N. SyQuest EZ parallel port disk support CONFIG_BLK_DEV_EZ - If you have a parallel port version of SyQuest's EZ135 or EZ230 removable - media devices you can use this driver. Answer Y to build the driver into - the kernel, or M if you would like to build it as a loadable module. - Read the file linux/Documentation/ez.txt. If you have several different - devices that will share a common parallel port you should build them all - as modules. + If you have a parallel port version of SyQuest's EZ135 or EZ230 + removable media devices you can use this driver. Answer Y to build + the driver into the kernel, or M if you would like to build it as a + loadable module. The module will be called ez.o. Read the file + linux/Documentation/ez.txt. If you have several different devices + that will share a common parallel port you should build them all as + modules. Multiple devices driver support CONFIG_BLK_DEV_MD @@ -374,23 +390,25 @@ Linear (append) mode CONFIG_MD_LINEAR - If you enable this, then your multiple devices driver will be able - to use the so-called linear mode, i.e. it will combine the harddisk + If you say Y here, then your multiple devices driver will be able to + use the so-called linear mode, i.e. it will combine the harddisk partitions by simply appending one to the other. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. If unsure, say Y. + read Documentation/modules.txt. The module will be called + linear.o. If unsure, say Y. RAID-0 (striping) mode CONFIG_MD_STRIPED - If you enable this, then your multiple devices driver will be able - to use the so-called raid0 mode, i.e. it will combine the harddisk + If you say Y here, then your multiple devices driver will be able to + use the so-called raid0 mode, i.e. it will combine the harddisk partitions into one logical device in such a fashion as to fill them up evenly, one chunk here and one chunk there. This will increase the throughput rate if the partitions reside on distinct disks. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M - here and read Documentation/modules.txt. If unsure, say Y. + here and read Documentation/modules.txt. The module will be called + raid0.o. If unsure, say Y. Support for Deskstation RPC44 CONFIG_DESKSTATION_RPC44 @@ -496,7 +514,7 @@ you want to configure your Linux box as a firewall for a local network, say Y here. If your local network is TCP/IP based, you will then also have to say Y to "IP: firewalling", below. - You also need to say Y here and enable "IP firewalling" below in + You also need to say Y here and say Y to "IP firewalling" below in order to be able to use IP masquerading (i.e. local computers can chat with an outside host, but that outside host is made to think that it is talking to the firewall box -- makes the local network @@ -556,22 +574,23 @@ which is command line driven, and ARC, which uses menus and arrow keys. The usual way to load Linux on an Alpha machine is to use MILO (a bootloader that lets you pass command line parameters to the - kernel just like LILO does) which can be loaded either from ARC or - can be installed directly as a permanent firmware replacement from - floppy (which requires changing a certain jumper on the - motherboard). If you want to do either of these, say N here. If MILO - doesn't work on your system (true for Jensen motherboards), you can - bypass it altogether and boot Linux directly from an SRM console; - say Y here in order to do that. Note that you won't be able to boot - from an IDE disk using SRM. If unsure, say N. Details about the - Linux/Alpha booting process are contained in the Linux/Alpha FAQ, - accessible on the WWW from http://www.azstarnet.com/~axplinux/ (To - browse the WWW, you need to have access to a machine on the Internet - that has one of the programs lynx, netscape or Mosaic). + kernel just like lilo does for the 386 architecture) which can be + loaded either from ARC or can be installed directly as a permanent + firmware replacement from floppy (which requires changing a certain + jumper on the motherboard). If you want to do either of these, say N + here. If MILO doesn't work on your system (true for Jensen + motherboards), you can bypass it altogether and boot Linux directly + from an SRM console; say Y here in order to do that. Note that you + won't be able to boot from an IDE disk using SRM. If unsure, say + N. Details about the Linux/Alpha booting process are contained in + the Linux/Alpha FAQ, accessible on the WWW from + http://www.azstarnet.com/~axplinux/ (To browse the WWW, you need to + have access to a machine on the Internet that has one of the + programs lynx, netscape or Mosaic). Echo console messages on /dev/ttyS1 CONFIG_SERIAL_ECHO - If you enable this option, all kernel messages that would usually go + If you say Y here, all kernel messages that would usually go to the console will also be sent to the device /dev/ttyS1 which corresponds to a serial port; this could be useful if you attached a terminal or printer to that port. @@ -580,10 +599,10 @@ CONFIG_TGA_CONSOLE Many Alpha systems (e.g the Multia) are shipped with a graphics card that implements the TGA interface (much like the VGA standard, but - older TGA adaptors are *not* VGA compatible). On such systems, this - option needs to be enabled so that the TGA driver rather than the - standard VGA driver is used. Note that, at this time, there is no X - server for these systems. If unsure, try N. + older TGA adaptors are *not* VGA compatible). On such systems, you + should say Y here so that the TGA driver rather than the standard + VGA driver is used. Note that, at this time, there is no X server + for these systems. If unsure, try N. PCI bios support CONFIG_PCI @@ -613,23 +632,12 @@ Documentation/mca.txt before attempting to build an MCA bus kernel. Note that this is still experimental code. -Intel 82371 PIIX (Triton I/II) DMA support -CONFIG_BLK_DEV_TRITON - If your PCI system uses an IDE harddrive (as opposed to SCSI, say) - and includes the Intel 430FX PCI Triton chipset, you will want to - enable this option to allow use of bus-mastering DMA data transfers. - Read the comments at the beginning of drivers/block/triton.c. You - can get the latest version of the hdparm utility via ftp (user: - anonymous) from - sunsite.unc.edu/pub/Linux/kernel/patches/diskdrives/; it is used to - tune your harddisk. It is safe to say Y to this question. - System V IPC CONFIG_SYSVIPC Inter Process Communication is a suite of library functions and system calls which let processes (= running programs) synchronize and exchange information. It is generally considered to be a good thing, - and some programs won't run unless you enable this. In particular, + and some programs won't run unless you say Y here. In particular, if you want to run the DOS emulator dosemu under Linux (read the DOSEMU-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO), you'll need to say Y here. You @@ -637,7 +645,7 @@ sunsite.unc.edu:/pub/Linux/docs/man/info.tar.gz (extract with "tar xzvf filename"). These docs are in the info format which is used to document GNU software and can be read from within emacs ("Ctrl-h i") - or with the program info ("man info"). Enabling this option enlarges + or with the program info ("man info"). Saying Y here enlarges your kernel by about 7kB. Just say Y. Kernel support for ELF binaries @@ -661,8 +669,9 @@ file Documentation/Changes for location and latest version). If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. Saying M or N here is dangerous - because some crucial programs on your system might be in ELF format. + and read Documentation/modules.txt. The module will be called + binfmt_elf.o. Saying M or N here is dangerous because some crucial + programs on your system might be in ELF format. Kernel support for A.OUT binaries CONFIG_BINFMT_AOUT @@ -677,57 +686,66 @@ wish to ensure that absolutely none of your programs will use this older executable format. If you don't know what to answer at this point then answer Y. If someone told you "You need a kernel with - QMAGIC support" then you'll have to say Y here. You may answer M - to compile a.out support as a module and later load the module when - you want to use a program or library in a.out format. Saying M or N - here is dangerous though, because some crucial programs on your - system might still be in A.OUT format. + QMAGIC support" then you'll have to say Y here. You may answer M to + compile a.out support as a module and later load the module when you + want to use a program or library in a.out format. The module will be + called binfmt_aout.o. Saying M or N here is dangerous though, + because some crucial programs on your system might still be in A.OUT + format. Kernel support for JAVA binaries CONFIG_BINFMT_JAVA - JAVA is an object oriented programming language developed by SUN; - JAVA programs are compiled into "JAVA bytecode" binaries which can - then be interpreted by run time systems on many different operating - systems. These JAVA binaries are becoming a universal executable - format. Saying Y here allows you to execute a JAVA bytecode binary - just like any other Linux program: by typing in its name. As more - and more Java programs become available, the use for this will - gradually increase. You can even execute HTML files containing JAVA - applets (= JAVA binaries) if those files start with the string - "". If you want to use this, read - Documentation/java.txt and the Java on Linux HOWTO, available via - ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. You - will then need to install the run time system contained in the Java - Developers Kit (JDK) as described in the HOWTO. If you disable this - option it will reduce your kernel by about 4kB. This is not much and - by itself does not warrant removing support. However its removal is - a good idea if you do not have the JDK installed. If you don't know - what to answer at this point then answer Y. You may answer M for - module support and later load the module when you install the JDK or - find an interesting Java program that you can't live without. + JAVA(tm) is an object oriented programming language developed by + SUN; JAVA programs are compiled into "JAVA bytecode" binaries which + can then be interpreted by run time systems on many different + operating systems. These JAVA binaries are becoming a universal + executable format. If you want to execute JAVA binaries, read the + Java on Linux HOWTO, available via ftp (user: anonymous) at + sunsite.unc.edu:/pub/Linux/docs/HOWTO. You will then need to install + the run time system contained in the Java Developers Kit (JDK) as + described in the HOWTO. This is completely independent of the Linux + kernel and you do NOT need to say Y here for this to work. + Saying Y here allows you to execute a JAVA bytecode binary just like + any other Linux program: by simply typing in its name. (You also + need to have the JDK installed for this to work). As more and more + Java programs become available, the use for this will gradually + increase. You can even execute HTML files containing JAVA applets (= + JAVA binaries) if those files start with the string + "". If you want to use this, say Y here and read + Documentation/java.txt. If you disable this option it will reduce + your kernel by about 4kB. This is not much and by itself does not + warrant removing support. However its removal is a good idea if you + do not have the JDK installed. You may answer M for module support + and later load the module when you install the JDK or find an + interesting Java program that you can't live without. The module + will be called binfmt_java.o. If you don't know what to answer at + this point then answer Y. Processor type CONFIG_M386 - This is the processor type of your CPU. It is used for optimizing - purposes. In order to compile a kernel that can run on all CPU types - (albeit not optimally fast), you can specify "386" here. If you - specify "486" or "Pentium" or "PPro", then the kernel will run on - 486 and Pentium (=586) and Pentium Pro (=686) CPUs. In rare cases, - it can make sense to specify "Pentium" even if running a 486: the - kernel will be smaller but slower. On the other hand, if you use a - compiler before gcc 2.7 (say "gcc -v" to find out), then you have to - say "386" or "486" here even if running on a Pentium or PPro - machine. If you don't know what to do, say "386". + This is the processor type of your CPU. This information is used for + optimizing purposes. In order to compile a kernel that can run on + all Intel CPU types (albeit not optimally fast), you can specify + "386" here. If you specify one of "486" or "Pentium" or "PPro", + then the kernel will run on all of these CPUs: 486 and Pentium + (=586) and Pentium Pro (=686). In rare cases, it can make sense to + specify "Pentium" even if running on a 486: the kernel will be + smaller but slower. If you don't know what to do, say "386". Video mode selection support CONFIG_VIDEO_SELECT - This enables support for text mode selection on kernel startup. If you - want to take advantage of some high-resolution text mode your card's - BIOS offers, but the traditional Linux utilities like SVGATextMode - don't, you can enable this and set the mode using the "vga=" option - from your boot loader (LILO or LOADLIN) or set "vga=ask" which brings - up a video mode menu on kernel startup. Read Documentation/svga.txt - for more information. If unsure, say N. + This enables support for text mode selection on kernel startup. If + you want to take advantage of some high-resolution text mode your + card's BIOS offers, but the traditional Linux utilities like + SVGATextMode don't, you can say Y here and set the mode using the + "vga=" option from your boot loader (lilo or loadlin) or set + "vga=ask" which brings up a video mode menu on kernel startup. Try + "man bootparam" or see the documentation of your boot loader about + how to pass options to the kernel. The lilo procedure is also + explained in the SCSI-HOWTO, available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Read Documentation/svga.txt + for more information about the Video mode selection support. If + unsure, say N. Compile the kernel into the ELF object format CONFIG_ELF_KERNEL @@ -763,7 +781,7 @@ Set version information on all symbols for modules CONFIG_MODVERSIONS Usually, modules have to be recompiled whenever you switch to a new - kernel. Enabling this option makes it possible, and safe, to use the + kernel. Saying Y here makes it possible, and safe, to use the same modules even after compiling a new kernel; this requires the program modprobe. All the software needed for module support is in the modules package (check the file Documentation/Changes for @@ -800,12 +818,12 @@ resolution (ARP) cache inside the kernel works well. However, maintaining an internal ARP cache does not work well for very large switched networks, and will use a lot of kernel memory if TCP/IP - connections are made to many machines on the network. By enabling - this option, the kernel's internal ARP cache will never grow to more - than 256 entries (the oldest entries are expired in a LIFO manner) - and communication will be attempted with an external ARP daemon, - arpd. This code is still experimental. If you do enable arpd - support, you should obtain a copy of arpd from + connections are made to many machines on the network. By saying Y + here, the kernel's internal ARP cache will never grow to more than + 256 entries (the oldest entries are expired in a LIFO manner) and + communication will be attempted with an external ARP daemon, arpd. + This code is still experimental. If you do say Y here, you + should obtain a copy of arpd from http://www.loran.com/~layes/arpd/index.html. If unsure, say N. TCP/IP networking @@ -840,8 +858,8 @@ local network from the internet. The Firewall-HOWTO tells you how to do this. If your setup is more complex, say you are connected to three networks and you want to act as a firewall between two of them - and route traffic for the others, you need to say Y here and enable - IP firewalling below. If you intend to use IP masquerading (i.e. IP + and route traffic for the others, you need to say Y here and Y to + "IP firewalling" below. If you intend to use IP masquerading (i.e. IP traffic from one of the local computers and destined for an outside host is changed by your box so that it appears to come from you), you'll have to say Y here and also to IP firewalling and IP @@ -891,7 +909,7 @@ ipfwadm tool (available via ftp (user: anonymous) from ftp.xos.nl/pub/linux/ipfwadm/) to allow selective blocking of internet traffic based on type, origin and destination. You need to - enable IP firewalling in order to be able to use IP masquerading + say Y to "IP firewalling" in order to be able to use IP masquerading (i.e. local computers can chat with an outside host, but that outside host is made to think that it is talking to the firewall box -- makes the local network completely invisible and avoids the need @@ -935,11 +953,12 @@ appear on a different network than it physically is, or to use mobile-IP facilities (allowing laptops to seamlessly move between networks without changing their IP addresses; check out - http://anchor.cs.binghamton.edu/~mobileip/LJ/index.html). Enabling - this option will produce two modules ( = code which can be inserted - in and removed from the running kernel whenever you want), one - encapsulator and one decapsulator. You can read details in - drivers/net/README.tunnel. Most people can say N. + http://anchor.cs.binghamton.edu/~mobileip/LJ/index.html). Saying Y + to this option will produce two modules ( = code which can be + inserted in and removed from the running kernel whenever you want), + one encapsulator and one decapsulator. The module will be called + ipip.o. You can read details in drivers/net/README.tunnel. Most + people can say N. IP: firewall packet logging CONFIG_IP_FIREWALL_VERBOSE @@ -992,18 +1011,17 @@ that the IP packets were too large and cut them in pieces) will be reassembled (defragmented) before being processed, even if they are about to be forwarded. This option is highly recommended if you - have enabled the masquerading support (CONFIG_IP_MASQUERADE), - because that facility requires that second and further fragments can - be related to TCP or UDP port numbers, which are only stored in the - first fragment. When using IP firewall support - (CONFIG_IP_FIREWALL), you might also want to enable this option, to + have said Y to "IP: masquerading" because that facility requires + that second and further fragments can be related to TCP or UDP port + numbers, which are only stored in the first fragment. When using + "IP: firewalling" support , you might also want to say Y here, to have a more reliable firewall (otherwise second and further - fragments will always be accepted by the firewall). When using - transparent proxying (CONFIG_IP_TRANSPARENT_PROXY), this option is - implicit, although it is safe to say Y here. Do not say Y to this - option except when running either a firewall that is the sole link - to your network or a transparent proxy. Never ever say Y to this for - a normal router or host. + fragments will always be accepted by the firewall). When using "IP: + transparent proxying", this option is implicit, although it is safe + to say Y here. Do not say Y to this option except when running + either a firewall that is the sole link to your network or a + transparent proxy. Never ever say Y to this for a normal router or + host. IP: aliasing support CONFIG_IP_ALIAS @@ -1037,8 +1055,8 @@ CONFIG_INET_PCTCP If you have been having difficulties telneting to your Linux machine from a DOS system that uses (broken) PC/TCP networking software (all - versions up to OnNet 2.0) over your local ethernet try enabling this - option. Everyone else says N. People having problems with NCSA telnet + versions up to OnNet 2.0) over your local ethernet try saying Y + here. Everyone else says N. People having problems with NCSA telnet should see the file linux/Documentation/networking/ncsa-telnet. Reverse ARP @@ -1060,8 +1078,9 @@ http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html for details. If you want to compile RARP support as a module ( = code which can be inserted in and removed from the running kernel whenever you want), - say M here and read Documentation/modules.txt. If you don't - understand a word of the above, say N and rest in peace. + say M here and read Documentation/modules.txt. The module will be + called rarp.o. If you don't understand a word of the above, say N + and rest in peace. Assume subnets are local CONFIG_INET_SNARL @@ -1136,13 +1155,16 @@ Protocol IP version 6 (also called IPng "IP next generation"). Features of this new protocol include: expanded address space, authentication and privacy, and seamless - interoperability with the current version of IP. For details, see - http://playground.sun.com/pub/ipng/html/ipng-main.html and the file - net/ipv6/README in the kernel source. The IPv6 support is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. It's - safe to say N for now. + interoperability with the current version of IP. For general + information about IPv6, see + http://playground.sun.com/pub/ipng/html/ipng-main.html; for specific + information about IPv6 under Linux read the HOWTO at + http://www.terra.net/ipv6/ and the file net/ipv6/README in the + kernel source. The IPv6 support is also available as a module ( = + code which can be inserted in and removed from the running kernel + whenever you want). The module will be called ipv6.o. If you want to + compile it as a module, say M here and read + Documentation/modules.txt. It's safe to say N for now. The IPX protocol CONFIG_IPX @@ -1161,26 +1183,34 @@ IPX-HOWTO in sunsite.unc.edu:/pub/Linux/docs/howto. The IPX driver would enlarge your kernel by about 5 kB. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. - Unless you want to integrate your Linux box with a local Novell - network, say N. + from the running kernel whenever you want). The module will be + called ipx.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Unless you want to integrate + your Linux box with a local Novell network, say N. Full internal IPX network CONFIG_IPX_INTERN + Every IPX network has an address that identifies it. Sometimes it is + useful to give an IPX "network" address to your Linux box as well + (for example if your box is acting as a fileserver for different IPX + networks: it will then be accessible form everywhere using the same + address). The way this is done is to create a virtual internal + "network" inside your box and to assign an IPX address to this + network. Say Y here if you want to do this; read the IPX-HOWTO at + sunsite.unc.edu:/pub/Linux/docs/howto for details. The full internal IPX network enables you to allocate sockets on different virtual nodes of the internal network. This is done by - evaluating the field sipx_node of the socket address given to the bind - call. So applications should always initialize the node field to 0 - when binding a socket on the primary network. In this case the socket - is assigned the default node that has been given to the kernel when - the internal network was created. - By enabling the full internal IPX network the cross-forwarding of - packets targeted at 'special' sockets to sockets listening on the - primary network is disabled. This might break existing applications, - especially RIP/SAP daemons. A RIP/SAP daemon that works well with the - full internal net can be found on ftp.gwdg.de:/pub/linux/misc/ncpfs. - If you don't know what you are doing, say N. + evaluating the field sipx_node of the socket address given to the + bind call. So applications should always initialize the node field + to 0 when binding a socket on the primary network. In this case the + socket is assigned the default node that has been given to the + kernel when the internal network was created. By enabling the full + internal IPX network the cross-forwarding of packets targeted at + 'special' sockets to sockets listening on the primary network is + disabled. This might break existing applications, especially RIP/SAP + daemons. A RIP/SAP daemon that works well with the full internal net + can be found on ftp.gwdg.de:/pub/linux/misc/ncpfs. If you don't + know what you are doing, say N. IPX Type 20 Routing CONFIG_IPX_PPROP_ROUTING @@ -1198,11 +1228,11 @@ CONFIG_ATALK Appletalk is the way Apple computers speak to each other on a network. EtherTalk is the name used for appletalk over ethernet and - Localtalk is appletalk over the apple serial links. If your linux box - is connected to such a network and you want to join the conversation, - say Y. You will need to use the netatalk package so that your Linux - box can act as a print and file server for macs as well as access - appletalk printers. Check out + Localtalk is appletalk over the apple serial links. If your linux + box is connected to such a network and you want to join the + conversation, say Y. You will need to use the netatalk package so + that your Linux box can act as a print and file server for macs as + well as access appletalk printers. Check out http://artoo.hitchcock.org/~flowerpt/projects/linux-netatalk/ on the WWW for details (to browse the WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape @@ -1210,13 +1240,14 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO contains valuable information as well. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. I hear that the GNU boycott of Apple is - over, so even politically correct people are allowed to say Y here. - At the time the kernel is released the localtalk drivers are not - yet ready to ship. The kernel however supports localtalk and when - such drivers become available all you will need to do is download - and install the localtalk driver. + want). The module will be called appletalk.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. I + hear that the GNU boycott of Apple is over, so even politically + correct people are allowed to say Y here. At the time the kernel is + released the localtalk drivers are not yet ready to ship. The kernel + however supports localtalk and when such drivers become available + all you will need to do is download and install the localtalk + driver. Amateur Radio AX.25 Level 2 CONFIG_AX25 @@ -1234,7 +1265,7 @@ have to say Y to one of those drivers. Information about where to get supporting software for Linux amateur radio as well as information about how to configure an AX.25 port is contained in the - HAM-HOWTO, available via ftp (user: anonymous) in + AX25-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. You might also want to check out the file Documentation/networking/ax25.txt in the kernel source. More information about digital amateur radio in general is @@ -1242,25 +1273,25 @@ browse the WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic). This driver is also available as a module ( = code which can be inserted in and - removed from the running kernel whenever you want). If you want to - compile it as a module, say M here and read - Documentation/modules.txt. + removed from the running kernel whenever you want). The module will + be called ax25.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Amateur Radio NET/ROM CONFIG_NETROM NET/ROM is a network layer protocol on top of AX.25 useful for routing. A comprehensive listing of all the software for Linux amateur radio users as well as information about how to configure an - AX.25 port is contained in the HAM-HOWTO, available via ftp (user: + AX.25 port is contained in the AX25-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. You also might want to check out the file Documentation/networking/ax25.txt. More information about digital amateur radio in general is on the WWW at http://www.tapr.org/tapr/html/pkthome.html (To browse the WWW, you need to have access to a machine on the Internet that has one of the - programs lynx, netscape or Mosaic). - This driver is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read + programs lynx, netscape or Mosaic). This driver is also available + as a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + netrom.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. AX.25 over Ethernet @@ -1278,7 +1309,7 @@ particular, essentially an alternative to NET/ROM. A comprehensive listing of all the software for Linux amateur radio users as well as information about how to configure an AX.25 port is contained in the - HAM-HOWTO, available via ftp (user: anonymous) in + AX25-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. You also might want to check out the file Documentation/networking/ax25.txt. More information about digital amateur radio in general is on the WWW at @@ -1286,9 +1317,57 @@ need to have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic). This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt. + running kernel whenever you want). The module will be called + rose.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. + +CCITT X.25 Packet Layer +CONFIG_X25 + X.25 is a set of standardized network protocols, similar in scope to + frame relay; the one physical line from your box to the entry point + to the X.25 network can carry several logical point-to-point + connections (called "virtual circuits") to other computers connected + to the X.25 network. Governments, banks, and other organizations + tend to use it to connect to each other or to form Wide Area + Networks. Many countries have public X.25 networks. X.25 consists + of two protocols: the higher level Packet Layer Protocol (PLP) (say + Y here if you want that) and the lower level data link layer + protocol LAPB (say Y to "LAPB Data Link Driver" below if you want + that). You can read more about X.25 at + http://www.sangoma.com/x25.html and + http://www.cisco.com/univercd/data/doc/software/11_0/rpcg/cx25.htm. + Information about X.25 for Linux is contained in the files + Documentation/networking/x25.txt and + Documentation/networking/x25-iface.txt. One connects to an X.25 + network either with a dedicated network card using the X.21 protocol + (not yet supported by Linux) or one can do X.25 over ethernet using + an ordinary ethernet card and either the 802.2 LLC protocol (say Y + to "802.2 LLC" below) or LAPB over ethernet (say Y to "LAPB Data + Link Driver" and "LAPB over Ethernet driver" below). If you want to + compile this driver as a module though ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called x25.o. If unsure, say N. + +LAPB Data Link Driver (EXPERIMENTAL) +CONFIG_LAPB + Link Access Procedure, Balanced (LAPB) is the data link layer part + of the X.25 protocol. It offers a reliable connection service to + exchange data frames with one other host, and it is used to + transport higher level protocols (mostly X.25 Packet Layer, but + others are possible as well). If you want to use LAPB connections + over ethernet, say Y here and to "LAPB over Ethernet driver" below. + Read Documentation/networking/lapb-module.txt for technical details. + If you want to compile this driver as a module though ( = code which + can be inserted in and removed from the running kernel whenever you + want), say M here and read Documentation/modules.txt. The module + will be called lapb.o. If unsure, say N. +802.2 LLC (VERY EXPERIMENTAL) +CONFIG_LLC + This is a Logical Link Layer protocol used for X.25 connections over + ethernet, using ordinary ethernet cards. + Bridging (EXPERIMENTAL) CONFIG_BRIDGE If you say Y here, then your Linux box will be able to act as an @@ -1313,7 +1392,7 @@ of the kernel or modules and user processes; the user processes are able to read from and write to character special files in the /dev directory having major mode 36. So far, the kernel uses it to - publish some network related information if you enable "Routing + publish some network related information if you say Y to "Routing messages", below. It is also used by the firewall code if you say Y to "Kernel/User network link driver" further down. You also need to say Y here if you want to use arpd, a daemon that helps keep the @@ -1322,7 +1401,7 @@ Routing messages CONFIG_RTNETLINK - If you enable this and create a character special file /dev/route + If you say Y here and create a character special file /dev/route with major number 36 and minor number 0 using mknod ("man mknod"), you can read some network related routing information from that file. Everything you write to that file will be discarded. @@ -1338,9 +1417,9 @@ SCSI-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt and - Documentation/scsi.txt. + from the running kernel whenever you want). The module will be + called scsi_mod.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt and Documentation/scsi.txt. SCSI disk support CONFIG_BLK_DEV_SD @@ -1350,8 +1429,9 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. This is NOT for SCSI CDROMs. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt and Documentation/scsi.txt. + want). The module will be called sd_mod.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt and + Documentation/scsi.txt. SCSI tape support CONFIG_CHR_DEV_ST @@ -1360,20 +1440,20 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO and drivers/scsi/README.st in the kernel source. This is NOT for SCSI CDROMs. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt and - Documentation/scsi.txt . + from the running kernel whenever you want). The module will be + called st.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt and Documentation/scsi.txt . SCSI CDROM support CONFIG_BLK_DEV_SR If you want to use a SCSI CDROM under Linux, say Y and read the SCSI-HOWTO and the CDROM-HOWTO from - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to enable the - ISO9660 filesystem later. This driver is also available as a module - ( = code which can be inserted in and removed from the running - kernel whenever you want). If you want to compile it as a module, - say M here and read Documentation/modules.txt and - Documentation/scsi.txt . + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to say Y to + "ISO9660 cdrom filesystem support" later. This driver is also + available as a module ( = code which can be inserted in and removed + from the running kernel whenever you want). The module will be + called sr_mod.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt and Documentation/scsi.txt . Enable vendor-specific extensions (for SCSI CDROM) CONFIG_BLK_DEV_SR_VENDOR @@ -1397,7 +1477,8 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt and Documentation/scsi.txt. + Documentation/modules.txt and Documentation/scsi.txt. The module + will be called sg.o. If unsure, say N. Probe all LUNs on each SCSI device CONFIG_SCSI_MULTI_LUN @@ -1411,7 +1492,7 @@ Verbose SCSI error reporting (kernel size +=12K) CONFIG_SCSI_CONSTANTS The error messages regarding your SCSI hardware will be easier to - understand if you enable this; it will enlarge your kernel by about + understand if you say Y here; it will enlarge your kernel by about 12KB. If in doubt, say Y. AdvanSys SCSI support @@ -1421,7 +1502,8 @@ drivers/scsi/advansys.c. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. + here and read Documentation/modules.txt. The module will be called + advansys.o. Adaptec AHA152X/2825 support CONFIG_SCSI_AHA152X @@ -1431,9 +1513,9 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. You might also want to read the comments at the top of drivers/scsi/aha152x.c. This driver is also available as a module ( = code which can be inserted in and - removed from the running kernel whenever you want). If you want to - compile it as a module, say M here and read - Documentation/modules.txt. + removed from the running kernel whenever you want). The module will + be called aha152x.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Adaptec AHA1542 support CONFIG_SCSI_AHA1542 @@ -1441,11 +1523,12 @@ 3.4 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that Trantor was recently purchased by Adaptec, and some former Trantor products are - being sold under the Adaptec name. If it doesn't work out of - the box, you may have to change some settings in - drivers/scsi/aha1542.h. If you want to compile this as a module ( = - code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + being sold under the Adaptec name. If it doesn't work out of the + box, you may have to change some settings in drivers/scsi/aha1542.h. + If you want to compile this as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called aha1542.o. Adaptec AHA1740 support CONFIG_SCSI_AHA1740 @@ -1455,8 +1538,9 @@ the box, you may have to change some settings in drivers/scsi/aha1740.h. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. + whenever you want). The module will be called aha17400.o. If you + want to compile it as a module, say M here and read + Documentation/modules.txt. Adaptec AHA274X/284X/294X support CONFIG_SCSI_AIC7XXX @@ -1466,7 +1550,8 @@ doesn't work out of the box, you may have to change some settings in drivers/scsi/aic7xxx.h. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + whenever you want), say M here and read + Documentation/modules.txt. The module will be called aic7xxx.o. BusLogic SCSI support CONFIG_SCSI_BUSLOGIC @@ -1481,8 +1566,9 @@ correctly without modification, please contact the author. You can build this driver also as a module ( = code which can be inserted in and removed from the running kernel whenever you want), but only a - single instance may be loaded. If you want to compile it as a - module, say M here and read Documentation/modules.txt. + single instance may be loaded. The module will be called + BusLogic.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt. DTC3180/3280 SCSI support CONFIG_SCSI_DTC3280 @@ -1491,8 +1577,9 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file drivers/scsi/README.dtc3x80. This driver is also available as a module (= code which can be inserted in and removed from the running - kernel whenever you want). If you want to compile it as a module, - say M here and read Documentation/modules.txt. + kernel whenever you want). The module will be called dtc.o. If you + want to compile it as a module, say M here and read + Documentation/modules.txt. EATA-DMA (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix) support CONFIG_SCSI_EATA_DMA @@ -1500,12 +1587,13 @@ Adaptors like the SmartCache III/IV, SmartRAID controller families and the DPT PM2011B and PM2012B controllers. Note that there is also another driver for the same hardware: "EATA ISA/EISA/PCI - support". You should enable only one of them. Please read the + support". You should only say Y to one of them. Please read the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module (= code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + from the running kernel whenever you want). The module will be + called eata_dma.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. EATA-PIO (old DPT PM2001, PM2012A) support CONFIG_SCSI_EATA_PIO @@ -1518,34 +1606,48 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called eata_pio.o. UltraStor 14F/34F support CONFIG_SCSI_U14_34F This is support for the UltraStor 14F and 34F SCSI-2 host adapters. - The source at drivers/scsi/u14-34f.c contains some information about - this hardware. If the driver doesn't work out of the box, you may have - to change some settings in drivers/scsi/u14-34f.c. - Read the SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that there is also another - driver for the same hardware: "UltraStor SCSI support", below. - You should enable both only if you want 24F support as well. This - driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + The source at drivers/scsi/u14-34f.c contains some information about + this hardware. If the driver doesn't work out of the box, you may + have to change some settings in drivers/scsi/u14-34f.c. Read the + SCSI-HOWTO, available via ftp (user: anonymous) at + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that there is also + another driver for the same hardware: "UltraStor SCSI support", + below. You should say Y to both only if you want 24F support as + well. This driver is also available as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want). The module will be called u14-34f.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. + +enable linked commands +CONFIG_SCSI_U14_34F_LINKED_COMMANDS + This is a feature of SCSI-2 which improves performance: the host + adaptor can send a whole list of commands to a device in one + batch. Some SCSI devices might not implement this properly, so the + save answer is N. + +maximum number of queued commands +CONFIG_SCSI_U14_34F_MAX_TAGS + This specifies how many SCSI commands can be maximally queued for a + given SCSI device. Go with the default unless you know what you're + doing. Minimum is 2 and maximum is 8. Future Domain 16xx SCSI support CONFIG_SCSI_FUTURE_DOMAIN This is support for Future Domain's 16-bit SCSI host adaptors - (TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and other - adaptors based on the Future Domain chipsets (Quantum ISA-200S, - ISA-250MG; Adaptec AHA-2920; and at least one IBM board). It is - explained in section 3.7 of the SCSI-HOWTO, available via ftp (user: - anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is - also available as a module ( = code which can be inserted in and - removed from the running kernel whenever you want). If you want to - compile it as a module, say M here and read Documentation/modules.txt. + (TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and + other adaptors based on the Future Domain chipsets (Quantum + ISA-200S, ISA-250MG; Adaptec AHA-2920; and at least one IBM board). + It is explained in section 3.7 of the SCSI-HOWTO, available via ftp + (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module will be called fdomain.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Generic NCR5380/53c400 SCSI support CONFIG_SCSI_GENERIC_NCR5380 @@ -1556,8 +1658,9 @@ the box, you may have to change some settings in drivers/scsi/g_NCR5380.h. This driver is also available as a module ( = code which can be inserted in and removed from the running - kernel whenever you want). If you want to compile it as a module, - say M here and read Documentation/modules.txt. + kernel whenever you want). The module will be called g_NCR5380.o. If + you want to compile it as a module, say M here and read + Documentation/modules.txt. Enable NCR53c400 extensions CONFIG_SCSI_GENERIC_NCR53C400 @@ -1566,8 +1669,7 @@ the Trantor T130B in its default configuration; you might have to pass a command line option to the kernel at boot time if it doesn't detect your card. See the file drivers/scsi/README.g_NCR5380 for - details. If you want to compile it as a module, say M here and read - Documentation/modules.txt. + details. NCR5380/53c400 mapping method (use Port for T130B) CONFIG_SCSI_G_NCR5380_PORT @@ -1584,8 +1686,9 @@ box, you may have to change some settings in drivers/scsi/53c7,8xx.h. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. + whenever you want). The module will be called 53c7,8xx.o. If you + want to compile it as a module, say M here and read + Documentation/modules.txt. always negotiate synchronous transfers CONFIG_SCSI_NCR53C7xx_sync @@ -1602,7 +1705,7 @@ allow DISCONNECT CONFIG_SCSI_NCR53C7xx_DISCONNECT This enables the disconnect/reconnect feature of the NCR SCSI - controller. When this is enabled, a slow SCSI device will not lock + controller. When you say Y here, a slow SCSI device will not lock the SCSI bus while processing a request, allowing simultaneous use of e.g. a SCSI hard disk and SCSI tape or CD-ROM drive, and providing much better performance when using slow and fast SCSI @@ -1685,17 +1788,21 @@ IBMMCA SCSI support CONFIG_SCSI_IBMMCA If your computer sports an MCA bus system architecture (IBM PS/2) - with an SCSI harddrive, say Y here. + with an SCSI harddrive, say Y here. This driver is also available as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + ibmmca.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. Always IN2000 SCSI support CONFIG_SCSI_IN2000 - This is support for an ISA bus SCSI host adaptor. You'll find - more information in drivers/scsi/in2000.readme. If it doesn't - work out of the box, you may have to change the jumpers for IRQ - or address selection. If you want to compile this as a module - ( = code which can be inserted in and removed from the running - kernel whenever you want), say M here and read - Documentation/modules.txt. + This is support for an ISA bus SCSI host adaptor. You'll find more + information in drivers/scsi/in2000.readme. If it doesn't work out of + the box, you may have to change the jumpers for IRQ or address + selection. If you want to compile this as a module ( = code which + can be inserted in and removed from the running kernel whenever you + want), say M here and read Documentation/modules.txt. The module + will be called in2000.o. PAS16 SCSI support CONFIG_SCSI_PAS16 @@ -1703,7 +1810,12 @@ 3.10 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/pas16.h. - + This driver is also available as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + pas16.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. + Qlogic FAS SCSI support CONFIG_SCSI_QLOGIC_FAS This driver works only with the ISA, VLB, and PCMCIA versions of the @@ -1715,8 +1827,9 @@ the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt. + running kernel whenever you want). The module will be called + qlogicfas.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt. Qlogic ISP SCSI support (EXPERIMENTAL) CONFIG_SCSI_QLOGIC_ISP @@ -1729,20 +1842,21 @@ available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt. + running kernel whenever you want). The module will be called + qlogicisp.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt. Seagate ST-02 and Future Domain TMC-8xx SCSI support CONFIG_SCSI_SEAGATE - These are 8-bit SCSI controllers; the ST-01 is also supported by this - driver. It is explained in section 3.9 of the SCSI-HOWTO, available - via ftp (user: anonymous) at + These are 8-bit SCSI controllers; the ST-01 is also supported by + this driver. It is explained in section 3.9 of the SCSI-HOWTO, + available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/seagate.h. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + want). The module will be called seagate.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. Trantor T128/T128F/T228 SCSI support CONFIG_SCSI_T128 @@ -1750,9 +1864,12 @@ 3.11 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in - drivers/scsi/t128.h. Note that Trantor was recently purchased by - Adaptec, and some former Trantor products are being sold under the - Adaptec name. + drivers/scsi/t128.h. Note that Trantor was purchased by Adaptec, and + some former Trantor products are being sold under the Adaptec + name. This driver is also available as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want). The module will be called t128.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. UltraStor SCSI support CONFIG_SCSI_ULTRASTOR @@ -1763,7 +1880,8 @@ box, you may have to change some settings in drivers/scsi/ultrastor.h. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + whenever you want), say M here and read + Documentation/modules.txt. The module will be called ultrastor.o. Note that there is also another driver for the same hardware: "UltraStor 14F/34F support", above. @@ -1772,25 +1890,46 @@ This driver supports the Western Digital 7000 SCSI host adaptor. Some information is in the source: drivers/scsi/wd7000.c. This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + in and removed from the running kernel whenever you want). The + module will be called wd7000.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) support CONFIG_SCSI_EATA This driver supports all the EATA/DMA-compliant SCSI host adapters - and does not need any BIOS32 service. - DPT ISA and all EISA i/o addresses are probed looking for the "EATA" - signature. If "PCI bios support" is enabled, the addresses of all - the PCI SCSI controllers reported by BIOS32 are probed as well. - Note that there is also another driver for the same hardware: - "EATA-DMA support". You should enable only one of them. - You want to read the start of drivers/scsi/eata.c and the - SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this - as a module ( = code which can be inserted in and removed from the - running kernel whenever you want), say M here and read - Documentation/modules.txt. + and does not need any BIOS32 service. DPT ISA and all EISA i/o + addresses are probed looking for the "EATA" signature. If you said Y + to "PCI bios support", the addresses of all the PCI SCSI controllers + reported by BIOS32 are probed as well. Note that there is also + another driver for the same hardware available: "EATA-DMA + support". You should say Y to only one of them. You want to read + the start of drivers/scsi/eata.c and the SCSI-HOWTO, available via + ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If + you want to compile this as a module ( = code which can be inserted + in and removed from the running kernel whenever you want), say M + here and read Documentation/modules.txt. The module will be called + eata.o. + +enable tagged command queuing +CONFIG_SCSI_EATA_TAGGED_QUEUE + This is a feature of SCSI-2 which improves performance: the host + adaptor can send several SCSI commands to a device's queue even if + previous commands haven't finished yet. Some SCSI devices don't + implement this properly, so the save answer is N. + +enable linked commands +CONFIG_SCSI_EATA_LINKED_COMMANDS + This is a feature of SCSI-2 which improves performance: the host + adaptor can send a whole list of commands to a device in one + batch. Some SCSI devices might not implement this properly, so the + save answer is N. + +maximum number of queued commands +CONFIG_SCSI_EATA_MAX_TAGS + This specifies how many SCSI commands can be maximally queued for a + given SCSI device. Go with the default unless you know what you're + doing. Minimum is 2 and maximum is 16. This number will only have an + effect if you said Y to "enable tagged command queuing", above. NCR53c406a SCSI support CONFIG_SCSI_NCR53C406A @@ -1800,7 +1939,8 @@ anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. + and read Documentation/modules.txt. The module will be called + NCR53c406.o. AM53/79C974 PCI SCSI support CONFIG_SCSI_AM53C974 @@ -1810,7 +1950,8 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO, is for you. If you want to compile this driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. + and read Documentation/modules.txt. The module will be called + AM53C974.o. IOMEGA Parallel Port ZIP drive SCSI support CONFIG_SCSI_PPA @@ -1825,9 +1966,10 @@ drive, a parallel printer or PLIP on the same parallel port, you should compile the drivers as modules and only insert them as needed. To compile this driver as a module, say M here and read - Documentation/modules.txt. Note that you can say N here if you have - the SCSI version of the ZIP drive: it will be supported - automatically if you enabled the generic "SCSI disk support", above. + Documentation/modules.txt. The module will be called ppa.o. Note + that you can say N here if you have the SCSI version of the ZIP + drive: it will be supported automatically if you said Y to the + generic "SCSI disk support", above. Network device support? CONFIG_NETDEVICES @@ -1873,16 +2015,17 @@ this device is consigned into oblivion) with a configurable IP address. It is most commonly used in order to make your currently inactive SLIP address seem like a real address for local - programs. If you use SLIP or PPP, you might want to enable it. Read + programs. If you use SLIP or PPP, you might want to say Y here. Read about it in the Network Administrator's Guide, available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/LDP. Since this thing comes often handy, the default is Y. It won't enlarge your kernel either. What a deal. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you want to use more than one dummy - device at a time, you need to compile it as a module. Instead of - 'dummy', it will they will then be called 'dummy0', 'dummy1' etc. + Documentation/modules.txt. The module will be called dummy.o. If you + want to use more than one dummy device at a time, you need to + compile it as a module. Instead of 'dummy', it will they will then + be called 'dummy0', 'dummy1' etc. SLIP (serial line) support CONFIG_SLIP @@ -1908,7 +2051,8 @@ want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. + Documentation/networking/net-modules.txt. The module will be called + slip.o. CSLIP compressed headers CONFIG_SLIP_COMPRESSED @@ -1944,11 +2088,23 @@ CONFIG_NET_RADIO Radio based interfaces for Linux. This includes amateur radio (AX.25), support for wireless ethernet and other systems. Note that - the answer to this question won't directly affect the kernel: - saying N will just cause this configure script to skip all the - questions about radio interfaces. Some user-level drivers for scarab - devices which don't require special kernel support are available via - ftp (user: anonymous) from shadow.cabi.net. If unsure, say N. + the answer to this question won't directly affect the kernel: saying + N will just cause this configure script to skip all the questions + about radio interfaces. Some user-level drivers for scarab devices + which don't require special kernel support are available via ftp + (user: anonymous) from shadow.cabi.net. + If unsure, say N. + +AX.25 network interfaces +CONFIG_NET_HAM + Say Y here if you want support for a device that connects your Linux + box to your amateur radio (HAM). AX.25 is the protocol used for + digital traffic over amateur radio connections. You might want to + read the HAM-HOWTO and the AX25-HOWTO, both available via ftp (user: + anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the + answer to this question won't directly affect the kernel: saying N + will just cause this configure script to skip all the questions + about amateur radio interfaces. PPP (point-to-point) support CONFIG_PPP @@ -1961,17 +2117,19 @@ anonymous) from sunsite.unc.edu:/pub/Linux/system/Network/serial/). To use PPP, you need an additional program called pppd as described in Documentation/networking/ppp.txt and in the PPP-HOWTO, available - from sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that you don't need - this option if you just want to run term (term is a program which - gives you almost full Internet connectivity if you have a regular - dial up shell account on some Internet connected UNIX computer. Read - the Term-HOWTO). The PPP option enlarges your kernel by about - 16kB. This driver is also available as a module ( = code which can - be inserted in and removed from the running kernel whenever you - want). If you said Y to "Version information on all symbols" above, - then you cannot compile the PPP driver into the kernel; you can only - compile it as a module. If you want to compile it as a module, say M - here and read Documentation/modules.txt as well as + from sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you upgrade from an + older kernel, you might need to upgrade pppd as well. Note that you + don't need "PPP support" if you just want to run term (term is a + program which gives you almost full Internet connectivity if you + have a regular dial up shell account on some Internet connected UNIX + computer. Read the Term-HOWTO). The PPP option enlarges your kernel + by about 16kB. This driver is also available as a module ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you said Y to "Version information on all + symbols" above, then you cannot compile the PPP driver into the + kernel; you can then only compile it as a module. The module will be + called ppp.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. Note that, no matter what you do, the BSD compression code (used to compress the IP packets sent over the serial line; has to be supported at the other end as @@ -1996,7 +2154,7 @@ except that it makes the kernel a bit bigger. You can also compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called strip.o. WIC (Radio IP bridge) CONFIG_WIC @@ -2004,59 +2162,77 @@ to say N. If you want to compile this driver as a module though ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. + The module will be called wic.o. + +CONFIG_LAPBETHER +LAPB over Ethernet driver + This is a driver for a pseudo device (usually called /dev/lapb0) + which allows you to open an LAPB point-to-point connection to some + other computer on your ethernet network. In order to do this, you + need to say Y or M to the driver for your ethernet card as well as + to "LAPB Data Link Driver". If you want to compile this driver as a + module ( = code which can be inserted in and removed from the + running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called lapbether.o. + If unsure, say N. Z8530 SCC driver for AX.25 CONFIG_SCC These cards are used to connect your Linux box to an amateur radio in order to communicate with other computers. If you want to use - this, read Documentation/networking/z8530drv.txt and the AX.25-HOWTO, - available via ftp (user: anonymous) at + this, read Documentation/networking/z8530drv.txt and the + AX.25-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to say Y to "Amateur Radio AX.25 Level 2" support. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called scc.o. BAYCOM ser12 and par96 driver for AX.25 CONFIG_BAYCOM This is an experimental driver for Baycom style simple amateur radio modems that connect to either a serial interface or a parallel interface. The driver supports the ser12 and par96 designs. To - configure the driver, use the sethdlc utility available - in the standard ax25 utilities package. For information on the modems, - see http://www.baycom.de and drivers/net/README.baycom. - If you want to compile this as a module ( = code which can be - inserted in and removed from the running kernel whenever you want), - say M here and read Documentation/modules.txt. This is recommended. + configure the driver, use the sethdlc utility available in the + standard ax25 utilities package. For information on the modems, see + http://www.baycom.de and drivers/net/README.baycom. If you want to + compile this driver as a module ( = code which can be inserted in + and removed from the running kernel whenever you want), say M here + and read Documentation/modules.txt. This is recommended. The module + will be called baycom.o. Soundcard modem driver for AX.25 CONFIG_SOUNDMODEM - This experimental driver allows a standard SoundBlaster or + This experimental driver allows a standard SoundBlaster or WindowsSoundSystem compatible soundcard to be used as a packet radio - modem. To configure the driver, use the sethdlc, smdiag and smmixer - utilities available in the standard ax25 utilities package. For - informations on how to key the transmitter, see + modem, to send digital traffic over amateur radio. To configure the + driver, use the sethdlc, smdiag and smmixer utilities available in + the standard ax25 utilities package. For information on how to key + the transmitter, see http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html and - drivers/net/README.soundmodem. If you want to compile this as a - module ( = code which can be inserted in and removed from the + drivers/net/README.soundmodem. If you want to compile this driver as + a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. This is recommended. + Documentation/modules.txt. This is recommended. The module will be + called soundmodem.o. Soundcard modem support for SoundBlaster and compatible cards CONFIG_SOUNDMODEM_SBC - This option enables the soundmodem driver to use SoundBlaster - and compatible cards. Dual mode cards (i.e. WSS cards with a - SoundBlaster emulation) should be used in WSS mode because - this results in usually better performance. + This option enables the soundmodem driver to use SoundBlaster and + compatible cards. If you have a dual mode card (i.e. a WSS cards + with a SoundBlaster emulation) you should say N here and Y to + "Soundcard modem support for WSS and Crystal cards", below, because + this usually results in better performance. Soundcard modem support for WSS and Crystal cards CONFIG_SOUNDMODEM_WSS This option enables the soundmodem driver to use WindowsSoundSystem compatible cards. These cards feature a codec chip from either - Analog Devices (such as AD1848, AD1845, AD1812) or Crystal Semiconductors - (such as CS4248, CS423x). This option also supports the WSS full duplex - operation which currently works with Crystal CS423x chips. If you don't - need full duplex operation, do not enable it to save performance. + Analog Devices (such as AD1848, AD1845, AD1812) or Crystal + Semiconductors (such as CS4248, CS423x). This option also supports + the WSS full duplex operation which currently works with Crystal + CS423x chips. If you don't need full duplex operation, do not enable + it to save performance. Soundcard modem support for 1200 baud AFSK modulation CONFIG_SOUNDMODEM_AFSK1200 @@ -2064,30 +2240,35 @@ compatible to popular modems using TCM3105 or AM7911. The demodulator requires about 12% of the CPU power of a Pentium 75 CPU per channel. -Soundcard modem support for 1200 baud AFSK modulation +Soundmodem 1200 baud AFSK using floating point CONFIG_SOUNDMODEM_AFSK1200_FP This option enables floating point calculations to be used for the AFSK1200 baud modem. The Intel Pentium is a perverted chip because - integer multiplications are, altough easier to implement in silicon, - an order of a magnitude slower than floating point calculations. + integer multiplications are, although easier to implement in silicon, + an order of magnitude slower than floating point calculations. Enabling this option uses a highly optimized assembler routine for - correlations, modelled after the one published by Phil Karn, KA9Q. - This reduces the computing power needed on Intel Pentium chips to about - 50%. On the other hand, Pentium clones with faster integer multiply and - slower floating point multiply will probably take longer with this - option turned on. As a rule of thumb, enable it for Intel Pentium and - Pentium Pro processors, and disable it for anything else. + correlations, modeled after the one published by Phil Karn, KA9Q. + This reduces the computing power needed on Intel Pentium chips to + about 50%. On the other hand, Pentium clones with faster integer + multiply and slower floating point multiply will probably take + longer with this option turned on. As a rule of thumb, enable it for + Intel Pentium and Pentium Pro processors, and disable it for + anything else. I (sailer@ife.ee.ethz.ch) am very interested in figures. If you are - willing to give me a feedback, please compile the driver once with this - option enabled and once with it disabled, and send me the cycle counter - numbers obtained with both compilations, and your exact chip. The cycle - counter numbers can be optained by a recent sethdlc utility. + willing to give me a feedback, please compile the driver once with + this option enabled and once with it disabled, and send me the cycle + counter numbers obtained with both compilations, and your exact + chip. The cycle counter numbers can be obtained with a recent + sethdlc utility. Soundcard modem support for 9600 baud FSK G3RUH modulation CONFIG_SOUNDMODEM_FSK9600 This option enables the soundmodem driver 9600 baud FSK modem, compatible to the G3RUH standard. The demodulator requires about 4% - of the CPU power of a Pentium 75 CPU per channel. + of the CPU power of a Pentium 75 CPU per channel. You can say Y to + both 1200 baud AFSK and 9600 baud FSK if you want (but obviously you + can only use one protocol at a time, depending on what the other end + can understand). Serial port KISS driver for AX.25 CONFIG_MKISS @@ -2098,7 +2279,8 @@ case, you also have to say Y to "Amateur Radio AX.25 Level 2" support. If you want to compile this driver as a module ( = code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + whenever you want), say M here and read + Documentation/modules.txt. The module will be called mkiss.o. PLIP (parallel port) support CONFIG_PLIP @@ -2122,25 +2304,25 @@ your kernel by about 8kB. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. If you want to use - both a parallel printer and PLIP, there are two cases: 1) If the - printer and the PLIP cable are to use the same parallel port - (presumably because you have just one), it is best to compile both - drivers as modules and load and unload them as needed. 2) To use - different parallel ports for the printer and the PLIP cable, you can - say Y to the printer driver, specify the base address of the - parallel port(s) to use for the printer(s) with the "lp" kernel - command line option. (See the documentation of your boot loader - (lilo or loadlin) about how to pass options to the kernel at boot - time. The lilo procedure is also explained in the SCSI-HOWTO, - available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO.) The standard base addresses - as well as the syntax of the "lp" command line option can be found - in drivers/char/lp.c. You can then say Y to this PLIP driver or, - preferably, M in which case Documentation/networking/net-modules.txt - tells you how to specify the port and IRQ to be used by PLIP at - module load time. - It's safe to say N here. + well as Documentation/networking/net-modules.txt. The module will be + called plip.o. If you want to use both a parallel printer and PLIP, + there are two cases: 1) If the printer and the PLIP cable are to use + the same parallel port (presumably because you have just one), it is + best to compile both drivers as modules and load and unload them as + needed. 2) In order to use different parallel ports for the printer + and the PLIP cable, you can say Y to the printer driver and specify + the base address of the parallel port(s) to use for the printer(s) + with the "lp" kernel command line option. (Try "man bootparam" or + see the documentation of your boot loader (lilo or loadlin) about + how to pass options to the kernel at boot time. The lilo procedure + is also explained in the SCSI-HOWTO, available via ftp (user: + anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO.) The standard + base addresses as well as the syntax of the "lp" command line option + can be found in drivers/char/lp.c. You can then say Y to this PLIP + driver or, preferably, M in which case + Documentation/networking/net-modules.txt tells you how to specify + the port and IRQ to be used by PLIP at module load time. It's safe + to say N here. EQL (serial line load balancing) support CONFIG_EQUALIZER @@ -2153,8 +2335,9 @@ EQL Linux driver or with a Livingston Portmaster 2e. Say Y if you want this and read drivers/net/README.eql. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + from the running kernel whenever you want). The module will be + called eql.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Frame Relay (DLCI) support CONFIG_DLCI @@ -2172,8 +2355,9 @@ the net-tools package as explained in Documentation/networking/framerelay.txt. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + from the running kernel whenever you want). The module will be + called dlci.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Max open DLCI CONFIG_DLCI_COUNT @@ -2191,12 +2375,13 @@ Sangoma S502A FRAD support CONFIG_SDLA Say Y here if you need a driver for the Sangoma S502A, S502E, and - S508 Frame Relay Access Devices. These are multi-protocol - cards, but only frame relay is supported by the driver at this - time. Please read Documentation/framerelay.txt. This driver is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + S508 Frame Relay Access Devices. These are multi-protocol cards, but + only frame relay is supported by the driver at this time. Please + read Documentation/framerelay.txt. This driver is also available as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + sdla.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. Sun LANCE Ethernet support CONFIG_SUN_LANCE @@ -2238,8 +2423,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + wd.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2251,15 +2437,16 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. If you plan to use - more than one network card under linux, read the + from the running kernel whenever you want). The module will be + called smc-ultra.o. If you want to compile it as a module, say M + here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. If you plan to use more + than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from - sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. - Important: There have been many reports that, with some motherboards - mixing an SMC Ultra and an Adaptec AHA1542 SCSI card causes corruption - problems with many operating systems. + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. Important: There have + been many reports that, with some motherboards mixing an SMC Ultra + and an Adaptec AHA1542 SCSI card causes corruption problems with + many operating systems. SMC 9194 Support CONFIG_SMC9194 @@ -2270,10 +2457,11 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. If you plan to use - more than one network card under linux, read the + from the running kernel whenever you want). The module will be + called smc9194.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. If you plan to use more + than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. @@ -2281,9 +2469,10 @@ CONFIG_LANCE If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you plan to use more than - one network card under linux, read the Multiple-Ethernet-mini-HOWTO, - available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Some LinkSys cards are of + this type. If you plan to use more than one network card under + linux, read the Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. 3COM cards CONFIG_NET_VENDOR_3COM @@ -2302,13 +2491,16 @@ If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also, consider buying a new - card, since the 3c501 is slow and obsolete. This driver is also + card, since the 3c501 is slow, broken, and obsolete: you will have + problems. Some people suggest to ping ("man ping") a nearby machine + every minute ("man cron") when using this card. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt as well - as Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + from the running kernel whenever you want). The module will be + called 3c501.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. If you plan to use more + than one network card under linux, read the + Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini - and don't use 3c501s. 3c503 support @@ -2317,8 +2509,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + 3c503.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2333,9 +2526,9 @@ compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + 3c505.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. 3c507 support @@ -2344,20 +2537,23 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + 3c507.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. -3c523 support CONFIG_ELMC +3c523 support +CONFIG_ELMC If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + 3c523.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2371,9 +2567,9 @@ If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + 3c509.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. If your card is not working you may need to use the DOS setup disk to disable Plug & Play mode, and to select the default media type. @@ -2384,13 +2580,13 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is in Documentation/networking/vortex.txt and in the comments at the - beginning of drivers/net/3c59x.c. If you want to compile this - as a module ( = code which can be inserted in and removed from the + beginning of drivers/net/3c59x.c. If you want to compile this as a + module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + 3c59x.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini Other ISA cards @@ -2411,13 +2607,14 @@ ARCnet support CONFIG_ARCNET If you have a network card of this type, say Y and check out the - (arguably) beautiful poetry in Documentation/networking/arcnet.txt. + (arguably) beautiful poetry in Documentation/networking/arcnet.txt. You might also want to have a look at the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO (even though ARCnet is not really ethernet). This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile it - as a module, say M here and read Documentation/modules.txt as well as + from the running kernel whenever you want). The module will be + called arcnet.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2425,14 +2622,14 @@ Enable arc0e (ARCnet "ether-encap" packet format) CONFIG_ARCNET_ETH - This allows you to use "ethernet encapsulation" with your ARCnet card - via the virtual arc0e device. You only need arc0e if you want to - talk to nonstandard ARCnet software, specifically, DOS/Windows-style - "NDIS" drivers. You do not need to enable this option to communicate - with industry-standard RFC1201 implementations, like the arcether.com - packet driver or most DOS/Windows ODI drivers. RFC1201 is included - automatically as the arc0 device. Please read the ARCnet - documentation in Documentation/networking/arcnet.txt for more + This allows you to use "ethernet encapsulation" with your ARCnet + card via the virtual arc0e device. You only need arc0e if you want + to talk to nonstandard ARCnet software, specifically, + DOS/Windows-style "NDIS" drivers. You do not need to say Y here to + communicate with industry-standard RFC1201 implementations, like the + arcether.com packet driver or most DOS/Windows ODI drivers. RFC1201 + is included automatically as the arc0 device. Please read the + ARCnet documentation in Documentation/networking/arcnet.txt for more information about using arc0e and arc0s. Enable arc0s (ARCnet RFC1051 packet format) @@ -2440,8 +2637,8 @@ This allows you to use RFC1051 with your ARCnet card via the virtual arc0s device. You only need arc0s if you want to talk to ARCnet software complying with the "old" standard, specifically, the DOS - arcnet.com packet driver, Amigas running AmiTCP, and some variants of - NetBSD. You do not need to enable this option to communicate with + arcnet.com packet driver, Amigas running AmiTCP, and some variants + of NetBSD. You do not need to say Y here to communicate with industry-standard RFC1201 implementations, like the arcether.com packet driver or most DOS/Windows ODI drivers. RFC1201 is included automatically as the arc0 device. Please read the ARCnet @@ -2454,8 +2651,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + e2100.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2469,9 +2667,9 @@ drivers/net/depca.c. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. If you plan to use - more than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + well as Documentation/networking/net-modules.txt. The module will be + called depca.o. If you plan to use more than one network card under + linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. EtherWorks 3 support @@ -2483,9 +2681,9 @@ If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + ewrk3.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. SEEQ8005 support @@ -2505,19 +2703,20 @@ as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + at1700.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. FMV-181/182/183/184 support CONFIG_FMV18X If you have a Fujitsu FMV-181/182/183/184 network (ethernet) card, - say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) - in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile it - as a module, say M here and read Documentation/modules.txt as well as + say Y and read the Ethernet-HOWTO, available via ftp (user: + anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module will + be called fmv18x.o. If you want to compile it as a module, say M + here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2531,8 +2730,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + eepro.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2549,16 +2749,21 @@ module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + eexpress.o. If you plan to use more than one network card under + linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. NI5210 support CONFIG_NI52 If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you plan to use more than + sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available + as a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + ni52.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. @@ -2568,15 +2773,15 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile it as a module, say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + ni65.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. Ottawa PI and PI/2 support CONFIG_PI This is a driver for the Ottawa Amateur Radio Club PI and PI2 cards, - which are commonly used to send internet traffic over amateur radio. + which are commonly used to send internet traffic over amateur radio. More information about these cards is on the WWW at http://hydra.carleton.ca/info/pi2.html (To browse the WWW, you need to have access to a machine on the Internet that has one of the @@ -2587,7 +2792,7 @@ the protocol used for digital traffic over radio links. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. + read Documentation/modules.txt. The module will be called pi2.o. Gracilis PackeTwin support CONFIG_PT @@ -2600,7 +2805,8 @@ which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. + Documentation/networking/net-modules.txt. The module will be called + pt.o. WaveLAN support CONFIG_WAVELAN @@ -2611,8 +2817,9 @@ more specific information is contained in drivers/net/README.wavelan. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + wavelan.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2624,8 +2831,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + hp-plus.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2637,8 +2845,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + hp.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2652,19 +2861,21 @@ as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + hp100.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. NE2000/NE1000 support CONFIG_NE2000 If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available - as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Many ethernet cards without a + specific driver are compatible with NE2000. This driver is also + available as a module ( = code which can be inserted in and removed + from the running kernel whenever you want). The module will be + called ne.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2698,8 +2909,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + ac3200.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2711,8 +2923,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + es3210.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2726,22 +2939,23 @@ as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + apricot.o. If you plan to use more than one network card under + linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. DE425, DE434, DE435 support CONFIG_DE4X5 This is support for the DIGITAL series of PCI/EISA ethernet cards. These include the DE425, DE434, DE435, DE450 and DE500 - models. If you have a network card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in + models. If you have a network card of this type, say Y and read the + Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is contained in drivers/net/README.de4x5. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + de4x5.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2751,29 +2965,32 @@ CONFIG_DEC_ELCP This driver is developed for the SMC EtherPower series ethernet cards and also works with cards based on the DECchip - 21040/21041/21140 (Tulip series) chips. (If your card is NOT SMC - EtherPower 10/100 PCI (smc9332dst), you can also try the driver from - "DE425, DE434, DE435 support", above.) However, most people with a - network card of this type will say Y here. Do read the - Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is - contained in Documentation/networking/tulip.txt. This driver is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. + 21040/21041/21140 (Tulip series) chips. Some LinkSys PCI cards are + of this type. (If your card is NOT SMC EtherPower 10/100 PCI + (smc9332dst), you can also try the driver from "DE425, DE434, DE435 + support", above.) However, most people with a network card of this + type will say Y here. Do read the Ethernet-HOWTO, available via ftp + (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More + specific information is contained in + Documentation/networking/tulip.txt. This driver is also available as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + tulip.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. Digi Intl. RightSwitch support CONFIG_DGRS This is support for the Digi International RightSwitch series of PCI/EISA ethernet switch cards. These include the SE-4 and the SE-6 - models. If you have a network card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in + models. If you have a network card of this type, say Y and read the + Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is contained in drivers/net/README.dgrs. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + dgrs.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2785,8 +3002,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + eth16i.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2840,11 +3058,12 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO if you want to use this. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M - here and read Documentation/modules.txt. If you intend to use this - pocket adaptor as well as a parallel printer, you should compile - both drivers as modules. If you plan to use more than one network - card under linux, read the Multiple-Ethernet-mini-HOWTO, available - from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + here and read Documentation/modules.txt. The module will be called + de600.o. If you intend to use this pocket adaptor as well as a + parallel printer, you should compile both drivers as modules. If you + plan to use more than one network card under linux, read the + Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. D-Link DE620 pocket adaptor support CONFIG_DE620 @@ -2854,11 +3073,12 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO if you want to use this. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M - here and read Documentation/modules.txt. If you intend to use this - pocket adaptor as well as a parallel printer, you should compile - both drivers as modules. If you plan to use more than one network - card under linux, read the Multiple-Ethernet-mini-HOWTO, available - from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + here and read Documentation/modules.txt. The module will be called + de620.o. If you intend to use this pocket adaptor as well as a + parallel printer, you should compile both drivers as modules. If you + plan to use more than one network card under linux, read the + Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. Token Ring driver support CONFIG_TR @@ -2874,14 +3094,21 @@ almost definitely fail if more than one active Token Ring card is present. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + want). The module will be called ibmtr.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. Traffic Shaper (EXPERIMENTAL) CONFIG_SHAPER - The traffic shaper is a virtual network device that allows you to limit - the rate of data flow over another device. See - Documentation/networking/shaper.txt for more information. + The traffic shaper is a virtual network device that allows you to + limit the rate of outgoing data flow over another network + device. See Documentation/networking/shaper.txt for more + information. To set up and configure shaper devices, you need the + shapecfg program, available via ftp (user: anonymous) from + shadow.cabi.net/pub/Linux in the shaper package. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module will + be called shaper.o. If you want to compile it as a module, say M + here and read Documentation/modules.txt. If unsure, say N. FDDI driver support CONFIG_FDDI @@ -2927,23 +3154,37 @@ will not be auto detected by the kernel at boot time; you have to provide the interface address as an option to the kernel at boot time as described in Documentation/cdrom/cdu31a or fill in your - parameters into linux/drivers/cdrom/cdu31a.c. See the documentation - of your boot loader (lilo or loadlin) about how to pass options to - the kernel. The lilo procedure is also explained in the SCSI-HOWTO. + parameters into linux/drivers/cdrom/cdu31a.c. Try "man bootparam" or + see the documentation of your boot loader (lilo or loadlin) about + how to pass options to the kernel. The lilo procedure is also + explained in the SCSI-HOWTO. If you say Y here, you should also say + Y to "ISO9660 cdrom filesystem support" below, because that's the + filesystem used on CDROMs. This driver is also available as a module + ( = code which can be inserted in and removed from the running + kernel whenever you want). The module will be called cdu31a.o. If + you want to compile it as a module, say M here and read + Documentation/modules.txt. Standard Mitsumi [no XA/Multisession] CDROM support CONFIG_MCD This is the older of the two drivers for the older Mitsumi models - LU-005, FX-001 and FX-001D. This is not the right driver for the - FX-001DE and the triple or quad speed models (all these are IDE/ATAPI - models). - With the old LU-005 model, the whole drive chassis slides out for - cd insertion. The FX-xxx models use a motorized tray type mechanism. - Note that this driver does not support XA or MultiSession CDs (PhotoCDs). - There is a new driver (next question) which can do this. If you want - that one, say N here. - If the driver doesn't work out of the box, you might want to have - a look at linux/include/linux/mcd.h. + LU-005, FX-001 and FX-001D. This is not the right driver for the + FX-001DE and the triple or quad speed models (all these are + IDE/ATAPI models). + With the old LU-005 model, the whole drive chassis slides out for cd + insertion. The FX-xxx models use a motorized tray type mechanism. + Note that this driver does not support XA or MultiSession CDs + (PhotoCDs). There is a new driver (next question) which can do + this. If you want that one, say N here. + If the driver doesn't work out of the box, you might want to have a + look at linux/include/linux/mcd.h. If you say Y here, you should + also say Y to "ISO9660 cdrom filesystem support" below, because + that's the filesystem used on CDROMs. Please also read the file + Documentation/cdrom/mcd. This driver is also available as a module ( + = code which can be inserted in and removed from the running kernel + whenever you want). The module will be called mcd.o. If you want to + compile it as a module, say M here and read + Documentation/modules.txt. Mitsumi [XA/MultiSession] support CONFIG_MCDX @@ -2952,7 +3193,14 @@ FX-001 or FX-001D CDROM drive. In addition, this driver uses much less kernel memory than the old one, if that is a concern. This driver is able to support more than one drive, but each drive needs a separate - interface card. Check out Documentation/cdrom/mcdx. + interface card. + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. Please also read the file Documentation/cdrom/mcdx. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module will be called mcdx.o. If you want to compile it as a module, + say M here and read Documentation/modules.txt. Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support CONFIG_SBPCD @@ -2978,14 +3226,22 @@ card can support up to four CDROM drives; if you say Y here, you will be asked how many controllers you have. If compiled as a module, only one interface card (but with up to four drives) is - usable. + usable. + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. Please also read the file Documentation/cdrom/sbpcd. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module will be called sbpcd.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Matsushita/Panasonic, ... second CDROM controller support CONFIG_SBPCD2 Say Y here only if you have two CDROM controller boards of this type (usually only if you have more than four drives). You should enter the parameters for the second, third and fourth interface card into - linux/include/linux/sbpcd.h before compiling the new kernel. + linux/include/linux/sbpcd.h before compiling the new kernel. Read + the file Documentation/cdrom/sbpcd. Aztech/Orchid/Okano/Wearnes/TXC/CyDROM CDROM support CONFIG_AZTCD @@ -2993,32 +3249,60 @@ CD-3110, Okano or Wearnes CDD110, Conrad TXC, or CyCDROM CR520 or CR540 CDROM drive. This driver - just like all these CDROM drivers - is NOT for CDROM drives with IDE/ATAPI interface, such as Aztech - CDA269-031SE. + CDA269-031SE. If you say Y here, you should also say Y to "ISO9660 + cdrom filesystem support" below, because that's the filesystem used + on CDROMs. Please also read the file Documentation/cdrom/aztcd. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module will be called aztcd.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Sony CDU535 CDROM support CONFIG_CDU535 - This is the driver for the older Sony CDU-535 and CDU-531 CDROM drives. + This is the driver for the older Sony CDU-535 and CDU-531 CDROM + drives. If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. Please also read the file Documentation/cdrom/sonycd535. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module will be called sonycd535.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. Goldstar R420 CDROM support CONFIG_GSCD - If this is your CDROM drive, say Y here. - As described in linux/Documentation/cdrom/gscd, you might have to - change a setting in the file include/linux/gscd.h before compiling - the kernel. + If this is your CDROM drive, say Y here. As described in + linux/Documentation/cdrom/gscd, you might have to change a setting + in the file include/linux/gscd.h before compiling the kernel. Please + read the file Documentation/cdrom/gscd. If you say Y here, you + should also say Y to "ISO9660 cdrom filesystem support" below, + because that's the filesystem used on CDROMs. This driver is also + available as a module ( = code which can be inserted in and removed + from the running kernel whenever you want). The module will be + called gscd.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt. MicroSolutions backpack CDROM support CONFIG_BPCD MicroSolutions backpack CDROM is an external drive that connects to - the parallel port. The bpcd driver supports model 164550 (and perhaps - other models). Say Y if you have one of these, and read the - file linux/Documentation/cdrom/bpcd. If you have several different - devices that will share a common parallel port, say M and build them - as modules. + the parallel port. This driver supports model 164550 (and perhaps + other models). Say Y if you have one of these, and read the file + Documentation/cdrom/bpcd. If you say Y here, you should also say Y + to "ISO9660 cdrom filesystem support" below, because that's the + filesystem used on CDROMs. If you have several different devices + that will share a common parallel port, say M and build them as + modules. This module will be called bpcd.o. Philips/LMS CM206 CDROM support CONFIG_CM206 If you have a Philips/LMS CDROM drive cm206 in combination with a - cm260 host adapter card, say Y here. + cm260 host adapter card, say Y here. Please also read the file + Documentation/cdrom/cm206. If you say Y here, you should also say Y + to "ISO9660 cdrom filesystem support" below, because that's the + filesystem used on CDROMs. This driver is also available as a module + ( = code which can be inserted in and removed from the running + kernel whenever you want). The module will be called cm206.o. If you + want to compile it as a module, say M here and read + Documentation/modules.txt. Optics Storage DOLPHIN 8000AT CDROM support CONFIG_OPTCD @@ -3026,40 +3310,44 @@ compatible interface. It also works with the Lasermate CR328A. If you have one of those, say Y. This driver does not work for the Optics Storage 8001 drive; use the IDE-ATAPI CDROM driver for that - one. + one. Please read the file Documentation/cdrom/optcd. + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. This driver is also available as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want). The module will be called optcd.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. Sanyo CDR-H94A CDROM support CONFIG_SJCD - If this is your CDROM drive, say Y here. Command line option - (or 'append=' option in /etc/lilo.conf) is: - sjcd= - Here 'port' is the base i/o address used by the drive. It defaults - to port=0x340. + If this is your CDROM drive, say Y here and read the file + Documentation/cdrom/sjcd. You should then also say Y to "ISO9660 + cdrom filesystem support" below, because that's the filesystem used + on CDROMs. This driver is also available as a module ( = code which + can be inserted in and removed from the running kernel whenever you + want). The module will be called sjcd.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. Soft configurable cdrom interface card support CONFIG_CDI_INIT If you want to include boot-time initialization of any cdrom - interface card that is software configurable, say Y here. - Currently only the ISP16/MAD16/Mozart cards are supported. + interface card that is software configurable, say Y here. Currently + only the ISP16/MAD16/Mozart soundcards with built-in cdrom + interfaces are supported. Note that the answer to this question + doesn't directly affect the kernel: saying N will just cause this + configure script to skip all the questions about these CDROM drives. ISP16/MAD16/Mozart soft configurable cdrom interface support CONFIG_ISP16_CDI - If you want any of these cdrom interface cards based on the - OPTi 82C928 or 82C929 chips get detected and possibly configured - at boot time, please say Y. Boot time command line options (or - 'append=' options in /etc/lilo.conf) are: - isp16=,,, - Here 'port','irq' and 'dma' are the base i/o address, irq number and - dma line assumed to be used by the attached cdrom - drive. 'drive_type' is the type of cdrom drive or its emulation - mode. Valid values for drive_type include: Sanyo, Panasonic (same as - Sanyo), Sony and Mitsumi. Default values are: port=0x340, irq=0, - dma=0, drive_type=Sanyo. - The command line - isp16=noisp16 - will skip detection and configuration after all. - N.B. options are case sensitive. - Read Documentation/cdrom/isp16 for details. + These are soundcards with with built-in cdrom interfaces using the + OPTi 82C928 or 82C929 chips. Say Y here to have them detected and + possibly configured at boot time. In addition, You'll have to say Y + to a driver for the particular cdrom drive you have attached to the + card. Read Documentation/cdrom/isp16 for details. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module will + be called isp16.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Quota support CONFIG_QUOTA @@ -3081,11 +3369,12 @@ leaner. You don't want to use it on your harddisk because of certain built-in restrictions. This option will enlarge your kernel by about 25 kB. Everyone should say Y or M so that they are able to read this - common floppy format. If you want to compile this as a module - ( = code which can be inserted in and removed from the - running kernel whenever you want), say M here and read - Documentation/modules.txt. Note that the filesystem of your root - partition cannot be compiled as a module. + common floppy format. If you want to compile this as a module ( = + code which can be inserted in and removed from the running kernel + whenever you want), say M here and read + Documentation/modules.txt. The module will be called minix.o. Note + that the filesystem of your root partition cannot be compiled as a + module. Second extended fs support CONFIG_EXT2_FS @@ -3102,27 +3391,33 @@ transition to a *real* Linux partition later. Another (rare) case which doesn't require ext2fs is a diskless Linux box which mounts all files over the network using NFS (in this case it's sufficient - to enable NFS filesystem support below; if you are planning to do - this, have a look at the netboot package in - /pub/Linux/system/Linux-boot/, available via ftp (user: anonymous) - from sunsite.unc.edu, extract with "tar xzvf filename"). There is a - short ext2fs-FAQ, available via ftp (user: anonymous) in + to say Y to "NFS filesystem support" below). There is a short + ext2fs-FAQ, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/faqs. This option will enlarge your - kernel by about 41 kB. Default is Y. + kernel by about 41 kB. If you want to compile this filesystem as a + module ( = code which can be inserted in and removed from the + running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called ext2.o. Be + aware however that the filesystem of your root partition cannot be + compiled as a module, and so this could be dangerous. Most everyone + wants to say Y here. fat fs support CONFIG_FAT_FS If you want to use one of the FAT-based filesystems (the MS-DOS, - VFAT (Windows'95) and UMSDOS filesystems), then you must include - FAT support. This is not a filesystem in itself, but it provides - the foundation for the other filesystems. This option will enlarge - your kernel about 24 kB. If unsure, say Y. If you want to compile - this as a module however ( = code which can be inserted in and - removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. Note that if you compile the FAT - support as a module, you cannot compile any of the FAT-based file- - systems into the kernel - they will have to be modules as well. - The filesystem of your root partition cannot be a module. + VFAT (Windows'95) and UMSDOS (used to run Linux on top of an + ordinary DOS partition) filesystems), then you must include FAT + support. This is not a filesystem in itself, but it provides the + foundation for the other filesystems. This option will enlarge your + kernel by about 24 kB. If unsure, say Y. If you want to compile this + as a module however ( = code which can be inserted in and removed + from the running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called fat.o. Note + that if you compile the FAT support as a module, you cannot compile + any of the FAT-based filesystems into the kernel - they will have to + be modules as well. The filesystem of your root partition cannot be + a module, so don't say M here if you intend to use UMSDOS as your + root filesystem. msdos fs support CONFIG_MSDOS_FS @@ -3148,8 +3443,8 @@ work if you said Y to "fat fs support" as well. If you want to compile this as a module however ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. Note that the filesystem of your - root partition cannot be a module. + and read Documentation/modules.txt. The module will be called + msdos.o. vfat fs support CONFIG_VFAT_FS @@ -3159,11 +3454,12 @@ partitions. It does not support Windows'95 compressed filesystems. You cannot use the VFAT filesystem for your root partition; use UMSDOS instead. This option enlarges your kernel by about 10 kB and - it only works if you enabled the "fat fs support" above. Please read + it only works if you said Y to the "fat fs support" above. Please read the file Documentation/filesystems/vfat.txt for details. If unsure, say N. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever - you want), say M here and read Documentation/modules.txt. + you want), say M here and read Documentation/modules.txt. The module + will be called vfat.o. umsdos: Unix like fs on top of std MSDOS fs CONFIG_UMSDOS_FS @@ -3177,14 +3473,14 @@ is to write files with long unix filenames to MSDOS floppies; it also allows unix style softlinks and owner/permissions of files on MSDOS floppies. You will need a program called umssync in order to - make use of umsdos. Read Documentation/filesystems/umsdos.txt. This + make use of umsdos; read Documentation/filesystems/umsdos.txt. This option enlarges your kernel by about 25 kB and it only works if you - enabled both "fat fs support" and "msdos fs support" above. If - unsure, say N. If you want to compile this as a module ( = code - which can be inserted in and removed from the running kernel - whenever you want), say M here and read - Documentation/modules.txt. Note that the filesystem of your root - partition cannot be a module. + said Y to both "fat fs support" and "msdos fs support" above. If you + want to compile this as a module ( = code which can be inserted in + and removed from the running kernel whenever you want), say M here + and read Documentation/modules.txt. The module will be called + umsdos.o. Note that the filesystem of your root partition cannot be + a module, so this could be dangerous. If unsure, say N. /proc filesystem support CONFIG_PROC_FS @@ -3199,21 +3495,22 @@ example, "cat /proc/interrupts" gives information about what the different IRQs are used for at the moment (there is a small number of Interrupt ReQuest lines in your computer that are used by the - periphery to gain the CPU's attention - often a source of trouble if - two devices are mistakenly configured to use the same IRQ). Several - programs depend on this, so everyone should say Y here. + attached devices to gain the CPU's attention - often a source of + trouble if two devices are mistakenly configured to use the same + IRQ). Several programs depend on this, so everyone should say Y + here. NFS filesystem support CONFIG_NFS_FS If you are connected to some other (usually local) Unix computer - (using SLIP, PLIP, PPP or ethernet) and want to mount files - residing on that computer (the NFS server) using the Network - File Sharing protocol, say Y. "Mounting files" means that the client - can access the files with usual UNIX commands as if they were - sitting on the client's harddisk. For this to work, the server must - run the programs nfsd and mountd (but does not need to have NFS - filesystem support enabled). NFS is explained in the Network - Administrator's Guide, available via ftp (user: anonymous) in + (using SLIP, PLIP, PPP or ethernet) and want to mount files residing + on that computer (the NFS server) using the Network File Sharing + protocol, say Y. "Mounting files" means that the client can access + the files with usual UNIX commands as if they were sitting on the + client's harddisk. For this to work, the server must run the + programs nfsd and mountd (but does not need to have NFS filesystem + support enabled). NFS is explained in the Network Administrator's + Guide, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/LDP, and on its man page: "man nfs". There is also a NFS-FAQ in sunsite.unc.edu:/pub/Linux/docs/faqs which presumes that you know @@ -3221,11 +3518,15 @@ to TCP/IP networking also. This option would enlarge your kernel by about 27 kB. This filesystem is also available as a module ( = code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. If you configure a diskless - machine which will mount its root filesystem over nfs, you cannot - compile this driver as a module. If you don't know what all this is - about, say N. + whenever you want). The module is called nfs.o. If you want to + compile it as a module, say M here and read + Documentation/modules.txt. If you configure a diskless machine which + will mount its root filesystem over nfs (in order to do that, check + out the netboot package, available via ftp (user: anonymous) from + sunsite.unc.edu in /pub/Linux/system/Linux-boot/, extract with "tar + xzvf filename", and say Y to "Root file system on NFS" below), then + you cannot compile this driver as a module. If you don't know what + all this is about, say N. Root file system on NFS CONFIG_ROOT_NFS @@ -3270,7 +3571,7 @@ kernel by about 27 kB; otherwise say N. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called isofs.o. OS/2 HPFS filesystem support (read only) CONFIG_HPFS_FS @@ -3282,17 +3583,18 @@ able to read them. Read Documentation/filesystems/hpfs.txt. This filesystem is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. If unsure, say N. + want). The module is called hpfs.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. If unsure, + say N. System V and Coherent filesystem support CONFIG_SYSV_FS SCO, Xenix and Coherent are commercial Unix systems for intel - machines. Enabling this option would allow you to read and write to - and from their floppies and harddisk partitions. If you have a - floppy or harddisk partition like that, it is probable that they - contain binaries from those other Unix systems; in order to run - these binaries, you will want to install iBCS2 (iBCS2 [Intel Binary + machines. Saying Y here would allow you to read and write to and + from their floppies and harddisk partitions. If you have a floppy or + harddisk partition like that, it is probable that they contain + binaries from those other Unix systems; in order to run these + binaries, you will want to install iBCS2 (iBCS2 [Intel Binary Compatibility Standard] is a kernel module which lets you run SCO, Xenix, Wyse, Unix Ware, Dell Unix and System V programs under Linux and is often needed to run commercial software, most prominently @@ -3309,70 +3611,71 @@ kernel by about 34 kB. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you haven't heard about all of this - before, it's safe to say N. + Documentation/modules.txt. The module will be called sysv.o. If you + haven't heard about all of this before, it's safe to say N. BSD UFS filesystem support (read only) CONFIG_UFS_FS BSD and derivate versions of Unix (such as SunOS, FreeBSD, NetBSD and NeXTstep) use a filesystem called UFS. Some System V Unixes can - create and mount partitions and diskettes using this filesystem - as well. Enabling this option allows you to mount these partitions - and diskettes read-only. If you only intend to mount files from - some other Unix over the network using NFS, you don't need the - UFS filesystem support (but you need nfs filesystem support + create and mount partitions and diskettes using this filesystem as + well. Saying Y here allows you to mount these partitions and + diskettes read-only. If you only intend to mount files from some + other Unix over the network using NFS, you don't need the UFS + filesystem support (but you need nfs filesystem support obviously). Note that this option is generally not needed for floppies, since a good portable way to transport files and - directories between unixes (and even other operating systems) - is given by the tar program ("man tar"). When accessing NeXTstep - files, you may need to convert them from the NeXT character set - to the Latin1 character set; use GNU recode for this purpose. - Say Y to build UFS support into your kernel. If you want to compile - this as a module ( = code which can be inserted in and removed from - the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you haven't heard about all of this - before, it's safe to say N. + directories between unixes (and even other operating systems) is + given by the tar program ("man tar"). When accessing NeXTstep files, + you may need to convert them from the NeXT character set to the + Latin1 character set; use GNU recode for this purpose. Say Y to + build UFS support into your kernel. If you want to compile this as a + module ( = code which can be inserted in and removed from the + running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called ufs.o. If you + haven't heard about all of this before, it's safe to say N. BSD disklabel (FreeBSD partition tables) support CONFIG_BSD_DISKLABEL FreeBSD uses its own partition scheme on your PC. It requires only one entry in the primary partition table of your disk and manages it similarly to DOS extended partitions, putting in its first sector a - new partition table in disklabel format. Enabling this option allows - you to read these disklabels and further mount FreeBSD partitions on - your Linux box if you also have configured BSD ufs filesystem - support. If you don't know what all this is about, say N. + new partition table in disklabel format. Saying Y here allows you to + read these disklabels and further mount FreeBSD partitions on your + Linux box if you also have configured BSD ufs filesystem support. If + you don't know what all this is about, say N. SMD disklabel (Sun partition tables) support CONFIG_SMD_DISKLABEL Like most systems, SunOS uses its own partition table format, - incompatible with all others. Enabling this option allows you to read - these partition tables and further mount SunOS disks on your Linux - box if you also have configured BSD ufs filesystem support. This is - mainly used to carry data from a Sparc under SunOS to your Linux box - via a removable medium like magneto-optical or ZIP drives. If you - don't know what all this is about, say N. + incompatible with all others. Saying Y here allows you to read these + partition tables and further mount SunOS disks on your Linux box if + you also have configured BSD ufs filesystem support. This is mainly + used to carry data from a Sparc under SunOS to your Linux box via a + removable medium like magneto-optical or ZIP drives. If you don't + know what all this is about, say N. SMB filesystem support (to mount WfW shares etc..) CONFIG_SMB_FS SMB (Server Message Buffer) is the protocol Windows for Workgroups - (WfW), Windows NT and Lan Manager use to talk to each other over an - ethernet. Enabling this allows you to mount their filesystems (often - called "shares") and access them just like any other unix - directory. For details, read Documentation/filesystems/smbfs.txt. - Note: if you just want your box to act as an SMB *server* and make - files and printing services available to Windows clients (which need - to have a TCP/IP stack), you don't need to enable this filesystem - support; you can use the program samba (available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/system/Network/samba) for - that. General information about how to connect Linux, Windows - machines and Macs is on the WWW at - http://eats.com/linux_mac_win.html (to browse the WWW, you need to - have access to a machine on the Internet that has one of the - programs lynx, netscape or Mosaic). If you want to compile the SMB - support as a module ( = code which can be inserted in and removed - from the running kernel whenever you want), say M here and read - Documentation/modules.txt. Most people say N, however. + (WfW), Windows 95, Windows NT and Lan Manager use to share files and + printers over local networks. Saying Y here allows you to mount + their filesystems (often called "shares" in this context) and access + them just like any other unix directory. For details, read + Documentation/filesystems/smbfs.txt. Note: if you just want your + box to act as an SMB *server* and make files and printing services + available to Windows clients (which need to have a TCP/IP stack), + you don't need to say Y here; you can use the program samba + (available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/system/Network/samba) for that. General + information about how to connect Linux, Windows machines and Macs is + on the WWW at http://eats.com/linux_mac_win.html (to browse the WWW, + you need to have access to a machine on the Internet that has one of + the programs lynx, netscape or Mosaic). If you want to compile the + SMB support as a module ( = code which can be inserted in and + removed from the running kernel whenever you want), say M here and + read Documentation/modules.txt. The module will be called + smbfs.o. Most people say N, however. SMB Win95 bug work-around CONFIG_SMB_WIN95 @@ -3384,41 +3687,47 @@ NCP filesystem support (to mount NetWare volumes) CONFIG_NCP_FS NCP (NetWare Core Protocol) is a protocol that runs over IPX and is - used by Novel NetWare clients to talk to file servers. It is to IPX - what nfs is to tcp/ip, if that helps. Enabling this option allows - you to mount NetWare file server volumes and to access them just - like any other Unix directory. For details, please read the file + used by Novell NetWare clients to talk to file servers. It is to IPX + what nfs is to tcp/ip, if that helps. Saying Y here allows you to + mount NetWare file server volumes and to access them just like any + other Unix directory. For details, please read the file Documentation/filesystems/ncpfs.txt in the kernel source and the IPX-HOWTO on sunsite.unc.edu:/pub/Linux/docs/howto. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. + read Documentation/modules.txt. The module will be called + ncpfs.o. Say N unless you are connected to a Novell network. -Amiga FFS filesystem support (EXPERIMENTAL) +Amiga FFS filesystem support CONFIG_AFFS_FS - The Fast File System (FFS) is the common filesystem used on harddisks - by Amiga (tm) Systems since AmigaOS Version 1.3 (34.20). It's also - possible to mount diskfiles used by the Un*X Amiga Emulator by Bernd - Schmidt (http://www-users.informatik.rwth-aachen.de/~crux/uae.html) - If you want to do the latter, you will also need the loop device - support. Say Y if you want to be able to read and write files from - and to an Amiga FFS partition of your harddrive. Amiga floppies - however cannot be read with this driver due to an incompatibility of - the floppy controller used in an Amiga and the standard floppy - controller in PCs and workstations. Read - Documentation/filesystems/affs.txt. This filesystem is also available - as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt. - If unsure, say N. + The Fast File System (FFS) is the common filesystem used on + harddisks by Amiga(tm) Systems since AmigaOS Version 1.3 + (34.20). With this driver you can also mount diskfiles used by the + Un*X Amiga Emulator by Bernd Schmidt + (http://www-users.informatik.rwth-aachen.de/~crux/uae.html). If you + want to do the latter, you will also need to say Y to "Loop device + support", above. Say Y if you want to be able to read and write + files from and to an Amiga FFS partition on your harddrive. Amiga + floppies however cannot be read with this driver due to an + incompatibility of the floppy controller used in an Amiga and the + standard floppy controller in PCs and workstations. Read + Documentation/filesystems/affs.txt. This filesystem is also + available as a module ( = code which can be inserted in and removed + from the running kernel whenever you want). The module is called + affs.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. If unsure, say N. -ROMFS filesystem support (EXPERIMENTAL) +ROM filesystem support CONFIG_ROMFS_FS - This is a special file system intended for installation disks or - otherwise prebuilt medias. It has very low overhead and low memory - requirements. However, it's read-only (one particular reason of the - smallness), so you need extra programs to prepare disks in this - format. If you are not sure, just say N, you don't need it. + This is a very small read-only filesystem mainly intended for + initial ram disks of installation disk, but it could be used for + other read-only media as well. Read + Documentation/filesystems/romfs.txt for details. This filesystem is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module is + called romfs.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. If you don't know whether you + need it, then you don't need it: say N. Standard/generic serial support CONFIG_SERIAL @@ -3427,15 +3736,17 @@ setting up dedicated ethernet WWW/ftp servers, or users that have one of the various bus mice instead of a serial mouse. (Note that the Cyclades and Stallion multi serial port drivers do not need this - driver built in for them to work. They are completely independent of - each other.) If you want to compile this driver as a module, say M - here and read Documentation/modules.txt. [WARNING: Do not compile - this driver as a module if you are using non-standard serial ports, - since the configuration information will be lost when kerneld - automatically unloads the driver. This limitation may be lifted in - the future.] Most people will say Y or M here, so that they can use - serial mice, modems and similar devices connecting to the standard - serial ports. + driver built in for them to work.) If you want to compile this + driver as a module, say M here and read + Documentation/modules.txt. The module will be called + serial.o. [WARNING: Do not compile this driver as a module if you + are using non-standard serial ports, since the configuration + information will be lost when kerneld automatically unloads the + driver. This limitation may be lifted in the future.] BTW: If you + have a mouseman serial mouse which is not recognized by the X window + system, try running gpm first. Most people will say Y or M here, so + that they can use serial mice, modems and similar devices connecting + to the standard serial ports. Digiboard PC/Xx Support CONFIG_DIGI @@ -3443,16 +3754,19 @@ that give you many serial ports. You would need something like this to connect more than two modems to your linux box, for instance in order to become a BBS. If you have a card like that, say Y here and - read the file Documentation/digiboard.txt. + read the file Documentation/digiboard.txt. If you want to compile + this driver as a module, say M here and read + Documentation/modules.txt. The module will be called pcxx.o. SDL RISCom/8 card support CONFIG_RISCOM8 This is a driver for the SDL Communications RISCom/8 multiport card, - that give you many serial ports. You would need something like this - to connect more than two modems to your linux box, for instance in - order to become a BBS. If you have a card like that, say Y here and - read the file Documentation/riscom8.txt. Also it's possible to say - M here and compile this driver as kernel loadable module. + which gives you many serial ports. You would need something like + this to connect more than two modems to your linux box, for instance + in order to become a BBS. If you have a card like that, say Y here + and read the file Documentation/riscom8.txt. Also it's possible to + say M here and compile this driver as kernel loadable module; the + module will be called riscom8.o. Cyclades async mux support CONFIG_CYCLADES @@ -3461,9 +3775,10 @@ your linux box, for instance in order to become a BBS. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. If you haven't heard about it, it's - safe to say N. (As of 1.3.9x kernels, this driver's minor numbers - start at 0 instead of 32.) + read Documentation/modules.txt. The module will be called + cyclades.o. If you haven't heard about it, it's safe to say N. (As + of 1.3.9x kernels, this driver's minor numbers start at 0 instead of + 32.) Stallion multiport serial support CONFIG_STALDRV @@ -3475,13 +3790,13 @@ heard about all this, it's safe to say N. Stallion EasyIO or EC8/32 support -CONFIG_STALLION n +CONFIG_STALLION If you have an EasyIO or EasyConnection 8/32 multiport Stallion card, then this is for you; say Y. Make sure to read drivers/char/README.stallion. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called stallion.o. Stallion EC8/64, ONboard, Brumby support CONFIG_ISTALLION @@ -3489,7 +3804,8 @@ serial multiport card, say Y here. Make sure to read drivers/char/README.stallion. To compile it as a module ( = code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + whenever you want), say M here and read + Documentation/modules.txt. The module will be called istallion.o. Hayes ESP serial port support CONFIG_ESPSERIAL @@ -3497,19 +3813,22 @@ to transfer data to and from the host. Make sure to read drivers/char/README.esp. To compile this driver as a module ( = code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + whenever you want), say M here and read + Documentation/modules.txt. The module will be called esp.o. + If unsure, say N. Hayes ESP serial port DMA channel CONFIG_ESPSERIAL_DMA_CHANNEL - This is the DMA channel to be used to transfer data to and from the host. - One DMA channel is shared between all the ESP ports. Valid values are - 1 and 3. + This is the DMA channel to be used to transfer data to and from the + host. One DMA channel is shared between all the ESP ports. Valid + values are 1 and 3. Hayes ESP serial port trigger level CONFIG_ESPSERIAL_TRIGGER_LEVEL - This is the trigger level (in bytes) of the transmit FIFO and the receive - FIFO. Larger values may result in fewer interrupts; however, a value too - high could result in data loss. Valid values are 1 through 1015. + This is the trigger level (in bytes) of the transmit FIFO and the + receive FIFO. Larger values may result in fewer interrupts; + however, a value too high could result in data loss. Valid values + are 1 through 1015. Parallel printer support CONFIG_PRINTER @@ -3520,17 +3839,18 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you want to use both a parallel - printer and PLIP, there are two cases: 1) If the printer and the - PLIP cable are to use the same parallel port (presumably because you - have just one), it is best to compile both drivers as modules and - load and unload them as needed. 2) To use different parallel ports - for the printer and the PLIP cable, you can say Y to this printer - driver, specify the base address of the parallel port(s) to use for - the printer(s) with the "lp" kernel command line option. (See the - documentation of your boot loader (lilo or loadlin) about how to - pass options to the kernel at boot time. The lilo procedure is also - explained in the SCSI-HOWTO, available via ftp (user: anonymous) in + Documentation/modules.txt. The module will be called plip.o. If you + want to use both a parallel printer and PLIP, there are two cases: + 1) If the printer and the PLIP cable are to use the same parallel + port (presumably because you have just one), it is best to compile + both drivers as modules and load and unload them as needed. 2) To + use different parallel ports for the printer and the PLIP cable, you + can say Y to this printer driver, specify the base address of the + parallel port(s) to use for the printer(s) with the "lp" kernel + command line option. (Try "man bootparam" or see the documentation + of your boot loader (lilo or loadlin) about how to pass options to + the kernel at boot time. The lilo procedure is also explained in the + SCSI-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO.) The standard base addresses as well as the syntax of the "lp" command line option can be found in drivers/char/lp.c. You can then say Y to the PLIP driver or, @@ -3563,8 +3883,9 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you are unsure, say N and read the - HOWTO nevertheless: it will tell you what you have. + Documentation/modules.txt. The module will be called busmouse.o. If + you are unsure, say N and read the HOWTO nevertheless: it will tell + you what you have. PS/2 mouse (aka "auxiliary device") support CONFIG_PSMOUSE @@ -3583,9 +3904,9 @@ sunsite.unc.edu:/pub/Linux/system/Misc, solves this problem. If you want to compile this mouse driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), - say M here and read Documentation/modules.txt. If you are unsure, - say N and read the HOWTO nevertheless: it will tell you what you - have. + say M here and read Documentation/modules.txt. The module will be + called psaux.o. If you are unsure, say N and read the HOWTO + nevertheless: it will tell you what you have. C&T 82C710 mouse port support (as on TI Travelmate) CONFIG_82C710_MOUSE @@ -3602,10 +3923,11 @@ (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. If you are unsure, say N and - read the HOWTO nevertheless: it will tell you what you have. Also be - aware that several vendors talk about 'Microsoft busmouse' and - actually mean PS/2 busmouse - so count the pins on the connector. + and read Documentation/modules.txt. The module will be called + msbusmouse.o. If you are unsure, say N and read the HOWTO + nevertheless: it will tell you what you have. Also be aware that + several vendors talk about 'Microsoft busmouse' and actually mean + PS/2 busmouse - so count the pins on the connector. ATIXL busmouse support CONFIG_ATIXL_BUSMOUSE @@ -3615,8 +3937,9 @@ anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. If you are unsure, say N and read - the HOWTO nevertheless: it will tell you what you have. + read Documentation/modules.txt. The module will be called + atixlmouse.o. If you are unsure, say N and read the HOWTO + nevertheless: it will tell you what you have. Support for user miscellaneous modules CONFIG_UMISC @@ -3631,7 +3954,8 @@ If you have a non-SCSI tape drive like that, say Y. Or, if you want to compile this driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. + and read Documentation/modules.txt. The module will be called + tpqic02.o. Do you want runtime configuration for QIC-02 CONFIG_QIC02_DYNCONF @@ -3648,16 +3972,17 @@ If you have a tape drive that is connected to your floppy controller, say Y here. Some tape drives (like the Iomega Ditto 3200) come with a high speed controller of its own. These drives - (and their companion controller) is also supported. If you have a - special controller (such as the CMS FC-10, FC-20, Iomega Mach-II, or - Ditto Dash), you must configure it by editing the file + (and their companion controller) are also supported by this driver, + so say Y if you have one. If you have a special controller (such as + the CMS FC-10, FC-20, Iomega Mach-II, or Ditto Dash), you must say Y + here and configure it by editing the file drivers/char/ftape/Makefile. If you want to use such a tape drive on a PCI-bus based system, please read the file drivers/char/ftape/README.PCI. This driver is also available as a runtime loadable module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called ftape.o. Zilog serial support CONFIG_SUN_ZS @@ -3681,11 +4006,21 @@ also don't have compliant BIOSes, and this driver will cause those machines to panic during the boot phase (typically, these machines are using a data segment of 0040, which is reserved for the Linux - kernel). If you get random kernel OOPSes that don't seem to be - related to anything and you have a motherboard with APM support, try - disabling/enabling this option. Generally, if you don't have a - battery in your machine, there isn't much point in using this - driver. + kernel). Generally, if you don't have a battery in your machine, + there isn't much point in using this driver and you should say N. + If you get random kernel OOPSes or reboots that don't seem to be + related to anything, try disabling/enabling this option. Some other + things to try when experiencing seemingly random, "weird" problems: + 1) passing the "no-hlt" option to the kernel + 2) passing the "no-387" option to the kernel + 3) passing the "mem=4M" option to the kernel (thereby disabling + all but the first 4M of RAM) + 4) Reading the sig11 FAQ at http://www.bitwizard.nl/sig11/ + 5) disabling the cache from your BIOS settings + 6) installing a better fan + 7) exchanging RAM chips + 8) exchanging the motherboard. + Ignore USER SUSPEND CONFIG_APM_IGNORE_USER_SUSPEND @@ -3737,28 +4072,32 @@ Watchdog Timer Support CONFIG_WATCHDOG - If you enable this option and create a character special file - /dev/watchdog with major number 10 and minor number 130 using mknod - ("man mknod"), you will get a watchdog, i.e.: subsequently opening - the file and failing to write to it for longer than 1 minute will - result in rebooting the machine. This could be useful for a - networked machine that needs to come back online as fast as possible - after a lock-up. There's a watchdog implementation entirely in - software (which can sometimes fail to reboot the machine) and a - driver for hardware watchdog boards, which are more robust and can - also keep track of the temperature inside your computer. For - details, read Documentation/watchdog.txt in the kernel source. If - unsure, say N. This driver is also available as a module ( = code - which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. + If you say Y here (and to one of the following options) and create a + character special file /dev/watchdog with major number 10 and minor + number 130 using mknod ("man mknod"), you will get a watchdog, i.e.: + subsequently opening the file and failing to write to it for longer + than 1 minute will result in rebooting the machine. This could be + useful for a networked machine that needs to come back online as + fast as possible after a lock-up. There's both a watchdog + implementation entirely in software (which can sometimes fail to + reboot the machine) and a driver for hardware watchdog boards, which + are more robust and can also keep track of the temperature inside + your computer. For details, read Documentation/watchdog.txt in the + kernel source. + The watchdog is usually used together with the watchdog daemon which + is available via ftp (user: anonymous) from + tsx-11.mit.edu/pub/linux/sources/sbin/. This daemon can also monitor + NFS connections and can reboot the machine when the process table is + full. + If unsure, say N. Disable watchdog shutdown on close CONFIG_WATCHDOG_NOWAYOUT - The default watchdog behaviour is to stop the timer if the process - managing it closes the file /dev/watchdog. It's always remotely - possible that this process might get killed. If you enable this - option, the watchdog cannot be stopped once it has been started. + The default watchdog behaviour (which you get if you say N here) is + to stop the timer if the process managing it closes the file + /dev/watchdog. It's always remotely possible that this process might + get killed. If you say Y here, the watchdog cannot be stopped once + it has been started. WDT Watchdog timer CONFIG_WDT @@ -3768,7 +4107,7 @@ source at the top of drivers/char/wdt.c. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called wdt.o. WDT501 features CONFIG_WDT_501 @@ -3791,7 +4130,8 @@ from. Equally it's a lot cheaper to install. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + it as a module, say M here and read Documentation/modules.txt. The + module will be called softdog.o. Berkshire Products PC Watchdog CONFIG_PCWATCHDOG @@ -3799,46 +4139,28 @@ This card simply watches your kernel to make sure it doesn't freeze, and if it does, it resets your computer after a certain amount of time. This driver is like the WDT501 driver but for different - hardware. The PC watchdog cards can be ordered from - http://www.berkprod.com. Some example rc.local files are available - from ftp.bitgate.com. This driver is also available as a module ( = - code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. Most people will say N. - -Support for Revision A cards -CONFIG_PCWD_REV_A - This gives you support for revision A or B of the Berkshire PC Watchdog - Card. The way to tell if you have an A or B style card is to check the - manual on page 22. If it doesn't say "Port 3" at the top, you have a - revision A or B card. Also, if your card doesn't have an audible beep, - chances are you have a revision A or B card. - -Support for Revision C cards -CONFIG_PCWD_REV_C - This card gives you an audible beep. It also has support for disabling - the card, enabling it, getting firmware versions, and a few other options. - -Show card state on reset -CONFIG_PCWD_SHOW_PREVSTAT - Enabling this option will display the previous reset state of your card. - It will also give a little more verbose data about the card, or your - system's previous status before reset. + hardware. Please read Documentation/pcwd-watchdog.txt. The PC + watchdog cards can be ordered from http://www.berkprod.com. Some + example rc.local files are available from ftp.bitgate.com. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module is called pcwd.o. If you want to compile it as a module, say + M here and read Documentation/modules.txt. Most people will say N. Enhanced Real Time Clock Support CONFIG_RTC - If you enable this option and create a character special file - /dev/rtc with major number 10 and minor number 135 using mknod ("man - mknod"), you will get access to the real time clock built into your + If you say Y here and create a character special file /dev/rtc with + major number 10 and minor number 135 using mknod ("man mknod"), you + will get access to the real time clock built into your computer. Every PC has such a clock built in. It can be used to generate signals from as low as 1Hz up to 8192Hz, and can also be used as a 24 hour alarm. It reports status information via the file /proc/rtc and its behaviour is set by various ioctls on /dev/rtc. People running SMP (= multiprocessor) versions of Linux - should enable this option to read and set the RTC clock in a SMP - compatible fashion. If you think you have a use for such a device - (such as periodic data sampling), then say Y here, and go read the - file Documentation/rtc.txt for details. + should say Y here to read and set the RTC clock in a SMP compatible + fashion. If you think you have a use for such a device (such as + periodic data sampling), then say Y here, and go read the file + Documentation/rtc.txt for details. Sound card support CONFIG_SOUND @@ -3857,11 +4179,6 @@ that are at sunsite.unc.edu:/pub/Linux/kernel/patches/console/pcsndrv-X.X.tar.gz, to be extracted with "tar xzvf filename". - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want) on the - Motorola 680x0 architecture. If you are compiling a kernel for - Linux/m68k and want to compile this driver as a module, say M here - and read Documentation/modules.txt. ProAudioSpectrum 16 support CONFIG_PAS @@ -3890,14 +4207,14 @@ Gravis Ultrasound support CONFIG_GUS - Enable this option for any type of Gravis Ultrasound card, including + Say Y here for any type of Gravis Ultrasound card, including the GUS or GUS MAX. MPU-401 support (NOT for SB16) CONFIG_MPU401 Be careful with this question. The MPU401 interface is supported by all soundcards. However, some natively supported cards have their - own driver for MPU401. Enabling the MPU401 option with these cards + own driver for MPU401. Enabling this MPU401 option with these cards will cause a conflict. Also, enabling MPU401 on a system that doesn't really have a MPU401 could cause some trouble. If your card was in the list of supported cards, look at the card specific @@ -3919,8 +4236,8 @@ 16 bit sampling option of GUS (_NOT_ GUS MAX) CONFIG_GUS16 Answer Y if you have installed the 16 bit sampling daughtercard on - your GUS. Answer N if you have a GUS MAX, since enabling this - option disables GUS MAX support. + your GUS. Answer N if you have a GUS MAX, since saying Y here + disables GUS MAX support. GUS MAX support CONFIG_GUSMAX @@ -3947,7 +4264,7 @@ synthesizers (OPL2, OPL3 and OPL4), 6850 UART MIDI Interface. For cards having native support in VoxWare, consult the card specific instructions in drivers/sound/Readme.cards. Some drivers - have their own MSS support and enabling this option will cause a + have their own MSS support and saying Y to this option will cause a conflict. Ensoniq Soundscape support @@ -3972,11 +4289,11 @@ Support for Crystal CS4232 based (PnP) cards CONFIG_CS4232 - Enable this if you have a card based on the Crystal CS4232 chip set. + Say Y here if you have a card based on the Crystal CS4232 chip set. Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers CONFIG_MAUI - Enable this option if you have a Turtle Beach Wave Front, Maui, or + Say Y here if you have a Turtle Beach Wave Front, Maui, or Tropez sound card. Support for Crystal CS4232 based (PnP) cards @@ -4007,15 +4324,32 @@ SB32/AWE support CONFIG_AWE32_SYNTH -Enable this option if you have a SB32 or SB AWE soundcard. See -linux/drivers/sound/lowlevel/README.awe for more info. + Say Y here if you have a SB32 or SB AWE soundcard. See + linux/drivers/sound/lowlevel/README.awe for more info. + +Additional low level drivers +CONFIG_LOWLEVEL_SOUND + If you need additional low level sound drivers which are not part + of USS/Lite (UNIX Sound System), say Y. The only such driver at + present is the ACI driver for the miroSOUND PCM12 and PCM20. + +ACI mixer (miroPCM12) +CONFIG_ACI_MIXER + Audio Command Interface (ACI) driver. ACI is a protocol used to + communicate with the microcontroller on some sound cards produced + by miro, e.g. the miroSOUND PCM12 and PCM20. The main function + of the ACI is to control the mixer and to get a product + identification. This Voxware ACI driver currently only supports + the ACI functions on the miroSOUND PCM12 card. On the PCM20, ACI + also controls the radio tuner on this card, however this is not + yet supported in this software. Kernel profiling support CONFIG_PROFILE This is for kernel hackers who want to know how much time the kernel spends in the various procedures. The information is stored in - /proc/profile (enable the /proc filesystem!) and in order to read - it, you need the readprofile package from sunsite.unc.edu. Its + /proc/profile (say Y to "/proc filesystem support"!) and in order to + read it, you need the readprofile package from sunsite.unc.edu. Its manpage gives information regarding the format of profiling data. To become a kernel hacker, you can start with the Kernel Hacker's Guide at http://www.redhat.com:8080/HyperNews/get/khg.html. Mere mortals @@ -4025,35 +4359,43 @@ CONFIG_PROFILE_SHIFT This is used to adjust the granularity with which the addresses of executed instructions get recorded in /proc/profile. But since you - enabled "Kernel profiling support", you must be a kernel hacker and + said Y to "Kernel profiling support", you must be a kernel hacker and hence you know what this is about :-) ISDN subsystem CONFIG_ISDN - ISDN ("Integrated Services Digital Networks", called RNIS in - France) is a special type of fully digital telephone line; it's - mostly used to connect to your Internet service provider (with SLIP - or PPP). The main advantage is that the speed is higher than - ordinary modem/telephone connections. It only works if your computer - is equipped with an ISDN card and both you and your service provider - purchased an ISDN line from your phone company. For details, read - http://alumni.caltech.edu/~dank/isdn/ on the WWW. (To browse the - WWW, you need to have access to a machine on the Internet that has - one of the programs lynx, netscape or Mosaic.) This driver allows - you to use an ISDN-card for networking connections and as dialin/out - device. The isdn-tty's have a built in AT-compatible modem - emulator. Network devices support autodial, channel-bundling, + ISDN ("Integrated Services Digital Networks", called RNIS in France) + is a special type of fully digital telephone service; it's mostly + used to connect to your Internet service provider (with SLIP or + PPP). The main advantage is that the speed is higher than ordinary + modem/telephone connections, and that you can have voice + conversations while downloading stuff. It only works if your + computer is equipped with an ISDN card and both you and your service + provider purchased an ISDN line from the phone company. For + details, read http://alumni.caltech.edu/~dank/isdn/ on the WWW. (To + browse the WWW, you need to have access to a machine on the Internet + that has one of the programs lynx, netscape or Mosaic.) This driver + allows you to use an ISDN-card for networking connections and as + dialin/out device. The isdn-tty's have a built in AT-compatible + modem emulator. Network devices support autodial, channel-bundling, callback and caller-authentication without having a daemon running. A reduced T.70 protocol is supported with tty's suitable for German BTX. On D-Channel, the protocols EDSS1 and 1TR6 are - supported. See Documentation/isdn/README for more information. + supported. See Documentation/isdn/README for more information. If + you want to compile the ISDN as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called isdn.o. If unsure, say N. Support synchronous PPP CONFIG_ISDN_PPP - This enables synchronous PPP via ISDN. This protocol is used by - Cisco or Sun for example. So you want say Y here if the other end of - your ISDN connection supports it. You will need a special version of - pppd (called ipppd) for using this feature. See + Over digital connections such as ISDN, there is no need to + synchronize sender and recipient's clocks with start and stop bits + as is done over telephone lines. Instead, one can use "synchronous + PPP". Saying Y here will include this protocol. This protocol is + used by Cisco and Sun for example. So you want to say Y here if the + other end of your ISDN connection supports it. You will need a + special version of pppd (called ipppd) for using this feature. See Documentation/isdn/README.syncppp and Documentation/isdn/syncPPP.FAQ for more information. @@ -4069,13 +4411,13 @@ Support audio via ISDN CONFIG_ISDN_AUDIO - With this option enabled, the modem-emulator supports a subset - of the EIA Class 8 Voice commands. Using a getty with voice-support + If you say Y here, the modem-emulator will support a subset of the + EIA Class 8 Voice commands. Using a getty with voice-support (mgetty+sendfax by gert@greenie.muc.de with an extension, available - with the ISDN utility package for example), you will be able - to use your Linux box as an ISDN-answering machine. Of course, this - must be supported by the lowlevel driver also. Currently, the Teles - driver is the only voice-supporting one. See + with the ISDN utility package for example), you will be able to use + your Linux box as an ISDN-answering machine. Of course, this must be + supported by the lowlevel driver also. Currently, the Teles driver + is the only voice-supporting one. See Documentation/isdn/README.audio for more information. ICN 2B and 4B support @@ -4086,7 +4428,10 @@ this card, additional firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. See Documentation/isdn/README and README.icn for more - information. + information. If you want to compile this as a module ( = code which + can be inserted in and removed from the running kernel whenever you + want), say M here and read Documentation/modules.txt. The module + will be called icn.o. Teles, NICCY1016PC, Creatix support CONFIG_ISDN_DRV_TELES @@ -4095,7 +4440,10 @@ support a 16.0-type using EDSS1-protocol. See Documentation/isdn/README on how to configure it using 16.3, a different D-channel protocol, or non-standard irq/port/shmem - settings. + settings. If you want to compile this as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want), say M here and read Documentation/modules.txt. The module + will be called teles.o. PCBIT-D support CONFIG_ISDN_DRV_PCBIT @@ -4104,12 +4452,15 @@ firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. See Documentation/isdn/README and Documentation/isdn/README.pcbit for - more information. + more information. If you want to compile this as a module ( = code + which can be inserted in and removed from the running kernel + whenever you want), say M here and read + Documentation/modules.txt. The module will be called pcbit.o. Support for AP1000 multicomputer CONFIG_AP1000 This enables support for a sparc based parallel multi-computer - called an AP1000+. For details on our efforts to port Linux to this + called AP1000+. For details on our efforts to port Linux to this machine see http://cap.anu.edu.au/cap/projects/linux or mail to hackers@cafe.anu.edu.au @@ -4150,29 +4501,30 @@ 68020 support CONFIG_M68020 - If you anticipate running this kernel on a computer with a MC68020 processor, - say Y. Otherwise, say N. Note that the 68020 requires a 68851 MMU - (= memory management unit) to run Linux/m68k. + If you anticipate running this kernel on a computer with a MC68020 + processor, say Y. Otherwise, say N. Note that the 68020 requires a + 68851 MMU (= memory management unit) to run Linux/m68k. 68030 support CONFIG_M68030 - If you anticipate running this kernel on a computer with a MC68030 processor, - say Y. Otherwise, say N. Note that a MC68EC030 will not work, as it does - not include an MMU (= memory management unit). + If you anticipate running this kernel on a computer with a MC68030 + processor, say Y. Otherwise, say N. Note that a MC68EC030 will not + work, as it does not include an MMU (= memory management unit). 68040 support CONFIG_M68040 - If you anticipate running this kernel on a computer with a MC68LC040 or - MC68040 processor, say Y. Otherwise, say N. Note that an MC68EC040 will - not work, as it does not include an MMU (= memory management unit). + If you anticipate running this kernel on a computer with a MC68LC040 + or MC68040 processor, say Y. Otherwise, say N. Note that an + MC68EC040 will not work, as it does not include an MMU (= memory + management unit). Use -m68040 flag for 68040 specific optimizations CONFIG_OPTIMIZE_040 If you will only be running this kernel on a 68040-series processor, - this will make the kernel run somewhat faster. However, it will no longer - run on a 68020 or 68030, no matter whether you included 68020 and 68030 - support or not. Say N unless the only processor you are compiling support - for is the 68040 (or 68LC040). + this will make the kernel run somewhat faster. However, it will no + longer run on a 68020 or 68030, no matter whether you included 68020 + and 68030 support or not. Say N unless the only processor you are + compiling support for is the 68040 (or 68LC040). 68060 support CONFIG_M68060 @@ -4182,10 +4534,10 @@ Use -m68060 flag for 68060 specific optimizations CONFIG_OPTIMIZE_060 If you will only be running this kernel on a 68060-series processor, - this will make the kernel run somewhat faster. However, it will no longer - run on a 68020, 68030 or 68040, no matter whether you included support - for those processors or not. Say N unless the only processor you are - compiling support for is the 68060. + this will make the kernel run somewhat faster. However, it will no + longer run on a 68020, 68030 or 68040, no matter whether you + included support for those processors or not. Say N unless the only + processor you are compiling support for is the 68060. Advanced processor options CONFIG_ADVANCED_CPU @@ -4222,9 +4574,10 @@ Amiga ECS chipset support CONFIG_AMIFB_ECS - This enables support for the Enhanced Chip Set, found in later A500's, - later A2000's, the A600, the A3000, the A3000T and CDTV. If you intend to - run Linux on any of these systems, say Y; otherwise say N. + This enables support for the Enhanced Chip Set, found in later + A500's, later A2000's, the A600, the A3000, the A3000T and CDTV. If + you intend to run Linux on any of these systems, say Y; otherwise + say N. Amiga AGA chipset support CONFIG_AMIFB_AGA @@ -4242,10 +4595,10 @@ Amiga GSP (TMS340x0) support CONFIG_AMIGA_GSP - Include support for Amiga graphics cards that use the Texas Instruments - TMS340x0 GSP (= graphics signal processor) chips. Say Y if you want - to use a DMI Resolver or Commodore A2410 (Lowell) graphics card on - an Amiga; otherwise, say N. + Include support for Amiga graphics cards that use the Texas + Instruments TMS340x0 GSP (= graphics signal processor) chips. Say Y + if you want to use a DMI Resolver or Commodore A2410 (Lowell) + graphics card on an Amiga; otherwise, say N. DMI Resolver support CONFIG_GSP_RESOLVER @@ -4259,19 +4612,17 @@ Amiga Zorro II ramdisk support CONFIG_AMIGA_Z2RAM - This enables support for using Chip RAM and Zorro II RAM as a ramdisk - or as a swap partition. Say Y if you want to include this driver in - the kernel. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read + This enables support for using Chip RAM and Zorro II RAM as a + ramdisk or as a swap partition. Say Y if you want to include this + driver in the kernel. This driver is also available as a module ( = + code which can be inserted in and removed from the running kernel + whenever you want). The module is called z2ram.o. If you want to + compile it as a module, say M here and read Documentation/modules.txt. Atari ACSI support CONFIG_ATARI_ACSI - This enables support for the Atari ACSI interface. This driver is - also available as a module ( = code which can be inserted in and - removed from the running kernel whenever you want). The driver + This enables support for the Atari ACSI interface. The driver supports hard disks and CD-ROMs, which have 512-byte sectors, or can be switched to that mode. Due to the ACSI command format, only disks up to 1 GB are supported. Special support for certain ACSI to SCSI @@ -4279,7 +4630,10 @@ driver is also the basis for certain other drivers for devices attached to the ACSI bus: Atari SLM laser printer, BioNet-100 Ethernet, and PAMsNet Ethernet. If you want to use one of these - devices, you need ACSI support, too. + devices, you need ACSI support, too. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module will + be called acsi.o. Probe all LUNs on each ACSI device CONFIG_ACSI_MULTI_LUN @@ -4295,44 +4649,44 @@ If you have an Atari SLM laser printer, say Y to include support for it in the kernel. Otherwise, say N. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). - Be warned: the driver needs much ST-RAM and can cause problems due - to that fact! + running kernel whenever you want). The module will be called + acsi_slm.o. Be warned: the driver needs much ST-RAM and can cause + problems due to that fact! A3000 WD33C93A support CONFIG_A3000_SCSI - If you have an Amiga 3000 and have SCSI devices connected to the built-in - SCSI controller, say Y. Otherwise, say N. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + If you have an Amiga 3000 and have SCSI devices connected to the + built-in SCSI controller, say Y. Otherwise, say N. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module is + called wd33c93.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. A2091 WD33C93A support CONFIG_A2091_SCSI - If you have a Commodore A2091 SCSI controller, say Y. Otherwise, say N. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + If you have a Commodore A2091 SCSI controller, say Y. Otherwise, + say N. This driver is also available as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want). The module is called wd33c93.o. If you want to compile it as + a module, say M here and read Documentation/modules.txt. GVP Series II WD33C93A support CONFIG_GVP11_SCSI - If you have a Great Valley Products Series II SCSI controller, say Y. - Also say Y if you have a later model of GVP SCSI controller (such as - the GVP A4008 or a Combo board). Otherwise, say N. + If you have a Great Valley Products Series II SCSI controller, say + Y. Also say Y if you have a later model of GVP SCSI controller + (such as the GVP A4008 or a Combo board). Otherwise, say N. This driver does NOT work for the T-Rex series of accelerators from TekMagic and GVP-M. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module will be called gvp11.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. Cyberstorm SCSI support CONFIG_CYBERSTORM_SCSI - If you have an Amiga with an original (MkI) Phase5 Cyberstorm accelerator - board and the optional Cyberstorm SCSI controller, say Y. Otherwise, - say N. + If you have an Amiga with an original (MkI) Phase5 Cyberstorm + accelerator board and the optional Cyberstorm SCSI controller, say + Y. Otherwise, say N. Cyberstorm II SCSI support CONFIG_CYBERSTORMII_SCSI @@ -4341,13 +4695,15 @@ Blizzard 2060 SCSI support CONFIG_BLZ2060_SCSI - If you have an Amiga with a Phase5 Blizzard 2060 accelerator board and - want to use the onboard SCSI controller, say Y. Otherwise, say N. + If you have an Amiga with a Phase5 Blizzard 2060 accelerator board + and want to use the onboard SCSI controller, say Y. Otherwise, say + N. Blizzard 1230IV/1260 SCSI support CONFIG_BLZ1230_SCSI - If you have an Amiga 1200 with a Phase5 Blizzard 1230IV or Blizzard 1260 - accelerator, and the optional SCSI module, say Y. Otherwise, say N. + If you have an Amiga 1200 with a Phase5 Blizzard 1230IV or Blizzard + 1260 accelerator, and the optional SCSI module, say Y. Otherwise, + say N. Atari native SCSI support CONFIG_ATARI_SCSI @@ -4355,44 +4711,45 @@ Falcon, ...) say Y to get it supported. Of course also, if you have an compatible SCSI controller (e.g. for Medusa). This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. - This driver supports both styles of NCR integration into the system: - the TT style (separate DMA), and the Falcon style (via ST-DMA, - replacing ACSI). It does NOT support other schemes, like in the - Hades (without DMA). + from the running kernel whenever you want). The module is called + atari_scsi.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt. This driver supports both styles of + NCR integration into the system: the TT style (separate DMA), and + the Falcon style (via ST-DMA, replacing ACSI). It does NOT support + other schemes, like in the Hades (without DMA). Long delays for Toshiba CD-ROMs CONFIG_ATARI_SCSI_TOSHIBA_DELAY This option increases the delay after a SCSI arbitration to - accomodate some flakey Toshiba CD-ROM drives. Say Y if you intend to + accommodate some flaky Toshiba CD-ROM drives. Say Y if you intend to use a Toshiba CD-ROM drive; otherwise, the option is not needed and would impact performance a bit, so say N. Ariadne support CONFIG_ARIADNE - If you have a VillageTronics Ariadne Ethernet adapter, say Y. Otherwise, - say N. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + If you have a VillageTronics Ariadne Ethernet adapter, say Y. + Otherwise, say N. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module is called ariadne.o. If you want to compile it as + a module, say M here and read Documentation/modules.txt. A2065 support CONFIG_A2065 - If you have a Commodore A2065 Ethernet adapter, say Y. Otherwise, say N. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + If you have a Commodore A2065 Ethernet adapter, say Y. Otherwise, + say N. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module is called a2065.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Hydra support CONFIG_HYDRA If you have a Hydra Ethernet adapter, say Y. Otherwise, say N. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module is called hydra.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Atari Lance support CONFIG_ATARILANCE @@ -4415,34 +4772,34 @@ Multiface Card III parallel support CONFIG_MULTIFACE_III_LP If you have a Multiface III card for your Amiga, and want to use its - parallel port in Linux, say Y. Otherwise, say N. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + parallel port in Linux, say Y. Otherwise, say N. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module is + called lp_m68k.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Amiga mouse support CONFIG_AMIGAMOUSE - If you want to be able to use an Amiga mouse in Linux, say Y. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + If you want to be able to use an Amiga mouse in Linux, say Y. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module is called amigamouse.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Amiga Copper Console CONFIG_COPCON - This configures the console to use the Amiga's graphics coprocessor for - scrolling, instead of using the CPU. This option markedly improves - response times in the high color modes (5 bitplanes and up). If you - would like to use this, say Y; otherwise, say N. + This configures the console to use the Amiga's graphics coprocessor + for scrolling, instead of using the CPU. This option markedly + improves response times in the high color modes (5 bitplanes and + up). If you would like to use this, say Y; otherwise, say N. Atari mouse support CONFIG_ATARIMOUSE - If you want to be able to use an Atari mouse in Linux, say Y. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + If you want to be able to use an Atari mouse in Linux, say Y. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module is called atarimouse.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Atari MFP serial support CONFIG_ATARI_MFPSER @@ -4450,7 +4807,7 @@ Linux, say Y. The driver equally supports all kinds of MFP serial ports and automatically detects whether Serial1 is available. This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you + in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Note for Falcon users: You also have an MFP port, it's just not @@ -4470,17 +4827,18 @@ Atari MIDI serial support CONFIG_ATARI_MIDI If you want to use your Atari's MIDI port in Linux, say Y. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Amiga builtin serial support CONFIG_AMIGA_BUILTIN_SERIAL - If you want to use your Amiga's built-in serial port in Linux, say Y. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read + If you want to use your Amiga's built-in serial port in Linux, say + Y. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). If you want to compile it as a module, say M here and read Documentation/modules.txt. GVP IO-Extender support @@ -4490,7 +4848,8 @@ Multiface Card III serial support CONFIG_MULTIFACE_III_TTY - If you want to use a Multiface III card's serial port in Linux, say Y. + If you want to use a Multiface III card's serial port in Linux, say + Y. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read @@ -4498,12 +4857,13 @@ Amiga or Atari DMA sound support CONFIG_DMASOUND - If you want to use the internal audio of your Atari or Amiga in Linux, - answer Y to this question. This will provide a Sun-like /dev/audio, - compatible with the Linux/i386 sound system. Otherwise, say N. - This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read + If you want to use the internal audio of your Atari or Amiga in + Linux, answer Y to this question. This will provide a Sun-like + /dev/audio, compatible with the Linux/i386 sound system. Otherwise, + say N. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). If you want to compile it as a module, say M here and read Documentation/modules.txt. MSDOS partition support @@ -4514,20 +4874,6 @@ Say Y if you need this feature; users who are only using their system-native partitioning scheme can say N here. -Sparc ESP SCSI support -CONFIG_SCSI_SUNESP - This is the driver for the Sun ESP SCSI host adapter. The ESP - chipset is present in most SPARC-based computers. - -Sparc /dev/openprom compatibility driver -CONFIG_SUN_OPENPROMIO - This driver provides user programs with an interface to the Sparc - PROM device tree. The driver implements a SunOS-compatible - interface and a NetBSD-compatible interface. If you want to - compile this as a module ( = code which can be inserted in and - removed from the running kernel whenever you want), say M and read - Documentation/modules.txt. If unsure, say Y. - # need an empty line after last entry, for sed script in Configure. # @@ -4557,7 +4903,7 @@ # LocalWords: TR Sony CDU caddyless cdu Mitsumi MCD cd mcd XA MultiSession CDA # LocalWords: Matsushita Panasonic SBPCD Soundblaster Longshine sbpcd Aztech # LocalWords: Okano Wearnes AZTCD CDD SE aztcd sonycd Goldstar GSCD Philips fs -# LocalWords: LMS OPTCD Sanyo SJCD minix faqs msdos harddrive mtools +# LocalWords: LMS OPTCD Sanyo SJCD minix faqs xiafs XIA msdos harddrive mtools # LocalWords: std softlinks umssync NetworkFileSharing nfsd mountd CDs HPFS TI # LocalWords: hpfs SYSV SCO intel iBCS Wyse WordPerfect tsx mit unixes sysv NR # LocalWords: SMB WfW Cyclades async mux Logitech busmouse MouseSystem aka AST @@ -4625,4 +4971,20 @@ # LocalWords: smmixer ptt circ soundmodem MKISS FDDI DEFEA DEFPA DEFXX redhat # LocalWords: HyperNews khg mconv sed lina wuftpd MicroChannel netlink irc cum # LocalWords: raudio realaudio PPROP NETBIOS GUI IBMMCA ELMC Racal Interlan fi -# LocalWords: eth shapecfg src esp PCWD PREVSTAT +# LocalWords: eth shapecfg src esp PCWD PREVSTAT bootparam sig bitwizard SBC +# LocalWords: downloads AFSK TCM FP Karn KA FSK RUH LinkSys cron mouseman LLC +# LocalWords: SyQuest SyQuest's CCITT MicroSolutions BPCD bpcd ESPSERIAL PROM +# LocalWords: SUNESP openprom OPENPROMIO quango themall al TT MC MMU LC RMW AA +# LocalWords: INSNS Ataris AutoConfig ZORRO OCS AMIFB Agnus Denise ECS CDTV GB +# LocalWords: AGA Cybervision CYBER GSP TMS DMI Zorro ACSI ROMs SLM BioNet GVP +# LocalWords: PAMsNet TekMagic Cyberstorm MkI CYBERSTORMII MkII BLZ onboard cx +# LocalWords: VillageTronics ATARILANCE RieblCard PAMCard VME MFP sangoma LAPB +# LocalWords: Rhotron BioData's Multiface AMIGAMOUSE COPCON Amiga's bitplanes +# LocalWords: ATARIMOUSE MFPSER SCC's MegaSTE ESCC Atari's GVPIOEXT DMASOUND +# LocalWords: fdutils cisco univercd rpcg htm iface lapb LAPBETHER tpqic qic +# LocalWords: SYNTH xd en binfmt aout ipip terra ipx fileserver sd sr sg wic +# LocalWords: ibmmca lapbether mkiss dlci sdla fmv eepro eexpress ni hp ne es +# LocalWords: ibmtr isofs ROMFS romfs pcxx cyclades istallion psaux msbusmouse +# LocalWords: atixlmouse sbin softdog pcwd USS Lite ACI miroSOUND PCM miroPCM +# LocalWords: microcontroller miro Voxware downloading teles acsi slm gvp +# LocalWords: atari ariadne amigamouse atarimouse builtin diff -u --recursive --new-file v2.1.22/linux/Makefile linux/Makefile --- v2.1.22/linux/Makefile Thu Jan 23 21:06:45 1997 +++ linux/Makefile Thu Jan 23 21:07:58 1997 @@ -1,6 +1,6 @@ VERSION = 2 PATCHLEVEL = 1 -SUBLEVEL = 22 +SUBLEVEL = 23 ARCH = i386 diff -u --recursive --new-file v2.1.22/linux/arch/alpha/kernel/entry.S linux/arch/alpha/kernel/entry.S --- v2.1.22/linux/arch/alpha/kernel/entry.S Mon Dec 30 15:39:02 1996 +++ linux/arch/alpha/kernel/entry.S Thu Jan 23 21:01:28 1997 @@ -718,7 +718,7 @@ .quad do_entSys, sys_ptrace, do_entSys, do_entSys, do_entSys .quad do_entSys, do_entSys, do_entSys, sys_access, do_entSys .quad do_entSys, sys_sync, sys_kill, do_entSys, sys_setpgid - .quad do_entSys, sys_dup, sys_pipe, do_entSys, do_entSys + .quad do_entSys, sys_dup, sys_pipe, osf_set_program_attributes, do_entSys .quad sys_open, do_entSys, sys_getxgid, osf_sigprocmask, do_entSys /*50*/ .quad do_entSys, sys_acct, sys_sigpending, do_entSys, sys_ioctl .quad do_entSys, do_entSys, sys_symlink, sys_readlink, sys_execve @@ -729,7 +729,7 @@ /* map BSD's setpgrp to sys_setpgid for binary compatibility: */ .quad sys_setgroups, do_entSys, sys_setpgid, sys_setitimer, do_entSys .quad do_entSys, sys_getitimer, sys_gethostname, sys_sethostname, sys_getdtablesize - .quad sys_dup2, sys_newfstat, sys_fcntl, sys_select, do_entSys + .quad sys_dup2, sys_newfstat, sys_fcntl, sys_select, sys_poll .quad sys_fsync, sys_setpriority, sys_socket, sys_connect, sys_accept /*100*/ .quad osf_getpriority, sys_send, sys_recv, sys_sigreturn, sys_bind .quad sys_setsockopt, sys_listen, do_entSys, do_entSys, do_entSys @@ -759,7 +759,7 @@ .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys .quad do_entSys, do_entSys, do_entSys, sys_getpgid, sys_getsid .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys - .quad do_entSys, do_entSys, do_entSys, do_entSys, osf_proplist_syscall + .quad do_entSys, osf_sysinfo, do_entSys, do_entSys, osf_proplist_syscall .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys /*250*/ .quad do_entSys, osf_usleep_thread, do_entSys, do_entSys, sys_sysfs .quad do_entSys, osf_getsysinfo, osf_setsysinfo, do_entSys, do_entSys diff -u --recursive --new-file v2.1.22/linux/arch/alpha/kernel/osf_sys.c linux/arch/alpha/kernel/osf_sys.c --- v2.1.22/linux/arch/alpha/kernel/osf_sys.c Tue Oct 29 19:58:01 1996 +++ linux/arch/alpha/kernel/osf_sys.c Thu Jan 23 21:01:28 1997 @@ -43,6 +43,23 @@ extern asmlinkage int sys_umount(char *); extern asmlinkage int sys_swapon(const char *specialfile, int swap_flags); +extern asmlinkage unsigned long sys_brk(unsigned long); + +/* + * This is pure guess-work.. + */ +asmlinkage int osf_set_program_attributes( + unsigned long text_start, unsigned long text_len, + unsigned long bss_start, unsigned long bss_len) +{ + struct mm_struct *mm = current->mm; + + mm->end_code = bss_start + bss_len; + mm->brk = bss_start + bss_len; + printk("set_program_attributes(%lx %lx %lx %lx)\n", + text_start, text_len, bss_start, bss_len); + return 0; +} /* * OSF/1 directory handling functions... @@ -699,6 +716,37 @@ return retval; } +asmlinkage long osf_sysinfo(int command, char *buf, long count) +{ + static char * sysinfo_table[] = { + system_utsname.sysname, + system_utsname.nodename, + system_utsname.release, + system_utsname.version, + system_utsname.machine, + "alpha", /* instruction set architecture */ + "dummy", /* hardware serial number */ + "dummy", /* hardware manufacturer */ + "dummy", /* secure RPC domain */ + }; + unsigned long offset; + char *res; + long len; + + offset = command-1; + if (offset >= sizeof(sysinfo_table)/sizeof(char *)) { + /* Digital unix has a few unpublished interfaces here */ + printk("sysinfo(%d)", command); + return -EINVAL; + } + res = sysinfo_table[offset]; + len = strlen(res)+1; + if (len > count) + len = count; + if (copy_to_user(buf, res, len)) + return -EFAULT; + return 0; +} asmlinkage unsigned long osf_getsysinfo(unsigned long op, void *buffer, unsigned long nbytes, int *start, void *arg) diff -u --recursive --new-file v2.1.22/linux/arch/alpha/mm/extable.c linux/arch/alpha/mm/extable.c --- v2.1.22/linux/arch/alpha/mm/extable.c Mon Dec 30 15:39:02 1996 +++ linux/arch/alpha/mm/extable.c Thu Jan 23 21:01:28 1997 @@ -34,6 +34,8 @@ return 0; } +register unsigned long gp __asm__("$29"); + unsigned search_exception_table(unsigned long addr) { @@ -41,7 +43,6 @@ #ifndef CONFIG_MODULE /* There is only the kernel to search. */ - register unsigned long gp __asm__("$29"); ret = search_one_table(__start___ex_table, __stop___ex_table - 1, addr - gp); if (ret) return ret; diff -u --recursive --new-file v2.1.22/linux/arch/i386/kernel/entry.S linux/arch/i386/kernel/entry.S --- v2.1.22/linux/arch/i386/kernel/entry.S Mon Dec 30 15:39:03 1996 +++ linux/arch/i386/kernel/entry.S Thu Jan 23 21:01:28 1997 @@ -630,6 +630,7 @@ .long SYMBOL_NAME(sys_getresuid) /* 165 */ .long SYMBOL_NAME(sys_vm86) .long SYMBOL_NAME(sys_query_module) - .rept NR_syscalls-167 + .long SYMBOL_NAME(sys_poll) + .rept NR_syscalls-168 .long SYMBOL_NAME(sys_ni_syscall) .endr diff -u --recursive --new-file v2.1.22/linux/drivers/block/ide-floppy.c linux/drivers/block/ide-floppy.c --- v2.1.22/linux/drivers/block/ide-floppy.c Thu Dec 12 19:36:59 1996 +++ linux/drivers/block/ide-floppy.c Sat Jan 25 20:51:17 1997 @@ -1,7 +1,7 @@ /* - * linux/drivers/block/ide-floppy.c Version 0.3 - ALPHA Dec 2, 1996 + * linux/drivers/block/ide-floppy.c Version 0.4 - ALPHA Jan 26, 1997 * - * Copyright (C) 1996 Gadi Oxman + * Copyright (C) 1996, 1997 Gadi Oxman */ /* @@ -16,6 +16,7 @@ * Ver 0.1 Oct 17 96 Initial test version, mostly based on ide-tape.c. * Ver 0.2 Oct 31 96 Minor changes. * Ver 0.3 Dec 2 96 Fixed error recovery bug. + * Ver 0.4 Jan 26 97 Add support for the HDIO_GETGEO ioctl. */ #include @@ -1048,6 +1049,9 @@ drive->name, capacity / 1024, page->cyls, page->heads, page->sectors, page->transfer_rate / 8, page->sector_size, page->rpm); floppy->flexible_disk_page = *page; + drive->bios_cyl = page->cyls; + drive->bios_head = page->heads; + drive->bios_sect = page->sectors; if (capacity != floppy->blocks * floppy->block_size) printk (KERN_NOTICE "%s: The drive reports both %d and %d bytes as its capacity\n", drive->name, capacity, floppy->blocks * floppy->block_size); diff -u --recursive --new-file v2.1.22/linux/drivers/block/ide-probe.c linux/drivers/block/ide-probe.c --- v2.1.22/linux/drivers/block/ide-probe.c Thu Dec 12 19:36:59 1996 +++ linux/drivers/block/ide-probe.c Sat Jan 25 20:51:17 1997 @@ -1,5 +1,5 @@ /* - * linux/drivers/block/ide-probe.c Version 1.0 Oct 31, 1996 + * linux/drivers/block/ide-probe.c Version 1.01 Jan 26, 1997 * * Copyright (C) 1994-1996 Linus Torvalds & authors (see below) */ @@ -36,7 +36,8 @@ * code is still sprinkled about. Think of it as a major evolution, with * inspiration from lots of linux users, esp. hamish@zot.apana.org.au * - * Version 1.0 move drive probing code from ide.c to ide-probe.c + * Version 1.00 move drive probing code from ide.c to ide-probe.c + * Version 1.01 fix compilation problem for m68k */ #undef REALLY_SLOW_IO /* most systems can safely undef this */ @@ -494,9 +495,7 @@ static int init_irq (ide_hwif_t *hwif) { unsigned long flags; -#if MAX_HWIFS > 1 unsigned int index; -#endif /* MAX_HWIFS > 1 */ ide_hwgroup_t *hwgroup; ide_hwif_t *match = NULL; diff -u --recursive --new-file v2.1.22/linux/drivers/block/ide.c linux/drivers/block/ide.c --- v2.1.22/linux/drivers/block/ide.c Mon Dec 30 15:39:04 1996 +++ linux/drivers/block/ide.c Sat Jan 25 20:51:17 1997 @@ -1,7 +1,7 @@ /* - * linux/drivers/block/ide.c Version 6.00 Dec 4, 1996 + * linux/drivers/block/ide.c Version 6.01 Jan 26, 1997 * - * Copyright (C) 1994-1996 Linus Torvalds & authors (see below) + * Copyright (C) 1994-1997 Linus Torvalds & authors (see below) */ #define _IDE_C /* needed by */ @@ -276,6 +276,8 @@ * fix bug in ide_error() * fix bug in the first ide_get_lock() call for Atari * don't flush leftover data for ATAPI devices + * Version 6.01 clear hwgroup->active while the hwgroup sleeps + * support HDIO_GETGEO for floppies * * Some additional driver compile-time options are in ide.h * @@ -1240,10 +1242,9 @@ sleep = jiffies + WAIT_MIN_SLEEP; hwgroup->timer.expires = sleep; add_timer(&hwgroup->timer); - } else { /* Ugly, but how can we sleep for the lock otherwise? perhaps from tq_scheduler? */ + } else /* Ugly, but how can we sleep for the lock otherwise? perhaps from tq_scheduler? */ ide_release_lock(&ide_lock); - hwgroup->active = 0; - } + hwgroup->active = 0; } /* @@ -1876,7 +1877,7 @@ case HDIO_GETGEO: { struct hd_geometry *loc = (struct hd_geometry *) arg; - if (!loc || drive->media != ide_disk) return -EINVAL; + if (!loc || (drive->media != ide_disk && drive->media != ide_floppy)) return -EINVAL; if (put_user(drive->bios_head, (byte *) &loc->heads)) return -EFAULT; if (put_user(drive->bios_sect, (byte *) &loc->sectors)) return -EFAULT; if (put_user(drive->bios_cyl, (unsigned short *) &loc->cylinders)) return -EFAULT; diff -u --recursive --new-file v2.1.22/linux/drivers/char/amigamouse.c linux/drivers/char/amigamouse.c --- v2.1.22/linux/drivers/char/amigamouse.c Sun Dec 22 16:37:31 1996 +++ linux/drivers/char/amigamouse.c Sat Jan 25 23:46:13 1997 @@ -11,13 +11,13 @@ * * Heavily modified by David Giller * changed from queue- to counter- driven - * hacked out a (probably incorrect) mouse_select + * hacked out a (probably incorrect) mouse_poll * * Modified again by Nathan Laredo to interface with * 0.96c-pl1 IRQ handling changes (13JUL92) - * didn't bother touching select code. + * didn't bother touching poll code. * - * Modified the select() code blindly to conform to the VFS + * Modified the poll() code blindly to conform to the VFS * requirements. 92.07.14 - Linus. Somebody should test it out. * * Modified by Johan Myreen to make room for other mice (9AUG92) @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -277,16 +278,14 @@ } /* - * select for mouse input + * poll for mouse input */ -static int mouse_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) +static unsigned int mouse_poll(struct file *file, poll_table * wait) { - if (sel_type == SEL_IN) { - if (mouse.ready) - return 1; - select_wait(&mouse.wait, wait); - } + poll_wait(&mouse.wait, wait); + if (mouse.ready) + return POLLIN | POLLRDNORM; return 0; } @@ -295,7 +294,7 @@ read_mouse, write_mouse, NULL, /* mouse_readdir */ - mouse_select, /* mouse_select */ + mouse_poll, /* mouse_poll */ NULL, /* mouse_ioctl */ NULL, /* mouse_mmap */ open_mouse, diff -u --recursive --new-file v2.1.22/linux/drivers/char/apm_bios.c linux/drivers/char/apm_bios.c --- v2.1.22/linux/drivers/char/apm_bios.c Mon Dec 30 15:39:06 1996 +++ linux/drivers/char/apm_bios.c Sat Jan 25 23:46:13 1997 @@ -302,8 +302,7 @@ static int do_open(struct inode *, struct file *); static void do_release(struct inode *, struct file *); static long do_read(struct inode *, struct file *, char *, unsigned long); -static int do_select(struct inode *, struct file *, int, - select_table *); +static unsigned int do_poll(struct file *, poll_table *); static int do_ioctl(struct inode *, struct file *, u_int, u_long); #ifdef CONFIG_PROC_FS @@ -360,7 +359,7 @@ do_read, NULL, /* write */ NULL, /* readdir */ - do_select, + do_poll, do_ioctl, NULL, /* mmap */ do_open, @@ -865,19 +864,16 @@ return 0; } -static int do_select(struct inode *inode, struct file *fp, int sel_type, - select_table * wait) +static unsigned int do_poll(struct file *fp, poll_table * wait) { - struct apm_bios_struct * as; + struct apm_bios_struct * as; as = fp->private_data; if (check_apm_bios_struct(as, "select")) return 0; - if (sel_type != SEL_IN) - return 0; + poll_wait(&process_list, wait); if (!queue_empty(as)) - return 1; - select_wait(&process_list, wait); + return POLLIN | POLLRDNORM; return 0; } diff -u --recursive --new-file v2.1.22/linux/drivers/char/mem.c linux/drivers/char/mem.c --- v2.1.22/linux/drivers/char/mem.c Thu Jan 23 21:06:47 1997 +++ linux/drivers/char/mem.c Sat Jan 25 23:46:13 1997 @@ -372,7 +372,7 @@ read_mem, write_mem, NULL, /* mem_readdir */ - NULL, /* mem_select */ + NULL, /* mem_poll */ NULL, /* mem_ioctl */ mmap_mem, NULL, /* no special open code */ @@ -385,7 +385,7 @@ read_kmem, write_kmem, NULL, /* kmem_readdir */ - NULL, /* kmem_select */ + NULL, /* kmem_poll */ NULL, /* kmem_ioctl */ mmap_kmem, NULL, /* no special open code */ @@ -398,7 +398,7 @@ read_null, write_null, NULL, /* null_readdir */ - NULL, /* null_select */ + NULL, /* null_poll */ NULL, /* null_ioctl */ NULL, /* null_mmap */ NULL, /* no special open code */ @@ -411,7 +411,7 @@ read_port, write_port, NULL, /* port_readdir */ - NULL, /* port_select */ + NULL, /* port_poll */ NULL, /* port_ioctl */ NULL, /* port_mmap */ NULL, /* no special open code */ @@ -424,7 +424,7 @@ read_zero, write_zero, NULL, /* zero_readdir */ - NULL, /* zero_select */ + NULL, /* zero_poll */ NULL, /* zero_ioctl */ mmap_zero, NULL, /* no special open code */ @@ -436,7 +436,7 @@ read_full, write_full, NULL, /* full_readdir */ - NULL, /* full_select */ + NULL, /* full_poll */ NULL, /* full_ioctl */ NULL, /* full_mmap */ NULL, /* no special open code */ @@ -483,7 +483,7 @@ NULL, /* read */ NULL, /* write */ NULL, /* readdir */ - NULL, /* select */ + NULL, /* poll */ NULL, /* ioctl */ NULL, /* mmap */ memory_open, /* just a selector for the real open */ diff -u --recursive --new-file v2.1.22/linux/drivers/char/n_tty.c linux/drivers/char/n_tty.c --- v2.1.22/linux/drivers/char/n_tty.c Thu Dec 12 19:37:01 1996 +++ linux/drivers/char/n_tty.c Sat Jan 25 23:46:13 1997 @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -982,37 +983,29 @@ return (b - buf) ? b - buf : retval; } -static int normal_select(struct tty_struct * tty, struct inode * inode, - struct file * file, int sel_type, select_table *wait) +static unsigned int normal_poll(struct tty_struct * tty, struct file * file, poll_table *wait) { - switch (sel_type) { - case SEL_IN: - if (input_available_p(tty, TIME_CHAR(tty) ? 0 : - MIN_CHAR(tty))) - return 1; - /* fall through */ - case SEL_EX: - if (tty->packet && tty->link->ctrl_status) - return 1; - if (tty->flags & (1 << TTY_OTHER_CLOSED)) - return 1; - if (tty_hung_up_p(file)) - return 1; - if (!waitqueue_active(&tty->read_wait)) { - if (MIN_CHAR(tty) && !TIME_CHAR(tty)) - tty->minimum_to_wake = MIN_CHAR(tty); - else - tty->minimum_to_wake = 1; - } - select_wait(&tty->read_wait, wait); - return 0; - case SEL_OUT: - if (tty->driver.chars_in_buffer(tty) < WAKEUP_CHARS) - return 1; - select_wait(&tty->write_wait, wait); - return 0; + unsigned int mask = 0; + + poll_wait(&tty->read_wait, wait); + poll_wait(&tty->write_wait, wait); + if (input_available_p(tty, TIME_CHAR(tty) ? 0 : MIN_CHAR(tty))) + mask |= POLLIN | POLLRDNORM; + if (tty->packet && tty->link->ctrl_status) + mask |= POLLPRI | POLLIN | POLLRDNORM; + if (tty->flags & (1 << TTY_OTHER_CLOSED)) + mask |= POLLHUP; + if (tty_hung_up_p(file)) + mask |= POLLHUP; + if (!(mask & (POLLHUP | POLLIN | POLLRDNORM))) { + if (MIN_CHAR(tty) && !TIME_CHAR(tty)) + tty->minimum_to_wake = MIN_CHAR(tty); + else + tty->minimum_to_wake = 1; } - return 0; + if (tty->driver.chars_in_buffer(tty) < WAKEUP_CHARS) + mask |= POLLOUT | POLLWRNORM; + return mask; } struct tty_ldisc tty_ldisc_N_TTY = { @@ -1027,7 +1020,7 @@ write_chan, /* write */ n_tty_ioctl, /* ioctl */ n_tty_set_termios, /* set_termios */ - normal_select, /* select */ + normal_poll, /* poll */ n_tty_receive_buf, /* receive_buf */ n_tty_receive_room, /* receive_room */ 0 /* write_wakeup */ diff -u --recursive --new-file v2.1.22/linux/drivers/char/psaux.c linux/drivers/char/psaux.c --- v2.1.22/linux/drivers/char/psaux.c Thu Dec 12 19:37:01 1996 +++ linux/drivers/char/psaux.c Sat Jan 25 23:46:13 1997 @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -494,13 +495,11 @@ } -static int aux_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) +static unsigned int aux_poll(struct file *file, poll_table * wait) { - if (sel_type != SEL_IN) - return 0; + poll_wait(&queue->proc_list, wait); if (aux_ready) - return 1; - select_wait(&queue->proc_list, wait); + return POLLIN | POLLRDNORM; return 0; } @@ -510,7 +509,7 @@ read_aux, write_aux, NULL, /* readdir */ - aux_select, + aux_poll, NULL, /* ioctl */ NULL, /* mmap */ open_aux, diff -u --recursive --new-file v2.1.22/linux/drivers/char/random.c linux/drivers/char/random.c --- v2.1.22/linux/drivers/char/random.c Tue Oct 29 19:58:06 1996 +++ linux/drivers/char/random.c Sat Jan 25 23:46:13 1997 @@ -233,6 +233,7 @@ #include #include #include +#include #include #include @@ -332,8 +333,7 @@ char * buf, unsigned long nbytes); static long random_read_unlimited(struct inode * inode, struct file * file, char * buf, unsigned long nbytes); -static int random_select(struct inode *inode, struct file *file, - int sel_type, select_table * wait); +static unsigned int random_poll(struct file *file, poll_table * wait); static long random_write(struct inode * inode, struct file * file, const char * buffer, unsigned long count); static int random_ioctl(struct inode * inode, struct file * file, @@ -1086,23 +1086,18 @@ return extract_entropy(&random_state, buf, nbytes, 1); } -static int -random_select(struct inode *inode, struct file *file, - int sel_type, select_table * wait) +static unsigned int +random_poll(struct file *file, poll_table * wait) { - switch (sel_type) { - case SEL_IN: - if (random_state.entropy_count >= 8) - return 1; - select_wait(&random_wait, wait); - break; - case SEL_OUT: - if (random_state.entropy_count < WAIT_OUTPUT_BITS) - return 1; - select_wait(&random_wait, wait); - break; - } - return 0; + unsigned int mask; + + poll_wait(&random_wait, wait); + mask = 0; + if (random_state.entropy_count >= 8) + mask |= POLLIN | POLLRDNORM; + if (random_state.entropy_count < WAIT_OUTPUT_BITS) + mask |= POLLOUT | POLLWRNORM; + return mask; } static long @@ -1270,7 +1265,7 @@ random_read, random_write, NULL, /* random_readdir */ - random_select, /* random_select */ + random_poll, /* random_poll */ random_ioctl, NULL, /* random_mmap */ NULL, /* no special open code */ @@ -1282,7 +1277,7 @@ random_read_unlimited, random_write, NULL, /* urandom_readdir */ - NULL, /* urandom_select */ + NULL, /* urandom_poll */ random_ioctl, NULL, /* urandom_mmap */ NULL, /* no special open code */ diff -u --recursive --new-file v2.1.22/linux/drivers/char/rtc.c linux/drivers/char/rtc.c --- v2.1.22/linux/drivers/char/rtc.c Sun Dec 22 16:37:31 1996 +++ linux/drivers/char/rtc.c Sat Jan 25 23:46:13 1997 @@ -75,8 +75,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); -static int rtc_select(struct inode *inode, struct file *file, - int sel_type, select_table *wait); +static unsigned int rtc_poll(struct file *file, poll_table *wait); void get_rtc_time (struct rtc_time *rtc_tm); void get_rtc_alm_time (struct rtc_time *alm_tm); @@ -492,14 +491,11 @@ rtc_status &= ~RTC_IS_OPEN; } -static int rtc_select(struct inode *inode, struct file *file, - int sel_type, select_table *wait) +static unsigned int rtc_poll(struct file *file, poll_table *wait) { - if (sel_type == SEL_IN) { - if (rtc_irq_data != 0) - return 1; - select_wait(&rtc_wait, wait); - } + poll_wait(&rtc_wait, wait); + if (rtc_irq_data != 0) + return POLLIN | POLLRDNORM; return 0; } @@ -512,7 +508,7 @@ rtc_read, NULL, /* No write */ NULL, /* No readdir */ - rtc_select, + rtc_poll, rtc_ioctl, NULL, /* No mmap */ rtc_open, diff -u --recursive --new-file v2.1.22/linux/drivers/char/tty_io.c linux/drivers/char/tty_io.c --- v2.1.22/linux/drivers/char/tty_io.c Thu Jan 2 15:55:16 1997 +++ linux/drivers/char/tty_io.c Sat Jan 25 23:46:13 1997 @@ -62,6 +62,7 @@ #include #include #include +#include #include #include @@ -110,7 +111,7 @@ static long tty_read(struct inode *, struct file *, char *, unsigned long); static long tty_write(struct inode *, struct file *, const char *, unsigned long); -static int tty_select(struct inode *, struct file *, int, select_table *); +static unsigned int tty_poll(struct file *, poll_table *); static int tty_open(struct inode *, struct file *); static void tty_release(struct inode *, struct file *); static int tty_ioctl(struct inode * inode, struct file * file, @@ -322,10 +323,9 @@ return -EIO; } -static int hung_up_tty_select(struct inode * inode, struct file * filp, - int sel_type, select_table * wait) +static unsigned int hung_up_tty_poll(struct file * filp, poll_table * wait) { - return 1; + return POLLIN | POLLOUT | POLLERR | POLLHUP | POLLRDNORM | POLLWRNORM; } static int hung_up_tty_ioctl(struct inode * inode, struct file * file, @@ -345,7 +345,7 @@ tty_read, tty_write, NULL, /* tty_readdir */ - tty_select, + tty_poll, tty_ioctl, NULL, /* tty_mmap */ tty_open, @@ -359,7 +359,7 @@ hung_up_tty_read, hung_up_tty_write, NULL, /* hung_up_tty_readdir */ - hung_up_tty_select, + hung_up_tty_poll, hung_up_tty_ioctl, NULL, /* hung_up_tty_mmap */ NULL, /* hung_up_tty_open */ @@ -1287,16 +1287,16 @@ release_dev(filp); } -static int tty_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait) +static unsigned int tty_poll(struct file * filp, poll_table * wait) { struct tty_struct * tty; tty = (struct tty_struct *)filp->private_data; - if (tty_paranoia_check(tty, inode->i_rdev, "tty_select")) + if (tty_paranoia_check(tty, filp->f_inode->i_rdev, "tty_poll")) return 0; - if (tty->ldisc.select) - return (tty->ldisc.select)(tty, inode, filp, sel_type, wait); + if (tty->ldisc.poll) + return (tty->ldisc.poll)(tty, filp, wait); return 0; } diff -u --recursive --new-file v2.1.22/linux/drivers/char/vc_screen.c linux/drivers/char/vc_screen.c --- v2.1.22/linux/drivers/char/vc_screen.c Wed Dec 18 15:58:47 1996 +++ linux/drivers/char/vc_screen.c Sat Jan 25 23:46:13 1997 @@ -243,7 +243,7 @@ vcs_read, /* read */ vcs_write, /* write */ NULL, /* readdir */ - NULL, /* select */ + NULL, /* poll */ NULL, /* ioctl */ NULL, /* mmap */ vcs_open, /* open */ diff -u --recursive --new-file v2.1.22/linux/drivers/pci/pci.c linux/drivers/pci/pci.c --- v2.1.22/linux/drivers/pci/pci.c Thu Jan 23 21:06:49 1997 +++ linux/drivers/pci/pci.c Fri Jan 24 20:57:22 1997 @@ -93,6 +93,7 @@ DEVICE( MATROX, MATROX_MGA_IMP, "MGA Impression"), DEVICE( CT, CT_65545, "65545"), DEVICE( CT, CT_65548, "65548"), + DEVICE( CT, CT_65550, "65550"), DEVICE( MIRO, MIRO_36050, "ZR36050"), DEVICE( FD, FD_36C70, "TMC-18C30"), DEVICE( SI, SI_6201, "6201"), diff -u --recursive --new-file v2.1.22/linux/drivers/scsi/Makefile linux/drivers/scsi/Makefile --- v2.1.22/linux/drivers/scsi/Makefile Wed Jan 15 19:45:41 1997 +++ linux/drivers/scsi/Makefile Fri Jan 24 19:35:50 1997 @@ -392,7 +392,7 @@ ./aic7xxx_asm -o $@ aic7xxx.seq seagate.o: seagate.c - $(CC) $(CFLAGS) -DARBITRATE -DSLOW_HANDSHAKE -DFAST32 -c seagate.c + $(CC) $(CFLAGS) -DARBITRATE -DSLOW_HANDSHAKE -DFAST32 -DPARITY -c seagate.c # For debugging, use the -g flag 53c7,8xx.o : 53c7,8xx.c diff -u --recursive --new-file v2.1.22/linux/drivers/scsi/ide-scsi.c linux/drivers/scsi/ide-scsi.c --- v2.1.22/linux/drivers/scsi/ide-scsi.c Mon Dec 30 15:39:11 1996 +++ linux/drivers/scsi/ide-scsi.c Sat Jan 25 20:51:17 1997 @@ -1,7 +1,7 @@ /* - * linux/drivers/scsi/ide-scsi.c Version 0.1 - ALPHA Dec 3, 1996 + * linux/drivers/scsi/ide-scsi.c Version 0.2 - ALPHA Jan 26, 1997 * - * Copyright (C) 1996 Gadi Oxman + * Copyright (C) 1996, 1997 Gadi Oxman */ /* @@ -11,6 +11,11 @@ * native IDE ATAPI drivers. * * Ver 0.1 Dec 3 96 Initial version. + * Ver 0.2 Jan 26 97 Fixed bug in cleanup_module() and added emulation + * of MODE_SENSE_6/MODE_SELECT_6 for cdroms. Thanks + * to Janos Farkas for pointing this out. + * Avoid using bitfields in structures for m68k. + * Added Scather/Gather and DMA support. */ #include @@ -44,49 +49,40 @@ struct request *rq; /* The corresponding request */ byte *buffer; /* Data buffer */ byte *current_position; /* Pointer into the above buffer */ + struct scatterlist *sg; /* Scather gather table */ + int b_count; /* Bytes transferred from current entry */ Scsi_Cmnd *scsi_cmd; /* SCSI command */ void (*done)(Scsi_Cmnd *); /* Scsi completion routine */ + unsigned int flags; /* Status/Action flags */ } idescsi_pc_t; +/* + * Packet command status bits. + */ +#define PC_DMA_IN_PROGRESS 0 /* 1 while DMA in progress */ +#define PC_WRITING 1 /* Data direction */ + typedef struct { ide_drive_t *drive; idescsi_pc_t *pc; /* Current packet command */ unsigned int flags; /* Status/Action flags */ } idescsi_scsi_t; +/* + * Per ATAPI device status bits. + */ #define IDESCSI_DRQ_INTERRUPT 0 /* DRQ interrupt device */ + +/* + * ide-scsi requests. + */ #define IDESCSI_PC_RQ 90 -typedef union { - unsigned all :8; - struct { - unsigned check :1; /* Error occurred */ - unsigned idx :1; /* Reserved */ - unsigned corr :1; /* Correctable error occurred */ - unsigned drq :1; /* Data is request by the device */ - unsigned dsc :1; /* Media access command finished */ - unsigned reserved5 :1; /* Reserved */ - unsigned drdy :1; /* Ignored for ATAPI commands (ready to accept ATA command) */ - unsigned bsy :1; /* The device has access to the command block */ - } b; -} idescsi_status_reg_t; - -typedef union { - unsigned all :16; - struct { - unsigned low :8; /* LSB */ - unsigned high :8; /* MSB */ - } b; -} idescsi_bcount_reg_t; - -typedef union { - unsigned all :8; - struct { - unsigned cod :1; /* Information transferred is command (1) or data (0) */ - unsigned io :1; /* The device requests us to read (1) or write (0) */ - unsigned reserved :6; /* Reserved */ - } b; -} idescsi_ireason_reg_t; +/* + * Bits of the interrupt reason register. + */ +#define IDESCSI_IREASON_COD 0x1 /* Information transferred is command */ +#define IDESCSI_IREASON_IO 0x2 /* The device requests us to read */ static void idescsi_discard_data (ide_drive_t *drive, unsigned int bcount) { @@ -94,6 +90,107 @@ IN_BYTE (IDE_DATA_REG); } +static void idescsi_output_zeros (ide_drive_t *drive, unsigned int bcount) +{ + while (bcount--) + OUT_BYTE (0, IDE_DATA_REG); +} + +/* + * PIO data transfer routines using the scather gather table. + */ +static void idescsi_input_buffers (ide_drive_t *drive, idescsi_pc_t *pc, unsigned int bcount) +{ + int count; + + while (bcount) { + if (pc->sg - (struct scatterlist *) pc->scsi_cmd->request_buffer > pc->scsi_cmd->use_sg) { + printk (KERN_ERR "ide-scsi: scather gather table too small, discarding data\n"); + idescsi_discard_data (drive, bcount); + return; + } + count = IDE_MIN (pc->sg->length - pc->b_count, bcount); + atapi_input_bytes (drive, pc->sg->address + pc->b_count, count); + bcount -= count; pc->b_count += count; + if (pc->b_count == pc->sg->length) { + pc->sg++; + pc->b_count = 0; + } + } +} + +static void idescsi_output_buffers (ide_drive_t *drive, idescsi_pc_t *pc, unsigned int bcount) +{ + int count; + + while (bcount) { + if (pc->sg - (struct scatterlist *) pc->scsi_cmd->request_buffer > pc->scsi_cmd->use_sg) { + printk (KERN_ERR "ide-scsi: scather gather table too small, padding with zeros\n"); + idescsi_output_zeros (drive, bcount); + return; + } + count = IDE_MIN (pc->sg->length - pc->b_count, bcount); + atapi_output_bytes (drive, pc->sg->address + pc->b_count, count); + bcount -= count; pc->b_count += count; + if (pc->b_count == pc->sg->length) { + pc->sg++; + pc->b_count = 0; + } + } +} + +/* + * Most of the SCSI commands are supported directly by ATAPI devices. + * idescsi_transform_pc handles the few exceptions. + */ +static inline void idescsi_transform_pc1 (ide_drive_t *drive, idescsi_pc_t *pc) +{ + u8 *c = pc->c, *buf = pc->buffer, *sc = pc->scsi_cmd->cmnd; + int i; + + if (drive->media == ide_cdrom) { + if (c[0] == READ_6) { + c[8] = c[4]; c[5] = c[3]; c[4] = c[2]; + c[3] = c[1] & 0x1f; c[2] = 0; c[1] &= 0xe0; + c[0] = READ_10; + } + if (c[0] == MODE_SENSE || (c[0] == MODE_SELECT && buf[3] == 8)) { + pc->request_transfer -= 4; + memset (c, 0, 12); + c[0] = sc[0] | 0x40; c[2] = sc[2]; c[8] = sc[4] - 4; + if (c[0] == MODE_SENSE_10) return; + for (i = 0; i <= 7; i++) buf[i] = 0; + for (i = 8; i < pc->buffer_size - 4; i++) buf[i] = buf[i + 4]; + } + } +} + +static inline void idescsi_transform_pc2 (ide_drive_t *drive, idescsi_pc_t *pc) +{ + u8 *buf = pc->buffer; + int i; + + if (drive->media == ide_cdrom) { + if (pc->c[0] == MODE_SENSE_10 && pc->scsi_cmd->cmnd[0] == MODE_SENSE) { + buf[0] = buf[1]; buf[1] = buf[2]; + buf[2] = 0; buf[3] = 8; + for (i = pc->buffer_size - 1; i >= 12; i--) buf[i] = buf[i - 4]; + for (i = 11; i >= 4; i--) buf[i] = 0; + } + } +} + +static inline void idescsi_free_bh (struct buffer_head *bh) +{ + struct buffer_head *bhp; + + while (bh) { + bhp = bh; + bh = bh->b_reqnext; + kfree (bhp); + } +} + static void idescsi_end_request (byte uptodate, ide_hwgroup_t *hwgroup) { ide_drive_t *drive = hwgroup->drive; @@ -121,18 +218,22 @@ printk ("ide-scsi: %s: success for %lu\n", drive->name, pc->scsi_cmd->serial_number); #endif /* IDESCSI_DEBUG_LOG */ pc->scsi_cmd->result = DID_OK << 16; + idescsi_transform_pc2 (drive, pc); } pc->done(pc->scsi_cmd); + idescsi_free_bh (rq->bh); kfree(pc); kfree(rq); scsi->pc = NULL; } +/* + * Our interrupt handler. + */ static void idescsi_pc_intr (ide_drive_t *drive) { idescsi_scsi_t *scsi = drive->driver_data; - idescsi_status_reg_t status; - idescsi_bcount_reg_t bcount; - idescsi_ireason_reg_t ireason; + byte status, ireason; + int bcount; idescsi_pc_t *pc=scsi->pc; struct request *rq = pc->rq; unsigned int temp; @@ -141,33 +242,40 @@ printk (KERN_INFO "ide-scsi: Reached idescsi_pc_intr interrupt handler\n"); #endif /* IDESCSI_DEBUG_LOG */ - status.all = GET_STAT(); /* Clear the interrupt */ + if (clear_bit (PC_DMA_IN_PROGRESS, &pc->flags)) { +#if IDESCSI_DEBUG_LOG + printk ("ide-scsi: %s: DMA complete\n", drive->name); +#endif /* IDESCSI_DEBUG_LOG */ + pc->actually_transferred=pc->request_transfer; + (void) (HWIF(drive)->dmaproc(ide_dma_abort, drive)); + } - if (!status.b.drq) { /* No more interrupts */ + status = GET_STAT(); /* Clear the interrupt */ + + if ((status & DRQ_STAT) == 0) { /* No more interrupts */ #if IDESCSI_DEBUG_LOG printk (KERN_INFO "Packet command completed, %d bytes transferred\n", pc->actually_transferred); #endif /* IDESCSI_DEBUG_LOG */ ide_sti(); - if (status.b.check) + if (status & ERR_STAT) rq->errors++; idescsi_end_request (1, HWGROUP(drive)); return; } - bcount.b.high=IN_BYTE (IDE_BCOUNTH_REG); - bcount.b.low=IN_BYTE (IDE_BCOUNTL_REG); - ireason.all=IN_BYTE (IDE_IREASON_REG); + bcount = IN_BYTE (IDE_BCOUNTH_REG) << 8 | IN_BYTE (IDE_BCOUNTL_REG); + ireason = IN_BYTE (IDE_IREASON_REG); - if (ireason.b.cod) { + if (ireason & IDESCSI_IREASON_COD) { printk (KERN_ERR "ide-scsi: CoD != 0 in idescsi_pc_intr\n"); ide_do_reset (drive); return; } - if (ireason.b.io) { - temp = pc->actually_transferred + bcount.all; + if (ireason & IDESCSI_IREASON_IO) { + temp = pc->actually_transferred + bcount; if ( temp > pc->request_transfer) { if (temp > pc->buffer_size) { printk (KERN_ERR "ide-scsi: The scsi wants to send us more data than expected - discarding data\n"); - idescsi_discard_data (drive,bcount.all); + idescsi_discard_data (drive,bcount); ide_set_handler (drive,&idescsi_pc_intr,WAIT_CMD); return; } @@ -176,12 +284,19 @@ #endif /* IDESCSI_DEBUG_LOG */ } } - if (ireason.b.io) - atapi_input_bytes (drive,pc->current_position,bcount.all); /* Read the current buffer */ - else - atapi_output_bytes (drive,pc->current_position,bcount.all); /* Write the current buffer */ - pc->actually_transferred+=bcount.all; /* Update the current position */ - pc->current_position+=bcount.all; + if (ireason & IDESCSI_IREASON_IO) { + if (pc->sg) + idescsi_input_buffers (drive, pc, bcount); + else + atapi_input_bytes (drive,pc->current_position,bcount); + } else { + if (pc->sg) + idescsi_output_buffers (drive, pc, bcount); + else + atapi_output_bytes (drive,pc->current_position,bcount); + } + pc->actually_transferred+=bcount; /* Update the current position */ + pc->current_position+=bcount; ide_set_handler (drive,&idescsi_pc_intr,WAIT_CMD); /* And set the interrupt handler again */ } @@ -189,14 +304,14 @@ static void idescsi_transfer_pc (ide_drive_t *drive) { idescsi_scsi_t *scsi = drive->driver_data; - idescsi_ireason_reg_t ireason; + byte ireason; if (ide_wait_stat (drive,DRQ_STAT,BUSY_STAT,WAIT_READY)) { printk (KERN_ERR "ide-scsi: Strange, packet command initiated yet DRQ isn't asserted\n"); return; } - ireason.all=IN_BYTE (IDE_IREASON_REG); - if (!ireason.b.cod || ireason.b.io) { + ireason = IN_BYTE (IDE_IREASON_REG); + if ((ireason & (IDESCSI_IREASON_IO | IDESCSI_IREASON_COD)) != IDESCSI_IREASON_COD) { printk (KERN_ERR "ide-scsi: (IO,CoD) != (0,1) while issuing a packet command\n"); ide_do_reset (drive); return; @@ -211,19 +326,28 @@ static void idescsi_issue_pc (ide_drive_t *drive, idescsi_pc_t *pc) { idescsi_scsi_t *scsi = drive->driver_data; - idescsi_bcount_reg_t bcount; + int bcount; + struct request *rq = pc->rq; + int dma_ok = 0; scsi->pc=pc; /* Set the current packet command */ pc->actually_transferred=0; /* We haven't transferred any data yet */ pc->current_position=pc->buffer; - bcount.all = IDE_MIN (pc->request_transfer, 63 * 1024); /* Request to transfer the entire buffer at once */ + bcount = IDE_MIN (pc->request_transfer, 63 * 1024); /* Request to transfer the entire buffer at once */ + + if (drive->using_dma && rq->bh) + dma_ok=!HWIF(drive)->dmaproc(test_bit (PC_WRITING, &pc->flags) ? ide_dma_write : ide_dma_read, drive); OUT_BYTE (drive->ctl,IDE_CONTROL_REG); - OUT_BYTE (0,IDE_FEATURE_REG); - OUT_BYTE (bcount.b.high,IDE_BCOUNTH_REG); - OUT_BYTE (bcount.b.low,IDE_BCOUNTL_REG); + OUT_BYTE (dma_ok,IDE_FEATURE_REG); + OUT_BYTE (bcount >> 8,IDE_BCOUNTH_REG); + OUT_BYTE (bcount & 0xff,IDE_BCOUNTL_REG); OUT_BYTE (drive->select.all,IDE_SELECT_REG); + if (dma_ok) { + set_bit (PC_DMA_IN_PROGRESS, &pc->flags); + (void) (HWIF(drive)->dmaproc(ide_dma_begin, drive)); + } if (test_bit (IDESCSI_DRQ_INTERRUPT, &scsi->flags)) { ide_set_handler (drive, &idescsi_transfer_pc, WAIT_CMD); OUT_BYTE (WIN_PACKETCMD, IDE_COMMAND_REG); /* Issue the packet command */ @@ -304,7 +428,7 @@ static ide_driver_t idescsi_driver = { ide_scsi, /* media */ 0, /* busy */ - 0, /* supports_dma */ + 1, /* supports_dma */ 0, /* supports_dsc_overlap */ idescsi_cleanup, /* cleanup */ idescsi_do_request, /* do_request */ @@ -389,23 +513,74 @@ return "SCSI host adapter emulation for IDE ATAPI devices"; } -/* - * Most of the SCSI commands are supported directly by ATAPI devices. - * idescsi_transform_pc handles the few exceptions. - */ -static inline void idescsi_transform_pc (ide_drive_t *drive, idescsi_pc_t *pc) +static inline struct buffer_head *idescsi_kmalloc_bh (int count) { - if (drive->media == ide_cdrom) { - if (pc->c[0] == READ_6) { - pc->c[8] = pc->c[4]; - pc->c[5] = pc->c[3]; - pc->c[4] = pc->c[2]; - pc->c[3] = pc->c[1] & 0x1f; - pc->c[2] = 0; - pc->c[1] &= 0xe0; - pc->c[0] = READ_10; + struct buffer_head *bh, *bhp, *first_bh; + + if ((first_bh = bhp = bh = kmalloc (sizeof(struct buffer_head), GFP_ATOMIC)) == NULL) + goto abort; + memset (bh, 0, sizeof (struct buffer_head)); + bh->b_reqnext = NULL; + while (--count) { + if ((bh = kmalloc (sizeof(struct buffer_head), GFP_ATOMIC)) == NULL) + goto abort; + memset (bh, 0, sizeof (struct buffer_head)); + bhp->b_reqnext = bh; + bhp = bh; + bh->b_reqnext = NULL; + } + return first_bh; +abort: + idescsi_free_bh (first_bh); + return NULL; +} + +static inline int idescsi_set_direction (idescsi_pc_t *pc) +{ + switch (pc->c[0]) { + case READ_6: case READ_10: case READ_12: + clear_bit (PC_WRITING, &pc->flags); + return 0; + case WRITE_6: case WRITE_10: case WRITE_12: + set_bit (PC_WRITING, &pc->flags); + return 0; + default: + return 1; + } +} + +static inline struct buffer_head *idescsi_dma_bh (ide_drive_t *drive, idescsi_pc_t *pc) +{ + struct buffer_head *bh = NULL, *first_bh = NULL; + int segments = pc->scsi_cmd->use_sg; + struct scatterlist *sg = pc->scsi_cmd->request_buffer; + + if (!drive->using_dma || pc->request_transfer % 1024) + return NULL; + if (idescsi_set_direction(pc)) + return NULL; + if (segments) { + if ((first_bh = bh = idescsi_kmalloc_bh (segments)) == NULL) + return NULL; +#if IDESCSI_DEBUG_LOG + printk ("ide-scsi: %s: building DMA table, %d segments, %dkB total\n", drive->name, segments, pc->request_transfer >> 10); +#endif /* IDESCSI_DEBUG_LOG */ + while (segments--) { + bh->b_data = sg->address; + bh->b_size = sg->length; + bh = bh->b_reqnext; + sg++; } + } else { + if ((first_bh = bh = idescsi_kmalloc_bh (1)) == NULL) + return NULL; +#if IDESCSI_DEBUG_LOG + printk ("ide-scsi: %s: building DMA table for a single buffer (%dkB)\n", drive->name, pc->request_transfer >> 10); +#endif /* IDESCSI_DEBUG_LOG */ + bh->b_data = pc->scsi_cmd->request_buffer; + bh->b_size = pc->request_transfer; } + return first_bh; } int idescsi_queue (Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *)) @@ -430,16 +605,25 @@ } memset (pc->c, 0, 12); + pc->flags = 0; pc->rq = rq; memcpy (pc->c, cmd->cmnd, cmd->cmd_len); - pc->buffer = cmd->request_buffer; + if (cmd->use_sg) { + pc->buffer = NULL; + pc->sg = cmd->request_buffer; + } else { + pc->buffer = cmd->request_buffer; + pc->sg = NULL; + } + pc->b_count = 0; pc->request_transfer = pc->buffer_size = cmd->request_bufflen; pc->scsi_cmd = cmd; pc->done = done; - idescsi_transform_pc (drive, pc); + idescsi_transform_pc1 (drive, pc); ide_init_drive_cmd (rq); rq->buffer = (char *) pc; + rq->bh = idescsi_dma_bh (drive, pc); rq->cmd = IDESCSI_PC_RQ; (void) ide_do_drive_cmd (drive, rq, ide_end); return 0; @@ -481,7 +665,7 @@ scsi_unregister_module (MODULE_SCSI_HA, &idescsi_template); for (i = 0; media[i] != 255; i++) { failed = 0; - while ((drive = ide_scan_devices (media[i], &idescsi_driver, failed++)) != NULL) + while ((drive = ide_scan_devices (media[i], &idescsi_driver, failed)) != NULL) if (idescsi_cleanup (drive)) { printk ("%s: cleanup_module() called while still busy\n", drive->name); failed++; diff -u --recursive --new-file v2.1.22/linux/drivers/scsi/ide-scsi.h linux/drivers/scsi/ide-scsi.h --- v2.1.22/linux/drivers/scsi/ide-scsi.h Thu Dec 12 19:37:07 1996 +++ linux/drivers/scsi/ide-scsi.h Sat Jan 25 20:51:17 1997 @@ -1,7 +1,7 @@ /* * linux/drivers/scsi/ide-scsi.h * - * Copyright (C) 1996 Gadi Oxman + * Copyright (C) 1996, 1997 Gadi Oxman */ #ifndef IDESCSI_H @@ -31,7 +31,7 @@ NULL, /* bios_param */ \ 10, /* can_queue */ \ -1, /* this_id */ \ - SG_NONE, /* sg_tablesize */ \ + 256, /* sg_tablesize */ \ 5, /* cmd_per_lun */ \ 0, /* present */ \ 0, /* isa_dma */ \ diff -u --recursive --new-file v2.1.22/linux/drivers/scsi/seagate.c linux/drivers/scsi/seagate.c --- v2.1.22/linux/drivers/scsi/seagate.c Thu Dec 12 19:37:07 1996 +++ linux/drivers/scsi/seagate.c Fri Jan 24 19:35:51 1997 @@ -43,20 +43,41 @@ * will configure the driver for a TMC-8xx style controller using IRQ 15 * with a base address of 0xC8000. * - * -DFAST or -DFAST32 will use blind transfers where possible - * - * -DARBITRATE will cause the host adapter to arbitrate for the + * -DARBITRATE + * Will cause the host adapter to arbitrate for the * bus for better SCSI-II compatibility, rather than just * waiting for BUS FREE and then doing its thing. Should * let us do one command per Lun when I integrate my * reorganization changes into the distribution sources. * - * -DSLOW_HANDSHAKE will allow compatibility with broken devices that don't + * -DDEBUG + * Will activate debug code. + * + * -DFAST or -DFAST32 + * Will use blind transfers where possible + * + * -DPARITY + * This will enable parity. + * + * -DSEAGATE_USE_ASM + * Will use older seagate assembly code. should be (very small amount) + * Faster. + * + * -DSLOW_HANDSHAKE + * Will allow compatibility with broken devices that don't * handshake fast enough (ie, some CD ROM's) for the Seagate * code. * - * -DSLOW_RATE=x, x some number will let you specify a default + * -DSLOW_RATE=x + * x is some number, It will let you specify a default * transfer rate if handshaking isn't working correctly. + * + * The following to options are patches from the SCSI.HOWTO + * + * -DSWAPSTAT This will swap the definitions for STAT_MSG and STAT_CD. + * + * -DSWAPCNTDATA This will swap the order that seagate.c messes with + * the CONTROL an DATA registers. */ #include @@ -396,8 +417,8 @@ #ifdef ARBITRATE " ARBITRATE" #endif -#ifdef SLOW_HANDSHAKE - " SLOW_HANDSHAKE" +#ifdef DEBUG + " DEBUG" #endif #ifdef FAST #ifdef FAST32 @@ -409,6 +430,21 @@ #ifdef LINKED " LINKED" #endif +#ifdef PARITY + " PARITY" +#endif +#ifdef SEAGATE_USE_ASM + " SEAGATE_USE_ASM" +#endif +#ifdef SLOW_HANDSHAKE + " SLOW_HANDSHAKE" +#endif +#ifdef SWAPSTAT + " SWAPSTAT" +#endif +#ifdef SWAPCNTDATA + " SWAPCNTDATA" +#endif "\n", tpnt->name); return 1; } @@ -926,12 +962,21 @@ * try this with a SCSI protocol or logic analyzer to see what is * going on. */ +#ifdef SWAPCNTDATA + cli(); + WRITE_CONTROL (BASE_CMD | CMD_DRVR_ENABLE | CMD_SEL | + (reselect ? CMD_ATTN : 0)); + WRITE_DATA ((unsigned char) ((1 << target) | + (controller_type == SEAGATE ? 0x80 : 0x40))); + sti(); +#else cli (); WRITE_DATA ((unsigned char) ((1 << target) | (controller_type == SEAGATE ? 0x80 : 0x40))); WRITE_CONTROL (BASE_CMD | CMD_DRVR_ENABLE | CMD_SEL | (reselect ? CMD_ATTN : 0)); sti (); +#endif while (!((status_read = STATUS) & STAT_BSY) && (jiffies < clock) && !st0x_aborted) #if 0 && (DEBUG & PHASE_SELECTION) diff -u --recursive --new-file v2.1.22/linux/drivers/scsi/seagate.h linux/drivers/scsi/seagate.h --- v2.1.22/linux/drivers/scsi/seagate.h Mon May 27 13:37:18 1996 +++ linux/drivers/scsi/seagate.h Fri Jan 24 19:35:51 1997 @@ -37,14 +37,6 @@ 1, 7, SG_ALL, 1, 0, 0, DISABLE_CLUSTERING} #endif - -/* - defining PARITY causes parity data to be checked -*/ - -#define PARITY - - /* Thanks to Brian Antoine for the example code in his Messy-Loss ST-01 driver, and Mitsugu Suzuki for information on the ST-01 @@ -67,11 +59,16 @@ /* STATUS */ +#ifdef SWAPSTAT + #define STAT_MSG 0x08 + #define STAT_CD 0x02 +#else + #define STAT_MSG 0x02 + #define STAT_CD 0x08 +#endif #define STAT_BSY 0x01 -#define STAT_MSG 0x02 #define STAT_IO 0x04 -#define STAT_CD 0x08 #define STAT_REQ 0x10 #define STAT_SEL 0x20 #define STAT_PARITY 0x40 diff -u --recursive --new-file v2.1.22/linux/fs/devices.c linux/fs/devices.c --- v2.1.22/linux/fs/devices.c Wed Jan 15 19:45:43 1997 +++ linux/fs/devices.c Sat Jan 25 23:46:13 1997 @@ -253,7 +253,7 @@ NULL, /* read */ NULL, /* write */ NULL, /* readdir */ - NULL, /* select */ + NULL, /* poll */ NULL, /* ioctl */ NULL, /* mmap */ blkdev_open, /* open */ @@ -306,7 +306,7 @@ NULL, /* read */ NULL, /* write */ NULL, /* readdir */ - NULL, /* select */ + NULL, /* poll */ NULL, /* ioctl */ NULL, /* mmap */ chrdev_open, /* open */ diff -u --recursive --new-file v2.1.22/linux/fs/ext2/symlink.c linux/fs/ext2/symlink.c --- v2.1.22/linux/fs/ext2/symlink.c Thu Jan 23 21:06:49 1997 +++ linux/fs/ext2/symlink.c Sat Jan 25 13:02:44 1997 @@ -122,12 +122,11 @@ } else link = (char *) inode->u.ext2_i.i_data; - - /* XXX I hope link is always '\0'-terminated. */ - i = strlen(link); - if (i >= buflen) - i = buflen-1; - if (copy_to_user(buffer, link, i+1)) + + i = 0; + while (i < buflen && link[i]) + i++; + if (copy_to_user(buffer, link, i)) i = -EFAULT; if (DO_UPDATE_ATIME(inode)) { inode->i_atime = CURRENT_TIME; diff -u --recursive --new-file v2.1.22/linux/fs/nfs/rpcsock.c linux/fs/nfs/rpcsock.c --- v2.1.22/linux/fs/nfs/rpcsock.c Thu Jan 23 21:06:51 1997 +++ linux/fs/nfs/rpcsock.c Sat Jan 25 23:46:13 1997 @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -159,21 +160,20 @@ /* * This code is slightly complicated. Since the networking code does not - * honor the current->timeout value, we have to select on the socket. + * honor the current->timeout value, we have to poll on the socket. */ static inline int rpc_select(struct rpc_sock *rsock) { - struct select_table_entry entry; + struct poll_table_entry entry; struct file *file = rsock->file; - select_table wait_table; + poll_table wait_table; - dprintk("RPC: selecting on socket...\n"); + dprintk("RPC: polling socket...\n"); wait_table.nr = 0; wait_table.entry = &entry; current->state = TASK_INTERRUPTIBLE; - if (!file->f_op->select(file->f_inode, file, SEL_IN, &wait_table) - && !file->f_op->select(file->f_inode, file, SEL_IN, NULL)) { + if (!(file->f_op->poll(file, &wait_table) & POLLIN)) { schedule(); remove_wait_queue(entry.wait_address, &entry.wait); current->state = TASK_RUNNING; diff -u --recursive --new-file v2.1.22/linux/fs/pipe.c linux/fs/pipe.c --- v2.1.22/linux/fs/pipe.c Thu Jan 2 15:55:23 1997 +++ linux/fs/pipe.c Sat Jan 25 23:46:13 1997 @@ -12,6 +12,7 @@ #include #include +#include #include /* @@ -159,57 +160,43 @@ } } -static int pipe_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait) +static unsigned int pipe_poll(struct file * filp, poll_table * wait) { - switch (sel_type) { - case SEL_IN: - if (!PIPE_EMPTY(*inode) || !PIPE_WRITERS(*inode)) - return 1; - select_wait(&PIPE_WAIT(*inode), wait); - return 0; - case SEL_OUT: - if (PIPE_EMPTY(*inode) || !PIPE_READERS(*inode)) - return 1; - select_wait(&PIPE_WAIT(*inode), wait); - return 0; - case SEL_EX: - if (!PIPE_READERS(*inode) || !PIPE_WRITERS(*inode)) - return 1; - select_wait(&inode->i_wait,wait); - return 0; - } - return 0; + unsigned int mask; + struct inode * inode = filp->f_inode; + + poll_wait(&PIPE_WAIT(*inode), wait); + mask = POLLIN | POLLRDNORM; + if (PIPE_EMPTY(*inode)) + mask = POLLOUT | POLLWRNORM; + if (!PIPE_WRITERS(*inode)) + mask |= POLLHUP; + if (!PIPE_READERS(*inode)) + mask |= POLLERR; + return mask; } #ifdef FIFO_SUNOS_BRAINDAMAGE /* * Arggh. Why does SunOS have to have different select() behaviour - * for pipes and fifos? Hate-Hate-Hate. See difference in SEL_IN.. + * for pipes and fifos? Hate-Hate-Hate. SunOS lacks POLLHUP.. */ -static int fifo_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait) +static unsigned int fifo_poll(struct file * filp, poll_table * wait) { - switch (sel_type) { - case SEL_IN: - if (!PIPE_EMPTY(*inode)) - return 1; - select_wait(&PIPE_WAIT(*inode), wait); - return 0; - case SEL_OUT: - if (!PIPE_FULL(*inode) || !PIPE_READERS(*inode)) - return 1; - select_wait(&PIPE_WAIT(*inode), wait); - return 0; - case SEL_EX: - if (!PIPE_READERS(*inode) || !PIPE_WRITERS(*inode)) - return 1; - select_wait(&inode->i_wait,wait); - return 0; - } - return 0; + unsigned int mask; + struct inode * inode = filp->f_inode; + + poll_wait(&PIPE_WAIT(*inode), wait); + mask = POLLIN | POLLRDNORM; + if (PIPE_EMPTY(*inode)) + mask = POLLOUT | POLLWRNORM; + if (!PIPE_READERS(*inode)) + mask |= POLLERR; + return mask; } #else -#define fifo_select pipe_select +#define fifo_poll pipe_poll #endif /* FIFO_SUNOS_BRAINDAMAGE */ @@ -227,31 +214,18 @@ return pipe_read(inode,filp,buf,count); } -static int connect_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait) +static unsigned int connect_poll(struct file * filp, poll_table * wait) { - switch (sel_type) { - case SEL_IN: - if (!PIPE_EMPTY(*inode)) { - filp->f_op = &read_fifo_fops; - return 1; - } - if (PIPE_WRITERS(*inode)) { - filp->f_op = &read_fifo_fops; - } - select_wait(&PIPE_WAIT(*inode), wait); - return 0; - case SEL_OUT: - if (!PIPE_FULL(*inode)) - return 1; - select_wait(&PIPE_WAIT(*inode), wait); - return 0; - case SEL_EX: - if (!PIPE_READERS(*inode) || !PIPE_WRITERS(*inode)) - return 1; - select_wait(&inode->i_wait,wait); - return 0; + struct inode * inode = filp->f_inode; + + poll_wait(&PIPE_WAIT(*inode), wait); + if (!PIPE_EMPTY(*inode)) { + filp->f_op = &read_fifo_fops; + return POLLIN | POLLRDNORM; } - return 0; + if (PIPE_WRITERS(*inode)) + filp->f_op = &read_fifo_fops; + return POLLOUT | POLLWRNORM; } static void pipe_read_release(struct inode * inode, struct file * filp) @@ -305,7 +279,7 @@ connect_read, bad_pipe_w, NULL, /* no readdir */ - connect_select, + connect_poll, pipe_ioctl, NULL, /* no mmap on pipes.. surprise */ pipe_read_open, @@ -318,7 +292,7 @@ pipe_read, bad_pipe_w, NULL, /* no readdir */ - fifo_select, + fifo_poll, pipe_ioctl, NULL, /* no mmap on pipes.. surprise */ pipe_read_open, @@ -331,7 +305,7 @@ bad_pipe_r, pipe_write, NULL, /* no readdir */ - fifo_select, + fifo_poll, pipe_ioctl, NULL, /* mmap */ pipe_write_open, @@ -344,7 +318,7 @@ pipe_read, pipe_write, NULL, /* no readdir */ - fifo_select, + fifo_poll, pipe_ioctl, NULL, /* mmap */ pipe_rdwr_open, @@ -357,7 +331,7 @@ pipe_read, bad_pipe_w, NULL, /* no readdir */ - pipe_select, + pipe_poll, pipe_ioctl, NULL, /* no mmap on pipes.. surprise */ pipe_read_open, @@ -370,7 +344,7 @@ bad_pipe_r, pipe_write, NULL, /* no readdir */ - pipe_select, + pipe_poll, pipe_ioctl, NULL, /* mmap */ pipe_write_open, @@ -383,7 +357,7 @@ pipe_read, pipe_write, NULL, /* no readdir */ - pipe_select, + pipe_poll, pipe_ioctl, NULL, /* mmap */ pipe_rdwr_open, diff -u --recursive --new-file v2.1.22/linux/fs/proc/kmsg.c linux/fs/proc/kmsg.c --- v2.1.22/linux/fs/proc/kmsg.c Tue Oct 29 19:58:44 1996 +++ linux/fs/proc/kmsg.c Sat Jan 25 23:46:13 1997 @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -34,13 +35,11 @@ return sys_syslog(2,buf,count); } -static int kmsg_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) +static unsigned int kmsg_poll(struct file *file, poll_table * wait) { - if (sel_type != SEL_IN) - return 0; + poll_wait(&log_wait, wait); if (log_size) - return 1; - select_wait(&log_wait, wait); + return POLLIN | POLLRDNORM; return 0; } @@ -50,7 +49,7 @@ kmsg_read, NULL, /* kmsg_write */ NULL, /* kmsg_readdir */ - kmsg_select, /* kmsg_select */ + kmsg_poll, /* kmsg_poll */ NULL, /* kmsg_ioctl */ NULL, /* mmap */ kmsg_open, diff -u --recursive --new-file v2.1.22/linux/fs/select.c linux/fs/select.c --- v2.1.22/linux/fs/select.c Tue Dec 31 21:41:08 1996 +++ linux/fs/select.c Sat Jan 25 23:46:13 1997 @@ -1,5 +1,5 @@ /* - * This file contains the procedures for the handling of select + * This file contains the procedures for the handling of select and poll * * Created for Linux based loosely upon Mathius Lattner's minix * patches by Peter MacDonald. Heavily edited by Linus. @@ -21,11 +21,14 @@ #include #include #include +#include #include #include +#include #define ROUND_UP(x,y) (((x)+(y)-1)/(y)) +#define DEFAULT_POLLMASK (POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM) /* * Ok, Peter made a complicated, but straightforward multiple_wait() function. @@ -34,20 +37,20 @@ * understand what I'm doing here, then you understand how the linux * sleep/wakeup mechanism works. * - * Two very simple procedures, select_wait() and free_wait() make all the work. - * select_wait() is an inline-function defined in , as all select - * functions have to call it to add an entry to the select table. + * Two very simple procedures, poll_wait() and free_wait() make all the work. + * poll_wait() is an inline-function defined in , as all select/poll + * functions have to call it to add an entry to the poll table. */ /* - * I rewrote this again to make the select_table size variable, take some + * I rewrote this again to make the poll_table size variable, take some * more shortcuts, improve responsiveness, and remove another race that * Linus noticed. -- jrs */ -static void free_wait(select_table * p) +static void free_wait(poll_table * p) { - struct select_table_entry * entry = p->entry + p->nr; + struct poll_table_entry * entry = p->entry + p->nr; while (p->nr > 0) { p->nr--; @@ -57,34 +60,6 @@ } /* - * The check function checks the ready status of a file using the vfs layer. - * - * If the file was not ready we were added to its wait queue. But in - * case it became ready just after the check and just before it called - * select_wait, we call it again, knowing we are already on its - * wait queue this time. The second call is not necessary if the - * select_table is NULL indicating an earlier file check was ready - * and we aren't going to sleep on the select_table. -- jrs - */ - -static inline int __check( - int (*select) (struct inode *, struct file *, int, select_table *), - struct inode *inode, - struct file *file, - int flag, - select_table * wait) -{ - return select(inode, file, flag, wait) || - (wait && select(inode, file, flag, NULL)); -} - -#define check(flag,wait,file) \ -(((file)->f_op && (file)->f_op->select) ? \ - __check((file)->f_op->select,(file)->f_inode,file,flag,wait) \ - : \ - (flag != SEL_EX)) - -/* * Due to kernel stack usage, we use a _limited_ fd_set type here, and once * we really start supporting >256 file descriptors we'll probably have to * allocate the kernel fd_set copies dynamically.. (The kernel select routines @@ -154,11 +129,15 @@ #define ISSET(i,m) (((i)&*(m)) != 0) #define SET(i,m) (*(m) |= (i)) +#define POLLIN_SET (POLLRDNORM | POLLRDBAND | POLLIN | POLLHUP | POLLERR) +#define POLLOUT_SET (POLLWRBAND | POLLWRNORM | POLLOUT | POLLERR) +#define POLLEX_SET (POLLPRI) + static int do_select(int n, fd_set_buffer *fds) { int retval; - select_table wait_table, *wait; - struct select_table_entry *entry; + poll_table wait_table, *wait; + struct poll_table_entry *entry; int i; retval = max_select_fd(n, fds); @@ -166,7 +145,8 @@ goto out; n = retval; retval = -ENOMEM; - if(!(entry = (struct select_table_entry*) __get_free_page(GFP_KERNEL))) + entry = (struct poll_table_entry *) __get_free_page(GFP_KERNEL); + if (!entry) goto out; retval = 0; wait_table.nr = 0; @@ -178,24 +158,30 @@ for (i = 0 ; i < n ; i++,fd++) { unsigned long bit = BIT(i); unsigned long *in = MEM(i,fds->in); - struct file * file = *fd; - if (!file) - continue; - if (ISSET(bit,__IN(in)) && check(SEL_IN,wait,file)) { - SET(bit, __RES_IN(in)); - retval++; - wait = NULL; - } - if (ISSET(bit,__OUT(in)) && check(SEL_OUT,wait,file)) { - SET(bit, __RES_OUT(in)); - retval++; - wait = NULL; - } - if (ISSET(bit,__EX(in)) && check(SEL_EX,wait,file)) { - SET(bit, __RES_EX(in)); - retval++; - wait = NULL; + if (bit & BITS(in)) { + struct file * file = *fd; + unsigned int mask = POLLNVAL; + if (file) { + mask = DEFAULT_POLLMASK; + if (file->f_op && file->f_op->poll) + mask = file->f_op->poll(file, wait); + } + if ((mask & POLLIN_SET) && ISSET(bit, __IN(in))) { + SET(bit, __RES_IN(in)); + retval++; + wait = NULL; + } + if ((mask & POLLOUT_SET) && ISSET(bit, __OUT(in))) { + SET(bit, __RES_OUT(in)); + retval++; + wait = NULL; + } + if ((mask & POLLEX_SET) && ISSET(bit, __EX(in))) { + SET(bit, __RES_EX(in)); + retval++; + wait = NULL; + } } } wait = NULL; @@ -343,4 +329,96 @@ set_fd_set(n, exp, &fds.res_ex); out: return error; +} + +static int do_poll(unsigned int nfds, struct pollfd *fds, poll_table *wait) +{ + int count; + struct file ** fd = current->files->fd; + + count = 0; + for (;;) { + unsigned int j; + struct pollfd * fdpnt; + + current->state = TASK_INTERRUPTIBLE; + for (fdpnt = fds, j = 0; j < nfds; j++, fdpnt++) { + unsigned int i; + unsigned int mask; + struct file * file; + + mask = POLLNVAL; + i = fdpnt->fd; + if (i < NR_OPEN && (file = fd[i]) != NULL) { + mask = DEFAULT_POLLMASK; + if (file->f_op && file->f_op->poll) + mask = file->f_op->poll(file, wait); + mask &= fdpnt->events | POLLERR | POLLHUP; + } + if (mask) { + wait = NULL; + count++; + } + fdpnt->revents = mask; + } + + wait = NULL; + if (count || !current->timeout || (current->signal & ~current->blocked)) + break; + schedule(); + } + current->state = TASK_RUNNING; + return count; +} + +asmlinkage int sys_poll(struct pollfd * ufds, unsigned int nfds, int timeout) +{ + int i, count, fdcount; + struct pollfd * fds, *fds1; + poll_table wait_table; + struct poll_table_entry *entry; + + if (nfds > NR_OPEN) + return -EINVAL; + + entry = (struct poll_table_entry *) __get_free_page(GFP_KERNEL); + if (!entry) + return -ENOMEM; + fds = (struct pollfd *) kmalloc(nfds*sizeof(struct pollfd), GFP_KERNEL); + if (!fds) { + free_page((unsigned long) entry); + return -ENOMEM; + } + + if (copy_from_user(fds, ufds, nfds*sizeof(struct pollfd))) { + free_page((unsigned long)entry); + kfree(fds); + return -EFAULT; + } + + if (timeout < 0) + timeout = 0x7fffffff; + else if (timeout) + timeout = ((unsigned long)timeout*HZ+999)/1000+jiffies+1; + current->timeout = timeout; + + count = 0; + wait_table.nr = 0; + wait_table.entry = entry; + + fdcount = do_poll(nfds, fds, &wait_table); + current->timeout = 0; + + free_wait(&wait_table); + free_page((unsigned long) entry); + + /* OK, now copy the revents fields back to user space. */ + fds1 = fds; + for(i=0; i < (int)nfds; i++, ufds++, fds++) { + __put_user(fds->revents, &ufds->revents); + } + kfree(fds1); + if (!fdcount && (current->signal & ~current->blocked)) + fdcount = -EINTR; + return fdcount; } diff -u --recursive --new-file v2.1.22/linux/include/asm-alpha/poll.h linux/include/asm-alpha/poll.h --- v2.1.22/linux/include/asm-alpha/poll.h Thu Jan 1 02:00:00 1970 +++ linux/include/asm-alpha/poll.h Thu Jan 23 21:01:28 1997 @@ -0,0 +1,22 @@ +#ifndef __ALPHA_POLL_H +#define __ALPHA_POLL_H + +#define POLLIN 1 +#define POLLPRI 2 +#define POLLOUT 4 +#define POLLERR 8 +#define POLLHUP 16 +#define POLLNVAL 32 +#define POLLRDNORM 64 +#define POLLRDBAND 128 +#define POLLWRNORM 256 +#define POLLWRBAND 512 +#define POLLMSG 1024 + +struct pollfd { + int fd; + short events; + short revents; +}; + +#endif diff -u --recursive --new-file v2.1.22/linux/include/asm-alpha/unistd.h linux/include/asm-alpha/unistd.h --- v2.1.22/linux/include/asm-alpha/unistd.h Mon Dec 30 15:39:14 1996 +++ linux/include/asm-alpha/unistd.h Thu Jan 23 21:01:28 1997 @@ -1,54 +1,92 @@ #ifndef _ALPHA_UNISTD_H #define _ALPHA_UNISTD_H +#define __NR_osf_syscall 0 /* not implemented */ #define __NR_exit 1 #define __NR_fork 2 #define __NR_read 3 #define __NR_write 4 +#define __NR_osf_old_open 5 /* not implemented */ #define __NR_close 6 #define __NR_wait4 7 +#define __NR_osf_old_creat 8 /* not implemented */ #define __NR_link 9 #define __NR_unlink 10 +#define __NR_osf_execve 11 /* not implemented */ #define __NR_chdir 12 #define __NR_fchdir 13 #define __NR_mknod 14 #define __NR_chmod 15 #define __NR_chown 16 #define __NR_brk 17 +#define __NR_osf_getfsstat 18 /* not implemented */ #define __NR_lseek 19 #define __NR_getxpid 20 +#define __NR_osf_mount 21 +#define __NR_osf_umount 22 #define __NR_setuid 23 #define __NR_getxuid 24 +#define __NR_exec_with_loader 25 /* not implemented */ #define __NR_ptrace 26 +#define __NR_osf_nrecvmsg 27 /* not implemented */ +#define __NR_osf_nsendmsg 28 /* not implemented */ +#define __NR_osf_nrecvfrom 29 /* not implemented */ +#define __NR_osf_naccept 30 /* not implemented */ +#define __NR_osf_ngetpeername 31 /* not implemented */ +#define __NR_osf_ngetsockname 32 /* not implemented */ #define __NR_access 33 +#define __NR_osf_chflags 34 /* not implemented */ +#define __NR_osf_fchflags 35 /* not implemented */ #define __NR_sync 36 #define __NR_kill 37 +#define __NR_osf_old_stat 38 /* not implemented */ #define __NR_setpgid 39 +#define __NR_osf_old_lstat 40 /* not implemented */ #define __NR_dup 41 #define __NR_pipe 42 +#define __NR_osf_set_program_attributes 43 +#define __NR_osf_profil 44 /* not implemented */ #define __NR_open 45 +#define __NR_osf_old_sigaction 46 /* not implemented */ #define __NR_getxgid 47 +#define __NR_osf_sigprocmask 48 +#define __NR_osf_getlogin 49 /* not implemented */ +#define __NR_osf_setlogin 50 /* not implemented */ #define __NR_acct 51 #define __NR_sigpending 52 + #define __NR_ioctl 54 +#define __NR_osf_reboot 55 /* not implemented */ +#define __NR_osf_revoke 56 /* not implemented */ #define __NR_symlink 57 #define __NR_readlink 58 #define __NR_execve 59 #define __NR_umask 60 #define __NR_chroot 61 +#define __NR_osf_old_fstat 62 /* not implemented */ #define __NR_getpgrp 63 #define __NR_getpagesize 64 +#define __NR_osf_mremap 65 /* not implemented */ +#define __NR_osf_vfork 66 #define __NR_stat 67 #define __NR_lstat 68 +#define __NR_osf_sbrk 69 /* not implemented */ +#define __NR_osf_sstk 70 /* not implemented */ #define __NR_mmap 71 /* OSF/1 mmap is superset of Linux */ +#define __NR_osf_old_vadvise 72 /* not implemented */ #define __NR_munmap 73 #define __NR_mprotect 74 #define __NR_madvise 75 #define __NR_vhangup 76 +#define __NR_osf_kmodcall 77 /* not implemented */ +#define __NR_osf_mincore 78 /* not implemented */ #define __NR_getgroups 79 #define __NR_setgroups 80 +#define __NR_osf_old_getpgrp 81 /* not implemented */ #define __NR_setpgrp 82 /* BSD alias for setpgid */ #define __NR_setitimer 83 +#define __NR_osf_old_wait 84 /* not implemented */ +#define __NR_osf_table 85 /* not implemented */ #define __NR_getitimer 86 #define __NR_gethostname 87 #define __NR_sethostname 88 @@ -57,6 +95,7 @@ #define __NR_fstat 91 #define __NR_fcntl 92 #define __NR_select 93 +#define __NR_poll 94 #define __NR_fsync 95 #define __NR_setpriority 96 #define __NR_socket 97 @@ -69,12 +108,19 @@ #define __NR_bind 104 #define __NR_setsockopt 105 #define __NR_listen 106 +#define __NR_osf_plock 107 /* not implemented */ +#define __NR_osf_old_sigvec 108 /* not implemented */ +#define __NR_osf_old_sigblock 109 /* not implemented */ +#define __NR_osf_old_sigsetmask 110 /* not implemented */ #define __NR_sigsuspend 111 +#define __NR_osf_sigstack 112 /* not implemented */ #define __NR_recvmsg 113 #define __NR_sendmsg 114 +#define __NR_osf_old_vtrace 115 /* not implemented */ #define __NR_gettimeofday 116 #define __NR_getrusage 117 #define __NR_getsockopt 118 + #define __NR_readv 120 #define __NR_writev 121 #define __NR_settimeofday 122 @@ -94,14 +140,44 @@ #define __NR_mkdir 136 #define __NR_rmdir 137 #define __NR_utimes 138 +#define __NR_osf_old_sigreturn 139 /* not implemented */ +#define __NR_osf_adjtime 140 /* not implemented */ #define __NR_getpeername 141 +#define __NR_osf_gethostid 142 /* not implemented */ +#define __NR_osf_sethostid 143 /* not implemented */ #define __NR_getrlimit 144 #define __NR_setrlimit 145 +#define __NR_osf_old_killpg 146 /* not implemented */ #define __NR_setsid 147 #define __NR_quotactl 148 +#define __NR_osf_oldquota 149 /* not implemented */ #define __NR_getsockname 150 + +#define __NR_osf_pid_block 153 /* not implemented */ +#define __NR_osf_pid_unblock 154 /* not implemented */ + #define __NR_sigaction 156 +#define __NR_osf_sigwaitprim 157 /* not implemented */ +#define __NR_osf_nfssvc 158 /* not implemented */ +#define __NR_osf_getdirentries 159 +#define __NR_osf_statfs 160 +#define __NR_osf_fstatfs 161 + +#define __NR_osf_asynch_daemon 163 /* not implemented */ +#define __NR_osf_getfh 164 /* not implemented */ +#define __NR_osf_getdomainname 165 #define __NR_setdomainname 166 + +#define __NR_osf_exportfs 169 /* not implemented */ + +#define __NR_osf_alt_plock 181 /* not implemented */ + +#define __NR_osf_getmnt 184 /* not implemented */ + +#define __NR_osf_alt_sigpending 187 /* not implemented */ +#define __NR_osf_alt_setsid 188 /* not implemented */ + +#define __NR_osf_swapon 199 #define __NR_msgctl 200 #define __NR_msgget 201 #define __NR_msgrcv 202 @@ -109,16 +185,54 @@ #define __NR_semctl 204 #define __NR_semget 205 #define __NR_semop 206 +#define __NR_osf_utsname 207 +#define __NR_osf_lchown 208 /* not implemented */ +#define __NR_osf_shmat 209 #define __NR_shmctl 210 #define __NR_shmdt 211 #define __NR_shmget 212 - +#define __NR_osf_mvalid 213 /* not implemented */ +#define __NR_osf_getaddressconf 214 /* not implemented */ +#define __NR_osf_msleep 215 /* not implemented */ +#define __NR_osf_mwakeup 216 /* not implemented */ #define __NR_msync 217 +#define __NR_osf_signal 218 /* not implemented */ +#define __NR_osf_utc_gettime 219 /* not implemented */ +#define __NR_osf_utc_adjtime 220 /* not implemented */ + +#define __NR_osf_security 222 /* not implemented */ +#define __NR_osf_kloadcall 223 /* not implemented */ #define __NR_getpgid 233 #define __NR_getsid 234 +#define __NR_osf_sigaltstack 235 /* not implemented */ +#define __NR_osf_waitid 236 /* not implemented */ +#define __NR_osf_priocntlset 237 /* not implemented */ +#define __NR_osf_sigsendset 238 /* not implemented */ +#define __NR_osf_set_speculative 239 /* not implemented */ +#define __NR_osf_msfs_syscall 240 /* not implemented */ +#define __NR_osf_sysinfo 241 +#define __NR_osf_uadmin 242 /* not implemented */ +#define __NR_osf_fuser 243 /* not implemented */ +#define __NR_osf_proplist_syscall 244 +#define __NR_osf_ntp_adjtime 245 /* not implemented */ +#define __NR_osf_ntp_gettime 246 /* not implemented */ +#define __NR_osf_pathconf 247 /* not implemented */ +#define __NR_osf_fpathconf 248 /* not implemented */ +#define __NR_osf_uswitch 250 /* not implemented */ +#define __NR_osf_usleep_thread 251 +#define __NR_osf_audcntl 252 /* not implemented */ +#define __NR_osf_audgen 253 /* not implemented */ #define __NR_sysfs 254 +#define __NR_osf_subsys_info 255 /* not implemented */ +#define __NR_osf_getsysinfo 256 +#define __NR_osf_setsysinfo 257 +#define __NR_osf_afs_syscall 258 /* not implemented */ +#define __NR_osf_swapctl 259 /* not implemented */ +#define __NR_osf_memcntl 260 /* not implemented */ +#define __NR_osf_fdatasync 261 /* not implemented */ + /* * Linux-specific system calls begin at 300 diff -u --recursive --new-file v2.1.22/linux/include/asm-i386/poll.h linux/include/asm-i386/poll.h --- v2.1.22/linux/include/asm-i386/poll.h Thu Jan 1 02:00:00 1970 +++ linux/include/asm-i386/poll.h Thu Jan 23 21:01:28 1997 @@ -0,0 +1,25 @@ +#ifndef __i386_POLL_H +#define __i386_POLL_H + +/* These are specified by iBCS2 */ +#define POLLIN 0x0001 +#define POLLPRI 0x0002 +#define POLLOUT 0x0004 +#define POLLERR 0x0008 +#define POLLHUP 0x0010 +#define POLLNVAL 0x0020 + +/* The rest seem to be more-or-less nonstandard. Check them! */ +#define POLLRDNORM 0x0040 +#define POLLRDBAND 0x0080 +#define POLLWRNORM 0x0100 +#define POLLWRBAND 0x0200 +#define POLLMSG 0x0400 + +struct pollfd { + int fd; + short events; + short revents; +}; + +#endif diff -u --recursive --new-file v2.1.22/linux/include/asm-i386/unistd.h linux/include/asm-i386/unistd.h --- v2.1.22/linux/include/asm-i386/unistd.h Tue Dec 31 21:41:08 1996 +++ linux/include/asm-i386/unistd.h Thu Jan 23 21:01:28 1997 @@ -173,6 +173,7 @@ #define __NR_getresuid 165 #define __NR_vm86 166 #define __NR_query_module 167 +#define __NR_poll 168 /* user-visible error numbers are in the range -1 - -122: see */ diff -u --recursive --new-file v2.1.22/linux/include/asm-sparc/poll.h linux/include/asm-sparc/poll.h --- v2.1.22/linux/include/asm-sparc/poll.h Thu Jan 1 02:00:00 1970 +++ linux/include/asm-sparc/poll.h Fri Jan 24 08:40:28 1997 @@ -0,0 +1,21 @@ +#ifndef __SPARC_POLL_H +#define __SPARC_POLL_H + +#define POLLIN 1 +#define POLLPRI 2 +#define POLLOUT 4 +#define POLLERR 8 +#define POLLHUP 16 +#define POLLNVAL 32 +#define POLLRDNORM 64 +#define POLLWRNORM POLLOUT +#define POLLRDBAND 128 +#define POLLWRBAND 256 + +struct pollfd { + int fd; + short events; + short revents; +}; + +#endif diff -u --recursive --new-file v2.1.22/linux/include/linux/fs.h linux/include/linux/fs.h --- v2.1.22/linux/include/linux/fs.h Wed Jan 15 19:45:45 1997 +++ linux/include/linux/fs.h Sat Jan 25 23:49:41 1997 @@ -463,7 +463,7 @@ long (*read) (struct inode *, struct file *, char *, unsigned long); long (*write) (struct inode *, struct file *, const char *, unsigned long); int (*readdir) (struct inode *, struct file *, void *, filldir_t); - int (*select) (struct inode *, struct file *, int, select_table *); + unsigned int (*poll) (struct file *, poll_table *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct inode *, struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); diff -u --recursive --new-file v2.1.22/linux/include/linux/net.h linux/include/linux/net.h --- v2.1.22/linux/include/linux/net.h Thu Dec 12 19:37:19 1996 +++ linux/include/linux/net.h Sat Jan 25 23:49:41 1997 @@ -93,8 +93,7 @@ int flags); int (*getname) (struct socket *sock, struct sockaddr *uaddr, int *usockaddr_len, int peer); - int (*select) (struct socket *sock, int sel_type, - select_table *wait); + unsigned int (*poll) (struct socket *sock, poll_table *wait); int (*ioctl) (struct socket *sock, unsigned int cmd, unsigned long arg); int (*listen) (struct socket *sock, int len); diff -u --recursive --new-file v2.1.22/linux/include/linux/pci.h linux/include/linux/pci.h --- v2.1.22/linux/include/linux/pci.h Thu Jan 23 21:06:51 1997 +++ linux/include/linux/pci.h Fri Jan 24 20:57:22 1997 @@ -304,6 +304,7 @@ #define PCI_VENDOR_ID_CT 0x102c #define PCI_DEVICE_ID_CT_65545 0x00d8 #define PCI_DEVICE_ID_CT_65548 0x00dc +#define PCI_DEVICE_ID_CT_65550 0x00e0 #define PCI_VENDOR_ID_MIRO 0x1031 #define PCI_DEVICE_ID_MIRO_36050 0x5601 diff -u --recursive --new-file v2.1.22/linux/include/linux/poll.h linux/include/linux/poll.h --- v2.1.22/linux/include/linux/poll.h Thu Jan 1 02:00:00 1970 +++ linux/include/linux/poll.h Sat Jan 25 23:46:14 1997 @@ -0,0 +1 @@ +#include diff -u --recursive --new-file v2.1.22/linux/include/linux/sched.h linux/include/linux/sched.h --- v2.1.22/linux/include/linux/sched.h Tue Dec 31 21:41:12 1996 +++ linux/include/linux/sched.h Sat Jan 25 23:49:42 1997 @@ -445,13 +445,13 @@ restore_flags(flags); } -extern inline void select_wait(struct wait_queue ** wait_address, select_table * p) +extern inline void poll_wait(struct wait_queue ** wait_address, poll_table * p) { - struct select_table_entry * entry; + struct poll_table_entry * entry; if (!p || !wait_address) return; - if (p->nr >= __MAX_SELECT_TABLE_ENTRIES) + if (p->nr >= __MAX_POLL_TABLE_ENTRIES) return; entry = p->entry + p->nr; entry->wait_address = wait_address; diff -u --recursive --new-file v2.1.22/linux/include/linux/skbuff.h linux/include/linux/skbuff.h --- v2.1.22/linux/include/linux/skbuff.h Thu Jan 23 21:06:52 1997 +++ linux/include/linux/skbuff.h Sat Jan 25 23:49:52 1997 @@ -545,7 +545,7 @@ extern struct sk_buff * skb_realloc_headroom(struct sk_buff *skb, int newheadroom); extern struct sk_buff * skb_recv_datagram(struct sock *sk,unsigned flags,int noblock, int *err); -extern int datagram_select(struct socket *sock, int sel_type, select_table *wait); +extern unsigned int datagram_poll(struct socket *sock, poll_table *wait); extern int skb_copy_datagram(struct sk_buff *from, int offset, char *to,int size); extern int skb_copy_datagram_iovec(struct sk_buff *from, int offset, struct iovec *to,int size); extern void skb_free_datagram(struct sock * sk, struct sk_buff *skb); diff -u --recursive --new-file v2.1.22/linux/include/linux/tty_ldisc.h linux/include/linux/tty_ldisc.h --- v2.1.22/linux/include/linux/tty_ldisc.h Sun Nov 10 20:12:15 1996 +++ linux/include/linux/tty_ldisc.h Sat Jan 25 23:49:41 1997 @@ -119,9 +119,7 @@ int (*ioctl)(struct tty_struct * tty, struct file * file, unsigned int cmd, unsigned long arg); void (*set_termios)(struct tty_struct *tty, struct termios * old); - int (*select)(struct tty_struct * tty, struct inode * inode, - struct file * file, int sel_type, - struct select_table_struct *wait); + unsigned int (*poll)(struct tty_struct *, struct file *, poll_table *); /* * The following routines are called from below. diff -u --recursive --new-file v2.1.22/linux/include/linux/wait.h linux/include/linux/wait.h --- v2.1.22/linux/include/linux/wait.h Sat Nov 30 12:03:11 1996 +++ linux/include/linux/wait.h Sat Jan 25 23:46:14 1997 @@ -28,17 +28,17 @@ return head && head != WAIT_QUEUE_HEAD(q); } -struct select_table_entry { +struct poll_table_entry { struct wait_queue wait; struct wait_queue ** wait_address; }; -typedef struct select_table_struct { +typedef struct poll_table_struct { unsigned int nr; - struct select_table_entry * entry; -} select_table; + struct poll_table_entry * entry; +} poll_table; -#define __MAX_SELECT_TABLE_ENTRIES (PAGE_SIZE / sizeof (struct select_table_entry)) +#define __MAX_POLL_TABLE_ENTRIES (PAGE_SIZE / sizeof (struct poll_table_entry)) #endif /* __KERNEL__ */ diff -u --recursive --new-file v2.1.22/linux/include/net/inet_common.h linux/include/net/inet_common.h --- v2.1.22/linux/include/net/inet_common.h Thu Dec 12 19:37:20 1996 +++ linux/include/net/inet_common.h Sat Jan 25 23:46:14 1997 @@ -31,8 +31,7 @@ struct msghdr *msg, int size, struct scm_cookie *scm); extern int inet_shutdown(struct socket *sock, int how); -extern int inet_select(struct socket *sock, int sel_type, - select_table *wait); +extern unsigned int inet_poll(struct socket *sock, poll_table *wait); extern int inet_setsockopt(struct socket *sock, int level, int optname, char *optval, int optlen); diff -u --recursive --new-file v2.1.22/linux/include/net/sock.h linux/include/net/sock.h --- v2.1.22/linux/include/net/sock.h Thu Jan 23 21:06:52 1997 +++ linux/include/net/sock.h Sat Jan 25 23:51:57 1997 @@ -531,8 +531,7 @@ void (*write_wakeup)(struct sock *sk); void (*read_wakeup)(struct sock *sk); - int (*select)(struct socket *sock, int which, - select_table *wait); + unsigned int (*poll)(struct socket *sock, poll_table *wait); int (*ioctl)(struct sock *sk, int cmd, unsigned long arg); diff -u --recursive --new-file v2.1.22/linux/include/net/tcp.h linux/include/net/tcp.h --- v2.1.22/linux/include/net/tcp.h Thu Dec 12 19:37:21 1996 +++ linux/include/net/tcp.h Sat Jan 25 23:55:07 1997 @@ -265,8 +265,7 @@ extern void tcp_close(struct sock *sk, unsigned long timeout); extern struct sock * tcp_accept(struct sock *sk, int flags); -extern int tcp_select(struct socket *sock, int sel_type, - select_table *wait); +extern unsigned int tcp_poll(struct socket *sock, poll_table *wait); extern int tcp_getsockopt(struct sock *sk, int level, int optname, char *optval, int *optlen); diff -u --recursive --new-file v2.1.22/linux/kernel/sysctl.c linux/kernel/sysctl.c --- v2.1.22/linux/kernel/sysctl.c Wed Dec 18 15:59:03 1996 +++ linux/kernel/sysctl.c Sat Jan 25 23:46:14 1997 @@ -59,7 +59,7 @@ proc_readsys, /* read */ proc_writesys, /* write */ NULL, /* readdir */ - NULL, /* select */ + NULL, /* poll */ NULL, /* ioctl */ NULL, /* mmap */ NULL, /* no special open code */ diff -u --recursive --new-file v2.1.22/linux/net/core/datagram.c linux/net/core/datagram.c --- v2.1.22/linux/net/core/datagram.c Thu Jan 2 15:55:26 1997 +++ linux/net/core/datagram.c Sat Jan 25 23:46:14 1997 @@ -3,17 +3,17 @@ * * Generic datagram handling routines. These are generic for all protocols. Possibly a generic IP version on top * of these would make sense. Not tonight however 8-). - * This is used because UDP, RAW, PACKET, DDP, IPX, AX.25 and NetROM layer all have identical select code and mostly - * identical recvmsg() code. So we share it here. The select was shared before but buried in udp.c so I moved it. + * This is used because UDP, RAW, PACKET, DDP, IPX, AX.25 and NetROM layer all have identical poll code and mostly + * identical recvmsg() code. So we share it here. The poll was shared before but buried in udp.c so I moved it. * - * Authors: Alan Cox . (datagram_select() from old udp.c code) + * Authors: Alan Cox . (datagram_poll() from old udp.c code) * * Fixes: * Alan Cox : NULL return from skb_peek_copy() understood * Alan Cox : Rewrote skb_read_datagram to avoid the skb_peek_copy stuff. * Alan Cox : Added support for SOCK_SEQPACKET. IPX can no longer use the SO_TYPE hack but * AX.25 now works right, and SPX is feasible. - * Alan Cox : Fixed write select of non IP protocol crash. + * Alan Cox : Fixed write poll of non IP protocol crash. * Florian La Roche: Changed for my new skbuff handling. * Darryl Miles : Fixed non-blocking SOCK_SEQPACKET. * Linus Torvalds : BSD semantic fixes. @@ -34,6 +34,8 @@ #include #include #include +#include + #include #include #include @@ -188,57 +190,48 @@ } /* - * Datagram select: Again totally generic. This also handles + * Datagram poll: Again totally generic. This also handles * sequenced packet sockets providing the socket receive queue * is only ever holding data ready to receive. */ -int datagram_select(struct socket *sock, int sel_type, select_table *wait) +unsigned int datagram_poll(struct socket *sock, poll_table *wait) { struct sock *sk = sock->sk; + unsigned int mask; + + poll_wait(sk->sleep, wait); + mask = 0; + /* exceptional events? */ if (sk->err) - return 1; - switch(sel_type) - { - case SEL_IN: - if (sk->shutdown & RCV_SHUTDOWN) - return 1; - if (connection_based(sk) && sk->state==TCP_CLOSE) - { - /* Connection closed: Wake up */ - return 1; - } - if (!skb_queue_empty(&sk->receive_queue)) - { /* This appears to be consistent - with other stacks */ - return 1; - } - break; - - case SEL_OUT: - if (sk->shutdown & SEND_SHUTDOWN) - return 1; - if (connection_based(sk) && sk->state==TCP_SYN_SENT) - { - /* Connection still in progress */ - break; - } - if (sk->prot && sock_wspace(sk) >= MIN_WRITE_SPACE) - { - return 1; - } - if (sk->prot==NULL && sk->sndbuf-sk->wmem_alloc >= MIN_WRITE_SPACE) - { - return 1; - } - break; + mask |= POLLERR; + if (sk->shutdown & RCV_SHUTDOWN) + mask |= POLLHUP; + + /* readable? */ + if (!skb_queue_empty(&sk->receive_queue)) + mask |= POLLIN | POLLRDNORM; + + /* Connection-based need to check for termination and startup */ + if (connection_based(sk)) { + if (sk->state==TCP_CLOSE) + mask |= POLLHUP; + /* connection hasn't started yet? */ + if (sk->state == TCP_SYN_SENT) + return mask; + } - case SEL_EX: - break; + /* writable? */ + if (!(sk->shutdown & SEND_SHUTDOWN)) { + if (sk->prot) { + if (sock_wspace(sk) >= MIN_WRITE_SPACE) + mask |= POLLOUT | POLLWRNORM | POLLWRBAND; + } else { + if (sk->sndbuf-sk->wmem_alloc >= MIN_WRITE_SPACE) + mask |= POLLOUT | POLLWRNORM | POLLWRBAND; + } } - /* select failed.. */ - select_wait(sk->sleep, wait); - return 0; + return mask; } diff -u --recursive --new-file v2.1.22/linux/net/ipv4/af_inet.c linux/net/ipv4/af_inet.c --- v2.1.22/linux/net/ipv4/af_inet.c Thu Jan 23 21:06:57 1997 +++ linux/net/ipv4/af_inet.c Sat Jan 25 23:46:14 1997 @@ -1188,13 +1188,13 @@ } -int inet_select(struct socket *sock, int sel_type, select_table *wait) +unsigned int inet_poll(struct socket *sock, poll_table *wait) { struct sock *sk = sock->sk; - if (sk->prot->select == NULL) + if (sk->prot->poll == NULL) return(0); - return sk->prot->select(sock, sel_type, wait); + return sk->prot->poll(sock, wait); } /* @@ -1589,7 +1589,7 @@ NULL, inet_accept, inet_getname, - inet_select, + inet_poll, inet_ioctl, inet_listen, inet_shutdown, @@ -1610,7 +1610,7 @@ NULL, NULL, inet_getname, - datagram_select, + datagram_poll, inet_ioctl, NULL, inet_shutdown, diff -u --recursive --new-file v2.1.22/linux/net/ipv4/ip_fw.c linux/net/ipv4/ip_fw.c --- v2.1.22/linux/net/ipv4/ip_fw.c Thu Dec 12 19:37:25 1996 +++ linux/net/ipv4/ip_fw.c Thu Jan 23 20:31:43 1997 @@ -209,9 +209,9 @@ int ip_fw_chk(struct iphdr *ip, struct device *rif, __u16 *redirport, struct ip_fw *chain, int policy, int mode) { struct ip_fw *f; - struct tcphdr *tcp=(struct tcphdr *)((unsigned long *)ip+ip->ihl); - struct udphdr *udp=(struct udphdr *)((unsigned long *)ip+ip->ihl); - struct icmphdr *icmp=(struct icmphdr *)((unsigned long *)ip+ip->ihl); + struct tcphdr *tcp=(struct tcphdr *)((__u32 *)ip+ip->ihl); + struct udphdr *udp=(struct udphdr *)((__u32 *)ip+ip->ihl); + struct icmphdr *icmp=(struct icmphdr *)((__u32 *)ip+ip->ihl); __u32 src, dst; __u16 src_port=0xFFFF, dst_port=0xFFFF, icmp_type=0xFF; unsigned short f_prt=0, prt; diff -u --recursive --new-file v2.1.22/linux/net/ipv4/packet.c linux/net/ipv4/packet.c --- v2.1.22/linux/net/ipv4/packet.c Thu Jan 23 21:06:57 1997 +++ linux/net/ipv4/packet.c Sat Jan 25 23:46:14 1997 @@ -497,7 +497,7 @@ NULL, NULL, NULL, - datagram_select, + datagram_poll, NULL, /* No ioctl */ packet_init, NULL, diff -u --recursive --new-file v2.1.22/linux/net/ipv4/raw.c linux/net/ipv4/raw.c --- v2.1.22/linux/net/ipv4/raw.c Thu Jan 23 21:06:57 1997 +++ linux/net/ipv4/raw.c Sat Jan 25 23:46:14 1997 @@ -412,7 +412,7 @@ NULL, NULL, NULL, - datagram_select, + datagram_poll, #ifdef CONFIG_IP_MROUTE ipmr_ioctl, #else diff -u --recursive --new-file v2.1.22/linux/net/ipv4/tcp.c linux/net/ipv4/tcp.c --- v2.1.22/linux/net/ipv4/tcp.c Thu Jan 23 21:06:58 1997 +++ linux/net/ipv4/tcp.c Sat Jan 25 23:46:14 1997 @@ -30,7 +30,7 @@ * socket was looked up backwards. Nobody * tested any icmp error code obviously. * Alan Cox : tcp_err() now handled properly. It - * wakes people on errors. select + * wakes people on errors. poll * behaves and the icmp error race * has gone by moving it into sock.c * Alan Cox : tcp_send_reset() fixed to work for @@ -102,12 +102,12 @@ * Alan Cox : BSD accept semantics. * Alan Cox : Reset on closedown bug. * Peter De Schrijver : ENOTCONN check missing in tcp_sendto(). - * Michael Pall : Handle select() after URG properly in + * Michael Pall : Handle poll() after URG properly in * all cases. * Michael Pall : Undo the last fix in tcp_read_urg() * (multi URG PUSH broke rlogin). * Michael Pall : Fix the multi URG PUSH problem in - * tcp_readable(), select() after URG + * tcp_readable(), poll() after URG * works now. * Michael Pall : recv(...,MSG_OOB) never blocks in the * BSD api. @@ -128,7 +128,7 @@ * Alan Cox : Reset tracing code. * Alan Cox : Spurious resets on shutdown. * Alan Cox : Giant 15 minute/60 second timer error - * Alan Cox : Small whoops in selecting before an + * Alan Cox : Small whoops in polling before an * accept. * Alan Cox : Kept the state trace facility since * it's handy for debugging. @@ -162,7 +162,7 @@ * generates them. * Alan Cox : Cache last socket. * Alan Cox : Per route irtt. - * Matt Day : Select() match BSD precisely on error + * Matt Day : poll()->select() match BSD precisely on error * Alan Cox : New buffers * Marc Tamsky : Various sk->prot->retransmits and * sk->retransmits misupdating fixed. @@ -419,6 +419,7 @@ #include #include +#include #include #include @@ -573,9 +574,9 @@ * though there was normal data available. If we subtract * the urg data right here, we even get it to work for more * than one URG PUSH skb without normal data. - * This means that select() finally works now with urg data + * This means that poll() finally works now with urg data * in the queue. Note that rlogin was never affected - * because it doesn't use select(); it uses two processes + * because it doesn't use poll(); it uses two processes * and a blocking read(). And the queue scan in tcp_read() * was correct. Mike */ @@ -597,81 +598,60 @@ } /* - * LISTEN is a special case for select.. + * LISTEN is a special case for poll.. */ -static int tcp_listen_select(struct sock *sk, int sel_type, select_table *wait) +static unsigned int tcp_listen_poll(struct sock *sk, poll_table *wait) { - if (sel_type == SEL_IN) { - struct open_request *req; + struct open_request *req; - lock_sock(sk); - req = tcp_find_established(&sk->tp_pinfo.af_tcp); - release_sock(sk); - if (req) - return 1; - select_wait(sk->sleep,wait); - return 0; - } + lock_sock(sk); + req = tcp_find_established(&sk->tp_pinfo.af_tcp); + release_sock(sk); + if (req) + return POLLIN | POLLRDNORM; return 0; } /* * Wait for a TCP event. * - * Note that we don't need to lock the socket, as the upper select layers + * Note that we don't need to lock the socket, as the upper poll layers * take care of normal races (between the test and the event) and we don't * go look at any of the socket buffers directly. */ -int tcp_select(struct socket *sock, int sel_type, select_table *wait) +unsigned int tcp_poll(struct socket *sock, poll_table *wait) { + unsigned int mask; struct sock *sk = sock->sk; struct tcp_opt *tp = &(sk->tp_pinfo.af_tcp); + poll_wait(sk->sleep, wait); if (sk->state == TCP_LISTEN) - return tcp_listen_select(sk, sel_type, wait); + return tcp_listen_poll(sk, wait); - switch(sel_type) { - case SEL_IN: - if (sk->err) - return 1; - if (sk->state == TCP_SYN_SENT || sk->state == TCP_SYN_RECV) - break; + mask = 0; + if (sk->err) + mask = POLLERR; + /* connected ? */ + if (sk->state != TCP_SYN_SENT && sk->state != TCP_SYN_RECV) { if (sk->shutdown & RCV_SHUTDOWN) - return 1; + mask |= POLLHUP; - if (tp->rcv_nxt == sk->copied_seq) - break; + if ((tp->rcv_nxt != sk->copied_seq) && + (sk->urg_seq != sk->copied_seq || + tp->rcv_nxt != sk->copied_seq+1 || + sk->urginline || !sk->urg_data)) + mask |= POLLIN | POLLRDNORM; + + if (!(sk->shutdown & SEND_SHUTDOWN) && + (sock_wspace(sk) >= sk->mtu+128+sk->prot->max_header)) + mask |= POLLOUT | POLLWRNORM; - if (sk->urg_seq != sk->copied_seq || - tp->rcv_nxt != sk->copied_seq+1 || - sk->urginline || !sk->urg_data) - return 1; - break; - - case SEL_OUT: - if (sk->err) - return 1; - if (sk->shutdown & SEND_SHUTDOWN) - return 0; - if (sk->state == TCP_SYN_SENT || sk->state == TCP_SYN_RECV) - break; - /* - * This is now right thanks to a small fix - * by Matt Dillon. - */ - - if (sock_wspace(sk) < sk->mtu+128+sk->prot->max_header) - break; - return 1; - - case SEL_EX: if (sk->urg_data) - return 1; - break; + mask |= POLLPRI; } - select_wait(sk->sleep, wait); - return 0; + return mask; } int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg) diff -u --recursive --new-file v2.1.22/linux/net/ipv4/tcp_ipv4.c linux/net/ipv4/tcp_ipv4.c --- v2.1.22/linux/net/ipv4/tcp_ipv4.c Wed Dec 18 15:59:14 1996 +++ linux/net/ipv4/tcp_ipv4.c Sat Jan 25 23:46:14 1997 @@ -1212,7 +1212,7 @@ NULL, tcp_write_wakeup, tcp_read_wakeup, - tcp_select, + tcp_poll, tcp_ioctl, tcp_v4_init_sock, tcp_v4_destroy_sock, diff -u --recursive --new-file v2.1.22/linux/net/ipv4/udp.c linux/net/ipv4/udp.c --- v2.1.22/linux/net/ipv4/udp.c Thu Jan 23 21:06:58 1997 +++ linux/net/ipv4/udp.c Sat Jan 25 23:46:14 1997 @@ -851,7 +851,7 @@ NULL, NULL, NULL, - datagram_select, + datagram_poll, udp_ioctl, NULL, NULL, diff -u --recursive --new-file v2.1.22/linux/net/netlink.c linux/net/netlink.c --- v2.1.22/linux/net/netlink.c Thu Dec 12 19:37:31 1996 +++ linux/net/netlink.c Sat Jan 25 23:46:14 1997 @@ -26,6 +26,7 @@ #include +#include #include #include #include @@ -63,19 +64,16 @@ return -EINVAL; } -static int netlink_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) +static unsigned int netlink_poll(struct file *file, poll_table * wait) { - unsigned int minor = MINOR(inode->i_rdev); - switch (sel_type) { - case SEL_IN: - if (skb_peek(&skb_queue_rd[minor])!=NULL) - return 1; - select_wait(&read_space_wait[minor], wait); - break; - case SEL_OUT: - return 1; - } - return 0; + unsigned int mask; + unsigned int minor = MINOR(file->f_inode->i_rdev); + + poll_wait(&read_space_wait[minor], wait); + mask = POLLOUT | POLLWRNORM; + if (skb_peek(&skb_queue_rd[minor])) + mask |= POLLIN | POLLRDNORM; + return mask; } /* @@ -183,7 +181,7 @@ netlink_read, netlink_write, NULL, /* netlink_readdir */ - netlink_select, + netlink_poll, netlink_ioctl, NULL, /* netlink_mmap */ netlink_open, diff -u --recursive --new-file v2.1.22/linux/net/netsyms.c linux/net/netsyms.c --- v2.1.22/linux/net/netsyms.c Thu Jan 23 21:06:58 1997 +++ linux/net/netsyms.c Sat Jan 25 23:46:14 1997 @@ -99,7 +99,7 @@ EXPORT_SYMBOL(skb_copy_datagram); EXPORT_SYMBOL(skb_copy_datagram_iovec); EXPORT_SYMBOL(skb_realloc_headroom); -EXPORT_SYMBOL(datagram_select); +EXPORT_SYMBOL(datagram_poll); /* Needed by smbfs.o */ EXPORT_SYMBOL(__scm_destroy); @@ -144,7 +144,7 @@ EXPORT_SYMBOL(inet_stream_connect); EXPORT_SYMBOL(inet_dgram_connect); EXPORT_SYMBOL(inet_accept); -EXPORT_SYMBOL(inet_select); +EXPORT_SYMBOL(inet_poll); EXPORT_SYMBOL(inet_listen); EXPORT_SYMBOL(inet_shutdown); EXPORT_SYMBOL(inet_setsockopt); @@ -174,7 +174,7 @@ EXPORT_SYMBOL(tcp_accept); EXPORT_SYMBOL(tcp_write_wakeup); EXPORT_SYMBOL(tcp_read_wakeup); -EXPORT_SYMBOL(tcp_select); +EXPORT_SYMBOL(tcp_poll); EXPORT_SYMBOL(tcp_ioctl); EXPORT_SYMBOL(tcp_shutdown); EXPORT_SYMBOL(tcp_setsockopt); diff -u --recursive --new-file v2.1.22/linux/net/socket.c linux/net/socket.c --- v2.1.22/linux/net/socket.c Thu Jan 23 21:06:59 1997 +++ linux/net/socket.c Sat Jan 25 23:46:14 1997 @@ -101,7 +101,7 @@ const char *buf, unsigned long size); static void sock_close(struct inode *inode, struct file *file); -static int sock_select(struct inode *inode, struct file *file, int which, select_table *seltable); +static unsigned int sock_poll(struct file *file, poll_table *wait); static int sock_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); static int sock_fasync(struct inode *inode, struct file *filp, int on); @@ -117,7 +117,7 @@ sock_read, sock_write, NULL, /* readdir */ - sock_select, + sock_poll, sock_ioctl, NULL, /* mmap */ NULL, /* no special open code... */ @@ -444,19 +444,19 @@ } -static int sock_select(struct inode *inode, struct file *file, int sel_type, select_table * wait) +static unsigned int sock_poll(struct file *file, poll_table * wait) { struct socket *sock; - sock = socki_lookup(inode); + sock = socki_lookup(file->f_inode); /* - * We can't return errors to select, so it's either yes or no. + * We can't return errors to poll, so it's either yes or no. */ - if (sock->ops->select) - return sock->ops->select(sock, sel_type, wait); - return(0); + if (sock->ops->poll) + return sock->ops->poll(sock, wait); + return 0; } @@ -1249,7 +1249,7 @@ /* * System call vectors. Since I (RIB) want to rewrite sockets as streams, * we have this level of indirection. Not a lot of overhead, since more of - * the work is done via read/write/select directly. + * the work is done via read/write/poll directly. * * I'm now expanding this up to a higher level to separate the assorted * kernel/user space manipulations and global assumptions from the protocol diff -u --recursive --new-file v2.1.22/linux/net/unix/af_unix.c linux/net/unix/af_unix.c --- v2.1.22/linux/net/unix/af_unix.c Thu Jan 23 21:06:59 1997 +++ linux/net/unix/af_unix.c Sat Jan 25 23:46:14 1997 @@ -1429,7 +1429,7 @@ unix_socketpair, unix_accept, unix_getname, - datagram_select, + datagram_poll, unix_ioctl, unix_listen, unix_shutdown, @@ -1450,7 +1450,7 @@ unix_socketpair, NULL, unix_getname, - datagram_select, + datagram_poll, unix_ioctl, NULL, unix_shutdown,