reinitialized between while loops. Added comments about what was going
on in the out_fdc routine.
out_fdc now returns if the direction bit is not set in time instead of
trying to wait for MRQ to get cleared.
I posted some patches on the 386bsd_patchkit list to prohibit io access.
Because of a noninitialised filed in the tss, this was possible.
It is included below as the patch to machdep.c
However, when you do this *necessary* fix (security), it will be
impossible form within user space to do io.
therefor, I included another fix: when you open /dev/io, you
get the access. Of course you can rewrite it to use another minor
and thus giving access to the iospace when /dev/mem is opened, e.g.
NOTE: The /dev/io entry has not been added to /dev/MAKEDEV yet.
The patch is in NetBSD.
I submitted the part of patch00155 that fixes wd.c not reporting any
bad blocks. Unfortunately, the patch created a new problem that makes new
installations using that kernel impossible. I have included a patch below that
should fix both problems. The fix comes from Tom Ivar Helbekkmo's wd driver
(the Norway wd driver). I've also eliminated the use of the DKFL_QUIET flag
completely, since it is not used anymore.
Fixed wdgetctrl routines for so that it returns a meaniful string for
non IDE disk drives. It also nolonger returns success when a drive is
not really there.
profiling, and various protection checks that cause security holes
and system crashes.
* Changed min/max/bcmp/ffs/strlen to be static inline functions
- included from cpufunc.h in via systm.h. This change
improves performance in many parts of the kernel - up to 5% in the
networking layer alone. Note that this requires systm.h to be included
in any file that uses these functions otherwise it won't be able to
find them during the load.
* Fixed incorrect call to splx() in if_is.c
* Fixed bogus variable assignment to splx() in if_ed.c
* them in cpufunc.h. Modified wait loop in reset to look a little better.
* Added read for talley counters to prevent an infinite loop on old
* 8003E's if they (the counters) overflow.
asic register even if the board isn't a 3c503. This caused old 8003E's not
to work because they ignore IO address bits >10bits and the 3c503 asic is
located at +0x400....the offset was ignored by the 8003E and so the
value was written to one of the NIC registers. The bug was discovered by
Wolfgang Solfrank.
8bit or 16bit operation, and a flag to disable transmitter double buffering.
See the updated "ed.relnotes" file for information about how to set
the flags.
This should be considered the first "production" release. It still
needs a manual page, though.
argument definitions outside of the function parameter list. This is
to reduce the copious warning messages that (non-Jolitz) gcc produces.
Also fixed some bogus variable declarations and casts to make the
compiler happy.
way of doing things. There still remain several drivers that need to
be updated. Also added a compile-time option to pccons to switch the
control and caps-lock keys (REVERSE_CAPS_CTRL) - added for my personal
sanity.
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