Peter Wemm [Fri, 12 May 2000 22:43:20 +0000 (22:43 +0000)]
Fix the real problem that broke the Alpha loader this last week. It
was not the fault of the module code, nor FICL. The malloc code requires
sbrk() to return addresses that were at least 16 byte aligned. If the
Alpha loader happened to be 8 byte but not 16 byte aligned in length, then
you would get a zfree() panic at startup.
Incidently, this affected the i386 loader as well, and explains why
the static heap changed things and why jlemon had trouble when the bss
was not ending at a multiple of 8 bytes.
My fix is to 16 byte align it on all arches, even though the x86 version
only required 8 byte alignment (struct MemNode is smaller there). We could
page align it if we wanted to be paranoid, but it isn't presently necessary.
Peter Wemm [Fri, 12 May 2000 21:51:20 +0000 (21:51 +0000)]
Stop libficl from using floating point registers - this was cauing
dictDelete() to fault early on the Alpha and was the original cause of
the Alpha ficl failures.
Peter Wemm [Fri, 12 May 2000 21:48:54 +0000 (21:48 +0000)]
We compile expressly on the alpha with -mno-fp-regs - so do not use them
explicitly here. This was the original cause of instruction faults on
the Alpha in loader. (not this code, but the same problem in libficl.a)
Chris Costello [Fri, 12 May 2000 20:52:50 +0000 (20:52 +0000)]
Null commit:
The log entry for the previous commit marked an item
relating to filling in [mca]time data for socket structures
as related to FIFOs. The change is actually related
to sockets.
Tim Vanderhoek [Fri, 12 May 2000 18:10:17 +0000 (18:10 +0000)]
Backout previous commit to this file: it dies in buildworld environment.
I probably forgot to put an ${.OBJDIR} somewhere. I'll redo the change
later when I get a chance to test that thesis.
Jonathan Lemon [Fri, 12 May 2000 16:48:59 +0000 (16:48 +0000)]
This driver attempts to cache mbufs, and re-use them as headers instead
of using the MGETHDR macro all the time. When an mbuf is reused as a
header, initialize csum_flags to zero as well, so the delayed_checksum
call woks properly.
Alexey Zelkin [Fri, 12 May 2000 09:10:40 +0000 (09:10 +0000)]
. insert forgotten by someone "Space Mode on" directive. It caused displaying
of all macros placed after FILES section w/o any space characters.
. slightly correct usage of .An macros.
Peter Wemm [Fri, 12 May 2000 07:47:47 +0000 (07:47 +0000)]
Fix the Alpha loader the rest of the way. If FICL is present in
/boot/loader (even though it is 100% dormant in the Alpha version),
then the loader panics with a zfree error:Loading /boot/loader.test
*** keyboard not plugged in...
Console: SRM firmware console
panic: zfree(0x2003cb58,4096): wild pointer
versus the exact same code but without FICL linked in:
Loading /boot/loader
Console: SRM firmware console
VMS PAL rev: 0x1000600010114
OSF PAL rev: 0x1000600020116
Switch to OSF PAL code succeeded.
FreeBSD/alpha SRM disk boot, Revision 0.1
This is almost certainly an alpha infrastructure bug, not a FICL
problem. It's probably the same thing that made FICL fail for no
apparent reason on the Alpha.
John Baldwin [Fri, 12 May 2000 03:05:35 +0000 (03:05 +0000)]
Turn on USB support for most USB devices. udbp is not turned on since
NETGRAPH is not present in GENERIC at the moment. Also, change some
settings to support USB installs:
- Add KBD_INSTALL_CDEV as an option to make /dev/kbd[01] actually work.
- Turn on keyboard probing in sc0. The syscons driver will now use a
flag documented in ukbd(4) but not in sc(4) that tells syscons to
actively search for a keyboard device if none is found. This allows
USB keyboards to just be plugged in and instantly start working.
- Require the atkbd0 driver to actually probe to see if a keyboard is
there. This allows USB keyboards to be seen by sc0 if an AT keyboard
isn't plugged into the computer. This also means that you will no
longer be able to plug an AT keyboard into a machine after it has
booted a GENERIC kernel and use it. AT keyboards aren't designed for
this anyway. USB keyboards are designed for this, and they work.
John Baldwin [Fri, 12 May 2000 03:01:17 +0000 (03:01 +0000)]
Add support for USB to sysinstall. This includes running usbd and
setting 'usbd_enable' in rc.conf during nwe installs if USB is detected.
Also, since usbd already handles USB mice automatically, note that the
mouse setup section in sysinstall only applies to non-USB mice.
Chris Costello [Thu, 11 May 2000 22:10:51 +0000 (22:10 +0000)]
Adapt fdesc to be mounted on /dev/fd and remove fd, stdin, stdout and
stderr nodes. More specific items of this patch:
o Removed support for symbolic links, and the need for
fdesc_readlink().
o Put all the code from fdesc_attr() into fdesc_getattr() and removed
fdesc_attr(). This also made it easier to properly give all nodes
unique inode numbers.
o The removal of all non-fd nodes allowed the removal of the fdesc_read(),
fdesc_write(), and fdesc_ioctl() nodes, since we no longer have nodes
that get special handling.
o Correct the component name validity-checking in fdesc_lookup(). It
previously detected the end of the string by checking for a terminating
NUL, now it uses cnp->cn_namelen.
o Handle kqueue files as FIFOs. This is probably the closest file type
to represent this type of file there is, and it is unfortunately not
very representative of a kqueue. Creation time is not supported by
kqueue, so ctime, mtime and atime are all set to the current time when
getattr() was called.
o Also set st_[mca]time to the current time since there's no data in
socket structures that can be used to fill this in (FIFOs).
o Simplify fdesc_readdir() since it only has to report the numbered
fd nodes. Add `.' and `..' directory links as well.
o Remove read bits from directories as they tend to confuse programs
like tar(1).
Reviewed by: phk
Discussed with: bde (earlier on, not quite review)
Bruce Evans [Thu, 11 May 2000 16:39:33 +0000 (16:39 +0000)]
Removed bogus quoting of single tokens in a .Fn invocation. This helps
my synopsis checker decide which .Fn's are for prototypes (most function
parameters require quoting because they have multiple tokens).
Bruce Evans [Thu, 11 May 2000 16:13:18 +0000 (16:13 +0000)]
"Fixed" missing include in synopsis. POSIX.1-1996 only specifies
including <signal.h>, but that must be a bug in POSIX.1, because it
also specifies that the relevant prototype is [only] in <pthread.h>.
Bruce Evans [Thu, 11 May 2000 15:57:17 +0000 (15:57 +0000)]
Fixed missing consts for function parameters, so that the code matches
the man page and POSIX.1. Fixed nearby misformatting. Fixed a missing
prototype.
Andrew Gallatin [Thu, 11 May 2000 13:31:05 +0000 (13:31 +0000)]
Some white-box (NT) systems have SRM which reports a systype that's
the negative of their blue-box (UNIX/OVMS) counterpart. This was
causing us to panic early in the boot process because we weren't
expecting a negative index into the cpuinit[] array.
Reorganize some of the http code and split it into more functions.
Implement fetchStatHTTP().
Unbungle struct url, and add fetchFreeURL().
Document it.
Greg Lehey [Thu, 11 May 2000 07:26:33 +0000 (07:26 +0000)]
Rewrite parity maintenance functions.
revive_block: Correct bug introduced in revision 1.25 which caused
Add fields to vinum_ioctl_msgexcessive concurrent requests followed by
system death.
Peter Wemm [Thu, 11 May 2000 02:32:36 +0000 (02:32 +0000)]
Move <machine/ipl.h> outside #ifdef SMP because it supplies AST_RESCHED.
Without this, it shows up as an undefined symbol in /kernel. (!)
(This looks very freaky when doing a nm /kernel!)
Mike Smith [Thu, 11 May 2000 01:12:46 +0000 (01:12 +0000)]
Attempt to work around problems caused by spurious interrupts and
uninitialised interrupts in the APIC. This seems to fix the problems
being seen on systems using the RCC chipsets, eg. Dell PowerEdge 24x0.
The actual nature of the problem probably needs further investigation,
but this patch allows us to actually function on these systems.