Commit Graph

50 Commits

Author SHA1 Message Date
phk
8383c5910e Validate the length before we trust it.
Submitted by:	Andrew.Gordon@net-tel.co.uk
1996-03-04 15:58:25 +00:00
wollman
25ee6cca2a Clean up Ethernet drivers:
- fill in and use ifp->if_softc
	- use if_bpf rather than private cookie variables
	- change bpf interface to take advantage of this
	- call ether_ifattach() directly from Ethernet drivers
	- delete kludge in if_attach() that did this indirectly
1996-02-06 18:51:28 +00:00
phk
e7008a284e Staticize and cleanup. 1995-12-10 13:40:44 +00:00
phk
a69d1dfbcb Julian forgot to make the *devsw structures static. 1995-12-08 23:23:00 +00:00
julian
1900eea896 Pass 3 of the great devsw changes
most devsw referenced functions are now static, as they are
in the same file as their devsw structure. I've also added DEVFS
support for nearly every device in the system, however
many of the devices have 'incorrect' names under DEVFS
because I couldn't quickly work out the correct naming conventions.
(but devfs won't be coming on line for a month or so anyhow so that doesn't
matter)

If you "OWN" a device which would normally have an entry in /dev
then search for the devfs_add_devsw() entries and munge to make them right..
check out similar devices to see what I might have done in them in you
can't see what's going on..
for a laugh compare conf.c conf.h defore and after... :)
I have not doen DEVFS entries for any DISKSLICE devices yet as that will be
a much more complicated job.. (pass 5 :)

pass 4 will be to make the devsw tables of type (cdevsw * )
rather than (cdevsw)
seems to work here..
complaints to the usual places.. :)
1995-12-08 11:19:42 +00:00
dg
c30f46c534 Untangled the vm.h include file spaghetti. 1995-12-07 12:48:31 +00:00
bde
c0273b2f64 Replaced #includes of <sys/user.h> by less gross headers, usually
<sys/vm.h>.  Many device drivers need only the definition of vtophys()
from vm.

Added nearby #includes of <sys/conf.h> where appropriate.
1995-12-06 23:52:35 +00:00
phk
adc43de28b I don't know what I messed up in 1.40, but the crynwr mode didn't make it.
Here it is then, I hope.
1995-12-02 20:33:40 +00:00
julian
198d88e0ae If you're going to mechanically replicate something in 50 files
it's best to not have a (compiles cleanly) typo in it! (sigh)
1995-11-29 14:41:20 +00:00
julian
f2f63c6ece OK, that's it..
That's EVERY SINGLE driver that has an entry in conf.c..
my next trick will be to define cdevsw[] and bdevsw[]
as empty arrays and remove all those DAMNED defines as well..

Each of these drivers has a SYSINIT linker set entry
that comes in very early.. and asks teh driver to add it's own
entry to the two devsw[] tables.

some slight reworking of the commits from yesterday (added the SYSINIT
stuff and some usually wrong but token DEVFS entries to all these
devices.

BTW does anyone know where the 'ata' entries in conf.c actually reside?
seems we don't actually have a 'ataopen() etc...

If you want to add a new device in conf.c
please  make sure I know
so I can keep it up to date too..

as before, this is all dependent on #if defined(JREMOD)
(and #ifdef DEVFS in parts)
1995-11-29 10:49:16 +00:00
phk
051ce4c479 Add crynwr mode to the lp# interface.
Reviewed by:	pst, phk
Submitted by:	tim@sarc.city.ac.uk
1995-11-29 10:17:03 +00:00
julian
67727fc1c1 the second set of changes in a move towards getting devices to be
totally dynamic.

this is only the devices in i386/isa
I'll do more tomorrow.
they're completely masked by #ifdef JREMOD at this stage...
the eventual aim is that every driver will do a SYSINIT
at startup BEFORE the probes, which will effectively
link it into the devsw tables etc.

If I'd thought about it more I'd have put that in in this set (damn)
The ioconf lines generated by config will also end up in the
device's own scope as well, so ioconf.c will eventually be gutted
the SYSINIT call to the driver will include a phase where the
driver links it's ioconf line into a chain of such. when this phase is done
then the user can modify them with the boot: -c
config menu if he wants, just like now..
config will put the config lines out in the .h file
(e.g. in aha.h will be the addresses for the aha driver to look.)
as I said this is a very small first step..
the aim of THIS set of edits is to not have to edit conf.c at all when
adding a new device.. the tabe will be a simple skeleton..

when this is done, it will allow other changes to be made,
all teh time still having a fully working kernel tree,
but the logical outcome is the complete REMOVAL of the devsw tables.

By the end of this, linked in drivers will be exactly the same as
run-time loaded drivers, except they JUST HAPPEN to already be linked
and present at startup..
the SYSINIT calls will be the equivalent of the "init" call
made to a newly loaded driver in every respect.

For this edit,
each of the files has the following code inserted into it:

obviously, tailored to suit..
----------------------somewhere at the top:
#ifdef JREMOD
#include <sys/conf.h>
#define CDEV_MAJOR 13
#define BDEV_MAJOR 4
static void 	sd_devsw_install();
#endif /*JREMOD */
---------------------somewhere that's run during bootup: EVENTUALLY a SYSINIT
#ifdef JREMOD
        sd_devsw_install();
#endif /*JREMOD*/
-----------------------at the bottom:
#ifdef JREMOD
struct bdevsw sd_bdevsw =
	{ sdopen,	sdclose,	sdstrategy,	sdioctl,	/*4*/
	  sddump,	sdsize,		0 };

struct cdevsw sd_cdevsw =
	{ sdopen,	sdclose,	rawread,	rawwrite,	/*13*/
	  sdioctl,	nostop,		nullreset,	nodevtotty,/* sd */
	  seltrue,	nommap,		sdstrategy };

static sd_devsw_installed = 0;

static void 	sd_devsw_install()
{
	dev_t descript;
	if( ! sd_devsw_installed ) {
		descript = makedev(CDEV_MAJOR,0);
		cdevsw_add(&descript,&sd_cdevsw,NULL);
#if defined(BDEV_MAJOR)
		descript = makedev(BDEV_MAJOR,0);
		bdevsw_add(&descript,&sd_bdevsw,NULL);
#endif /*BDEV_MAJOR*/
		sd_devsw_installed = 1;
	}
}
#endif /* JREMOD */
1995-11-28 09:42:06 +00:00
bde
b87785185d Included <sys/conf.h>. It used to be included as a side effect of
including <sys/devconf.h>.
1995-11-16 09:56:02 +00:00
phk
d08180594a Staticize various private parts. 1995-11-14 09:58:47 +00:00
bde
6073486300 Added `#include "ioconf.h"' to <machine/conf.h> and cleaned up the
misplaced extern declarations (mostly prototypes of interrupt handlers)
that this exposed.  The prototypes should be moved back to the driver
sources when the functions are staticalized.

Added idempotency guards to <machine/conf.h>.  "ioconf.h" can't be
included when building LKMs so define a wart in bsd.kmod.mk to help
guard against including it.
1995-11-04 17:08:13 +00:00
wollman
ad90d58596 Add BPF and IP multicast capabilities to the tun' and lp' network
interfaces.

Submitted by:	Bill Fenner <fenner@parc.xerox.com>
1995-09-25 16:57:54 +00:00
bde
b25431cbea Fix benign type mismatches in devsw functions. 82 out of 299 devsw
functions were wrong.
1995-09-08 11:09:15 +00:00
bde
81e1e32f6c Don't include <sys/tty.h> in drivers that aren't tty drivers or in general
files that don't depend on the internals of <sys/tty.h>
1995-07-16 10:13:08 +00:00
dg
5eba76030c Use ifr_mtu for the mtu value rather than ifr_metric. 1995-06-22 07:03:20 +00:00
dg
78565dfd0b Change interface type...IFT_SLIP -> IFT_PARA. 1995-06-21 10:23:23 +00:00
rgrimes
c86f0c7a71 Remove trailing whitespace. 1995-05-30 08:16:23 +00:00
phk
3b65c5079e Cleanup to the INET part of lpt.c.
Reviewed by:	phk
Submitted by:	pst
1995-05-09 01:33:16 +00:00
wollman
6a8d3a357d Add a class field to devconf and mst drivers.
For those where it was easy, drivers were also fixed to call
dev_attach() during probe rather than attach (in keeping with the
new design articulated in a mail message five months ago).  For
a few that were really easy, correct state tracking was added as well.
The `fd' driver was fixed to correctly fill in the description.
The CPU identify code was fixed to attach a `cpu' device.  The code
was also massively reordered to fill in cpu_model with somethingremotely
resembling what identifycpu() prints out.  A few bytes saved by using
%b to format the features list rather than lots of ifs.
1995-04-12 20:48:13 +00:00
bde
289f11acb4 Add and move declarations to fix all of the warnings from `gcc -Wimplicit'
(except in netccitt, netiso and netns) and most of the warnings from
`gcc -Wnested-externs'.  Fix all the bugs found.  There were no serious
ones.
1995-03-16 18:17:34 +00:00
phk
be2ef7df5b I really hate this:
unless I go "splhigh" (as opposed to splimp before) the TCP/IP driver
doesn't work anymore...  Why ?
1995-02-26 21:41:41 +00:00
bde
7c16fe40ea Replace all remaining instances of i386/include' by machine' and fix
nearby #include inconsistencies.
1995-02-26 05:14:53 +00:00
phk
3e67e7f9c3 Fix a panic I might have seen, or at least could see some day if I havn't
already.
1994-11-16 06:09:29 +00:00
nate
e637a98a76 Changed output message in interrupt-driven lp device from
'TCP/IP interface' to 'TCP/IP capable interface' to avoid confusion.
1994-11-13 21:14:30 +00:00
phk
67c17d90f1 Fix a bug which had crept in (an almost certain panic).
Remove inline assembler.
Avoid mbuf spaghetti by using m_devget.
1994-10-27 05:08:28 +00:00
wollman
7b8e09399a Finished device configuration database work for all ISA devices (except `ze')
and all SCSI devices (except that it's not done quite the way I want).  New
information added includes:

-	A text description of the device
-	A ``state''---unknown, unconfigured, idle, or busy
-	A generic parent device (with support in the m.i. code)
-	An interrupt mask type field (which will hopefully go away) so that
.	  ``doconfig'' can be written

This requires a new version of the `lsdev' program as well (next commit).
1994-10-23 21:28:03 +00:00
phk
f6a1c45a08 Cosmetics. Silence gcc -Wall. Much more to do here :-( 1994-10-10 01:12:27 +00:00
phk
84016a3007 Parallel-port TCP/IP interface can now take any MTU. 1994-09-18 06:12:45 +00:00
phk
4020f6ed38 Fixed a warning from the compiler, which just crashed my laptop. When do
I start to listen to wise ol' compilers sound advice... sigh.

Also made lp0 a Point-to-point interface.
1994-09-15 02:37:11 +00:00
csgr
7b6e72a847 Make it possible to run lptcontrol on a printer port which does not
actually have a printer connected or online:
- MAKEDEV:		remove all signs of lpa
			add lpctl? devices (minor # = unit + 128)
- usr.sbin/Makefile	add lptcontrol
- sys/i386/isa/lpt.c	implement the LP_BYPASS flag: when a unit is
			opened with this flag set, the printer is
			not primed, and no check is made to see that
			the printer is online.  This can only be used
			to pass ioctls.  (giving us /dev/lpctl?)
- lptcontrol.c		use /dev/lpctl? (LP_BYPASS)
			-f flag removed, -u flag added
- lptcontrol.8		document changes in lptcontrol
			rewrite using mandoc macros
Submitted by:	Geoff.
1994-09-03 22:47:08 +00:00
paul
0263782ac9 Ran ft.c through ident.
Added a missing #ifdef INET wrapper in lpt.c

Main change:
	Removed the timeout_func_t casts from timeout calls and
	correctly defined the timeout routines to conform to
	the new format.
lpt.c doesn't have this change.

Reviewed by:
Submitted by:
1994-08-23 07:52:29 +00:00
phk
8c771a08fd The tcp/ip interfaces needed longer timeouts, works fine under 2.0. 1994-08-14 01:46:28 +00:00
wollman
07e1c7f69d Change all #includes to follow the current Berkeley style. Some of these
``changes'' are actually not changes at all, but CVS sometimes has trouble
telling the difference.

This also includes support for second-directory compiles.  This is not
quite complete yet, as `config' doesn't yet do the right thing.  You can
still make it work trivially, however, by doing the following:

rm /sys/compile
mkdir /usr/obj/sys/compile
ln -s M-. /sys/compile
cd /sys/i386/conf
config MYKERNEL
cd ../../compile/MYKERNEL
ln -s /sys @
rm machine
ln -s @/i386/include machine
make depend
make
1994-08-13 03:50:34 +00:00
phk
0bd3f2acae Submitted by: Poul-Henning Kamp <phk@login.dkuug.dk>
Added my if_lp TCP/IP driver to lpt.c.
I have (surprise) not been able to test it on a 2.0 machine yet.  Connect the
machines with a parallel "lap-link" cable, and get rates from 35 kbyte/sec
up to 75 kbyte/sec.  (when ftp'ing foo: dev/zero -> bar:/dev/null).

The same lpt.c file should compile under 1.1.5.1 without problems.

I think we should promote this feature when we dump 2.0 on the expectant
public, because it provides a cheap and efficient way to move data to and
from notebooks &c.  It is not a replacement for ethernet, but a cheap
substitute sometimes.
1994-08-13 00:37:03 +00:00
rgrimes
f89d59bbd9 Fix some references to MIN() and MAX() that have been replaced by min() and
max().
1994-05-26 13:30:20 +00:00
csgr
e18ba77d44 change to lptioctl 1994-04-08 22:13:49 +00:00
csgr
e910246f9f Changes to lpt driver:
- ansi prototypes in lpt.c
- a bit of tidying in lpt.c
- ioctl in lpt.c for switching between polling and using interrupts
- added lpt.h - needed for ioctl to allow switching between polling
        and interrupt-driven modes.
1994-04-06 16:42:33 +00:00
rgrimes
41e2d032a3 Cleanup the lptprobe and lpt_port_test routine to be KNF. 1994-02-22 09:05:13 +00:00
rgrimes
d6a88ab6a1 I (rgrimes) cleaned the code up some, mostly just format stuff.
>From: csgr@alpha.ru.ac.za (Geoff Rehmet)
Date: Wed, 16 Feb 1994 21:28:06 +0200 (GMT+0200)

New version of lpt, most of the brokenness fixed.
1994-02-17 10:20:18 +00:00
jkh
d1434da5b3 Gunter Jung's fixes for the much-maligned lpt driver 1994-02-06 22:06:58 +00:00
wollman
8e24073a9b Make the LINT kernel compile with -W -Wreturn-type -Wcomment -Werror, and
add same (sans -Werror) to Makefile for future compilations.
1993-11-25 01:38:01 +00:00
rgrimes
3e9257e324 Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some
minor cleanup.  Added $Id$ to files that did not have any version info, etc
1993-10-16 13:48:52 +00:00
rgrimes
e1e9cca1ce Convert another printf into an lprintf since this should only be output
for debugging.

Thanks Chris.
1993-09-28 21:50:59 +00:00
rgrimes
ef9aeda7ce >From: chmr@edvz.tu-graz.ac.at (Christoph Robitschko)
Date: Tue, 28 Sep 1993 09:03:13 +0100 (MET)
The only place I found with a printf("status %x") is in /sys/i386/isa/lpt.c,
and looks much like a left-over debugging printout...

And it was... I changed it to an lprintf (which is defined if debuggin is on)
			Rod
1993-09-28 17:02:34 +00:00
rgrimes
780b2904e1 From Bruce Evans:
lpt doesn't work here if the printer is not turned on at boot time (this
has been reported for other systems).

lpt has a weird mapping of the flag bits vs printer numbers and MAKEDEV
does not understand this (printer 0 uses minor numbers 0-0x3f, printer 1
uses minors 0x40-0x7f, etc).

The following (simpler) problems are fixed by the patch.

lpt did not check the minor number on open, so if NLPT1 == 1 and you
try to open printer 1 then random memory above the lpt_sc array is
accessed.  I thought I had this problem for minors 1 and 2.  However,
it does not actually occur until minor 0x40.  Does anyone have lpt64?

lpt had several unnecessary && broken ANSIisms and other sloppy
declarations.

Bruce
1993-07-13 18:52:49 +00:00
rgrimes
25062ba061 Initial import, 0.1 + pk 0.2.4-B1 1993-06-12 14:58:17 +00:00