Commit Graph

597 Commits

Author SHA1 Message Date
jdolecek ee882e3a09 Add port of high performance pipe implementation written by John S. Dyson
for FreeBSD project. Besides huge speed boost compared with socketpair-based
pipes, this implementation also uses pagable kernel memory instead of mbufs.

Significant differences to FreeBSD version:
* uses uvm_loan() facility for direct write
* async/SIGIO handling correct also for sync writer, async reader
* limits settable via sysctl, amountpipekva and nbigpipes available via sysctl
* pipes are unidirectional - this is enforced on file descriptor level
	for now only, the code would be updated to take advantage of it
	eventually
* uses lockmgr(9)-based locks instead of home brew variant
* scatter-gather write is handled correctly for direct write case, data
  is transferred by PIPE_DIRECT_CHUNK bytes maximum, to avoid running out of kva

All FreeBSD/NetBSD specific code is within appropriate #ifdef, in preparation
to feed changes back to FreeBSD tree.

This pipe implementation is optional for now, add 'options NEW_PIPE'
to your kernel config to use it.
2001-06-16 12:00:02 +00:00
simonb 18b2f7e6a1 Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
 - New pmap and revised trap handler.
 - Support on-chip timers, PCI controller, UARTs
 - Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
 - Add in-kernel PPC floating point emulation
 - New in{,4}_cksum that is between 1.5 and 5 times faster than the
   old version depending on CPU type.
General changes:
 - Kernel support for generic dbsym-style symbols.
2001-06-13 06:01:44 +00:00
tsutsui bcdd082840 Add a driver for the Initio INIC-940/950 PCI SCSI controllers.
Based on OpenBSD's iha driver, and modified some structures by me.

Tested on arc, i386 and macppc.
2001-06-03 13:43:45 +00:00
thorpej 70b2367cfd 1.5W -- hardware IPv4/TCP/UDP checksumming support. 2001-06-03 02:48:45 +00:00
thorpej ca4d373730 Implement support for IP/TCP/UDP checksum offloading provided by
network interfaces.  This works by pre-computing the pseudo-header
checksum and caching it, delaying the actual checksum to ip_output()
if the hardware cannot perform the sum for us.  In-bound checksums
can either be fully-checked by hardware, or summed up for final
verification by software.  This method was modeled after how this
is done in FreeBSD, although the code is significantly different in
most places.

We don't delay checksums for IPv6/TCP, but we do take advantage of the
cached pseudo-header checksum.

Note: hardware-assisted checksumming defaults to "off".  It is
enabled with ifconfig(8).  See the manual page for details.

Implement hardware-assisted checksumming on the DP83820 Gigabit Ethernet,
3c90xB/3c90xC 10/100 Ethernet, and Alteon Tigon/Tigon2 Gigabit Ethernet.
2001-06-02 16:17:06 +00:00
itojun 23395d5017 build faith(4) only if INET and INET6 are specified.
From: joda@pdc.kth.se (Johan Danielsson) on tech-net
2001-05-30 17:50:46 +00:00
sommerfeld bdecf91bef Add infrastructure to allow ports to override build of in6_cksum.c by
enabling the INET6_MD_CKSUM option, which is defopted into opt_inet.h.
Supply an i386 assembly version of in6_cksum in in_cksum.s; on
P6-family cpu's, this is is roughly 20% faster than the C code in
sys/netinet6 for ethernet-mtu-sized mbufs in L1 cache.  Turn on
INET6_MD_CKSUM in i386/conf/std.i386

While we're here, also nuke some now-obsolete XXX comments from
in_cksum.s.
2001-05-26 17:46:11 +00:00
matt ad064c38d9 defopt KGDB 2001-05-18 19:59:03 +00:00
jmc 32b1bba730 Add locator support for fwbus's 2001-05-13 04:54:47 +00:00
matt 063e046c8f Add MI cprofb (used on shark and netwinder) 2001-05-11 04:47:56 +00:00
ichiro 8bb5cfe6aa divided into PCMCIA attachment and common code of wi.
since if_wi_ieee.h does not depend for pcmcia,
sys/dev/pcmcia/if_wi_ieee.h was moved to sys/dev/ic/wi_ieee.h .
2001-05-06 03:26:38 +00:00
minoura 1a9388aa50 Software codec for Oki MSM6258 voice synthesizer.
Recording untested.
2001-05-02 12:53:31 +00:00
scw 40e04a2f6f Bump kernel version number due to `struct linesw' change. 2001-05-02 10:33:36 +00:00
tsutsui 613923b42e Add a MI driver for the Symbios/NCR 53c710 SCSI controller.
This is based on amiga's siop driver, but converted to use
bus_space(9) functions and modified to fit bus_dma(9) framework.

Currently tested on NetBSD/arc with jazzio 53c710 SCSI,
which really requires bus_dma(9) functions :-)
Sync transfers and disconnect/reconnect are also working.

TODO:
- Test under more heavy load
- Clean up osiop_checkintr() hander
- Reorganize command queue and sync negotiation handling more suitable
  for thorpej-scsipi mid-layer
- Re-think defered interrupt handling for amiga
2001-04-30 04:47:50 +00:00
martin b5b75a7d19 Add an in-kernel PPPoE (ppp over ethernet, RFC 2516) implementation,
based on the existing net/if_spppsubr.c stuff.

While there are completely userland (bpf based) implementations available,
those have a vastly larger per packet overhead thus causing major CPU
overhead and higher latency. On an i386 base router, running a 486DX at 50MHz
my line (768kBit/s downstream) was limited to something (varying) between 10
and 20 kByte/s effective download rate. With this implementation I get full
bandwidth (~85kByte/s).

This is client side only. Arguably the right way to add full PPPoE support
(including server side) would be a variation of the ppp line discipline and
appropriate modifications to pppd. I promise every help I can give to anyone
doing that - but I needed this realy fast. Besids, on low memory NAT boxes
with typically a single PPPoE connection, this implementation is more
lightweight than a pppd based one, which nicely fits my needs.
2001-04-29 09:50:36 +00:00
fredette b56ccf464d Add entries for the NatSemi MM58167 time-of-day clock chip
and the chipset used in the Sun2 "sc" SCSI adapters.
2001-04-20 16:39:22 +00:00
thorpej e0b3faf07e Add configuration glue for forthcoming bridge code. 2001-04-11 03:43:23 +00:00
jdolecek 09b64e8678 bump kernel version - struct fileops change 2001-04-07 15:56:50 +00:00
jdolecek 592dfdc76b Prepare for MCA attachment:
* split off sharable stuff to dev/ic/ate_subr.[ch], move ate(4) device
  definition to conf/files
* cosmetic: attach with ate_isa
2001-03-31 00:26:53 +00:00
fvdl 87d29abbf0 defopt NAMECACHE_ENTER_REVERSE 2001-03-29 22:40:06 +00:00
martin 5171d409a5 First step to cleanup the hardware driver <-> upper layers interface.
This now provides slightly more functionality than the FreeBSD layer1-newbus
interface. It was meant to be a simple change to one header and a few
c files, but the change rippled all through various stuff.

To prevent a change to the kernel<->userland interface right now the kernel
is now lying about card types to userland (but who cares). This will be fixed
when the userland interface changes, after layer 3 <-> layer 4 has been
fixed.

Functional changes:

Provide a clean interface for hardware drivers to attach to the upper
layers. This will need another small change in the B-channel handling
when a similar change to the layer 3 <-> layer 4 interface happens.

Avoid passing indices into global arrays of pointers around, instead pass
the pointers itself. Don't code hardware driver types by predefined magic
numbers (think LKM). Prepare for detachable drivers (think pcmcia).

While there remove some sets of function pointers always pointing to the
same function (meant to be the configurable set of D channel protocol
handlers). It is unlikely another supported D-channel protocol will fit into
that (maximal layer interface) abstraction. When we get support for another
protocol, we will need to come up with a workable interface. Besides, the
old implementation was, uhm, strange.
2001-03-24 12:40:29 +00:00
jdolecek ffd34612c2 Split we(4) driver to bus independant and ISA-specific parts, in preparation
for MCA attachment.
2001-03-23 19:08:53 +00:00
thorpej 93d642a1b3 1.5T -- PR_ABRTACPTDIS in protosw. 2001-03-21 19:43:05 +00:00
thorpej 21a0f1ac65 advlib.c and advmcode.c should be built for all adv, not
just adv_pci.  From takashi.yamamoto@bigfoot.com, kern/12341.
2001-03-08 04:18:17 +00:00
eeh aa63020001 Combine SVR4 options in one file. 2001-02-27 00:29:36 +00:00
lukem acec2828d9 whitespace police 2001-02-24 01:34:28 +00:00
martin f0d6660cf4 Filename cleanup: remove i4b_ prefixes outside sys/netisdn, last round.
Renamed in sys/dev/ic:
i4b_hscx.c -> hscx.c
i4b_hscx.h -> hscx.h
i4b_ipac.h -> ipac.h
i4b_isac.c -> isac.c
i4b_isac.h -> isac.h
i4b_isic.c -> isic.c
i4b_isicbchan.c -> isic_bchan.c
i4b_isicl1.c -> isic_l1.c
i4b_isicl1.h -> isic_l1.h
i4b_isicl1fsm.c -> isic_l1fsm.c
2001-02-20 22:24:31 +00:00
eeh 8a4a682091 Support flexible process address space limits and bump kernel version number. 2001-02-14 18:21:42 +00:00
jdolecek bee3b51a6d Add the code to recode filenames to utf8 for NTFS. 2001-02-14 08:44:24 +00:00
thorpej f234f12854 Oops, `mii' attribute has to go onto the device decl. 2001-02-13 02:31:41 +00:00
thorpej d1b70a2231 Config attribute for the DL10019 MII support. 2001-02-13 01:56:28 +00:00
itojun ae819d9324 move udp6_output() to separate file. (sync better with kame) 2001-02-08 16:48:01 +00:00
tv 29a9a3d9b3 Work around yet more LKM system braindamage tickled by rev 1.418 by
including layer_*.c if "options LKM".  This is not the right way to fix
it, but we have as yet no standardized mechanism to add a "LKM code
library" to fill in gaps in the monolithic kernel's code.

Problem noted by <tron@netbsd.org>.
2001-02-05 15:56:27 +00:00
ad 8d75ab98d3 Add a driver for the Mylex DAC960 family (including DEC SWXCR). 2001-02-04 17:05:11 +00:00
tv 1977657943 Provide proper option dependencies for some files included either
unconditionally or on too-inclusive conditions (resulting in dead code):

miscfs/genfs/layer_*.c (nullfs | overlay | umapfs)
miscfs/procfs/procfs_map.c (procfs)
netinet/ip_ecn.c (ipsec | gif | stf)
2001-02-02 04:39:35 +00:00
thorpej d5b80e5c7a 1.5R -- sy_flags added to struct sysent. 2001-01-27 07:35:24 +00:00
takemura 0906d8d1fe Rasops supports 4bit depth. 2001-01-21 13:50:58 +00:00
fvdl 66689980ac Add procfs_linux.c 2001-01-17 01:26:40 +00:00
martin 242656c78a Enable the imported ISDN4BSD based ISDN subsystem.
This is the kernel part (userland to follow soon) of the latest (and
very probably last) release (version 0.96) of ISDN4BSD. ISDN4BSD has a
homepage at http://www.freebsd-support.de/i4b/.

It gives the user various ways to use the isdn connection: raw data (via
the i4brbch "raw b-channel" device), ppp (via the isp "isdn PPP" device),
voice/answering machine (the i4btel "telephone" device) and ip over isdn
(the ipr device, "IP over raw ISDN").

Supported are a bunch of common and older cards, more to be added soon
after some cleanup. Currently only the european E-DSS1 variant of the
ISDN D channel protocol is supported.
2001-01-05 13:09:15 +00:00
thorpej 8cccee3a4a Define a bpf_filter attribute, and include bpf_filter.o when we
have it.  Give the attribute to things which need to use the BPF
virtual machine.
2000-12-29 00:54:58 +00:00
sommerfeld 851de295eb Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
2000-12-28 22:59:06 +00:00
jdolecek a80dee65df add utrace(2) - this syscall allows to add user ktrace entries
idea from FreeBSD, but added argument (const char *id) so that it's possible
to differentiate between entries from different sources
2000-12-28 11:10:15 +00:00
augustss 63fbac9a7d Add some placeholders for the EHCI (USB 2) driver.
Don't get your hopes up.  I've not even finished reading the
(100+) page spec, and I have no hardware.
2000-12-24 06:39:01 +00:00
jdolecek 93c9760c88 bump kernel version to 1.5P - struct proc, struct sigacts changes 2000-12-22 23:21:38 +00:00
thorpej 13a32129a0 Bump rev -- size of ifnet changed. 2000-12-18 18:55:43 +00:00
thorpej ea9f3d531c Change the way ALTQ is enabled in the kernel, as there is an
annoying include file name clash.
2000-12-14 22:36:48 +00:00
thorpej d77997d037 Add ALTQ glue. 2000-12-14 17:41:38 +00:00
onoe 9c25e9208a Port 'an' driver for Aironet PC4500/PC4800 IEEE802.11 card from FreeBSD.
This is very adhoc work for IETF meeting.
- Since it seems that 'an' and 'wi' have similar hardware, low level
  functions should be shared.
- There are PCI/ISA cards of Aironet but not supported yet.
- The wiconfig interface is changed so that wiconfig cannot be used.
- 'ancontrol' of FreeBSD is not ported.
- Only infrastructure mode is tested.
- WEP is not supported.

Though I only have an Aironet card, Cisco card should be expected to work.
2000-12-11 23:16:50 +00:00
fvdl e464d0288a sobind() interface change -> 1.5N 2000-12-10 23:17:28 +00:00
jdolecek de62167014 bump kernel version to 1.5M - changes to make emulation & their binary exec
format support loadable via LKM
2000-12-08 23:11:40 +00:00