1) Rewrote screwy code that uses an incore buffer without making it busy.
2) Use B_CACHE instead of B_DONE in cases where it is appropriate.
3) Minor code optimization.
This *might* fix kern/345 submitted by Heikki Suonsivu.
pages that are in FS buffers. This fixes the (believed to already have been
fixed) problem with msync() not doing it's job...in other words, the
stuff that Andrew has continuously been complaining about.
Submitted by: John Dyson, w/minor changes by me.
Previously they were only guarded by `#ifndef _ANSI_SOURCE'. They are
neither ANSI nor POSIX nor std and should never have been declared here.
Declare functions like abs() as having attribute `__pure2'. Declaring them
as having type `__pure' has been a no-op for some time.
Delete obsolete comment about stub locale functions.
Use consistent formatting for the rand48 functions. These and about 30
other functions should never have been declared here either.
one ypbind broadcast can yield several responses. This can lead to
some confusion: the syslog message from ypbind will indicate a rebinding
to the first server that responds, but we may subsequently change our
binding to another server when the other responses arrive. This results
in ypbind reporting 'server OK' to one address and ypwhich reporting a
binding to another.
The behavior of the rpc_received() function has been changed to prevent
this: subsequent responses received after a binding has already been
established are ignored. Rebinding gratuitously each time we get a
new response is silly anyway.
Also backed out the non-fix I made in my last ypbind commit. (Pass
me the extra large conical hat, please.)
(At some point I'm going to seriously re-work ypbind and the _yp_dobind()
library function to bring them in line with SunOS's documented behavior:
binding requests are supposed to be 'client-driven.' The _yp_dobind()
function should be responsible for retrying connections in response to
calls from client programs rather than having ypbind broadcasting
continously until a server responds. The current setup works okay in
normal operation, but we broadcast far too often than we should.)
- Don't write the label directly - use DIOCWDINFO.
- Avoid overflow in calculation of lseek() offsets.
- Fix format args in strings some more. %ld and %lu were often reversed and
#ifdefed out strings weren't fixed.
- Don't hard code the raw partition letter or DKBAD*.
- Write the qsort() comparision function in `C'.
- Fix all remaining warnings from `cc -Wall -Walmost-really-all'.
Add references to the ahc driver to the other adaptec man pages.
Remove the "NOTE" section of the ahb man page that complained about
Adaptec's NDA policy preventing 274x driver development.
is identical to the older version, just the copyright has changed. Many
thanks go to Dean Gehnert of the Linux camp who went the extra mile to make
this happen.
Other changes:
Update assembler man page to include the -v and -D options
Merge in Dean's latest changes to the assembler
Have the sequencer do a MSG_REJECT when the negotiated syncronous rate
is lower than the adapter supports. This forces asyncronous mode which
is faster at these rates anyway.
This code will be moved shortly to the non-gpld portion of the tree.
Previously, this worked right if both AUTO_EOI_1 and AUTO_EOI_2 are
defined, but not if AUTO_EOI_1 is defined and AUTO_EOI_2 is not defined.
The latter case should be the default. DUMMY_NOPS should be the default
too. Currently there are only two NOPs slowing down rtcin() (although
there are no delays in writertc()) and several FASTER_NOPs slowing down
interrupt handling in vector.s.
Fix stack offsets for the (previously) unused untested
FAST_INTR_HANDLER_USES_ES case.
through a temporary buffer instead of one character at a time. The old
method takes about 6 usec/char on a 486DX2/66. This is larger than than
the combined interrupt and PIO overhead for a 16550!
This change was first implemented in 1.1.5. It was rewritten for 2.1.
The clist access functions allow a simpler implementation at some cost
in correctness and speed. There needs to be an ungetc() function to
recover from EFAULT, and it wastes time to copy through a temporary
buffer.
Don't snoop on single characters that weren't read due to EFAULT.
Rewrite a snoop comment in my approximation to English.
Undo bogus exportation of ttnread().
OBUFSIZ should be increased to the same value as IBUFSIZE (both are
smaller than desirable because they have to fit on the stack), but
there are currently problems with magic buffer limits and watermarks.
Remove unused #define of TTMASK.
Undo bogus exportation of ttnread().
This should NOT go into 2.0.5 /phk
Support disk slices. This involves mainly replacing inline code with
function calls. Support for ST506 drives is temporarily broken since
the `setgeom' arg to dsopen() is not implemented completely enough to
use. The `setgeom' arg will go away and ST506 drives will be supported
in another way. A large amount of dead code is left in wdopen() as a
reminder of the problems here.
Close the device in wdsize(). Open tracking was broken on all drives
with a swap device.
Remove support for soft write protection. There are no ioctls to set
it. It was used to disable writing to unlabelled disks, but we want
to support writing to foreign partitions on unlabeled disks.
Use generic dkbad routines to do about 2/3 of the work for supporting
bad144.
Improve disk statistics: estimate 4MB/sec instead of 8MB/sec for
the transfer rate (ISA max is 4MB/sec, old IDE max is 3.3MB/sec);
fix dk_xfer[] (it counted sectors, not transfers); keep the estimate
dk_seek[] = dk_xfer[] (was sectors, is now transfers); only count
words actually transferred (the count is still too high after a
failed write and after retries). Remove wdxfer[].
Fix indentation in wdattach(). Fix resulting botched printing of the
disk size for ST506 drives. Print the disk geometry less cryptically.
o Fix the keyboard probe to properly wait for the ready bit before
sending a command to the keyboard controller. This should avoid the
problems some people are experiencing where the boot blocks hang the
system during keyboard probe. (It does solve it for me.)
o Fix a bug that effectively prevented the boot blocks from ever
passing control to the serial console. [while(--retries) instead of
while(retries--)]
o Gratuitously reduced the keyboard probe timeout from 500 to 5
seconds. :)
o Introduced a new option ``FORCE_COMCONSOLE'' as a commented-out
example in the Makefile, to force the usage of a serial console
regardless of a keyboard being connected or not.
o Moved all external declarations to boot.h, declared all functions
there, and ANSIfied all function declarations/definitions.
(printf() remains bogus, however -- i'm too lazy to fix this.)
We're in the ninetees, dunno why we should still support compilers
from the 70's.