Commit Graph

4747 Commits

Author SHA1 Message Date
Joerg Wunsch
5044d1ff0b Remove redundant declaration for worminit(). Dunno why my config(8)
didn't generate it, but it's supposed to.
1996-01-29 19:46:26 +00:00
David Greenman
2c68345ab4 Added a check/panic for vm_map_find failing to find space for the page
tables/u-pages when forking. This is a "can't happen" case. :-)
1996-01-29 12:10:30 +00:00
David Greenman
07bbd7f1bb Implement what I mentioned in rev 1.18: limit per-bucket allocations to
60% of physical memory or 60% of malloc area size, whichever is smaller.
1996-01-29 11:12:37 +00:00
David Greenman
54e7152c15 Fixed two bugs in the calculation of the malloc area (kmem_map) size:
1) The calculation didn't account for NMBCLUSTERS, so if a large number of
   clusters was specified, it would leave little or no space for kernel
   malloc.
2) It was bogusly restricted to v_page_count. This doesn't take into
   account the sparseness of the malloc area and would have caused
   problems on machines with small amounts of memory. It should probably
   instead be changed to set the malloc limit to be constrained by
   the amount of memory, but I didn't do this.
1996-01-29 09:58:34 +00:00
Justin T. Gibbs
7db797deb6 Add LIST_INSERT_BEFORE and TAILQ_INSERT_BEFORE. These are used by the
new eisaconf code.
1996-01-29 03:20:44 +00:00
Justin T. Gibbs
299bb9dbd6 Prevent media eject on first open and re-enable ejection on last close.
The previous behavior was based on the lifetime of a "mount session"
which isn't very obvious.
1996-01-29 03:19:23 +00:00
Justin T. Gibbs
0fed413e64 Update copyright. 1996-01-29 03:18:20 +00:00
Justin T. Gibbs
65ed8cbd4e Kernel printf now returns int. 1996-01-29 03:18:05 +00:00
Justin T. Gibbs
4697fd511e Changes to support Performance enhancements in the sequencer.
Bring back the polling code (for dumps mostly), but protect it
with splbio() to make it safe for reprobes.
1996-01-29 03:17:39 +00:00
Justin T. Gibbs
4a1e5d799a Finally commit Serge's multicast and "misc other changes" patch. I
don't have a network to test it on here, but it does probe my card okay.

Submitted by: "Serge A. Babkin" <babkin@hq.icb.chel.su>
1996-01-29 03:16:14 +00:00
Justin T. Gibbs
b18d8f49f2 Another pass through eisaconf. Ioaddrs and Maddrs are link lists now.
The Bt driver is the only one that actually registers multiple addresses.

Probe output is formatted to 80 columns.
1996-01-29 03:13:23 +00:00
Justin T. Gibbs
5327d59536 Performance optimizations. Unroll all bcopies. Use PIO to transfer SCBs
since setting up the DMA is too costly.  Restructure for efficiency.

Pause the sequencer when a parity error occurs so that the kernel driver
knows during which phase the error was encountered.
1996-01-29 03:12:06 +00:00
John Dyson
4fd00d508b Fixed an uninitialized variable (argument to vm_map_find) -- problem
that DG detected, and promptly found a fix.
Submitted by:	davidg
1996-01-29 02:57:33 +00:00
John Dyson
89d1440458 Added sys_pipe into files. 1996-01-28 23:43:06 +00:00
John Dyson
f982721359 Enable the new fast pipe code. The old pipes can be used with the
"OLD_PIPE" config option.
1996-01-28 23:41:40 +00:00
John Dyson
10c5615c1d Added new files to support the new fast pipes. After the follow-on
commits, pipe performance should increase significantly.  The pipe(2)
system call is currently supported, while fifofs will be added later.
1996-01-28 23:38:26 +00:00
Joerg Wunsch
adb2fd2d93 Make worm.c compile with -Wall -Werror again.
. remove some unused variables
. declare worminit() right this time, it's actually extern (?)
. use wormminphys(), now that it's already there (hope i've got this right)
1996-01-28 23:33:23 +00:00
Julian Elischer
1c07bf3556 Submitted by: rich (which one?)
Another special case for probing multi-CD cdrom drives.

2nd try at this patch.
1996-01-28 22:41:44 +00:00
Garrett Wollman
5dec5a0060 Implement a prototype interface to bus-master IDE DMA on the Triton
chipset.  This does not attempt to do anything special with the timing
on the hope that the BIOS will have done the right thing already.  The
actual interface from the wd driver to the new facility is not
implemented yet (this commit being an attempt at prodding someone else
to do it because looking at the wd driver always confuses the h*** out of me).
1996-01-28 22:16:20 +00:00
Jordan K. Hubbard
93f4df92ad Back out the previous change. It's not correct for -current. 1996-01-28 21:51:57 +00:00
Jordan K. Hubbard
b73daed8ca Add an entry for the "MBR-7", whatever that is.
Submitted by:	rich
1996-01-28 20:43:49 +00:00
Jordan K. Hubbard
e2c0b0985f 3c590 driver for FreeBSD
Submitted by:	Frederick Earl Gray <fgray@owlnet.rice.edu>
1996-01-28 20:31:11 +00:00
John Dyson
44196d615f An earlier modification had decreased CPU usage, but also
decreased performance.  This essentially undoes that change.
1996-01-28 18:25:54 +00:00
Poul-Henning Kamp
02ae573ca8 make devfs_add_devswf a little smarter about '/'; 1996-01-28 10:07:55 +00:00
Poul-Henning Kamp
0c68712e02 Fix DEVFS, remove unused vars. 1996-01-28 10:02:38 +00:00
Joerg Wunsch
6e333abfc2 Minor but fatal spelling error when merging my code into -current.
Also declared worminit() to avoid a compiler warning.  Seems that the
other SCSI drivers don't declare XXinit() yet, so perhaps we'd also
create a typedef for these func's.
1996-01-28 09:56:04 +00:00
Bruce Evans
80f9be1460 Fixed dangling pointer bugs in DIOCSDINFO.
Enabled DEVFS support.  It doesn't work while devfs is mounted
(add_devfs_devsw() doesn't work then), but seems to be safe.
1996-01-28 08:15:44 +00:00
Rodney W. Grimes
a7ba018ad1 Add missing ${DESTDIR} to afterinstall: target. 1996-01-27 23:57:06 +00:00
Garrett Wollman
31c5632840 Decode configuration for the IDE part of the Triton chipset. This
includes a hack in the probe code: the 82371FB is a multifuction
device, but doesn't properly set the configuration bit which
indicates this.  So, we just hard-wire all 82371FBs as multifunction
devices.

This does not actually make the bus-master IDE stuff work, although
if anyone wants to work on that, I have the databooks that tell
how to use it.
1996-01-27 20:14:32 +00:00
Joerg Wunsch
b10fe1a96d Add <sys/wormio.h>, containing the declarations that are shared between
kernel and userland.
1996-01-27 17:49:47 +00:00
Joerg Wunsch
984afdcfd2 The Great Merge.
The worm driver is alpha-usable!  I've stuffed everything that is
needed into the kernel driver, including the logic to select
between different vendor's quirks.

Disclaimer: this has by now _only_ been tested on a heavily tweaked
2.0.5R system.  I've done my best to retrofit it into -current, but
i don't have a chance yet to test it in a -current environment.
1996-01-27 17:48:12 +00:00
Bruce Evans
af4cb3a1c4 [Oops, forgot to commit this together with things that depend on it.]
First attempt at creating devfs entries for sliced devices.  Doesn't
quite work yet, so the heart of it is disabled.

Added bdev and cdev args to dsopen().

Create devfs entries in dsopen() and (unsuccessfully) attempt to make
them go away at the right times.  DEVFS is #undefed at the start so
that this shouldn't cause problems.
1996-01-27 09:34:21 +00:00
Bruce Evans
c8f2fe8db8 First attempt at creating devfs entries for sliced devices. Doesn't
quite work yet, so the heart of it is disabled.

Added bdev and cdev args to dsopen().

drivers:
Fixed device names, links, minor numbers and modes.

wd.c:
Started actually supporting devfs.

diskslice.h:
Added devfs tokens to structs (currently 576 of them per disk! :-().

subr_diskslice.c:
Create devfs entries in dsopen() and (unsuccessfully) attempt to make
them go away at the right times.  DEVFS is #undefed at the start so
that this shouldn't cause problems.
1996-01-27 04:18:15 +00:00
Bruce Evans
dd87702a51 Allocate DMA bounce buffers only when requested by drivers. Only the
fd and wt drivers need bounce buffers, so this normally saves 32K-1K
of kernel memory.

Keep track of which DMA channels are busy.  isa_dmadone() must now be
called when DMA has finished or been aborted.

Panic for unallocated and too-small (required) bounce buffers.

fd.c:
There will be new warnings about isa_dmadone() not being called after
DMA has been aborted.

sound/dmabuf.c:
isa_dmadone() needs more parameters than are available, so temporarily
use a new interface isa_dmadone_nobounce() to avoid having to worry
about panics for fake parameters.  Untested.
1996-01-27 02:33:48 +00:00
Bruce Evans
e7973e6070 Declared new functions isa_dmainit() and isa_dmadone_nobounce().
Sorted and KNFised declarations.
1996-01-27 01:57:02 +00:00
Bruce Evans
227b8bf258 Cleaned up unused #includes and some other historical cruft.
Sorted and KNFised declarations.
1996-01-27 01:56:30 +00:00
Bruce Evans
6139755401 Fixed allocation of DMA buffers. The DMA bounce buffers were sometimes
overrun by 2 pages.

Fixed the (unused) values returned from device attach functions.

Fixed checking of unit number in device open functions - don't load bad
pointers or print error messages about the contents of bad pointers.

Removed unused #includes.

asc.c:
Fixed premature setting of flags in ascopen() - copied the better order
in gscopen().

gsc.c:
Fixed conflict handling for drq:
- fail the probe if the configured drq doesn't match the actual drq.
- set the configured drq to match the actual drq in the autoconfig case.

Reviewed by:	Nobody; authors didn't respond to mail.
1996-01-27 00:53:58 +00:00
Bruce Evans
324e9ed2a4 Added a `boundary' arg to vm_alloc_page_contig(). Previously the only
way to avoid crossing a 64K DMA boundary was to specify an alignment
greater than the size even when the alignment didn't matter, and for
sizes larger than a page, this reduced the chance of finding enough
contiguous pages.  E.g., allocations of 8K not crossing a 64K boundary
previously had to be allocated on 8K boundaries; now they can be
allocated on any 4K boundary except (64 * n + 60)K.

Fixed bugs in vm_alloc_page_contig():
- the last page wasn't allocated for sizes smaller than a page.
- failures of kmem_alloc_pageable() weren't handled.

Mutated vm_page_alloc_contig() to create a more convenient interface
named contigmalloc().  This is the same as the one in 1.1.5 except
it has `low' and `high' args, and the `alignment' and `boundary'
args are multipliers instead of masks.
1996-01-27 00:13:33 +00:00
Garrett Wollman
7c399a896a Delete the if_private[] array in struct ifnet; this turned out to be
of limited utility.  In their place, add bunch of pointers
which will eventually be needed by the polled-interrupt scheme we're working
here.  (It will probably be a while before the code is written and
committed here.)  At the same time, a `void *if_softc' field
was added to the beginning of the structure to make certain driver
writers happier.

The practical upshot of all this is that you need to
recompile utilities such as netstat which manipulate struct ifnet.
1996-01-26 22:09:54 +00:00
Poul-Henning Kamp
16cf781eed Fix a bug I made in the devfs. 1996-01-26 12:42:39 +00:00
Poul-Henning Kamp
18b7be4064 The last part of the ether_sprint -> %6D change.
Sorry for the delay.
(%D is for hexdumping.)
1996-01-26 09:29:29 +00:00
Joerg Wunsch
11b61c4563 Correctly initialize the `btprobing' variable. It's always been 0,
causing a bogus error message to appear if no board has been fond.
1996-01-25 23:03:07 +00:00
Joerg Wunsch
e5bf458f52 Remove the "no board found at" message, ia rather similar message with
the same information is printed one line below by the generic isa code
anyway.
1996-01-25 23:00:42 +00:00
Garrett Wollman
a8030f1496 Correctly identify the various parts of the Triton chipset. 1996-01-25 20:38:31 +00:00
Stefan Eßer
e653d76e96 Add support for multi-function devices. 1996-01-25 18:32:00 +00:00
Andrey A. Chernov
887c00b859 Change RUKEYMAP sligtly 1996-01-25 16:37:20 +00:00
Poul-Henning Kamp
e8cbe8fa47 Avoid local sprintfs and other printf'isms. 1996-01-25 07:21:50 +00:00
Poul-Henning Kamp
831e28a67a Make devfs_add_devfsf() which takes printf style args. 1996-01-25 07:17:31 +00:00
Poul-Henning Kamp
f782b11a04 Don't use %r, we havn't got it anymore.
Submitted by: bde
1996-01-25 07:15:40 +00:00
Peter Wemm
f863805df0 This time, really make the procfs work when reading stuff from the UPAGES.
This is a really ugly bandaid on the problem, but it works well enough for
'ps -u' to start working again.  The problem was caused by the user
address space shrinking by a little bit and the UPAGES being "cast off" to
become a seperate entity rather than being at the top of the process's
vmspace.  That optimization was part of John's most recent VM speedups.

Now, rather than decoding the VM space, it merely ensures the pages are
in core and accesses them the same way the ptrace(PT_READ_U..) code does,
ie: off the p->p_addr pointer.
1996-01-25 06:05:38 +00:00