peter [Wed, 29 Dec 1999 18:44:06 +0000 (18:44 +0000)]
Add mailwrapper. It redirects to sendmail by default, but you can
point /usr/sbin/sendmail to any mailer of your choice with the
/etc/mail/mailer.conf config file.
peter [Wed, 29 Dec 1999 18:27:35 +0000 (18:27 +0000)]
As a special case, deal with a missing mailer.conf at install time. I
don't particularly like doing this here, but the alternative (loosing mail)
is worse.
peter [Wed, 29 Dec 1999 18:22:52 +0000 (18:22 +0000)]
Try and sort BIN1 a bit, it was all over the place.
Add mail/mailer.conf (repocopied from /etc/mailer.conf to
/etc/mail/mailer.conf on obrien's request)
sheldonh [Wed, 29 Dec 1999 16:50:08 +0000 (16:50 +0000)]
Back out previous commit and replace with a cleaner solution adapted
from the source attributed below. In particular, this removes a goto
inside a switch and replaces those horrendous ATOI macros with
something acceptable.
More clean-ups to come.
PR: bin/14151
Reported by: Christian Weisgerber <naddy@mips.rhein-neckar.de>
Obtained from: NetBSD
jasone [Wed, 29 Dec 1999 15:44:59 +0000 (15:44 +0000)]
Don't explicitly mmap() red zones at the bottom of thread stacks (except
the initial thread). Instead, just leave an unmapped gap between thread
stacks and make sure that the thread stacks won't grow into these gaps,
simply by limiting the size of the stacks with the 'len' argument to
mmap(). This (if I understand correctly) reduces VM overhead
considerably.
obrien [Wed, 29 Dec 1999 14:42:46 +0000 (14:42 +0000)]
Allow the specification of a prefix for gcc to find all the various bits.
If one wishes to anchor the compiler toolchain tree somewhere other than /,
all one needs to do is set "TOOLS_PREFIX" to a different rooting.
Submitted by: marcel (in a different format and reworked by me)
phk [Wed, 29 Dec 1999 14:39:24 +0000 (14:39 +0000)]
Don't use time_offset as a leaky bucket variable in hardpps(), this
resulted in vastly optimistic offset values reported to userland
(typically a factor 40+ too small). Apart from that, the code had
two sign-bugs.
Apply the hardpps() phase with the right sign with a simply
scaling by integration interval. (This may be too stiff at
long integration intervals, see below).
Allow pps_shiftmax to be reduced again.
Before this, the phase lock in hardpps() were broken, but due to
two bugs mostly cancelling out, it would end up basically working
with a large stochastic component. Now it behaves as one would
expect: smooth and quiet.
It seems that pps_shiftmax above 7..9 somewhere makes the phaselock
too weak to hold onto random walk phase errors from a HP-105 OCXO,
which basically means that it is too weak for real-life use with
such integration times. This is yet to be resolved.
Submitted to: Prof. Dave "NTP" Mills.
Tested by: Terje Mathisen <Terje.Mathisen@hda.hydro.com>
billf [Wed, 29 Dec 1999 13:33:37 +0000 (13:33 +0000)]
Copy Texas Instruments cardbus controllers from pcisupport.c, the pcisupport.c
probes are at the 'chip' level and will get overridden by pcic_p if it is
compiled in. It's still nice to get the better probe message if it's not...
msmith [Wed, 29 Dec 1999 09:54:46 +0000 (09:54 +0000)]
Substantially revamp the way that we determine the amount of memory available
for our use. Use the same search order for BIOS memory size functions
as the kernel will later use.
Allow the loader to use all of the detected physical memory (this will
greatly help people trying to load enormous memory disk images).
More correctly handle running out of memory when loading an object.
Use the end of base memory for the top of the heap, rather than
blindly hoping that there is 384k left.
peter [Wed, 29 Dec 1999 05:37:14 +0000 (05:37 +0000)]
Remove vnode_if.sh - it's a perl script. This stayed around for a while
because bsd.kmod.mk is usually out of sync with kernel source. However
bsd.kmod.mk has to be updated now because of the _KERNEL change so there
is no need to keep this (pre-repo copy) version around.
peter [Wed, 29 Dec 1999 05:07:58 +0000 (05:07 +0000)]
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot). This is consistant with the other
BSD's who made this change quite some time ago. More commits to come.
peter [Wed, 29 Dec 1999 04:46:21 +0000 (04:46 +0000)]
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot). This is consistant with the other
BSD's who made this change quite some time ago. More commits to come.
msmith [Tue, 28 Dec 1999 23:18:33 +0000 (23:18 +0000)]
Make tcp_drain() actually do something. When invoked (usually as a
desperation measure in low-memory situations), walk the tcpbs and
flush the reassembly queues.
This behaviour is currently controlled by the debug.do_tcpdrain sysctl
(defaults to on).
deischen [Tue, 28 Dec 1999 18:12:07 +0000 (18:12 +0000)]
Change stack allocation algorithm to make better use of memory
(it was leaving an unused block). Also protect the global stack
pointer from context changes while fiddling with it.
deischen [Tue, 28 Dec 1999 18:08:09 +0000 (18:08 +0000)]
Don't wakeup threads when there is a process signal and no installed
handler. Thread-to-thread signals (pthread_signal) are treated differently
than process signals; a pthread_signal can wakeup a blocked thread if
a signal handler is not installed for that signal.
bp [Tue, 28 Dec 1999 15:27:39 +0000 (15:27 +0000)]
It is possible that number of sectors specified in the BPB
will exceed FAT capacity. This will lead to kernel panic while other
systems just limit number of clusters.
hoek [Tue, 28 Dec 1999 14:47:00 +0000 (14:47 +0000)]
Avoid the potentially confusing term "a null pointer" and say "the NULL
pointer" instead. The potential confusion arises because the string/*.3
pages use the term "null-terminated string" (which is permissable). Moreover,
this also makes these two manpages more consistent with the other string/*.3
manpages.
phantom [Tue, 28 Dec 1999 12:55:58 +0000 (12:55 +0000)]
Better handling groff failures. If popen(ROFF_COMMAND) returns zero bytes
then handle it as problem. This commit fixes problem with archiving empty files.
PR: gnu/5767
Submitted by: Bill Fenner <fenner@parc.xerox.com>
peter [Tue, 28 Dec 1999 07:30:55 +0000 (07:30 +0000)]
Fix the swap backed vn case - this was broken by my rev 1.128 to
swap_pager.c and related commits.
Essentially swap_pager.c is backed out to before the changes, but
swapdev_vp is converted into a real vnode with just VOP_STRATEGY().
It no longer abuses specfs vnops and no longer needs a dev_t and
/dev/drum (or /dev/swapdev) for the intermediate layer.
This essentially restores the vnode interface as the interface to the
bottom of the swap pager, and vm_swap.c provides a clean vnode interface.
This will need to be revisited when we swap to files (vnodes) - which
is the other reason for keeping the vnode interface between the swap pager
and the swap devices.
hoek [Tue, 28 Dec 1999 05:56:33 +0000 (05:56 +0000)]
Dedocument one of the BUGS listed in the last commit. The bug (needless
calculation of line numbers) never existed and the two bugs that made me
think it existed have been fixed (see recent commits about this date to
linenum.c:r.1.3 and ch.c:r.1.8 fixing broken line-number buffering and
braindead algorithms respectively).
hoek [Tue, 28 Dec 1999 05:47:24 +0000 (05:47 +0000)]
Rather than use an LRU-ordered circular list to store buffered data,
simply keep an index into the last access on the circular list and begin
searches at that point. An LRU list is inappropriate here since the
vast majority of accesses will occur in the same order that the list
is created in. The only case where an LRU is remotely useful here is when
reading from a file and the user is jumping to randomish positions and
constantly returning to some central position. Even for this case it is
such a small optimization as not to be noticed in an interactive program
such as more(1).
This change results in a _tremendously_ noticable speed-up when reading long
files through a pipe (where long = ~200k, machine = ~2.5h single-disk
worldstone).
shin [Tue, 28 Dec 1999 05:37:39 +0000 (05:37 +0000)]
Small bug fix and improvements
(1)added error check of if_nameindex() return value at getaddrinfo().
(2)print out more detailed information when getaddrinfo() error value
is EAI_SYSTEM.(in this case system error num is kept in errno)
(1) is Discovered by: jinmei@kame.net in KAME environment.
green [Tue, 28 Dec 1999 05:32:54 +0000 (05:32 +0000)]
Upgrade to the pam_ssh module, version 1.1..
(From the author:)
Primarily, I have added built-in functions for manipulating the
environment, so putenv() is no longer used. XDM and its variants
should now work without modification. Note that the new code uses
the macros in <sys/queue.h>.
jdp [Tue, 28 Dec 1999 04:38:17 +0000 (04:38 +0000)]
Work around an assert failure in the dynamic linker's default thread
locking functions. If an application loads a shared object with
dlopen() and the shared object has an init function which requires
lazy binding, then _rtld_bind is called when the thread is already
inside the dynamic linker. This leads to a recursive acquisition
of the lock, which I was not expecting -- hence the assert failure.
This work-around makes the default locking functions handle recursive
locking. It is NOT the correct fix -- that should be implemented
at the generic locking level rather than in the default locking
functions. I will implement the correct fix in a future commit.
Since the dllockinit() interface will likely need to change, warn
about that in both the man page and the header file.
wpaul [Tue, 28 Dec 1999 02:01:18 +0000 (02:01 +0000)]
This commit adds device driver support for the ADMtek AN986 Pegasus
USB ethernet chip. Adapters that use this chip include the LinkSys
USB100TX. There are a few others, but I'm not certain of their
availability in the U.S. I used an ADMtek eval board for development.
Note that while the ADMtek chip is a 100Mbps device, you can't really
get 100Mbps speeds over USB. Regardless, this driver uses miibus to
allow speed and duplex mode selection as well as autonegotiation.
Building and kldloading the driver as a module is also supported.
Note that in order to make this driver work, I had to make what some
may consider an ugly hack to sys/dev/usb/usbdi.c. The usbd_transfer()
function will use tsleep() for synchronous transfers that don't complete
right away. This is a problem since there are times when we need to
do sync transfers from an interrupt context (i.e. when reading registers
from the MAC via the control endpoint), where tsleep() us a no-no.
My hack allows the driver to have the code poll for transfer completion
subject to the xfer->timeout timeout rather that calling tsleep().
This hack is controlled by a quirk entry and is only enabled for the
ADMtek device.
Now, I'm sure there are a few of you out there ready to jump on me
and suggest some other approach that doesn't involve a busy wait. The
only solution that might work is to handle the interrupts in a kernel
thread, where you may have something resembling a process context that
makes it okay to tsleep(). This is lovely, except we don't have any
mechanism like that now, and I'm not about to implement such a thing
myself since it's beyond the scope of driver development. (Translation:
I'll be damned if I know how to do it.) If FreeBSD ever aquires such
a mechanism, I'll be glad to revisit the driver to take advantage of
it. In the meantime, I settled for what I perceived to be the solution
that involved the least amount of code changes. In general, the hit
is pretty light.
Also note that my only USB test box has a UHCI controller: I haven't
I don't have a machine with an OHCI controller available.
Highlights:
- Updated usb_quirks.* to add UQ_NO_TSLEEP quirk for ADMtek part.
- Updated usbdevs and regenerated generated files
- Updated HARDWARE.TXT and RELNOTES.TXT files
- Updated sysinstall/device.c and userconfig.c
- Updated kernel configs -- device aue0 is commented out by default
- Updated /sys/conf/files
- Added new kld module directory
imp [Tue, 28 Dec 1999 01:07:16 +0000 (01:07 +0000)]
Two nits and disable isa probe due to its overly agressive claiming of
devices.
o Return ENXIO from sn_isa_probe
o Fix SN_DEBUG printf
o Use IFQ_MAXLEN rather than 8
I'll fix the isa probe when I get access to a real isa attachment
device to test against here in a few days.
hoek [Mon, 27 Dec 1999 20:53:35 +0000 (20:53 +0000)]
Correctly maintain state when manipulating linked lists. This fixes a
bug that prevented the line-number buffer from working correctly. AFAIK
the bug is still present in other derivatives of more(1).
shin [Mon, 27 Dec 1999 18:53:24 +0000 (18:53 +0000)]
Add ipsec_esp option to files which depend on crypto.
Now you can build a kernel which support IPsec message authentication
but don't support message encryption, by defining IPSEC in your kernel
config file and not defining IPSEC_ESP.
bde [Mon, 27 Dec 1999 16:22:20 +0000 (16:22 +0000)]
Fixed some bugs (one serious one: timeouts were claimed to be executed at
spl0) and some bitrot (the not-so-new callout_init/stop/reset functions
were not mentioned; the callout_activate/deactivate/pending macros are
still not mentioned).
kato [Mon, 27 Dec 1999 13:56:54 +0000 (13:56 +0000)]
Synced with sys/i386/isa/clock.c rev 1.148. This is a cosmetic change
because PC-98 doesn't have RTC and RTC related code is included by
`#ifndef PC98' and `#endif'.
bde [Mon, 27 Dec 1999 12:06:11 +0000 (12:06 +0000)]
Synced with Makefile.i386. The following cleanups in Makefile.i386
rev.1.168 should have been committed concurrently:
Fixed some style bugs (always use precisely 1 space after `:' in
dependency specifications).
Removed bogus dependency of ${FULLKERNEL} on ${BEFORE_DEPEND}.
bde [Mon, 27 Dec 1999 10:47:32 +0000 (10:47 +0000)]
This should have been committed with related changes to .c files.
Changed the type used to represent the user stack pointer from `long *'
to `register_t *'. This fixes bugs like misplacement of argc and argv
on the user stack on i386's with 64-bit longs. We still use longs to
represent "words" like argc and argv, and assume that they are on the
stack (and that there is stack). The suword() and fuword() families
should also use register_t.
bde [Mon, 27 Dec 1999 10:42:55 +0000 (10:42 +0000)]
Changed the type used to represent the user stack pointer from `long *'
to `register_t *'. This fixes bugs like misplacement of argc and argv
on the user stack on i386's with 64-bit longs. We still use longs to
represent "words" like argc and argv, and assume that they are on the
stack (and that there is stack). The suword() and fuword() families
should also use register_t.
bde [Mon, 27 Dec 1999 10:22:09 +0000 (10:22 +0000)]
Fixed some type mismatches. p_retval[0] in struct proc has type
register_t, so pointers to it must be passed around as `register_t *',
not as `int *'. The type mismatches were non-benign on alphas, but
the broken code is normally only configured by LINT.
peter [Mon, 27 Dec 1999 09:20:33 +0000 (09:20 +0000)]
Connect up the bootforth glue and compile it, but don't initialize it
at runtime as it has a nasty habit of crashing on the Alpha :-(.
This is being done this way so we have a common starting point for
debugging.
peter [Mon, 27 Dec 1999 08:45:14 +0000 (08:45 +0000)]
Tidy up some loose ends. nullfs_read/write were returning the wrong value.
Fix some ctype problems - isascii() caused a warning if fed an unsigned
char - it's always > 0 and libstand is compiled with -Wall.
Missing prototype/include in printf.c