Date: Tue, 19 Aug 2003 22:44:42 -0700 (PDT) From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 36469 for review Message-ID: <200308200544.h7K5igOU022447@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=36469 Change 36469 by marcel@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) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200308200544.h7K5igOU022447>