Commit ae3e6abc authored by Linus Torvalds's avatar Linus Torvalds

Import 1.3.64

parent 27fc11ad
......@@ -2041,6 +2041,20 @@ CONFIG_XIA_FS
want), say M here and read Documentation/modules.txt. Note that the
filesystem of your root partition cannot be compiled as a module.
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.
msdos fs support
CONFIG_MSDOS_FS
This allows you to mount MSDOS partitions of your harddrive (unless
......@@ -2056,14 +2070,30 @@ CONFIG_MSDOS_FS
which doesn't require the msdos filesystem support. If you want to
use umsdos, the Unix-like filesystem on top of DOS, which allows you
to run Linux from within a DOS partition without repartitioning,
you'll have to say Y here. This option will enlarge your kernel by
about 25 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 the filesystem of your root
you'll have to say Y or M here. If your have Windows'95 or Windows NT
installed on your MSDOS partitions, you should use the VFAT
filesystem instead, or you will not be able to see the long filenames
generated by Windows'95 / Windows NT. This option will enlarge your
kernel by about 7 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 the filesystem of your root
partition cannot be a module.
umsdos: Unix like fs on top of std MSDOS FAT fs
vfat fs support
CONFIG_VFAT_FS
This allows you to mount MSDOS partitions of your harddrive. It
will let you use filenames in a way compatible with the long
filenames used by Windows'95 and Windows NT fat-based (not NTFS)
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.
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.
umsdos: Unix like fs on top of std MSDOS fs
CONFIG_UMSDOS_FS
Say Y here if you want to run Linux from within an existing DOS
partition of your harddrive. The advantage of this is that you can
......
-----------------------------------------------------------------------------
1) This file is a supplement to arcnet.txt. Please read that for general
driver configuration help.
......@@ -26,7 +26,8 @@ there are others as well, but these are less common. The different hardware
types, as far as I'm aware, are not compatible and so you cannot wire a
100Mbps card to a 2.5Mbps card, and so on. From what I hear, my driver does
work with 100Mbps cards, but I haven't been able to verify this myself,
since I only have the 2.5Mbps variety.
since I only have the 2.5Mbps variety. It is probably not going to saturate
your 100Mbps card. Stop complaining :)
You also cannot connect an ARCnet card to any kind of ethernet card and
expect it to work.
......@@ -46,6 +47,10 @@ even if it can't possibly be delivered properly (ie. because of a cable
break, or because the destination computer does not exist) it will at least
tell the sender about it.
Because of the carefully defined action of the "token", it will always make
a pass around the "ring" within a maximum length of time. This makes it
useful for realtime networks.
In addition, all known ARCnet cards have an (almost) identical programming
interface. This means that with one "arcnet" driver you can support any
card; whereas, with ethernet, each manufacturer uses what is sometimes a
......@@ -60,9 +65,14 @@ limit on their packet sizes; standard ARCnet can only send packets that are
up to 508 bytes in length. This is smaller than the internet "bare minimum"
of 576 bytes, let alone the ethernet MTU of 1500. To compensate, an extra
level of encapsulation is defined by RFC1201, which I call "packet
splitting," which allows "virtual packets" to grow as large as 64K each,
splitting," that allows "virtual packets" to grow as large as 64K each,
although they are generally kept down to the ethernet-style 1500 bytes.
For more information on the advantages and disadvantages (mostly the
advantages) of ARCnet networks, you might try the "ARCnet Trade Association"
WWW page:
http://www.arcnet.com
CABLING ARCNET NETWORKS
-----------------------
......@@ -260,7 +270,7 @@ All ARCnet cards should have a total of four or five different settings:
that IRQ2 is the same as IRQ9, as far as Linux is concerned. You can
"cat /proc/interrupts" for a somewhat complete list of which ones are in
use at any given time. Here is a list of common usages from Vojtech
Pavlik <vpav4328@diana.troja.mff.cuni.cz>:
Pavlik <Vojtech.Pavlik@st.mff.cuni.cz>:
("Not on bus" means there is no way for a card to generate this
interrupt)
IRQ 0 - Timer 0 (Not on bus)
......@@ -268,9 +278,9 @@ All ARCnet cards should have a total of four or five different settings:
IRQ 2 - IRQ Controller 2 (Not on bus, nor does interrupt the CPU)
IRQ 3 - COM2
IRQ 4 - COM1
IRQ 5 - FREE (LPT2 if you have it; sometimes COM3)
IRQ 5 - FREE (LPT2 if you have it; sometimes COM3; maybe PLIP)
IRQ 6 - Floppy disk controller
IRQ 7 - FREE (LPT1 if you don't use the polling driver or PLIP)
IRQ 7 - FREE (LPT1 if you don't use the polling driver; PLIP)
IRQ 8 - Realtime Clock Interrupt (Not on bus)
IRQ 9 - FREE (VGA vertical sync interrupt if enabled)
IRQ 10 - FREE
......@@ -279,6 +289,19 @@ All ARCnet cards should have a total of four or five different settings:
IRQ 13 - Numeric Coprocessor (Not on bus)
IRQ 14 - Fixed Disk Controller
IRQ 15 - FREE (Fixed Disk Controller 2 if you have it)
Note: IRQ 9 is used on some video cards for the "vertical retrace"
interrupt. This interrupt would have been handy for things like
video games, as it occurs exactly once per screen refresh, but
unfortunately IBM cancelled this feature starting with the original
VGA and thus many VGA/SVGA cards do not support it. For this
reason, no modern software uses this interrupt and it can almost
always be safely disabled, if your video card supports it at all.
If your card for some reason CANNOT disable this IRQ (usually there
is a jumper), one solution would be to clip the printed circuit
contact on the board: it's the fourth contact from the left on the
back side. I take no responsibility if you try this.
- Avery's favourite: IRQ2 (actually IRQ9). Watch that VGA, though.
......@@ -324,7 +347,7 @@ All ARCnet cards should have a total of four or five different settings:
network.
Also, on many cards (not mine, though) there are red and green LED's.
Vojtech Pavlik <vpav4328@diana.troja.mff.cuni.cz> tells me this is what they
Vojtech Pavlik <Vojtech.Pavlik@st.mff.cuni.cz> tells me this is what they
mean:
GREEN RED Status
----- --- ------
......@@ -368,7 +391,7 @@ Cards Listed in this file (in this order, mostly):
SMC PC550Longboard 16
SMC PC600 16
SMC PC710 8
SMC? LCS-8830-T 16?
SMC? LCS-8830(-T) 8/16
Puredata PDI507 8
CNet Tech CN120-Series 8
CNet Tech CN160-Series 16
......@@ -974,9 +997,12 @@ I know it works when connected to a PC110 type ARCnet board.
*****************************************************************************
** Possibly SMC **
LCS-8830-T (16-bit card)
------------------------
LCS-8830(-T) (8 and 16-bit cards)
---------------------------------
- from Mathias Katzer <mkatzer@HRZ.Uni-Bielefeld.DE>
- Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> says the
LCS-8830 is slightly different from LCS-8830-T. These are 8 bit, BUS
only (the JP0 jumper is hardwired), and BNC only.
This is a LCS-8830-T made by SMC, I think ('SMC' only appears on one PLCC,
nowhere else, not even on the few xeroxed sheets from the manual).
......@@ -1709,7 +1735,7 @@ JP 6 : IRQ set (ONLY ONE jumper on 1-5 for IRQ 2-6)
** Acer **
8-bit card, Model 5210-003
--------------------------
- from Vojtech Pavlik <vpav4328@diana.troja.mff.cuni.cz> using portions of
- from Vojtech Pavlik <Vojtech.Pavlik@st.mff.cuni.cz> using portions of
the existing arcnet-hardware file.
This is a 90C26 based card. Its configuration seems similar to
......@@ -1877,7 +1903,7 @@ guess the purpose.
** Datapoint? **
LAN-ARC-8, an 8-bit card
------------------------
- from Vojtech Pavlik <vpav4328@diana.troja.mff.cuni.cz>
- from Vojtech Pavlik <Vojtech.Pavlik@st.mff.cuni.cz>
This is another SMC 90C65 based arcnet card. I couldn't identify the
manufacturer, but it might be DataPoint, becsuse the card has the
......@@ -2017,7 +2043,7 @@ parameters. These two switches are normally left in the OFF position.
** Topware **
8-bit card, TA-ARC/10
-------------------------
- from Vojtech Pavlik <vpav4328@diana.troja.mff.cuni.cz>
- from Vojtech Pavlik <Vojtech.Pavlik@st.mff.cuni.cz>
This is another very similar 90C65 card. Most of the switches and jumpers
are the same as on other clones.
......@@ -2726,7 +2752,7 @@ Setting the Timeouts
** No Name **
8-bit cards ("Made in Taiwan R.O.C.")
-----------
- from Vojtech Pavlik <vpav4328@diana.troja.mff.cuni.cz>
- from Vojtech Pavlik <Vojtech.Pavlik@st.mff.cuni.cz>
I have named this ARCnet card "NONAME", since I got only the card with
no manual at all and the only text identifying the manufacturer is
......
......@@ -7,8 +7,8 @@ manual with your ARCnet card.
Since no one seems to listen to me otherwise, perhaps a poem will get your
attention:
This is scary software
If it works I DO CARE.
This driver's getting fat and beefy,
But my cat is still named Fifi.
Hmm, I think I'm allowed to call that a poem, even though it's only two
lines. Hey, I'm in Computer Science, not English. Give me a break.
......@@ -46,16 +46,16 @@ My e-mail address is: apenwarr@foxnet.net
These are the ARCnet drivers for Linux.
This new release has resulted from many months of on-and-off effort from me
(Avery Pennarun), many bug reports from users, and in particular a lot of
input and coding from Tomasz Motylewski. Starting with ARCnet 2.10 ALPHA,
Tomasz's all-new-and-improved RFC1051 support has been included and seems to
be working fine!
(Avery Pennarun), many bug reports/fixes and suggestions from others, and in
particular a lot of input and coding from Tomasz Motylewski. Starting with
ARCnet 2.10 ALPHA, Tomasz's all-new-and-improved RFC1051 support has been
included and seems to be working fine!
Where do I discuss these drivers?
---------------------------------
BOINGY - the linux-arcnet@807-city.on.ca mailing list is now so unstable
HEY!! - the linux-arcnet@807-city.on.ca mailing list is now so unstable
that I can't recommend people even bother with it. I no longer have an
account on 807-CITY (though they still graciously forward my mail to me) so
there's not much I can do.
......@@ -65,12 +65,9 @@ mailing list; subscribe by sending a message with the BODY "subscribe
linux-arcnet YOUR REAL NAME" to listserv@tichy.ch.uj.edu.pl. Then, to
submit messages to the list, mail to linux-arcnet@tichy.ch.uj.edu.pl.
There are mailing list archives at:
There are archives of the mailing list at:
http://tichy.ch.uj.edu.pl/lists/linux-arcnet
Send all bug (or success) reports to me, then, not the list, since (as I
mentioned) the list doesn't work.
The people on linux-net@vger.rutgers.edu have also been known to be very
helpful, especially when we're talking about ALPHA Linux kernels that may or
may not work right in the first place.
......@@ -264,10 +261,14 @@ The ARCnet driver v2.10 ALPHA supports three protocols, each on its own
The arc0s support was contributed by Tomasz Motylewski
and modified somewhat by me. Bugs are probably my fault.
You can choose not to compile arc0e and arc0s into the driver if you want -
this will save you a bit of memory and avoid confusion when eg. trying to
use the "NFS-root" stuff in recent Linux kernels.
The arc0e and arc0s devices are created automatically when you first
'ifconfig' the arc0 device. To actually use them, though, you need to also
'ifconfig' the other virtual devices you need. There are a number of ways
you can set up your network then:
ifconfig the arc0 device. To actually use them, though, you need to also
ifconfig the other virtual devices you need. There are a number of ways you
can set up your network then:
1. Single Protocol.
......@@ -308,7 +309,7 @@ you can set up your network then:
its own IP address and needs to use freedom as its default gateway. The
XT (patience), however, does not have its own internet IP address and so
I assigned it one on a "private subnet" (as defined by RFC1597).
To start with, take a simple network with just insight and freedom.
Insight needs to:
- talk to freedom via RFC1201 (arc0) protocol, because I like it
......@@ -330,7 +331,7 @@ you can set up your network then:
ifconfig arc0 freedom
route add freedom arc0
route add insight arc0
/* and default gateway is configured by PPP */
/* and default gateway is configured by pppd */
Great, now insight talks to freedom directly on arc0, and sends packets
to the internet through freedom. If you didn't know how to do the above,
......@@ -374,16 +375,15 @@ you can set up your network then:
both insight and patience are using freedom as their default gateway, the
two can already talk to each other.
It's quite fortunate that I set things up like this the first time
through (cough cough) because it's really handy when I boot insight into
DOS. There, it runs the Novell ODI protocol stack, which only works with
RFC1201 ARCnet. In this mode it would be impossible for insight to
communicate directly with patience, since the Novell stack is
incompatible with Microsoft's Ethernet-Encap. Without changing any
settings on freedom or patience, I simply set freedom as the default
gateway for insight (now in DOS, remember) and all the forwarding happens
"automagically" between the two hosts that would normally not be able to
communicate at all.
It's quite fortunate that I set things up like this the first time (cough
cough) because it's really handy when I boot insight into DOS. There, it
runs the Novell ODI protocol stack, which only works with RFC1201 ARCnet.
In this mode it would be impossible for insight to communicate directly
with patience, since the Novell stack is incompatible with Microsoft's
Ethernet-Encap. Without changing any settings on freedom or patience, I
simply set freedom as the default gateway for insight (now in DOS,
remember) and all the forwarding happens "automagically" between the two
hosts that would normally not be able to communicate at all.
For those who like diagrams, I have created two "virtual subnets" on the
same physical ARCnet wire. You can picture it like this:
......@@ -397,15 +397,13 @@ you can set up your network then:
| | * | |
| +-Freedom-*-Gatekeeper-+ |
| | | * | |
\-------+-------/ | \-------+-------/
\-------+-------/ | * \-------+-------/
| | |
Insight | Patience
(Internet)
It works: what now?
-------------------
......@@ -424,31 +422,37 @@ It doesn't work: what now?
--------------------------
Do the same as above, but also include the output of the ifconfig and route
commands, as well as any pertinent log entries (ie: anything that starts
commands, as well as any pertinent log entries (ie. anything that starts
with "arcnet:" and has shown up since the last reboot) in your mail.
If you want to try fixing it yourself (I strongly recommend that you mail me
about the problem first, since it might already have been solved) you may
want to try some of the debug levels available. For heavy testing on
D_DURING or more, it would be a REALLY good idea to kill your klogd daemon
first! D_DURING displays 4-5 lines for each packet sent or received. D_TX
and RX actually DISPLAY each packet as it is sent or received, which is
obviously quite big.
You can run the arcdump shell script (available from me or in the full
ARCnet package if you got it) as root to list the contents of the arcnet
buffers at any time. To make any sense at all out of this, you should grab
the pertinent RFC's. (some are listed near the top of arcnet.c). arcdump
assumes your card is at 0xD0000. If it isn't, edit the script.
Buffers #0 and 1 are used for receiving, and Buffers #2 and 3 are for
sending. Ping-pong buffers are implemented both ways.
If your debug level includes D_DURING, the buffers are cleared to a constant
value of 0x42 every time the card is reset (which should only happen when
you do an ifconfig up, or when Linux decides that the driver is broken).
This is to make it easier to figure out which bytes are being used by a
packet.
first! D_DURING displays 4-5 lines for each packet sent or received. D_TX,
D_RX, and D_SKB actually DISPLAY each packet as it is sent or received,
which is obviously quite big.
Starting with v2.40 ALPHA, the autoprobe routines have changed
significantly. In particular, they won't tell you why the card was not
found unless you turn on the D_INIT_REASONS debugging flag.
Once the driver is running, you can run the arcdump shell script (available
from me or in the full ARCnet package, if you have it) as root to list the
contents of the arcnet buffers at any time. To make any sense at all out of
this, you should grab the pertinent RFC's. (some are listed near the top of
arcnet.c). arcdump assumes your card is at 0xD0000. If it isn't, edit the
script.
Buffers 0 and 1 are used for receiving, and Buffers 2 and 3 are for sending.
Ping-pong buffers are implemented both ways.
If your debug level includes D_DURING and you did NOT define SLOW_XMIT_COPY,
the buffers are cleared to a constant value of 0x42 every time the card is
reset (which should only happen when you do an ifconfig up, or when Linux
decides that the driver is broken). During a transmit, unused parts of the
buffer will be cleared to 0x42 as well. This is to make it easier to figure
out which bytes are being used by a packet.
You can change the debug level without recompiling the kernel by typing:
ifconfig arc0 down metric 1xxx
......@@ -456,10 +460,10 @@ You can change the debug level without recompiling the kernel by typing:
where "xxx" is the debug level you want. For example, "metric 1015" would put
you at debug level 15. Debug level 7 is currently the default.
Note that the debug level is (as of v1.90 ALPHA) a binary combination of
different debug flags; so debug level 7 is really 1+2+4 or
D_NORMAL+D_INIT+D_EXTRA. To reach D_DURING, you would add 8 to this,
resulting in debug level 15.
Note that the debug level is (starting with v1.90 ALPHA) a binary
combination of different debug flags; so debug level 7 is really 1+2+4 or
D_NORMAL+D_EXTRA+D_INIT. To include D_DURING, you would add 16 to this,
resulting in debug level 23.
If you don't understand that, you probably don't want to know anyway.
E-mail me about your problem.
......
VERSION = 1
PATCHLEVEL = 3
SUBLEVEL = 63
SUBLEVEL = 64
ARCH = i386
......
......@@ -581,7 +581,7 @@ static inline void avanti_and_noname_fixup(void)
{ 0, 0, 2, 1, 0}, /* idsel 11 (slot furthest from ISA) KN25_PCI_SLOT0 */
{ 1, 1, 0, 2, 1}, /* idsel 12 (middle slot) KN25_PCI_SLOT1 */
#ifdef CONFIG_ALPHA_AVANTI
{ 1, 1, -1, -1, -1}, /* idsel 13 KN25_PCI_SLOT2 */
{ 1, 2, 1, 0, 2}, /* idsel 13 KN25_PCI_SLOT2 */
#endif /* CONFIG_ALPHA_AVANTI */
};
/*
......
......@@ -622,6 +622,8 @@ asmlinkage void do_entInt(unsigned long type, unsigned long vector, unsigned lon
cabriolet_and_eb66p_device_interrupt(vector, &regs);
#elif NR_IRQS == 32
eb66_and_eb64p_device_interrupt(vector, &regs);
#elif NR_IRQS == 16
isa_device_interrupt(vector, &regs);
#endif
return;
case 4:
......
#include <linux/module.h>
#include <linux/smp.h>
#include <linux/user.h>
#include <linux/elfcore.h>
extern void dump_thread(struct pt_regs *, struct user *);
extern int dump_fpu(elf_fpregset_t *);
static struct symbol_table arch_symbol_table = {
#include <linux/symtab_begin.h>
/* platform dependent support */
X(dump_thread),
X(dump_fpu),
#ifdef __SMP__
X(apic_reg), /* Needed internally for the I386 inlines */
X(cpu_data),
......
......@@ -107,7 +107,7 @@
/* do print messages for unexpected interrupts */
static int print_unex=1;
#include <linux/utsname.h>
#include <linux/module.h>
/* the following is the mask of allowed drives. By default units 2 and
......@@ -3118,30 +3118,15 @@ static struct translation_entry {
static inline int normalize_0x02xx_ioctl(int *cmd, int *size)
{
int i, orig_size, ocmd;
int i;
orig_size = _IOC_SIZE(*cmd);
ocmd = *cmd;
for (i=0; i < ARRAY_SIZE(translation_table); i++) {
if ((*cmd & 0xff3f) == (translation_table[i].newcmd & 0xff3f)){
if ((*cmd & 0xffff) == (translation_table[i].newcmd & 0xffff)){
*size = _IOC_SIZE(*cmd);
*cmd = translation_table[i].newcmd;
if (!orig_size && _IOC_SIZE(*cmd)) {
/* kernels 1.3.34 to 1.3.39 : */
*size = _IOC_SIZE(*cmd);
DPRINT1("warning: obsolete ioctl 0x%x\n",ocmd);
DPRINT("please recompile your program\n");
/* these ioctls only existed
* in six (development)
* kernels anyways. That's why we
* complain about these, and not about
* the much older 0x00xx ioctl's
*/
} else {
*size = orig_size;
if (*size > _IOC_SIZE(*cmd)) {
printk("ioctl not yet supported\n");
return -EFAULT;
}
if (*size > _IOC_SIZE(*cmd)) {
printk("ioctl not yet supported\n");
return -EFAULT;
}
return 0;
}
......@@ -3152,14 +3137,18 @@ static inline int normalize_0x02xx_ioctl(int *cmd, int *size)
static inline int xlate_0x00xx_ioctl(int *cmd, int *size)
{
int i;
/* kernels <= 1.3.33 */
/* we might want to start warning in 1.4.x (by then, no user
* programs will have an excuse to use the old ioctls: there
* will be a stable kernel supporting them :)
*
* when the first 1.5.x kernel will come out, this loop will
* be removed as well.
*/
/* old ioctls' for kernels <= 1.3.33 */
/* When the next even release will come around, we'll start
* warning against these.
* When the next odd release will come around, we'll fail with
* -EINVAL */
if(strcmp(system_utsname.version, "1.4.0") >= 0)
printk("obsolete floppy ioctl %x\n", *cmd);
if((system_utsname.version[0] == '1' &&
strcmp(system_utsname.version, "1.5.0") >= 0) ||
(system_utsname.version[0] >= '2' &&
strcmp(system_utsname.version, "2.1.0") >= 0))
return -EINVAL;
for (i=0; i < ARRAY_SIZE(translation_table); i++) {
if (*cmd == translation_table[i].oldcmd) {
*size = translation_table[i].oldsize;
......
......@@ -29,7 +29,7 @@
* NOTE that writes may use only the low 2/3 of these: reads
* take precedence.
*/
#define NR_REQUEST 16
#define NR_REQUEST 64
static struct request all_requests[NR_REQUEST];
/*
......
......@@ -431,7 +431,7 @@ void rd_load()
outfile.f_op->write(outfile.f_inode, &outfile, buf,
BLOCK_SIZE);
if (!(i % 16)) {
printk("%c\b", rotator[rotate & 0x3]);
printk(KERN_NOTICE "%c\b", rotator[rotate & 0x3]);
rotate++;
}
}
......
This diff is collapsed.
This diff is collapsed.
......@@ -3,7 +3,7 @@
/*
* stallion.c -- stallion multiport serial driver.
*
* Copyright (C) 1994,1995 Greg Ungerer (gerg@stallion.oz.au).
* Copyright (C) 1994-1996 Greg Ungerer (gerg@stallion.oz.au).
*
* This code is loosely based on the Linux serial driver, written by
* Linus Torvalds, Theodore T'so and others.
......@@ -26,7 +26,6 @@
/*****************************************************************************/
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/wait.h>
......@@ -42,7 +41,6 @@
#include <linux/malloc.h>
#include <linux/ioport.h>
#include <linux/config.h> /* for CONFIG_PCI */
#include <asm/system.h>
#include <asm/io.h>
#include <asm/segment.h>
......@@ -143,7 +141,7 @@ static int stl_nrbrds = sizeof(stl_brdconf) / sizeof(stlconf_t);
* all the local structures required by a serial tty driver.
*/
static char *stl_drvname = "Stallion Multiport Serial Driver";
static char *stl_drvversion = "1.0.0";
static char *stl_drvversion = "1.0.2";
static char *stl_serialname = "ttyE";
static char *stl_calloutname = "cue";
......@@ -452,7 +450,6 @@ static unsigned int stl_baudrates[] = {
int init_module(void);
void cleanup_module(void);
#endif
static void *stl_memalloc(int len);
int stl_init(void);
static int stl_open(struct tty_struct *tty, struct file *filp);
......@@ -494,6 +491,7 @@ static int stl_waitcarrier(stlport_t *portp, struct file *filp);
static void stl_delay(int len);
static void stl_intr(int irq, struct pt_regs *regs);
static void stl_offintr(void *private);
static void *stl_memalloc(int len);
#ifdef CONFIG_PCI
static int stl_findpcibrds(void);
......@@ -504,8 +502,9 @@ static int stl_findpcibrds(void);
#ifdef MODULE
/*
* Use the kernel version number for modules.
* Loadable module initialization stuff.
*/
int init_module()
{
unsigned long flags;
......@@ -605,15 +604,12 @@ void cleanup_module()
/*****************************************************************************/
/*
* Local memory allocation routines. These are used so we can deal with
* memory allocation at init time and during run-time in a consistent
* way. Everbody just calls the stl_memalloc routine to allocate
* memory and it will do the right thing.
* Local driver kernel memory allocation routine.
*/
static void *stl_memalloc(int len)
{
return (void *) kmalloc(len, GFP_KERNEL);
return((void *) kmalloc(len, GFP_KERNEL));
}
/*****************************************************************************/
......@@ -2782,18 +2778,6 @@ static int stl_findpcibrds()
}
brdp->irq = irq;
#if 0
ioaddr = 0x0c000001;
if ((rc = pcibios_write_config_dword(busnr, devnr, 0x40, ioaddr))) {
printk("STALLION: failed to write register on PCI board, errno=%x\n", rc);
continue;
}
if ((rc = pcibios_write_config_dword(busnr, devnr, 0x48, ioaddr))) {
printk("STALLION: failed to write register on PCI board, errno=%x\n", rc);
continue;
}
#endif
stl_brdinit(brdp);
}
}
......@@ -2919,7 +2903,7 @@ int stl_init(void)
if (tty_register_driver(&stl_callout))
printk("STALLION: failed to register callout driver\n");
return 0;
return(0);
}
/*****************************************************************************/
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -61,6 +61,7 @@ struct symbol_table scsi_symbol_table = {
X(need_isa_buffer),
X(request_queueable),
X(print_Scsi_Cmnd),
X(scsi_mark_host_bus_reset),
#if defined(CONFIG_PROC_FS)
X(proc_print_scsidevice),
#endif
......
......@@ -12,8 +12,8 @@ tristate 'xiafs filesystem support' CONFIG_XIA_FS
# msdos filesystems
tristate 'DOS FAT fs support' CONFIG_FAT_FS
dep_tristate 'Old MSDOS fs support' CONFIG_MSDOS_FS $CONFIG_FAT_FS
dep_tristate 'vfat (Windows-95) fs support' CONFIG_VFAT_FS $CONFIG_FAT_FS
dep_tristate 'MSDOS fs support' CONFIG_MSDOS_FS $CONFIG_FAT_FS
dep_tristate 'VFAT (Windows-95) fs support' CONFIG_VFAT_FS $CONFIG_FAT_FS
dep_tristate 'umsdos: Unix like fs on top of std MSDOS FAT fs' CONFIG_UMSDOS_FS $CONFIG_MSDOS_FS
bool '/proc filesystem support' CONFIG_PROC_FS
......
......@@ -100,7 +100,7 @@ static union bdflush_param{
trim back the buffers */
} b_un;
unsigned int data[N_PARAM];
} bdf_prm = {{60, 500, 64, 256, 15, 30*HZ, 5*HZ, 1884, 2}};
} bdf_prm = {{25, 500, 64, 256, 15, 30*HZ, 5*HZ, 1884, 2}};
/* The lav constant is set for 1 minute, as long as the update process runs
every 5 seconds. If you change the frequency of update, the time
......@@ -1111,7 +1111,7 @@ int brw_page(int rw, unsigned long address, kdev_t dev, int b[], int size, int b
memcpy(next->b_data, tmp->b_data, size);
else {
memcpy(tmp->b_data, next->b_data, size);
set_bit(BH_Dirty, &tmp->b_state);
mark_buffer_dirty(tmp, 0);
}
brelse(tmp);
next->b_count--;
......
......@@ -6,6 +6,7 @@
*/
#include <linux/module.h>
#include <linux/mm.h>
#include <linux/msdos_fs.h>
#include "msbuffer.h"
......
......@@ -7,6 +7,7 @@
#include <linux/module.h>
#include <linux/mm.h>
#include <linux/msdos_fs.h>
static struct symbol_table msdos_syms = {
......
......@@ -775,6 +775,7 @@ extern int get_ksyms_list(char *, char **, off_t, int);
#endif
extern int get_device_list(char *);
extern int get_filesystem_list(char *);
extern int get_filesystem_info( char * );
extern int get_irq_list(char *);
extern int get_dma_list(char *);
extern int get_cpuinfo(char *);
......@@ -846,6 +847,9 @@ static int get_root_array(char * page, int type, char **start, off_t offset, int
#endif
case PROC_CMDLINE:
return get_cmdline(page);
case PROC_MTAB:
return get_filesystem_info( page );
}
return -EBADF;
}
......
......@@ -361,6 +361,9 @@ void proc_root_init(void)
PROC_CMDLINE, 7, "cmdline",
S_IFREG | S_IRUGO, 1, 0, 0,
});
proc_register( &proc_root, &(struct proc_dir_entry)
{ PROC_MTAB, 6, "mounts", S_IFREG | S_IRUGO, 1, 0, 0, } );
if (prof_shift) {
proc_register(&proc_root, &(struct proc_dir_entry) {
......
......@@ -262,6 +262,23 @@ asmlinkage int sys_sysfs(int option, ...)
return retval;
}
int get_filesystem_info( char *buf )
{
struct vfsmount *tmp = vfsmntlist;
int len = 0;
while ( tmp && len < PAGE_SIZE - 80 )
{
len += sprintf( buf + len, "%s %s %s %s",
tmp->mnt_devname, tmp->mnt_dirname, tmp->mnt_sb->s_type->name,
tmp->mnt_flags & MS_RDONLY ? "ro" : "rw" );
len += sprintf( buf + len, " 0 0\n" );
tmp = tmp->mnt_next;
}
return len;
}
int get_filesystem_list(char * buf)
{
int len = 0;
......
......@@ -401,6 +401,7 @@ static int vfat_create_shortname(struct inode *dir, const char *name,
extlen = 0;
}
ext[extlen] = '\0';
base[baselen] = '\0';
count = 0;
strcpy(msdos_name, base);
......
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