Commit Graph

182 Commits

Author SHA1 Message Date
peter
e2c0e675c7 Pull the rug from under the 'LKM Compatability' macro - PSEUDO_SET().
There are two 3rd party code chunks using this still - the IPv6 stuff and
i4b.  Give them a private copy as an alternative to changing them too much.

XXX sys/kernel.h still has a #include <sys/module.h> in it.  I will be
taking this out shortly - this affects a number of drivers.
2001-02-04 11:46:17 +00:00
peter
8eddfd2f15 Stop counting sppp interfaces, we were just testing its presence to give
a warning if it was missing.
2001-01-29 12:27:46 +00:00
hm
cb91e4fe80 Add experimental support for Eicon.Diehl DIVA 2.0 and 2.02 ISA PnP cards.
Thanks a lot to Jakob Schripsema (sch@kpn.com) for pointing out similarities
of the Eicon 2.02 to the Siemens I-surf driver !
2001-01-26 13:16:11 +00:00
hm
e1ad448f1d Add experimental support for Eicon.Diehl DIVA 2.0 and 2.02 ISA PnP cards.
Increment i4b minor revision (=step) so a buildworld or a make install in
/usr/src/sys/include is necessary to get isdnd and i4b kernel parts in sync.
2001-01-26 13:12:56 +00:00
hm
70aff88d6b remove redundant definitions of card types:
- remove all occurances of FLAG_XXX values and replace with CARD_TYPEP_XXX
 - remove sc_flag from isic softc and replace it with sc_cardtyp
remove some left over redundant definitions from isic and i4b_l1.h
remove left over cvs id from i4b cvs repository
2001-01-24 08:41:52 +00:00
hm
ec62944a0b Remove useless variable vjlen.
Submitted by:	Sergio de Souza Prallon <prallon@tmp.com.br>
2001-01-23 10:01:55 +00:00
hm
9c4d942508 Update the iwic driver: fix error handling for rx errors on the D-channel
which prevents erroneous packets from being put onto the protocol stack;
enhance error detection for B-channel HDLC errors; remove old cvs id´s.
2001-01-21 10:12:50 +00:00
wollman
0fbfe85a3c Finish deprecating <sys/select.h> in favor of <sys/selinfo.h> in kernel code. 2001-01-20 02:24:07 +00:00
hm
477441c0ce it seems that a commit to i4b/drivers/i4b_ispppsubr.c on 2000-01-12 has
broken the handling of uncompressed VJ packets. The attached diff should
hopefully fix that.
Submitted by:	Thomas Moestl <tmoestl@gmx.net>
Reviewed by:	Sergio de Souza Prallon <prallon@tmp.com.br>
2001-01-15 14:58:46 +00:00
hm
a4ef9041cb Reenable support for FreeBSD 4.x and possibly the other supported BSD's 2001-01-15 14:54:43 +00:00
hm
464b4ea94b Fix a bug overwriting random data when Van Jacobsen header compression
was used with the isp/isppp driver.
Submitted by:	Sergio de Souza Prallon <prallon@tmp.com.br>
2001-01-12 08:48:54 +00:00
hm
d1aa547878 Add the ISDN itjc hardware driver. This driver supports the NETJet-S cards
from Traverse Technology and also the Teles PCI-TJ cards both based on the
chipset combination of the Siemens ISAC and the TJNet Tiger300/320 chips.

The itjc/i4b_hdlc.h file will hopefully soon be merged with the file
/usr/src/sys/i4b/layer1/i4b_hdlc.h.

Submitted by:	Sergio de Souza Prallon <prallon@tmp.com.br>
2001-01-11 14:35:45 +00:00
hm
d60e64a0cf Add infrastructure to support the ISDN itjc hardware driver.
Submitted by:	Sergio de Souza Prallon <prallon@tmp.com.br>
2001-01-11 14:26:39 +00:00
hm
3a2f51b4fc Update the ihfc driver with a patch from the author. He writes: This patch
enables the driver to work on current (I have not tested the isa part fully,
but I suppose it should work). The patching from jlemon caused a crash at
probe time. This is probably my fault not having added a comment for
"RESET_SOFT" saying: "this resets all!".

Submitted by:	Hans Petter Selasky <hselasky@c2i.net>
2001-01-11 13:38:38 +00:00
hm
c2138298a5 Add PCI id's for the Planet PCI ISDN Adapter (Model IA128P-STDV)
Submitted by:	Luiz Henrique Duma <duma@bsi.com.br>
2001-01-10 13:34:23 +00:00
jlemon
f18f07f6e8 Move the mutex initialization from avma1pp_bchannel_setup into
avma1pp_attach_avma1pp, since the former may be called multiple
times and we only want to initialize the mutex once.

Submitted by: Thomas Moestl <tmoestl@gmx.net>
2001-01-09 15:01:42 +00:00
jlemon
b14251832e When queueing a packet, call the output start routine. I botched this
during the initial ifqueue conversion.

Submitted by: Thomas Moestl <tmoestl@gmx.net>
2001-01-09 14:59:43 +00:00
julian
ff86256bf7 Part 2 of the netgraph rewrite.
This is mostly cosmetic changes, (though I caught a bug or two while
makeing them)
Reviewed by:	archie@freebsd.org
2001-01-08 05:34:06 +00:00
julian
f0c46a9d00 Rewrite of netgraph to start getting ready for SMP.
This version is functional and is aproaching solid..
notice I said APROACHING. There are many node types I cannot test
I have tested: echo hole ppp socket vjc iface tee bpf async tty
The rest compile and "Look" right.  More changes to follow.
DEBUGGING is enabled in this code to help if people have problems.
2001-01-06 00:46:47 +00:00
julian
0c949560a1 Divorce the kernel binary ABI version number from the message
format version number. (userland programs should not need to be
recompiled when the netgraph kernel internal ABI is changed.

Also fix modules that don;t handle the fact that a caller may not supply
a return message pointer. (benign at the moment because the calling code
checks, but that will change)
2000-12-18 20:03:32 +00:00
julian
311130de4d Change initialiser to match new structure layout.
forgotten by: Me
Found by: GCC
2000-12-12 23:52:43 +00:00
julian
2d1192e612 Reviewed by: Archie@freebsd.org
This clears out my outstanding netgraph changes.
There is a netgraph change of design in the offing and this is to some
extent a superset of soem of the new functionality and some of the old
functionality that may be removed.

This code works as before, but allows some new features that I want to
work with and evaluate. It is the basis for a version of netgraph
with integral locking for SMP use.

This is running on my test machine with no new problems :-)
2000-12-12 18:52:14 +00:00
hm
0755fde449 Bugfix: enable interrupt sharing for ELSA Microlink ISDN PCI 2000-12-03 16:20:33 +00:00
phk
7c4763bbdd Make log(-1, ...) do what addlog(...) did.
Replace all uses of addlog(...) with log(-1, ...)

Remove bogus "register" keywords in subr_prf.c

Make log() return void.
2000-11-26 19:34:06 +00:00
jlemon
954e1d2ccd Lock down the network interface queues. The queue mutex must be obtained
before adding/removing packets from the queue.  Also, the if_obytes and
if_omcasts fields should only be manipulated under protection of the mutex.

IF_ENQUEUE, IF_PREPEND, and IF_DEQUEUE perform all necessary locking on
the queue.  An IF_LOCK macro is provided, as well as the old (mutex-less)
versions of the macros in the form _IF_ENQUEUE, _IF_QFULL, for code which
needs them, but their use is discouraged.

Two new macros are introduced: IF_DRAIN() to drain a queue, and IF_HANDOFF,
which takes care of locking/enqueue, and also statistics updating/start
if necessary.
2000-11-25 07:35:38 +00:00
hm
fa7e377e8c Fix i4b netgraph interface to not kernel panic at boot time
Make code compile and work for FreeBSD 4.x as well as FreeBSD 5.x
Submitted by: Michael Reifenberger <root@nihil.plaut.de>
2000-11-09 12:27:31 +00:00
asmodai
718d497482 Fix two typo's: teh -> the, ther -> there. 2000-11-08 12:08:53 +00:00
hm
958b417e33 Remove unused #include statements
Submitted by:	phk
2000-10-30 14:49:26 +00:00
hm
6c347dd09c Add infrastructure for Cologne Chip HFC-S PCI driver. 2000-10-26 07:00:05 +00:00
hm
a9cb6e58cd Add infrastructure for Cologne Chip HFC-S PCI driver.
Increment isdn4bsd step.
2000-10-26 06:58:43 +00:00
hm
c6fdad3835 Make the software HDLC decoder work again.
Submitted by:	Hans Petter Selasky <hselasky@c2i.net>
2000-10-26 06:31:18 +00:00
hm
0660ded966 Submitted by: Hans Petter Selasky <hselasky@c2i.net>
Remove double 0x7e flags between hdlc-frames.
2000-10-20 11:20:58 +00:00
hm
c91f907c88 Add a debug flag bit for a new driver. 2000-10-18 08:39:24 +00:00
phk
beadbd4365 Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
hm
695a943911 Submitted by: phk
Remove not needed includes.
2000-10-13 14:10:51 +00:00
hm
b7652345a9 When T308 times out while waiting for a RELEASE COMPLETE, clean up and
send a disconnect indication to the upper layers. This lets isdnd recover
from the situation instead of hanging in some intermediate state ...
2000-10-12 16:04:58 +00:00
hm
dbad9285cc fix conflicting types for ng_ing_rcvmsg() and ng_ing_rcvdata(). 2000-10-10 15:22:00 +00:00
hm
7258891cac Set i4b version number to 0.96.00.
It is (nearly) identical to i4b-00.96.00-beta-101000.tar.gz
2000-10-10 14:14:20 +00:00
hm
fd7ebb78cf update to i4b version 0.95.04 (oops, forgot this one ..) 2000-10-09 14:30:50 +00:00
hm
aeb60cd7bf remove MAINTAINER: i'll develop and maintain i4b from now on in the
FreeBSD-current tree
2000-10-09 14:29:16 +00:00
hm
a946322c9c remove the tina-dd driver fragment, it is unlikely that it will get finished. 2000-10-09 13:32:02 +00:00
hm
6a1e8c89a3 update to i4b version 0.95.04 2000-10-09 13:29:00 +00:00
hm
9fc2bc8a46 update to i4b version 0.95.04 2000-10-09 13:18:17 +00:00
jhb
7013b83225 - Remove the inthand2_t type and use the equivalent driver_intr_t type from
newbus for referencing device interrupt handlers.
- Move the 'struct intrec' type which describes interrupt sources into
  sys/interrupt.h instead of making it just be a x86 structure.
- Don't create 'ithd' and 'intrec' typedefs, instead, just use 'struct ithd'
  and 'struct intrec'
- Move the code to translate new-bus interrupt flags into an interrupt thread
  priority out of the x86 nexus code and into a MI ithread_priority()
  function in sys/kern/kern_intr.c.
- Remove now-uneeded x86-specific headers from sys/dev/ata/ata-all.c and
  sys/pci/pci_compat.c.
2000-09-13 18:33:25 +00:00
phk
e47f61e183 Avoid the modules madness I inadvertently introduced by making the
cloning infrastructure standard in kern_conf.  Modules are now
the same with or without devfs support.

If you need to detect if devfs is present, in modules or elsewhere,
check the integer variable "devfs_present".

This happily removes an ugly hack from kern/vfs_conf.c.

This forces a rename of the eventhandler and the standard clone
helper function.

Include <sys/eventhandler.h> in <sys/conf.h>: it's a helper #include
like <sys/queue.h>

Remove all #includes of opt_devfs.h they no longer matter.
2000-09-02 19:17:34 +00:00
phk
b648921acc Remove all traces of Julians DEVFS (incl from kern/subr_diskslice.c)
Remove old DEVFS support fields from dev_t.

  Make uid, gid & mode members of dev_t and set them in make_dev().

  Use correct uid, gid & mode in make_dev in disk minilayer.

  Add support for registering alias names for a dev_t using the
  new function make_dev_alias().  These will show up as symlinks
  in DEVFS.

  Use makedev() rather than make_dev() for MFSs magic devices to prevent
  DEVFS from noticing this abuse.

  Add a field for DEVFS inode number in dev_t.

  Add new DEVFS in fs/devfs.

  Add devfs cloning to:
        disk minilayer (ie: ad(4), sd(4), cd(4) etc etc)
        md(4), tun(4), bpf(4), fd(4)

  If DEVFS add -d flag to /sbin/inits args to make it mount devfs.

  Add commented out DEVFS to GENERIC
2000-08-20 21:34:39 +00:00
peter
647ef85d48 Borrow phk's axe and apply the next stage of config(8)'s evolution.
Use Warner Losh's "hint" driver to decode ascii strings to fill the
resource table at boot time.

config(8) no longer generates an ioconf.c table - ie: the configuration
no longer has to be compiled into the kernel.  You can reconfigure your
isa devices with the likes of this at loader(8) time:
  set hint.ed.0.port=0x320

userconfig will be rewritten to use this style interface one day and will
move to /boot/userconfig.4th or something like that.

It is still possible to statically compile in a set of hints into a kernel
if you do not wish to use loader(8).  See the "hints" directive in GENERIC
as an example.

All device wiring has been moved out of config(8).  There is a set of
helper scripts (see i386/conf/gethints.pl, and the same for alpha and pc98)
that extract the 'at isa? port foo irq bar' from the old files and produces
a hints file.  If you install this file as /boot/device.hints (and update
/boot/defaults/loader.conf - You can do a build/install in sys/boot) then
loader will load it automatically for you.  You can also compile in the
hints directly with:  hints "device.hints"  as well.

There are a few things that I'm not too happy with yet.  Under this scheme,
things like LINT would no longer be useful as "documentation" of settings.
I have renamed this file to 'NOTES' and stored the example hints strings
in it.  However... this is not something that config(8) understands, so
there is a script that extracts the build-specific data from the
documentation file (NOTES) to produce a LINT that can be config'ed and
built.  A stack of man4 pages will need updating. :-/

Also, since there is no longer a difference between 'device' and
'pseudo-device' I collapsed the two together, and the resulting 'device'
takes a 'number of units' for devices that still have it statically
allocated.  eg:  'device fe 4' will compile the fe driver with NFE set
to 4.  You can then set hints for 4 units (0 - 3).  Also note that
'device fe0' will be interpreted as "zero units of 'fe'" which would be
bad, so there is a config warning for this.  This is only needed for
old drivers that still have static limits on numbers of units.
All the statically limited drivers that I could find were marked.

Please exercise EXTREME CAUTION when transitioning!

Moral support by: phk, msmith, dfr, asmodai, imp, and others
2000-06-13 22:28:50 +00:00
peter
256d18b0e2 Make this compile without the old 2.2 compatability defines. 2000-05-28 16:24:17 +00:00
peter
da78ae6c96 Mass update of isa drivers using compatability shims to use
COMPAT_ISA_DRIVER() so that we can get rid of the evil isa_compat.h table.
2000-05-28 13:40:48 +00:00
phk
62efea1e92 Remove 42 unneeded #include <sys/ioccom.h>.
ioccom.h defines only implementation detail, and should therefore
only be included from the #include which defines the ioctl tags,
in other words: never include it from *.c
2000-05-03 07:31:38 +00:00
phk
ce2aa22c93 Remove unneeded #include <sys/kernel.h> 2000-04-29 15:36:14 +00:00
obrien
a8c8e00c91 * Use sys/sys/random.h rather than a i386 specific one.
* There was nothing that should be machine dependant about
  i386/isa/random_machdep.c, so it is now sys/kern/kern_random.c.
2000-04-24 17:30:08 +00:00
hm
d6841c128a Fix a problem which caused i/o resource allocation conflict of this
particular ISDN card with the 2nd IDE controller and/or other cards
depending on configuration.

The amount of i/o ports allocated are reduced from 0x40 per range to
0x20 per range.

Submitted by:	Andrew Gordon <arg@arg1.demon.co.uk>
Approved by:	jkh
2000-03-09 20:57:47 +00:00
gj
75e6ea817c Newbus-ify the USR Sportster TA Intern driver.
Enable the driver in sys/conf/files.i386.

In isa/isavar.h increase ISA_NPORT from 32 to 50. This is required
because this brain-damaged card maps 49 (!) port ranges. This does
not have a negative impact because this value only specifies the maximum
number of entries in a linked list and not the size of an array which
is allocated in all drivers.

The register/fifo access routines were not newbus-ified because
1) I knew that the old code worked and is simpler and more efficient
2) the if_ed driver does something similar and
3) the newbus macros collapse to inb/outb anyway.

Reviewed and tested by:	hm
Approved by:	jkh
2000-02-21 02:10:10 +00:00
hm
e5044a69c9 update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
hm
57bc8b4124 update to isdn4bsd beta release 0.90 1999-12-14 20:48:35 +00:00
peter
847fd08c4d Temporary adjustment to build after pnp changes. There is a new version
in the pipeline apparently.

OK'ed by: hm
1999-12-07 12:06:31 +00:00
brian
d5bd70def6 Call i4b_l4_drvrdisc, not i4b_l4_disconnect_ind to bring the link
down when the device is closed or carrier is removed.

This solves the disconnect problems when using user-ppp over isdn.

Suggested by: hm
1999-11-28 16:17:01 +00:00
imp
d9bac1e9be Disable old PCCARD_MODULE code.
This should fix LINT.

Prompted by: phk's explicit message about LINT breakage
1999-10-29 17:28:09 +00:00
phk
e9e0512210 Remove five now unused fields from struct cdevsw. They should never
have been there in the first place.  A GENERIC kernel shrinks almost 1k.

Add a slightly different safetybelt under nostop for tty drivers.

Add some missing FreeBSD tags
1999-09-25 18:24:47 +00:00
peter
24981c244d Finish making LINT compile. Disable references to pnp in files that
don't appear to use it, and disable i4b_isic_pnp.c (with a #warning)
until it's converted.
1999-09-03 20:38:47 +00:00
julian
bda6c6a24c make correct minor numvers for some of the devices.
Submitted by:	Hellmuth Michaelis <hm@hcs.de>
1999-08-31 05:55:14 +00:00
hm
a261857e2d add MAINTAINER for the kernel part of i4b 1999-08-28 13:35:00 +00:00
peter
3b842d34e8 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
julian
a0797ab43e Add PHK's make_dev() into more places where DEVFS used to be
hooked in directly.

Alpha change checked by: Matthew Jacob <mjacob@feral.com>
i4b ISDN changes checked by: Udo Schweigert <ust@cert.siemens.de>
    and Hellmuth Michaelis <hm@hcs.de>
PC98 changes checked by: Takahashi Yoshihiro <nyan@FreeBSD.org>
1999-08-27 07:26:26 +00:00
phk
909603ec05 Avoid symbol clash in LINT. 1999-08-08 18:17:40 +00:00
hm
c318ffb377 updating isdn4bsd to beta version 0.83 1999-08-06 14:05:10 +00:00
des
3c4a5a075d Rename bpfilter to bpf. 1999-07-06 19:23:32 +00:00
phk
a65111acb3 devsw and cdevsw_add() changes for i4b.
Reviewed by:	hm
1999-06-01 08:46:56 +00:00
hm
2077acfca0 upgrade isdn4bsd from version 0.71 to the just released version 0.81 1999-05-20 10:14:57 +00:00
peter
41b420910c Simplify the COMPAT_PCI_DRIVER/DATA_SET hack. We can add:
#define COMPAT_PCI_DRIVER(name,data) DATA_SET(pcidevice_set,data)
.. to 2.2.x and 3.x if people think it's worth it.  Driver writers can do
this if it's not defined.  (The reason for this is that I'm trying to
progressively eliminate use of linker_sets where it hurts modularity and
runtime load capability, and these DATA_SET's keep getting in the way.)
1999-05-09 17:07:30 +00:00
peter
6823e815bb Missing 'int' declaration in devsw_installed variable. 1999-05-06 18:33:48 +00:00
phk
16e3fbd2c1 Suser() simplification:
1:
  s/suser/suser_xxx/

2:
  Add new function: suser(struct proc *), prototyped in <sys/proc.h>.

3:
  s/suser_xxx(\([a-zA-Z0-9_]*\)->p_ucred, \&\1->p_acflag)/suser(\1)/

The remaining suser_xxx() calls will be scrutinized and dealt with
later.

There may be some unneeded #include <sys/cred.h>, but they are left
as an exercise for Bruce.

More changes to the suser() API will come along with the "jail" code.
1999-04-27 11:18:52 +00:00
peter
8d7f7356e8 Use PCCARD_MODULE() instead of DATA_SET(), the pccard linker set went a
while ago.
1999-04-25 07:44:02 +00:00
peter
ab2d1f3910 Use COMPAT_PCI_DRIVER() for registration if it exists. This shouldn't
hurt the driver portability to 3.x too much for where drivers are shared.
1999-04-24 20:24:02 +00:00
peter
f8ccdc284f I missed this PnP change for new-bus..
Submitted by:	Blaz Zupan <blaz@gold.amis.net>
1999-04-18 06:13:33 +00:00
hm
40d1a33c98 Minor adjustments to make LINT compile again (thanks to phk for reminding me).
Because the Fritz!Card PCMCIA stuff is also affected, this includes the fix
from PR kern/10278 submitted by Udo Schweigert (udo.schweigert@mchp.siemens.de).
PR: kern/10278
1999-03-16 11:07:04 +00:00
hm
8f0bddf02a update the i4b include files to i4b release 0.71.00 1999-03-07 16:09:45 +00:00
hm
7e46cf5dd7 update the i4b kernel part to i4b release 0.71.00 1999-03-07 16:08:20 +00:00
peter
5cf49b590f Update the pccard hooks to use a module style declaration instead. 1999-01-19 00:21:53 +00:00
eivind
10fe024e74 Silence warnings.
Approved by:	hm
1999-01-12 11:05:03 +00:00
phk
c7ecc129d7 Initial entry of ISDN4BSD into the FreeBSD tree.
ISDN4BSD is the work of our brand-new comitter: Hellmuth Michaelis,
who has done a tremendous amount of work to bring us this far.

There are still some outstanding issues and files to bring into
the tree, and for now it will be needed to pick up all the extra
docs from the isdn4bsd release.

It is probably also a very good idea to subscribe to the isdn@freebsd.org
mailing list before you try this out.

These files correspond to release "beta Version 0.70.00 / December
1998" from Hellmuth.
1998-12-27 21:47:14 +00:00