Commit 0351166f authored by Linus Torvalds's avatar Linus Torvalds

Import pre2.0.1

parent 0294f4bd
pre-2.0
......@@ -2,7 +2,8 @@
contributed to the linux project. It is sorted by name, and
formatted in a format that allows for easy grepping and
beautification by scripts. The fields are: name (N), email (E),
web-address (W), description (D) and snail-mail address (S).
web-address (W), PGP key ID and fingerprint (P), description (D)
and snail-mail address (S).
Thanks,
Linus
......@@ -570,6 +571,8 @@ S: United Kingdom
N: Michael K. Johnson
E: johnsonm@redhat.com
W: http://www.redhat.com/~johnsonm
P: 1024/4536A8DD 2A EC 88 08 40 64 CE D8 DD F8 12 2B 61 43 83 15
D: The Linux Documentation Project
D: Kernel Hackers' Guide
D: Procps
......
This document contains a list of the latest releases of the most
important packages for Linux as well as instructions for newcomers to
the 1.3.x series of kernels.
the 1.3.x series of kernels. By glancing through it, you should be
able to find out what you need to upgrade to successfully run the
latest kernels.
Last updated: Apr 29, 1996.
Author: Chris Ricker (gt1355b@prism.gatech.edu), based on the original by
Alessandro Sigala (ssigala@globalnet.it).
It was originally based on material from the linux-kernel mailing
list, Jared Mauch's web page "Software Victims of the 1.3 Kernel
Development" (http://www2.nether.net/~jared/victim.html), and Axel
Boldt's (boldt@math.ucsb.edu) Configure.help file, among other sources,
and was originally written and maintained by Alessandro Sigala
(ssigala@globalnet.it).
Last updated: May 10, 1996.
Current Author: Chris Ricker (gt1355b@prism.gatech.edu).
Current Releases
****************
- Kernel modules Stable: 1.3.57, Exp: 1.3.69f
- Kernel modules Stable: 1.3.57, Exp: 1.3.69g
- PPP daemon Stable: 2.2.0f
- Dynamic linker (ld.so) 1.7.14
- GNU CC 2.7.2
......@@ -22,66 +30,28 @@ Current Releases
- SysVinit 2.60
- Util-linux 2.5
What you really need to upgrade
*******************************
Dynamic linker
==============
You might upgrade the dynamic linker to the latest release, but only
to solve some bugs.
SysVinit
========
The FIFO behavior is changed in the latest 1.3.x kernel releases.
Upgrade to 2.60 if the older version seems broken.
PPP daemon and utilities
========================
To use the PPP protocol with the 1.3.x linux kernel, you need to
upgrade the PPP package to version 2.2.0f.
Procps utilities
================
In the latest 1.3.x kernel releases the /proc filesystem structure
was changed, so you need to upgrade the Procps package to version
0.99a. In the very latest kernels, /proc has changed again. There's
not yet an officially updated version of procps, so make due with
0.99a; you might want to look for one of the patches floating around to
update 0.99a for use with 1.3.94 and later kernels.
Installation notes
******************
Kernel Modules
==============
The current kernel modules release is 1.3.57, but you need the
experimental release 1.3.69 to use newer binutils 2.6.0.x, because
modules compiled with new binutils can't be loaded by modules 1.3.57.
Upgrade notes
*************
The Linux C Library
===================
The latest stable Linux C Library release is 5.2.18. If you upgrade
to this from 5.0.9 or earlier, be sure to read the `release.libc-5.2.18'
file, since GNU make and a few other fairly important utils can be
broken by the upgrade.
to this from 5.0.9 or earlier, be sure to read the
`release.libc-5.2.18' file, since GNU make and a few other fairly
important utils can be broken by the upgrade.
The current (beta) Linux C Library release is 5.3.12. In this
release there are some important changes that may cause troubles to
buggy programs (programs that call free() on a pointer not returned by
malloc() work with previous libc, but not with this release) then read
the `release.libc-5.3.9' file carefully! In the latest libc releases a
malloc() work with previous libc, but not with this release) so read the
`release.libc-5.3.9' file carefully! In the latest libc releases a
dirent bug, which erroneously defined d->reclen to d->namlen if USE_GNU
was defined, has been fixed. Unfortunately, some GNU packages depend on
this bug. GNU make 3.xx is one of them. To fix that you need to patch
and recompile those programs (a patch for make is included in the file
`release.libc-.5.3.9', and the address to obtain a precompiled binary
is at the end of this file).
was defined, has been fixed. Unfortunately, some GNU packages depend
on this bug. GNU make 3.xx is one of them. To fix that you need to
patch and recompile those programs (a patch for make is included in the
file `release.libc-.5.3.9', and the address to obtain a precompiled
binary is at the end of this file).
Also, the libc-5.3.x line has a known security hole relating to
rlogin. Libc-5.3.12 fixes this, so if you're going to run an
......@@ -102,7 +72,9 @@ the old libc). If you're feeling lazy, just comment out
"fcntl_setlk() called by process %d with broken flock()
emulation\n", current->pid);'
in linux/fs/locks.c and recompile.
in linux/fs/locks.c and recompile. If you're still running a.out,
there's an unofficial libc-4.7.6 release out to which you can upgrade
to fix this problem.
The Termcap Library
===================
......@@ -111,38 +83,23 @@ The Termcap Library
read the `README' file contained into the package to get some important
information about the `tgetent' function changes!
Upgrading to 1.3.x kernel from 1.2.13
*************************************
This section was based on material from the linux-kernel mailing
list, Jared Mauch's web page "Software Victims of the 1.3 Kernel
Development" (http://www2.nether.net/~jared/victim.html), and Axel
Boldt's (boldt@math.ucsb.edu) Configure.help file, among other sources.
This section is intended primarily to help those that are new to the
1.3.x series of Linux kernels. In the ongoing effort to make a faster,
better kernel and eventually achieve total world domination, several
features of the Linux kernel have been improved. As a result, when you
first upgrade to 1.3.x from 1.2.13, you will also have to upgrade
several utilities that are closely associated with the kernel and make
use of these features.
Proc filesystem
===============
Procps utilities
================
Various changes in the /proc filesystem have been made, affecting
ps, top, etc. Running `top' or `ps -auwwx' will now give you a floating
point exception. To fix the problem, upgrade to procps-0.99a.tar.gz,
available at
ftp://tsx-11.mit.edu/pub/linux/BETA/procps/procps-0.99a.tar.gz.
In the latest 1.3.x kernel releases the /proc file system structure
was changed, so you need to upgrade the procps package to version
0.99a. In the very latest kernels, /proc has changed again. There's
not yet an officially updated version of procps, so make due with
0.99a; you might want to look for one of the patches floating around to
update 0.99a for use with 1.3.94 and later kernels.
Modules
=======
Kernel Modules
==============
1.3.x is almost completely modularized, and kerneld is now
incorporated into the kernel. To take advantage of this, you'll need
the latest version of the module support apps. The latest non-beta is
modules-1.3.57.tar.gz, and the latest beta is modules-1.3.69f.tar.gz.
modules-1.3.57.tar.gz, and the latest beta is modules-1.3.69g.tar.gz.
These should be available at the same place you picked up your kernel
(ftp://ftp.cc.gatech.edu/pub/linux/kernel/) and the home page is
http://www.pi.se/blox/modules/index.html. Note: If you try to load a
......@@ -151,12 +108,12 @@ module and get a message like
`gcc2_compiled, undefined Failed to load module! The symbols from
kernel 1.3.foo don't match 1.3.foo'
where `foo' is a number between 1 and 89, then it's time to upgrade
module utilities from 1.3.57 to 1.3.69f; you'll only get this error if
you're running the latest binutils, so most people don't need to
upgrade.
where `foo' is a number between 1 and 100, then it's time to upgrade
module utilities from 1.3.57 to 1.3.69g; you'll only get this error if
you're running the latest binutils, so most people don't need to upgrade
past 1.3.57.
Another little tip: you can't have both a.out *and* ELF support
Another little tip: you can't have both a.out *and* ELF support
compiled as modules. Otherwise, you get a nice Catch-22 when you try
to run insmod to install a.out/ELF support so you can run insmod ;-).
If you have an all-ELF system, but need a.out for the occasional
......@@ -218,9 +175,9 @@ ftp://sunsite.unc.edu/pub/Linux/system/Serial/getty_ps-2.0.7h.tar.gz.
Console
=======
The Linux console type has changed. If your setup is old enough that
you have problems, you'll need to update your termcap. To fix, add
linux to one of the types in /etc/termcap or snoop around
The Linux console type has changed. If your setup is old enough
that you have problems, you'll need to update your termcap. To fix,
add linux to one of the types in /etc/termcap or snoop around
http://www.ccil.org/~esr/ncurses.html (reputedly the latest universal
termcap maintainer). You may also need to update terminfo by running
the following as root:
......@@ -344,8 +301,8 @@ ever works ;-), get
ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/Development/dosemu-0.63.1.8.tgz.
Please send info about any other packages that 1.3.x "broke" or about
any new features of 1.3.x that require extra packages for use to Chris
Ricker (gt1355b@prism.gatech.edu).
any new features of 1.3.x that require extra or new packages for use to
Chris Ricker (gt1355b@prism.gatech.edu).
How to know the version of the installed programs
*************************************************
......@@ -358,7 +315,7 @@ PPP: pppd -h (wrong but it show the version)
Libc: ls -l /lib/libc.so.5
LibC++: ls -l /usr/lib/libg++.so
Binutils: ld -v
dld: ldd -v and ldd -V
ldd: ldd -v and ldd -V
termcap: ls -l /lib/libtermcap.so.*
modules: insmod -V
procps: ps --version
......
......@@ -623,6 +623,7 @@ CONFIG_BINFMT_JAVA
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 a interesting Java program that you can't live without.
Processor type
CONFIG_M386
This is the processor type of your CPU. It is used for optimizing
......
This diff is collapsed.
......@@ -3,14 +3,20 @@ cm206 in combination with the cm260 host adapter card.
(c) 1995 David A. van Leeuwen
Features as of version 0.33
Changes since version 0.99
--------------------------
- Interfacing to the kernel is routed though an extra interface layer,
cdrom.c. This allows runtime-configurable `bahavior' of the cdrom-drive,
independent of the driver.
Features since version 0.33
---------------------------
- Full audio support, that is, both workman, workbone and cdp work
now reasonably. Reading TOC still takes some time. xmcd has been
reported to run successfully.
- Made auto-probe code a little better, i hope
Features as of version 0.28
Features since version 0.28
---------------------------
- Full speed transfer rate (300 kB/s).
- Minimum kernel memory usage for buffering (less than 3 kB).
......@@ -21,12 +27,6 @@ Features as of version 0.28
- Auto-probing of adapter card's base port and irq line,
also configurable at boot time or module load time.
Features still lacking
----------------------
- cm205ms+cm250 support. (I do have cm205ms docs now. I still have to
study Kai Petzke's cm205 drives to understand the workings of the
cm250 adapter card. Don't bet on me, write a driver yourself!)
Decide how you are going to use the driver. There are two
options:
......@@ -66,9 +66,16 @@ Using the driver as a module
----------------------------
If you will only seldomly use the cd-rom driver, you can choose for
option (b), install as a loadable module. You may have to re-compile
the module when you upgrade the kernel to a new version. Read the file
`README.modules' in /usr/src/linux. To install the module, you use the
command, as root
the module when you upgrade the kernel to a new version.
Since version 0.96, much of the functionality has been transferred to
a generic cdrom interface in the file cdrom.c. The module cm206.o
depends on cdrom.o. If the latter is not compiled in in the kernel,
you must explicitly load it before cm206.o:
insmod /usr/src/linux/modules/cdrom.o
To install the module, you use the command, as root
insmod /usr/src/linux/modules/cm206.o
......@@ -80,16 +87,8 @@ line to be used, e.g.
The order of base port and irq line don't matter; you may specify only
one, the other will have the value of the compiled-in default. You
may also have to install the file-system module `iso9660.o', if you
didn't compile that into the kernel. (If you use `tcsh' as shell, you
might consider defining
didn't compile that into the kernel.
alias listinstalledmodules 'cat /proc/modules | awk \{print\$1\}'
complete rmmod 'p/1/`listinstalledmodules`/'
alias listcompiledmodules '(cd /usr/src/linux/modules; \ls -o *.o)'
alias insmod 'insmod /usr/src/linux/modules/\!:1 \!:2*'
complete insmod 'p/1/`listcompiledmodules`/'
which makes typing insmod and rmmod somewhat easier.)
Using the driver as part of the kernel
--------------------------------------
......@@ -103,6 +102,16 @@ If you may specify either IRQ (3--11) or base port (0x300--0x370),
auto probing is turned off for both settings, thus setting the
other value to the compiled-in default.
Note that you can put these parameters also in the lilo configuration file:
# linux config
image = /vmlinuz
root = /dev/hda1
label = Linux
append = "cm206=0x340,11"
read-only
If module parameters and LILO config options don't work
-------------------------------------------------------
If autoprobing does not work, you can hard-wire the default values
......@@ -111,7 +120,6 @@ of the base port address (CM206_BASE) and interrupt request line
the defines of CM206_IRQ and CM206_BASE.
Mounting the cdrom
------------------
1) Make sure that there is the right device installed in /dev.
......@@ -138,15 +146,14 @@ Mounting the cdrom
If things don't work
--------------------
- Try to do a `tail /var/adm/messages' to find out if the driver
said anything about what is going wrong during the initialization.
- Try to do a `dmesg' to find out if the driver said anything about
what is going wrong during the initialization.
- Try to do a `dd if=/dev/cm206cd | od -tc | less' to read from the
CD.
- Look in the /proc directory to see if `cm206' shows up under
one of `interrupts', `ioports', `devices' or `modules' (if
applicable).
- Look in the /proc directory to see if `cm206' shows up under one of
`interrupts', `ioports', `devices' or `modules' (if applicable).
DISCLAIMER
......@@ -173,5 +180,6 @@ The copyright of the cm206 driver for Linux is
(c) 1995 David A. van Leeuwen
The driver is released, like most Linux software, under the conditions
of the GNU general public license.
The driver is released under the conditions of the GNU general public
license, that can be found in the file COPYING in the root of this
source tree.
Ioctl Numbers
6 May 1996
10 May 1996
Michael Chastain
<mec@duracef.shout.net>
......@@ -25,7 +25,7 @@ Or you can e-mail me at <mec@duracef.shout.net> and I'll register one
for you.
The second argument to _IO, _IOW, _IOR, or _IOWR is a sequence number
to distinguish ioctls from each other. The third argument is a size
to distinguish ioctls from each other. The third argument is the size
of the structure going into the kernel or coming out of the kernel.
Some devices use their major number as the identifier; this is not
......@@ -55,7 +55,6 @@ This table is current to Linux 1.3.98.
Ioctl Include File Comments
========================================================
0x00 linux/fs.h only FIBMAP, FIGETBSZ
0x00 linux/random.h codes in 0x010800NN
0x00 linux/mc146818rtc.h conflict!
0x02 linux/fd.h
0x03 linux/hdreg.h
......@@ -75,6 +74,7 @@ Ioctl Include File Comments
'M' linux/soundcard.h
'P' linux/soundcard.h
'Q' linux/soundcard.h
'R' linux/random.h
'S' linux/cdrom.h conflict!
'S' scsi/scsi.h conflict!
'S' scsi/scsi_ioctl.h conflict!
......
......@@ -51,7 +51,7 @@ Set the executable permissions of the binary file, with:
And then execute it:
./HellowWorld.class
./HelloWorld.class
Yes, it's JUST THAT EASY! ;-)
......
......@@ -21,7 +21,7 @@ struct tty_ldisc {
Please follow this discipline when you are adding future enhancements
to the kernel! It has saved me countless hours of debugging,
especially in the screw cases where an array has been overrun and
especially in the screwy cases where an array has been overrun and
structures following the array have been overwritten. Using this
discipline, these cases get detected quickly and safely.
......
......@@ -6,7 +6,7 @@ The main trick is having 5 years of experience with those pesky oops
messages ;-)
Actually, there are things you can do that make this easier. I have two
separate approached:
separate approaches:
gdb /usr/src/linux/vmlinux
gdb> disassemble <offending_function>
......
VERSION = 1
PATCHLEVEL = 3
SUBLEVEL = 100
PATCHLEVEL = 99
SUBLEVEL = 1
ARCH = i386
......
......@@ -20,6 +20,16 @@ L_OBJS :=
M_OBJS :=
MOD_LIST_NAME := CDROM_MODULES
# The following if's should be generalized (ORed) for all drivers that
# use the generic interface of cdrom.c
ifeq ($(CONFIG_CM206),y)
L_OBJS += cdrom.o
else
ifeq ($(CONFIG_CM206),m)
M_OBJS += cdrom.o
endif
endif
ifeq ($(CONFIG_AZTCD),y)
L_OBJS += aztcd.o
else
......
This diff is collapsed.
This diff is collapsed.
......@@ -879,8 +879,8 @@ static inline int extract_entropy(struct random_bucket *r, char * buf,
HASH_TRANSFORM(tmp, r->pool);
/*
* In case the hash function has some recognizeable
* output pattern, we fold it half.
* In case the hash function has some recognizable
* output pattern, we fold it in half.
*/
cp = (char *) tmp;
dp = cp + (HASH_BUFFER_SIZE*sizeof(__u32)) - 1;
......
......@@ -762,7 +762,7 @@ void get_rtc_alm_time(struct rtc_time *alm_tm)
* ensure you actually start getting interrupts. Probably for
* compatibility with older/broken chipset RTC implementations.
* We also clear out any old irq data after an ioctl() that
* meddles the interrupt enable/disable bits.
* meddles with the interrupt enable/disable bits.
*/
void mask_rtc_irq_bit(unsigned char bit)
{
......
......@@ -7,8 +7,8 @@
/* and Peter De Schrijver (Peter.DeSchrijver@linux.cc.kuleuven.ac.be) */
/* This file is subject to the terms and conditions of the GNU General */
/* Public License. See the file README.legal in the main directory of the */
/* Linux/68k distribution for more details. */
/* Public License. See the file COPYING in the main directory of the */
/* Linux distribution for more details. */
/* The Amiganet is a Zorro-II board made by Hydra Systems. It contains a */
/* NS8390 NIC (network interface controller) clone, 16 or 64K on-board RAM */
......@@ -100,9 +100,9 @@ static void set_multicast_list(struct device *dev, int num_addrs, void *addrs);
#endif
/* this is now coherent to the C version below, */
/* compile the source with -D__USE_ASM__ if you */
/* want it - it'll only be some 10% faster thou */
/* this is now coherent with the C version below, */
/* compile the source with -D__USE_ASM__ if you */
/* want it - it'll only be some 10% faster though */
#if defined (__GNUC__) && defined (__mc68000__) && defined (USE_ASM)
......
......@@ -165,6 +165,9 @@ 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
*
* Paul Gortmaker (gpg109@rsphy1.anu.edu.au):
* - hopefully fix above so Linux/Alpha can use ISA cards too.
*/
/* Set the number of Tx and Rx buffers, using Log_2(# buffers).
......@@ -298,9 +301,7 @@ static void set_multicast_list(struct device *dev);
int lance_init(void)
{
#ifndef __alpha__
int *port;
#endif
if (high_memory <= 16*1024*1024)
lance_need_isa_bounce_buffers = 0;
......@@ -344,8 +345,6 @@ int lance_init(void)
}
#endif /* defined(CONFIG_PCI) */
/* On the Alpha don't look for PCnet chips on the ISA bus */
#ifndef __alpha__
for (port = lance_portlist; *port; port++) {
int ioaddr = *port;
......@@ -359,8 +358,6 @@ int lance_init(void)
lance_probe1(ioaddr);
}
}
#endif
return 0;
}
......@@ -376,15 +373,14 @@ void lance_probe1(int ioaddr)
int hp_builtin = 0; /* HP on-board ethernet. */
static int did_version = 0; /* Already printed version info. */
#ifndef __alpha__
/* First we look for special cases.
Check for HP's on-board ethernet by looking for 'HP' in the BIOS.
There are two HP versions, check the BIOS for the configuration port.
This method provided by L. Julliard, Laurent_Julliard@grenoble.hp.com.
*/
if ( *((unsigned short *) 0x000f0102) == 0x5048) {
if (readw(0x000f0102) == 0x5048) {
static const short ioaddr_table[] = { 0x300, 0x320, 0x340, 0x360};
int hp_port = ( *((unsigned char *) 0x000f00f1) & 1) ? 0x499 : 0x99;
int hp_port = (readl(0x000f00f1) & 1) ? 0x499 : 0x99;
/* We can have boards other than the built-in! Verify this is on-board. */
if ((inb(hp_port) & 0xc0) == 0x80
&& ioaddr_table[inb(hp_port) & 3] == ioaddr)
......@@ -393,7 +389,6 @@ void lance_probe1(int ioaddr)
/* We also recognize the HP Vectra on-board here, but check below. */
hpJ2405A = (inb(ioaddr) == 0x08 && inb(ioaddr+1) == 0x00
&& inb(ioaddr+2) == 0x09);
#endif
/* Reset the LANCE. */
reset_val = inw(ioaddr+LANCE_RESET); /* Reset the LANCE */
......
......@@ -308,7 +308,7 @@ affs_read_super(struct super_block *s,void *data, int silent)
s->u.affs_sb.s_partition_size = size;
s->u.affs_sb.s_reserved = reserved;
/* Try to find root block. It's location may depend on the block size. */
/* Try to find root block. Its location may depend on the block size. */
s->u.affs_sb.s_hashsize = 0;
if (blocksize > 0) {
......
......@@ -2,6 +2,9 @@
Copyright (c) 1995 David van Leeuwen
*/
#ifndef LINUX_CM206_H
#define LINUX_CM206_H
/* First, the cm260 stuff */
/* The ports and irq used. Although CM206_BASE and CM206_IRQ are defined
below, the values are not used unless autoprobing is turned off and
......@@ -48,11 +51,12 @@
#define dc_mask_transmit_ready 0x100
#define dc_flag_enable 0x80
/* Define the default data control register flags here */
#define dc_normal (dc_mask_sync_error | dc_no_stop_on_error | \
dc_mask_transmit_ready)
/* now some constants related to the cm206 */
/* another drive status byte, echoed by the cm206 on most commands */
/* another drive status byte, echoed by the cm206 on most commmands */
#define dsb_error_condition 0x1
#define dsb_play_in_progress 0x4
......@@ -126,3 +130,46 @@
#define CM206CTL_GET_STAT 0x2000
#define CM206CTL_GET_LAST_STAT 0x2001
/* for kernel 1.2.n */
#if !defined(CDROM_GET_UPC)
#define CDROM_GET_UPC 0x5311
#define CDROMRESET 0x5312
#endif
#ifdef STATISTICS
/* This is an ugly way to guarantee that the names of the statistics
* are the same in the code and in the diagnostics program. */
#ifdef __KERNEL__
#define x(a) st_ ## a
#define y enum
#else
#define x(a) #a
#define y char * stats_name[] =
#endif
y {x(interrupt), x(data_ready), x(fifo_overflow), x(data_error),
x(crc_error), x(sync_error), x(lost_intr), x(echo),
x(write_timeout), x(receive_timeout), x(read_timeout),
x(dsb_timeout), x(stop_0xff), x(back_read_timeout),
x(sector_transferred), x(read_restarted), x(read_background),
x(bh), x(open), x(ioctl_multisession), x(attention)
#ifdef __KERNEL__
, x(last_entry)
#endif
};
#ifdef __KERNEL__
#define NR_STATS st_last_entry
#else
#define NR_STATS (sizeof(stats_name)/sizeof(char*))
#endif
#undef y
#undef x
#endif STATISTICS
#endif LINUX_CM206_H
......@@ -12,7 +12,7 @@
/*
* Uncomment the following line for the new kerneld protocol
* This includes the pid of the kernel level requestor into the kerneld header
* This includes the pid of the kernel level requester into the kerneld header
*/
/*
#define NEW_KERNELD_PROTOCOL
......
/* stats206.h. Define constants to gather statistics on the cm206 behavior.
Copyright (c) 1995 David van Leeuwen.
This is published under the Gnu Public Licence, read the header in
the file cm206.c.
*/
/* This is an ugly way to guarantee that the names of the statistics
* are the same in the code and in the diagnostics program. */
#ifdef __KERNEL__
#define x(a) st_ ## a
#define y enum
#else
#define x(a) #a
#define y char * stats_name[] =
#endif
y {x(interrupt), x(data_ready), x(fifo_overflow), x(data_error),
x(crc_error), x(sync_error), x(lost_intr), x(echo),
x(write_timeout), x(receive_timeout), x(read_timeout),
x(dsb_timeout), x(stop_0xff), x(back_read_timeout),
x(sector_transferred), x(read_restarted), x(read_background),
x(bh), x(open), x(ioctl_multisession)
#ifdef __KERNEL__
, x(last_entry)
#endif
};
#ifdef __KERNEL__
#define NR_STATS st_last_entry
#else
#define NR_STATS sizeof(stats_name)/sizeof(char*)
#endif
/* ucdrom.h. Uniform cdrom data structures for cdrom.c. -*- linux-c -*-
Copyright (c) 1996 David van Leeuwen.
*/
#ifndef LINUX_UCDROM_H
#define LINUX_UCDROM_H
struct cdrom_device_ops {
/* routines */
int (*open) (dev_t, int);
void (*release) (dev_t);
int (*open_files) (dev_t); /* number of open files */
int (*drive_status) (dev_t);
int (*disc_status) (dev_t);
int (*media_changed) (dev_t);
int (*tray_move) (dev_t, int);
int (*lock_door) (dev_t, int);
int (*select_speed) (dev_t, int);
int (*select_disc) (dev_t, int);
int (*get_last_session) (dev_t, struct cdrom_multisession *);
int (*get_mcn) (dev_t, struct cdrom_mcn *);
int (*reset) (dev_t dev); /* hard reset device */
int (*audio_ioctl) (dev_t, unsigned int, void *); /* play stuff */
int (*dev_ioctl) (dev_t, unsigned int, unsigned long); /* dev-specific */
/* specifications */
const int capability; /* capability flags */
int mask; /* mask of capability: disables them */
const float speed; /* maximum speed for reading data */
const int minors; /* number of minor devs supported */
const int capacity; /* number of discs in jukebox */
/* device-related storage */
int options; /* options flags */
long mc_flags; /* media change buffer flags (2*16) */
};
/* capability flags */
#define CDC_CLOSE_TRAY 0x1 /* caddy systems _can't_ close */
#define CDC_OPEN_TRAY 0x2 /* but _can_ eject. */
#define CDC_LOCK 0x4 /* disable manual eject */
#define CDC_SELECT_SPEED 0x8 /* programmable speed */
#define CDC_SELECT_DISC 0x10 /* select disc from juke-box */
#define CDC_MULTI_SESSION 0x20 /* read sessions>1 */
#define CDC_MCN 0x40 /* Medium Catalog Number */
#define CDC_MEDIA_CHANGED 0x80 /* media changed */
#define CDC_PLAY_AUDIO 0x100 /* audio functions */
/* drive status possibilities */
#define CDS_NO_INFO 0 /* if not implemented */
#define CDS_NO_DISC 1
#define CDS_TRAY_OPEN 2
#define CDS_DRIVE_NOT_READY 3
#define CDS_DISC_OK 4
/* disc status possibilities, other than CDS_NO_DISC */
#define CDS_AUDIO 100
#define CDS_DATA_1 101
#define CDS_DATA_2 102
#define CDS_XA_2_1 103
#define CDS_XA_2_2 104
/* User-configurable behavior options */
#define CDO_AUTO_CLOSE 0x1 /* close tray on first open() */
#define CDO_AUTO_EJECT 0x2 /* open tray on last release() */
#define CDO_USE_FFLAGS 0x4 /* use O_NONBLOCK information on open */
#define CDO_LOCK 0x8 /* lock tray on open files */
#define CDO_CHECK_TYPE 0x10 /* check type on open for data */
/* Some more ioctls to control these options */
#define CDROM_SET_OPTIONS 0x5320
#define CDROM_CLEAR_OPTIONS 0x5321
#define CDROM_SELECT_SPEED 0x5322 /* head-speed */
#define CDROM_SELECT_DISC 0x5323 /* for juke-boxes */
#define CDROM_MEDIA_CHANGED 0x5325
#define CDROM_DRIVE_STATUS 0x5326 /* tray position, etc. */
#define CDROM_DISC_STATUS 0x5327 /* disc type etc. */
/* Rename and old ioctl */
#define CDROM_GET_MCN CDROM_GET_UPC /* medium catalog number */
/* the general file operations structure: */
extern struct file_operations cdrom_fops;
extern int register_cdrom(int major, char *name,
struct cdrom_device_ops *cdo);
extern int unregister_cdrom(int major, char *name);
#endif /* LINUX_UCDROM_H */
/*
* Local variables:
* comment-column: 40
* End:
*/
......@@ -211,13 +211,15 @@ static __inline__ int tcp_raise_window(struct sock * sk)
static __inline__ unsigned short tcp_select_window(struct sock *sk)
{
int window = tcp_new_window(sk);
int oldwin = tcp_old_window(sk);
/* Don't allow a shrinking window */
if (window > tcp_old_window(sk)) {
if (window > oldwin) {
sk->window = window;
sk->lastwin_seq = sk->acked_seq;
oldwin = window;
}
return sk->window;
return oldwin;
}
/*
......
......@@ -49,7 +49,7 @@ void msg_init (void)
/*
* If the send queue is full, try to free any old messages.
* These are most probably unwanted, since noone has picked them up...
* These are most probably unwanted, since no one has picked them up...
*/
#define MSG_FLUSH_TIME 10 /* seconds */
static void flush_msg(struct msqid_ds *msq)
......
......@@ -437,7 +437,7 @@ problem. [See the LiS project]
10. Frame Relay/WAN/ISDN drivers [I'm working on the sonix EuroISDN board
driver but that's for an internal project and its general release is still
a maybe (so is finishing it ;))][Jim Freeman is working on Frame Relay as is
Mike McLagan][Friz Elfert is doing the isdn4linux kit].
Mike McLagan][Fritz Elfert is doing the isdn4linux kit].
11. IP over SCSI.
......
......@@ -788,9 +788,9 @@ static int arp_force_expire(void)
}
/*
* Check if there are too old entries and remove them. If the ATF_PERM
* flag is set, they are always left in the arp cache (permanent entry).
* If an entry was not be confirmed for ARP_CONFIRM_INTERVAL,
* Check if there are entries that are too old and remove them. If the
* ATF_PERM flag is set, they are always left in the arp cache (permanent
* entries). If an entry was not confirmed for ARP_CONFIRM_INTERVAL,
* send point-to-point ARP request.
* If it will not be confirmed for ARP_CONFIRM_TIMEOUT,
* give it to shred by arp_expire_entry.
......@@ -1390,7 +1390,7 @@ int arp_find(unsigned char *haddr, u32 paddr, struct device *dev,
}
/*
* A request was already send, but no reply yet. Thus
* A request was already sent, but no reply yet. Thus
* queue the packet with the previous attempt
*/
......
......@@ -195,7 +195,7 @@ static void bad_tcp_sequence(struct sock *sk, struct tcphdr *th, u32 end_seq,
extern __inline__ int tcp_sequence(struct sock *sk, u32 seq, u32 end_seq)
{
u32 end_window = sk->acked_seq + sk->window;
u32 end_window = sk->lastwin_seq + sk->window;
return /* if start is at end of window, end must be too (zero window) */
(seq == end_window && seq == end_seq) ||
/* if start is before end of window, check for interest */
......
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