PERFORCE change 36469 for review
Marcel Moolenaar
marcel at FreeBSD.org
Tue Aug 19 22:44:48 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=36469
Change 36469 by marcel at marcel_nfs on 2003/08/19 22:43:42
IFC @36468
Affected files ...
.. //depot/projects/ia64/UPDATING#47 integrate
.. //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.alpha#8 integrate
.. //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.amd64#4 integrate
.. //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.i386#7 integrate
.. //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.ia64#8 integrate
.. //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.powerpc#8 integrate
.. //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.sparc64#8 integrate
.. //depot/projects/ia64/include/unistd.h#19 integrate
.. //depot/projects/ia64/lib/libc/Makefile#10 integrate
.. //depot/projects/ia64/lib/libc/gen/gethostname.3#4 integrate
.. //depot/projects/ia64/lib/libc/gen/gethostname.c#3 integrate
.. //depot/projects/ia64/lib/libfetch/ftp.c#12 integrate
.. //depot/projects/ia64/lib/libpthread/thread/thr_spec.c#4 integrate
.. //depot/projects/ia64/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#62 integrate
.. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#117 integrate
.. //depot/projects/ia64/sys/amd64/amd64/pmap.c#20 integrate
.. //depot/projects/ia64/sys/dev/aac/aac.c#28 integrate
.. //depot/projects/ia64/sys/dev/aac/aac_cam.c#10 integrate
.. //depot/projects/ia64/sys/dev/aac/aac_disk.c#15 integrate
.. //depot/projects/ia64/sys/dev/an/if_aironet_ieee.h#5 integrate
.. //depot/projects/ia64/sys/dev/an/if_an.c#24 integrate
.. //depot/projects/ia64/sys/dev/an/if_an_pci.c#11 integrate
.. //depot/projects/ia64/sys/dev/an/if_anreg.h#8 integrate
.. //depot/projects/ia64/sys/dev/ath/if_ath.c#7 integrate
.. //depot/projects/ia64/sys/dev/ath/if_athioctl.h#2 integrate
.. //depot/projects/ia64/sys/dev/ath/if_athvar.h#4 integrate
.. //depot/projects/ia64/sys/dev/bge/if_bge.c#39 integrate
.. //depot/projects/ia64/sys/dev/bge/if_bgereg.h#21 integrate
.. //depot/projects/ia64/sys/dev/ep/if_ep.c#10 integrate
.. //depot/projects/ia64/sys/dev/firewire/firewire.h#12 integrate
.. //depot/projects/ia64/sys/dev/firewire/fwohci.c#33 integrate
.. //depot/projects/ia64/sys/dev/firewire/fwohcireg.h#11 integrate
.. //depot/projects/ia64/sys/dev/firewire/if_fwe.c#18 integrate
.. //depot/projects/ia64/sys/dev/hifn/hifn7751.c#13 integrate
.. //depot/projects/ia64/sys/dev/mii/brgphy.c#15 integrate
.. //depot/projects/ia64/sys/dev/patm/if_patm_attach.c#2 integrate
.. //depot/projects/ia64/sys/dev/rndtest/rndtest.c#3 integrate
.. //depot/projects/ia64/sys/dev/safe/safe.c#3 integrate
.. //depot/projects/ia64/sys/dev/twe/twe.c#8 integrate
.. //depot/projects/ia64/sys/dev/ubsec/ubsec.c#19 integrate
.. //depot/projects/ia64/sys/dev/wi/if_wi.c#46 integrate
.. //depot/projects/ia64/sys/fs/pseudofs/pseudofs_vnops.c#20 integrate
.. //depot/projects/ia64/sys/i386/i386/busdma_machdep.c#26 integrate
.. //depot/projects/ia64/sys/i386/i386/pmap.c#58 integrate
.. //depot/projects/ia64/sys/ia64/ia64/trap.c#63 integrate
.. //depot/projects/ia64/sys/ia64/include/cpu.h#22 integrate
.. //depot/projects/ia64/sys/kern/init_main.c#36 integrate
.. //depot/projects/ia64/sys/kern/kern_fork.c#45 integrate
.. //depot/projects/ia64/sys/kern/kern_synch.c#44 integrate
.. //depot/projects/ia64/sys/kern/kern_tc.c#28 integrate
.. //depot/projects/ia64/sys/kern/kern_thread.c#66 integrate
.. //depot/projects/ia64/sys/kern/sched_4bsd.c#15 integrate
.. //depot/projects/ia64/sys/kern/sched_ule.c#23 integrate
.. //depot/projects/ia64/sys/net/bpf.c#22 integrate
.. //depot/projects/ia64/sys/net/if_ethersubr.c#32 integrate
.. //depot/projects/ia64/sys/net/radix.h#7 integrate
.. //depot/projects/ia64/sys/net80211/ieee80211_input.c#5 integrate
.. //depot/projects/ia64/sys/net80211/ieee80211_node.c#6 integrate
.. //depot/projects/ia64/sys/net80211/ieee80211_node.h#5 integrate
.. //depot/projects/ia64/sys/net80211/ieee80211_output.c#4 integrate
.. //depot/projects/ia64/sys/net80211/ieee80211_proto.h#4 integrate
.. //depot/projects/ia64/sys/net80211/ieee80211_var.h#4 integrate
.. //depot/projects/ia64/sys/netinet/ip_mroute.c#22 integrate
.. //depot/projects/ia64/sys/netinet/tcp_syncache.c#24 integrate
.. //depot/projects/ia64/sys/netinet/udp_usrreq.c#22 integrate
.. //depot/projects/ia64/sys/pci/if_dc.c#44 integrate
.. //depot/projects/ia64/sys/pci/if_sis.c#27 integrate
.. //depot/projects/ia64/sys/sparc64/conf/GENERIC#38 integrate
.. //depot/projects/ia64/sys/sys/malloc.h#20 integrate
.. //depot/projects/ia64/usr.sbin/ancontrol/ancontrol.c#6 integrate
.. //depot/projects/ia64/usr.sbin/sysinstall/Makefile#9 integrate
.. //depot/projects/ia64/usr.sbin/sysinstall/disks.c#16 integrate
.. //depot/projects/ia64/usr.sbin/sysinstall/dispatch.c#6 integrate
.. //depot/projects/ia64/usr.sbin/sysinstall/dist.c#23 integrate
.. //depot/projects/ia64/usr.sbin/sysinstall/dist.h#8 integrate
.. //depot/projects/ia64/usr.sbin/sysinstall/install.c#22 integrate
.. //depot/projects/ia64/usr.sbin/sysinstall/menus.c#32 integrate
.. //depot/projects/ia64/usr.sbin/sysinstall/sysinstall.h#23 integrate
Differences ...
==== //depot/projects/ia64/UPDATING#47 (text+ko) ====
@@ -15,7 +15,12 @@
related kernel options, INVARIANTS, malloc debugging flags
in userland, and various verbose features in the kernel. Many
developers choose to disable these features on build machines
- to maximize performance.
+
+20030819:
+ The OFW_NEWPCI option has been turned on in the Sparc64 GENERIC kernel.
+ Among other things, this changes the device enumeration to be
+ closer to Solaris. Be aware that, this can even cause the machine
+ to not boot without manual intervention before the fstab is adjusted.
20030728:
All current USB and Firewire quirks in da(4) have been deprecated
@@ -1333,4 +1338,4 @@
Contact Warner Losh if you have any questions about your use of
this document.
-$FreeBSD: src/UPDATING,v 1.260 2003/07/29 04:40:33 njl Exp $
+$FreeBSD: src/UPDATING,v 1.261 2003/08/20 01:52:30 obrien Exp $
==== //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.alpha#8 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.alpha,v 1.19 2003/08/17 21:45:26 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.alpha,v 1.20 2003/08/19 17:30:46 obrien Exp $
TARGET_TUPLE?= alpha-unknown-freebsd
@@ -7,7 +7,7 @@
HOST= ${TARGET_TUPLE}
CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
-_alpha_path= \"${TOOLS_PREFIX}/lib:${TOOLS_PREFIX}/usr/lib\"
+_alpha_path= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
.else
_alpha_path= \"/usr/cross/alpha-freebsd/usr/lib\"
.endif
==== //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.amd64#4 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.amd64,v 1.4 2003/08/17 21:45:26 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.amd64,v 1.5 2003/08/19 17:30:46 obrien Exp $
TARGET_TUPLE?= x86_64-obrien-freebsd
@@ -6,7 +6,7 @@
HOST= ${TARGET_TUPLE}
CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
-_amd64_path= \"${TOOLS_PREFIX}/lib:${TOOLS_PREFIX}/usr/lib\"
+_amd64_path= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
EMS+= ${NATIVE_EMULATION}
LDSCRIPTS+= ${NATIVE_EMULATION}.x ${NATIVE_EMULATION}.xbn ${NATIVE_EMULATION}.xn ${NATIVE_EMULATION}.xr \
${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc
==== //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.i386#7 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.i386,v 1.19 2003/08/17 21:45:26 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.i386,v 1.20 2003/08/19 17:30:46 obrien Exp $
TARGET_TUPLE?= i386-unknown-freebsd
@@ -7,7 +7,7 @@
HOST= ${TARGET_TUPLE}
CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
-_i386_path= \"${TOOLS_PREFIX}/lib:${TOOLS_PREFIX}/usr/lib\"
+_i386_path= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
.else
_i386_path= \"/usr/cross/i386-freebsd/usr/lib\"
.endif
==== //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.ia64#8 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.ia64,v 1.6 2003/08/17 21:45:26 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.ia64,v 1.7 2003/08/19 17:30:46 obrien Exp $
TARGET_TUPLE?= ia64-unknown-freebsd
@@ -7,7 +7,7 @@
HOST= ${TARGET_TUPLE}
CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
-_ia64_path= \"${TOOLS_PREFIX}/lib:${TOOLS_PREFIX}/usr/lib\"
+_ia64_path= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
.else
_ia64_path= \"/usr/cross/ia64-freebsd/usr/lib\"
.endif
==== //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.powerpc#8 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.powerpc,v 1.13 2003/08/17 21:45:26 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.powerpc,v 1.14 2003/08/19 17:30:46 obrien Exp $
TARGET_TUPLE?= powerpc-unknown-freebsd
@@ -7,7 +7,7 @@
HOST= ${TARGET_TUPLE}
CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
-_powerpc_path= \"${TOOLS_PREFIX}/lib:${TOOLS_PREFIX}/usr/lib\"
+_powerpc_path= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
.else
_powerpc_path= \"/usr/cross/powerpc-freebsd/usr/lib\"
.endif
==== //depot/projects/ia64/gnu/usr.bin/binutils/ld/Makefile.sparc64#8 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.sparc64,v 1.13 2003/08/17 21:45:26 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile.sparc64,v 1.14 2003/08/19 17:30:46 obrien Exp $
TARGET_TUPLE?= sparc64-unknown-freebsd
@@ -7,7 +7,7 @@
HOST= ${TARGET_TUPLE}
CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
-_sparc_path= \"${TOOLS_PREFIX}/lib:${TOOLS_PREFIX}/usr/lib\"
+_sparc_path= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
.else
_sparc_path= \"/usr/cross/sparc-freebsd/usr/lib\"
.endif
==== //depot/projects/ia64/include/unistd.h#19 (text+ko) ====
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)unistd.h 8.12 (Berkeley) 4/27/95
- * $FreeBSD: src/include/unistd.h,v 1.68 2003/07/01 12:09:06 bde Exp $
+ * $FreeBSD: src/include/unistd.h,v 1.69 2003/08/19 20:39:49 wollman Exp $
*/
#ifndef _UNISTD_H_
@@ -404,7 +404,7 @@
int readlink(const char *, char *, int);
#endif
#if __POSIX_VISIBLE >= 200112
-int gethostname(char *, int /* socklen_t */);
+int gethostname(char *, size_t);
int setegid(gid_t);
int seteuid(uid_t);
#endif
==== //depot/projects/ia64/lib/libc/Makefile#10 (text+ko) ====
@@ -1,5 +1,5 @@
# @(#)Makefile 8.2 (Berkeley) 2/3/94
-# $FreeBSD: src/lib/libc/Makefile,v 1.43 2003/08/18 15:25:38 obrien Exp $
+# $FreeBSD: src/lib/libc/Makefile,v 1.44 2003/08/19 23:01:46 wollman Exp $
#
# All library objects contain FreeBSD revision strings by default; they may be
# excluded as a space-saving measure. To produce a library that does
@@ -9,6 +9,7 @@
# (for system call stubs) to CFLAGS below. -DSYSLIBC_SCCS affects just the
# system call stubs.
LIB=c
+# If you bump SHLIB_MAJOR, remove kluge from gen/gethostname.c.
SHLIB_MAJOR= 5
SHLIBDIR?= /lib
CFLAGS+=-I${.CURDIR}/include -I${.CURDIR}/../../include
==== //depot/projects/ia64/lib/libc/gen/gethostname.3#4 (text+ko) ====
@@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)gethostname.3 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/gen/gethostname.3,v 1.13 2002/12/19 09:40:21 ru Exp $
+.\" $FreeBSD: src/lib/libc/gen/gethostname.3,v 1.14 2003/08/19 20:38:44 wollman Exp $
.\"
-.Dd June 4, 1993
+.Dd August 18, 2003
.Dt GETHOSTNAME 3
.Os
.Sh NAME
@@ -44,7 +44,7 @@
.Sh SYNOPSIS
.In unistd.h
.Ft int
-.Fn gethostname "char *name" "int namelen"
+.Fn gethostname "char *name" "size_t namelen"
.Ft int
.Fn sethostname "const char *name" "int namelen"
.Sh DESCRIPTION
@@ -59,8 +59,8 @@
argument
specifies the size of the
.Fa name
-array. The returned name is null-terminated unless insufficient
-space is provided.
+array.
+The returned name is null-terminated unless insufficient space is provided.
.Pp
The
.Fn sethostname
@@ -71,6 +71,10 @@
.Fa namelen .
This call is restricted to the super-user and
is normally used only when the system is bootstrapped.
+.Pp
+Host names are limited to
+.Brq Dv HOST_NAME_MAX
+characters, not including the trailing null, currently 255.
.Sh RETURN VALUES
.Rv -std
.Sh ERRORS
@@ -83,22 +87,48 @@
.Fa namelen
argument gave an
invalid address.
+.It Bq Er ENAMETOOLONG
+The current host name is longer than
+.Fa namelen . (For
+.Fn gethostname
+only.)
.It Bq Er EPERM
-The caller tried to set the hostname and was not the super-user.
+The caller tried to set the host name and was not the super-user.
.El
.Sh SEE ALSO
-.Xr gethostid 3 ,
+.Xr sysconf 3 ,
.Xr sysctl 3
-.Sh BUGS
-Host names are limited to
-.Dv MAXHOSTNAMELEN
-(from
-.Ao Pa sys/param.h Ac )
-characters, currently 256.
-This includes the trailing
-.Dv NUL .
+.Sh STANDARDS
+The
+.Fn gethostname
+function conforms to
+.St -p1003.1-2001 .
+Callers should be aware that
+.Brq Dv HOST_NAME_MAX
+may be variable or infinite, but is guaranteed to be no less than
+.Brq Dv _POSIX_HOST_NAME_MAX .
+On older systems, this limit was defined in the non-standard header
+.Aq Pa sys/param.h
+as
+.Dv MAXHOSTNAMELEN ,
+and counted the terminating null.
+The
+.Fn sethostname
+function and the error returns for
+.Fn gethostname
+are not standardized.
.Sh HISTORY
The
.Fn gethostname
function appeared in
.Bx 4.2 .
+The
+.Fa namelen
+argument to
+.Fn gethostname
+was changed to
+.Vt size_t
+in
+.Fx 5.2
+for alignment with
+.St -p1003.1-2001 .
==== //depot/projects/ia64/lib/libc/gen/gethostname.c#3 (text+ko) ====
@@ -35,23 +35,29 @@
static char sccsid[] = "@(#)gethostname.c 8.1 (Berkeley) 6/4/93";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/gen/gethostname.c,v 1.3 2002/03/22 21:52:05 obrien Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/gen/gethostname.c,v 1.5 2003/08/19 23:01:46 wollman Exp $");
#include <sys/param.h>
#include <sys/sysctl.h>
+#include <errno.h>
+
int
gethostname(name, namelen)
char *name;
- int namelen;
+ size_t namelen;
{
int mib[2];
- size_t size;
+
+ /* Kluge to avoid ABI breakage. */
+ namelen = (int)namelen;
mib[0] = CTL_KERN;
mib[1] = KERN_HOSTNAME;
- size = namelen;
- if (sysctl(mib, 2, name, &size, NULL, 0) == -1)
+ if (sysctl(mib, 2, name, &namelen, NULL, 0) == -1) {
+ if (errno == ENOMEM)
+ errno = ENAMETOOLONG;
return (-1);
+ }
return (0);
}
==== //depot/projects/ia64/lib/libfetch/ftp.c#12 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.87 2003/03/19 21:39:00 mtm Exp $");
+__FBSDID("$FreeBSD: src/lib/libfetch/ftp.c,v 1.88 2003/08/19 11:43:11 des Exp $");
/*
* Portions of this code were taken from or based on ftpio.c:
@@ -689,7 +689,7 @@
if (verbose)
_fetch_info("initiating transfer");
e = _ftp_cmd(conn, "%s %s", oper, _ftp_filename(file));
- if (e != FTP_OPEN_DATA_CONNECTION)
+ if (e != FTP_CONNECTION_ALREADY_OPEN && e != FTP_OPEN_DATA_CONNECTION)
goto ouch;
/* accept the incoming connection and go to town */
==== //depot/projects/ia64/lib/libpthread/thread/thr_spec.c#4 (text+ko) ====
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libpthread/thread/thr_spec.c,v 1.20 2003/08/16 05:19:00 davidxu Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_spec.c,v 1.21 2003/08/20 02:34:14 deischen Exp $
*/
#include <signal.h>
#include <stdlib.h>
@@ -107,13 +107,18 @@
_thread_cleanupspecific(void)
{
struct pthread *curthread = _get_curthread();
+ void (*destructor)( void *);
void *data = NULL;
int key;
- void (*destructor)( void *);
+ int i;
+
+ if (curthread->specific == NULL)
+ return;
- if (curthread->specific != NULL) {
- /* Lock the key table: */
- THR_LOCK_ACQUIRE(curthread, &_keytable_lock);
+ /* Lock the key table: */
+ THR_LOCK_ACQUIRE(curthread, &_keytable_lock);
+ for (i = 0; (i < PTHREAD_DESTRUCTOR_ITERATIONS) &&
+ (curthread->specific_data_count > 0); i++) {
for (key = 0; (key < PTHREAD_KEYS_MAX) &&
(curthread->specific_data_count > 0); key++) {
destructor = NULL;
@@ -122,7 +127,8 @@
(curthread->specific[key].data != NULL)) {
if (curthread->specific[key].seqno ==
key_table[key].seqno) {
- data = (void *)curthread->specific[key].data;
+ data = (void *)
+ curthread->specific[key].data;
destructor = key_table[key].destructor;
}
curthread->specific[key].data = NULL;
@@ -143,10 +149,14 @@
THR_LOCK_ACQUIRE(curthread, &_keytable_lock);
}
}
- THR_LOCK_RELEASE(curthread, &_keytable_lock);
- free(curthread->specific);
- curthread->specific = NULL;
}
+ THR_LOCK_RELEASE(curthread, &_keytable_lock);
+ free(curthread->specific);
+ curthread->specific = NULL;
+ if (curthread->specific_data_count > 0)
+ stderr_debug("Thread %p has exited with leftover "
+ "thread-specific data after %d destructor iterations\n",
+ curthread, PTHREAD_DESTRUCTOR_ITERATIONS);
}
static inline struct pthread_specific_elem *
@@ -179,10 +189,8 @@
if (pthread->specific[key].data == NULL) {
if (value != NULL)
pthread->specific_data_count++;
- } else {
- if (value == NULL)
- pthread->specific_data_count--;
- }
+ } else if (value == NULL)
+ pthread->specific_data_count--;
pthread->specific[key].data = value;
pthread->specific[key].seqno =
key_table[key].seqno;
==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#62 (text+ko) ====
@@ -31,7 +31,7 @@
<sect1 id="support">
<sect1info>
- <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.170 2003/08/19 05:21:25 bmah Exp $</pubdate>
+ <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.171 2003/08/19 15:34:06 bmah Exp $</pubdate>
</sect1info>
<title>Supported Devices</title>
@@ -43,7 +43,18 @@
<para>Where possible, the drivers applicable to each device or class
of devices is listed. If the driver in question has a manual page
- in the &os; base distribution (most should), it is referenced here.</para>
+ in the &os; base distribution (most should), it is referenced here.
+ Information on specific models of supported devices, controllers,
+ etc. can be found in the manual pages.</para>
+
+ <note>
+ <para>Lists of specific, supported devices are gradually being
+ removed from this document in order to reduce the amount of
+ duplicated (and potentially out-of-date) information contained
+ within. When this process is complete, the manual page for each
+ driver should be consulted for the authoritative list of devices
+ supported that particular driver.</para>
+ </note>
<sect2>
<title>Disk Controllers</title>
==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#117 (text+ko) ====
@@ -3,7 +3,7 @@
<corpauthor>The FreeBSD Project</corpauthor>
- <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.614 2003/08/12 00:51:28 bmah Exp $</pubdate>
+ <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.615 2003/08/19 16:03:01 bmah Exp $</pubdate>
<copyright>
<year>2000</year>
@@ -396,12 +396,22 @@
statically-linked <quote>crunched</quote> binary that lives in
<filename>/rescue</filename>. This functionality is similar to
the <filename>/stand</filename> directory installed by
- &man.sysinstall.8;, but it <filename>/rescue</filename> includes
- more functionality and is updated by as part of
- buildworld/installworld operations. More details can be found in
+ &man.sysinstall.8;, but <filename>/rescue</filename> includes
+ more functionality and is updated as part of
+ <literal>buildworld</literal>/<literal>installworld</literal> operations. More details can be found in
&man.rescue.8;.
</para>
+ <para>It is now possible to build <filename>/bin</filename> and
+ <filename>/sbin</filename> directories containing
+ dynamically-linked executables. This feature brings support for
+ loadable PAM and NSS modules to base system utilities located in
+ those directories. It also reduces the storage requirements for
+ the root filesystem due to the use of shared libraries. This
+ feature can be enabled in a <literal>buildworld</literal> by
+ defining the Makefile variable
+ <varname>WITH_DYNAMICROOT</varname>.</para>
+
</sect2>
<sect2 id="contrib">
==== //depot/projects/ia64/sys/amd64/amd64/pmap.c#20 (text+ko) ====
@@ -73,7 +73,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.432 2003/08/17 04:48:21 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.433 2003/08/20 05:09:55 alc Exp $");
/*
* Manages physical address maps.
@@ -1016,12 +1016,14 @@
/*
* allocate the page directory page
*/
+ VM_OBJECT_LOCK(pmap->pm_pteobj);
pml4pg = vm_page_grab(pmap->pm_pteobj, NUPDE + NUPDPE + NUPML4E,
VM_ALLOC_NORMAL | VM_ALLOC_RETRY | VM_ALLOC_WIRED | VM_ALLOC_ZERO);
vm_page_lock_queues();
vm_page_flag_clear(pml4pg, PG_BUSY);
pml4pg->valid = VM_PAGE_BITS_ALL;
vm_page_unlock_queues();
+ VM_OBJECT_UNLOCK(pmap->pm_pteobj);
pmap->pm_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pg));
@@ -1067,12 +1069,17 @@
vm_pindex_t ptepindex;
{
vm_page_t m, pdppg, pdpg;
+ int is_object_locked;
/*
* Find or fabricate a new pagetable page
*/
+ if (!(is_object_locked = VM_OBJECT_LOCKED(pmap->pm_pteobj)))
+ VM_OBJECT_LOCK(pmap->pm_pteobj);
m = vm_page_grab(pmap->pm_pteobj, ptepindex,
VM_ALLOC_WIRED | VM_ALLOC_ZERO | VM_ALLOC_RETRY);
+ if ((m->flags & PG_ZERO) == 0)
+ pmap_zero_page(m);
KASSERT(m->queue == PQ_NONE,
("_pmap_allocpte: %p->queue != PQ_NONE", m));
@@ -1161,17 +1168,13 @@
*pd = VM_PAGE_TO_PHYS(m) | PG_U | PG_RW | PG_V | PG_A | PG_M;
}
- /*
- * Try to use the new mapping, but if we cannot, then
- * do it with the routine that maps the page explicitly.
- */
- if ((m->flags & PG_ZERO) == 0)
- pmap_zero_page(m);
vm_page_lock_queues();
m->valid = VM_PAGE_BITS_ALL;
vm_page_flag_clear(m, PG_ZERO);
vm_page_wakeup(m);
vm_page_unlock_queues();
+ if (!is_object_locked)
+ VM_OBJECT_UNLOCK(pmap->pm_pteobj);
return m;
}
==== //depot/projects/ia64/sys/dev/aac/aac.c#28 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/aac/aac.c,v 1.73 2003/07/09 21:16:23 scottl Exp $
+ * $FreeBSD: src/sys/dev/aac/aac.c,v 1.74 2003/08/19 21:31:45 scottl Exp $
*/
/*
@@ -1113,7 +1113,6 @@
* intermediate stage may have destroyed them. They're left
* initialised here for debugging purposes only.
*/
- cm->cm_fib->Header.SenderFibAddress = (u_int32_t)cm->cm_fib;
cm->cm_fib->Header.ReceiverFibAddress = (u_int32_t)cm->cm_fibphys;
cm->cm_fib->Header.SenderData = 0;
@@ -1408,8 +1407,7 @@
{
struct aac_adapter_init *ip;
time_t then;
- u_int32_t code;
- u_int8_t *qaddr;
+ u_int32_t code, qoffset;
int error;
debug_called(1);
@@ -1581,12 +1579,10 @@
* list manipulation functions which 'know' the size of each list by
* virtue of a table.
*/
- qaddr = &sc->aac_common->ac_qbuf[0] + AAC_QUEUE_ALIGN;
- qaddr -= (u_int32_t)qaddr % AAC_QUEUE_ALIGN;
- sc->aac_queues = (struct aac_queue_table *)qaddr;
- ip->CommHeaderAddress = sc->aac_common_busaddr +
- ((u_int32_t)sc->aac_queues -
- (u_int32_t)sc->aac_common);
+ qoffset = offsetof(struct aac_common, ac_qbuf) + AAC_QUEUE_ALIGN;
+ qoffset &= (AAC_QUEUE_ALIGN - 1);
+ sc->aac_queues = (struct aac_queue_table *)((uintptr_t)sc->aac_common + qoffset);
+ ip->CommHeaderAddress = sc->aac_common_busaddr + qoffset;
sc->aac_queues->qt_qindex[AAC_HOST_NORM_CMD_QUEUE][AAC_PRODUCER_INDEX] =
AAC_HOST_NORM_CMD_ENTRIES;
@@ -1757,7 +1753,7 @@
fib->Header.StructType = AAC_FIBTYPE_TFIB;
fib->Header.Size = sizeof(struct aac_fib) + datasize;
fib->Header.SenderSize = sizeof(struct aac_fib);
- fib->Header.SenderFibAddress = (u_int32_t)fib;
+ fib->Header.SenderFibAddress = 0; /* Not needed */
fib->Header.ReceiverFibAddress = sc->aac_common_busaddr +
offsetof(struct aac_common,
ac_sync_fib);
@@ -2383,7 +2379,7 @@
union aac_statrequest *as;
struct aac_softc *sc;
int error = 0;
- int i;
+ uint32_t cookie;
debug_called(2);
@@ -2434,8 +2430,8 @@
* Here, we give it the proc pointer of the per-adapter aif
* thread. It's only used as a sanity check in other calls.
*/
- i = (int)sc->aifthread;
- error = copyout(&i, arg, sizeof(i));
+ cookie = (uint32_t)(uintptr_t)sc->aifthread;
+ error = copyout(&cookie, arg, sizeof(cookie));
break;
case FSACTL_GET_NEXT_ADAPTER_FIB:
arg = *(caddr_t*)arg;
@@ -2531,7 +2527,7 @@
goto out;
size = cm->cm_fib->Header.Size + sizeof(struct aac_fib_header);
if (size > sizeof(struct aac_fib)) {
- device_printf(sc->aac_dev, "incoming FIB oversized (%d > %d)\n",
+ device_printf(sc->aac_dev, "incoming FIB oversized (%d > %zd)\n",
size, sizeof(struct aac_fib));
size = sizeof(struct aac_fib);
}
@@ -2554,7 +2550,7 @@
*/
size = cm->cm_fib->Header.Size;
if (size > sizeof(struct aac_fib)) {
- device_printf(sc->aac_dev, "outbound FIB oversized (%d > %d)\n",
+ device_printf(sc->aac_dev, "outbound FIB oversized (%d > %zd)\n",
size, sizeof(struct aac_fib));
size = sizeof(struct aac_fib);
}
@@ -2776,7 +2772,7 @@
/*
* Check the magic number that we gave the caller.
*/
- if (agf.AdapterFibContext != (int)sc->aifthread) {
+ if (agf.AdapterFibContext != (int)(uintptr_t)sc->aifthread) {
error = EFAULT;
} else {
error = aac_return_aif(sc, agf.AifFib);
==== //depot/projects/ia64/sys/dev/aac/aac_cam.c#10 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/aac/aac_cam.c,v 1.11 2003/03/26 17:50:11 scottl Exp $
+ * $FreeBSD: src/sys/dev/aac/aac_cam.c,v 1.12 2003/08/19 21:31:45 scottl Exp $
*/
/*
@@ -339,9 +339,14 @@
if ((ccb->ccb_h.flags & CAM_SCATTER_VALID) == 0) {
srb->data_len = csio->dxfer_len;
if (ccb->ccb_h.flags & CAM_DATA_PHYS) {
+ /*
+ * XXX This isn't 64-bit clean.
+ * However, this condition is not
+ * normally used in CAM.
+ */
srb->sg_map32.SgCount = 1;
srb->sg_map32.SgEntry[0].SgAddress =
- (u_int32_t)csio->data_ptr;
+ (uint32_t)(uintptr_t)csio->data_ptr;
srb->sg_map32.SgEntry[0].SgByteCount =
csio->dxfer_len;
} else {
==== //depot/projects/ia64/sys/dev/aac/aac_disk.c#15 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/aac/aac_disk.c,v 1.32 2003/06/19 01:49:04 scottl Exp $
+ * $FreeBSD: src/sys/dev/aac/aac_disk.c,v 1.33 2003/08/19 21:31:45 scottl Exp $
*/
#include "opt_aac.h"
@@ -272,7 +272,8 @@
size = fib->Header.Size + sizeof(struct aac_blockwrite);
if (aac_sync_fib(sc, ContainerCommand, 0, fib, size)) {
- printf("Error dumping block 0x%x\n", physical);
+ printf("Error dumping block 0x%jx\n",
+ (uintptr_t)physical);
return (EIO);
}
==== //depot/projects/ia64/sys/dev/an/if_aironet_ieee.h#5 (text+ko) ====
@@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/an/if_aironet_ieee.h,v 1.11 2002/12/29 19:22:06 ambrisko Exp $
+ * $FreeBSD: src/sys/dev/an/if_aironet_ieee.h,v 1.12 2003/08/20 03:46:05 ambrisko Exp $
*/
#ifndef _IF_AIRONET_IEEE_H
@@ -63,7 +63,7 @@
* data, which is 240 words long, so 256 should be a safe
* value.
*/
-#define AN_MAX_DATALEN 512
+#define AN_MAX_DATALEN 4096
struct an_req {
u_int16_t an_len;
@@ -261,7 +261,7 @@
u_int32_t an_uptime_usecs; /* 0x178 */
u_int32_t an_uptime_secs; /* 0x17C */
u_int32_t an_lostsync_better_ap; /* 0x180 */
- u_int32_t an_rsvd[10];
+ u_int32_t an_rsvd[15];
};
/*
@@ -337,6 +337,7 @@
u_int8_t an_magic_packet_action; /* 0x98 */
u_int8_t an_magic_packet_ctl; /* 0x99 */
u_int16_t an_rsvd9;
+ u_int16_t an_spare[13];
};
#define AN_OPMODE_IBSS_ADHOC 0x0000
@@ -417,6 +418,18 @@
char an_ssid3[32];
};
+struct an_ltv_ssid_entry{
+ u_int16_t an_len;
+ char an_ssid[32];
+};
+
+#define MAX_SSIDS 25
+struct an_ltv_ssidlist_new {
+ u_int16_t an_len;
+ u_int16_t an_type;
+ struct an_ltv_ssid_entry an_entry[MAX_SSIDS];
+};
+
/*
* Valid AP list.
*/
@@ -501,7 +514,7 @@
u_int16_t an_softcaps; /* 0x7C */
u_int16_t an_bootblockrev; /* 0x7E */
u_int16_t an_req_hw_support; /* 0x80 */
- u_int16_t an_unknown; /* 0x82 */
+ u_int16_t an_unknown[31]; /* 0x82 */
};
/*
@@ -580,7 +593,7 @@
u_int8_t an_avg_noise_prev_min_db; /* 0x7D */
u_int8_t an_max_noise_prev_min_pc; /* 0x7E */
u_int8_t an_max_noise_prev_min_db; /* 0x7F */
- u_int16_t an_spare[5];
+ u_int16_t an_spare[8];
};
#define AN_STATUS_OPMODE_CONFIGURED 0x0001
==== //depot/projects/ia64/sys/dev/an/if_an.c#24 (text+ko) ====
@@ -80,7 +80,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.51 2003/06/28 06:13:27 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.52 2003/08/20 03:46:05 ambrisko Exp $");
#include "opt_inet.h"
@@ -313,7 +313,7 @@
device_t dev;
{
struct an_softc *sc = device_get_softc(dev);
- struct an_ltv_ssidlist ssid;
+ struct an_ltv_ssidlist_new ssid;
int error;
bzero((char *)&ssid, sizeof(ssid));
@@ -339,11 +339,11 @@
ssid.an_type = AN_RID_SSIDLIST;
/* Make sure interrupts are disabled. */
+ sc->mpi350 = 0;
CSR_WRITE_2(sc, AN_INT_EN(sc->mpi350), 0);
CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350), 0xFFFF);
an_reset(sc);
- /* No need for an_init_mpi350_desc since it will be done in attach */
if (an_cmd(sc, AN_CMD_READCFG, 0))
return(0);
@@ -352,7 +352,7 @@
return(0);
/* See if the ssid matches what we expect ... but doesn't have to */
- if (strcmp(ssid.an_ssid1, AN_DEF_SSID))
+ if (strcmp(ssid.an_entry[0].an_ssid, AN_DEF_SSID))
return(0);
return(AN_IOSIZ);
@@ -715,7 +715,7 @@
/* Read ssid list */
sc->an_ssidlist.an_type = AN_RID_SSIDLIST;
- sc->an_ssidlist.an_len = sizeof(struct an_ltv_ssidlist);
+ sc->an_ssidlist.an_len = sizeof(struct an_ltv_ssidlist_new);
if (an_read_record(sc, (struct an_ltv_gen *)&sc->an_ssidlist)) {
printf("an%d: read record failed\n", sc->an_unit);
goto fail;
@@ -769,10 +769,11 @@
bcopy(AN_DEFAULT_NODENAME, sc->an_config.an_nodename,
sizeof(AN_DEFAULT_NODENAME) - 1);
- bzero(sc->an_ssidlist.an_ssid1, sizeof(sc->an_ssidlist.an_ssid1));
- bcopy(AN_DEFAULT_NETNAME, sc->an_ssidlist.an_ssid1,
+ bzero(sc->an_ssidlist.an_entry[0].an_ssid,
+ sizeof(sc->an_ssidlist.an_entry[0].an_ssid));
+ bcopy(AN_DEFAULT_NETNAME, sc->an_ssidlist.an_entry[0].an_ssid,
sizeof(AN_DEFAULT_NETNAME) - 1);
- sc->an_ssidlist.an_ssid1_len = strlen(AN_DEFAULT_NETNAME);
+ sc->an_ssidlist.an_entry[0].an_len = strlen(AN_DEFAULT_NETNAME);
sc->an_config.an_opmode =
AN_OPMODE_INFRASTRUCTURE_STATION;
@@ -1088,7 +1089,7 @@
ifp->if_flags &= ~IFF_OACTIVE;
if (!sc->mpi350) {
- id = CSR_READ_2(sc, AN_TX_CMP_FID);
+ id = CSR_READ_2(sc, AN_TX_CMP_FID(sc->mpi350));
if (status & AN_EV_TX_EXC) {
ifp->if_oerrors++;
@@ -1104,10 +1105,17 @@
AN_INC(sc->an_rdata.an_tx_cons, AN_TX_RING_CNT);
} else { /* MPI 350 */
- AN_INC(sc->an_rdata.an_tx_cons, AN_MAX_TX_DESC);
- if (sc->an_rdata.an_tx_prod ==
- sc->an_rdata.an_tx_cons)
- sc->an_rdata.an_tx_empty = 1;
+ id = CSR_READ_2(sc, AN_TX_CMP_FID(sc->mpi350));
+ if (!sc->an_rdata.an_tx_empty){
+ if (status & AN_EV_TX_EXC) {
+ ifp->if_oerrors++;
+ } else
+ ifp->if_opackets++;
+ AN_INC(sc->an_rdata.an_tx_cons, AN_MAX_TX_DESC);
+ if (sc->an_rdata.an_tx_prod ==
+ sc->an_rdata.an_tx_cons)
+ sc->an_rdata.an_tx_empty = 1;
+ }
}
return;
@@ -1179,10 +1187,10 @@
CSR_WRITE_2(sc, AN_INT_EN(sc->mpi350), 0);
status = CSR_READ_2(sc, AN_EVENT_STAT(sc->mpi350));
- CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350), ~AN_INTRS);
+ CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350), ~AN_INTRS(sc->mpi350));
- if (status & AN_EV_AWAKE) {
- CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350), AN_EV_AWAKE);
+ if (status & AN_EV_MIC) {
+ CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350), AN_EV_MIC);
}
if (status & AN_EV_LINKSTAT) {
@@ -1199,9 +1207,16 @@
CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350), AN_EV_RX);
}
+ if (sc->mpi350 && status & AN_EV_TX_CPY) {
+ an_txeof(sc, status);
+ CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350),
+ AN_EV_TX_CPY);
+ }
+
if (status & AN_EV_TX) {
an_txeof(sc, status);
- CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350), AN_EV_TX);
+ CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350),
+ AN_EV_TX);
}
if (status & AN_EV_TX_EXC) {
@@ -1213,7 +1228,7 @@
CSR_WRITE_2(sc, AN_EVENT_ACK(sc->mpi350), AN_EV_ALLOC);
/* Re-enable interrupts. */
- CSR_WRITE_2(sc, AN_INT_EN(sc->mpi350), AN_INTRS);
+ CSR_WRITE_2(sc, AN_INT_EN(sc->mpi350), AN_INTRS(sc->mpi350));
if ((ifp->if_flags & IFF_UP) && (ifp->if_snd.ifq_head != NULL))
an_start(ifp);
@@ -1238,6 +1253,7 @@
} else
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list