Martin Blapp [Mon, 19 Jan 2004 22:07:59 +0000 (22:07 +0000)]
If we have a working link again after connectivity loss, or if we need
to renew a lease, contact the dhcp-server directly instead of using
INADDR_BROADCAST all the time. This should fix some brain-dead dhcp
server implementations which give you all the time a new IP if the
lease has not yet expired.
Instead of using ICMP to check if the server is alive, we just check
the return value of sendto() and additionally have a timeout there.
Bill Paul [Mon, 19 Jan 2004 18:56:31 +0000 (18:56 +0000)]
Eliminate some code duplication: since ndis_runq() and ndis_intq() were
basically the same function, compact them into a single loop which can
be used for both threads.
Mike Makonnen [Mon, 19 Jan 2004 15:00:57 +0000 (15:00 +0000)]
Refactor _pthread_mutex_init
o Simplify the logic by removing a lot of unnecesary nesting
o Reduce the amount of local variables
o Zero-out the allocated structure and get rid of
all the unnecessary setting to 0 and NULL;
Refactor _pthread_mutex_destroy
o Simplify the logic by removing a lot of unnecesary nesting
o No need to check pointer that the mutex attributes points
to. Checking passed in pointer is enough.
Mike Makonnen [Mon, 19 Jan 2004 14:51:45 +0000 (14:51 +0000)]
Implement reference counting of read-write locks. This uses
a list in the thread structure to keep track of the locks and
how many times they have been locked. This list is checked
on every lock and unlock. The traversal through the list is
O(n). Most applications don't hold so many locks at once that
this will become a problem. However, if it does become a problem
it might be a good idea to review this once libthr is
off probation and in the optimization cycle.
This fixes:
o deadlock when a thread tries to recursively acquire a
read lock when a writer is waiting on the lock.
o a thread could previously successfully unlock a lock it did not own
o deadlock when a thread tries to acquire a write lock on
a lock it already owns for reading or writing [ this is admittedly
not required by POSIX, but is nice to have ]
It is required to check /etc/rc.d/ldconfig before use, because
${CHROOT} sandbox is sometimes 4.x world. If /etc/rc.d/ldconfig
is not there, run ldconfig(8) directly.
David Schultz [Mon, 19 Jan 2004 08:28:30 +0000 (08:28 +0000)]
Bring the *printf(3) documentation up to date with the code:
- Update and improve the documentation for %[aA]
o Like %[eE], %[aA] may round the result if a precision is specified.
o Grammar police: Fix a split infinitive.
o The FreeBSD implementation does better than the minimum required
by C99 (literal translation of the mantissa). The digit before
the hexadecimal-point is never 0 unless the number itself is 0.
o Clarify that the exponent field represents a decimal exponent of 2.
o Discuss the fact that multiple valid representations are possible.
o Remove the entry in the BUGS section claiming that %[aA] is not
implemented.
- Remove the entry in the BUGS section claiming that the ' flag for
printing thousands separators is unimplemented for floating-point.
- Remove the entry in the BUGS section claiming that the L modifier
reduces the precision to "double" before conversion.
David Schultz [Mon, 19 Jan 2004 05:59:07 +0000 (05:59 +0000)]
Add regression tests for printf's %a/%A formats.
While here, disable some of the long double tests on i386, since
FreeBSD/i386 is the only port that doesn't evaluate long doubles in
their full precision (due to constant folding bugs in gcc).
David Schultz [Mon, 19 Jan 2004 05:30:56 +0000 (05:30 +0000)]
Add regression tests for some of the bugs recently discovered in the
vendor's strtod() implementation.
While here, disable some of the long double tests on i386, since
FreeBSD/i386 is the only port that doesn't evaluate long doubles in
their full precision (due to constant folding bugs in gcc).
Atsushi Onoe [Mon, 19 Jan 2004 05:25:43 +0000 (05:25 +0000)]
Change WI_RID_SCAN_RES compatibility interface to return the result after
active scan is completed just as WI_RID_READ_APS.
This fixes wicontrol -L for ath(4) and awi(4) to have results even if
the driver cannot associate any APs.
Bruce Evans [Mon, 19 Jan 2004 02:18:34 +0000 (02:18 +0000)]
Fixed misplacement and bitrot in the cy driver's configuration in
rev.1.1040. It is a miscellaneous isa+pci driver, but came back
described as a pci-only driver and placed in an i4b pci subsection
after its migration to /sys/conf/NOTES. Put it back where it used to
be, fully unsorted in the `Miscellaneous hardware' section. Reduced
nearby disorder in this section by moving configuration of the digi
driver to where it was for the old digiboard drivers, so that the
order at least matches the order in the table of contents.
Bruce Evans [Mon, 19 Jan 2004 01:44:06 +0000 (01:44 +0000)]
Removed some garbage comments:
- references to removed math emulators for NPX_DEBUG
- header for the null set of mandatory devices
- reference to the removed (and bogus when it existed) sysctl
kern.timecounter.method.
Bruce Evans [Mon, 19 Jan 2004 01:07:18 +0000 (01:07 +0000)]
FIxed unsorting in previous commit (description of CPU_ENABLE_TCC).
FIxed some nearby disorder (descriptions of CPU_BLUELIGHTNING_3X,
CPU_DIRECT_MAPPED_CACHE, CPU_DISABLE_CMPXCHG, CPU_DISABLE_SSE,
CPU_ELAN_XTAL and CPU_SOEKRIS, and options for all of these except
CPU_DIRECT_MAPPED_CACHE).
Yaroslav Tykhiy [Sun, 18 Jan 2004 23:42:28 +0000 (23:42 +0000)]
Reformat the list of essential mbuf fields according
to the nice style used in ifnet(9).
This includes specifying field types, starting descriptions
with a capital letter, and ending them with a full stop.
Improve the language a bit, as well.
Bill Paul [Sun, 18 Jan 2004 22:57:11 +0000 (22:57 +0000)]
Convert from using taskqueue_swi to using private kernel threads. The
problem with using taskqueue_swi is that some of the things we defer
into threads might block for up to several seconds. This is an unfriendly
thing to do to taskqueue_swi, since it is assumed the taskqueue threads
will execute fairly quickly once a task is submitted. Reorganized the
locking in if_ndis.c in the process.
Cleaned up ndis_write_cfg() and ndis_decode_parm() a little.
David E. O'Brien [Sun, 18 Jan 2004 22:14:23 +0000 (22:14 +0000)]
Remove verbage about -O2 producing bad code on Alpha. By all accounts
GCC 3.3 -O2 produces correct code on Alpha. However, note that FreeBSD
has alias bugs that make -O2 produce bad code on all(most?) platforms.
Also don't tell people we don't want -O2 related bug reports, we do -- if
they contain patches.
Remove unused includes. Make it WARNS=6 friendly. Concerning bin/2442, make
a new function dup_shell() to replace ok_shell() and make it unconditionnally
strdup() its result to make the caller's code simplier. Change ok_shell() to
just return an integer value suitable for tests (it was used mainly for that
purpose). Do not use strdup() in the caller's code but rely on dup_shell()
that will do the job for us.
Maxim Sobolev [Sun, 18 Jan 2004 21:18:00 +0000 (21:18 +0000)]
Add new CPU_ENABLE_TCC option, from NOTES:
CPU_ENABLE_TCC enables Thermal Control Circuitry (TCC) found in some
Pentium(tm) 4 and (possibly) later CPUs. When enabled and detected,
TCC allows to restrict power consumption by using machdep.cpuperf*
sysctls. This operates independently of SpeedStep and is useful on
systems where other mechanisms such as apm(4) or acpi(4) don't work.
Given the fact that many, even modern, notebooks don't work properly
with Intel ACPI, this is indeed very useful option for notebook owners.
Maxim Sobolev [Sun, 18 Jan 2004 21:06:56 +0000 (21:06 +0000)]
Add new CPU_ENABLE_TCC option, from NOTES:
CPU_ENABLE_TCC enables Thermal Control Circuitry (TCC) found in some
Pentium(tm) 4 and (possibly) later CPUs. When enabled and detected,
TCC allows to restrict power consumption by using machdep.cpuperf*
sysctls. This operates independently of SpeedStep and is useful on
systems where other mechanisms such as apm(4) or acpi(4) don't work.
Given the fact that many, even modern, notebooks don't work properly
with Intel ACPI, this is indeed very useful option for notebook owners.
Yaroslav Tykhiy [Sun, 18 Jan 2004 19:29:04 +0000 (19:29 +0000)]
A network interface driver can support IFCAP_VLAN_MTU only,
without IFCAP_VLAN_HWTAGGING. The previous version of the
leading comment in this file could lead to the opposite conclusion.
Ruslan Ermilov [Sun, 18 Jan 2004 14:58:07 +0000 (14:58 +0000)]
Deal better with the crypto version of the PAM library that goes
on the release media -- only put what is different in the crypto
version compared to the base version. This reduces PAM entries
in /usr/lib in the "crypto" distribution to:
The libpam.so* is still redundant (it is identical to the "base"
version), but we can't set DISTRIBUTION differently for libpam.a
and libpam.so.
(The removal of libpam.so* from the crypto distribution could be
addressed by the release/scripts/crypto-make.sh script, but then
we'd also need to remove redundant PAM headers, and I'm not sure
this is worth a hassle.)
ubd_devinfo_vp() is getting an empty string from its usbd_get_string()
call on the vendor, instead of NULL. This means usb_knowndevs in not
consulted.
Add lines between grabbing those char *s and the USBVERBOSE ifdef to
set vendor to NULL if it is the empty string (similarly for product).
This causes vendor to be filled-out, although the product name read
overrules usb_knowndevs (this appears to be a conscience decision made
by the NetBSD folks):
David Schultz [Sun, 18 Jan 2004 08:28:32 +0000 (08:28 +0000)]
Fix some bugs affecting the %a and %A format specifiers. Since
these are not fully implemented and ifdef'd out, the bugs have
never manifested themselves. Specifically:
- Fix a memory leak in the case where %a follows another
floating-point format.
- Make the %a/%A code behave like %e/%E with respect to
precision.
- It is no longer valid to assume that '-' and '0x' are
mutually exclusive.
- Address other minor issues.
David Schultz [Sun, 18 Jan 2004 08:05:21 +0000 (08:05 +0000)]
Add a delta accidentally omitted from the previous commit:
Define DBL_MANH_SIZE and DBL_MANL_SIZE to be the sizes of the
high and low words of the mantissa in bits, respectively.
Ruslan Ermilov [Sun, 18 Jan 2004 07:44:53 +0000 (07:44 +0000)]
Added two utility targets "secure" and "insecure", analogous to
"kerberize" and "dekerberize" in kerberos5/Makefile. These can
be used to recompile bits with optional crypto support with and
without crypto, respectively.
Warner Losh [Sat, 17 Jan 2004 21:54:04 +0000 (21:54 +0000)]
It appears that the changes in the resources allocated is causing much
pain and suffering. Attempt to back it out by removing the 'if the
requested range is larger than the window, clip to the window' code.
This is a band-aide until the issues are better understood and the
issues with the lazy allocation patches are resolved.
Ruslan Ermilov [Sat, 17 Jan 2004 19:22:36 +0000 (19:22 +0000)]
Once upon a time we had both "crypto" and "krb5" distributions,
and rebuilt some bits with crypto but without Kerberos support
(most notably SSH) during "make release", to put them into the
"crypto" distribution.
Now that we don't ship the separate "krb5" distribution anymore
(it's now part of the "crypto" distribuion), don't waste time
recompiling SSH bits without crypto and without Kerberos support
in an attempt to put them in the "base" distribution -- it just
doesn't work as SSH always uses crypto code.
We avoid this by not rebuilding KPROGS from kerberos5/Makefile in
release/Makefile and adding "libpam" to SPROGS in secure/Makefile
to ensure it's still rebuilt without crypto support for the "base"
distribution. (Disabling crypto (NOCRYPT) also disables building
of Kerberos-related PAM modules, and it's OK to depend on this.)
This should be a no-op change saving some "make release" time.
Ruslan Ermilov [Sat, 17 Jan 2004 18:51:55 +0000 (18:51 +0000)]
Guess better the source for object files in case .depend file is
missing and there are multiple choices using multiple inference
(suffix transformation) rules.
This is known to fix compilation of s_log1p.o in lib/msun on i386,
as otherwise it attempted to use s_log1p.S as the source (which is
marked broken) instead of legal s_log1p.c which is in CFLAGS. The
normal case where .depend file exists is not affected.