Jake Burkholder [Sun, 5 Jan 2003 04:07:31 +0000 (04:07 +0000)]
Sync with zs.
- Fix some bogosity with mixing unit numbers and channels, which would only
work for one instance of the device.
- Use a simpler scheme for input and output queueing.
- Use db_alt_break.
Jake Burkholder [Sun, 5 Jan 2003 03:48:14 +0000 (03:48 +0000)]
- Provide backwards compatibility for kern.fallback_elf_brand.
- Use the generic elf type macros in imgact_elf.h instead of ifdefing the
entire contents of the header.
Adopt, adapt and improve:
o Make the URL of the handbook match reality
o Improve some comments (either wording or formatting)
o Sync with i386: comment-out DDB, INVARIANTS, INVARIANT_SUPPORT
o Add some more SCSI/RAID controllers:
ahd, mpt, asr, ciss, dpt, iir, mly, ida
o Remove support for the parallel port
o Add NICs: em, bge
o Remove NICs: ste, tl, tx, vr, wb
o Enable USB support again, except of the UHCI host controller.
UHCI still hangs the BigSur (=HP i2000) machines, and makes
them useless. The OHCI controller works fine. Note that newer
ia64 boxes based on the Intel host controllers (UHCI or EHCI)
still won't have USB support. We really need to import the
EHCI host controller from NetBSD...
Temporarily introduce a new VOP_SPECSTRATEGY operation while I try
to sort out disk-io from file-io in the vm/buffer/filesystem space.
The intent is to sort VOP_STRATEGY calls into those which operate
on "real" vnodes and those which operate on VCHR vnodes. For
the latter kind, the call will be changed to VOP_SPECSTRATEGY,
possibly conditionally for those places where dual-use happens.
Add a default VOP_SPECSTRATEGY method which will call the normal
VOP_STRATEGY. First time it is called it will print debugging
information. This will only happen if a normal vnode is passed
to VOP_SPECSTRATEGY by mistake.
Add a real VOP_SPECSTRATEGY in specfs, which does what VOP_STRATEGY
does on a VCHR vnode today.
Add a new VOP_STRATEGY method in specfs to catch instances where
the conversion to VOP_SPECSTRATEGY has not yet happened. Handle
the request just like we always did, but first time called print
debugging information.
Apart up to two instances of console messages per boot, this amounts
to a glorified no-op commit.
If you get any of the messages on your console I would very much
like a copy of them mailed to phk@freebsd.org
Jake Burkholder [Sat, 4 Jan 2003 22:07:48 +0000 (22:07 +0000)]
Improve the way that an elf image activator for an alternate word size is
included in the kernel. Include imgact_elf.c in conf/files, instead of
both imgact_elf32.c and imgact_elf64.c, which will use the default word
size for an architecture as defined in machine/elf.h. Architectures that
wish to build an additional image activator for an alternate word size can
include either imgact_elf32.c or imgact_elf64.c in files.${ARCH}, which
allows it to be dependent on MD options instead of solely on architecture.
ifstat Display the network traffic going through active interfaces
on the system. Idle interfaces will not be displayed until
they receive some traffic.
For each interface being displayed, the current, peak and
total statistics are displayed for incoming and outgoing
traffic. By default, the ifstat display will automatically
scale the units being used so that they are in a human-read-
able format. The scaling units used for the current and peak
traffic columns can be altered by the scale command.
Peter Wemm [Sat, 4 Jan 2003 20:24:27 +0000 (20:24 +0000)]
Unifdef has got some crack-smoking exit values:
"The unifdef utility exits 0 if the output is an exact copy of the input,
1 if not, and 2 if in trouble."
This causes an 'Error code 1 (ignored)' in the world output, which upsets
the whereintheworld scripts that the tinderboxes use.
However, this stuff here is a relic. We do not enable HAVE_TCL_INTERP
nor HAVE_PERL_INTERP.. The Makefile hooks to turn them on have gone ages
ago, and this stuff was here for release building purposes only. Rather
than fight with the tinderbox builds, clean house a bit and remove the
last remaining unused relics of this stuff.
Alan Cox [Sat, 4 Jan 2003 19:23:19 +0000 (19:23 +0000)]
Use vm_object_lock() and vm_object_unlock() in vm_object_deallocate().
(This procedure needs further work, but this change is sufficient for
locking the kmem_object.)
Warner Losh [Sat, 4 Jan 2003 17:26:35 +0000 (17:26 +0000)]
Merge from P4:
o Update copyright.
o Add a tunable to allow the ti12xx to initialize the pci clock. Some rare
cards need it.
o rename 67xx -> 6729 since there's really only one chip in this family.
o from pcic_pci_pd6729_init call the routing code
o Fix some comments out routing on the TI-1130 class (1030, 1130 and 1131)
- Replace printf() with device_printf().
- Separate fc->dev (i.e. fwohci0) and fc->bdev (i.e. firewire0).
- Remove unused firewirebusreg.h.
- Reduce size of descriptor block for asynchronous transmit and
check the number of descriptor when copying from mbuf.
- Skip mbuf whose length is zero. NFS seems passing such mbuf and
some chips generates unrecoverable error.
Jake Burkholder [Sat, 4 Jan 2003 08:50:43 +0000 (08:50 +0000)]
Use a separate macro to generate the name of the sysctl_oid_list that holds
the children of a sysctl node, so that the arguments to the SYSCTL_NODE
macro can themselves be macros. It would be nice to use __CONCAT throughout
this file, but the macros are so large that it quickly becomes unweildly,
(4 nested __CONCATs).
Since Jeffr made the std* functions the default in rev 1.63 of
kern/vfs_defaults.c it is wrong for the individual filesystems to use
the std* functions as that prevents override of the default.
Jake Burkholder [Sat, 4 Jan 2003 08:17:27 +0000 (08:17 +0000)]
Use __CONCAT and __XSTRING when concatenating or stringifying arguments to
the EXEC_SET macro, so that the arguments themselves can be macros.
(Actually __STRING would suffice, instead of __XSTRING, but oh well).
Jake Burkholder [Sat, 4 Jan 2003 07:54:23 +0000 (07:54 +0000)]
Add a sysctl to get the vm protections for the stack of the current process.
On architectures with a non-executable stack, eg sparc64, this is used by
libgcc to determine at runtime if its necessary to enable execute permissions
on a region of the stack which will be used to execute code, allowing the
call to mprotect to be avoided if the kernel is configured to map the stack
executable.
- Propagate suspend/resume to child devices.
- Restore pci config registers after resume.
- Reinitialize and start rx buffers after resume.
- Don't reallocate memory in fwohci_db_init() if the dbch is
already initialized.
- Fix typo.
- Some clean up.
Tim J. Robbins [Sat, 4 Jan 2003 06:07:44 +0000 (06:07 +0000)]
Fix a number of bugs noticed by more extensive testing:
o Call waitpid() if an error occurs after forking the child process
to avoid leaving zombies around.
o Handle the WRDE_DOOFS|WRDE_APPEND combination correctly
o Do not confuse $( substitution with $(( shell arithmetic
(noticed by wollman)
o Handle backslash escaping properly
o Allow $( and ${ to be quoted
Tim J. Robbins [Sat, 4 Jan 2003 01:11:49 +0000 (01:11 +0000)]
Rename UL_GETSIZE to UL_GETFSIZE and UL_SETSIZE to UL_SETFSIZE; these are
the names required by 1003.1-2001. The old names are retained for
source compatibility with FreeBSD 5.0 and will be removed before 6.0.
Julian Elischer [Fri, 3 Jan 2003 20:41:49 +0000 (20:41 +0000)]
Make an explicit flag to indicate that a KSE has a reason to upcall,
and use that flag when there is a kse_wakeup() call. It will probably
be used with signal delivery as well eventually.
Alan Cox [Fri, 3 Jan 2003 19:19:08 +0000 (19:19 +0000)]
Refine the assertion in vm_object_clear_flag() to allow operation on the
kmem_object without Giant. In that case, assert that the kmem_object's
mutex is held.
Mike Barcroft [Fri, 3 Jan 2003 16:44:42 +0000 (16:44 +0000)]
Optimize errstr() by reducing the number of times it walks a string.
As a side effect, it makes the code easier to read and requires less
pointer arithmetic.
Test by: strerror regression test
Submitted by: Tim Kientzle <kientzle@acm.org>
Make struct swblock kernel only, to make vm/swap_pager.h userland includable.
Move struct swdevt from sys/conf.h to the more appropriate vm/swap_pager.h.
Adjust #include use in libkvm and pstat(8) to match.
Sam Leffler [Fri, 3 Jan 2003 06:16:59 +0000 (06:16 +0000)]
MFS: crypto timing support; purge usercrypto sysctl (just don't config
cryptodev or kldunload cryptodev module); crypto statistcs; remove
unused alloctype field from crypto op to offset addition of the
performance time stamp
Tim J. Robbins [Fri, 3 Jan 2003 04:35:04 +0000 (04:35 +0000)]
Protect pidlist with a mutex to avoid a race causing a duplicate free()
when the same pipe FILE is pclosed()'d in different threads, and to avoid
corrupting the linked list when adding or removing items. The symptoms of
the linked list getting corrupted were pclose() either not finding the pipe
on the list, or the list becoming circular and pclose() looping infinitely.