Commit 21a0a5d3 authored by Linus Torvalds's avatar Linus Torvalds

Import pre2.0.13

parent 43c4e96e
This is a brief list of all the files in ./linux/Documentation and what
they contain. If you add a documentation file, please list it here in
alphabetical order as well. Note that subdirectories have their own
index files too.
Thanks -- Paul.
00-INDEX
- this file.
BUG-HUNTING
- brute force method of doing binary search of patches to find bug.
Changes
- list of changes that break older software packages.
CodingStyle
- how the boss likes the C code in the kernel to look.
Configure.help
- text file that is used for help when you run "make config"
SMP.txt
- notes, and "To Fix" list for multi-processor Linux. (see smp.tex)
cdrom/
- directory with information on the CD-ROM drivers that Linux has.
devices.tex
- TeX source listing of all the nodes in /dev/ with major minor #'s
devices.txt
- plain ASCII listing of all the nodes in /dev/ with major minor #'s
digiboard.txt
- info on the Digiboard PC/X{i,e,eve} multiport boards.
filesystems/
- directory with info on the various filesystems that Linux supports.
ide.txt
- important info for users of ATA devices (IDE/EIDE disks and CD-ROMS)
initrd.txt
- how to use the RAM disk as an initial/temporary root filesystem.
ioctl-number.txt
- how to implement and register device/driver ioctl calls.
isdn/
- directory with info on the linux ISDN support, and supported cards.
java.txt
- info on the in-kernel binary support for Java(tm)
locks.txt
- info on file locking implementations, flock() vs. fcntl(), etc.
magic-number.txt
- list of magic numbers used to mark/protect kernel data structures.
mandatory.txt
- info on the linux implementation of Sys V mandatory file locking.
modules.txt
- short guide on how to make kernel parts into loadable modules
networking/
- directory with info on various linux networking aspects.
nfsroot.txt
- short guide on setting up a diskless box with NFS root filesystem
oops-tracing.txt
- how to decode those nasty internal kernel error dump messages.
ramdisk.txt
- short guide on how to set up and use the RAM disk.
riscom8.txt
- notes on using the RISCom/8 multi-port serial driver.
rtc.txt
- notes on how to use the Real Time Clock (aka CMOS clock) driver.
scsi.txt
- short blurb on using SCSI support as a module.
smp.tex
- TeX document describing implementation of Multiprocessor Linux
svga.txt
- short guide on selecting video modes at boot via VGA BIOS.
unicode.txt
- info on the Unicode character/font mapping used in Linux.
watchdog.txt
- how to auto-reboot Linux if it has "fallen and can't get up". ;-)
......@@ -18,7 +18,7 @@ and was originally written and maintained by Alessandro Sigala
Taylor. Check out http://www.cviog.uga.edu/LinuxBleed.html if you
prefer a HTML-ized shopping list.
Last updated: June 1, 1996.
Last updated: June 5, 1996.
Current Author: Chris Ricker (gt1355b@prism.gatech.edu).
Current Releases
......@@ -34,7 +34,7 @@ Current Releases
- Termcap 2.0.8
- Procps 0.99a
- Gpm 1.09
- sysvinit 2.62
- SysVinit 2.62
- Util-linux 2.5
Upgrade notes
......@@ -55,6 +55,21 @@ distributions like Caldera). If you're running one of these, edit
/etc/sysconfig/network-scripts/ifup-lo, changing the line `route add
-net $(IPADDR)' to `route add -net 127.0.0.0' and you should be fine.
Booting Changes
===============
The boot stuff in 1.3.x (for arch/i386) has been enhanced so that it
now can load bigger kernels (bzImage) and that the loaders now can load
an initial ramdisk (initrd). For initrd see Documentation/initrd.txt.
For building bigger kernels use one of the following make targets:
bzImage, bzlilo, bzdisk (equivalent to make targets zImage, zlilo, and
zdisk respectively). If you want or need to use the new features
you'll need to upgrade your bootloaders. Lilo can be found at
ftp://lrcftp.epfl.ch/pub/linux/local/lilo/lilo.19.tar.gz. LOADLIN is at
ftp://sunsite.unc.edu/pub/Linux/system/Linux-boot/lodlin16.tgz. If
you're using more unusual loaders like SysLinux or etherboot, the
latest versions are 1.3 and 2.0, respectively.
The Linux C Library
===================
......@@ -154,8 +169,8 @@ PPP driver
latest stable release is 2.2.0f and is available at
ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz.
Named pipes
===========
Named pipes (SysVinit)
======================
Linux's handling of named pipes changed (it now does it The Right Way
instead of the SunOS way ;-). This broke some programs that depended
......@@ -164,9 +179,7 @@ or earlier, you will probably get a weird error on shutdown in which
your computer shuts down fine but "INIT: error reading initrequest" or
words to that effect scroll across your screen hundreds of times. To
fix, upgrade to
ftp://sunsite.unc.edu/pub/Linux/system/Daemons/init/sysvinit-2.62.tar.gz
ftp://tsx-11.mit.edu/pub/linux/sources/sbin/sysvinit-2.62.tar.gz
ftp://ftp.cistron.nl/pub/people/miquels/software/sysvinit-2.62.tar.gz.
ftp://ftp.cistron.nl/pub/people/miquels/debian/sysvinit-2.62.tar.gz.
If you're trying to run NCSA httpd, you have to set pre-spawning of
daemons to zero, as it incorrectly assumes SunOS behavior. I recommend
......@@ -187,6 +200,17 @@ with the Hylafax distribution and change the line
changing them to read-write) will fix any program that is broken
because of this change.
File Locking (Sendmail)
=======================
As of pre2.0.6 (aka 1.99.6), mixed-style file locking is no longer
allowed. For example, a file cannot be simultaneously locked with
`flock' (BSD-style) and `lockf' (SYSV-style). Among the programs this
has impacted are older sendmails. If you get a message that sendmail
cannot lock aliases.dir (or other files), you'll need to upgrade to at
least 8.7.x. The latest sendmail is at
ftp://ftp.cs.berkeley.edu/ucb/src/sendmail/sendmail.8.7.5.tar.gz.
Uugetty
=======
......@@ -299,7 +323,7 @@ Tcsh
====
If tcsh acts funny, get the source from
ftp://tesla.ee.cornell.edu/pub/tcsh and add #define SYSMALLOC in
ftp://anise.ee.cornell.edu/pub/tcsh and add #define SYSMALLOC in
config_f.h before recompiling tcsh. Binaries can be found in
ftp://sunsite.unc.edu/pub/Linux/system/Shells/ and a corrected one will
probably wind up there eventually.
......@@ -351,6 +375,20 @@ This will compile just fine after you copy its mntent.h over to
/usr/include/mntent.h. I've uploaded this to sunsite as
ftp://sunsite.unc.edu/pub/Linux/system/Admin/quotas-1.51-tar.gz
Process Accounting
==================
Process accounting support has also been integrated into the new
kernels. To use this feature, you'll need to get
ftp://iguana.hut.fi/pub/linux/Kernel/process_accounting/acct_1.3.73.tar.gz.
Bdflush
=======
Bdflush has also been integrated into the new kernels, so those of
you using it on older systems no longer need to hunt for the patches to
implement it once you upgrade to 1.3.x.
APM support
===========
......@@ -368,7 +406,9 @@ ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2/ibcs-1.3-960404-ALPHA.tar.gz
For a version of Dosemu that works (well, at least as well as DOS
ever works ;-), get
ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/Development/dosemu-0.63.1.8.tgz.
ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/Development/dosemu-0.63.1.19.tgz.
Be sure to follow the instructions in README.newkernels about patching
your include files, or it will not compile.
Mtools and Fdutils
==================
......@@ -500,7 +540,7 @@ ftp://sunsite.unc.edu/pub/Linux/system/Daemons/gpm-1.09.tar.gz
SysVinit utilities
==================
ftp://sunsite.unc.edu/pub/Linux/system/Daemons/init/sysvinit-2.60.tar.gz
ftp://sunsite.unc.edu/pub/Linux/system/Daemons/init/sysvinit-2.62.tar.gz
Util-linux
==========
......
......@@ -1250,7 +1250,7 @@ CONFIG_SCSI_ADVANSYS
whenever you want). If you want to compile it as a module, say M
here and read Documentation/modules.txt.
Adaptec AHA152X support
Adaptec AHA152X/2825 support
CONFIG_SCSI_AHA152X
This is support for a SCSI host adaptor. It is explained in section
3.3 of the SCSI-HOWTO, available via ftp (user: anonymous) at
......@@ -2992,6 +2992,16 @@ CONFIG_SMB_FS
removed from the running kernel whenever you want), say M here and
read Documentation/modules.txt. Most people say N, however.
SMB long filename support (EXPERIMENTAL)
CONFIG_SMB_LONG
SMBFS was designed to support long filenames using the LanManager
2.0 protocol. I had to find out that the support for long filenames
sometimes causes problems, which can even result in kernel OOPSes. I
did not yet find out what the problem is, but hopefully I will find
this bug eventually. As many people seem to run long filenames with
no problems, I leave this support in the kernel as an option. The
careful among you should say N here.
NCP filesystem support (to mount NetWare volumes)
CONFIG_NCP_FS
NCP (NetWare Core Protocol) is a protocol that runs over IPX and is
......
00-INDEX
- this file (info on CD-ROMs and Linux)
aztcd
- info on Aztech/Orchid/Okano/Wearnes/Conrad/CyCDROM driver.
cdrom-standard.tex
- LaTeX document on standardizing the CD-ROM programming interface.
cdu31a
- info on the Sony CDU31A/CDU33A CD-ROM driver.
cm206
- info on the Philips/LMS cm206/cm260 CD-ROM driver.
gscd
- info on the Goldstar R420 CD-ROM driver.
ide-cd
- info on setting up and using ATAPI (aka IDE) CD-ROMs.
isp16
- info on the CD-ROM interface on ISP16, MAD16 or Mozart sound card.
mcd
- info on limitations of standard Mitsumi CD-ROM driver.
mcdx
- info on improved Mitsumi CD-ROM driver.
optcd
- info on the Optics Storage 8000 AT CD-ROM driver
sbpcd
- info on the SoundBlaster Pro CD-ROM interface driver.
sjcd
- info on the SANYO CDR-H94A CD-ROM interface driver.
sonycd535
- info on the Sony CDU-535 (and 531) CD-ROM driver.
This actually is an `improved' driver for the Mitsumi CD-ROM drives.
This is a first attempt to create an `improved' driver for the Mitsumi drives.
It is able to "live together" with mcd.c, if you have at least two Mitsumi
drives: each driver can use his own drive.
We are using the major device number 20 for it. So, you have to do
To allow this "coexistence" as long as mcdx.c is not a superset of mcd.c,
this driver has to use its own device files. We use MAJOR 20 for it. So,
you have to do
~# mknod /dev/mcdx0 b 20 0
~# mknod /dev/mcdx1 b 20 1
# mknod /dev/mcdx0 b 20 0
# mknod /dev/mcdx1 b 20 1
and so on, one entry for each drive to support, once.
If you are using the driver as a module, you can specify the ports and IRQs
like:
If you are using the driver as a module, you can specify your ports and IRQs
like
# insmod mcdx.o mcdx=0x300,11
# insmod mcdx.o mcdx=0x300,11,0x304,5
and so on ("address,IRQ" pairs). When You intend to use more then one
drive, it's necessary to edit the mcdx.h file found in
/usr/src/linux/include/linux. Instead of providing the values on the
command line, You can "hardwire" them all in mcdx.h. The command line
values take precedence over the values in mcdx.h.
WARNING: BE CAREFUL TO SUPPLY THE CORRECT VALUES OTHERWISE THE WHOLE SYSTEM
WILL HANG DURING BOOT-UP OR LOADING OF THE DRIVER!!!
and so on ("address,IRQ" pairs).
This will override the configuration in mcdx.h.
This driver:
o Handles XA and multi session CDs as well as ordinary CDs.
o Supports up to 5 drives (of course, you'll need free
IRQs, i/o ports and slots).
o Uses *much* less kernel memory than the standard mcd driver.
o Plays audio like the `old' driver.
o handles XA (and hopefully) multi session CDs as well as
ordinary CDs;
o supports up to 5 drives (of course, you'll need free
IRQs, i/o ports and slots);
o uses much less kernel memory than the standard mcd driver
(no extra driver internal buffers!).
o plays audio (like the `old' driver, I hope)
This version doesn't support yet:
o Shared IRQs, due to the fact that otherwise it wouldn't be
possible to distinguish the drives issuing the interrupt in the
corresponding handling routine.
o shared IRQs (but it seems to be possible - I've successfully
connected two drives to the same irq. So it's `only' a
problem of the driver.)
This driver never will:
o Read digital audio (i.e. copy directly), due to missing
hardware features.
o Do DMA transfers. This is simply far less efficient with such
a slow device. Further, the SoundBlaster interfaces doesn't
support it, so it's not worth the effort.
o Read digital audio (i.e. copy directly), due to missing
hardware features.
1996/05/20 Marcin Dalecki <dalecki@namu03.gwdg.de>
heiko@lotte.sax.de
00-INDEX
- this file (info on some of the filesystems supported by linux).
affs.txt
- info and mount options for the Amiga Fast File System.
hpfs.txt
- info and mount options for the OS/2 HPFS.
ncpfs.txt
- info on Novell Netware(tm) filesystem using NCP protocol.
smbfs.txt
- info on using filesystems with the SMB protocol (Win 3.11, Win NT)
sysv-fs.txt
- info on the SystemV/Coherent filesystem.
umsdos.txt
- info on the umsdos extensions to the msdos filesystem.
vfat.txt
- info on using the VFAT filesystem used in Win NT and Win 95
00-INDEX
- this file (info on ISDN implementation for Linux)
CREDITS
- list of the kind folks that brought you this stuff.
INTERFACE
- description of Linklevel and Hardwarelevel ISDN interface.
README
- general info on what you need and what to do for Linux ISDN.
README.audio
- info for running audio over ISDN.
README.icn
- info on the ICN-ISDN-card and its driver.
README.pcbit
- info on the PCBIT-D ISDN adapter and driver.
README.syncppp
- info on running Sync PPP over ISDN.
README.teles
- info on driver for Teles compatible ISDN cards.
syncPPP.FAQ
- frequently asked questions about running PPP over ISDN.
......@@ -6,8 +6,15 @@ and use modules.
In this kernel you also have a possibility to create modules that are
less dependent on the kernel version. This option can be selected
during "make config", by enabling CONFIG_MODVERSIONS.
Note: If you enable CONFIG_MODVERSIONS, you will need some utilities
from the latest module support package: "modules-1.1.8*.tar.gz"!
Note: You should ensure that the modules-X.Y.Z.tar.gz you are using
is the most up to date one for this kernel. The "X.Y.Z" will reflect
the kernel version at the time of the release of the modules package.
Some older modules packages aren't aware of some of the newer modular
features that the kernel now supports. (If you are unsure, you can
usually find out what the current release of the modules-X.Y.Z.tar.gz
package is by looking up the URL listed for "Bjorn Ekwall" in the
file ./linux/CREDITS)
Anyway, your first step is to compile the kernel, as explained in the
file README. It generally goes like:
......@@ -38,12 +45,8 @@ The set of modules is rapidly increasing, but so far these are known:
Most low-level SCSI drivers: (i.e. aha1542, in2000)
All SCSI high-level drivers: disk, tape, cdrom, generic.
Some ethernet drivers:
plip, slip, dummy,
de600, de620
3c501, 3c509
eexpress, depca,
ewrk3, apricot
Most ethernet drivers: (too many to list, please see the file
./Documentation/networking/net-modules.txt)
Most CDROM drivers:
aztcd: Aztech,Orchid,Okano,Wearnes
......@@ -80,14 +83,12 @@ Now, after you have made all modules, you can also do:
This will copy all newly made modules into subdirectories under
"/lib/modules/kernel_release/", where "kernel_release" is something
like 1.1.83, or whatever the current kernel version is...
like 2.0.1, or whatever the current kernel version is...
Nifty features:
If you have installed the utilities from "modules-1.1.8*.tar.gz",
you will have access to two new utilities: "modprobe" and "depmod"
You have access to two utilities: "modprobe" and "depmod".
Using the modprobe utility, you can load any module like this:
/sbin/modprobe module
......
00-INDEX
- this file
3c505.txt
- information on the 3Com EtherLink Plus (3c505) driver.
Configurable
- info on some of the configurable network parameters
alias.txt
- info on using alias network devices
arcnet-hardware.txt
- tons of info on arcnet, hubs, arcnet card jumper settings, etc.
arcnet.txt
- info on the using the arcnet driver itself.
ax25.txt
- info on using AX.25 and NET/ROM code for Linux
framerelay.txt
- info on using Frame Relay/Data Link Connection Identifier (DLCI).
ncsa-telnet
- notes on how NCSA telnet (DOS) breaks with MTU discovery enabled.
net-modules.txt
- info and "insmod" parameters for all network driver modules.
ppp.txt
- info on what software you should use to run PPP.
tcp.txt
- short blurb on how TCP output takes place.
tulip.txt
- info on using DEC 21040/21041/21140 based PCI ethernet cards.
vortex.txt
- info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) e'net cards.
z8530drv.txt
- info about Linux driver for Z8530 based HDLC cards for AX.25
There are a few network parameters that can be tuned to better match
the kernel to your system hardware and intended usage. The defaults
are usually a good choice for 99% of the people 99% of the time, but
you should be aware they do exist and can be changed.
The current list of parameters can be found in the file:
./linux/net/TUNABLE
Some of these are accessible via the sysctl interface, and many more are
scheduled to be added in this way. For example, some parameters related
to Address Resolution Protocol (ARP) are very easily viewed and altered.
# cat /proc/sys/net/ipv4/arp_timeout
6000
# echo 7000 > /proc/sys/net/ipv4/arp_timeout
# cat /proc/sys/net/ipv4/arp_timeout
7000
Others are already accessible via the related user space programs.
For example, MAX_WINDOW has a default of 32k which is a good choice for
modern hardware, but if you have a slow (8 bit) ethercard and/or a slow
machine, then this will be far too big for the card to keep up with fast
Tx'ing machines on the same net, resulting in overruns and receive errors.
A value of about 4k would be more appropriate, which can be set via:
# route add -net 192.168.3.0 window 4096
The remainder of these can only be presently changed by altering a #define
in the related header file. This means an edit and recompile cycle.
Paul Gortmaker 06/96
......@@ -67,7 +67,7 @@ effectively atomic with respect to other processes and greatly simplifies
many operation. Secondly interrupts may pre-empt a kernel running process,
but will always return to that process. A process in kernel mode may
disable interrupts on the processor and guarantee such an interruption will
not occur. The final guarantee is that an interrupt will not bne pre-empted
not occur. The final guarantee is that an interrupt will not be pre-empted
by a kernel task. That is interrupts will run to completion or be
pre-empted by other interrupts only.
......
......@@ -25,8 +25,9 @@ degrees farenheit. Each read returns a single byte giving the temperature.
The third interface logs kernel messages on additional alert events.
At the moment only the software watchdog is available in the standard
kernel.
Both software and hardware watchdog drivers are available in the standard
kernel. If you are using the software watchdog, you probably also want
to use "panic=60" as a boot argument as well.
Features
--------
......
VERSION = 1
PATCHLEVEL = 99
SUBLEVEL = 12
SUBLEVEL = 13
ARCH = i386
......
......@@ -35,8 +35,9 @@ DOCUMENTATION:
system: there are much better sources available.
- There are various readme's in the kernel Documentation/ subdirectory:
these are mainly used for kernel developers and some very kernel-specific
installation notes for some drivers for example.
these typically contain kernel-specific installation notes for some
drivers for example. See ./Documentation/00-INDEX for a list of what
is contained in each file.
INSTALLING the kernel:
......@@ -105,7 +106,7 @@ CONFIGURING the kernel:
- having unnecessary drivers will make the kernel bigger, and can
under some circumstances lead to problems: probing for a
nonexistent controller card may confuse your other controllers
- compiling the kernel with "-m486" for a number of 486-specific
- compiling the kernel with "Processor type" set higher than 386
will result in a kernel that does NOT work on a 386. The
kernel will detect this on bootup, and give up.
- A kernel with math-emulation compiled in will still use the
......@@ -183,7 +184,10 @@ COMPILING the kernel:
IF SOMETHING GOES WRONG:
- if you have problems that seem to be due to kernel bugs, please mail
- if you have problems that seem to be due to kernel bugs, please check
the file MAINTAINERS to see if there is a particualr person associated
with the part of the kernel that you are having trouble with. If there
isn't anyone listed there, then the second best thing is to mail
them to me (Linus.Torvalds@Helsinki.FI), and possibly to any other
relevant mailing-list or to the newsgroup. The mailing-lists are
useful especially for SCSI and NETworking problems, as I can't test
......@@ -210,7 +214,8 @@ IF SOMETHING GOES WRONG:
incomprehensible to you, but it does contain information that may
help debugging the problem. The text above the dump is also
important: it tells something about why the kernel dumped code (in
the above example it's due to a bad kernel pointer)
the above example it's due to a bad kernel pointer). More information
on making sense of the dump is in Documentation/oops-tracing.txt
- You can use the "ksymoops" program to make sense of the dump. Find
the C++ sources under the scripts/ directory to avoid having to do
......
......@@ -37,7 +37,7 @@ CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_IDE=y
#
# Please see drivers/block/README.ide for help/info on IDE drives
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDECD=y
......
......@@ -343,6 +343,7 @@ int get_smp_prof_list(char *buf) {
asmlinkage void do_IRQ(int irq, struct pt_regs * regs)
{
struct irqaction * action = *(irq + irq_action);
int do_random = 0;
#ifdef __SMP__
if(smp_threads_ready && active_kernel_processor!=smp_processor_id())
......@@ -354,11 +355,12 @@ asmlinkage void do_IRQ(int irq, struct pt_regs * regs)
int_count[smp_processor_id()][irq]++;
#endif
while (action) {
if (action->flags & SA_SAMPLE_RANDOM)
add_interrupt_randomness(irq);
do_random |= action->flags;
action->handler(irq, action->dev_id, regs);
action = action->next;
}
if (do_random & SA_SAMPLE_RANDOM)
add_interrupt_randomness(irq);
}
/*
......@@ -369,6 +371,8 @@ asmlinkage void do_IRQ(int irq, struct pt_regs * regs)
asmlinkage void do_fast_IRQ(int irq)
{
struct irqaction * action = *(irq + irq_action);
int do_random = 0;
#ifdef __SMP__
/* IRQ 13 is allowed - that's a flush tlb */
if(smp_threads_ready && active_kernel_processor!=smp_processor_id() && irq!=13)
......@@ -380,9 +384,12 @@ asmlinkage void do_fast_IRQ(int irq)
int_count[smp_processor_id()][irq]++;
#endif
while (action) {
do_random |= action->flags;
action->handler(irq, action->dev_id, NULL);
action = action->next;
}
if (do_random & SA_SAMPLE_RANDOM)
add_interrupt_randomness(irq);
}
int setup_x86_irq(int irq, struct irqaction * new)
......
......@@ -6,7 +6,7 @@ comment 'Floppy, IDE, and other block devices'
tristate 'Normal floppy disk support' CONFIG_BLK_DEV_FD
bool 'Enhanced IDE/MFM/RLL disk/cdrom/tape support' CONFIG_BLK_DEV_IDE
comment 'Please see drivers/block/README.ide for help/info on IDE drives'
comment 'Please see Documentation/ide.txt for help/info on IDE drives'
if [ "$CONFIG_BLK_DEV_IDE" = "n" ]; then
bool 'Old harddisk (MFM/RLL/IDE) driver' CONFIG_BLK_DEV_HD_ONLY
else
......@@ -25,7 +25,9 @@ else
bool ' ALI M1439/M1445 support' CONFIG_BLK_DEV_ALI14XX
bool ' DTC-2278 support' CONFIG_BLK_DEV_DTC2278
bool ' Holtek HT6560B support' CONFIG_BLK_DEV_HT6560B
bool ' PROMISE DC4030 support (ALPHA)' CONFIG_BLK_DEV_PROMISE
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
bool ' PROMISE DC4030 support (EXPERIMENTAL)' CONFIG_BLK_DEV_PROMISE
fi
bool ' QDI QD6580 support' CONFIG_BLK_DEV_QD6580
bool ' UMC 8672 support' CONFIG_BLK_DEV_UMC8672
fi
......
......@@ -3114,7 +3114,7 @@ static int init_irq (ide_hwif_t *hwif)
* Allocate the irq, if not already obtained for another hwif
*/
if (!match || match->irq != hwif->irq) {
if (request_irq(hwif->irq, ide_intr, SA_INTERRUPT|SA_SAMPLE_RANDOM, hwif->name, hwgroup)) {
if (request_irq(hwif->irq, ide_intr, SA_INTERRUPT, hwif->name, hwgroup)) {
if (!match)
kfree(hwgroup);
restore_flags(flags);
......
......@@ -22,7 +22,7 @@
*
*/
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/mm.h>
......
This diff is collapsed.
......@@ -13,7 +13,7 @@
* labelled E2550UA or MK4015 or 2800F).
*/
#define VERSION "v4.3 Eberhard Moenkeberg <emoenke@gwdg.de>"
#define VERSION "v4.4 Eberhard Moenkeberg <emoenke@gwdg.de>"
/* Copyright (C) 1993, 1994, 1995 Eberhard Moenkeberg <emoenke@gwdg.de>
*
......@@ -278,6 +278,11 @@
* reading the ToC; still trying to solve it.
* Removed some redundant verify_area calls (yes, Heiko Eissfeldt
* is visiting all the Linux CDROM drivers ;-).
*
* 4.4 Adapted one idea from tiensivu@pilot.msu.edu's "stripping-down"
* experiments: "KLOGD_PAUSE".
* Inhibited "play audio" attempts with data CDs. Provisions for a
* "data-safe" handling of "mixed" (data plus audio) Cds.
*
*
* TODO
......@@ -689,6 +694,9 @@ static struct {
u_char TocEnt_number;
u_char TocEnt_format; /* em */
u_int TocEnt_address;
#if SAFE_MIXED
char has_data;
#endif SAFE_MIXED
u_char ored_ctl_adr; /* to detect if CDROM contains data tracks */
struct {
......@@ -751,7 +759,9 @@ static void msg(int level, const char *fmt, ...)
vsprintf(&buf[18], fmt, args);
va_end(args);
printk(buf);
sbp_sleep(55); /* else messages get lost */
#if KLOGD_PAUSE
sbp_sleep(KLOGD_PAUSE); /* else messages get lost */
#endif KLOGD_PAUSE
return;
}
/*==========================================================================*/
......@@ -1966,7 +1976,7 @@ static int cc_PlayAudio(int pos_audio_start,int pos_audio_end)
else if (fam2_drive)
{
drvcmd[0]=CMD2_PLAY_MSF;
flags_cmd_out = f_putcmd | f_ResponseStatus;
flags_cmd_out = f_putcmd | f_ResponseStatus | f_obey_p_check;
}
else if (famT_drive)
{
......@@ -3916,6 +3926,9 @@ static int sbpcd_ioctl(struct inode *inode, struct file *file, u_int cmd,
case CDROMPLAYMSF:
msg(DBG_IOC,"ioctl: CDROMPLAYMSF entered.\n");
#if SAFE_MIXED
if (D_S[d].has_data>1) return (-EBUSY);
#endif SAFE_MIXED
if (D_S[d].audio_state==audio_playing)
{
i=cc_Pause_Resume(1);
......@@ -3938,15 +3951,21 @@ static int sbpcd_ioctl(struct inode *inode, struct file *file, u_int cmd,
msg(DBG_IOX,"ioctl: CDROMPLAYMSF %08X %08X\n",
D_S[d].pos_audio_start,D_S[d].pos_audio_end);
i=cc_PlayAudio(D_S[d].pos_audio_start,D_S[d].pos_audio_end);
msg(DBG_IOC,"ioctl: cc_PlayAudio returns %d\n",i);
#if 0
if (i<0) return (-EIO);
#endif 0
if (i<0)
{
msg(DBG_INF,"ioctl: cc_PlayAudio returns %d\n",i);
DriveReset();
D_S[d].audio_state=0;
return (-EIO);
}
D_S[d].audio_state=audio_playing;
return (0);
case CDROMPLAYTRKIND: /* Play a track. This currently ignores index. */
msg(DBG_IOC,"ioctl: CDROMPLAYTRKIND entered.\n");
#if SAFE_MIXED
if (D_S[d].has_data>1) return (-EBUSY);
#endif SAFE_MIXED
if (D_S[d].audio_state==audio_playing)
{
msg(DBG_IOX,"CDROMPLAYTRKIND: already audio_playing.\n");
......@@ -3969,9 +3988,13 @@ static int sbpcd_ioctl(struct inode *inode, struct file *file, u_int cmd,
D_S[d].pos_audio_start=D_S[d].TocBuffer[ti.cdti_trk0].address;
D_S[d].pos_audio_end=D_S[d].TocBuffer[ti.cdti_trk1+1].address;
i=cc_PlayAudio(D_S[d].pos_audio_start,D_S[d].pos_audio_end);
#if 0
if (i<0) return (-EIO);
#endif 0
if (i<0)
{
msg(DBG_INF,"ioctl: cc_PlayAudio returns %d\n",i);
DriveReset();
D_S[d].audio_state=0;
return (-EIO);
}
D_S[d].audio_state=audio_playing;
return (0);
......@@ -4015,6 +4038,9 @@ static int sbpcd_ioctl(struct inode *inode, struct file *file, u_int cmd,
case CDROMSTOP: /* Spin down the drive */
msg(DBG_IOC,"ioctl: CDROMSTOP entered.\n");
#if SAFE_MIXED
if (D_S[d].has_data>1) return (-EBUSY);
#endif SAFE_MIXED
i=cc_Pause_Resume(1);
D_S[d].audio_state=0;
return (i);
......@@ -4119,6 +4145,9 @@ static int sbpcd_ioctl(struct inode *inode, struct file *file, u_int cmd,
case CDROMREADMODE1:
msg(DBG_IOC,"ioctl: CDROMREADMODE1 requested.\n");
#if SAFE_MIXED
if (D_S[d].has_data>1) return (-EBUSY);
#endif SAFE_MIXED
cc_ModeSelect(CD_FRAMESIZE);
cc_ModeSense();
D_S[d].mode=READ_M1;
......@@ -4126,6 +4155,9 @@ static int sbpcd_ioctl(struct inode *inode, struct file *file, u_int cmd,
case CDROMREADMODE2: /* not usable at the moment */
msg(DBG_IOC,"ioctl: CDROMREADMODE2 requested.\n");
#if SAFE_MIXED
if (D_S[d].has_data>1) return (-EBUSY);
#endif SAFE_MIXED
cc_ModeSelect(CD_FRAMESIZE_RAW1);
cc_ModeSense();
D_S[d].mode=READ_M2;
......@@ -4165,6 +4197,9 @@ static int sbpcd_ioctl(struct inode *inode, struct file *file, u_int cmd,
if (famL_drive) return (-EINVAL);
if (famV_drive) return (-EINVAL);
if (famT_drive) return (-EINVAL);
#if SAFE_MIXED
if (D_S[d].has_data>1) return (-EBUSY);
#endif SAFE_MIXED
if (D_S[d].aud_buf==NULL) return (-EINVAL);
i=verify_area(VERIFY_READ, (void *) arg, sizeof(struct cdrom_read_audio));
if (i) return (i);
......@@ -4488,6 +4523,9 @@ static void DO_SBPCD_REQUEST(void)
sbp_sleep(0);
if (sbp_data() != 0)
{
#if SAFE_MIXED
D_S[d].has_data=2; /* is really a data disk */
#endif SAFE_MIXED
end_request(1);
goto request_loop;
}
......@@ -4959,7 +4997,15 @@ static int sbpcd_open(struct inode *ip, struct file *fp)
i=DiskInfo();
if (famT_drive) msg(DBG_TEA,"sbpcd_open: after i=DiskInfo();.\n");
if ((D_S[d].ored_ctl_adr&0x40)==0)
{
msg(DBG_INF,"CD contains no data tracks.\n");
#if SAFE_MIXED
D_S[d].has_data=0;
#endif SAFE_MIXED
}
#if SAFE_MIXED
else if (D_S[d].has_data<1) D_S[d].has_data=1;
#endif SAFE_MIXED
}
if (!st_spinning) cc_SpinUp();
return (0);
......@@ -4979,11 +5025,6 @@ static void sbpcd_release(struct inode * ip, struct file * file)
return;
}
switch_drive(i);
D_S[d].sbp_first_frame=D_S[d].sbp_last_frame=-1;
sync_dev(ip->i_rdev); /* nonsense if read only device? */
invalidate_buffers(ip->i_rdev);
/*
* try to keep an "open" counter here and unlock the door if 1->0.
*/
......@@ -4994,11 +5035,17 @@ static void sbpcd_release(struct inode * ip, struct file * file)
{
if (--D_S[d].open_count<=0)
{
D_S[d].sbp_first_frame=D_S[d].sbp_last_frame=-1;
sync_dev(ip->i_rdev); /* nonsense if read only device? */
invalidate_buffers(ip->i_rdev);
i=UnLockDoor();
if (D_S[d].audio_state!=audio_playing)
if (D_S[d].f_eject) cc_SpinDown();
D_S[d].diskstate_flags &= ~cd_size_bit;
D_S[d].open_count=0;
#if SAFE_MIXED
D_S[d].has_data=0;
#endif SAFE_MIXED
}
}
}
......@@ -5327,6 +5374,9 @@ int SBPCD_INIT(void)
{
if (D_S[j].drv_id==-1) continue;
switch_drive(j);
#if SAFE_MIXED
D_S[j].has_data=0;
#endif SAFE_MIXED
/*
* allocate memory for the frame buffers
*/
......
Wed Jun 5 18:52:04 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
* tty_io.c (do_tty_hangup):
* pty.c (pty_close): When closing a pty, make sure packet mode is
cleared.
Sun May 26 09:33:52 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
* vesa_blank.c (set_vesa_blanking): Add missing verify_area() call.
* selection.c (set_selection): Add missing verify_area() call.
* tty_io.c (tty_ioctl): Add missing verify_area() calls.
* serial.c (rs_ioctl): Add missing verify_area() calls.
(rs_init): Allow initialization of serial driver
configuration from a module.
* random.c (extract_entropy): Add missing verify_area call.
Don't limit number of characters returned to
32,768. Extract entropy is now no longer a inlined
function.
(random_read): Check return value in case extract_entropy
returns an error.
(secure_tcp_sequence_number): New function which returns a
secure TCP sequence number. This is needed to prevent some
nasty TCP hijacking attacks.
(init_std_data): Initialize using gettimeofday() instead of
struct timveal xtime.
(fast_add_entropy_word, add_entropy_word): Rename the
inline function add_entropy_word() to
fast_add_entropy_word(). Make add_entropy_word() be the
non-inlined function which is used in non-timing critical
places, in order to save space.
(initialize_benchmark, begin_benchmark, end_benchmark): New
functions defined when RANDOM_BENCHMARK is defined. They
allow us to benchmark the speed of the
add_timer_randomness() call.
(int_ln, rotate_left): Add two new inline functions with
i386 optimized asm instructions. This speeds up the
critical add_entropy_word() and add_timer_randomness()
functions, which are called from interrupt handlers.
Tue May 7 22:51:11 1996 <tytso@rsts-11.mit.edu>
* random.c (add_timer_randomness): Limit the amount randomness
......@@ -15,7 +64,6 @@ Tue May 7 22:51:11 1996 <tytso@rsts-11.mit.edu>
old ioctl values to be used for backwards compatibility
(for a limited amount of time).
Wed Apr 24 14:02:04 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
* random.c (add_timer_randomness): Use 2nd derivative as well to
......
......@@ -16,7 +16,7 @@ tristate 'SDL RISCom/8 card support' CONFIG_RISCOM8
tristate 'Parallel printer support' CONFIG_PRINTER
bool 'Bus Mouse Support' CONFIG_MOUSE
bool 'Mouse Support (not serial mice)' CONFIG_MOUSE
if [ "$CONFIG_MOUSE" = "y" ]; then
tristate 'ATIXL busmouse support' CONFIG_ATIXL_BUSMOUSE
tristate 'Logitech busmouse support' CONFIG_BUSMOUSE
......
This diff is collapsed.
......@@ -74,8 +74,10 @@ static void pty_close(struct tty_struct * tty, struct file * filp)
}
wake_up_interruptible(&tty->read_wait);
wake_up_interruptible(&tty->write_wait);
tty->packet = 0;
if (!tty->link)
return;
tty->link->packet = 0;
wake_up_interruptible(&tty->link->read_wait);
wake_up_interruptible(&tty->link->write_wait);
set_bit(TTY_OTHER_CLOSED, &tty->link->flags);
......
This diff is collapsed.
......@@ -123,6 +123,10 @@ int set_selection(const unsigned long arg, struct tty_struct *tty, int user)
args = (unsigned short *)(arg + 1);
if (user) {
int err;
err = verify_area(VERIFY_READ, args, sizeof(short) * 5);
if (err)
return err;
xs = get_user(args++) - 1;
ys = get_user(args++) - 1;
xe = get_user(args++) - 1;
......
......@@ -49,7 +49,7 @@
#include <asm/bitops.h>
static char *serial_name = "Serial driver";
static char *serial_version = "4.12";
static char *serial_version = "4.13";
DECLARE_TASK_QUEUE(tq_serial);
......@@ -90,6 +90,13 @@ static int serial_refcount;
#define _INLINE_ inline
#ifdef MODULE
static int io[PORT_MAX] = { 0, };
static int irq[PORT_MAX] = { 0, };
static int type[PORT_MAX] = { 0, };
static int flags[PORT_MAX] = { 0, };
#endif
#if defined(MODULE) && defined(SERIAL_DEBUG_MCOUNT)
#define DBG_CNT(s) printk("(%s): [%x] refc=%d, serc=%d, ttyc=%d -> %s\n", \
kdevname(tty->device), (info->flags), serial_refcount,info->count,tty->count,s)
......@@ -1944,6 +1951,9 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
(unsigned long *) arg);
return 0;
case TIOCSSOFTCAR:
error = verify_area(VERIFY_READ, (void *) arg,sizeof(long));
if (error)
return error;
arg = get_fs_long((unsigned long *) arg);
tty->termios->c_cflag =
((tty->termios->c_cflag & ~CLOCAL) |
......@@ -1967,6 +1977,10 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
return get_serial_info(info,
(struct serial_struct *) arg);
case TIOCSSERIAL:
error = verify_area(VERIFY_READ, (void *) arg,
sizeof(struct serial_struct));
if (error)
return error;
return set_serial_info(info,
(struct serial_struct *) arg);
case TIOCSERCONFIG:
......@@ -1991,6 +2005,9 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
case TIOCSERSWILD:
if (!suser())
return -EPERM;
error = verify_area(VERIFY_READ, (void *) arg,sizeof(long));
if (error)
return error;
rs_wild_int_mask = get_fs_long((unsigned long *) arg);
if (rs_wild_int_mask < 0)
rs_wild_int_mask = check_wild_interrupts(0);
......@@ -2013,6 +2030,10 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
return get_multiport_struct(info,
(struct serial_multiport_struct *) arg);
case TIOCSERSETMULTI:
error = verify_area(VERIFY_READ, (void *) arg,
sizeof(struct serial_multiport_struct));
if (error)
return error;
return set_multiport_struct(info,
(struct serial_multiport_struct *) arg);
/*
......@@ -2804,13 +2825,25 @@ int rs_init(void)
info->icount.rng = info->icount.dcd = 0;
info->next_port = 0;
info->prev_port = 0;
#ifdef MODULE
if(irq[i])
info->irq=irq[i];
if (io[i])
info->port=io[i];
if (type[i])
info->type = type[i];
if (flags[i])
info->flags = flags[i];
#endif
if (info->irq == 2)
info->irq = 9;
if (!(info->flags & ASYNC_BOOT_AUTOCONF))
continue;
autoconfig(info);
if (info->type == PORT_UNKNOWN)
continue;
if (info->type == PORT_UNKNOWN) {
if (!(info->flags & ASYNC_BOOT_AUTOCONF))
continue;
autoconfig(info);
if (info->type == PORT_UNKNOWN)
continue;
}
printk(KERN_INFO "tty%02d%s at 0x%04x (irq = %d)", info->line,
(info->flags & ASYNC_FOURPORT) ? " FourPort" : "",
info->port, info->irq);
......
......@@ -431,6 +431,9 @@ void do_tty_hangup(struct tty_struct * tty, struct file_operations *fops)
tty->session = 0;
tty->pgrp = -1;
tty->ctrl_status = 0;
tty->packet = 0;
if (tty->link)
tty->link->packet = 0;
if (tty->driver.flags & TTY_DRIVER_RESET_TERMIOS)
*tty->termios = tty->driver.init_termios;
if (tty->driver.hangup)
......@@ -1518,6 +1521,10 @@ static int tty_ioctl(struct inode * inode, struct file * file,
return 0;
case TIOCSETD:
retval = tty_check_change(tty);
if (retval)
return retval;
retval = verify_area(VERIFY_READ, (void *) arg,
sizeof (int));
if (retval)
return retval;
arg = get_user((int *) arg);
......@@ -1558,9 +1565,15 @@ static int tty_ioctl(struct inode * inode, struct file * file,
* kernel-internal variable; programs not closely
* related to the kernel should not use this.
*/
retval = verify_area(VERIFY_WRITE, (void *) arg, 1);
if (retval)
return retval;
put_user(shift_state,(char *) arg);
return 0;
case 7:
retval = verify_area(VERIFY_WRITE, (void *) arg, 1);
if (retval)
return retval;
put_user(mouse_reporting(),(char *) arg);
return 0;
case 10:
......
......@@ -44,6 +44,7 @@
#include <asm/io.h>
#include <asm/system.h>
#include <asm/segment.h>
#include <linux/mm.h>
extern unsigned short video_port_reg, video_port_val;
......@@ -267,7 +268,12 @@ void vesa_unblank(void)
void set_vesa_blanking(const unsigned long arg)
{
unsigned char *argp = (unsigned char *)(arg + 1);
unsigned int mode = get_user(argp);
unsigned int mode;
if (verify_area(VERIFY_READ, argp, 1))
return;
mode = get_user(argp);
vesa_blanking_mode = suspend_vesa_blanking_mode =
((mode <= VESA_POWERDOWN) ? mode : DEFAULT_VESA_BLANKING_MODE);
}
......
......@@ -165,6 +165,7 @@ tx_full and tbusy flags.
* - added support for Linux/Alpha, but removed most of it, because
* it worked only for the PCI chip.
* - added hook for the 32bit lance driver
* - added PCnetPCI II (79C970A) to chip table
*
* Paul Gortmaker (gpg109@rsphy1.anu.edu.au):
* - hopefully fix above so Linux/Alpha can use ISA cards too.
......@@ -268,12 +269,15 @@ static struct lance_chip_type {
{0x2430, "PCnet32", /* 79C965 PCnet for VL bus. */
LANCE_ENABLE_AUTOSELECT + LANCE_MUST_REINIT_RING +
LANCE_HAS_MISSED_FRAME},
{0x2621, "PCnet/PCI-II 79C970A", /* 79C970A PCInetPCI II. */
LANCE_ENABLE_AUTOSELECT + LANCE_MUST_REINIT_RING +
LANCE_HAS_MISSED_FRAME},
{0x0, "PCnet (unknown)",
LANCE_ENABLE_AUTOSELECT + LANCE_MUST_REINIT_RING +
LANCE_HAS_MISSED_FRAME},
};
enum {OLD_LANCE = 0, PCNET_ISA=1, PCNET_ISAP=2, PCNET_PCI=3, PCNET_VLB=4, LANCE_UNKNOWN=5};
enum {OLD_LANCE = 0, PCNET_ISA=1, PCNET_ISAP=2, PCNET_PCI=3, PCNET_VLB=4, PCNET_PCI_II=5, LANCE_UNKNOWN=6};
/* Non-zero only if the current card is a PCI with BIOS-set IRQ. */
static unsigned char pci_irq_line = 0;
......@@ -437,7 +441,7 @@ void lance_probe1(int ioaddr)
#ifdef CONFIG_LANCE32
/* look if it's a PCI or VLB chip */
if (lance_version == PCNET_PCI || lance_version == PCNET_VLB) {
if (lance_version == PCNET_PCI || lance_version == PCNET_VLB || lance_version == PCNET_PCI_II) {
extern void lance32_probe1 (struct device *dev, const char *chipname, int pci_irq_line);
lance32_probe1 (dev, chipname, pci_irq_line);
......
......@@ -40,10 +40,11 @@
Paul Gortmaker : multiple card support for module users.
Donald Becker : 4/17/96 PIO support, minor potential problems avoided.
Donald Becker : 6/6/96 correctly set auto-wrap bit.
*/
static const char *version =
"smc-ultra.c:v1.99 4/17/96 Donald Becker (becker@cesdis.gsfc.nasa.gov)\n";
"smc-ultra.c:v2.00 6/6/96 Donald Becker (becker@cesdis.gsfc.nasa.gov)\n";
#include <linux/module.h>
......@@ -256,9 +257,10 @@ ultra_open(struct device *dev)
outb(0x00, ioaddr); /* Disable shared memory for safety. */
outb(0x80, ioaddr + 5);
if (ei_status.block_input == &ultra_pio_input)
if (ei_status.block_input == &ultra_pio_input) {
outb(0x11, ioaddr + 6); /* Enable interrupts and PIO. */
else
outb(0x01, ioaddr + 0x19); /* Enable ring read auto-wrap. */
} else
outb(0x01, ioaddr + 6); /* Enable interrupts and memory. */
/* Set the early receive warning level in window 0 high enough not
to receive ERW interrupts. */
......
This diff is collapsed.
......@@ -119,12 +119,13 @@ int BusLogic_BIOSDiskParameters(SCSI_Disk_T *, KernelDevice_T, int *);
/*
Define the maximum and default Queue Depth to allow for Target Devices
depending on whether or not they support Tagged Queuing and whether or not
ISA Bounce Buffers are required.
Define the maximum, preferred, and default Queue Depth to allow for Target
Devices depending on whether or not they support Tagged Queuing and whether
or not ISA Bounce Buffers are required.
*/
#define BusLogic_MaxTaggedQueueDepth 31
#define BusLogic_MaxTaggedQueueDepth 63
#define BusLogic_PreferredTaggedQueueDepth 28
#define BusLogic_TaggedQueueDepth_BB 2
#define BusLogic_UntaggedQueueDepth 3
......@@ -191,6 +192,13 @@ static char
typedef unsigned char boolean;
/*
Define a 32 bit bus address data type.
*/
typedef unsigned int bus_address_t;
/*
Define the BusLogic SCSI Host Adapter I/O Register Offsets.
*/
......@@ -401,7 +409,7 @@ BusLogic_SetupInformation_T;
typedef struct BusLogic_ExtendedMailboxRequest
{
unsigned char MailboxCount; /* Byte 0 */
void *BaseMailboxAddress __attribute__ ((packed)); /* Bytes 1-4 */
bus_address_t BaseMailboxAddress __attribute__ ((packed)); /* Bytes 1-4 */
}
BusLogic_ExtendedMailboxRequest_T;
......@@ -466,7 +474,7 @@ typedef struct BusLogic_ExtendedSetupInformation
unsigned char BIOS_Address; /* Byte 1 */
unsigned short ScatterGatherLimit; /* Bytes 2-3 */
unsigned char MailboxCount; /* Byte 4 */
void *BaseMailboxAddress __attribute__ ((packed)); /* Bytes 5-8 */
bus_address_t BaseMailboxAddress __attribute__ ((packed)); /* Bytes 5-8 */
struct { unsigned char :6; /* Byte 9 Bits 0-5 */
boolean LevelSensitiveInterrupts:1; /* Byte 9 Bit 6 */
unsigned char :1; } Misc; /* Byte 9 Bit 7 */
......@@ -708,15 +716,6 @@ BusLogic_QueueTag_T;
typedef unsigned char SCSI_CDB_T[BusLogic_CDB_MaxLength];
/*
Define the SCSI Sense Data.
*/
#define BusLogic_SenseDataMaxLength 255
typedef unsigned char SCSI_SenseData_T[BusLogic_SenseDataMaxLength];
/*
Define the Scatter/Gather Segment structure required by the Host Adapter
Firmware Interface.
......@@ -724,8 +723,8 @@ typedef unsigned char SCSI_SenseData_T[BusLogic_SenseDataMaxLength];
typedef struct BusLogic_ScatterGatherSegment
{
unsigned long SegmentByteCount; /* Bytes 0-3 */
void *SegmentDataPointer; /* Bytes 4-7 */
unsigned int SegmentByteCount; /* Bytes 0-3 */
bus_address_t SegmentDataPointer; /* Bytes 4-7 */
}
BusLogic_ScatterGatherSegment_T;
......@@ -754,8 +753,8 @@ typedef struct BusLogic_CCB
BusLogic_QueueTag_T WideModeQueueTag:2; /* Byte 1 Bits 6-7 */
unsigned char CDB_Length; /* Byte 2 */
unsigned char SenseDataLength; /* Byte 3 */
unsigned long DataLength; /* Bytes 4-7 */
void *DataPointer; /* Bytes 8-11 */
unsigned int DataLength; /* Bytes 4-7 */
bus_address_t DataPointer; /* Bytes 8-11 */
unsigned char :8; /* Byte 12 */
unsigned char :8; /* Byte 13 */
BusLogic_HostAdapterStatus_T HostAdapterStatus:8; /* Byte 14 */
......@@ -767,8 +766,8 @@ typedef struct BusLogic_CCB
SCSI_CDB_T CDB; /* Bytes 18-29 */
unsigned char :8; /* Byte 30 */
unsigned char :8; /* Byte 31 */
unsigned long :32; /* Bytes 32-35 */
SCSI_SenseData_T *SenseDataPointer; /* Bytes 36-39 */
unsigned int :32; /* Bytes 32-35 */
bus_address_t SenseDataPointer; /* Bytes 36-39 */
/*
BusLogic Linux Driver Portion.
*/
......@@ -779,7 +778,7 @@ typedef struct BusLogic_CCB
BusLogic_CCB_Completed = 2,
BusLogic_CCB_Reset = 3 } Status;
BusLogic_CompletionCode_T MailboxCompletionCode;
unsigned int SerialNumber;
unsigned long SerialNumber;
struct BusLogic_CCB *Next;
struct BusLogic_CCB *NextAll;
BusLogic_ScatterGatherSegment_T
......@@ -794,8 +793,8 @@ BusLogic_CCB_T;
typedef struct BusLogic_OutgoingMailbox
{
BusLogic_CCB_T *CCB; /* Bytes 0-3 */
unsigned long :24; /* Byte 4 */
bus_address_t CCB; /* Bytes 0-3 */
unsigned int :24; /* Byte 4 */
BusLogic_ActionCode_T ActionCode:8; /* Bytes 5-7 */
}
BusLogic_OutgoingMailbox_T;
......@@ -807,7 +806,7 @@ BusLogic_OutgoingMailbox_T;
typedef struct BusLogic_IncomingMailbox
{
BusLogic_CCB_T *CCB; /* Bytes 0-3 */
bus_address_t CCB; /* Bytes 0-3 */
BusLogic_HostAdapterStatus_T HostAdapterStatus:8; /* Byte 4 */
BusLogic_TargetDeviceStatus_T TargetDeviceStatus:8; /* Byte 5 */
unsigned char :8; /* Byte 6 */
......@@ -842,7 +841,7 @@ static char
typedef struct BusLogic_CommandLineEntry
{
unsigned short IO_Address;
unsigned int IO_Address;
unsigned short TaggedQueueDepth;
unsigned short BusSettleTime;
unsigned short LocalOptions;
......@@ -860,12 +859,12 @@ BusLogic_CommandLineEntry_T;
typedef struct BusLogic_HostAdapter
{
SCSI_Host_T *SCSI_Host;
unsigned int IO_Address;
unsigned char HostNumber;
unsigned char ModelName[9];
unsigned char FirmwareVersion[6];
unsigned char BoardName[18];
unsigned char InterruptLabel[62];
unsigned short IO_Address;
unsigned char IRQ_Channel;
unsigned char DMA_Channel;
unsigned char SCSI_ID;
......@@ -901,7 +900,7 @@ typedef struct BusLogic_HostAdapter
unsigned short LocalOptions;
unsigned short DisconnectPermitted;
unsigned short TaggedQueuingPermitted;
unsigned long BIOS_Address;
bus_address_t BIOS_Address;
BusLogic_InstalledDevices_T InstalledDevices;
BusLogic_SynchronousValues_T SynchronousValues;
BusLogic_SynchronousPeriod_T SynchronousPeriod;
......@@ -1063,6 +1062,22 @@ static inline void BusLogic_Delay(int Seconds)
}
/*
Virtual_to_Bus and Bus_to_Virtual map between Kernel Virtual Addresses
and PCI/VLB/EISA/ISA Bus Addresses.
*/
static inline bus_address_t Virtual_to_Bus(void *VirtualAddress)
{
return (bus_address_t) virt_to_bus(VirtualAddress);
}
static inline void *Bus_to_Virtual(bus_address_t BusAddress)
{
return (void *) bus_to_virt(BusAddress);
}
/*
Define prototypes for the forward referenced BusLogic Driver
Internal Functions.
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -28,6 +28,9 @@ if [ "$CONFIG_INET" = "y" ]; then
fi
fi
tristate 'SMB filesystem support (to mount WfW shares etc..)' CONFIG_SMB_FS
if [ "$CONFIG_SMB_FS" != "n" -a "$CONFIG_EXPERIMENTAL" = "y" ]; then
bool 'SMB long filename support (EXPERIMENTAL)' CONFIG_SMB_LONG
fi
fi
if [ "$CONFIG_IPX" != "n" ]; then
tristate 'NCP filesystem support (to mount NetWare volumes)' CONFIG_NCP_FS
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment