sheldonh [Tue, 5 Feb 2002 09:17:24 +0000 (09:17 +0000)]
Fix obscure bug in code loading support that could cause parsing of
functions in multi-line files to fail, depending on the state of the
stack. The fix is sanctioned by the vendor and will appear in bc-1.07.
PR: bin/34601
Reported by: mi
Obtained from: Phil Nelson <phil@cs.wwu.edu>
bbraun [Tue, 5 Feb 2002 06:21:34 +0000 (06:21 +0000)]
Makes __istype() an inline (and a non inlined) function to avoid C++
compile issues. std::isspace(' ') was expanding to std::(!!_maskrune...)
which would cause a C++ compile error. Making __istype() an inline
causes the expansion to be std::__istype() instead, which is valid.
mjacob [Mon, 4 Feb 2002 21:04:25 +0000 (21:04 +0000)]
+ A variety of 23XX changes:
disable MWI on 2300
based on function code, set an 'isp_port' for the 2312- it's a
separate instance, but the NVRAM is shared, and the second port's
NVRAM is at offset 256.
+ Enable RIO operation for LVD SCSI cards. This makes a *big* difference
as even under reasonable load we get batched completions of about 30
commands at a time on, say, an ISP1080.
+ Do 'continuation' mailbox commands- this allows us to specify a work
area within the softc and 'continue' repeated mailbox commands. This is
more or less on an ad hoc basis and is currently only used for firmware
loading (which f/w now loads substantially faster becuase the calling
thread is only woken when all the f/w words are loaded- not for each
one of the 40000 f/w words that gets loaded).
+ If we're about to return from isp_intr with a 'bogus interrupt' indication,
and we're not a 23XX card, check to see whether the semaphore register is
currently *2* (not *1* as it should be) and whether there's an async completion
sitting in outgoing mailbox0. This seems to capture cases of lost fast posting
and RIO interrupts that the 12160 && 1080 have been known to pump out under
extreme load (extreme, as in > 250 active commands).
+ FC_SCRATCH_ACQUIRE/FC_SCRATCH_RELEASE macros.
+ Endian correct swizzle/unswizzle of an ATIO2 that has a WWPN in it.
des [Mon, 4 Feb 2002 20:16:50 +0000 (20:16 +0000)]
Move the pseudofs, procfs and linprocfs modules out from the fs directory.
Keeping them there seemed like a good idea at the time, but it annoys bde
and confuses people who do not understand how MODULES_OVERRIDE works.
sos [Mon, 4 Feb 2002 19:23:40 +0000 (19:23 +0000)]
Major update of the ATA RAID code, part 1:
Overhaul of the attach/detach code and structures, there were some nasty
bugs in the old implementation. This made it possible to collapse the
ATA/ATAPI device control structures into one generic structure.
A note here, the kernel is NOT ready for detach of active devices,
it fails all over in random places, but for inactive devices it works.
However for ATA RAID this works, since the RAID abstration layer
insulates the buggy^H^H^H^H^H^Hfragile device subsystem from the
physical disks.
Proberly detect the RAID's from the BIOS, and mark critical RAID1
arrays as such, but continue if there is enough of the mirror left
to do so.
Properly fail arrays on a live system. For RAID0 that means return EIO,
and for RAID1 it means continue on the still working part of the mirror
if possible, else return EIO.
If the state changes, log this to the console.
Allow for Promise & Highpoint controllers/arrays to coexist on the
same machine. It is not possible to distribute arrays over different
makes of controllers though.
If Promise SuperSwap enclosures are used, signal disk state on the
status LED on the front.
Misc fixes that I had lying around for various minor bugs.
rwatson [Mon, 4 Feb 2002 16:41:59 +0000 (16:41 +0000)]
Note that Kirk apparently missed adding vn_start_write() and friends
to kern_acl.c when he added snapshotting. This will need to be added
at some point.
markm [Mon, 4 Feb 2002 00:28:54 +0000 (00:28 +0000)]
Add the other half of the salt-generating code. No functional
difference except that the salt is slightly harder to build
dictionaries against, and the code does not use srandom[dev]().
markm [Sun, 3 Feb 2002 22:42:46 +0000 (22:42 +0000)]
Forced commit.
Previous commit included a large improvement to the salt generation to
help obfuscate information that is otherwise leaked. No real risks
involved, but this feels better, and does not use srandom[dev]().
markm [Sun, 3 Feb 2002 11:36:59 +0000 (11:36 +0000)]
Zero functional difference; make some integer constants unsigned, as
they are used in unsigned context. This shuts lint(1) up in a few
significant ways with "signed/unsigned" arithmetic warnings.
knu [Sun, 3 Feb 2002 10:01:49 +0000 (10:01 +0000)]
Work around a buffer overflow problem on argv that has been exposed
after making test(1) a sh(1) builtin; sh(1) coredumps when you run
something like this:
sh -c 'test ! `true 1`'
The cause is that the test(1) code totally depends on the presence of
two extra cells at the end of argv that are filled with NULL's. The
reason why the bug hasn't been exposed would be because the C startup
code kindly prepares argv with some extra zeroed cells for a program.
I know this is not the best fix, but since there are argv++'s without
boundary checks everywhere, I'd rather patch it up like this
(preparing a copy of argv with extra NULL's) for the moment.
bde [Sun, 3 Feb 2002 09:13:58 +0000 (09:13 +0000)]
Use osigreturn(2) instead of sigreturn(2) plus broken magic for returning
from old signal handlers. This is simpler and faster, and fixes (new)
sigreturn(2) when %eip in the new signal context happens to match the
magic value (0x1d516). 0x1d516 is below the default ELF text section,
so this probably never broken anything in practice.
locore.s:
In addition, don't build the signal trampoline for old signal handlers
when it is not used.
alpha:
Not fixed, but seems to be even less broken in practice due to more
advanced magic. A false match occurs for register #32 in mc_regs[].
Since there is no hardware register #32, a false match is only possible
for direct calls to sigreturn(2) that happen to have the magic number
in the spare mc_regs[32] field.
matusita [Sun, 3 Feb 2002 07:00:37 +0000 (07:00 +0000)]
Change variable name from DOCDISTFILES to RELEASEDISTFILES. Respect
DOCDISTFILES if defined. No impact should happen with this change.
DOCDISTFILES is introduced by rev. 1.541, to point the directory that
contains the distfiles for ports/textproc/docproj. It's good, but
we also build ports/sysutils/mkisofs during the release (if MAKE_ISOS
is defined). It is natural that cdrtools tarball is prefetched, then
copy it under ${CHROOTDIR}/usr/ports/distfiles.
As a result, DOCDISTFILES variable is somewhat abused for non-doc
tarballs; *DOC*DISTFILES is no longger appropriate name for that.
joe [Sat, 2 Feb 2002 20:59:43 +0000 (20:59 +0000)]
Sync with NetBSD's version, dropping all the 'ltd', 'corp', etc.
It's more important to keep this file easily syncable across the
BSDs, and NetBSD have stated a preference for not adding them to
theirs.
des [Sat, 2 Feb 2002 17:51:39 +0000 (17:51 +0000)]
Remove an unnecessary #include that trips up OpenPAM. The header in question
is an internal Linux-PAM header which shouldn't be used outside Linux-PAM
itself, and has absolutely zero effect on pam_ftp.
bde [Sat, 2 Feb 2002 09:50:45 +0000 (09:50 +0000)]
Don't declare our own common version of the library variable `ospeed'.
Include <termcap.h> to get its declaration. Our initialization of it
is still dubious, but it agrees with ncurses' documentation of it
(none) and with ncurses' recently fixed internals for it (old speeds
from <sys/ttydev.h>) and with the 4.4Lite documentation for it.
bde [Sat, 2 Feb 2002 09:37:20 +0000 (09:37 +0000)]
Don't declare the library variable `ospeed' without even getting its
type correct. Include <termcap.h> to get its declaration. Our
initialization of it is still dubious, but it agrees with ncurses'
documentation of it (none) and with ncurses' recently fixed internals
for it (old speeds from <sys/ttydev.h>) and with the 4.4Lite
documentation for it.
bde [Sat, 2 Feb 2002 09:32:09 +0000 (09:32 +0000)]
Don't declare our own common version of the library variable `ospeed'
without even getting its type correct. Include <termcap.h> to get its
declaration. Our initialization of it is still dubious, but it agrees
with ncurses' documentation of it (none) and with ncurses' recently
fixed internals for it (old speeds from <sys/ttydev.h>) and with the
4.4Lite documentation for it.
imp [Sat, 2 Feb 2002 06:50:57 +0000 (06:50 +0000)]
o __P has been reoved
o Old-style K&R declarations have been converted to new C89 style
o register has been removed
o prototype for main() has been removed (gcc3 makes it an error)
o int main(int argc, char *argv[]) is the preferred main definition.
o Attempt to not break style(9) conformance for declarations more than
they already are.
o Change
int
foo() {
...
to
int
foo(void)
{
...