From owner-svn-src-user@FreeBSD.ORG Sun Apr 11 21:59:23 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8C7671065670; Sun, 11 Apr 2010 21:59:23 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7C0EE8FC08; Sun, 11 Apr 2010 21:59:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BLxNv4023028; Sun, 11 Apr 2010 21:59:23 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3BLxNXT023026; Sun, 11 Apr 2010 21:59:23 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201004112159.o3BLxNXT023026@svn.freebsd.org> From: Doug Barton Date: Sun, 11 Apr 2010 21:59:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206493 - user/dougb/portmaster X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Apr 2010 21:59:23 -0000 Author: dougb Date: Sun Apr 11 21:59:23 2010 New Revision: 206493 URL: http://svn.freebsd.org/changeset/base/206493 Log: When NOT using --index-only the rundep list still needs to be parsed the old way. So only add spaces to the list if we're generating it from the INDEX, and let the case statement match with or without a space. Reported by: avilla Modified: user/dougb/portmaster/portmaster Modified: user/dougb/portmaster/portmaster ============================================================================== --- user/dougb/portmaster/portmaster Sun Apr 11 21:22:02 2010 (r206492) +++ user/dougb/portmaster/portmaster Sun Apr 11 21:59:23 2010 (r206493) @@ -1998,6 +1998,8 @@ gen_dep_list () { for l in $temp_list ; do list="$list `grep -m1 ^${l}\| $PM_INDEX | cut -f 2 -d \|`" done + + list=" $list " fi echo "$list" @@ -2031,11 +2033,11 @@ dependency_check () { if [ "$PM_BUILD_ONLY_LIST" = pmp_doing_build_deps ]; then local rundeps dep varname run_dl build_only_dl - rundeps=" `gen_dep_list run-depends-list` " + rundeps=`gen_dep_list run-depends-list` for dep in $d_port_list; do case "$rundeps" in - *" ${dep} "*) + *" ${dep} "*|*${dep}*) varname=`echo ${dep#$pd/} | sed 's#[-+/\.]#_#g'` rundep_list="$rundep_list $varname" eval $varname=\"$portdir \$$varname\" From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:03:25 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0DB911065673; Mon, 12 Apr 2010 23:03:25 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F1E6E8FC19; Mon, 12 Apr 2010 23:03:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CN3OaY067139; Mon, 12 Apr 2010 23:03:24 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CN3OAH067133; Mon, 12 Apr 2010 23:03:24 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122303.o3CN3OAH067133@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:03:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206515 - user/imp/tbemd X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:03:25 -0000 Author: imp Date: Mon Apr 12 23:03:24 2010 New Revision: 206515 URL: http://svn.freebsd.org/changeset/base/206515 Log: Merge from head (part 1 of many) Modified: user/imp/tbemd/MAINTAINERS user/imp/tbemd/Makefile user/imp/tbemd/Makefile.inc1 user/imp/tbemd/ObsoleteFiles.inc user/imp/tbemd/UPDATING Modified: user/imp/tbemd/MAINTAINERS ============================================================================== --- user/imp/tbemd/MAINTAINERS Mon Apr 12 21:42:01 2010 (r206514) +++ user/imp/tbemd/MAINTAINERS Mon Apr 12 23:03:24 2010 (r206515) @@ -36,8 +36,6 @@ pci bus imp,jhb Pre-commit review reque cdboot jhb Pre-commit review requested. pxeboot jhb Pre-commit review requested. witness jhb Pre-commit review requested. -twe aradford@amcc.com Pre-commit review requested -twa aradford@amcc.com Pre-commit review requested CAM gibbs, ken Pre-commit review requested. send to scsi@freebsd.org devstat(9) ken Pre-commit review requested. @@ -59,15 +57,12 @@ libfetch des Advance notification reques fetch des Advance notification requested. libpam des Pre-commit review requested. openssh des Pre-commit review requested. -pseudofs des Advance notification requested. -procfs des Advance notification requested. -linprocfs des Advance notification requested. +pseudofs des Pre-commit review requested. +procfs des Pre-commit review requested. +linprocfs des Pre-commit review requested. lpr gad Pre-commit review requested, particularly for lpd/recvjob.c and lpd/printjob.c. newsyslog(8) gad Heads-up appreciated. I'm going thru the PR's for it. -pkill gad Heads-up appreciated. -ps gad I am working on a number of changes to this. Would - like advance notice of major changes planned to it. cvs peter Heads-up appreciated, try not to break it. nvi peter Try not to break it. libz peter Try not to break it. @@ -76,9 +71,6 @@ share/mk ru This is a vital component of offer a pre-commit review for anything non-trivial. ipfw ipfw Pre-commit review preferred. send to ipfw@freebsd.org drm rnoland Just keep me informed of changes, try not to break it. -libufs jmallett Willing to handle problems, help with work. -fdc(4) joerg Just keep me informed of changes, try not to break it. -sppp(4) joerg Just keep me informed of changes, try not to break it. unifdef(1) fanf Pre-commit review requested. ntp roberto Pre-commit review requested. inetd dwmalone Recommends pre-commit review. @@ -131,6 +123,9 @@ usr.sbin/zic edwin Heads-up appreciat maintained by a third party source. lib/libc/stdtime edwin Heads-up appreciated, since parts of this code is maintained by a third party source. +sysinstall randi Please contact about any major changes so that + they can be co-ordinated. +sbin/routed bms Pre-commit review; notify vendor at rhyolite.com Following are the entries from the Makefiles, and a few other sources. Please remove stale entries from both their origin, and this file. @@ -144,4 +139,3 @@ $ cd /usr/src; find */* -type f|xargs eg sys/modules/3dfx/Makefile:MAINTAINER= cokane@FreeBSD.org sys/modules/urio/Makefile:MAINTAINER= Iwasa Kazmi tools/tools/sysdoc/Makefile:MAINTAINER= trhodes@FreeBSD.org -usr.sbin/zic/Makefile:MAINTAINER= wollman@FreeBSD.org Modified: user/imp/tbemd/Makefile ============================================================================== --- user/imp/tbemd/Makefile Mon Apr 12 21:42:01 2010 (r206514) +++ user/imp/tbemd/Makefile Mon Apr 12 23:03:24 2010 (r206515) @@ -311,6 +311,7 @@ universe_${target}: "check _.${target}.buildworld for details" | ${MAKEFAIL})) @echo ">> ${target} buildworld completed on `LC_ALL=C date`" .endif +.if !defined(MAKE_JUST_WORLDS) .if exists(${.CURDIR}/sys/${target}/conf/NOTES) @(cd ${.CURDIR}/sys/${target}/conf && env __MAKE_CONF=/dev/null \ ${MAKE} LINT > ${.CURDIR}/_.${target}.makeLINT 2>&1 || \ @@ -319,6 +320,7 @@ universe_${target}: .endif @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} TARGET=${target} \ universe_kernels +.endif @echo ">> ${target} completed on `LC_ALL=C date`" .endfor universe_kernels: universe_kernconfs Modified: user/imp/tbemd/Makefile.inc1 ============================================================================== --- user/imp/tbemd/Makefile.inc1 Mon Apr 12 21:42:01 2010 (r206514) +++ user/imp/tbemd/Makefile.inc1 Mon Apr 12 23:03:24 2010 (r206515) @@ -281,6 +281,7 @@ LIB32WMAKEENV= MAKEOBJDIRPREFIX=${OBJTRE VERSION="${VERSION}" \ MACHINE=i386 \ MACHINE_ARCH=i386 \ + MACHINE_CPU="i686 mmx sse sse2" \ INSTALL="sh ${.CURDIR}/tools/install.sh" \ PATH=${TMPPATH} \ CC="${CC} ${LIB32FLAGS}" \ @@ -1257,7 +1258,7 @@ delete-old-files: @echo ">>> Removing old files (only deletes safe to delete libs)" # Ask for every old file if the user really wants to remove it. # It's annoying, but better safe than sorry. - @for file in ${OLD_FILES}; do \ + @for file in ${OLD_FILES} ${OLD_FILES:Musr/share/*.gz:R}; do \ if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ chflags noschg "${DESTDIR}/$${file}" 2>/dev/null || true; \ rm ${RM_I} "${DESTDIR}/$${file}"; \ @@ -1277,7 +1278,7 @@ delete-old-files: check-old-files: @echo ">>> Checking for old files" - @for file in ${OLD_FILES}; do \ + @for file in ${OLD_FILES} ${OLD_FILES:Musr/share/*.gz:R}; do \ if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ echo "${DESTDIR}/$${file}"; \ fi; \ Modified: user/imp/tbemd/ObsoleteFiles.inc ============================================================================== --- user/imp/tbemd/ObsoleteFiles.inc Mon Apr 12 21:42:01 2010 (r206514) +++ user/imp/tbemd/ObsoleteFiles.inc Mon Apr 12 23:03:24 2010 (r206515) @@ -14,6 +14,23 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20100326: [ia64] removed +.if ${TARGET_ARCH} == "ia64" +OLD_FILES+=usr/include/machine/nexusvar.h +.endif +# 20100326: gcpio removal +OLD_FILES+=usr/bin/gcpio +OLD_FILES+=usr/share/info/cpio.info.gz +OLD_FILES+=usr/share/man/man1/gcpio.1.gz +# 20100322: libz update +OLD_LIBS+=lib/libz.so.5 +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libz.so.5 +.endif +# 20100314: removal of regexp.h +OLD_FILES+=usr/include/regexp.h +OLD_FILES+=usr/share/man/man3/regexp.3.gz +OLD_FILES+=usr/share/man/man3/regsub.3.gz # 20100303: actual removal of utmp.h OLD_FILES+=usr/include/utmp.h # 20100227: [ia64] removed and Modified: user/imp/tbemd/UPDATING ============================================================================== --- user/imp/tbemd/UPDATING Mon Apr 12 21:42:01 2010 (r206514) +++ user/imp/tbemd/UPDATING Mon Apr 12 23:03:24 2010 (r206515) @@ -22,6 +22,22 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9. machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20100402: + WITH_CTF can now be specified in src.conf (not recommended, there + are some problems with static executables), make.conf (would also + affect ports which do not use GNU make and do not override the + compile targets) or in the kernel config (via "makeoptions + WITH_CTF=yes"). + When WITH_CTF was specified there before this was silently ignored, + so make sure that WITH_CTF is not used in places which could lead + to unwanted behavior. + +20100311: + The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32 + to allow 32-bit compatibility on non-x86 platforms. All kernel + configurations on amd64 and ia64 platforms using these options must + be modified accordingly. + 20100113: The utmp user accounting database has been replaced with utmpx, the user accounting interface standardized by POSIX. @@ -497,7 +513,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9. 20090313: The k8temp(4) driver has been renamed to amdtemp(4) since - support for K10 and K11 CPU families was added. + support for Family 10 and Family 11 CPU families was added. 20090309: IGMPv3 and Source-Specific Multicast (SSM) have been merged @@ -983,7 +999,7 @@ COMMON ITEMS: mergemaster -p [5] make installworld make delete-old - mergemaster [4] + mergemaster -i [4] @@ -1054,7 +1070,8 @@ COMMON ITEMS: system. Attempting to do it by hand is not recommended and those that pursue this avenue should read this file carefully, as well as the archives of freebsd-current and freebsd-hackers mailing lists - for potential gotchas. + for potential gotchas. The -U option is also useful to consider. + See mergemaster(8) for more information. [5] Usually this step is a noop. However, from time to time you may need to do this if you get unknown user in the following From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:04:39 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 71007106564A; Mon, 12 Apr 2010 23:04:39 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5D44A8FC1D; Mon, 12 Apr 2010 23:04:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CN4dHB067461; Mon, 12 Apr 2010 23:04:39 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CN4dA8067435; Mon, 12 Apr 2010 23:04:39 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122304.o3CN4dA8067435@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:04:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206516 - in user/imp/tbemd: bin/cp bin/ls bin/pax bin/ps bin/rcp bin/setfacl bin/sh bin/test cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolari... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:04:39 -0000 Author: imp Date: Mon Apr 12 23:04:38 2010 New Revision: 206516 URL: http://svn.freebsd.org/changeset/base/206516 Log: merge from head: part 2 of many. Added: user/imp/tbemd/crypto/openssh/PROTOCOL.certkeys - copied unchanged from r206514, head/crypto/openssh/PROTOCOL.certkeys user/imp/tbemd/crypto/openssh/PROTOCOL.mux - copied unchanged from r206514, head/crypto/openssh/PROTOCOL.mux user/imp/tbemd/crypto/openssh/openbsd-compat/pwcache.c - copied unchanged from r206514, head/crypto/openssh/openbsd-compat/pwcache.c user/imp/tbemd/crypto/openssh/pkcs11.h - copied unchanged from r206514, head/crypto/openssh/pkcs11.h user/imp/tbemd/crypto/openssh/roaming_client.c - copied unchanged from r206514, head/crypto/openssh/roaming_client.c user/imp/tbemd/crypto/openssh/roaming_serv.c - copied unchanged from r206514, head/crypto/openssh/roaming_serv.c user/imp/tbemd/crypto/openssh/ssh-pkcs11-client.c - copied unchanged from r206514, head/crypto/openssh/ssh-pkcs11-client.c user/imp/tbemd/crypto/openssh/ssh-pkcs11-helper.0 - copied unchanged from r206514, head/crypto/openssh/ssh-pkcs11-helper.0 user/imp/tbemd/crypto/openssh/ssh-pkcs11-helper.8 - copied unchanged from r206514, head/crypto/openssh/ssh-pkcs11-helper.8 user/imp/tbemd/crypto/openssh/ssh-pkcs11-helper.c - copied unchanged from r206514, head/crypto/openssh/ssh-pkcs11-helper.c user/imp/tbemd/crypto/openssh/ssh-pkcs11.c - copied unchanged from r206514, head/crypto/openssh/ssh-pkcs11.c user/imp/tbemd/crypto/openssh/ssh-pkcs11.h - copied unchanged from r206514, head/crypto/openssh/ssh-pkcs11.h user/imp/tbemd/crypto/openssl/engines/alpha.opt - copied unchanged from r206514, head/crypto/openssl/engines/alpha.opt user/imp/tbemd/crypto/openssl/engines/ia64.opt - copied unchanged from r206514, head/crypto/openssl/engines/ia64.opt user/imp/tbemd/crypto/openssl/ssl/t1_reneg.c - copied unchanged from r206514, head/crypto/openssl/ssl/t1_reneg.c Deleted: user/imp/tbemd/bin/pax/cpio.1 user/imp/tbemd/bin/pax/tar.1 user/imp/tbemd/contrib/cpio/ user/imp/tbemd/crypto/openssh/README.smartcard user/imp/tbemd/crypto/openssh/scard-opensc.c user/imp/tbemd/crypto/openssh/scard.c user/imp/tbemd/crypto/openssh/scard.h user/imp/tbemd/crypto/openssl/apps/genpkey.c user/imp/tbemd/crypto/openssl/apps/pkey.c user/imp/tbemd/crypto/openssl/apps/pkeyparam.c user/imp/tbemd/crypto/openssl/apps/pkeyutl.c user/imp/tbemd/crypto/openssl/apps/ts.c user/imp/tbemd/crypto/openssl/apps/tsget user/imp/tbemd/crypto/openssl/crypto/aes/aes_x86core.c user/imp/tbemd/crypto/openssl/crypto/aes/asm/aes-armv4.pl user/imp/tbemd/crypto/openssl/crypto/aes/asm/aes-ppc.pl user/imp/tbemd/crypto/openssl/crypto/aes/asm/aes-s390x.pl user/imp/tbemd/crypto/openssl/crypto/aes/asm/aes-sparcv9.pl user/imp/tbemd/crypto/openssl/crypto/asn1/ameth_lib.c user/imp/tbemd/crypto/openssl/crypto/asn1/asn1_locl.h user/imp/tbemd/crypto/openssl/crypto/asn1/bio_asn1.c user/imp/tbemd/crypto/openssl/crypto/asn1/bio_ndef.c user/imp/tbemd/crypto/openssl/crypto/asn1/x_nx509.c user/imp/tbemd/crypto/openssl/crypto/bn/asm/alpha-mont.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/armv4-mont.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/mips3-mont.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/ppc-mont.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/ppc64-mont.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/s390x-mont.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/s390x.S user/imp/tbemd/crypto/openssl/crypto/bn/asm/sparcv9-mont.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/sparcv9a-mont.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/via-mont.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/x86-mont.pl user/imp/tbemd/crypto/openssl/crypto/camellia/asm/ user/imp/tbemd/crypto/openssl/crypto/ppccpuid.pl user/imp/tbemd/crypto/openssl/crypto/s390xcpuid.S user/imp/tbemd/crypto/openssl/crypto/sparcv9cap.c user/imp/tbemd/crypto/openssl/engines/axp.opt Modified: user/imp/tbemd/bin/cp/utils.c user/imp/tbemd/bin/ls/cmp.c user/imp/tbemd/bin/pax/Makefile user/imp/tbemd/bin/pax/getoldopt.c user/imp/tbemd/bin/ps/extern.h user/imp/tbemd/bin/ps/keyword.c user/imp/tbemd/bin/ps/print.c user/imp/tbemd/bin/ps/ps.1 user/imp/tbemd/bin/rcp/rcp.c user/imp/tbemd/bin/setfacl/file.c user/imp/tbemd/bin/setfacl/mask.c user/imp/tbemd/bin/setfacl/merge.c user/imp/tbemd/bin/setfacl/remove.c user/imp/tbemd/bin/setfacl/setfacl.1 user/imp/tbemd/bin/setfacl/setfacl.c user/imp/tbemd/bin/setfacl/setfacl.h user/imp/tbemd/bin/setfacl/util.c user/imp/tbemd/bin/sh/eval.c user/imp/tbemd/bin/sh/exec.c user/imp/tbemd/bin/sh/exec.h user/imp/tbemd/bin/sh/expand.c user/imp/tbemd/bin/sh/mksyntax.c user/imp/tbemd/bin/sh/options.c user/imp/tbemd/bin/sh/parser.c user/imp/tbemd/bin/sh/sh.1 user/imp/tbemd/bin/test/test.c user/imp/tbemd/cddl/contrib/opensolaris/cmd/zfs/zfs.8 user/imp/tbemd/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c user/imp/tbemd/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h user/imp/tbemd/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c user/imp/tbemd/cddl/contrib/opensolaris/cmd/zpool/zpool.8 user/imp/tbemd/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h user/imp/tbemd/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c user/imp/tbemd/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h user/imp/tbemd/contrib/bind9/CHANGES user/imp/tbemd/contrib/bind9/bin/named/server.c user/imp/tbemd/contrib/bind9/doc/arm/Bv9ARM-book.xml user/imp/tbemd/contrib/bind9/doc/arm/Bv9ARM.ch06.html user/imp/tbemd/contrib/bind9/doc/arm/Bv9ARM.ch07.html user/imp/tbemd/contrib/bind9/doc/arm/Bv9ARM.ch08.html user/imp/tbemd/contrib/bind9/doc/arm/Bv9ARM.ch09.html user/imp/tbemd/contrib/bind9/doc/arm/Bv9ARM.html user/imp/tbemd/contrib/bind9/doc/arm/Bv9ARM.pdf user/imp/tbemd/contrib/bind9/doc/arm/man.dig.html user/imp/tbemd/contrib/bind9/doc/arm/man.dnssec-dsfromkey.html user/imp/tbemd/contrib/bind9/doc/arm/man.dnssec-keyfromlabel.html user/imp/tbemd/contrib/bind9/doc/arm/man.dnssec-keygen.html user/imp/tbemd/contrib/bind9/doc/arm/man.dnssec-signzone.html user/imp/tbemd/contrib/bind9/doc/arm/man.host.html user/imp/tbemd/contrib/bind9/doc/arm/man.named-checkconf.html user/imp/tbemd/contrib/bind9/doc/arm/man.named-checkzone.html user/imp/tbemd/contrib/bind9/doc/arm/man.named.html user/imp/tbemd/contrib/bind9/doc/arm/man.nsupdate.html user/imp/tbemd/contrib/bind9/doc/arm/man.rndc-confgen.html user/imp/tbemd/contrib/bind9/doc/arm/man.rndc.conf.html user/imp/tbemd/contrib/bind9/doc/arm/man.rndc.html user/imp/tbemd/contrib/bind9/lib/dns/api user/imp/tbemd/contrib/bind9/lib/dns/include/dns/rdataset.h user/imp/tbemd/contrib/bind9/lib/dns/include/dns/resolver.h user/imp/tbemd/contrib/bind9/lib/dns/include/dns/result.h user/imp/tbemd/contrib/bind9/lib/dns/include/dns/validator.h user/imp/tbemd/contrib/bind9/lib/dns/ncache.c user/imp/tbemd/contrib/bind9/lib/dns/rbtdb.c user/imp/tbemd/contrib/bind9/lib/dns/rdatalist.c user/imp/tbemd/contrib/bind9/lib/dns/rdataset.c user/imp/tbemd/contrib/bind9/lib/dns/rdataslab.c user/imp/tbemd/contrib/bind9/lib/dns/resolver.c user/imp/tbemd/contrib/bind9/lib/dns/result.c user/imp/tbemd/contrib/bind9/lib/dns/sdb.c user/imp/tbemd/contrib/bind9/lib/dns/sdlz.c user/imp/tbemd/contrib/bind9/lib/dns/validator.c user/imp/tbemd/contrib/bind9/lib/dns/view.c user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_buffer.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_config.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_context.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_gabn.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_gai_strerror.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_getaddrinfo.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_gethostent.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_getipnode.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_getnameinfo.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_getrrsetbyname.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_gnba.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_hstrerror.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_inetntop.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_noop.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_packet.html user/imp/tbemd/contrib/bind9/lib/lwres/man/lwres_resutil.html user/imp/tbemd/contrib/bind9/version user/imp/tbemd/contrib/bsnmp/gensnmpdef/gensnmpdef.c user/imp/tbemd/contrib/bsnmp/gensnmptree/gensnmptree.1 user/imp/tbemd/contrib/bsnmp/snmpd/config.c user/imp/tbemd/contrib/bsnmp/snmpd/snmpmod.3 user/imp/tbemd/contrib/gcc/config/mips/freebsd.h user/imp/tbemd/contrib/ipfilter/ipsend/sbpf.c user/imp/tbemd/contrib/netcat/FREEBSD-upgrade user/imp/tbemd/contrib/netcat/FREEBSD-vendor user/imp/tbemd/contrib/netcat/nc.1 user/imp/tbemd/contrib/netcat/netcat.c user/imp/tbemd/contrib/openpam/include/security/pam_appl.h user/imp/tbemd/contrib/top/utils.c user/imp/tbemd/contrib/top/utils.h user/imp/tbemd/contrib/tzdata/antarctica user/imp/tbemd/contrib/tzdata/asia user/imp/tbemd/contrib/tzdata/australasia user/imp/tbemd/contrib/tzdata/europe user/imp/tbemd/contrib/tzdata/southamerica user/imp/tbemd/contrib/tzdata/zone.tab user/imp/tbemd/crypto/openssh/ChangeLog user/imp/tbemd/crypto/openssh/INSTALL user/imp/tbemd/crypto/openssh/PROTOCOL user/imp/tbemd/crypto/openssh/PROTOCOL.agent user/imp/tbemd/crypto/openssh/README user/imp/tbemd/crypto/openssh/addrmatch.c user/imp/tbemd/crypto/openssh/auth-krb5.c user/imp/tbemd/crypto/openssh/auth-options.c user/imp/tbemd/crypto/openssh/auth-options.h user/imp/tbemd/crypto/openssh/auth-rh-rsa.c user/imp/tbemd/crypto/openssh/auth-rhosts.c user/imp/tbemd/crypto/openssh/auth-rsa.c user/imp/tbemd/crypto/openssh/auth.c user/imp/tbemd/crypto/openssh/auth.h user/imp/tbemd/crypto/openssh/auth2-hostbased.c user/imp/tbemd/crypto/openssh/auth2-pubkey.c user/imp/tbemd/crypto/openssh/authfd.c user/imp/tbemd/crypto/openssh/authfd.h user/imp/tbemd/crypto/openssh/authfile.c user/imp/tbemd/crypto/openssh/authfile.h user/imp/tbemd/crypto/openssh/bufaux.c user/imp/tbemd/crypto/openssh/buffer.c user/imp/tbemd/crypto/openssh/buffer.h user/imp/tbemd/crypto/openssh/canohost.c user/imp/tbemd/crypto/openssh/channels.c user/imp/tbemd/crypto/openssh/channels.h user/imp/tbemd/crypto/openssh/clientloop.c user/imp/tbemd/crypto/openssh/clientloop.h user/imp/tbemd/crypto/openssh/config.guess user/imp/tbemd/crypto/openssh/config.h user/imp/tbemd/crypto/openssh/config.h.in user/imp/tbemd/crypto/openssh/defines.h user/imp/tbemd/crypto/openssh/dh.c user/imp/tbemd/crypto/openssh/dns.c user/imp/tbemd/crypto/openssh/dns.h user/imp/tbemd/crypto/openssh/hostfile.c user/imp/tbemd/crypto/openssh/hostfile.h user/imp/tbemd/crypto/openssh/kex.c user/imp/tbemd/crypto/openssh/kex.h user/imp/tbemd/crypto/openssh/kexdhs.c user/imp/tbemd/crypto/openssh/kexgexs.c user/imp/tbemd/crypto/openssh/key.c user/imp/tbemd/crypto/openssh/key.h user/imp/tbemd/crypto/openssh/loginrec.c user/imp/tbemd/crypto/openssh/match.h user/imp/tbemd/crypto/openssh/misc.c user/imp/tbemd/crypto/openssh/misc.h user/imp/tbemd/crypto/openssh/monitor.c user/imp/tbemd/crypto/openssh/monitor_fdpass.c user/imp/tbemd/crypto/openssh/monitor_wrap.c user/imp/tbemd/crypto/openssh/mux.c user/imp/tbemd/crypto/openssh/myproposal.h user/imp/tbemd/crypto/openssh/nchan.c user/imp/tbemd/crypto/openssh/openbsd-compat/bsd-cygwin_util.c user/imp/tbemd/crypto/openssh/openbsd-compat/openbsd-compat.h user/imp/tbemd/crypto/openssh/openbsd-compat/openssl-compat.c user/imp/tbemd/crypto/openssh/openbsd-compat/port-aix.c user/imp/tbemd/crypto/openssh/openbsd-compat/port-aix.h user/imp/tbemd/crypto/openssh/openbsd-compat/port-linux.c user/imp/tbemd/crypto/openssh/openbsd-compat/port-linux.h user/imp/tbemd/crypto/openssh/openbsd-compat/readpassphrase.c user/imp/tbemd/crypto/openssh/pathnames.h user/imp/tbemd/crypto/openssh/platform.c user/imp/tbemd/crypto/openssh/platform.h user/imp/tbemd/crypto/openssh/readconf.c user/imp/tbemd/crypto/openssh/readconf.h user/imp/tbemd/crypto/openssh/roaming.h user/imp/tbemd/crypto/openssh/roaming_common.c user/imp/tbemd/crypto/openssh/scp.1 user/imp/tbemd/crypto/openssh/scp.c user/imp/tbemd/crypto/openssh/servconf.c user/imp/tbemd/crypto/openssh/servconf.h user/imp/tbemd/crypto/openssh/session.c user/imp/tbemd/crypto/openssh/sftp-client.c user/imp/tbemd/crypto/openssh/sftp-client.h user/imp/tbemd/crypto/openssh/sftp-common.c user/imp/tbemd/crypto/openssh/sftp-common.h user/imp/tbemd/crypto/openssh/sftp-server.8 user/imp/tbemd/crypto/openssh/sftp-server.c user/imp/tbemd/crypto/openssh/sftp.1 user/imp/tbemd/crypto/openssh/sftp.c user/imp/tbemd/crypto/openssh/ssh-add.1 user/imp/tbemd/crypto/openssh/ssh-add.c user/imp/tbemd/crypto/openssh/ssh-agent.1 user/imp/tbemd/crypto/openssh/ssh-agent.c user/imp/tbemd/crypto/openssh/ssh-dss.c user/imp/tbemd/crypto/openssh/ssh-keygen.1 user/imp/tbemd/crypto/openssh/ssh-keygen.c user/imp/tbemd/crypto/openssh/ssh-keyscan.1 user/imp/tbemd/crypto/openssh/ssh-keyscan.c user/imp/tbemd/crypto/openssh/ssh-keysign.c user/imp/tbemd/crypto/openssh/ssh-rand-helper.c user/imp/tbemd/crypto/openssh/ssh-rsa.c user/imp/tbemd/crypto/openssh/ssh.1 user/imp/tbemd/crypto/openssh/ssh.c user/imp/tbemd/crypto/openssh/ssh2.h user/imp/tbemd/crypto/openssh/ssh_config user/imp/tbemd/crypto/openssh/ssh_config.5 user/imp/tbemd/crypto/openssh/ssh_namespace.h user/imp/tbemd/crypto/openssh/sshconnect.c user/imp/tbemd/crypto/openssh/sshconnect2.c user/imp/tbemd/crypto/openssh/sshd.8 user/imp/tbemd/crypto/openssh/sshd.c user/imp/tbemd/crypto/openssh/sshd_config user/imp/tbemd/crypto/openssh/sshd_config.5 user/imp/tbemd/crypto/openssh/sshpty.h user/imp/tbemd/crypto/openssh/sshtty.c user/imp/tbemd/crypto/openssh/version.h user/imp/tbemd/crypto/openssl/CHANGES user/imp/tbemd/crypto/openssl/Configure user/imp/tbemd/crypto/openssl/FAQ user/imp/tbemd/crypto/openssl/Makefile user/imp/tbemd/crypto/openssl/Makefile.org user/imp/tbemd/crypto/openssl/NEWS user/imp/tbemd/crypto/openssl/README user/imp/tbemd/crypto/openssl/apps/CA.sh user/imp/tbemd/crypto/openssl/apps/Makefile user/imp/tbemd/crypto/openssl/apps/apps.c user/imp/tbemd/crypto/openssl/apps/ca.c user/imp/tbemd/crypto/openssl/apps/dsa.c user/imp/tbemd/crypto/openssl/apps/dsaparam.c user/imp/tbemd/crypto/openssl/apps/enc.c user/imp/tbemd/crypto/openssl/apps/gendsa.c user/imp/tbemd/crypto/openssl/apps/genrsa.c user/imp/tbemd/crypto/openssl/apps/openssl.c user/imp/tbemd/crypto/openssl/apps/pkcs12.c user/imp/tbemd/crypto/openssl/apps/req.c user/imp/tbemd/crypto/openssl/apps/s_apps.h user/imp/tbemd/crypto/openssl/apps/s_cb.c user/imp/tbemd/crypto/openssl/apps/s_client.c user/imp/tbemd/crypto/openssl/apps/s_server.c user/imp/tbemd/crypto/openssl/apps/s_socket.c user/imp/tbemd/crypto/openssl/apps/speed.c user/imp/tbemd/crypto/openssl/apps/x509.c user/imp/tbemd/crypto/openssl/config user/imp/tbemd/crypto/openssl/crypto/aes/aes_cfb.c user/imp/tbemd/crypto/openssl/crypto/aes/asm/aes-x86_64.pl user/imp/tbemd/crypto/openssl/crypto/asn1/a_mbstr.c user/imp/tbemd/crypto/openssl/crypto/asn1/a_object.c user/imp/tbemd/crypto/openssl/crypto/asn1/asn1.h user/imp/tbemd/crypto/openssl/crypto/asn1/asn1_err.c user/imp/tbemd/crypto/openssl/crypto/asn1/asn1_gen.c user/imp/tbemd/crypto/openssl/crypto/asn1/asn1_par.c user/imp/tbemd/crypto/openssl/crypto/asn1/t_x509.c user/imp/tbemd/crypto/openssl/crypto/bio/bio.h user/imp/tbemd/crypto/openssl/crypto/bio/bss_dgram.c user/imp/tbemd/crypto/openssl/crypto/bio/bss_file.c user/imp/tbemd/crypto/openssl/crypto/bn/asm/ppc.pl user/imp/tbemd/crypto/openssl/crypto/bn/asm/x86_64-gcc.c user/imp/tbemd/crypto/openssl/crypto/bn/bn_div.c user/imp/tbemd/crypto/openssl/crypto/bn/bn_exp.c user/imp/tbemd/crypto/openssl/crypto/bn/bn_gf2m.c user/imp/tbemd/crypto/openssl/crypto/bn/bn_mul.c user/imp/tbemd/crypto/openssl/crypto/bn/bntest.c user/imp/tbemd/crypto/openssl/crypto/camellia/Makefile user/imp/tbemd/crypto/openssl/crypto/cast/c_cfb64.c user/imp/tbemd/crypto/openssl/crypto/cast/c_ecb.c user/imp/tbemd/crypto/openssl/crypto/cast/c_enc.c user/imp/tbemd/crypto/openssl/crypto/cast/c_ofb64.c user/imp/tbemd/crypto/openssl/crypto/cast/cast.h user/imp/tbemd/crypto/openssl/crypto/cms/cms_ess.c user/imp/tbemd/crypto/openssl/crypto/cms/cms_lib.c user/imp/tbemd/crypto/openssl/crypto/comp/c_zlib.c user/imp/tbemd/crypto/openssl/crypto/cryptlib.c user/imp/tbemd/crypto/openssl/crypto/dsa/Makefile user/imp/tbemd/crypto/openssl/crypto/dsa/dsa_asn1.c user/imp/tbemd/crypto/openssl/crypto/dsa/dsa_lib.c user/imp/tbemd/crypto/openssl/crypto/dso/dso_dlfcn.c user/imp/tbemd/crypto/openssl/crypto/ec/ec2_smpl.c user/imp/tbemd/crypto/openssl/crypto/ecdsa/Makefile user/imp/tbemd/crypto/openssl/crypto/ecdsa/ecs_ossl.c user/imp/tbemd/crypto/openssl/crypto/ecdsa/ecs_sign.c user/imp/tbemd/crypto/openssl/crypto/engine/Makefile user/imp/tbemd/crypto/openssl/crypto/engine/eng_all.c user/imp/tbemd/crypto/openssl/crypto/engine/eng_cnf.c user/imp/tbemd/crypto/openssl/crypto/engine/eng_cryptodev.c user/imp/tbemd/crypto/openssl/crypto/engine/eng_ctrl.c user/imp/tbemd/crypto/openssl/crypto/engine/eng_err.c user/imp/tbemd/crypto/openssl/crypto/engine/eng_table.c user/imp/tbemd/crypto/openssl/crypto/engine/engine.h user/imp/tbemd/crypto/openssl/crypto/err/Makefile user/imp/tbemd/crypto/openssl/crypto/err/err_all.c user/imp/tbemd/crypto/openssl/crypto/evp/c_allc.c user/imp/tbemd/crypto/openssl/crypto/evp/c_alld.c user/imp/tbemd/crypto/openssl/crypto/evp/digest.c user/imp/tbemd/crypto/openssl/crypto/evp/evp_lib.c user/imp/tbemd/crypto/openssl/crypto/evp/evp_locl.h user/imp/tbemd/crypto/openssl/crypto/evp/names.c user/imp/tbemd/crypto/openssl/crypto/lhash/lhash.c user/imp/tbemd/crypto/openssl/crypto/md32_common.h user/imp/tbemd/crypto/openssl/crypto/md5/asm/md5-x86_64.pl user/imp/tbemd/crypto/openssl/crypto/o_init.c user/imp/tbemd/crypto/openssl/crypto/o_str.c user/imp/tbemd/crypto/openssl/crypto/objects/obj_dat.c user/imp/tbemd/crypto/openssl/crypto/objects/obj_dat.h user/imp/tbemd/crypto/openssl/crypto/objects/obj_mac.h user/imp/tbemd/crypto/openssl/crypto/objects/obj_mac.num user/imp/tbemd/crypto/openssl/crypto/objects/objects.txt user/imp/tbemd/crypto/openssl/crypto/ocsp/ocsp_prn.c user/imp/tbemd/crypto/openssl/crypto/opensslv.h user/imp/tbemd/crypto/openssl/crypto/pem/pem_seal.c user/imp/tbemd/crypto/openssl/crypto/perlasm/x86_64-xlate.pl user/imp/tbemd/crypto/openssl/crypto/pkcs12/p12_attr.c user/imp/tbemd/crypto/openssl/crypto/pkcs12/p12_key.c user/imp/tbemd/crypto/openssl/crypto/pkcs12/p12_utl.c user/imp/tbemd/crypto/openssl/crypto/pkcs12/pkcs12.h user/imp/tbemd/crypto/openssl/crypto/pkcs7/pk7_mime.c user/imp/tbemd/crypto/openssl/crypto/rand/rand_win.c user/imp/tbemd/crypto/openssl/crypto/rand/randfile.c user/imp/tbemd/crypto/openssl/crypto/rsa/rsa.h user/imp/tbemd/crypto/openssl/crypto/rsa/rsa_eay.c user/imp/tbemd/crypto/openssl/crypto/rsa/rsa_eng.c user/imp/tbemd/crypto/openssl/crypto/rsa/rsa_oaep.c user/imp/tbemd/crypto/openssl/crypto/rsa/rsa_pss.c user/imp/tbemd/crypto/openssl/crypto/rsa/rsa_sign.c user/imp/tbemd/crypto/openssl/crypto/sha/sha512.c user/imp/tbemd/crypto/openssl/crypto/stack/safestack.h user/imp/tbemd/crypto/openssl/crypto/symhacks.h user/imp/tbemd/crypto/openssl/crypto/ui/ui_openssl.c user/imp/tbemd/crypto/openssl/crypto/x509/by_dir.c user/imp/tbemd/crypto/openssl/crypto/x509/x509.h user/imp/tbemd/crypto/openssl/crypto/x509/x509_lu.c user/imp/tbemd/crypto/openssl/crypto/x509/x509_vfy.c user/imp/tbemd/crypto/openssl/crypto/x509/x509_vfy.h user/imp/tbemd/crypto/openssl/crypto/x509/x509_vpm.c user/imp/tbemd/crypto/openssl/crypto/x509v3/pcy_tree.c user/imp/tbemd/crypto/openssl/crypto/x509v3/v3_alt.c user/imp/tbemd/crypto/openssl/crypto/x509v3/v3_ocsp.c user/imp/tbemd/crypto/openssl/demos/x509/mkcert.c user/imp/tbemd/crypto/openssl/demos/x509/mkreq.c user/imp/tbemd/crypto/openssl/doc/apps/enc.pod user/imp/tbemd/crypto/openssl/doc/apps/verify.pod user/imp/tbemd/crypto/openssl/doc/crypto/ASN1_generate_nconf.pod user/imp/tbemd/crypto/openssl/doc/crypto/EVP_DigestInit.pod user/imp/tbemd/crypto/openssl/doc/crypto/PKCS12_parse.pod user/imp/tbemd/crypto/openssl/doc/crypto/bn_internal.pod user/imp/tbemd/crypto/openssl/doc/crypto/d2i_X509.pod user/imp/tbemd/crypto/openssl/doc/crypto/d2i_X509_CRL.pod user/imp/tbemd/crypto/openssl/doc/crypto/d2i_X509_REQ.pod user/imp/tbemd/crypto/openssl/doc/crypto/hmac.pod user/imp/tbemd/crypto/openssl/doc/crypto/pem.pod user/imp/tbemd/crypto/openssl/doc/ssl/SSL_CIPHER_get_name.pod user/imp/tbemd/crypto/openssl/doc/ssl/SSL_CTX_set_options.pod user/imp/tbemd/crypto/openssl/engines/Makefile user/imp/tbemd/crypto/openssl/engines/e_capi.c user/imp/tbemd/crypto/openssl/engines/e_capi_err.c user/imp/tbemd/crypto/openssl/engines/e_capi_err.h user/imp/tbemd/crypto/openssl/engines/e_chil.c user/imp/tbemd/crypto/openssl/engines/e_ubsec.c user/imp/tbemd/crypto/openssl/fips/Makefile user/imp/tbemd/crypto/openssl/fips/aes/fips_aesavs.c user/imp/tbemd/crypto/openssl/fips/des/fips_desmovs.c user/imp/tbemd/crypto/openssl/fips/dsa/fips_dsa_key.c user/imp/tbemd/crypto/openssl/fips/dsa/fips_dsa_sign.c user/imp/tbemd/crypto/openssl/fips/dsa/fips_dsatest.c user/imp/tbemd/crypto/openssl/fips/dsa/fips_dssvs.c user/imp/tbemd/crypto/openssl/fips/fips_locl.h user/imp/tbemd/crypto/openssl/fips/fips_test_suite.c user/imp/tbemd/crypto/openssl/fips/fips_utl.h user/imp/tbemd/crypto/openssl/fips/fipsalgtest.pl user/imp/tbemd/crypto/openssl/fips/fipsld user/imp/tbemd/crypto/openssl/fips/hmac/fips_hmac.c user/imp/tbemd/crypto/openssl/fips/hmac/fips_hmac_selftest.c user/imp/tbemd/crypto/openssl/fips/rand/fips_rand.c user/imp/tbemd/crypto/openssl/fips/rand/fips_rngvs.c user/imp/tbemd/crypto/openssl/fips/rsa/fips_rsagtest.c user/imp/tbemd/crypto/openssl/fips/rsa/fips_rsastest.c user/imp/tbemd/crypto/openssl/fips/rsa/fips_rsavtest.c user/imp/tbemd/crypto/openssl/fips/sha/Makefile user/imp/tbemd/crypto/openssl/fips/sha/fips_sha1_selftest.c user/imp/tbemd/crypto/openssl/openssl.spec user/imp/tbemd/crypto/openssl/ssl/Makefile user/imp/tbemd/crypto/openssl/ssl/d1_both.c user/imp/tbemd/crypto/openssl/ssl/d1_clnt.c user/imp/tbemd/crypto/openssl/ssl/d1_enc.c user/imp/tbemd/crypto/openssl/ssl/d1_lib.c user/imp/tbemd/crypto/openssl/ssl/d1_pkt.c user/imp/tbemd/crypto/openssl/ssl/d1_srvr.c user/imp/tbemd/crypto/openssl/ssl/dtls1.h user/imp/tbemd/crypto/openssl/ssl/kssl.c user/imp/tbemd/crypto/openssl/ssl/s23_clnt.c user/imp/tbemd/crypto/openssl/ssl/s23_srvr.c user/imp/tbemd/crypto/openssl/ssl/s2_srvr.c user/imp/tbemd/crypto/openssl/ssl/s3_both.c user/imp/tbemd/crypto/openssl/ssl/s3_clnt.c user/imp/tbemd/crypto/openssl/ssl/s3_lib.c user/imp/tbemd/crypto/openssl/ssl/s3_pkt.c user/imp/tbemd/crypto/openssl/ssl/s3_srvr.c user/imp/tbemd/crypto/openssl/ssl/ssl.h user/imp/tbemd/crypto/openssl/ssl/ssl3.h user/imp/tbemd/crypto/openssl/ssl/ssl_algs.c user/imp/tbemd/crypto/openssl/ssl/ssl_asn1.c user/imp/tbemd/crypto/openssl/ssl/ssl_cert.c user/imp/tbemd/crypto/openssl/ssl/ssl_ciph.c user/imp/tbemd/crypto/openssl/ssl/ssl_err.c user/imp/tbemd/crypto/openssl/ssl/ssl_lib.c user/imp/tbemd/crypto/openssl/ssl/ssl_locl.h user/imp/tbemd/crypto/openssl/ssl/ssl_rsa.c user/imp/tbemd/crypto/openssl/ssl/ssl_sess.c user/imp/tbemd/crypto/openssl/ssl/ssl_stat.c user/imp/tbemd/crypto/openssl/ssl/ssl_txt.c user/imp/tbemd/crypto/openssl/ssl/t1_enc.c user/imp/tbemd/crypto/openssl/ssl/t1_lib.c user/imp/tbemd/crypto/openssl/ssl/tls1.h user/imp/tbemd/crypto/openssl/test/Makefile user/imp/tbemd/crypto/openssl/test/cms-test.pl user/imp/tbemd/crypto/openssl/util/domd user/imp/tbemd/crypto/openssl/util/libeay.num user/imp/tbemd/crypto/openssl/util/mk1mf.pl user/imp/tbemd/crypto/openssl/util/mkdef.pl user/imp/tbemd/crypto/openssl/util/mkerr.pl user/imp/tbemd/crypto/openssl/util/pl/Mingw32.pl user/imp/tbemd/crypto/openssl/util/pl/VC-32.pl user/imp/tbemd/crypto/openssl/util/pod2man.pl user/imp/tbemd/crypto/openssl/util/shlib_wrap.sh Directory Properties: user/imp/tbemd/contrib/bind9/ (props changed) user/imp/tbemd/contrib/netcat/ (props changed) user/imp/tbemd/contrib/openpam/ (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/crypto/openssh/ (props changed) user/imp/tbemd/crypto/openssl/ (props changed) Modified: user/imp/tbemd/bin/cp/utils.c ============================================================================== --- user/imp/tbemd/bin/cp/utils.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/cp/utils.c Mon Apr 12 23:04:38 2010 (r206516) @@ -323,8 +323,8 @@ setfile(struct stat *fs, int fd) fs->st_mode &= S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO; - TIMESPEC_TO_TIMEVAL(&tv[0], &fs->st_atimespec); - TIMESPEC_TO_TIMEVAL(&tv[1], &fs->st_mtimespec); + TIMESPEC_TO_TIMEVAL(&tv[0], &fs->st_atim); + TIMESPEC_TO_TIMEVAL(&tv[1], &fs->st_mtim); if (islink ? lutimes(to.p_path, tv) : utimes(to.p_path, tv)) { warn("%sutimes: %s", islink ? "l" : "", to.p_path); rval = 1; Modified: user/imp/tbemd/bin/ls/cmp.c ============================================================================== --- user/imp/tbemd/bin/ls/cmp.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/ls/cmp.c Mon Apr 12 23:04:38 2010 (r206516) @@ -66,17 +66,17 @@ int modcmp(const FTSENT *a, const FTSENT *b) { - if (b->fts_statp->st_mtimespec.tv_sec > - a->fts_statp->st_mtimespec.tv_sec) + if (b->fts_statp->st_mtim.tv_sec > + a->fts_statp->st_mtim.tv_sec) return (1); - if (b->fts_statp->st_mtimespec.tv_sec < - a->fts_statp->st_mtimespec.tv_sec) + if (b->fts_statp->st_mtim.tv_sec < + a->fts_statp->st_mtim.tv_sec) return (-1); - if (b->fts_statp->st_mtimespec.tv_nsec > - a->fts_statp->st_mtimespec.tv_nsec) + if (b->fts_statp->st_mtim.tv_nsec > + a->fts_statp->st_mtim.tv_nsec) return (1); - if (b->fts_statp->st_mtimespec.tv_nsec < - a->fts_statp->st_mtimespec.tv_nsec) + if (b->fts_statp->st_mtim.tv_nsec < + a->fts_statp->st_mtim.tv_nsec) return (-1); return (strcoll(a->fts_name, b->fts_name)); } @@ -92,17 +92,17 @@ int acccmp(const FTSENT *a, const FTSENT *b) { - if (b->fts_statp->st_atimespec.tv_sec > - a->fts_statp->st_atimespec.tv_sec) + if (b->fts_statp->st_atim.tv_sec > + a->fts_statp->st_atim.tv_sec) return (1); - if (b->fts_statp->st_atimespec.tv_sec < - a->fts_statp->st_atimespec.tv_sec) + if (b->fts_statp->st_atim.tv_sec < + a->fts_statp->st_atim.tv_sec) return (-1); - if (b->fts_statp->st_atimespec.tv_nsec > - a->fts_statp->st_atimespec.tv_nsec) + if (b->fts_statp->st_atim.tv_nsec > + a->fts_statp->st_atim.tv_nsec) return (1); - if (b->fts_statp->st_atimespec.tv_nsec < - a->fts_statp->st_atimespec.tv_nsec) + if (b->fts_statp->st_atim.tv_nsec < + a->fts_statp->st_atim.tv_nsec) return (-1); return (strcoll(a->fts_name, b->fts_name)); } @@ -118,17 +118,17 @@ int birthcmp(const FTSENT *a, const FTSENT *b) { - if (b->fts_statp->st_birthtimespec.tv_sec > - a->fts_statp->st_birthtimespec.tv_sec) + if (b->fts_statp->st_birthtim.tv_sec > + a->fts_statp->st_birthtim.tv_sec) return (1); - if (b->fts_statp->st_birthtimespec.tv_sec < - a->fts_statp->st_birthtimespec.tv_sec) + if (b->fts_statp->st_birthtim.tv_sec < + a->fts_statp->st_birthtim.tv_sec) return (-1); - if (b->fts_statp->st_birthtimespec.tv_nsec > - a->fts_statp->st_birthtimespec.tv_nsec) + if (b->fts_statp->st_birthtim.tv_nsec > + a->fts_statp->st_birthtim.tv_nsec) return (1); - if (b->fts_statp->st_birthtimespec.tv_nsec < - a->fts_statp->st_birthtimespec.tv_nsec) + if (b->fts_statp->st_birthtim.tv_nsec < + a->fts_statp->st_birthtim.tv_nsec) return (-1); return (strcoll(a->fts_name, b->fts_name)); } @@ -144,17 +144,17 @@ int statcmp(const FTSENT *a, const FTSENT *b) { - if (b->fts_statp->st_ctimespec.tv_sec > - a->fts_statp->st_ctimespec.tv_sec) + if (b->fts_statp->st_ctim.tv_sec > + a->fts_statp->st_ctim.tv_sec) return (1); - if (b->fts_statp->st_ctimespec.tv_sec < - a->fts_statp->st_ctimespec.tv_sec) + if (b->fts_statp->st_ctim.tv_sec < + a->fts_statp->st_ctim.tv_sec) return (-1); - if (b->fts_statp->st_ctimespec.tv_nsec > - a->fts_statp->st_ctimespec.tv_nsec) + if (b->fts_statp->st_ctim.tv_nsec > + a->fts_statp->st_ctim.tv_nsec) return (1); - if (b->fts_statp->st_ctimespec.tv_nsec < - a->fts_statp->st_ctimespec.tv_nsec) + if (b->fts_statp->st_ctim.tv_nsec < + a->fts_statp->st_ctim.tv_nsec) return (-1); return (strcoll(a->fts_name, b->fts_name)); } Modified: user/imp/tbemd/bin/pax/Makefile ============================================================================== --- user/imp/tbemd/bin/pax/Makefile Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/pax/Makefile Mon Apr 12 23:04:38 2010 (r206516) @@ -29,8 +29,5 @@ PROG= pax SRCS= ar_io.c ar_subs.c buf_subs.c cache.c cpio.c file_subs.c ftree.c \ gen_subs.c getoldopt.c options.c pat_rep.c pax.c sel_subs.c \ tables.c tar.c tty_subs.c -#XXX NOTYET -#MAN= pax.1 tar.1 cpio.1 -#LINKS= ${BINDIR}/pax ${BINDIR}/tar ${BINDIR}/pax ${BINDIR}/cpio .include Modified: user/imp/tbemd/bin/pax/getoldopt.c ============================================================================== --- user/imp/tbemd/bin/pax/getoldopt.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/pax/getoldopt.c Mon Apr 12 23:04:38 2010 (r206516) @@ -1,4 +1,4 @@ -/* $OpenBSD: getoldopt.c,v 1.4 2000/01/22 20:24:51 deraadt Exp $ */ +/* $OpenBSD: getoldopt.c,v 1.9 2009/10/27 23:59:22 deraadt Exp $ */ /* $NetBSD: getoldopt.c,v 1.3 1995/03/21 09:07:28 cgd Exp $ */ /*- @@ -7,7 +7,7 @@ * otherwise, it uses the old rules used by tar, dump, and ps. * * Written 25 August 1985 by John Gilmore (ihnp4!hoptoad!gnu) and placed - * in the Pubic Domain for your edification and enjoyment. + * in the Public Domain for your edification and enjoyment. */ #include @@ -33,7 +33,8 @@ getoldopt(int argc, char **argv, const c optarg = NULL; if (key == NULL) { /* First time */ - if (argc < 2) return EOF; + if (argc < 2) + return (-1); key = argv[1]; if (*key == '-') use_getopt++; @@ -42,18 +43,18 @@ getoldopt(int argc, char **argv, const c } if (use_getopt) - return getopt(argc, argv, optstring); + return (getopt(argc, argv, optstring)); c = *key++; if (c == '\0') { key--; - return EOF; + return (-1); } place = strchr(optstring, c); if (place == NULL || c == ':') { fprintf(stderr, "%s: unknown option %c\n", argv[0], c); - return('?'); + return ('?'); } place++; @@ -64,9 +65,9 @@ getoldopt(int argc, char **argv, const c } else { fprintf(stderr, "%s: %c argument missing\n", argv[0], c); - return('?'); + return ('?'); } } - return(c); + return (c); } Modified: user/imp/tbemd/bin/ps/extern.h ============================================================================== --- user/imp/tbemd/bin/ps/extern.h Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/ps/extern.h Mon Apr 12 23:04:38 2010 (r206516) @@ -48,6 +48,7 @@ void command(KINFO *, VARENT *); void cputime(KINFO *, VARENT *); int donlist(void); void elapsed(KINFO *, VARENT *); +void elapseds(KINFO *, VARENT *); void emulname(KINFO *, VARENT *); VARENT *find_varentry(VAR *); const char *fmt_argv(char **, char *, size_t); Modified: user/imp/tbemd/bin/ps/keyword.c ============================================================================== --- user/imp/tbemd/bin/ps/keyword.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/ps/keyword.c Mon Apr 12 23:04:38 2010 (r206516) @@ -89,6 +89,7 @@ static VAR var[] = { {"emul", "EMUL", NULL, LJUST, emulname, NULL, EMULLEN, 0, CHAR, NULL, 0}, {"etime", "ELAPSED", NULL, USER, elapsed, NULL, 12, 0, CHAR, NULL, 0}, + {"etimes", "ELAPSED", NULL, USER, elapseds, NULL, 12, 0, CHAR, NULL, 0}, {"f", "F", NULL, 0, kvar, NULL, 7, KOFF(ki_flag), INT, "x", 0}, {"flags", "", "f", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, {"ignored", "", "sigignore", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, Modified: user/imp/tbemd/bin/ps/print.c ============================================================================== --- user/imp/tbemd/bin/ps/print.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/ps/print.c Mon Apr 12 23:04:38 2010 (r206516) @@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -618,6 +619,21 @@ elapsed(KINFO *k, VARENT *ve) (void)printf("%*s", v->width, obuff); } +void +elapseds(KINFO *k, VARENT *ve) +{ + VAR *v; + time_t val; + + v = ve->var; + if (!k->ki_valid) { + (void)printf("%-*s", v->width, "-"); + return; + } + val = now - k->ki_p->ki_start.tv_sec; + (void)printf("%*jd", v->width, (intmax_t)val); +} + double getpcpu(const KINFO *k) { Modified: user/imp/tbemd/bin/ps/ps.1 ============================================================================== --- user/imp/tbemd/bin/ps/ps.1 Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/ps/ps.1 Mon Apr 12 23:04:38 2010 (r206516) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd July 9, 2009 +.Dd March 17, 2010 .Dt PS 1 .Os .Sh NAME @@ -284,11 +284,10 @@ The percentage of real memory used by th The flags associated with the process as in the include file .In sys/proc.h : -.Bl -column P_STOPPED_SINGLE 0x4000000 +.Bl -column P_SINGLE_BOUNDARY 0x40000000 .It Dv "P_ADVLOCK" Ta No "0x00001 Process may hold a POSIX advisory lock" .It Dv "P_CONTROLT" Ta No "0x00002 Has a controlling terminal" .It Dv "P_KTHREAD" Ta No "0x00004 Kernel thread" -.It Dv "P_NOLOAD" Ta No "0x00008 Ignore during load avg calculations" .It Dv "P_PPWAIT" Ta No "0x00010 Parent is waiting for child to exec/exit" .It Dv "P_PROFIL" Ta No "0x00020 Has started profiling" .It Dv "P_STOPPROF" Ta No "0x00040 Has thread in requesting to stop prof" @@ -305,8 +304,14 @@ the include file .It Dv "P_STOPPED_SINGLE" Ta No "0x80000 Only one thread can continue" .It Dv "P_PROTECTED" Ta No "0x100000 Do not kill on memory overcommit" .It Dv "P_SIGEVENT" Ta No "0x200000 Process pending signals changed" +.It Dv "P_SINGLE_BOUNDARY" Ta No "0x400000 Threads should suspend at user boundary" +.It Dv "P_HWPMC" Ta No "0x800000 Process is using HWPMCs" .It Dv "P_JAILED" Ta No "0x1000000 Process is in jail" .It Dv "P_INEXEC" Ta No "0x4000000 Process is in execve()" +.It Dv "P_STATCHILD" Ta No "0x8000000 Child process stopped or exited" +.It Dv "P_INMEM" Ta No "0x10000000 Loaded into memory" +.It Dv "P_SWAPPINGOUT" Ta No "0x20000000 Process is being swapped out" +.It Dv "P_SWAPPINGIN" Ta No "0x40000000 Process is being swapped in" .El .It Cm label The MAC label of the process. @@ -474,7 +479,12 @@ command and arguments .It Cm cpu short-term CPU usage factor (for scheduling) .It Cm etime -elapsed running time +elapsed running time, format +.Op days- Ns +.Op hours: Ns +minutes:seconds. +.It Cm etimes +elapsed running time, in decimal integer seconds .It Cm flags the process flags, in hexadecimal (alias .Cm f ) @@ -615,6 +625,13 @@ wait channel (as a symbolic name) .It Cm xstat exit or stop status (valid only for stopped or zombie process) .El +.Pp +Note that the +.Cm pending +column displays bitmask of signals pending in the process queue when +.Fl H +option is not specified, otherwise the per-thread queue of pending signals +is shown. .Sh ENVIRONMENT The following environment variables affect the execution of .Nm : Modified: user/imp/tbemd/bin/rcp/rcp.c ============================================================================== --- user/imp/tbemd/bin/rcp/rcp.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/rcp/rcp.c Mon Apr 12 23:04:38 2010 (r206516) @@ -390,8 +390,8 @@ syserr: run_err("%s: %s", name, strerr * versions expecting microseconds. */ (void)snprintf(buf, sizeof(buf), "T%ld 0 %ld 0\n", - (long)stb.st_mtimespec.tv_sec, - (long)stb.st_atimespec.tv_sec); + (long)stb.st_mtim.tv_sec, + (long)stb.st_atim.tv_sec); (void)write(rem, buf, strlen(buf)); if (response() < 0) goto next; @@ -454,8 +454,8 @@ rsource(char *name, struct stat *statp) last++; if (pflag) { (void)snprintf(path, sizeof(path), "T%ld 0 %ld 0\n", - (long)statp->st_mtimespec.tv_sec, - (long)statp->st_atimespec.tv_sec); + (long)statp->st_mtim.tv_sec, + (long)statp->st_atim.tv_sec); (void)write(rem, path, strlen(path)); if (response() < 0) { closedir(dirp); Modified: user/imp/tbemd/bin/setfacl/file.c ============================================================================== --- user/imp/tbemd/bin/setfacl/file.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/setfacl/file.c Mon Apr 12 23:04:38 2010 (r206516) @@ -14,14 +14,14 @@ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #include Modified: user/imp/tbemd/bin/setfacl/mask.c ============================================================================== --- user/imp/tbemd/bin/setfacl/mask.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/setfacl/mask.c Mon Apr 12 23:04:38 2010 (r206516) @@ -14,14 +14,14 @@ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #include Modified: user/imp/tbemd/bin/setfacl/merge.c ============================================================================== --- user/imp/tbemd/bin/setfacl/merge.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/setfacl/merge.c Mon Apr 12 23:04:38 2010 (r206516) @@ -14,14 +14,14 @@ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #include Modified: user/imp/tbemd/bin/setfacl/remove.c ============================================================================== --- user/imp/tbemd/bin/setfacl/remove.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/setfacl/remove.c Mon Apr 12 23:04:38 2010 (r206516) @@ -14,14 +14,14 @@ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #include Modified: user/imp/tbemd/bin/setfacl/setfacl.1 ============================================================================== --- user/imp/tbemd/bin/setfacl/setfacl.1 Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/setfacl/setfacl.1 Mon Apr 12 23:04:38 2010 (r206516) @@ -14,14 +14,14 @@ .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE -.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/bin/setfacl/setfacl.c ============================================================================== --- user/imp/tbemd/bin/setfacl/setfacl.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/setfacl/setfacl.c Mon Apr 12 23:04:38 2010 (r206516) @@ -14,14 +14,14 @@ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #include Modified: user/imp/tbemd/bin/setfacl/setfacl.h ============================================================================== --- user/imp/tbemd/bin/setfacl/setfacl.h Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/setfacl/setfacl.h Mon Apr 12 23:04:38 2010 (r206516) @@ -14,14 +14,14 @@ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. * * $FreeBSD$ */ Modified: user/imp/tbemd/bin/setfacl/util.c ============================================================================== --- user/imp/tbemd/bin/setfacl/util.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/setfacl/util.c Mon Apr 12 23:04:38 2010 (r206516) @@ -14,14 +14,14 @@ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #include Modified: user/imp/tbemd/bin/sh/eval.c ============================================================================== --- user/imp/tbemd/bin/sh/eval.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/sh/eval.c Mon Apr 12 23:04:38 2010 (r206516) @@ -91,6 +91,7 @@ STATIC void evalloop(union node *, int); STATIC void evalfor(union node *, int); STATIC void evalcase(union node *, int); STATIC void evalsubshell(union node *, int); +STATIC void evalredir(union node *, int); STATIC void expredir(union node *); STATIC void evalpipe(union node *); STATIC void evalcommand(union node *, int, struct backcmd *); @@ -221,10 +222,7 @@ evaltree(union node *n, int flags) evaltree(n->nbinary.ch2, flags); break; case NREDIR: - expredir(n->nredir.redirect); - redirect(n->nredir.redirect, REDIR_PUSH); - evaltree(n->nredir.n, flags); - popredir(); + evalredir(n, flags); break; case NSUBSHELL: evalsubshell(n, flags); @@ -415,6 +413,46 @@ evalsubshell(union node *n, int flags) } +/* + * Evaluate a redirected compound command. + */ + +STATIC void +evalredir(union node *n, int flags) +{ + struct jmploc jmploc; + struct jmploc *savehandler; + volatile int in_redirect = 1; + + expredir(n->nredir.redirect); + savehandler = handler; + if (setjmp(jmploc.loc)) { + int e; + + handler = savehandler; + e = exception; + if (e == EXERROR || e == EXEXEC) { + popredir(); + if (in_redirect) { + exitstatus = 2; + return; + } + } + longjmp(handler->loc, 1); + } else { + INTOFF; + handler = &jmploc; + redirect(n->nredir.redirect, REDIR_PUSH); + in_redirect = 0; + INTON; + evaltree(n->nredir.n, flags); + } + INTOFF; + handler = savehandler; + popredir(); + INTON; +} + /* * Compute the names of the files in a redirection list. @@ -597,6 +635,7 @@ evalcommand(union node *cmd, int flags, char *lastarg; int realstatus; int do_clearcmdentry; + char *path = pathval(); /* First expand the arguments. */ TRACE(("evalcommand(%p, %d) called\n", (void *)cmd, flags)); @@ -679,10 +718,10 @@ evalcommand(union node *cmd, int flags, /* Variable assignment(s) without command */ cmdentry.cmdtype = CMDBUILTIN; cmdentry.u.index = BLTINCMD; - cmdentry.special = 1; + cmdentry.special = 0; } else { static const char PATH[] = "PATH="; - char *path = pathval(); + int cmd_flags = 0, bltinonly = 0; /* * Modify the command lookup path, if a PATH= assignment @@ -713,24 +752,68 @@ evalcommand(union node *cmd, int flags, do_clearcmdentry = 1; } - find_command(argv[0], &cmdentry, 0, path); - /* implement the bltin builtin here */ - if (cmdentry.cmdtype == CMDBUILTIN && cmdentry.u.index == BLTINCMD) { - for (;;) { - argv++; - if (--argc == 0) - break; - if ((cmdentry.u.index = find_builtin(*argv, - &cmdentry.special)) < 0) { + for (;;) { + if (bltinonly) { + cmdentry.u.index = find_builtin(*argv, &cmdentry.special); + if (cmdentry.u.index < 0) { cmdentry.u.index = BLTINCMD; argv--; argc++; break; } - if (cmdentry.u.index != BLTINCMD) + } else + find_command(argv[0], &cmdentry, cmd_flags, path); + /* implement the bltin and command builtins here */ + if (cmdentry.cmdtype != CMDBUILTIN) + break; + if (cmdentry.u.index == BLTINCMD) { + if (argc == 1) break; - } + argv++; + argc--; + bltinonly = 1; + } else if (cmdentry.u.index == COMMANDCMD) { + if (argc == 1) + break; + if (!strcmp(argv[1], "-p")) { + if (argc == 2) + break; + if (argv[2][0] == '-') { + if (strcmp(argv[2], "--")) + break; + if (argc == 3) + break; + argv += 3; + argc -= 3; + } else { + argv += 2; + argc -= 2; + } + path = _PATH_STDPATH; + clearcmdentry(0); + do_clearcmdentry = 1; + } else if (!strcmp(argv[1], "--")) { + if (argc == 2) + break; + argv += 2; + argc -= 2; + } else if (argv[1][0] == '-') + break; + else { + argv++; + argc--; + } + cmd_flags |= DO_NOFUNC; + bltinonly = 0; + } else + break; } + /* + * Special builtins lose their special properties when + * called via 'command'. + */ + if (cmd_flags & DO_NOFUNC) + cmdentry.special = 0; } /* Fork off a child process if necessary. */ @@ -741,9 +824,7 @@ evalcommand(union node *cmd, int flags, && (cmdentry.cmdtype != CMDBUILTIN || cmdentry.u.index == CDCMD || cmdentry.u.index == DOTCMD - || cmdentry.u.index == EVALCMD)) - || (cmdentry.cmdtype == CMDBUILTIN && - cmdentry.u.index == COMMANDCMD)) { + || cmdentry.u.index == EVALCMD))) { jp = makejob(cmd, 1); mode = cmd->ncmd.backgnd; if (flags & EV_BACKCMD) { @@ -770,7 +851,6 @@ evalcommand(union node *cmd, int flags, #ifdef DEBUG trputs("Shell function: "); trargs(argv); #endif - redirect(cmd->ncmd.redirect, REDIR_PUSH); saveparam = shellparam; shellparam.malloc = 0; shellparam.reset = 1; @@ -788,6 +868,8 @@ evalcommand(union node *cmd, int flags, else { freeparam(&shellparam); shellparam = saveparam; + if (exception == EXERROR || exception == EXEXEC) + popredir(); } unreffunc(cmdentry.u.func); poplocalvars(); @@ -798,6 +880,7 @@ evalcommand(union node *cmd, int flags, } handler = &jmploc; funcnest++; + redirect(cmd->ncmd.redirect, REDIR_PUSH); INTON; for (sp = varlist.list ; sp ; sp = sp->next) mklocal(sp->text); @@ -846,6 +929,12 @@ evalcommand(union node *cmd, int flags, } handler = &jmploc; redirect(cmd->ncmd.redirect, mode); + /* + * If there is no command word, redirection errors should + * not be fatal but assignment errors should. + */ + if (argc == 0 && !(flags & EV_BACKCMD)) + cmdentry.special = 1; if (cmdentry.special) listsetvar(cmdenviron); commandname = argv[0]; @@ -871,6 +960,9 @@ cmddone: backcmd->nleft = memout.nextc - memout.buf; memout.buf = NULL; } + if (cmdentry.u.index != EXECCMD && + (e == -1 || e == EXERROR || e == EXEXEC)) + popredir(); if (e != -1) { if ((e != EXERROR && e != EXEXEC) || cmdentry.special) @@ -879,8 +971,6 @@ cmddone: if (flags != EV_BACKCMD) FORCEINTON; } - if (cmdentry.u.index != EXECCMD) - popredir(); } else { #ifdef DEBUG trputs("normal command: "); trargs(argv); @@ -889,7 +979,7 @@ cmddone: for (sp = varlist.list ; sp ; sp = sp->next) setvareq(sp->text, VEXPORT|VSTACK); envp = environment(); - shellexec(argv, envp, pathval(), cmdentry.u.index); + shellexec(argv, envp, path, cmdentry.u.index); /*NOTREACHED*/ } goto out; @@ -996,15 +1086,11 @@ int commandcmd(int argc, char **argv) { static char stdpath[] = _PATH_STDPATH; - struct jmploc loc, *old; - struct strlist *sp; char *path; int ch; int cmd = -1; - for (sp = cmdenviron; sp ; sp = sp->next) - setvareq(sp->text, VEXPORT|VSTACK); - path = pathval(); + path = bltinlookup("PATH", 1); optind = optreset = 1; opterr = 0; @@ -1032,22 +1118,14 @@ commandcmd(int argc, char **argv) error("wrong number of arguments"); return typecmd_impl(2, argv - 1, cmd, path); } - if (argc != 0) { - old = handler; - handler = &loc; - if (setjmp(handler->loc) == 0) - shellexec(argv, environment(), path, 0); - handler = old; - if (exception == EXEXEC) - exit(exerrno); - exraise(exception); - } + if (argc != 0) + error("commandcmd() called while it should not be"); /* * Do nothing successfully if no command was specified; * ksh also does this. */ - exit(0); + return 0; } Modified: user/imp/tbemd/bin/sh/exec.c ============================================================================== --- user/imp/tbemd/bin/sh/exec.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/sh/exec.c Mon Apr 12 23:04:38 2010 (r206516) @@ -248,7 +248,7 @@ hashcmd(int argc __unused, char **argv _ && (cmdp->cmdtype == CMDNORMAL || (cmdp->cmdtype == CMDBUILTIN && builtinloc >= 0))) delete_cmd_entry(); - find_command(name, &entry, 1, pathval()); + find_command(name, &entry, DO_ERR, pathval()); if (verbose) { if (entry.cmdtype != CMDUNKNOWN) { /* if no error msg */ cmdp = cmdlookup(name, 0); @@ -310,10 +310,10 @@ printentry(struct tblentry *cmdp, int ve */ void -find_command(const char *name, struct cmdentry *entry, int printerr, +find_command(const char *name, struct cmdentry *entry, int act, const char *path) { - struct tblentry *cmdp; + struct tblentry *cmdp, loc_cmd; int idx; int prev; char *fullname; @@ -330,13 +330,19 @@ find_command(const char *name, struct cm } /* If name is in the table, and not invalidated by cd, we're done */ - if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->rehash == 0) - goto success; + if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->rehash == 0) { + if (cmdp->cmdtype == CMDFUNCTION && act & DO_NOFUNC) + cmdp = NULL; + else + goto success; + } /* If %builtin not in path, check for builtin next */ if (builtinloc < 0 && (i = find_builtin(name, &spec)) >= 0) { INTOFF; cmdp = cmdlookup(name, 1); + if (cmdp->cmdtype == CMDFUNCTION) + cmdp = &loc_cmd; cmdp->cmdtype = CMDBUILTIN; cmdp->param.index = i; cmdp->special = spec; @@ -365,6 +371,8 @@ loop: goto loop; INTOFF; cmdp = cmdlookup(name, 1); + if (cmdp->cmdtype == CMDFUNCTION) + cmdp = &loc_cmd; cmdp->cmdtype = CMDBUILTIN; cmdp->param.index = i; cmdp->special = spec; @@ -414,6 +422,8 @@ loop: TRACE(("searchexec \"%s\" returns \"%s\"\n", name, fullname)); INTOFF; cmdp = cmdlookup(name, 1); + if (cmdp->cmdtype == CMDFUNCTION) + cmdp = &loc_cmd; cmdp->cmdtype = CMDNORMAL; cmdp->param.index = idx; INTON; @@ -421,9 +431,9 @@ loop: } /* We failed. If there was an entry for this command, delete it */ - if (cmdp) + if (cmdp && cmdp->cmdtype != CMDFUNCTION) delete_cmd_entry(); - if (printerr) { + if (act & DO_ERR) { if (e == ENOENT || e == ENOTDIR) outfmt(out2, "%s: not found\n", name); else Modified: user/imp/tbemd/bin/sh/exec.h ============================================================================== --- user/imp/tbemd/bin/sh/exec.h Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/sh/exec.h Mon Apr 12 23:04:38 2010 (r206516) @@ -57,6 +57,10 @@ struct cmdentry { }; +/* action to find_command() */ +#define DO_ERR 0x01 /* prints errors */ +#define DO_NOFUNC 0x02 /* don't return shell functions, for command */ + extern const char *pathopt; /* set by padvance */ extern int exerrno; /* last exec error */ Modified: user/imp/tbemd/bin/sh/expand.c ============================================================================== --- user/imp/tbemd/bin/sh/expand.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/sh/expand.c Mon Apr 12 23:04:38 2010 (r206516) @@ -273,7 +273,6 @@ exptilde(char *p, int flag) switch(c) { case CTLESC: /* This means CTL* are always considered quoted. */ case CTLVAR: - case CTLENDVAR: case CTLBACKQ: case CTLBACKQ | CTLQUOTE: case CTLARI: @@ -285,6 +284,7 @@ exptilde(char *p, int flag) goto done; break; case '/': + case CTLENDVAR: goto done; } p++; @@ -506,7 +506,9 @@ subevalvar(char *p, char *str, int strlo int amount; herefd = -1; - argstr(p, 0); + argstr(p, (subtype == VSTRIMLEFT || subtype == VSTRIMLEFTMAX || + subtype == VSTRIMRIGHT || subtype == VSTRIMRIGHTMAX ? + EXP_CASE : 0) | EXP_TILDE); STACKSTRNUL(expdest); herefd = saveherefd; argbackq = saveargbackq; Modified: user/imp/tbemd/bin/sh/mksyntax.c ============================================================================== --- user/imp/tbemd/bin/sh/mksyntax.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/sh/mksyntax.c Mon Apr 12 23:04:38 2010 (r206516) @@ -232,7 +232,6 @@ main(int argc __unused, char **argv __un add("\n", "CNL"); add("\\", "CBACK"); add("`", "CBQUOTE"); - add("'", "CSQUOTE"); add("\"", "CDQUOTE"); add("$", "CVAR"); add("}", "CENDVAR"); Modified: user/imp/tbemd/bin/sh/options.c ============================================================================== --- user/imp/tbemd/bin/sh/options.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/sh/options.c Mon Apr 12 23:04:38 2010 (r206516) @@ -93,8 +93,11 @@ procargs(int argc, char **argv) options(1); if (*argptr == NULL && minusc == NULL) sflag = 1; - if (iflag == 2 && sflag == 1 && isatty(0) && isatty(1)) + if (iflag != 0 && sflag == 1 && isatty(0) && isatty(1)) { iflag = 1; + if (Eflag == 2) + Eflag = 1; + } if (mflag == 2) mflag = iflag; for (i = 0; i < NOPTS; i++) Modified: user/imp/tbemd/bin/sh/parser.c ============================================================================== --- user/imp/tbemd/bin/sh/parser.c Mon Apr 12 23:03:24 2010 (r206515) +++ user/imp/tbemd/bin/sh/parser.c Mon Apr 12 23:04:38 2010 (r206516) @@ -79,6 +79,10 @@ struct heredoc { int striptabs; /* if set, strip leading tabs */ }; +struct parser_temp { + struct parser_temp *next; + void *data; +}; STATIC struct heredoc *heredoclist; /* list of here documents to read */ @@ -94,6 +98,7 @@ STATIC struct heredoc *heredoc; STATIC int quoteflag; /* set if (part of) last token was quoted */ STATIC int startlinno; /* line # where last token started */ STATIC int funclinno; /* line # where the current function started */ +STATIC struct parser_temp *parser_temp; /* XXX When 'noaliases' is set to one, no alias expansion takes place. */ static int noaliases = 0; @@ -117,6 +122,73 @@ STATIC void synerror(const char *); STATIC void setprompt(int); +STATIC void * +parser_temp_alloc(size_t len) +{ + struct parser_temp *t; + + INTOFF; + t = ckmalloc(sizeof(*t)); + t->data = NULL; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:05:34 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16FB1106566C; Mon, 12 Apr 2010 23:05:34 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0463F8FC17; Mon, 12 Apr 2010 23:05:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CN5YXU067721; Mon, 12 Apr 2010 23:05:34 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CN5WPI067703; Mon, 12 Apr 2010 23:05:32 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122305.o3CN5WPI067703@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:05:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206517 - in user/imp/tbemd: etc etc/defaults etc/rc.d games/fortune games/fortune/datfiles games/pom gnu/usr.bin gnu/usr.bin/cpio gnu/usr.bin/diff gnu/usr.bin/dtc gnu/usr.bin/gdb gnu/u... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:05:34 -0000 Author: imp Date: Mon Apr 12 23:05:32 2010 New Revision: 206517 URL: http://svn.freebsd.org/changeset/base/206517 Log: merge from head: 3 of many Added: user/imp/tbemd/etc/rc.d/ubthidhci - copied unchanged from r206514, head/etc/rc.d/ubthidhci Deleted: user/imp/tbemd/gnu/usr.bin/cpio/ user/imp/tbemd/include/regexp.h Modified: user/imp/tbemd/etc/Makefile user/imp/tbemd/etc/defaults/periodic.conf user/imp/tbemd/etc/defaults/rc.conf user/imp/tbemd/etc/inetd.conf user/imp/tbemd/etc/network.subr user/imp/tbemd/etc/rc.d/ip6addrctl user/imp/tbemd/etc/rc.d/jail user/imp/tbemd/etc/rc.d/netif user/imp/tbemd/etc/rc.d/netoptions user/imp/tbemd/etc/rc.d/tmp user/imp/tbemd/etc/rc.firewall user/imp/tbemd/etc/rc.subr user/imp/tbemd/etc/termcap.small user/imp/tbemd/games/fortune/Notes user/imp/tbemd/games/fortune/datfiles/fortunes user/imp/tbemd/games/fortune/datfiles/fortunes-o.real user/imp/tbemd/games/fortune/datfiles/fortunes.sp.ok user/imp/tbemd/games/fortune/datfiles/limerick user/imp/tbemd/games/fortune/datfiles/startrek user/imp/tbemd/games/fortune/datfiles/zippy user/imp/tbemd/games/pom/pom.6 user/imp/tbemd/gnu/usr.bin/Makefile user/imp/tbemd/gnu/usr.bin/diff/context.c.diff user/imp/tbemd/gnu/usr.bin/diff/diff.c.diff user/imp/tbemd/gnu/usr.bin/dtc/Makefile user/imp/tbemd/gnu/usr.bin/gdb/Makefile.inc user/imp/tbemd/gnu/usr.bin/gdb/arch/arm/nm-fbsd.h user/imp/tbemd/gnu/usr.bin/gdb/kgdb/trgt_ia64.c user/imp/tbemd/include/Makefile user/imp/tbemd/include/dlfcn.h user/imp/tbemd/include/inttypes.h user/imp/tbemd/include/netdb.h user/imp/tbemd/include/nsswitch.h Modified: user/imp/tbemd/etc/Makefile ============================================================================== --- user/imp/tbemd/etc/Makefile Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/Makefile Mon Apr 12 23:05:32 2010 (r206517) @@ -18,7 +18,7 @@ BIN1= auth.conf \ rc rc.bsdextended rc.firewall rc.initdiskless \ rc.sendmail rc.shutdown \ rc.subr remote rpc services shells \ - sysctl.conf syslog.conf + sysctl.conf syslog.conf termcap.small .if exists(${.CURDIR}/etc.${MACHINE}/ttys) BIN1+= etc.${MACHINE}/ttys @@ -161,6 +161,9 @@ distribution: ${BIN2} ${DESTDIR}/etc; \ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \ master.passwd nsmb.conf opieaccess ${DESTDIR}/etc; +.if ${MK_AT} == "no" + sed -i "" -e 's;.*/usr/libexec/atrun;#&;' ${DESTDIR}/etc/crontab +.endif .if ${MK_TCSH} == "no" sed -i "" -e 's;/bin/csh;/bin/sh;' ${DESTDIR}/etc/master.passwd .endif Modified: user/imp/tbemd/etc/defaults/periodic.conf ============================================================================== --- user/imp/tbemd/etc/defaults/periodic.conf Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/defaults/periodic.conf Mon Apr 12 23:05:32 2010 (r206517) @@ -46,7 +46,7 @@ daily_clean_tmps_enable="NO" # Delete daily_clean_tmps_dirs="/tmp" # Delete under here daily_clean_tmps_days="3" # If not accessed for daily_clean_tmps_ignore=".X*-lock .X11-unix .ICE-unix .font-unix .XIM-unix" -daily_clean_tmps_ignore="$daily_clean_tmps_ignore quota.user quota.group" +daily_clean_tmps_ignore="$daily_clean_tmps_ignore quota.user quota.group .snap" # Don't delete these daily_clean_tmps_verbose="YES" # Mention files deleted Modified: user/imp/tbemd/etc/defaults/rc.conf ============================================================================== --- user/imp/tbemd/etc/defaults/rc.conf Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/defaults/rc.conf Mon Apr 12 23:05:32 2010 (r206517) @@ -210,6 +210,7 @@ cloned_interfaces="" # List of cloned n ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. #ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. #ifconfig_ed0_ipx="ipx 0x00010010" # Sample IPX address family entry. +#ifconfig_ed0_ipv6="RTADV" # Sample IPv6 entry for RA/rtsol(8) #ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64" # Sample IPv6 addr entry #ifconfig_ed0_alias0="inet6 2001:db8:2::1 prefixlen 64" # Sample IPv6 alias #ifconfig_fxp0_name="net0" # Change interface name from fxp0 to net0. @@ -435,12 +436,18 @@ rfcomm_pppd_server_two_channel="3" # Ove #rfcomm_pppd_server_two_register_sp="NO" # Override SP and DUN register #rfcomm_pppd_server_two_register_dun="NO" # for 'two' +#ubthidhci_enable="YES" # Switch an USB BT controller present on +#ubthidhci_busnum="3" # bus 3 and addr 2 from HID mode to HCI mode. +#ubthidhci_addr="2" # Check usbconfig list to find the correct + # numbers for your system. + ### Miscellaneous network options: ### icmp_bmcastecho="NO" # respond to broadcast ping packets ### IPv6 options: ### -ipv6_network_interfaces="none" # List of IPv6 network interfaces - # (or "auto" or "none"). +ipv6_network_interfaces="AUTO" # List of IPv6 network interfaces +ipv6_prefer="YES" # Use IPv6 when both IPv4 and IPv6 can be used +ipv6_privacy="NO" # Use privacy addresses with RTADV (RFC 4193) ipv6_defaultrouter="NO" # Set to IPv6 default gateway (or NO). #ipv6_defaultrouter="2002:c058:6301::" # Use this for 6to4 (RFC 3068) ipv6_static_routes="" # Set to static route list (or leave empty). @@ -499,7 +506,6 @@ ipv6_ipfilter_rules="/etc/ipf6.rules" # # for examples ip6addrctl_enable="YES" # Set to YES to enable default address selection ip6addrctl_verbose="NO" # Set to YES to enable verbose configuration messages -ipv6_prefer="NO" # Use IPv6 when both IPv4 and IPv6 can be used ############################################################## ### System console options ################################# @@ -637,6 +643,7 @@ mixer_enable="YES" # Run the sound mixer ### Jail Configuration ####################################### ############################################################## jail_enable="NO" # Set to NO to disable starting of any jails +jail_parallel_start="NO" # Start jails in the background jail_list="" # Space separated list of names of jails jail_set_hostname_allow="YES" # Allow root user in a jail to change its hostname jail_socket_unixiproute_only="YES" # Route only TCP/IP within a jail Modified: user/imp/tbemd/etc/inetd.conf ============================================================================== --- user/imp/tbemd/etc/inetd.conf Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/inetd.conf Mon Apr 12 23:05:32 2010 (r206517) @@ -16,8 +16,8 @@ #shell stream tcp6 nowait root /usr/libexec/rshd rshd #login stream tcp nowait root /usr/libexec/rlogind rlogind #login stream tcp6 nowait root /usr/libexec/rlogind rlogind -#finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s -#finger stream tcp6 nowait/3/10 nobody /usr/libexec/fingerd fingerd -s +#finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -k -s +#finger stream tcp6 nowait/3/10 nobody /usr/libexec/fingerd fingerd -k -s # # run comsat as root to be able to print partial mailbox contents w/ biff, # or use the safer tty:tty to just print that new mail has been received. Modified: user/imp/tbemd/etc/network.subr ============================================================================== --- user/imp/tbemd/etc/network.subr Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/network.subr Mon Apr 12 23:05:32 2010 (r206517) @@ -96,44 +96,32 @@ ifconfig_up() # inet6 specific if afexists inet6; then if ipv6if $1; then - if checkyesno ipv6_gateway_enable; then - _ipv6_opts="-accept_rtadv" - fi - else - if checkyesno ipv6_prefer; then - _ipv6_opts="-ifdisabled" - else - _ipv6_opts="ifdisabled" + # Implicitly handles ipv6_gateway_enable + _ipv6_opts='-ifdisabled -accept_rtadv' + + if ipv6_autoconfif $1; then + _ipv6_opts='-ifdisabled accept_rtadv' fi - # backward compatibility: $ipv6_enable - case $ipv6_enable in - [Yy][Ee][Ss]) - _ipv6_opts="${_ipv6_opts} accept_rtadv" - ;; - esac - fi + ifconfig $1 inet6 $_ipv6_opts - if [ -n "${_ipv6_opts}" ]; then - ifconfig $1 inet6 ${_ipv6_opts} - fi + # ifconfig_IF_ipv6 + ifconfig_args=`ifconfig_getargs $1 ipv6` - # ifconfig_IF_ipv6 - ifconfig_args=`ifconfig_getargs $1 ipv6` - if [ -n "${ifconfig_args}" ]; then - ifconfig $1 inet6 -ifdisabled - ifconfig $1 ${ifconfig_args} - _cfg=0 - fi + if [ -n "$ifconfig_args" ]; then + ifconfig $1 $ifconfig_args + _cfg=0 + fi + else + # Remove in FreeBSD 10.x + # Explicit test is necessary here to avoid nonexistence error + case "$ipv6_enable" in + [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) + warn "Interface $1 will NOT be configured for IPv6" + ;; + esac - # backward compatiblity: $ipv6_ifconfig_IF - ifconfig_args=`get_if_var $1 ipv6_ifconfig_IF` - if [ -n "${ifconfig_args}" ]; then - warn "\$ipv6_ifconfig_$1 is obsolete." \ - " Use ifconfig_$1_ipv6 instead." - ifconfig $1 inet6 -ifdisabled - ifconfig $1 inet6 ${ifconfig_args} - _cfg=0 + ifconfig $1 inet6 ifdisabled fi fi @@ -194,7 +182,7 @@ ifconfig_down() # $default if given. get_if_var() { - local _if _punct _var _default prefix suffix + local _if _punct _punct_c _var _default prefix suffix if [ $# -ne 2 -a $# -ne 3 ]; then err 3 'USAGE: get_if_var name var [default]' @@ -219,7 +207,7 @@ get_if_var() # outside this file. _ifconfig_getargs() { - local _ifn _af + local _ifn _af value _ifn=$1 _af=${2+_$2} @@ -227,7 +215,18 @@ _ifconfig_getargs() return 1 fi - get_if_var $_ifn ifconfig_IF$_af "$ifconfig_DEFAULT" + value=`get_if_var $_ifn ifconfig_IF$_af "$ifconfig_DEFAULT"` + + # Remove in FreeBSD 10.x + if [ "$_af" = _ipv6 -a -z "$value" ]; then + value=`get_if_var $_ifn ipv6_ifconfig_IF "$ifconfig_DEFAULT"` + if [ -n "$value" ]; then + warn "\$ipv6_ifconfig_$1 is obsolete." \ + " Use ifconfig_$1_ipv6 instead." + fi + fi + + echo $value } # ifconfig_getargs if [af] @@ -249,6 +248,8 @@ ifconfig_getargs() [Nn][Oo][Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;; [Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;; [Ww][Pp][Aa]) ;; + [Rr][Tt][Aa][Dd][Vv]) ;; + [Nn][Oo][Rr][Tt][Aa][Dd][Vv]) ;; *) _args="$_args $_arg" ;; @@ -372,77 +373,45 @@ afexists() esac } -# noafif if -# Returns 0 if the interface has no af configuration and 1 otherwise. -noafif() -{ - local _if - _if=$1 - - case $_if in - pflog[0-9]*|\ - pfsync[0-9]*|\ - an[0-9]*|\ - ath[0-9]*|\ - ipw[0-9]*|\ - iwi[0-9]*|\ - iwn[0-9]*|\ - ral[0-9]*|\ - wi[0-9]*|\ - wl[0-9]*|\ - wpi[0-9]*) - return 0 - ;; - esac - - return 1 -} - # ipv6if if # Returns 0 if the interface should be configured for IPv6 and # 1 otherwise. ipv6if() { - local _if _tmpargs i - _if=$1 - if ! afexists inet6; then return 1 fi # lo0 is always IPv6-enabled - case $_if in + case $1 in lo0) return 0 ;; esac - # True if $ifconfig_IF_ipv6 is defined. - _tmpargs=`_ifconfig_getargs $_if ipv6` - if [ -n "${_tmpargs}" ]; then - return 0 - fi - - # backward compatibility: True if $ipv6_ifconfig_IF is defined. - _tmpargs=`get_if_var $_if ipv6_ifconfig_IF` - if [ -n "${_tmpargs}" ]; then - return 0 - fi + local _if _tmpargs i + _if=$1 - case "${ipv6_network_interfaces}" in - [Aa][Uu][Tt][Oo]) - return 0 - ;; + case "$ipv6_network_interfaces" in ''|[Nn][Oo][Nn][Ee]) return 1 ;; + $_if|"$_if "*|*" $_if"|*" $_if "*|[Aa][Uu][Tt][Oo]) + # True if $ifconfig_IF_ipv6 is defined. + _tmpargs=`_ifconfig_getargs $_if ipv6` + ;; esac - for i in ${ipv6_network_interfaces}; do - if [ "$i" = "$_if" ]; then - return 0 - fi - done + if [ -n "$_tmpargs" ]; then + # Remove in FreeBSD 10.x + # Explicit test is necessary here to avoid nonexistence error + case "$ipv6_enable" in + [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) + ;; + *) return 0 + ;; + esac + fi return 1 } @@ -452,15 +421,24 @@ ipv6if() # Stateless Address Configuration, 1 otherwise. ipv6_autoconfif() { + case $1 in + lo0|\ + stf[0-9]*|\ + faith[0-9]*|\ + lp[0-9]*|\ + sl[0-9]*|\ + pflog[0-9]*|\ + pfsync[0-9]*) + return 1 + ;; + esac + local _if _tmpargs _arg _if=$1 if ! ipv6if $_if; then return 1 fi - if noafif $_if; then - return 1 - fi if checkyesno ipv6_gateway_enable; then return 1 fi @@ -468,45 +446,24 @@ ipv6_autoconfif() if [ -n "${_tmpargs}" ]; then return 1 fi + if ! is_wired_interface $_if; then + case $_if in + wlan[0-9]*) ;; # Allow test to continue + *) return 1 + ;; + esac + fi - case $_if in - lo0|\ - stf[0-9]*|\ - faith[0-9]*|\ - lp[0-9]*|\ - sl[0-9]*|\ - pflog[0-9]*|\ - pfsync[0-9]*) + _tmpargs=`_ifconfig_getargs $_if ipv6` + case "$_tmpargs" in + *inet6\ *|*[Nn][Oo][Rr][Tt][Aa][Dd][Vv]*|*-accept_rtadv*) return 1 ;; - esac - - # backward compatibility: $ipv6_enable - case $ipv6_enable in - [Yy][Ee][Ss]) + *[Rr][Tt][Aa][Dd][Vv]*|*accept_rtadv*) return 0 ;; esac - _tmpargs=`_ifconfig_getargs $_if ipv6` - for _arg in $_tmpargs; do - case $_arg in - accept_rtadv) - return 0 - ;; - esac - done - - # backward compatibility: $ipv6_ifconfig_IF - _tmpargs=`get_if_var $_if ipv6_ifconfig_IF` - for _arg in $_tmpargs; do - case $_arg in - accept_rtadv) - return 0 - ;; - esac - done - return 1 } Modified: user/imp/tbemd/etc/rc.d/ip6addrctl ============================================================================== --- user/imp/tbemd/etc/rc.d/ip6addrctl Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/rc.d/ip6addrctl Mon Apr 12 23:05:32 2010 (r206517) @@ -20,8 +20,6 @@ status_cmd="ip6addrctl" prefer_ipv6_cmd="ip6addrctl_prefer_ipv6" prefer_ipv4_cmd="ip6addrctl_prefer_ipv4" -set_rcvar_obsolete ipv6_enable ipv6_prefer - ip6addrctl_prefer_ipv6() { afexists inet6 || return 0 Modified: user/imp/tbemd/etc/rc.d/jail ============================================================================== --- user/imp/tbemd/etc/rc.d/jail Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/rc.d/jail Mon Apr 12 23:05:32 2010 (r206517) @@ -18,6 +18,8 @@ name="jail" rcvar=`set_rcvar` + +start_precmd="jail_prestart" start_cmd="jail_start" stop_cmd="jail_stop" @@ -545,6 +547,13 @@ jail_ips() done } +jail_prestart() +{ + if checkyesno jail_parallel_start; then + command_args='&' + fi +} + jail_start() { echo -n 'Configuring jails:' @@ -636,7 +645,8 @@ jail_start() done eval ${_setfib} jail ${_flags} -i ${_rootdir} ${_hostname} \ - \"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1 + \"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1 \ + /dev/null fi + + if checkyesno ipv6_privacy; then + netoptions_init + echo -n " IPv6 Privacy Addresses" + ${SYSCTL_W} net.inet6.ip6.use_tempaddr=1 >/dev/null + ${SYSCTL_W} net.inet6.ip6.prefer_tempaddr=1 >/dev/null + fi } load_rc_config $name Modified: user/imp/tbemd/etc/rc.d/tmp ============================================================================== --- user/imp/tbemd/etc/rc.d/tmp Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/rc.d/tmp Mon Apr 12 23:05:32 2010 (r206517) @@ -51,8 +51,8 @@ case "${tmpmfs}" in [Nn][Oo]) ;; *) - if /bin/mkdir -p /tmp/.diskless 2> /dev/null; then - rmdir /tmp/.diskless + if _tmpdir=$(mktemp -d -q /tmp/.diskless.XXXXXX); then + rmdir ${_tmpdir} else if [ -h /tmp ]; then echo "*** /tmp is a symlink to a non-writable area!" Copied: user/imp/tbemd/etc/rc.d/ubthidhci (from r206514, head/etc/rc.d/ubthidhci) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/etc/rc.d/ubthidhci Mon Apr 12 23:05:32 2010 (r206517, copy of r206514, head/etc/rc.d/ubthidhci) @@ -0,0 +1,40 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: ubthidhci +# REQUIRE: DAEMON +# BEFORE: bluetooth +# KEYWORD: nojail shutdown + +. /etc/rc.subr + +name="ubthidhci" +command="/usr/sbin/usbconfig" +rcvar=`set_rcvar` +start_precmd="ubthidhci_prestart" + +ubthidhci_prestart() +{ + + if [ -z ${ubthidhci_busnum} ]; then + warn ubthidhci_busnum is not set + return 1 + fi + if [ -z ${ubthidhci_addr} ]; then + warn ubthidhci_addr is not set + return 1 + fi +} + +load_rc_config $name +# +# We discard the output because: +# 1) we don't want it to show up during boot; and +# 2) the request usually returns an error, but that doesn't mean it failed +# +# NB: 0x40 is UT_VENDOR +command_args="-u ${ubthidhci_busnum} -a ${ubthidhci_addr} do_request 0x40 0 0 0 0 > /dev/null 2>&1" + +run_rc_command "$1" Modified: user/imp/tbemd/etc/rc.firewall ============================================================================== --- user/imp/tbemd/etc/rc.firewall Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/rc.firewall Mon Apr 12 23:05:32 2010 (r206517) @@ -424,24 +424,21 @@ case ${firewall_type} in # Configuration: # firewall_myservices: List of TCP ports on which this host # offers services. - # firewall_allowservices: List of IPs which has access to + # firewall_allowservices: List of IPv4 and/or IPv6 addresses + # that have access to # $firewall_myservices. - # firewall_trusted: List of IPv4s which has full access - # to this host. Be very carefull - # when setting this. This option can - # seriously degrade the level of - # protection provided by the firewall. + # firewall_trusted: List of IPv4 and/or IPv6 addresses + # that have full access to this host. + # Be very careful when setting this. + # This option can seriously degrade + # the level of protection provided by + # the firewall. # firewall_logdeny: Boolean (YES/NO) specifying if the # default denied packets should be # logged (in /var/log/security). # firewall_nologports: List of TCP/UDP ports for which # denied incomming packets are not # logged. - # firewall_trusted_ipv6: List of IPv6s which has full access - # to this host. Be very carefull - # when setting this. This option can - # seriously degrade the level of - # protection provided by the firewall. # Allow packets for which a state has been built. ${fwcmd} add check-state Modified: user/imp/tbemd/etc/rc.subr ============================================================================== --- user/imp/tbemd/etc/rc.subr Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/rc.subr Mon Apr 12 23:05:32 2010 (r206517) @@ -355,6 +355,8 @@ _find_processes() # wait_for_pids() { + local _list _prefix _nlist _j + _list="$@" if [ -z "$_list" ]; then return @@ -365,6 +367,7 @@ wait_for_pids() for _j in $_list; do if kill -0 $_j 2>/dev/null; then _nlist="${_nlist}${_nlist:+ }$_j" + [ -n "$_prefix" ] && sleep 1 fi done if [ -z "$_nlist" ]; then @@ -373,7 +376,7 @@ wait_for_pids() _list=$_nlist echo -n ${_prefix:-"Waiting for PIDS: "}$_list _prefix=", " - pwait $_list 2>/dev/null || sleep 2 + pwait $_list 2>/dev/null done if [ -n "$_prefix" ]; then echo "." Modified: user/imp/tbemd/etc/termcap.small ============================================================================== --- user/imp/tbemd/etc/termcap.small Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/etc/termcap.small Mon Apr 12 23:05:32 2010 (r206517) @@ -203,93 +203,46 @@ cons60l7|cons60-iso8859-7:\ :li#60:tc=cons25l7: cons60l7-m|cons60-iso8859-7-mono:\ :li#60:tc=cons25l7-m: -# -dosansi|ANSI.SYS standard crt:\ - :am:bs:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:co#80:\ - :do=\E[B:li#25:mi:nd=\E[C:\ - :se=\E[m:so=\E[7m:up=\E[A:us=\E[4m:ue=\E[m:\ - :md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:\ - :kh=\EG:kb=^h:ku=\EH:kd=\EP:kl=\EK:kr=\EM:\ - :k1=\E;:k2=\E<:k3=\E=:k4=\E>:k5=\E?:\ - :k6=\E@:k7=\EA:k8=\EB:k9=\EC:k0=\ED: -# The following is a version of the ibm-pc entry distributed with PC/IX, -# (Interactive Systems' System 3 for the Big Blue), modified by Richard -# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original, -# (the former is untrue, and the latter failed under UCB/man); standout and -# underline modes have been added. Note: this entry describes the "native" -# capabilities of the PC monochrome display, without ANY emulation; most -# communications packages (but NOT PC/IX connect) do some kind of emulation. -pc|ibmpc|ibm pc PC/IX:\ - :li#24:co#80:am:bs:bw:eo:\ - :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[;H:\ - :nd=\E[C:up=\E[A:so=\E[7m:se=\E[0m:us=\E[4m:ue=\E[0m: -pc3|ibmpc3|IBM PC 386BSD Console:\ - :Co#8:\ - :DO=\E[%dB:\ - :F1=\E[W:\ - :F2=\E[X:\ - :K1=\E[H:\ - :K2=\E[I:\ - :K3=\E[E:\ - :K4=\E[F:\ - :K5=\E[G:\ - :LE=\E[%dD:\ - :RI=\E[%dC:\ - :AB=\E[1;%dx:\ - :AF=\E[2;%dx:\ - :UP=\E[%dA:\ - :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261i^U0\333y\363z\362:\ - :am:\ - :bl=^G:\ - :bs:\ - :cb=\E[1K:\ - :cd=\E[J:\ - :ce=\E[K:\ - :cl=\E[H\E[J:\ - :cm=\E[%i%d;%dH:\ - :co#80:\ - :cr=^M:\ - :do=\E[B:\ - :ho=\E[H:\ - :is=\E[m:\ - :it#8:\ - :k;=\E[V:\ - :k1=\E[M:\ - :k2=\E[N:\ - :k3=\E[O:\ - :k4=\E[P:\ - :k5=\E[Q:\ - :k6=\E[R:\ - :k7=\E[S:\ - :k8=\E[T:\ - :k9=\E[U:\ - :kD=\177:\ - :@7=\E[F:\ - :kN=\E[G:\ - :kP=\E[I:\ - :kb=\177:\ - :kd=\E[B:\ - :kh=\E[H:\ - :kl=\E[D:\ - :kr=\E[C:\ - :ku=\E[A:\ - :le=^H:\ - :li#25:\ - :ms:\ - :nd=\E[C:\ - :op=\E[x:\ - :pa#64:\ - :rs=\E[m:\ - :se=\E[m:\ - :sf=\E[S:\ - :so=\E[7;1r\E[7m:\ - :sr=\E[T:\ - :ta=^I:\ - :te=\E[m:\ - :ti=\E[m:\ - :up=\E[A:\ - :ut: +SC|screen|VT 100/ANSI X3.64 virtual terminal:\ + :am:xn:ms:mi:G0:km:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\ + :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\ + :do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\ + :le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:\ + :li#24:co#80:us=\E[4m:ue=\E[24m:so=\E[3m:se=\E[23m:\ + :mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:sr=\EM:al=\E[L:\ + :AL=\E[%dL:dl=\E[M:DL=\E[%dM:cs=\E[%i%d;%dr:dc=\E[P:\ + :DC=\E[%dP:im=\E[4h:ei=\E[4l:IC=\E[%d@:\ + :ks=\E[?1h\E=:ke=\E[?1l\E>:vb=\Eg:\ + :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:F1=\E[23~:F2=\E[24~:\ + :F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\ + :F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ + :kh=\E[1~:kI=\E[2~:kD=\E[3~:@7=\E[4~:kP=\E[5~:\ + :kN=\E[6~:eA=\E(B\E)0:as=^N:ae=^O:ti=\E[?1049h:te=\E[?1049l:\ + :vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l:\ + :Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00: + +vt100|dec-vt100|vt100-am|vt100am|dec vt100:\ + :do=2\E[B:co#80:li#24:cl=50\E[H\E[J:sf=2*\ED:\ + :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\ + :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\ + :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:\ + :is=\E>\E[?1;3;4;5l\E[?7;8h\E[1;24r\E[24;1H:\ + :if=/usr/share/tabset/vt100:nw=2\EE:ho=\E[H:\ + :as=2\E(0:ae=2\E(B:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||:\ + :rs=\E>\E[?1;3;4;5l\E[?7;8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\ + :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=\177:\ + :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:\ + :k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:@8=\EOM:\ + :K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:pt:sr=2*\EM:xn:\ + :sc=2\E7:rc=2\E8:cs=5\E[%i%d;%dr:UP=2\E[%dA:DO=2\E[%dB:RI=2\E[%dC:\ + :LE=2\E[%dD:ct=2\E[3g:st=2\EH:ta=^I:ms:bl=^G:cr=^M:eo:it#8:\ + :RA=\E[?7l:SA=\E[?7h:po=\E[5i:pf=\E[4i: # $XTermId: termcap,v 1.78 2009/11/09 00:24:26 tom Exp $ # @@ -325,3 +278,38 @@ xterm|X11 terminal emulator:\ xterm-clear:\ :te=\E[?1049l:ti=\E[?1049h:\ :tc=xterm-new: +# +# This should work for the commonly used "color xterm" variations (XFree86 +# xterm, color_xterm, nxterm, rxvt). Note that it does not set 'bce', so for +# XFree86 and rxvt, some applications that use colors will be less efficient, +# and in a few special cases (with "smart" optimization) the wrong color will +# be painted in spots. +xterm-color|generic "ANSI" color xterm:\ + :Co#8:NC@:pa#64:\ + :AB=\E[4%dm:AF=\E[3%dm:ac=:op=\E[m:tc=xterm-r6: +# +# Compatible with the X11R6.3 xterm +xterm-r6|xterm-old|X11R6 xterm:\ + :am:bs:km:mi:ms:pt:xn:\ + :co#80:kn#20:li#24:\ + :*6=\E[4~:@0=\E[1~:@7=\E[4~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :DO=\E[%dB:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\ + :F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\ + :FA=\E[34~:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:\ + :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:eA=\E)0:ei=\E[4l:\ + :ho=\E[H:im=\E[4h:\ + :is=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:\ + :ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:md=\E[1m:me=\E[m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:\ + :rc=\E8:rs=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\ + :ue=\E[m:up=\E[A:us=\E[4m: +# +# Add the capability to "clear the screen" after exiting vi, more/less, etc. +xterm-r6-clear:\ + :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:\ + :tc=xterm-r6: Modified: user/imp/tbemd/games/fortune/Notes ============================================================================== --- user/imp/tbemd/games/fortune/Notes Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/games/fortune/Notes Mon Apr 12 23:05:32 2010 (r206517) @@ -19,13 +19,13 @@ Warning: /usr/share/games/fortune. A fortune file has two parts: the source file (which contains the fortunes themselves) and the data file which describes the fortunes. The data file always has the same name as the fortune file -with the string ".dat" concatenated, i.e. "fort" is the standard fortune -database, and "fort.dat" is the data file which describes it. See +with the string ".dat" concatenated, i.e. "fortunes" is the standard fortune +database, and "fortunes.dat" is the data file which describes it. See strfile(8) for more information on creating the data files. Fortunes are split into potentially offensive and not potentially offensive parts. The offensive version of a file has the same name as the -non-offensive version with "-o" concatenated, i.e. "fort" is the standard -fortune database, and "fort-o" is the standard offensive database. The +non-offensive version with "-o" concatenated, i.e. "fortunes" is the standard +fortune database, and "fortunes-o" is the standard offensive database. The fortune program automatically assumes that any file with a name ending in "-o" is potentially offensive, and should therefore only be displayed if explicitly requested, either with the -o option or by specifying a file name @@ -42,10 +42,10 @@ MUST be in the potentially offensive dat explicit language (see George Carlin's recent updated list) MUST be in the potentially offensive database. Political and religious opinions are often sequestered in the potentially offensive section as well. Anything which -assumes as a world view blatantly racist, mysogynist (sexist), or homophobic +assumes as a world view blatantly racist, misogynist (sexist), or homophobic ideas should not be in either, since they are not really funny unless *you* -are racist, mysogynist, or homophobic. - The point of this is that people have should have a reasonable +are racist, misogynist, or homophobic. + The point of this is that people should have a reasonable expectation that, should they just run "fortune", they will not be offended. We know that some people take offense at anything, but normal people do have opinions, too, and have a right not to have their sensibilities offended by @@ -53,7 +53,7 @@ a program which is supposed to be entert -o" or "fortune -a" are saying, in effect, that they are willing to have their sensibilities tweaked. However, they should not have their personal worth seriously (i.e., not in jest) assaulted. Jokes which depend for their -humor on racist, mysogynist, or homophobic stereotypes *do* seriously +humor on racist, misogynist, or homophobic stereotypes *do* seriously assault individual personal worth, and in a general entertainment medium we should be able to get by without it. Modified: user/imp/tbemd/games/fortune/datfiles/fortunes ============================================================================== --- user/imp/tbemd/games/fortune/datfiles/fortunes Mon Apr 12 23:04:38 2010 (r206516) +++ user/imp/tbemd/games/fortune/datfiles/fortunes Mon Apr 12 23:05:32 2010 (r206517) @@ -368,8 +368,10 @@ OR'd together, outta sight! Double bucky, I'd like a whole word of Double bucky, I'm happy I heard of Double bucky, I'd like a whole word of you! - - -- (C) 1978 by Guy L. Steele, Jr. + -- Guy L. Steele, Jr., (C) 1978 + (to Nicholas Wirth, who suggested that an extra bit + be added to terminal codes on 36-bit machines for use + by screen editors.) % Hard Copies and Chmod @@ -834,7 +836,7 @@ would like on it. "Here lies an honest lawyer. "Sorry, but I can't do that," replied the stonecutter. "In this state, it's against the law to bury two people in the same grave. However, -I could put ``here lies an honest lawyer'', if that would be okay." +I could put `here lies an honest lawyer', if that would be okay." "But that won't let people know who it is" protested the lawyer. "Certainly will," retorted the stonecutter. "people will read it and exclaim, "That's Strange!" @@ -1146,7 +1148,7 @@ strings of pearls. The spirit and inten throughout. There should be neither too little nor too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity. - A program should follow the 'Law of Least Astonishment'. What is this + A program should follow the "Law of Least Astonishment." What is this law? It is simply that the program should always respond to the user in the way that astonishes him least. A program, no matter how complex, should act as a single unit. The @@ -1161,7 +1163,7 @@ program. conference and then returned to report to his manager, saying: "What sort of programmers work for other companies? They behaved badly and were unconcerned with appearances. Their hair was long and unkempt and their -clothes were wrinkled and old. They crashed out hospitality suites and they +clothes were wrinkled and old. They crashed our hospitality suites and they made rude noises during my presentation." The manager said: "I should have never sent you to the conference. Those programmers live beyond the physical world. They consider life absurd, @@ -1466,7 +1468,7 @@ generalizable. The general tendency is to over-design the second system, using all the ideas and frills that were cautiously sidetracked on the first one. The result, as Ovid says, is a "big pile". - -- Frederick Brooks, "The Mythical Man Month" + -- Frederick Brooks, Jr., "The Mythical Man-Month" % An eighty-year-old woman is rocking away the afternoon on her porch when she sees an old, tarnished lamp sitting near the steps. She @@ -1513,7 +1515,7 @@ over canoe frames, for my people need tr and we offer you a chance to kill yourself with our ceremonial knife." The Englishman accepts the knife and yells, "God Save the Queen", while plunging the knife into his heart. - The Frenchman removes the knife from the fallen body, and yells, + The Frenchman removes the knife from the fallen body, and yells, "Vive la France", while plunging the knife into his heart. The American removes the knife from the fallen body, and yells, while stabbing himself all over his body, "Here's your lousy canoe!" @@ -1562,7 +1564,7 @@ a postcard?" "The curious incident of the stable dog in the nighttime." "But the dog did nothing in the nighttime." "That was the curious incident." - -- A. Conan Doyle, "Silver Blaze" + -- Sir Arthur Conan Doyle, "Silver Blaze" % Approaching the gates of the monastery, Hakuin found Ken the Zen preaching to a group of disciples. @@ -1609,8 +1611,8 @@ Los Angeles fainted from hyperoxygenatio under the exhaust of a bus until he revived. % Before he became a hermit, Zarathud was a young Priest, and - took great delight in making fools of his opponents in front of -his followers. +took great delight in making fools of his opponents in front of his +followers. One day Zarathud took his students to a pleasant pasture and there he confronted The Sacred Chao while She was contentedly grazing. "Tell me, you dumb beast," demanded the Priest in his @@ -1626,7 +1628,7 @@ Chinese ideogram for NO-THING.) and finds himself no wiser than before," Bokonon tells us. "He is full of murderous resentment of people who are ignorant without having come by their ignorance the hard way." - -- Kurt Vonnegut, "Cat's Cradle" + -- Kurt Vonnegut, Jr., "Cat's Cradle" % Bubba, Jim Bob, and Leroy were fishing out on the lake last November, and, when Bubba tipped his head back to empty the Jim Beam, he fell out of the @@ -1694,7 +1696,7 @@ way I ought to go from here?" the Cat. "I don't care much where--" said Alice. "Then it doesn't matter which way you go," said the Cat. - -- Lewis Carroll + -- Lewis Carroll, "Alice's Adventures in Wonderland" (1865) % Concerning the war in Vietnam, Senator George Aiken of Vermont noted in January, 1966, "I'm not very keen for doves or hawks. I think we need more @@ -1877,7 +1879,7 @@ how to be excellent: "In Search of Excel So the Cleaning Personnel Don't Steal It", etc. -- Dave Barry, "In Search of Excellence" % - Exxon's 'Universe of Energy' tends to the peculiar rather than the + Exxon's "Universe of Energy" tends to the peculiar rather than the humorous ... After [an incomprehensible film montage about wind and sun and rain and strip mines and] two or three minutes of mechanical confusion, the seats locomote through a short tunnel filled with clock-work dinosaurs. @@ -1923,9 +1925,9 @@ of events, there lurks a singular, sinis "MINE! HA-HA!" % "Found it," the Mouse replied rather crossly: -"of course you know what 'it' means." +"of course you know what `it' means." - "I know what 'it' means well enough, when I find a thing," + "I know what `it' means well enough, when I find a thing," said the Duck: "it's generally a frog or a worm. The question is, what did the archbishop find?" @@ -1937,15 +1939,15 @@ such as a "pride of lions" or a "gaggle One of the professors noticed a group of prostitutes down the block, and posed the question, "What name would be given to that group?" The four fell into silence for a moment, as they pondered the possibilities... - At last, one spoke: "How about 'a Jam of Tarts'?" The others nodded + At last, one spoke: "How about `a Jam of Tarts'?" The others nodded in acknowledgment as they continued to consider the problem. A second -professor spoke: "I'd suggest 'an Essay of Trollops.'" Again, the others -nodded. A third spoke: "I propose 'a Flourish of Strumpets.'" +professor spoke: "I'd suggest `an Essay of Trollops.'" Again, the others +nodded. A third spoke: "I propose `a Flourish of Strumpets.'" They continued their walk in silence, until the first professor remarked to the remaining professor, who was the most senior and learned of the four, "You haven't suggested a name for our ladies. What are your thoughts?" - Replied the fourth professor, "'An Anthology of Prose.'" + Replied the fourth professor, "`An Anthology of Prose.'" % Fred noticed his roommate had a black eye upon returning from a dance. "What happened?" @@ -1958,12 +1960,11 @@ and sarcastic?" "Of course not," said a sympathetic friend. "Well," retorted Frank, "neither would Jennifer." % - "Gee, Mudhead, everyone at More Science High has an + "Gee, Mudhead, everyone at Morse Science High has an extracurricular activity except you." "Well, gee, doesn't Louise count?" "Only to ten, Mudhead." - - -- Firesign Theater + -- The Firesign Theatre % "Gentlemen of the jury," said the defense attorney, now beginning to warm to his summation, "the real question here before you is, shall this @@ -2261,7 +2262,7 @@ each other up: the floor.) S-word. Excuse me. Look, Bob, I'm going to have to get back to you. Bob: Fine. - -- Dave Barry + -- Dave Barry, "$#$%#^%!^%&@%@!" % "I don't know what you mean by `glory,'" Alice said Humpty Dumpty smiled contemptuously. "Of course you don't -- @@ -2276,7 +2277,9 @@ less." so many different things." "The question is," said Humpty Dumpty, "which is to be master-- that's all." - -- Lewis Carroll, "Through the Looking Glass" + -- Lewis Carroll, + "Through the Looking-Glass, + and What Alice Found There" (1871) % I for one cannot protest the recent M.T.A. fare hike and the accompanying promises that this would in no way improve service. For @@ -2328,7 +2331,7 @@ operation - namely, to remove those irri "And then he will be sane?" "Then he will be perfectly sane, and a quite admirable citizen." "Thank heaven for science!" said old Yacob. - -- H.G. Wells, "The Country of the Blind" + -- H. G. Wells, "The Country of the Blind" % "I keep seeing spots in front of my eyes." *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:06:15 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AEE02106568A; Mon, 12 Apr 2010 23:06:15 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9B5888FC15; Mon, 12 Apr 2010 23:06:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CN6FO8067953; Mon, 12 Apr 2010 23:06:15 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CN6FBG067921; Mon, 12 Apr 2010 23:06:15 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122306.o3CN6FBG067921@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:06:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206518 - in user/imp/tbemd: lib lib/bind lib/csu lib/csu/amd64 lib/csu/arm lib/csu/i386-elf lib/csu/ia64 lib/csu/mips lib/csu/powerpc lib/csu/sparc64 lib/libc/compat-43 lib/libc/db/has... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:06:15 -0000 Author: imp Date: Mon Apr 12 23:06:14 2010 New Revision: 206518 URL: http://svn.freebsd.org/changeset/base/206518 Log: merge from head: part 4 of many Added: user/imp/tbemd/lib/libcompat/4.3/re_comp.c - copied unchanged from r206514, head/lib/libcompat/4.3/re_comp.c user/imp/tbemd/lib/libpmc/pmc.corei7.3 - copied unchanged from r206514, head/lib/libpmc/pmc.corei7.3 user/imp/tbemd/lib/libpmc/pmc.corei7uc.3 - copied unchanged from r206514, head/lib/libpmc/pmc.corei7uc.3 user/imp/tbemd/lib/libpmc/pmc.ucf.3 - copied unchanged from r206514, head/lib/libpmc/pmc.ucf.3 user/imp/tbemd/lib/libpmc/pmc.westmere.3 - copied unchanged from r206514, head/lib/libpmc/pmc.westmere.3 user/imp/tbemd/lib/libpmc/pmc.westmereuc.3 - copied unchanged from r206514, head/lib/libpmc/pmc.westmereuc.3 user/imp/tbemd/lib/libz/Symbol.map - copied unchanged from r206514, head/lib/libz/Symbol.map user/imp/tbemd/lib/libz/Versions.def - copied unchanged from r206514, head/lib/libz/Versions.def user/imp/tbemd/lib/libz/contrib/ - copied from r206514, head/lib/libz/contrib/ user/imp/tbemd/lib/libz/doc/ - copied from r206514, head/lib/libz/doc/ user/imp/tbemd/lib/libz/gzclose.c - copied unchanged from r206514, head/lib/libz/gzclose.c user/imp/tbemd/lib/libz/gzguts.h - copied unchanged from r206514, head/lib/libz/gzguts.h user/imp/tbemd/lib/libz/gzlib.c - copied unchanged from r206514, head/lib/libz/gzlib.c user/imp/tbemd/lib/libz/gzread.c - copied unchanged from r206514, head/lib/libz/gzread.c user/imp/tbemd/lib/libz/gzwrite.c - copied unchanged from r206514, head/lib/libz/gzwrite.c Deleted: user/imp/tbemd/lib/libcompat/4.3/regex.c user/imp/tbemd/lib/libcompat/regexp/ user/imp/tbemd/lib/libz/algorithm.txt user/imp/tbemd/lib/libz/gzio.c Modified: user/imp/tbemd/lib/Makefile user/imp/tbemd/lib/bind/config.h user/imp/tbemd/lib/csu/Makefile.inc user/imp/tbemd/lib/csu/amd64/crt1.c user/imp/tbemd/lib/csu/arm/Makefile user/imp/tbemd/lib/csu/arm/crt1.c user/imp/tbemd/lib/csu/i386-elf/Makefile user/imp/tbemd/lib/csu/ia64/Makefile user/imp/tbemd/lib/csu/mips/Makefile user/imp/tbemd/lib/csu/mips/crt1.c user/imp/tbemd/lib/csu/mips/crti.S user/imp/tbemd/lib/csu/powerpc/Makefile user/imp/tbemd/lib/csu/powerpc/crt1.c user/imp/tbemd/lib/csu/sparc64/crt1.c user/imp/tbemd/lib/libc/compat-43/sigpause.2 user/imp/tbemd/lib/libc/db/hash/hash.c user/imp/tbemd/lib/libc/db/hash/hash.h user/imp/tbemd/lib/libc/db/man/hash.3 user/imp/tbemd/lib/libc/gen/__getosreldate.c user/imp/tbemd/lib/libc/gen/_spinlock_stub.c user/imp/tbemd/lib/libc/gen/_thread_init.c user/imp/tbemd/lib/libc/gen/daemon.c user/imp/tbemd/lib/libc/gen/dlfcn.c user/imp/tbemd/lib/libc/gen/dlopen.3 user/imp/tbemd/lib/libc/gen/opendir.c user/imp/tbemd/lib/libc/net/getservent.c user/imp/tbemd/lib/libc/net/nsdispatch.3 user/imp/tbemd/lib/libc/posix1e/acl_add_flag_np.3 user/imp/tbemd/lib/libc/posix1e/acl_clear_flags_np.3 user/imp/tbemd/lib/libc/posix1e/acl_delete_flag_np.3 user/imp/tbemd/lib/libc/posix1e/acl_get_brand_np.3 user/imp/tbemd/lib/libc/posix1e/acl_get_entry_type_np.3 user/imp/tbemd/lib/libc/posix1e/acl_get_flag_np.3 user/imp/tbemd/lib/libc/posix1e/acl_get_flagset_np.3 user/imp/tbemd/lib/libc/posix1e/acl_set_entry_type_np.3 user/imp/tbemd/lib/libc/posix1e/acl_set_flagset_np.3 user/imp/tbemd/lib/libc/posix1e/acl_strip.c user/imp/tbemd/lib/libc/posix1e/acl_to_text_nfs4.c user/imp/tbemd/lib/libc/rpc/Symbol.map user/imp/tbemd/lib/libc/rpc/clnt_simple.c user/imp/tbemd/lib/libc/rpc/getnetconfig.c user/imp/tbemd/lib/libc/rpc/key_call.c user/imp/tbemd/lib/libc/rpc/mt_misc.c user/imp/tbemd/lib/libc/rpc/mt_misc.h user/imp/tbemd/lib/libc/rpc/rpc_generic.c user/imp/tbemd/lib/libc/rpc/rpc_soc.c user/imp/tbemd/lib/libc/softfloat/softfloat-specialize user/imp/tbemd/lib/libc/sparc64/fpu/fpu.c user/imp/tbemd/lib/libc/sparc64/fpu/fpu_div.c user/imp/tbemd/lib/libc/sparc64/fpu/fpu_emu.h user/imp/tbemd/lib/libc/sparc64/fpu/fpu_explode.c user/imp/tbemd/lib/libc/sparc64/fpu/fpu_extern.h user/imp/tbemd/lib/libc/sparc64/fpu/fpu_implode.c user/imp/tbemd/lib/libc/stdio/findfp.c user/imp/tbemd/lib/libc/stdio/local.h user/imp/tbemd/lib/libc/stdio/printf.3 user/imp/tbemd/lib/libc/stdio/snprintf.c user/imp/tbemd/lib/libc/stdio/vasprintf.c user/imp/tbemd/lib/libc/stdio/vdprintf.c user/imp/tbemd/lib/libc/stdio/vfprintf.c user/imp/tbemd/lib/libc/stdio/vsnprintf.c user/imp/tbemd/lib/libc/stdio/vsprintf.c user/imp/tbemd/lib/libc/stdio/vsscanf.c user/imp/tbemd/lib/libc/stdio/vswprintf.c user/imp/tbemd/lib/libc/stdio/vswscanf.c user/imp/tbemd/lib/libc/stdio/xprintf.c user/imp/tbemd/lib/libc/string/strlen.c user/imp/tbemd/lib/libc/sys/mmap.2 user/imp/tbemd/lib/libc/sys/open.2 user/imp/tbemd/lib/libc/sys/stat.2 user/imp/tbemd/lib/libcompat/4.1/ascftime.c user/imp/tbemd/lib/libcompat/4.1/cftime.c user/imp/tbemd/lib/libcompat/4.1/ftime.c user/imp/tbemd/lib/libcompat/4.1/getpw.c user/imp/tbemd/lib/libcompat/4.3/cfree.c user/imp/tbemd/lib/libcompat/4.3/re_comp.3 user/imp/tbemd/lib/libcompat/Makefile user/imp/tbemd/lib/libgssapi/gss_init_sec_context.3 user/imp/tbemd/lib/libgssapi/gss_unwrap.3 user/imp/tbemd/lib/libkvm/kvm_getpcpu.3 user/imp/tbemd/lib/libpam/modules/pam_ssh/pam_ssh.c user/imp/tbemd/lib/libpmc/Makefile user/imp/tbemd/lib/libpmc/libpmc.c user/imp/tbemd/lib/libpmc/pmc.xscale.3 user/imp/tbemd/lib/librpcsec_gss/rpcsec_gss.3 user/imp/tbemd/lib/libstand/assert.c user/imp/tbemd/lib/libstand/bzipfs.c user/imp/tbemd/lib/libstand/gzipfs.c user/imp/tbemd/lib/libusbhid/data.c user/imp/tbemd/lib/libusbhid/descr.c user/imp/tbemd/lib/libusbhid/parse.c user/imp/tbemd/lib/libusbhid/usage.c user/imp/tbemd/lib/libusbhid/usbhid.h user/imp/tbemd/lib/libusbhid/usbvar.h user/imp/tbemd/lib/libz/ChangeLog user/imp/tbemd/lib/libz/FAQ user/imp/tbemd/lib/libz/Makefile user/imp/tbemd/lib/libz/README user/imp/tbemd/lib/libz/adler32.c user/imp/tbemd/lib/libz/compress.c user/imp/tbemd/lib/libz/crc32.c user/imp/tbemd/lib/libz/deflate.c user/imp/tbemd/lib/libz/deflate.h user/imp/tbemd/lib/libz/example.c user/imp/tbemd/lib/libz/infback.c user/imp/tbemd/lib/libz/inffast.c user/imp/tbemd/lib/libz/inflate.c user/imp/tbemd/lib/libz/inflate.h user/imp/tbemd/lib/libz/inftrees.c user/imp/tbemd/lib/libz/inftrees.h user/imp/tbemd/lib/libz/minigzip.c (contents, props changed) user/imp/tbemd/lib/libz/trees.c user/imp/tbemd/lib/libz/uncompr.c user/imp/tbemd/lib/libz/zconf.h user/imp/tbemd/lib/libz/zlib.3 user/imp/tbemd/lib/libz/zlib.h user/imp/tbemd/lib/libz/zutil.c user/imp/tbemd/lib/libz/zutil.h user/imp/tbemd/lib/msun/man/cimag.3 user/imp/tbemd/libexec/fingerd/fingerd.8 user/imp/tbemd/libexec/fingerd/fingerd.c user/imp/tbemd/libexec/ftpd/popen.c user/imp/tbemd/libexec/rtld-elf/rtld.c user/imp/tbemd/libexec/tftpd/tftpd.8 user/imp/tbemd/release/Makefile user/imp/tbemd/release/Makefile.inc.docports Directory Properties: user/imp/tbemd/lib/libz/ (props changed) Modified: user/imp/tbemd/lib/Makefile ============================================================================== --- user/imp/tbemd/lib/Makefile Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/Makefile Mon Apr 12 23:06:14 2010 (r206518) @@ -9,8 +9,8 @@ # csu must be built before all shared libaries for ELF. # libc must be built before all other shared libraries. # libbsm must be built before ibauditd. -# libcom_err must be built before libkrb5 and libpam. -# libcrypt must be built before libkrb5 and libpam. +# libcom_err must be built before libpam. +# libcrypt must be built before libpam. # libkvm must be built before libdevstat. # msun must be built before libg++ and libstdc++. # libmd must be built before libatm, libopie, libradius, and libtacplus. @@ -26,21 +26,86 @@ # libgssapi must be built before librpcsec_gss # # Otherwise, the SUBDIR list should be in alphabetical order. +# +# Except it appears bind needs to be compiled last -SUBDIR= ${_csu} libc libbsm libauditd libcom_err libcrypt libelf libkvm msun \ +SUBDIR_ORDERED= ${_csu} \ + libc \ + libbsm \ + libauditd \ + libcom_err \ + libcrypt \ + libelf \ + libkvm \ + msun \ libmd \ - ncurses ${_libnetgraph} libradius librpcsvc libsbuf \ - libtacplus libutil ${_libypclnt} libalias libarchive \ - ${_libatm} libbegemot ${_libbluetooth} ${_libbsnmp} libbz2 \ - libcalendar libcam libcompat libdevinfo libdevstat libdisk \ - libdwarf libedit ${_libefi} libexpat libfetch libftpio libgeom \ - ${_libgpib} ${_libgssapi} ${_librpcsec_gss} libipsec \ - ${_libipx} libjail libkiconv libmagic libmemstat ${_libmilter} \ - ${_libmp} ${_libncp} ${_libngatm} libopie libpam libpcap \ - ${_libpmc} libproc librt ${_libsdp} ${_libsm} ${_libsmb} \ - ${_libsmdb} ${_libsmutil} libstand \ - ${_libtelnet} ${_libthr} libthread_db libufs libugidfw libulog \ - ${_libusbhid} ${_libusb} ${_libvgl} libwrap liby libz \ + ncurses \ + ${_libnetgraph} \ + libradius \ + librpcsvc \ + libsbuf \ + libtacplus \ + libutil \ + ${_libypclnt} + +SUBDIR= ${SUBDIR_ORDERED} \ + libalias \ + libarchive \ + ${_libatm} \ + libbegemot \ + ${_libbluetooth} \ + ${_libbsnmp} \ + libbz2 \ + libcalendar \ + libcam \ + libcompat \ + libdevinfo \ + libdevstat \ + libdisk \ + libdwarf \ + libedit \ + ${_libefi} \ + libexpat \ + libfetch \ + libftpio \ + libgeom \ + ${_libgpib} \ + ${_libgssapi} \ + ${_librpcsec_gss} \ + libipsec \ + ${_libipx} \ + libjail \ + libkiconv \ + libmagic \ + libmemstat \ + ${_libmilter} \ + ${_libmp} \ + ${_libncp} \ + ${_libngatm} \ + libopie \ + libpam \ + libpcap \ + ${_libpmc} \ + libproc \ + librt \ + ${_libsdp} \ + ${_libsm} \ + ${_libsmb} \ + ${_libsmdb} \ + ${_libsmutil} \ + libstand \ + ${_libtelnet} \ + ${_libthr} \ + libthread_db \ + libufs \ + libugidfw \ + libulog \ + ${_libusbhid} \ + ${_libusb} \ + ${_libvgl} \ + libwrap \ + liby \ + libz \ ${_bind} .if exists(${.CURDIR}/csu/${MACHINE_CPUARCH}-elf) Modified: user/imp/tbemd/lib/bind/config.h ============================================================================== --- user/imp/tbemd/lib/bind/config.h Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/bind/config.h Mon Apr 12 23:06:14 2010 (r206518) @@ -283,6 +283,10 @@ int sigwait(const unsigned int *set, int /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + /* Defined if extern char *optarg is not declared. */ /* #undef NEED_OPTARG */ Modified: user/imp/tbemd/lib/csu/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/csu/Makefile.inc Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/Makefile.inc Mon Apr 12 23:06:14 2010 (r206518) @@ -2,4 +2,4 @@ SSP_CFLAGS= -WARNS?= 6 +.include "../Makefile.inc" Modified: user/imp/tbemd/lib/csu/amd64/crt1.c ============================================================================== --- user/imp/tbemd/lib/csu/amd64/crt1.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/amd64/crt1.c Mon Apr 12 23:06:14 2010 (r206518) @@ -43,7 +43,6 @@ typedef void (*fptr)(void); extern void _fini(void); extern void _init(void); extern int main(int, char **, char **); -extern void _start(char **, void (*)(void)); #ifdef GCRT extern void _mcleanup(void); @@ -55,6 +54,8 @@ extern int etext; char **environ; const char *__progname = ""; +void _start(char **, void (*)(void)); + /* The entry function. */ void _start(char **ap, void (*cleanup)(void)) Modified: user/imp/tbemd/lib/csu/arm/Makefile ============================================================================== --- user/imp/tbemd/lib/csu/arm/Makefile Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/arm/Makefile Mon Apr 12 23:06:14 2010 (r206518) @@ -5,12 +5,9 @@ SRCS= crt1.c crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} OBJS+= Scrt1.o gcrt1.o -CFLAGS+= -Wall -Wno-unused \ - -I${.CURDIR}/../common \ +CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include -WARNS?= 2 - all: ${OBJS} CLEANFILES= ${OBJS} Modified: user/imp/tbemd/lib/csu/arm/crt1.c ============================================================================== --- user/imp/tbemd/lib/csu/arm/crt1.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/arm/crt1.c Mon Apr 12 23:06:14 2010 (r206518) @@ -74,6 +74,9 @@ char **environ; const char *__progname = ""; struct ps_strings *__ps_strings; +void __start(int, char **, char **, struct ps_strings *, + const struct Struct_Obj_Entry *, void (*)(void)); + /* The entry function. */ __asm(" .text \n" " .align 0 \n" Modified: user/imp/tbemd/lib/csu/i386-elf/Makefile ============================================================================== --- user/imp/tbemd/lib/csu/i386-elf/Makefile Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/i386-elf/Makefile Mon Apr 12 23:06:14 2010 (r206518) @@ -23,7 +23,7 @@ crt1.o: crt1_c.o crt1_s.o objcopy --localize-symbol _start1 crt1.o Scrt1_c.o: crt1_c.c - ${CC} ${CFLAGS} -DGCRT -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c + ${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c Scrt1.o: Scrt1_c.o crt1_s.o ${LD} ${LDFLAGS} -o Scrt1.o -r crt1_s.o Scrt1_c.o Modified: user/imp/tbemd/lib/csu/ia64/Makefile ============================================================================== --- user/imp/tbemd/lib/csu/ia64/Makefile Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/ia64/Makefile Mon Apr 12 23:06:14 2010 (r206518) @@ -5,8 +5,7 @@ SRCS= crt1.S crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} OBJS+= Scrt1.o gcrt1.o -CFLAGS+= -Wall -Wno-unused \ - -I${.CURDIR}/../common \ +CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include all: ${OBJS} Modified: user/imp/tbemd/lib/csu/mips/Makefile ============================================================================== --- user/imp/tbemd/lib/csu/mips/Makefile Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/mips/Makefile Mon Apr 12 23:06:14 2010 (r206518) @@ -5,12 +5,9 @@ SRCS= crt1.c crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} OBJS+= Scrt1.o gcrt1.o -CFLAGS+= -Wall -Wno-unused \ - -I${.CURDIR}/../common \ +CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include -WARNS?= 2 - all: ${OBJS} CLEANFILES= ${OBJS} Modified: user/imp/tbemd/lib/csu/mips/crt1.c ============================================================================== --- user/imp/tbemd/lib/csu/mips/crt1.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/mips/crt1.c Mon Apr 12 23:06:14 2010 (r206518) @@ -66,12 +66,14 @@ extern int etext; char **environ; const char *__progname = ""; +void __start(char **, void (*)(void), struct Struct_Obj_Entry *, struct ps_strings *); + /* The entry function. */ void __start(char **ap, void (*cleanup)(void), /* from shared loader */ - struct Struct_Obj_Entry *obj, /* from shared loader */ - struct ps_strings *ps_strings) + struct Struct_Obj_Entry *obj __unused, /* from shared loader */ + struct ps_strings *ps_strings __unused) { int argc; char **argv; Modified: user/imp/tbemd/lib/csu/mips/crti.S ============================================================================== --- user/imp/tbemd/lib/csu/mips/crti.S Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/mips/crti.S Mon Apr 12 23:06:14 2010 (r206518) @@ -6,7 +6,7 @@ __FBSDID("$FreeBSD$"); .globl _init .type _init,%function _init: - .set nreoorder + .set noreorder #if defined(__ABICALLS__) && (defined(__mips_o32) || defined(__mips_o64)) SETUP_GP #endif Modified: user/imp/tbemd/lib/csu/powerpc/Makefile ============================================================================== --- user/imp/tbemd/lib/csu/powerpc/Makefile Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/powerpc/Makefile Mon Apr 12 23:06:14 2010 (r206518) @@ -5,8 +5,7 @@ SRCS= crt1.c crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} OBJS+= Scrt1.o gcrt1.o -CFLAGS+= -Wall -Wno-unused \ - -I${.CURDIR}/../common \ +CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include all: ${OBJS} Modified: user/imp/tbemd/lib/csu/powerpc/crt1.c ============================================================================== --- user/imp/tbemd/lib/csu/powerpc/crt1.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/powerpc/crt1.c Mon Apr 12 23:06:14 2010 (r206518) @@ -59,8 +59,6 @@ extern int _DYNAMIC; extern void _fini(void); extern void _init(void); extern int main(int, char **, char **); -extern void _start(int, char **, char **, const struct Struct_Obj_Entry *, - void (*)(void), struct ps_strings *); #ifdef GCRT extern void _mcleanup(void); @@ -73,6 +71,9 @@ char **environ; const char *__progname = ""; struct ps_strings *__ps_strings; +void _start(int, char **, char **, const struct Struct_Obj_Entry *, + void (*)(void), struct ps_strings *); + /* The entry function. */ /* * First 5 arguments are specified by the PowerPC SVR4 ABI. Modified: user/imp/tbemd/lib/csu/sparc64/crt1.c ============================================================================== --- user/imp/tbemd/lib/csu/sparc64/crt1.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/csu/sparc64/crt1.c Mon Apr 12 23:06:14 2010 (r206518) @@ -50,8 +50,6 @@ extern int _DYNAMIC; extern void _fini(void); extern void _init(void); extern int main(int, char **, char **); -extern void _start(char **, void (*)(void), struct Struct_Obj_Entry *, - struct ps_strings *); extern void __sparc_utrap_setup(void); #ifdef GCRT @@ -64,6 +62,9 @@ extern int etext; char **environ; const char *__progname = ""; +void _start(char **, void (*)(void), struct Struct_Obj_Entry *, + struct ps_strings *); + /* The entry function. */ /* * %o0 holds ps_strings pointer. Modified: user/imp/tbemd/lib/libc/compat-43/sigpause.2 ============================================================================== --- user/imp/tbemd/lib/libc/compat-43/sigpause.2 Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/compat-43/sigpause.2 Mon Apr 12 23:06:14 2010 (r206518) @@ -195,6 +195,7 @@ functions, an attempt was made to catch .Dv SIGKILL or .Dv SIGSTOP . +.El .Sh SEE ALSO .Xr kill 2 , .Xr sigaction 2 , Modified: user/imp/tbemd/lib/libc/db/hash/hash.c ============================================================================== --- user/imp/tbemd/lib/libc/db/hash/hash.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/db/hash/hash.c Mon Apr 12 23:06:14 2010 (r206518) @@ -293,6 +293,8 @@ init_hash(HTAB *hashp, const char *file, if (stat(file, &statbuf)) return (NULL); hashp->BSIZE = statbuf.st_blksize; + if (hashp->BSIZE > MAX_BSIZE) + hashp->BSIZE = MAX_BSIZE; hashp->BSHIFT = __log2(hashp->BSIZE); } Modified: user/imp/tbemd/lib/libc/db/hash/hash.h ============================================================================== --- user/imp/tbemd/lib/libc/db/hash/hash.h Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/db/hash/hash.h Mon Apr 12 23:06:14 2010 (r206518) @@ -118,7 +118,7 @@ typedef struct htab { /* Memory reside /* * Constants */ -#define MAX_BSIZE 65536 /* 2^16 */ +#define MAX_BSIZE 32768 /* 2^15 but should be 65536 */ #define MIN_BUFFERS 6 #define MINHDRSIZE 512 #define DEF_BUFSIZE 65536 /* 64 K */ Modified: user/imp/tbemd/lib/libc/db/man/hash.3 ============================================================================== --- user/imp/tbemd/lib/libc/db/man/hash.3 Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/db/man/hash.3 Mon Apr 12 23:06:14 2010 (r206518) @@ -78,7 +78,7 @@ The element defines the .Nm -table bucket size, and is, by default, 256 bytes. +table bucket size, and is, by default, 4096 bytes. It may be preferable to increase the page size for disk-resident tables and tables with large data items. .It Va ffactor Modified: user/imp/tbemd/lib/libc/gen/__getosreldate.c ============================================================================== --- user/imp/tbemd/lib/libc/gen/__getosreldate.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/gen/__getosreldate.c Mon Apr 12 23:06:14 2010 (r206518) @@ -30,6 +30,8 @@ __FBSDID("$FreeBSD$"); #include #include +int __getosreldate(void); + /* * This is private to libc. It is intended for wrapping syscall stubs in order * to avoid having to put SIGSYS signal handlers in place to test for presence Modified: user/imp/tbemd/lib/libc/gen/_spinlock_stub.c ============================================================================== --- user/imp/tbemd/lib/libc/gen/_spinlock_stub.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/gen/_spinlock_stub.c Mon Apr 12 23:06:14 2010 (r206518) @@ -34,6 +34,11 @@ __FBSDID("$FreeBSD$"); #include "spinlock.h" +long _atomic_lock_stub(volatile long *); +void _spinlock_stub(spinlock_t *); +void _spinunlock_stub(spinlock_t *); +void _spinlock_debug_stub(spinlock_t *, char *, int); + /* * Declare weak definitions in case the application is not linked * with libpthread. @@ -43,12 +48,11 @@ __weak_reference(_spinlock_stub, _spinlo __weak_reference(_spinunlock_stub, _spinunlock); __weak_reference(_spinlock_debug_stub, _spinlock_debug); - /* * This function is a stub for the _atomic_lock function in libpthread. */ long -_atomic_lock_stub(volatile long *lck) +_atomic_lock_stub(volatile long *lck __unused) { return (0L); } @@ -58,7 +62,7 @@ _atomic_lock_stub(volatile long *lck) * This function is a stub for the spinlock function in libpthread. */ void -_spinlock_stub(spinlock_t *lck) +_spinlock_stub(spinlock_t *lck __unused) { } @@ -66,7 +70,7 @@ _spinlock_stub(spinlock_t *lck) * This function is a stub for the spinunlock function in libpthread. */ void -_spinunlock_stub(spinlock_t *lck) +_spinunlock_stub(spinlock_t *lck __unused) { } @@ -74,6 +78,6 @@ _spinunlock_stub(spinlock_t *lck) * This function is a stub for the debug spinlock function in libpthread. */ void -_spinlock_debug_stub(spinlock_t *lck, char *fname, int lineno) +_spinlock_debug_stub(spinlock_t *lck __unused, char *fname __unused, int lineno __unused) { } Modified: user/imp/tbemd/lib/libc/gen/_thread_init.c ============================================================================== --- user/imp/tbemd/lib/libc/gen/_thread_init.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/gen/_thread_init.c Mon Apr 12 23:06:14 2010 (r206518) @@ -29,6 +29,8 @@ __FBSDID("$FreeBSD$"); #include +void _thread_init_stub(void); + __weak_reference(_thread_init_stub, _thread_init); __weak_reference(_thread_autoinit_dummy_decl_stub, _thread_autoinit_dummy_decl); Modified: user/imp/tbemd/lib/libc/gen/daemon.c ============================================================================== --- user/imp/tbemd/lib/libc/gen/daemon.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/gen/daemon.c Mon Apr 12 23:06:14 2010 (r206518) @@ -64,6 +64,10 @@ daemon(nochdir, noclose) case 0: break; default: + /* + * A fine point: _exit(0), not exit(0), to avoid triggering + * atexit(3) processing + */ _exit(0); } Modified: user/imp/tbemd/lib/libc/gen/dlfcn.c ============================================================================== --- user/imp/tbemd/lib/libc/gen/dlfcn.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/gen/dlfcn.c Mon Apr 12 23:06:14 2010 (r206518) @@ -34,7 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include -static const char sorry[] = "Service unavailable"; +static char sorry[] = "Service unavailable"; /* * For ELF, the dynamic linker directly resolves references to its @@ -69,7 +69,7 @@ dlclose(void *handle) } #pragma weak dlerror -const char * +char * dlerror(void) { return sorry; Modified: user/imp/tbemd/lib/libc/gen/dlopen.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/dlopen.3 Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/gen/dlopen.3 Mon Apr 12 23:06:14 2010 (r206518) @@ -52,7 +52,7 @@ .Fn dlsym "void * restrict handle" "const char * restrict symbol" .Ft dlfunc_t .Fn dlfunc "void * restrict handle" "const char * restrict symbol" -.Ft const char * +.Ft char * .Fn dlerror "void" .Ft int .Fn dlclose "void *handle" Modified: user/imp/tbemd/lib/libc/gen/opendir.c ============================================================================== --- user/imp/tbemd/lib/libc/gen/opendir.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/gen/opendir.c Mon Apr 12 23:06:14 2010 (r206518) @@ -86,7 +86,7 @@ __opendir2(const char *name, int flags) errno = ENOTDIR; return (NULL); } - if ((fd = _open(name, O_RDONLY | O_NONBLOCK)) == -1) + if ((fd = _open(name, O_RDONLY | O_NONBLOCK | O_DIRECTORY)) == -1) return (NULL); return __opendir_common(fd, name, flags); @@ -200,7 +200,7 @@ __opendir_common(int fd, const char *nam */ if (flags & DTF_REWIND) { (void)_close(fd); - if ((fd = _open(name, O_RDONLY)) == -1) { + if ((fd = _open(name, O_RDONLY | O_DIRECTORY)) == -1) { saved_errno = errno; free(buf); free(dirp); Modified: user/imp/tbemd/lib/libc/net/getservent.c ============================================================================== --- user/imp/tbemd/lib/libc/net/getservent.c Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/net/getservent.c Mon Apr 12 23:06:14 2010 (r206518) @@ -37,7 +37,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include #include @@ -94,6 +96,19 @@ NSS_TLS_HANDLING(files); static int files_servent(void *, void *, va_list); static int files_setservent(void *, void *, va_list); +/* db backend declarations */ +struct db_state +{ + DB *db; + int stayopen; + int keynum; +}; +static void db_endstate(void *); +NSS_TLS_HANDLING(db); + +static int db_servent(void *, void *, va_list); +static int db_setservent(void *, void *, va_list); + #ifdef YP /* nis backend declarations */ static int nis_servent(void *, void *, va_list); @@ -207,6 +222,32 @@ servent_unpack(char *p, struct servent * return 0; } +static int +parse_result(struct servent *serv, char *buffer, size_t bufsize, + char *resultbuf, size_t resultbuflen, int *errnop) +{ + char **aliases; + int aliases_size; + + if (bufsize <= resultbuflen + _ALIGNBYTES + sizeof(char *)) { + *errnop = ERANGE; + return (NS_RETURN); + } + aliases = (char **)_ALIGN(&buffer[resultbuflen + 1]); + aliases_size = (buffer + bufsize - (char *)aliases) / sizeof(char *); + if (aliases_size < 1) { + *errnop = ERANGE; + return (NS_RETURN); + } + + memcpy(buffer, resultbuf, resultbuflen); + buffer[resultbuflen] = '\0'; + + if (servent_unpack(buffer, serv, aliases, aliases_size, errnop) != 0) + return ((*errnop == 0) ? NS_NOTFOUND : NS_RETURN); + return (NS_SUCCESS); +} + /* files backend implementation */ static void files_endstate(void *p) @@ -237,6 +278,8 @@ files_servent(void *retval, void *mdata, { NULL, 0 } }; ns_dtab compat_dtab[] = { + { NSSRC_DB, db_servent, + (void *)((struct servent_mdata *)mdata)->how }, #ifdef YP { NSSRC_NIS, nis_servent, (void *)((struct servent_mdata *)mdata)->how }, @@ -258,8 +301,6 @@ files_servent(void *retval, void *mdata, size_t bufsize; int *errnop; - char **aliases; - int aliases_size; size_t linesize; char *line; char **cp; @@ -315,28 +356,8 @@ files_servent(void *retval, void *mdata, break; } - if (*line=='+') { - if (serv_mdata->compat_mode != 0) - st->compat_mode_active = 1; - } else { - if (bufsize <= linesize + _ALIGNBYTES + - sizeof(char *)) { - *errnop = ERANGE; - rv = NS_RETURN; - break; - } - aliases = (char **)_ALIGN(&buffer[linesize+1]); - aliases_size = (buffer + bufsize - - (char *)aliases) / sizeof(char *); - if (aliases_size < 1) { - *errnop = ERANGE; - rv = NS_RETURN; - break; - } - - memcpy(buffer, line, linesize); - buffer[linesize] = '\0'; - } + if (*line=='+' && serv_mdata->compat_mode != 0) + st->compat_mode_active = 1; } if (st->compat_mode_active != 0) { @@ -367,18 +388,12 @@ files_servent(void *retval, void *mdata, continue; } - rv = servent_unpack(buffer, serv, aliases, aliases_size, + rv = parse_result(serv, buffer, bufsize, line, linesize, errnop); - if (rv !=0 ) { - if (*errnop == 0) { - rv = NS_NOTFOUND; - continue; - } - else { - rv = NS_RETURN; - break; - } - } + if (rv == NS_NOTFOUND) + continue; + if (rv == NS_RETURN) + break; rv = NS_NOTFOUND; switch (serv_mdata->how) { @@ -454,6 +469,183 @@ files_setservent(void *retval, void *mda return (NS_UNAVAIL); } +/* db backend implementation */ +static void +db_endstate(void *p) +{ + DB *db; + + if (p == NULL) + return; + + db = ((struct db_state *)p)->db; + if (db != NULL) + db->close(db); + + free(p); +} + +static int +db_servent(void *retval, void *mdata, va_list ap) +{ + char buf[BUFSIZ]; + DBT key, data, *result; + DB *db; + + struct db_state *st; + int rv; + int stayopen; + + enum nss_lookup_type how; + char *name; + char *proto; + int port; + + struct servent *serv; + char *buffer; + size_t bufsize; + int *errnop; + + name = NULL; + proto = NULL; + how = (enum nss_lookup_type)mdata; + switch (how) { + case nss_lt_name: + name = va_arg(ap, char *); + proto = va_arg(ap, char *); + break; + case nss_lt_id: + port = va_arg(ap, int); + proto = va_arg(ap, char *); + break; + case nss_lt_all: + break; + default: + return NS_NOTFOUND; + }; + + serv = va_arg(ap, struct servent *); + buffer = va_arg(ap, char *); + bufsize = va_arg(ap, size_t); + errnop = va_arg(ap,int *); + + *errnop = db_getstate(&st); + if (*errnop != 0) + return (NS_UNAVAIL); + + if (how == nss_lt_all && st->keynum < 0) + return (NS_NOTFOUND); + + if (st->db == NULL) { + st->db = dbopen(_PATH_SERVICES_DB, O_RDONLY, 0, DB_HASH, NULL); + if (st->db == NULL) { + *errnop = errno; + return (NS_UNAVAIL); + } + } + + stayopen = (how == nss_lt_all) ? 1 : st->stayopen; + db = st->db; + + do { + switch (how) { + case nss_lt_name: + key.data = buf; + if (proto == NULL) + key.size = snprintf(buf, sizeof(buf), + "\376%s", name); + else + key.size = snprintf(buf, sizeof(buf), + "\376%s/%s", name, proto); + key.size++; + if (db->get(db, &key, &data, 0) != 0 || + db->get(db, &data, &key, 0) != 0) { + rv = NS_NOTFOUND; + goto db_fin; + } + result = &key; + break; + case nss_lt_id: + key.data = buf; + port = htons(port); + if (proto == NULL) + key.size = snprintf(buf, sizeof(buf), + "\377%d", port); + else + key.size = snprintf(buf, sizeof(buf), + "\377%d/%s", port, proto); + key.size++; + if (db->get(db, &key, &data, 0) != 0 || + db->get(db, &data, &key, 0) != 0) { + rv = NS_NOTFOUND; + goto db_fin; + } + result = &key; + break; + case nss_lt_all: + key.data = buf; + key.size = snprintf(buf, sizeof(buf), "%d", + st->keynum++); + key.size++; + if (db->get(db, &key, &data, 0) != 0) { + st->keynum = -1; + rv = NS_NOTFOUND; + goto db_fin; + } + result = &data; + break; + } + + rv = parse_result(serv, buffer, bufsize, result->data, + result->size - 1, errnop); + + } while (!(rv & NS_TERMINATE) && how == nss_lt_all); + +db_fin: + if (!stayopen && st->db != NULL) { + db->close(db); + st->db = NULL; + } + + if (rv == NS_SUCCESS && retval != NULL) + *(struct servent **)retval = serv; + + return (rv); +} + +static int +db_setservent(void *retval, void *mdata, va_list ap) +{ + DB *db; + struct db_state *st; + int rv; + int f; + + rv = db_getstate(&st); + if (rv != 0) + return (NS_UNAVAIL); + + switch ((enum constants)mdata) { + case SETSERVENT: + f = va_arg(ap, int); + st->stayopen |= f; + st->keynum = 0; + break; + case ENDSERVENT: + db = st->db; + if (db != NULL) { + db->close(db); + st->db = NULL; + } + st->stayopen = 0; + break; + default: + break; + }; + + return (NS_UNAVAIL); +} + /* nis backend implementation */ #ifdef YP static void @@ -486,9 +678,6 @@ nis_servent(void *retval, void *mdata, v size_t bufsize; int *errnop; - char **aliases; - int aliases_size; - name = NULL; proto = NULL; how = (enum nss_lookup_type)mdata; @@ -594,39 +783,8 @@ nis_servent(void *retval, void *mdata, v break; }; - /* we need a room for additional \n symbol */ - if (bufsize <= - resultbuflen + 1 + _ALIGNBYTES + sizeof(char *)) { - *errnop = ERANGE; - rv = NS_RETURN; - break; - } - - aliases = (char **)_ALIGN(&buffer[resultbuflen + 2]); - aliases_size = - (buffer + bufsize - (char *)aliases) / sizeof(char *); - if (aliases_size < 1) { - *errnop = ERANGE; - rv = NS_RETURN; - break; - } - - /* - * servent_unpack expects lines terminated with \n -- - * make it happy - */ - memcpy(buffer, resultbuf, resultbuflen); - buffer[resultbuflen] = '\n'; - buffer[resultbuflen + 1] = '\0'; - - if (servent_unpack(buffer, serv, aliases, aliases_size, - errnop) != 0) { - if (*errnop == 0) - rv = NS_NOTFOUND; - else - rv = NS_RETURN; - } else - rv = NS_SUCCESS; + rv = parse_result(serv, buffer, bufsize, resultbuf, + resultbuflen, errnop); free(resultbuf); } while (!(rv & NS_TERMINATE) && how == nss_lt_all); @@ -674,6 +832,7 @@ compat_setservent(void *retval, void *md { NULL, 0 } }; ns_dtab compat_dtab[] = { + { NSSRC_DB, db_setservent, mdata }, #ifdef YP { NSSRC_NIS, nis_setservent, mdata }, #endif @@ -960,6 +1119,7 @@ getservbyname_r(const char *name, const #endif /* NS_CACHING */ static const ns_dtab dtab[] = { { NSSRC_FILES, files_servent, (void *)&mdata }, + { NSSRC_DB, db_servent, (void *)nss_lt_name }, #ifdef YP { NSSRC_NIS, nis_servent, (void *)nss_lt_name }, #endif @@ -996,6 +1156,7 @@ getservbyport_r(int port, const char *pr #endif static const ns_dtab dtab[] = { { NSSRC_FILES, files_servent, (void *)&mdata }, + { NSSRC_DB, db_servent, (void *)nss_lt_id }, #ifdef YP { NSSRC_NIS, nis_servent, (void *)nss_lt_id }, #endif @@ -1031,6 +1192,7 @@ getservent_r(struct servent *serv, char #endif static const ns_dtab dtab[] = { { NSSRC_FILES, files_servent, (void *)&mdata }, + { NSSRC_DB, db_servent, (void *)nss_lt_all }, #ifdef YP { NSSRC_NIS, nis_servent, (void *)nss_lt_all }, #endif @@ -1063,6 +1225,7 @@ setservent(int stayopen) #endif static const ns_dtab dtab[] = { { NSSRC_FILES, files_setservent, (void *)SETSERVENT }, + { NSSRC_DB, db_setservent, (void *)SETSERVENT }, #ifdef YP { NSSRC_NIS, nis_setservent, (void *)SETSERVENT }, #endif @@ -1087,6 +1250,7 @@ endservent() #endif static const ns_dtab dtab[] = { { NSSRC_FILES, files_setservent, (void *)ENDSERVENT }, + { NSSRC_DB, db_setservent, (void *)ENDSERVENT }, #ifdef YP { NSSRC_NIS, nis_setservent, (void *)ENDSERVENT }, #endif Modified: user/imp/tbemd/lib/libc/net/nsdispatch.3 ============================================================================== --- user/imp/tbemd/lib/libc/net/nsdispatch.3 Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/net/nsdispatch.3 Mon Apr 12 23:06:14 2010 (r206518) @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 22, 2007 +.Dd April 4, 2010 .Dt NSDISPATCH 3 .Os .Sh NAME @@ -176,6 +176,7 @@ While there is support for arbitrary sou .Bl -column NSSRC_COMPAT compat -offset indent .It Sy "#define value" .It Dv NSSRC_FILES Ta """files"" +.It Dv NSSRC_DB Ta """db"" .It Dv NSSRC_DNS Ta """dns"" .It Dv NSSRC_NIS Ta """nis"" .It Dv NSSRC_COMPAT Ta """compat"" Modified: user/imp/tbemd/lib/libc/posix1e/acl_add_flag_np.3 ============================================================================== --- user/imp/tbemd/lib/libc/posix1e/acl_add_flag_np.3 Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/posix1e/acl_add_flag_np.3 Mon Apr 12 23:06:14 2010 (r206518) @@ -14,14 +14,14 @@ .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE -.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/lib/libc/posix1e/acl_clear_flags_np.3 ============================================================================== --- user/imp/tbemd/lib/libc/posix1e/acl_clear_flags_np.3 Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/posix1e/acl_clear_flags_np.3 Mon Apr 12 23:06:14 2010 (r206518) @@ -14,14 +14,14 @@ .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE -.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/lib/libc/posix1e/acl_delete_flag_np.3 ============================================================================== --- user/imp/tbemd/lib/libc/posix1e/acl_delete_flag_np.3 Mon Apr 12 23:05:32 2010 (r206517) +++ user/imp/tbemd/lib/libc/posix1e/acl_delete_flag_np.3 Mon Apr 12 23:06:14 2010 (r206518) @@ -14,14 +14,14 @@ .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE -.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:09:23 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D37981065674; Mon, 12 Apr 2010 23:09:23 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B0DE28FC0A; Mon, 12 Apr 2010 23:09:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CN9NUQ068723; Mon, 12 Apr 2010 23:09:23 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CN9NQx068709; Mon, 12 Apr 2010 23:09:23 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122309.o3CN9NQx068709@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:09:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206519 - in user/imp/tbemd: sbin/geom/class sbin/geom/class/cache sbin/geom/class/mountver sbin/geom/class/multipath sbin/geom/class/sched sbin/hastd sbin/ifconfig sbin/ipfw sbin/mount... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:09:23 -0000 Author: imp Date: Mon Apr 12 23:09:22 2010 New Revision: 206519 URL: http://svn.freebsd.org/changeset/base/206519 Log: Merge from head, part 5 of many. Added: user/imp/tbemd/sbin/geom/class/sched/ - copied from r206514, head/sbin/geom/class/sched/ user/imp/tbemd/secure/libexec/ssh-pkcs11-helper/ - copied from r206514, head/secure/libexec/ssh-pkcs11-helper/ Modified: user/imp/tbemd/sbin/geom/class/Makefile user/imp/tbemd/sbin/geom/class/cache/gcache.8 user/imp/tbemd/sbin/geom/class/mountver/gmountver.8 user/imp/tbemd/sbin/geom/class/multipath/geom_multipath.c user/imp/tbemd/sbin/hastd/primary.c user/imp/tbemd/sbin/ifconfig/ifconfig.c user/imp/tbemd/sbin/ifconfig/ifieee80211.c user/imp/tbemd/sbin/ipfw/Makefile user/imp/tbemd/sbin/ipfw/dummynet.c user/imp/tbemd/sbin/ipfw/ipfw.8 user/imp/tbemd/sbin/ipfw/ipfw2.c user/imp/tbemd/sbin/ipfw/ipfw2.h user/imp/tbemd/sbin/ipfw/main.c user/imp/tbemd/sbin/mount/mount.c user/imp/tbemd/sbin/newfs/mkfs.c user/imp/tbemd/sbin/newfs/newfs.8 user/imp/tbemd/sbin/newfs/newfs.c user/imp/tbemd/sbin/newfs/newfs.h user/imp/tbemd/sbin/nos-tun/Makefile user/imp/tbemd/sbin/nos-tun/nos-tun.c user/imp/tbemd/sbin/quotacheck/quotacheck.8 user/imp/tbemd/sbin/setkey/setkey.8 user/imp/tbemd/sbin/sysctl/sysctl.c user/imp/tbemd/secure/lib/libcrypto/Makefile.inc user/imp/tbemd/secure/lib/libcrypto/Makefile.man user/imp/tbemd/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 user/imp/tbemd/secure/lib/libcrypto/man/ASN1_STRING_length.3 user/imp/tbemd/secure/lib/libcrypto/man/ASN1_STRING_new.3 user/imp/tbemd/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 user/imp/tbemd/secure/lib/libcrypto/man/ASN1_generate_nconf.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_ctrl.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_f_base64.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_f_buffer.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_f_cipher.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_f_md.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_f_null.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_f_ssl.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_find_type.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_new.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_push.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_read.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_s_accept.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_s_bio.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_s_connect.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_s_fd.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_s_file.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_s_mem.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_s_null.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_s_socket.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_set_callback.3 user/imp/tbemd/secure/lib/libcrypto/man/BIO_should_retry.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_BLINDING_new.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_CTX_new.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_CTX_start.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_add.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_add_word.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_bn2bin.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_cmp.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_copy.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_generate_prime.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_mod_inverse.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_new.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_num_bytes.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_rand.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_set_bit.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_swap.3 user/imp/tbemd/secure/lib/libcrypto/man/BN_zero.3 user/imp/tbemd/secure/lib/libcrypto/man/CONF_modules_free.3 user/imp/tbemd/secure/lib/libcrypto/man/CONF_modules_load_file.3 user/imp/tbemd/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3 user/imp/tbemd/secure/lib/libcrypto/man/DH_generate_key.3 user/imp/tbemd/secure/lib/libcrypto/man/DH_generate_parameters.3 user/imp/tbemd/secure/lib/libcrypto/man/DH_get_ex_new_index.3 user/imp/tbemd/secure/lib/libcrypto/man/DH_new.3 user/imp/tbemd/secure/lib/libcrypto/man/DH_set_method.3 user/imp/tbemd/secure/lib/libcrypto/man/DH_size.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_SIG_new.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_do_sign.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_dup_DH.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_generate_key.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_generate_parameters.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_get_ex_new_index.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_new.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_set_method.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_sign.3 user/imp/tbemd/secure/lib/libcrypto/man/DSA_size.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_GET_LIB.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_clear_error.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_error_string.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_get_error.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_load_strings.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_print_errors.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_put_error.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_remove_state.3 user/imp/tbemd/secure/lib/libcrypto/man/ERR_set_mark.3 user/imp/tbemd/secure/lib/libcrypto/man/EVP_BytesToKey.3 user/imp/tbemd/secure/lib/libcrypto/man/EVP_DigestInit.3 user/imp/tbemd/secure/lib/libcrypto/man/EVP_EncryptInit.3 user/imp/tbemd/secure/lib/libcrypto/man/EVP_OpenInit.3 user/imp/tbemd/secure/lib/libcrypto/man/EVP_PKEY_new.3 user/imp/tbemd/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 user/imp/tbemd/secure/lib/libcrypto/man/EVP_SealInit.3 user/imp/tbemd/secure/lib/libcrypto/man/EVP_SignInit.3 user/imp/tbemd/secure/lib/libcrypto/man/EVP_VerifyInit.3 user/imp/tbemd/secure/lib/libcrypto/man/OBJ_nid2obj.3 user/imp/tbemd/secure/lib/libcrypto/man/OPENSSL_Applink.3 user/imp/tbemd/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 user/imp/tbemd/secure/lib/libcrypto/man/OPENSSL_config.3 user/imp/tbemd/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 user/imp/tbemd/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 user/imp/tbemd/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 user/imp/tbemd/secure/lib/libcrypto/man/PKCS12_create.3 user/imp/tbemd/secure/lib/libcrypto/man/PKCS12_parse.3 user/imp/tbemd/secure/lib/libcrypto/man/PKCS7_decrypt.3 user/imp/tbemd/secure/lib/libcrypto/man/PKCS7_encrypt.3 user/imp/tbemd/secure/lib/libcrypto/man/PKCS7_sign.3 user/imp/tbemd/secure/lib/libcrypto/man/PKCS7_verify.3 user/imp/tbemd/secure/lib/libcrypto/man/RAND_add.3 user/imp/tbemd/secure/lib/libcrypto/man/RAND_bytes.3 user/imp/tbemd/secure/lib/libcrypto/man/RAND_cleanup.3 user/imp/tbemd/secure/lib/libcrypto/man/RAND_egd.3 user/imp/tbemd/secure/lib/libcrypto/man/RAND_load_file.3 user/imp/tbemd/secure/lib/libcrypto/man/RAND_set_rand_method.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_blinding_on.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_check_key.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_generate_key.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_get_ex_new_index.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_new.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_print.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_private_encrypt.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_public_encrypt.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_set_method.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_sign.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 user/imp/tbemd/secure/lib/libcrypto/man/RSA_size.3 user/imp/tbemd/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 user/imp/tbemd/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 user/imp/tbemd/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 user/imp/tbemd/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 user/imp/tbemd/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 user/imp/tbemd/secure/lib/libcrypto/man/X509_NAME_print_ex.3 user/imp/tbemd/secure/lib/libcrypto/man/X509_new.3 user/imp/tbemd/secure/lib/libcrypto/man/bio.3 user/imp/tbemd/secure/lib/libcrypto/man/blowfish.3 user/imp/tbemd/secure/lib/libcrypto/man/bn.3 user/imp/tbemd/secure/lib/libcrypto/man/bn_internal.3 user/imp/tbemd/secure/lib/libcrypto/man/buffer.3 user/imp/tbemd/secure/lib/libcrypto/man/crypto.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_DHparams.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_DSAPublicKey.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_RSAPublicKey.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_X509.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_X509_ALGOR.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_X509_CRL.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_X509_NAME.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_X509_REQ.3 user/imp/tbemd/secure/lib/libcrypto/man/d2i_X509_SIG.3 user/imp/tbemd/secure/lib/libcrypto/man/des.3 user/imp/tbemd/secure/lib/libcrypto/man/dh.3 user/imp/tbemd/secure/lib/libcrypto/man/dsa.3 user/imp/tbemd/secure/lib/libcrypto/man/ecdsa.3 user/imp/tbemd/secure/lib/libcrypto/man/engine.3 user/imp/tbemd/secure/lib/libcrypto/man/err.3 user/imp/tbemd/secure/lib/libcrypto/man/evp.3 user/imp/tbemd/secure/lib/libcrypto/man/hmac.3 user/imp/tbemd/secure/lib/libcrypto/man/lh_stats.3 user/imp/tbemd/secure/lib/libcrypto/man/lhash.3 user/imp/tbemd/secure/lib/libcrypto/man/md5.3 user/imp/tbemd/secure/lib/libcrypto/man/mdc2.3 user/imp/tbemd/secure/lib/libcrypto/man/pem.3 user/imp/tbemd/secure/lib/libcrypto/man/rand.3 user/imp/tbemd/secure/lib/libcrypto/man/rc4.3 user/imp/tbemd/secure/lib/libcrypto/man/ripemd.3 user/imp/tbemd/secure/lib/libcrypto/man/rsa.3 user/imp/tbemd/secure/lib/libcrypto/man/sha.3 user/imp/tbemd/secure/lib/libcrypto/man/threads.3 user/imp/tbemd/secure/lib/libcrypto/man/ui.3 user/imp/tbemd/secure/lib/libcrypto/man/ui_compat.3 user/imp/tbemd/secure/lib/libcrypto/man/x509.3 user/imp/tbemd/secure/lib/libssh/Makefile user/imp/tbemd/secure/lib/libssl/Makefile user/imp/tbemd/secure/lib/libssl/Makefile.man user/imp/tbemd/secure/lib/libssl/man/SSL_CIPHER_get_name.3 user/imp/tbemd/secure/lib/libssl/man/SSL_COMP_add_compression_method.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_add_session.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_ctrl.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_flush_sessions.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_free.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_new.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_sess_number.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_sessions.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_cert_store.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_info_callback.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_mode.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_options.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_timeout.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_set_verify.3 user/imp/tbemd/secure/lib/libssl/man/SSL_CTX_use_certificate.3 user/imp/tbemd/secure/lib/libssl/man/SSL_SESSION_free.3 user/imp/tbemd/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3 user/imp/tbemd/secure/lib/libssl/man/SSL_SESSION_get_time.3 user/imp/tbemd/secure/lib/libssl/man/SSL_accept.3 user/imp/tbemd/secure/lib/libssl/man/SSL_alert_type_string.3 user/imp/tbemd/secure/lib/libssl/man/SSL_clear.3 user/imp/tbemd/secure/lib/libssl/man/SSL_connect.3 user/imp/tbemd/secure/lib/libssl/man/SSL_do_handshake.3 user/imp/tbemd/secure/lib/libssl/man/SSL_free.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_SSL_CTX.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_ciphers.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_client_CA_list.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_current_cipher.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_default_timeout.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_error.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_ex_new_index.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_fd.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_peer_cert_chain.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_peer_certificate.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_rbio.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_session.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_verify_result.3 user/imp/tbemd/secure/lib/libssl/man/SSL_get_version.3 user/imp/tbemd/secure/lib/libssl/man/SSL_library_init.3 user/imp/tbemd/secure/lib/libssl/man/SSL_load_client_CA_file.3 user/imp/tbemd/secure/lib/libssl/man/SSL_new.3 user/imp/tbemd/secure/lib/libssl/man/SSL_pending.3 user/imp/tbemd/secure/lib/libssl/man/SSL_read.3 user/imp/tbemd/secure/lib/libssl/man/SSL_rstate_string.3 user/imp/tbemd/secure/lib/libssl/man/SSL_session_reused.3 user/imp/tbemd/secure/lib/libssl/man/SSL_set_bio.3 user/imp/tbemd/secure/lib/libssl/man/SSL_set_connect_state.3 user/imp/tbemd/secure/lib/libssl/man/SSL_set_fd.3 user/imp/tbemd/secure/lib/libssl/man/SSL_set_session.3 user/imp/tbemd/secure/lib/libssl/man/SSL_set_shutdown.3 user/imp/tbemd/secure/lib/libssl/man/SSL_set_verify_result.3 user/imp/tbemd/secure/lib/libssl/man/SSL_shutdown.3 user/imp/tbemd/secure/lib/libssl/man/SSL_state_string.3 user/imp/tbemd/secure/lib/libssl/man/SSL_want.3 user/imp/tbemd/secure/lib/libssl/man/SSL_write.3 user/imp/tbemd/secure/lib/libssl/man/d2i_SSL_SESSION.3 user/imp/tbemd/secure/lib/libssl/man/ssl.3 user/imp/tbemd/secure/libexec/Makefile user/imp/tbemd/secure/usr.bin/openssl/man/CA.pl.1 user/imp/tbemd/secure/usr.bin/openssl/man/asn1parse.1 user/imp/tbemd/secure/usr.bin/openssl/man/ca.1 user/imp/tbemd/secure/usr.bin/openssl/man/ciphers.1 user/imp/tbemd/secure/usr.bin/openssl/man/crl.1 user/imp/tbemd/secure/usr.bin/openssl/man/crl2pkcs7.1 user/imp/tbemd/secure/usr.bin/openssl/man/dgst.1 user/imp/tbemd/secure/usr.bin/openssl/man/dhparam.1 user/imp/tbemd/secure/usr.bin/openssl/man/dsa.1 user/imp/tbemd/secure/usr.bin/openssl/man/dsaparam.1 user/imp/tbemd/secure/usr.bin/openssl/man/ec.1 user/imp/tbemd/secure/usr.bin/openssl/man/ecparam.1 user/imp/tbemd/secure/usr.bin/openssl/man/enc.1 user/imp/tbemd/secure/usr.bin/openssl/man/errstr.1 user/imp/tbemd/secure/usr.bin/openssl/man/gendsa.1 user/imp/tbemd/secure/usr.bin/openssl/man/genrsa.1 user/imp/tbemd/secure/usr.bin/openssl/man/nseq.1 user/imp/tbemd/secure/usr.bin/openssl/man/ocsp.1 user/imp/tbemd/secure/usr.bin/openssl/man/openssl.1 user/imp/tbemd/secure/usr.bin/openssl/man/passwd.1 user/imp/tbemd/secure/usr.bin/openssl/man/pkcs12.1 user/imp/tbemd/secure/usr.bin/openssl/man/pkcs7.1 user/imp/tbemd/secure/usr.bin/openssl/man/pkcs8.1 user/imp/tbemd/secure/usr.bin/openssl/man/rand.1 user/imp/tbemd/secure/usr.bin/openssl/man/req.1 user/imp/tbemd/secure/usr.bin/openssl/man/rsa.1 user/imp/tbemd/secure/usr.bin/openssl/man/rsautl.1 user/imp/tbemd/secure/usr.bin/openssl/man/s_client.1 user/imp/tbemd/secure/usr.bin/openssl/man/s_server.1 user/imp/tbemd/secure/usr.bin/openssl/man/s_time.1 user/imp/tbemd/secure/usr.bin/openssl/man/sess_id.1 user/imp/tbemd/secure/usr.bin/openssl/man/smime.1 user/imp/tbemd/secure/usr.bin/openssl/man/speed.1 user/imp/tbemd/secure/usr.bin/openssl/man/spkac.1 user/imp/tbemd/secure/usr.bin/openssl/man/verify.1 user/imp/tbemd/secure/usr.bin/openssl/man/version.1 user/imp/tbemd/secure/usr.bin/openssl/man/x509.1 user/imp/tbemd/secure/usr.bin/openssl/man/x509v3_config.1 user/imp/tbemd/secure/usr.bin/ssh/Makefile user/imp/tbemd/secure/usr.sbin/sshd/Makefile Modified: user/imp/tbemd/sbin/geom/class/Makefile ============================================================================== --- user/imp/tbemd/sbin/geom/class/Makefile Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/geom/class/Makefile Mon Apr 12 23:09:22 2010 (r206519) @@ -15,6 +15,7 @@ SUBDIR+=multipath SUBDIR+=nop SUBDIR+=part SUBDIR+=raid3 +SUBDIR+=sched SUBDIR+=shsec SUBDIR+=stripe SUBDIR+=virstor Modified: user/imp/tbemd/sbin/geom/class/cache/gcache.8 ============================================================================== --- user/imp/tbemd/sbin/geom/class/cache/gcache.8 Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/geom/class/cache/gcache.8 Mon Apr 12 23:09:22 2010 (r206519) @@ -14,14 +14,14 @@ .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE -.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/sbin/geom/class/mountver/gmountver.8 ============================================================================== --- user/imp/tbemd/sbin/geom/class/mountver/gmountver.8 Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/geom/class/mountver/gmountver.8 Mon Apr 12 23:09:22 2010 (r206519) @@ -14,14 +14,14 @@ .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR THE VOICES IN HIS HEAD BE -.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/sbin/geom/class/multipath/geom_multipath.c ============================================================================== --- user/imp/tbemd/sbin/geom/class/multipath/geom_multipath.c Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/geom/class/multipath/geom_multipath.c Mon Apr 12 23:09:22 2010 (r206519) @@ -48,6 +48,7 @@ uint32_t version = G_MULTIPATH_VERSION; static void mp_main(struct gctl_req *, unsigned int); static void mp_label(struct gctl_req *); static void mp_clear(struct gctl_req *); +static void mp_add(struct gctl_req *); struct g_command class_commands[] = { { @@ -55,6 +56,10 @@ struct g_command class_commands[] = { NULL, "[-v] name prov ..." }, { + "add", G_FLAG_VERBOSE | G_FLAG_LOADKLD, mp_main, G_NULL_OPTS, + NULL, "[-v] name prov ..." + }, + { "destroy", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, NULL, "[-v] prov ..." }, @@ -62,6 +67,14 @@ struct g_command class_commands[] = { "clear", G_FLAG_VERBOSE, mp_main, G_NULL_OPTS, NULL, "[-v] prov ..." }, + { + "rotate", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, + NULL, "[-v] prov ..." + }, + { + "getactive", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, + NULL, "[-v] prov ..." + }, G_CMD_SENTINEL }; @@ -77,6 +90,8 @@ mp_main(struct gctl_req *req, unsigned i } if (strcmp(name, "label") == 0) { mp_label(req); + } else if (strcmp(name, "add") == 0) { + mp_add(req); } else if (strcmp(name, "clear") == 0) { mp_clear(req); } else { @@ -93,7 +108,7 @@ mp_label(struct gctl_req *req) char *ptr; uuid_t uuid; uint32_t secsize = 0, ssize, status; - const char *name; + const char *name, *mpname; int error, i, nargs; nargs = gctl_get_int(req, "nargs"); @@ -148,8 +163,8 @@ mp_label(struct gctl_req *req) */ strlcpy(md.md_magic, G_MULTIPATH_MAGIC, sizeof(md.md_magic)); md.md_version = G_MULTIPATH_VERSION; - name = gctl_get_ascii(req, "arg0"); - strlcpy(md.md_name, name, sizeof(md.md_name)); + mpname = gctl_get_ascii(req, "arg0"); + strlcpy(md.md_name, mpname, sizeof(md.md_name)); md.md_size = disksiz; md.md_sectorsize = secsize; uuid_create(&uuid, &status); @@ -166,46 +181,44 @@ mp_label(struct gctl_req *req) free(ptr); /* - * Clear last sector first for each provider to spoil anything extant + * Clear metadata on initial provider first. */ - for (i = 1; i < nargs; i++) { - name = gctl_get_ascii(req, "arg%d", i); - error = g_metadata_clear(name, NULL); - if (error != 0) { - gctl_error(req, "cannot clear metadata on %s: %s.", - name, strerror(error)); - return; - } + name = gctl_get_ascii(req, "arg1"); + error = g_metadata_clear(name, NULL); + if (error != 0) { + gctl_error(req, "cannot clear metadata on %s: %s.", name, strerror(error)); + return; } + /* + * encode the metadata + */ multipath_metadata_encode(&md, sector); /* - * Ok, store metadata. + * Store metadata on the initial provider. */ - for (i = 1; i < nargs; i++) { - name = gctl_get_ascii(req, "arg%d", i); - error = g_metadata_store(name, sector, secsize); - if (error != 0) { - fprintf(stderr, "Can't store metadata on %s: %s.\n", - name, strerror(error)); - goto fail; - } + error = g_metadata_store(name, sector, secsize); + if (error != 0) { + gctl_error(req, "cannot store metadata on %s: %s.", name, strerror(error)); + return; } - return; -fail: /* - * Clear last sector first for each provider to spoil anything extant + * Now add the rest of the providers. */ - for (i = 1; i < nargs; i++) { - name = gctl_get_ascii(req, "arg%d", i); - error = g_metadata_clear(name, NULL); - if (error != 0) { - gctl_error(req, "cannot clear metadata on %s: %s.", - name, strerror(error)); + error = gctl_change_param(req, "verb", -1, "add"); + if (error) { + gctl_error(req, "unable to change verb to \"add\": %s.", strerror(error)); + return; + } + for (i = 2; i < nargs; i++) { + error = gctl_change_param(req, "arg1", -1, gctl_get_ascii(req, "arg%d", i)); + if (error) { + gctl_error(req, "unable to add %s to %s: %s.", gctl_get_ascii(req, "arg%d", i), mpname, strerror(error)); continue; } + mp_add(req); } } @@ -213,22 +226,23 @@ static void mp_clear(struct gctl_req *req) { const char *name; - int error, i, nargs; + int error; - nargs = gctl_get_int(req, "nargs"); - if (nargs < 1) { - gctl_error(req, "Too few arguments."); - return; + name = gctl_get_ascii(req, "arg1"); + error = g_metadata_clear(name, G_MULTIPATH_MAGIC); + if (error != 0) { + fprintf(stderr, "Can't clear metadata on %s: %s.\n", name, strerror(error)); + gctl_error(req, "Not fully done."); } +} - for (i = 0; i < nargs; i++) { - name = gctl_get_ascii(req, "arg%d", i); - error = g_metadata_clear(name, G_MULTIPATH_MAGIC); - if (error != 0) { - fprintf(stderr, "Can't clear metadata on %s: %s.\n", - name, strerror(error)); - gctl_error(req, "Not fully done."); - continue; - } - } +static void +mp_add(struct gctl_req *req) +{ + const char *errstr; + + errstr = gctl_issue(req); + if (errstr != NULL && errstr[0] != '\0') { + gctl_error(req, "%s", errstr); + } } Modified: user/imp/tbemd/sbin/hastd/primary.c ============================================================================== --- user/imp/tbemd/sbin/hastd/primary.c Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/hastd/primary.c Mon Apr 12 23:09:22 2010 (r206519) @@ -460,9 +460,11 @@ init_local(struct hast_resource *res) exit(EX_NOINPUT); } -static void -init_remote(struct hast_resource *res) +static bool +init_remote(struct hast_resource *res, struct proto_conn **inp, + struct proto_conn **outp) { + struct proto_conn *in, *out; struct nv *nvout, *nvin; const unsigned char *token; unsigned char *map; @@ -472,13 +474,17 @@ init_remote(struct hast_resource *res) uint32_t mapsize; size_t size; + assert((inp == NULL && outp == NULL) || (inp != NULL && outp != NULL)); + + in = out = NULL; + /* Prepare outgoing connection with remote node. */ - if (proto_client(res->hr_remoteaddr, &res->hr_remoteout) < 0) { + if (proto_client(res->hr_remoteaddr, &out) < 0) { primary_exit(EX_OSERR, "Unable to create connection to %s", res->hr_remoteaddr); } /* Try to connect, but accept failure. */ - if (proto_connect(res->hr_remoteout) < 0) { + if (proto_connect(out) < 0) { pjdlog_errno(LOG_WARNING, "Unable to connect to %s", res->hr_remoteaddr); goto close; @@ -496,7 +502,7 @@ init_remote(struct hast_resource *res) nv_free(nvout); goto close; } - if (hast_proto_send(res, res->hr_remoteout, nvout, NULL, 0) < 0) { + if (hast_proto_send(res, out, nvout, NULL, 0) < 0) { pjdlog_errno(LOG_WARNING, "Unable to send handshake header to %s", res->hr_remoteaddr); @@ -504,7 +510,7 @@ init_remote(struct hast_resource *res) goto close; } nv_free(nvout); - if (hast_proto_recv_hdr(res->hr_remoteout, &nvin) < 0) { + if (hast_proto_recv_hdr(out, &nvin) < 0) { pjdlog_errno(LOG_WARNING, "Unable to receive handshake header from %s", res->hr_remoteaddr); @@ -536,12 +542,12 @@ init_remote(struct hast_resource *res) * Second handshake step. * Setup incoming connection with remote node. */ - if (proto_client(res->hr_remoteaddr, &res->hr_remotein) < 0) { + if (proto_client(res->hr_remoteaddr, &in) < 0) { pjdlog_errno(LOG_WARNING, "Unable to create connection to %s", res->hr_remoteaddr); } /* Try to connect, but accept failure. */ - if (proto_connect(res->hr_remotein) < 0) { + if (proto_connect(in) < 0) { pjdlog_errno(LOG_WARNING, "Unable to connect to %s", res->hr_remoteaddr); goto close; @@ -560,7 +566,7 @@ init_remote(struct hast_resource *res) nv_free(nvout); goto close; } - if (hast_proto_send(res, res->hr_remotein, nvout, NULL, 0) < 0) { + if (hast_proto_send(res, in, nvout, NULL, 0) < 0) { pjdlog_errno(LOG_WARNING, "Unable to send handshake header to %s", res->hr_remoteaddr); @@ -568,7 +574,7 @@ init_remote(struct hast_resource *res) goto close; } nv_free(nvout); - if (hast_proto_recv_hdr(res->hr_remoteout, &nvin) < 0) { + if (hast_proto_recv_hdr(out, &nvin) < 0) { pjdlog_errno(LOG_WARNING, "Unable to receive handshake header from %s", res->hr_remoteaddr); @@ -611,7 +617,7 @@ init_remote(struct hast_resource *res) * Remote node have some dirty extents on its own, lets * download its activemap. */ - if (hast_proto_recv_data(res, res->hr_remoteout, nvin, map, + if (hast_proto_recv_data(res, out, nvin, map, mapsize) < 0) { pjdlog_errno(LOG_ERR, "Unable to receive remote activemap"); @@ -631,18 +637,29 @@ init_remote(struct hast_resource *res) (void)hast_activemap_flush(res); } pjdlog_info("Connected to %s.", res->hr_remoteaddr); + if (inp != NULL && outp != NULL) { + *inp = in; + *outp = out; + } else { + res->hr_remotein = in; + res->hr_remoteout = out; + } + return (true); +close: + proto_close(out); + if (in != NULL) + proto_close(in); + return (false); +} + +static void +sync_start(void) +{ + mtx_lock(&sync_lock); sync_inprogress = true; mtx_unlock(&sync_lock); cv_signal(&sync_cond); - return; -close: - proto_close(res->hr_remoteout); - res->hr_remoteout = NULL; - if (res->hr_remotein != NULL) { - proto_close(res->hr_remotein); - res->hr_remotein = NULL; - } } static void @@ -735,7 +752,8 @@ hastd_primary(struct hast_resource *res) setproctitle("%s (primary)", res->hr_name); init_local(res); - init_remote(res); + if (init_remote(res, NULL, NULL)) + sync_start(); init_ggate(res); init_environment(res); error = pthread_create(&td, NULL, ggate_recv_thread, res); @@ -1695,6 +1713,7 @@ static void * guard_thread(void *arg) { struct hast_resource *res = arg; + struct proto_conn *in, *out; unsigned int ii, ncomps; int timeout; @@ -1738,26 +1757,31 @@ guard_thread(void *arg) * connected. */ rw_unlock(&hio_remote_lock[ii]); - rw_wlock(&hio_remote_lock[ii]); - assert(res->hr_remotein == NULL); - assert(res->hr_remoteout == NULL); pjdlog_debug(2, "remote_guard: Reconnecting to %s.", res->hr_remoteaddr); - init_remote(res); - if (ISCONNECTED(res, ii)) { + in = out = NULL; + if (init_remote(res, &in, &out)) { + rw_wlock(&hio_remote_lock[ii]); + assert(res->hr_remotein == NULL); + assert(res->hr_remoteout == NULL); + assert(in != NULL && out != NULL); + res->hr_remotein = in; + res->hr_remoteout = out; + rw_unlock(&hio_remote_lock[ii]); pjdlog_info("Successfully reconnected to %s.", res->hr_remoteaddr); + sync_start(); } else { /* Both connections should be NULL. */ assert(res->hr_remotein == NULL); assert(res->hr_remoteout == NULL); + assert(in == NULL && out == NULL); pjdlog_debug(2, "remote_guard: Reconnect to %s failed.", res->hr_remoteaddr); timeout = RECONNECT_SLEEP; } - rw_unlock(&hio_remote_lock[ii]); } } (void)cv_timedwait(&hio_guard_cond, &hio_guard_lock, timeout); Modified: user/imp/tbemd/sbin/ifconfig/ifconfig.c ============================================================================== --- user/imp/tbemd/sbin/ifconfig/ifconfig.c Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/ifconfig/ifconfig.c Mon Apr 12 23:09:22 2010 (r206519) @@ -881,7 +881,7 @@ unsetifdescr(const char *val, int value, #define IFCAPBITS \ "\020\1RXCSUM\2TXCSUM\3NETCONS\4VLAN_MTU\5VLAN_HWTAGGING\6JUMBO_MTU\7POLLING" \ "\10VLAN_HWCSUM\11TSO4\12TSO6\13LRO\14WOL_UCAST\15WOL_MCAST\16WOL_MAGIC" \ -"\21VLAN_HWFILTER\23VLAN_HWTSO" +"\21VLAN_HWFILTER\23VLAN_HWTSO\24LINKSTATE" /* * Print the status of the interface. If an address family was Modified: user/imp/tbemd/sbin/ifconfig/ifieee80211.c ============================================================================== --- user/imp/tbemd/sbin/ifconfig/ifieee80211.c Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/ifconfig/ifieee80211.c Mon Apr 12 23:09:22 2010 (r206519) @@ -4509,6 +4509,7 @@ end: } else { LINE_BREAK(); list_roam(s); + LINE_BREAK(); } } Modified: user/imp/tbemd/sbin/ipfw/Makefile ============================================================================== --- user/imp/tbemd/sbin/ipfw/Makefile Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/ipfw/Makefile Mon Apr 12 23:09:22 2010 (r206519) @@ -3,6 +3,7 @@ PROG= ipfw SRCS= ipfw2.c dummynet.c ipv6.c main.c nat.c altq.c WARNS?= 2 +DPADD= ${LIBUTIL} LDADD= -lutil MAN= ipfw.8 Modified: user/imp/tbemd/sbin/ipfw/dummynet.c ============================================================================== --- user/imp/tbemd/sbin/ipfw/dummynet.c Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/ipfw/dummynet.c Mon Apr 12 23:09:22 2010 (r206519) @@ -141,7 +141,8 @@ print_mask(struct ipfw_flow_id *id) { if (!IS_IP6_FLOW_ID(id)) { printf(" " - "mask: 0x%02x 0x%08x/0x%04x -> 0x%08x/0x%04x\n", + "mask: %s 0x%02x 0x%08x/0x%04x -> 0x%08x/0x%04x\n", + id->extra ? "queue," : "", id->proto, id->src_ip, id->src_port, id->dst_ip, id->dst_port); @@ -151,7 +152,8 @@ print_mask(struct ipfw_flow_id *id) "Tot_pkt/bytes Pkt/Byte Drp\n"); } else { char buf[255]; - printf("\n mask: proto: 0x%02x, flow_id: 0x%08x, ", + printf("\n mask: %sproto: 0x%02x, flow_id: 0x%08x, ", + id->extra ? "queue," : "", id->proto, id->flow_id6); inet_ntop(AF_INET6, &(id->src_ip6), buf, sizeof(buf)); printf("%s/0x%04x -> ", buf, id->src_port); @@ -175,7 +177,8 @@ list_flow(struct dn_flow *ni) pe = getprotobynumber(id->proto); /* XXX: Should check for IPv4 flows */ - printf("%3u ", (ni->oid.id) & 0xff); + printf("%3u%c", (ni->oid.id) & 0xff, + id->extra ? '*' : ' '); if (!IS_IP6_FLOW_ID(id)) { if (pe) printf("%-4s ", pe->p_name); @@ -532,7 +535,7 @@ read_bandwidth(char *arg, int *bandwidth if (*end == 'K' || *end == 'k') { end++; bw *= 1000; - } else if (*end == 'M') { + } else if (*end == 'M' || *end == 'm') { end++; bw *= 1000000; } @@ -910,6 +913,7 @@ ipfw_config_pipe(int ac, char **av) case TOK_ALL: /* * special case, all bits significant + * except 'extra' (the queue number) */ mask->dst_ip = ~0; mask->src_ip = ~0; @@ -922,6 +926,11 @@ ipfw_config_pipe(int ac, char **av) *flags |= DN_HAVE_MASK; goto end_mask; + case TOK_QUEUE: + mask->extra = ~0; + *flags |= DN_HAVE_MASK; + goto end_mask; + case TOK_DSTIP: mask->addr_type = 4; p32 = &mask->dst_ip; @@ -992,7 +1001,7 @@ ipfw_config_pipe(int ac, char **av) if (a > 0xFF) errx(EX_DATAERR, "proto mask must be 8 bit"); - fs->flow_mask.proto = (uint8_t)a; + mask->proto = (uint8_t)a; } if (a != 0) *flags |= DN_HAVE_MASK; @@ -1234,53 +1243,142 @@ dummynet_flush(void) do_cmd(IP_DUMMYNET3, &oid, oid.len); } +/* Parse input for 'ipfw [pipe|sched|queue] show [range list]' + * Returns the number of ranges, and possibly stores them + * in the array v of size len. + */ +static int +parse_range(int ac, char *av[], uint32_t *v, int len) +{ + int n = 0; + char *endptr, *s; + uint32_t base[2]; + + if (v == NULL || len < 2) { + v = base; + len = 2; + } + + for (s = *av; s != NULL; av++, ac--) { + v[0] = strtoul(s, &endptr, 10); + v[1] = (*endptr != '-') ? v[0] : + strtoul(endptr+1, &endptr, 10); + if (*endptr == '\0') { /* prepare for next round */ + s = (ac > 0) ? *(av+1) : NULL; + } else { + if (*endptr != ',') { + warn("invalid number: %s", s); + s = ++endptr; + continue; + } + /* continue processing from here */ + s = ++endptr; + ac++; + av--; + } + if (v[1] < v[0] || + v[1] < 0 || v[1] >= DN_MAX_ID-1 || + v[0] < 0 || v[1] >= DN_MAX_ID-1) { + continue; /* invalid entry */ + } + n++; + /* translate if 'pipe list' */ + if (co.do_pipe == 1) { + v[0] += DN_MAX_ID; + v[1] += DN_MAX_ID; + } + v = (n*2 < len) ? v + 2 : base; + } + return n; +} + /* main entry point for dummynet list functions. co.do_pipe indicates * which function we want to support. - * XXX todo- accept filtering arguments. + * av may contain filtering arguments, either individual entries + * or ranges, or lists (space or commas are valid separators). + * Format for a range can be n1-n2 or n3 n4 n5 ... + * In a range n1 must be <= n2, otherwise the range is ignored. + * A number 'n4' is translate in a range 'n4-n4' + * All number must be > 0 and < DN_MAX_ID-1 */ void dummynet_list(int ac, char *av[], int show_counters) { - struct dn_id oid, *x = NULL; - int ret, i, l = sizeof(oid); + struct dn_id *oid, *x = NULL; + int ret, i, l; + int n; /* # of ranges */ + int buflen; + int max_size; /* largest obj passed up */ + + ac--; + av++; /* skip 'list' | 'show' word */ + + n = parse_range(ac, av, NULL, 0); /* Count # of ranges. */ + + /* Allocate space to store ranges */ + l = sizeof(*oid) + sizeof(uint32_t) * n * 2; + oid = safe_calloc(1, l); + oid_fill(oid, l, DN_CMD_GET, DN_API_VERSION); + + if (n > 0) /* store ranges in idx */ + parse_range(ac, av, (uint32_t *)(oid + 1), n*2); + /* + * Compute the size of the largest object returned. If the + * response leaves at least this much spare space in the + * buffer, then surely the response is complete; otherwise + * there might be a risk of truncation and we will need to + * retry with a larger buffer. + * XXX don't bother with smaller structs. + */ + max_size = sizeof(struct dn_fs); + if (max_size < sizeof(struct dn_sch)) + max_size = sizeof(struct dn_sch); + if (max_size < sizeof(struct dn_flow)) + max_size = sizeof(struct dn_flow); - oid_fill(&oid, l, DN_CMD_GET, DN_API_VERSION); switch (co.do_pipe) { case 1: - oid.subtype = DN_LINK; /* list pipe */ + oid->subtype = DN_LINK; /* list pipe */ break; case 2: - oid.subtype = DN_FS; /* list queue */ + oid->subtype = DN_FS; /* list queue */ break; case 3: - oid.subtype = DN_SCH; /* list sched */ + oid->subtype = DN_SCH; /* list sched */ break; } - /* Request the buffer size (in oid.id)*/ - ret = do_cmd(-IP_DUMMYNET3, &oid, (uintptr_t)&l); - // printf("%s returns %d need %d\n", __FUNCTION__, ret, oid.id); - if (ret != 0 || oid.id <= sizeof(oid)) - return; - - /* Try max 10 times - * Buffer is correct if l != 0. - * If l == 0 no buffer is sent, maybe because kernel requires - * a greater buffer, so try with the new size in x->id. + /* + * Ask the kernel an estimate of the required space (result + * in oid.id), unless we are requesting a subset of objects, + * in which case the kernel does not give an exact answer. + * In any case, space might grow in the meantime due to the + * creation of new queues, so we must be prepared to retry. */ - for (i = 0, l = oid.id; i < 10; i++, l = x->id) { + if (n > 0) { + buflen = 4*1024; + } else { + ret = do_cmd(-IP_DUMMYNET3, oid, (uintptr_t)&l); + if (ret != 0 || oid->id <= sizeof(*oid)) + goto done; + buflen = oid->id + max_size; + oid->len = sizeof(*oid); /* restore */ + } + /* Try a few times, until the buffer fits */ + for (i = 0; i < 20; i++) { + l = buflen; x = safe_realloc(x, l); - *x = oid; - ret = do_cmd(-IP_DUMMYNET3, x, (uintptr_t)&l); - - if (ret != 0 || x->id <= sizeof(oid)) - return; - - if (l != 0) + bcopy(oid, x, oid->len); + ret = do_cmd(-IP_DUMMYNET3, x, (uintptr_t)&l); + if (ret != 0 || x->id <= sizeof(*oid)) + goto done; /* no response */ + if (l + max_size <= buflen) break; /* ok */ + buflen *= 2; /* double for next attempt */ } - // printf("%s returns %d need %d\n", __FUNCTION__, ret, oid.id); - // XXX filter on ac, av list_pipes(x, O_NEXT(x, l)); - free(x); +done: + if (x) + free(x); + free(oid); } Modified: user/imp/tbemd/sbin/ipfw/ipfw.8 ============================================================================== --- user/imp/tbemd/sbin/ipfw/ipfw.8 Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/ipfw/ipfw.8 Mon Apr 12 23:09:22 2010 (r206519) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 24, 2009 +.Dd March 20, 2010 .Dt IPFW 8 .Os .Sh NAME @@ -1404,7 +1404,7 @@ If not found, the match fails. Otherwise, the match succeeds and .Cm tablearg is set to the value extracted from the table. -.Br +.Pp This option can be useful to quickly dispatch traffic based on certain packet fields. See the @@ -1501,7 +1501,7 @@ is invalid) whenever .Cm xmit is used. .Pp -A packet may not have a receive or transmit interface: packets +A packet might not have a receive or transmit interface: packets originating from the local host have no receive interface, while packets destined for the local host have no transmit interface. @@ -1847,7 +1847,7 @@ is also the user interface for the .Nm dummynet traffic shaper, packet scheduler and network emulator, a subsystem that can artificially queue, delay or drop packets -emulator the behaviour of certain network links +emulating the behaviour of certain network links or queueing systems. .Pp .Nm dummynet @@ -1859,26 +1859,33 @@ Matching packets are then passed to eith different objects, which implement the traffic regulation: .Bl -hang -offset XXXX .It Em pipe -A pipe emulates a link with given bandwidth, propagation delay, +A +.Em pipe +emulates a +.Em link +with given bandwidth and propagation delay, +driven by a FIFO scheduler and a single queue with programmable queue size and packet loss rate. -Packets are queued in front of the pipe as they come out from the classifier, -and then transferred to the pipe according to the pipe's parameters. +Packets are appended to the queue as they come out from +.Nm ipfw , +and then transferred in FIFO order to the link at the desired rate. .It Em queue -A queue +A +.Em queue is an abstraction used to implement packet scheduling using one of several packet scheduling algorithms. -.Pp -The queue associates a -.Em weight -and a reference scheduler to each flow (a flow is a set of packets -with the same addresses and ports after masking). -A scheduler in turn is connected to a pipe, and arbitrates -the pipe's bandwidth among backlogged flows according to +Packets sent to a +.Em queue +are first grouped into flows according to a mask on the 5-tuple. +Flows are then passed to the scheduler associated to the +.Em queue , +and each flow uses scheduling parameters (weight and others) +as configured in the +.Em queue +itself. +A scheduler in turn is connected to an emulated link, +and arbitrates the link's bandwidth among backlogged flows according to weights and to the features of the scheduling algorithm in use. -.Pp -Note that weights are not priorities; a flow with a lower weight -is still guaranteed to get its fraction of the bandwidth even if a -flow with a higher weight is permanently backlogged. .El .Pp In practice, @@ -1887,6 +1894,52 @@ can be used to set hard limits to the ba .Em queues can be used to determine how different flows share the available bandwidth. .Pp +A graphical representation of the binding of queues, +flows, schedulers and links is below. +.Bd -literal -offset indent + (flow_mask|sched_mask) sched_mask + +---------+ weight Wx +-------------+ + | |->-[flow]-->--| |-+ + -->--| QUEUE x | ... | | | + | |->-[flow]-->--| SCHEDuler N | | + +---------+ | | | + ... | +--[LINK N]-->-- + +---------+ weight Wy | | +--[LINK N]-->-- + | |->-[flow]-->--| | | + -->--| QUEUE y | ... | | | + | |->-[flow]-->--| | | + +---------+ +-------------+ | + +-------------+ +.Ed +It is important to understand the role of the SCHED_MASK +and FLOW_MASK, which are configured through the commands +.Dl "ipfw sched N config mask SCHED_MASK ..." +and +.Dl "ipfw queue X config mask FLOW_MASK ..." . +.Pp +The SCHED_MASK is used to assign flows to one or more +scheduler instances, one for each +value of the packet's 5-fuple after applying SCHED_MASK. +As an example, using ``src-ip 0xffffff00'' creates one instance +for each /24 destination subnet. +.Pp +The FLOW_MASK, together with the SCHED_MASK, is used to split +packets into flows. As an example, using +``src-ip 0x000000ff'' +together with the previous SCHED_MASK makes a flow for +each individual source address. In turn, flows for each /24 +subnet will be sent to the same scheduler instance. +.Pp +The above diagram holds even for the +.Em pipe +case, with the only restriction that a +.Em pipe +only supports a SCHED_MASK, and forces the use of a FIFO +scheduler (these are for backward compatibility reasons; +in fact, internally, a +.Nm dummynet's +pipe is implemented exactly as above). +.Pp There are two modes of .Nm dummynet operation: @@ -2087,9 +2140,36 @@ The following parameters can be configur .Pp .Bl -tag -width indent -compact .It Cm type Ar {fifo | wf2qp | rr | qfq} +specifies the scheduling algorithm to use. +.Bl -tag -width indent -compact +.It cm fifo +is just a FIFO scheduler (which means that all packets +are stored in the same queue as they arrive to the scheduler). +FIFO has O(1) per-packet time complexity, with very low +constants (estimate 60-80ns on a 2Ghz desktop machine) +but gives no service guarantees. +.It Cm wf2qp +implements the WF2Q+ algorithm, which is a Weighted Fair Queueing +algorithm which permits flows to share bandwidth according to +their weights. Note that weights are not priorities; even a flow +with a minuscule weight will never starve. +WF2Q+ has O(log N) per-packet processing cost, where N is the number +of flows, and is the default algorithm used by previous versions +dummynet's queues. +.It Cm rr +implements the Deficit Round Robin algorithm, which has O(1) processing +costs (roughly, 100-150ns per packet) +and permits bandwidth allocation according to weights, but +with poor service guarantees. +.It Cm qfq +implements the QFQ algorithm, which is a very fast variant of +WF2Q+, with similar service guarantees and O(1) processing +costs (roughly, 200-250ns per packet). +.El .El .Pp -plus all the parameters allowed for a pipe. +In addition to the type, all parameters allowed for a pipe can also +be specified for a scheduler. .Pp Finally, the following parameters can be configured for both pipes and queues: Modified: user/imp/tbemd/sbin/ipfw/ipfw2.c ============================================================================== --- user/imp/tbemd/sbin/ipfw/ipfw2.c Mon Apr 12 23:06:14 2010 (r206518) +++ user/imp/tbemd/sbin/ipfw/ipfw2.c Mon Apr 12 23:09:22 2010 (r206519) @@ -231,7 +231,7 @@ static struct _s_x rule_action_params[] */ static int lookup_key[] = { TOK_DSTIP, TOK_SRCIP, TOK_DSTPORT, TOK_SRCPORT, - TOK_UID, TOK_JAIL, -1 }; + TOK_UID, TOK_JAIL, TOK_DSCP, -1 }; static struct _s_x rule_options[] = { { "tagged", TOK_TAGGED }, @@ -258,6 +258,7 @@ static struct _s_x rule_options[] = { { "iplen", TOK_IPLEN }, { "ipid", TOK_IPID }, { "ipprecedence", TOK_IPPRECEDENCE }, + { "dscp", TOK_DSCP }, { "iptos", TOK_IPTOS }, { "ipttl", TOK_IPTTL }, { "ipversion", TOK_IPVER }, @@ -920,9 +921,9 @@ print_icmptypes(ipfw_insn_u32 *cmd) #define HAVE_DSTIP 0x0004 #define HAVE_PROTO4 0x0008 #define HAVE_PROTO6 0x0010 +#define HAVE_IP 0x0100 #define HAVE_OPTIONS 0x8000 -#define HAVE_IP (HAVE_PROTO | HAVE_SRCIP | HAVE_DSTIP) static void show_prerequisites(int *flags, int want, int cmd __unused) { @@ -1023,7 +1024,9 @@ show_ipfw(struct ip_fw *rule, int pcwidt switch(cmd->opcode) { case O_CHECK_STATE: printf("check-state"); - flags = HAVE_IP; /* avoid printing anything else */ + /* avoid printing anything else */ + flags = HAVE_PROTO | HAVE_SRCIP | + HAVE_DSTIP | HAVE_IP; break; case O_ACCEPT: @@ -1163,7 +1166,8 @@ show_ipfw(struct ip_fw *rule, int pcwidt show_prerequisites(&flags, HAVE_PROTO, 0); printf(" from any to any"); } - flags |= HAVE_IP | HAVE_OPTIONS; + flags |= HAVE_IP | HAVE_OPTIONS | HAVE_PROTO | + HAVE_SRCIP | HAVE_DSTIP; } if (co.comment_only) @@ -1252,9 +1256,12 @@ show_ipfw(struct ip_fw *rule, int pcwidt break; case O_IP_DSTPORT: - show_prerequisites(&flags, HAVE_IP, 0); + show_prerequisites(&flags, + HAVE_PROTO | HAVE_SRCIP | + HAVE_DSTIP | HAVE_IP, 0); case O_IP_SRCPORT: - show_prerequisites(&flags, HAVE_PROTO|HAVE_SRCIP, 0); + show_prerequisites(&flags, + HAVE_PROTO | HAVE_SRCIP, 0); if ((cmd->len & F_OR) && !or_block) printf(" {"); if (cmd->len & F_NOT) @@ -1275,7 +1282,8 @@ show_ipfw(struct ip_fw *rule, int pcwidt if ((flags & (HAVE_PROTO4 | HAVE_PROTO6)) && !(flags & HAVE_PROTO)) show_prerequisites(&flags, - HAVE_IP | HAVE_OPTIONS, 0); + HAVE_PROTO | HAVE_IP | HAVE_SRCIP | + HAVE_DSTIP | HAVE_OPTIONS, 0); if (flags & HAVE_OPTIONS) printf(" proto"); if (pe) @@ -1293,7 +1301,8 @@ show_ipfw(struct ip_fw *rule, int pcwidt ((cmd->opcode == O_IP4) && (flags & HAVE_PROTO4))) break; - show_prerequisites(&flags, HAVE_IP | HAVE_OPTIONS, 0); + show_prerequisites(&flags, HAVE_PROTO | HAVE_SRCIP | + HAVE_DSTIP | HAVE_IP | HAVE_OPTIONS, 0); if ((cmd->len & F_OR) && !or_block) printf(" {"); if (cmd->len & F_NOT && cmd->opcode != O_IN) @@ -1547,7 +1556,8 @@ show_ipfw(struct ip_fw *rule, int pcwidt or_block = 0; } } - show_prerequisites(&flags, HAVE_IP, 0); + show_prerequisites(&flags, HAVE_PROTO | HAVE_SRCIP | HAVE_DSTIP + | HAVE_IP, 0); if (comment) printf(" // %s", comment); printf("\n"); @@ -1730,6 +1740,8 @@ ipfw_sysctl_handler(char *av[], int whic } else if (_substrcmp(*av, "firewall") == 0) { sysctlbyname("net.inet.ip.fw.enable", NULL, 0, &which, sizeof(which)); + sysctlbyname("net.inet6.ip6.fw.enable", NULL, 0, + &which, sizeof(which)); } else if (_substrcmp(*av, "one_pass") == 0) { sysctlbyname("net.inet.ip.fw.one_pass", NULL, 0, &which, sizeof(which)); @@ -2646,7 +2658,7 @@ ipfw_add(char *av[]) } /* [set N] -- set number (0..RESVD_SET), optional */ - if (av[0] && !av[1] && _substrcmp(*av, "set") == 0) { + if (av[0] && av[1] && _substrcmp(*av, "set") == 0) { int set = strtoul(av[1], NULL, 10); if (set < 0 || set > RESVD_SET) errx(EX_DATAERR, "illegal set %s", av[1]); @@ -3519,7 +3531,7 @@ read_options: char *p; int j; - if (av[0] && av[1]) + if (!av[0] || !av[1]) errx(EX_USAGE, "format: lookup argument tablenum"); cmd->opcode = O_IP_DST_LOOKUP; cmd->len |= F_INSN_SIZE(ipfw_insn) + 2; Modified: user/imp/tbemd/sbin/ipfw/ipfw2.h ============================================================================== --- user/imp/tbemd/sbin/ipfw/ipfw2.h Mon Apr 12 23:06:14 2010 (r206518) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:09:53 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D35B1065670; Mon, 12 Apr 2010 23:09:53 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0AF4D8FC08; Mon, 12 Apr 2010 23:09:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CN9r0v068885; Mon, 12 Apr 2010 23:09:53 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CN9qMD068857; Mon, 12 Apr 2010 23:09:52 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122309.o3CN9qMD068857@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:09:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206520 - in user/imp/tbemd/share: dict examples/indent man/man3 man/man4 man/man5 man/man7 man/man9 misc mk X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:09:53 -0000 Author: imp Date: Mon Apr 12 23:09:52 2010 New Revision: 206520 URL: http://svn.freebsd.org/changeset/base/206520 Log: merge from head, part 6 of many Added: user/imp/tbemd/share/examples/indent/ - copied from r206514, head/share/examples/indent/ Modified: user/imp/tbemd/share/dict/web2 user/imp/tbemd/share/man/man3/pthread_affinity_np.3 user/imp/tbemd/share/man/man4/acpi.4 user/imp/tbemd/share/man/man4/acpi_wmi.4 user/imp/tbemd/share/man/man4/altq.4 user/imp/tbemd/share/man/man4/amdtemp.4 user/imp/tbemd/share/man/man4/ath.4 user/imp/tbemd/share/man/man4/cxgb.4 user/imp/tbemd/share/man/man4/ddb.4 user/imp/tbemd/share/man/man4/iscsi_initiator.4 user/imp/tbemd/share/man/man4/ndis.4 user/imp/tbemd/share/man/man4/ohci.4 user/imp/tbemd/share/man/man4/splash.4 user/imp/tbemd/share/man/man4/sysmouse.4 user/imp/tbemd/share/man/man4/textdump.4 user/imp/tbemd/share/man/man4/uart.4 user/imp/tbemd/share/man/man4/udbp.4 user/imp/tbemd/share/man/man4/ufm.4 user/imp/tbemd/share/man/man4/uhci.4 user/imp/tbemd/share/man/man4/ukbd.4 user/imp/tbemd/share/man/man4/umass.4 user/imp/tbemd/share/man/man4/ums.4 user/imp/tbemd/share/man/man4/urio.4 user/imp/tbemd/share/man/man4/usb.4 user/imp/tbemd/share/man/man5/nsswitch.conf.5 user/imp/tbemd/share/man/man5/rc.conf.5 user/imp/tbemd/share/man/man5/services.5 user/imp/tbemd/share/man/man5/src.conf.5 user/imp/tbemd/share/man/man7/build.7 user/imp/tbemd/share/man/man9/fail.9 user/imp/tbemd/share/man/man9/ieee80211.9 user/imp/tbemd/share/man/man9/ieee80211_crypto.9 user/imp/tbemd/share/man/man9/ieee80211_node.9 user/imp/tbemd/share/man/man9/ieee80211_output.9 user/imp/tbemd/share/man/man9/ieee80211_scan.9 user/imp/tbemd/share/man/man9/stack.9 user/imp/tbemd/share/man/man9/uio.9 user/imp/tbemd/share/man/man9/vfs_mount.9 user/imp/tbemd/share/misc/bsd-family-tree user/imp/tbemd/share/misc/committers-ports.dot user/imp/tbemd/share/misc/pci_vendors user/imp/tbemd/share/mk/bsd.lib.mk user/imp/tbemd/share/mk/bsd.own.mk user/imp/tbemd/share/mk/bsd.port.mk user/imp/tbemd/share/mk/bsd.prog.mk user/imp/tbemd/share/mk/sys.mk Modified: user/imp/tbemd/share/dict/web2 ============================================================================== --- user/imp/tbemd/share/dict/web2 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/dict/web2 Mon Apr 12 23:09:52 2010 (r206520) @@ -112025,6 +112025,7 @@ masquerader Mass mass massa +Massachusetts massacre massacrer massage Modified: user/imp/tbemd/share/man/man3/pthread_affinity_np.3 ============================================================================== --- user/imp/tbemd/share/man/man3/pthread_affinity_np.3 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man3/pthread_affinity_np.3 Mon Apr 12 23:09:52 2010 (r206520) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 12, 2010 +.Dd March 23, 2010 .Dt PTHREAD_AFFINITY_NP 3 .Os .Sh NAME @@ -125,8 +125,8 @@ operation. .Xr cpuset_setid 2 , .Xr CPU_SET 3 , .Xr pthread 3 , -.Xr pthread_attr_get_affinity_np 3 , -.Xr pthread_attr_set_affinity_np 3 +.Xr pthread_attr_getaffinity_np 3 , +.Xr pthread_attr_setaffinity_np 3 .Sh STANDARDS The .Nm pthread_getaffinity_np Modified: user/imp/tbemd/share/man/man4/acpi.4 ============================================================================== --- user/imp/tbemd/share/man/man4/acpi.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/acpi.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 8, 2009 +.Dd March 9, 2010 .Dt ACPI 4 .Os .Sh NAME @@ -62,6 +62,10 @@ used to modify or monitor .Nm behavior. .Bl -tag -width indent +.It Va debug.acpi.enable_debug_objects +Enable dumping Debug objects without +.Cd "options ACPI_DEBUG" . +Default is 0, ignore Debug objects. .It Va hw.acpi.acline AC line state (1 means online, 0 means on battery power). .It Va hw.acpi.cpu.cx_usage @@ -197,6 +201,9 @@ Enables loading of a custom ACPI DSDT. Name of the DSDT table to load, if loading is enabled. .It Va debug.acpi.disabled Selectively disables portions of ACPI for debugging purposes. +.It Va debug.acpi.interpreter_slack +Enable less strict ACPI implementations. +Default is 1, ignore common BIOS mistakes. .It Va debug.acpi.max_threads Specify the number of task threads that are started on boot. Limiting this to 1 may help work around various BIOSes that cannot Modified: user/imp/tbemd/share/man/man4/acpi_wmi.4 ============================================================================== --- user/imp/tbemd/share/man/man4/acpi_wmi.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/acpi_wmi.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -57,7 +57,7 @@ information about GUIDs found in the sys WMI status device. .El .Sh EXAMPLES -.Bd Literal +.Bd -literal # cat /dev/wmistat GUID INST EXPE METH STR EVENT OID {5FB7F034-2C63-45E9-BE91-3D44E2C707E4} 1 NO WMAA NO NO AA Modified: user/imp/tbemd/share/man/man4/altq.4 ============================================================================== --- user/imp/tbemd/share/man/man4/altq.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/altq.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -121,7 +121,7 @@ They have been applied to the following .Xr an 4 , .Xr ath 4 , .Xr aue 4 , -.Xt axe 4 , +.Xr axe 4 , .Xr bce 4 , .Xr bfe 4 , .Xr bge 4 , Modified: user/imp/tbemd/share/man/man4/amdtemp.4 ============================================================================== --- user/imp/tbemd/share/man/man4/amdtemp.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/amdtemp.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -75,6 +75,5 @@ The driver first appeared in .Fx 7.1 . .Sh AUTHORS -.An .An Rui Paulo Aq rpaulo@FreeBSD.org .An Norikatsu Shigemura Aq nork@FreeBSD.org Modified: user/imp/tbemd/share/man/man4/ath.4 ============================================================================== --- user/imp/tbemd/share/man/man4/ath.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/ath.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\"/ -.Dd July 8, 2009 +.Dd March 21, 2010 .Dt ATH 4 .Os .Sh NAME @@ -145,15 +145,6 @@ except those that are based on the AR500 A list of cards that are supported can be found at .Pa http://customerproducts.atheros.com/customerproducts/default.asp . .Sh EXAMPLES -Join an existing BSS network (ie: connect to an access point): -.Pp -.Dl "ifconfig ath0 inet 192.168.0.20 netmask 0xffffff00" -.Pp -Join a specific BSS network with network name -.Dq Li my_net : -.Pp -.Dl "ifconfig ath0 inet 192.168.0.20 netmask 0xffffff00 ssid my_net" -.Pp Join a specific BSS network with WEP encryption: .Bd -literal -offset indent ifconfig wlan0 create wlandev ath0 Modified: user/imp/tbemd/share/man/man4/cxgb.4 ============================================================================== --- user/imp/tbemd/share/man/man4/cxgb.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/cxgb.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -92,8 +92,6 @@ Tunables can be set at the .Xr loader 8 prompt before booting the kernel or stored in .Xr loader.conf 5 . -.Bl -tag -width indent -.El .Sh DIAGNOSTICS .Bl -diag .It "cxgb%d: Unable to allocate bus resource: memory" Modified: user/imp/tbemd/share/man/man4/ddb.4 ============================================================================== --- user/imp/tbemd/share/man/man4/ddb.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/ddb.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -697,7 +697,7 @@ Show information from the local APIC reg .It Ic show Cm lock Ar addr Show lock structure. The output format is as follows: -.Bl -tag -offset 0 -width "flags" +.Bl -tag -width "flags" .It Ic class: Class of the lock. Possible types include Modified: user/imp/tbemd/share/man/man4/iscsi_initiator.4 ============================================================================== --- user/imp/tbemd/share/man/man4/iscsi_initiator.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/iscsi_initiator.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -73,7 +73,7 @@ is the IP address of the target of sessi .Em n . .It Va net.iscsi.n.stats are some statistics for session -.EM n +.Em n .It Va net.iscsi.n.pid is the .Em "process id" Modified: user/imp/tbemd/share/man/man4/ndis.4 ============================================================================== --- user/imp/tbemd/share/man/man4/ndis.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/ndis.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 8, 2010 +.Dd March 14, 2010 .Dt NDIS 4 .Os .Sh NAME @@ -133,8 +133,10 @@ before a timeout expired. .Xr netintro 4 , .Xr ng_ether 4 , .Xr ifconfig 8 , +.Xr ndis_events 8 , .Xr ndiscvt 8 , -.Xr ndisgen 8 +.Xr ndisgen 8 , +.Xr wpa_supplicant 8 .Rs .%T "NDIS 5.1 specification" .%U http://www.microsoft.com Modified: user/imp/tbemd/share/man/man4/ohci.4 ============================================================================== --- user/imp/tbemd/share/man/man4/ohci.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/ohci.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -9,21 +9,18 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the author nor the names of any co-contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. .\" -.\" THIS SOFTWARE IS PROVIDED BY NICK HIBMA AND CONTRIBUTORS ``AS IS'' AND +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL NICK HIBMA OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/share/man/man4/splash.4 ============================================================================== --- user/imp/tbemd/share/man/man4/splash.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/splash.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 15, 2006 +.Dd April 7, 2010 .Dt SPLASH 4 .Os .Sh NAME @@ -99,10 +99,16 @@ Currently the following screen saver mod .Bl -tag -width splash_module.ko -compact .It Pa blank_saver.ko This screen saver simply blanks the screen. +.It Pa beastie_saver.ko +Animated graphical +.Bx +Daemon. .It Pa daemon_saver.ko Animated .Bx Daemon screen saver. +.It Pa dragon_saver.ko +Draws a random dragon curve. .It Pa fade_saver.ko The screen will gradually fade away. .It Pa fire_saver.ko @@ -111,8 +117,8 @@ A fire which becomes higher as load incr If the monitor supports power saving mode, it will be turned off. .It Pa logo_saver.ko Animated graphical -.Bx -Daemon. +.Fx +logo. .It Pa rain_saver.ko Draws a shower on the screen. .It Pa snake_saver.ko Modified: user/imp/tbemd/share/man/man4/sysmouse.4 ============================================================================== --- user/imp/tbemd/share/man/man4/sysmouse.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/sysmouse.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -94,18 +94,18 @@ Right button status; cleared if pressed, .El .It Byte 2 The first half of horizontal movement count in two's complement; --128 through 127. +\-128 through 127. .It Byte 3 The first half of vertical movement count in two's complement; --128 through 127. +\-128 through 127. .It Byte 4 The second half of the horizontal movement count in two's complement; --128 through 127. +\-128 through 127. To obtain the full horizontal movement count, add the byte 2 and 4. .It Byte 5 The second half of the vertical movement count in two's complement; --128 through 127. +\-128 through 127. To obtain the full vertical movement count, add the byte 3 and 5. .El @@ -148,7 +148,7 @@ These commands manipulate the operation Returns the hardware information of the attached device in the following structure. Only the -.Dv iftype +.Va iftype field is guaranteed to be filled with the correct value in the current version of the .Nm @@ -164,16 +164,16 @@ typedef struct mousehw { .Ed .Pp The -.Dv buttons +.Va buttons field holds the number of buttons detected by the driver. .Pp The -.Dv iftype +.Va iftype is always .Dv MOUSE_IF_SYSMOUSE . .Pp The -.Dv type +.Va type tells the device type: .Dv MOUSE_MOUSE , .Dv MOUSE_TRACKBALL , @@ -183,7 +183,7 @@ or .Dv MOUSE_UNKNOWN . .Pp The -.Dv model +.Va model is always .Dv MOUSE_MODEL_GENERIC at the operation level 0. @@ -194,7 +194,7 @@ or one of constants at higher operation levels. .Pp The -.Dv hwid +.Va hwid is always zero. .Pp .It Dv MOUSE_GETMODE Ar mousemode_t *mode @@ -213,7 +213,7 @@ typedef struct mousemode { .Ed .Pp The -.Dv protocol +.Va protocol field tells the format in which the device status is returned when the mouse data is read by the user program. It is @@ -223,19 +223,19 @@ at the operation level zero. at the operation level one. .Pp The -.Dv rate -is always set to -1. +.Va rate +is always set to \-1. .Pp The -.Dv resolution -is always set to -1. +.Va resolution +is always set to \-1. .Pp The -.Dv accelfactor +.Va accelfactor is always 0. .Pp The -.Dv packetsize +.Va packetsize field specifies the length of the data packet. It depends on the operation level. @@ -248,13 +248,13 @@ operation level. .El .Pp The array -.Dv syncmask +.Va syncmask holds a bit mask and pattern to detect the first byte of the data packet. -.Dv syncmask[0] +.Va syncmask[0] is the bit mask to be ANDed with a byte. If the result is equal to -.Dv syncmask[1] , +.Va syncmask[1] , the byte is likely to be the first byte of the data packet. Note that this method of detecting the first byte is not 100% reliable; thus, it should be taken only as an advisory measure. @@ -264,7 +264,7 @@ The command changes the current operatio as specified in .Ar mode . Only -.Dv level +.Va level may be modifiable. Setting values in the other field does not generate error and has no effect. @@ -323,7 +323,7 @@ struct mouse_info { .Ed .Pp .Bl -tag -width operation -compact -.It Dv operation +.It Va operation This can be one of .Pp .Bl -tag -width MOUSE_MOVEABS -compact @@ -333,21 +333,21 @@ Enables and displays mouse cursor. Disables and hides mouse cursor. .It Dv MOUSE_MOVEABS Moves mouse cursor to position supplied in -.Dv u.data . +.Va u.data . .It Dv MOUSE_MOVEREL Adds position supplied in -.Dv u.data +.Va u.data to current position. .It Dv MOUSE_GETINFO Returns current mouse position in the current virtual console and button status in -.Dv u.data . +.Va u.data . .It Dv MOUSE_MODE This sets the .Xr signal 3 to be delivered to the current process when a button is pressed. The signal to be delivered is set in -.Dv u.mode . +.Va u.mode . .El .Pp The above operations are for virtual consoles. @@ -360,7 +360,7 @@ to pass mouse data to the console driver .It Dv MOUSE_ACTION .It Dv MOUSE_MOTION_EVENT These operations take the information in -.Dv u.data +.Va u.data and act upon it. Mouse data will be sent to the .Nm @@ -370,7 +370,7 @@ also processes button press actions and requested or performs cut and paste operations if the current console is a text interface. .It Dv MOUSE_BUTTON_EVENT -.Dv u.data +.Va u.data specifies a button and its click count. The console driver will use this information for signal delivery if requested or @@ -385,11 +385,11 @@ They are intended to replace functions p .Dv MOUSE_ACTION alone. .Pp -.It Dv Sq u +.It Va u This union is one of .Pp .Bl -tag -width data -compact -.It Dv data +.It Va data .Bd -literal struct mouse_data { int x; @@ -399,18 +399,17 @@ struct mouse_data { }; .Ed .Pp -.Dv x , -.Dv y +.Va x , y and -.Dv z +.Va z represent movement of the mouse along respective directions. -.Dv buttons +.Va buttons tells the state of buttons. It encodes up to 31 buttons in the bit 0 though the bit 30. If a button is held down, the corresponding bit is set. .Pp -.It Dv mode +.It Va mode .Bd -literal struct mouse_mode { int mode; @@ -419,16 +418,16 @@ struct mouse_mode { .Ed .Pp The -.Dv signal +.Va signal field specifies the signal to be delivered to the process. It must be one of the values defined in .In signal.h . The -.Dv mode +.Va mode field is currently unused. .Pp -.It Dv event +.It Va event .Bd -literal struct mouse_event { int id; @@ -437,12 +436,12 @@ struct mouse_event { .Ed .Pp The -.Dv id +.Va id field specifies a button number as in -.Dv u.data.buttons . +.Va u.data.buttons . Only one bit/button is set. The -.Dv value +.Va value field holds the click count: the number of times the user has clicked the button successively. Modified: user/imp/tbemd/share/man/man4/textdump.4 ============================================================================== --- user/imp/tbemd/share/man/man4/textdump.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/textdump.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -74,7 +74,7 @@ May be disabled by clearing the sysctl. .It Pa config.txt Kernel configuration, if -.Od options INCLUDE_CONFIG_FILE +.Cd options INCLUDE_CONFIG_FILE has been compiled into the kernel. May be disabled by clearing the .Dv debug.ddb.textdump.do_config Modified: user/imp/tbemd/share/man/man4/uart.4 ============================================================================== --- user/imp/tbemd/share/man/man4/uart.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/uart.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -46,7 +46,6 @@ In .Cd hint.uart.0.baud="38400" .Cd hint.uart.0.port="0x3f8" .Cd hint.uart.0.flags="0x10" -.Ed .Pp With .Ar flags Modified: user/imp/tbemd/share/man/man4/udbp.4 ============================================================================== --- user/imp/tbemd/share/man/man4/udbp.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/udbp.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -9,21 +9,18 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the author nor the names of any co-contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. .\" -.\" THIS SOFTWARE IS PROVIDED BY NICK HIBMA AND CONTRIBUTORS ``AS IS'' AND +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL NICK HIBMA OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/share/man/man4/ufm.4 ============================================================================== --- user/imp/tbemd/share/man/man4/ufm.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/ufm.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -10,17 +10,17 @@ .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" -.\" THIS SOFTWARE IS PROVIDED BY FREEBSD AND CONTRIBUTORS ``AS IS'' AND +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL NICK HIBMA OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/share/man/man4/uhci.4 ============================================================================== --- user/imp/tbemd/share/man/man4/uhci.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/uhci.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -9,21 +9,18 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the author nor the names of any co-contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. .\" -.\" THIS SOFTWARE IS PROVIDED BY NICK HIBMA AND CONTRIBUTORS ``AS IS'' AND +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL NICK HIBMA OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/share/man/man4/ukbd.4 ============================================================================== --- user/imp/tbemd/share/man/man4/ukbd.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/ukbd.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -9,21 +9,18 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the author nor the names of any co-contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. .\" -.\" THIS SOFTWARE IS PROVIDED BY NICK HIBMA AND CONTRIBUTORS ``AS IS'' AND +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL NICK HIBMA OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/share/man/man4/umass.4 ============================================================================== --- user/imp/tbemd/share/man/man4/umass.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/umass.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -9,21 +9,18 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the author nor the names of any co-contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. .\" -.\" THIS SOFTWARE IS PROVIDED BY NICK HIBMA AND CONTRIBUTORS ``AS IS'' AND +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL NICK HIBMA OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/share/man/man4/ums.4 ============================================================================== --- user/imp/tbemd/share/man/man4/ums.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/ums.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -9,21 +9,18 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the author nor the names of any co-contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. .\" -.\" THIS SOFTWARE IS PROVIDED BY NICK HIBMA AND CONTRIBUTORS ``AS IS'' AND +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL NICK HIBMA OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/share/man/man4/urio.4 ============================================================================== --- user/imp/tbemd/share/man/man4/urio.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/urio.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -1,5 +1,5 @@ -.\" Copyright (c) 2000 Dirk-Willem van Gulik -.\" . All rights reserved. +.\" Copyright (c) 2000 Dirk-Willem van Gulik +.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -9,24 +9,18 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by Bill Paul. -.\" 4. Neither the name of the author nor the names of any co-contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. .\" -.\" THIS SOFTWARE IS PROVIDED BY NICK HIBMA AND CONTRIBUTORS ``AS IS'' AND +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL NICK HIBMA OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" Modified: user/imp/tbemd/share/man/man4/usb.4 ============================================================================== --- user/imp/tbemd/share/man/man4/usb.4 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man4/usb.4 Mon Apr 12 23:09:52 2010 (r206520) @@ -1,30 +1,4 @@ -.\" Copyright (c) 1997, 1998 -.\" Nick Hibma . All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the author nor the names of any co-contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY NICK HIBMA AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL NICK HIBMA OR THE VOICES IN HIS HEAD -.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -.\" THE POSSIBILITY OF SUCH DAMAGE. -.\" +.\" Copyright (c) 1997, 1998 Nick Hibma .\" Copyright (c) 2008 Hans Petter Selasky. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without Modified: user/imp/tbemd/share/man/man5/nsswitch.conf.5 ============================================================================== --- user/imp/tbemd/share/man/man5/nsswitch.conf.5 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man5/nsswitch.conf.5 Mon Apr 12 23:09:52 2010 (r206520) @@ -33,7 +33,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 23, 2008 +.Dd April 4, 2010 .Dt NSSWITCH.CONF 5 .Os .Sh NAME @@ -72,6 +72,8 @@ Local files, such as .Pa /etc/hosts , and .Pa /etc/passwd . +.It db +Local database. .It dns Internet Domain Name System. .Dq hosts Modified: user/imp/tbemd/share/man/man5/rc.conf.5 ============================================================================== --- user/imp/tbemd/share/man/man5/rc.conf.5 Mon Apr 12 23:09:22 2010 (r206519) +++ user/imp/tbemd/share/man/man5/rc.conf.5 Mon Apr 12 23:09:52 2010 (r206520) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 12, 2010 +.Dd April 09, 2010 .Dt RC.CONF 5 .Os .Sh NAME @@ -1292,79 +1292,98 @@ It is also possible to rename an interfa ifconfig_ed0_name="net0" ifconfig_net0="inet 192.0.2.1 netmask 0xffffff00" .Ed +.\" Remove in FreeBSD 10.x .It Va ipv6_enable .Pq Vt bool -If the variable is -.Dq Li YES , -.Dq Li inet6 accept_rtadv -is added to all of -.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 -and the -.Va ipv6_prefer -is defined as -.Dq Li YES . .Pp -This variable is deprecated. Use -.Va ipv6_prefer -and -.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 . -.It Va ipv6_prefer -.Pq Vt bool -This variable does the following: +This option is deprecated. .Pp If the variable is -.Dq Li YES , -the default policy of the source address selection set by -.Xr ip6addrctl 8 -will be IPv6-preferred. +.Dq Li YES +it has no effect. +To configure IPv6 for an interface see +.Va ipv6_network_interfaces +below. .Pp If the variable is -.Dq Li NO , -the default policy of the source address selection set by -.Xr ip6addrctl 8 -will be IPv4-preferred, and all of interfaces which does not have the -corrsponding -.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 -variable will be marked as -.Dq Li IFDISABLED . -This means only IPv6 functionality on that interface is completely -disabled. For more details of -.Dq Li IFDISABLED -flag and keywords -.Dq Li inet6 ifdisabled , -see -.Xr ifconfig 8 . -.Pp +.Dq Li NO +then other than +.Dq Li lo0 +IPv6 will be disabled for each interface, +however the same effect can be achieved by +not configuring the interface. .It Va ipv6_network_interfaces .Pq Vt str This is the IPv6 equivalent of .Va network_interfaces . -Normally manual configuration of this variable is not needed. +Normally configuration of this variable is not needed, +the value should be left as +.Dq Li AUTO . +.Pp +If +.Dq Li INET6 +is configured in the kernel configuration for the +.Dq Li lo0 +interface will always be performed. +It is not necessary to list it in +.Va ipv6_network_interfaces . +.Pp +Example configuration to accept Router Advertisements (RA) for the +.Dq Li ed0 +interface: +.Bd -literal +ifconfig_ed0_ipv6="RTADV" +.Ed +.Pp +To disable RA the +.Dq Li NORTADV +option is available, although not required if manual +configuration is performed as described below. +.Pp +An IPv6 interface can be configured manually with +.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 . +For example: +.Bd -literal +ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64" +.Ed +.Pp +Manual configuration of an IPv6 address will also +require configuration of the +.Va ipv6_defaultrouter +option. .Pp -IPv6 functionality on an interface should be configured by -.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 , -instead of setting ifconfig parameters in -.Va ifconfig_ Ns Aq Ar interface . Aliases should be set by .Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n -with +with the .Dq Li inet6 -keyword. For example: +keyword. +For example: +.Pp .Bd -literal -ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64" ifconfig_ed0_alias0="inet6 2001:db8:2::1 prefixlen 64" .Ed .Pp -Interfaces that have an -.Dq Li inet6 accept_rtadv -keyword in -.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 -setting will be automatically configured by -.Xr rtsol 8 . -Note that this automatic configuration is disabled if the -.Va ipv6_gateway_enable -is set to -.Dq Li YES . +.It Va ipv6_prefer +.Pq Vt bool +If the variable is +.Dq Li YES , +the default policy of the source address selection set by +.Xr ip6addrctl 8 +will be IPv6-preferred. +.Pp +If the variable is +.Dq Li NO , +the default policy of the source address selection set by +.Xr ip6addrctl 8 +will be IPv4-preferred. +.Pp +.It Va ipv6_privacy +.Pq Vt bool +If the variable is +.Dq Li YES +privacy addresses will be generated for each IPv6 +interface as described in RFC 4193. +.Pp .It Va ipv6_prefix_ Ns Aq Ar interface .Pq Vt str If one or more prefixes are defined in @@ -3497,6 +3516,11 @@ indicates that the highest frequency (le If set to .Dq Li NO , any configured jails will not be started. +.It jail_parallel_start +.Pq Vt bool +If set to +.Dq Li YES +all configured jails will be started in the background (= in parallel). .It Va jail_list .Pq Vt str A space separated list of names for jails. @@ -4244,6 +4268,26 @@ if it should register Dial-Up Networking RFCOMM channel. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:11:21 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 628A4106566B; Mon, 12 Apr 2010 23:11:21 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4EA318FC18; Mon, 12 Apr 2010 23:11:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNBL75069295; Mon, 12 Apr 2010 23:11:21 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNBLCN069266; Mon, 12 Apr 2010 23:11:21 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122311.o3CNBLCN069266@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:11:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206521 - in user/imp/tbemd: tools/build/mk tools/build/options tools/regression/aio/aiotest tools/regression/bin/sh/builtins tools/regression/bin/sh/errors tools/regression/bin/sh/expa... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:11:21 -0000 Author: imp Date: Mon Apr 12 23:11:20 2010 New Revision: 206521 URL: http://svn.freebsd.org/changeset/base/206521 Log: merge from head, part 7 of many. Added: user/imp/tbemd/tools/regression/bin/sh/builtins/command10.0 - copied unchanged from r206514, head/tools/regression/bin/sh/builtins/command10.0 user/imp/tbemd/tools/regression/bin/sh/builtins/command11.0 - copied unchanged from r206514, head/tools/regression/bin/sh/builtins/command11.0 user/imp/tbemd/tools/regression/bin/sh/builtins/command8.0 - copied unchanged from r206514, head/tools/regression/bin/sh/builtins/command8.0 user/imp/tbemd/tools/regression/bin/sh/builtins/command9.0 - copied unchanged from r206514, head/tools/regression/bin/sh/builtins/command9.0 user/imp/tbemd/tools/regression/bin/sh/builtins/var-assign2.0 - copied unchanged from r206514, head/tools/regression/bin/sh/builtins/var-assign2.0 user/imp/tbemd/tools/regression/bin/sh/errors/assignment-error1.0 - copied unchanged from r206514, head/tools/regression/bin/sh/errors/assignment-error1.0 user/imp/tbemd/tools/regression/bin/sh/errors/redirection-error3.0 - copied unchanged from r206514, head/tools/regression/bin/sh/errors/redirection-error3.0 user/imp/tbemd/tools/regression/bin/sh/errors/redirection-error4.0 - copied unchanged from r206514, head/tools/regression/bin/sh/errors/redirection-error4.0 user/imp/tbemd/tools/regression/bin/sh/errors/redirection-error5.0 - copied unchanged from r206514, head/tools/regression/bin/sh/errors/redirection-error5.0 user/imp/tbemd/tools/regression/bin/sh/errors/redirection-error6.0 - copied unchanged from r206514, head/tools/regression/bin/sh/errors/redirection-error6.0 user/imp/tbemd/tools/regression/bin/sh/expansion/arith4.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/arith4.0 user/imp/tbemd/tools/regression/bin/sh/expansion/arith5.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/arith5.0 user/imp/tbemd/tools/regression/bin/sh/expansion/assign1.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/assign1.0 user/imp/tbemd/tools/regression/bin/sh/expansion/cmdsubst2.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/cmdsubst2.0 user/imp/tbemd/tools/regression/bin/sh/expansion/plus-minus1.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/plus-minus1.0 user/imp/tbemd/tools/regression/bin/sh/expansion/plus-minus2.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/plus-minus2.0 user/imp/tbemd/tools/regression/bin/sh/expansion/tilde1.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/tilde1.0 user/imp/tbemd/tools/regression/bin/sh/expansion/tilde2.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/tilde2.0 user/imp/tbemd/tools/regression/bin/sh/expansion/trim1.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/trim1.0 user/imp/tbemd/tools/regression/bin/sh/expansion/trim2.0 - copied unchanged from r206514, head/tools/regression/bin/sh/expansion/trim2.0 user/imp/tbemd/tools/regression/bin/sh/parameters/pwd1.0 - copied unchanged from r206514, head/tools/regression/bin/sh/parameters/pwd1.0 user/imp/tbemd/tools/regression/bin/sh/parser/heredoc1.0 - copied unchanged from r206514, head/tools/regression/bin/sh/parser/heredoc1.0 user/imp/tbemd/tools/regression/bin/sh/parser/heredoc2.0 - copied unchanged from r206514, head/tools/regression/bin/sh/parser/heredoc2.0 user/imp/tbemd/tools/regression/usr.bin/apply/ - copied from r206514, head/tools/regression/usr.bin/apply/ user/imp/tbemd/tools/regression/usr.bin/ncal/ - copied from r206514, head/tools/regression/usr.bin/ncal/ user/imp/tbemd/usr.bin/calendar/dates.c - copied unchanged from r206514, head/usr.bin/calendar/dates.c user/imp/tbemd/usr.bin/calendar/events.c - copied unchanged from r206514, head/usr.bin/calendar/events.c user/imp/tbemd/usr.bin/calendar/locale.c - copied unchanged from r206514, head/usr.bin/calendar/locale.c user/imp/tbemd/usr.bin/calendar/parsedata.c - copied unchanged from r206514, head/usr.bin/calendar/parsedata.c user/imp/tbemd/usr.bin/calendar/pom.c - copied unchanged from r206514, head/usr.bin/calendar/pom.c user/imp/tbemd/usr.bin/calendar/sunpos.c - copied unchanged from r206514, head/usr.bin/calendar/sunpos.c user/imp/tbemd/usr.bin/procstat/procstat_sigs.c - copied unchanged from r206514, head/usr.bin/procstat/procstat_sigs.c user/imp/tbemd/usr.sbin/services_mkdb/ - copied from r206514, head/usr.sbin/services_mkdb/ Deleted: user/imp/tbemd/tools/build/options/WITH_GNU_CPIO user/imp/tbemd/tools/tools/nanobsd/pcengines/Pkg/ user/imp/tbemd/usr.sbin/ntp/ntptrace/ Modified: user/imp/tbemd/tools/build/mk/OptionalObsoleteFiles.inc user/imp/tbemd/tools/regression/aio/aiotest/aiotest.c user/imp/tbemd/tools/regression/mqueue/mqtest1/mqtest1.c user/imp/tbemd/tools/regression/mqueue/mqtest2/mqtest2.c user/imp/tbemd/tools/regression/mqueue/mqtest3/mqtest3.c user/imp/tbemd/tools/regression/mqueue/mqtest4/mqtest4.c user/imp/tbemd/tools/regression/mqueue/mqtest5/mqtest5.c user/imp/tbemd/tools/regression/posixsem/posixsem.c user/imp/tbemd/tools/regression/posixsem2/semtest.c user/imp/tbemd/tools/regression/usr.bin/Makefile user/imp/tbemd/tools/tools/nanobsd/Files/root/updatep1 user/imp/tbemd/tools/tools/nanobsd/Files/root/updatep2 user/imp/tbemd/tools/tools/nanobsd/gateworks/common user/imp/tbemd/tools/tools/nanobsd/nanobsd.sh user/imp/tbemd/usr.bin/apply/Makefile user/imp/tbemd/usr.bin/apply/apply.c user/imp/tbemd/usr.bin/biff/biff.1 user/imp/tbemd/usr.bin/calendar/Makefile user/imp/tbemd/usr.bin/calendar/calendar.1 user/imp/tbemd/usr.bin/calendar/calendar.c user/imp/tbemd/usr.bin/calendar/calendar.h user/imp/tbemd/usr.bin/calendar/calendars/calendar.australia user/imp/tbemd/usr.bin/calendar/calendars/calendar.dutch user/imp/tbemd/usr.bin/calendar/calendars/calendar.freebsd user/imp/tbemd/usr.bin/calendar/day.c user/imp/tbemd/usr.bin/calendar/io.c user/imp/tbemd/usr.bin/calendar/ostern.c user/imp/tbemd/usr.bin/calendar/paskha.c user/imp/tbemd/usr.bin/calendar/pathnames.h user/imp/tbemd/usr.bin/comm/comm.c user/imp/tbemd/usr.bin/compress/compress.c user/imp/tbemd/usr.bin/cpio/Makefile user/imp/tbemd/usr.bin/find/find.1 user/imp/tbemd/usr.bin/getent/getent.c user/imp/tbemd/usr.bin/gzip/gzip.1 user/imp/tbemd/usr.bin/gzip/gzip.c user/imp/tbemd/usr.bin/gzip/unbzip2.c user/imp/tbemd/usr.bin/indent/args.c user/imp/tbemd/usr.bin/indent/indent.1 user/imp/tbemd/usr.bin/indent/indent.c user/imp/tbemd/usr.bin/indent/indent_globs.h user/imp/tbemd/usr.bin/indent/lexi.c user/imp/tbemd/usr.bin/kdump/kdump.c user/imp/tbemd/usr.bin/mail/util.c user/imp/tbemd/usr.bin/make/main.c user/imp/tbemd/usr.bin/minigzip/Makefile user/imp/tbemd/usr.bin/ncal/ncal.1 user/imp/tbemd/usr.bin/ncal/ncal.c user/imp/tbemd/usr.bin/netstat/netgraph.c user/imp/tbemd/usr.bin/perror/perror.1 user/imp/tbemd/usr.bin/procstat/Makefile user/imp/tbemd/usr.bin/procstat/procstat.1 user/imp/tbemd/usr.bin/procstat/procstat.c user/imp/tbemd/usr.bin/procstat/procstat.h user/imp/tbemd/usr.bin/script/script.c user/imp/tbemd/usr.bin/sed/main.c user/imp/tbemd/usr.bin/sed/sed.1 user/imp/tbemd/usr.bin/sockstat/sockstat.c user/imp/tbemd/usr.bin/tar/bsdtar.1 user/imp/tbemd/usr.bin/tar/bsdtar.c user/imp/tbemd/usr.bin/tar/bsdtar_platform.h user/imp/tbemd/usr.bin/tar/matching.c user/imp/tbemd/usr.bin/tar/subst.c user/imp/tbemd/usr.bin/tar/tree.h user/imp/tbemd/usr.bin/tar/write.c user/imp/tbemd/usr.bin/touch/touch.c user/imp/tbemd/usr.bin/truss/amd64-fbsd.c user/imp/tbemd/usr.bin/truss/amd64-fbsd32.c user/imp/tbemd/usr.bin/truss/amd64-linux32.c user/imp/tbemd/usr.bin/truss/extern.h user/imp/tbemd/usr.bin/truss/i386-fbsd.c user/imp/tbemd/usr.bin/truss/i386-linux.c user/imp/tbemd/usr.bin/truss/ia64-fbsd.c user/imp/tbemd/usr.bin/truss/main.c user/imp/tbemd/usr.bin/truss/mips-fbsd.c user/imp/tbemd/usr.bin/truss/powerpc-fbsd.c user/imp/tbemd/usr.bin/truss/setup.c user/imp/tbemd/usr.bin/truss/sparc64-fbsd.c user/imp/tbemd/usr.bin/truss/syscalls.c user/imp/tbemd/usr.bin/truss/truss.h user/imp/tbemd/usr.bin/unifdef/unifdef.1 user/imp/tbemd/usr.bin/unifdef/unifdef.c user/imp/tbemd/usr.bin/unifdef/unifdefall.sh user/imp/tbemd/usr.bin/uniq/uniq.c user/imp/tbemd/usr.bin/xlint/lint1/decl.c user/imp/tbemd/usr.bin/xlint/lint1/lint1.h user/imp/tbemd/usr.bin/xlint/lint1/mem1.c user/imp/tbemd/usr.bin/xlint/lint1/scan.l user/imp/tbemd/usr.sbin/Makefile user/imp/tbemd/usr.sbin/ac/ac.c user/imp/tbemd/usr.sbin/acpi/acpidb/Makefile user/imp/tbemd/usr.sbin/acpi/iasl/Makefile user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_pf/BEGEMOT-PF-MIB.txt user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_pf/Makefile user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c user/imp/tbemd/usr.sbin/bsnmpd/modules/snmp_pf/pf_tree.def user/imp/tbemd/usr.sbin/config/config.y user/imp/tbemd/usr.sbin/config/lang.l user/imp/tbemd/usr.sbin/config/main.c user/imp/tbemd/usr.sbin/config/mkmakefile.c user/imp/tbemd/usr.sbin/config/mkoptions.c user/imp/tbemd/usr.sbin/freebsd-update/freebsd-update.8 user/imp/tbemd/usr.sbin/jls/jls.c user/imp/tbemd/usr.sbin/lastlogin/lastlogin.8 user/imp/tbemd/usr.sbin/lastlogin/lastlogin.c user/imp/tbemd/usr.sbin/mailwrapper/mailwrapper.8 user/imp/tbemd/usr.sbin/mailwrapper/mailwrapper.c user/imp/tbemd/usr.sbin/mergemaster/mergemaster.8 user/imp/tbemd/usr.sbin/mergemaster/mergemaster.sh user/imp/tbemd/usr.sbin/mtree/compare.c user/imp/tbemd/usr.sbin/mtree/create.c user/imp/tbemd/usr.sbin/mtree/mtree.8 user/imp/tbemd/usr.sbin/pkg_install/add/futil.c user/imp/tbemd/usr.sbin/pkg_install/add/perform.c user/imp/tbemd/usr.sbin/pkg_install/delete/perform.c user/imp/tbemd/usr.sbin/pkg_install/lib/file.c user/imp/tbemd/usr.sbin/pkg_install/lib/lib.h user/imp/tbemd/usr.sbin/pkg_install/lib/match.c user/imp/tbemd/usr.sbin/pkg_install/lib/pen.c user/imp/tbemd/usr.sbin/pkg_install/lib/plist.c user/imp/tbemd/usr.sbin/pkg_install/lib/url.c user/imp/tbemd/usr.sbin/pkg_install/updating/pkg_updating.1 user/imp/tbemd/usr.sbin/pkg_install/version/perform.c user/imp/tbemd/usr.sbin/pmcannotate/pmcannotate.8 user/imp/tbemd/usr.sbin/pmcstat/pmcpl_callgraph.c user/imp/tbemd/usr.sbin/pmcstat/pmcpl_calltree.c user/imp/tbemd/usr.sbin/pmcstat/pmcstat.c user/imp/tbemd/usr.sbin/pmcstat/pmcstat_log.c user/imp/tbemd/usr.sbin/pmcstat/pmcstat_log.h user/imp/tbemd/usr.sbin/powerd/powerd.8 user/imp/tbemd/usr.sbin/ppp/arp.c user/imp/tbemd/usr.sbin/sysinstall/menus.c user/imp/tbemd/usr.sbin/sysinstall/sysinstall.8 user/imp/tbemd/usr.sbin/uhsoctl/uhsoctl.1 user/imp/tbemd/usr.sbin/vidcontrol/vidcontrol.c user/imp/tbemd/usr.sbin/wpa/wpa_supplicant/driver_freebsd.c user/imp/tbemd/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 user/imp/tbemd/usr.sbin/zic/Makefile Modified: user/imp/tbemd/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- user/imp/tbemd/tools/build/mk/OptionalObsoleteFiles.inc Mon Apr 12 23:09:52 2010 (r206520) +++ user/imp/tbemd/tools/build/mk/OptionalObsoleteFiles.inc Mon Apr 12 23:11:20 2010 (r206521) @@ -776,12 +776,6 @@ OLD_FILES+=usr/share/man/man1/gdbserver. OLD_FILES+=usr/share/man/man1/kgdb.1.gz .endif -.if ${MK_GNU_CPIO} == no -OLD_FILES+=usr/bin/gcpio -OLD_FILES+=usr/share/info/cpio.info.gz -OLD_FILES+=usr/share/man/man1/gcpio.1.gz -.endif - .if ${MK_GPIB} == no OLD_FILES+=usr/include/dev/ieee488/ibfoo_int.h OLD_FILES+=usr/include/dev/ieee488/ugpib.h Modified: user/imp/tbemd/tools/regression/aio/aiotest/aiotest.c ============================================================================== --- user/imp/tbemd/tools/regression/aio/aiotest/aiotest.c Mon Apr 12 23:09:52 2010 (r206520) +++ user/imp/tbemd/tools/regression/aio/aiotest/aiotest.c Mon Apr 12 23:11:20 2010 (r206521) @@ -40,14 +40,17 @@ #include #include +#include #include #include #include #include #include +#include #include #include +#include #include #include #include Copied: user/imp/tbemd/tools/regression/bin/sh/builtins/command10.0 (from r206514, head/tools/regression/bin/sh/builtins/command10.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/builtins/command10.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/builtins/command10.0) @@ -0,0 +1,14 @@ +# $FreeBSD$ + +failures=0 + +check() { + if ! eval "[ $* ]"; then + echo "Failed: $*" + : $((failures += 1)) + fi +} + +check '"$(f() { shift x; }; { command eval f 2>/dev/null; } >/dev/null; echo hi)" = hi' + +exit $((failures > 0)) Copied: user/imp/tbemd/tools/regression/bin/sh/builtins/command11.0 (from r206514, head/tools/regression/bin/sh/builtins/command11.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/builtins/command11.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/builtins/command11.0) @@ -0,0 +1,14 @@ +# $FreeBSD$ + +failures=0 + +check() { + if ! eval "[ $* ]"; then + echo "Failed: $*" + : $((failures += 1)) + fi +} + +check '"$({ command eval \{ shift x\; \} 2\>/dev/null; } >/dev/null; echo hi)" = hi' + +exit $((failures > 0)) Copied: user/imp/tbemd/tools/regression/bin/sh/builtins/command8.0 (from r206514, head/tools/regression/bin/sh/builtins/command8.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/builtins/command8.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/builtins/command8.0) @@ -0,0 +1,45 @@ +# $FreeBSD$ +IFS=, + +SPECIAL="break,\ + :,\ + continue,\ + . /dev/null,\ + eval,\ + exec,\ + export -p,\ + readonly -p,\ + set,\ + shift 0,\ + times,\ + trap,\ + unset foo" + +set -e + +# Check that special builtins can be executed via "command". + +set -- ${SPECIAL} +for cmd in "$@" +do + sh -c "v=:; while \$v; do v=false; command ${cmd}; done" >/dev/null +done + +while :; do + command break + echo Error on line $LINENO +done + +set p q r +command shift 2 +if [ $# -ne 1 ]; then + echo Error on line $LINENO +fi + +( + command exec >/dev/null + echo Error on line $LINENO +) + +set +e +! command shift 2 2>/dev/null Copied: user/imp/tbemd/tools/regression/bin/sh/builtins/command9.0 (from r206514, head/tools/regression/bin/sh/builtins/command9.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/builtins/command9.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/builtins/command9.0) @@ -0,0 +1,14 @@ +# $FreeBSD$ + +failures=0 + +check() { + if ! eval "[ $* ]"; then + echo "Failed: $*" + : $((failures += 1)) + fi +} + +check '"$({ command eval shift x 2>/dev/null; } >/dev/null; echo hi)" = hi' + +exit $((failures > 0)) Copied: user/imp/tbemd/tools/regression/bin/sh/builtins/var-assign2.0 (from r206514, head/tools/regression/bin/sh/builtins/var-assign2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/builtins/var-assign2.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/builtins/var-assign2.0) @@ -0,0 +1,55 @@ +# $FreeBSD$ +IFS=, + +SPECIAL="break,\ + :,\ + continue,\ + . /dev/null,\ + eval,\ + exec,\ + export -p,\ + readonly -p,\ + set,\ + shift 0,\ + times,\ + trap,\ + unset foo" + +UTILS="alias,\ + bg,\ + bind,\ + cd,\ + command echo,\ + echo,\ + false,\ + fc -l,\ + fg,\ + getopts a var,\ + hash,\ + jobs,\ + printf a,\ + pwd,\ + read var < /dev/null,\ + test,\ + true,\ + type ls,\ + ulimit,\ + umask,\ + unalias -a,\ + wait" + +set -e + +# With 'command', variable assignments affect the shell environment. + +set -- ${SPECIAL} +for cmd in "$@" +do + sh -c "VAR=0; VAR=1 command ${cmd}; exit \${VAR}" >/dev/null 2>&1 +done + +set -- ${UTILS} +for cmd in "$@" +do + sh -c "VAR=0; VAR=1 command ${cmd}; exit \${VAR}" >/dev/null 2>&1 +done Copied: user/imp/tbemd/tools/regression/bin/sh/errors/assignment-error1.0 (from r206514, head/tools/regression/bin/sh/errors/assignment-error1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/errors/assignment-error1.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/errors/assignment-error1.0) @@ -0,0 +1,30 @@ +# $FreeBSD$ +IFS=, + +SPECIAL="break,\ + :,\ + continue,\ + . /dev/null,\ + eval,\ + exec,\ + export -p,\ + readonly -p,\ + set,\ + shift,\ + times,\ + trap,\ + unset foo" + +# If there is no command word, the shell must abort on an assignment error. +sh -c "readonly a=0; a=2; exit 0" 2>/dev/null && exit 1 + +# Special built-in utilities must abort on an assignment error. +set -- ${SPECIAL} +for cmd in "$@" +do + sh -c "readonly a=0; a=2 ${cmd}; exit 0" 2>/dev/null && exit 1 +done + +# Other utilities must not abort; we currently still execute them. +sh -c "readonly a=0; a=1 true; exit $a" 2>/dev/null || exit 1 +sh -c "readonly a=0; a=1 command :; exit $a" 2>/dev/null || exit 1 Copied: user/imp/tbemd/tools/regression/bin/sh/errors/redirection-error3.0 (from r206514, head/tools/regression/bin/sh/errors/redirection-error3.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/errors/redirection-error3.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/errors/redirection-error3.0) @@ -0,0 +1,54 @@ +# $FreeBSD$ +IFS=, + +SPECIAL="break,\ + :,\ + continue,\ + . /dev/null,\ + eval,\ + exec,\ + export -p,\ + readonly -p,\ + set,\ + shift,\ + times,\ + trap,\ + unset foo" + +UTILS="alias,\ + bg,\ + bind,\ + cd,\ + command echo,\ + echo,\ + false,\ + fc -l,\ + fg,\ + getopts a -a,\ + hash,\ + jobs,\ + printf a,\ + pwd,\ + read var < /dev/null,\ + test,\ + true,\ + type ls,\ + ulimit,\ + umask,\ + unalias -a,\ + wait" + +# When used with 'command', neither special built-in utilities nor other +# utilities must abort on a redirection error. + +set -- ${SPECIAL} +for cmd in "$@" +do + sh -c "command ${cmd} > /; exit 0" 2>/dev/null || exit 1 +done + +set -- ${UTILS} +for cmd in "$@" +do + sh -c "command ${cmd} > /; exit 0" 2>/dev/null || exit 1 +done Copied: user/imp/tbemd/tools/regression/bin/sh/errors/redirection-error4.0 (from r206514, head/tools/regression/bin/sh/errors/redirection-error4.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/errors/redirection-error4.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/errors/redirection-error4.0) @@ -0,0 +1,7 @@ +# $FreeBSD$ +# A redirection error should not abort the shell if there is no command word. +exec 2>/dev/null +/dev/null +( echo bad ) /dev/null +{ echo bad; } 0)) Copied: user/imp/tbemd/tools/regression/bin/sh/expansion/plus-minus1.0 (from r206514, head/tools/regression/bin/sh/expansion/plus-minus1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/expansion/plus-minus1.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/expansion/plus-minus1.0) @@ -0,0 +1,81 @@ +# $FreeBSD$ + +e= q='?' a='*' t=texttext s='ast*que?non' p='/et[c]/' w='a b c' b='{{(#)}}' +h='##' +failures='' +ok='' + +testcase() { + code="$1" + expected="$2" + oIFS="$IFS" + eval "$code" + IFS='|' + result="$#|$*" + IFS="$oIFS" + if [ "x$result" = "x$expected" ]; then + ok=x$ok + else + failures=x$failures + echo "For $code, expected $expected actual $result" + fi +} + +testcase 'set -- a b' '2|a|b' +testcase 'set --' '0|' +testcase 'set -- ${e}' '0|' +testcase 'set -- "${e}"' '1|' + +testcase 'set -- $p' '1|/etc/' +testcase 'set -- "$p"' '1|/et[c]/' +testcase 'set -- ${s+$p}' '1|/etc/' +testcase 'set -- "${s+$p}"' '1|/et[c]/' +testcase 'set -- ${s+"$p"}' '1|/et[c]/' +# Dquotes in dquotes is undefined for Bourne shell operators +#testcase 'set -- "${s+"$p"}"' '1|/et[c]/' +testcase 'set -- ${e:-$p}' '1|/etc/' +testcase 'set -- "${e:-$p}"' '1|/et[c]/' +testcase 'set -- ${e:-"$p"}' '1|/et[c]/' +# Dquotes in dquotes is undefined for Bourne shell operators +#testcase 'set -- "${e:-"$p"}"' '1|/et[c]/' +testcase 'set -- ${e:+"$e"}' '0|' +testcase 'set -- ${e:+$w"$e"}' '0|' +testcase 'set -- ${w:+"$w"}' '1|a b c' +testcase 'set -- ${w:+$w"$w"}' '3|a|b|ca b c' + +# These two are known broken in FreeBSD /bin/sh +#testcase 'set -- ${s+a b}' '2|a|b' +#testcase 'set -- ${e:-a b}' '2|a|b' +testcase 'set -- "${s+a b}"' '1|a b' +testcase 'set -- "${e:-a b}"' '1|a b' +testcase 'set -- ${e:-\}}' '1|}' +# Currently broken in FreeBSD /bin/sh +#testcase 'set -- "${e:-\}}"' '1|}' +testcase 'set -- ${e:+{}}' '1|}' +testcase 'set -- "${e:+{}}"' '1|}' + +testcase 'set -- ${e+x}${e+x}' '1|xx' +testcase 'set -- "${e+x}"${e+x}' '1|xx' +testcase 'set -- ${e+x}"${e+x}"' '1|xx' +testcase 'set -- "${e+x}${e+x}"' '1|xx' +testcase 'set -- "${e+x}""${e+x}"' '1|xx' + +testcase 'set -- ${e:-${e:-$p}}' '1|/etc/' +testcase 'set -- "${e:-${e:-$p}}"' '1|/et[c]/' +testcase 'set -- ${e:-"${e:-$p}"}' '1|/et[c]/' +testcase 'set -- ${e:-${e:-"$p"}}' '1|/et[c]/' +testcase 'set -- ${e:-${e:-${e:-$w}}}' '3|a|b|c' +testcase 'set -- ${e:-${e:-${e:-"$w"}}}' '1|a b c' +testcase 'set -- ${e:-${e:-"${e:-$w}"}}' '1|a b c' +testcase 'set -- ${e:-"${e:-${e:-$w}}"}' '1|a b c' +testcase 'set -- "${e:-${e:-${e:-$w}}}"' '1|a b c' + +testcase 'shift $#; set -- ${1+"$@"}' '0|' +testcase 'set -- ""; set -- ${1+"$@"}' '1|' +testcase 'set -- "" a; set -- ${1+"$@"}' '2||a' +testcase 'set -- a ""; set -- ${1+"$@"}' '2|a|' +testcase 'set -- a b; set -- ${1+"$@"}' '2|a|b' +testcase 'set -- a\ b; set -- ${1+"$@"}' '1|a b' +testcase 'set -- " " ""; set -- ${1+"$@"}' '2| |' + +test "x$failures" = x Copied: user/imp/tbemd/tools/regression/bin/sh/expansion/plus-minus2.0 (from r206514, head/tools/regression/bin/sh/expansion/plus-minus2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/expansion/plus-minus2.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/expansion/plus-minus2.0) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +e= +test "${e:-\}}" = '}' Copied: user/imp/tbemd/tools/regression/bin/sh/expansion/tilde1.0 (from r206514, head/tools/regression/bin/sh/expansion/tilde1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/tools/regression/bin/sh/expansion/tilde1.0 Mon Apr 12 23:11:20 2010 (r206521, copy of r206514, head/tools/regression/bin/sh/expansion/tilde1.0) @@ -0,0 +1,56 @@ +# $FreeBSD$ + +HOME=/tmp +roothome=~root +if [ "$roothome" = "~root" ]; then + echo "~root is not expanded!" + exit 2 +fi + +testcase() { + code="$1" + expected="$2" + oIFS="$IFS" + eval "$code" + IFS='|' + result="$#|$*" + IFS="$oIFS" + if [ "x$result" = "x$expected" ]; then + ok=x$ok + else + failures=x$failures + echo "For $code, expected $expected actual $result" + fi +} + +testcase 'set -- ~' '1|/tmp' +testcase 'set -- ~/foo' '1|/tmp/foo' +testcase 'set -- x~' '1|x~' +testcase 'set -- ~root' "1|$roothome" +h=~ +testcase 'set -- "$h"' '1|/tmp' +ooIFS=$IFS +IFS=m +testcase 'set -- ~' '1|/tmp' +testcase 'set -- ~/foo' '1|/tmp/foo' +testcase 'set -- $h' '2|/t|p' +IFS=$ooIFS +t=\~ +testcase 'set -- $t' '1|~' +r=$(cat < -#include +#include +#include #include +#include #include -#include +#include #define MQNAME "/mytstqueue1" Modified: user/imp/tbemd/tools/regression/mqueue/mqtest2/mqtest2.c ============================================================================== --- user/imp/tbemd/tools/regression/mqueue/mqtest2/mqtest2.c Mon Apr 12 23:09:52 2010 (r206520) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:12:39 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C3641065672; Mon, 12 Apr 2010 23:12:39 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 084CB8FC0A; Mon, 12 Apr 2010 23:12:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNCdxX069626; Mon, 12 Apr 2010 23:12:39 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNCcQ4069601; Mon, 12 Apr 2010 23:12:38 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122312.o3CNCcQ4069601@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:12:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206522 - in user/imp/tbemd/sys: amd64/acpica amd64/amd64 amd64/conf amd64/ia32 amd64/include amd64/linux32 arm/arm arm/conf arm/include arm/mv arm/mv/kirkwood arm/s3c2xx0 arm/xscale/ix... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:12:39 -0000 Author: imp Date: Mon Apr 12 23:12:38 2010 New Revision: 206522 URL: http://svn.freebsd.org/changeset/base/206522 Log: merge from head, part 7 of many. Added: user/imp/tbemd/sys/arm/conf/LN2410SBC - copied unchanged from r206514, head/sys/arm/conf/LN2410SBC user/imp/tbemd/sys/arm/s3c2xx0/ - copied from r206514, head/sys/arm/s3c2xx0/ user/imp/tbemd/sys/boot/i386/efi/ - copied from r206514, head/sys/boot/i386/efi/ user/imp/tbemd/sys/contrib/dev/acpica/compiler/aslpredef.c - copied unchanged from r206514, head/sys/contrib/dev/acpica/compiler/aslpredef.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exdebug.c - copied unchanged from r206514, head/sys/contrib/dev/acpica/executer/exdebug.c user/imp/tbemd/sys/contrib/dev/iwn/iwlwifi-6000-9.193.4.1.fw.uu - copied unchanged from r206514, head/sys/contrib/dev/iwn/iwlwifi-6000-9.193.4.1.fw.uu user/imp/tbemd/sys/dev/e1000/if_lem.c - copied unchanged from r206514, head/sys/dev/e1000/if_lem.c user/imp/tbemd/sys/dev/e1000/if_lem.h - copied unchanged from r206514, head/sys/dev/e1000/if_lem.h user/imp/tbemd/sys/dev/hwpmc/hwpmc_uncore.c - copied unchanged from r206514, head/sys/dev/hwpmc/hwpmc_uncore.c user/imp/tbemd/sys/dev/hwpmc/hwpmc_uncore.h - copied unchanged from r206514, head/sys/dev/hwpmc/hwpmc_uncore.h user/imp/tbemd/sys/dev/syscons/logo/beastie.c - copied unchanged from r206514, head/sys/dev/syscons/logo/beastie.c user/imp/tbemd/sys/dev/usb/controller/ohci_s3c24x0.c - copied unchanged from r206514, head/sys/dev/usb/controller/ohci_s3c24x0.c user/imp/tbemd/sys/geom/sched/ - copied from r206514, head/sys/geom/sched/ Deleted: user/imp/tbemd/sys/contrib/dev/iwn/iwlwifi-6000-9.176.4.1.fw.uu user/imp/tbemd/sys/ia64/include/nexusvar.h Modified: user/imp/tbemd/sys/amd64/acpica/acpi_machdep.c user/imp/tbemd/sys/amd64/amd64/apic_vector.S user/imp/tbemd/sys/amd64/amd64/db_trace.c user/imp/tbemd/sys/amd64/amd64/exception.S user/imp/tbemd/sys/amd64/amd64/identcpu.c user/imp/tbemd/sys/amd64/amd64/local_apic.c user/imp/tbemd/sys/amd64/amd64/machdep.c user/imp/tbemd/sys/amd64/amd64/mca.c user/imp/tbemd/sys/amd64/amd64/pmap.c user/imp/tbemd/sys/amd64/amd64/trap.c user/imp/tbemd/sys/amd64/amd64/vm_machdep.c user/imp/tbemd/sys/amd64/conf/GENERIC user/imp/tbemd/sys/amd64/conf/NOTES user/imp/tbemd/sys/amd64/conf/XENHVM user/imp/tbemd/sys/amd64/ia32/ia32_signal.c user/imp/tbemd/sys/amd64/include/apicvar.h user/imp/tbemd/sys/amd64/include/elf.h user/imp/tbemd/sys/amd64/include/mca.h user/imp/tbemd/sys/amd64/include/md_var.h user/imp/tbemd/sys/amd64/include/pmc_mdep.h user/imp/tbemd/sys/amd64/include/reg.h user/imp/tbemd/sys/amd64/include/specialreg.h user/imp/tbemd/sys/amd64/linux32/linux.h user/imp/tbemd/sys/amd64/linux32/linux32_sysvec.c user/imp/tbemd/sys/arm/arm/busdma_machdep.c user/imp/tbemd/sys/arm/arm/identcpu.c user/imp/tbemd/sys/arm/arm/machdep.c user/imp/tbemd/sys/arm/arm/pmap.c user/imp/tbemd/sys/arm/arm/vm_machdep.c user/imp/tbemd/sys/arm/conf/BWCT.hints user/imp/tbemd/sys/arm/conf/KB920X user/imp/tbemd/sys/arm/include/bus.h user/imp/tbemd/sys/arm/mv/common.c user/imp/tbemd/sys/arm/mv/kirkwood/kirkwood.c user/imp/tbemd/sys/arm/mv/mv_sata.c user/imp/tbemd/sys/arm/xscale/ixp425/cambria_fled.c user/imp/tbemd/sys/boot/arm/at91/boot2/bwct_board.c user/imp/tbemd/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c user/imp/tbemd/sys/boot/i386/boot2/boot2.c user/imp/tbemd/sys/boot/i386/gptboot/gptboot.c user/imp/tbemd/sys/boot/i386/zfsboot/zfsboot.c user/imp/tbemd/sys/cam/cam_xpt.c user/imp/tbemd/sys/cam/scsi/scsi_all.h user/imp/tbemd/sys/cam/scsi/scsi_da.c user/imp/tbemd/sys/cam/scsi/scsi_sg.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c user/imp/tbemd/sys/compat/freebsd32/freebsd32.h user/imp/tbemd/sys/compat/freebsd32/freebsd32_ipc.h user/imp/tbemd/sys/compat/freebsd32/freebsd32_misc.c user/imp/tbemd/sys/compat/freebsd32/freebsd32_proto.h user/imp/tbemd/sys/compat/freebsd32/freebsd32_syscall.h user/imp/tbemd/sys/compat/freebsd32/freebsd32_syscalls.c user/imp/tbemd/sys/compat/freebsd32/freebsd32_sysent.c user/imp/tbemd/sys/compat/freebsd32/freebsd32_util.h user/imp/tbemd/sys/compat/freebsd32/syscalls.master user/imp/tbemd/sys/compat/ia32/ia32_reg.h user/imp/tbemd/sys/compat/ia32/ia32_signal.h user/imp/tbemd/sys/compat/ia32/ia32_sysvec.c user/imp/tbemd/sys/compat/linprocfs/linprocfs.c user/imp/tbemd/sys/compat/linux/linux_file.c user/imp/tbemd/sys/compat/linux/linux_ioctl.c user/imp/tbemd/sys/compat/linux/linux_stats.c user/imp/tbemd/sys/compat/svr4/svr4_stat.c user/imp/tbemd/sys/compat/x86bios/x86bios.c user/imp/tbemd/sys/conf/NOTES user/imp/tbemd/sys/conf/files user/imp/tbemd/sys/conf/files.amd64 user/imp/tbemd/sys/conf/files.i386 user/imp/tbemd/sys/conf/files.ia64 user/imp/tbemd/sys/conf/files.pc98 user/imp/tbemd/sys/conf/files.sparc64 user/imp/tbemd/sys/conf/kern.mk user/imp/tbemd/sys/conf/kern.post.mk user/imp/tbemd/sys/conf/kern.pre.mk user/imp/tbemd/sys/conf/kmod.mk user/imp/tbemd/sys/conf/ldscript.mips.octeon1.32 (contents, props changed) user/imp/tbemd/sys/conf/ldscript.mips.octeon1.64 (contents, props changed) user/imp/tbemd/sys/conf/ldscript.mips.octeon1.n32 (contents, props changed) user/imp/tbemd/sys/conf/options user/imp/tbemd/sys/conf/options.amd64 user/imp/tbemd/sys/conf/options.i386 user/imp/tbemd/sys/conf/options.ia64 user/imp/tbemd/sys/contrib/dev/acpica/changes.txt user/imp/tbemd/sys/contrib/dev/acpica/common/dmextern.c user/imp/tbemd/sys/contrib/dev/acpica/common/dmtable.c user/imp/tbemd/sys/contrib/dev/acpica/common/dmtbdump.c user/imp/tbemd/sys/contrib/dev/acpica/common/dmtbinfo.c user/imp/tbemd/sys/contrib/dev/acpica/compiler/aslanalyze.c user/imp/tbemd/sys/contrib/dev/acpica/compiler/aslcompiler.h user/imp/tbemd/sys/contrib/dev/acpica/compiler/aslglobal.h user/imp/tbemd/sys/contrib/dev/acpica/compiler/aslmain.c user/imp/tbemd/sys/contrib/dev/acpica/compiler/aslmap.c user/imp/tbemd/sys/contrib/dev/acpica/compiler/aslstubs.c user/imp/tbemd/sys/contrib/dev/acpica/compiler/asltypes.h user/imp/tbemd/sys/contrib/dev/acpica/debugger/dbdisply.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsfield.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmethod.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsmthdat.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsobject.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dsopcode.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dswexec.c user/imp/tbemd/sys/contrib/dev/acpica/dispatcher/dswstate.c user/imp/tbemd/sys/contrib/dev/acpica/events/evevent.c user/imp/tbemd/sys/contrib/dev/acpica/events/evgpe.c user/imp/tbemd/sys/contrib/dev/acpica/events/evgpeblk.c user/imp/tbemd/sys/contrib/dev/acpica/events/evmisc.c user/imp/tbemd/sys/contrib/dev/acpica/events/evxface.c user/imp/tbemd/sys/contrib/dev/acpica/events/evxfevnt.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exconvrt.c user/imp/tbemd/sys/contrib/dev/acpica/executer/excreate.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exfield.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exfldio.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exmisc.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exmutex.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exnames.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exoparg1.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exoparg2.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exoparg3.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exoparg6.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exprep.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exregion.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exresnte.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exresolv.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exresop.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exstore.c user/imp/tbemd/sys/contrib/dev/acpica/executer/exsystem.c user/imp/tbemd/sys/contrib/dev/acpica/hardware/hwregs.c user/imp/tbemd/sys/contrib/dev/acpica/hardware/hwsleep.c user/imp/tbemd/sys/contrib/dev/acpica/hardware/hwvalid.c user/imp/tbemd/sys/contrib/dev/acpica/include/acdisasm.h user/imp/tbemd/sys/contrib/dev/acpica/include/acevents.h user/imp/tbemd/sys/contrib/dev/acpica/include/acexcep.h user/imp/tbemd/sys/contrib/dev/acpica/include/acglobal.h user/imp/tbemd/sys/contrib/dev/acpica/include/acinterp.h user/imp/tbemd/sys/contrib/dev/acpica/include/aclocal.h user/imp/tbemd/sys/contrib/dev/acpica/include/acoutput.h user/imp/tbemd/sys/contrib/dev/acpica/include/acpixf.h user/imp/tbemd/sys/contrib/dev/acpica/include/actables.h user/imp/tbemd/sys/contrib/dev/acpica/include/actbl2.h user/imp/tbemd/sys/contrib/dev/acpica/include/actypes.h user/imp/tbemd/sys/contrib/dev/acpica/include/platform/acfreebsd.h user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsaccess.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsdump.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsnames.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nssearch.c user/imp/tbemd/sys/contrib/dev/acpica/namespace/nsutils.c user/imp/tbemd/sys/contrib/dev/acpica/parser/psargs.c user/imp/tbemd/sys/contrib/dev/acpica/parser/psloop.c user/imp/tbemd/sys/contrib/dev/acpica/parser/psxface.c user/imp/tbemd/sys/contrib/dev/acpica/resources/rscreate.c user/imp/tbemd/sys/contrib/dev/acpica/resources/rslist.c user/imp/tbemd/sys/contrib/dev/acpica/resources/rsmisc.c user/imp/tbemd/sys/contrib/dev/acpica/tables/tbfadt.c user/imp/tbemd/sys/contrib/dev/acpica/tables/tbutils.c user/imp/tbemd/sys/contrib/dev/acpica/tables/tbxface.c user/imp/tbemd/sys/contrib/dev/acpica/tables/tbxfroot.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utalloc.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utdelete.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/uteval.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utglobal.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utmisc.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utmutex.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/utobject.c user/imp/tbemd/sys/contrib/dev/acpica/utilities/uttrack.c user/imp/tbemd/sys/contrib/dev/iwn/LICENSE user/imp/tbemd/sys/contrib/x86emu/x86emu.c user/imp/tbemd/sys/dev/aac/aac.c user/imp/tbemd/sys/dev/acpica/acpi.c user/imp/tbemd/sys/dev/acpica/acpi_button.c user/imp/tbemd/sys/dev/acpica/acpi_ec.c user/imp/tbemd/sys/dev/acpica/acpi_lid.c user/imp/tbemd/sys/dev/acpica/acpi_video.c user/imp/tbemd/sys/dev/acpica/acpivar.h user/imp/tbemd/sys/dev/agp/agp_i810.c user/imp/tbemd/sys/dev/ahci/ahci.c user/imp/tbemd/sys/dev/ata/ata-all.h user/imp/tbemd/sys/dev/ata/ata-raid.c user/imp/tbemd/sys/dev/ath/ath_hal/ar5416/ar9285_attach.c user/imp/tbemd/sys/dev/ath/if_ath.c user/imp/tbemd/sys/dev/bce/if_bce.c user/imp/tbemd/sys/dev/bce/if_bcefw.h user/imp/tbemd/sys/dev/bce/if_bcereg.h user/imp/tbemd/sys/dev/bge/if_bge.c user/imp/tbemd/sys/dev/bktr/ioctl_bt848.h user/imp/tbemd/sys/dev/bktr/ioctl_meteor.h user/imp/tbemd/sys/dev/bwi/if_bwi.c user/imp/tbemd/sys/dev/bwi/if_bwivar.h user/imp/tbemd/sys/dev/bwn/if_bwn.c user/imp/tbemd/sys/dev/bwn/if_bwnvar.h user/imp/tbemd/sys/dev/cxgb/common/cxgb_ael1002.c user/imp/tbemd/sys/dev/cxgb/common/cxgb_common.h user/imp/tbemd/sys/dev/cxgb/common/cxgb_t3_hw.c user/imp/tbemd/sys/dev/cxgb/cxgb_adapter.h user/imp/tbemd/sys/dev/cxgb/cxgb_main.c user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c user/imp/tbemd/sys/dev/drm/drm_pciids.h user/imp/tbemd/sys/dev/drm/i915_drv.h user/imp/tbemd/sys/dev/drm/i915_reg.h user/imp/tbemd/sys/dev/e1000/e1000_80003es2lan.c user/imp/tbemd/sys/dev/e1000/e1000_82571.c user/imp/tbemd/sys/dev/e1000/e1000_82575.c user/imp/tbemd/sys/dev/e1000/e1000_82575.h user/imp/tbemd/sys/dev/e1000/e1000_defines.h user/imp/tbemd/sys/dev/e1000/e1000_hw.h user/imp/tbemd/sys/dev/e1000/e1000_ich8lan.c user/imp/tbemd/sys/dev/e1000/e1000_ich8lan.h user/imp/tbemd/sys/dev/e1000/e1000_mac.c user/imp/tbemd/sys/dev/e1000/e1000_manage.c user/imp/tbemd/sys/dev/e1000/e1000_phy.c user/imp/tbemd/sys/dev/e1000/e1000_regs.h user/imp/tbemd/sys/dev/e1000/if_em.c user/imp/tbemd/sys/dev/e1000/if_em.h user/imp/tbemd/sys/dev/e1000/if_igb.c user/imp/tbemd/sys/dev/e1000/if_igb.h user/imp/tbemd/sys/dev/fb/vesa.c user/imp/tbemd/sys/dev/fb/vga.c user/imp/tbemd/sys/dev/firewire/sbp.c user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.h user/imp/tbemd/sys/dev/hwpmc/hwpmc_intel.c user/imp/tbemd/sys/dev/hwpmc/hwpmc_logging.c user/imp/tbemd/sys/dev/hwpmc/hwpmc_mod.c user/imp/tbemd/sys/dev/hwpmc/pmc_events.h user/imp/tbemd/sys/dev/isp/isp.c user/imp/tbemd/sys/dev/isp/isp_freebsd.c user/imp/tbemd/sys/dev/isp/isp_freebsd.h user/imp/tbemd/sys/dev/isp/isp_library.c user/imp/tbemd/sys/dev/isp/isp_pci.c user/imp/tbemd/sys/dev/isp/isp_sbus.c user/imp/tbemd/sys/dev/isp/ispvar.h user/imp/tbemd/sys/dev/ispfw/ispfw.c user/imp/tbemd/sys/dev/iwn/if_iwn.c user/imp/tbemd/sys/dev/iwn/if_iwnreg.h user/imp/tbemd/sys/dev/iwn/if_iwnvar.h user/imp/tbemd/sys/dev/ixgbe/LICENSE user/imp/tbemd/sys/dev/ixgbe/ixgbe.c user/imp/tbemd/sys/dev/ixgbe/ixgbe.h user/imp/tbemd/sys/dev/ixgbe/ixgbe_82598.c user/imp/tbemd/sys/dev/ixgbe/ixgbe_82599.c user/imp/tbemd/sys/dev/ixgbe/ixgbe_api.c user/imp/tbemd/sys/dev/ixgbe/ixgbe_api.h user/imp/tbemd/sys/dev/ixgbe/ixgbe_common.c user/imp/tbemd/sys/dev/ixgbe/ixgbe_phy.c user/imp/tbemd/sys/dev/ixgbe/ixgbe_phy.h user/imp/tbemd/sys/dev/ixgbe/ixgbe_type.h user/imp/tbemd/sys/dev/malo/if_malo.c user/imp/tbemd/sys/dev/mii/brgphy.c user/imp/tbemd/sys/dev/mii/brgphyreg.h user/imp/tbemd/sys/dev/mii/mii.c user/imp/tbemd/sys/dev/mii/miidevs user/imp/tbemd/sys/dev/mpt/mpt_cam.c user/imp/tbemd/sys/dev/msk/if_msk.c user/imp/tbemd/sys/dev/msk/if_mskreg.h user/imp/tbemd/sys/dev/mxge/if_mxge.c user/imp/tbemd/sys/dev/ofw/ofw_standard.c user/imp/tbemd/sys/dev/pci/vga_pci.c user/imp/tbemd/sys/dev/ppc/ppc_pci.c user/imp/tbemd/sys/dev/ral/rt2560.c user/imp/tbemd/sys/dev/ral/rt2560var.h user/imp/tbemd/sys/dev/ral/rt2661.c user/imp/tbemd/sys/dev/ral/rt2661var.h user/imp/tbemd/sys/dev/re/if_re.c user/imp/tbemd/sys/dev/siba/siba.c user/imp/tbemd/sys/dev/siba/siba_bwn.c user/imp/tbemd/sys/dev/siba/siba_cc.c user/imp/tbemd/sys/dev/siba/siba_core.c user/imp/tbemd/sys/dev/siba/siba_pcib.c user/imp/tbemd/sys/dev/siba/sibavar.h user/imp/tbemd/sys/dev/siis/siis.c user/imp/tbemd/sys/dev/sound/pci/envy24.c user/imp/tbemd/sys/dev/sound/pci/envy24.h user/imp/tbemd/sys/dev/sound/pci/envy24ht.c user/imp/tbemd/sys/dev/sound/pci/envy24ht.h user/imp/tbemd/sys/dev/sound/pci/es137x.c user/imp/tbemd/sys/dev/sound/pci/es137x.h user/imp/tbemd/sys/dev/sound/pci/hda/hdac.c user/imp/tbemd/sys/dev/sound/pci/spicds.c user/imp/tbemd/sys/dev/sound/pci/spicds.h user/imp/tbemd/sys/dev/sound/pcm/dsp.c user/imp/tbemd/sys/dev/syscons/logo/logo.c user/imp/tbemd/sys/dev/syscons/logo/logo_saver.c user/imp/tbemd/sys/dev/syscons/scvgarndr.c user/imp/tbemd/sys/dev/syscons/scvidctl.c user/imp/tbemd/sys/dev/syscons/syscons.c user/imp/tbemd/sys/dev/uart/uart.h user/imp/tbemd/sys/dev/uart/uart_cpu_sparc64.c user/imp/tbemd/sys/dev/ubsec/ubsec.c user/imp/tbemd/sys/dev/usb/controller/ehci_pci.c user/imp/tbemd/sys/dev/usb/controller/ohci_pci.c user/imp/tbemd/sys/dev/usb/controller/usb_controller.c user/imp/tbemd/sys/dev/usb/controller/uss820dci.c user/imp/tbemd/sys/dev/usb/input/ukbd.c user/imp/tbemd/sys/dev/usb/quirk/usb_quirk.c user/imp/tbemd/sys/dev/usb/serial/uftdi.c user/imp/tbemd/sys/dev/usb/serial/uvisor.c user/imp/tbemd/sys/dev/usb/template/usb_template.c user/imp/tbemd/sys/dev/usb/template/usb_template.h user/imp/tbemd/sys/dev/usb/template/usb_template_mtp.c user/imp/tbemd/sys/dev/usb/usb_compat_linux.c user/imp/tbemd/sys/dev/usb/usb_device.c user/imp/tbemd/sys/dev/usb/usb_device.h user/imp/tbemd/sys/dev/usb/usb_generic.c user/imp/tbemd/sys/dev/usb/usb_transfer.c user/imp/tbemd/sys/dev/usb/usbdevs user/imp/tbemd/sys/dev/usb/wlan/if_rum.c user/imp/tbemd/sys/dev/usb/wlan/if_rumvar.h user/imp/tbemd/sys/dev/usb/wlan/if_run.c user/imp/tbemd/sys/dev/usb/wlan/if_runreg.h user/imp/tbemd/sys/dev/usb/wlan/if_runvar.h user/imp/tbemd/sys/dev/usb/wlan/if_ural.c user/imp/tbemd/sys/dev/usb/wlan/if_uralvar.h user/imp/tbemd/sys/dev/usb/wlan/if_zyd.c user/imp/tbemd/sys/dev/usb/wlan/if_zydreg.h user/imp/tbemd/sys/dev/wpi/if_wpi.c user/imp/tbemd/sys/dev/wpi/if_wpivar.h user/imp/tbemd/sys/dev/xen/netback/netback.c user/imp/tbemd/sys/fs/coda/cnode.h user/imp/tbemd/sys/fs/coda/coda.h user/imp/tbemd/sys/fs/coda/coda_subr.c user/imp/tbemd/sys/fs/coda/coda_subr.h user/imp/tbemd/sys/fs/coda/coda_venus.c user/imp/tbemd/sys/fs/coda/coda_venus.h user/imp/tbemd/sys/fs/coda/coda_vfsops.c user/imp/tbemd/sys/fs/coda/coda_vfsops.h user/imp/tbemd/sys/fs/coda/coda_vnops.c user/imp/tbemd/sys/fs/deadfs/dead_vnops.c user/imp/tbemd/sys/fs/fdescfs/fdesc_vnops.c user/imp/tbemd/sys/fs/msdosfs/msdosfs_vfsops.c user/imp/tbemd/sys/fs/nfs/nfs_commonport.c user/imp/tbemd/sys/fs/nfs/nfs_commonsubs.c user/imp/tbemd/sys/fs/nfs/nfs_var.h user/imp/tbemd/sys/fs/nfs/nfsport.h user/imp/tbemd/sys/fs/nfs/nfsrvstate.h user/imp/tbemd/sys/fs/nfsserver/nfs_nfsdport.c user/imp/tbemd/sys/fs/nfsserver/nfs_nfsdserv.c user/imp/tbemd/sys/fs/nfsserver/nfs_nfsdstate.c user/imp/tbemd/sys/fs/nwfs/nwfs.h user/imp/tbemd/sys/fs/nwfs/nwfs_io.c user/imp/tbemd/sys/fs/nwfs/nwfs_ioctl.c user/imp/tbemd/sys/fs/nwfs/nwfs_mount.h user/imp/tbemd/sys/fs/nwfs/nwfs_node.c user/imp/tbemd/sys/fs/nwfs/nwfs_node.h user/imp/tbemd/sys/fs/nwfs/nwfs_subr.c user/imp/tbemd/sys/fs/nwfs/nwfs_subr.h user/imp/tbemd/sys/fs/nwfs/nwfs_vfsops.c user/imp/tbemd/sys/fs/nwfs/nwfs_vnops.c user/imp/tbemd/sys/fs/procfs/procfs_dbregs.c user/imp/tbemd/sys/fs/procfs/procfs_fpregs.c user/imp/tbemd/sys/fs/procfs/procfs_ioctl.c user/imp/tbemd/sys/fs/procfs/procfs_map.c user/imp/tbemd/sys/fs/procfs/procfs_regs.c user/imp/tbemd/sys/fs/smbfs/smbfs.h user/imp/tbemd/sys/fs/smbfs/smbfs_io.c user/imp/tbemd/sys/fs/smbfs/smbfs_node.c user/imp/tbemd/sys/fs/smbfs/smbfs_node.h user/imp/tbemd/sys/fs/smbfs/smbfs_smb.c user/imp/tbemd/sys/fs/smbfs/smbfs_subr.c user/imp/tbemd/sys/fs/smbfs/smbfs_subr.h user/imp/tbemd/sys/fs/smbfs/smbfs_vfsops.c user/imp/tbemd/sys/fs/smbfs/smbfs_vnops.c user/imp/tbemd/sys/geom/gate/g_gate.c user/imp/tbemd/sys/geom/geom_dump.c user/imp/tbemd/sys/geom/geom_io.c user/imp/tbemd/sys/geom/geom_vfs.c user/imp/tbemd/sys/geom/multipath/g_multipath.c user/imp/tbemd/sys/geom/vinum/geom_vinum.c user/imp/tbemd/sys/i386/acpica/acpi_machdep.c user/imp/tbemd/sys/i386/conf/GENERIC user/imp/tbemd/sys/i386/conf/NOTES user/imp/tbemd/sys/i386/conf/XEN user/imp/tbemd/sys/i386/i386/apic_vector.s user/imp/tbemd/sys/i386/i386/identcpu.c user/imp/tbemd/sys/i386/i386/local_apic.c user/imp/tbemd/sys/i386/i386/machdep.c user/imp/tbemd/sys/i386/i386/mca.c user/imp/tbemd/sys/i386/i386/mp_machdep.c user/imp/tbemd/sys/i386/i386/mpboot.s user/imp/tbemd/sys/i386/i386/pmap.c user/imp/tbemd/sys/i386/i386/trap.c user/imp/tbemd/sys/i386/ibcs2/ibcs2_stat.c user/imp/tbemd/sys/i386/include/apicvar.h user/imp/tbemd/sys/i386/include/bootinfo.h user/imp/tbemd/sys/i386/include/mca.h user/imp/tbemd/sys/i386/include/md_var.h user/imp/tbemd/sys/i386/include/pmc_mdep.h user/imp/tbemd/sys/i386/include/specialreg.h user/imp/tbemd/sys/i386/linux/linux.h user/imp/tbemd/sys/i386/linux/linux_sysvec.c user/imp/tbemd/sys/i386/xen/mp_machdep.c user/imp/tbemd/sys/ia64/conf/GENERIC user/imp/tbemd/sys/ia64/conf/NOTES user/imp/tbemd/sys/ia64/ia32/ia32_signal.c user/imp/tbemd/sys/ia64/ia64/autoconf.c user/imp/tbemd/sys/ia64/ia64/clock.c user/imp/tbemd/sys/ia64/ia64/db_machdep.c user/imp/tbemd/sys/ia64/ia64/exception.S user/imp/tbemd/sys/ia64/ia64/genassym.c user/imp/tbemd/sys/ia64/ia64/highfp.c user/imp/tbemd/sys/ia64/ia64/interrupt.c user/imp/tbemd/sys/ia64/ia64/locore.S user/imp/tbemd/sys/ia64/ia64/machdep.c user/imp/tbemd/sys/ia64/ia64/mp_machdep.c user/imp/tbemd/sys/ia64/ia64/nexus.c user/imp/tbemd/sys/ia64/ia64/pmap.c user/imp/tbemd/sys/ia64/ia64/sal.c user/imp/tbemd/sys/ia64/ia64/sapic.c user/imp/tbemd/sys/ia64/ia64/trap.c user/imp/tbemd/sys/ia64/ia64/vm_machdep.c user/imp/tbemd/sys/ia64/include/acpica_machdep.h user/imp/tbemd/sys/ia64/include/clock.h user/imp/tbemd/sys/ia64/include/cpufunc.h user/imp/tbemd/sys/ia64/include/elf.h user/imp/tbemd/sys/ia64/include/frame.h user/imp/tbemd/sys/ia64/include/intr.h user/imp/tbemd/sys/ia64/include/intrcnt.h user/imp/tbemd/sys/ia64/include/pcb.h user/imp/tbemd/sys/ia64/include/pcpu.h user/imp/tbemd/sys/ia64/include/reg.h user/imp/tbemd/sys/ia64/include/smp.h user/imp/tbemd/sys/ia64/pci/pci_cfgreg.c user/imp/tbemd/sys/kern/imgact_elf.c user/imp/tbemd/sys/kern/init_main.c user/imp/tbemd/sys/kern/kern_alq.c user/imp/tbemd/sys/kern/kern_clock.c user/imp/tbemd/sys/kern/kern_event.c user/imp/tbemd/sys/kern/kern_exec.c user/imp/tbemd/sys/kern/kern_jail.c user/imp/tbemd/sys/kern/kern_ktr.c user/imp/tbemd/sys/kern/kern_module.c user/imp/tbemd/sys/kern/kern_rwlock.c user/imp/tbemd/sys/kern/kern_sig.c user/imp/tbemd/sys/kern/kern_syscalls.c user/imp/tbemd/sys/kern/kern_thr.c user/imp/tbemd/sys/kern/kern_umtx.c user/imp/tbemd/sys/kern/subr_eventhandler.c user/imp/tbemd/sys/kern/subr_firmware.c user/imp/tbemd/sys/kern/sys_generic.c user/imp/tbemd/sys/kern/sys_pipe.c user/imp/tbemd/sys/kern/sys_process.c user/imp/tbemd/sys/kern/sysv_ipc.c user/imp/tbemd/sys/kern/sysv_msg.c user/imp/tbemd/sys/kern/sysv_sem.c user/imp/tbemd/sys/kern/sysv_shm.c user/imp/tbemd/sys/kern/tty_pts.c user/imp/tbemd/sys/kern/uipc_mqueue.c user/imp/tbemd/sys/kern/uipc_sem.c user/imp/tbemd/sys/kern/uipc_shm.c user/imp/tbemd/sys/kern/uipc_socket.c user/imp/tbemd/sys/kern/uipc_syscalls.c user/imp/tbemd/sys/kern/vfs_aio.c user/imp/tbemd/sys/kern/vfs_bio.c user/imp/tbemd/sys/kern/vfs_default.c user/imp/tbemd/sys/kern/vfs_lookup.c user/imp/tbemd/sys/kern/vfs_subr.c user/imp/tbemd/sys/kern/vfs_syscalls.c user/imp/tbemd/sys/kern/vfs_vnops.c user/imp/tbemd/sys/libkern/iconv.c user/imp/tbemd/sys/libkern/iconv_converter_if.m user/imp/tbemd/sys/libkern/iconv_xlat.c user/imp/tbemd/sys/libkern/strcasecmp.c Directory Properties: user/imp/tbemd/sys/contrib/dev/acpica/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) user/imp/tbemd/sys/dev/ath/ath_hal/ar5416/ar9160.ini (props changed) Modified: user/imp/tbemd/sys/amd64/acpica/acpi_machdep.c ============================================================================== --- user/imp/tbemd/sys/amd64/acpica/acpi_machdep.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/acpica/acpi_machdep.c Mon Apr 12 23:12:38 2010 (r206522) @@ -627,8 +627,10 @@ map_table(vm_paddr_t pa, int offset, con if (ACPI_FAILURE(AcpiTbChecksum(table, length))) { if (bootverbose) printf("ACPI: Failed checksum for table %s\n", sig); +#if (ACPI_CHECKSUM_ABORT) table_unmap(table, length); return (NULL); +#endif } return (table); } Modified: user/imp/tbemd/sys/amd64/amd64/apic_vector.S ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/apic_vector.S Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/apic_vector.S Mon Apr 12 23:12:38 2010 (r206522) @@ -104,6 +104,18 @@ IDTVEC(timerint) MEXITCOUNT jmp doreti +/* + * Local APIC error interrupt handler. + */ + .text + SUPERALIGN_TEXT +IDTVEC(errorint) + PUSH_FRAME + FAKE_MCOUNT(TF_RIP(%rsp)) + call lapic_handle_error + MEXITCOUNT + jmp doreti + #ifdef SMP /* * Global address space TLB shootdown. Modified: user/imp/tbemd/sys/amd64/amd64/db_trace.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/db_trace.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/db_trace.c Mon Apr 12 23:12:38 2010 (r206522) @@ -319,7 +319,7 @@ db_nextframe(struct amd64_frame **fp, db frame_type = INTERRUPT; else if (strcmp(name, "Xfast_syscall") == 0) frame_type = SYSCALL; -#ifdef COMPAT_IA32 +#ifdef COMPAT_FREEBSD32 else if (strcmp(name, "Xint0x80_syscall") == 0) frame_type = SYSCALL; #endif Modified: user/imp/tbemd/sys/amd64/amd64/exception.S ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/exception.S Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/exception.S Mon Apr 12 23:12:38 2010 (r206522) @@ -572,7 +572,7 @@ ENTRY(fork_trampoline) * included. */ -#ifdef COMPAT_IA32 +#ifdef COMPAT_FREEBSD32 .data .p2align 4 .text @@ -668,7 +668,8 @@ ld_fs: movw %ax,%fs movl $MSR_FSBASE,%ecx movl PCB_FSBASE(%r8),%eax movl PCB_FSBASE+4(%r8),%edx - wrmsr + .globl ld_fsbase +ld_fsbase: wrmsr 1: /* Restore %gs and gsbase */ movw TF_GS(%rsp),%si @@ -685,7 +686,8 @@ ld_gs: movw %si,%gs movl $MSR_KGSBASE,%ecx movl PCB_GSBASE(%r8),%eax movl PCB_GSBASE+4(%r8),%edx - wrmsr + .globl ld_gsbase +ld_gsbase: wrmsr 1: .globl ld_es ld_es: movw TF_ES(%rsp),%es .globl ld_ds @@ -798,6 +800,30 @@ gs_load_fault: call trap movw $KUG32SEL,TF_GS(%rsp) jmp doreti + + ALIGN_TEXT + .globl fsbase_load_fault +fsbase_load_fault: + movl $T_PROTFLT,TF_TRAPNO(%rsp) + movq %rsp, %rdi + call trap + movq PCPU(CURTHREAD),%r8 + movq TD_PCB(%r8),%r8 + movq $0,PCB_FSBASE(%r8) + jmp doreti + + ALIGN_TEXT + .globl gsbase_load_fault +gsbase_load_fault: + popfq + movl $T_PROTFLT,TF_TRAPNO(%rsp) + movq %rsp, %rdi + call trap + movq PCPU(CURTHREAD),%r8 + movq TD_PCB(%r8),%r8 + movq $0,PCB_GSBASE(%r8) + jmp doreti + #ifdef HWPMC_HOOKS ENTRY(end_exceptions) #endif Modified: user/imp/tbemd/sys/amd64/amd64/identcpu.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/identcpu.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/identcpu.c Mon Apr 12 23:12:38 2010 (r206522) @@ -187,7 +187,9 @@ printcpuinfo(void) if (cpu_vendor_id == CPU_VENDOR_INTEL || cpu_vendor_id == CPU_VENDOR_AMD || cpu_vendor_id == CPU_VENDOR_CENTAUR) { - printf(" Stepping = %u", cpu_id & 0xf); + printf(" Family = %x", CPUID_TO_FAMILY(cpu_id)); + printf(" Model = %x", CPUID_TO_MODEL(cpu_id)); + printf(" Stepping = %u", cpu_id & CPUID_STEPPING); if (cpu_high > 0) { /* Modified: user/imp/tbemd/sys/amd64/amd64/local_apic.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/local_apic.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/local_apic.c Mon Apr 12 23:12:38 2010 (r206522) @@ -115,14 +115,12 @@ struct lapic { int la_ioint_irqs[APIC_NUM_IOINTS + 1]; } static lapics[MAX_APIC_ID + 1]; -/* XXX: should thermal be an NMI? */ - /* Global defaults for local APIC LVT entries. */ static struct lvt lvts[LVT_MAX + 1] = { { 1, 1, 1, 1, APIC_LVT_DM_EXTINT, 0 }, /* LINT0: masked ExtINT */ { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* LINT1: NMI */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_TIMER_INT }, /* Timer */ - { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT }, /* Error */ + { 1, 1, 0, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT }, /* Error */ { 1, 1, 1, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_THERMAL_INT }, /* Thermal */ }; @@ -225,7 +223,10 @@ lapic_init(vm_paddr_t addr) /* Local APIC timer interrupt. */ setidt(APIC_TIMER_INT, IDTVEC(timerint), SDT_SYSIGT, SEL_KPL, 0); - /* XXX: error/thermal interrupts */ + /* Local APIC error interrupt. */ + setidt(APIC_ERROR_INT, IDTVEC(errorint), SDT_SYSIGT, SEL_KPL, 0); + + /* XXX: Thermal interrupt */ } /* @@ -278,7 +279,7 @@ lapic_dump(const char* str) lapic->id, lapic->version, lapic->ldr, lapic->dfr); printf(" lint0: 0x%08x lint1: 0x%08x TPR: 0x%08x SVR: 0x%08x\n", lapic->lvt_lint0, lapic->lvt_lint1, lapic->tpr, lapic->svr); - printf(" timer: 0x%08x therm: 0x%08x err: 0x%08x pcm: 0x%08x\n", + printf(" timer: 0x%08x therm: 0x%08x err: 0x%08x pmc: 0x%08x\n", lapic->lvt_timer, lapic->lvt_thermal, lapic->lvt_error, lapic->lvt_pcint); } @@ -326,7 +327,11 @@ lapic_setup(int boot) lapic_timer_enable_intr(); } - /* XXX: Error and thermal LVTs */ + /* Program error LVT and clear any existing errors. */ + lapic->lvt_error = lvt_mode(la, LVT_ERROR, lapic->lvt_error); + lapic->esr = 0; + + /* XXX: Thermal LVT */ intr_restore(eflags); } @@ -725,18 +730,6 @@ lapic_eoi(void) lapic->eoi = 0; } -/* - * Read the contents of the error status register. We have to write - * to the register first before reading from it. - */ -u_int -lapic_error(void) -{ - - lapic->esr = 0; - return (lapic->esr); -} - void lapic_handle_intr(int vector, struct trapframe *frame) { @@ -863,6 +856,24 @@ lapic_timer_enable_intr(void) lapic->lvt_timer = value; } +void +lapic_handle_error(void) +{ + u_int32_t esr; + + /* + * Read the contents of the error status register. Write to + * the register first before reading from it to force the APIC + * to update its value to indicate any errors that have + * occurred since the previous write to the register. + */ + lapic->esr = 0; + esr = lapic->esr; + + printf("CPU%d: local APIC error 0x%x\n", PCPU_GET(cpuid), esr); + lapic_eoi(); +} + u_int apic_cpuid(u_int apic_id) { Modified: user/imp/tbemd/sys/amd64/amd64/machdep.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/machdep.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/machdep.c Mon Apr 12 23:12:38 2010 (r206522) @@ -841,11 +841,7 @@ SYSCTL_PROC(_machdep, OID_AUTO, idle, CT * Reset registers to default values on exec. */ void -exec_setregs(td, entry, stack, ps_strings) - struct thread *td; - u_long entry; - u_long stack; - u_long ps_strings; +exec_setregs(struct thread *td, struct image_params *imgp, u_long stack) { struct trapframe *regs = td->td_frame; struct pcb *pcb = td->td_pcb; @@ -863,7 +859,7 @@ exec_setregs(td, entry, stack, ps_string pcb->pcb_full_iret = 1; bzero((char *)regs, sizeof(struct trapframe)); - regs->tf_rip = entry; + regs->tf_rip = imgp->entry_addr; regs->tf_rsp = ((stack - 8) & ~0xFul) + 8; regs->tf_rdi = stack; /* argv */ regs->tf_rflags = PSL_USER | (regs->tf_rflags & PSL_T); Modified: user/imp/tbemd/sys/amd64/amd64/mca.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/mca.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/mca.c Mon Apr 12 23:12:38 2010 (r206522) @@ -60,11 +60,20 @@ static int mca_count; /* Number of reco SYSCTL_NODE(_hw, OID_AUTO, mca, CTLFLAG_RD, NULL, "Machine Check Architecture"); -static int mca_enabled = 0; +static int mca_enabled = 1; TUNABLE_INT("hw.mca.enabled", &mca_enabled); SYSCTL_INT(_hw_mca, OID_AUTO, enabled, CTLFLAG_RDTUN, &mca_enabled, 0, "Administrative toggle for machine check support"); +static int amd10h_L1TP = 1; +TUNABLE_INT("hw.mca.amd10h_L1TP", &amd10h_L1TP); +SYSCTL_INT(_hw_mca, OID_AUTO, amd10h_L1TP, CTLFLAG_RDTUN, &amd10h_L1TP, 0, + "Administrative toggle for logging of level one TLB parity (L1TP) errors"); + +int workaround_erratum383; +SYSCTL_INT(_hw_mca, OID_AUTO, erratum383, CTLFLAG_RD, &workaround_erratum383, 0, + "Is the workaround for Erratum 383 on AMD Family 10h processors enabled?"); + static STAILQ_HEAD(, mca_internal) mca_records; static struct callout mca_timer; static int mca_ticks = 3600; /* Check hourly by default. */ @@ -177,19 +186,46 @@ mca_error_request(uint16_t mca_error) return ("???"); } +static const char * +mca_error_mmtype(uint16_t mca_error) +{ + + switch ((mca_error & 0x70) >> 4) { + case 0x0: + return ("GEN"); + case 0x1: + return ("RD"); + case 0x2: + return ("WR"); + case 0x3: + return ("AC"); + case 0x4: + return ("MS"); + } + return ("???"); +} + /* Dump details about a single machine check. */ static void __nonnull(1) mca_log(const struct mca_record *rec) { uint16_t mca_error; - printf("MCA: bank %d, status 0x%016llx\n", rec->mr_bank, + printf("MCA: Bank %d, Status 0x%016llx\n", rec->mr_bank, (long long)rec->mr_status); - printf("MCA: CPU %d ", rec->mr_apic_id); + printf("MCA: Global Cap 0x%016llx, Status 0x%016llx\n", + (long long)rec->mr_mcg_cap, (long long)rec->mr_mcg_status); + printf("MCA: Vendor \"%s\", ID 0x%x, APIC ID %d\n", cpu_vendor, + rec->mr_cpu_id, rec->mr_apic_id); + printf("MCA: CPU %d ", rec->mr_cpu); if (rec->mr_status & MC_STATUS_UC) printf("UNCOR "); - else + else { printf("COR "); + if (rec->mr_mcg_cap & MCG_CAP_TES_P) + printf("(%lld) ", ((long long)rec->mr_status & + MC_STATUS_COR_COUNT) >> 38); + } if (rec->mr_status & MC_STATUS_PCC) printf("PCC "); if (rec->mr_status & MC_STATUS_OVER) @@ -212,6 +248,9 @@ mca_log(const struct mca_record *rec) case 0x0004: printf("FRC error"); break; + case 0x0005: + printf("internal parity error"); + break; case 0x0400: printf("internal timer error"); break; @@ -236,6 +275,17 @@ mca_log(const struct mca_record *rec) break; } + /* Memory controller error. */ + if ((mca_error & 0xef80) == 0x0080) { + printf("%s channel ", mca_error_mmtype(mca_error)); + if ((mca_error & 0x000f) != 0x000f) + printf("%d", mca_error & 0x000f); + else + printf("??"); + printf(" memory error"); + break; + } + /* Cache error. */ if ((mca_error & 0xef00) == 0x0100) { printf("%sCACHE %s %s error", @@ -313,6 +363,11 @@ mca_check_status(int bank, struct mca_re rec->mr_misc = rdmsr(MSR_MC_MISC(bank)); rec->mr_tsc = rdtsc(); rec->mr_apic_id = PCPU_GET(apic_id); + rec->mr_mcg_cap = rdmsr(MSR_MCG_CAP); + rec->mr_mcg_status = rdmsr(MSR_MCG_STATUS); + rec->mr_cpu_id = cpu_id; + rec->mr_cpu_vendor_id = cpu_vendor_id; + rec->mr_cpu = PCPU_GET(cpuid); /* * Clear machine check. Don't do this for uncorrectable @@ -481,7 +536,7 @@ void mca_init(void) { uint64_t mcg_cap; - uint64_t ctl; + uint64_t ctl, mask; int skip; int i; @@ -489,6 +544,15 @@ mca_init(void) if (!mca_enabled || !(cpu_feature & CPUID_MCE)) return; + /* + * On AMD Family 10h processors, unless logging of level one TLB + * parity (L1TP) errors is disabled, enable the recommended workaround + * for Erratum 383. + */ + if (cpu_vendor_id == CPU_VENDOR_AMD && + CPUID_TO_FAMILY(cpu_id) == 0x10 && amd10h_L1TP) + workaround_erratum383 = 1; + if (cpu_feature & CPUID_MCA) { if (PCPU_GET(cpuid) == 0) mca_setup(); @@ -499,6 +563,19 @@ mca_init(void) /* Enable MCA features. */ wrmsr(MSR_MCG_CTL, MCG_CTL_ENABLE); + /* + * Disable logging of level one TLB parity (L1TP) errors by + * the data cache as an alternative workaround for AMD Family + * 10h Erratum 383. Unlike the recommended workaround, there + * is no performance penalty to this workaround. However, + * L1TP errors will go unreported. + */ + if (cpu_vendor_id == CPU_VENDOR_AMD && + CPUID_TO_FAMILY(cpu_id) == 0x10 && !amd10h_L1TP) { + mask = rdmsr(MSR_MC0_CTL_MASK); + if ((mask & (1UL << 5)) == 0) + wrmsr(MSR_MC0_CTL_MASK, mask | (1UL << 5)); + } for (i = 0; i < (mcg_cap & MCG_CAP_COUNT); i++) { /* By default enable logging of all errors. */ ctl = 0xffffffffffffffffUL; Modified: user/imp/tbemd/sys/amd64/amd64/pmap.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/pmap.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/pmap.c Mon Apr 12 23:12:38 2010 (r206522) @@ -7,7 +7,7 @@ * All rights reserved. * Copyright (c) 2003 Peter Wemm * All rights reserved. - * Copyright (c) 2005-2008 Alan L. Cox + * Copyright (c) 2005-2010 Alan L. Cox * All rights reserved. * * This code is derived from software contributed to Berkeley by @@ -152,7 +152,7 @@ __FBSDID("$FreeBSD$"); #if !defined(DIAGNOSTIC) #ifdef __GNUC_GNU_INLINE__ -#define PMAP_INLINE inline +#define PMAP_INLINE __attribute__((__gnu_inline__)) inline #else #define PMAP_INLINE extern inline #endif @@ -255,6 +255,9 @@ static void pmap_remove_entry(struct pma static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); static boolean_t pmap_try_insert_pv_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); +static void pmap_update_pde(pmap_t pmap, vm_offset_t va, pd_entry_t *pde, + pd_entry_t newpde); +static void pmap_update_pde_invalidate(vm_offset_t va, pd_entry_t newpde); static vm_page_t pmap_allocpde(pmap_t pmap, vm_offset_t va, int flags); static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags); @@ -573,8 +576,6 @@ pmap_bootstrap(vm_paddr_t *firstaddr) virtual_avail = va; - invltlb(); - /* Initialize the PAT MSR. */ pmap_init_pat(); } @@ -686,13 +687,13 @@ pmap_init(void) pv_entry_high_water = 9 * (pv_entry_max / 10); /* - * Disable large page mappings by default if the kernel is running in - * a virtual machine on an AMD Family 10h processor. This is a work- - * around for Erratum 383. + * If the kernel is running in a virtual machine on an AMD Family 10h + * processor, then it must assume that MCA is enabled by the virtual + * machine monitor. */ if (vm_guest == VM_GUEST_VM && cpu_vendor_id == CPU_VENDOR_AMD && CPUID_TO_FAMILY(cpu_id) == 0x10) - pg_ps_enabled = 0; + workaround_erratum383 = 1; /* * Are large page mappings enabled? @@ -848,6 +849,45 @@ pmap_cache_bits(int mode, boolean_t is_p cache_bits |= PG_NC_PWT; return (cache_bits); } + +/* + * After changing the page size for the specified virtual address in the page + * table, flush the corresponding entries from the processor's TLB. Only the + * calling processor's TLB is affected. + * + * The calling thread must be pinned to a processor. + */ +static void +pmap_update_pde_invalidate(vm_offset_t va, pd_entry_t newpde) +{ + u_long cr4; + + if ((newpde & PG_PS) == 0) + /* Demotion: flush a specific 2MB page mapping. */ + invlpg(va); + else if ((newpde & PG_G) == 0) + /* + * Promotion: flush every 4KB page mapping from the TLB + * because there are too many to flush individually. + */ + invltlb(); + else { + /* + * Promotion: flush every 4KB page mapping from the TLB, + * including any global (PG_G) mappings. + */ + cr4 = rcr4(); + load_cr4(cr4 & ~CR4_PGE); + /* + * Although preemption at this point could be detrimental to + * performance, it would not lead to an error. PG_G is simply + * ignored if CR4.PGE is clear. Moreover, in case this block + * is re-entered, the load_cr4() either above or below will + * modify CR4.PGE flushing the TLB. + */ + load_cr4(cr4 | CR4_PGE); + } +} #ifdef SMP /* * For SMP, these functions have to use the IPI mechanism for coherence. @@ -944,6 +984,69 @@ pmap_invalidate_cache(void) smp_cache_flush(); sched_unpin(); } + +struct pde_action { + cpumask_t store; /* processor that updates the PDE */ + cpumask_t invalidate; /* processors that invalidate their TLB */ + vm_offset_t va; + pd_entry_t *pde; + pd_entry_t newpde; +}; + +static void +pmap_update_pde_action(void *arg) +{ + struct pde_action *act = arg; + + if (act->store == PCPU_GET(cpumask)) + pde_store(act->pde, act->newpde); +} + +static void +pmap_update_pde_teardown(void *arg) +{ + struct pde_action *act = arg; + + if ((act->invalidate & PCPU_GET(cpumask)) != 0) + pmap_update_pde_invalidate(act->va, act->newpde); +} + +/* + * Change the page size for the specified virtual address in a way that + * prevents any possibility of the TLB ever having two entries that map the + * same virtual address using different page sizes. This is the recommended + * workaround for Erratum 383 on AMD Family 10h processors. It prevents a + * machine check exception for a TLB state that is improperly diagnosed as a + * hardware error. + */ +static void +pmap_update_pde(pmap_t pmap, vm_offset_t va, pd_entry_t *pde, pd_entry_t newpde) +{ + struct pde_action act; + cpumask_t active, cpumask; + + sched_pin(); + cpumask = PCPU_GET(cpumask); + if (pmap == kernel_pmap) + active = all_cpus; + else + active = pmap->pm_active; + if ((active & PCPU_GET(other_cpus)) != 0) { + act.store = cpumask; + act.invalidate = active; + act.va = va; + act.pde = pde; + act.newpde = newpde; + smp_rendezvous_cpus(cpumask | active, + smp_no_rendevous_barrier, pmap_update_pde_action, + pmap_update_pde_teardown, &act); + } else { + pde_store(pde, newpde); + if ((active & cpumask) != 0) + pmap_update_pde_invalidate(va, newpde); + } + sched_unpin(); +} #else /* !SMP */ /* * Normal, non-SMP, invalidation functions. @@ -981,6 +1084,15 @@ pmap_invalidate_cache(void) wbinvd(); } + +static void +pmap_update_pde(pmap_t pmap, vm_offset_t va, pd_entry_t *pde, pd_entry_t newpde) +{ + + pde_store(pde, newpde); + if (pmap == kernel_pmap || pmap->pm_active) + pmap_update_pde_invalidate(va, newpde); +} #endif /* !SMP */ static void @@ -994,7 +1106,8 @@ pmap_invalidate_cache_range(vm_offset_t if (cpu_feature & CPUID_SS) ; /* If "Self Snoop" is supported, do nothing. */ - else if (cpu_feature & CPUID_CLFSH) { + else if ((cpu_feature & CPUID_CLFSH) != 0 && + eva - sva < 2 * 1024 * 1024) { /* * Otherwise, do per-cache line flush. Use the mfence @@ -1011,7 +1124,8 @@ pmap_invalidate_cache_range(vm_offset_t /* * No targeted cache flush methods are supported by CPU, - * globally invalidate cache as a last resort. + * or the supplied range is bigger than 2MB. + * Globally invalidate cache. */ pmap_invalidate_cache(); } @@ -2361,7 +2475,10 @@ pmap_demote_pde(pmap_t pmap, pd_entry_t * processor changing the setting of PG_A and/or PG_M between * the read above and the store below. */ - pde_store(pde, newpde); + if (workaround_erratum383) + pmap_update_pde(pmap, va, pde, newpde); + else + pde_store(pde, newpde); /* * Invalidate a stale recursive mapping of the page table page. @@ -2977,7 +3094,10 @@ setpte: /* * Map the superpage. */ - pde_store(pde, PG_PS | newpde); + if (workaround_erratum383) + pmap_update_pde(pmap, va, pde, PG_PS | newpde); + else + pde_store(pde, PG_PS | newpde); pmap_pde_promotions++; CTR2(KTR_PMAP, "pmap_promote_pde: success for va %#lx" Modified: user/imp/tbemd/sys/amd64/amd64/trap.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/trap.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/trap.c Mon Apr 12 23:12:38 2010 (r206522) @@ -566,6 +566,14 @@ trap(struct trapframe *frame) frame->tf_gs = _ugssel; goto out; } + if (frame->tf_rip == (long)ld_gsbase) { + frame->tf_rip = (long)gsbase_load_fault; + goto out; + } + if (frame->tf_rip == (long)ld_fsbase) { + frame->tf_rip = (long)fsbase_load_fault; + goto out; + } if (PCPU_GET(curpcb)->pcb_onfault != NULL) { frame->tf_rip = (long)PCPU_GET(curpcb)->pcb_onfault; Modified: user/imp/tbemd/sys/amd64/amd64/vm_machdep.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/vm_machdep.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/amd64/vm_machdep.c Mon Apr 12 23:12:38 2010 (r206522) @@ -439,7 +439,7 @@ cpu_set_upcall_kse(struct thread *td, vo */ cpu_thread_clean(td); -#ifdef COMPAT_IA32 +#ifdef COMPAT_FREEBSD32 if (td->td_proc->p_sysent->sv_flags & SV_ILP32) { /* * Set the trap frame to point at the beginning of the uts @@ -490,7 +490,7 @@ cpu_set_user_tls(struct thread *td, void if ((u_int64_t)tls_base >= VM_MAXUSER_ADDRESS) return (EINVAL); -#ifdef COMPAT_IA32 +#ifdef COMPAT_FREEBSD32 if (td->td_proc->p_sysent->sv_flags & SV_ILP32) { td->td_pcb->pcb_gsbase = (register_t)tls_base; return (0); Modified: user/imp/tbemd/sys/amd64/conf/GENERIC ============================================================================== --- user/imp/tbemd/sys/amd64/conf/GENERIC Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/conf/GENERIC Mon Apr 12 23:12:38 2010 (r206522) @@ -44,8 +44,7 @@ options PROCFS # Process filesystem ( options PSEUDOFS # Pseudo-filesystem framework options GEOM_PART_GPT # GUID Partition Tables. options GEOM_LABEL # Provides labelization -options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty) -options COMPAT_IA32 # Compatible with i386 binaries +options COMPAT_FREEBSD32 # Compatible with i386 binaries options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options COMPAT_FREEBSD6 # Compatible with FreeBSD6 Modified: user/imp/tbemd/sys/amd64/conf/NOTES ============================================================================== --- user/imp/tbemd/sys/amd64/conf/NOTES Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/conf/NOTES Mon Apr 12 23:12:38 2010 (r206522) @@ -483,7 +483,7 @@ options PMAP_SHPGPERPROC=201 #XXX these 32 bit binaries is added. # Enable 32-bit runtime support for FreeBSD/i386 binaries. -options COMPAT_IA32 +options COMPAT_FREEBSD32 # Enable iBCS2 runtime support for SCO and ISC binaries #XXX#options IBCS2 @@ -494,7 +494,7 @@ options COMPAT_IA32 # Enable Linux ABI emulation #XXX#options COMPAT_LINUX -# Enable 32-bit Linux ABI emulation (requires COMPAT_43 and COMPAT_IA32) +# Enable 32-bit Linux ABI emulation (requires COMPAT_43 and COMPAT_FREEBSD32) options COMPAT_LINUX32 # Enable the linux-like proc filesystem support (requires COMPAT_LINUX32 Modified: user/imp/tbemd/sys/amd64/conf/XENHVM ============================================================================== --- user/imp/tbemd/sys/amd64/conf/XENHVM Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/conf/XENHVM Mon Apr 12 23:12:38 2010 (r206522) @@ -45,8 +45,7 @@ options PROCFS # Process filesystem ( options PSEUDOFS # Pseudo-filesystem framework options GEOM_PART_GPT # GUID Partition Tables. options GEOM_LABEL # Provides labelization -options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty) -options COMPAT_IA32 # Compatible with i386 binaries +options COMPAT_FREEBSD32 # Compatible with i386 binaries options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options COMPAT_FREEBSD6 # Compatible with FreeBSD6 Modified: user/imp/tbemd/sys/amd64/ia32/ia32_signal.c ============================================================================== --- user/imp/tbemd/sys/amd64/ia32/ia32_signal.c Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/ia32/ia32_signal.c Mon Apr 12 23:12:38 2010 (r206522) @@ -701,11 +701,7 @@ freebsd32_sigreturn(td, uap) * Clear registers on exec */ void -ia32_setregs(td, entry, stack, ps_strings) - struct thread *td; - u_long entry; - u_long stack; - u_long ps_strings; +ia32_setregs(struct thread *td, struct image_params *imgp, u_long stack) { struct trapframe *regs = td->td_frame; struct pcb *pcb = td->td_pcb; @@ -721,12 +717,12 @@ ia32_setregs(td, entry, stack, ps_string pcb->pcb_initial_fpucw = __INITIAL_FPUCW_I386__; bzero((char *)regs, sizeof(struct trapframe)); - regs->tf_rip = entry; + regs->tf_rip = imgp->entry_addr; regs->tf_rsp = stack; regs->tf_rflags = PSL_USER | (regs->tf_rflags & PSL_T); regs->tf_ss = _udatasel; regs->tf_cs = _ucode32sel; - regs->tf_rbx = ps_strings; + regs->tf_rbx = imgp->ps_strings; regs->tf_ds = _udatasel; regs->tf_es = _udatasel; regs->tf_fs = _ufssel; Modified: user/imp/tbemd/sys/amd64/include/apicvar.h ============================================================================== --- user/imp/tbemd/sys/amd64/include/apicvar.h Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/include/apicvar.h Mon Apr 12 23:12:38 2010 (r206522) @@ -179,7 +179,8 @@ struct apic_enumerator { inthand_t IDTVEC(apic_isr1), IDTVEC(apic_isr2), IDTVEC(apic_isr3), IDTVEC(apic_isr4), IDTVEC(apic_isr5), IDTVEC(apic_isr6), - IDTVEC(apic_isr7), IDTVEC(spuriousint), IDTVEC(timerint); + IDTVEC(apic_isr7), IDTVEC(errorint), IDTVEC(spuriousint), + IDTVEC(timerint); extern vm_paddr_t lapic_paddr; extern int apic_cpuids[]; @@ -211,13 +212,13 @@ void lapic_disable_pmc(void); void lapic_dump(const char *str); int lapic_enable_pmc(void); void lapic_eoi(void); -u_int lapic_error(void); int lapic_id(void); void lapic_init(vm_paddr_t addr); int lapic_intr_pending(u_int vector); void lapic_ipi_raw(register_t icrlo, u_int dest); void lapic_ipi_vectored(u_int vector, int dest); int lapic_ipi_wait(int delay); +void lapic_handle_error(void); void lapic_handle_intr(int vector, struct trapframe *frame); void lapic_handle_timer(struct trapframe *frame); void lapic_reenable_pmc(void); Modified: user/imp/tbemd/sys/amd64/include/elf.h ============================================================================== --- user/imp/tbemd/sys/amd64/include/elf.h Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/include/elf.h Mon Apr 12 23:12:38 2010 (r206522) @@ -42,6 +42,7 @@ #include #define ELF_ARCH EM_X86_64 +#define ELF_ARCH32 EM_386 #define ELF_MACHINE_OK(x) ((x) == EM_X86_64) Modified: user/imp/tbemd/sys/amd64/include/mca.h ============================================================================== --- user/imp/tbemd/sys/amd64/include/mca.h Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/include/mca.h Mon Apr 12 23:12:38 2010 (r206522) @@ -37,6 +37,11 @@ struct mca_record { uint64_t mr_tsc; int mr_apic_id; int mr_bank; + uint64_t mr_mcg_cap; + uint64_t mr_mcg_status; + int mr_cpu_id; + int mr_cpu_vendor_id; + int mr_cpu; }; #ifdef _KERNEL Modified: user/imp/tbemd/sys/amd64/include/md_var.h ============================================================================== --- user/imp/tbemd/sys/amd64/include/md_var.h Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/include/md_var.h Mon Apr 12 23:12:38 2010 (r206522) @@ -61,6 +61,7 @@ extern char sigcode[]; extern int szsigcode; extern uint64_t *vm_page_dump; extern int vm_page_dump_size; +extern int workaround_erratum383; extern int _udatasel; extern int _ucodesel; extern int _ucode32sel; @@ -82,10 +83,14 @@ void ld_ds(void) __asm(__STRING(ld_ds)); void ld_es(void) __asm(__STRING(ld_es)); void ld_fs(void) __asm(__STRING(ld_fs)); void ld_gs(void) __asm(__STRING(ld_gs)); +void ld_fsbase(void) __asm(__STRING(ld_fsbase)); +void ld_gsbase(void) __asm(__STRING(ld_gsbase)); void ds_load_fault(void) __asm(__STRING(ds_load_fault)); void es_load_fault(void) __asm(__STRING(es_load_fault)); void fs_load_fault(void) __asm(__STRING(fs_load_fault)); void gs_load_fault(void) __asm(__STRING(gs_load_fault)); +void fsbase_load_fault(void) __asm(__STRING(fsbase_load_fault)); +void gsbase_load_fault(void) __asm(__STRING(gsbase_load_fault)); void dump_add_page(vm_paddr_t); void dump_drop_page(vm_paddr_t); void initializecpu(void); Modified: user/imp/tbemd/sys/amd64/include/pmc_mdep.h ============================================================================== --- user/imp/tbemd/sys/amd64/include/pmc_mdep.h Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/include/pmc_mdep.h Mon Apr 12 23:12:38 2010 (r206522) @@ -43,17 +43,20 @@ struct pmc_mdep; #include #include #include +#include /* * Intel processors implementing V2 and later of the Intel performance * measurement architecture have PMCs of the following classes: TSC, - * IAF and IAP. + * IAF, IAP, UCF and UCP. */ #define PMC_MDEP_CLASS_INDEX_TSC 0 #define PMC_MDEP_CLASS_INDEX_K8 1 #define PMC_MDEP_CLASS_INDEX_P4 1 #define PMC_MDEP_CLASS_INDEX_IAP 1 #define PMC_MDEP_CLASS_INDEX_IAF 2 +#define PMC_MDEP_CLASS_INDEX_UCP 3 +#define PMC_MDEP_CLASS_INDEX_UCF 4 /* * On the amd64 platform we support the following PMCs. @@ -63,12 +66,16 @@ struct pmc_mdep; * PIV Intel P4/HTT and P4/EMT64 * IAP Intel Core/Core2/Atom CPUs in 64 bits mode. * IAF Intel fixed-function PMCs in Core2 and later CPUs. + * UCP Intel Uncore programmable PMCs. + * UCF Intel Uncore fixed-function PMCs. */ union pmc_md_op_pmcallocate { struct pmc_md_amd_op_pmcallocate pm_amd; struct pmc_md_iaf_op_pmcallocate pm_iaf; struct pmc_md_iap_op_pmcallocate pm_iap; + struct pmc_md_ucf_op_pmcallocate pm_ucf; + struct pmc_md_ucp_op_pmcallocate pm_ucp; struct pmc_md_p4_op_pmcallocate pm_p4; uint64_t __pad[4]; }; @@ -83,6 +90,8 @@ union pmc_md_pmc { struct pmc_md_amd_pmc pm_amd; struct pmc_md_iaf_pmc pm_iaf; struct pmc_md_iap_pmc pm_iap; + struct pmc_md_ucf_pmc pm_ucf; + struct pmc_md_ucp_pmc pm_ucp; struct pmc_md_p4_pmc pm_p4; }; Modified: user/imp/tbemd/sys/amd64/include/reg.h ============================================================================== --- user/imp/tbemd/sys/amd64/include/reg.h Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/include/reg.h Mon Apr 12 23:12:38 2010 (r206522) @@ -37,6 +37,10 @@ #ifndef _MACHINE_REG_H_ #define _MACHINE_REG_H_ +#if defined(_KERNEL) && !defined(_STANDALONE) +#include "opt_compat.h" +#endif + /* * Register set accessible via /proc/$pid/regs and PT_{SET,GET}REGS. */ @@ -105,7 +109,7 @@ struct dbreg { #define DBREG_DR7_EXEC 0x00 /* break on execute */ #define DBREG_DR7_WRONLY 0x01 /* break on write */ #define DBREG_DR7_RDWR 0x03 /* break on read or write */ -#define DBREG_DR7_MASK(i) ((u_long)0xf << ((i) * 4 + 16) | 0x3 << (i) * 2) +#define DBREG_DR7_MASK(i) (0xful << ((i) * 4 + 16) | 0x3 << (i) * 2) #define DBREG_DR7_SET(i, len, access, enable) \ ((u_long)((len) << 2 | (access)) << ((i) * 4 + 16) | (enable) << (i) * 2) #define DBREG_DR7_GD 0x2000 @@ -116,6 +120,11 @@ struct dbreg { #define DBREG_DRX(d,x) ((d)->dr[(x)]) /* reference dr0 - dr15 by register number */ +#ifdef COMPAT_FREEBSD32 +#include +#include +#endif + #ifdef _KERNEL /* * XXX these interfaces are MI, so they should be declared in a MI place. Modified: user/imp/tbemd/sys/amd64/include/specialreg.h ============================================================================== --- user/imp/tbemd/sys/amd64/include/specialreg.h Mon Apr 12 23:11:20 2010 (r206521) +++ user/imp/tbemd/sys/amd64/include/specialreg.h Mon Apr 12 23:12:38 2010 (r206522) @@ -267,6 +267,7 @@ #define MSR_MTRR16kBase 0x258 #define MSR_MTRR4kBase 0x268 #define MSR_PAT 0x277 +#define MSR_MC0_CTL2 0x280 #define MSR_MTRRdefType 0x2ff #define MSR_MC0_CTL 0x400 #define MSR_MC0_STATUS 0x401 @@ -320,16 +321,16 @@ #define MTRR_N64K 8 /* numbers of fixed-size entries */ #define MTRR_N16K 16 #define MTRR_N4K 64 -#define MTRR_CAP_WC 0x0000000000000400UL -#define MTRR_CAP_FIXED 0x0000000000000100UL -#define MTRR_CAP_VCNT 0x00000000000000ffUL -#define MTRR_DEF_ENABLE 0x0000000000000800UL -#define MTRR_DEF_FIXED_ENABLE 0x0000000000000400UL -#define MTRR_DEF_TYPE 0x00000000000000ffUL -#define MTRR_PHYSBASE_PHYSBASE 0x000ffffffffff000UL -#define MTRR_PHYSBASE_TYPE 0x00000000000000ffUL -#define MTRR_PHYSMASK_PHYSMASK 0x000ffffffffff000UL -#define MTRR_PHYSMASK_VALID 0x0000000000000800UL +#define MTRR_CAP_WC 0x0000000000000400 +#define MTRR_CAP_FIXED 0x0000000000000100 +#define MTRR_CAP_VCNT 0x00000000000000ff +#define MTRR_DEF_ENABLE 0x0000000000000800 +#define MTRR_DEF_FIXED_ENABLE 0x0000000000000400 +#define MTRR_DEF_TYPE 0x00000000000000ff +#define MTRR_PHYSBASE_PHYSBASE 0x000ffffffffff000 +#define MTRR_PHYSBASE_TYPE 0x00000000000000ff +#define MTRR_PHYSMASK_PHYSMASK 0x000ffffffffff000 +#define MTRR_PHYSMASK_VALID 0x0000000000000800 /* Performance Control Register (5x86 only). */ #define PCR0 0x20 @@ -352,27 +353,38 @@ #define MCG_CAP_COUNT 0x000000ff #define MCG_CAP_CTL_P 0x00000100 #define MCG_CAP_EXT_P 0x00000200 +#define MCG_CAP_CMCI_P 0x00000400 #define MCG_CAP_TES_P 0x00000800 #define MCG_CAP_EXT_CNT 0x00ff0000 +#define MCG_CAP_SER_P 0x01000000 #define MCG_STATUS_RIPV 0x00000001 #define MCG_STATUS_EIPV 0x00000002 #define MCG_STATUS_MCIP 0x00000004 -#define MCG_CTL_ENABLE 0xffffffffffffffffUL -#define MCG_CTL_DISABLE 0x0000000000000000UL +#define MCG_CTL_ENABLE 0xffffffffffffffff +#define MCG_CTL_DISABLE 0x0000000000000000 #define MSR_MC_CTL(x) (MSR_MC0_CTL + (x) * 4) #define MSR_MC_STATUS(x) (MSR_MC0_STATUS + (x) * 4) #define MSR_MC_ADDR(x) (MSR_MC0_ADDR + (x) * 4) #define MSR_MC_MISC(x) (MSR_MC0_MISC + (x) * 4) -#define MC_STATUS_MCA_ERROR 0x000000000000ffffUL -#define MC_STATUS_MODEL_ERROR 0x00000000ffff0000UL -#define MC_STATUS_OTHER_INFO 0x01ffffff00000000UL -#define MC_STATUS_PCC 0x0200000000000000UL -#define MC_STATUS_ADDRV 0x0400000000000000UL -#define MC_STATUS_MISCV 0x0800000000000000UL -#define MC_STATUS_EN 0x1000000000000000UL -#define MC_STATUS_UC 0x2000000000000000UL -#define MC_STATUS_OVER 0x4000000000000000UL -#define MC_STATUS_VAL 0x8000000000000000UL +#define MSR_MC_CTL2(x) (MSR_MC0_CTL2 + (x)) /* If MCG_CAP_CMCI_P */ +#define MC_STATUS_MCA_ERROR 0x000000000000ffff +#define MC_STATUS_MODEL_ERROR 0x00000000ffff0000 +#define MC_STATUS_OTHER_INFO 0x01ffffff00000000 +#define MC_STATUS_COR_COUNT 0x001fffc000000000 /* If MCG_CAP_TES_P */ +#define MC_STATUS_TES_STATUS 0x0060000000000000 /* If MCG_CAP_TES_P */ +#define MC_STATUS_AR 0x0080000000000000 /* If MCG_CAP_CMCI_P */ +#define MC_STATUS_S 0x0100000000000000 /* If MCG_CAP_CMCI_P */ +#define MC_STATUS_PCC 0x0200000000000000 +#define MC_STATUS_ADDRV 0x0400000000000000 +#define MC_STATUS_MISCV 0x0800000000000000 +#define MC_STATUS_EN 0x1000000000000000 +#define MC_STATUS_UC 0x2000000000000000 +#define MC_STATUS_OVER 0x4000000000000000 +#define MC_STATUS_VAL 0x8000000000000000 +#define MC_MISC_RA_LSB 0x000000000000003f /* If MCG_CAP_SER_P */ +#define MC_MISC_ADDRESS_MODE 0x00000000000001c0 /* If MCG_CAP_SER_P */ +#define MC_CTL2_THRESHOLD 0x0000000000003fff +#define MC_CTL2_CMCI_EN 0x0000000040000000 /* * The following four 3-byte registers control the non-cacheable regions. @@ -494,6 +506,7 @@ #define MSR_TOP_MEM 0xc001001a /* boundary for ram below 4G */ #define MSR_TOP_MEM2 0xc001001d /* boundary for ram above 4G */ #define MSR_K8_UCODE_UPDATE 0xc0010020 /* update microcode */ +#define MSR_MC0_CTL_MASK 0xc0010044 /* VIA ACE crypto featureset: for via_feature_rng */ #define VIA_HAS_RNG 1 /* cpu has RNG */ Modified: user/imp/tbemd/sys/amd64/linux32/linux.h ============================================================================== --- user/imp/tbemd/sys/amd64/linux32/linux.h Mon Apr 12 23:11:20 2010 (r206521) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:14:06 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E9892106564A; Mon, 12 Apr 2010 23:14:06 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D6C0A8FC08; Mon, 12 Apr 2010 23:14:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNE6Ul070023; Mon, 12 Apr 2010 23:14:06 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNE6sZ070019; Mon, 12 Apr 2010 23:14:06 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122314.o3CNE6sZ070019@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:14:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206523 - in user/imp/tbemd/sys: net net80211 netgraph netgraph/netflow netinet netinet/ipfw netinet/ipfw/test netinet6 netipsec netncp netsmb nfsserver X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:14:07 -0000 Author: imp Date: Mon Apr 12 23:14:06 2010 New Revision: 206523 URL: http://svn.freebsd.org/changeset/base/206523 Log: merge from head, part 8 of many Added: user/imp/tbemd/sys/net80211/ieee80211_ratectl.c - copied unchanged from r206514, head/sys/net80211/ieee80211_ratectl.c user/imp/tbemd/sys/net80211/ieee80211_ratectl.h - copied unchanged from r206514, head/sys/net80211/ieee80211_ratectl.h user/imp/tbemd/sys/netinet/ipfw/dn_sched_prio.c - copied unchanged from r206514, head/sys/netinet/ipfw/dn_sched_prio.c Modified: user/imp/tbemd/sys/net/bpf.c user/imp/tbemd/sys/net/flowtable.c user/imp/tbemd/sys/net/flowtable.h user/imp/tbemd/sys/net/if.c user/imp/tbemd/sys/net/if.h user/imp/tbemd/sys/net/if_clone.c user/imp/tbemd/sys/net/if_epair.c user/imp/tbemd/sys/net/if_lagg.c user/imp/tbemd/sys/net/if_llatbl.c user/imp/tbemd/sys/net/if_llatbl.h user/imp/tbemd/sys/net/if_media.h user/imp/tbemd/sys/net/if_tap.c user/imp/tbemd/sys/net/if_tun.c user/imp/tbemd/sys/net/if_var.h user/imp/tbemd/sys/net/if_vlan.c user/imp/tbemd/sys/net/radix.c user/imp/tbemd/sys/net/radix.h user/imp/tbemd/sys/net/radix_mpath.c user/imp/tbemd/sys/net/route.c user/imp/tbemd/sys/net/route.h user/imp/tbemd/sys/net/vnet.c user/imp/tbemd/sys/net/vnet.h user/imp/tbemd/sys/net80211/ieee80211.c user/imp/tbemd/sys/net80211/ieee80211_adhoc.c user/imp/tbemd/sys/net80211/ieee80211_amrr.c user/imp/tbemd/sys/net80211/ieee80211_amrr.h user/imp/tbemd/sys/net80211/ieee80211_crypto_ccmp.c user/imp/tbemd/sys/net80211/ieee80211_crypto_tkip.c user/imp/tbemd/sys/net80211/ieee80211_freebsd.h user/imp/tbemd/sys/net80211/ieee80211_hostap.c user/imp/tbemd/sys/net80211/ieee80211_ht.c user/imp/tbemd/sys/net80211/ieee80211_input.c user/imp/tbemd/sys/net80211/ieee80211_ioctl.c user/imp/tbemd/sys/net80211/ieee80211_mesh.c user/imp/tbemd/sys/net80211/ieee80211_node.c user/imp/tbemd/sys/net80211/ieee80211_node.h user/imp/tbemd/sys/net80211/ieee80211_proto.c user/imp/tbemd/sys/net80211/ieee80211_rssadapt.c user/imp/tbemd/sys/net80211/ieee80211_rssadapt.h user/imp/tbemd/sys/net80211/ieee80211_sta.c user/imp/tbemd/sys/net80211/ieee80211_tdma.c user/imp/tbemd/sys/net80211/ieee80211_var.h user/imp/tbemd/sys/netgraph/netflow/ng_netflow.c user/imp/tbemd/sys/netgraph/ng_deflate.c user/imp/tbemd/sys/netgraph/ng_ksocket.c user/imp/tbemd/sys/netgraph/ng_l2tp.c user/imp/tbemd/sys/netgraph/ng_mppc.c user/imp/tbemd/sys/netgraph/ng_pipe.c user/imp/tbemd/sys/netgraph/ng_pipe.h user/imp/tbemd/sys/netgraph/ng_ppp.c user/imp/tbemd/sys/netgraph/ng_pptpgre.c user/imp/tbemd/sys/netgraph/ng_socket.c user/imp/tbemd/sys/netgraph/ng_socketvar.h user/imp/tbemd/sys/netgraph/ng_tcpmss.c user/imp/tbemd/sys/netinet/if_ether.c user/imp/tbemd/sys/netinet/in.c user/imp/tbemd/sys/netinet/in.h user/imp/tbemd/sys/netinet/in_mcast.c user/imp/tbemd/sys/netinet/in_pcb.c user/imp/tbemd/sys/netinet/in_pcb.h user/imp/tbemd/sys/netinet/ip_divert.c user/imp/tbemd/sys/netinet/ip_fw.h user/imp/tbemd/sys/netinet/ip_input.c user/imp/tbemd/sys/netinet/ip_ipsec.c user/imp/tbemd/sys/netinet/ip_output.c user/imp/tbemd/sys/netinet/ipfw/dn_heap.c user/imp/tbemd/sys/netinet/ipfw/dn_heap.h user/imp/tbemd/sys/netinet/ipfw/dn_sched.h user/imp/tbemd/sys/netinet/ipfw/ip_dn_glue.c user/imp/tbemd/sys/netinet/ipfw/ip_dn_io.c user/imp/tbemd/sys/netinet/ipfw/ip_dn_private.h user/imp/tbemd/sys/netinet/ipfw/ip_dummynet.c user/imp/tbemd/sys/netinet/ipfw/ip_fw2.c user/imp/tbemd/sys/netinet/ipfw/ip_fw_dynamic.c user/imp/tbemd/sys/netinet/ipfw/ip_fw_log.c user/imp/tbemd/sys/netinet/ipfw/ip_fw_private.h user/imp/tbemd/sys/netinet/ipfw/ip_fw_sockopt.c user/imp/tbemd/sys/netinet/ipfw/ip_fw_table.c user/imp/tbemd/sys/netinet/ipfw/test/Makefile user/imp/tbemd/sys/netinet/ipfw/test/dn_test.h user/imp/tbemd/sys/netinet/ipfw/test/mylist.h user/imp/tbemd/sys/netinet/ipfw/test/test_dn_sched.c user/imp/tbemd/sys/netinet/raw_ip.c user/imp/tbemd/sys/netinet/sctp_asconf.c user/imp/tbemd/sys/netinet/sctp_constants.h user/imp/tbemd/sys/netinet/sctp_crc32.c user/imp/tbemd/sys/netinet/sctp_crc32.h user/imp/tbemd/sys/netinet/sctp_indata.c user/imp/tbemd/sys/netinet/sctp_indata.h user/imp/tbemd/sys/netinet/sctp_input.c user/imp/tbemd/sys/netinet/sctp_output.c user/imp/tbemd/sys/netinet/sctp_output.h user/imp/tbemd/sys/netinet/sctp_pcb.c user/imp/tbemd/sys/netinet/sctp_pcb.h user/imp/tbemd/sys/netinet/sctp_structs.h user/imp/tbemd/sys/netinet/sctp_sysctl.c user/imp/tbemd/sys/netinet/sctp_uio.h user/imp/tbemd/sys/netinet/sctp_usrreq.c user/imp/tbemd/sys/netinet/sctp_var.h user/imp/tbemd/sys/netinet/sctputil.c user/imp/tbemd/sys/netinet/sctputil.h user/imp/tbemd/sys/netinet/tcp_input.c user/imp/tbemd/sys/netinet/tcp_reass.c user/imp/tbemd/sys/netinet/tcp_subr.c user/imp/tbemd/sys/netinet/tcp_timer.c user/imp/tbemd/sys/netinet/tcp_timewait.c user/imp/tbemd/sys/netinet/tcp_usrreq.c user/imp/tbemd/sys/netinet/tcp_var.h user/imp/tbemd/sys/netinet/udp_usrreq.c user/imp/tbemd/sys/netinet6/in6.c user/imp/tbemd/sys/netinet6/ip6_output.c user/imp/tbemd/sys/netinet6/mld6.c user/imp/tbemd/sys/netinet6/nd6.c user/imp/tbemd/sys/netinet6/sctp6_usrreq.c user/imp/tbemd/sys/netipsec/ipsec.c user/imp/tbemd/sys/netipsec/key.c user/imp/tbemd/sys/netncp/ncp_conn.c user/imp/tbemd/sys/netncp/ncp_conn.h user/imp/tbemd/sys/netncp/ncp_file.h user/imp/tbemd/sys/netncp/ncp_lib.h user/imp/tbemd/sys/netncp/ncp_login.c user/imp/tbemd/sys/netncp/ncp_ncp.c user/imp/tbemd/sys/netncp/ncp_ncp.h user/imp/tbemd/sys/netncp/ncp_nls.c user/imp/tbemd/sys/netncp/ncp_nls.h user/imp/tbemd/sys/netncp/ncp_rcfile.h user/imp/tbemd/sys/netncp/ncp_rq.c user/imp/tbemd/sys/netncp/ncp_rq.h user/imp/tbemd/sys/netncp/ncp_sock.c user/imp/tbemd/sys/netncp/ncp_sock.h user/imp/tbemd/sys/netncp/ncp_subr.c user/imp/tbemd/sys/netncp/ncp_subr.h user/imp/tbemd/sys/netncp/ncp_user.h user/imp/tbemd/sys/netsmb/netbios.h user/imp/tbemd/sys/netsmb/smb.h user/imp/tbemd/sys/netsmb/smb_conn.c user/imp/tbemd/sys/netsmb/smb_conn.h user/imp/tbemd/sys/netsmb/smb_dev.c user/imp/tbemd/sys/netsmb/smb_dev.h user/imp/tbemd/sys/netsmb/smb_iod.c user/imp/tbemd/sys/netsmb/smb_rq.c user/imp/tbemd/sys/netsmb/smb_rq.h user/imp/tbemd/sys/netsmb/smb_smb.c user/imp/tbemd/sys/netsmb/smb_subr.c user/imp/tbemd/sys/netsmb/smb_subr.h user/imp/tbemd/sys/netsmb/smb_tran.h user/imp/tbemd/sys/netsmb/smb_trantcp.c user/imp/tbemd/sys/netsmb/smb_trantcp.h user/imp/tbemd/sys/netsmb/smb_usr.c user/imp/tbemd/sys/nfsserver/nfs_srvsubs.c Modified: user/imp/tbemd/sys/net/bpf.c ============================================================================== --- user/imp/tbemd/sys/net/bpf.c Mon Apr 12 23:12:38 2010 (r206522) +++ user/imp/tbemd/sys/net/bpf.c Mon Apr 12 23:14:06 2010 (r206523) @@ -614,6 +614,7 @@ bpf_dtor(void *data) mac_bpfdesc_destroy(d); #endif /* MAC */ knlist_destroy(&d->bd_sel.si_note); + callout_drain(&d->bd_callout); bpf_freed(d); free(d, M_BPF); } @@ -651,7 +652,7 @@ bpfopen(struct cdev *dev, int flags, int mac_bpfdesc_create(td->td_ucred, d); #endif mtx_init(&d->bd_mtx, devtoname(dev), "bpf cdev lock", MTX_DEF); - callout_init(&d->bd_callout, CALLOUT_MPSAFE); + callout_init_mtx(&d->bd_callout, &d->bd_mtx, 0); knlist_init_mtx(&d->bd_sel.si_note, &d->bd_mtx); return (0); @@ -807,13 +808,15 @@ bpf_timed_out(void *arg) { struct bpf_d *d = (struct bpf_d *)arg; - BPFD_LOCK(d); + BPFD_LOCK_ASSERT(d); + + if (callout_pending(&d->bd_callout) || !callout_active(&d->bd_callout)) + return; if (d->bd_state == BPF_WAITING) { d->bd_state = BPF_TIMED_OUT; if (d->bd_slen != 0) bpf_wakeup(d); } - BPFD_UNLOCK(d); } static int @@ -1577,8 +1580,7 @@ filt_bpfread(struct knote *kn, long hint kn->kn_data = d->bd_slen; if (d->bd_hbuf) kn->kn_data += d->bd_hlen; - } - else if (d->bd_rtout > 0 && d->bd_state == BPF_IDLE) { + } else if (d->bd_rtout > 0 && d->bd_state == BPF_IDLE) { callout_reset(&d->bd_callout, d->bd_rtout, bpf_timed_out, d); d->bd_state = BPF_WAITING; @@ -1865,13 +1867,14 @@ bpf_freed(struct bpf_d *d) * free. */ bpf_free(d); - if (d->bd_rfilter) { + if (d->bd_rfilter != NULL) { free((caddr_t)d->bd_rfilter, M_BPF); #ifdef BPF_JITTER - bpf_destroy_jit_filter(d->bd_bfilter); + if (d->bd_bfilter != NULL) + bpf_destroy_jit_filter(d->bd_bfilter); #endif } - if (d->bd_wfilter) + if (d->bd_wfilter != NULL) free((caddr_t)d->bd_wfilter, M_BPF); mtx_destroy(&d->bd_mtx); } Modified: user/imp/tbemd/sys/net/flowtable.c ============================================================================== --- user/imp/tbemd/sys/net/flowtable.c Mon Apr 12 23:12:38 2010 (r206522) +++ user/imp/tbemd/sys/net/flowtable.c Mon Apr 12 23:14:06 2010 (r206523) @@ -1,6 +1,6 @@ /************************************************************************** -Copyright (c) 2008-2009, BitGravity Inc. +Copyright (c) 2008-2010, BitGravity Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -30,6 +30,8 @@ POSSIBILITY OF SUCH DAMAGE. #include "opt_route.h" #include "opt_mpath.h" #include "opt_ddb.h" +#include "opt_inet.h" +#include "opt_inet6.h" #include __FBSDID("$FreeBSD$"); @@ -45,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -63,6 +66,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef INET6 +#include +#endif #include #include #include @@ -140,31 +146,42 @@ union flentryp { struct flentry **pcpu[MAXCPU]; }; +struct flowtable_stats { + uint64_t ft_collisions; + uint64_t ft_allocated; + uint64_t ft_misses; + uint64_t ft_max_depth; + uint64_t ft_free_checks; + uint64_t ft_frees; + uint64_t ft_hits; + uint64_t ft_lookups; +} __aligned(CACHE_LINE_SIZE); + struct flowtable { + struct flowtable_stats ft_stats[MAXCPU]; int ft_size; int ft_lock_count; uint32_t ft_flags; - uint32_t ft_collisions; - uint32_t ft_allocated; - uint32_t ft_misses; - uint64_t ft_hits; - - uint32_t ft_udp_idle; - uint32_t ft_fin_wait_idle; - uint32_t ft_syn_idle; - uint32_t ft_tcp_idle; - + char *ft_name; fl_lock_t *ft_lock; fl_lock_t *ft_unlock; fl_rtalloc_t *ft_rtalloc; + /* + * XXX need to pad out + */ struct mtx *ft_locks; - - union flentryp ft_table; bitstr_t *ft_masks[MAXCPU]; bitstr_t *ft_tmpmask; struct flowtable *ft_next; -}; + + uint32_t ft_count __aligned(CACHE_LINE_SIZE); + uint32_t ft_udp_idle __aligned(CACHE_LINE_SIZE); + uint32_t ft_fin_wait_idle; + uint32_t ft_syn_idle; + uint32_t ft_tcp_idle; + boolean_t ft_full; +} __aligned(CACHE_LINE_SIZE); static struct proc *flowcleanerproc; static VNET_DEFINE(struct flowtable *, flow_list_head); @@ -177,16 +194,30 @@ static VNET_DEFINE(uma_zone_t, flow_ipv6 #define V_flow_ipv4_zone VNET(flow_ipv4_zone) #define V_flow_ipv6_zone VNET(flow_ipv6_zone) + static struct cv flowclean_cv; static struct mtx flowclean_lock; static uint32_t flowclean_cycles; +static uint32_t flowclean_freq; + +#ifdef FLOWTABLE_DEBUG +#define FLDPRINTF(ft, flags, fmt, ...) \ +do { \ + if ((ft)->ft_flags & (flags)) \ + printf((fmt), __VA_ARGS__); \ +} while (0); \ + +#else +#define FLDPRINTF(ft, flags, fmt, ...) + +#endif + /* * TODO: * - Make flowtable stats per-cpu, aggregated at sysctl call time, * to avoid extra cache evictions caused by incrementing a shared * counter - * - add IPv6 support to flow lookup * - add sysctls to resize && flush flow tables * - Add per flowtable sysctls for statistics and configuring timeouts * - add saturation counter to rtentry to support per-packet load-balancing @@ -200,29 +231,15 @@ static uint32_t flowclean_cycles; */ VNET_DEFINE(int, flowtable_enable) = 1; static VNET_DEFINE(int, flowtable_debug); -static VNET_DEFINE(int, flowtable_hits); -static VNET_DEFINE(int, flowtable_lookups); -static VNET_DEFINE(int, flowtable_misses); -static VNET_DEFINE(int, flowtable_frees); -static VNET_DEFINE(int, flowtable_free_checks); -static VNET_DEFINE(int, flowtable_max_depth); -static VNET_DEFINE(int, flowtable_collisions); static VNET_DEFINE(int, flowtable_syn_expire) = SYN_IDLE; static VNET_DEFINE(int, flowtable_udp_expire) = UDP_IDLE; static VNET_DEFINE(int, flowtable_fin_wait_expire) = FIN_WAIT_IDLE; static VNET_DEFINE(int, flowtable_tcp_expire) = TCP_IDLE; -static VNET_DEFINE(int, flowtable_nmbflows) = 4096; +static VNET_DEFINE(int, flowtable_nmbflows); static VNET_DEFINE(int, flowtable_ready) = 0; #define V_flowtable_enable VNET(flowtable_enable) #define V_flowtable_debug VNET(flowtable_debug) -#define V_flowtable_hits VNET(flowtable_hits) -#define V_flowtable_lookups VNET(flowtable_lookups) -#define V_flowtable_misses VNET(flowtable_misses) -#define V_flowtable_frees VNET(flowtable_frees) -#define V_flowtable_free_checks VNET(flowtable_free_checks) -#define V_flowtable_max_depth VNET(flowtable_max_depth) -#define V_flowtable_collisions VNET(flowtable_collisions) #define V_flowtable_syn_expire VNET(flowtable_syn_expire) #define V_flowtable_udp_expire VNET(flowtable_udp_expire) #define V_flowtable_fin_wait_expire VNET(flowtable_fin_wait_expire) @@ -235,20 +252,6 @@ SYSCTL_VNET_INT(_net_inet_flowtable, OID &VNET_NAME(flowtable_debug), 0, "print debug info."); SYSCTL_VNET_INT(_net_inet_flowtable, OID_AUTO, enable, CTLFLAG_RW, &VNET_NAME(flowtable_enable), 0, "enable flowtable caching."); -SYSCTL_VNET_INT(_net_inet_flowtable, OID_AUTO, hits, CTLFLAG_RD, - &VNET_NAME(flowtable_hits), 0, "# flowtable hits."); -SYSCTL_VNET_INT(_net_inet_flowtable, OID_AUTO, lookups, CTLFLAG_RD, - &VNET_NAME(flowtable_lookups), 0, "# flowtable lookups."); -SYSCTL_VNET_INT(_net_inet_flowtable, OID_AUTO, misses, CTLFLAG_RD, - &VNET_NAME(flowtable_misses), 0, "#flowtable misses."); -SYSCTL_VNET_INT(_net_inet_flowtable, OID_AUTO, frees, CTLFLAG_RD, - &VNET_NAME(flowtable_frees), 0, "#flows freed."); -SYSCTL_VNET_INT(_net_inet_flowtable, OID_AUTO, free_checks, CTLFLAG_RD, - &VNET_NAME(flowtable_free_checks), 0, "#flows free checks."); -SYSCTL_VNET_INT(_net_inet_flowtable, OID_AUTO, max_depth, CTLFLAG_RD, - &VNET_NAME(flowtable_max_depth), 0, "max collision list length."); -SYSCTL_VNET_INT(_net_inet_flowtable, OID_AUTO, collisions, CTLFLAG_RD, - &VNET_NAME(flowtable_collisions), 0, "#flowtable collisions."); /* * XXX This does not end up updating timeouts at runtime @@ -298,6 +301,77 @@ SYSCTL_VNET_PROC(_net_inet_flowtable, OI CTLTYPE_INT|CTLFLAG_RW, 0, 0, sysctl_nmbflows, "IU", "Maximum number of flows allowed"); + + +#define FS_PRINT(sb, field) sbuf_printf((sb), "\t%s: %jd\n", #field, fs->ft_##field) + +static void +fs_print(struct sbuf *sb, struct flowtable_stats *fs) +{ + + FS_PRINT(sb, collisions); + FS_PRINT(sb, allocated); + FS_PRINT(sb, misses); + FS_PRINT(sb, max_depth); + FS_PRINT(sb, free_checks); + FS_PRINT(sb, frees); + FS_PRINT(sb, hits); + FS_PRINT(sb, lookups); +} + +static void +flowtable_show_stats(struct sbuf *sb, struct flowtable *ft) +{ + int i; + struct flowtable_stats fs, *pfs; + + if (ft->ft_flags & FL_PCPU) { + bzero(&fs, sizeof(fs)); + pfs = &fs; + for (i = 0; i <= mp_maxid; i++) { + if (CPU_ABSENT(i)) + continue; + pfs->ft_collisions += ft->ft_stats[i].ft_collisions; + pfs->ft_allocated += ft->ft_stats[i].ft_allocated; + pfs->ft_misses += ft->ft_stats[i].ft_misses; + pfs->ft_free_checks += ft->ft_stats[i].ft_free_checks; + pfs->ft_frees += ft->ft_stats[i].ft_frees; + pfs->ft_hits += ft->ft_stats[i].ft_hits; + pfs->ft_lookups += ft->ft_stats[i].ft_lookups; + if (ft->ft_stats[i].ft_max_depth > pfs->ft_max_depth) + pfs->ft_max_depth = ft->ft_stats[i].ft_max_depth; + } + } else { + pfs = &ft->ft_stats[0]; + } + fs_print(sb, pfs); +} + +static int +sysctl_flowtable_stats(SYSCTL_HANDLER_ARGS) +{ + struct flowtable *ft; + struct sbuf *sb; + int error; + + sb = sbuf_new(NULL, NULL, 64*1024, SBUF_FIXEDLEN); + + ft = V_flow_list_head; + while (ft != NULL) { + sbuf_printf(sb, "\ntable name: %s\n", ft->ft_name); + flowtable_show_stats(sb, ft); + ft = ft->ft_next; + } + sbuf_finish(sb); + error = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1); + sbuf_delete(sb); + + return (error); +} +SYSCTL_VNET_PROC(_net_inet_flowtable, OID_AUTO, stats, CTLTYPE_STRING|CTLFLAG_RD, + NULL, 0, sysctl_flowtable_stats, "A", "flowtable statistics"); + + #ifndef RADIX_MPATH static void in_rtalloc_ign_wrapper(struct route *ro, uint32_t hash, u_int fibnum) @@ -342,52 +416,122 @@ flowtable_pcpu_unlock(struct flowtable * #define FL_ENTRY_LOCK(table, hash) (table)->ft_lock((table), (hash)) #define FL_ENTRY_UNLOCK(table, hash) (table)->ft_unlock((table), (hash)) -#define FL_STALE (1<<8) -#define FL_IPV6 (1<<9) +#define FL_STALE (1<<8) +#define FL_IPV6 (1<<9) +#define FL_OVERWRITE (1<<10) -static uint32_t -ipv4_flow_lookup_hash_internal(struct mbuf *m, struct route *ro, - uint32_t *key, uint16_t *flags, uint8_t *protop) +void +flow_invalidate(struct flentry *fle) { - uint16_t sport = 0, dport = 0; - struct ip *ip = NULL; - uint8_t proto = 0; + + fle->f_flags |= FL_STALE; +} + +static __inline int +proto_to_flags(uint8_t proto) +{ + int flag; + + switch (proto) { + case IPPROTO_TCP: + flag = FL_TCP; + break; + case IPPROTO_SCTP: + flag = FL_SCTP; + break; + case IPPROTO_UDP: + flag = FL_UDP; + break; + default: + flag = 0; + break; + } + + return (flag); +} + +static __inline int +flags_to_proto(int flags) +{ + int proto, protoflags; + + protoflags = flags & (FL_TCP|FL_SCTP|FL_UDP); + switch (protoflags) { + case FL_TCP: + proto = IPPROTO_TCP; + break; + case FL_SCTP: + proto = IPPROTO_SCTP; + break; + case FL_UDP: + proto = IPPROTO_UDP; + break; + default: + proto = 0; + break; + } + return (proto); +} + +#ifdef INET +#ifdef FLOWTABLE_DEBUG +static void +ipv4_flow_print_tuple(int flags, int proto, struct sockaddr_in *ssin, + struct sockaddr_in *dsin) +{ + char saddr[4*sizeof "123"], daddr[4*sizeof "123"]; + + if (flags & FL_HASH_ALL) { + inet_ntoa_r(ssin->sin_addr, saddr); + inet_ntoa_r(dsin->sin_addr, daddr); + printf("proto=%d %s:%d->%s:%d\n", + proto, saddr, ntohs(ssin->sin_port), daddr, + ntohs(dsin->sin_port)); + } else { + inet_ntoa_r(*(struct in_addr *) &dsin->sin_addr, daddr); + printf("proto=%d %s\n", proto, daddr); + } + +} +#endif + +static int +ipv4_mbuf_demarshal(struct flowtable *ft, struct mbuf *m, + struct sockaddr_in *ssin, struct sockaddr_in *dsin, uint16_t *flags) +{ + struct ip *ip; + uint8_t proto; int iphlen; - uint32_t hash; - struct sockaddr_in *sin; struct tcphdr *th; struct udphdr *uh; struct sctphdr *sh; + uint16_t sport, dport; - if ((V_flowtable_enable == 0) || (V_flowtable_ready == 0)) - return (0); + proto = sport = dport = 0; + ip = mtod(m, struct ip *); + dsin->sin_family = AF_INET; + dsin->sin_len = sizeof(*dsin); + dsin->sin_addr = ip->ip_dst; + ssin->sin_family = AF_INET; + ssin->sin_len = sizeof(*ssin); + ssin->sin_addr = ip->ip_src; - key[1] = key[0] = 0; - sin = (struct sockaddr_in *)&ro->ro_dst; - if (m != NULL) { - ip = mtod(m, struct ip *); - sin->sin_family = AF_INET; - sin->sin_len = sizeof(*sin); - sin->sin_addr = ip->ip_dst; - } else - *flags &= ~FL_HASH_PORTS; - - key[2] = sin->sin_addr.s_addr; - - if ((*flags & FL_HASH_PORTS) == 0) + proto = ip->ip_p; + if ((*flags & FL_HASH_ALL) == 0) { + FLDPRINTF(ft, FL_DEBUG_ALL, "skip port check flags=0x%x ", + *flags); goto skipports; + } - proto = ip->ip_p; iphlen = ip->ip_hl << 2; /* XXX options? */ - key[1] = ip->ip_src.s_addr; - + switch (proto) { case IPPROTO_TCP: th = (struct tcphdr *)((caddr_t)ip + iphlen); - sport = ntohs(th->th_sport); - dport = ntohs(th->th_dport); - *flags |= th->th_flags; - if (*flags & TH_RST) + sport = th->th_sport; + dport = th->th_dport; + if ((*flags & FL_HASH_ALL) && + (th->th_flags & (TH_RST|TH_FIN))) *flags |= FL_STALE; break; case IPPROTO_UDP: @@ -401,38 +545,292 @@ ipv4_flow_lookup_hash_internal(struct mb dport = sh->dest_port; break; default: - if (*flags & FL_HASH_PORTS) - goto noop; + FLDPRINTF(ft, FL_DEBUG_ALL, "proto=0x%x not supported\n", proto); + return (ENOTSUP); /* no port - hence not a protocol we care about */ break; } - *protop = proto; - /* - * If this is a transmit route cache then - * hash all flows to a given destination to - * the same bucket - */ - if ((*flags & FL_HASH_PORTS) == 0) - proto = sport = dport = 0; +skipports: + *flags |= proto_to_flags(proto); + ssin->sin_port = sport; + dsin->sin_port = dport; + return (0); +} - ((uint16_t *)key)[0] = sport; - ((uint16_t *)key)[1] = dport; +static uint32_t +ipv4_flow_lookup_hash_internal( + struct sockaddr_in *ssin, struct sockaddr_in *dsin, + uint32_t *key, uint16_t flags) +{ + uint16_t sport, dport; + uint8_t proto; + int offset = 0; -skipports: - hash = jenkins_hashword(key, 3, V_flow_hashjitter + proto); - if (m != NULL && (m->m_flags & M_FLOWID) == 0) { - m->m_flags |= M_FLOWID; - m->m_pkthdr.flowid = hash; + if ((V_flowtable_enable == 0) || (V_flowtable_ready == 0)) + return (0); + proto = flags_to_proto(flags); + sport = dport = key[2] = key[1] = key[0] = 0; + if ((ssin != NULL) && (flags & FL_HASH_ALL)) { + key[1] = ssin->sin_addr.s_addr; + sport = ssin->sin_port; + } + if (dsin != NULL) { + key[2] = dsin->sin_addr.s_addr; + dport = dsin->sin_port; + } + if (flags & FL_HASH_ALL) { + ((uint16_t *)key)[0] = sport; + ((uint16_t *)key)[1] = dport; + } else + offset = V_flow_hashjitter + proto; + + return (jenkins_hashword(key, 3, offset)); +} + +static struct flentry * +flowtable_lookup_mbuf4(struct flowtable *ft, struct mbuf *m) +{ + struct sockaddr_storage ssa, dsa; + uint16_t flags; + struct sockaddr_in *dsin, *ssin; + + dsin = (struct sockaddr_in *)&dsa; + ssin = (struct sockaddr_in *)&ssa; + bzero(dsin, sizeof(*dsin)); + bzero(ssin, sizeof(*ssin)); + flags = ft->ft_flags; + if (ipv4_mbuf_demarshal(ft, m, ssin, dsin, &flags) != 0) + return (NULL); + + return (flowtable_lookup(ft, &ssa, &dsa, M_GETFIB(m), flags)); +} + +void +flow_to_route(struct flentry *fle, struct route *ro) +{ + uint32_t *hashkey = NULL; + struct sockaddr_in *sin; + + sin = (struct sockaddr_in *)&ro->ro_dst; + sin->sin_family = AF_INET; + sin->sin_len = sizeof(*sin); + hashkey = ((struct flentry_v4 *)fle)->fl_flow.ipf_key; + sin->sin_addr.s_addr = hashkey[2]; + ro->ro_rt = __DEVOLATILE(struct rtentry *, fle->f_rt); + ro->ro_lle = __DEVOLATILE(struct llentry *, fle->f_lle); +} +#endif /* INET */ + +#ifdef INET6 +/* + * PULLUP_TO(len, p, T) makes sure that len + sizeof(T) is contiguous, + * then it sets p to point at the offset "len" in the mbuf. WARNING: the + * pointer might become stale after other pullups (but we never use it + * this way). + */ +#define PULLUP_TO(_len, p, T) \ +do { \ + int x = (_len) + sizeof(T); \ + if ((m)->m_len < x) { \ + goto receive_failed; \ + } \ + p = (mtod(m, char *) + (_len)); \ +} while (0) + +#define TCP(p) ((struct tcphdr *)(p)) +#define SCTP(p) ((struct sctphdr *)(p)) +#define UDP(p) ((struct udphdr *)(p)) + +static int +ipv6_mbuf_demarshal(struct flowtable *ft, struct mbuf *m, + struct sockaddr_in6 *ssin6, struct sockaddr_in6 *dsin6, uint16_t *flags) +{ + struct ip6_hdr *ip6; + uint8_t proto; + int hlen; + uint16_t src_port, dst_port; + u_short offset; + void *ulp; + + offset = hlen = src_port = dst_port = 0; + ulp = NULL; + ip6 = mtod(m, struct ip6_hdr *); + hlen = sizeof(struct ip6_hdr); + proto = ip6->ip6_nxt; + + if ((*flags & FL_HASH_ALL) == 0) + goto skipports; + + while (ulp == NULL) { + switch (proto) { + case IPPROTO_ICMPV6: + case IPPROTO_OSPFIGP: + case IPPROTO_PIM: + case IPPROTO_CARP: + case IPPROTO_ESP: + case IPPROTO_NONE: + ulp = ip6; + break; + case IPPROTO_TCP: + PULLUP_TO(hlen, ulp, struct tcphdr); + dst_port = TCP(ulp)->th_dport; + src_port = TCP(ulp)->th_sport; + if ((*flags & FL_HASH_ALL) && + (TCP(ulp)->th_flags & (TH_RST|TH_FIN))) + *flags |= FL_STALE; + break; + case IPPROTO_SCTP: + PULLUP_TO(hlen, ulp, struct sctphdr); + src_port = SCTP(ulp)->src_port; + dst_port = SCTP(ulp)->dest_port; + break; + case IPPROTO_UDP: + PULLUP_TO(hlen, ulp, struct udphdr); + dst_port = UDP(ulp)->uh_dport; + src_port = UDP(ulp)->uh_sport; + break; + case IPPROTO_HOPOPTS: /* RFC 2460 */ + PULLUP_TO(hlen, ulp, struct ip6_hbh); + hlen += (((struct ip6_hbh *)ulp)->ip6h_len + 1) << 3; + proto = ((struct ip6_hbh *)ulp)->ip6h_nxt; + ulp = NULL; + break; + case IPPROTO_ROUTING: /* RFC 2460 */ + PULLUP_TO(hlen, ulp, struct ip6_rthdr); + hlen += (((struct ip6_rthdr *)ulp)->ip6r_len + 1) << 3; + proto = ((struct ip6_rthdr *)ulp)->ip6r_nxt; + ulp = NULL; + break; + case IPPROTO_FRAGMENT: /* RFC 2460 */ + PULLUP_TO(hlen, ulp, struct ip6_frag); + hlen += sizeof (struct ip6_frag); + proto = ((struct ip6_frag *)ulp)->ip6f_nxt; + offset = ((struct ip6_frag *)ulp)->ip6f_offlg & + IP6F_OFF_MASK; + ulp = NULL; + break; + case IPPROTO_DSTOPTS: /* RFC 2460 */ + PULLUP_TO(hlen, ulp, struct ip6_hbh); + hlen += (((struct ip6_hbh *)ulp)->ip6h_len + 1) << 3; + proto = ((struct ip6_hbh *)ulp)->ip6h_nxt; + ulp = NULL; + break; + case IPPROTO_AH: /* RFC 2402 */ + PULLUP_TO(hlen, ulp, struct ip6_ext); + hlen += (((struct ip6_ext *)ulp)->ip6e_len + 2) << 2; + proto = ((struct ip6_ext *)ulp)->ip6e_nxt; + ulp = NULL; + break; + default: + PULLUP_TO(hlen, ulp, struct ip6_ext); + break; + } } - return (hash); -noop: - *protop = proto; + if (src_port == 0) { + receive_failed: + return (ENOTSUP); + } + +skipports: + dsin6->sin6_family = AF_INET6; + dsin6->sin6_len = sizeof(*dsin6); + dsin6->sin6_port = dst_port; + memcpy(&dsin6->sin6_addr, &ip6->ip6_dst, sizeof(struct in6_addr)); + + ssin6->sin6_family = AF_INET6; + ssin6->sin6_len = sizeof(*ssin6); + ssin6->sin6_port = src_port; + memcpy(&ssin6->sin6_addr, &ip6->ip6_src, sizeof(struct in6_addr)); + *flags |= proto_to_flags(proto); + return (0); } +#define zero_key(key) \ +do { \ + key[0] = 0; \ + key[1] = 0; \ + key[2] = 0; \ + key[3] = 0; \ + key[4] = 0; \ + key[5] = 0; \ + key[6] = 0; \ + key[7] = 0; \ + key[8] = 0; \ +} while (0) + +static uint32_t +ipv6_flow_lookup_hash_internal( + struct sockaddr_in6 *ssin6, struct sockaddr_in6 *dsin6, + uint32_t *key, uint16_t flags) +{ + uint16_t sport, dport; + uint8_t proto; + int offset = 0; + + if ((V_flowtable_enable == 0) || (V_flowtable_ready == 0)) + return (0); + + proto = flags_to_proto(flags); + zero_key(key); + sport = dport = 0; + if (dsin6 != NULL) { + memcpy(&key[1], &dsin6->sin6_addr, sizeof(struct in6_addr)); + dport = dsin6->sin6_port; + } + if ((ssin6 != NULL) && (flags & FL_HASH_ALL)) { + memcpy(&key[5], &ssin6->sin6_addr, sizeof(struct in6_addr)); + sport = ssin6->sin6_port; + } + if (flags & FL_HASH_ALL) { + ((uint16_t *)key)[0] = sport; + ((uint16_t *)key)[1] = dport; + } else + offset = V_flow_hashjitter + proto; + + return (jenkins_hashword(key, 9, offset)); +} + +static struct flentry * +flowtable_lookup_mbuf6(struct flowtable *ft, struct mbuf *m) +{ + struct sockaddr_storage ssa, dsa; + struct sockaddr_in6 *dsin6, *ssin6; + uint16_t flags; + + dsin6 = (struct sockaddr_in6 *)&dsa; + ssin6 = (struct sockaddr_in6 *)&ssa; + bzero(dsin6, sizeof(*dsin6)); + bzero(ssin6, sizeof(*ssin6)); + flags = ft->ft_flags; + + if (ipv6_mbuf_demarshal(ft, m, ssin6, dsin6, &flags) != 0) + return (NULL); + + return (flowtable_lookup(ft, &ssa, &dsa, M_GETFIB(m), flags)); +} + +void +flow_to_route_in6(struct flentry *fle, struct route_in6 *ro) +{ + uint32_t *hashkey = NULL; + struct sockaddr_in6 *sin6; + + sin6 = (struct sockaddr_in6 *)&ro->ro_dst; + + sin6->sin6_family = AF_INET6; + sin6->sin6_len = sizeof(*sin6); + hashkey = ((struct flentry_v6 *)fle)->fl_flow.ipf_key; + memcpy(&sin6->sin6_addr, &hashkey[5], sizeof (struct in6_addr)); + ro->ro_rt = __DEVOLATILE(struct rtentry *, fle->f_rt); + ro->ro_lle = __DEVOLATILE(struct llentry *, fle->f_lle); + +} +#endif /* INET6 */ + static bitstr_t * flowtable_mask(struct flowtable *ft) { @@ -472,7 +870,8 @@ flow_stale(struct flowtable *ft, struct || ((fle->f_rt->rt_flags & RTF_HOST) && ((fle->f_rt->rt_flags & (RTF_UP)) != (RTF_UP))) - || (fle->f_rt->rt_ifp == NULL)) + || (fle->f_rt->rt_ifp == NULL) + || !RT_LINK_IS_UP(fle->f_rt->rt_ifp)) return (1); idle_time = time_uptime - fle->f_uptime; @@ -511,22 +910,78 @@ flowtable_set_hashkey(struct flentry *fl hashkey[i] = key[i]; } +static struct flentry * +flow_alloc(struct flowtable *ft) +{ + struct flentry *newfle; + uma_zone_t zone; + + newfle = NULL; + zone = (ft->ft_flags & FL_IPV6) ? V_flow_ipv6_zone : V_flow_ipv4_zone; + + newfle = uma_zalloc(zone, M_NOWAIT | M_ZERO); + if (newfle != NULL) + atomic_add_int(&ft->ft_count, 1); + return (newfle); +} + +static void +flow_free(struct flentry *fle, struct flowtable *ft) +{ + uma_zone_t zone; + + zone = (ft->ft_flags & FL_IPV6) ? V_flow_ipv6_zone : V_flow_ipv4_zone; + atomic_add_int(&ft->ft_count, -1); + uma_zfree(zone, fle); +} + +static int +flow_full(struct flowtable *ft) +{ + boolean_t full; + uint32_t count; + + full = ft->ft_full; + count = ft->ft_count; + + if (full && (count < (V_flowtable_nmbflows - (V_flowtable_nmbflows >> 3)))) + ft->ft_full = FALSE; + else if (!full && (count > (V_flowtable_nmbflows - (V_flowtable_nmbflows >> 5)))) + ft->ft_full = TRUE; + + if (full && !ft->ft_full) { + flowclean_freq = 4*hz; + if ((ft->ft_flags & FL_HASH_ALL) == 0) + ft->ft_udp_idle = ft->ft_fin_wait_idle = + ft->ft_syn_idle = ft->ft_tcp_idle = 5; + cv_broadcast(&flowclean_cv); + } else if (!full && ft->ft_full) { + flowclean_freq = 20*hz; + if ((ft->ft_flags & FL_HASH_ALL) == 0) + ft->ft_udp_idle = ft->ft_fin_wait_idle = + ft->ft_syn_idle = ft->ft_tcp_idle = 30; + } + + return (ft->ft_full); +} + static int flowtable_insert(struct flowtable *ft, uint32_t hash, uint32_t *key, - uint8_t proto, uint32_t fibnum, struct route *ro, uint16_t flags) + uint32_t fibnum, struct route *ro, uint16_t flags) { struct flentry *fle, *fletail, *newfle, **flep; + struct flowtable_stats *fs = &ft->ft_stats[curcpu]; int depth; - uma_zone_t flezone; bitstr_t *mask; + uint8_t proto; - flezone = (flags & FL_IPV6) ? V_flow_ipv6_zone : V_flow_ipv4_zone; - newfle = uma_zalloc(flezone, M_NOWAIT | M_ZERO); + newfle = flow_alloc(ft); if (newfle == NULL) return (ENOMEM); newfle->f_flags |= (flags & FL_IPV6); - + proto = flags_to_proto(flags); + FL_ENTRY_LOCK(ft, hash); mask = flowtable_mask(ft); flep = flowtable_entry(ft, hash); @@ -539,7 +994,7 @@ flowtable_insert(struct flowtable *ft, u } depth = 0; - V_flowtable_collisions++; + fs->ft_collisions++; /* * find end of list and make sure that we were not * preempted by another thread handling this flow @@ -551,8 +1006,10 @@ flowtable_insert(struct flowtable *ft, u * or we lost a race to insert */ FL_ENTRY_UNLOCK(ft, hash); - uma_zfree((newfle->f_flags & FL_IPV6) ? - V_flow_ipv6_zone : V_flow_ipv4_zone, newfle); + flow_free(newfle, ft); + + if (flags & FL_OVERWRITE) + goto skip; return (EEXIST); } /* @@ -565,8 +1022,8 @@ flowtable_insert(struct flowtable *ft, u fle = fle->f_next; } - if (depth > V_flowtable_max_depth) - V_flowtable_max_depth = depth; + if (depth > fs->ft_max_depth) + fs->ft_max_depth = depth; fletail->f_next = newfle; fle = newfle; skip: @@ -582,6 +1039,35 @@ skip: return (0); } +int +kern_flowtable_insert(struct flowtable *ft, + struct sockaddr_storage *ssa, struct sockaddr_storage *dsa, + struct route *ro, uint32_t fibnum, int flags) +{ + uint32_t key[9], hash; + + flags = (ft->ft_flags | flags | FL_OVERWRITE); + hash = 0; + +#ifdef INET + if (ssa->ss_family == AF_INET) + hash = ipv4_flow_lookup_hash_internal((struct sockaddr_in *)ssa, + (struct sockaddr_in *)dsa, key, flags); +#endif +#ifdef INET6 + if (ssa->ss_family == AF_INET6) + hash = ipv6_flow_lookup_hash_internal((struct sockaddr_in6 *)ssa, + (struct sockaddr_in6 *)dsa, key, flags); +#endif + if (ro->ro_rt == NULL || ro->ro_lle == NULL) + return (EINVAL); + + FLDPRINTF(ft, FL_DEBUG, + "kern_flowtable_insert: key=%x:%x:%x hash=%x fibnum=%d flags=%x\n", + key[0], key[1], key[2], hash, fibnum, flags); + return (flowtable_insert(ft, hash, key, fibnum, ro, flags)); +} + static int flowtable_key_equal(struct flentry *fle, uint32_t *key) { @@ -595,7 +1081,7 @@ flowtable_key_equal(struct flentry *fle, nwords = 3; hashkey = ((struct flentry_v6 *)fle)->fl_flow.ipf_key; } - + for (i = 0; i < nwords; i++) if (hashkey[i] != key[i]) return (0); @@ -603,44 +1089,95 @@ flowtable_key_equal(struct flentry *fle, return (1); } -int -flowtable_lookup(struct flowtable *ft, struct mbuf *m, struct route *ro, uint32_t fibnum) +struct flentry * +flowtable_lookup_mbuf(struct flowtable *ft, struct mbuf *m, int af) +{ + struct flentry *fle = NULL; + +#ifdef INET + if (af == AF_INET) + fle = flowtable_lookup_mbuf4(ft, m); +#endif +#ifdef INET6 + if (af == AF_INET6) + fle = flowtable_lookup_mbuf6(ft, m); +#endif + if (fle != NULL && m != NULL && (m->m_flags & M_FLOWID) == 0) { + m->m_flags |= M_FLOWID; + m->m_pkthdr.flowid = fle->f_fhash; + } + return (fle); +} + +struct flentry * +flowtable_lookup(struct flowtable *ft, struct sockaddr_storage *ssa, + struct sockaddr_storage *dsa, uint32_t fibnum, int flags) { uint32_t key[9], hash; struct flentry *fle; - uint16_t flags; + struct flowtable_stats *fs = &ft->ft_stats[curcpu]; uint8_t proto = 0; int error = 0; struct rtentry *rt; struct llentry *lle; + struct route sro, *ro; + struct route_in6 sro6; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:16:02 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96346106566B; Mon, 12 Apr 2010 23:16:02 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 832F18FC13; Mon, 12 Apr 2010 23:16:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNG27g070512; Mon, 12 Apr 2010 23:16:02 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNG2Ys070511; Mon, 12 Apr 2010 23:16:02 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122316.o3CNG2Ys070511@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:16:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206524 - in user/imp/tbemd/sys: pc98/cbus pc98/conf pc98/pc98 pci powerpc/aim powerpc/booke powerpc/conf powerpc/mpc85xx powerpc/ofw powerpc/powermac powerpc/powerpc rpc sparc64/conf s... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:16:02 -0000 Author: imp Date: Mon Apr 12 23:16:01 2010 New Revision: 206524 URL: http://svn.freebsd.org/changeset/base/206524 Log: merge from head, part 9 of many Added: user/imp/tbemd/sys/sparc64/pci/sbbc.c - copied unchanged from r206514, head/sys/sparc64/pci/sbbc.c Modified: user/imp/tbemd/sys/pc98/cbus/clock.c user/imp/tbemd/sys/pc98/conf/GENERIC user/imp/tbemd/sys/pc98/pc98/machdep.c user/imp/tbemd/sys/pci/if_rlreg.h user/imp/tbemd/sys/powerpc/aim/interrupt.c user/imp/tbemd/sys/powerpc/aim/machdep.c user/imp/tbemd/sys/powerpc/aim/mmu_oea64.c user/imp/tbemd/sys/powerpc/aim/nexus.c user/imp/tbemd/sys/powerpc/aim/ofw_machdep.c user/imp/tbemd/sys/powerpc/booke/interrupt.c user/imp/tbemd/sys/powerpc/booke/machdep.c user/imp/tbemd/sys/powerpc/booke/trap_subr.S user/imp/tbemd/sys/powerpc/conf/GENERIC user/imp/tbemd/sys/powerpc/mpc85xx/ocpbus.c user/imp/tbemd/sys/powerpc/mpc85xx/ocpbus.h user/imp/tbemd/sys/powerpc/mpc85xx/pci_ocp.c user/imp/tbemd/sys/powerpc/ofw/ofw_real.c user/imp/tbemd/sys/powerpc/ofw/ofw_syscons.c user/imp/tbemd/sys/powerpc/powermac/cuda.c user/imp/tbemd/sys/powerpc/powermac/cudavar.h user/imp/tbemd/sys/powerpc/powermac/pmu.c user/imp/tbemd/sys/powerpc/powermac/smu.c user/imp/tbemd/sys/powerpc/powermac/uninorth.c user/imp/tbemd/sys/powerpc/powerpc/cpu.c user/imp/tbemd/sys/rpc/svc.c user/imp/tbemd/sys/sparc64/conf/GENERIC user/imp/tbemd/sys/sparc64/conf/NOTES user/imp/tbemd/sys/sparc64/fhc/fhc.c user/imp/tbemd/sys/sparc64/include/dcr.h user/imp/tbemd/sys/sparc64/include/lsu.h user/imp/tbemd/sys/sparc64/include/tlb.h user/imp/tbemd/sys/sparc64/include/tte.h user/imp/tbemd/sys/sparc64/include/ver.h user/imp/tbemd/sys/sparc64/include/wstate.h user/imp/tbemd/sys/sparc64/pci/apb.c user/imp/tbemd/sys/sparc64/pci/psycho.c user/imp/tbemd/sys/sparc64/pci/schizo.c user/imp/tbemd/sys/sparc64/pci/schizovar.h user/imp/tbemd/sys/sparc64/sbus/sbus.c user/imp/tbemd/sys/sparc64/sparc64/cheetah.c user/imp/tbemd/sys/sparc64/sparc64/exception.S user/imp/tbemd/sys/sparc64/sparc64/genassym.c user/imp/tbemd/sys/sparc64/sparc64/locore.S user/imp/tbemd/sys/sparc64/sparc64/machdep.c user/imp/tbemd/sys/sparc64/sparc64/ofw_machdep.c user/imp/tbemd/sys/sparc64/sparc64/pmap.c user/imp/tbemd/sys/sparc64/sparc64/support.S user/imp/tbemd/sys/sparc64/sparc64/swtch.S user/imp/tbemd/sys/sparc64/sparc64/trap.c user/imp/tbemd/sys/sun4v/conf/GENERIC user/imp/tbemd/sys/sun4v/sun4v/machdep.c user/imp/tbemd/sys/sys/_timespec.h user/imp/tbemd/sys/sys/eventhandler.h user/imp/tbemd/sys/sys/iconv.h user/imp/tbemd/sys/sys/imgact.h user/imp/tbemd/sys/sys/ioccom.h user/imp/tbemd/sys/sys/mchain.h user/imp/tbemd/sys/sys/param.h user/imp/tbemd/sys/sys/pcpu.h user/imp/tbemd/sys/sys/pioctl.h user/imp/tbemd/sys/sys/pmc.h user/imp/tbemd/sys/sys/proc.h user/imp/tbemd/sys/sys/ptrace.h user/imp/tbemd/sys/sys/stat.h user/imp/tbemd/sys/sys/sysent.h user/imp/tbemd/sys/sys/timeb.h user/imp/tbemd/sys/sys/timespec.h user/imp/tbemd/sys/sys/vnode.h user/imp/tbemd/sys/sys/vtoc.h user/imp/tbemd/sys/teken/teken.c user/imp/tbemd/sys/ufs/ffs/ffs_vfsops.c user/imp/tbemd/sys/vm/memguard.c user/imp/tbemd/sys/vm/memguard.h user/imp/tbemd/sys/vm/uma_int.h user/imp/tbemd/sys/vm/vm_contig.c user/imp/tbemd/sys/vm/vm_extern.h user/imp/tbemd/sys/vm/vm_fault.c user/imp/tbemd/sys/vm/vm_glue.c user/imp/tbemd/sys/vm/vm_map.c user/imp/tbemd/sys/vm/vm_map.h user/imp/tbemd/sys/vm/vm_mmap.c user/imp/tbemd/sys/vm/vm_page.c user/imp/tbemd/sys/vm/vm_pageout.c user/imp/tbemd/sys/x86/isa/clock.c Modified: user/imp/tbemd/sys/pc98/cbus/clock.c ============================================================================== --- user/imp/tbemd/sys/pc98/cbus/clock.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/pc98/cbus/clock.c Mon Apr 12 23:16:01 2010 (r206524) @@ -93,6 +93,9 @@ TUNABLE_INT("hw.i8254.freq", &i8254_freq int i8254_max_count; static int i8254_real_max_count; +static int lapic_allclocks = 1; +TUNABLE_INT("machdep.lapic_allclocks", &lapic_allclocks); + static struct mtx clock_lock; static struct intsrc *i8254_intsrc; static u_int32_t i8254_lastcount; @@ -432,9 +435,11 @@ startrtclock() void cpu_initclocks() { +#if defined(DEV_APIC) + enum lapic_clock tlsca; -#ifdef DEV_APIC - using_lapic_timer = lapic_setup_clock(); + tlsca = lapic_allclocks == 0 ? LAPIC_CLOCK_HARDCLOCK : LAPIC_CLOCK_ALL; + using_lapic_timer = lapic_setup_clock(tlsca); #endif /* * If we aren't using the local APIC timer to drive the kernel Modified: user/imp/tbemd/sys/pc98/conf/GENERIC ============================================================================== --- user/imp/tbemd/sys/pc98/conf/GENERIC Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/pc98/conf/GENERIC Mon Apr 12 23:16:01 2010 (r206524) @@ -46,7 +46,6 @@ options PROCFS # Process filesystem ( options PSEUDOFS # Pseudo-filesystem framework options GEOM_PART_GPT # GUID Partition Tables. options GEOM_LABEL # Provides labelization -options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty) options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options COMPAT_FREEBSD6 # Compatible with FreeBSD6 Modified: user/imp/tbemd/sys/pc98/pc98/machdep.c ============================================================================== --- user/imp/tbemd/sys/pc98/pc98/machdep.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/pc98/pc98/machdep.c Mon Apr 12 23:16:01 2010 (r206524) @@ -1172,11 +1172,7 @@ void (*cpu_idle_hook)(void) = cpu_idle_d * Reset registers to default values on exec. */ void -exec_setregs(td, entry, stack, ps_strings) - struct thread *td; - u_long entry; - u_long stack; - u_long ps_strings; +exec_setregs(struct thread *td, struct image_params *imgp, u_long stack) { struct trapframe *regs = td->td_frame; struct pcb *pcb = td->td_pcb; @@ -1192,7 +1188,7 @@ exec_setregs(td, entry, stack, ps_string mtx_unlock_spin(&dt_lock); bzero((char *)regs, sizeof(struct trapframe)); - regs->tf_eip = entry; + regs->tf_eip = imgp->entry_addr; regs->tf_esp = stack; regs->tf_eflags = PSL_USER | (regs->tf_eflags & PSL_T); regs->tf_ss = _udatasel; @@ -1202,7 +1198,7 @@ exec_setregs(td, entry, stack, ps_string regs->tf_cs = _ucodesel; /* PS_STRINGS value for BSD/OS binaries. It is 0 for non-BSD/OS. */ - regs->tf_ebx = ps_strings; + regs->tf_ebx = imgp->ps_strings; /* * Reset the hardware debug registers if they were in use. Modified: user/imp/tbemd/sys/pci/if_rlreg.h ============================================================================== --- user/imp/tbemd/sys/pci/if_rlreg.h Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/pci/if_rlreg.h Mon Apr 12 23:16:01 2010 (r206524) @@ -133,6 +133,7 @@ #define RL_GMEDIASTAT 0x006C /* 8 bits */ #define RL_MACDBG 0x006D /* 8 bits, 8168C SPIN2 only */ #define RL_GPIO 0x006E /* 8 bits, 8168C SPIN2 only */ +#define RL_PMCH 0x006F /* 8 bits */ #define RL_MAXRXPKTLEN 0x00DA /* 16 bits, chip multiplies by 8 */ #define RL_GTXSTART 0x0038 /* 8 bits */ @@ -159,9 +160,10 @@ #define RL_HWREV_8169_8110SB 0x10000000 #define RL_HWREV_8169_8110SC 0x18000000 #define RL_HWREV_8102EL 0x24800000 -#define RL_HWREV_8102EL_SPIN1 0x24c00000 +#define RL_HWREV_8102EL_SPIN1 0x24C00000 #define RL_HWREV_8168D 0x28000000 #define RL_HWREV_8168DP 0x28800000 +#define RL_HWREV_8168E 0x2C000000 #define RL_HWREV_8168_SPIN1 0x30000000 #define RL_HWREV_8100E 0x30800000 #define RL_HWREV_8101E 0x34000000 @@ -180,7 +182,7 @@ #define RL_HWREV_8139C 0x74000000 #define RL_HWREV_8139D 0x74400000 #define RL_HWREV_8139CPLUS 0x74800000 -#define RL_HWREV_8101 0x74c00000 +#define RL_HWREV_8101 0x74C00000 #define RL_HWREV_8100 0x78800000 #define RL_HWREV_8169_8110SBL 0x7CC00000 #define RL_HWREV_8169_8110SCE 0x98000000 @@ -884,6 +886,7 @@ struct rl_softc { uint32_t rl_flags; #define RL_FLAG_MSI 0x0001 #define RL_FLAG_AUTOPAD 0x0002 +#define RL_FLAG_PHYWAKE_PM 0x0004 #define RL_FLAG_PHYWAKE 0x0008 #define RL_FLAG_NOJUMBO 0x0010 #define RL_FLAG_PAR 0x0020 Modified: user/imp/tbemd/sys/powerpc/aim/interrupt.c ============================================================================== --- user/imp/tbemd/sys/powerpc/aim/interrupt.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/aim/interrupt.c Mon Apr 12 23:16:01 2010 (r206524) @@ -80,15 +80,17 @@ powerpc_interrupt(struct trapframe *fram switch (framep->exc) { case EXC_EXI: - atomic_add_int(&td->td_intr_nesting_level, 1); + critical_enter(); PIC_DISPATCH(pic, framep); - atomic_subtract_int(&td->td_intr_nesting_level, 1); + critical_exit(); break; case EXC_DECR: + critical_enter(); atomic_add_int(&td->td_intr_nesting_level, 1); decr_intr(framep); atomic_subtract_int(&td->td_intr_nesting_level, 1); + critical_exit(); break; default: Modified: user/imp/tbemd/sys/powerpc/aim/machdep.c ============================================================================== --- user/imp/tbemd/sys/powerpc/aim/machdep.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/aim/machdep.c Mon Apr 12 23:16:01 2010 (r206524) @@ -951,7 +951,7 @@ cpu_idle_wakeup(int cpu) * Set set up registers on exec. */ void -exec_setregs(struct thread *td, u_long entry, u_long stack, u_long ps_strings) +exec_setregs(struct thread *td, struct image_params *imgp, u_long stack) { struct trapframe *tf; struct ps_strings arginfo; @@ -995,7 +995,7 @@ exec_setregs(struct thread *td, u_long e tf->fixreg[7] = 0; /* termination vector */ tf->fixreg[8] = (register_t)PS_STRINGS; /* NetBSD extension */ - tf->srr0 = entry; + tf->srr0 = imgp->entry_addr; tf->srr1 = PSL_MBO | PSL_USERSET | PSL_FE_DFLT; td->td_pcb->pcb_flags = 0; } Modified: user/imp/tbemd/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- user/imp/tbemd/sys/powerpc/aim/mmu_oea64.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/aim/mmu_oea64.c Mon Apr 12 23:16:01 2010 (r206524) @@ -1507,10 +1507,10 @@ moea64_remove_write(mmu_t mmu, vm_page_t return; lo = moea64_attr_fetch(m); SYNC(); - LOCK_TABLE(); LIST_FOREACH(pvo, vm_page_to_pvoh(m), pvo_vlink) { pmap = pvo->pvo_pmap; PMAP_LOCK(pmap); + LOCK_TABLE(); if ((pvo->pvo_pte.lpte.pte_lo & LPTE_PP) != LPTE_BR) { pt = moea64_pvo_to_pte(pvo, -1); pvo->pvo_pte.lpte.pte_lo &= ~LPTE_PP; @@ -1523,9 +1523,9 @@ moea64_remove_write(mmu_t mmu, vm_page_t pvo->pvo_pmap, PVO_VADDR(pvo)); } } + UNLOCK_TABLE(); PMAP_UNLOCK(pmap); } - UNLOCK_TABLE(); if ((lo & LPTE_CHG) != 0) { moea64_attr_clear(m, LPTE_CHG); vm_page_dirty(m); @@ -1604,6 +1604,13 @@ moea64_kextract(mmu_t mmu, vm_offset_t v struct pvo_entry *pvo; vm_paddr_t pa; + /* + * Shortcut the direct-mapped case when applicable. We never put + * anything but 1:1 mappings below VM_MIN_KERNEL_ADDRESS. + */ + if (va < VM_MIN_KERNEL_ADDRESS) + return (va); + PMAP_LOCK(kernel_pmap); pvo = moea64_pvo_find_va(kernel_pmap, va & ~ADDR_POFF, NULL); KASSERT(pvo != NULL, ("moea64_kextract: no addr found")); @@ -1661,17 +1668,15 @@ moea64_page_exists_quick(mmu_t mmu, pmap if (!moea64_initialized || (m->flags & PG_FICTITIOUS)) return FALSE; + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + loops = 0; - LOCK_TABLE(); LIST_FOREACH(pvo, vm_page_to_pvoh(m), pvo_vlink) { - if (pvo->pvo_pmap == pmap) { - UNLOCK_TABLE(); + if (pvo->pvo_pmap == pmap) return (TRUE); - } if (++loops >= 16) break; } - UNLOCK_TABLE(); return (FALSE); } @@ -1690,11 +1695,9 @@ moea64_page_wired_mappings(mmu_t mmu, vm if (!moea64_initialized || (m->flags & PG_FICTITIOUS) != 0) return (count); mtx_assert(&vm_page_queue_mtx, MA_OWNED); - LOCK_TABLE(); LIST_FOREACH(pvo, vm_page_to_pvoh(m), pvo_vlink) if ((pvo->pvo_vaddr & PVO_WIRED) != 0) count++; - UNLOCK_TABLE(); return (count); } @@ -1913,7 +1916,6 @@ moea64_remove_all(mmu_t mmu, vm_page_t m mtx_assert(&vm_page_queue_mtx, MA_OWNED); pvo_head = vm_page_to_pvoh(m); - LOCK_TABLE(); for (pvo = LIST_FIRST(pvo_head); pvo != NULL; pvo = next_pvo) { next_pvo = LIST_NEXT(pvo, pvo_vlink); @@ -1923,7 +1925,6 @@ moea64_remove_all(mmu_t mmu, vm_page_t m moea64_pvo_remove(pvo, -1); PMAP_UNLOCK(pmap); } - UNLOCK_TABLE(); if ((m->flags & PG_WRITEABLE) && moea64_is_modified(mmu, m)) { moea64_attr_clear(m, LPTE_CHG); vm_page_dirty(m); @@ -2268,7 +2269,7 @@ moea64_pvo_to_pte(const struct pvo_entry } if (((pt->pte_lo ^ pvo->pvo_pte.lpte.pte_lo) & - ~(LPTE_CHG|LPTE_REF)) != 0) { + ~(LPTE_M|LPTE_CHG|LPTE_REF)) != 0) { panic("moea64_pvo_to_pte: pvo %p pte does not match " "pte %p in moea64_pteg_table difference is %#x", pvo, pt, @@ -2334,7 +2335,8 @@ moea64_query_bit(vm_page_t m, u_int64_t if (moea64_attr_fetch(m) & ptebit) return (TRUE); - LOCK_TABLE(); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + LIST_FOREACH(pvo, vm_page_to_pvoh(m), pvo_vlink) { MOEA_PVO_CHECK(pvo); /* sanity check */ @@ -2344,7 +2346,6 @@ moea64_query_bit(vm_page_t m, u_int64_t */ if (pvo->pvo_pte.lpte.pte_lo & ptebit) { moea64_attr_save(m, ptebit); - UNLOCK_TABLE(); MOEA_PVO_CHECK(pvo); /* sanity check */ return (TRUE); } @@ -2364,6 +2365,7 @@ moea64_query_bit(vm_page_t m, u_int64_t * REF/CHG bits from the valid PTE. If the appropriate * ptebit is set, cache it and return success. */ + LOCK_TABLE(); pt = moea64_pvo_to_pte(pvo, -1); if (pt != NULL) { moea64_pte_synch(pt, &pvo->pvo_pte.lpte); @@ -2375,8 +2377,8 @@ moea64_query_bit(vm_page_t m, u_int64_t return (TRUE); } } + UNLOCK_TABLE(); } - UNLOCK_TABLE(); return (FALSE); } @@ -2389,6 +2391,8 @@ moea64_clear_bit(vm_page_t m, u_int64_t struct lpte *pt; uint64_t rv; + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + /* * Clear the cached value. */ @@ -2409,10 +2413,10 @@ moea64_clear_bit(vm_page_t m, u_int64_t * valid pte clear the ptebit from the valid pte. */ count = 0; - LOCK_TABLE(); LIST_FOREACH(pvo, vm_page_to_pvoh(m), pvo_vlink) { MOEA_PVO_CHECK(pvo); /* sanity check */ + LOCK_TABLE(); pt = moea64_pvo_to_pte(pvo, -1); if (pt != NULL) { moea64_pte_synch(pt, &pvo->pvo_pte.lpte); @@ -2424,8 +2428,8 @@ moea64_clear_bit(vm_page_t m, u_int64_t rv |= pvo->pvo_pte.lpte.pte_lo; pvo->pvo_pte.lpte.pte_lo &= ~ptebit; MOEA_PVO_CHECK(pvo); /* sanity check */ + UNLOCK_TABLE(); } - UNLOCK_TABLE(); if (origbit != NULL) { *origbit = rv; @@ -2511,7 +2515,7 @@ moea64_sync_icache(mmu_t mmu, pmap_t pm, len = MIN(lim - va, sz); pvo = moea64_pvo_find_va(pm, va & ~ADDR_POFF, NULL); if (pvo != NULL) { - pa = (pvo->pvo_pte.pte.pte_lo & PTE_RPGN) | + pa = (pvo->pvo_pte.pte.pte_lo & LPTE_RPGN) | (va & ADDR_POFF); moea64_syncicache(pm, va, pa, len); } Modified: user/imp/tbemd/sys/powerpc/aim/nexus.c ============================================================================== --- user/imp/tbemd/sys/powerpc/aim/nexus.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/aim/nexus.c Mon Apr 12 23:16:01 2010 (r206524) @@ -60,7 +60,6 @@ #include #include #include -#include #include #include #include @@ -74,7 +73,6 @@ #include -#include "clock_if.h" #include "ofw_bus_if.h" #include "pic_if.h" @@ -143,12 +141,6 @@ static const char *nexus_ofw_get_type(de static const char *nexus_ofw_get_compat(device_t, device_t); /* - * Clock interface. - */ -static int nexus_gettime(device_t, struct timespec *); -static int nexus_settime(device_t, struct timespec *); - -/* * Local routines */ static device_t nexus_device_from_node(device_t, phandle_t); @@ -181,10 +173,6 @@ static device_method_t nexus_methods[] = DEVMETHOD(ofw_bus_get_type, nexus_ofw_get_type), DEVMETHOD(ofw_bus_get_compat, nexus_ofw_get_compat), - /* Clock interface */ - DEVMETHOD(clock_gettime, nexus_gettime), - DEVMETHOD(clock_settime, nexus_settime), - { 0, 0 } }; @@ -240,7 +228,6 @@ nexus_attach(device_t dev) } - clock_register(dev, 1000); return (bus_generic_attach(dev)); } @@ -512,50 +499,3 @@ nexus_ofw_get_compat(device_t bus, devic return (dinfo->ndi_compatible); } -#define DIFF19041970 2082844800 - -static int -nexus_gettime(device_t dev, struct timespec *ts) -{ - char path[128]; - ihandle_t ih; - phandle_t ph; - u_int rtc; - - ph = OF_finddevice("rtc"); - if (ph == -1) - return (ENOENT); - - OF_package_to_path(ph, path, sizeof(path)); - ih = OF_open(path); - if (ih == -1) - return (ENXIO); - - if (OF_call_method("read-rtc", ih, 0, 1, &rtc)) - return (EIO); - - ts->tv_sec = rtc - DIFF19041970; - ts->tv_nsec = 0; - return (0); -} - -static int -nexus_settime(device_t dev, struct timespec *ts) -{ - char path[128]; - ihandle_t ih; - phandle_t ph; - u_int rtc; - - ph = OF_finddevice("rtc"); - if (ph == -1) - return (ENOENT); - - OF_package_to_path(ph, path, sizeof(path)); - ih = OF_open(path); - if (ih == -1) - return (ENXIO); - - rtc = ts->tv_sec + DIFF19041970; - return ((OF_call_method("write-rtc", ih, 1, 0, rtc) != 0) ? EIO : 0); -} Modified: user/imp/tbemd/sys/powerpc/aim/ofw_machdep.c ============================================================================== --- user/imp/tbemd/sys/powerpc/aim/ofw_machdep.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/aim/ofw_machdep.c Mon Apr 12 23:16:01 2010 (r206524) @@ -63,6 +63,8 @@ __FBSDID("$FreeBSD$"); static struct mem_region OFmem[OFMEM_REGIONS + 1], OFavail[OFMEM_REGIONS + 3]; static struct mem_region OFfree[OFMEM_REGIONS + 3]; +static struct mtx ofw_mutex; + struct mem_region64 { vm_offset_t mr_start_hi; vm_offset_t mr_start_lo; @@ -281,6 +283,8 @@ OF_bootstrap() { boolean_t status = FALSE; + mtx_init(&ofw_mutex, "open firmware", NULL, MTX_DEF); + if (ofwcall != NULL) { if (ofw_real_mode) status = OF_install(OFW_STD_REAL, 0); @@ -314,6 +318,8 @@ openfirmware(void *args) if (pmap_bootstrapped && ofw_real_mode) args = (void *)pmap_kextract((vm_offset_t)args); + mtx_lock(&ofw_mutex); + __asm __volatile( "\t" "sync\n\t" "mfmsr %0\n\t" @@ -366,6 +372,8 @@ openfirmware(void *args) : : "r" (oldmsr) ); + mtx_unlock(&ofw_mutex); + return (result); } Modified: user/imp/tbemd/sys/powerpc/booke/interrupt.c ============================================================================== --- user/imp/tbemd/sys/powerpc/booke/interrupt.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/booke/interrupt.c Mon Apr 12 23:16:01 2010 (r206524) @@ -118,9 +118,12 @@ powerpc_decr_interrupt(struct trapframe struct thread *td; td = PCPU_GET(curthread); + critical_enter(); atomic_add_int(&td->td_intr_nesting_level, 1); decr_intr(framep); atomic_subtract_int(&td->td_intr_nesting_level, 1); + critical_exit(); + framep->srr1 &= ~PSL_WE; } /* @@ -129,10 +132,9 @@ powerpc_decr_interrupt(struct trapframe void powerpc_extr_interrupt(struct trapframe *framep) { - struct thread *td; - td = PCPU_GET(curthread); - atomic_add_int(&td->td_intr_nesting_level, 1); + critical_enter(); PIC_DISPATCH(pic, framep); - atomic_subtract_int(&td->td_intr_nesting_level, 1); + critical_exit(); + framep->srr1 &= ~PSL_WE; } Modified: user/imp/tbemd/sys/powerpc/booke/machdep.c ============================================================================== --- user/imp/tbemd/sys/powerpc/booke/machdep.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/booke/machdep.c Mon Apr 12 23:16:01 2010 (r206524) @@ -509,7 +509,7 @@ cpu_pcpu_init(struct pcpu *pcpu, int cpu /* Set set up registers on exec. */ void -exec_setregs(struct thread *td, u_long entry, u_long stack, u_long ps_strings) +exec_setregs(struct thread *td, struct image_params *imgp, u_long stack) { struct trapframe *tf; struct ps_strings arginfo; @@ -553,7 +553,7 @@ exec_setregs(struct thread *td, u_long e tf->fixreg[7] = 0; /* termination vector */ tf->fixreg[8] = (register_t)PS_STRINGS; /* NetBSD extension */ - tf->srr0 = entry; + tf->srr0 = imgp->entry_addr; tf->srr1 = PSL_USERSET; td->td_pcb->pcb_flags = 0; } @@ -706,6 +706,7 @@ cpu_idle (int busy) register_t msr; msr = mfmsr(); + #ifdef INVARIANTS if ((msr & PSL_EE) != PSL_EE) { struct thread *td = curthread; @@ -713,19 +714,10 @@ cpu_idle (int busy) panic("ints disabled in idleproc!"); } #endif -#if 0 - /* - * Freescale E500 core RM section 6.4.1 - */ - msr = msr | PSL_WE; - __asm__(" msync;" - " mtmsr %0;" - " isync;" - "loop: b loop" : - /* no output */ : - "r" (msr)); -#endif + /* Freescale E500 core RM section 6.4.1. */ + msr = msr | PSL_WE; + __asm __volatile("msync; mtmsr %0; isync" :: "r" (msr)); } int Modified: user/imp/tbemd/sys/powerpc/booke/trap_subr.S ============================================================================== --- user/imp/tbemd/sys/powerpc/booke/trap_subr.S Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/booke/trap_subr.S Mon Apr 12 23:16:01 2010 (r206524) @@ -441,6 +441,7 @@ INTERRUPT(int_instr_storage) INTERRUPT(int_external_input) STANDARD_PROLOG(SPR_SPRG1, PC_TEMPSAVE, SPR_SRR0, SPR_SRR1) FRAME_SETUP(SPR_SPRG1, PC_TEMPSAVE, EXC_EXI) + addi %r3, %r1, 8 bl CNAME(powerpc_extr_interrupt) b trapexit Modified: user/imp/tbemd/sys/powerpc/conf/GENERIC ============================================================================== --- user/imp/tbemd/sys/powerpc/conf/GENERIC Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/conf/GENERIC Mon Apr 12 23:16:01 2010 (r206524) @@ -47,7 +47,6 @@ options PROCFS #Process filesystem (r options PSEUDOFS #Pseudo-filesystem framework options GEOM_PART_GPT #GUID Partition Tables. options GEOM_LABEL #Provides labelization -options COMPAT_43TTY #BSD 4.3 TTY compat (sgtty) options COMPAT_FREEBSD4 #Keep this for a while options COMPAT_FREEBSD5 #Compatible with FreeBSD5 options COMPAT_FREEBSD6 #Compatible with FreeBSD6 Modified: user/imp/tbemd/sys/powerpc/mpc85xx/ocpbus.c ============================================================================== --- user/imp/tbemd/sys/powerpc/mpc85xx/ocpbus.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/mpc85xx/ocpbus.c Mon Apr 12 23:16:01 2010 (r206524) @@ -152,6 +152,10 @@ ocpbus_write_law(int trgt, int type, u_l addr = 0xA0000000; size = 0x10000000; break; + case OCP85XX_TGTIF_PCI3: + addr = 0xB0000000; + size = 0x10000000; + break; default: return (EINVAL); } @@ -170,6 +174,10 @@ ocpbus_write_law(int trgt, int type, u_l addr = 0xfee20000; size = 0x00010000; break; + case OCP85XX_TGTIF_PCI3: + addr = 0xfee30000; + size = 0x00010000; + break; default: return (EINVAL); } @@ -188,7 +196,7 @@ static int ocpbus_probe(device_t dev) { - device_set_desc(dev, "On-Chip Peripherals bus"); + device_set_desc(dev, "Freescale on-chip peripherals bus"); return (BUS_PROBE_DEFAULT); } @@ -210,6 +218,7 @@ ocpbus_attach(device_t dev) ocpbus_mk_child(dev, OCPBUS_DEVTYPE_PCIB, 0); ocpbus_mk_child(dev, OCPBUS_DEVTYPE_PCIB, 1); ocpbus_mk_child(dev, OCPBUS_DEVTYPE_PCIB, 2); + ocpbus_mk_child(dev, OCPBUS_DEVTYPE_PCIB, 3); ocpbus_mk_child(dev, OCPBUS_DEVTYPE_TSEC, 0); ocpbus_mk_child(dev, OCPBUS_DEVTYPE_TSEC, 1); ocpbus_mk_child(dev, OCPBUS_DEVTYPE_TSEC, 2); @@ -338,6 +347,10 @@ const struct ocp_resource mpc8555_resour OCP85XX_PCI_SIZE}, {OCPBUS_DEVTYPE_PCIB, 2, SYS_RES_MEMORY, 1, 0, OCP85XX_TGTIF_PCI2}, {OCPBUS_DEVTYPE_PCIB, 2, SYS_RES_IOPORT, 1, 0, OCP85XX_TGTIF_PCI2}, + {OCPBUS_DEVTYPE_PCIB, 3, SYS_RES_MEMORY, 0, OCP85XX_PCI3_OFF, + OCP85XX_PCI_SIZE}, + {OCPBUS_DEVTYPE_PCIB, 3, SYS_RES_MEMORY, 1, 0, OCP85XX_TGTIF_PCI3}, + {OCPBUS_DEVTYPE_PCIB, 3, SYS_RES_IOPORT, 1, 0, OCP85XX_TGTIF_PCI3}, {OCPBUS_DEVTYPE_LBC, 0, SYS_RES_MEMORY, 0, OCP85XX_LBC_OFF, OCP85XX_LBC_SIZE}, Modified: user/imp/tbemd/sys/powerpc/mpc85xx/ocpbus.h ============================================================================== --- user/imp/tbemd/sys/powerpc/mpc85xx/ocpbus.h Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/mpc85xx/ocpbus.h Mon Apr 12 23:16:01 2010 (r206524) @@ -50,6 +50,7 @@ #define OCP85XX_TGTIF_PCI0 0 #define OCP85XX_TGTIF_PCI1 1 #define OCP85XX_TGTIF_PCI2 2 +#define OCP85XX_TGTIF_PCI3 3 #define OCP85XX_TGTIF_LBC 4 #define OCP85XX_TGTIF_RAM_INTL 11 #define OCP85XX_TGTIF_RIO 12 @@ -86,6 +87,7 @@ #define OCP85XX_PCI0_OFF 0x08000 #define OCP85XX_PCI1_OFF 0x09000 #define OCP85XX_PCI2_OFF 0x0A000 +#define OCP85XX_PCI3_OFF 0x0B000 #define OCP85XX_PCI_SIZE 0x1000 #define OCP85XX_TSEC0_OFF 0x24000 #define OCP85XX_TSEC1_OFF 0x25000 Modified: user/imp/tbemd/sys/powerpc/mpc85xx/pci_ocp.c ============================================================================== --- user/imp/tbemd/sys/powerpc/mpc85xx/pci_ocp.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/mpc85xx/pci_ocp.c Mon Apr 12 23:16:01 2010 (r206524) @@ -264,7 +264,7 @@ pci_ocp_maxslots(device_t dev) { struct pci_ocp_softc *sc = device_get_softc(dev); - return ((sc->sc_pcie_cap) ? 0 : 30); + return ((sc->sc_pcie_cap) ? 0 : 31); } static uint32_t @@ -328,6 +328,7 @@ pci_ocp_probe(device_t dev) return (ENXIO); sc = device_get_softc(dev); + sc->sc_dev = dev; sc->sc_rid = 0; sc->sc_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->sc_rid, @@ -492,7 +493,7 @@ pci_ocp_route_int(struct pci_ocp_softc * } static int -pci_ocp_init(struct pci_ocp_softc *sc, int bus, int maxslot) +pci_ocp_init(struct pci_ocp_softc *sc, int bus, int nslots) { int secbus, slot; int func, maxfunc; @@ -502,7 +503,7 @@ pci_ocp_init(struct pci_ocp_softc *sc, i uint8_t intline, intpin; secbus = bus; - for (slot = 0; slot < maxslot; slot++) { + for (slot = 0; slot < nslots; slot++) { maxfunc = 0; for (func = 0; func <= maxfunc; func++) { hdrtype = pci_ocp_read_config(sc->sc_dev, bus, slot, @@ -599,7 +600,7 @@ pci_ocp_init(struct pci_ocp_softc *sc, i PCIR_SUBBUS_1, 0xff, 1); secbus = pci_ocp_init(sc, secbus, - (subclass == PCIS_BRIDGE_PCI) ? 31 : 1); + (subclass == PCIS_BRIDGE_PCI) ? 32 : 1); pci_ocp_write_config(sc->sc_dev, bus, slot, func, PCIR_SUBBUS_1, secbus, 1); @@ -721,7 +722,7 @@ pci_ocp_attach(device_t dev) { struct pci_ocp_softc *sc; uint32_t cfgreg; - int error, maxslot; + int error, nslots; sc = device_get_softc(dev); sc->sc_dev = dev; @@ -765,8 +766,8 @@ pci_ocp_attach(device_t dev) return (0); } - maxslot = (sc->sc_pcie_cap) ? 1 : 31; - pci_ocp_init(sc, sc->sc_busnr, maxslot); + nslots = (sc->sc_pcie_cap) ? 1 : 32; + pci_ocp_init(sc, sc->sc_busnr, nslots); device_add_child(dev, "pci", -1); return (bus_generic_attach(dev)); Modified: user/imp/tbemd/sys/powerpc/ofw/ofw_real.c ============================================================================== --- user/imp/tbemd/sys/powerpc/ofw/ofw_real.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/ofw/ofw_real.c Mon Apr 12 23:16:01 2010 (r206524) @@ -273,7 +273,7 @@ ofw_real_init(ofw_t ofw, void *openfirm) static int ofw_real_test(ofw_t ofw, const char *name) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -304,7 +304,7 @@ ofw_real_test(ofw_t ofw, const char *nam static phandle_t ofw_real_peer(ofw_t ofw, phandle_t node) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -326,7 +326,7 @@ ofw_real_peer(ofw_t ofw, phandle_t node) static phandle_t ofw_real_child(ofw_t ofw, phandle_t node) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -348,7 +348,7 @@ ofw_real_child(ofw_t ofw, phandle_t node static phandle_t ofw_real_parent(ofw_t ofw, phandle_t node) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -370,7 +370,7 @@ ofw_real_parent(ofw_t ofw, phandle_t nod static phandle_t ofw_real_instance_to_package(ofw_t ofw, ihandle_t instance) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -392,7 +392,7 @@ ofw_real_instance_to_package(ofw_t ofw, static ssize_t ofw_real_getproplen(ofw_t ofw, phandle_t package, const char *propname) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -422,7 +422,7 @@ static ssize_t ofw_real_getprop(ofw_t ofw, phandle_t package, const char *propname, void *buf, size_t buflen) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -458,7 +458,7 @@ static int ofw_real_nextprop(ofw_t ofw, phandle_t package, const char *previous, char *buf, size_t size) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -493,7 +493,7 @@ static int ofw_real_setprop(ofw_t ofw, phandle_t package, const char *propname, const void *buf, size_t len) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -526,7 +526,7 @@ ofw_real_setprop(ofw_t ofw, phandle_t pa static ssize_t ofw_real_canon(ofw_t ofw, const char *device, char *buf, size_t len) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -559,7 +559,7 @@ ofw_real_canon(ofw_t ofw, const char *de static phandle_t ofw_real_finddevice(ofw_t ofw, const char *device) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -586,7 +586,7 @@ ofw_real_finddevice(ofw_t ofw, const cha static ssize_t ofw_real_instance_to_path(ofw_t ofw, ihandle_t instance, char *buf, size_t len) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -619,7 +619,7 @@ ofw_real_instance_to_path(ofw_t ofw, iha static ssize_t ofw_real_package_to_path(ofw_t ofw, phandle_t package, char *buf, size_t len) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -653,7 +653,7 @@ static int ofw_real_call_method(ofw_t ofw, ihandle_t instance, const char *method, int nargs, int nreturns, unsigned long *args_and_returns) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -701,7 +701,7 @@ ofw_real_call_method(ofw_t ofw, ihandle_ static ihandle_t ofw_real_open(ofw_t ofw, const char *device) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -729,7 +729,7 @@ ofw_real_open(ofw_t ofw, const char *dev static void ofw_real_close(ofw_t ofw, ihandle_t instance) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -737,6 +737,7 @@ ofw_real_close(ofw_t ofw, ihandle_t inst } args = { (cell_t)"close", 1, + 0, }; args.instance = instance; @@ -747,7 +748,7 @@ ofw_real_close(ofw_t ofw, ihandle_t inst static ssize_t ofw_real_read(ofw_t ofw, ihandle_t instance, void *addr, size_t len) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -780,7 +781,7 @@ ofw_real_read(ofw_t ofw, ihandle_t insta static ssize_t ofw_real_write(ofw_t ofw, ihandle_t instance, const void *addr, size_t len) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -811,7 +812,7 @@ ofw_real_write(ofw_t ofw, ihandle_t inst static int ofw_real_seek(ofw_t ofw, ihandle_t instance, u_int64_t pos) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -841,7 +842,7 @@ ofw_real_seek(ofw_t ofw, ihandle_t insta static caddr_t ofw_real_claim(ofw_t ofw, void *virt, size_t size, u_int align) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -867,7 +868,7 @@ ofw_real_claim(ofw_t ofw, void *virt, si static void ofw_real_release(ofw_t ofw, void *virt, size_t size) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; @@ -876,6 +877,7 @@ ofw_real_release(ofw_t ofw, void *virt, } args = { (cell_t)"release", 2, + 0, }; args.virt = (cell_t)virt; @@ -891,12 +893,14 @@ ofw_real_release(ofw_t ofw, void *virt, static void ofw_real_enter(ofw_t ofw) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; } args = { (cell_t)"enter", + 0, + 0, }; openfirmware(&args); @@ -907,12 +911,14 @@ ofw_real_enter(ofw_t ofw) static void ofw_real_exit(ofw_t ofw) { - static struct { + struct { cell_t name; cell_t nargs; cell_t nreturns; } args = { (cell_t)"exit", + 0, + 0, }; openfirmware(&args); Modified: user/imp/tbemd/sys/powerpc/ofw/ofw_syscons.c ============================================================================== --- user/imp/tbemd/sys/powerpc/ofw/ofw_syscons.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/ofw/ofw_syscons.c Mon Apr 12 23:16:01 2010 (r206524) @@ -55,10 +55,10 @@ __FBSDID("$FreeBSD$"); #include #include -static int ofwfb_ignore_mmap_checks; +static int ofwfb_ignore_mmap_checks = 1; SYSCTL_NODE(_hw, OID_AUTO, ofwfb, CTLFLAG_RD, 0, "ofwfb"); SYSCTL_INT(_hw_ofwfb, OID_AUTO, relax_mmap, CTLFLAG_RW, - &ofwfb_ignore_mmap_checks, 0, "relax mmap bounds checking"); + &ofwfb_ignore_mmap_checks, 0, "relaxed mmap bounds checking"); extern u_char dflt_font_16[]; extern u_char dflt_font_14[]; Modified: user/imp/tbemd/sys/powerpc/powermac/cuda.c ============================================================================== --- user/imp/tbemd/sys/powerpc/powermac/cuda.c Mon Apr 12 23:14:06 2010 (r206523) +++ user/imp/tbemd/sys/powerpc/powermac/cuda.c Mon Apr 12 23:16:01 2010 (r206524) @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -55,6 +56,7 @@ __FBSDID("$FreeBSD$"); #include +#include "clock_if.h" #include "cudavar.h" #include "viareg.h" @@ -72,6 +74,12 @@ static u_int cuda_poll(device_t dev); static void cuda_send_inbound(struct cuda_softc *sc); static void cuda_send_outbound(struct cuda_softc *sc); +/* + * Clock interface + */ +static int cuda_gettime(device_t dev, struct timespec *ts); +static int cuda_settime(device_t dev, struct timespec *ts); + static device_method_t cuda_methods[] = { /* Device interface */ DEVMETHOD(device_probe, cuda_probe), @@ -90,6 +98,10 @@ static device_method_t cuda_methods[] = DEVMETHOD(adb_hb_controller_poll, cuda_poll), DEVMETHOD(adb_hb_set_autopoll_mask, cuda_adb_autopoll), + /* Clock interface */ + DEVMETHOD(clock_gettime, cuda_gettime), + DEVMETHOD(clock_settime, cuda_settime), + { 0, 0 }, }; @@ -173,6 +185,7 @@ cuda_attach(device_t dev) sc->sc_polling = 0; sc->sc_state = CUDA_NOTREADY; sc->sc_autopoll = 0; + sc->sc_rtc = -1; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:16:17 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 07B45106566B; Mon, 12 Apr 2010 23:16:17 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EA8F28FC13; Mon, 12 Apr 2010 23:16:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNGGiX070584; Mon, 12 Apr 2010 23:16:16 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNGG2t070577; Mon, 12 Apr 2010 23:16:16 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122316.o3CNGG2t070577@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:16:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206525 - in user/imp/tbemd/sys/mips: atheros cavium cavium/dev/rgmii conf include mips sibyte X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:16:17 -0000 Author: imp Date: Mon Apr 12 23:16:16 2010 New Revision: 206525 URL: http://svn.freebsd.org/changeset/base/206525 Log: merge from head, part 10 of many Modified: user/imp/tbemd/sys/mips/atheros/if_arge.c user/imp/tbemd/sys/mips/cavium/dev/rgmii/octeon_rgmx.c user/imp/tbemd/sys/mips/cavium/octeon_ebt3000_cf.c user/imp/tbemd/sys/mips/cavium/octeon_machdep.c user/imp/tbemd/sys/mips/cavium/octeon_pcmap_regs.h user/imp/tbemd/sys/mips/conf/AR71XX user/imp/tbemd/sys/mips/conf/OCTEON1 user/imp/tbemd/sys/mips/conf/OCTEON1-32 user/imp/tbemd/sys/mips/include/bus.h user/imp/tbemd/sys/mips/include/clock.h user/imp/tbemd/sys/mips/include/cpu.h user/imp/tbemd/sys/mips/include/cpufunc.h user/imp/tbemd/sys/mips/include/cpuregs.h user/imp/tbemd/sys/mips/include/db_machdep.h user/imp/tbemd/sys/mips/include/kdb.h user/imp/tbemd/sys/mips/include/param.h user/imp/tbemd/sys/mips/include/pmap.h user/imp/tbemd/sys/mips/include/smp.h user/imp/tbemd/sys/mips/include/trap.h user/imp/tbemd/sys/mips/mips/busdma_machdep.c user/imp/tbemd/sys/mips/mips/db_trace.c user/imp/tbemd/sys/mips/mips/exception.S user/imp/tbemd/sys/mips/mips/mp_machdep.c user/imp/tbemd/sys/mips/mips/nexus.c user/imp/tbemd/sys/mips/mips/pm_machdep.c user/imp/tbemd/sys/mips/mips/pmap.c user/imp/tbemd/sys/mips/mips/support.S user/imp/tbemd/sys/mips/mips/swtch.S user/imp/tbemd/sys/mips/mips/tick.c user/imp/tbemd/sys/mips/mips/trap.c user/imp/tbemd/sys/mips/mips/vm_machdep.c user/imp/tbemd/sys/mips/sibyte/sb_asm.S user/imp/tbemd/sys/mips/sibyte/sb_machdep.c user/imp/tbemd/sys/mips/sibyte/sb_scd.c user/imp/tbemd/sys/mips/sibyte/sb_scd.h Modified: user/imp/tbemd/sys/mips/atheros/if_arge.c ============================================================================== --- user/imp/tbemd/sys/mips/atheros/if_arge.c Mon Apr 12 23:16:01 2010 (r206524) +++ user/imp/tbemd/sys/mips/atheros/if_arge.c Mon Apr 12 23:16:16 2010 (r206525) @@ -171,7 +171,7 @@ extern uint32_t ar711_base_mac[ETHER_ADD static struct mtx miibus_mtx; -MTX_SYSINIT(miibus_mtx, &miibus_mtx, "arge mii lock", MTX_SPIN); +MTX_SYSINIT(miibus_mtx, &miibus_mtx, "arge mii lock", MTX_DEF); /* Modified: user/imp/tbemd/sys/mips/cavium/dev/rgmii/octeon_rgmx.c ============================================================================== --- user/imp/tbemd/sys/mips/cavium/dev/rgmii/octeon_rgmx.c Mon Apr 12 23:16:01 2010 (r206524) +++ user/imp/tbemd/sys/mips/cavium/dev/rgmii/octeon_rgmx.c Mon Apr 12 23:16:16 2010 (r206525) @@ -136,7 +136,6 @@ struct rgmx_softc_dev { u_int idx; u_char ieee[6]; - char const * typestr; /* printable name of the interface. */ u_short txb_size; /* size of TX buffer, in bytes */ /* Transmission buffer management. */ @@ -182,7 +181,6 @@ static u_int get_rgmx_port_ordinal(u_int static void octeon_rgmx_set_mac(u_int port); static void octeon_rgmx_init_sc(struct rgmx_softc_dev *sc, device_t dev, u_int port, u_int num_devices); static int octeon_rgmx_init_ifnet(struct rgmx_softc_dev *sc); -static void octeon_rgmx_mark_ready(struct rgmx_softc_dev *sc); static void octeon_rgmx_stop(struct rgmx_softc_dev *sc); static void octeon_rgmx_config_speed(u_int port, u_int); #ifdef DEBUG_RGMX_DUMP @@ -211,6 +209,7 @@ static int octeon_rgmx_intr(void *arg); /* Standard driver entry points. These can be static. */ static void octeon_rgmx_init (void *); //static driver_intr_t rgmx_intr; +static void octeon_rgmx_config_cam (struct ifnet *); static int octeon_rgmx_ioctl (struct ifnet *, u_long, caddr_t); static void octeon_rgmx_output_start (struct ifnet *); static void octeon_rgmx_output_start_locked (struct ifnet *); @@ -349,8 +348,6 @@ static int octeon_rgmx_init_ifnet (struc ifmedia_set(&sc->media, bit2media[0]); ether_ifattach(sc->ifp, sc->ieee); - /* Print additional info when attached. */ - device_printf(sc->sc_dev, "type %s, full duplex\n", sc->typestr); return (0); } @@ -447,12 +444,6 @@ static int rgmii_attach (device_t dev) device_printf(dev, " ifinit failed for rgmx port %u\n", port); return (ENOSPC); } -/* - * Don't call octeon_rgmx_mark_ready() - * ifnet will call it indirectly via octeon_rgmx_init() - * - * octeon_rgmx_mark_ready(sc); - */ num_devices++; } } @@ -1024,10 +1015,9 @@ static u_int octeon_rgmx_pko_xmit_packet * 3 words or less are left. We write our 2nd word now and then put in a chain link * to new PKO cmd buf. */ - void *pko_cmd_buf = octeon_fpa_alloc(OCTEON_FPA_TX_CMDBUF_POOL); - uint64_t phys_cmd_buf; + uint64_t phys_cmd_buf = octeon_fpa_alloc_phys(OCTEON_FPA_TX_CMDBUF_POOL); - if (!pko_cmd_buf) { + if (!phys_cmd_buf) { /* * FPA pool for xmit-buffer-commands is empty. */ @@ -1035,7 +1025,6 @@ static u_int octeon_rgmx_pko_xmit_packet octeon_spinlock_unlock(&(sc->outq_ptr[queue].lock)); return (0); } - phys_cmd_buf = OCTEON_PTR2PHYS(pko_cmd_buf); xmit_cmd_ptr[1] = pko_pkt_word.word64; xmit_cmd_ptr[2] = phys_cmd_buf; @@ -1235,6 +1224,8 @@ static void octeon_rgmx_output_start_loc for (ii = 0; ii < len; ii++) printf(" %X", dc[ii]); printf("\n"); #endif + ETHER_BPF_MTAP(ifp, m); + IF_ENQUEUE(&sc->tx_pending_queue, m); /* @@ -1648,9 +1639,106 @@ static int octeon_rgmx_medchange (struct static void octeon_rgmx_medstat (struct ifnet *ifp, struct ifmediareq *ifm) { - /* - * No support for Media Status callback - */ + struct rgmx_softc_dev *sc = ifp->if_softc; + octeon_rgmx_rxx_rx_inbnd_t link_status; + + octeon_rgmx_config_speed(sc->port, 1); + + RGMX_LOCK(sc); + + ifm->ifm_status = IFM_AVALID; + ifm->ifm_active = IFM_ETHER; + + /* + * Parse link status. + */ + link_status.word64 = sc->link_status; + + if (!link_status.bits.status) { + RGMX_UNLOCK(sc); + return; + } + + ifm->ifm_status |= IFM_ACTIVE; + + switch (link_status.bits.speed) { + case 0: + ifm->ifm_active |= IFM_10_T; + break; + case 1: + ifm->ifm_active |= IFM_100_TX; + break; + case 2: + ifm->ifm_active |= IFM_1000_T;; + break; + default: + /* Unknown! */ + break; + } + + /* + * Check duplex. + */ + if (link_status.bits.duplex == 1) + ifm->ifm_active |= IFM_FDX; + else + ifm->ifm_active |= IFM_HDX; + + RGMX_UNLOCK(sc); +} + +static void octeon_rgmx_config_cam(struct ifnet *ifp) +{ + struct rgmx_softc_dev *sc = ifp->if_softc; + u_int port = sc->port; + int index = INDEX(port); + int iface = INTERFACE(port); + u_int last_enabled; + uint64_t adr_ctl; + + last_enabled = octeon_rgmx_stop_port(port); + + adr_ctl = oct_read64(OCTEON_RGMX_RXX_ADR_CTL(index, iface)); + + /* + * Always accept broadcast traffic. + */ + if ((adr_ctl & OCTEON_RGMX_ADRCTL_ACCEPT_BROADCAST) == 0) + adr_ctl |= OCTEON_RGMX_ADRCTL_ACCEPT_BROADCAST; + + /* + * Accept all multicast in all multicast mode and in + * promiscuous mode. + * + * XXX Since we don't handle programming the CAM for + * multicast filtering, always accept all multicast. + */ + adr_ctl &= ~OCTEON_RGMX_ADRCTL_REJECT_ALL_MULTICAST; + adr_ctl |= OCTEON_RGMX_ADRCTL_ACCEPT_ALL_MULTICAST; + + /* + * In promiscuous mode, the CAM is shut off, so reject everything. + * Otherwise, filter using the CAM. + */ + if ((ifp->if_flags & IFF_PROMISC) != 0) { + adr_ctl &= ~OCTEON_RGMX_ADRCTL_CAM_MODE_ACCEPT_DMAC; + adr_ctl |= OCTEON_RGMX_ADRCTL_CAM_MODE_REJECT_DMAC; + } else { + adr_ctl &= ~OCTEON_RGMX_ADRCTL_CAM_MODE_REJECT_DMAC; + adr_ctl |= OCTEON_RGMX_ADRCTL_CAM_MODE_ACCEPT_DMAC; + } + + oct_write64(OCTEON_RGMX_RXX_ADR_CTL(index, iface), adr_ctl); + + /* + * If in promiscuous mode, disable the CAM. + */ + if ((ifp->if_flags & IFF_PROMISC) != 0) + oct_write64(OCTEON_RGMX_RXX_ADR_CAM_EN(index, iface), 0); + else + oct_write64(OCTEON_RGMX_RXX_ADR_CAM_EN(index, iface), 1); + + if (last_enabled) octeon_rgmx_start_port(port); } static int octeon_rgmx_ioctl (struct ifnet * ifp, u_long command, caddr_t data) @@ -1671,28 +1759,21 @@ static int octeon_rgmx_ioctl (struct ifn * "stopped", reflecting the UP flag. */ if (ifp->if_flags & IFF_UP) { - - /* * New state is IFF_UP * Restart or Start now, if driver is not running currently. */ if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { - printf(" SIOCSTIFFLAGS UP/Not-running\n"); break; octeon_rgmx_init(sc); - } else { - printf(" SIOCSTIFFLAGS UP/Running\n"); break; } + octeon_rgmx_config_cam(ifp); } else { /* * New state is IFF_DOWN. * Stop & shut it down now, if driver is running currently. */ if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) { - printf(" SIOCSTIFFLAGS Down/Running\n"); break; octeon_rgmx_stop(sc); - } else { - printf(" SIOCSTIFFLAGS Down/Not-Running\n"); break; } } break; @@ -1734,17 +1815,9 @@ static int octeon_rgmx_ioctl (struct ifn return (error); } - - - -/* - * octeon_rgmx_mark_ready - * - * Initialize the rgmx driver for this instance - * Initialize device. - */ -static void octeon_rgmx_mark_ready (struct rgmx_softc_dev *sc) +static void octeon_rgmx_init (void *xsc) { + struct rgmx_softc_dev *sc = xsc; /* Enable interrupts. */ /* For RGMX they are already enabled earlier */ @@ -1763,21 +1836,9 @@ static void octeon_rgmx_mark_ready (stru /* Kick start the output */ /* Hopefully PKO is running and will pick up packets via the timer or receive loop */ -} - -static void octeon_rgmx_init (void *xsc) -{ - - /* - * Called mostly from ifnet interface ifp->if_init(); - * I think we can anchor most of our iniialization here and - * not do it in different places from driver_attach(). - */ - /* - * For now, we only mark the interface ready - */ - octeon_rgmx_mark_ready((struct rgmx_softc_dev *) xsc); + /* Set link status. */ + octeon_rgmx_config_speed(sc->port, 1); } @@ -1792,7 +1853,6 @@ static void octeon_rgmx_config_speed (u_ uint64_t val64_tx_clk, val64_tx_slot, val64_tx_burst; u_int last_enabled; - sc = get_rgmx_softc(port); if (!sc) { printf(" config_speed didn't find sc int:%u port:%u", iface, port); @@ -1804,79 +1864,96 @@ static void octeon_rgmx_config_speed (u_ */ link_status.word64 = oct_read64(OCTEON_RGMX_RXX_RX_INBND(index, iface)); + RGMX_LOCK(sc); + /* * Compre to prev known state. If same then nothing to do. */ if (link_status.word64 == sc->link_status) { + RGMX_UNLOCK(sc); return; } - - RGMX_LOCK(sc); - old_link_status.word64 = sc->link_status; - sc->link_status = link_status.word64; - - last_enabled = octeon_rgmx_stop_port(port); - - gmx_cfg.word64 = oct_read64(OCTEON_RGMX_PRTX_CFG(index, iface)); - - /* - * Duplex - */ - gmx_cfg.bits.duplex = 1; - - switch (link_status.bits.speed) { - case 0: /* 10Mbps */ - gmx_cfg.bits.speed = 0; - gmx_cfg.bits.slottime = 0; - val64_tx_clk = 50; val64_tx_slot = 0x40; val64_tx_burst = 0; - break; - case 1: /* 100Mbps */ - gmx_cfg.bits.speed = 0; - gmx_cfg.bits.slottime = 0; - val64_tx_clk = 5; val64_tx_slot = 0x40; val64_tx_burst = 0; - break; - - case 2: /* 1Gbps */ - gmx_cfg.bits.speed = 1; - gmx_cfg.bits.slottime = 1; - val64_tx_clk = 1; val64_tx_slot = 0x200; val64_tx_burst = 0x2000; - break; - - case 3: /* ?? */ - default: - gmx_cfg.bits.speed = 1; - gmx_cfg.bits.slottime = 1; - val64_tx_clk = 1; val64_tx_slot = 0x200; val64_tx_burst = 0x2000; - break; - } + /* + * Compare to previous state modulo link status. If only link + * status is different, we don't need to change media. + */ + if (old_link_status.bits.duplex != link_status.bits.duplex || + old_link_status.bits.speed != link_status.bits.speed) { + last_enabled = octeon_rgmx_stop_port(port); + + gmx_cfg.word64 = oct_read64(OCTEON_RGMX_PRTX_CFG(index, iface)); - oct_write64(OCTEON_RGMX_TXX_CLK(index, iface), val64_tx_clk); - oct_write64(OCTEON_RGMX_TXX_SLOT(index, iface), val64_tx_slot); - oct_write64(OCTEON_RGMX_TXX_BURST(index, iface), val64_tx_burst); + /* + * Duplex + * XXX Set based on link_status.bits.duplex? + */ + gmx_cfg.bits.duplex = 1; + + switch (link_status.bits.speed) { + case 0: /* 10Mbps */ + gmx_cfg.bits.speed = 0; + gmx_cfg.bits.slottime = 0; + val64_tx_clk = 50; val64_tx_slot = 0x40; val64_tx_burst = 0; + break; + + case 1: /* 100Mbps */ + gmx_cfg.bits.speed = 0; + gmx_cfg.bits.slottime = 0; + val64_tx_clk = 5; val64_tx_slot = 0x40; val64_tx_burst = 0; + break; + + case 2: /* 1Gbps */ + gmx_cfg.bits.speed = 1; + gmx_cfg.bits.slottime = 1; + val64_tx_clk = 1; val64_tx_slot = 0x200; val64_tx_burst = 0x2000; + break; + + case 3: /* ?? */ + default: + gmx_cfg.bits.speed = 1; + gmx_cfg.bits.slottime = 1; + val64_tx_clk = 1; val64_tx_slot = 0x200; val64_tx_burst = 0x2000; + break; + } - oct_write64(OCTEON_RGMX_PRTX_CFG(index, iface), gmx_cfg.word64); + oct_write64(OCTEON_RGMX_TXX_CLK(index, iface), val64_tx_clk); + oct_write64(OCTEON_RGMX_TXX_SLOT(index, iface), val64_tx_slot); + oct_write64(OCTEON_RGMX_TXX_BURST(index, iface), val64_tx_burst); + + oct_write64(OCTEON_RGMX_PRTX_CFG(index, iface), gmx_cfg.word64); + + if (last_enabled) octeon_rgmx_start_port(port); + } - if (last_enabled) octeon_rgmx_start_port(port); + /* + * Now check and possibly change link status. + */ + if (link_status.bits.status != old_link_status.bits.status) { + if (report_link) { + if (link_status.bits.status) { + if_link_state_change(sc->ifp, LINK_STATE_UP); + } else { + if_link_state_change(sc->ifp, LINK_STATE_DOWN); + } + } + } - if (link_status.bits.status != old_link_status.bits.status) { + if (report_link) { + sc->link_status = link_status.word64; + } else { + /* + * We can't update link status proper since we can't + * change it in the interface, so keep the old link + * status intact but note the current speed and duplex + * settings. + */ + link_status.bits.status = old_link_status.bits.status; + sc->link_status = link_status.word64; + } -//#define DEBUG_LINESTATUS - if (link_status.bits.status) { -#ifdef DEBUG_LINESTATUS - printf(" %u/%u: Interface is now alive\n", iface, port); -#endif - if (report_link) if_link_state_change(sc->ifp, LINK_STATE_UP); - } else { -#ifdef DEBUG_LINESTATUS - printf(" %u/%u: Interface went down\n", iface, port); -#endif - if (report_link) if_link_state_change(sc->ifp, LINK_STATE_DOWN); - } - } RGMX_UNLOCK(sc); - } @@ -2096,7 +2173,6 @@ static void octeon_config_rgmii_port (u_ gmx_cfg.bits.en = 1; oct_write64(OCTEON_RGMX_PRTX_CFG(index, iface), gmx_cfg.word64); - octeon_rgmx_config_speed(port, 0); oct_write64(OCTEON_RGMX_TXX_THRESH(index, iface), 32); @@ -2181,7 +2257,7 @@ static int octeon_has_4ports (void) u_int chipid; int retcode = 1; - chipid = octeon_get_chipid() & 0xffffff00; + chipid = octeon_get_chipid(); switch (chipid) { case OCTEON_CN31XX_CHIP: Modified: user/imp/tbemd/sys/mips/cavium/octeon_ebt3000_cf.c ============================================================================== --- user/imp/tbemd/sys/mips/cavium/octeon_ebt3000_cf.c Mon Apr 12 23:16:01 2010 (r206524) +++ user/imp/tbemd/sys/mips/cavium/octeon_ebt3000_cf.c Mon Apr 12 23:16:16 2010 (r206525) @@ -89,6 +89,7 @@ __FBSDID("$FreeBSD$"); /* Status Register */ #define STATUS_BSY 0x80 /* Drive is busy */ #define STATUS_RDY 0x40 /* Drive is ready */ +#define STATUS_DF 0x20 /* Device fault */ #define STATUS_DRQ 0x08 /* Data can be transferred */ /* Miscelaneous */ @@ -153,11 +154,11 @@ static int cf_attach(device_t); static int cf_attach_geom(void *, int); /* ATA methods */ -static void cf_cmd_identify(void); -static void cf_cmd_write(uint32_t, uint32_t, void *); -static void cf_cmd_read(uint32_t, uint32_t, void *); -static void cf_wait_busy(void); -static void cf_send_cmd(uint32_t, uint8_t); +static int cf_cmd_identify(void); +static int cf_cmd_write(uint32_t, uint32_t, void *); +static int cf_cmd_read(uint32_t, uint32_t, void *); +static int cf_wait_busy(void); +static int cf_send_cmd(uint32_t, uint8_t); static void cf_attach_geom_proxy(void *arg, int flag); /* Miscelenous */ @@ -183,6 +184,8 @@ static int cf_access (struct g_provider * ------------------------------------------------------------------- */ static void cf_start (struct bio *bp) { + int error; + /* * Handle actual I/O requests. The request is passed down through * the bio struct. @@ -200,12 +203,19 @@ static void cf_start (struct bio *bp) if ((bp->bio_cmd & (BIO_READ | BIO_WRITE))) { if (bp->bio_cmd & BIO_READ) { - cf_cmd_read(bp->bio_length / drive_param.sector_size, - bp->bio_offset / drive_param.sector_size, bp->bio_data); - + error = cf_cmd_read(bp->bio_length / drive_param.sector_size, + bp->bio_offset / drive_param.sector_size, bp->bio_data); } else if (bp->bio_cmd & BIO_WRITE) { - cf_cmd_write(bp->bio_length / drive_param.sector_size, - bp->bio_offset/drive_param.sector_size, bp->bio_data); + error = cf_cmd_write(bp->bio_length / drive_param.sector_size, + bp->bio_offset/drive_param.sector_size, bp->bio_data); + } else { + printf("%s: unrecognized bio_cmd %x.\n", __func__, bp->bio_cmd); + error = ENOTSUP; + } + + if (error != 0) { + g_io_deliver(bp, error); + return; } bp->bio_resid = 0; @@ -227,12 +237,13 @@ static int cf_ioctl (struct g_provider * * * Read nr_sectors from the device starting from start_sector. */ -static void cf_cmd_read (uint32_t nr_sectors, uint32_t start_sector, void *buf) +static int cf_cmd_read (uint32_t nr_sectors, uint32_t start_sector, void *buf) { unsigned long lba; uint32_t count; uint16_t *ptr_16; uint8_t *ptr_8; + int error; //#define OCTEON_VISUAL_CF_0 1 #ifdef OCTEON_VISUAL_CF_0 @@ -244,8 +255,11 @@ static void cf_cmd_read (uint32_t nr_sec while (nr_sectors--) { - - cf_send_cmd(lba, CMD_READ_SECTOR); + error = cf_send_cmd(lba, CMD_READ_SECTOR); + if (error != 0) { + printf("%s: cf_send_cmd(CMD_READ_SECTOR) failed: %d\n", __func__, error); + return (error); + } if (bus_width == 8) { volatile uint8_t *task_file = (volatile uint8_t*)base_addr; @@ -270,6 +284,7 @@ static void cf_cmd_read (uint32_t nr_sec #ifdef OCTEON_VISUAL_CF_0 octeon_led_write_char(0, ' '); #endif + return (0); } @@ -279,12 +294,13 @@ static void cf_cmd_read (uint32_t nr_sec * * Write nr_sectors to the device starting from start_sector. */ -static void cf_cmd_write (uint32_t nr_sectors, uint32_t start_sector, void *buf) +static int cf_cmd_write (uint32_t nr_sectors, uint32_t start_sector, void *buf) { uint32_t lba; uint32_t count; uint16_t *ptr_16; uint8_t *ptr_8; + int error; //#define OCTEON_VISUAL_CF_1 1 #ifdef OCTEON_VISUAL_CF_1 @@ -295,8 +311,11 @@ static void cf_cmd_write (uint32_t nr_se ptr_16 = (uint16_t*)buf; while (nr_sectors--) { - - cf_send_cmd(lba, CMD_WRITE_SECTOR); + error = cf_send_cmd(lba, CMD_WRITE_SECTOR); + if (error != 0) { + printf("%s: cf_send_cmd(CMD_WRITE_SECTOR) failed: %d\n", __func__, error); + return (error); + } if (bus_width == 8) { volatile uint8_t *task_file; @@ -324,6 +343,7 @@ static void cf_cmd_write (uint32_t nr_se #ifdef OCTEON_VISUAL_CF_1 octeon_led_write_char(1, ' '); #endif + return (0); } @@ -335,10 +355,11 @@ static void cf_cmd_write (uint32_t nr_se * it in the drive_param structure * */ -static void cf_cmd_identify (void) +static int cf_cmd_identify (void) { int count; uint8_t status; + int error; if (bus_width == 8) { volatile uint8_t *task_file; @@ -356,11 +377,11 @@ static void cf_cmd_identify (void) task_file[TF_DRV_HEAD] = 0; task_file[TF_COMMAND] = CMD_IDENTIFY; - cf_wait_busy(); - - for (count = 0; count < SECTOR_SIZE; count++) - drive_param.u.buf[count] = task_file[TF_DATA]; - + error = cf_wait_busy(); + if (error == 0) { + for (count = 0; count < SECTOR_SIZE; count++) + drive_param.u.buf[count] = task_file[TF_DATA]; + } } else { volatile uint16_t *task_file; @@ -374,17 +395,22 @@ static void cf_cmd_identify (void) task_file[TF_CYL_LSB/2] = 0; /* this includes TF_CYL_MSB */ task_file[TF_DRV_HEAD/2] = 0 | (CMD_IDENTIFY<<8); /* this includes TF_COMMAND */ - cf_wait_busy(); - - for (count = 0; count < SECTOR_SIZE; count+=2) { - uint16_t temp; - temp = task_file[TF_DATA]; - - /* endianess will be swapped below */ - drive_param.u.buf[count] = (temp & 0xff); - drive_param.u.buf[count+1] = (temp & 0xff00)>>8; + error = cf_wait_busy(); + if (error == 0) { + for (count = 0; count < SECTOR_SIZE; count+=2) { + uint16_t temp; + temp = task_file[TF_DATA]; + + /* endianess will be swapped below */ + drive_param.u.buf[count] = (temp & 0xff); + drive_param.u.buf[count+1] = (temp & 0xff00)>>8; + } } } + if (error != 0) { + printf("%s: identify failed: %d\n", __func__, error); + return (error); + } cf_swap_ascii(drive_param.u.driveid.model, drive_param.model); @@ -394,6 +420,7 @@ static void cf_cmd_identify (void) drive_param.sec_track = SWAP_SHORT (drive_param.u.driveid.cur_sectors); drive_param.nr_sectors = SWAP_LONG (drive_param.u.driveid.lba_capacity); + return (0); } @@ -404,7 +431,7 @@ static void cf_cmd_identify (void) * Send command to read/write one sector specified by lba. * */ -static void cf_send_cmd (uint32_t lba, uint8_t cmd) +static int cf_send_cmd (uint32_t lba, uint8_t cmd) { uint8_t status; @@ -439,7 +466,7 @@ static void cf_send_cmd (uint32_t lba, u } - cf_wait_busy(); + return (cf_wait_busy()); } /* ------------------------------------------------------------------- * @@ -448,12 +475,16 @@ static void cf_send_cmd (uint32_t lba, u * * Wait until the drive finishes a given command and data is * ready to be transferred. This is done by repeatedly checking - * the BSY and DRQ bits of the status register. When the controller - * is ready for data transfer, it clears the BSY bit and sets the - * DRQ bit. + * the BSY bit of the status register. When the controller is ready for + * data transfer, it clears the BSY bit and sets the DRQ bit. + * + * If the DF bit is ever set, we return error. * + * This code originally spun on DRQ. If that behavior turns out to be + * necessary, a flag can be added or this function can be called + * repeatedly as long as it is returning ENXIO. */ -static void cf_wait_busy (void) +static int cf_wait_busy (void) { uint8_t status; @@ -469,7 +500,11 @@ static void cf_wait_busy (void) task_file = (volatile uint8_t *)base_addr; status = task_file[TF_STATUS]; - while ((status & STATUS_BSY) == STATUS_BSY || (status & STATUS_DRQ) != STATUS_DRQ ) { + while ((status & STATUS_BSY) == STATUS_BSY) { + if ((status & STATUS_DF) != 0) { + printf("%s: device fault (status=%x)\n", __func__, status); + return (EIO); + } DELAY(WAIT_DELAY); status = task_file[TF_STATUS]; } @@ -478,15 +513,24 @@ static void cf_wait_busy (void) task_file = (volatile uint16_t *)base_addr; status = task_file[TF_STATUS/2]>>8; - while ((status & STATUS_BSY) == STATUS_BSY || (status & STATUS_DRQ) != STATUS_DRQ ) { + while ((status & STATUS_BSY) == STATUS_BSY) { + if ((status & STATUS_DF) != 0) { + printf("%s: device fault (status=%x)\n", __func__, status); + return (EIO); + } DELAY(WAIT_DELAY); status = (uint8_t)(task_file[TF_STATUS/2]>>8); } } + if ((status & STATUS_DRQ) == 0) { + printf("%s: device not ready (status=%x)\n", __func__, status); + return (ENXIO); + } #ifdef OCTEON_VISUAL_CF_2 octeon_led_write_char(2, ' '); #endif + return (0); } /* ------------------------------------------------------------------- * @@ -522,9 +566,7 @@ static int cf_probe (device_t dev) device_set_desc(dev, "Octeon Compact Flash Driver"); - cf_cmd_identify(); - - return (0); + return (cf_cmd_identify()); } /* ------------------------------------------------------------------- * @@ -543,7 +585,6 @@ static void cf_identify (driver_t *drv, int count = 0; octeon_mio_boot_reg_cfgx_t cfg; - if (!octeon_board_real()) return; Modified: user/imp/tbemd/sys/mips/cavium/octeon_machdep.c ============================================================================== --- user/imp/tbemd/sys/mips/cavium/octeon_machdep.c Mon Apr 12 23:16:01 2010 (r206524) +++ user/imp/tbemd/sys/mips/cavium/octeon_machdep.c Mon Apr 12 23:16:16 2010 (r206525) @@ -730,8 +730,6 @@ platform_start(__register_t a0, __regist { uint64_t platform_counter_freq; - boothowto |= RB_SINGLE; - /* Initialize pcpu stuff */ mips_pcpu0_init(); mips_timer_early_init(OCTEON_CLOCK_DEFAULT); @@ -873,8 +871,9 @@ int octeon_chip_rev_major = 0, octeon_ch static octeon_boot_descriptor_t *app_desc_ptr; static cvmx_bootinfo_t *cvmx_desc_ptr; -#define OCTEON_BOARD_TYPE_NONE 0 -#define OCTEON_BOARD_TYPE_SIM 1 +#define OCTEON_BOARD_TYPE_NONE 0 +#define OCTEON_BOARD_TYPE_SIM 1 +#define OCTEON_BOARD_TYPE_CN3010_EVB_HS5 11 #define OCTEON_CLOCK_MIN (100 * 1000 * 1000) #define OCTEON_CLOCK_MAX (800 * 1000 * 1000) @@ -886,11 +885,23 @@ static cvmx_bootinfo_t *cvmx_desc_ptr; int octeon_board_real(void) { - if ((octeon_board_type == OCTEON_BOARD_TYPE_NONE) || - (octeon_board_type == OCTEON_BOARD_TYPE_SIM) || - !octeon_board_rev_major) + switch (octeon_board_type) { + case OCTEON_BOARD_TYPE_NONE: + case OCTEON_BOARD_TYPE_SIM: return 0; - return 1; + case OCTEON_BOARD_TYPE_CN3010_EVB_HS5: + /* + * XXX + * The CAM-0100 identifies itself as type 11, revision 0.0, + * despite its being rather real. Disable the revision check + * for type 11. + */ + return 1; + default: + if (octeon_board_rev_major == 0) + return 0; + return 1; + } } static void Modified: user/imp/tbemd/sys/mips/cavium/octeon_pcmap_regs.h ============================================================================== --- user/imp/tbemd/sys/mips/cavium/octeon_pcmap_regs.h Mon Apr 12 23:16:01 2010 (r206524) +++ user/imp/tbemd/sys/mips/cavium/octeon_pcmap_regs.h Mon Apr 12 23:16:16 2010 (r206525) @@ -90,350 +90,228 @@ extern struct pcpu *cpuid_to_pcpu[]; #define OCTEON_SYNCW __asm __volatile (".word 0x10f" : : ) #define OCTEON_SYNCWS __asm __volatile (".word 0x14f" : : ) -#if defined(__mips_n32) || defined(__mips_n64) +#if defined(__mips_n64) +#define oct_write64(a, v) (*(volatile uint64_t *)(a) = (uint64_t)(v)) +#define oct_write8_x8(a, v) (*(volatile uint8_t *)(a) = (uint8_t)(v)) + +#define OCT_READ(n, t) \ +static inline t oct_read ## n(uintptr_t a) \ +{ \ + volatile t *p = (volatile t *)a; \ + return (*p); \ +} + +OCT_READ(8, uint8_t); +OCT_READ(16, uint16_t); +OCT_READ(32, uint32_t); +OCT_READ(64, uint64_t); +#elif defined(__mips_n32) || defined(__mips_o32) +#if defined(__mips_n32) static inline void oct_write64 (uint64_t csr_addr, uint64_t val64) { - uint64_t *ptr = (uint64_t *) csr_addr; - *ptr = val64; -} - -static inline void oct_write64_int64 (uint64_t csr_addr, int64_t val64i) -{ - int64_t *ptr = (int64_t *) csr_addr; - *ptr = val64i; + __asm __volatile ( + ".set push\n" + ".set mips64\n" + "sd %0, 0(%1)\n" + ".set pop\n" + : + : "r"(val64), "r"(csr_addr)); } static inline void oct_write8_x8 (uint64_t csr_addr, uint8_t val8) { - uint64_t *ptr = (uint64_t *) csr_addr; - *ptr = (uint64_t) val8; -} + __asm __volatile ( + ".set push\n" + ".set mips64\n" + "sb %0, 0(%1)\n" + ".set pop\n" + : + : "r"(val8), "r"(csr_addr)); +} + +#define OCT_READ(n, t, insn) \ +static inline t oct_read ## n(uint64_t a) \ +{ \ + uint64_t tmp; \ + \ + __asm __volatile ( \ + ".set push\n" \ + ".set mips64\n" \ + insn "\t%0, 0(%1)\n" \ + ".set pop\n" \ + : "=r"(tmp) \ + : "r"(a)); \ + return ((t)tmp); \ +} + +OCT_READ(8, uint8_t, "lb"); +OCT_READ(16, uint16_t, "lh"); +OCT_READ(32, uint32_t, "lw"); +OCT_READ(64, uint64_t, "ld"); +#else -static inline void oct_write8 (uint64_t csr_addr, uint8_t val8) +/* + * XXX + * Add o32 variants that load the address into a register and the result out + * of a register properly, and simply disable interrupts before and after and + * hope that we don't need to refill or modify the TLB to access the address. + * I'd be a lot happier if csr_addr were a physical address and we mapped it + * into XKPHYS here so that we could guarantee that interrupts were the only + * kind of exception we needed to worry about. + * + * Also, some of this inline assembly is needlessly verbose. Oh, well. + */ +static inline void oct_write64 (uint64_t csr_addr, uint64_t val64) { - oct_write64(csr_addr, (uint64_t) val8); -} + uint32_t csr_addrh = csr_addr >> 32; + uint32_t csr_addrl = csr_addr; + uint32_t valh = val64 >> 32; + uint32_t vall = val64; + uint32_t tmp1; + uint32_t tmp2; + uint32_t tmp3; + register_t sr; -static inline void oct_write16 (uint64_t csr_addr, uint16_t val16) -{ - oct_write64(csr_addr, (uint64_t) val16); -} + sr = intr_disable(); -static inline void oct_write32 (uint64_t csr_addr, uint32_t val32) -{ - oct_write64(csr_addr, (uint64_t) val32); -} + __asm __volatile ( + ".set push\n" + ".set mips64\n" + ".set noreorder\n" + ".set noat\n" + "dsll %0, %3, 32\n" + "dsll %1, %5, 32\n" + "dsll %2, %4, 32\n" + "dsrl %2, %2, 32\n" + "or %0, %0, %2\n" + "dsll %2, %6, 32\n" + "dsrl %2, %2, 32\n" + "or %1, %1, %2\n" + "sd %0, 0(%1)\n" + ".set pop\n" + : "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3) + : "r" (valh), "r" (vall), "r" (csr_addrh), "r" (csr_addrl)); -static inline uint8_t oct_read8 (uint64_t csr_addr) -{ - uint8_t *ptr = (uint8_t *) csr_addr; - return (*ptr); + intr_restore(sr); } -static inline uint8_t oct_read16 (uint64_t csr_addr) +static inline void oct_write8_x8 (uint64_t csr_addr, uint8_t val8) { - uint16_t *ptr = (uint16_t *) csr_addr; - return (*ptr); -} + uint32_t csr_addrh = csr_addr >> 32; + uint32_t csr_addrl = csr_addr; + uint32_t tmp1; + uint32_t tmp2; + register_t sr; + sr = intr_disable(); -static inline uint32_t oct_read32 (uint64_t csr_addr) -{ - uint32_t *ptr = (uint32_t *) csr_addr; - return (*ptr); -} + __asm __volatile ( + ".set push\n" + ".set mips64\n" + ".set noreorder\n" + ".set noat\n" + "dsll %0, %3, 32\n" + "dsll %1, %4, 32\n" + "dsrl %1, %1, 32\n" + "or %0, %0, %1\n" + "sb %2, 0(%0)\n" + ".set pop\n" + : "=&r" (tmp1), "=&r" (tmp2) + : "r" (val8), "r" (csr_addrh), "r" (csr_addrl)); + + intr_restore(sr); +} + +#define OCT_READ(n, t, insn) \ +static inline t oct_read ## n(uint64_t csr_addr) \ +{ \ + uint32_t csr_addrh = csr_addr >> 32; \ + uint32_t csr_addrl = csr_addr; \ + uint32_t tmp1, tmp2; \ + register_t sr; \ + \ + sr = intr_disable(); \ + \ + __asm __volatile ( \ + ".set push\n" \ + ".set mips64\n" \ + ".set noreorder\n" \ + ".set noat\n" \ + "dsll %1, %2, 32\n" \ + "dsll %0, %3, 32\n" \ + "dsrl %0, %0, 32\n" \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:18:17 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F940106566C; Mon, 12 Apr 2010 23:18:17 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3EE468FC35; Mon, 12 Apr 2010 23:18:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNIHkx071137; Mon, 12 Apr 2010 23:18:17 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNIHMp071127; Mon, 12 Apr 2010 23:18:17 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122318.o3CNIHMp071127@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:18:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206526 - in user/imp/tbemd/sys/modules: . hwpmc iwnfw/iwn6000 ixgbe linux procfs syscons syscons/beastie wlan zfs X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:18:17 -0000 Author: imp Date: Mon Apr 12 23:18:16 2010 New Revision: 206526 URL: http://svn.freebsd.org/changeset/base/206526 Log: merge from head, part 11 of many Added: user/imp/tbemd/sys/modules/syscons/beastie/ - copied from r206514, head/sys/modules/syscons/beastie/ Modified: user/imp/tbemd/sys/modules/Makefile user/imp/tbemd/sys/modules/hwpmc/Makefile user/imp/tbemd/sys/modules/iwnfw/iwn6000/Makefile user/imp/tbemd/sys/modules/ixgbe/Makefile user/imp/tbemd/sys/modules/linux/Makefile user/imp/tbemd/sys/modules/procfs/Makefile user/imp/tbemd/sys/modules/syscons/Makefile user/imp/tbemd/sys/modules/wlan/Makefile user/imp/tbemd/sys/modules/zfs/Makefile Modified: user/imp/tbemd/sys/modules/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/Makefile Mon Apr 12 23:16:16 2010 (r206525) +++ user/imp/tbemd/sys/modules/Makefile Mon Apr 12 23:18:16 2010 (r206526) @@ -20,6 +20,7 @@ SUBDIR= ${_3dfx} \ aio \ alc \ ale \ + alq \ ${_amd} \ ${_amdsbwd} \ ${_amdtemp} \ @@ -66,7 +67,7 @@ SUBDIR= ${_3dfx} \ ${_cryptodev} \ ${_cs} \ ${_ctau} \ - cxgb \ + ${_cxgb} \ ${_cyclic} \ dc \ dcons \ @@ -268,18 +269,18 @@ SUBDIR= ${_3dfx} \ stge \ ${_streams} \ ${_svr4} \ - sym \ + ${_sym} \ ${_syscons} \ sysvipc \ ti \ tl \ - ${_tmpfs} \ + tmpfs \ trm \ ${_twa} \ twe \ tx \ txp \ - uart \ + ${_uart} \ ubsec \ udf \ udf_iconv \ @@ -312,11 +313,22 @@ SUBDIR= ${_3dfx} \ ${_zfs} \ zlib \ -.if ${MACHINE_CPUARCH} != "powerpc" +.if ${MACHINE_CPUARCH} != "powerpc" && ${MACHINE_CPUARCH} != "arm" && \ + ${MACHINE_CPUARCH} != "mips" _syscons= syscons _vpo= vpo .endif +.if ${MACHINE_ARCH} != "arm" && ${MACHINE_ARCH} != "mips" +# no BUS_SPACE_UNSPECIFIED +# No barrier instruction support (specific to this driver) +_sym= sym +# no uart_cpu_$MACHINE_ARCH +_uart= uart +# intr_disable() is a macro, causes problems +_cxgb= cxgb +.endif + .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) .if exists(${.CURDIR}/../opencrypto) _crypto= crypto @@ -416,7 +428,6 @@ _sppp= sppp _stg= stg _streams= streams _svr4= svr4 -_tmpfs= tmpfs _wi= wi _xe= xe .if ${MK_ZFS} != "no" || defined(ALL_MODULES) @@ -554,7 +565,6 @@ _sound= sound _speaker= speaker _splash= splash _sppp= sppp -_tmpfs= tmpfs _twa= twa _vesa= vesa _x86bios= x86bios @@ -567,10 +577,7 @@ _zfs= zfs .endif .if ${MACHINE_CPUARCH} == "ia64" -# Modules not enabled on ia64 (as compared to i386) include: -# aac acpi aout apm atspeaker drm ibcs2 linprocfs linux ncv -# nsp s3 sbni stg vesa -# acpi is not enabled because it is broken as a module on ia64 +_aac= aac _aic= aic _an= an _arcnet= arcnet @@ -583,12 +590,17 @@ _cm= cm _cmx= cmx _coff= coff _cpufreq= cpufreq +_dpt= dpt _em= em _ep= ep +_et= et _exca= exca _fe= fe +_hptiop= hptiop +_ida= ida _igb= igb _iir= iir +_ips= ips _mly= mly _pccard= pccard _scsi_low= scsi_low @@ -597,6 +609,7 @@ _sound= sound _splash= splash _sppp= sppp _streams= streams +_twa= twa _wi= wi _xe= xe .endif Modified: user/imp/tbemd/sys/modules/hwpmc/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/hwpmc/Makefile Mon Apr 12 23:16:16 2010 (r206525) +++ user/imp/tbemd/sys/modules/hwpmc/Makefile Mon Apr 12 23:18:16 2010 (r206526) @@ -10,7 +10,7 @@ SRCS= hwpmc_mod.c hwpmc_logging.c vnode_ .if ${MACHINE_CPUARCH} == "amd64" SRCS+= hwpmc_amd.c hwpmc_core.c hwpmc_intel.c hwpmc_piv.c hwpmc_tsc.c -SRCS+= hwpmc_x86.c +SRCS+= hwpmc_x86.c hwpmc_uncore.c SRCS+= device_if.h bus_if.h .endif @@ -20,7 +20,7 @@ SRCS+= hwpmc_arm.c .if ${MACHINE_CPUARCH} == "i386" SRCS+= hwpmc_amd.c hwpmc_core.c hwpmc_intel.c hwpmc_piv.c hwpmc_ppro.c -SRCS+= hwpmc_pentium.c hwpmc_tsc.c hwpmc_x86.c +SRCS+= hwpmc_pentium.c hwpmc_tsc.c hwpmc_x86.c hwpmc_uncore.c SRCS+= device_if.h bus_if.h .endif Modified: user/imp/tbemd/sys/modules/iwnfw/iwn6000/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/iwnfw/iwn6000/Makefile Mon Apr 12 23:16:16 2010 (r206525) +++ user/imp/tbemd/sys/modules/iwnfw/iwn6000/Makefile Mon Apr 12 23:18:16 2010 (r206526) @@ -1,6 +1,6 @@ # $FreeBSD$ KMOD= iwn6000fw -IMG= iwlwifi-6000-9.176.4.1 +IMG= iwlwifi-6000-9.193.4.1 .include Modified: user/imp/tbemd/sys/modules/ixgbe/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/ixgbe/Makefile Mon Apr 12 23:16:16 2010 (r206525) +++ user/imp/tbemd/sys/modules/ixgbe/Makefile Mon Apr 12 23:18:16 2010 (r206526) @@ -6,7 +6,7 @@ SRCS += ixgbe.c # Shared source SRCS += ixgbe_common.c ixgbe_api.c ixgbe_phy.c SRCS += ixgbe_82599.c ixgbe_82598.c -CFLAGS+= -I${.CURDIR}/../../dev/ixgbe -DSMP +CFLAGS+= -I${.CURDIR}/../../dev/ixgbe -DSMP -DIXGBE_FDIR clean: rm -f device_if.h bus_if.h pci_if.h setdef* *_StripErr Modified: user/imp/tbemd/sys/modules/linux/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/linux/Makefile Mon Apr 12 23:16:16 2010 (r206525) +++ user/imp/tbemd/sys/modules/linux/Makefile Mon Apr 12 23:18:16 2010 (r206526) @@ -2,7 +2,7 @@ .if ${MACHINE_CPUARCH} == "amd64" SFX= 32 -CFLAGS+=-DCOMPAT_IA32 -DCOMPAT_LINUX32 +CFLAGS+=-DCOMPAT_FREEBSD32 -DCOMPAT_LINUX32 .endif .PATH: ${.CURDIR}/../../compat/linux ${.CURDIR}/../../${MACHINE_CPUARCH}/linux${SFX} Modified: user/imp/tbemd/sys/modules/procfs/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/procfs/Makefile Mon Apr 12 23:16:16 2010 (r206525) +++ user/imp/tbemd/sys/modules/procfs/Makefile Mon Apr 12 23:18:16 2010 (r206526) @@ -35,7 +35,7 @@ opt_compat.h: echo "#define COMPAT_FREEBSD5 1" >> ${.TARGET} echo "#define COMPAT_FREEBSD6 1" >> ${.TARGET} .if ${MACHINE_CPUARCH} == "amd64" - echo "#define COMPAT_IA32 1" >> ${.TARGET} + echo "#define COMPAT_FREEBSD32 1" >> ${.TARGET} echo "#define COMPAT_LINUX32 1" >> ${.TARGET} .endif .endif Modified: user/imp/tbemd/sys/modules/syscons/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/syscons/Makefile Mon Apr 12 23:16:16 2010 (r206525) +++ user/imp/tbemd/sys/modules/syscons/Makefile Mon Apr 12 23:18:16 2010 (r206526) @@ -1,6 +1,7 @@ # $FreeBSD$ SUBDIR= ${_apm} \ + ${_beastie} \ blank \ ${_daemon} \ ${_dragon} \ @@ -18,6 +19,7 @@ _apm= apm .endif .if ${MACHINE_CPUARCH} != "sparc64" +_beastie= beastie _daemon= daemon _dragon= dragon _fire= fire Modified: user/imp/tbemd/sys/modules/wlan/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/wlan/Makefile Mon Apr 12 23:16:16 2010 (r206525) +++ user/imp/tbemd/sys/modules/wlan/Makefile Mon Apr 12 23:18:16 2010 (r206526) @@ -3,12 +3,13 @@ .PATH: ${.CURDIR}/../../net80211 KMOD= wlan -SRCS= ieee80211.c ieee80211_action.c ieee80211_ageq.c \ +SRCS= ieee80211.c ieee80211_action.c ieee80211_ageq.c ieee80211_amrr.c \ ieee80211_crypto.c ieee80211_crypto_none.c ieee80211_dfs.c \ ieee80211_freebsd.c ieee80211_input.c ieee80211_ioctl.c \ ieee80211_mesh.c ieee80211_node.c ieee80211_output.c ieee80211_phy.c \ ieee80211_power.c ieee80211_proto.c ieee80211_scan.c \ - ieee80211_scan_sta.c ieee80211_radiotap.c ieee80211_regdomain.c \ + ieee80211_scan_sta.c ieee80211_radiotap.c ieee80211_ratectl.c \ + ieee80211_regdomain.c ieee80211_rssadapt.c \ ieee80211_ht.c ieee80211_hwmp.c ieee80211_adhoc.c ieee80211_hostap.c \ ieee80211_monitor.c ieee80211_sta.c ieee80211_wds.c ieee80211_ddb.c SRCS+= bus_if.h device_if.h opt_inet.h opt_inet6.h opt_ipx.h opt_wlan.h \ Modified: user/imp/tbemd/sys/modules/zfs/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/zfs/Makefile Mon Apr 12 23:16:16 2010 (r206525) +++ user/imp/tbemd/sys/modules/zfs/Makefile Mon Apr 12 23:18:16 2010 (r206526) @@ -63,8 +63,8 @@ ZFS_SRCS= ${ZFS_OBJS:C/.o$/.c/} SRCS+= ${ZFS_SRCS} SRCS+= vdev_geom.c -# Use UMA for ZIO allocation. This is not stable. -#CFLAGS+=-DZIO_USE_UMA +# Use UMA for ZIO allocation. +CFLAGS+=-DZIO_USE_UMA # Use FreeBSD's namecache. CFLAGS+=-DFREEBSD_NAMECACHE From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:19:12 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31C51106564A; Mon, 12 Apr 2010 23:19:12 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 080928FC27; Mon, 12 Apr 2010 23:19:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNJBaO071414; Mon, 12 Apr 2010 23:19:11 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNJBfJ071410; Mon, 12 Apr 2010 23:19:11 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122319.o3CNJBfJ071410@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:19:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206527 - in user/imp/tbemd/sys/modules: dummynet em geom geom/geom_sched X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:19:12 -0000 Author: imp Date: Mon Apr 12 23:19:11 2010 New Revision: 206527 URL: http://svn.freebsd.org/changeset/base/206527 Log: merge from head, part 12 of many Added: user/imp/tbemd/sys/modules/geom/geom_sched/ - copied from r206514, head/sys/modules/geom/geom_sched/ Modified: user/imp/tbemd/sys/modules/dummynet/Makefile user/imp/tbemd/sys/modules/em/Makefile user/imp/tbemd/sys/modules/geom/Makefile Modified: user/imp/tbemd/sys/modules/dummynet/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/dummynet/Makefile Mon Apr 12 23:18:16 2010 (r206526) +++ user/imp/tbemd/sys/modules/dummynet/Makefile Mon Apr 12 23:19:11 2010 (r206527) @@ -5,6 +5,9 @@ .PATH: ${.CURDIR}/../../netinet/ipfw KMOD= dummynet SRCS= ip_dummynet.c +SRCS+= ip_dn_glue.c ip_dn_io.c +SRCS+= dn_heap.c dn_sched_fifo.c dn_sched_qfq.c dn_sched_rr.c dn_sched_wf2q.c +SRCS+= dn_sched_prio.c SRCS+= opt_inet6.h .if !defined(KERNBUILDDIR) Modified: user/imp/tbemd/sys/modules/em/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/em/Makefile Mon Apr 12 23:18:16 2010 (r206526) +++ user/imp/tbemd/sys/modules/em/Makefile Mon Apr 12 23:19:11 2010 (r206527) @@ -2,15 +2,19 @@ .PATH: ${.CURDIR}/../../dev/e1000 KMOD = if_em SRCS = device_if.h bus_if.h pci_if.h opt_inet.h -SRCS += if_em.c $(SHARED_SRCS) -SHARED_SRCS = e1000_api.c e1000_phy.c e1000_nvm.c e1000_mac.c e1000_manage.c -SHARED_SRCS += e1000_80003es2lan.c e1000_82542.c e1000_82541.c e1000_82543.c -SHARED_SRCS += e1000_82540.c e1000_ich8lan.c e1000_82571.c e1000_osdep.c -SHARED_SRCS += e1000_82575.c +SRCS += $(CORE_SRC) $(LEGACY_SRC) +SRCS += $(COMMON_SHARED) $(LEGACY_SHARED) $(PCIE_SHARED) +CORE_SRC = if_em.c e1000_osdep.c +# This is the Legacy, pre-PCIE source, it can be +# undefined when using modular driver if not needed +LEGACY_SRC += if_lem.c +COMMON_SHARED = e1000_api.c e1000_phy.c e1000_nvm.c e1000_mac.c e1000_manage.c +PCIE_SHARED = e1000_80003es2lan.c e1000_ich8lan.c e1000_82571.c e1000_82575.c +LEGACY_SHARED = e1000_82540.c e1000_82542.c e1000_82541.c e1000_82543.c -CFLAGS+= -I${.CURDIR}/../../dev/e1000 +CFLAGS += -I${.CURDIR}/../../dev/e1000 -# DEVICE_POLLING gives you Legacy interrupt handling +# DEVICE_POLLING for a non-interrupt-driven method #CFLAGS += -DDEVICE_POLLING clean: Modified: user/imp/tbemd/sys/modules/geom/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/geom/Makefile Mon Apr 12 23:18:16 2010 (r206526) +++ user/imp/tbemd/sys/modules/geom/Makefile Mon Apr 12 23:19:11 2010 (r206527) @@ -19,6 +19,7 @@ SUBDIR= geom_bde \ geom_part \ geom_pc98 \ geom_raid3 \ + geom_sched \ geom_shsec \ geom_stripe \ geom_sunlabel \ From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:19:28 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0DCF8106567D; Mon, 12 Apr 2010 23:19:28 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D8A548FC2E; Mon, 12 Apr 2010 23:19:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNJRo0071519; Mon, 12 Apr 2010 23:19:27 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNJRMh071518; Mon, 12 Apr 2010 23:19:27 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122319.o3CNJRMh071518@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:19:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206528 - user/imp/tbemd/sys/modules/alq X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:19:28 -0000 Author: imp Date: Mon Apr 12 23:19:27 2010 New Revision: 206528 URL: http://svn.freebsd.org/changeset/base/206528 Log: merge from head, part 13 of many Added: user/imp/tbemd/sys/modules/alq/ - copied from r206514, head/sys/modules/alq/ From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:22:33 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C3A841065689; Mon, 12 Apr 2010 23:22:33 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9A4C68FC1C; Mon, 12 Apr 2010 23:22:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNMXwK072243; Mon, 12 Apr 2010 23:22:33 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNMWmX072240; Mon, 12 Apr 2010 23:22:32 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122322.o3CNMWmX072240@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:22:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206529 - user/imp/tbemd/sys/modules/acpi/acpi X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:22:33 -0000 Author: imp Date: Mon Apr 12 23:22:32 2010 New Revision: 206529 URL: http://svn.freebsd.org/changeset/base/206529 Log: merge from head, part 14 of 14 Modified: user/imp/tbemd/sys/modules/acpi/acpi/Makefile Directory Properties: user/imp/tbemd/ (props changed) Modified: user/imp/tbemd/sys/modules/acpi/acpi/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/acpi/acpi/Makefile Mon Apr 12 23:19:27 2010 (r206528) +++ user/imp/tbemd/sys/modules/acpi/acpi/Makefile Mon Apr 12 23:22:32 2010 (r206529) @@ -1,11 +1,11 @@ # $FreeBSD$ -.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "ia64" -.error "ACPI can only be compiled into the kernel on the amd64 and ia64 platforms" +.if ${MACHINE_CPUARCH} == "ia64" +.error "ACPI can only be compiled into the kernel on the ia64 platform" .endif -.if ${MACHINE} != "i386" -.error "The ACPI module is only for i386" +.if ${MACHINE} != "amd64" && ${MACHINE} != "i386" +.error "The ACPI module is only for amd64 and i386" .endif .PATH: ${.CURDIR}/../../../contrib/dev/acpica/debugger \ @@ -35,10 +35,10 @@ SRCS+= dsfield.c dsinit.c dsmethod.c dsm SRCS+= dsutils.c dswexec.c dswload.c dswscope.c dswstate.c SRCS+= evevent.c evgpe.c evgpeblk.c evmisc.c evregion.c evrgnini.c evsci.c SRCS+= evxface.c evxfevnt.c evxfregn.c -SRCS+= exconfig.c exconvrt.c excreate.c exdump.c exfield.c exfldio.c exmisc.c -SRCS+= exmutex.c exnames.c exoparg1.c exoparg2.c exoparg3.c exoparg6.c -SRCS+= exprep.c exregion.c exresnte.c exresolv.c exresop.c exstore.c -SRCS+= exstoren.c exstorob.c exsystem.c exutils.c +SRCS+= exconfig.c exconvrt.c excreate.c exdebug.c exdump.c exfield.c +SRCS+= exfldio.c exmisc.c exmutex.c exnames.c exoparg1.c exoparg2.c +SRCS+= exoparg3.c exoparg6.c exprep.c exregion.c exresnte.c exresolv.c +SRCS+= exresop.c exstore.c exstoren.c exstorob.c exsystem.c exutils.c SRCS+= hwacpi.c hwgpe.c hwregs.c hwsleep.c hwtimer.c hwvalid.c hwxface.c SRCS+= nsaccess.c nsalloc.c nsdump.c nseval.c nsinit.c nsload.c nsnames.c SRCS+= nsobject.c nsparse.c nspredef.c nsrepair.c nsrepair2.c nssearch.c @@ -97,9 +97,13 @@ opt_ddb.h: Makefile SRCS+= acpi_machdep.c acpi_wakecode.h acpi_wakeup.c SRCS+= assym.s madt.c CLEANFILES+= acpi_wakecode.bin acpi_wakecode.h acpi_wakecode.o + .if ${MACHINE_CPUARCH} == "amd64" -SRCS+= opt_global.h +SRCS+= acpi_switch.S opt_global.h CLEANFILES+= acpi_wakedata.h +ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS} +acpi_switch.o: acpi_switch.S + ${CC} -c ${ASM_CFLAGS} ${WERROR} ${.IMPSRC} .endif acpi_wakecode.h: acpi_wakecode.S assym.s From owner-svn-src-user@FreeBSD.ORG Mon Apr 12 23:44:46 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56A681065670; Mon, 12 Apr 2010 23:44:46 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2C6E58FC0A; Mon, 12 Apr 2010 23:44:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CNik8E077219; Mon, 12 Apr 2010 23:44:46 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3CNikC7077218; Mon, 12 Apr 2010 23:44:46 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004122344.o3CNikC7077218@svn.freebsd.org> From: Warner Losh Date: Mon, 12 Apr 2010 23:44:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206531 - in user/imp/tbemd: . contrib/tzcode/stdtime contrib/tzcode/zic contrib/tzdata lib/libz sys/contrib/x86emu X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2010 23:44:46 -0000 Author: imp Date: Mon Apr 12 23:44:45 2010 New Revision: 206531 URL: http://svn.freebsd.org/changeset/base/206531 Log: Merge from head, through r206530 Modified: Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 00:33:36 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 964CF1065676; Wed, 14 Apr 2010 00:33:36 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 84D058FC0C; Wed, 14 Apr 2010 00:33:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E0XaVO011060; Wed, 14 Apr 2010 00:33:36 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E0XaCd011045; Wed, 14 Apr 2010 00:33:36 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140033.o3E0XaCd011045@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 00:33:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206573 - in user/jmallett/octeon/sys: mips/include mips/mips vm X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 00:33:36 -0000 Author: jmallett Date: Wed Apr 14 00:33:36 2010 New Revision: 206573 URL: http://svn.freebsd.org/changeset/base/206573 Log: o) Move back to 4K pages due to the misalignment of USRSTACK, which causes problems with all existing binaries. If we're ever willing to totally break kernel-userland ABI (I doubt we will be) we can move to 8K pages. o) Add a function kmem_alloc_nofault_space() which is just like kmem_alloc_nofault() but which allows the user to specify a space finding constraint other than VMFS_ANY_SPACE. o) Add a space VMFS_TLB_ALIGNED_SPACE which gives architecture-dependent alignment of the address to meet TLB alignment requirements using a new function, pmap_align_tlb, which on MIPS ensures no TLB entry sharing by rounding up to 2 * PAGE_SIZE. We can use this instead of the old hacks to allocate extra pages for kstack, etc. Modified: user/jmallett/octeon/sys/mips/include/param.h user/jmallett/octeon/sys/mips/include/pte.h user/jmallett/octeon/sys/mips/include/vmparam.h user/jmallett/octeon/sys/mips/mips/exception.S user/jmallett/octeon/sys/mips/mips/pmap.c user/jmallett/octeon/sys/mips/mips/swtch.S user/jmallett/octeon/sys/mips/mips/tlb.c user/jmallett/octeon/sys/mips/mips/trap.c user/jmallett/octeon/sys/vm/pmap.h user/jmallett/octeon/sys/vm/vm_extern.h user/jmallett/octeon/sys/vm/vm_glue.c user/jmallett/octeon/sys/vm/vm_kern.c user/jmallett/octeon/sys/vm/vm_map.c user/jmallett/octeon/sys/vm/vm_map.h Modified: user/jmallett/octeon/sys/mips/include/param.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/param.h Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/mips/include/param.h Wed Apr 14 00:33:36 2010 (r206573) @@ -100,7 +100,7 @@ #define CACHE_LINE_SHIFT 6 #define CACHE_LINE_SIZE (1 << CACHE_LINE_SHIFT) -#define PAGE_SHIFT 13 /* LOG2(PAGE_SIZE) */ +#define PAGE_SHIFT 12 /* LOG2(PAGE_SIZE) */ #define PAGE_SIZE (1<> TLBMASK_SHIFT) << TLBMASK_SHIFT) /* @@ -73,10 +71,9 @@ typedef pt_entry_t *pd_entry_t; */ #define TLBLO_SWBITS_SHIFT (30) #define TLBLO_SWBITS_MASK (0x3U << TLBLO_SWBITS_SHIFT) -#define TLBLO_PFN_SHIFT (6 + (PAGE_SHIFT - TLBMASK_SHIFT)) +#define TLBLO_PFN_SHIFT (6) #define TLBLO_PFN_MASK (0x03FFFFFC0) #define TLBLO_PA_TO_PFN(pa) ((((pa) >> TLB_PAGE_SHIFT) << TLBLO_PFN_SHIFT) & TLBLO_PFN_MASK) -#define TLBLO_PFN_ODD (TLBLO_PA_TO_PFN(TLB_PAGE_SIZE)) #define TLBLO_PFN_TO_PA(pfn) (((pfn) >> TLBLO_PFN_SHIFT) << TLB_PAGE_SHIFT) #define TLBLO_PTE_TO_PFN(pte) ((pte) & TLBLO_PFN_MASK) #define TLBLO_PTE_TO_PA(pte) (TLBLO_PFN_TO_PA(TLBLO_PTE_TO_PFN((pte)))) @@ -98,7 +95,7 @@ typedef pt_entry_t *pd_entry_t; #define TLBHI_R_MASK (0x03UL << TLBHI_R_SHIFT) #define TLBHI_VA_R(va) ((va) & TLBHI_R_MASK) #define TLBHI_FILL_SHIFT 40 -#define TLBHI_VPN2_SHIFT (PAGE_SHIFT) +#define TLBHI_VPN2_SHIFT (TLB_PAGE_SHIFT + 1) #define TLBHI_VPN2_MASK (((~((1UL << TLBHI_VPN2_SHIFT) - 1)) << (63 - TLBHI_FILL_SHIFT)) >> (63 - TLBHI_FILL_SHIFT)) #define TLBHI_VA_TO_VPN2(va) ((va) & TLBHI_VPN2_MASK) #define TLBHI_ENTRY(va, asid) ((TLBHI_VA_R((va))) /* Region. */ | \ @@ -145,6 +142,4 @@ typedef pt_entry_t *pd_entry_t; #define pte_set(pte, bit) ((*pte) |= (bit)) #define pte_test(pte, bit) (((*pte) & (bit)) == (bit)) - /* Internal API for the MIPS PMAP. */ - #endif /* !_MACHINE_PTE_H_ */ Modified: user/jmallett/octeon/sys/mips/include/vmparam.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/vmparam.h Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/mips/include/vmparam.h Wed Apr 14 00:33:36 2010 (r206573) @@ -207,7 +207,7 @@ */ #define VM_NFREEORDER 9 -#define SEGSHIFT 24 /* LOG2(NBSEG) */ +#define SEGSHIFT 22 /* LOG2(NBSEG) */ #define NBSEG (1 << SEGSHIFT) /* bytes/segment */ #define SEGOFSET (NBSEG-1) /* byte offset into segment */ Modified: user/jmallett/octeon/sys/mips/mips/exception.S ============================================================================== --- user/jmallett/octeon/sys/mips/mips/exception.S Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/mips/mips/exception.S Wed Apr 14 00:33:36 2010 (r206573) @@ -136,9 +136,9 @@ MipsDoTLBMiss: PTR_L k1, PC_SEGBASE(k1) beqz k1, 2f #05: make sure segbase is not null #if defined(__mips_n64) - andi k0, k0, 0x1ff8 #06: k0=seg offset (mask 0x7) + andi k0, k0, 0xff8 #06: k0=seg offset (mask 0x7) #else - andi k0, k0, 0x1ffc #06: k0=seg offset (mask 0x3) + andi k0, k0, 0xffc #06: k0=seg offset (mask 0x3) #endif PTR_ADDU k1, k0, k1 #07: k1=seg entry address @@ -146,14 +146,15 @@ MipsDoTLBMiss: MFC0 k0, COP_0_BAD_VADDR #09: k0=bad address (again) beq k1, zero, 2f #0a: ==0 -- no page table srl k0, PAGE_SHIFT - 2 #0b: k0=VPN (aka va>>10) - andi k0, k0, 0x1ffc #0c: k0=page tab offset + andi k0, k0, 0xff8 #0c: k0=page tab offset PTR_ADDU k1, k1, k0 #0d: k1=pte address lw k0, 0(k1) #0e: k0=lo0 pte + lw k1, 4(k1) #0f: k1=lo0 pte CLEAR_PTE_SWBITS(k0) MTC0 k0, COP_0_TLB_LO0 #12: lo0 is loaded COP0_SYNC - addu k0, TLBLO_PFN_ODD - MTC0 k0, COP_0_TLB_LO1 #15: lo1 is loaded + CLEAR_PTE_SWBITS(k1) + MTC0 k1, COP_0_TLB_LO1 #15: lo1 is loaded COP0_SYNC tlbwr #1a: write to tlb HAZARD_DELAY @@ -812,9 +813,9 @@ NLEAF(MipsTLBInvalidException) #endif beq k1, zero, MipsKernGenException # ==0 -- no seg tab #if defined(__mips_n64) - andi k0, k0, 0x1ff8 # k0=seg offset (mask 0x7) + andi k0, k0, 0xff8 # k0=seg offset (mask 0x7) #else - andi k0, k0, 0x1ffc # k0=seg offset (mask 0x3) + andi k0, k0, 0xffc # k0=seg offset (mask 0x3) #endif PTR_ADDU k1, k0, k1 # k1=seg entry address PTR_L k1, 0(k1) # k1=seg entry @@ -825,7 +826,7 @@ NLEAF(MipsTLBInvalidException) MFC0 k0, COP_0_BAD_VADDR # k0=bad address (again) PTR_SRL k0, PAGE_SHIFT - 2 # k0=VPN - andi k0, k0, 0x1ffc # k0=page tab offset + andi k0, k0, 0xffc # k0=page tab offset PTR_ADDU k1, k1, k0 # k1=pte address lw k0, 0(k1) # k0=this PTE @@ -834,14 +835,34 @@ NLEAF(MipsTLBInvalidException) beqz k0, 3f nop + /* Check whether this is an even or odd entry. */ + andi k0, k1, 4 + bnez k0, odd_page + nop + lw k0, 0(k1) + lw k1, 4(k1) + CLEAR_PTE_SWBITS(k0) + MTC0 k0, COP_0_TLB_LO0 + COP0_SYNC + CLEAR_PTE_SWBITS(k1) + MTC0 k1, COP_0_TLB_LO1 + COP0_SYNC + + b tlb_insert_entry + nop + +odd_page: + lw k0, -4(k1) + lw k1, 0(k1) CLEAR_PTE_SWBITS(k0) MTC0 k0, COP_0_TLB_LO0 COP0_SYNC - addu k0, TLBLO_PFN_ODD - MTC0 k0, COP_0_TLB_LO1 + CLEAR_PTE_SWBITS(k1) + MTC0 k1, COP_0_TLB_LO1 COP0_SYNC +tlb_insert_entry: tlbp HAZARD_DELAY mfc0 k0, COP_0_TLB_INDEX @@ -963,27 +984,24 @@ NLEAF(MipsTLBMissException) PTR_L k1, %lo(kernel_segmap)(k1) # k1=segment tab base beq k1, zero, MipsKernGenException # ==0 -- no seg tab #if defined(__mips_n64) - andi k0, k0, 0x1ff8 # k0=seg offset (mask 0x7) + andi k0, k0, 0xff8 # k0=seg offset (mask 0x7) #else - andi k0, k0, 0x1ffc # k0=seg offset (mask 0x3) + andi k0, k0, 0xffc # k0=seg offset (mask 0x3) #endif PTR_ADDU k1, k0, k1 # k1=seg entry address PTR_L k1, 0(k1) # k1=seg entry MFC0 k0, COP_0_BAD_VADDR # k0=bad address (again) beq k1, zero, MipsKernGenException # ==0 -- no page table PTR_SRL k0, PAGE_SHIFT - 2 # k0=VPN - andi k0, k0, 0x1ffc # k0=page tab offset + andi k0, k0, 0xff8 # k0=page tab offset PTR_ADDU k1, k1, k0 # k1=pte address lw k0, 0(k1) # k0=lo0 pte - andi k0, PG_V - beqz k0, MipsKernGenException # no PTE - nop - lw k0, 0(k1) # k0=lo0 pte + lw k1, 4(k1) # k1=lo1 pte CLEAR_PTE_SWBITS(k0) MTC0 k0, COP_0_TLB_LO0 # lo0 is loaded COP0_SYNC - addu k0, TLBLO_PFN_ODD - MTC0 k0, COP_0_TLB_LO1 # lo1 is loaded + CLEAR_PTE_SWBITS(k1) + MTC0 k1, COP_0_TLB_LO1 # lo1 is loaded COP0_SYNC tlbwr # write to tlb HAZARD_DELAY Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 00:33:36 2010 (r206573) @@ -837,8 +837,9 @@ pmap_init_fpage() int i, j; struct sysmaps *sysmaps; - kva = kmem_alloc_nofault(kernel_map, - (FPAGES * MAXCPU + FPAGES_SHARED) * PAGE_SIZE); + kva = kmem_alloc_nofault_space(kernel_map, + (FPAGES * MAXCPU + FPAGES_SHARED) * PAGE_SIZE, + VMFS_TLB_ALIGNED_SPACE); if ((void *)kva == NULL) panic("pmap_init_fpage: fpage allocation failed"); @@ -3110,6 +3111,21 @@ pmap_align_superpage(vm_object_t object, } /* + * Increase the starting virtual address of the given mapping so + * that it is aligned to not be the second page in a TLB entry. + * This routine assumes that the length is appropriately-sized so + * that the allocation does not share a TLB entry at all if required. + */ +void +pmap_align_tlb(vm_offset_t *addr) +{ + if ((*addr & PAGE_SIZE) == 0) + return; + *addr += PAGE_SIZE; + return; +} + +/* * Allocate TLB address space tag (called ASID or TLBPID) and return it. * It takes almost as much or more time to search the TLB for a * specific ASID and flush those entries as it does to flush the entire TLB. Modified: user/jmallett/octeon/sys/mips/mips/swtch.S ============================================================================== --- user/jmallett/octeon/sys/mips/mips/swtch.S Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/mips/mips/swtch.S Wed Apr 14 00:33:36 2010 (r206573) @@ -298,7 +298,8 @@ blocked_loop: PTR_LI s0, (MIPS_KSEG2_START+VM_KERNEL_ALLOC_OFFSET) # If Uarea addr is below kseg2, bltu v0, s0, sw2 # no need to insert in TLB. #endif - lw a1, TD_UPTE(s7) # t0 = u. pte + lw a1, TD_UPTE + 0(s7) # a1 = u. pte #0 + lw a2, TD_UPTE + 4(s7) # a2 = u. pte #1 /* * Wiredown the USPACE of newproc in TLB entry#0. Check whether target * USPACE is already in another place of TLB before that, and if so @@ -316,7 +317,7 @@ blocked_loop: PTR_LI t1, MIPS_KSEG0_START # invalidate tlb entry bltz s0, entry0set nop - sll s0, PAGE_SHIFT + sll s0, PAGE_SHIFT + 1 addu t1, s0 MTC0 t1, COP_0_TLB_HI mtc0 zero, COP_0_TLB_LO0 @@ -330,10 +331,9 @@ entry0set: /* SMP!! - Works only for unshared TLB case - i.e. no v-cpus */ mtc0 zero, COP_0_TLB_INDEX # TLB entry #0 HAZARD_DELAY - mtc0 a1, COP_0_TLB_LO0 # upte + mtc0 a1, COP_0_TLB_LO0 # upte[0] HAZARD_DELAY - addu a1, TLBLO_PFN_ODD - mtc0 a1, COP_0_TLB_LO1 # upte + odd + mtc0 a2, COP_0_TLB_LO1 # upte[1] HAZARD_DELAY tlbwi # set TLB entry #0 HAZARD_DELAY Modified: user/jmallett/octeon/sys/mips/mips/tlb.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/tlb.c Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/mips/mips/tlb.c Wed Apr 14 00:33:36 2010 (r206573) @@ -80,6 +80,12 @@ tlb_write_random(void) static void tlb_invalidate_one(unsigned); +/* + * XXX + * We invalidate the whole pair. Would be nice to just + * invalidate the single entry instead of forcing a reload + * of the other one. + */ void tlb_invalidate_address(struct pmap *pmap, vm_offset_t va) { @@ -137,12 +143,16 @@ tlb_update(struct pmap *pmap, vm_offset_ mips_wr_entryhi(TLBHI_ENTRY(va, pmap_asid(pmap))); tlb_probe(); i = mips_rd_index(); - mips_wr_entrylo0(pte); - mips_wr_entrylo1(pte + TLBLO_PFN_ODD); - if (i >= 0) + if (i >= 0) { + tlb_read(); + + if ((va & PAGE_SIZE) == 0) { + mips_wr_entrylo0(pte); + } else { + mips_wr_entrylo1(pte); + } tlb_write_indexed(); - else - tlb_write_random(); + } mips_wr_entryhi(asid); mips_wr_pagemask(mask); intr_restore(s); @@ -152,7 +162,7 @@ static void tlb_invalidate_one(unsigned i) { /* XXX an invalid ASID? */ - mips_wr_entryhi(TLBHI_ENTRY(MIPS_KSEG0_START + (i * PAGE_SIZE), 0)); + mips_wr_entryhi(TLBHI_ENTRY(MIPS_KSEG0_START + (2 * i * PAGE_SIZE), 0)); mips_wr_entrylo0(0); mips_wr_entrylo1(0); mips_wr_pagemask(0); Modified: user/jmallett/octeon/sys/mips/mips/trap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/trap.c Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/mips/mips/trap.c Wed Apr 14 00:33:36 2010 (r206573) @@ -95,6 +95,7 @@ __FBSDID("$FreeBSD$"); #include +#define TRAP_DEBUG #ifdef TRAP_DEBUG int trap_debug = 1; #endif Modified: user/jmallett/octeon/sys/vm/pmap.h ============================================================================== --- user/jmallett/octeon/sys/vm/pmap.h Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/vm/pmap.h Wed Apr 14 00:33:36 2010 (r206573) @@ -98,6 +98,9 @@ extern vm_offset_t kernel_vm_end; void pmap_align_superpage(vm_object_t, vm_ooffset_t, vm_offset_t *, vm_size_t); +#if defined(__mips__) +void pmap_align_tlb(vm_offset_t *); +#endif void pmap_change_wiring(pmap_t, vm_offset_t, boolean_t); void pmap_clear_modify(vm_page_t m); void pmap_clear_reference(vm_page_t m); Modified: user/jmallett/octeon/sys/vm/vm_extern.h ============================================================================== --- user/jmallett/octeon/sys/vm/vm_extern.h Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/vm/vm_extern.h Wed Apr 14 00:33:36 2010 (r206573) @@ -45,6 +45,7 @@ vm_offset_t kmem_alloc_contig(vm_map_t m vm_paddr_t low, vm_paddr_t high, unsigned long alignment, unsigned long boundary, vm_memattr_t memattr); vm_offset_t kmem_alloc_nofault(vm_map_t, vm_size_t); +vm_offset_t kmem_alloc_nofault_space(vm_map_t, vm_size_t, int); vm_offset_t kmem_alloc_wait(vm_map_t, vm_size_t); void kmem_free(vm_map_t, vm_offset_t, vm_size_t); void kmem_free_wakeup(vm_map_t, vm_offset_t, vm_size_t); Modified: user/jmallett/octeon/sys/vm/vm_glue.c ============================================================================== --- user/jmallett/octeon/sys/vm/vm_glue.c Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/vm/vm_glue.c Wed Apr 14 00:33:36 2010 (r206573) @@ -377,8 +377,17 @@ vm_thread_new(struct thread *td, int pag /* * Get a kernel virtual address for this thread's kstack. */ +#if defined(__mips__) + /* + * We need to align the kstack's mapped address to fit within + * a single TLB entry. + */ + ks = kmem_alloc_nofault_space(kernel_map, + (pages + KSTACK_GUARD_PAGES) * PAGE_SIZE, VMFS_TLB_ALIGNED_SPACE); +#else ks = kmem_alloc_nofault(kernel_map, (pages + KSTACK_GUARD_PAGES) * PAGE_SIZE); +#endif if (ks == 0) { printf("vm_thread_new: kstack allocation failed\n"); vm_object_deallocate(ksobj); Modified: user/jmallett/octeon/sys/vm/vm_kern.c ============================================================================== --- user/jmallett/octeon/sys/vm/vm_kern.c Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/vm/vm_kern.c Wed Apr 14 00:33:36 2010 (r206573) @@ -119,6 +119,36 @@ kmem_alloc_nofault(map, size) } /* + * kmem_alloc_nofault_space: + * + * Allocate a virtual address range with no underlying object and + * no initial mapping to physical memory within the specified + * address space. Any mapping from this range to physical memory + * must be explicitly created prior to its use, typically with + * pmap_qenter(). Any attempt to create a mapping on demand + * through vm_fault() will result in a panic. + */ +vm_offset_t +kmem_alloc_nofault_space(map, size, find_space) + vm_map_t map; + vm_size_t size; + int find_space; +{ + vm_offset_t addr; + int result; + + size = round_page(size); + addr = vm_map_min(map); + result = vm_map_find(map, NULL, 0, &addr, size, find_space, + VM_PROT_ALL, VM_PROT_ALL, MAP_NOFAULT); + if (result != KERN_SUCCESS) { + return (0); + } + return (addr); +} + + +/* * Allocate wired-down memory in the kernel's address map * or a submap. */ Modified: user/jmallett/octeon/sys/vm/vm_map.c ============================================================================== --- user/jmallett/octeon/sys/vm/vm_map.c Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/vm/vm_map.c Wed Apr 14 00:33:36 2010 (r206573) @@ -1394,9 +1394,20 @@ vm_map_find(vm_map_t map, vm_object_t ob vm_map_unlock(map); return (KERN_NO_SPACE); } - if (find_space == VMFS_ALIGNED_SPACE) + switch (find_space) { + case VMFS_ALIGNED_SPACE: pmap_align_superpage(object, offset, addr, length); + break; +#ifdef VMFS_TLB_ALIGNED_SPACE + case VMFS_TLB_ALIGNED_SPACE: + pmap_align_tlb(addr); + break; +#endif + default: + break; + } + start = *addr; } result = vm_map_insert(map, object, offset, start, start + Modified: user/jmallett/octeon/sys/vm/vm_map.h ============================================================================== --- user/jmallett/octeon/sys/vm/vm_map.h Tue Apr 13 23:54:40 2010 (r206572) +++ user/jmallett/octeon/sys/vm/vm_map.h Wed Apr 14 00:33:36 2010 (r206573) @@ -326,6 +326,9 @@ long vmspace_wired_count(struct vmspace #define VMFS_NO_SPACE 0 /* don't find; use the given range */ #define VMFS_ANY_SPACE 1 /* find a range with any alignment */ #define VMFS_ALIGNED_SPACE 2 /* find a superpage-aligned range */ +#if defined(__mips__) +#define VMFS_TLB_ALIGNED_SPACE 3 /* find a TLB entry aligned range */ +#endif /* * vm_map_wire and vm_map_unwire option flags From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 00:50:10 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 59E741065673; Wed, 14 Apr 2010 00:50:10 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 49FCF8FC16; Wed, 14 Apr 2010 00:50:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E0oAjn014805; Wed, 14 Apr 2010 00:50:10 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E0oA9D014801; Wed, 14 Apr 2010 00:50:10 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140050.o3E0oA9D014801@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 00:50:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206574 - in user/jmallett/octeon/sys/mips: include mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 00:50:10 -0000 Author: jmallett Date: Wed Apr 14 00:50:09 2010 New Revision: 206574 URL: http://svn.freebsd.org/changeset/base/206574 Log: Hide floating page support on N64. Modified: user/jmallett/octeon/sys/mips/include/pmap.h user/jmallett/octeon/sys/mips/mips/mem.c user/jmallett/octeon/sys/mips/mips/pmap.c Modified: user/jmallett/octeon/sys/mips/include/pmap.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/pmap.h Wed Apr 14 00:33:36 2010 (r206573) +++ user/jmallett/octeon/sys/mips/include/pmap.h Wed Apr 14 00:50:09 2010 (r206574) @@ -180,6 +180,7 @@ int pmap_compute_pages_to_dump(void); void pmap_update_page(pmap_t pmap, vm_offset_t va, pt_entry_t pte); void pmap_flush_pvcache(vm_page_t m); +#if !defined(__mips_n64) /* * floating virtual pages (FPAGES) * @@ -210,6 +211,7 @@ vm_offset_t pmap_map_fpage(vm_paddr_t pa, struct fpage *fp, boolean_t check_unmaped); void pmap_unmap_fpage(vm_paddr_t pa, struct fpage *fp); +#endif #endif /* _KERNEL */ Modified: user/jmallett/octeon/sys/mips/mips/mem.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mem.c Wed Apr 14 00:33:36 2010 (r206573) +++ user/jmallett/octeon/sys/mips/mips/mem.c Wed Apr 14 00:50:09 2010 (r206574) @@ -102,6 +102,7 @@ memrw(dev, uio, flags) if (is_cacheable_mem(v) && is_cacheable_mem(v + c - 1)) { +#if !defined(__mips_n64) struct fpage *fp; struct sysmaps *sysmaps; @@ -110,17 +111,24 @@ memrw(dev, uio, flags) sched_pin(); fp = &sysmaps->fp[PMAP_FPAGE1]; +#endif pa = uio->uio_offset & ~PAGE_MASK; +#if !defined(__mips_n64) va = pmap_map_fpage(pa, fp, FALSE); +#else + va = MIPS_PHYS_TO_XKPHYS(XKPHYS_CCA, pa); +#endif o = (int)uio->uio_offset & PAGE_MASK; c = (u_int)(PAGE_SIZE - ((uintptr_t)iov->iov_base & PAGE_MASK)); c = min(c, (u_int)(PAGE_SIZE - o)); c = min(c, (u_int)iov->iov_len); error = uiomove((caddr_t)(va + o), (int)c, uio); +#if !defined(__mips_n64) pmap_unmap_fpage(pa, fp); sched_unpin(); mtx_unlock(&sysmaps->lock); +#endif } else return (EFAULT); continue; Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 00:33:36 2010 (r206573) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 00:50:09 2010 (r206574) @@ -160,9 +160,11 @@ static uma_zone_t pvzone; static struct vm_object pvzone_obj; static int pv_entry_count = 0, pv_entry_max = 0, pv_entry_high_water = 0; +#if !defined(__mips_n64) struct fpage fpages_shared[FPAGES_SHARED]; struct sysmaps sysmaps_pcpu[MAXCPU]; +#endif static PMAP_INLINE void free_pv_entry(pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t locked_pmap); @@ -187,7 +189,9 @@ static vm_page_t pmap_allocpte(pmap_t pm static vm_page_t _pmap_allocpte(pmap_t pmap, unsigned ptepindex, int flags); static int pmap_unuse_pt(pmap_t, vm_offset_t, vm_page_t); static int init_pte_prot(vm_offset_t va, vm_page_t m, vm_prot_t prot); +#if !defined(__mips_n64) static void pmap_init_fpage(void); +#endif #ifdef SMP static void pmap_invalidate_page_action(void *arg); @@ -493,8 +497,10 @@ void pmap_init(void) { +#if !defined(__mips_n64) if (need_wired_tlb_page_pool) pmap_init_fpage(); +#endif /* * Initialize the address space (zone) for the pv entries. Set a * high water mark so that the system can recover from excessive @@ -816,6 +822,7 @@ pmap_qremove(vm_offset_t va, int count) * Page table page management routines..... ***************************************************/ +#if !defined(__mips_n64) /* * floating pages (FPAGES) management routines * @@ -921,6 +928,7 @@ pmap_unmap_fpage(vm_paddr_t pa, struct f * Should there be any flush operation at the end? */ } +#endif /* Revision 1.507 * From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 01:23:00 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E539B106564A; Wed, 14 Apr 2010 01:23:00 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D4FF78FC1D; Wed, 14 Apr 2010 01:23:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E1N0qw022415; Wed, 14 Apr 2010 01:23:00 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E1N0u7022413; Wed, 14 Apr 2010 01:23:00 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140123.o3E1N0u7022413@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 01:23:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206580 - user/jmallett/octeon/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 01:23:01 -0000 Author: jmallett Date: Wed Apr 14 01:23:00 2010 New Revision: 206580 URL: http://svn.freebsd.org/changeset/base/206580 Log: o) Centralize (all but that used by DDB without locks) large memory mapping code into a few nasty macros and make lmem code use PTEs rather than expecting the TLB code to load and not evict its mappings, the former which is not done by the new TLB code and the latter which was not guaranteed (i.e. by wiring) with the old TLB code. Modified: user/jmallett/octeon/sys/mips/mips/pmap.c Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 01:22:33 2010 (r206579) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 01:23:00 2010 (r206580) @@ -203,10 +203,7 @@ static void pmap_update_page_action(void #if !defined(__mips_n64) struct local_sysmaps { struct mtx lock; - pt_entry_t CMAP1; - pt_entry_t CMAP2; - caddr_t CADDR1; - caddr_t CADDR2; + vm_offset_t base; uint16_t valid1, valid2; }; @@ -219,6 +216,60 @@ struct local_sysmaps { */ static struct local_sysmaps sysmap_lmem[MAXCPU]; caddr_t virtual_sys_start = (caddr_t)0; + +#define PMAP_LMEM_MAP1(va, phys) \ + int cpu; \ + struct local_sysmaps *sysm; \ + pt_entry_t *pte, npte; \ + \ + cpu = PCPU_GET(cpuid); \ + sysm = &sysmap_lmem[cpu]; \ + PMAP_LGMEM_LOCK(sysm); \ + intr = intr_disable(); \ + sched_pin(); \ + va = sysm->base; \ + npte = TLBLO_PA_TO_PFN(phys) | \ + PG_D | PG_V | PG_G | PG_W | PG_C_CNC; \ + pte = pmap_pte(kernel_pmap, va); \ + *pte = npte; \ + sysm->valid1 = 1; + +#define PMAP_LMEM_MAP2(va1, phys1, va2, phys2) \ + int cpu; \ + struct local_sysmaps *sysm; \ + pt_entry_t *pte, npte; \ + \ + cpu = PCPU_GET(cpuid); \ + sysm = &sysmap_lmem[cpu]; \ + PMAP_LGMEM_LOCK(sysm); \ + intr = intr_disable(); \ + sched_pin(); \ + va1 = sysm->base; \ + va2 = sysm->base + PAGE_SIZE; \ + npte = TLBLO_PA_TO_PFN(phys2) | \ + PG_D | PG_V | PG_G | PG_W | PG_C_CNC; \ + pte = pmap_pte(kernel_pmap, va1); \ + *pte = npte; \ + npte = TLBLO_PA_TO_PFN(phys2) | \ + PG_D | PG_V | PG_G | PG_W | PG_C_CNC; \ + pte = pmap_pte(kernel_pmap, va2); \ + *pte = npte; \ + sysm->valid1 = 1; \ + sysm->valid2 = 1; + +#define PMAP_LMEM_UNMAP() \ + pte = pmap_pte(kernel_pmap, sysm->base); \ + *pte = PG_G; \ + pmap_invalidate_page(kernel_pmap, sysm->base); \ + sysm->valid1 = 0; \ + pte = pmap_pte(kernel_pmap, sysm->base + PAGE_SIZE); \ + *pte = PG_G; \ + pmap_invalidate_page(kernel_pmap, sysm->base + PAGE_SIZE); \ + sysm->valid2 = 0; \ + sched_unpin(); \ + intr_restore(intr); \ + PMAP_LGMEM_UNLOCK(sysm); + #endif pt_entry_t * @@ -401,12 +452,8 @@ again: */ if (memory_larger_than_512meg) { for (i = 0; i < MAXCPU; i++) { - sysmap_lmem[i].CMAP1 = PG_G; - sysmap_lmem[i].CMAP2 = PG_G; - sysmap_lmem[i].CADDR1 = (caddr_t)virtual_avail; - virtual_avail += PAGE_SIZE; - sysmap_lmem[i].CADDR2 = (caddr_t)virtual_avail; - virtual_avail += PAGE_SIZE; + sysmap_lmem[i].base = virtual_avail; + virtual_avail += PAGE_SIZE * 2; sysmap_lmem[i].valid1 = sysmap_lmem[i].valid2 = 0; PMAP_LGMEM_LOCK_INIT(&sysmap_lmem[i]); } @@ -2184,6 +2231,8 @@ pmap_kenter_temporary(vm_paddr_t pa, int } else { int cpu; struct local_sysmaps *sysm; + pt_entry_t *pte, npte; + /* If this is used other than for dumps, we may need to leave * interrupts disasbled on return. If crash dumps don't work when * we get to this point, we might want to consider this (leaving things @@ -2193,10 +2242,12 @@ pmap_kenter_temporary(vm_paddr_t pa, int cpu = PCPU_GET(cpuid); sysm = &sysmap_lmem[cpu]; /* Since this is for the debugger, no locks or any other fun */ - sysm->CMAP1 = TLBLO_PA_TO_PFN(pa) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; + npte = TLBLO_PA_TO_PFN(pa) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; + pte = pmap_pte(kernel_pmap, sysm->base); + *pte = npte; sysm->valid1 = 1; - pmap_update_page(kernel_pmap, (vm_offset_t)sysm->CADDR1, sysm->CMAP1); - va = (vm_offset_t)sysm->CADDR1; + pmap_update_page(kernel_pmap, sysm->base, npte); + va = sysm->base; intr_restore(intr); } #endif @@ -2218,10 +2269,13 @@ pmap_kenter_temporary_free(vm_paddr_t pa cpu = PCPU_GET(cpuid); sysm = &sysmap_lmem[cpu]; if (sysm->valid1) { + pt_entry_t *pte; + intr = intr_disable(); - pmap_invalidate_page(kernel_pmap, (vm_offset_t)sysm->CADDR1); + pte = pmap_pte(kernel_pmap, sysm->base); + *pte = PG_G; + pmap_invalidate_page(kernel_pmap, sysm->base); intr_restore(intr); - sysm->CMAP1 = 0; sysm->valid1 = 0; } #endif @@ -2359,36 +2413,23 @@ pmap_zero_page(vm_page_t m) #if defined(__mips_n64) { va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phys); - bzero((caddr_t)va, PAGE_SIZE); + bzero((caddr_t)va, PAGE_SIZE); mips_dcache_wbinv_range(va, PAGE_SIZE); } #else if (phys < MIPS_KSEG0_LARGEST_PHYS) { - va = MIPS_PHYS_TO_KSEG0(phys); bzero((caddr_t)va, PAGE_SIZE); mips_dcache_wbinv_range(va, PAGE_SIZE); } else { - int cpu; - struct local_sysmaps *sysm; + PMAP_LMEM_MAP1(va, phys); - cpu = PCPU_GET(cpuid); - sysm = &sysmap_lmem[cpu]; - PMAP_LGMEM_LOCK(sysm); - sched_pin(); - intr = intr_disable(); - sysm->CMAP1 = TLBLO_PA_TO_PFN(phys) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; - sysm->valid1 = 1; - pmap_update_page(kernel_pmap, (vm_offset_t)sysm->CADDR1, sysm->CMAP1); - bzero(sysm->CADDR1, PAGE_SIZE); - pmap_invalidate_page(kernel_pmap, (vm_offset_t)sysm->CADDR1); - intr_restore(intr); - sysm->CMAP1 = 0; - sysm->valid1 = 0; - sched_unpin(); - PMAP_LGMEM_UNLOCK(sysm); + bzero((caddr_t)va, PAGE_SIZE); + mips_dcache_wbinv_range(va, PAGE_SIZE); + + PMAP_LMEM_UNMAP(); } #endif } @@ -2437,24 +2478,12 @@ pmap_zero_page_area(vm_page_t m, int off bzero((char *)(caddr_t)va + off, size); mips_dcache_wbinv_range(va + off, size); } else { - int cpu; - struct local_sysmaps *sysm; + PMAP_LMEM_MAP1(va, phys); - cpu = PCPU_GET(cpuid); - sysm = &sysmap_lmem[cpu]; - PMAP_LGMEM_LOCK(sysm); - intr = intr_disable(); - sched_pin(); - sysm->CMAP1 = TLBLO_PA_TO_PFN(phys) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; - sysm->valid1 = 1; - pmap_update_page(kernel_pmap, (vm_offset_t)sysm->CADDR1, sysm->CMAP1); - bzero((char *)sysm->CADDR1 + off, size); - pmap_invalidate_page(kernel_pmap, (vm_offset_t)sysm->CADDR1); - intr_restore(intr); - sysm->CMAP1 = 0; - sysm->valid1 = 0; - sched_unpin(); - PMAP_LGMEM_UNLOCK(sysm); + bzero((char *)va + off, size); + mips_dcache_wbinv_range(va + off, size); + + PMAP_LMEM_UNMAP(); } #endif } @@ -2488,24 +2517,12 @@ pmap_zero_page_idle(vm_page_t m) bzero((caddr_t)va, PAGE_SIZE); mips_dcache_wbinv_range(va, PAGE_SIZE); } else { - int cpu; - struct local_sysmaps *sysm; + PMAP_LMEM_MAP1(va, phys); - cpu = PCPU_GET(cpuid); - sysm = &sysmap_lmem[cpu]; - PMAP_LGMEM_LOCK(sysm); - intr = intr_disable(); - sched_pin(); - sysm->CMAP1 = TLBLO_PA_TO_PFN(phys) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; - sysm->valid1 = 1; - pmap_update_page(kernel_pmap, (vm_offset_t)sysm->CADDR1, sysm->CMAP1); - bzero(sysm->CADDR1, PAGE_SIZE); - pmap_invalidate_page(kernel_pmap, (vm_offset_t)sysm->CADDR1); - intr_restore(intr); - sysm->CMAP1 = 0; - sysm->valid1 = 0; - sched_unpin(); - PMAP_LGMEM_UNLOCK(sysm); + bzero((caddr_t)va, PAGE_SIZE); + mips_dcache_wbinv_range(va, PAGE_SIZE); + + PMAP_LMEM_UNMAP(); } #endif } @@ -2575,52 +2592,12 @@ pmap_copy_page(vm_page_t src, vm_page_t bcopy((caddr_t)va_src, (caddr_t)va_dst, PAGE_SIZE); mips_dcache_wbinv_range(va_dst, PAGE_SIZE); } else { - int cpu; - struct local_sysmaps *sysm; + PMAP_LMEM_MAP2(va_src, phy_src, va_dst, phy_dst); - cpu = PCPU_GET(cpuid); - sysm = &sysmap_lmem[cpu]; - PMAP_LGMEM_LOCK(sysm); - sched_pin(); - intr = intr_disable(); - if (phy_src < MIPS_KSEG0_LARGEST_PHYS) { - /* one side needs mapping - dest */ - va_src = MIPS_PHYS_TO_KSEG0(phy_src); - sysm->CMAP2 = TLBLO_PA_TO_PFN(phy_dst) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; - pmap_update_page(kernel_pmap, (vm_offset_t)sysm->CADDR2, sysm->CMAP2); - sysm->valid2 = 1; - va_dst = (vm_offset_t)sysm->CADDR2; - } else if (phy_dst < MIPS_KSEG0_LARGEST_PHYS) { - /* one side needs mapping - src */ - va_dst = MIPS_PHYS_TO_KSEG0(phy_dst); - sysm->CMAP1 = TLBLO_PA_TO_PFN(phy_src) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; - pmap_update_page(kernel_pmap, (vm_offset_t)sysm->CADDR1, sysm->CMAP1); - va_src = (vm_offset_t)sysm->CADDR1; - sysm->valid1 = 1; - } else { - /* all need mapping */ - sysm->CMAP1 = TLBLO_PA_TO_PFN(phy_src) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; - sysm->CMAP2 = TLBLO_PA_TO_PFN(phy_dst) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; - pmap_update_page(kernel_pmap, (vm_offset_t)sysm->CADDR1, sysm->CMAP1); - pmap_update_page(kernel_pmap, (vm_offset_t)sysm->CADDR2, sysm->CMAP2); - sysm->valid1 = sysm->valid2 = 1; - va_src = (vm_offset_t)sysm->CADDR1; - va_dst = (vm_offset_t)sysm->CADDR2; - } bcopy((void *)va_src, (void *)va_dst, PAGE_SIZE); - if (sysm->valid1) { - pmap_invalidate_page(kernel_pmap, (vm_offset_t)sysm->CADDR1); - sysm->CMAP1 = 0; - sysm->valid1 = 0; - } - if (sysm->valid2) { - pmap_invalidate_page(kernel_pmap, (vm_offset_t)sysm->CADDR2); - sysm->CMAP2 = 0; - sysm->valid2 = 0; - } - intr_restore(intr); - sched_unpin(); - PMAP_LGMEM_UNLOCK(sysm); + mips_dcache_wbinv_range(va_dst, PAGE_SIZE); + + PMAP_LMEM_UNMAP(); } #endif } From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 01:43:25 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6C81106566C; Wed, 14 Apr 2010 01:43:25 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B6FBA8FC14; Wed, 14 Apr 2010 01:43:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E1hPUh027013; Wed, 14 Apr 2010 01:43:25 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E1hPDr027011; Wed, 14 Apr 2010 01:43:25 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140143.o3E1hPDr027011@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 01:43:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206583 - user/jmallett/octeon/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 01:43:25 -0000 Author: jmallett Date: Wed Apr 14 01:43:25 2010 New Revision: 206583 URL: http://svn.freebsd.org/changeset/base/206583 Log: Fix N64 build. Modified: user/jmallett/octeon/sys/mips/mips/mem.c Modified: user/jmallett/octeon/sys/mips/mips/mem.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mem.c Wed Apr 14 01:29:31 2010 (r206582) +++ user/jmallett/octeon/sys/mips/mips/mem.c Wed Apr 14 01:43:25 2010 (r206583) @@ -67,8 +67,10 @@ __FBSDID("$FreeBSD$"); #include #include - +#if !defined(__mips_n64) extern struct sysmaps sysmaps_pcpu[]; +#endif + /*ARGSUSED*/ int memrw(dev, uio, flags) @@ -116,7 +118,7 @@ memrw(dev, uio, flags) #if !defined(__mips_n64) va = pmap_map_fpage(pa, fp, FALSE); #else - va = MIPS_PHYS_TO_XKPHYS(XKPHYS_CCA, pa); + va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, pa); #endif o = (int)uio->uio_offset & PAGE_MASK; c = (u_int)(PAGE_SIZE - From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 03:58:23 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2A4241065670; Wed, 14 Apr 2010 03:58:23 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1854A8FC18; Wed, 14 Apr 2010 03:58:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E3wMQe056970; Wed, 14 Apr 2010 03:58:22 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E3wM8Q056964; Wed, 14 Apr 2010 03:58:22 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140358.o3E3wM8Q056964@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 03:58:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206586 - user/jmallett/octeon/sys/compat/freebsd32 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 03:58:23 -0000 Author: jmallett Date: Wed Apr 14 03:58:21 2010 New Revision: 206586 URL: http://svn.freebsd.org/changeset/base/206586 Log: Don't split 64-bit quantities into 2 32-bit quantities on MIPS, since the compat framework right now is used for running n32 binaries, which happily fit 64-bit quantities in a single register. Modified: user/jmallett/octeon/sys/compat/freebsd32/freebsd32_misc.c user/jmallett/octeon/sys/compat/freebsd32/freebsd32_proto.h user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscall.h user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscalls.c user/jmallett/octeon/sys/compat/freebsd32/freebsd32_sysent.c user/jmallett/octeon/sys/compat/freebsd32/syscalls.master Modified: user/jmallett/octeon/sys/compat/freebsd32/freebsd32_misc.c ============================================================================== --- user/jmallett/octeon/sys/compat/freebsd32/freebsd32_misc.c Wed Apr 14 03:13:02 2010 (r206585) +++ user/jmallett/octeon/sys/compat/freebsd32/freebsd32_misc.c Wed Apr 14 03:58:21 2010 (r206586) @@ -119,6 +119,7 @@ CTASSERT(sizeof(struct sigaction32) == 2 static int freebsd32_kevent_copyout(void *arg, struct kevent *kevp, int count); static int freebsd32_kevent_copyin(void *arg, struct kevent *kevp, int count); +#ifdef QUAD_SPLIT_REQUIRED #if BYTE_ORDER == BIG_ENDIAN #define PAIR32TO64(type, name) ((name ## 2) | ((type)(name ## 1) << 32)) #define RETVAL_HI 0 @@ -128,6 +129,9 @@ static int freebsd32_kevent_copyin(void #define RETVAL_HI 1 #define RETVAL_LO 0 #endif +#else +#define PAIR32TO64(type, name) (name) +#endif int freebsd32_wait4(struct thread *td, struct freebsd32_wait4_args *uap) @@ -1429,16 +1433,20 @@ freebsd32_lseek(struct thread *td, struc { int error; struct lseek_args ap; +#ifdef QUAD_SPLIT_REQUIRED off_t pos; +#endif ap.fd = uap->fd; ap.offset = PAIR32TO64(off_t,uap->offset); ap.whence = uap->whence; error = lseek(td, &ap); /* Expand the quad return into two parts for eax and edx */ +#ifdef QUAD_SPLIT_REQUIRED pos = *(off_t *)(td->td_retval); td->td_retval[RETVAL_LO] = pos & 0xffffffff; /* %eax */ td->td_retval[RETVAL_HI] = pos >> 32; /* %edx */ +#endif return error; } @@ -1511,16 +1519,20 @@ freebsd6_freebsd32_lseek(struct thread * { int error; struct lseek_args ap; +#ifdef QUAD_SPLIT_REQUIRED off_t pos; +#endif ap.fd = uap->fd; ap.offset = PAIR32TO64(off_t,uap->offset); ap.whence = uap->whence; error = lseek(td, &ap); /* Expand the quad return into two parts for eax and edx */ +#ifdef QUAD_SPLIT_REQUIRED pos = *(off_t *)(td->td_retval); td->td_retval[RETVAL_LO] = pos & 0xffffffff; /* %eax */ td->td_retval[RETVAL_HI] = pos >> 32; /* %edx */ +#endif return error; } Modified: user/jmallett/octeon/sys/compat/freebsd32/freebsd32_proto.h ============================================================================== --- user/jmallett/octeon/sys/compat/freebsd32/freebsd32_proto.h Wed Apr 14 03:13:02 2010 (r206585) +++ user/jmallett/octeon/sys/compat/freebsd32/freebsd32_proto.h Wed Apr 14 03:58:21 2010 (r206586) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 205325 2010-03-19 11:10:24Z kib + * created from FreeBSD: user/jmallett/octeon/sys/compat/freebsd32/syscalls.master 205510 2010-03-23 06:42:52Z jmallett */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -35,6 +35,9 @@ struct thread; #if !defined(PAD64_REQUIRED) && defined(__powerpc__) #define PAD64_REQUIRED #endif +#if !defined(QUAD_SPLIT_REQUIRED) && !defined(__mips__) +#define QUAD_SPLIT_REQUIRED +#endif struct freebsd32_wait4_args { char pid_l_[PADL_(int)]; int pid; char pid_r_[PADR_(int)]; char status_l_[PADL_(int *)]; int * status; char status_r_[PADR_(int *)]; @@ -147,6 +150,9 @@ struct freebsd32_shmsys_args { char a3_l_[PADL_(uint32_t)]; uint32_t a3; char a3_r_[PADR_(uint32_t)]; char a4_l_[PADL_(uint32_t)]; uint32_t a4; char a4_r_[PADR_(uint32_t)]; }; +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif struct freebsd32_stat_args { char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; char ub_l_[PADL_(struct stat32 *)]; struct stat32 * ub; char ub_r_[PADR_(struct stat32 *)]; @@ -165,6 +171,12 @@ struct freebsd32_getdirentries_args { char count_l_[PADL_(u_int)]; u_int count; char count_r_[PADR_(u_int)]; char basep_l_[PADL_(int32_t *)]; int32_t * basep; char basep_r_[PADR_(int32_t *)]; }; +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif struct freebsd32_sysctl_args { char name_l_[PADL_(int *)]; int * name; char name_r_[PADR_(int *)]; char namelen_l_[PADL_(u_int)]; u_int namelen; char namelen_r_[PADR_(u_int)]; @@ -222,6 +234,7 @@ struct freebsd32_lutimes_args { char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; char tptr_l_[PADL_(struct timeval32 *)]; struct timeval32 * tptr; char tptr_r_[PADR_(struct timeval32 *)]; }; +#ifdef QUAD_SPLIT_REQUIRED struct freebsd32_preadv_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)]; @@ -236,6 +249,20 @@ struct freebsd32_pwritev_args { char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)]; char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)]; }; +#else +struct freebsd32_preadv_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)]; + char iovcnt_l_[PADL_(u_int)]; u_int iovcnt; char iovcnt_r_[PADR_(u_int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; +}; +struct freebsd32_pwritev_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)]; + char iovcnt_l_[PADL_(u_int)]; u_int iovcnt; char iovcnt_r_[PADR_(u_int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; +}; +#endif struct freebsd32_modstat_args { char modid_l_[PADL_(int)]; int modid; char modid_r_[PADR_(int)]; char stat_l_[PADL_(struct module_stat32 *)]; struct module_stat32 * stat; char stat_r_[PADR_(struct module_stat32 *)]; @@ -267,6 +294,9 @@ struct freebsd32_olio_listio_args { char nent_l_[PADL_(int)]; int nent; char nent_r_[PADR_(int)]; char sig_l_[PADL_(struct osigevent32 *)]; struct osigevent32 * sig; char sig_r_[PADR_(struct osigevent32 *)]; }; +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif struct freebsd32_jail_args { char jail_l_[PADL_(struct jail32 *)]; struct jail32 * jail; char jail_r_[PADR_(struct jail32 *)]; }; @@ -296,6 +326,7 @@ struct freebsd32_nmount_args { char iovcnt_l_[PADL_(unsigned int)]; unsigned int iovcnt; char iovcnt_r_[PADR_(unsigned int)]; char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; }; +#ifdef QUAD_SPLIT_REQUIRED struct freebsd32_sendfile_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; @@ -306,6 +337,17 @@ struct freebsd32_sendfile_args { char sbytes_l_[PADL_(off_t *)]; off_t * sbytes; char sbytes_r_[PADR_(off_t *)]; char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; }; +#else +struct freebsd32_sendfile_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; + char nbytes_l_[PADL_(size_t)]; size_t nbytes; char nbytes_r_[PADR_(size_t)]; + char hdtr_l_[PADL_(struct sf_hdtr32 *)]; struct sf_hdtr32 * hdtr; char hdtr_r_[PADR_(struct sf_hdtr32 *)]; + char sbytes_l_[PADL_(off_t *)]; off_t * sbytes; char sbytes_r_[PADR_(off_t *)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; +}; +#endif struct freebsd32_ksem_init_args { char idp_l_[PADL_(semid_t *)]; semid_t * idp; char idp_r_[PADR_(semid_t *)]; char value_l_[PADL_(unsigned int)]; unsigned int value; char value_r_[PADR_(unsigned int)]; @@ -435,6 +477,7 @@ struct freebsd32_ftruncate_args { char length2_l_[PADL_(u_int32_t)]; u_int32_t length2; char length2_r_[PADR_(u_int32_t)]; }; #else +#ifdef QUAD_SPLIT_REQUIRED struct freebsd32_pread_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)]; @@ -474,6 +517,41 @@ struct freebsd32_ftruncate_args { char length1_l_[PADL_(u_int32_t)]; u_int32_t length1; char length1_r_[PADR_(u_int32_t)]; char length2_l_[PADL_(u_int32_t)]; u_int32_t length2; char length2_r_[PADR_(u_int32_t)]; }; +#else +struct freebsd32_pread_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)]; + char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; +}; +struct freebsd32_pwrite_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char buf_l_[PADL_(const void *)]; const void * buf; char buf_r_[PADR_(const void *)]; + char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; +}; +struct freebsd32_mmap_args { + char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)]; + char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)]; + char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char pos_l_[PADL_(off_t)]; off_t pos; char pos_r_[PADR_(off_t)]; +}; +struct freebsd32_lseek_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; + char whence_l_[PADL_(int)]; int whence; char whence_r_[PADR_(int)]; +}; +struct freebsd32_truncate_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; +}; +struct freebsd32_ftruncate_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; +}; +#endif #endif #ifdef PAD64_REQUIRED struct freebsd32_cpuset_setid_args { @@ -484,13 +562,22 @@ struct freebsd32_cpuset_setid_args { char setid_l_[PADL_(cpusetid_t)]; cpusetid_t setid; char setid_r_[PADR_(cpusetid_t)]; }; #else +#ifdef QUAD_SPLIT_REQUIRED struct freebsd32_cpuset_setid_args { char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)]; char id1_l_[PADL_(u_int32_t)]; u_int32_t id1; char id1_r_[PADR_(u_int32_t)]; char id2_l_[PADL_(u_int32_t)]; u_int32_t id2; char id2_r_[PADR_(u_int32_t)]; char setid_l_[PADL_(cpusetid_t)]; cpusetid_t setid; char setid_r_[PADR_(cpusetid_t)]; }; +#else +struct freebsd32_cpuset_setid_args { + char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)]; + char id_l_[PADL_(id_t)]; id_t id; char id_r_[PADR_(id_t)]; + char setid_l_[PADL_(cpusetid_t)]; cpusetid_t setid; char setid_r_[PADR_(cpusetid_t)]; +}; +#endif #endif +#ifdef QUAD_SPLIT_REQUIRED struct freebsd32_cpuset_getid_args { char level_l_[PADL_(cpulevel_t)]; cpulevel_t level; char level_r_[PADR_(cpulevel_t)]; char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)]; @@ -514,6 +601,28 @@ struct freebsd32_cpuset_setaffinity_args char cpusetsize_l_[PADL_(size_t)]; size_t cpusetsize; char cpusetsize_r_[PADR_(size_t)]; char mask_l_[PADL_(const cpuset_t *)]; const cpuset_t * mask; char mask_r_[PADR_(const cpuset_t *)]; }; +#else +struct freebsd32_cpuset_getid_args { + char level_l_[PADL_(cpulevel_t)]; cpulevel_t level; char level_r_[PADR_(cpulevel_t)]; + char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)]; + char id_l_[PADL_(id_t)]; id_t id; char id_r_[PADR_(id_t)]; + char setid_l_[PADL_(cpusetid_t *)]; cpusetid_t * setid; char setid_r_[PADR_(cpusetid_t *)]; +}; +struct freebsd32_cpuset_getaffinity_args { + char level_l_[PADL_(cpulevel_t)]; cpulevel_t level; char level_r_[PADR_(cpulevel_t)]; + char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)]; + char id_l_[PADL_(id_t)]; id_t id; char id_r_[PADR_(id_t)]; + char cpusetsize_l_[PADL_(size_t)]; size_t cpusetsize; char cpusetsize_r_[PADR_(size_t)]; + char mask_l_[PADL_(cpuset_t *)]; cpuset_t * mask; char mask_r_[PADR_(cpuset_t *)]; +}; +struct freebsd32_cpuset_setaffinity_args { + char level_l_[PADL_(cpulevel_t)]; cpulevel_t level; char level_r_[PADR_(cpulevel_t)]; + char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)]; + char id_l_[PADL_(id_t)]; id_t id; char id_r_[PADR_(id_t)]; + char cpusetsize_l_[PADL_(size_t)]; size_t cpusetsize; char cpusetsize_r_[PADR_(size_t)]; + char mask_l_[PADL_(const cpuset_t *)]; const cpuset_t * mask; char mask_r_[PADR_(const cpuset_t *)]; +}; +#endif struct freebsd32_fexecve_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char argv_l_[PADL_(u_int32_t *)]; u_int32_t * argv; char argv_r_[PADR_(u_int32_t *)]; @@ -567,6 +676,9 @@ struct freebsd32_pselect_args { #if !defined(PAD64_REQUIRED) && defined(__powerpc__) #define PAD64_REQUIRED #endif +#if !defined(QUAD_SPLIT_REQUIRED) && !defined(__mips__) +#define QUAD_SPLIT_REQUIRED +#endif int freebsd32_wait4(struct thread *, struct freebsd32_wait4_args *); int freebsd32_recvmsg(struct thread *, struct freebsd32_recvmsg_args *); int freebsd32_sendmsg(struct thread *, struct freebsd32_sendmsg_args *); @@ -588,10 +700,19 @@ int freebsd32_sysarch(struct thread *, s int freebsd32_semsys(struct thread *, struct freebsd32_semsys_args *); int freebsd32_msgsys(struct thread *, struct freebsd32_msgsys_args *); int freebsd32_shmsys(struct thread *, struct freebsd32_shmsys_args *); +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif int freebsd32_stat(struct thread *, struct freebsd32_stat_args *); int freebsd32_fstat(struct thread *, struct freebsd32_fstat_args *); int freebsd32_lstat(struct thread *, struct freebsd32_lstat_args *); int freebsd32_getdirentries(struct thread *, struct freebsd32_getdirentries_args *); +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif int freebsd32_sysctl(struct thread *, struct freebsd32_sysctl_args *); int freebsd32_futimes(struct thread *, struct freebsd32_futimes_args *); int freebsd32_msgsnd(struct thread *, struct freebsd32_msgsnd_args *); @@ -604,8 +725,13 @@ int freebsd32_aio_read(struct thread *, int freebsd32_aio_write(struct thread *, struct freebsd32_aio_write_args *); int freebsd32_lio_listio(struct thread *, struct freebsd32_lio_listio_args *); int freebsd32_lutimes(struct thread *, struct freebsd32_lutimes_args *); +#ifdef QUAD_SPLIT_REQUIRED +int freebsd32_preadv(struct thread *, struct freebsd32_preadv_args *); +int freebsd32_pwritev(struct thread *, struct freebsd32_pwritev_args *); +#else int freebsd32_preadv(struct thread *, struct freebsd32_preadv_args *); int freebsd32_pwritev(struct thread *, struct freebsd32_pwritev_args *); +#endif int freebsd32_modstat(struct thread *, struct freebsd32_modstat_args *); int freebsd32_aio_return(struct thread *, struct freebsd32_aio_return_args *); int freebsd32_aio_suspend(struct thread *, struct freebsd32_aio_suspend_args *); @@ -614,13 +740,20 @@ int freebsd32_aio_error(struct thread *, int freebsd32_oaio_read(struct thread *, struct freebsd32_oaio_read_args *); int freebsd32_oaio_write(struct thread *, struct freebsd32_oaio_write_args *); int freebsd32_olio_listio(struct thread *, struct freebsd32_olio_listio_args *); +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif int freebsd32_jail(struct thread *, struct freebsd32_jail_args *); int freebsd32_sigtimedwait(struct thread *, struct freebsd32_sigtimedwait_args *); int freebsd32_sigwaitinfo(struct thread *, struct freebsd32_sigwaitinfo_args *); int freebsd32_aio_waitcomplete(struct thread *, struct freebsd32_aio_waitcomplete_args *); int freebsd32_kevent(struct thread *, struct freebsd32_kevent_args *); int freebsd32_nmount(struct thread *, struct freebsd32_nmount_args *); +#ifdef QUAD_SPLIT_REQUIRED int freebsd32_sendfile(struct thread *, struct freebsd32_sendfile_args *); +#else +int freebsd32_sendfile(struct thread *, struct freebsd32_sendfile_args *); +#endif int freebsd32_ksem_init(struct thread *, struct freebsd32_ksem_init_args *); int freebsd32_ksem_open(struct thread *, struct freebsd32_ksem_open_args *); int freebsd32_sigaction(struct thread *, struct freebsd32_sigaction_args *); @@ -647,6 +780,14 @@ int freebsd32_lseek(struct thread *, str int freebsd32_truncate(struct thread *, struct freebsd32_truncate_args *); int freebsd32_ftruncate(struct thread *, struct freebsd32_ftruncate_args *); #else +#ifdef QUAD_SPLIT_REQUIRED +int freebsd32_pread(struct thread *, struct freebsd32_pread_args *); +int freebsd32_pwrite(struct thread *, struct freebsd32_pwrite_args *); +int freebsd32_mmap(struct thread *, struct freebsd32_mmap_args *); +int freebsd32_lseek(struct thread *, struct freebsd32_lseek_args *); +int freebsd32_truncate(struct thread *, struct freebsd32_truncate_args *); +int freebsd32_ftruncate(struct thread *, struct freebsd32_ftruncate_args *); +#else int freebsd32_pread(struct thread *, struct freebsd32_pread_args *); int freebsd32_pwrite(struct thread *, struct freebsd32_pwrite_args *); int freebsd32_mmap(struct thread *, struct freebsd32_mmap_args *); @@ -654,14 +795,25 @@ int freebsd32_lseek(struct thread *, str int freebsd32_truncate(struct thread *, struct freebsd32_truncate_args *); int freebsd32_ftruncate(struct thread *, struct freebsd32_ftruncate_args *); #endif +#endif #ifdef PAD64_REQUIRED int freebsd32_cpuset_setid(struct thread *, struct freebsd32_cpuset_setid_args *); #else +#ifdef QUAD_SPLIT_REQUIRED +int freebsd32_cpuset_setid(struct thread *, struct freebsd32_cpuset_setid_args *); +#else int freebsd32_cpuset_setid(struct thread *, struct freebsd32_cpuset_setid_args *); #endif +#endif +#ifdef QUAD_SPLIT_REQUIRED +int freebsd32_cpuset_getid(struct thread *, struct freebsd32_cpuset_getid_args *); +int freebsd32_cpuset_getaffinity(struct thread *, struct freebsd32_cpuset_getaffinity_args *); +int freebsd32_cpuset_setaffinity(struct thread *, struct freebsd32_cpuset_setaffinity_args *); +#else int freebsd32_cpuset_getid(struct thread *, struct freebsd32_cpuset_getid_args *); int freebsd32_cpuset_getaffinity(struct thread *, struct freebsd32_cpuset_getaffinity_args *); int freebsd32_cpuset_setaffinity(struct thread *, struct freebsd32_cpuset_setaffinity_args *); +#endif int freebsd32_fexecve(struct thread *, struct freebsd32_fexecve_args *); int freebsd32_fstatat(struct thread *, struct freebsd32_fstatat_args *); int freebsd32_futimesat(struct thread *, struct freebsd32_futimesat_args *); @@ -677,6 +829,9 @@ int freebsd32_pselect(struct thread *, s #if !defined(PAD64_REQUIRED) && defined(__powerpc__) #define PAD64_REQUIRED #endif +#if !defined(QUAD_SPLIT_REQUIRED) && !defined(__mips__) +#define QUAD_SPLIT_REQUIRED +#endif struct ofreebsd32_sigaction_args { char signum_l_[PADL_(int)]; int signum; char signum_r_[PADR_(int)]; char nsa_l_[PADL_(struct osigaction32 *)]; struct osigaction32 * nsa; char nsa_r_[PADR_(struct osigaction32 *)]; @@ -704,11 +859,38 @@ struct ofreebsd32_sigstack_args { char nss_l_[PADL_(struct sigstack32 *)]; struct sigstack32 * nss; char nss_r_[PADR_(struct sigstack32 *)]; char oss_l_[PADL_(struct sigstack32 *)]; struct sigstack32 * oss; char oss_r_[PADR_(struct sigstack32 *)]; }; +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif #ifdef PAD64_REQUIRED #else +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif #endif #ifdef PAD64_REQUIRED #else +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else #endif int ofreebsd32_sigaction(struct thread *, struct ofreebsd32_sigaction_args *); int ofreebsd32_sigprocmask(struct thread *, struct ofreebsd32_sigprocmask_args *); @@ -727,6 +909,9 @@ int ofreebsd32_sigstack(struct thread *, #if !defined(PAD64_REQUIRED) && defined(__powerpc__) #define PAD64_REQUIRED #endif +#if !defined(QUAD_SPLIT_REQUIRED) && !defined(__mips__) +#define QUAD_SPLIT_REQUIRED +#endif struct freebsd4_freebsd32_getfsstat_args { char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)]; char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)]; @@ -740,10 +925,23 @@ struct freebsd4_freebsd32_fstatfs_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)]; }; +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif struct freebsd4_freebsd32_fhstatfs_args { char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)]; char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)]; }; +#ifdef QUAD_SPLIT_REQUIRED struct freebsd4_freebsd32_sendfile_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; @@ -754,6 +952,17 @@ struct freebsd4_freebsd32_sendfile_args char sbytes_l_[PADL_(off_t *)]; off_t * sbytes; char sbytes_r_[PADR_(off_t *)]; char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; }; +#else +struct freebsd4_freebsd32_sendfile_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; + char nbytes_l_[PADL_(size_t)]; size_t nbytes; char nbytes_r_[PADR_(size_t)]; + char hdtr_l_[PADL_(struct sf_hdtr32 *)]; struct sf_hdtr32 * hdtr; char hdtr_r_[PADR_(struct sf_hdtr32 *)]; + char sbytes_l_[PADL_(off_t *)]; off_t * sbytes; char sbytes_r_[PADR_(off_t *)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; +}; +#endif struct freebsd4_freebsd32_sigaction_args { char sig_l_[PADL_(int)]; int sig; char sig_r_[PADR_(int)]; char act_l_[PADL_(struct sigaction32 *)]; struct sigaction32 * act; char act_r_[PADR_(struct sigaction32 *)]; @@ -762,17 +971,30 @@ struct freebsd4_freebsd32_sigaction_args struct freebsd4_freebsd32_sigreturn_args { char sigcntxp_l_[PADL_(const struct freebsd4_freebsd32_ucontext *)]; const struct freebsd4_freebsd32_ucontext * sigcntxp; char sigcntxp_r_[PADR_(const struct freebsd4_freebsd32_ucontext *)]; }; +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif #ifdef PAD64_REQUIRED #else +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif #endif #ifdef PAD64_REQUIRED #else +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else #endif int freebsd4_freebsd32_getfsstat(struct thread *, struct freebsd4_freebsd32_getfsstat_args *); int freebsd4_freebsd32_statfs(struct thread *, struct freebsd4_freebsd32_statfs_args *); int freebsd4_freebsd32_fstatfs(struct thread *, struct freebsd4_freebsd32_fstatfs_args *); int freebsd4_freebsd32_fhstatfs(struct thread *, struct freebsd4_freebsd32_fhstatfs_args *); int freebsd4_freebsd32_sendfile(struct thread *, struct freebsd4_freebsd32_sendfile_args *); +int freebsd4_freebsd32_sendfile(struct thread *, struct freebsd4_freebsd32_sendfile_args *); int freebsd4_freebsd32_sigaction(struct thread *, struct freebsd4_freebsd32_sigaction_args *); int freebsd4_freebsd32_sigreturn(struct thread *, struct freebsd4_freebsd32_sigreturn_args *); @@ -784,6 +1006,10 @@ int freebsd4_freebsd32_sigreturn(struct #if !defined(PAD64_REQUIRED) && defined(__powerpc__) #define PAD64_REQUIRED #endif +#if !defined(QUAD_SPLIT_REQUIRED) && !defined(__mips__) +#define QUAD_SPLIT_REQUIRED +#endif +#ifdef QUAD_SPLIT_REQUIRED struct freebsd6_freebsd32_pread_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)]; @@ -800,6 +1026,23 @@ struct freebsd6_freebsd32_pwrite_args { char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)]; char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)]; }; +#else +struct freebsd6_freebsd32_pread_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)]; + char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; +}; +struct freebsd6_freebsd32_pwrite_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char buf_l_[PADL_(const void *)]; const void * buf; char buf_r_[PADR_(const void *)]; + char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; +}; +#endif +#ifdef QUAD_SPLIT_REQUIRED struct freebsd6_freebsd32_mmap_args { char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)]; char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)]; @@ -810,6 +1053,18 @@ struct freebsd6_freebsd32_mmap_args { char pos1_l_[PADL_(u_int32_t)]; u_int32_t pos1; char pos1_r_[PADR_(u_int32_t)]; char pos2_l_[PADL_(u_int32_t)]; u_int32_t pos2; char pos2_r_[PADR_(u_int32_t)]; }; +#else +struct freebsd6_freebsd32_mmap_args { + char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)]; + char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)]; + char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char pos_l_[PADL_(off_t)]; off_t pos; char pos_r_[PADR_(off_t)]; +}; +#endif +#ifdef QUAD_SPLIT_REQUIRED struct freebsd6_freebsd32_lseek_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; @@ -829,15 +1084,57 @@ struct freebsd6_freebsd32_ftruncate_args char length1_l_[PADL_(u_int32_t)]; u_int32_t length1; char length1_r_[PADR_(u_int32_t)]; char length2_l_[PADL_(u_int32_t)]; u_int32_t length2; char length2_r_[PADR_(u_int32_t)]; }; +#else +struct freebsd6_freebsd32_lseek_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char offset_l_[PADL_(off_t)]; off_t offset; char offset_r_[PADR_(off_t)]; + char whence_l_[PADL_(int)]; int whence; char whence_r_[PADR_(int)]; +}; +struct freebsd6_freebsd32_truncate_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; +}; +struct freebsd6_freebsd32_ftruncate_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)]; + char length_l_[PADL_(off_t)]; off_t length; char length_r_[PADR_(off_t)]; +}; +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif #ifdef PAD64_REQUIRED #else +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif #endif #ifdef PAD64_REQUIRED #else +#ifdef QUAD_SPLIT_REQUIRED +#else #endif +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +int freebsd6_freebsd32_pread(struct thread *, struct freebsd6_freebsd32_pread_args *); +int freebsd6_freebsd32_pwrite(struct thread *, struct freebsd6_freebsd32_pwrite_args *); int freebsd6_freebsd32_pread(struct thread *, struct freebsd6_freebsd32_pread_args *); int freebsd6_freebsd32_pwrite(struct thread *, struct freebsd6_freebsd32_pwrite_args *); int freebsd6_freebsd32_mmap(struct thread *, struct freebsd6_freebsd32_mmap_args *); +int freebsd6_freebsd32_mmap(struct thread *, struct freebsd6_freebsd32_mmap_args *); +int freebsd6_freebsd32_lseek(struct thread *, struct freebsd6_freebsd32_lseek_args *); +int freebsd6_freebsd32_truncate(struct thread *, struct freebsd6_freebsd32_truncate_args *); +int freebsd6_freebsd32_ftruncate(struct thread *, struct freebsd6_freebsd32_ftruncate_args *); int freebsd6_freebsd32_lseek(struct thread *, struct freebsd6_freebsd32_lseek_args *); int freebsd6_freebsd32_truncate(struct thread *, struct freebsd6_freebsd32_truncate_args *); int freebsd6_freebsd32_ftruncate(struct thread *, struct freebsd6_freebsd32_ftruncate_args *); @@ -850,6 +1147,18 @@ int freebsd6_freebsd32_ftruncate(struct #if !defined(PAD64_REQUIRED) && defined(__powerpc__) #define PAD64_REQUIRED #endif +#if !defined(QUAD_SPLIT_REQUIRED) && !defined(__mips__) +#define QUAD_SPLIT_REQUIRED +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif struct freebsd7_freebsd32_semctl_args { char semid_l_[PADL_(int)]; int semid; char semid_r_[PADR_(int)]; char semnum_l_[PADL_(int)]; int semnum; char semnum_r_[PADR_(int)]; @@ -866,11 +1175,29 @@ struct freebsd7_freebsd32_shmctl_args { char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)]; char buf_l_[PADL_(struct shmid_ds32_old *)]; struct shmid_ds32_old * buf; char buf_r_[PADR_(struct shmid_ds32_old *)]; }; +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif #ifdef PAD64_REQUIRED #else +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif #endif #ifdef PAD64_REQUIRED #else +#ifdef QUAD_SPLIT_REQUIRED +#else +#endif +#endif +#ifdef QUAD_SPLIT_REQUIRED +#else #endif int freebsd7_freebsd32_semctl(struct thread *, struct freebsd7_freebsd32_semctl_args *); int freebsd7_freebsd32_msgctl(struct thread *, struct freebsd7_freebsd32_msgctl_args *); @@ -912,11 +1239,17 @@ int freebsd7_freebsd32_shmctl(struct thr #define FREEBSD32_SYS_AUE_freebsd32_shmsys AUE_SHMSYS #define FREEBSD32_SYS_AUE_freebsd6_freebsd32_pread AUE_PREAD #define FREEBSD32_SYS_AUE_freebsd6_freebsd32_pwrite AUE_PWRITE +#define FREEBSD32_SYS_AUE_freebsd6_freebsd32_pread AUE_PREAD +#define FREEBSD32_SYS_AUE_freebsd6_freebsd32_pwrite AUE_PWRITE #define FREEBSD32_SYS_AUE_freebsd32_stat AUE_STAT #define FREEBSD32_SYS_AUE_freebsd32_fstat AUE_FSTAT #define FREEBSD32_SYS_AUE_freebsd32_lstat AUE_LSTAT #define FREEBSD32_SYS_AUE_freebsd32_getdirentries AUE_GETDIRENTRIES #define FREEBSD32_SYS_AUE_freebsd6_freebsd32_mmap AUE_MMAP +#define FREEBSD32_SYS_AUE_freebsd6_freebsd32_mmap AUE_MMAP +#define FREEBSD32_SYS_AUE_freebsd6_freebsd32_lseek AUE_LSEEK +#define FREEBSD32_SYS_AUE_freebsd6_freebsd32_truncate AUE_TRUNCATE +#define FREEBSD32_SYS_AUE_freebsd6_freebsd32_ftruncate AUE_FTRUNCATE #define FREEBSD32_SYS_AUE_freebsd6_freebsd32_lseek AUE_LSEEK #define FREEBSD32_SYS_AUE_freebsd6_freebsd32_truncate AUE_TRUNCATE #define FREEBSD32_SYS_AUE_freebsd6_freebsd32_ftruncate AUE_FTRUNCATE @@ -937,6 +1270,8 @@ int freebsd7_freebsd32_shmctl(struct thr #define FREEBSD32_SYS_AUE_freebsd32_lutimes AUE_LUTIMES #define FREEBSD32_SYS_AUE_freebsd32_preadv AUE_PREADV #define FREEBSD32_SYS_AUE_freebsd32_pwritev AUE_PWRITEV +#define FREEBSD32_SYS_AUE_freebsd32_preadv AUE_PREADV +#define FREEBSD32_SYS_AUE_freebsd32_pwritev AUE_PWRITEV #define FREEBSD32_SYS_AUE_freebsd4_freebsd32_fhstatfs AUE_FHSTATFS #define FREEBSD32_SYS_AUE_freebsd32_modstat AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_aio_return AUE_NULL @@ -947,6 +1282,7 @@ int freebsd7_freebsd32_shmctl(struct thr #define FREEBSD32_SYS_AUE_freebsd32_oaio_write AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_olio_listio AUE_NULL #define FREEBSD32_SYS_AUE_freebsd4_freebsd32_sendfile AUE_SENDFILE +#define FREEBSD32_SYS_AUE_freebsd4_freebsd32_sendfile AUE_SENDFILE #define FREEBSD32_SYS_AUE_freebsd32_jail AUE_JAIL #define FREEBSD32_SYS_AUE_freebsd4_freebsd32_sigaction AUE_SIGACTION #define FREEBSD32_SYS_AUE_freebsd4_freebsd32_sigreturn AUE_SIGRETURN @@ -956,6 +1292,7 @@ int freebsd7_freebsd32_shmctl(struct thr #define FREEBSD32_SYS_AUE_freebsd32_kevent AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_nmount AUE_NMOUNT #define FREEBSD32_SYS_AUE_freebsd32_sendfile AUE_SENDFILE +#define FREEBSD32_SYS_AUE_freebsd32_sendfile AUE_SENDFILE #define FREEBSD32_SYS_AUE_freebsd32_ksem_init AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_ksem_open AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_sigaction AUE_SIGACTION @@ -986,8 +1323,18 @@ int freebsd7_freebsd32_shmctl(struct thr #define FREEBSD32_SYS_AUE_freebsd32_lseek AUE_LSEEK #define FREEBSD32_SYS_AUE_freebsd32_truncate AUE_TRUNCATE #define FREEBSD32_SYS_AUE_freebsd32_ftruncate AUE_FTRUNCATE +#define FREEBSD32_SYS_AUE_freebsd32_pread AUE_PREAD +#define FREEBSD32_SYS_AUE_freebsd32_pwrite AUE_PWRITE +#define FREEBSD32_SYS_AUE_freebsd32_mmap AUE_MMAP +#define FREEBSD32_SYS_AUE_freebsd32_lseek AUE_LSEEK +#define FREEBSD32_SYS_AUE_freebsd32_truncate AUE_TRUNCATE +#define FREEBSD32_SYS_AUE_freebsd32_ftruncate AUE_FTRUNCATE #define FREEBSD32_SYS_AUE_freebsd32_cpuset_setid AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_cpuset_setid AUE_NULL +#define FREEBSD32_SYS_AUE_freebsd32_cpuset_setid AUE_NULL +#define FREEBSD32_SYS_AUE_freebsd32_cpuset_getid AUE_NULL +#define FREEBSD32_SYS_AUE_freebsd32_cpuset_getaffinity AUE_NULL +#define FREEBSD32_SYS_AUE_freebsd32_cpuset_setaffinity AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_cpuset_getid AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_cpuset_getaffinity AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_cpuset_setaffinity AUE_NULL Modified: user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscall.h ============================================================================== --- user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscall.h Wed Apr 14 03:13:02 2010 (r206585) +++ user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscall.h Wed Apr 14 03:58:21 2010 (r206586) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 205325 2010-03-19 11:10:24Z kib + * created from FreeBSD: user/jmallett/octeon/sys/compat/freebsd32/syscalls.master 205510 2010-03-23 06:42:52Z jmallett */ #define FREEBSD32_SYS_syscall 0 @@ -166,6 +166,8 @@ #define FREEBSD32_SYS_freebsd32_shmsys 171 #define FREEBSD32_SYS_freebsd6_freebsd32_pread 173 #define FREEBSD32_SYS_freebsd6_freebsd32_pwrite 174 +#define FREEBSD32_SYS_freebsd6_freebsd32_pread 173 +#define FREEBSD32_SYS_freebsd6_freebsd32_pwrite 174 #define FREEBSD32_SYS_ntp_adjtime 176 #define FREEBSD32_SYS_setgid 181 #define FREEBSD32_SYS_setegid 182 @@ -179,10 +181,14 @@ #define FREEBSD32_SYS_setrlimit 195 #define FREEBSD32_SYS_freebsd32_getdirentries 196 #define FREEBSD32_SYS_freebsd6_freebsd32_mmap 197 +#define FREEBSD32_SYS_freebsd6_freebsd32_mmap 197 #define FREEBSD32_SYS___syscall 198 #define FREEBSD32_SYS_freebsd6_freebsd32_lseek 199 #define FREEBSD32_SYS_freebsd6_freebsd32_truncate 200 #define FREEBSD32_SYS_freebsd6_freebsd32_ftruncate 201 +#define FREEBSD32_SYS_freebsd6_freebsd32_lseek 199 +#define FREEBSD32_SYS_freebsd6_freebsd32_truncate 200 +#define FREEBSD32_SYS_freebsd6_freebsd32_ftruncate 201 #define FREEBSD32_SYS_freebsd32_sysctl 202 #define FREEBSD32_SYS_mlock 203 #define FREEBSD32_SYS_munlock 204 @@ -223,6 +229,8 @@ #define FREEBSD32_SYS_nlstat 280 #define FREEBSD32_SYS_freebsd32_preadv 289 #define FREEBSD32_SYS_freebsd32_pwritev 290 +#define FREEBSD32_SYS_freebsd32_preadv 289 +#define FREEBSD32_SYS_freebsd32_pwritev 290 #define FREEBSD32_SYS_freebsd4_freebsd32_fhstatfs 297 #define FREEBSD32_SYS_fhopen 298 #define FREEBSD32_SYS_fhstat 299 @@ -263,6 +271,7 @@ #define FREEBSD32_SYS_sched_rr_get_interval 334 #define FREEBSD32_SYS_utrace 335 #define FREEBSD32_SYS_freebsd4_freebsd32_sendfile 336 +#define FREEBSD32_SYS_freebsd4_freebsd32_sendfile 336 #define FREEBSD32_SYS_kldsym 337 #define FREEBSD32_SYS_freebsd32_jail 338 #define FREEBSD32_SYS_sigprocmask 340 @@ -299,6 +308,7 @@ #define FREEBSD32_SYS_lchflags 391 #define FREEBSD32_SYS_uuidgen 392 #define FREEBSD32_SYS_freebsd32_sendfile 393 +#define FREEBSD32_SYS_freebsd32_sendfile 393 #define FREEBSD32_SYS_getfsstat 395 #define FREEBSD32_SYS_statfs 396 #define FREEBSD32_SYS_fstatfs 397 @@ -376,12 +386,22 @@ #define FREEBSD32_SYS_freebsd32_lseek 478 #define FREEBSD32_SYS_freebsd32_truncate 479 #define FREEBSD32_SYS_freebsd32_ftruncate 480 +#define FREEBSD32_SYS_freebsd32_pread 475 +#define FREEBSD32_SYS_freebsd32_pwrite 476 +#define FREEBSD32_SYS_freebsd32_mmap 477 +#define FREEBSD32_SYS_freebsd32_lseek 478 +#define FREEBSD32_SYS_freebsd32_truncate 479 +#define FREEBSD32_SYS_freebsd32_ftruncate 480 #define FREEBSD32_SYS_thr_kill2 481 #define FREEBSD32_SYS_shm_open 482 #define FREEBSD32_SYS_shm_unlink 483 #define FREEBSD32_SYS_cpuset 484 #define FREEBSD32_SYS_freebsd32_cpuset_setid 485 #define FREEBSD32_SYS_freebsd32_cpuset_setid 485 +#define FREEBSD32_SYS_freebsd32_cpuset_setid 485 +#define FREEBSD32_SYS_freebsd32_cpuset_getid 486 +#define FREEBSD32_SYS_freebsd32_cpuset_getaffinity 487 +#define FREEBSD32_SYS_freebsd32_cpuset_setaffinity 488 #define FREEBSD32_SYS_freebsd32_cpuset_getid 486 #define FREEBSD32_SYS_freebsd32_cpuset_getaffinity 487 #define FREEBSD32_SYS_freebsd32_cpuset_setaffinity 488 Modified: user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscalls.c ============================================================================== --- user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscalls.c Wed Apr 14 03:13:02 2010 (r206585) +++ user/jmallett/octeon/sys/compat/freebsd32/freebsd32_syscalls.c Wed Apr 14 03:58:21 2010 (r206586) @@ -3,13 +3,16 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 205325 2010-03-19 11:10:24Z kib + * created from FreeBSD: user/jmallett/octeon/sys/compat/freebsd32/syscalls.master 205510 2010-03-23 06:42:52Z jmallett */ const char *freebsd32_syscallnames[] = { #if !defined(PAD64_REQUIRED) && defined(__powerpc__) #define PAD64_REQUIRED #endif +#if !defined(QUAD_SPLIT_REQUIRED) && !defined(__mips__) +#define QUAD_SPLIT_REQUIRED +#endif "syscall", /* 0 = syscall */ "exit", /* 1 = exit */ "fork", /* 2 = fork */ @@ -183,8 +186,13 @@ const char *freebsd32_syscallnames[] = { "freebsd32_msgsys", /* 170 = freebsd32_msgsys */ "freebsd32_shmsys", /* 171 = freebsd32_shmsys */ "#172", /* 172 = nosys */ +#ifdef QUAD_SPLIT_REQUIRED "compat6.freebsd32_pread", /* 173 = freebsd6 freebsd32_pread */ "compat6.freebsd32_pwrite", /* 174 = freebsd6 freebsd32_pwrite */ +#else + "compat6.freebsd32_pread", /* 173 = freebsd6 freebsd32_pread */ + "compat6.freebsd32_pwrite", /* 174 = freebsd6 freebsd32_pwrite */ +#endif "#175", /* 175 = nosys */ "ntp_adjtime", /* 176 = ntp_adjtime */ "#177", /* 177 = sfork */ @@ -207,11 +215,21 @@ const char *freebsd32_syscallnames[] = { "getrlimit", /* 194 = getrlimit */ "setrlimit", /* 195 = setrlimit */ "freebsd32_getdirentries", /* 196 = freebsd32_getdirentries */ +#ifdef QUAD_SPLIT_REQUIRED "compat6.freebsd32_mmap", /* 197 = freebsd6 freebsd32_mmap */ +#else + "compat6.freebsd32_mmap", /* 197 = freebsd6 freebsd32_mmap */ +#endif "__syscall", /* 198 = __syscall */ +#ifdef QUAD_SPLIT_REQUIRED + "compat6.freebsd32_lseek", /* 199 = freebsd6 freebsd32_lseek */ + "compat6.freebsd32_truncate", /* 200 = freebsd6 freebsd32_truncate */ + "compat6.freebsd32_ftruncate", /* 201 = freebsd6 freebsd32_ftruncate */ +#else "compat6.freebsd32_lseek", /* 199 = freebsd6 freebsd32_lseek */ "compat6.freebsd32_truncate", /* 200 = freebsd6 freebsd32_truncate */ "compat6.freebsd32_ftruncate", /* 201 = freebsd6 freebsd32_ftruncate */ +#endif "freebsd32_sysctl", /* 202 = freebsd32_sysctl */ "mlock", /* 203 = mlock */ "munlock", /* 204 = munlock */ @@ -299,8 +317,13 @@ const char *freebsd32_syscallnames[] = { "#286", /* 286 = nosys */ "#287", /* 287 = nosys */ "#288", /* 288 = nosys */ +#ifdef QUAD_SPLIT_REQUIRED + "freebsd32_preadv", /* 289 = freebsd32_preadv */ + "freebsd32_pwritev", /* 290 = freebsd32_pwritev */ +#else "freebsd32_preadv", /* 289 = freebsd32_preadv */ "freebsd32_pwritev", /* 290 = freebsd32_pwritev */ +#endif "#291", /* 291 = nosys */ "#292", /* 292 = nosys */ "#293", /* 293 = nosys */ @@ -346,7 +369,11 @@ const char *freebsd32_syscallnames[] = { "sched_get_priority_min", /* 333 = sched_get_priority_min */ "sched_rr_get_interval", /* 334 = sched_rr_get_interval */ "utrace", /* 335 = utrace */ +#ifdef QUAD_SPLIT_REQUIRED "compat4.freebsd32_sendfile", /* 336 = freebsd4 freebsd32_sendfile */ +#else + "compat4.freebsd32_sendfile", /* 336 = freebsd4 freebsd32_sendfile */ +#endif "kldsym", /* 337 = kldsym */ "freebsd32_jail", /* 338 = freebsd32_jail */ "#339", /* 339 = pioctl */ @@ -403,7 +430,11 @@ const char *freebsd32_syscallnames[] = { "kenv", /* 390 = kenv */ "lchflags", /* 391 = lchflags */ "uuidgen", /* 392 = uuidgen */ +#ifdef QUAD_SPLIT_REQUIRED "freebsd32_sendfile", /* 393 = freebsd32_sendfile */ +#else + "freebsd32_sendfile", /* 393 = freebsd32_sendfile */ +#endif "#394", /* 394 = mac_syscall */ "getfsstat", /* 395 = getfsstat */ "statfs", /* 396 = statfs */ @@ -493,6 +524,14 @@ const char *freebsd32_syscallnames[] = { "freebsd32_truncate", /* 479 = freebsd32_truncate */ "freebsd32_ftruncate", /* 480 = freebsd32_ftruncate */ #else +#ifdef QUAD_SPLIT_REQUIRED + "freebsd32_pread", /* 475 = freebsd32_pread */ + "freebsd32_pwrite", /* 476 = freebsd32_pwrite */ + "freebsd32_mmap", /* 477 = freebsd32_mmap */ + "freebsd32_lseek", /* 478 = freebsd32_lseek */ + "freebsd32_truncate", /* 479 = freebsd32_truncate */ + "freebsd32_ftruncate", /* 480 = freebsd32_ftruncate */ +#else "freebsd32_pread", /* 475 = freebsd32_pread */ "freebsd32_pwrite", /* 476 = freebsd32_pwrite */ "freebsd32_mmap", /* 477 = freebsd32_mmap */ @@ -500,6 +539,7 @@ const char *freebsd32_syscallnames[] = { "freebsd32_truncate", /* 479 = freebsd32_truncate */ "freebsd32_ftruncate", /* 480 = freebsd32_ftruncate */ #endif +#endif "thr_kill2", /* 481 = thr_kill2 */ "shm_open", /* 482 = shm_open */ "shm_unlink", /* 483 = shm_unlink */ @@ -507,11 +547,21 @@ const char *freebsd32_syscallnames[] = { #ifdef PAD64_REQUIRED "freebsd32_cpuset_setid", /* 485 = freebsd32_cpuset_setid */ #else +#ifdef QUAD_SPLIT_REQUIRED + "freebsd32_cpuset_setid", /* 485 = freebsd32_cpuset_setid */ +#else "freebsd32_cpuset_setid", /* 485 = freebsd32_cpuset_setid */ #endif +#endif +#ifdef QUAD_SPLIT_REQUIRED "freebsd32_cpuset_getid", /* 486 = freebsd32_cpuset_getid */ "freebsd32_cpuset_getaffinity", /* 487 = freebsd32_cpuset_getaffinity */ "freebsd32_cpuset_setaffinity", /* 488 = freebsd32_cpuset_setaffinity */ +#else + "freebsd32_cpuset_getid", /* 486 = freebsd32_cpuset_getid */ + "freebsd32_cpuset_getaffinity", /* 487 = freebsd32_cpuset_getaffinity */ + "freebsd32_cpuset_setaffinity", /* 488 = freebsd32_cpuset_setaffinity */ +#endif "faccessat", /* 489 = faccessat */ "fchmodat", /* 490 = fchmodat */ "fchownat", /* 491 = fchownat */ Modified: user/jmallett/octeon/sys/compat/freebsd32/freebsd32_sysent.c ============================================================================== --- user/jmallett/octeon/sys/compat/freebsd32/freebsd32_sysent.c Wed Apr 14 03:13:02 2010 (r206585) +++ user/jmallett/octeon/sys/compat/freebsd32/freebsd32_sysent.c Wed Apr 14 03:58:21 2010 (r206586) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 205325 2010-03-19 11:10:24Z kib + * created from FreeBSD: user/jmallett/octeon/sys/compat/freebsd32/syscalls.master 205510 2010-03-23 06:42:52Z jmallett */ #include "opt_compat.h" @@ -47,6 +47,9 @@ struct sysent freebsd32_sysent[] = { #if !defined(PAD64_REQUIRED) && defined(__powerpc__) #define PAD64_REQUIRED #endif +#if !defined(QUAD_SPLIT_REQUIRED) && !defined(__mips__) +#define QUAD_SPLIT_REQUIRED +#endif { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 0 = syscall */ { AS(sys_exit_args), (sy_call_t *)sys_exit, AUE_EXIT, NULL, 0, 0, 0 }, /* 1 = exit */ { 0, (sy_call_t *)fork, AUE_FORK, NULL, 0, 0, 0 }, /* 2 = fork */ @@ -220,8 +223,13 @@ struct sysent freebsd32_sysent[] = { { AS(freebsd32_msgsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 170 = freebsd32_msgsys */ { AS(freebsd32_shmsys_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0 }, /* 171 = freebsd32_shmsys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 172 = nosys */ +#ifdef QUAD_SPLIT_REQUIRED { compat6(AS(freebsd6_freebsd32_pread_args),freebsd32_pread), AUE_PREAD, NULL, 0, 0, 0 }, /* 173 = freebsd6 freebsd32_pread */ { compat6(AS(freebsd6_freebsd32_pwrite_args),freebsd32_pwrite), AUE_PWRITE, NULL, 0, 0, 0 }, /* 174 = freebsd6 freebsd32_pwrite */ +#else + { compat6(AS(freebsd6_freebsd32_pread_args),freebsd32_pread), AUE_PREAD, NULL, 0, 0, 0 }, /* 173 = freebsd6 freebsd32_pread */ + { compat6(AS(freebsd6_freebsd32_pwrite_args),freebsd32_pwrite), AUE_PWRITE, NULL, 0, 0, 0 }, /* 174 = freebsd6 freebsd32_pwrite */ +#endif { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 175 = nosys */ { AS(ntp_adjtime_args), (sy_call_t *)ntp_adjtime, AUE_NTP_ADJTIME, NULL, 0, 0, 0 }, /* 176 = ntp_adjtime */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0 }, /* 177 = sfork */ @@ -244,11 +252,21 @@ struct sysent freebsd32_sysent[] = { { AS(__getrlimit_args), (sy_call_t *)getrlimit, AUE_GETRLIMIT, NULL, 0, 0, 0 }, /* 194 = getrlimit */ { AS(__setrlimit_args), (sy_call_t *)setrlimit, AUE_SETRLIMIT, NULL, 0, 0, 0 }, /* 195 = setrlimit */ { AS(freebsd32_getdirentries_args), (sy_call_t *)freebsd32_getdirentries, AUE_GETDIRENTRIES, NULL, 0, 0, 0 }, /* 196 = freebsd32_getdirentries */ +#ifdef QUAD_SPLIT_REQUIRED { compat6(AS(freebsd6_freebsd32_mmap_args),freebsd32_mmap), AUE_MMAP, NULL, 0, 0, 0 }, /* 197 = freebsd6 freebsd32_mmap */ +#else + { compat6(AS(freebsd6_freebsd32_mmap_args),freebsd32_mmap), AUE_MMAP, NULL, 0, 0, 0 }, /* 197 = freebsd6 freebsd32_mmap */ +#endif *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 04:10:14 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 50F2A1065675; Wed, 14 Apr 2010 04:10:14 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3FC4C8FC13; Wed, 14 Apr 2010 04:10:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E4AE8V059676; Wed, 14 Apr 2010 04:10:14 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E4AELl059673; Wed, 14 Apr 2010 04:10:14 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140410.o3E4AELl059673@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 04:10:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206587 - user/jmallett/octeon/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 04:10:14 -0000 Author: jmallett Date: Wed Apr 14 04:10:13 2010 New Revision: 206587 URL: http://svn.freebsd.org/changeset/base/206587 Log: o) Useful comment at the top of freebsd32_machdep. o) Remove TRAP_DEBUG. Modified: user/jmallett/octeon/sys/mips/mips/freebsd32_machdep.c user/jmallett/octeon/sys/mips/mips/trap.c Modified: user/jmallett/octeon/sys/mips/mips/freebsd32_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/freebsd32_machdep.c Wed Apr 14 03:58:21 2010 (r206586) +++ user/jmallett/octeon/sys/mips/mips/freebsd32_machdep.c Wed Apr 14 04:10:13 2010 (r206587) @@ -58,6 +58,11 @@ __FBSDID("$FreeBSD: user/jmallett/octeon /* * XXX * Add a mechanism to distinguish between n32 and o32. + * + * For now this file is only for running n32 world on an n64 kernel. Note also + * that it is pretty naive and incomplete and that at least sysarch and the + * mcontext-related functions are wrong due to pointer width. Trivial to fix, + * but not done yet. */ struct sysentvec elf32_freebsd_sysvec = { .sv_size = SYS_MAXSYSCALL, Modified: user/jmallett/octeon/sys/mips/mips/trap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/trap.c Wed Apr 14 03:58:21 2010 (r206586) +++ user/jmallett/octeon/sys/mips/mips/trap.c Wed Apr 14 04:10:13 2010 (r206587) @@ -95,7 +95,6 @@ __FBSDID("$FreeBSD$"); #include -#define TRAP_DEBUG #ifdef TRAP_DEBUG int trap_debug = 1; #endif From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 05:21:29 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D53F1065670; Wed, 14 Apr 2010 05:21:29 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0A6838FC17; Wed, 14 Apr 2010 05:21:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E5LStG075393; Wed, 14 Apr 2010 05:21:28 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E5LS85075388; Wed, 14 Apr 2010 05:21:28 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140521.o3E5LS85075388@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 05:21:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206588 - in user/jmallett/octeon/sys/mips: include mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 05:21:29 -0000 Author: jmallett Date: Wed Apr 14 05:21:28 2010 New Revision: 206588 URL: http://svn.freebsd.org/changeset/base/206588 Log: Use pmap_pte to look up PTEs outside of pmap.c rather than using pmap_segmap. Modified: user/jmallett/octeon/sys/mips/include/pte.h user/jmallett/octeon/sys/mips/mips/pmap.c user/jmallett/octeon/sys/mips/mips/trap.c user/jmallett/octeon/sys/mips/mips/vm_machdep.c Modified: user/jmallett/octeon/sys/mips/include/pte.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/pte.h Wed Apr 14 04:10:13 2010 (r206587) +++ user/jmallett/octeon/sys/mips/include/pte.h Wed Apr 14 05:21:28 2010 (r206588) @@ -38,12 +38,6 @@ typedef pt_entry_t *pd_entry_t; #endif /* - * Given a virtual address, get the offset of its PTE within its page - * directory page. - */ -#define PDE_OFFSET(va) (((vm_offset_t)(va) >> PAGE_SHIFT) & (NPTEPG - 1)) - -/* * TLB and PTE management. Most things operate within the context of * EntryLo0,1, and begin with TLBLO_. Things which work with EntryHi * start with TLBHI_. PTE bits begin with PG_. Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 04:10:13 2010 (r206587) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 05:21:28 2010 (r206588) @@ -136,6 +136,12 @@ __FBSDID("$FreeBSD$"); #define mips_segtrunc(va) ((va) & ~SEGOFSET) #define is_kernel_pmap(x) ((x) == kernel_pmap) +/* + * Given a virtual address, get the offset of its PTE within its page + * directory page. + */ +#define PDE_OFFSET(va) (((vm_offset_t)(va) >> PAGE_SHIFT) & (NPTEPG - 1)) + struct pmap kernel_pmap_store; pd_entry_t *kernel_segmap; Modified: user/jmallett/octeon/sys/mips/mips/trap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/trap.c Wed Apr 14 04:10:13 2010 (r206587) +++ user/jmallett/octeon/sys/mips/mips/trap.c Wed Apr 14 05:21:28 2010 (r206588) @@ -374,10 +374,9 @@ trap(struct trapframe *trapframe) vm_offset_t pa; PMAP_LOCK(kernel_pmap); - if (!(pte = pmap_segmap(kernel_pmap, - trapframe->badvaddr))) - panic("trap: ktlbmod: invalid segmap"); - pte += PDE_OFFSET(trapframe->badvaddr); + pte = pmap_pte(kernel_pmap, trapframe->badvaddr); + if (pte == NULL) + panic("trap: ktlbmod: can't find PTE"); #ifdef SMP /* It is possible that some other CPU changed m-bit */ if (!pte_test(pte, PG_V) || pte_test(pte, PG_D)) { @@ -414,9 +413,9 @@ trap(struct trapframe *trapframe) pmap = &p->p_vmspace->vm_pmap; PMAP_LOCK(pmap); - if (!(pte = pmap_segmap(pmap, trapframe->badvaddr))) - panic("trap: utlbmod: invalid segmap"); - pte += PDE_OFFSET(trapframe->badvaddr); + pte = pmap_pte(pmap, trapframe->badvaddr); + if (pte == NULL) + panic("trap: utlbmod: can't find PTE"); #ifdef SMP /* It is possible that some other CPU changed m-bit */ if (!pte_test(pte, PG_V) || pte_test(pte, PG_D)) { Modified: user/jmallett/octeon/sys/mips/mips/vm_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/vm_machdep.c Wed Apr 14 04:10:13 2010 (r206587) +++ user/jmallett/octeon/sys/mips/mips/vm_machdep.c Wed Apr 14 05:21:28 2010 (r206588) @@ -225,13 +225,9 @@ cpu_thread_swapin(struct thread *td) * part of the thread struct so cpu_switch() can quickly map in * the pcb struct and kernel stack. */ - if (!(pte = pmap_segmap(kernel_pmap, td->td_kstack))) - panic("cpu_thread_swapin: invalid segmap"); - pte += PDE_OFFSET(td->td_kstack); - for (i = 0; i < KSTACK_PAGES; i++) { + pte = pmap_pte(kernel_pmap, td->td_kstack + i * PAGE_SIZE); td->td_md.md_upte[i] = *pte & ~TLBLO_SWBITS_MASK; - pte++; } } @@ -250,13 +246,9 @@ cpu_thread_alloc(struct thread *td) td->td_kstack_pages * PAGE_SIZE) - 1; td->td_frame = &td->td_pcb->pcb_regs; - if (!(pte = pmap_segmap(kernel_pmap, td->td_kstack))) - panic("cpu_thread_alloc: invalid segmap"); - pte += PDE_OFFSET(td->td_kstack); - for (i = 0; i < KSTACK_PAGES; i++) { + pte = pmap_pte(kernel_pmap, td->td_kstack + i * PAGE_SIZE); td->td_md.md_upte[i] = *pte & ~TLBLO_SWBITS_MASK; - pte++; } } From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 05:44:02 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6788106566B; Wed, 14 Apr 2010 05:44:02 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B25278FC08; Wed, 14 Apr 2010 05:44:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E5i24d080336; Wed, 14 Apr 2010 05:44:02 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E5i2kI080328; Wed, 14 Apr 2010 05:44:02 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140544.o3E5i2kI080328@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 05:44:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206589 - in user/jmallett/octeon/sys/mips: include mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 05:44:02 -0000 Author: jmallett Date: Wed Apr 14 05:44:02 2010 New Revision: 206589 URL: http://svn.freebsd.org/changeset/base/206589 Log: o) Inline pmap_segmap in pmap.c now that it's unused elsewhere. o) Remove FPAGE support, which was unused due to the absence of support for VM_ALLOC_WIRED_TLB_PG_POOL and was, thus, broken. Use the lmem maps in pmap.c exclusively for mapping high memory on !N64. o) Removed related constants, etc. o) Break /dev/mem on !N64, for definitions of break equal to "return ENOTSUP rather than providing a particularly spectacular /dev/panic implementation by trying to acquire an uninitialized lock." Modified: user/jmallett/octeon/sys/mips/include/pmap.h user/jmallett/octeon/sys/mips/include/vmparam.h user/jmallett/octeon/sys/mips/mips/genassym.c user/jmallett/octeon/sys/mips/mips/machdep.c user/jmallett/octeon/sys/mips/mips/mem.c user/jmallett/octeon/sys/mips/mips/pmap.c user/jmallett/octeon/sys/mips/mips/swtch.S Modified: user/jmallett/octeon/sys/mips/include/pmap.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/pmap.h Wed Apr 14 05:21:28 2010 (r206588) +++ user/jmallett/octeon/sys/mips/include/pmap.h Wed Apr 14 05:44:02 2010 (r206589) @@ -94,7 +94,6 @@ typedef struct pmap *pmap_t; #ifdef _KERNEL pt_entry_t *pmap_pte(pmap_t, vm_offset_t); -pt_entry_t *pmap_segmap(pmap_t pmap, vm_offset_t va); vm_offset_t pmap_kextract(vm_offset_t va); #define vtophys(va) pmap_kextract(((vm_offset_t) (va))) @@ -152,14 +151,8 @@ typedef struct pv_entry { extern vm_offset_t phys_avail[PHYS_AVAIL_ENTRIES + 2]; extern vm_offset_t physmem_desc[PHYS_AVAIL_ENTRIES + 2]; -extern char *ptvmmap; /* poor name! */ extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; -extern pd_entry_t *segbase; - -extern vm_paddr_t mips_wired_tlb_physmem_start; -extern vm_paddr_t mips_wired_tlb_physmem_end; -extern u_int need_wired_tlb_page_pool; #define pmap_page_get_memattr(m) VM_MEMATTR_DEFAULT #define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) @@ -180,39 +173,6 @@ int pmap_compute_pages_to_dump(void); void pmap_update_page(pmap_t pmap, vm_offset_t va, pt_entry_t pte); void pmap_flush_pvcache(vm_page_t m); -#if !defined(__mips_n64) -/* - * floating virtual pages (FPAGES) - * - * These are the reserved virtual memory areas which can be - * mapped to any physical memory. - */ -#define FPAGES 2 -#define FPAGES_SHARED 2 -#define FSPACE ((FPAGES * MAXCPU + FPAGES_SHARED) * PAGE_SIZE) -#define PMAP_FPAGE1 0x00 /* Used by pmap_zero_page & - * pmap_copy_page */ -#define PMAP_FPAGE2 0x01 /* Used by pmap_copy_page */ - -#define PMAP_FPAGE3 0x00 /* Used by pmap_zero_page_idle */ -#define PMAP_FPAGE_KENTER_TEMP 0x01 /* Used by coredump */ - -struct fpage { - vm_offset_t kva; - u_int state; -}; - -struct sysmaps { - struct mtx lock; - struct fpage fp[FPAGES]; -}; - -vm_offset_t -pmap_map_fpage(vm_paddr_t pa, struct fpage *fp, - boolean_t check_unmaped); -void pmap_unmap_fpage(vm_paddr_t pa, struct fpage *fp); -#endif - #endif /* _KERNEL */ #endif /* !LOCORE */ Modified: user/jmallett/octeon/sys/mips/include/vmparam.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/vmparam.h Wed Apr 14 05:21:28 2010 (r206588) +++ user/jmallett/octeon/sys/mips/include/vmparam.h Wed Apr 14 05:44:02 2010 (r206589) @@ -114,10 +114,6 @@ #endif #define VM_MAX_MMAP_ADDR VM_MAXUSER_ADDRESS -#ifndef VM_KERNEL_ALLOC_OFFSET -#define VM_KERNEL_ALLOC_OFFSET ((vm_offset_t)0x00000000) -#endif - #if defined(__mips_n64) #define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)0xc000000000000000) #define VM_MAX_KERNEL_ADDRESS (VM_MIN_KERNEL_ADDRESS + (NPDEPG * NPTEPG * PAGE_SIZE)) @@ -125,7 +121,6 @@ #define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)0xC0000000) #define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)0xFFFFC000) #endif -#define VM_KERNEL_WIRED_ADDR_END (VM_MIN_KERNEL_ADDRESS + VM_KERNEL_ALLOC_OFFSET) #if 0 #define KERNBASE (VM_MIN_KERNEL_ADDRESS) #else Modified: user/jmallett/octeon/sys/mips/mips/genassym.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/genassym.c Wed Apr 14 05:21:28 2010 (r206588) +++ user/jmallett/octeon/sys/mips/mips/genassym.c Wed Apr 14 05:44:02 2010 (r206589) @@ -87,7 +87,6 @@ ASSYM(PC_CURPMAP, offsetof(struct pcpu, ASSYM(VM_MAX_KERNEL_ADDRESS, VM_MAX_KERNEL_ADDRESS); ASSYM(VM_MAXUSER_ADDRESS, VM_MAXUSER_ADDRESS); -ASSYM(VM_KERNEL_ALLOC_OFFSET, VM_KERNEL_ALLOC_OFFSET); ASSYM(SIGF_UC, offsetof(struct sigframe, sf_uc)); ASSYM(SIGFPE, SIGFPE); ASSYM(PAGE_SHIFT, PAGE_SHIFT); Modified: user/jmallett/octeon/sys/mips/mips/machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/machdep.c Wed Apr 14 05:21:28 2010 (r206588) +++ user/jmallett/octeon/sys/mips/mips/machdep.c Wed Apr 14 05:44:02 2010 (r206589) @@ -142,10 +142,6 @@ vm_offset_t physmem_desc[PHYS_AVAIL_ENTR struct platform platform; #endif -vm_paddr_t mips_wired_tlb_physmem_start; -vm_paddr_t mips_wired_tlb_physmem_end; -u_int need_wired_tlb_page_pool; - static void cpu_startup(void *); SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL); Modified: user/jmallett/octeon/sys/mips/mips/mem.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mem.c Wed Apr 14 05:21:28 2010 (r206588) +++ user/jmallett/octeon/sys/mips/mips/mem.c Wed Apr 14 05:44:02 2010 (r206589) @@ -67,10 +67,6 @@ __FBSDID("$FreeBSD$"); #include #include -#if !defined(__mips_n64) -extern struct sysmaps sysmaps_pcpu[]; -#endif - /*ARGSUSED*/ int memrw(dev, uio, flags) @@ -98,41 +94,26 @@ memrw(dev, uio, flags) v = uio->uio_offset; c = iov->iov_len; +#if defined(__mips_n64) vm_offset_t va; vm_paddr_t pa; register int o; if (is_cacheable_mem(v) && is_cacheable_mem(v + c - 1)) { -#if !defined(__mips_n64) - struct fpage *fp; - struct sysmaps *sysmaps; - - sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)]; - mtx_lock(&sysmaps->lock); - sched_pin(); - - fp = &sysmaps->fp[PMAP_FPAGE1]; -#endif pa = uio->uio_offset & ~PAGE_MASK; -#if !defined(__mips_n64) - va = pmap_map_fpage(pa, fp, FALSE); -#else va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, pa); -#endif o = (int)uio->uio_offset & PAGE_MASK; c = (u_int)(PAGE_SIZE - ((uintptr_t)iov->iov_base & PAGE_MASK)); c = min(c, (u_int)(PAGE_SIZE - o)); c = min(c, (u_int)iov->iov_len); error = uiomove((caddr_t)(va + o), (int)c, uio); -#if !defined(__mips_n64) - pmap_unmap_fpage(pa, fp); - sched_unpin(); - mtx_unlock(&sysmaps->lock); -#endif } else return (EFAULT); +#else + return (ENOTSUP); +#endif continue; } @@ -142,7 +123,6 @@ memrw(dev, uio, flags) c = min(iov->iov_len, MAXPHYS); vm_offset_t addr, eaddr; - vm_offset_t wired_tlb_virtmem_end; /* * Make sure that all of the pages are currently @@ -152,24 +132,15 @@ memrw(dev, uio, flags) eaddr = round_page(uio->uio_offset + c); if (addr > (vm_offset_t) VM_MIN_KERNEL_ADDRESS) { - wired_tlb_virtmem_end = VM_MIN_KERNEL_ADDRESS + - VM_KERNEL_ALLOC_OFFSET; - if ((addr < wired_tlb_virtmem_end) && - (eaddr >= wired_tlb_virtmem_end)) - addr = wired_tlb_virtmem_end; - - if (addr >= wired_tlb_virtmem_end) { - for (; addr < eaddr; addr += PAGE_SIZE) - if (pmap_extract(kernel_pmap, - addr) == 0) - return EFAULT; - - if (!kernacc( - (caddr_t)(uintptr_t)uio->uio_offset, c, - uio->uio_rw == UIO_READ ? - VM_PROT_READ : VM_PROT_WRITE)) - return (EFAULT); - } + for (; addr < eaddr; addr += PAGE_SIZE) + if (pmap_extract(kernel_pmap, addr) == 0) + return EFAULT; + + if (!kernacc( + (caddr_t)(uintptr_t)uio->uio_offset, c, + uio->uio_rw == UIO_READ ? + VM_PROT_READ : VM_PROT_WRITE)) + return (EFAULT); } else if (MIPS_IS_KSEG0_ADDR(v)) { if (MIPS_KSEG0_TO_PHYS(v + c) >= ctob(physmem)) Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 05:21:28 2010 (r206588) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 05:44:02 2010 (r206589) @@ -166,12 +166,6 @@ static uma_zone_t pvzone; static struct vm_object pvzone_obj; static int pv_entry_count = 0, pv_entry_max = 0, pv_entry_high_water = 0; -#if !defined(__mips_n64) -struct fpage fpages_shared[FPAGES_SHARED]; - -struct sysmaps sysmaps_pcpu[MAXCPU]; -#endif - static PMAP_INLINE void free_pv_entry(pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t locked_pmap); static __inline void pmap_clear_modified_bit(vm_page_t m); @@ -195,9 +189,6 @@ static vm_page_t pmap_allocpte(pmap_t pm static vm_page_t _pmap_allocpte(pmap_t pmap, unsigned ptepindex, int flags); static int pmap_unuse_pt(pmap_t, vm_offset_t, vm_page_t); static int init_pte_prot(vm_offset_t va, vm_page_t m, vm_prot_t prot); -#if !defined(__mips_n64) -static void pmap_init_fpage(void); -#endif #ifdef SMP static void pmap_invalidate_page_action(void *arg); @@ -278,7 +269,7 @@ caddr_t virtual_sys_start = (caddr_t)0; #endif -pt_entry_t * +static inline pt_entry_t * pmap_segmap(pmap_t pmap, vm_offset_t va) { if (pmap->pm_segtab) @@ -425,7 +416,7 @@ again: kstack0 = pmap_steal_memory(KSTACK_PAGES << PAGE_SHIFT); - virtual_avail = VM_MIN_KERNEL_ADDRESS + VM_KERNEL_ALLOC_OFFSET; + virtual_avail = VM_MIN_KERNEL_ADDRESS; virtual_end = VM_MAX_KERNEL_ADDRESS; #ifdef SMP @@ -550,10 +541,6 @@ void pmap_init(void) { -#if !defined(__mips_n64) - if (need_wired_tlb_page_pool) - pmap_init_fpage(); -#endif /* * Initialize the address space (zone) for the pv entries. Set a * high water mark so that the system can recover from excessive @@ -875,114 +862,6 @@ pmap_qremove(vm_offset_t va, int count) * Page table page management routines..... ***************************************************/ -#if !defined(__mips_n64) -/* - * floating pages (FPAGES) management routines - * - * FPAGES are the reserved virtual memory areas which can be - * mapped to any physical memory. This gets used typically - * in the following functions: - * - * pmap_zero_page - * pmap_copy_page - */ - -/* - * Create the floating pages, aka FPAGES! - */ -static void -pmap_init_fpage() -{ - vm_offset_t kva; - int i, j; - struct sysmaps *sysmaps; - - kva = kmem_alloc_nofault_space(kernel_map, - (FPAGES * MAXCPU + FPAGES_SHARED) * PAGE_SIZE, - VMFS_TLB_ALIGNED_SPACE); - if ((void *)kva == NULL) - panic("pmap_init_fpage: fpage allocation failed"); - - for (i = 0; i < MAXCPU; i++) { - sysmaps = &sysmaps_pcpu[i]; - mtx_init(&sysmaps->lock, "SYSMAPS", NULL, MTX_DEF); - - /* Assign FPAGES pages to the CPU */ - for (j = 0; j < FPAGES; j++) - sysmaps->fp[j].kva = kva + (j) * PAGE_SIZE; - kva = ((vm_offset_t)kva) + (FPAGES * PAGE_SIZE); - } - - /* - * An additional 2 pages are needed, one for pmap_zero_page_idle() - * and one for coredump. These pages are shared by all cpu's - */ - fpages_shared[PMAP_FPAGE3].kva = kva; - fpages_shared[PMAP_FPAGE_KENTER_TEMP].kva = kva + PAGE_SIZE; -} - -/* - * Map the page to the fpage virtual address as specified thru' fpage id - */ -vm_offset_t -pmap_map_fpage(vm_paddr_t pa, struct fpage *fp, boolean_t check_unmaped) -{ - vm_offset_t kva; - pt_entry_t *pte; - pt_entry_t npte; - - KASSERT(curthread->td_pinned > 0, ("curthread not pinned")); - /* - * Check if the fpage is free - */ - if (fp->state) { - if (check_unmaped == TRUE) - pmap_unmap_fpage(pa, fp); - else - panic("pmap_map_fpage: fpage is busy"); - } - fp->state = TRUE; - kva = fp->kva; - - npte = TLBLO_PA_TO_PFN(pa) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC; - pte = pmap_pte(kernel_pmap, kva); - *pte = npte; - - pmap_update_page(kernel_pmap, kva, npte); - - return (kva); -} - -/* - * Unmap the page from the fpage virtual address as specified thru' fpage id - */ -void -pmap_unmap_fpage(vm_paddr_t pa, struct fpage *fp) -{ - vm_offset_t kva; - pt_entry_t *pte; - - KASSERT(curthread->td_pinned > 0, ("curthread not pinned")); - /* - * Check if the fpage is busy - */ - if (!(fp->state)) { - panic("pmap_unmap_fpage: fpage is free"); - } - kva = fp->kva; - - pte = pmap_pte(kernel_pmap, kva); - *pte = PG_G; - pmap_invalidate_page(kernel_pmap, kva); - - fp->state = FALSE; - - /* - * Should there be any flush operation at the end? - */ -} -#endif - /* Revision 1.507 * * Simplify the reference counting of page table pages. Specifically, use @@ -1103,10 +982,6 @@ pmap_pinit(pmap_t pmap) req = VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_ZERO; -#ifdef VM_ALLOC_WIRED_TLB_PG_POOL - if (need_wired_tlb_page_pool) - req |= VM_ALLOC_WIRED_TLB_PG_POOL; -#endif /* * allocate the page directory page */ @@ -1161,10 +1036,6 @@ _pmap_allocpte(pmap_t pmap, unsigned pte ("_pmap_allocpte: flags is neither M_NOWAIT nor M_WAITOK")); req = VM_ALLOC_WIRED | VM_ALLOC_ZERO | VM_ALLOC_NOOBJ; -#ifdef VM_ALLOC_WIRED_TLB_PG_POOL - if (need_wired_tlb_page_pool) - req |= VM_ALLOC_WIRED_TLB_PG_POOL; -#endif /* * Find or fabricate a new pagetable page */ @@ -1341,7 +1212,7 @@ pmap_growkernel(vm_offset_t addr) mtx_assert(&kernel_map->system_mtx, MA_OWNED); if (kernel_vm_end == 0) { - kernel_vm_end = VM_MIN_KERNEL_ADDRESS + VM_KERNEL_ALLOC_OFFSET; + kernel_vm_end = VM_MIN_KERNEL_ADDRESS; nkpt = 0; while (segtab_pde(kernel_segmap, kernel_vm_end)) { kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & @@ -1370,10 +1241,6 @@ pmap_growkernel(vm_offset_t addr) * This index is bogus, but out of the way */ req = VM_ALLOC_INTERRUPT | VM_ALLOC_WIRED | VM_ALLOC_NOOBJ; -#ifdef VM_ALLOC_WIRED_TLB_PG_POOL - if (need_wired_tlb_page_pool) - req |= VM_ALLOC_WIRED_TLB_PG_POOL; -#endif nkpg = vm_page_alloc(NULL, nkpt, req); if (!nkpg) panic("pmap_growkernel: no memory to grow kernel"); @@ -2223,12 +2090,6 @@ pmap_kenter_temporary(vm_paddr_t pa, int printf("%s: ERROR!!! More than one page of virtual address mapping not supported\n", __func__); -#ifdef VM_ALLOC_WIRED_TLB_PG_POOL - if (need_wired_tlb_page_pool) { - va = pmap_map_fpage(pa, &fpages_shared[PMAP_FPAGE_KENTER_TEMP], - TRUE); - } else -#endif #if defined(__mips_n64) va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, pa); #else @@ -2395,35 +2256,7 @@ pmap_zero_page(vm_page_t m) vm_paddr_t phys = VM_PAGE_TO_PHYS(m); #if !defined(__mips_n64) register_t intr; -#endif -#ifdef VM_ALLOC_WIRED_TLB_PG_POOL - if (need_wired_tlb_page_pool) { - struct fpage *fp1; - struct sysmaps *sysmaps; - - sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)]; - mtx_lock(&sysmaps->lock); - sched_pin(); - - fp1 = &sysmaps->fp[PMAP_FPAGE1]; - va = pmap_map_fpage(phys, fp1, FALSE); - bzero((caddr_t)va, PAGE_SIZE); - pmap_unmap_fpage(phys, fp1); - sched_unpin(); - mtx_unlock(&sysmaps->lock); - /* - * Should you do cache flush? - */ - } else -#endif -#if defined(__mips_n64) - { - va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phys); - bzero((caddr_t)va, PAGE_SIZE); - mips_dcache_wbinv_range(va, PAGE_SIZE); - } -#else if (phys < MIPS_KSEG0_LARGEST_PHYS) { va = MIPS_PHYS_TO_KSEG0(phys); @@ -2437,6 +2270,11 @@ pmap_zero_page(vm_page_t m) PMAP_LMEM_UNMAP(); } +#else + va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phys); + + bzero((caddr_t)va, PAGE_SIZE); + mips_dcache_wbinv_range(va, PAGE_SIZE); #endif } @@ -2453,32 +2291,7 @@ pmap_zero_page_area(vm_page_t m, int off vm_paddr_t phys = VM_PAGE_TO_PHYS(m); #if !defined(__mips_n64) register_t intr; -#endif -#ifdef VM_ALLOC_WIRED_TLB_PG_POOL - if (need_wired_tlb_page_pool) { - struct fpage *fp1; - struct sysmaps *sysmaps; - - sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)]; - mtx_lock(&sysmaps->lock); - sched_pin(); - - fp1 = &sysmaps->fp[PMAP_FPAGE1]; - va = pmap_map_fpage(phys, fp1, FALSE); - bzero((caddr_t)va + off, size); - pmap_unmap_fpage(phys, fp1); - sched_unpin(); - mtx_unlock(&sysmaps->lock); - } else -#endif -#if defined(__mips_n64) - { - va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phys); - bzero((char *)(caddr_t)va + off, size); - mips_dcache_wbinv_range(va + off, size); - } -#else if (phys < MIPS_KSEG0_LARGEST_PHYS) { va = MIPS_PHYS_TO_KSEG0(phys); bzero((char *)(caddr_t)va + off, size); @@ -2491,6 +2304,10 @@ pmap_zero_page_area(vm_page_t m, int off PMAP_LMEM_UNMAP(); } +#else + va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phys); + bzero((char *)(caddr_t)va + off, size); + mips_dcache_wbinv_range(va + off, size); #endif } @@ -2501,23 +2318,7 @@ pmap_zero_page_idle(vm_page_t m) vm_paddr_t phys = VM_PAGE_TO_PHYS(m); #if !defined(__mips_n64) register_t intr; -#endif -#ifdef VM_ALLOC_WIRED_TLB_PG_POOL - if (need_wired_tlb_page_pool) { - sched_pin(); - va = pmap_map_fpage(phys, &fpages_shared[PMAP_FPAGE3], FALSE); - bzero((caddr_t)va, PAGE_SIZE); - pmap_unmap_fpage(phys, &fpages_shared[PMAP_FPAGE3]); - sched_unpin(); - } else -#endif -#if defined(__mips_n64) - { - va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phys); - bzero((caddr_t)va, PAGE_SIZE); - mips_dcache_wbinv_range(va, PAGE_SIZE); - } -#else + if (phys < MIPS_KSEG0_LARGEST_PHYS) { va = MIPS_PHYS_TO_KSEG0(phys); bzero((caddr_t)va, PAGE_SIZE); @@ -2530,6 +2331,10 @@ pmap_zero_page_idle(vm_page_t m) PMAP_LMEM_UNMAP(); } +#else + va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phys); + bzero((caddr_t)va, PAGE_SIZE); + mips_dcache_wbinv_range(va, PAGE_SIZE); #endif } @@ -2547,66 +2352,36 @@ pmap_copy_page(vm_page_t src, vm_page_t vm_paddr_t phy_dst = VM_PAGE_TO_PHYS(dst); #if !defined(__mips_n64) register_t intr; -#endif -#ifdef VM_ALLOC_WIRED_TLB_PG_POOL - if (need_wired_tlb_page_pool) { - struct fpage *fp1, *fp2; - struct sysmaps *sysmaps; - - sysmaps = &sysmaps_pcpu[PCPU_GET(cpuid)]; - mtx_lock(&sysmaps->lock); - sched_pin(); - - fp1 = &sysmaps->fp[PMAP_FPAGE1]; - fp2 = &sysmaps->fp[PMAP_FPAGE2]; - - va_src = pmap_map_fpage(phy_src, fp1, FALSE); - va_dst = pmap_map_fpage(phy_dst, fp2, FALSE); - - bcopy((caddr_t)va_src, (caddr_t)va_dst, PAGE_SIZE); - - pmap_unmap_fpage(phy_src, fp1); - pmap_unmap_fpage(phy_dst, fp2); - sched_unpin(); - mtx_unlock(&sysmaps->lock); + if ((phy_src < MIPS_KSEG0_LARGEST_PHYS) && (phy_dst < MIPS_KSEG0_LARGEST_PHYS)) { + /* easy case, all can be accessed via KSEG0 */ /* - * Should you flush the cache? + * Flush all caches for VA that are mapped to this page + * to make sure that data in SDRAM is up to date */ - } else -#endif - { -#if defined(__mips_n64) pmap_flush_pvcache(src); - mips_dcache_wbinv_range_index(MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phy_dst), PAGE_SIZE); - va_src = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phy_src); - va_dst = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phy_dst); + mips_dcache_wbinv_range_index( + MIPS_PHYS_TO_KSEG0(phy_dst), PAGE_SIZE); + va_src = MIPS_PHYS_TO_KSEG0(phy_src); + va_dst = MIPS_PHYS_TO_KSEG0(phy_dst); bcopy((caddr_t)va_src, (caddr_t)va_dst, PAGE_SIZE); mips_dcache_wbinv_range(va_dst, PAGE_SIZE); -#else - if ((phy_src < MIPS_KSEG0_LARGEST_PHYS) && (phy_dst < MIPS_KSEG0_LARGEST_PHYS)) { - /* easy case, all can be accessed via KSEG0 */ - /* - * Flush all caches for VA that are mapped to this page - * to make sure that data in SDRAM is up to date - */ - pmap_flush_pvcache(src); - mips_dcache_wbinv_range_index( - MIPS_PHYS_TO_KSEG0(phy_dst), PAGE_SIZE); - va_src = MIPS_PHYS_TO_KSEG0(phy_src); - va_dst = MIPS_PHYS_TO_KSEG0(phy_dst); - bcopy((caddr_t)va_src, (caddr_t)va_dst, PAGE_SIZE); - mips_dcache_wbinv_range(va_dst, PAGE_SIZE); - } else { - PMAP_LMEM_MAP2(va_src, phy_src, va_dst, phy_dst); + } else { + PMAP_LMEM_MAP2(va_src, phy_src, va_dst, phy_dst); - bcopy((void *)va_src, (void *)va_dst, PAGE_SIZE); - mips_dcache_wbinv_range(va_dst, PAGE_SIZE); + bcopy((void *)va_src, (void *)va_dst, PAGE_SIZE); + mips_dcache_wbinv_range(va_dst, PAGE_SIZE); - PMAP_LMEM_UNMAP(); - } -#endif + PMAP_LMEM_UNMAP(); } +#else + pmap_flush_pvcache(src); + mips_dcache_wbinv_range_index(MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phy_dst), PAGE_SIZE); + va_src = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phy_src); + va_dst = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, phy_dst); + bcopy((caddr_t)va_src, (caddr_t)va_dst, PAGE_SIZE); + mips_dcache_wbinv_range(va_dst, PAGE_SIZE); +#endif } /* @@ -3255,12 +3030,6 @@ pmap_kextract(vm_offset_t va) } } -#ifdef VM_ALLOC_WIRED_TLB_PG_POOL - if (need_wired_tlb_page_pool && ((va >= VM_MIN_KERNEL_ADDRESS) && - (va < (VM_MIN_KERNEL_ADDRESS + VM_KERNEL_ALLOC_OFFSET)))) - return (MIPS_KSEG0_TO_PHYS(va)); -#endif - /* * Kernel virtual. */ Modified: user/jmallett/octeon/sys/mips/mips/swtch.S ============================================================================== --- user/jmallett/octeon/sys/mips/mips/swtch.S Wed Apr 14 05:21:28 2010 (r206588) +++ user/jmallett/octeon/sys/mips/mips/swtch.S Wed Apr 14 05:44:02 2010 (r206589) @@ -295,7 +295,7 @@ blocked_loop: PTR_S a2, PC_CURPCB(a3) PTR_L v0, TD_KSTACK(a1) #if !defined(__mips_n64) - PTR_LI s0, (MIPS_KSEG2_START+VM_KERNEL_ALLOC_OFFSET) # If Uarea addr is below kseg2, + PTR_LI s0, MIPS_KSEG2_START # If Uarea addr is below kseg2, bltu v0, s0, sw2 # no need to insert in TLB. #endif lw a1, TD_UPTE + 0(s7) # a1 = u. pte #0 From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 05:54:00 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21E371065676; Wed, 14 Apr 2010 05:54:00 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 029EF8FC1A; Wed, 14 Apr 2010 05:54:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E5rxAm082574; Wed, 14 Apr 2010 05:53:59 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E5rxUf082570; Wed, 14 Apr 2010 05:53:59 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140553.o3E5rxUf082570@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 05:53:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206590 - in user/jmallett/octeon/sys/mips: include mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 05:54:00 -0000 Author: jmallett Date: Wed Apr 14 05:53:59 2010 New Revision: 206590 URL: http://svn.freebsd.org/changeset/base/206590 Log: o) Add a routine to invalidate all TLB entries associated with a specific or any non-kernel pmap. Modified: user/jmallett/octeon/sys/mips/include/tlb.h user/jmallett/octeon/sys/mips/mips/pmap.c user/jmallett/octeon/sys/mips/mips/tlb.c Modified: user/jmallett/octeon/sys/mips/include/tlb.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/tlb.h Wed Apr 14 05:44:02 2010 (r206589) +++ user/jmallett/octeon/sys/mips/include/tlb.h Wed Apr 14 05:53:59 2010 (r206590) @@ -31,6 +31,7 @@ void tlb_invalidate_address(struct pmap *, vm_offset_t); void tlb_invalidate_all(void); +void tlb_invalidate_all_user(struct pmap *); void tlb_update(struct pmap *, vm_offset_t, pt_entry_t); #endif /* !_MACHINE_TLB_H_ */ Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 05:44:02 2010 (r206589) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 05:53:59 2010 (r206590) @@ -588,13 +588,14 @@ pmap_invalidate_all_action(void *arg) #endif - if (pmap->pm_active & PCPU_GET(cpumask)) { - /* - * XXX/juli - * Add something like TBIAP. - */ + if (pmap == kernel_pmap) { tlb_invalidate_all(); - } else + return; + } + + if (pmap->pm_active & PCPU_GET(cpumask)) + tlb_invalidate_all_user(pmap); + else pmap->pm_asid[PCPU_GET(cpuid)].gen = 0; } @@ -2907,11 +2908,7 @@ pmap_asid_alloc(pmap) pmap->pm_asid[PCPU_GET(cpuid)].gen == PCPU_GET(asid_generation)); else { if (PCPU_GET(next_asid) == pmap_max_asid) { - /* - * XXX/juli - * Add something like TBIAP. - */ - tlb_invalidate_all(); + tlb_invalidate_all_user(NULL); PCPU_SET(asid_generation, (PCPU_GET(asid_generation) + 1) & ASIDGEN_MASK); if (PCPU_GET(asid_generation) == 0) { Modified: user/jmallett/octeon/sys/mips/mips/tlb.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/tlb.c Wed Apr 14 05:44:02 2010 (r206589) +++ user/jmallett/octeon/sys/mips/mips/tlb.c Wed Apr 14 05:53:59 2010 (r206590) @@ -127,6 +127,43 @@ tlb_invalidate_all(void) } void +tlb_invalidate_all_user(struct pmap *pmap) +{ + register_t mask, asid; + register_t s; + unsigned i; + + s = intr_disable(); + mask = mips_rd_pagemask(); + asid = mips_rd_entryhi() & TLBHI_ASID_MASK; + for (i = mips_rd_wired(); i < num_tlbentries; i++) { + register_t uasid; + + mips_wr_index(i); + tlb_read(); + + uasid = mips_rd_entryhi() & TLBHI_ASID_MASK; + if (pmap == NULL) { + /* + * Invalidate all non-kernel entries. + */ + if (uasid == 0) + continue; + } else { + /* + * Invalidate this pmap's entries. + */ + if (uasid != pmap_asid(pmap)) + continue; + } + tlb_invalidate_one(i); + } + mips_wr_entryhi(asid); + mips_wr_pagemask(mask); + intr_restore(s); +} + +void tlb_update(struct pmap *pmap, vm_offset_t va, pt_entry_t pte) { register_t mask, asid; From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 06:32:19 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BAC60106566C; Wed, 14 Apr 2010 06:32:19 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9DA3B8FC12; Wed, 14 Apr 2010 06:32:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E6WJja091010; Wed, 14 Apr 2010 06:32:19 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E6WJJ2091008; Wed, 14 Apr 2010 06:32:19 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140632.o3E6WJJ2091008@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 06:32:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206591 - user/jmallett/octeon/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 06:32:19 -0000 Author: jmallett Date: Wed Apr 14 06:32:19 2010 New Revision: 206591 URL: http://svn.freebsd.org/changeset/base/206591 Log: Add use of the direct map (based on sparc64.) Modified: user/jmallett/octeon/sys/mips/mips/uio_machdep.c Modified: user/jmallett/octeon/sys/mips/mips/uio_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/uio_machdep.c Wed Apr 14 05:53:59 2010 (r206590) +++ user/jmallett/octeon/sys/mips/mips/uio_machdep.c Wed Apr 14 06:32:19 2010 (r206591) @@ -32,8 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)kern_subr.c 8.3 (Berkeley) 1/21/94 - * from: src/sys/i386/i386/uio_machdep.c,v 1.8 2005/02/13 23:09:36 alc + * @(#)kern_subr.c 8.3 (Berkeley) 1/21/94 */ #include @@ -44,26 +43,33 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include #include #include +#include + +#include /* - * Implement uiomove(9) from physical memory using sf_bufs to reduce - * the creation and destruction of ephemeral mappings. + * Implement uiomove(9) from physical memory using a combination + * of the direct mapping and sf_bufs to reduce the creation and + * destruction of ephemeral mappings. */ int uiomove_fromphys(vm_page_t ma[], vm_offset_t offset, int n, struct uio *uio) { +#if !defined(__mips_n64) struct sf_buf *sf; +#endif struct thread *td = curthread; struct iovec *iov; void *cp; vm_offset_t page_offset; + vm_paddr_t pa; + vm_page_t m; size_t cnt; int error = 0; int save = 0; @@ -85,10 +91,20 @@ uiomove_fromphys(vm_page_t ma[], vm_offs if (cnt > n) cnt = n; page_offset = offset & PAGE_MASK; - cnt = min(cnt, PAGE_SIZE - page_offset); - sched_pin(); - sf = sf_buf_alloc(ma[offset >> PAGE_SHIFT], SFB_CPUPRIVATE); - cp = (char *)sf_buf_kva(sf) + page_offset; + cnt = ulmin(cnt, PAGE_SIZE - page_offset); + m = ma[offset >> PAGE_SHIFT]; + pa = VM_PAGE_TO_PHYS(m); +#if defined(__mips_n64) + cp = (char *)MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, pa); +#else + if (pa < MIPS_KSEG0_LARGEST_PHYS) { + cp = (char *)MIPS_PHYS_TO_KSEG0(pa); + sf = NULL; + } else { + sf = sf_buf_alloc(m, 0); + cp = (char *)sf_buf_kva(sf) + page_offset; + } +#endif switch (uio->uio_segflg) { case UIO_USERSPACE: if (ticks - PCPU_GET(switchticks) >= hogticks) @@ -98,8 +114,10 @@ uiomove_fromphys(vm_page_t ma[], vm_offs else error = copyin(iov->iov_base, cp, cnt); if (error) { - sf_buf_free(sf); - sched_unpin(); +#if !defined(__mips_n64) + if (sf != NULL) + sf_buf_free(sf); +#endif goto out; } break; @@ -112,8 +130,10 @@ uiomove_fromphys(vm_page_t ma[], vm_offs case UIO_NOCOPY: break; } - sf_buf_free(sf); - sched_unpin(); +#if !defined(__mips_n64) + if (sf != NULL) + sf_buf_free(sf); +#endif iov->iov_base = (char *)iov->iov_base + cnt; iov->iov_len -= cnt; uio->uio_resid -= cnt; From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 06:46:44 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 10DD5106566C; Wed, 14 Apr 2010 06:46:43 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6B5368FC14; Wed, 14 Apr 2010 06:46:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E6khlr094199; Wed, 14 Apr 2010 06:46:43 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E6khBa094196; Wed, 14 Apr 2010 06:46:43 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140646.o3E6khBa094196@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 06:46:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206592 - in user/jmallett/octeon/sys/mips: include mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 06:46:44 -0000 Author: jmallett Date: Wed Apr 14 06:46:43 2010 New Revision: 206592 URL: http://svn.freebsd.org/changeset/base/206592 Log: Switch to using the sfbuf scheme from sparc64, which doesn't allow sharing of sf bufs, which complicated the code here and made it hard to use pmap_qremove in sf_buf_free (so we didn't use it) because we could free and then reallocate an sfbuf and reenter its KVA. These mappings were guaranteed to be identical, but this seems cleaner. Modified: user/jmallett/octeon/sys/mips/include/sf_buf.h user/jmallett/octeon/sys/mips/mips/vm_machdep.c Modified: user/jmallett/octeon/sys/mips/include/sf_buf.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/sf_buf.h Wed Apr 14 06:32:19 2010 (r206591) +++ user/jmallett/octeon/sys/mips/include/sf_buf.h Wed Apr 14 06:46:43 2010 (r206592) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003, 2005 Alan L. Cox + * Copyright (c) 2003 Alan L. Cox * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -23,29 +23,20 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * from: src/sys/i386/include/sf_buf.h,v 1.4 2005/02/13 06:23:13 alc * $FreeBSD$ */ #ifndef _MACHINE_SF_BUF_H_ -#define _MACHINE_SF_BUF_H_ +#define _MACHINE_SF_BUF_H_ #include -#include -#include -#include struct vm_page; struct sf_buf { - LIST_ENTRY(sf_buf) list_entry; /* list of buffers */ - TAILQ_ENTRY(sf_buf) free_entry; /* list of buffers */ + SLIST_ENTRY(sf_buf) free_list; /* list of free buffer slots */ struct vm_page *m; /* currently mapped page */ vm_offset_t kva; /* va of mapping */ - int ref_count; /* usage of this mapping */ -#ifdef SMP - cpumask_t cpumask; /* cpus on which mapping is valid */ -#endif }; static __inline vm_offset_t Modified: user/jmallett/octeon/sys/mips/mips/vm_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/vm_machdep.c Wed Apr 14 06:32:19 2010 (r206591) +++ user/jmallett/octeon/sys/mips/mips/vm_machdep.c Wed Apr 14 06:46:43 2010 (r206592) @@ -85,26 +85,18 @@ __FBSDID("$FreeBSD$"); static void sf_buf_init(void *arg); SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL); -LIST_HEAD(sf_head, sf_buf); - - /* - * A hash table of active sendfile(2) buffers + * Expanded sf_freelist head. Really an SLIST_HEAD() in disguise, with the + * sf_freelist head with the sf_lock mutex. */ -static struct sf_head *sf_buf_active; -static u_long sf_buf_hashmask; - -#define SF_BUF_HASH(m) (((m) - vm_page_array) & sf_buf_hashmask) +static struct { + SLIST_HEAD(, sf_buf) sf_head; + struct mtx sf_lock; +} sf_freelist; -static TAILQ_HEAD(, sf_buf) sf_buf_freelist; static u_int sf_buf_alloc_want; /* - * A lock used to synchronize access to the hash table and free list - */ -static struct mtx sf_buf_lock; - -/* * Finish a fork operation, with process p2 nearly set up. * Copy and update the pcb, set up the stack so that the child * ready to run and return to user mode. @@ -479,56 +471,34 @@ sf_buf_init(void *arg) nsfbufs = NSFBUFS; TUNABLE_INT_FETCH("kern.ipc.nsfbufs", &nsfbufs); - sf_buf_active = hashinit(nsfbufs, M_TEMP, &sf_buf_hashmask); - TAILQ_INIT(&sf_buf_freelist); + mtx_init(&sf_freelist.sf_lock, "sf_bufs list lock", NULL, MTX_DEF); + SLIST_INIT(&sf_freelist.sf_head); sf_base = kmem_alloc_nofault(kernel_map, nsfbufs * PAGE_SIZE); sf_bufs = malloc(nsfbufs * sizeof(struct sf_buf), M_TEMP, M_NOWAIT | M_ZERO); for (i = 0; i < nsfbufs; i++) { sf_bufs[i].kva = sf_base + i * PAGE_SIZE; - TAILQ_INSERT_TAIL(&sf_buf_freelist, &sf_bufs[i], free_entry); + SLIST_INSERT_HEAD(&sf_freelist.sf_head, &sf_bufs[i], free_list); } sf_buf_alloc_want = 0; - mtx_init(&sf_buf_lock, "sf_buf", NULL, MTX_DEF); } /* - * Allocate an sf_buf for the given vm_page. On this machine, however, there - * is no sf_buf object. Instead, an opaque pointer to the given vm_page is - * returned. + * Get an sf_buf from the freelist. Will block if none are available. */ struct sf_buf * sf_buf_alloc(struct vm_page *m, int flags) { - struct sf_head *hash_list; struct sf_buf *sf; int error; - hash_list = &sf_buf_active[SF_BUF_HASH(m)]; - mtx_lock(&sf_buf_lock); - LIST_FOREACH(sf, hash_list, list_entry) { - if (sf->m == m) { - sf->ref_count++; - if (sf->ref_count == 1) { - TAILQ_REMOVE(&sf_buf_freelist, sf, free_entry); - nsfbufsused++; - nsfbufspeak = imax(nsfbufspeak, nsfbufsused); - } - /* - * Flush all mappings in order to have up to date - * physycal memory - */ - pmap_flush_pvcache(sf->m); - mips_dcache_inv_range(sf->kva, PAGE_SIZE); - goto done; - } - } - while ((sf = TAILQ_FIRST(&sf_buf_freelist)) == NULL) { + mtx_lock(&sf_freelist.sf_lock); + while ((sf = SLIST_FIRST(&sf_freelist.sf_head)) == NULL) { if (flags & SFB_NOWAIT) - goto done; + break; sf_buf_alloc_want++; mbstat.sf_allocwait++; - error = msleep(&sf_buf_freelist, &sf_buf_lock, + error = msleep(&sf_freelist, &sf_freelist.sf_lock, (flags & SFB_CATCH) ? PCATCH | PVM : PVM, "sfbufa", 0); sf_buf_alloc_want--; @@ -536,42 +506,33 @@ sf_buf_alloc(struct vm_page *m, int flag * If we got a signal, don't risk going back to sleep. */ if (error) - goto done; + break; + } + if (sf != NULL) { + SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list); + sf->m = m; + nsfbufsused++; + nsfbufspeak = imax(nsfbufspeak, nsfbufsused); + pmap_qenter(sf->kva, &sf->m, 1); } - TAILQ_REMOVE(&sf_buf_freelist, sf, free_entry); - if (sf->m != NULL) - LIST_REMOVE(sf, list_entry); - LIST_INSERT_HEAD(hash_list, sf, list_entry); - sf->ref_count = 1; - sf->m = m; - nsfbufsused++; - nsfbufspeak = imax(nsfbufspeak, nsfbufsused); - pmap_qenter(sf->kva, &sf->m, 1); -done: - mtx_unlock(&sf_buf_lock); + mtx_unlock(&sf_freelist.sf_lock); return (sf); } /* - * Free the sf_buf. In fact, do nothing because there are no resources - * associated with the sf_buf. + * Release resources back to the system. */ void sf_buf_free(struct sf_buf *sf) { - mtx_lock(&sf_buf_lock); - sf->ref_count--; - /* - * Make sure all changes in KVA end up in physical memory - */ - mips_dcache_wbinv_range(sf->kva, PAGE_SIZE); - if (sf->ref_count == 0) { - TAILQ_INSERT_TAIL(&sf_buf_freelist, sf, free_entry); - nsfbufsused--; - if (sf_buf_alloc_want > 0) - wakeup_one(&sf_buf_freelist); - } - mtx_unlock(&sf_buf_lock); + + pmap_qremove(sf->kva, 1); + mtx_lock(&sf_freelist.sf_lock); + SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list); + nsfbufsused--; + if (sf_buf_alloc_want > 0) + wakeup_one(&sf_freelist); + mtx_unlock(&sf_freelist.sf_lock); } /* From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 06:47:35 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47C5F1065674; Wed, 14 Apr 2010 06:47:35 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 351308FC2A; Wed, 14 Apr 2010 06:47:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E6lZfc094431; Wed, 14 Apr 2010 06:47:35 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E6lZeN094429; Wed, 14 Apr 2010 06:47:35 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140647.o3E6lZeN094429@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 06:47:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206593 - user/jmallett/octeon/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 06:47:35 -0000 Author: jmallett Date: Wed Apr 14 06:47:34 2010 New Revision: 206593 URL: http://svn.freebsd.org/changeset/base/206593 Log: Try moving to the PowerPC mem.c, using uiomove_fromphys and pals. This is probably wrong. Modified: user/jmallett/octeon/sys/mips/mips/mem.c Modified: user/jmallett/octeon/sys/mips/mips/mem.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mem.c Wed Apr 14 06:46:43 2010 (r206592) +++ user/jmallett/octeon/sys/mips/mips/mem.c Wed Apr 14 06:47:34 2010 (r206593) @@ -1,13 +1,12 @@ -/* $OpenBSD: mem.c,v 1.2 1998/08/31 17:42:34 millert Exp $ */ -/* $NetBSD: mem.c,v 1.6 1995/04/10 11:55:03 mycroft Exp $ */ -/* +/*- * Copyright (c) 1988 University of Utah. - * Copyright (c) 1982, 1986, 1990, 1993 - * The Regents of the University of California. All rights reserved. + * Copyright (c) 1982, 1986, 1990 The Regents of the University of California. + * All rights reserved. * * This code is derived from software contributed to Berkeley by * the Systems Programming Group of the University of Utah Computer - * Science Department and Ralph Campbell. + * Science Department, and code derived from software contributed to + * Berkeley by William Jolitz. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -33,142 +32,136 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)mem.c 8.3 (Berkeley) 1/12/94 - * JNPR: mem.c,v 1.3 2007/08/09 11:23:32 katta Exp $ + * from: Utah $Hdr: mem.c 1.13 89/10/08$ + * from: @(#)mem.c 7.2 (Berkeley) 5/9/91 */ +#include +__FBSDID("$FreeBSD$"); + /* * Memory special file */ -#include -__FBSDID("$FreeBSD$"); - #include -#include #include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include #include #include -#include -#include +#include #include -#include -#include -#include -#include + #include -#include +#include + +#include +#include +#include +#include + #include -/*ARGSUSED*/ +struct mem_range_softc mem_range_softc; + +/* ARGSUSED */ int -memrw(dev, uio, flags) - struct cdev *dev; - struct uio *uio; - int flags; +memrw(struct cdev *dev, struct uio *uio, int flags) { - register vm_offset_t v; - register int c; - register struct iovec *iov; + struct iovec *iov; int error = 0; + vm_offset_t va, eva, off, v; + vm_prot_t prot; + struct vm_page m; + vm_page_t marr; + vm_size_t cnt; + + cnt = 0; + error = 0; + + GIANT_REQUIRED; - while (uio->uio_resid > 0 && error == 0) { + while (uio->uio_resid > 0 && !error) { iov = uio->uio_iov; if (iov->iov_len == 0) { uio->uio_iov++; uio->uio_iovcnt--; if (uio->uio_iovcnt < 0) - panic("mmrw"); + panic("memrw"); continue; } - - /* minor device 0 is physical memory */ if (dev2unit(dev) == CDEV_MINOR_MEM) { v = uio->uio_offset; - c = iov->iov_len; -#if defined(__mips_n64) - vm_offset_t va; - vm_paddr_t pa; - register int o; - - if (is_cacheable_mem(v) && - is_cacheable_mem(v + c - 1)) { - pa = uio->uio_offset & ~PAGE_MASK; - va = MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, pa); - o = (int)uio->uio_offset & PAGE_MASK; - c = (u_int)(PAGE_SIZE - - ((uintptr_t)iov->iov_base & PAGE_MASK)); - c = min(c, (u_int)(PAGE_SIZE - o)); - c = min(c, (u_int)iov->iov_len); - error = uiomove((caddr_t)(va + o), (int)c, uio); - } else - return (EFAULT); -#else - return (ENOTSUP); -#endif - continue; + off = uio->uio_offset & PAGE_MASK; + cnt = PAGE_SIZE - ((vm_offset_t)iov->iov_base & + PAGE_MASK); + cnt = min(cnt, PAGE_SIZE - off); + cnt = min(cnt, iov->iov_len); + + m.phys_addr = trunc_page(v); + marr = &m; + error = uiomove_fromphys(&marr, off, cnt, uio); } - - /* minor device 1 is kernel memory */ else if (dev2unit(dev) == CDEV_MINOR_KMEM) { - v = uio->uio_offset; - c = min(iov->iov_len, MAXPHYS); + va = uio->uio_offset; - vm_offset_t addr, eaddr; - - /* - * Make sure that all of the pages are currently - * resident so that we don't create any zero-fill pages. + va = trunc_page(uio->uio_offset); + eva = round_page(uio->uio_offset + + iov->iov_len); + + /* + * Make sure that all the pages are currently resident + * so that we don't create any zero-fill pages. */ - addr = trunc_page(uio->uio_offset); - eaddr = round_page(uio->uio_offset + c); - if (addr > (vm_offset_t) VM_MIN_KERNEL_ADDRESS) { - for (; addr < eaddr; addr += PAGE_SIZE) - if (pmap_extract(kernel_pmap, addr) == 0) - return EFAULT; - - if (!kernacc( - (caddr_t)(uintptr_t)uio->uio_offset, c, - uio->uio_rw == UIO_READ ? - VM_PROT_READ : VM_PROT_WRITE)) - return (EFAULT); - } - else if (MIPS_IS_KSEG0_ADDR(v)) { - if (MIPS_KSEG0_TO_PHYS(v + c) >= ctob(physmem)) - return (EFAULT); - } - else if (MIPS_IS_KSEG1_ADDR(v)) { - if (MIPS_KSEG1_TO_PHYS(v + c) >= ctob(physmem)) + for (; va < eva; va += PAGE_SIZE) + if (pmap_extract(kernel_pmap, va) == 0) return (EFAULT); - } - else + + prot = (uio->uio_rw == UIO_READ) + ? VM_PROT_READ : VM_PROT_WRITE; + + va = uio->uio_offset; + if (kernacc((void *) va, iov->iov_len, prot) + == FALSE) return (EFAULT); + error = uiomove((void *)va, iov->iov_len, uio); - error = uiomove((caddr_t)v, c, uio); continue; } - } + return (error); } -/*ARGSUSED*/ +/* + * allow user processes to MMAP some memory sections + * instead of going through read/write + */ int -memmmap(struct cdev *dev, vm_ooffset_t off, vm_paddr_t *paddr, +memmmap(struct cdev *dev, vm_ooffset_t offset, vm_paddr_t *paddr, int prot, vm_memattr_t *memattr) { + /* + * /dev/mem is the only one that makes sense through this + * interface. For /dev/kmem any physaddr we return here + * could be transient and hence incorrect or invalid at + * a later time. + */ + if (dev2unit(dev) != CDEV_MINOR_MEM) + return (-1); + + *paddr = offset; - return (EOPNOTSUPP); + return (0); } void From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 06:56:48 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A50BB106564A; Wed, 14 Apr 2010 06:56:48 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 92B2A8FC16; Wed, 14 Apr 2010 06:56:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E6umO6096465; Wed, 14 Apr 2010 06:56:48 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E6umOD096463; Wed, 14 Apr 2010 06:56:48 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140656.o3E6umOD096463@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 06:56:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206594 - user/jmallett/octeon/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 06:56:48 -0000 Author: jmallett Date: Wed Apr 14 06:56:48 2010 New Revision: 206594 URL: http://svn.freebsd.org/changeset/base/206594 Log: o) Add an invariant to pmap_kenter that the previous mapping is invalid or identical to the new mapping. Something is leaving a mapping valid or doing a double pmap_kenter (well, pmap_qenter) but I don't know what, but it's identical to the previous one, so I assume it's the latter (like was in the sfbuf code that I just removed.) o) Given that invariant, neither invalidate nor update the TLB in pmap_kenter, since it should have been invalidated in pmap_kremove. Modified: user/jmallett/octeon/sys/mips/mips/pmap.c Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 06:47:34 2010 (r206593) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Wed Apr 14 06:56:48 2010 (r206594) @@ -750,19 +750,9 @@ pmap_kenter(vm_offset_t va, vm_paddr_t p npte |= PG_C_UC; pte = pmap_pte(kernel_pmap, va); + KASSERT(!pte_test(pte, PG_V) || *pte == npte, + ("pmap_kenter for %p with different valid entry", (void *)va)); *pte = npte; - -#if 0 - /* - * The original code did an update_page() here, but - * we often do a lot of pmap_kenter() calls and then - * start using the addresses later, at which point - * the TLB has overflown many times. - */ - pmap_invalidate_page(kernel_pmap, va); -#else - pmap_update_page(kernel_pmap, va, npte); -#endif } /* @@ -2741,6 +2731,10 @@ pmap_mapdev(vm_offset_t pa, vm_size_t si if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); pa = trunc_page(pa); + /* + * XXX + * Shouldn't we make these pages uncached? + */ for (tmpva = va; size > 0;) { pmap_kenter(tmpva, pa); size -= PAGE_SIZE; From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 07:29:25 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BBEB41065672; Wed, 14 Apr 2010 07:29:25 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AA13E8FC1C; Wed, 14 Apr 2010 07:29:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3E7TPML003863; Wed, 14 Apr 2010 07:29:25 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3E7TPCv003861; Wed, 14 Apr 2010 07:29:25 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004140729.o3E7TPCv003861@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 07:29:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206596 - user/jmallett/octeon/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 07:29:25 -0000 Author: jmallett Date: Wed Apr 14 07:29:25 2010 New Revision: 206596 URL: http://svn.freebsd.org/changeset/base/206596 Log: o) Remove some gratuitous cpu_barrier calls. o) Remove an XXX about invalidating half of the TLB entry only -- this turns out to not be a win. Modified: user/jmallett/octeon/sys/mips/mips/tlb.c Modified: user/jmallett/octeon/sys/mips/mips/tlb.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/tlb.c Wed Apr 14 07:07:43 2010 (r206595) +++ user/jmallett/octeon/sys/mips/mips/tlb.c Wed Apr 14 07:29:25 2010 (r206596) @@ -51,7 +51,6 @@ tlb_probe(void) { __asm __volatile ("tlbp" : : : "memory"); mips_cp0_sync(); - mips_barrier(); } static inline void @@ -59,7 +58,6 @@ tlb_read(void) { __asm __volatile ("tlbr" : : : "memory"); mips_cp0_sync(); - mips_barrier(); } static inline void @@ -67,7 +65,6 @@ tlb_write_indexed(void) { __asm __volatile ("tlbwi" : : : "memory"); mips_cp0_sync(); - mips_barrier(); } static inline void @@ -75,17 +72,10 @@ tlb_write_random(void) { __asm __volatile ("tlbwr" : : : "memory"); mips_cp0_sync(); - mips_barrier(); } static void tlb_invalidate_one(unsigned); -/* - * XXX - * We invalidate the whole pair. Would be nice to just - * invalidate the single entry instead of forcing a reload - * of the other one. - */ void tlb_invalidate_address(struct pmap *pmap, vm_offset_t va) { From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 17:52:01 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6417D106566C; Wed, 14 Apr 2010 17:52:01 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 501558FC13; Wed, 14 Apr 2010 17:52:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3EHq1o2043272; Wed, 14 Apr 2010 17:52:01 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3EHq0N1043252; Wed, 14 Apr 2010 17:52:00 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004141752.o3EHq0N1043252@svn.freebsd.org> From: Warner Losh Date: Wed, 14 Apr 2010 17:52:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206613 - in user/imp/tbemd: bin/ps lib/libc/sys sbin/geom/class/sched sbin/mca share/man/man5 share/misc sys/amd64/amd64 sys/amd64/ia32 sys/compat/linprocfs sys/dev/aac sys/dev/ata/chi... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 17:52:01 -0000 Author: imp Date: Wed Apr 14 17:52:00 2010 New Revision: 206613 URL: http://svn.freebsd.org/changeset/base/206613 Log: merge svn+ssh://svn.freebsd.org/base/head@206610 Modified: user/imp/tbemd/bin/ps/ps.1 user/imp/tbemd/lib/libc/sys/sigaction.2 user/imp/tbemd/sbin/geom/class/sched/Makefile user/imp/tbemd/sbin/geom/class/sched/geom_sched.c user/imp/tbemd/sbin/geom/class/sched/gsched.8 user/imp/tbemd/sbin/mca/mca.c user/imp/tbemd/share/man/man5/rc.conf.5 user/imp/tbemd/share/misc/committers-ports.dot user/imp/tbemd/sys/amd64/amd64/machdep.c user/imp/tbemd/sys/amd64/amd64/trap.c user/imp/tbemd/sys/amd64/ia32/ia32_signal.c user/imp/tbemd/sys/compat/linprocfs/linprocfs.c user/imp/tbemd/sys/dev/aac/aac.c user/imp/tbemd/sys/dev/aac/aac_cam.c user/imp/tbemd/sys/dev/aac/aac_debug.c user/imp/tbemd/sys/dev/aac/aac_disk.c user/imp/tbemd/sys/dev/aac/aac_pci.c user/imp/tbemd/sys/dev/aac/aac_tables.h user/imp/tbemd/sys/dev/aac/aacreg.h user/imp/tbemd/sys/dev/aac/aacvar.h user/imp/tbemd/sys/dev/ata/chipsets/ata-acerlabs.c user/imp/tbemd/sys/dev/mii/miidevs user/imp/tbemd/sys/dev/mii/truephy.c user/imp/tbemd/sys/dev/usb/serial/u3g.c user/imp/tbemd/sys/dev/usb/usbdevs user/imp/tbemd/sys/fs/devfs/devfs_devs.c user/imp/tbemd/sys/fs/devfs/devfs_int.h user/imp/tbemd/sys/geom/sched/g_sched.c user/imp/tbemd/sys/geom/sched/g_sched.h user/imp/tbemd/sys/geom/sched/gs_rr.c user/imp/tbemd/sys/geom/sched/gs_scheduler.h user/imp/tbemd/sys/i386/i386/machdep.c user/imp/tbemd/sys/i386/i386/trap.c user/imp/tbemd/sys/ia64/ia64/mca.c user/imp/tbemd/sys/ia64/ia64/mp_machdep.c user/imp/tbemd/sys/ia64/include/mca.h user/imp/tbemd/sys/ia64/include/pal.h user/imp/tbemd/sys/kern/vfs_syscalls.c user/imp/tbemd/sys/mips/mips/pmap.c user/imp/tbemd/sys/mips/mips/vm_machdep.c user/imp/tbemd/sys/modules/Makefile user/imp/tbemd/sys/modules/uart/Makefile user/imp/tbemd/sys/vm/vm_glue.c user/imp/tbemd/usr.bin/calendar/calendars/calendar.dutch Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) Modified: user/imp/tbemd/bin/ps/ps.1 ============================================================================== --- user/imp/tbemd/bin/ps/ps.1 Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/bin/ps/ps.1 Wed Apr 14 17:52:00 2010 (r206613) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd March 17, 2010 +.Dd April 13, 2010 .Dt PS 1 .Os .Sh NAME @@ -298,6 +298,7 @@ the include file .It Dv "P_WAITED" Ta No "0x01000 Someone is waiting for us" .It Dv "P_WEXIT" Ta No "0x02000 Working on exiting" .It Dv "P_EXEC" Ta No "0x04000 Process called exec" +.It Dv "P_WKILLED" Ta No "0x08000 Killed, shall go to kernel/user boundary ASAP" .It Dv "P_CONTINUED" Ta No "0x10000 Proc has continued from a stopped state" .It Dv "P_STOPPED_SIG" Ta No "0x20000 Stopped due to SIGSTOP/SIGTSTP" .It Dv "P_STOPPED_TRACE" Ta No "0x40000 Stopped because of tracing" Modified: user/imp/tbemd/lib/libc/sys/sigaction.2 ============================================================================== --- user/imp/tbemd/lib/libc/sys/sigaction.2 Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/lib/libc/sys/sigaction.2 Wed Apr 14 17:52:00 2010 (r206613) @@ -28,7 +28,7 @@ .\" From: @(#)sigaction.2 8.2 (Berkeley) 4/3/94 .\" $FreeBSD$ .\" -.Dd June 7, 2004 +.Dd April 13, 2010 .Dt SIGACTION 2 .Os .Sh NAME @@ -42,7 +42,7 @@ struct sigaction { union { void (*__sa_handler)(int); - void (*__sa_sigaction)(int, struct __siginfo *, void *); + void (*__sa_sigaction)(int, siginfo_t *, void *); } __sigaction_u; /* signal handler */ int sa_flags; /* see signal options below */ sigset_t sa_mask; /* signal mask to apply */ Modified: user/imp/tbemd/sbin/geom/class/sched/Makefile ============================================================================== --- user/imp/tbemd/sbin/geom/class/sched/Makefile Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sbin/geom/class/sched/Makefile Wed Apr 14 17:52:00 2010 (r206613) @@ -1,9 +1,8 @@ # GEOM_LIBRARY_PATH # $FreeBSD$ -.PATH: /usr/src/sbin/geom/misc - -CFLAGS += -I/usr/src/sbin/geom +.PATH: ${.CURDIR}/../../misc +#CFLAGS += -I/usr/src/sbin/geom CLASS=sched Modified: user/imp/tbemd/sbin/geom/class/sched/geom_sched.c ============================================================================== --- user/imp/tbemd/sbin/geom/class/sched/geom_sched.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sbin/geom/class/sched/geom_sched.c Wed Apr 14 17:52:00 2010 (r206613) @@ -1,5 +1,6 @@ /*- - * Copyright (c) 2009 Fabio Checconi, Luigi Rizzo + * Copyright (c) 2009 Fabio Checconi + * Copyright (c) 2010 Luigi Rizzo, Universita` di Pisa * All rights reserved. * * Redistribution and use in source and binary forms, with or without Modified: user/imp/tbemd/sbin/geom/class/sched/gsched.8 ============================================================================== --- user/imp/tbemd/sbin/geom/class/sched/gsched.8 Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sbin/geom/class/sched/gsched.8 Wed Apr 14 17:52:00 2010 (r206613) @@ -1,6 +1,6 @@ -.\" Copyright (c) 2009-2010 Fabio Checconi, Luigi Rizzo +.\" Copyright (c) 2009-2010 Fabio Checconi +.\" Copyright (c) 2009-2010 Luigi Rizzo, Universita` di Pisa .\" All rights reserved. -.\" $FreeBSD$ .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,6 +23,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" +.\" $FreeBSD$ +.\" .Dd April 12, 2010 .Dt GSCHED 8 .Os Modified: user/imp/tbemd/sbin/mca/mca.c ============================================================================== --- user/imp/tbemd/sbin/mca/mca.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sbin/mca/mca.c Wed Apr 14 17:52:00 2010 (r206613) @@ -53,10 +53,12 @@ __FBSDID("$FreeBSD$"); #define BCD(x) ((x >> 4) * 10 + (x & 15)) +#define HW_MCA_MAX_CPUID 255 + static char hw_mca_count[] = "hw.mca.count"; static char hw_mca_first[] = "hw.mca.first"; static char hw_mca_last[] = "hw.mca.last"; -static char hw_mca_recid[] = "hw.mca.%d"; +static char hw_mca_recid[] = "hw.mca.%lu.%u"; static char default_dumpfile[] = "/var/log/mca.log"; @@ -372,10 +374,13 @@ show_section(struct mca_section_header * } static void -show(char *data) +show(char *data, const char *mib) { size_t reclen, seclen; + if (mib != NULL) + printf("\n", mib); + printf("\n"); reclen = show_header((void*)data) - sizeof(struct mca_record_header); data += sizeof(struct mca_record_header); @@ -402,7 +407,7 @@ showall(char *buf, size_t buflen) if (buflen < reclen) return; - show(buf); + show(buf, NULL); buf += reclen; buflen -= reclen; @@ -442,7 +447,7 @@ main(int argc, char **argv) char *buf; size_t len; int ch, error, fd; - int count, first, last; + int count, first, last, cpuid; while ((ch = getopt(argc, argv, "df:")) != -1) { switch(ch) { @@ -481,12 +486,19 @@ main(int argc, char **argv) if (error) err(1, hw_mca_last); + cpuid = 0; while (count && first <= last) { - sprintf(mib, hw_mca_recid, first); - len = 0; - error = sysctlbyname(mib, NULL, &len, NULL, 0); - if (error == ENOENT) { + do { + sprintf(mib, hw_mca_recid, first, cpuid); + len = 0; + error = sysctlbyname(mib, NULL, &len, NULL, 0); + if (error != ENOENT) + break; + cpuid++; + } while (cpuid <= HW_MCA_MAX_CPUID); + if (error == ENOENT && cpuid > HW_MCA_MAX_CPUID) { first++; + cpuid = 0; continue; } if (error) @@ -503,11 +515,15 @@ main(int argc, char **argv) if (fl_dump) dump(buf); else - show(buf); + show(buf, mib); free(buf); - first++; count--; + if (cpuid == HW_MCA_MAX_CPUID) { + first++; + cpuid = 0; + } else + cpuid++; } } else { fd = open(file, O_RDONLY); Modified: user/imp/tbemd/share/man/man5/rc.conf.5 ============================================================================== --- user/imp/tbemd/share/man/man5/rc.conf.5 Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/share/man/man5/rc.conf.5 Wed Apr 14 17:52:00 2010 (r206613) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 09, 2010 +.Dd April 14, 2010 .Dt RC.CONF 5 .Os .Sh NAME @@ -427,27 +427,11 @@ the kernel module will be loaded. See also .Va ipfilter_enable . -.It Va ipv6_firewall_enable -.Pq Vt bool -The IPv6 equivalent of -.Va firewall_enable . -Set to -.Dq Li YES -to load IPv6 firewall rules at startup. -If the kernel was not built with -.Cd "options IPV6FIREWALL" , -the -.Pa ipfw.ko -kernel module will be loaded. .It Va firewall_script .Pq Vt str This variable specifies the full path to the firewall script to run. The default is .Pa /etc/rc.firewall . -.It Va ipv6_firewall_script -.Pq Vt str -The IPv6 equivalent of -.Va firewall_script . .It Va firewall_type .Pq Vt str Names the firewall type from the selection in @@ -471,19 +455,11 @@ basic protection for a LAN. .Pp If a filename is specified, the full path must be given. -.It Va ipv6_firewall_type -.Pq Vt str -The IPv6 equivalent of -.Va firewall_type . .It Va firewall_quiet .Pq Vt bool Set to .Dq Li YES to disable the display of firewall rules on the console during boot. -.It Va ipv6_firewall_quiet -.Pq Vt bool -The IPv6 equivalent of -.Va firewall_quiet . .It Va firewall_logging .Pq Vt bool Set to @@ -492,10 +468,6 @@ to enable firewall event logging. This is equivalent to the .Dv IPFIREWALL_VERBOSE kernel option. -.It Va ipv6_firewall_logging -.Pq Vt bool -The IPv6 equivalent of -.Va firewall_logging . .It Va firewall_flags .Pq Vt str Flags passed to @@ -503,10 +475,6 @@ Flags passed to if .Va firewall_type specifies a filename. -.It Va ipv6_firewall_flags -.Pq Vt str -The IPv6 equivalent of -.Va firewall_flags . .It Va firewall_coscripts .Pq Vt str List of executables and/or rc scripts to run after firewall starts/stops. Modified: user/imp/tbemd/share/misc/committers-ports.dot ============================================================================== --- user/imp/tbemd/share/misc/committers-ports.dot Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/share/misc/committers-ports.dot Wed Apr 14 17:52:00 2010 (r206613) @@ -140,6 +140,7 @@ rafan [label="Rong-En Fan\nrafan@FreeBSD rene [label="Rene Ladan\nrene@FreeBSD.org\n2010/04/11"] rnoland [label="Robert Noland\nrnoland@FreeBSD.org\n2008/07/21"] romain [label="Romain Tartiere\nromain@FreeBSD.org\n2010/01/24"] +sahil [label="Sahil Tandon\nsahil@FreeBSD.org\n2010/04/11"] sat [label="Andrew Pantyukhin\nsat@FreeBSD.org\n2006/05/06"] sem [label="Sergey Matveychuk\nsem@FreeBSD.org\n2004/07/07"] sergei [label="Sergei Kolobov\nsergei@FreeBSD.org\n2003/10/21"] @@ -251,6 +252,7 @@ ijliao -> leeym itetcu -> araujo itetcu -> dryice +itetcu -> sahil joerg -> netchild @@ -360,6 +362,7 @@ tmclaugh -> xride will -> lioux +wxs -> sahil wxs -> skreuzer } Modified: user/imp/tbemd/sys/amd64/amd64/machdep.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/machdep.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/amd64/amd64/machdep.c Wed Apr 14 17:52:00 2010 (r206613) @@ -424,13 +424,14 @@ sigreturn(td, uap) error = copyin(uap->sigcntxp, &uc, sizeof(uc)); if (error != 0) { - printf("sigreturn (pid %d): copyin failed\n", p->p_pid); + uprintf("pid %d (%s): sigreturn copyin failed\n", + p->p_pid, td->td_name); return (error); } ucp = &uc; if ((ucp->uc_mcontext.mc_flags & ~_MC_FLAG_MASK) != 0) { - printf("sigreturn (pid %d): mc_flags %x\n", p->p_pid, - ucp->uc_mcontext.mc_flags); + uprintf("pid %d (%s): sigreturn mc_flags %x\n", p->p_pid, + td->td_name, ucp->uc_mcontext.mc_flags); return (EINVAL); } regs = td->td_frame; @@ -449,8 +450,8 @@ sigreturn(td, uap) * one less debugger trap, so allowing it is fairly harmless. */ if (!EFL_SECURE(rflags & ~PSL_RF, regs->tf_rflags & ~PSL_RF)) { - printf("sigreturn (pid %d): rflags = 0x%lx\n", p->p_pid, - rflags); + uprintf("pid %d (%s): sigreturn rflags = 0x%lx\n", p->p_pid, + td->td_name, rflags); return (EINVAL); } @@ -461,7 +462,8 @@ sigreturn(td, uap) */ cs = ucp->uc_mcontext.mc_cs; if (!CS_SECURE(cs)) { - printf("sigreturn (pid %d): cs = 0x%x\n", p->p_pid, cs); + uprintf("pid %d (%s): sigreturn cs = 0x%x\n", p->p_pid, + td->td_name, cs); ksiginfo_init_trap(&ksi); ksi.ksi_signo = SIGBUS; ksi.ksi_code = BUS_OBJERR; @@ -473,7 +475,8 @@ sigreturn(td, uap) ret = set_fpcontext(td, &ucp->uc_mcontext); if (ret != 0) { - printf("sigreturn (pid %d): set_fpcontext\n", p->p_pid); + uprintf("pid %d (%s): sigreturn set_fpcontext err %d\n", + p->p_pid, td->td_name, ret); return (ret); } bcopy(&ucp->uc_mcontext.mc_rdi, regs, sizeof(*regs)); Modified: user/imp/tbemd/sys/amd64/amd64/trap.c ============================================================================== --- user/imp/tbemd/sys/amd64/amd64/trap.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/amd64/amd64/trap.c Wed Apr 14 17:52:00 2010 (r206613) @@ -303,7 +303,7 @@ trap(struct trapframe *frame) * enabled later. */ if (ISPL(frame->tf_cs) == SEL_UPL) - printf( + uprintf( "pid %ld (%s): trap %d with interrupts disabled\n", (long)curproc->p_pid, curthread->td_name, type); else if (type != T_NMI && type != T_BPTFLT && Modified: user/imp/tbemd/sys/amd64/ia32/ia32_signal.c ============================================================================== --- user/imp/tbemd/sys/amd64/ia32/ia32_signal.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/amd64/ia32/ia32_signal.c Wed Apr 14 17:52:00 2010 (r206613) @@ -565,7 +565,8 @@ freebsd4_freebsd32_sigreturn(td, uap) * one less debugger trap, so allowing it is fairly harmless. */ if (!EFL_SECURE(eflags & ~PSL_RF, regs->tf_rflags & ~PSL_RF)) { - printf("freebsd4_freebsd32_sigreturn: eflags = 0x%x\n", eflags); + uprintf("pid %d (%s): freebsd4_freebsd32_sigreturn eflags = 0x%x\n", + td->td_proc->p_pid, td->td_name, eflags); return (EINVAL); } @@ -576,7 +577,8 @@ freebsd4_freebsd32_sigreturn(td, uap) */ cs = ucp->uc_mcontext.mc_cs; if (!CS_SECURE(cs)) { - printf("freebsd4_sigreturn: cs = 0x%x\n", cs); + uprintf("pid %d (%s): freebsd4_sigreturn cs = 0x%x\n", + td->td_proc->p_pid, td->td_name, cs); ksiginfo_init_trap(&ksi); ksi.ksi_signo = SIGBUS; ksi.ksi_code = BUS_OBJERR; @@ -647,7 +649,8 @@ freebsd32_sigreturn(td, uap) * one less debugger trap, so allowing it is fairly harmless. */ if (!EFL_SECURE(eflags & ~PSL_RF, regs->tf_rflags & ~PSL_RF)) { - printf("freebsd32_sigreturn: eflags = 0x%x\n", eflags); + uprintf("pid %d (%s): freebsd32_sigreturn eflags = 0x%x\n", + td->td_proc->p_pid, td->td_name, eflags); return (EINVAL); } @@ -658,7 +661,8 @@ freebsd32_sigreturn(td, uap) */ cs = ucp->uc_mcontext.mc_cs; if (!CS_SECURE(cs)) { - printf("sigreturn: cs = 0x%x\n", cs); + uprintf("pid %d (%s): sigreturn cs = 0x%x\n", + td->td_proc->p_pid, td->td_name, cs); ksiginfo_init_trap(&ksi); ksi.ksi_signo = SIGBUS; ksi.ksi_code = BUS_OBJERR; Modified: user/imp/tbemd/sys/compat/linprocfs/linprocfs.c ============================================================================== --- user/imp/tbemd/sys/compat/linprocfs/linprocfs.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/compat/linprocfs/linprocfs.c Wed Apr 14 17:52:00 2010 (r206613) @@ -274,7 +274,7 @@ linprocfs_docpuinfo(PFS_FILL_ARGS) "cpu family\t: %d\n" "model\t\t: %d\n" "model name\t: %s\n" - "stepping\t: %d\n", + "stepping\t: %d\n\n", i, cpu_vendor, class, cpu, model, cpu_id & 0xf); /* XXX per-cpu vendor / class / model / id? */ } Modified: user/imp/tbemd/sys/dev/aac/aac.c ============================================================================== --- user/imp/tbemd/sys/dev/aac/aac.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/dev/aac/aac.c Wed Apr 14 17:52:00 2010 (r206613) @@ -1880,7 +1880,7 @@ aac_init(struct aac_softc *sc) ip->InitFlags = 0; if (sc->flags & AAC_FLAGS_NEW_COMM) { - ip->InitFlags = INITFLAGS_NEW_COMM_SUPPORTED; + ip->InitFlags |= AAC_INITFLAGS_NEW_COMM_SUPPORTED; device_printf(sc->aac_dev, "New comm. interface enabled\n"); } @@ -2004,7 +2004,7 @@ aac_setup_intr(struct aac_softc *sc) } if (sc->flags & AAC_FLAGS_NEW_COMM) { if (bus_setup_intr(sc->aac_dev, sc->aac_irq, - INTR_MPSAFE|INTR_TYPE_BIO, NULL, + INTR_MPSAFE|INTR_TYPE_BIO, NULL, aac_new_intr, sc, &sc->aac_intr)) { device_printf(sc->aac_dev, "can't set up interrupt\n"); return (EINVAL); Modified: user/imp/tbemd/sys/dev/aac/aac_cam.c ============================================================================== --- user/imp/tbemd/sys/dev/aac/aac_cam.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/dev/aac/aac_cam.c Wed Apr 14 17:52:00 2010 (r206613) @@ -395,7 +395,7 @@ aac_cam_action(struct cam_sim *sim, unio srb->cdb_len); /* Set command */ - fib->Header.Command = (sc->flags & AAC_FLAGS_SG_64BIT) ? + fib->Header.Command = (sc->flags & AAC_FLAGS_SG_64BIT) ? ScsiPortCommandU64 : ScsiPortCommand; /* Map the s/g list. XXX 32bit addresses only! */ @@ -512,7 +512,7 @@ aac_cam_complete(struct aac_command *cm) scsi_sense_len = sizeof(struct scsi_sense_data); bzero(&ccb->csio.sense_data, scsi_sense_len); - sense_len = (srbr->sense_len > + sense_len = (srbr->sense_len > scsi_sense_len) ? scsi_sense_len : srbr->sense_len; bcopy(&srbr->sense[0], &ccb->csio.sense_data, Modified: user/imp/tbemd/sys/dev/aac/aac_debug.c ============================================================================== --- user/imp/tbemd/sys/dev/aac/aac_debug.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/dev/aac/aac_debug.c Wed Apr 14 17:52:00 2010 (r206613) @@ -62,62 +62,62 @@ aac_print_queues(struct aac_softc *sc) device_printf(sc->aac_dev, "FIB queue header at %p queues at %p\n", &sc->aac_queues->qt_qindex[AAC_HOST_NORM_CMD_QUEUE][0], &sc->aac_queues->qt_HostNormCmdQueue[0]); - device_printf(sc->aac_dev, "HOST_NORM_CMD %d/%d (%d)\n", + device_printf(sc->aac_dev, "HOST_NORM_CMD %d/%d (%d)\n", sc->aac_queues->qt_qindex[AAC_HOST_NORM_CMD_QUEUE][ AAC_PRODUCER_INDEX], sc->aac_queues->qt_qindex[AAC_HOST_NORM_CMD_QUEUE][ - AAC_CONSUMER_INDEX], + AAC_CONSUMER_INDEX], AAC_HOST_NORM_CMD_ENTRIES); - device_printf(sc->aac_dev, "HOST_HIGH_CMD %d/%d (%d)\n", + device_printf(sc->aac_dev, "HOST_HIGH_CMD %d/%d (%d)\n", sc->aac_queues->qt_qindex[AAC_HOST_HIGH_CMD_QUEUE][ AAC_PRODUCER_INDEX], sc->aac_queues->qt_qindex[AAC_HOST_HIGH_CMD_QUEUE][ - AAC_CONSUMER_INDEX], + AAC_CONSUMER_INDEX], AAC_HOST_HIGH_CMD_ENTRIES); - device_printf(sc->aac_dev, "ADAP_NORM_CMD %d/%d (%d)\n", + device_printf(sc->aac_dev, "ADAP_NORM_CMD %d/%d (%d)\n", sc->aac_queues->qt_qindex[AAC_ADAP_NORM_CMD_QUEUE][ AAC_PRODUCER_INDEX], sc->aac_queues->qt_qindex[AAC_ADAP_NORM_CMD_QUEUE][ - AAC_CONSUMER_INDEX], + AAC_CONSUMER_INDEX], AAC_ADAP_NORM_CMD_ENTRIES); - device_printf(sc->aac_dev, "ADAP_HIGH_CMD %d/%d (%d)\n", + device_printf(sc->aac_dev, "ADAP_HIGH_CMD %d/%d (%d)\n", sc->aac_queues->qt_qindex[AAC_ADAP_HIGH_CMD_QUEUE][ AAC_PRODUCER_INDEX], sc->aac_queues->qt_qindex[AAC_ADAP_HIGH_CMD_QUEUE][ - AAC_CONSUMER_INDEX], + AAC_CONSUMER_INDEX], AAC_ADAP_HIGH_CMD_ENTRIES); - device_printf(sc->aac_dev, "HOST_NORM_RESP %d/%d (%d)\n", + device_printf(sc->aac_dev, "HOST_NORM_RESP %d/%d (%d)\n", sc->aac_queues->qt_qindex[AAC_HOST_NORM_RESP_QUEUE][ AAC_PRODUCER_INDEX], sc->aac_queues->qt_qindex[AAC_HOST_NORM_RESP_QUEUE][ AAC_CONSUMER_INDEX], AAC_HOST_NORM_RESP_ENTRIES); - device_printf(sc->aac_dev, "HOST_HIGH_RESP %d/%d (%d)\n", + device_printf(sc->aac_dev, "HOST_HIGH_RESP %d/%d (%d)\n", sc->aac_queues->qt_qindex[AAC_HOST_HIGH_RESP_QUEUE][ AAC_PRODUCER_INDEX], sc->aac_queues->qt_qindex[AAC_HOST_HIGH_RESP_QUEUE][ AAC_CONSUMER_INDEX], AAC_HOST_HIGH_RESP_ENTRIES); - device_printf(sc->aac_dev, "ADAP_NORM_RESP %d/%d (%d)\n", + device_printf(sc->aac_dev, "ADAP_NORM_RESP %d/%d (%d)\n", sc->aac_queues->qt_qindex[AAC_ADAP_NORM_RESP_QUEUE][ AAC_PRODUCER_INDEX], sc->aac_queues->qt_qindex[AAC_ADAP_NORM_RESP_QUEUE][ AAC_CONSUMER_INDEX], AAC_ADAP_NORM_RESP_ENTRIES); - device_printf(sc->aac_dev, "ADAP_HIGH_RESP %d/%d (%d)\n", + device_printf(sc->aac_dev, "ADAP_HIGH_RESP %d/%d (%d)\n", sc->aac_queues->qt_qindex[AAC_ADAP_HIGH_RESP_QUEUE][ AAC_PRODUCER_INDEX], sc->aac_queues->qt_qindex[AAC_ADAP_HIGH_RESP_QUEUE][ AAC_CONSUMER_INDEX], AAC_ADAP_HIGH_RESP_ENTRIES); - device_printf(sc->aac_dev, "AACQ_FREE %d/%d\n", + device_printf(sc->aac_dev, "AACQ_FREE %d/%d\n", sc->aac_qstat[AACQ_FREE].q_length, sc->aac_qstat[AACQ_FREE].q_max); - device_printf(sc->aac_dev, "AACQ_BIO %d/%d\n", + device_printf(sc->aac_dev, "AACQ_BIO %d/%d\n", sc->aac_qstat[AACQ_BIO].q_length, sc->aac_qstat[AACQ_BIO].q_max); - device_printf(sc->aac_dev, "AACQ_READY %d/%d\n", + device_printf(sc->aac_dev, "AACQ_READY %d/%d\n", sc->aac_qstat[AACQ_READY].q_length, sc->aac_qstat[AACQ_READY].q_max); - device_printf(sc->aac_dev, "AACQ_BUSY %d/%d\n", + device_printf(sc->aac_dev, "AACQ_BUSY %d/%d\n", sc->aac_qstat[AACQ_BUSY].q_length, sc->aac_qstat[AACQ_BUSY].q_max); } @@ -225,8 +225,8 @@ aac_print_fib(struct aac_softc *sc, stru if (br->Command == VM_CtBlockRead) { device_printf(sc->aac_dev, - " BlockRead: container %d 0x%x/%d\n", - br->ContainerId, br->BlockNumber, + " BlockRead: container %d 0x%x/%d\n", + br->ContainerId, br->BlockNumber, br->ByteCount); sg = &br->SgMap; } @@ -234,7 +234,7 @@ aac_print_fib(struct aac_softc *sc, stru device_printf(sc->aac_dev, " BlockWrite: container %d 0x%x/%d " "(%s)\n", bw->ContainerId, - bw->BlockNumber, bw->ByteCount, + bw->BlockNumber, bw->ByteCount, bw->Stable == CSTABLE ? "stable" : "unstable"); sg = &bw->SgMap; @@ -267,7 +267,7 @@ aac_print_aif(struct aac_softc *sc, stru device_printf(sc->aac_dev, "EventNotify(%d)\n", aif->seqNumber); switch(aif->data.EN.type) { case AifEnGeneric: /* Generic notification */ - device_printf(sc->aac_dev, "(Generic) %.*s\n", + device_printf(sc->aac_dev, "(Generic) %.*s\n", (int)sizeof(aif->data.EN.data.EG), aif->data.EN.data.EG.text); break; @@ -281,21 +281,21 @@ aac_print_aif(struct aac_softc *sc, stru case AifEnContainerChange: /* Adapter specific container * configuration change */ device_printf(sc->aac_dev, "(ContainerChange) " - "container %d,%d\n", - aif->data.EN.data.ECC.container[0], + "container %d,%d\n", + aif->data.EN.data.ECC.container[0], aif->data.EN.data.ECC.container[1]); break; case AifEnDeviceFailure: /* SCSI device failed */ device_printf(sc->aac_dev, "(DeviceFailure) " - "handle %d\n", + "handle %d\n", aif->data.EN.data.EDF.deviceHandle); break; case AifEnMirrorFailover: /* Mirror failover started */ device_printf(sc->aac_dev, "(MirrorFailover) " "container %d failed, " "migrating from slice %d to %d\n", - aif->data.EN.data.EMF.container, - aif->data.EN.data.EMF.failedSlice, + aif->data.EN.data.EMF.container, + aif->data.EN.data.EMF.failedSlice, aif->data.EN.data.EMF.creatingSlice); break; case AifEnContainerEvent: /* Significant container @@ -325,7 +325,7 @@ aac_print_aif(struct aac_softc *sc, stru device_printf(sc->aac_dev, "(EnclosureManagement) " "EMPID %d unit %d " "event %d\n", aif->data.EN.data.EEE.empID, - aif->data.EN.data.EEE.unitID, + aif->data.EN.data.EEE.unitID, aif->data.EN.data.EEE.eventType); break; case AifEnBatteryEvent: /* Significant NV battery @@ -348,14 +348,14 @@ aac_print_aif(struct aac_softc *sc, stru device_printf(sc->aac_dev, "(BatteryNeedsRecond)\n"); break; case AifEnClusterEvent: /* Some cluster event */ - device_printf(sc->aac_dev, "(ClusterEvent) event %d\n", + device_printf(sc->aac_dev, "(ClusterEvent) event %d\n", aif->data.EN.data.ECLE.eventType); break; case AifEnDiskSetEvent: /* A disk set event occured. */ device_printf(sc->aac_dev, "(DiskSetEvent) event %d " "diskset %jd creator %jd\n", - aif->data.EN.data.EDS.eventType, - (intmax_t)aif->data.EN.data.EDS.DsNum, + aif->data.EN.data.EDS.eventType, + (intmax_t)aif->data.EN.data.EDS.DsNum, (intmax_t)aif->data.EN.data.EDS.CreatorId); break; case AifDenMorphComplete: /* A morph operation @@ -392,7 +392,7 @@ aac_print_aif(struct aac_softc *sc, stru } device_printf(sc->aac_dev, "JobProgress (%d) - %s (%d, %d)\n", - aif->seqNumber, status, + aif->seqNumber, status, aif->data.PR[0].currentTick, aif->data.PR[0].finalTick); switch(aif->data.PR[0].jd.type) { @@ -418,12 +418,12 @@ aac_print_aif(struct aac_softc *sc, stru break; case AifJobCtrZero: /* Container clear operation */ device_printf(sc->aac_dev, - "(ContainerZero) container %d\n", + "(ContainerZero) container %d\n", aif->data.PR[0].jd.client.container.src); break; case AifJobCtrCopy: /* Container copy operation */ device_printf(sc->aac_dev, - "(ContainerCopy) container %d to %d\n", + "(ContainerCopy) container %d to %d\n", aif->data.PR[0].jd.client.container.src, aif->data.PR[0].jd.client.container.dst); break; @@ -456,12 +456,12 @@ aac_print_aif(struct aac_softc *sc, stru case AifJobCtrScrubRaid5: /* Container Scrub Raid5 * operation */ device_printf(sc->aac_dev, - "(ContainerScrubRaid5) container %d\n", + "(ContainerScrubRaid5) container %d\n", aif->data.PR[0].jd.client.container.src); break; case AifJobCtrMorph: /* Container morph operation */ device_printf(sc->aac_dev, - "(ContainerMorph) container %d\n", + "(ContainerMorph) container %d\n", aif->data.PR[0].jd.client.container.src); /* XXX two containers? */ break; @@ -476,13 +476,13 @@ aac_print_aif(struct aac_softc *sc, stru case AifJobCtrRebuildMirror: /* Container Rebuild Mirror * operation */ device_printf(sc->aac_dev, - "(ContainerRebuildMirror) container " + "(ContainerRebuildMirror) container " "%d\n", aif->data.PR[0].jd.client.container.src); break; case AifJobCtrCrazyCache: /* crazy cache */ device_printf(sc->aac_dev, - "(ContainerCrazyCache) container %d\n", + "(ContainerCrazyCache) container %d\n", aif->data.PR[0].jd.client.container.src); /* XXX two containers? */ break; Modified: user/imp/tbemd/sys/dev/aac/aac_disk.c ============================================================================== --- user/imp/tbemd/sys/dev/aac/aac_disk.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/dev/aac/aac_disk.c Wed Apr 14 17:52:00 2010 (r206613) @@ -87,7 +87,7 @@ DRIVER_MODULE(aacd, aac, aac_disk_driver /* * Handle open from generic layer. * - * This is called by the diskslice code on first open in order to get the + * This is called by the diskslice code on first open in order to get the * basic device geometry paramters. */ static int Modified: user/imp/tbemd/sys/dev/aac/aac_pci.c ============================================================================== --- user/imp/tbemd/sys/dev/aac/aac_pci.c Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/dev/aac/aac_pci.c Wed Apr 14 17:52:00 2010 (r206613) @@ -177,7 +177,7 @@ struct aac_ident {0x9005, 0x0285, 0x1014, 0x0312, AAC_HWIF_I960RX, 0, "IBM ServeRAID 8i"}, {0x9005, 0x0285, 0x9005, 0x0298, AAC_HWIF_I960RX, 0, - "Adaptec SAS RAID 4000SAS"}, + "Adaptec RAID 4000"}, {0x9005, 0x0285, 0x9005, 0x0299, AAC_HWIF_I960RX, 0, "Adaptec SAS RAID 4800SAS"}, {0x9005, 0x0285, 0x9005, 0x029a, AAC_HWIF_I960RX, 0, @@ -353,7 +353,7 @@ aac_pci_attach(device_t dev) /* assume failure is 'not configured' */ error = ENXIO; - /* + /* * Verify that the adapter is correctly set up in PCI space. */ command = pci_read_config(sc->aac_dev, PCIR_COMMAND, 2); @@ -401,7 +401,7 @@ aac_pci_attach(device_t dev) /* * Allocate the parent bus DMA tag appropriate for our PCI interface. - * + * * Note that some of these controllers are 64-bit capable. */ if (bus_dma_tag_create(NULL, /* parent */ @@ -419,7 +419,7 @@ aac_pci_attach(device_t dev) goto out; } - /* + /* * Detect the hardware interface version, set up the bus interface * indirection. */ Modified: user/imp/tbemd/sys/dev/aac/aac_tables.h ============================================================================== --- user/imp/tbemd/sys/dev/aac/aac_tables.h Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/dev/aac/aac_tables.h Wed Apr 14 17:52:00 2010 (r206613) @@ -34,40 +34,42 @@ * relevant only to FSA operations. */ static struct aac_code_lookup aac_command_status_table[] = { - {"OK", 0}, - {"operation not permitted", 1}, - {"not found", 2}, - {"I/O error", 5}, - {"device not configured", 6}, - {"too big", 7}, - {"permission denied", 13}, - {"file exists", 17}, - {"cross-device link", 18}, - {"operation not supported by device", 19}, - {"not a directory", 20}, - {"is a directory", 21}, - {"invalid argument", 22}, - {"file too large", 27}, - {"no space on device", 28}, - {"readonly filesystem", 30}, - {"too many links", 31}, - {"operation would block", 35}, - {"file name too long", 63}, - {"directory not empty", 66}, - {"quota exceeded", 69}, - {"stale file handle", 70}, - {"too many levels of remote in path", 71}, - {"bad file handle", 10001}, - {"not sync", 10002}, - {"bad cookie", 10003}, - {"operation not supported", 10004}, - {"too small", 10005}, - {"server fault", 10006}, - {"bad type", 10007}, - {"jukebox", 10008}, - {"not mounted", 10009}, - {"in maintenance mode", 10010}, - {"stale ACL", 10011}, + {"OK", ST_OK}, + {"operation not permitted", ST_PERM}, + {"not found", ST_NOENT}, + {"I/O error", ST_IO}, + {"device not configured", ST_NXIO}, + {"too big", ST_E2BIG}, + {"permission denied", ST_ACCES}, + {"file exists", ST_EXIST}, + {"cross-device link", ST_XDEV}, + {"operation not supported by device", ST_NODEV}, + {"not a directory", ST_NOTDIR}, + {"is a directory", ST_ISDIR}, + {"invalid argument", ST_INVAL}, + {"file too large", ST_FBIG}, + {"no space on device", ST_NOSPC}, + {"readonly filesystem", ST_ROFS}, + {"too many links", ST_MLINK}, + {"operation would block", ST_WOULDBLOCK}, + {"file name too long", ST_NAMETOOLONG}, + {"directory not empty", ST_NOTEMPTY}, + {"quota exceeded", ST_DQUOT}, + {"stale file handle", ST_STALE}, + {"too many levels of remote in path", ST_REMOTE}, + {"device busy (spinning up)", ST_NOT_READY}, + {"bad file handle", ST_BADHANDLE}, + {"not sync", ST_NOT_SYNC}, + {"bad cookie", ST_BAD_COOKIE}, + {"operation not supported", ST_NOTSUPP}, + {"too small", ST_TOOSMALL}, + {"server fault", ST_SERVERFAULT}, + {"bad type", ST_BADTYPE}, + {"jukebox", ST_JUKEBOX}, + {"not mounted", ST_NOTMOUNTED}, + {"in maintenance mode", ST_MAINTMODE}, + {"stale ACL", ST_STALEACL}, + {"bus reset - command aborted", ST_BUS_RESET}, {NULL, 0}, {"unknown command status", 0} }; Modified: user/imp/tbemd/sys/dev/aac/aacreg.h ============================================================================== --- user/imp/tbemd/sys/dev/aac/aacreg.h Wed Apr 14 17:17:25 2010 (r206612) +++ user/imp/tbemd/sys/dev/aac/aacreg.h Wed Apr 14 17:52:00 2010 (r206613) @@ -220,20 +220,20 @@ typedef enum { IsAdapterPaused = 704, SendHostTime = 705, RequestSupplementAdapterInfo = 706, /* Supp. Info for set in UCC - * use only if supported + * use only if supported * (RequestAdapterInfo first) */ LastMiscCommand = 707, - - OnLineDiagnostic = 800, - FduAdapterTest = 801, + + OnLineDiagnostic = 800, + FduAdapterTest = 801, RequestCompatibilityId = 802, AdapterEnvironmentInfo = 803, /* temp. sensors */ NvsramEventLog = 900, ResetNvsramEventLogPointers = 901, EnableEventLog = 902, DisableEventLog = 903, - EncryptedKeyTransportFIB= 904, - KeyableFeaturesFIB= 905 + EncryptedKeyTransportFIB= 904, + KeyableFeaturesFIB= 905 } AAC_FibCommands; /* @@ -283,7 +283,7 @@ typedef enum { #define AAC_ERROR_FIB_DEALLOCATION_FAILED 0x08 /* - * Adapter Init Structure: this is passed to the adapter with the + * Adapter Init Structure: this is passed to the adapter with the * AAC_MONKER_INITSTRUCT command to point it at our control structures. */ struct aac_adapter_init { @@ -306,7 +306,7 @@ struct aac_adapter_init { u_int32_t HostElapsedSeconds; /* ADAPTER_INIT_STRUCT_REVISION_4 begins here */ u_int32_t InitFlags; /* flags for supported features */ -#define INITFLAGS_NEW_COMM_SUPPORTED 1 +#define AAC_INITFLAGS_NEW_COMM_SUPPORTED 1 u_int32_t MaxIoCommands; /* max outstanding commands */ u_int32_t MaxIoSize; /* largest I/O command */ u_int32_t MaxFibSize; /* largest FIB to adapter */ @@ -329,14 +329,14 @@ typedef enum { CT_MORPH, CT_PASSTHRU, CT_RAID4, - CT_RAID10, /* stripe of mirror */ - CT_RAID00, /* stripe of stripe */ - CT_VOLUME_OF_MIRRORS, /* volume of mirror */ - CT_PSEUDO_RAID3, /* really raid4 */ - CT_RAID50, /* stripe of raid5 */ - CT_RAID5D, /* raid5 distributed hot-sparing */ + CT_RAID10, /* stripe of mirror */ + CT_RAID00, /* stripe of stripe */ + CT_VOLUME_OF_MIRRORS, /* volume of mirror */ + CT_PSEUDO_RAID3, /* really raid4 */ + CT_RAID50, /* stripe of raid5 */ + CT_RAID5D, /* raid5 distributed hot-sparing */ CT_RAID5D0, - CT_RAID1E, /* extended raid1 mirroring */ + CT_RAID1E, /* extended raid1 mirroring */ CT_RAID6, CT_RAID60, } AAC_FSAVolType; @@ -345,23 +345,23 @@ typedef enum { * Host-addressable object types */ typedef enum { - FT_REG = 1, /* regular file */ - FT_DIR, /* directory */ - FT_BLK, /* "block" device - reserved */ - FT_CHR, /* "character special" device - reserved */ - FT_LNK, /* symbolic link */ - FT_SOCK, /* socket */ - FT_FIFO, /* fifo */ - FT_FILESYS, /* ADAPTEC's "FSA"(tm) filesystem */ - FT_DRIVE, /* physical disk - addressable in scsi by b/t/l */ - FT_SLICE, /* virtual disk - raw volume - slice */ - FT_PARTITION, /* FSA partition - carved out of a slice - building + FT_REG = 1, /* regular file */ + FT_DIR, /* directory */ + FT_BLK, /* "block" device - reserved */ + FT_CHR, /* "character special" device - reserved */ + FT_LNK, /* symbolic link */ + FT_SOCK, /* socket */ + FT_FIFO, /* fifo */ + FT_FILESYS, /* ADAPTEC's "FSA"(tm) filesystem */ + FT_DRIVE, /* physical disk - addressable in scsi by b/t/l */ + FT_SLICE, /* virtual disk - raw volume - slice */ + FT_PARTITION, /* FSA partition - carved out of a slice - building * block for containers */ - FT_VOLUME, /* Container - Volume Set */ - FT_STRIPE, /* Container - Stripe Set */ - FT_MIRROR, /* Container - Mirror Set */ - FT_RAID5, /* Container - Raid 5 Set */ - FT_DATABASE /* Storage object with "foreign" content manager */ + FT_VOLUME, /* Container - Volume Set */ + FT_STRIPE, /* Container - Stripe Set */ + FT_MIRROR, /* Container - Mirror Set */ + FT_RAID5, /* Container - Raid 5 Set */ + FT_DATABASE /* Storage object with "foreign" content manager */ } AAC_FType; /* @@ -467,7 +467,7 @@ typedef enum { CPU_MIPS, CPU_XSCALE, CPU__last -} AAC_CpuType; +} AAC_CpuType; typedef enum { CPUI960_JX = 1, @@ -544,7 +544,7 @@ typedef enum { * XXX the aac-2622 with no battery present reports PLATFORM_BAT_OPT_PRESENT */ typedef enum -{ +{ PLATFORM_BAT_REQ_PRESENT = 1, /* BATTERY REQUIRED AND PRESENT */ PLATFORM_BAT_REQ_NOTPRESENT, /* BATTERY REQUIRED AND NOT PRESENT */ PLATFORM_BAT_OPT_PRESENT, /* BATTERY OPTIONAL AND PRESENT */ @@ -552,9 +552,9 @@ typedef enum PLATFORM_BAT_NOT_SUPPORTED /* BATTERY NOT SUPPORTED */ } AAC_BatteryPlatform; -/* +/* * options supported by this board - * there has to be a one to one mapping of these defines and the ones in + * there has to be a one to one mapping of these defines and the ones in * fsaapi.h, search for FSA_SUPPORT_SNAPSHOT */ #define AAC_SUPPORTED_SNAPSHOT 0x01 @@ -577,24 +577,24 @@ typedef enum #define AAC_SUPPORTED_64BIT_ARRAYSIZE 0x40000 #define AAC_SUPPORTED_HEAT_SENSOR 0x80000 -/* +/* * Structure used to respond to a RequestAdapterInfo fib. */ struct aac_adapter_info { - AAC_Platform PlatformBase; /* adapter type */ + AAC_Platform PlatformBase; /* adapter type */ AAC_CpuType CpuArchitecture; /* adapter CPU type */ - AAC_CpuSubType CpuVariant; /* adapter CPU subtype */ - u_int32_t ClockSpeed; /* adapter CPU clockspeed */ - u_int32_t ExecutionMem; /* adapter Execution Memory + AAC_CpuSubType CpuVariant; /* adapter CPU subtype */ + u_int32_t ClockSpeed; /* adapter CPU clockspeed */ + u_int32_t ExecutionMem; /* adapter Execution Memory * size */ - u_int32_t BufferMem; /* adapter Data Memory */ - u_int32_t TotalMem; /* adapter Total Memory */ + u_int32_t BufferMem; /* adapter Data Memory */ + u_int32_t TotalMem; /* adapter Total Memory */ struct FsaRevision KernelRevision; /* adapter Kernel Software * Revision */ struct FsaRevision MonitorRevision; /* adapter Monitor/Diagnostic * Software Revision */ struct FsaRevision HardwareRevision;/* TBD */ - struct FsaRevision BIOSRevision; /* adapter BIOS Revision */ + struct FsaRevision BIOSRevision; /* adapter BIOS Revision */ u_int32_t ClusteringEnabled; u_int32_t ClusterChannelMask; u_int64_t SerialNumber; @@ -604,7 +604,7 @@ struct aac_adapter_info { AAC_OemFlavor OemVariant; } __packed; -/* +/* * Structure used to respond to a RequestSupplementAdapterInfo fib. */ struct vpd_info { @@ -692,7 +692,7 @@ struct aac_supplement_adapter_info { #define AAC_KERNEL_PANIC 0x00000100 /* - * Data types relating to control and monitoring of the NVRAM/WriteCache + * Data types relating to control and monitoring of the NVRAM/WriteCache * subsystem. */ @@ -867,7 +867,7 @@ typedef enum { AifEnGeneric = 1, /* Generic notification */ AifEnTaskComplete, /* Task has completed */ AifEnConfigChange, /* Adapter config change occurred */ - AifEnContainerChange, /* Adapter specific container + AifEnContainerChange, /* Adapter specific container * configuration change */ AifEnDeviceFailure, /* SCSI device failed */ AifEnMirrorFailover, /* Mirror failover started */ @@ -881,7 +881,7 @@ typedef enum { AifEnBatteryEvent, /* Significant NV battery event */ AifEnAddContainer, /* A new container was created. */ AifEnDeleteContainer, /* A container was deleted. */ - AifEnSMARTEvent, /* SMART Event */ + AifEnSMARTEvent, /* SMART Event */ AifEnBatteryNeedsRecond, /* The battery needs reconditioning */ AifEnClusterEvent, /* Some cluster event */ AifEnDiskSetEvent, /* A disk set event occured. */ @@ -967,7 +967,7 @@ struct aac_AifEventNotify { /* * Adapter Initiated FIB command structures. Start with the adapter * initiated FIBs that really come from the adapter, and get responded - * to by the host. + * to by the host. */ #define AAC_AIF_REPORT_MAX_SIZE 64 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 19:04:39 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 441FD106566B; Wed, 14 Apr 2010 19:04:39 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1AFCF8FC24; Wed, 14 Apr 2010 19:04:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3EJ4dp7059684; Wed, 14 Apr 2010 19:04:39 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3EJ4cS5059682; Wed, 14 Apr 2010 19:04:38 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004141904.o3EJ4cS5059682@svn.freebsd.org> From: Warner Losh Date: Wed, 14 Apr 2010 19:04:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206620 - user/imp/tbemd/gnu/usr.bin X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 19:04:39 -0000 Author: imp Date: Wed Apr 14 19:04:38 2010 New Revision: 206620 URL: http://svn.freebsd.org/changeset/base/206620 Log: Diff reduction against head Modified: user/imp/tbemd/gnu/usr.bin/Makefile Modified: user/imp/tbemd/gnu/usr.bin/Makefile ============================================================================== --- user/imp/tbemd/gnu/usr.bin/Makefile Wed Apr 14 19:03:27 2010 (r206619) +++ user/imp/tbemd/gnu/usr.bin/Makefile Wed Apr 14 19:04:38 2010 (r206620) @@ -8,7 +8,6 @@ SUBDIR= ${_binutils} \ dialog \ diff \ diff3 \ - dtc \ ${_gdb} \ ${_gperf} \ ${_grep} \ From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 20:48:15 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 094101065670; Wed, 14 Apr 2010 20:48:15 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E81528FC21; Wed, 14 Apr 2010 20:48:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3EKmEQo083025; Wed, 14 Apr 2010 20:48:14 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3EKmDFG082950; Wed, 14 Apr 2010 20:48:13 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004142048.o3EKmDFG082950@svn.freebsd.org> From: Warner Losh Date: Wed, 14 Apr 2010 20:48:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206626 - in user/imp/tbemd: . bin/pwait contrib/com_err gnu/usr.bin/gdb/gdbserver gnu/usr.bin/gdb/kgdb lib/libc/gen lib/libc/locale lib/libc/posix1e lib/libc/stdlib lib/libcam lib/libc... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 20:48:15 -0000 Author: imp Date: Wed Apr 14 20:48:13 2010 New Revision: 206626 URL: http://svn.freebsd.org/changeset/base/206626 Log: svn merge svn+ssh://svn.freebsd.org/base/head/@206624 # loopback of the gdbserver changes Added: user/imp/tbemd/gnu/usr.bin/gdb/gdbserver/reg-amd64.c - copied unchanged from r206624, head/gnu/usr.bin/gdb/gdbserver/reg-amd64.c Deleted: user/imp/tbemd/gnu/usr.bin/gdb/gdbserver/reg-x86-64.c Modified: user/imp/tbemd/Makefile.inc1 user/imp/tbemd/bin/pwait/pwait.1 user/imp/tbemd/contrib/com_err/compile_et.1 user/imp/tbemd/gnu/usr.bin/gdb/gdbserver/Makefile user/imp/tbemd/gnu/usr.bin/gdb/kgdb/kgdb.1 user/imp/tbemd/lib/libc/gen/check_utility_compat.3 user/imp/tbemd/lib/libc/gen/confstr.3 user/imp/tbemd/lib/libc/gen/dladdr.3 user/imp/tbemd/lib/libc/gen/dlinfo.3 user/imp/tbemd/lib/libc/gen/dllockinit.3 user/imp/tbemd/lib/libc/gen/dlopen.3 user/imp/tbemd/lib/libc/gen/fmtcheck.3 user/imp/tbemd/lib/libc/gen/frexp.3 user/imp/tbemd/lib/libc/gen/ftok.3 user/imp/tbemd/lib/libc/gen/getutxent.3 user/imp/tbemd/lib/libc/gen/setproctitle.3 user/imp/tbemd/lib/libc/gen/stringlist.3 user/imp/tbemd/lib/libc/gen/sysconf.3 user/imp/tbemd/lib/libc/gen/sysctl.3 user/imp/tbemd/lib/libc/locale/isalnum.3 user/imp/tbemd/lib/libc/locale/isalpha.3 user/imp/tbemd/lib/libc/posix1e/mac_prepare.3 user/imp/tbemd/lib/libc/stdlib/hcreate.3 user/imp/tbemd/lib/libc/stdlib/ptsname.3 user/imp/tbemd/lib/libcam/cam.3 user/imp/tbemd/lib/libcam/cam_cdbparse.3 user/imp/tbemd/lib/libcompat/4.1/cftime.3 user/imp/tbemd/lib/libcompat/4.4/cuserid.3 user/imp/tbemd/lib/libedit/editline.3 user/imp/tbemd/lib/libedit/editrc.5 user/imp/tbemd/lib/libelf/elf.3 user/imp/tbemd/lib/libelf/elf_begin.3 user/imp/tbemd/lib/libelf/elf_cntl.3 user/imp/tbemd/lib/libelf/elf_end.3 user/imp/tbemd/lib/libelf/elf_errmsg.3 user/imp/tbemd/lib/libelf/elf_fill.3 user/imp/tbemd/lib/libelf/elf_flagdata.3 user/imp/tbemd/lib/libelf/elf_getarhdr.3 user/imp/tbemd/lib/libelf/elf_getarsym.3 user/imp/tbemd/lib/libelf/elf_getbase.3 user/imp/tbemd/lib/libelf/elf_getdata.3 user/imp/tbemd/lib/libelf/elf_getident.3 user/imp/tbemd/lib/libelf/elf_getphnum.3 user/imp/tbemd/lib/libelf/elf_getscn.3 user/imp/tbemd/lib/libelf/elf_getshnum.3 user/imp/tbemd/lib/libelf/elf_getshstrndx.3 user/imp/tbemd/lib/libelf/elf_hash.3 user/imp/tbemd/lib/libelf/elf_kind.3 user/imp/tbemd/lib/libelf/elf_memory.3 user/imp/tbemd/lib/libelf/elf_next.3 user/imp/tbemd/lib/libelf/elf_rand.3 user/imp/tbemd/lib/libelf/elf_rawfile.3 user/imp/tbemd/lib/libelf/elf_strptr.3 user/imp/tbemd/lib/libelf/elf_update.3 user/imp/tbemd/lib/libelf/elf_version.3 user/imp/tbemd/lib/libelf/gelf.3 user/imp/tbemd/lib/libelf/gelf_checksum.3 user/imp/tbemd/lib/libelf/gelf_fsize.3 user/imp/tbemd/lib/libelf/gelf_getcap.3 user/imp/tbemd/lib/libelf/gelf_getclass.3 user/imp/tbemd/lib/libelf/gelf_getdyn.3 user/imp/tbemd/lib/libelf/gelf_getehdr.3 user/imp/tbemd/lib/libelf/gelf_getmove.3 user/imp/tbemd/lib/libelf/gelf_getphdr.3 user/imp/tbemd/lib/libelf/gelf_getrel.3 user/imp/tbemd/lib/libelf/gelf_getrela.3 user/imp/tbemd/lib/libelf/gelf_getshdr.3 user/imp/tbemd/lib/libelf/gelf_getsym.3 user/imp/tbemd/lib/libelf/gelf_getsyminfo.3 user/imp/tbemd/lib/libelf/gelf_getsymshndx.3 user/imp/tbemd/lib/libelf/gelf_newehdr.3 user/imp/tbemd/lib/libelf/gelf_newphdr.3 user/imp/tbemd/lib/libelf/gelf_update_ehdr.3 user/imp/tbemd/lib/libelf/gelf_xlatetof.3 user/imp/tbemd/lib/libgssapi/gss_accept_sec_context.3 user/imp/tbemd/lib/libgssapi/gss_acquire_cred.3 user/imp/tbemd/lib/libgssapi/gss_add_cred.3 user/imp/tbemd/lib/libgssapi/gss_add_oid_set_member.3 user/imp/tbemd/lib/libgssapi/gss_canonicalize_name.3 user/imp/tbemd/lib/libgssapi/gss_compare_name.3 user/imp/tbemd/lib/libgssapi/gss_context_time.3 user/imp/tbemd/lib/libgssapi/gss_create_empty_oid_set.3 user/imp/tbemd/lib/libgssapi/gss_delete_sec_context.3 user/imp/tbemd/lib/libgssapi/gss_display_name.3 user/imp/tbemd/lib/libgssapi/gss_display_status.3 user/imp/tbemd/lib/libgssapi/gss_duplicate_name.3 user/imp/tbemd/lib/libgssapi/gss_export_name.3 user/imp/tbemd/lib/libgssapi/gss_export_sec_context.3 user/imp/tbemd/lib/libgssapi/gss_get_mic.3 user/imp/tbemd/lib/libgssapi/gss_import_name.3 user/imp/tbemd/lib/libgssapi/gss_import_sec_context.3 user/imp/tbemd/lib/libgssapi/gss_indicate_mechs.3 user/imp/tbemd/lib/libgssapi/gss_init_sec_context.3 user/imp/tbemd/lib/libgssapi/gss_inquire_context.3 user/imp/tbemd/lib/libgssapi/gss_inquire_cred.3 user/imp/tbemd/lib/libgssapi/gss_inquire_cred_by_mech.3 user/imp/tbemd/lib/libgssapi/gss_inquire_mechs_for_name.3 user/imp/tbemd/lib/libgssapi/gss_inquire_names_for_mech.3 user/imp/tbemd/lib/libgssapi/gss_process_context_token.3 user/imp/tbemd/lib/libgssapi/gss_release_buffer.3 user/imp/tbemd/lib/libgssapi/gss_release_cred.3 user/imp/tbemd/lib/libgssapi/gss_release_name.3 user/imp/tbemd/lib/libgssapi/gss_release_oid_set.3 user/imp/tbemd/lib/libgssapi/gss_test_oid_set_member.3 user/imp/tbemd/lib/libgssapi/gss_unwrap.3 user/imp/tbemd/lib/libgssapi/gss_verify_mic.3 user/imp/tbemd/lib/libgssapi/gss_wrap.3 user/imp/tbemd/lib/libgssapi/gss_wrap_size_limit.3 user/imp/tbemd/lib/libmemstat/libmemstat.3 user/imp/tbemd/lib/libpmc/pmc.3 user/imp/tbemd/lib/libpmc/pmc.atom.3 user/imp/tbemd/lib/libpmc/pmc.core.3 user/imp/tbemd/lib/libpmc/pmc.core2.3 user/imp/tbemd/lib/libpmc/pmc.corei7.3 user/imp/tbemd/lib/libpmc/pmc.corei7uc.3 user/imp/tbemd/lib/libpmc/pmc.iaf.3 user/imp/tbemd/lib/libpmc/pmc.k7.3 user/imp/tbemd/lib/libpmc/pmc.k8.3 user/imp/tbemd/lib/libpmc/pmc.p4.3 user/imp/tbemd/lib/libpmc/pmc.p5.3 user/imp/tbemd/lib/libpmc/pmc.p6.3 user/imp/tbemd/lib/libpmc/pmc.tsc.3 user/imp/tbemd/lib/libpmc/pmc.ucf.3 user/imp/tbemd/lib/libpmc/pmc.westmere.3 user/imp/tbemd/lib/libpmc/pmc.westmereuc.3 user/imp/tbemd/lib/libpmc/pmc_allocate.3 user/imp/tbemd/lib/libpmc/pmc_attach.3 user/imp/tbemd/lib/libpmc/pmc_capabilities.3 user/imp/tbemd/lib/libpmc/pmc_configure_logfile.3 user/imp/tbemd/lib/libpmc/pmc_disable.3 user/imp/tbemd/lib/libpmc/pmc_event_names_of_class.3 user/imp/tbemd/lib/libpmc/pmc_get_driver_stats.3 user/imp/tbemd/lib/libpmc/pmc_get_msr.3 user/imp/tbemd/lib/libpmc/pmc_init.3 user/imp/tbemd/lib/libpmc/pmc_name_of_capability.3 user/imp/tbemd/lib/libpmc/pmc_read.3 user/imp/tbemd/lib/libpmc/pmc_set.3 user/imp/tbemd/lib/libpmc/pmc_start.3 user/imp/tbemd/lib/libpmc/pmclog.3 user/imp/tbemd/lib/libthr/libthr.3 user/imp/tbemd/lib/libugidfw/bsde_get_rule.3 user/imp/tbemd/lib/libugidfw/bsde_get_rule_count.3 user/imp/tbemd/lib/libugidfw/bsde_parse_rule.3 user/imp/tbemd/lib/libugidfw/bsde_rule_to_string.3 user/imp/tbemd/lib/libugidfw/libugidfw.3 user/imp/tbemd/lib/libulog/ulog_login.3 user/imp/tbemd/lib/libulog/utempter_add_record.3 user/imp/tbemd/lib/libutil/_secure_path.3 user/imp/tbemd/lib/libutil/auth.3 user/imp/tbemd/lib/libutil/hexdump.3 user/imp/tbemd/lib/libutil/kinfo_getfile.3 user/imp/tbemd/lib/libutil/kinfo_getvmmap.3 user/imp/tbemd/lib/libutil/kld.3 user/imp/tbemd/lib/libutil/login_auth.3 user/imp/tbemd/lib/libutil/login_cap.3 user/imp/tbemd/lib/libutil/login_class.3 user/imp/tbemd/lib/libutil/login_ok.3 user/imp/tbemd/lib/libutil/login_times.3 user/imp/tbemd/lib/libutil/login_tty.3 user/imp/tbemd/lib/libutil/property.3 user/imp/tbemd/lib/libutil/pty.3 user/imp/tbemd/lib/libutil/realhostname.3 user/imp/tbemd/lib/libutil/realhostname_sa.3 user/imp/tbemd/lib/libutil/trimdomain.3 user/imp/tbemd/lib/libutil/uucplock.3 user/imp/tbemd/sbin/iscontrol/iscsi.conf.5 user/imp/tbemd/sbin/spppcontrol/spppcontrol.8 user/imp/tbemd/share/man/man3/sysexits.3 user/imp/tbemd/share/man/man3/tgmath.3 user/imp/tbemd/share/man/man4/audit.4 user/imp/tbemd/share/man/man4/auditpipe.4 user/imp/tbemd/share/man/man4/coda.4 user/imp/tbemd/share/man/man4/gbde.4 user/imp/tbemd/share/man/man4/geom.4 user/imp/tbemd/share/man/man4/geom_fox.4 user/imp/tbemd/share/man/man4/geom_linux_lvm.4 user/imp/tbemd/share/man/man4/geom_uzip.4 user/imp/tbemd/share/man/man4/ipw.4 user/imp/tbemd/share/man/man4/iscsi_initiator.4 user/imp/tbemd/share/man/man4/iwi.4 user/imp/tbemd/share/man/man4/iwn.4 user/imp/tbemd/share/man/man4/kbdmux.4 user/imp/tbemd/share/man/man4/lp.4 user/imp/tbemd/share/man/man4/mac.4 user/imp/tbemd/share/man/man4/mac_biba.4 user/imp/tbemd/share/man/man4/mac_bsdextended.4 user/imp/tbemd/share/man/man4/mac_ifoff.4 user/imp/tbemd/share/man/man4/mac_lomac.4 user/imp/tbemd/share/man/man4/mac_mls.4 user/imp/tbemd/share/man/man4/mac_none.4 user/imp/tbemd/share/man/man4/mac_partition.4 user/imp/tbemd/share/man/man4/mac_seeotheruids.4 user/imp/tbemd/share/man/man4/mac_stub.4 user/imp/tbemd/share/man/man4/mac_test.4 user/imp/tbemd/share/man/man4/ng_netflow.4 user/imp/tbemd/share/man/man4/orm.4 user/imp/tbemd/share/man/man4/ral.4 user/imp/tbemd/share/man/man4/rp.4 user/imp/tbemd/share/man/man4/rum.4 user/imp/tbemd/share/man/man4/run.4 user/imp/tbemd/share/man/man4/sched_4bsd.4 user/imp/tbemd/share/man/man4/sched_ule.4 user/imp/tbemd/share/man/man4/si.4 user/imp/tbemd/share/man/man4/tap.4 user/imp/tbemd/share/man/man4/uhso.4 user/imp/tbemd/share/man/man4/upgt.4 user/imp/tbemd/share/man/man4/ural.4 user/imp/tbemd/share/man/man4/vkbd.4 user/imp/tbemd/share/man/man4/wpi.4 user/imp/tbemd/share/man/man5/ar.5 user/imp/tbemd/share/man/man7/clocks.7 user/imp/tbemd/share/man/man7/maclabel.7 user/imp/tbemd/share/man/man8/picobsd.8 user/imp/tbemd/share/man/man8/rescue.8 user/imp/tbemd/share/man/man9/CTASSERT.9 user/imp/tbemd/share/man/man9/DELAY.9 user/imp/tbemd/share/man/man9/KASSERT.9 user/imp/tbemd/share/man/man9/VFS.9 user/imp/tbemd/share/man/man9/VFS_CHECKEXP.9 user/imp/tbemd/share/man/man9/VFS_FHTOVP.9 user/imp/tbemd/share/man/man9/VFS_MOUNT.9 user/imp/tbemd/share/man/man9/VFS_QUOTACTL.9 user/imp/tbemd/share/man/man9/VFS_ROOT.9 user/imp/tbemd/share/man/man9/VFS_STATFS.9 user/imp/tbemd/share/man/man9/VFS_SYNC.9 user/imp/tbemd/share/man/man9/VFS_UNMOUNT.9 user/imp/tbemd/share/man/man9/VFS_VGET.9 user/imp/tbemd/share/man/man9/VOP_ACCESS.9 user/imp/tbemd/share/man/man9/VOP_ACLCHECK.9 user/imp/tbemd/share/man/man9/VOP_ADVLOCK.9 user/imp/tbemd/share/man/man9/VOP_ATTRIB.9 user/imp/tbemd/share/man/man9/VOP_BWRITE.9 user/imp/tbemd/share/man/man9/VOP_CREATE.9 user/imp/tbemd/share/man/man9/VOP_FSYNC.9 user/imp/tbemd/share/man/man9/VOP_GETACL.9 user/imp/tbemd/share/man/man9/VOP_GETEXTATTR.9 user/imp/tbemd/share/man/man9/VOP_GETPAGES.9 user/imp/tbemd/share/man/man9/VOP_GETVOBJECT.9 user/imp/tbemd/share/man/man9/VOP_INACTIVE.9 user/imp/tbemd/share/man/man9/VOP_IOCTL.9 user/imp/tbemd/share/man/man9/VOP_LINK.9 user/imp/tbemd/share/man/man9/VOP_LISTEXTATTR.9 user/imp/tbemd/share/man/man9/VOP_LOCK.9 user/imp/tbemd/share/man/man9/VOP_LOOKUP.9 user/imp/tbemd/share/man/man9/VOP_OPENCLOSE.9 user/imp/tbemd/share/man/man9/VOP_PATHCONF.9 user/imp/tbemd/share/man/man9/VOP_PRINT.9 user/imp/tbemd/share/man/man9/VOP_RDWR.9 user/imp/tbemd/share/man/man9/VOP_READDIR.9 user/imp/tbemd/share/man/man9/VOP_READLINK.9 user/imp/tbemd/share/man/man9/VOP_REALLOCBLKS.9 user/imp/tbemd/share/man/man9/VOP_REMOVE.9 user/imp/tbemd/share/man/man9/VOP_RENAME.9 user/imp/tbemd/share/man/man9/VOP_REVOKE.9 user/imp/tbemd/share/man/man9/VOP_SETACL.9 user/imp/tbemd/share/man/man9/VOP_SETEXTATTR.9 user/imp/tbemd/share/man/man9/VOP_STRATEGY.9 user/imp/tbemd/share/man/man9/VOP_VPTOCNP.9 user/imp/tbemd/share/man/man9/VOP_VPTOFH.9 user/imp/tbemd/share/man/man9/accept_filter.9 user/imp/tbemd/share/man/man9/accf_data.9 user/imp/tbemd/share/man/man9/accf_dns.9 user/imp/tbemd/share/man/man9/accf_http.9 user/imp/tbemd/share/man/man9/acl.9 user/imp/tbemd/share/man/man9/atomic.9 user/imp/tbemd/share/man/man9/cr_cansee.9 user/imp/tbemd/share/man/man9/cr_seeothergids.9 user/imp/tbemd/share/man/man9/cr_seeotheruids.9 user/imp/tbemd/share/man/man9/devfs_set_cdevpriv.9 user/imp/tbemd/share/man/man9/devtoname.9 user/imp/tbemd/share/man/man9/extattr.9 user/imp/tbemd/share/man/man9/firmware.9 user/imp/tbemd/share/man/man9/hexdump.9 user/imp/tbemd/share/man/man9/ifnet.9 user/imp/tbemd/share/man/man9/make_dev.9 user/imp/tbemd/share/man/man9/namei.9 user/imp/tbemd/share/man/man9/p_candebug.9 user/imp/tbemd/share/man/man9/p_cansee.9 user/imp/tbemd/share/man/man9/pfind.9 user/imp/tbemd/share/man/man9/pgfind.9 user/imp/tbemd/share/man/man9/prison_check.9 user/imp/tbemd/share/man/man9/random.9 user/imp/tbemd/share/man/man9/rijndael.9 user/imp/tbemd/share/man/man9/rtalloc.9 user/imp/tbemd/share/man/man9/rtentry.9 user/imp/tbemd/share/man/man9/sleep.9 user/imp/tbemd/share/man/man9/spl.9 user/imp/tbemd/share/man/man9/uio.9 user/imp/tbemd/share/man/man9/usbdi.9 user/imp/tbemd/share/man/man9/vaccess.9 user/imp/tbemd/share/man/man9/vaccess_acl_nfs4.9 user/imp/tbemd/share/man/man9/vaccess_acl_posix1e.9 user/imp/tbemd/share/man/man9/vcount.9 user/imp/tbemd/share/man/man9/vget.9 user/imp/tbemd/share/man/man9/vm_map_entry_resize_free.9 user/imp/tbemd/share/man/man9/vnode.9 user/imp/tbemd/share/man/man9/vput.9 user/imp/tbemd/share/man/man9/vref.9 user/imp/tbemd/share/man/man9/vrefcnt.9 user/imp/tbemd/share/man/man9/vrele.9 user/imp/tbemd/sys/amd64/amd64/exception.S user/imp/tbemd/sys/dev/e1000/if_lem.c user/imp/tbemd/sys/net80211/ieee80211_freebsd.h user/imp/tbemd/sys/net80211/ieee80211_scan_sta.c user/imp/tbemd/usr.bin/ar/ar.1 user/imp/tbemd/usr.bin/c89/c89.1 user/imp/tbemd/usr.bin/c99/c99.1 user/imp/tbemd/usr.bin/column/column.1 user/imp/tbemd/usr.bin/comm/comm.1 user/imp/tbemd/usr.bin/csup/cpasswd.1 (contents, props changed) user/imp/tbemd/usr.bin/csup/csup.1 user/imp/tbemd/usr.bin/enigma/enigma.1 user/imp/tbemd/usr.bin/hexdump/od.1 user/imp/tbemd/usr.bin/killall/killall.1 user/imp/tbemd/usr.bin/lockf/lockf.1 user/imp/tbemd/usr.bin/wtmpcvt/wtmpcvt.1 user/imp/tbemd/usr.sbin/asf/asf.8 user/imp/tbemd/usr.sbin/burncd/burncd.8 user/imp/tbemd/usr.sbin/ctm/ctm/ctm.1 user/imp/tbemd/usr.sbin/ctm/ctm/ctm.5 user/imp/tbemd/usr.sbin/devinfo/devinfo.8 user/imp/tbemd/usr.sbin/fdformat/fdformat.1 user/imp/tbemd/usr.sbin/fdread/fdread.1 user/imp/tbemd/usr.sbin/fdwrite/fdwrite.1 user/imp/tbemd/usr.sbin/fifolog/fifolog_create/fifolog.1 user/imp/tbemd/usr.sbin/flowctl/flowctl.8 user/imp/tbemd/usr.sbin/mtest/mtest.8 user/imp/tbemd/usr.sbin/periodic/periodic.8 user/imp/tbemd/usr.sbin/pmcannotate/pmcannotate.8 user/imp/tbemd/usr.sbin/pmccontrol/pmccontrol.8 user/imp/tbemd/usr.sbin/pmcstat/pmcstat.8 user/imp/tbemd/usr.sbin/pppctl/pppctl.8 user/imp/tbemd/usr.sbin/setfmac/setfsmac.8 user/imp/tbemd/usr.sbin/setpmac/setpmac.8 user/imp/tbemd/usr.sbin/uhsoctl/uhsoctl.1 Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) Modified: user/imp/tbemd/Makefile.inc1 ============================================================================== --- user/imp/tbemd/Makefile.inc1 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/Makefile.inc1 Wed Apr 14 20:48:13 2010 (r206626) @@ -15,7 +15,7 @@ # -DNO_CTF do not run the DTrace CTF conversion tools on built objects # LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list # TARGET="machine" to crossbuild world for a different machine type -# TARGET_ARCH= may be required when a TARGET supports multiple endians. +# TARGET_ARCH= may be required when a TARGET supports multiple endians # # The intended user-driven targets are: Modified: user/imp/tbemd/bin/pwait/pwait.1 ============================================================================== --- user/imp/tbemd/bin/pwait/pwait.1 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/bin/pwait/pwait.1 Wed Apr 14 20:48:13 2010 (r206626) @@ -33,8 +33,8 @@ .\" $FreeBSD$ .\" .Dd November 1, 2009 -.Os .Dt PWAIT 1 +.Os .Sh NAME .Nm pwait .Nd wait for processes to terminate Modified: user/imp/tbemd/contrib/com_err/compile_et.1 ============================================================================== --- user/imp/tbemd/contrib/com_err/compile_et.1 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/contrib/com_err/compile_et.1 Wed Apr 14 20:48:13 2010 (r206626) @@ -4,8 +4,8 @@ .\" $FreeBSD$ .\" .Dd November 22, 1988 -.Os .Dt COMPILE_ET 1 +.Os .Sh NAME .Nm compile_et .Nd error table compiler Modified: user/imp/tbemd/gnu/usr.bin/gdb/gdbserver/Makefile ============================================================================== --- user/imp/tbemd/gnu/usr.bin/gdb/gdbserver/Makefile Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/gnu/usr.bin/gdb/gdbserver/Makefile Wed Apr 14 20:48:13 2010 (r206626) @@ -15,12 +15,10 @@ SRCS= inferiors.c mem-break.c regcache.c SRCS+= fbsd-low.c SRCS+= fbsd-${MACHINE_CPUARCH}-low.c reg-${MACHINE_CPUARCH}.c - .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" SRCS+= i387-fp.c .endif - -#CFLAGS+= -I${.CURDIR}/../arch/${MACHINE_CPUARCH} +#CFLAGS+= -I${.CURDIR}/../arch/${MACHINE_ARCH} CFLAGS+= -I${GDBDIR}/gdb/gdbserver CFLAGS+= -I${GDBDIR}/gdb/regformats CFLAGS+= -DNO_MMALLOC -DGDBSERVER Copied: user/imp/tbemd/gnu/usr.bin/gdb/gdbserver/reg-amd64.c (from r206624, head/gnu/usr.bin/gdb/gdbserver/reg-amd64.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/gnu/usr.bin/gdb/gdbserver/reg-amd64.c Wed Apr 14 20:48:13 2010 (r206626, copy of r206624, head/gnu/usr.bin/gdb/gdbserver/reg-amd64.c) @@ -0,0 +1,99 @@ +/* *INDENT-OFF* */ /* THIS FILE IS GENERATED */ + +/* A register protocol for GDB, the GNU debugger. + Copyright 2001, 2002 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* This file was created with the aid of ``regdat.sh'' and ``../../../../contrib/gdb/gdb/regformats/reg-x86-64.dat''. */ + +#include +__FBSDID("$FreeBSD$"); + +#include "regdef.h" +#include "regcache.h" + +struct reg regs_x86_64[] = { + { "rax", 0, 64 }, + { "rbx", 64, 64 }, + { "rcx", 128, 64 }, + { "rdx", 192, 64 }, + { "rsi", 256, 64 }, + { "rdi", 320, 64 }, + { "rbp", 384, 64 }, + { "rsp", 448, 64 }, + { "r8", 512, 64 }, + { "r9", 576, 64 }, + { "r10", 640, 64 }, + { "r11", 704, 64 }, + { "r12", 768, 64 }, + { "r13", 832, 64 }, + { "r14", 896, 64 }, + { "r15", 960, 64 }, + { "rip", 1024, 64 }, + { "eflags", 1088, 32 }, + { "cs", 1120, 32 }, + { "ss", 1152, 32 }, + { "ds", 1184, 32 }, + { "es", 1216, 32 }, + { "fs", 1248, 32 }, + { "gs", 1280, 32 }, + { "st0", 1312, 80 }, + { "st1", 1392, 80 }, + { "st2", 1472, 80 }, + { "st3", 1552, 80 }, + { "st4", 1632, 80 }, + { "st5", 1712, 80 }, + { "st6", 1792, 80 }, + { "st7", 1872, 80 }, + { "fctrl", 1952, 32 }, + { "fstat", 1984, 32 }, + { "ftag", 2016, 32 }, + { "fiseg", 2048, 32 }, + { "fioff", 2080, 32 }, + { "foseg", 2112, 32 }, + { "fooff", 2144, 32 }, + { "fop", 2176, 32 }, + { "xmm0", 2208, 128 }, + { "xmm1", 2336, 128 }, + { "xmm2", 2464, 128 }, + { "xmm3", 2592, 128 }, + { "xmm4", 2720, 128 }, + { "xmm5", 2848, 128 }, + { "xmm6", 2976, 128 }, + { "xmm7", 3104, 128 }, + { "xmm8", 3232, 128 }, + { "xmm9", 3360, 128 }, + { "xmm10", 3488, 128 }, + { "xmm11", 3616, 128 }, + { "xmm12", 3744, 128 }, + { "xmm13", 3872, 128 }, + { "xmm14", 4000, 128 }, + { "xmm15", 4128, 128 }, + { "mxcsr", 4256, 32 }, +}; + +const char *expedite_regs_x86_64[] = { "rbp", "rsp", "rip", 0 }; + +void +init_registers () +{ + set_register_cache (regs_x86_64, + sizeof (regs_x86_64) / sizeof (regs_x86_64[0])); + gdbserver_expedite_regs = expedite_regs_x86_64; +} Modified: user/imp/tbemd/gnu/usr.bin/gdb/kgdb/kgdb.1 ============================================================================== --- user/imp/tbemd/gnu/usr.bin/gdb/kgdb/kgdb.1 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/gnu/usr.bin/gdb/kgdb/kgdb.1 Wed Apr 14 20:48:13 2010 (r206626) @@ -25,8 +25,8 @@ .\" $FreeBSD$ .\" .Dd October 11, 2006 -.Os .Dt KGDB 1 +.Os .Sh NAME .Nm kgdb .Nd "kernel debugger" Modified: user/imp/tbemd/lib/libc/gen/check_utility_compat.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/check_utility_compat.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/check_utility_compat.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -29,8 +29,8 @@ .\" $FreeBSD$ .\" .Dd October 27, 2002 -.Os .Dt CHECK_UTILITY_COMPAT 3 +.Os .Sh NAME .Nm check_utility_compat .Nd "determine whether a utility should be compatible" Modified: user/imp/tbemd/lib/libc/gen/confstr.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/confstr.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/confstr.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -79,7 +79,6 @@ The copied value is always null terminat The available values are as follows: .Pp .Bl -tag -width 6n -.Pp .It Li _CS_PATH Return a value for the .Ev PATH Modified: user/imp/tbemd/lib/libc/gen/dladdr.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/dladdr.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/dladdr.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -26,8 +26,8 @@ .\" $FreeBSD$ .\" .Dd February 5, 1998 -.Os .Dt DLADDR 3 +.Os .Sh NAME .Nm dladdr .Nd find the shared object containing a given address Modified: user/imp/tbemd/lib/libc/gen/dlinfo.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/dlinfo.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/dlinfo.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -26,8 +26,8 @@ .\" $FreeBSD$ .\" .Dd February 14, 2003 -.Os .Dt DLINFO 3 +.Os .Sh NAME .Nm dlinfo .Nd information about dynamically loaded object Modified: user/imp/tbemd/lib/libc/gen/dllockinit.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/dllockinit.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/dllockinit.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -26,8 +26,8 @@ .\" $FreeBSD$ .\" .Dd July 5, 2000 -.Os .Dt DLLOCKINIT 3 +.Os .Sh NAME .Nm dllockinit .Nd register thread locking methods with the dynamic linker Modified: user/imp/tbemd/lib/libc/gen/dlopen.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/dlopen.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/dlopen.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -33,8 +33,8 @@ .\" $FreeBSD$ .\" .Dd July 7, 2009 -.Os .Dt DLOPEN 3 +.Os .Sh NAME .Nm dlopen , .Nm dlsym , Modified: user/imp/tbemd/lib/libc/gen/fmtcheck.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/fmtcheck.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/fmtcheck.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -26,8 +26,8 @@ .\" .\" $FreeBSD$ .Dd October 16, 2002 -.Os .Dt FMTCHECK 3 +.Os .Sh NAME .Nm fmtcheck .Nd sanitizes user-supplied Modified: user/imp/tbemd/lib/libc/gen/frexp.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/frexp.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/frexp.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -70,7 +70,7 @@ such that is a .Vt double with magnitude in the interval -.Bo 1/2 , 1 Pc +.Eo [ 1/2 , 1 Ec ) or zero, and .Fa value equals Modified: user/imp/tbemd/lib/libc/gen/ftok.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/ftok.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/ftok.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -25,8 +25,8 @@ .\" .\" $FreeBSD$ .Dd July 9, 2009 -.Os .Dt FTOK 3 +.Os .Sh NAME .Nm ftok .Nd create IPC identifier from path name Modified: user/imp/tbemd/lib/libc/gen/getutxent.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/getutxent.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/getutxent.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -25,8 +25,8 @@ .\" $FreeBSD$ .\" .Dd January 8, 2010 -.Os .Dt GETUTXENT 3 +.Os .Sh NAME .Nm endutxent , .Nm getutxent , Modified: user/imp/tbemd/lib/libc/gen/setproctitle.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/setproctitle.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/setproctitle.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -21,8 +21,8 @@ .\" .\" The following requests are required for all man pages. .Dd December 16, 1995 -.Os .Dt SETPROCTITLE 3 +.Os .Sh NAME .Nm setproctitle .Nd set process title Modified: user/imp/tbemd/lib/libc/gen/stringlist.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/stringlist.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/stringlist.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -29,8 +29,8 @@ .\" $FreeBSD$ .\" .Dd November 28, 1999 -.Os .Dt STRINGLIST 3 +.Os .Sh NAME .Nm stringlist , .Nm sl_init , Modified: user/imp/tbemd/lib/libc/gen/sysconf.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/sysconf.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/sysconf.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -60,9 +60,7 @@ Shell programmers who need access to the utility. .Pp The available values are as follows: -.Pp .Bl -tag -width 6n -.Pp .It Li _SC_ARG_MAX The maximum bytes of argument to .Xr execve 2 . @@ -165,9 +163,7 @@ otherwise \-1. .El .Pp These values also exist, but may not be standard: -.Pp .Bl -tag -width 6n -.Pp .It Li _SC_PHYS_PAGES The number of pages of physical memory. Note that it is possible that the product of this value and the value of Modified: user/imp/tbemd/lib/libc/gen/sysctl.3 ============================================================================== --- user/imp/tbemd/lib/libc/gen/sysctl.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/gen/sysctl.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -286,7 +286,6 @@ privilege may change the value. .It "HW_MACHINE_ARCH string no" .It "HW_REALMEM integer no" .El -.Pp .Bl -tag -width 6n .It Li HW_MACHINE The machine class. @@ -352,7 +351,6 @@ information. .It "KERN_VERSION string no" .It "KERN_VNODE struct vnode no" .El -.Pp .Bl -tag -width 6n .It Li KERN_ARGMAX The maximum bytes of argument to @@ -543,7 +541,6 @@ privilege may change the value. .It "PF_INET IPv4 values yes" .It "PF_INET6 IPv6 values yes" .El -.Pp .Bl -tag -width 6n .It Li PF_ROUTE Return the entire routing table or a subset of it. @@ -650,7 +647,6 @@ privilege may change the value. .It "USER_TZNAME_MAX integer no" .El .Bl -tag -width 6n -.Pp .It Li USER_BC_BASE_MAX The maximum ibase/obase values in the .Xr bc 1 @@ -740,7 +736,6 @@ privilege may change the value. .It "VM_V_INACTIVE_TARGET integer yes" .It "VM_V_PAGEOUT_FREE_MIN integer yes" .El -.Pp .Bl -tag -width 6n .It Li VM_LOADAVG Return the load average history. Modified: user/imp/tbemd/lib/libc/locale/isalnum.3 ============================================================================== --- user/imp/tbemd/lib/libc/locale/isalnum.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/locale/isalnum.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -59,7 +59,6 @@ or the value of .Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): -.Pp .Bl -column \&000_``0''__ \&000_``0''__ \&000_``0''__ \&000_``0''__ \&000_``0''__ .It "\&060\ ``0'' \t061\ ``1'' \t062\ ``2'' \t063\ ``3'' \t064\ ``4''" .It "\&065\ ``5'' \t066\ ``6'' \t067\ ``7'' \t070\ ``8'' \t071\ ``9''" Modified: user/imp/tbemd/lib/libc/locale/isalpha.3 ============================================================================== --- user/imp/tbemd/lib/libc/locale/isalpha.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/locale/isalpha.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -59,7 +59,6 @@ or the value of .Pp In the ASCII character set, this includes the following characters (with their numeric values shown in octal): -.Pp .Bl -column \&000_``0''__ \&000_``0''__ \&000_``0''__ \&000_``0''__ \&000_``0''__ .It "\&101\ ``A'' \t102\ ``B'' \t103\ ``C'' \t104\ ``D'' \t105\ ``E''" .It "\&106\ ``F'' \t107\ ``G'' \t110\ ``H'' \t111\ ``I'' \t112\ ``J''" Modified: user/imp/tbemd/lib/libc/posix1e/mac_prepare.3 ============================================================================== --- user/imp/tbemd/lib/libc/posix1e/mac_prepare.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/posix1e/mac_prepare.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -31,8 +31,8 @@ .\" $FreeBSD$ .\" .Dd August 22, 2003 -.Os .Dt MAC_PREPARE 3 +.Os .Sh NAME .Nm mac_prepare , mac_prepare_type , mac_prepare_file_label , .Nm mac_prepare_ifnet_label , mac_prepare_process_label Modified: user/imp/tbemd/lib/libc/stdlib/hcreate.3 ============================================================================== --- user/imp/tbemd/lib/libc/stdlib/hcreate.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/stdlib/hcreate.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -29,8 +29,8 @@ .\" $FreeBSD$ .\" .Dd July 6, 2008 -.Os .Dt HCREATE 3 +.Os .Sh NAME .Nm hcreate , hdestroy , hsearch .Nd manage hash search table Modified: user/imp/tbemd/lib/libc/stdlib/ptsname.3 ============================================================================== --- user/imp/tbemd/lib/libc/stdlib/ptsname.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libc/stdlib/ptsname.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -32,8 +32,8 @@ .\" $FreeBSD$ .\" .Dd August 20, 2008 -.Os .Dt PTSNAME 3 +.Os .Sh NAME .Nm grantpt , .Nm ptsname , Modified: user/imp/tbemd/lib/libcam/cam.3 ============================================================================== --- user/imp/tbemd/lib/libcam/cam.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libcam/cam.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -28,8 +28,8 @@ .\" $FreeBSD$ .\" .Dd October 10, 1998 -.Os .Dt CAM 3 +.Os .Sh NAME .Nm cam_open_device , .Nm cam_open_spec_device , Modified: user/imp/tbemd/lib/libcam/cam_cdbparse.3 ============================================================================== --- user/imp/tbemd/lib/libcam/cam_cdbparse.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libcam/cam_cdbparse.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -62,8 +62,8 @@ .\" .\" .Dd October 13, 1998 -.Os .Dt CAM_CDBPARSE 3 +.Os .Sh NAME .Nm csio_build , .Nm csio_build_visit , Modified: user/imp/tbemd/lib/libcompat/4.1/cftime.3 ============================================================================== --- user/imp/tbemd/lib/libcompat/4.1/cftime.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libcompat/4.1/cftime.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -35,8 +35,8 @@ .\" $FreeBSD$ .\" .Dd June 15, 1993 -.Os .Dt CFTIME 3 +.Os .Sh NAME .Nm cftime , .Nm ascftime Modified: user/imp/tbemd/lib/libcompat/4.4/cuserid.3 ============================================================================== --- user/imp/tbemd/lib/libcompat/4.4/cuserid.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libcompat/4.4/cuserid.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -32,8 +32,8 @@ .\" $FreeBSD$ .\" .Dd April 10, 1995 -.Os .Dt CUSERID 3 +.Os .Sh NAME .Nm cuserid .Nd get user name associated with effective UID Modified: user/imp/tbemd/lib/libedit/editline.3 ============================================================================== --- user/imp/tbemd/lib/libedit/editline.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libedit/editline.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -29,8 +29,8 @@ .\" $FreeBSD$ .\" .Dd January 12, 2007 -.Os .Dt EDITLINE 3 +.Os .Sh NAME .Nm editline , .Nm el_init , Modified: user/imp/tbemd/lib/libedit/editrc.5 ============================================================================== --- user/imp/tbemd/lib/libedit/editrc.5 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libedit/editrc.5 Wed Apr 14 20:48:13 2010 (r206626) @@ -29,8 +29,8 @@ .\" $FreeBSD$ .\" .Dd October 18, 2003 -.Os .Dt EDITRC 5 +.Os .Sh NAME .Nm editrc .Nd configuration file for editline library Modified: user/imp/tbemd/lib/libelf/elf.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd October 21, 2007 -.Os .Dt ELF 3 +.Os .Sh NAME .Nm elf .Nd API for manipulating ELF objects Modified: user/imp/tbemd/lib/libelf/elf_begin.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_begin.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_begin.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 21, 2006 -.Os .Dt ELF_BEGIN 3 +.Os .Sh NAME .Nm elf_begin .Nd open an ELF file or ar(1) archive Modified: user/imp/tbemd/lib/libelf/elf_cntl.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_cntl.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_cntl.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 9, 2006 -.Os .Dt ELF_CNTL 3 +.Os .Sh NAME .Nm elf_cntl .Nd control an elf file descriptor Modified: user/imp/tbemd/lib/libelf/elf_end.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_end.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_end.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 29, 2006 -.Os .Dt ELF_END 3 +.Os .Sh NAME .Nm elf_end .Nd release an ELF descriptor Modified: user/imp/tbemd/lib/libelf/elf_errmsg.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_errmsg.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_errmsg.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 11, 2006 -.Os .Dt ELF_ERRMSG 3 +.Os .Sh NAME .Nm elf_errmsg , .Nm elf_errno Modified: user/imp/tbemd/lib/libelf/elf_fill.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_fill.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_fill.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 11, 2006 -.Os .Dt ELF_FILL 3 +.Os .Sh NAME .Nm elf_fill .Nd set fill byte for inter-section padding Modified: user/imp/tbemd/lib/libelf/elf_flagdata.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_flagdata.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_flagdata.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd October 22, 2007 -.Os .Dt ELF_FLAGDATA 3 +.Os .Sh NAME .Nm elf_flagdata , .Nm elf_flagehdr , Modified: user/imp/tbemd/lib/libelf/elf_getarhdr.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_getarhdr.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_getarhdr.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 15, 2006 -.Os .Dt ELF_GETARHDR 3 +.Os .Sh NAME .Nm elf_getarhdr .Nd retrieve ar(1) header for an archive member Modified: user/imp/tbemd/lib/libelf/elf_getarsym.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_getarsym.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_getarsym.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 15, 2006 -.Os .Dt ELF_GETARSYM 3 +.Os .Sh NAME .Nm elf_getarsym .Nd retrieve the symbol table of an archive Modified: user/imp/tbemd/lib/libelf/elf_getbase.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_getbase.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_getbase.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 11, 2006 -.Os .Dt ELF_GETBASE 3 +.Os .Sh NAME .Nm elf_getbase .Nd get the base offset for an object file Modified: user/imp/tbemd/lib/libelf/elf_getdata.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_getdata.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_getdata.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 26, 2006 -.Os .Dt ELF_GETDATA 3 +.Os .Sh NAME .Nm elf_getdata , .Nm elf_newdata , Modified: user/imp/tbemd/lib/libelf/elf_getident.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_getident.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_getident.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd July 3, 2006 -.Os .Dt ELF_GETIDENT 3 +.Os .Sh NAME .Nm elf_getident .Nd return the initial bytes of a file Modified: user/imp/tbemd/lib/libelf/elf_getphnum.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_getphnum.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_getphnum.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd December 16, 2006 -.Os .Dt ELF_GETPHNUM 3 +.Os .Sh NAME .Nm elf_getphnum .Nd return the number of program headers in an ELF file Modified: user/imp/tbemd/lib/libelf/elf_getscn.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_getscn.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_getscn.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd October 22, 2007 -.Os .Dt ELF_GETSCN 3 +.Os .Sh NAME .Nm elf_getscn , .Nm elf_ndxscn , Modified: user/imp/tbemd/lib/libelf/elf_getshnum.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_getshnum.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_getshnum.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd October 31, 2006 -.Os .Dt ELF_GETSHNUM 3 +.Os .Sh NAME .Nm elf_getshnum .Nd return the number of sections in an ELF file Modified: user/imp/tbemd/lib/libelf/elf_getshstrndx.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_getshstrndx.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_getshstrndx.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd October 31, 2006 -.Os .Dt ELF_GETSHSTRNDX 3 +.Os .Sh NAME .Nm elf_getshstrndx , .Nm elf_setshstrndx Modified: user/imp/tbemd/lib/libelf/elf_hash.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_hash.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_hash.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 15, 2006 -.Os .Dt ELF_HASH 3 +.Os .Sh NAME .Nm elf_hash .Nd compute a hash value for a string Modified: user/imp/tbemd/lib/libelf/elf_kind.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_kind.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_kind.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 1, 2006 -.Os .Dt ELF_KIND 3 +.Os .Sh NAME .Nm elf_kind .Nd determine ELF file type Modified: user/imp/tbemd/lib/libelf/elf_memory.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_memory.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_memory.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 28, 2006 -.Os .Dt ELF_MEMORY 3 +.Os .Sh NAME .Nm elf_memory .Nd process an ELF or ar(1) archive mapped into memory Modified: user/imp/tbemd/lib/libelf/elf_next.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_next.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_next.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 17, 2006 -.Os .Dt ELF_NEXT 3 +.Os .Sh NAME .Nm elf_next .Nd provide sequential access to the next archive member Modified: user/imp/tbemd/lib/libelf/elf_rand.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_rand.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_rand.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 17, 2006 -.Os .Dt ELF_RAND 3 +.Os .Sh NAME .Nm elf_rand .Nd provide sequential access to the next archive member Modified: user/imp/tbemd/lib/libelf/elf_rawfile.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_rawfile.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_rawfile.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd July 3, 2006 -.Os .Dt ELF_RAWFILE 3 +.Os .Sh NAME .Nm elf_rawfile .Nd return uninterpreted contents of an ELF file Modified: user/imp/tbemd/lib/libelf/elf_strptr.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_strptr.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_strptr.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd December 16, 2006 -.Os .Dt ELF_STRPTR 3 +.Os .Sh NAME .Nm elf_strptr .Nd retrieve a string pointer in a string table Modified: user/imp/tbemd/lib/libelf/elf_update.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_update.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_update.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd March 19, 2008 -.Os .Dt ELF_UPDATE 3 +.Os .Sh NAME .Nm elf_update .Nd update an ELF descriptor Modified: user/imp/tbemd/lib/libelf/elf_version.3 ============================================================================== --- user/imp/tbemd/lib/libelf/elf_version.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/elf_version.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd June 1, 2006 -.Os .Dt ELF_VERSION 3 +.Os .Sh NAME .Nm elf_version .Nd retrieve or set ELF library operating version Modified: user/imp/tbemd/lib/libelf/gelf.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd September 1, 2006 -.Os .Dt GELF 3 +.Os .Sh NAME .Nm GElf .Nd class-independent API for ELF manipulation Modified: user/imp/tbemd/lib/libelf/gelf_checksum.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_checksum.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_checksum.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 29, 2006 -.Os .Dt GELF_CHECKSUM 3 +.Os .Sh NAME .Nm elf32_checksum , .Nm elf64_checksum , Modified: user/imp/tbemd/lib/libelf/gelf_fsize.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_fsize.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_fsize.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd February 5, 2008 -.Os .Dt GELF_FSIZE 3 +.Os .Sh NAME .Nm gelf_fsize , .Nm elf32_fsize , Modified: user/imp/tbemd/lib/libelf/gelf_getcap.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getcap.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getcap.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 29, 2006 -.Os .Dt GELF_GETCAP 3 +.Os .Sh NAME .Nm gelf_getcap , .Nm gelf_update_cap Modified: user/imp/tbemd/lib/libelf/gelf_getclass.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getclass.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getclass.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd July 3, 2006 -.Os .Dt GELF_GETCLASS 3 +.Os .Sh NAME .Nm gelf_getclass .Nd retrieve the class of an ELF descriptor Modified: user/imp/tbemd/lib/libelf/gelf_getdyn.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getdyn.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getdyn.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 29, 2006 -.Os .Dt GELF_GETDYN 3 +.Os .Sh NAME .Nm gelf_getdyn , .Nm gelf_update_dyn Modified: user/imp/tbemd/lib/libelf/gelf_getehdr.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getehdr.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getehdr.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd December 16, 2006 -.Os .Dt GELF_GETEHDR 3 +.Os .Sh NAME .Nm elf32_getehdr , .Nm elf64_getehdr , Modified: user/imp/tbemd/lib/libelf/gelf_getmove.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getmove.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getmove.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 29, 2006 -.Os .Dt GELF_GETMOVE 3 +.Os .Sh NAME .Nm gelf_getmove , .Nm gelf_update_move Modified: user/imp/tbemd/lib/libelf/gelf_getphdr.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getphdr.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getphdr.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd October 21, 2007 -.Os .Dt GELF_GETPHDR 3 +.Os .Sh NAME .Nm elf32_getphdr , .Nm elf64_getphdr , Modified: user/imp/tbemd/lib/libelf/gelf_getrel.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getrel.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getrel.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 29, 2006 -.Os .Dt GELF_GETREL 3 +.Os .Sh NAME .Nm gelf_getrel , .Nm gelf_update_rel Modified: user/imp/tbemd/lib/libelf/gelf_getrela.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getrela.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getrela.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 29, 2006 -.Os .Dt GELF_GETRELA 3 +.Os .Sh NAME .Nm gelf_getrela , .Nm gelf_update_rela Modified: user/imp/tbemd/lib/libelf/gelf_getshdr.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getshdr.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getshdr.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 27, 2006 -.Os .Dt GELF_GETSHDR 3 +.Os .Sh NAME .Nm elf32_getshdr , .Nm elf64_getshdr , Modified: user/imp/tbemd/lib/libelf/gelf_getsym.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getsym.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getsym.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 29, 2006 -.Os .Dt GELF_GETSYM 3 +.Os .Sh NAME .Nm gelf_getsym , .Nm gelf_update_sym Modified: user/imp/tbemd/lib/libelf/gelf_getsyminfo.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getsyminfo.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getsyminfo.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd August 29, 2006 -.Os .Dt GELF_GETSYMINFO 3 +.Os .Sh NAME .Nm gelf_getsyminfo , .Nm gelf_update_syminfo Modified: user/imp/tbemd/lib/libelf/gelf_getsymshndx.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_getsymshndx.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_getsymshndx.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd November 5, 2006 -.Os .Dt GELF_GETSYMSHNDX 3 +.Os .Sh NAME .Nm gelf_getsymshndx , .Nm gelf_update_symshndx Modified: user/imp/tbemd/lib/libelf/gelf_newehdr.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_newehdr.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_newehdr.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd October 22, 2007 -.Os .Dt GELF_NEWEHDR 3 +.Os .Sh NAME .Nm elf32_newehdr , .Nm elf64_newehdr , Modified: user/imp/tbemd/lib/libelf/gelf_newphdr.3 ============================================================================== --- user/imp/tbemd/lib/libelf/gelf_newphdr.3 Wed Apr 14 20:45:33 2010 (r206625) +++ user/imp/tbemd/lib/libelf/gelf_newphdr.3 Wed Apr 14 20:48:13 2010 (r206626) @@ -24,8 +24,8 @@ .\" $FreeBSD$ .\" .Dd October 22, 2007 -.Os .Dt GELF_NEWPHDR 3 +.Os .Sh NAME *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 20:59:38 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B6D8106566B; Wed, 14 Apr 2010 20:59:38 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 090FD8FC0A; Wed, 14 Apr 2010 20:59:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3EKxb9t085708; Wed, 14 Apr 2010 20:59:37 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3EKxbCu085700; Wed, 14 Apr 2010 20:59:37 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004142059.o3EKxbCu085700@svn.freebsd.org> From: Warner Losh Date: Wed, 14 Apr 2010 20:59:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206630 - in user/imp/tbemd/sys: amd64/conf boot/forth conf contrib/ipfilter/netinet dev/sge i386/conf modules modules/sge X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 20:59:38 -0000 Author: imp Date: Wed Apr 14 20:59:37 2010 New Revision: 206630 URL: http://svn.freebsd.org/changeset/base/206630 Log: svn merge svn+ssh://svn.freebsd.org/base/head@206627 Added: user/imp/tbemd/sys/dev/sge/ - copied from r206627, head/sys/dev/sge/ user/imp/tbemd/sys/modules/sge/ - copied from r206627, head/sys/modules/sge/ Modified: user/imp/tbemd/sys/amd64/conf/GENERIC user/imp/tbemd/sys/boot/forth/loader.conf user/imp/tbemd/sys/conf/NOTES user/imp/tbemd/sys/conf/files user/imp/tbemd/sys/contrib/ipfilter/netinet/ip_compat.h user/imp/tbemd/sys/i386/conf/GENERIC user/imp/tbemd/sys/modules/Makefile Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) Modified: user/imp/tbemd/sys/amd64/conf/GENERIC ============================================================================== --- user/imp/tbemd/sys/amd64/conf/GENERIC Wed Apr 14 20:55:33 2010 (r206629) +++ user/imp/tbemd/sys/amd64/conf/GENERIC Wed Apr 14 20:59:37 2010 (r206630) @@ -224,6 +224,7 @@ device pcn # AMD Am79C97x PCI 10/100 ( device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (``Starfire'') +device sge # Silicon Integrated Systems SiS190/191 device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) Modified: user/imp/tbemd/sys/boot/forth/loader.conf ============================================================================== --- user/imp/tbemd/sys/boot/forth/loader.conf Wed Apr 14 20:55:33 2010 (r206629) +++ user/imp/tbemd/sys/boot/forth/loader.conf Wed Apr 14 20:59:37 2010 (r206630) @@ -271,6 +271,7 @@ if_rl_load="NO" # RealTek 8129/8139 if_rue_load="NO" # RealTek RTL8150 USB to Fast Ethernet if_sbni_load="NO" # Granch SBNI12 leased line adapters if_sf_load="NO" # Adaptec Duralink PCI (AIC-6915 "starfire") +if_sge_load="NO" # Silicon Integrated Systems SiS190/191 if_sis_load="NO" # Silicon Integrated Systems SiS 900/7016 if_sk_load="NO" # SysKonnect SK-984x series PCI Gigabit Ethernet if_sn_load="NO" # SMC 91Cxx Modified: user/imp/tbemd/sys/conf/NOTES ============================================================================== --- user/imp/tbemd/sys/conf/NOTES Wed Apr 14 20:55:33 2010 (r206629) +++ user/imp/tbemd/sys/conf/NOTES Wed Apr 14 20:59:37 2010 (r206630) @@ -1952,6 +1952,7 @@ device xmphy # XaQti XMAC II # This includes dual and quad port cards, as well as one 100baseFX card. # Most of these are 64-bit PCI devices, except for one single port # card which is 32-bit. +# sge: Silicon Integrated Systems SiS190/191 Fast/Gigabit Ethernet adapter # sis: Support for NICs based on the Silicon Integrated Systems SiS 900, # SiS 7016 and NS DP83815 PCI fast ethernet controller chips. # sk: Support for the SysKonnect SK-984x series PCI gigabit ethernet NICs. @@ -2046,6 +2047,7 @@ device re # RealTek 8139C+/8169/8169S/ device rl # RealTek 8129/8139 device pcn # AMD Am79C97x PCI 10/100 NICs device sf # Adaptec AIC-6915 (``Starfire'') +device sge # Silicon Integrated Systems SiS190/191 device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) Modified: user/imp/tbemd/sys/conf/files ============================================================================== --- user/imp/tbemd/sys/conf/files Wed Apr 14 20:55:33 2010 (r206629) +++ user/imp/tbemd/sys/conf/files Wed Apr 14 20:59:37 2010 (r206630) @@ -1490,6 +1490,7 @@ dev/scd/scd.c optional scd isa dev/scd/scd_isa.c optional scd isa dev/sdhci/sdhci.c optional sdhci pci dev/sf/if_sf.c optional sf pci +dev/sge/if_sge.c optional sge pci dev/si/si.c optional si dev/si/si2_z280.c optional si dev/si/si3_t225.c optional si Modified: user/imp/tbemd/sys/contrib/ipfilter/netinet/ip_compat.h ============================================================================== --- user/imp/tbemd/sys/contrib/ipfilter/netinet/ip_compat.h Wed Apr 14 20:55:33 2010 (r206629) +++ user/imp/tbemd/sys/contrib/ipfilter/netinet/ip_compat.h Wed Apr 14 20:59:37 2010 (r206630) @@ -975,7 +975,6 @@ typedef u_int32_t u_32_t; # define SPL_NET(x) ; # define SPL_IMP(x) ; # define SPL_SCHED(x) ; -extern int in_cksum __P((struct mbuf *, int)); # else # define SPL_SCHED(x) x = splhigh() # endif /* __FreeBSD_version >= 500043 */ Modified: user/imp/tbemd/sys/i386/conf/GENERIC ============================================================================== --- user/imp/tbemd/sys/i386/conf/GENERIC Wed Apr 14 20:55:33 2010 (r206629) +++ user/imp/tbemd/sys/i386/conf/GENERIC Wed Apr 14 20:59:37 2010 (r206630) @@ -235,6 +235,7 @@ device pcn # AMD Am79C97x PCI 10/100 ( device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (``Starfire'') +device sge # Silicon Integrated Systems SiS190/191 device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) Modified: user/imp/tbemd/sys/modules/Makefile ============================================================================== --- user/imp/tbemd/sys/modules/Makefile Wed Apr 14 20:55:33 2010 (r206629) +++ user/imp/tbemd/sys/modules/Makefile Wed Apr 14 20:59:37 2010 (r206630) @@ -252,6 +252,7 @@ SUBDIR= ${_3dfx} \ sdhci \ sem \ sf \ + sge \ siba_bwn \ siis \ sis \ From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 21:46:23 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6CBEF106566C; Wed, 14 Apr 2010 21:46:23 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5700C8FC1E; Wed, 14 Apr 2010 21:46:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3ELkN5Z096310; Wed, 14 Apr 2010 21:46:23 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3ELkNIw096288; Wed, 14 Apr 2010 21:46:23 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004142146.o3ELkNIw096288@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 21:46:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206634 - in user/jmallett/octeon: . bin/ps bin/pwait bin/sh contrib/binutils/bfd contrib/com_err crypto/openssh etc etc/defaults etc/rc.d gnu/usr.bin/gdb gnu/usr.bin/gdb/gdbserver gnu/... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 21:46:23 -0000 Author: jmallett Date: Wed Apr 14 21:46:22 2010 New Revision: 206634 URL: http://svn.freebsd.org/changeset/base/206634 Log: Merge from head. Added: user/jmallett/octeon/etc/rc.d/ubthidhci - copied unchanged from r206631, head/etc/rc.d/ubthidhci user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/fbsd-powerpc-low.c - copied unchanged from r206631, head/gnu/usr.bin/gdb/gdbserver/fbsd-powerpc-low.c user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/reg-amd64.c - copied unchanged from r206631, head/gnu/usr.bin/gdb/gdbserver/reg-amd64.c user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/reg-powerpc.c - copied unchanged from r206631, head/gnu/usr.bin/gdb/gdbserver/reg-powerpc.c user/jmallett/octeon/sbin/geom/class/sched/ - copied from r206631, head/sbin/geom/class/sched/ user/jmallett/octeon/share/man/man4/sge.4 - copied unchanged from r206631, head/share/man/man4/sge.4 user/jmallett/octeon/sys/boot/i386/efi/ - copied from r206631, head/sys/boot/i386/efi/ user/jmallett/octeon/sys/contrib/dev/iwn/iwlwifi-6000-9.193.4.1.fw.uu - copied unchanged from r206631, head/sys/contrib/dev/iwn/iwlwifi-6000-9.193.4.1.fw.uu user/jmallett/octeon/sys/dev/sge/ - copied from r206631, head/sys/dev/sge/ user/jmallett/octeon/sys/dev/syscons/logo/beastie.c - copied unchanged from r206631, head/sys/dev/syscons/logo/beastie.c user/jmallett/octeon/sys/geom/sched/ - copied from r206631, head/sys/geom/sched/ user/jmallett/octeon/sys/modules/geom/geom_sched/ - copied from r206631, head/sys/modules/geom/geom_sched/ user/jmallett/octeon/sys/modules/sge/ - copied from r206631, head/sys/modules/sge/ user/jmallett/octeon/sys/modules/syscons/beastie/ - copied from r206631, head/sys/modules/syscons/beastie/ user/jmallett/octeon/sys/net80211/ieee80211_ratectl.c - copied unchanged from r206631, head/sys/net80211/ieee80211_ratectl.c user/jmallett/octeon/sys/net80211/ieee80211_ratectl.h - copied unchanged from r206631, head/sys/net80211/ieee80211_ratectl.h user/jmallett/octeon/sys/sparc64/pci/sbbc.c - copied unchanged from r206631, head/sys/sparc64/pci/sbbc.c user/jmallett/octeon/tools/regression/bin/sh/parameters/pwd1.0 - copied unchanged from r206631, head/tools/regression/bin/sh/parameters/pwd1.0 Deleted: user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/fbsd-ppc-low.c user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/reg-ppc.c user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/reg-x86-64.c user/jmallett/octeon/sys/contrib/dev/iwn/iwlwifi-6000-9.176.4.1.fw.uu Modified: user/jmallett/octeon/MAINTAINERS user/jmallett/octeon/Makefile.inc1 user/jmallett/octeon/bin/ps/ps.1 user/jmallett/octeon/bin/pwait/pwait.1 user/jmallett/octeon/bin/sh/mksyntax.c user/jmallett/octeon/bin/sh/parser.c user/jmallett/octeon/contrib/binutils/bfd/config.bfd user/jmallett/octeon/contrib/com_err/compile_et.1 user/jmallett/octeon/crypto/openssh/sshd.c user/jmallett/octeon/etc/defaults/rc.conf user/jmallett/octeon/etc/network.subr user/jmallett/octeon/etc/rc.d/ip6addrctl user/jmallett/octeon/etc/rc.d/netif user/jmallett/octeon/etc/rc.d/netoptions user/jmallett/octeon/etc/rc.firewall user/jmallett/octeon/gnu/usr.bin/gdb/Makefile user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/Makefile user/jmallett/octeon/gnu/usr.bin/gdb/kgdb/kgdb.1 user/jmallett/octeon/lib/libc/gen/check_utility_compat.3 user/jmallett/octeon/lib/libc/gen/confstr.3 user/jmallett/octeon/lib/libc/gen/dladdr.3 user/jmallett/octeon/lib/libc/gen/dlinfo.3 user/jmallett/octeon/lib/libc/gen/dllockinit.3 user/jmallett/octeon/lib/libc/gen/dlopen.3 user/jmallett/octeon/lib/libc/gen/fmtcheck.3 user/jmallett/octeon/lib/libc/gen/frexp.3 user/jmallett/octeon/lib/libc/gen/ftok.3 user/jmallett/octeon/lib/libc/gen/getutxent.3 user/jmallett/octeon/lib/libc/gen/setproctitle.3 user/jmallett/octeon/lib/libc/gen/stringlist.3 user/jmallett/octeon/lib/libc/gen/sysconf.3 user/jmallett/octeon/lib/libc/gen/sysctl.3 user/jmallett/octeon/lib/libc/locale/isalnum.3 user/jmallett/octeon/lib/libc/locale/isalpha.3 user/jmallett/octeon/lib/libc/posix1e/mac_prepare.3 user/jmallett/octeon/lib/libc/softfloat/softfloat-specialize user/jmallett/octeon/lib/libc/stdlib/hcreate.3 user/jmallett/octeon/lib/libc/stdlib/ptsname.3 user/jmallett/octeon/lib/libc/sys/sigaction.2 user/jmallett/octeon/lib/libcam/cam.3 user/jmallett/octeon/lib/libcam/cam_cdbparse.3 user/jmallett/octeon/lib/libcompat/4.1/cftime.3 user/jmallett/octeon/lib/libcompat/4.4/cuserid.3 user/jmallett/octeon/lib/libedit/editline.3 user/jmallett/octeon/lib/libedit/editrc.5 user/jmallett/octeon/lib/libelf/elf.3 user/jmallett/octeon/lib/libelf/elf_begin.3 user/jmallett/octeon/lib/libelf/elf_cntl.3 user/jmallett/octeon/lib/libelf/elf_end.3 user/jmallett/octeon/lib/libelf/elf_errmsg.3 user/jmallett/octeon/lib/libelf/elf_fill.3 user/jmallett/octeon/lib/libelf/elf_flagdata.3 user/jmallett/octeon/lib/libelf/elf_getarhdr.3 user/jmallett/octeon/lib/libelf/elf_getarsym.3 user/jmallett/octeon/lib/libelf/elf_getbase.3 user/jmallett/octeon/lib/libelf/elf_getdata.3 user/jmallett/octeon/lib/libelf/elf_getident.3 user/jmallett/octeon/lib/libelf/elf_getphnum.3 user/jmallett/octeon/lib/libelf/elf_getscn.3 user/jmallett/octeon/lib/libelf/elf_getshnum.3 user/jmallett/octeon/lib/libelf/elf_getshstrndx.3 user/jmallett/octeon/lib/libelf/elf_hash.3 user/jmallett/octeon/lib/libelf/elf_kind.3 user/jmallett/octeon/lib/libelf/elf_memory.3 user/jmallett/octeon/lib/libelf/elf_next.3 user/jmallett/octeon/lib/libelf/elf_rand.3 user/jmallett/octeon/lib/libelf/elf_rawfile.3 user/jmallett/octeon/lib/libelf/elf_strptr.3 user/jmallett/octeon/lib/libelf/elf_update.3 user/jmallett/octeon/lib/libelf/elf_version.3 user/jmallett/octeon/lib/libelf/gelf.3 user/jmallett/octeon/lib/libelf/gelf_checksum.3 user/jmallett/octeon/lib/libelf/gelf_fsize.3 user/jmallett/octeon/lib/libelf/gelf_getcap.3 user/jmallett/octeon/lib/libelf/gelf_getclass.3 user/jmallett/octeon/lib/libelf/gelf_getdyn.3 user/jmallett/octeon/lib/libelf/gelf_getehdr.3 user/jmallett/octeon/lib/libelf/gelf_getmove.3 user/jmallett/octeon/lib/libelf/gelf_getphdr.3 user/jmallett/octeon/lib/libelf/gelf_getrel.3 user/jmallett/octeon/lib/libelf/gelf_getrela.3 user/jmallett/octeon/lib/libelf/gelf_getshdr.3 user/jmallett/octeon/lib/libelf/gelf_getsym.3 user/jmallett/octeon/lib/libelf/gelf_getsyminfo.3 user/jmallett/octeon/lib/libelf/gelf_getsymshndx.3 user/jmallett/octeon/lib/libelf/gelf_newehdr.3 user/jmallett/octeon/lib/libelf/gelf_newphdr.3 user/jmallett/octeon/lib/libelf/gelf_update_ehdr.3 user/jmallett/octeon/lib/libelf/gelf_xlatetof.3 user/jmallett/octeon/lib/libgssapi/gss_accept_sec_context.3 user/jmallett/octeon/lib/libgssapi/gss_acquire_cred.3 user/jmallett/octeon/lib/libgssapi/gss_add_cred.3 user/jmallett/octeon/lib/libgssapi/gss_add_oid_set_member.3 user/jmallett/octeon/lib/libgssapi/gss_canonicalize_name.3 user/jmallett/octeon/lib/libgssapi/gss_compare_name.3 user/jmallett/octeon/lib/libgssapi/gss_context_time.3 user/jmallett/octeon/lib/libgssapi/gss_create_empty_oid_set.3 user/jmallett/octeon/lib/libgssapi/gss_delete_sec_context.3 user/jmallett/octeon/lib/libgssapi/gss_display_name.3 user/jmallett/octeon/lib/libgssapi/gss_display_status.3 user/jmallett/octeon/lib/libgssapi/gss_duplicate_name.3 user/jmallett/octeon/lib/libgssapi/gss_export_name.3 user/jmallett/octeon/lib/libgssapi/gss_export_sec_context.3 user/jmallett/octeon/lib/libgssapi/gss_get_mic.3 user/jmallett/octeon/lib/libgssapi/gss_import_name.3 user/jmallett/octeon/lib/libgssapi/gss_import_sec_context.3 user/jmallett/octeon/lib/libgssapi/gss_indicate_mechs.3 user/jmallett/octeon/lib/libgssapi/gss_init_sec_context.3 user/jmallett/octeon/lib/libgssapi/gss_inquire_context.3 user/jmallett/octeon/lib/libgssapi/gss_inquire_cred.3 user/jmallett/octeon/lib/libgssapi/gss_inquire_cred_by_mech.3 user/jmallett/octeon/lib/libgssapi/gss_inquire_mechs_for_name.3 user/jmallett/octeon/lib/libgssapi/gss_inquire_names_for_mech.3 user/jmallett/octeon/lib/libgssapi/gss_process_context_token.3 user/jmallett/octeon/lib/libgssapi/gss_release_buffer.3 user/jmallett/octeon/lib/libgssapi/gss_release_cred.3 user/jmallett/octeon/lib/libgssapi/gss_release_name.3 user/jmallett/octeon/lib/libgssapi/gss_release_oid_set.3 user/jmallett/octeon/lib/libgssapi/gss_test_oid_set_member.3 user/jmallett/octeon/lib/libgssapi/gss_unwrap.3 user/jmallett/octeon/lib/libgssapi/gss_verify_mic.3 user/jmallett/octeon/lib/libgssapi/gss_wrap.3 user/jmallett/octeon/lib/libgssapi/gss_wrap_size_limit.3 user/jmallett/octeon/lib/libmemstat/libmemstat.3 user/jmallett/octeon/lib/libpmc/pmc.3 user/jmallett/octeon/lib/libpmc/pmc.atom.3 user/jmallett/octeon/lib/libpmc/pmc.core.3 user/jmallett/octeon/lib/libpmc/pmc.core2.3 user/jmallett/octeon/lib/libpmc/pmc.corei7.3 user/jmallett/octeon/lib/libpmc/pmc.corei7uc.3 user/jmallett/octeon/lib/libpmc/pmc.iaf.3 user/jmallett/octeon/lib/libpmc/pmc.k7.3 user/jmallett/octeon/lib/libpmc/pmc.k8.3 user/jmallett/octeon/lib/libpmc/pmc.p4.3 user/jmallett/octeon/lib/libpmc/pmc.p5.3 user/jmallett/octeon/lib/libpmc/pmc.p6.3 user/jmallett/octeon/lib/libpmc/pmc.tsc.3 user/jmallett/octeon/lib/libpmc/pmc.ucf.3 user/jmallett/octeon/lib/libpmc/pmc.westmere.3 user/jmallett/octeon/lib/libpmc/pmc.westmereuc.3 user/jmallett/octeon/lib/libpmc/pmc_allocate.3 user/jmallett/octeon/lib/libpmc/pmc_attach.3 user/jmallett/octeon/lib/libpmc/pmc_capabilities.3 user/jmallett/octeon/lib/libpmc/pmc_configure_logfile.3 user/jmallett/octeon/lib/libpmc/pmc_disable.3 user/jmallett/octeon/lib/libpmc/pmc_event_names_of_class.3 user/jmallett/octeon/lib/libpmc/pmc_get_driver_stats.3 user/jmallett/octeon/lib/libpmc/pmc_get_msr.3 user/jmallett/octeon/lib/libpmc/pmc_init.3 user/jmallett/octeon/lib/libpmc/pmc_name_of_capability.3 user/jmallett/octeon/lib/libpmc/pmc_read.3 user/jmallett/octeon/lib/libpmc/pmc_set.3 user/jmallett/octeon/lib/libpmc/pmc_start.3 user/jmallett/octeon/lib/libpmc/pmclog.3 user/jmallett/octeon/lib/libthr/libthr.3 user/jmallett/octeon/lib/libugidfw/bsde_get_rule.3 user/jmallett/octeon/lib/libugidfw/bsde_get_rule_count.3 user/jmallett/octeon/lib/libugidfw/bsde_parse_rule.3 user/jmallett/octeon/lib/libugidfw/bsde_rule_to_string.3 user/jmallett/octeon/lib/libugidfw/libugidfw.3 user/jmallett/octeon/lib/libulog/ulog_login.3 user/jmallett/octeon/lib/libulog/utempter_add_record.3 user/jmallett/octeon/lib/libutil/_secure_path.3 user/jmallett/octeon/lib/libutil/auth.3 user/jmallett/octeon/lib/libutil/hexdump.3 user/jmallett/octeon/lib/libutil/kinfo_getfile.3 user/jmallett/octeon/lib/libutil/kinfo_getvmmap.3 user/jmallett/octeon/lib/libutil/kld.3 user/jmallett/octeon/lib/libutil/login_auth.3 user/jmallett/octeon/lib/libutil/login_cap.3 user/jmallett/octeon/lib/libutil/login_class.3 user/jmallett/octeon/lib/libutil/login_ok.3 user/jmallett/octeon/lib/libutil/login_times.3 user/jmallett/octeon/lib/libutil/login_tty.3 user/jmallett/octeon/lib/libutil/property.3 user/jmallett/octeon/lib/libutil/pty.3 user/jmallett/octeon/lib/libutil/realhostname.3 user/jmallett/octeon/lib/libutil/realhostname_sa.3 user/jmallett/octeon/lib/libutil/trimdomain.3 user/jmallett/octeon/lib/libutil/uucplock.3 user/jmallett/octeon/release/Makefile user/jmallett/octeon/release/Makefile.inc.docports user/jmallett/octeon/sbin/geom/class/Makefile user/jmallett/octeon/sbin/ipfw/main.c user/jmallett/octeon/sbin/iscontrol/iscsi.conf.5 user/jmallett/octeon/sbin/mca/mca.c user/jmallett/octeon/sbin/spppcontrol/spppcontrol.8 user/jmallett/octeon/share/man/man3/sysexits.3 user/jmallett/octeon/share/man/man3/tgmath.3 user/jmallett/octeon/share/man/man4/Makefile user/jmallett/octeon/share/man/man4/altq.4 user/jmallett/octeon/share/man/man4/audit.4 user/jmallett/octeon/share/man/man4/auditpipe.4 user/jmallett/octeon/share/man/man4/coda.4 user/jmallett/octeon/share/man/man4/gbde.4 user/jmallett/octeon/share/man/man4/geom.4 user/jmallett/octeon/share/man/man4/geom_fox.4 user/jmallett/octeon/share/man/man4/geom_linux_lvm.4 user/jmallett/octeon/share/man/man4/geom_uzip.4 user/jmallett/octeon/share/man/man4/ipw.4 user/jmallett/octeon/share/man/man4/iscsi_initiator.4 user/jmallett/octeon/share/man/man4/iwi.4 user/jmallett/octeon/share/man/man4/iwn.4 user/jmallett/octeon/share/man/man4/kbdmux.4 user/jmallett/octeon/share/man/man4/lp.4 user/jmallett/octeon/share/man/man4/mac.4 user/jmallett/octeon/share/man/man4/mac_biba.4 user/jmallett/octeon/share/man/man4/mac_bsdextended.4 user/jmallett/octeon/share/man/man4/mac_ifoff.4 user/jmallett/octeon/share/man/man4/mac_lomac.4 user/jmallett/octeon/share/man/man4/mac_mls.4 user/jmallett/octeon/share/man/man4/mac_none.4 user/jmallett/octeon/share/man/man4/mac_partition.4 user/jmallett/octeon/share/man/man4/mac_seeotheruids.4 user/jmallett/octeon/share/man/man4/mac_stub.4 user/jmallett/octeon/share/man/man4/mac_test.4 user/jmallett/octeon/share/man/man4/miibus.4 user/jmallett/octeon/share/man/man4/ng_netflow.4 user/jmallett/octeon/share/man/man4/orm.4 user/jmallett/octeon/share/man/man4/ral.4 user/jmallett/octeon/share/man/man4/rp.4 user/jmallett/octeon/share/man/man4/rum.4 user/jmallett/octeon/share/man/man4/run.4 user/jmallett/octeon/share/man/man4/sched_4bsd.4 user/jmallett/octeon/share/man/man4/sched_ule.4 user/jmallett/octeon/share/man/man4/si.4 user/jmallett/octeon/share/man/man4/splash.4 user/jmallett/octeon/share/man/man4/tap.4 user/jmallett/octeon/share/man/man4/uhso.4 user/jmallett/octeon/share/man/man4/upgt.4 user/jmallett/octeon/share/man/man4/ural.4 user/jmallett/octeon/share/man/man4/vkbd.4 user/jmallett/octeon/share/man/man4/vlan.4 user/jmallett/octeon/share/man/man4/wpi.4 user/jmallett/octeon/share/man/man5/ar.5 user/jmallett/octeon/share/man/man5/rc.conf.5 user/jmallett/octeon/share/man/man7/clocks.7 user/jmallett/octeon/share/man/man7/maclabel.7 user/jmallett/octeon/share/man/man8/picobsd.8 user/jmallett/octeon/share/man/man8/rescue.8 user/jmallett/octeon/share/man/man9/CTASSERT.9 user/jmallett/octeon/share/man/man9/DELAY.9 user/jmallett/octeon/share/man/man9/KASSERT.9 user/jmallett/octeon/share/man/man9/VFS.9 user/jmallett/octeon/share/man/man9/VFS_CHECKEXP.9 user/jmallett/octeon/share/man/man9/VFS_FHTOVP.9 user/jmallett/octeon/share/man/man9/VFS_MOUNT.9 user/jmallett/octeon/share/man/man9/VFS_QUOTACTL.9 user/jmallett/octeon/share/man/man9/VFS_ROOT.9 user/jmallett/octeon/share/man/man9/VFS_STATFS.9 user/jmallett/octeon/share/man/man9/VFS_SYNC.9 user/jmallett/octeon/share/man/man9/VFS_UNMOUNT.9 user/jmallett/octeon/share/man/man9/VFS_VGET.9 user/jmallett/octeon/share/man/man9/VOP_ACCESS.9 user/jmallett/octeon/share/man/man9/VOP_ACLCHECK.9 user/jmallett/octeon/share/man/man9/VOP_ADVLOCK.9 user/jmallett/octeon/share/man/man9/VOP_ATTRIB.9 user/jmallett/octeon/share/man/man9/VOP_BWRITE.9 user/jmallett/octeon/share/man/man9/VOP_CREATE.9 user/jmallett/octeon/share/man/man9/VOP_FSYNC.9 user/jmallett/octeon/share/man/man9/VOP_GETACL.9 user/jmallett/octeon/share/man/man9/VOP_GETEXTATTR.9 user/jmallett/octeon/share/man/man9/VOP_GETPAGES.9 user/jmallett/octeon/share/man/man9/VOP_GETVOBJECT.9 user/jmallett/octeon/share/man/man9/VOP_INACTIVE.9 user/jmallett/octeon/share/man/man9/VOP_IOCTL.9 user/jmallett/octeon/share/man/man9/VOP_LINK.9 user/jmallett/octeon/share/man/man9/VOP_LISTEXTATTR.9 user/jmallett/octeon/share/man/man9/VOP_LOCK.9 user/jmallett/octeon/share/man/man9/VOP_LOOKUP.9 user/jmallett/octeon/share/man/man9/VOP_OPENCLOSE.9 user/jmallett/octeon/share/man/man9/VOP_PATHCONF.9 user/jmallett/octeon/share/man/man9/VOP_PRINT.9 user/jmallett/octeon/share/man/man9/VOP_RDWR.9 user/jmallett/octeon/share/man/man9/VOP_READDIR.9 user/jmallett/octeon/share/man/man9/VOP_READLINK.9 user/jmallett/octeon/share/man/man9/VOP_REALLOCBLKS.9 user/jmallett/octeon/share/man/man9/VOP_REMOVE.9 user/jmallett/octeon/share/man/man9/VOP_RENAME.9 user/jmallett/octeon/share/man/man9/VOP_REVOKE.9 user/jmallett/octeon/share/man/man9/VOP_SETACL.9 user/jmallett/octeon/share/man/man9/VOP_SETEXTATTR.9 user/jmallett/octeon/share/man/man9/VOP_STRATEGY.9 user/jmallett/octeon/share/man/man9/VOP_VPTOCNP.9 user/jmallett/octeon/share/man/man9/VOP_VPTOFH.9 user/jmallett/octeon/share/man/man9/accept_filter.9 user/jmallett/octeon/share/man/man9/accf_data.9 user/jmallett/octeon/share/man/man9/accf_dns.9 user/jmallett/octeon/share/man/man9/accf_http.9 user/jmallett/octeon/share/man/man9/acl.9 user/jmallett/octeon/share/man/man9/atomic.9 user/jmallett/octeon/share/man/man9/cr_cansee.9 user/jmallett/octeon/share/man/man9/cr_seeothergids.9 user/jmallett/octeon/share/man/man9/cr_seeotheruids.9 user/jmallett/octeon/share/man/man9/devfs_set_cdevpriv.9 user/jmallett/octeon/share/man/man9/devtoname.9 user/jmallett/octeon/share/man/man9/extattr.9 user/jmallett/octeon/share/man/man9/firmware.9 user/jmallett/octeon/share/man/man9/hexdump.9 user/jmallett/octeon/share/man/man9/ifnet.9 user/jmallett/octeon/share/man/man9/make_dev.9 user/jmallett/octeon/share/man/man9/namei.9 user/jmallett/octeon/share/man/man9/p_candebug.9 user/jmallett/octeon/share/man/man9/p_cansee.9 user/jmallett/octeon/share/man/man9/pfind.9 user/jmallett/octeon/share/man/man9/pgfind.9 user/jmallett/octeon/share/man/man9/prison_check.9 user/jmallett/octeon/share/man/man9/random.9 user/jmallett/octeon/share/man/man9/rijndael.9 user/jmallett/octeon/share/man/man9/rtalloc.9 user/jmallett/octeon/share/man/man9/rtentry.9 user/jmallett/octeon/share/man/man9/sleep.9 user/jmallett/octeon/share/man/man9/spl.9 user/jmallett/octeon/share/man/man9/stack.9 user/jmallett/octeon/share/man/man9/uio.9 user/jmallett/octeon/share/man/man9/usbdi.9 user/jmallett/octeon/share/man/man9/vaccess.9 user/jmallett/octeon/share/man/man9/vaccess_acl_nfs4.9 user/jmallett/octeon/share/man/man9/vaccess_acl_posix1e.9 user/jmallett/octeon/share/man/man9/vcount.9 user/jmallett/octeon/share/man/man9/vget.9 user/jmallett/octeon/share/man/man9/vm_map_entry_resize_free.9 user/jmallett/octeon/share/man/man9/vnode.9 user/jmallett/octeon/share/man/man9/vput.9 user/jmallett/octeon/share/man/man9/vref.9 user/jmallett/octeon/share/man/man9/vrefcnt.9 user/jmallett/octeon/share/man/man9/vrele.9 user/jmallett/octeon/share/misc/committers-ports.dot user/jmallett/octeon/sys/amd64/amd64/exception.S user/jmallett/octeon/sys/amd64/amd64/machdep.c user/jmallett/octeon/sys/amd64/amd64/trap.c user/jmallett/octeon/sys/amd64/conf/GENERIC user/jmallett/octeon/sys/amd64/ia32/ia32_signal.c user/jmallett/octeon/sys/amd64/include/md_var.h user/jmallett/octeon/sys/arm/include/bus.h user/jmallett/octeon/sys/boot/forth/loader.conf user/jmallett/octeon/sys/compat/linprocfs/linprocfs.c user/jmallett/octeon/sys/conf/NOTES user/jmallett/octeon/sys/conf/files user/jmallett/octeon/sys/conf/files.sparc64 user/jmallett/octeon/sys/contrib/dev/iwn/LICENSE user/jmallett/octeon/sys/contrib/ipfilter/netinet/ip_compat.h user/jmallett/octeon/sys/dev/aac/aac.c user/jmallett/octeon/sys/dev/aac/aac_cam.c user/jmallett/octeon/sys/dev/aac/aac_debug.c user/jmallett/octeon/sys/dev/aac/aac_disk.c user/jmallett/octeon/sys/dev/aac/aac_pci.c user/jmallett/octeon/sys/dev/aac/aac_tables.h user/jmallett/octeon/sys/dev/aac/aacreg.h user/jmallett/octeon/sys/dev/aac/aacvar.h user/jmallett/octeon/sys/dev/ata/chipsets/ata-acerlabs.c user/jmallett/octeon/sys/dev/ath/ath_hal/ar5416/ar9285_attach.c user/jmallett/octeon/sys/dev/ath/if_ath.c user/jmallett/octeon/sys/dev/bwi/if_bwi.c user/jmallett/octeon/sys/dev/bwi/if_bwivar.h user/jmallett/octeon/sys/dev/bwn/if_bwn.c user/jmallett/octeon/sys/dev/bwn/if_bwnvar.h user/jmallett/octeon/sys/dev/e1000/if_em.c user/jmallett/octeon/sys/dev/e1000/if_em.h user/jmallett/octeon/sys/dev/e1000/if_igb.c user/jmallett/octeon/sys/dev/e1000/if_lem.c user/jmallett/octeon/sys/dev/fb/vesa.c user/jmallett/octeon/sys/dev/iwn/if_iwn.c user/jmallett/octeon/sys/dev/iwn/if_iwnreg.h user/jmallett/octeon/sys/dev/iwn/if_iwnvar.h user/jmallett/octeon/sys/dev/mii/miidevs user/jmallett/octeon/sys/dev/mii/truephy.c user/jmallett/octeon/sys/dev/msk/if_msk.c user/jmallett/octeon/sys/dev/ral/rt2560.c user/jmallett/octeon/sys/dev/ral/rt2560var.h user/jmallett/octeon/sys/dev/ral/rt2661.c user/jmallett/octeon/sys/dev/ral/rt2661var.h user/jmallett/octeon/sys/dev/re/if_re.c user/jmallett/octeon/sys/dev/syscons/logo/logo.c user/jmallett/octeon/sys/dev/syscons/logo/logo_saver.c user/jmallett/octeon/sys/dev/uart/uart.h user/jmallett/octeon/sys/dev/uart/uart_cpu_sparc64.c user/jmallett/octeon/sys/dev/usb/serial/u3g.c user/jmallett/octeon/sys/dev/usb/usbdevs user/jmallett/octeon/sys/dev/usb/wlan/if_rum.c user/jmallett/octeon/sys/dev/usb/wlan/if_rumvar.h user/jmallett/octeon/sys/dev/usb/wlan/if_run.c user/jmallett/octeon/sys/dev/usb/wlan/if_runvar.h user/jmallett/octeon/sys/dev/usb/wlan/if_ural.c user/jmallett/octeon/sys/dev/usb/wlan/if_uralvar.h user/jmallett/octeon/sys/dev/usb/wlan/if_zyd.c user/jmallett/octeon/sys/dev/usb/wlan/if_zydreg.h user/jmallett/octeon/sys/dev/wpi/if_wpi.c user/jmallett/octeon/sys/dev/wpi/if_wpivar.h user/jmallett/octeon/sys/fs/devfs/devfs_devs.c user/jmallett/octeon/sys/fs/devfs/devfs_int.h user/jmallett/octeon/sys/fs/nwfs/nwfs.h user/jmallett/octeon/sys/fs/nwfs/nwfs_io.c user/jmallett/octeon/sys/fs/nwfs/nwfs_ioctl.c user/jmallett/octeon/sys/fs/nwfs/nwfs_mount.h user/jmallett/octeon/sys/fs/nwfs/nwfs_node.c user/jmallett/octeon/sys/fs/nwfs/nwfs_node.h user/jmallett/octeon/sys/fs/nwfs/nwfs_subr.c user/jmallett/octeon/sys/fs/nwfs/nwfs_subr.h user/jmallett/octeon/sys/fs/nwfs/nwfs_vfsops.c user/jmallett/octeon/sys/fs/nwfs/nwfs_vnops.c user/jmallett/octeon/sys/fs/smbfs/smbfs.h user/jmallett/octeon/sys/fs/smbfs/smbfs_io.c user/jmallett/octeon/sys/fs/smbfs/smbfs_node.c user/jmallett/octeon/sys/fs/smbfs/smbfs_node.h user/jmallett/octeon/sys/fs/smbfs/smbfs_smb.c user/jmallett/octeon/sys/fs/smbfs/smbfs_subr.c user/jmallett/octeon/sys/fs/smbfs/smbfs_subr.h user/jmallett/octeon/sys/fs/smbfs/smbfs_vfsops.c user/jmallett/octeon/sys/fs/smbfs/smbfs_vnops.c user/jmallett/octeon/sys/i386/conf/GENERIC user/jmallett/octeon/sys/i386/i386/machdep.c user/jmallett/octeon/sys/i386/i386/mpboot.s user/jmallett/octeon/sys/i386/i386/trap.c user/jmallett/octeon/sys/i386/include/bootinfo.h user/jmallett/octeon/sys/ia64/ia64/mca.c user/jmallett/octeon/sys/ia64/ia64/mp_machdep.c user/jmallett/octeon/sys/ia64/include/mca.h user/jmallett/octeon/sys/ia64/include/pal.h user/jmallett/octeon/sys/kern/init_main.c user/jmallett/octeon/sys/kern/kern_clock.c user/jmallett/octeon/sys/kern/tty_pts.c user/jmallett/octeon/sys/kern/vfs_syscalls.c user/jmallett/octeon/sys/libkern/iconv.c user/jmallett/octeon/sys/libkern/iconv_converter_if.m user/jmallett/octeon/sys/libkern/iconv_xlat.c user/jmallett/octeon/sys/libkern/strcasecmp.c user/jmallett/octeon/sys/mips/atheros/if_arge.c user/jmallett/octeon/sys/mips/include/bus.h user/jmallett/octeon/sys/mips/mips/busdma_machdep.c user/jmallett/octeon/sys/modules/Makefile user/jmallett/octeon/sys/modules/dummynet/Makefile user/jmallett/octeon/sys/modules/geom/Makefile user/jmallett/octeon/sys/modules/iwnfw/iwn6000/Makefile user/jmallett/octeon/sys/modules/syscons/Makefile user/jmallett/octeon/sys/modules/uart/Makefile user/jmallett/octeon/sys/modules/wlan/Makefile user/jmallett/octeon/sys/net/if.c user/jmallett/octeon/sys/net/if_clone.c user/jmallett/octeon/sys/net/if_llatbl.c user/jmallett/octeon/sys/net80211/ieee80211.c user/jmallett/octeon/sys/net80211/ieee80211_amrr.c user/jmallett/octeon/sys/net80211/ieee80211_amrr.h user/jmallett/octeon/sys/net80211/ieee80211_crypto_ccmp.c user/jmallett/octeon/sys/net80211/ieee80211_crypto_tkip.c user/jmallett/octeon/sys/net80211/ieee80211_freebsd.h user/jmallett/octeon/sys/net80211/ieee80211_ioctl.c user/jmallett/octeon/sys/net80211/ieee80211_node.c user/jmallett/octeon/sys/net80211/ieee80211_node.h user/jmallett/octeon/sys/net80211/ieee80211_rssadapt.c user/jmallett/octeon/sys/net80211/ieee80211_rssadapt.h user/jmallett/octeon/sys/net80211/ieee80211_scan_sta.c user/jmallett/octeon/sys/net80211/ieee80211_var.h user/jmallett/octeon/sys/netgraph/ng_pipe.c user/jmallett/octeon/sys/netgraph/ng_pipe.h user/jmallett/octeon/sys/netinet/if_ether.c user/jmallett/octeon/sys/netinet/in.c user/jmallett/octeon/sys/netinet/in_mcast.c user/jmallett/octeon/sys/netinet/ipfw/ip_dn_glue.c user/jmallett/octeon/sys/netinet/ipfw/ip_dn_io.c user/jmallett/octeon/sys/netinet/ipfw/ip_dn_private.h user/jmallett/octeon/sys/netinet/ipfw/ip_dummynet.c user/jmallett/octeon/sys/netinet/ipfw/ip_fw_sockopt.c user/jmallett/octeon/sys/netinet/tcp_input.c user/jmallett/octeon/sys/netinet6/in6.c user/jmallett/octeon/sys/netinet6/mld6.c user/jmallett/octeon/sys/netinet6/nd6.c user/jmallett/octeon/sys/netncp/ncp_conn.c user/jmallett/octeon/sys/netncp/ncp_conn.h user/jmallett/octeon/sys/netncp/ncp_file.h user/jmallett/octeon/sys/netncp/ncp_lib.h user/jmallett/octeon/sys/netncp/ncp_login.c user/jmallett/octeon/sys/netncp/ncp_ncp.c user/jmallett/octeon/sys/netncp/ncp_ncp.h user/jmallett/octeon/sys/netncp/ncp_nls.c user/jmallett/octeon/sys/netncp/ncp_nls.h user/jmallett/octeon/sys/netncp/ncp_rcfile.h user/jmallett/octeon/sys/netncp/ncp_rq.c user/jmallett/octeon/sys/netncp/ncp_rq.h user/jmallett/octeon/sys/netncp/ncp_sock.c user/jmallett/octeon/sys/netncp/ncp_sock.h user/jmallett/octeon/sys/netncp/ncp_subr.c user/jmallett/octeon/sys/netncp/ncp_subr.h user/jmallett/octeon/sys/netncp/ncp_user.h user/jmallett/octeon/sys/netsmb/netbios.h user/jmallett/octeon/sys/netsmb/smb.h user/jmallett/octeon/sys/netsmb/smb_conn.c user/jmallett/octeon/sys/netsmb/smb_conn.h user/jmallett/octeon/sys/netsmb/smb_dev.c user/jmallett/octeon/sys/netsmb/smb_dev.h user/jmallett/octeon/sys/netsmb/smb_iod.c user/jmallett/octeon/sys/netsmb/smb_rq.c user/jmallett/octeon/sys/netsmb/smb_rq.h user/jmallett/octeon/sys/netsmb/smb_smb.c user/jmallett/octeon/sys/netsmb/smb_subr.c user/jmallett/octeon/sys/netsmb/smb_subr.h user/jmallett/octeon/sys/netsmb/smb_tran.h user/jmallett/octeon/sys/netsmb/smb_trantcp.c user/jmallett/octeon/sys/netsmb/smb_trantcp.h user/jmallett/octeon/sys/netsmb/smb_usr.c user/jmallett/octeon/sys/pc98/cbus/clock.c user/jmallett/octeon/sys/pci/if_rlreg.h user/jmallett/octeon/sys/sparc64/conf/GENERIC user/jmallett/octeon/sys/sparc64/conf/NOTES user/jmallett/octeon/sys/sparc64/include/dcr.h user/jmallett/octeon/sys/sparc64/include/lsu.h user/jmallett/octeon/sys/sparc64/sparc64/ofw_machdep.c user/jmallett/octeon/sys/sparc64/sparc64/trap.c user/jmallett/octeon/sys/sys/iconv.h user/jmallett/octeon/sys/sys/mchain.h user/jmallett/octeon/sys/vm/memguard.c user/jmallett/octeon/sys/vm/memguard.h user/jmallett/octeon/sys/vm/vm_contig.c user/jmallett/octeon/sys/vm/vm_extern.h user/jmallett/octeon/sys/vm/vm_glue.c user/jmallett/octeon/sys/x86/isa/clock.c user/jmallett/octeon/usr.bin/ar/ar.1 user/jmallett/octeon/usr.bin/c89/c89.1 user/jmallett/octeon/usr.bin/c99/c99.1 user/jmallett/octeon/usr.bin/calendar/calendars/calendar.dutch user/jmallett/octeon/usr.bin/column/column.1 user/jmallett/octeon/usr.bin/comm/comm.1 user/jmallett/octeon/usr.bin/csup/cpasswd.1 (contents, props changed) user/jmallett/octeon/usr.bin/csup/csup.1 user/jmallett/octeon/usr.bin/enigma/enigma.1 user/jmallett/octeon/usr.bin/gzip/gzip.1 user/jmallett/octeon/usr.bin/gzip/gzip.c user/jmallett/octeon/usr.bin/gzip/unbzip2.c user/jmallett/octeon/usr.bin/hexdump/od.1 user/jmallett/octeon/usr.bin/killall/killall.1 user/jmallett/octeon/usr.bin/lockf/lockf.1 user/jmallett/octeon/usr.bin/tar/bsdtar.1 user/jmallett/octeon/usr.bin/tar/bsdtar.c user/jmallett/octeon/usr.bin/tar/bsdtar_platform.h user/jmallett/octeon/usr.bin/tar/matching.c user/jmallett/octeon/usr.bin/tar/subst.c user/jmallett/octeon/usr.bin/tar/tree.h user/jmallett/octeon/usr.bin/tar/write.c user/jmallett/octeon/usr.bin/wtmpcvt/wtmpcvt.1 user/jmallett/octeon/usr.bin/xlint/lint1/decl.c user/jmallett/octeon/usr.bin/xlint/lint1/lint1.h user/jmallett/octeon/usr.bin/xlint/lint1/mem1.c user/jmallett/octeon/usr.sbin/asf/asf.8 user/jmallett/octeon/usr.sbin/burncd/burncd.8 user/jmallett/octeon/usr.sbin/ctm/ctm/ctm.1 user/jmallett/octeon/usr.sbin/ctm/ctm/ctm.5 user/jmallett/octeon/usr.sbin/devinfo/devinfo.8 user/jmallett/octeon/usr.sbin/fdformat/fdformat.1 user/jmallett/octeon/usr.sbin/fdread/fdread.1 user/jmallett/octeon/usr.sbin/fdwrite/fdwrite.1 user/jmallett/octeon/usr.sbin/fifolog/fifolog_create/fifolog.1 user/jmallett/octeon/usr.sbin/flowctl/flowctl.8 user/jmallett/octeon/usr.sbin/lastlogin/lastlogin.8 user/jmallett/octeon/usr.sbin/lastlogin/lastlogin.c user/jmallett/octeon/usr.sbin/mtest/mtest.8 user/jmallett/octeon/usr.sbin/periodic/periodic.8 user/jmallett/octeon/usr.sbin/pmcannotate/pmcannotate.8 user/jmallett/octeon/usr.sbin/pmccontrol/pmccontrol.8 user/jmallett/octeon/usr.sbin/pmcstat/pmcstat.8 user/jmallett/octeon/usr.sbin/pppctl/pppctl.8 user/jmallett/octeon/usr.sbin/setfmac/setfsmac.8 user/jmallett/octeon/usr.sbin/setpmac/setpmac.8 user/jmallett/octeon/usr.sbin/sysinstall/devices.c user/jmallett/octeon/usr.sbin/sysinstall/menus.c user/jmallett/octeon/usr.sbin/uhsoctl/uhsoctl.1 user/jmallett/octeon/usr.sbin/wpa/wpa_supplicant/driver_freebsd.c user/jmallett/octeon/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 Directory Properties: user/jmallett/octeon/ (props changed) user/jmallett/octeon/sys/contrib/x86emu/ (props changed) user/jmallett/octeon/sys/dev/ath/ath_hal/ar5416/ar9160.ini (props changed) Modified: user/jmallett/octeon/MAINTAINERS ============================================================================== --- user/jmallett/octeon/MAINTAINERS Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/MAINTAINERS Wed Apr 14 21:46:22 2010 (r206634) @@ -123,6 +123,9 @@ usr.sbin/zic edwin Heads-up appreciat maintained by a third party source. lib/libc/stdtime edwin Heads-up appreciated, since parts of this code is maintained by a third party source. +sysinstall randi Please contact about any major changes so that + they can be co-ordinated. +sbin/routed bms Pre-commit review; notify vendor at rhyolite.com Following are the entries from the Makefiles, and a few other sources. Please remove stale entries from both their origin, and this file. Modified: user/jmallett/octeon/Makefile.inc1 ============================================================================== --- user/jmallett/octeon/Makefile.inc1 Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/Makefile.inc1 Wed Apr 14 21:46:22 2010 (r206634) @@ -15,6 +15,7 @@ # -DNO_CTF do not run the DTrace CTF conversion tools on built objects # LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list # TARGET="machine" to crossbuild world for a different machine type +# TARGET_ARCH= may be required when a TARGET supports multiple endians # # The intended user-driven targets are: Modified: user/jmallett/octeon/bin/ps/ps.1 ============================================================================== --- user/jmallett/octeon/bin/ps/ps.1 Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/bin/ps/ps.1 Wed Apr 14 21:46:22 2010 (r206634) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd March 17, 2010 +.Dd April 13, 2010 .Dt PS 1 .Os .Sh NAME @@ -298,6 +298,7 @@ the include file .It Dv "P_WAITED" Ta No "0x01000 Someone is waiting for us" .It Dv "P_WEXIT" Ta No "0x02000 Working on exiting" .It Dv "P_EXEC" Ta No "0x04000 Process called exec" +.It Dv "P_WKILLED" Ta No "0x08000 Killed, shall go to kernel/user boundary ASAP" .It Dv "P_CONTINUED" Ta No "0x10000 Proc has continued from a stopped state" .It Dv "P_STOPPED_SIG" Ta No "0x20000 Stopped due to SIGSTOP/SIGTSTP" .It Dv "P_STOPPED_TRACE" Ta No "0x40000 Stopped because of tracing" Modified: user/jmallett/octeon/bin/pwait/pwait.1 ============================================================================== --- user/jmallett/octeon/bin/pwait/pwait.1 Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/bin/pwait/pwait.1 Wed Apr 14 21:46:22 2010 (r206634) @@ -33,8 +33,8 @@ .\" $FreeBSD$ .\" .Dd November 1, 2009 -.Os .Dt PWAIT 1 +.Os .Sh NAME .Nm pwait .Nd wait for processes to terminate Modified: user/jmallett/octeon/bin/sh/mksyntax.c ============================================================================== --- user/jmallett/octeon/bin/sh/mksyntax.c Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/bin/sh/mksyntax.c Wed Apr 14 21:46:22 2010 (r206634) @@ -232,6 +232,7 @@ main(int argc __unused, char **argv __un add("\n", "CNL"); add("\\", "CBACK"); add("`", "CBQUOTE"); + add("\"", "CDQUOTE"); add("$", "CVAR"); add("}", "CENDVAR"); add("(", "CLP"); Modified: user/jmallett/octeon/bin/sh/parser.c ============================================================================== --- user/jmallett/octeon/bin/sh/parser.c Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/bin/sh/parser.c Wed Apr 14 21:46:22 2010 (r206634) @@ -1223,7 +1223,10 @@ readtoken1(int firstc, char const *initi if (eofmark != NULL && newvarnest == 0) USTPUTC(c, out); else { - state[level].syntax = BASESYNTAX; + if (state[level].category == TSTATE_ARITH) + state[level].syntax = ARISYNTAX; + else + state[level].syntax = BASESYNTAX; quotef++; } break; Modified: user/jmallett/octeon/contrib/binutils/bfd/config.bfd ============================================================================== --- user/jmallett/octeon/contrib/binutils/bfd/config.bfd Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/contrib/binutils/bfd/config.bfd Wed Apr 14 21:46:22 2010 (r206634) @@ -221,6 +221,10 @@ case "${targ}" in targ_defvec=bfd_elf32_littlearm_vec targ_selvecs=bfd_elf32_bigarm_vec ;; + armeb-*-freebsd*) + targ_defvec=bfd_elf32_bigarm_vec + targ_selvecs=bfd_elf32_littlearm_vec + ;; arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \ arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks) targ_defvec=bfd_elf32_littlearm_vec Modified: user/jmallett/octeon/contrib/com_err/compile_et.1 ============================================================================== --- user/jmallett/octeon/contrib/com_err/compile_et.1 Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/contrib/com_err/compile_et.1 Wed Apr 14 21:46:22 2010 (r206634) @@ -4,8 +4,8 @@ .\" $FreeBSD$ .\" .Dd November 22, 1988 -.Os .Dt COMPILE_ET 1 +.Os .Sh NAME .Nm compile_et .Nd error table compiler Modified: user/jmallett/octeon/crypto/openssh/sshd.c ============================================================================== --- user/jmallett/octeon/crypto/openssh/sshd.c Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/crypto/openssh/sshd.c Wed Apr 14 21:46:22 2010 (r206634) @@ -1330,10 +1330,6 @@ main(int ac, char **av) /* Initialize configuration options to their default values. */ initialize_server_options(&options); - /* Avoid killing the process in high-pressure swapping environments. */ - if (madvise(NULL, 0, MADV_PROTECT) != 0) - debug("madvise(): %.200s", strerror(errno)); - /* Parse command-line arguments. */ while ((opt = getopt(ac, av, "f:p:b:k:h:g:u:o:C:dDeiqrtQRT46")) != -1) { switch (opt) { @@ -1749,6 +1745,10 @@ main(int ac, char **av) /* Reinitialize the log (because of the fork above). */ log_init(__progname, options.log_level, options.log_facility, log_stderr); + /* Avoid killing the process in high-pressure swapping environments. */ + if (!inetd_flag && madvise(NULL, 0, MADV_PROTECT) != 0) + debug("madvise(): %.200s", strerror(errno)); + /* Initialize the random number generator. */ arc4random_stir(); Modified: user/jmallett/octeon/etc/defaults/rc.conf ============================================================================== --- user/jmallett/octeon/etc/defaults/rc.conf Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/etc/defaults/rc.conf Wed Apr 14 21:46:22 2010 (r206634) @@ -210,6 +210,7 @@ cloned_interfaces="" # List of cloned n ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. #ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. #ifconfig_ed0_ipx="ipx 0x00010010" # Sample IPX address family entry. +#ifconfig_ed0_ipv6="RTADV" # Sample IPv6 entry for RA/rtsol(8) #ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64" # Sample IPv6 addr entry #ifconfig_ed0_alias0="inet6 2001:db8:2::1 prefixlen 64" # Sample IPv6 alias #ifconfig_fxp0_name="net0" # Change interface name from fxp0 to net0. @@ -435,12 +436,18 @@ rfcomm_pppd_server_two_channel="3" # Ove #rfcomm_pppd_server_two_register_sp="NO" # Override SP and DUN register #rfcomm_pppd_server_two_register_dun="NO" # for 'two' +#ubthidhci_enable="YES" # Switch an USB BT controller present on +#ubthidhci_busnum="3" # bus 3 and addr 2 from HID mode to HCI mode. +#ubthidhci_addr="2" # Check usbconfig list to find the correct + # numbers for your system. + ### Miscellaneous network options: ### icmp_bmcastecho="NO" # respond to broadcast ping packets ### IPv6 options: ### -ipv6_network_interfaces="none" # List of IPv6 network interfaces - # (or "auto" or "none"). +ipv6_network_interfaces="AUTO" # List of IPv6 network interfaces +ipv6_prefer="YES" # Use IPv6 when both IPv4 and IPv6 can be used +ipv6_privacy="NO" # Use privacy addresses with RTADV (RFC 4193) ipv6_defaultrouter="NO" # Set to IPv6 default gateway (or NO). #ipv6_defaultrouter="2002:c058:6301::" # Use this for 6to4 (RFC 3068) ipv6_static_routes="" # Set to static route list (or leave empty). @@ -499,7 +506,6 @@ ipv6_ipfilter_rules="/etc/ipf6.rules" # # for examples ip6addrctl_enable="YES" # Set to YES to enable default address selection ip6addrctl_verbose="NO" # Set to YES to enable verbose configuration messages -ipv6_prefer="NO" # Use IPv6 when both IPv4 and IPv6 can be used ############################################################## ### System console options ################################# Modified: user/jmallett/octeon/etc/network.subr ============================================================================== --- user/jmallett/octeon/etc/network.subr Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/etc/network.subr Wed Apr 14 21:46:22 2010 (r206634) @@ -96,44 +96,32 @@ ifconfig_up() # inet6 specific if afexists inet6; then if ipv6if $1; then - if checkyesno ipv6_gateway_enable; then - _ipv6_opts="-accept_rtadv" - fi - else - if checkyesno ipv6_prefer; then - _ipv6_opts="-ifdisabled" - else - _ipv6_opts="ifdisabled" + # Implicitly handles ipv6_gateway_enable + _ipv6_opts='-ifdisabled -accept_rtadv' + + if ipv6_autoconfif $1; then + _ipv6_opts='-ifdisabled accept_rtadv' fi - # backward compatibility: $ipv6_enable - case $ipv6_enable in - [Yy][Ee][Ss]) - _ipv6_opts="${_ipv6_opts} accept_rtadv" - ;; - esac - fi + ifconfig $1 inet6 $_ipv6_opts - if [ -n "${_ipv6_opts}" ]; then - ifconfig $1 inet6 ${_ipv6_opts} - fi + # ifconfig_IF_ipv6 + ifconfig_args=`ifconfig_getargs $1 ipv6` - # ifconfig_IF_ipv6 - ifconfig_args=`ifconfig_getargs $1 ipv6` - if [ -n "${ifconfig_args}" ]; then - ifconfig $1 inet6 -ifdisabled - ifconfig $1 ${ifconfig_args} - _cfg=0 - fi + if [ -n "$ifconfig_args" ]; then + ifconfig $1 $ifconfig_args + _cfg=0 + fi + else + # Remove in FreeBSD 10.x + # Explicit test is necessary here to avoid nonexistence error + case "$ipv6_enable" in + [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) + warn "Interface $1 will NOT be configured for IPv6" + ;; + esac - # backward compatiblity: $ipv6_ifconfig_IF - ifconfig_args=`get_if_var $1 ipv6_ifconfig_IF` - if [ -n "${ifconfig_args}" ]; then - warn "\$ipv6_ifconfig_$1 is obsolete." \ - " Use ifconfig_$1_ipv6 instead." - ifconfig $1 inet6 -ifdisabled - ifconfig $1 inet6 ${ifconfig_args} - _cfg=0 + ifconfig $1 inet6 ifdisabled fi fi @@ -194,7 +182,7 @@ ifconfig_down() # $default if given. get_if_var() { - local _if _punct _var _default prefix suffix + local _if _punct _punct_c _var _default prefix suffix if [ $# -ne 2 -a $# -ne 3 ]; then err 3 'USAGE: get_if_var name var [default]' @@ -219,7 +207,7 @@ get_if_var() # outside this file. _ifconfig_getargs() { - local _ifn _af + local _ifn _af value _ifn=$1 _af=${2+_$2} @@ -227,7 +215,18 @@ _ifconfig_getargs() return 1 fi - get_if_var $_ifn ifconfig_IF$_af "$ifconfig_DEFAULT" + value=`get_if_var $_ifn ifconfig_IF$_af "$ifconfig_DEFAULT"` + + # Remove in FreeBSD 10.x + if [ "$_af" = _ipv6 -a -z "$value" ]; then + value=`get_if_var $_ifn ipv6_ifconfig_IF "$ifconfig_DEFAULT"` + if [ -n "$value" ]; then + warn "\$ipv6_ifconfig_$1 is obsolete." \ + " Use ifconfig_$1_ipv6 instead." + fi + fi + + echo $value } # ifconfig_getargs if [af] @@ -249,6 +248,8 @@ ifconfig_getargs() [Nn][Oo][Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;; [Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;; [Ww][Pp][Aa]) ;; + [Rr][Tt][Aa][Dd][Vv]) ;; + [Nn][Oo][Rr][Tt][Aa][Dd][Vv]) ;; *) _args="$_args $_arg" ;; @@ -372,77 +373,45 @@ afexists() esac } -# noafif if -# Returns 0 if the interface has no af configuration and 1 otherwise. -noafif() -{ - local _if - _if=$1 - - case $_if in - pflog[0-9]*|\ - pfsync[0-9]*|\ - an[0-9]*|\ - ath[0-9]*|\ - ipw[0-9]*|\ - iwi[0-9]*|\ - iwn[0-9]*|\ - ral[0-9]*|\ - wi[0-9]*|\ - wl[0-9]*|\ - wpi[0-9]*) - return 0 - ;; - esac - - return 1 -} - # ipv6if if # Returns 0 if the interface should be configured for IPv6 and # 1 otherwise. ipv6if() { - local _if _tmpargs i - _if=$1 - if ! afexists inet6; then return 1 fi # lo0 is always IPv6-enabled - case $_if in + case $1 in lo0) return 0 ;; esac - # True if $ifconfig_IF_ipv6 is defined. - _tmpargs=`_ifconfig_getargs $_if ipv6` - if [ -n "${_tmpargs}" ]; then - return 0 - fi - - # backward compatibility: True if $ipv6_ifconfig_IF is defined. - _tmpargs=`get_if_var $_if ipv6_ifconfig_IF` - if [ -n "${_tmpargs}" ]; then - return 0 - fi + local _if _tmpargs i + _if=$1 - case "${ipv6_network_interfaces}" in - [Aa][Uu][Tt][Oo]) - return 0 - ;; + case "$ipv6_network_interfaces" in ''|[Nn][Oo][Nn][Ee]) return 1 ;; + $_if|"$_if "*|*" $_if"|*" $_if "*|[Aa][Uu][Tt][Oo]) + # True if $ifconfig_IF_ipv6 is defined. + _tmpargs=`_ifconfig_getargs $_if ipv6` + ;; esac - for i in ${ipv6_network_interfaces}; do - if [ "$i" = "$_if" ]; then - return 0 - fi - done + if [ -n "$_tmpargs" ]; then + # Remove in FreeBSD 10.x + # Explicit test is necessary here to avoid nonexistence error + case "$ipv6_enable" in + [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) + ;; + *) return 0 + ;; + esac + fi return 1 } @@ -452,15 +421,24 @@ ipv6if() # Stateless Address Configuration, 1 otherwise. ipv6_autoconfif() { + case $1 in + lo0|\ + stf[0-9]*|\ + faith[0-9]*|\ + lp[0-9]*|\ + sl[0-9]*|\ + pflog[0-9]*|\ + pfsync[0-9]*) + return 1 + ;; + esac + local _if _tmpargs _arg _if=$1 if ! ipv6if $_if; then return 1 fi - if noafif $_if; then - return 1 - fi if checkyesno ipv6_gateway_enable; then return 1 fi @@ -468,45 +446,24 @@ ipv6_autoconfif() if [ -n "${_tmpargs}" ]; then return 1 fi + if ! is_wired_interface $_if; then + case $_if in + wlan[0-9]*) ;; # Allow test to continue + *) return 1 + ;; + esac + fi - case $_if in - lo0|\ - stf[0-9]*|\ - faith[0-9]*|\ - lp[0-9]*|\ - sl[0-9]*|\ - pflog[0-9]*|\ - pfsync[0-9]*) + _tmpargs=`_ifconfig_getargs $_if ipv6` + case "$_tmpargs" in + *inet6\ *|*[Nn][Oo][Rr][Tt][Aa][Dd][Vv]*|*-accept_rtadv*) return 1 ;; - esac - - # backward compatibility: $ipv6_enable - case $ipv6_enable in - [Yy][Ee][Ss]) + *[Rr][Tt][Aa][Dd][Vv]*|*accept_rtadv*) return 0 ;; esac - _tmpargs=`_ifconfig_getargs $_if ipv6` - for _arg in $_tmpargs; do - case $_arg in - accept_rtadv) - return 0 - ;; - esac - done - - # backward compatibility: $ipv6_ifconfig_IF - _tmpargs=`get_if_var $_if ipv6_ifconfig_IF` - for _arg in $_tmpargs; do - case $_arg in - accept_rtadv) - return 0 - ;; - esac - done - return 1 } Modified: user/jmallett/octeon/etc/rc.d/ip6addrctl ============================================================================== --- user/jmallett/octeon/etc/rc.d/ip6addrctl Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/etc/rc.d/ip6addrctl Wed Apr 14 21:46:22 2010 (r206634) @@ -20,8 +20,6 @@ status_cmd="ip6addrctl" prefer_ipv6_cmd="ip6addrctl_prefer_ipv6" prefer_ipv4_cmd="ip6addrctl_prefer_ipv4" -set_rcvar_obsolete ipv6_enable ipv6_prefer - ip6addrctl_prefer_ipv6() { afexists inet6 || return 0 Modified: user/jmallett/octeon/etc/rc.d/netif ============================================================================== --- user/jmallett/octeon/etc/rc.d/netif Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/etc/rc.d/netif Wed Apr 14 21:46:22 2010 (r206634) @@ -34,6 +34,7 @@ . /etc/network.subr name="network" +start_precmd="network_prestart" start_cmd="network_start" stop_cmd="network_stop" cloneup_cmd="clone_up" @@ -41,7 +42,13 @@ clonedown_cmd="clone_down" extra_commands="cloneup clonedown" cmdifn= -set_rcvar_obsolete ipv6_enable ipv6_prefer +network_prestart() +{ + if [ -n "$ipv6_enable" ]; then + warn 'The ipv6_enable option is deprecated.' + warn 'See rc.conf(5) for information on disabling IPv6.' + fi +} network_start() { Modified: user/jmallett/octeon/etc/rc.d/netoptions ============================================================================== --- user/jmallett/octeon/etc/rc.d/netoptions Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/etc/rc.d/netoptions Wed Apr 14 21:46:22 2010 (r206634) @@ -99,6 +99,13 @@ netoptions_inet6() else ${SYSCTL_W} net.inet6.ip6.v6only=1 >/dev/null fi + + if checkyesno ipv6_privacy; then + netoptions_init + echo -n " IPv6 Privacy Addresses" + ${SYSCTL_W} net.inet6.ip6.use_tempaddr=1 >/dev/null + ${SYSCTL_W} net.inet6.ip6.prefer_tempaddr=1 >/dev/null + fi } load_rc_config $name Copied: user/jmallett/octeon/etc/rc.d/ubthidhci (from r206631, head/etc/rc.d/ubthidhci) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jmallett/octeon/etc/rc.d/ubthidhci Wed Apr 14 21:46:22 2010 (r206634, copy of r206631, head/etc/rc.d/ubthidhci) @@ -0,0 +1,40 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: ubthidhci +# REQUIRE: DAEMON +# BEFORE: bluetooth +# KEYWORD: nojail shutdown + +. /etc/rc.subr + +name="ubthidhci" +command="/usr/sbin/usbconfig" +rcvar=`set_rcvar` +start_precmd="ubthidhci_prestart" + +ubthidhci_prestart() +{ + + if [ -z ${ubthidhci_busnum} ]; then + warn ubthidhci_busnum is not set + return 1 + fi + if [ -z ${ubthidhci_addr} ]; then + warn ubthidhci_addr is not set + return 1 + fi +} + +load_rc_config $name +# +# We discard the output because: +# 1) we don't want it to show up during boot; and +# 2) the request usually returns an error, but that doesn't mean it failed +# +# NB: 0x40 is UT_VENDOR +command_args="-u ${ubthidhci_busnum} -a ${ubthidhci_addr} do_request 0x40 0 0 0 0 > /dev/null 2>&1" + +run_rc_command "$1" Modified: user/jmallett/octeon/etc/rc.firewall ============================================================================== --- user/jmallett/octeon/etc/rc.firewall Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/etc/rc.firewall Wed Apr 14 21:46:22 2010 (r206634) @@ -424,24 +424,21 @@ case ${firewall_type} in # Configuration: # firewall_myservices: List of TCP ports on which this host # offers services. - # firewall_allowservices: List of IPs which has access to + # firewall_allowservices: List of IPv4 and/or IPv6 addresses + # that have access to # $firewall_myservices. - # firewall_trusted: List of IPv4s which has full access - # to this host. Be very carefull - # when setting this. This option can - # seriously degrade the level of - # protection provided by the firewall. + # firewall_trusted: List of IPv4 and/or IPv6 addresses + # that have full access to this host. + # Be very careful when setting this. + # This option can seriously degrade + # the level of protection provided by + # the firewall. # firewall_logdeny: Boolean (YES/NO) specifying if the # default denied packets should be # logged (in /var/log/security). # firewall_nologports: List of TCP/UDP ports for which # denied incomming packets are not # logged. - # firewall_trusted_ipv6: List of IPv6s which has full access - # to this host. Be very carefull - # when setting this. This option can - # seriously degrade the level of - # protection provided by the firewall. # Allow packets for which a state has been built. ${fwcmd} add check-state Modified: user/jmallett/octeon/gnu/usr.bin/gdb/Makefile ============================================================================== --- user/jmallett/octeon/gnu/usr.bin/gdb/Makefile Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/gnu/usr.bin/gdb/Makefile Wed Apr 14 21:46:22 2010 (r206634) @@ -3,8 +3,7 @@ SUBDIR= doc libgdb gdb gdbtui kgdb TARGET_ARCH?= ${MACHINE_ARCH} -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "arm" || \ - ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "powerpc" +.if exists(${.CURDIR}/gdbserver/reg-${TARGET_ARCH}.c) SUBDIR+=gdbserver .endif Modified: user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/Makefile ============================================================================== --- user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/Makefile Wed Apr 14 21:44:14 2010 (r206633) +++ user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/Makefile Wed Apr 14 21:46:22 2010 (r206634) @@ -14,20 +14,9 @@ SRCS= inferiors.c mem-break.c regcache.c server.c signals.c target.c utils.c SRCS+= fbsd-low.c -.if ${MACHINE_ARCH} == "amd64" -SRCS+= fbsd-amd64-low.c i387-fp.c reg-x86-64.c -.endif - -.if ${MACHINE_ARCH} == "arm" -SRCS+= fbsd-arm-low.c reg-arm.c -.endif - -.if ${MACHINE_ARCH} == "i386" -SRCS+= fbsd-i386-low.c i387-fp.c reg-i386.c -.endif - -.if ${MACHINE_ARCH} == "powerpc" -SRCS+= fbsd-ppc-low.c reg-ppc.c +SRCS+= fbsd-${MACHINE_ARCH}-low.c reg-${MACHINE_ARCH}.c +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" +SRCS+= i387-fp.c .endif #CFLAGS+= -I${.CURDIR}/../arch/${MACHINE_ARCH} Copied: user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/fbsd-powerpc-low.c (from r206631, head/gnu/usr.bin/gdb/gdbserver/fbsd-powerpc-low.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/fbsd-powerpc-low.c Wed Apr 14 21:46:22 2010 (r206634, copy of r206631, head/gnu/usr.bin/gdb/gdbserver/fbsd-powerpc-low.c) @@ -0,0 +1,156 @@ +/* FreeBSD/PowerPC specific low level interface, for the remote server for + GDB. + Copyright 1995, 1996, 1998, 1999, 2000, 2001, 2002 + Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +__FBSDID("$FreeBSD$"); + +#include "server.h" +#include "fbsd-low.h" + +#include +#include + +#define ppc_num_regs 71 + +/* Currently, don't check/send MQ. */ +static int ppc_regmap[] = + { 0, 4, 8, 12, 16, 20, 24, 28, + 32, 36, 40, 44, 48, 52, 56, 60, + 64, 68, 72, 76, 80, 84, 88, 92, + 96, 100, 104, 108, 112, 116, 120, 124, +#if 0 + /* + * XXX on FreeBSD the gdbserver for PowerPC was only tested with FPU-less + * cores i.e. e500. Let's leave the original FPR references around in case + * someone picks up and brings support for AIM-like FPU machines. + */ + PT_FPR0*4, PT_FPR0*4 + 8, PT_FPR0*4+16, PT_FPR0*4+24, + PT_FPR0*4+32, PT_FPR0*4+40, PT_FPR0*4+48, PT_FPR0*4+56, + PT_FPR0*4+64, PT_FPR0*4+72, PT_FPR0*4+80, PT_FPR0*4+88, + PT_FPR0*4+96, PT_FPR0*4+104, PT_FPR0*4+112, PT_FPR0*4+120, + PT_FPR0*4+128, PT_FPR0*4+136, PT_FPR0*4+144, PT_FPR0*4+152, + PT_FPR0*4+160, PT_FPR0*4+168, PT_FPR0*4+176, PT_FPR0*4+184, + PT_FPR0*4+192, PT_FPR0*4+200, PT_FPR0*4+208, PT_FPR0*4+216, + PT_FPR0*4+224, PT_FPR0*4+232, PT_FPR0*4+240, PT_FPR0*4+248, +#endif + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 144, -1, 132, 128, 140, 136, -1 + }; + +static int +ppc_cannot_store_register (int regno) +{ + /* Some kernels do not allow us to store fpscr. */ + if (regno == find_regno ("fpscr")) + return 2; + + return 0; +} + +static int +ppc_cannot_fetch_register (int regno) +{ + return 0; +} + +static CORE_ADDR +ppc_get_pc (void) +{ + unsigned long pc; + + collect_register_by_name ("pc", &pc); + return (CORE_ADDR) pc; +} + +static void +ppc_set_pc (CORE_ADDR pc) +{ + unsigned long newpc = pc; + + supply_register_by_name ("pc", &newpc); +} + +/* Correct in either endianness. Note that this file is + for PowerPC only, not PowerPC64. + This instruction is "twge r2, r2", which GDB uses as a software + breakpoint. */ +static const unsigned long ppc_breakpoint = 0x7d821008; +#define ppc_breakpoint_len 4 + +static int +ppc_breakpoint_at (CORE_ADDR where) +{ + unsigned long insn; + + (*the_target->read_memory) (where, (char *) &insn, 4); + if (insn == ppc_breakpoint) + return 1; + /* If necessary, recognize more trap instructions here. GDB only uses the + one. */ + return 0; +} + +static void +ppc_fill_gregset (void *buf) +{ + int i; + + for (i = 0; i < ppc_num_regs; i++) + if (ppc_regmap[i] != -1) + collect_register (i, ((char *) buf) + ppc_regmap[i]); + +} + +static void +ppc_store_gregset (const void *buf) +{ + int i; + + for (i = 0; i < ppc_num_regs; i++) + if (ppc_regmap[i] != -1) + supply_register (i, ((char *) buf) + ppc_regmap[i]); + +} + +struct regset_info target_regsets[] = { + { PT_GETREGS, PT_SETREGS, sizeof (struct reg), + GENERAL_REGS, + ppc_fill_gregset, ppc_store_gregset }, + { 0, 0, -1, -1, NULL, NULL } +}; + +struct fbsd_target_ops the_low_target = { + ppc_num_regs, + ppc_regmap, + ppc_cannot_fetch_register, + ppc_cannot_store_register, + ppc_get_pc, + ppc_set_pc, + (const char *) &ppc_breakpoint, + ppc_breakpoint_len, + NULL, + 0, + ppc_breakpoint_at, +}; Copied: user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/reg-amd64.c (from r206631, head/gnu/usr.bin/gdb/gdbserver/reg-amd64.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/reg-amd64.c Wed Apr 14 21:46:22 2010 (r206634, copy of r206631, head/gnu/usr.bin/gdb/gdbserver/reg-amd64.c) @@ -0,0 +1,99 @@ +/* *INDENT-OFF* */ /* THIS FILE IS GENERATED */ + +/* A register protocol for GDB, the GNU debugger. + Copyright 2001, 2002 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* This file was created with the aid of ``regdat.sh'' and ``../../../../contrib/gdb/gdb/regformats/reg-x86-64.dat''. */ + +#include +__FBSDID("$FreeBSD$"); + +#include "regdef.h" +#include "regcache.h" + +struct reg regs_x86_64[] = { + { "rax", 0, 64 }, + { "rbx", 64, 64 }, + { "rcx", 128, 64 }, + { "rdx", 192, 64 }, + { "rsi", 256, 64 }, + { "rdi", 320, 64 }, + { "rbp", 384, 64 }, + { "rsp", 448, 64 }, + { "r8", 512, 64 }, + { "r9", 576, 64 }, + { "r10", 640, 64 }, + { "r11", 704, 64 }, + { "r12", 768, 64 }, + { "r13", 832, 64 }, + { "r14", 896, 64 }, + { "r15", 960, 64 }, + { "rip", 1024, 64 }, + { "eflags", 1088, 32 }, + { "cs", 1120, 32 }, + { "ss", 1152, 32 }, + { "ds", 1184, 32 }, + { "es", 1216, 32 }, + { "fs", 1248, 32 }, + { "gs", 1280, 32 }, + { "st0", 1312, 80 }, + { "st1", 1392, 80 }, + { "st2", 1472, 80 }, + { "st3", 1552, 80 }, + { "st4", 1632, 80 }, + { "st5", 1712, 80 }, + { "st6", 1792, 80 }, + { "st7", 1872, 80 }, + { "fctrl", 1952, 32 }, + { "fstat", 1984, 32 }, + { "ftag", 2016, 32 }, + { "fiseg", 2048, 32 }, + { "fioff", 2080, 32 }, + { "foseg", 2112, 32 }, + { "fooff", 2144, 32 }, + { "fop", 2176, 32 }, + { "xmm0", 2208, 128 }, + { "xmm1", 2336, 128 }, + { "xmm2", 2464, 128 }, + { "xmm3", 2592, 128 }, + { "xmm4", 2720, 128 }, + { "xmm5", 2848, 128 }, + { "xmm6", 2976, 128 }, + { "xmm7", 3104, 128 }, + { "xmm8", 3232, 128 }, + { "xmm9", 3360, 128 }, + { "xmm10", 3488, 128 }, + { "xmm11", 3616, 128 }, + { "xmm12", 3744, 128 }, + { "xmm13", 3872, 128 }, + { "xmm14", 4000, 128 }, + { "xmm15", 4128, 128 }, + { "mxcsr", 4256, 32 }, +}; + +const char *expedite_regs_x86_64[] = { "rbp", "rsp", "rip", 0 }; + +void +init_registers () +{ + set_register_cache (regs_x86_64, + sizeof (regs_x86_64) / sizeof (regs_x86_64[0])); + gdbserver_expedite_regs = expedite_regs_x86_64; +} Copied: user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/reg-powerpc.c (from r206631, head/gnu/usr.bin/gdb/gdbserver/reg-powerpc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jmallett/octeon/gnu/usr.bin/gdb/gdbserver/reg-powerpc.c Wed Apr 14 21:46:22 2010 (r206634, copy of r206631, head/gnu/usr.bin/gdb/gdbserver/reg-powerpc.c) @@ -0,0 +1,113 @@ +/* *INDENT-OFF* */ /* THIS FILE IS GENERATED */ + +/* A register protocol for GDB, the GNU debugger. + Copyright 2001, 2002 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* This file was created with the aid of ``regdat.sh'' and ``../../../../contrib/gdb/gdb/regformats/reg-ppc.dat''. */ + +#include +__FBSDID("$FreeBSD$"); + +#include "regdef.h" +#include "regcache.h" + +struct reg regs_ppc[] = { + { "r0", 0, 32 }, + { "r1", 32, 32 }, + { "r2", 64, 32 }, + { "r3", 96, 32 }, + { "r4", 128, 32 }, + { "r5", 160, 32 }, + { "r6", 192, 32 }, + { "r7", 224, 32 }, + { "r8", 256, 32 }, + { "r9", 288, 32 }, + { "r10", 320, 32 }, + { "r11", 352, 32 }, + { "r12", 384, 32 }, + { "r13", 416, 32 }, + { "r14", 448, 32 }, + { "r15", 480, 32 }, + { "r16", 512, 32 }, + { "r17", 544, 32 }, + { "r18", 576, 32 }, + { "r19", 608, 32 }, + { "r20", 640, 32 }, + { "r21", 672, 32 }, + { "r22", 704, 32 }, + { "r23", 736, 32 }, + { "r24", 768, 32 }, + { "r25", 800, 32 }, + { "r26", 832, 32 }, + { "r27", 864, 32 }, + { "r28", 896, 32 }, + { "r29", 928, 32 }, + { "r30", 960, 32 }, + { "r31", 992, 32 }, + { "f0", 1024, 64 }, + { "f1", 1088, 64 }, + { "f2", 1152, 64 }, + { "f3", 1216, 64 }, + { "f4", 1280, 64 }, + { "f5", 1344, 64 }, + { "f6", 1408, 64 }, + { "f7", 1472, 64 }, + { "f8", 1536, 64 }, + { "f9", 1600, 64 }, + { "f10", 1664, 64 }, + { "f11", 1728, 64 }, + { "f12", 1792, 64 }, + { "f13", 1856, 64 }, + { "f14", 1920, 64 }, + { "f15", 1984, 64 }, + { "f16", 2048, 64 }, + { "f17", 2112, 64 }, + { "f18", 2176, 64 }, + { "f19", 2240, 64 }, + { "f20", 2304, 64 }, + { "f21", 2368, 64 }, + { "f22", 2432, 64 }, + { "f23", 2496, 64 }, + { "f24", 2560, 64 }, + { "f25", 2624, 64 }, + { "f26", 2688, 64 }, + { "f27", 2752, 64 }, + { "f28", 2816, 64 }, + { "f29", 2880, 64 }, + { "f30", 2944, 64 }, + { "f31", 3008, 64 }, + { "pc", 3072, 32 }, + { "ps", 3104, 32 }, + { "cr", 3136, 32 }, + { "lr", 3168, 32 }, + { "ctr", 3200, 32 }, + { "xer", 3232, 32 }, + { "fpscr", 3264, 32 }, +}; + +const char *expedite_regs_ppc[] = { "r1", "pc", 0 }; + +void *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Wed Apr 14 21:59:22 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6287F106566B; Wed, 14 Apr 2010 21:59:22 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 51B568FC14; Wed, 14 Apr 2010 21:59:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3ELxMU0099225; Wed, 14 Apr 2010 21:59:22 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3ELxMtP099223; Wed, 14 Apr 2010 21:59:22 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004142159.o3ELxMtP099223@svn.freebsd.org> From: Juli Mallett Date: Wed, 14 Apr 2010 21:59:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206636 - user/jmallett/octeon/gnu/lib X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 21:59:22 -0000 Author: jmallett Date: Wed Apr 14 21:59:22 2010 New Revision: 206636 URL: http://svn.freebsd.org/changeset/base/206636 Log: Revert accidental desorting. Modified: user/jmallett/octeon/gnu/lib/Makefile Modified: user/jmallett/octeon/gnu/lib/Makefile ============================================================================== --- user/jmallett/octeon/gnu/lib/Makefile Wed Apr 14 21:53:27 2010 (r206635) +++ user/jmallett/octeon/gnu/lib/Makefile Wed Apr 14 21:59:22 2010 (r206636) @@ -2,7 +2,7 @@ .include -SUBDIR= csu libgcc libgcov libgomp libdialog libregex libreadline libssp +SUBDIR= csu libgcc libgcov libdialog libgomp libregex libreadline libssp # libsupc++ uses libstdc++ headers, although 'make includes' should # have taken care of that already. From owner-svn-src-user@FreeBSD.ORG Thu Apr 15 02:44:17 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 04A0D106564A; Thu, 15 Apr 2010 02:44:17 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E885C8FC21; Thu, 15 Apr 2010 02:44:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3F2iGLd062133; Thu, 15 Apr 2010 02:44:16 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3F2iGBY062096; Thu, 15 Apr 2010 02:44:16 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004150244.o3F2iGBY062096@svn.freebsd.org> From: Juli Mallett Date: Thu, 15 Apr 2010 02:44:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206643 - in user/jmallett/octeon/sys/mips: cavium include mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2010 02:44:17 -0000 Author: jmallett Date: Thu Apr 15 02:44:16 2010 New Revision: 206643 URL: http://svn.freebsd.org/changeset/base/206643 Log: o) Don't duplicate mp_machdep inclusion from the Cavium port. o) Fix SMP build. o) Clean up tlb.c style some. Modified: user/jmallett/octeon/sys/mips/cavium/files.octeon1 user/jmallett/octeon/sys/mips/include/tlb.h user/jmallett/octeon/sys/mips/mips/machdep.c user/jmallett/octeon/sys/mips/mips/mp_machdep.c user/jmallett/octeon/sys/mips/mips/tlb.c user/jmallett/octeon/sys/mips/mips/trap.c Modified: user/jmallett/octeon/sys/mips/cavium/files.octeon1 ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/files.octeon1 Thu Apr 15 01:25:17 2010 (r206642) +++ user/jmallett/octeon/sys/mips/cavium/files.octeon1 Thu Apr 15 02:44:16 2010 (r206643) @@ -1,7 +1,6 @@ # $FreeBSD$ # Octeon Support Files # -mips/mips/mp_machdep.c optional smp mips/cavium/dev/rgmii/octeon_fpa.c optional rgmii mips/cavium/dev/rgmii/octeon_ipd.c optional rgmii mips/cavium/dev/rgmii/octeon_pko.c optional rgmii Modified: user/jmallett/octeon/sys/mips/include/tlb.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/tlb.h Thu Apr 15 01:25:17 2010 (r206642) +++ user/jmallett/octeon/sys/mips/include/tlb.h Thu Apr 15 02:44:16 2010 (r206643) @@ -29,6 +29,7 @@ #ifndef _MACHINE_TLB_H_ #define _MACHINE_TLB_H_ +void tlb_insert_wired(unsigned, vm_offset_t, pt_entry_t, pt_entry_t); void tlb_invalidate_address(struct pmap *, vm_offset_t); void tlb_invalidate_all(void); void tlb_invalidate_all_user(struct pmap *); Modified: user/jmallett/octeon/sys/mips/mips/machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/machdep.c Thu Apr 15 01:25:17 2010 (r206642) +++ user/jmallett/octeon/sys/mips/mips/machdep.c Thu Apr 15 02:44:16 2010 (r206643) @@ -89,6 +89,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #ifdef DDB #include #include @@ -413,20 +414,17 @@ void mips_pcpu_tlb_init(struct pcpu *pcpu) { vm_paddr_t pa; - struct tlb tlb; - int lobits; + pt_entry_t pte; /* * Map the pcpu structure at the virtual address 'pcpup'. * We use a wired tlb index to do this one-time mapping. */ - memset(&tlb, 0, sizeof(tlb)); pa = vtophys(pcpu); - lobits = PG_D | PG_V | PG_G | PG_C_CNC; - tlb.tlb_hi = (vm_offset_t)pcpup; - tlb.tlb_lo0 = mips_paddr_to_tlbpfn(pa) | lobits; - tlb.tlb_lo1 = mips_paddr_to_tlbpfn(pa + PAGE_SIZE) | lobits; - Mips_TLBWriteIndexed(PCPU_TLB_ENTRY, &tlb); + pte = PG_D | PG_V | PG_G | PG_C_CNC; + tlb_insert_wired(PCPU_TLB_ENTRY, (vm_offset_t)pcpup, + TLBLO_PA_TO_PFN(pa) | pte, + TLBLO_PA_TO_PFN(pa + PAGE_SIZE) | pte); } #endif Modified: user/jmallett/octeon/sys/mips/mips/mp_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mp_machdep.c Thu Apr 15 01:25:17 2010 (r206642) +++ user/jmallett/octeon/sys/mips/mips/mp_machdep.c Thu Apr 15 02:44:16 2010 (r206643) @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include struct pcb stoppcbs[MAXCPU]; @@ -295,7 +296,7 @@ smp_init_secondary(u_int32_t cpuid) */ mips_wr_compare(mips_rd_count() + counter_freq / hz); - enableintr(); + intr_enable(); /* enter the scheduler */ sched_throw(NULL); Modified: user/jmallett/octeon/sys/mips/mips/tlb.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/tlb.c Thu Apr 15 01:25:17 2010 (r206642) +++ user/jmallett/octeon/sys/mips/mips/tlb.c Thu Apr 15 02:44:16 2010 (r206643) @@ -77,6 +77,30 @@ tlb_write_random(void) static void tlb_invalidate_one(unsigned); void +tlb_insert_wired(unsigned i, vm_offset_t va, pt_entry_t pte0, pt_entry_t pte1) +{ + register_t mask, asid; + register_t s; + + va &= ~PAGE_MASK; + + s = intr_disable(); + mask = mips_rd_pagemask(); + asid = mips_rd_entryhi() & TLBHI_ASID_MASK; + + mips_wr_index(i); + mips_wr_pagemask(0); + mips_wr_entryhi(TLBHI_ENTRY(va, 0)); + mips_wr_entrylo0(pte0); + mips_wr_entrylo1(pte1); + tlb_write_indexed(); + + mips_wr_entryhi(asid); + mips_wr_pagemask(mask); + intr_restore(s); +} + +void tlb_invalidate_address(struct pmap *pmap, vm_offset_t va) { register_t mask, asid; @@ -88,12 +112,14 @@ tlb_invalidate_address(struct pmap *pmap s = intr_disable(); mask = mips_rd_pagemask(); asid = mips_rd_entryhi() & TLBHI_ASID_MASK; + mips_wr_pagemask(0); mips_wr_entryhi(TLBHI_ENTRY(va, pmap_asid(pmap))); tlb_probe(); i = mips_rd_index(); if (i >= 0) tlb_invalidate_one(i); + mips_wr_entryhi(asid); mips_wr_pagemask(mask); intr_restore(s); @@ -109,8 +135,10 @@ tlb_invalidate_all(void) s = intr_disable(); mask = mips_rd_pagemask(); asid = mips_rd_entryhi() & TLBHI_ASID_MASK; + for (i = mips_rd_wired(); i < num_tlbentries; i++) tlb_invalidate_one(i); + mips_wr_entryhi(asid); mips_wr_pagemask(mask); intr_restore(s); @@ -126,6 +154,7 @@ tlb_invalidate_all_user(struct pmap *pma s = intr_disable(); mask = mips_rd_pagemask(); asid = mips_rd_entryhi() & TLBHI_ASID_MASK; + for (i = mips_rd_wired(); i < num_tlbentries; i++) { register_t uasid; @@ -148,6 +177,7 @@ tlb_invalidate_all_user(struct pmap *pma } tlb_invalidate_one(i); } + mips_wr_entryhi(asid); mips_wr_pagemask(mask); intr_restore(s); @@ -166,6 +196,7 @@ tlb_update(struct pmap *pmap, vm_offset_ s = intr_disable(); mask = mips_rd_pagemask(); asid = mips_rd_entryhi() & TLBHI_ASID_MASK; + mips_wr_pagemask(0); mips_wr_entryhi(TLBHI_ENTRY(va, pmap_asid(pmap))); tlb_probe(); @@ -180,6 +211,7 @@ tlb_update(struct pmap *pmap, vm_offset_ } tlb_write_indexed(); } + mips_wr_entryhi(asid); mips_wr_pagemask(mask); intr_restore(s); Modified: user/jmallett/octeon/sys/mips/mips/trap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/trap.c Thu Apr 15 01:25:17 2010 (r206642) +++ user/jmallett/octeon/sys/mips/mips/trap.c Thu Apr 15 02:44:16 2010 (r206643) @@ -419,7 +419,7 @@ trap(struct trapframe *trapframe) #ifdef SMP /* It is possible that some other CPU changed m-bit */ if (!pte_test(pte, PG_V) || pte_test(pte, PG_D)) { - pmap_update_page(pmap, trapframe->badvaddr, entry); + pmap_update_page(pmap, trapframe->badvaddr, *pte); PMAP_UNLOCK(pmap); goto out; } @@ -920,8 +920,8 @@ dofault: #if !defined(SMP) && (defined(DDB) || defined(DEBUG)) trapDump("fpintr"); #else - printf("FPU Trap: PC %x CR %x SR %x\n", - trapframe->pc, trapframe->cause, trapframe->sr); + printf("FPU Trap: PC %#jx CR %x SR %x\n", + (intmax_t)trapframe->pc, (unsigned)trapframe->cause, (unsigned)trapframe->sr); goto err; #endif From owner-svn-src-user@FreeBSD.ORG Thu Apr 15 02:59:21 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DBE491065675; Thu, 15 Apr 2010 02:59:21 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CB00D8FC13; Thu, 15 Apr 2010 02:59:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3F2xLog065431; Thu, 15 Apr 2010 02:59:21 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3F2xLGk065426; Thu, 15 Apr 2010 02:59:21 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004150259.o3F2xLGk065426@svn.freebsd.org> From: Juli Mallett Date: Thu, 15 Apr 2010 02:59:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206644 - in user/jmallett/octeon/sys/mips: cavium mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2010 02:59:22 -0000 Author: jmallett Date: Thu Apr 15 02:59:21 2010 New Revision: 206644 URL: http://svn.freebsd.org/changeset/base/206644 Log: o) Add stub SMP-related functions for Octeon to fix SMP build of it. o) Note a place where we need an exception.S-style CLEAR_STATUS in mpboot. Added: user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Modified: user/jmallett/octeon/sys/mips/cavium/asm_octeon.S user/jmallett/octeon/sys/mips/cavium/files.octeon1 user/jmallett/octeon/sys/mips/mips/mpboot.S Modified: user/jmallett/octeon/sys/mips/cavium/asm_octeon.S ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/asm_octeon.S Thu Apr 15 02:44:16 2010 (r206643) +++ user/jmallett/octeon/sys/mips/cavium/asm_octeon.S Thu Apr 15 02:59:21 2010 (r206644) @@ -1,182 +1,39 @@ -/***********************license start*************** - * Copyright (c) 2003-2008 Cavium Networks (support@cavium.com). All rights - * reserved. +/*- + * Copyright (c) 2004-2010 Juli Mallett + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. * - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * * Neither the name of Cavium Networks nor the names of - * its contributors may be used to endorse or promote products - * derived from this software without specific prior written - * permission. - * - * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" - * AND WITH ALL FAULTS AND CAVIUM NETWORKS MAKES NO PROMISES, REPRESENTATIONS - * OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH - * RESPECT TO THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY - * REPRESENTATION OR DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT - * DEFECTS, AND CAVIUM SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES - * OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR - * PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET - * POSSESSION OR CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT - * OF USE OR PERFORMANCE OF THE SOFTWARE LIES WITH YOU. - * - * - * For any questions regarding licensing please contact marketing@caviumnetworks.com - * - ***********************license end**************************************/ - -/* $FreeBSD$ */ - -#include -#include -#include -#include -#include - -#include "assym.s" - - - -#define CPU_DISABLE_INTERRUPTS(reg, reg2, reg3) \ - mfc0 reg, MIPS_COP_0_STATUS; \ - nop; \ - move reg3, reg; \ - li reg2, ~MIPS_SR_INT_IE; \ - and reg, reg2, reg; \ - mtc0 reg, MIPS_COP_0_STATUS; \ - COP0_SYNC - - - -#define CPU_ENABLE_INTERRUPTS(reg, reg3) \ - mfc0 reg, MIPS_COP_0_STATUS; \ - nop; \ - or reg, reg, reg3; \ - mtc0 reg, MIPS_COP_0_STATUS; \ - COP0_SYNC - - -#define PUSHR(reg) \ - addiu sp,sp,-16 ; \ - sd reg, 8(sp) ; \ - nop ; - -#define POPR(reg) \ - ld reg, 8(sp) ; \ - addiu sp,sp,16 ; \ - nop ; - - - - -/* - * octeon_ciu_get_interrupt_reg_addr - * - * Given Int-X, En-X combination, return the CIU Interrupt Enable Register addr - * a0 = ciu Int-X: 0/1 - * a1 = ciu EN-0: 0/1 + * $FreeBSD$ */ -LEAF(octeon_ciu_get_interrupt_reg_addr) - .set noreorder - .set mips3 - - beqz a0, ciu_get_interrupt_reg_addr_Int_0 - nop - -ciu_get_interrupt_reg_addr_Int_1: - beqz a1, ciu_get_interrupt_reg_addr_Int_1_En_0 - nop - -ciu_get_interrupt_reg_addr_Int_1_En1: - li a0, OCTEON_CIU_ADDR_HI - dsll32 a0, a0, 0 - nop - ori a0, OCTEON_CIU_EN1_INT1_LO - j ciu_get_interrupt_reg_addr_ret - nop - -ciu_get_interrupt_reg_addr_Int_1_En_0: - li a0, OCTEON_CIU_ADDR_HI - dsll32 a0, a0, 0 - nop - ori a0, OCTEON_CIU_EN0_INT1_LO - j ciu_get_interrupt_reg_addr_ret - nop - -ciu_get_interrupt_reg_addr_Int_0: - beqz a1, ciu_get_interrupt_reg_addr_Int_0_En_0 - nop - -ciu_get_interrupt_reg_addr_Int_0_En_1: - li a0, OCTEON_CIU_ADDR_HI - dsll32 a0, a0, 0 - nop - ori a0, OCTEON_CIU_EN1_INT0_LO - j ciu_get_interrupt_reg_addr_ret - nop - -ciu_get_interrupt_reg_addr_Int_0_En_0: - li a0, OCTEON_CIU_ADDR_HI - dsll32 a0, a0, 0 - nop - ori a0, OCTEON_CIU_EN0_INT0_LO - - -ciu_get_interrupt_reg_addr_ret: - j ra - nop - - .set mips0 - .set reorder -END(octeon_ciu_get_interrupt_reg_addr) - +#include - +#ifdef SMP /* - * octeon_ciu_mask_all_interrupts - * - * a0 = ciu Interrupt-X: 0/1 - * a1 = ciu Enable-X: 0/1 + * This function must be implemented in assembly because it is called early + * in AP boot without a valid stack. */ -LEAF(octeon_ciu_mask_all_interrupts) - .set noreorder - .set mips3 - - PUSHR(ra) - PUSHR(s0) - - move t0, a0 - move t1, a1 - li a0, MIPS_SR_INT_IE - CPU_DISABLE_INTERRUPTS(a2, a1, s0) - move a0, t0 - move t1, a1 - jal octeon_ciu_get_interrupt_reg_addr - nop - ld a2, 0(a0) # Dummy read - nop - move a2, zero # Clear all - sd a2, 0(a0) # Write new Enable bits - nop - CPU_ENABLE_INTERRUPTS(a2, s0) - - POPR(s0) - POPR(ra) - j ra # Return - nop # (bd slot) - - .set mips0 - .set reorder -END(octeon_ciu_mask_all_interrupts) - +LEAF(platform_processor_id) + li v0, 0 + jr ra +END(platform_processor_id) +#endif Modified: user/jmallett/octeon/sys/mips/cavium/files.octeon1 ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/files.octeon1 Thu Apr 15 02:44:16 2010 (r206643) +++ user/jmallett/octeon/sys/mips/cavium/files.octeon1 Thu Apr 15 02:59:21 2010 (r206644) @@ -1,6 +1,7 @@ # $FreeBSD$ # Octeon Support Files # +mips/cavium/asm_octeon.S optional smp mips/cavium/dev/rgmii/octeon_fpa.c optional rgmii mips/cavium/dev/rgmii/octeon_ipd.c optional rgmii mips/cavium/dev/rgmii/octeon_pko.c optional rgmii @@ -8,6 +9,7 @@ mips/cavium/dev/rgmii/octeon_rgmx.c opt mips/cavium/obio.c optional uart mips/cavium/octeon_ebt3000_cf.c optional cf mips/cavium/octeon_machdep.c standard +mips/cavium/octeon_mp.c optional smp mips/cavium/uart_bus_octeonusart.c optional uart mips/cavium/uart_cpu_octeonusart.c optional uart mips/cavium/uart_dev_oct16550.c optional uart Added: user/jmallett/octeon/sys/mips/cavium/octeon_mp.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Thu Apr 15 02:59:21 2010 (r206644) @@ -0,0 +1,75 @@ +/*- + * Copyright (c) 2004-2010 Juli Mallett + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#include +#include + +void +platform_ipi_send(int cpuid) +{ + panic("%s: not yet implemented.", __func__); +} + +void +platform_ipi_clear(void) +{ + panic("%s: not yet implemented.", __func__); +} + +int +platform_ipi_intrnum(void) +{ + panic("%s: not yet implemented.", __func__); +} + +void +platform_init_ap(int cpuid) +{ + panic("%s: not yet implemented.", __func__); + + KASSERT(cpuid == 1, ("AP has an invalid cpu id %d", cpuid)); +} + +int +platform_num_processors(void) +{ + panic("%s: not yet implemented.", __func__); +} + +int +platform_start_ap(int cpuid) +{ + panic("%s: not yet implemented.", __func__); +} Modified: user/jmallett/octeon/sys/mips/mips/mpboot.S ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mpboot.S Thu Apr 15 02:44:16 2010 (r206643) +++ user/jmallett/octeon/sys/mips/mips/mpboot.S Thu Apr 15 02:59:21 2010 (r206644) @@ -37,6 +37,7 @@ .set noreorder GLOBAL(mpentry) + /* XXX On n64 this will be a problem. */ mtc0 zero, COP_0_STATUS_REG /* disable interrupts */ mtc0 zero, COP_0_CAUSE_REG /* clear soft interrupts */ From owner-svn-src-user@FreeBSD.ORG Thu Apr 15 05:24:19 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0FF61106567A; Thu, 15 Apr 2010 05:24:19 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9BF3B8FC1E; Thu, 15 Apr 2010 05:24:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3F5OIrH097705; Thu, 15 Apr 2010 05:24:18 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3F5OIfr097699; Thu, 15 Apr 2010 05:24:18 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004150524.o3F5OIfr097699@svn.freebsd.org> From: Juli Mallett Date: Thu, 15 Apr 2010 05:24:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206645 - in user/jmallett/octeon/sys/mips: cavium mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2010 05:24:19 -0000 Author: jmallett Date: Thu Apr 15 05:24:18 2010 New Revision: 206645 URL: http://svn.freebsd.org/changeset/base/206645 Log: o) Make APs on Octeon wait to be awoken. o) Use CLEAR_STATUS rather than moving zero to the status register. o) Awaken APs on Octeon. XXX This blows up somewhere around setting up dpcpu stuff. Probably either the TLB wiring isn't being done right or we're not clearing BEV and so some unrelated TLB load is blowing up? Modified: user/jmallett/octeon/sys/mips/cavium/asm_octeon.S user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c user/jmallett/octeon/sys/mips/cavium/octeon_mp.c user/jmallett/octeon/sys/mips/mips/locore.S user/jmallett/octeon/sys/mips/mips/mpboot.S Modified: user/jmallett/octeon/sys/mips/cavium/asm_octeon.S ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/asm_octeon.S Thu Apr 15 02:59:21 2010 (r206644) +++ user/jmallett/octeon/sys/mips/cavium/asm_octeon.S Thu Apr 15 05:24:18 2010 (r206645) @@ -25,15 +25,42 @@ * * $FreeBSD$ */ + #include + .set noreorder + #ifdef SMP /* * This function must be implemented in assembly because it is called early * in AP boot without a valid stack. */ LEAF(platform_processor_id) - li v0, 0 + .set push + .set mips32r2 jr ra + rdhwr v0, $0 + .set pop END(platform_processor_id) + +/* + * Called on APs to wait until they are told to launch. + */ +LEAF(octeon_ap_wait) + jal platform_processor_id + nop + +1: ll t0, octeon_ap_boot + bne v0, t0, 1b + nop + + move t0, zero + sc t0, octeon_ap_boot + + beqz t0, 1b + nop + + j mpentry + nop +END(octeon_ap_wait) #endif Modified: user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c Thu Apr 15 02:59:21 2010 (r206644) +++ user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c Thu Apr 15 05:24:18 2010 (r206645) @@ -834,7 +834,7 @@ octeon_boot_params_init(register_t ptr) printf("Boot Descriptor Ver: %u -> %u/%u", octeon_bd_ver, octeon_cvmx_bd_ver/100, octeon_cvmx_bd_ver%100); - printf(" CPU clock: %uMHz\n", octeon_cpu_clock/1000000); + printf(" CPU clock: %uMHz Core Mask: %#x\n", octeon_cpu_clock/1000000, octeon_core_mask); printf(" Dram: %u MB", (uint32_t)(octeon_dram >> 20)); printf(" Board Type: %u Revision: %u/%u\n", octeon_board_type, octeon_board_rev_major, octeon_board_rev_minor); Modified: user/jmallett/octeon/sys/mips/cavium/octeon_mp.c ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Thu Apr 15 02:59:21 2010 (r206644) +++ user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Thu Apr 15 05:24:18 2010 (r206645) @@ -36,6 +36,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include + +unsigned octeon_ap_boot = ~0; + void platform_ipi_send(int cpuid) { @@ -51,25 +55,29 @@ platform_ipi_clear(void) int platform_ipi_intrnum(void) { - panic("%s: not yet implemented.", __func__); + return (1); } void platform_init_ap(int cpuid) { - panic("%s: not yet implemented.", __func__); - - KASSERT(cpuid == 1, ("AP has an invalid cpu id %d", cpuid)); } int platform_num_processors(void) { - panic("%s: not yet implemented.", __func__); + return (fls(octeon_core_mask)); } int platform_start_ap(int cpuid) { - panic("%s: not yet implemented.", __func__); + if (atomic_cmpset_32(&octeon_ap_boot, ~0, cpuid) == 0) + return (-1); + for (;;) { + DELAY(1000); + if (atomic_cmpset_32(&octeon_ap_boot, 0, ~0) != 0) + return (0); + printf("Waiting for cpu%d to start\n", cpuid); + } } Modified: user/jmallett/octeon/sys/mips/mips/locore.S ============================================================================== --- user/jmallett/octeon/sys/mips/mips/locore.S Thu Apr 15 02:59:21 2010 (r206644) +++ user/jmallett/octeon/sys/mips/mips/locore.S Thu Apr 15 05:24:18 2010 (r206645) @@ -162,6 +162,18 @@ VECTOR(_locore, unknown) sw a2, _C_LABEL(fenvp) #endif +#if defined(TARGET_OCTEON) && defined(SMP) + .set push + .set mips32r2 + rdhwr t2, $0 + beqz t2, 1f + nop + j octeon_ap_wait + nop + .set pop +1: +#endif + /* * Initialize stack and call machine startup. */ Modified: user/jmallett/octeon/sys/mips/mips/mpboot.S ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mpboot.S Thu Apr 15 02:59:21 2010 (r206644) +++ user/jmallett/octeon/sys/mips/mips/mpboot.S Thu Apr 15 05:24:18 2010 (r206645) @@ -36,9 +36,24 @@ .set noat .set noreorder +#ifdef TARGET_OCTEON +#define CLEAR_STATUS \ + mfc0 a0, COP_0_STATUS_REG ;\ + li a2, (MIPS_SR_KX | MIPS_SR_SX | MIPS_SR_UX) ; \ + or a0, a0, a2 ; \ + li a2, ~(MIPS_SR_INT_IE | MIPS_SR_EXL | SR_KSU_USER) ; \ + and a0, a0, a2 ; \ + mtc0 a0, COP_0_STATUS_REG +#else +#define CLEAR_STATUS \ + mfc0 a0, COP_0_STATUS_REG ;\ + li a2, ~(MIPS_SR_INT_IE | MIPS_SR_EXL | SR_KSU_USER) ; \ + and a0, a0, a2 ; \ + mtc0 a0, COP_0_STATUS_REG +#endif + GLOBAL(mpentry) - /* XXX On n64 this will be a problem. */ - mtc0 zero, COP_0_STATUS_REG /* disable interrupts */ + CLEAR_STATUS /* disable interrupts */ mtc0 zero, COP_0_CAUSE_REG /* clear soft interrupts */ From owner-svn-src-user@FreeBSD.ORG Thu Apr 15 18:30:21 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 94C7B1065713; Thu, 15 Apr 2010 18:30:21 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 624548FC1C; Thu, 15 Apr 2010 18:30:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3FIULqJ079669; Thu, 15 Apr 2010 18:30:21 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3FIULmi079664; Thu, 15 Apr 2010 18:30:21 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004151830.o3FIULmi079664@svn.freebsd.org> From: Juli Mallett Date: Thu, 15 Apr 2010 18:30:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206674 - in user/jmallett/octeon/sys/mips: cavium include mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2010 18:30:21 -0000 Author: jmallett Date: Thu Apr 15 18:30:21 2010 New Revision: 206674 URL: http://svn.freebsd.org/changeset/base/206674 Log: o) Set the exception base on Octeon to the right thing on each AP. o) Do a sync before accessing (and after setting) variables set for the AP by the bootstrap processor. Otherwise we sometimes see a NULL dpcpu in smp_init_secondary(). XXX All of the shared variables here really ought to be manipulated via atomic operations. o) Clear BEV on APs, too. Modified: user/jmallett/octeon/sys/mips/cavium/octeon_mp.c user/jmallett/octeon/sys/mips/include/cpufunc.h user/jmallett/octeon/sys/mips/mips/mp_machdep.c user/jmallett/octeon/sys/mips/mips/mpboot.S Modified: user/jmallett/octeon/sys/mips/cavium/octeon_mp.c ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Thu Apr 15 17:46:51 2010 (r206673) +++ user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Thu Apr 15 18:30:21 2010 (r206674) @@ -61,6 +61,12 @@ platform_ipi_intrnum(void) void platform_init_ap(int cpuid) { + /* + * Set the exception base. + * + * XXX Low bits seem to be used for cpuid? + */ + mips_wr_prid1(0x80000000); } int Modified: user/jmallett/octeon/sys/mips/include/cpufunc.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/cpufunc.h Thu Apr 15 17:46:51 2010 (r206673) +++ user/jmallett/octeon/sys/mips/include/cpufunc.h Thu Apr 15 18:30:21 2010 (r206674) @@ -218,6 +218,8 @@ MIPS_RDRW32_COP0(entryhi, MIPS_COP_0_TLB MIPS_RDRW32_COP0(pagemask, MIPS_COP_0_TLB_PG_MASK); #endif MIPS_RDRW32_COP0(prid, MIPS_COP_0_PRID); +/* XXX 64-bit? */ +MIPS_RDRW32_COP0_SEL(prid, MIPS_COP_0_PRID, 1); MIPS_RDRW32_COP0(watchlo, MIPS_COP_0_WATCH_LO); MIPS_RDRW32_COP0_SEL(watchlo, MIPS_COP_0_WATCH_LO, 1); MIPS_RDRW32_COP0_SEL(watchlo, MIPS_COP_0_WATCH_LO, 2); @@ -232,7 +234,6 @@ MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0 MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 2); MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 3); - #undef MIPS_RDRW32_COP0 static __inline register_t Modified: user/jmallett/octeon/sys/mips/mips/mp_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mp_machdep.c Thu Apr 15 17:46:51 2010 (r206673) +++ user/jmallett/octeon/sys/mips/mips/mp_machdep.c Thu Apr 15 18:30:21 2010 (r206674) @@ -157,6 +157,8 @@ start_ap(int cpuid) cpus = mp_naps; dpcpu = (void *)kmem_alloc(kernel_map, DPCPU_SIZE); + mips_sync(); + if (platform_start_ap(cpuid) != 0) return (-1); /* could not start AP */ @@ -246,6 +248,8 @@ smp_init_secondary(u_int32_t cpuid) mips_dcache_wbinv_all(); mips_icache_sync_all(); + mips_sync(); + mips_wr_entryhi(0); pcpu_init(PCPU_ADDR(cpuid), cpuid, sizeof(struct pcpu)); Modified: user/jmallett/octeon/sys/mips/mips/mpboot.S ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mpboot.S Thu Apr 15 17:46:51 2010 (r206673) +++ user/jmallett/octeon/sys/mips/mips/mpboot.S Thu Apr 15 18:30:21 2010 (r206674) @@ -41,7 +41,7 @@ mfc0 a0, COP_0_STATUS_REG ;\ li a2, (MIPS_SR_KX | MIPS_SR_SX | MIPS_SR_UX) ; \ or a0, a0, a2 ; \ - li a2, ~(MIPS_SR_INT_IE | MIPS_SR_EXL | SR_KSU_USER) ; \ + li a2, ~(MIPS_SR_INT_IE | MIPS_SR_EXL | SR_KSU_USER | MIPS_SR_BEV) ; \ and a0, a0, a2 ; \ mtc0 a0, COP_0_STATUS_REG #else From owner-svn-src-user@FreeBSD.ORG Thu Apr 15 19:18:36 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6188C106564A; Thu, 15 Apr 2010 19:18:36 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5081D8FC0C; Thu, 15 Apr 2010 19:18:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3FJIa0w093422; Thu, 15 Apr 2010 19:18:36 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3FJIa2l093417; Thu, 15 Apr 2010 19:18:36 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004151918.o3FJIa2l093417@svn.freebsd.org> From: Juli Mallett Date: Thu, 15 Apr 2010 19:18:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206676 - in user/jmallett/octeon/sys/mips/cavium: . dev/rgmii X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2010 19:18:36 -0000 Author: jmallett Date: Thu Apr 15 19:18:35 2010 New Revision: 206676 URL: http://svn.freebsd.org/changeset/base/206676 Log: o) Rename OCTEON_SMP to SMP. o) Use PCPU_GET(cpuid) rather than unimplemented Octeon method. Do keep the cpuid in ebase just in case. Modified: user/jmallett/octeon/sys/mips/cavium/dev/rgmii/octeon_rgmx.c user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c user/jmallett/octeon/sys/mips/cavium/octeon_mp.c user/jmallett/octeon/sys/mips/cavium/octeon_pcmap_regs.h Modified: user/jmallett/octeon/sys/mips/cavium/dev/rgmii/octeon_rgmx.c ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/dev/rgmii/octeon_rgmx.c Thu Apr 15 19:15:05 2010 (r206675) +++ user/jmallett/octeon/sys/mips/cavium/dev/rgmii/octeon_rgmx.c Thu Apr 15 19:18:35 2010 (r206676) @@ -1481,7 +1481,7 @@ static void octeon_config_hw_units_post_ oct_write64(OCTEON_POW_WORKQUEUE_INT_THRESHOLD(OCTEON_POW_RX_GROUP_NUM), thr.word64); #endif - ciu_enable_interrupts(OCTEON_CORE_ID, OCTEON_RGMX_CIU_INTX, OCTEON_RGMX_CIU_ENX, + ciu_enable_interrupts(PCPU_GET(cpuid), OCTEON_RGMX_CIU_INTX, OCTEON_RGMX_CIU_ENX, (OCTEON_POW_RX_GROUP_MASK | CIU_GENTIMER_BITS_ENABLE(CIU_GENTIMER_NUM_1)), CIU_MIPS_IP2); Modified: user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c Thu Apr 15 19:15:05 2010 (r206675) +++ user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c Thu Apr 15 19:18:35 2010 (r206676) @@ -501,7 +501,7 @@ void ciu_enable_interrupts(int core_num, #endif ciu_intr_bits |= set_these_interrupt_bits; oct_write64(ciu_intr_reg_addr, ciu_intr_bits); -#ifdef OCTEON_SMP +#ifdef SMP mips_wbflush(); #endif oct_read64(OCTEON_MIO_BOOT_BIST_STAT); /* Bus Barrier */ @@ -613,6 +613,14 @@ platform_start(__register_t a0, __regist #endif platform_counter_freq = octeon_get_clock_rate(); mips_timer_init_params(platform_counter_freq, 0); + +#ifdef SMP + /* + * Clear any pending IPIs and enable the IPI interrupt. + */ + oct_write64(OCTEON_CIU_MBOX_CLRX(0), 0xffffffff); + ciu_enable_interrupts(0, CIU_INT_1, CIU_EN_0, OCTEON_CIU_ENABLE_MBOX_INTR, CIU_MIPS_IP3); +#endif } /* impSTART: This stuff should move back into the Cavium SDK */ Modified: user/jmallett/octeon/sys/mips/cavium/octeon_mp.c ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Thu Apr 15 19:15:05 2010 (r206675) +++ user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Thu Apr 15 19:18:35 2010 (r206676) @@ -43,13 +43,18 @@ unsigned octeon_ap_boot = ~0; void platform_ipi_send(int cpuid) { - panic("%s: not yet implemented.", __func__); + oct_write64(OCTEON_CIU_MBOX_SETX(cpuid), 1); + mips_wbflush(); } void platform_ipi_clear(void) { - panic("%s: not yet implemented.", __func__); + uint64_t action; + + action = oct_read64(OCTEON_CIU_MBOX_CLRX(PCPU_GET(cpuid))); + KASSERT(action == 1, ("unexpected IPIs: %#jx", (uintmax_t)action)); + oct_write64(OCTEON_CIU_MBOX_CLRX(PCPU_GET(cpuid)), action); } int @@ -63,10 +68,18 @@ platform_init_ap(int cpuid) { /* * Set the exception base. - * - * XXX Low bits seem to be used for cpuid? */ - mips_wr_prid1(0x80000000); + mips_wr_prid1(0x80000000 | cpuid); + + /* + * Set up interrupts, clear IPIs and unmask the IPI interrupt. + */ + octeon_ciu_reset(); + + oct_write64(OCTEON_CIU_MBOX_CLRX(cpuid), 0xffffffff); + ciu_enable_interrupts(cpuid, CIU_INT_1, CIU_EN_0, OCTEON_CIU_ENABLE_MBOX_INTR, CIU_MIPS_IP3); + + mips_wbflush(); } int Modified: user/jmallett/octeon/sys/mips/cavium/octeon_pcmap_regs.h ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/octeon_pcmap_regs.h Thu Apr 15 19:15:05 2010 (r206675) +++ user/jmallett/octeon/sys/mips/cavium/octeon_pcmap_regs.h Thu Apr 15 19:18:35 2010 (r206676) @@ -54,14 +54,6 @@ #ifndef LOCORE -/* XXXimp: From Cavium's include/pcpu.h, need to port that over */ -#ifndef OCTEON_SMP -#define OCTEON_CORE_ID 0 -#else -extern struct pcpu *cpuid_to_pcpu[]; -#define OCTEON_CORE_ID (mips_rd_coreid()) -#endif - /* * Utility inlines & macros */ From owner-svn-src-user@FreeBSD.ORG Thu Apr 15 19:19:38 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA40A106566B; Thu, 15 Apr 2010 19:19:38 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CA4918FC14; Thu, 15 Apr 2010 19:19:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3FJJcpL093688; Thu, 15 Apr 2010 19:19:38 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3FJJcHH093684; Thu, 15 Apr 2010 19:19:38 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004151919.o3FJJcHH093684@svn.freebsd.org> From: Juli Mallett Date: Thu, 15 Apr 2010 19:19:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206677 - user/jmallett/octeon/sys/mips/conf X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2010 19:19:38 -0000 Author: jmallett Date: Thu Apr 15 19:19:38 2010 New Revision: 206677 URL: http://svn.freebsd.org/changeset/base/206677 Log: Turn on SMP for all configurations. I now have an n32 SMP system running multi-user. Modified: user/jmallett/octeon/sys/mips/conf/OCTEON1 user/jmallett/octeon/sys/mips/conf/OCTEON1-32 user/jmallett/octeon/sys/mips/conf/OCTEON1-o32 Modified: user/jmallett/octeon/sys/mips/conf/OCTEON1 ============================================================================== --- user/jmallett/octeon/sys/mips/conf/OCTEON1 Thu Apr 15 19:18:35 2010 (r206676) +++ user/jmallett/octeon/sys/mips/conf/OCTEON1 Thu Apr 15 19:19:38 2010 (r206677) @@ -99,5 +99,4 @@ options ROOTDEVNAME=\"ufs:cf0s1\" #options ROOTDEVNAME = \"ufs:md0\" #options MD_ROOT_SIZE = 21264 -#XXX: Bring up UP first, then generalize. -#options SMP +options SMP Modified: user/jmallett/octeon/sys/mips/conf/OCTEON1-32 ============================================================================== --- user/jmallett/octeon/sys/mips/conf/OCTEON1-32 Thu Apr 15 19:18:35 2010 (r206676) +++ user/jmallett/octeon/sys/mips/conf/OCTEON1-32 Thu Apr 15 19:19:38 2010 (r206677) @@ -89,5 +89,4 @@ options ROOTDEVNAME=\"ufs:cf0s1\" #options ROOTDEVNAME = \"ufs:md0\" #options MD_ROOT_SIZE = 21264 -#XXX: Bring up UP first, then generalize. -#options SMP +options SMP Modified: user/jmallett/octeon/sys/mips/conf/OCTEON1-o32 ============================================================================== --- user/jmallett/octeon/sys/mips/conf/OCTEON1-o32 Thu Apr 15 19:18:35 2010 (r206676) +++ user/jmallett/octeon/sys/mips/conf/OCTEON1-o32 Thu Apr 15 19:19:38 2010 (r206677) @@ -89,5 +89,4 @@ options ROOTDEVNAME=\"ufs:cf0s1\" #options ROOTDEVNAME = \"ufs:md0\" #options MD_ROOT_SIZE = 21264 -#XXX: Bring up UP first, then generalize. -#options SMP +options SMP From owner-svn-src-user@FreeBSD.ORG Thu Apr 15 20:48:58 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 63A40106566B; Thu, 15 Apr 2010 20:48:58 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 50B988FC13; Thu, 15 Apr 2010 20:48:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3FKmwaT014055; Thu, 15 Apr 2010 20:48:58 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3FKmvGu014029; Thu, 15 Apr 2010 20:48:57 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201004152048.o3FKmvGu014029@svn.freebsd.org> From: Warner Losh Date: Thu, 15 Apr 2010 20:48:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206685 - in user/imp/tbemd: contrib/netcat etc/mtree lib/libc/sys sbin/geom/misc sbin/hastd sbin/ifconfig share/man/man4 sys/cam/scsi sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2010 20:48:58 -0000 Author: imp Date: Thu Apr 15 20:48:57 2010 New Revision: 206685 URL: http://svn.freebsd.org/changeset/base/206685 Log: svn merge svn+ssh://svn.freebsd.org/base/head@206684 Added: user/imp/tbemd/share/man/man4/sge.4 - copied unchanged from r206684, head/share/man/man4/sge.4 Modified: user/imp/tbemd/contrib/netcat/nc.1 user/imp/tbemd/contrib/netcat/netcat.c user/imp/tbemd/etc/mtree/BSD.include.dist user/imp/tbemd/lib/libc/sys/sigaction.2 user/imp/tbemd/sbin/geom/misc/subr.c user/imp/tbemd/sbin/hastd/primary.c user/imp/tbemd/sbin/ifconfig/ifconfig.c user/imp/tbemd/share/man/man4/Makefile user/imp/tbemd/share/man/man4/altq.4 user/imp/tbemd/share/man/man4/ktr.4 user/imp/tbemd/share/man/man4/miibus.4 user/imp/tbemd/share/man/man4/netintro.4 user/imp/tbemd/share/man/man4/vlan.4 user/imp/tbemd/sys/cam/scsi/scsi_cd.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/imp/tbemd/sys/ddb/db_sym.c user/imp/tbemd/sys/dev/e1000/if_em.c user/imp/tbemd/sys/dev/e1000/if_igb.c user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c user/imp/tbemd/sys/dev/hwpmc/pmc_events.h user/imp/tbemd/sys/dev/mxge/if_mxge.c user/imp/tbemd/sys/dev/mxge/if_mxge_var.h user/imp/tbemd/sys/dev/sge/if_sge.c user/imp/tbemd/sys/dev/siis/siis.c user/imp/tbemd/sys/dev/usb/input/ukbd.c user/imp/tbemd/sys/geom/eli/g_eli.c user/imp/tbemd/sys/geom/geom_io.c user/imp/tbemd/sys/kern/kern_ktr.c user/imp/tbemd/sys/kern/vfs_cache.c user/imp/tbemd/sys/net/if.c user/imp/tbemd/sys/net/vnet.c user/imp/tbemd/sys/net/vnet.h user/imp/tbemd/sys/netipsec/key.c user/imp/tbemd/usr.sbin/config/config.h user/imp/tbemd/usr.sbin/config/mkoptions.c user/imp/tbemd/usr.sbin/pmcstat/pmcpl_callgraph.c user/imp/tbemd/usr.sbin/pmcstat/pmcpl_gprof.c user/imp/tbemd/usr.sbin/pmcstat/pmcstat_log.c user/imp/tbemd/usr.sbin/sysinstall/devices.c Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) Modified: user/imp/tbemd/contrib/netcat/nc.1 ============================================================================== --- user/imp/tbemd/contrib/netcat/nc.1 Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/contrib/netcat/nc.1 Thu Apr 15 20:48:57 2010 (r206685) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 23, 2010 +.Dd April 15, 2010 .Dt NC 1 .Os .Sh NAME @@ -36,7 +36,7 @@ .Sh SYNOPSIS .Nm nc .Bk -words -.Op Fl 46DdEhklnorStUuvz +.Op Fl 46DdEhklnrStUuvz .Op Fl e Ar IPsec_policy .Op Fl I Ar length .Op Fl i Ar interval @@ -159,15 +159,6 @@ socket option. .It Fl O Ar length Specifies the size of the TCP send buffer. When -.It Fl o -.Dq Once-only mode . -By default, -.Nm -does not terminate on EOF condition on input, -but continues until the network side has been closed down. -Specifying -.Fl o -will make it terminate on EOF as well. .It Fl P Ar proxy_username Specifies a username to present to a proxy server that requires authentication. If no username is specified then authentication will not be attempted. Modified: user/imp/tbemd/contrib/netcat/netcat.c ============================================================================== --- user/imp/tbemd/contrib/netcat/netcat.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/contrib/netcat/netcat.c Thu Apr 15 20:48:57 2010 (r206685) @@ -72,14 +72,12 @@ #define PORT_MAX_LEN 6 /* Command Line Options */ -int Eflag; /* Use IPsec ESP */ int dflag; /* detached, no stdin */ unsigned int iflag; /* Interval Flag */ int jflag; /* use jumbo frames if we can */ int kflag; /* More than one connect */ int lflag; /* Bind to local port */ int nflag; /* Don't do name look up */ -int oflag; /* Once only: stop on EOF */ int FreeBSD_Oflag; /* Do not use TCP options */ char *Pflag; /* Proxy username */ char *pflag; /* Localport flag */ @@ -151,7 +149,7 @@ main(int argc, char *argv[]) sv = NULL; while ((ch = getopt_long(argc, argv, - "46DdEe:hI:i:jklnO:oP:p:rSs:tT:UuV:vw:X:x:z", + "46DdEe:hI:i:jklnoO:P:p:rSs:tT:UuV:vw:X:x:z", longopts, NULL)) != -1) { switch (ch) { case '4': @@ -214,7 +212,7 @@ main(int argc, char *argv[]) nflag = 1; break; case 'o': - oflag = 1; + fprintf(stderr, "option -o is deprecated.\n"); break; case 'P': Pflag = optarg; @@ -282,8 +280,6 @@ main(int argc, char *argv[]) case 'T': Tflag = parse_iptos(optarg); break; - case 0: - break; default: usage(1); } @@ -729,10 +725,9 @@ readwrite(int nfd) } if (!dflag && pfd[1].revents & POLLIN) { - if ((n = read(wfd, buf, plen)) < 0 || - (oflag && n == 0)) { + if ((n = read(wfd, buf, plen)) < 0) return; - } else if (n == 0) { + else if (n == 0) { shutdown(nfd, SHUT_WR); pfd[1].fd = -1; pfd[1].events = 0; @@ -945,7 +940,6 @@ help(void) \t-n Suppress name/port resolutions\n\ \t--no-tcpopt Disable TCP options\n\ \t-O length TCP send buffer length\n\ - \t-o Terminate on EOF on input\n\ \t-P proxyuser\tUsername for proxy authentication\n\ \t-p port\t Specify local port for remote connects\n\ \t-r Randomize remote ports\n\ @@ -995,9 +989,9 @@ usage(int ret) { fprintf(stderr, #ifdef IPSEC - "usage: nc [-46DdEhklnorStUuvz] [-e policy] [-I length] [-i interval] [-O length]\n" + "usage: nc [-46DdEhklnrStUuvz] [-e policy] [-I length] [-i interval] [-O length]\n" #else - "usage: nc [-46DdhklnorStUuvz] [-I length] [-i interval] [-O length]\n" + "usage: nc [-46DdhklnrStUuvz] [-I length] [-i interval] [-O length]\n" #endif "\t [-P proxy_username] [-p source_port] [-s source_ip_address] [-T ToS]\n" "\t [-V fib] [-w timeout] [-X proxy_protocol]\n" Modified: user/imp/tbemd/etc/mtree/BSD.include.dist ============================================================================== --- user/imp/tbemd/etc/mtree/BSD.include.dist Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/etc/mtree/BSD.include.dist Thu Apr 15 20:48:57 2010 (r206685) @@ -104,8 +104,8 @@ .. lmc .. - mfi - .. + mfi + .. mpt mpilib .. Modified: user/imp/tbemd/lib/libc/sys/sigaction.2 ============================================================================== --- user/imp/tbemd/lib/libc/sys/sigaction.2 Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/lib/libc/sys/sigaction.2 Thu Apr 15 20:48:57 2010 (r206685) @@ -496,6 +496,16 @@ or .Dv SIG_IGN this way. .Pp +If preprocessing symbol +.Va _POSIX_C_SOURCE +with the value >= 199309 is not defined, the following declaration for +the handler shall be used: +.Bl -tag -offset indent -width short +.It Tn POSIX Dv SA_SIGINFO : +.Ft void +.Fn handler int "struct __sigaction *" "void *" ; +.El +.Pp If the .Dv SA_SIGINFO flag is not set, the handler function should match Modified: user/imp/tbemd/sbin/geom/misc/subr.c ============================================================================== --- user/imp/tbemd/sbin/geom/misc/subr.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sbin/geom/misc/subr.c Thu Apr 15 20:48:57 2010 (r206685) @@ -236,6 +236,7 @@ g_metadata_store(const char *name, u_cha error = errno; goto out; } + (void)ioctl(fd, DIOCGFLUSH, NULL); out: if (sector != NULL) free(sector); @@ -293,6 +294,7 @@ g_metadata_clear(const char *name, const error = errno; goto out; } + (void)ioctl(fd, DIOCGFLUSH, NULL); out: if (sector != NULL) free(sector); Modified: user/imp/tbemd/sbin/hastd/primary.c ============================================================================== --- user/imp/tbemd/sbin/hastd/primary.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sbin/hastd/primary.c Thu Apr 15 20:48:57 2010 (r206685) @@ -682,7 +682,7 @@ init_ggate(struct hast_resource *res) ggiocreate.gctl_mediasize = res->hr_datasize; ggiocreate.gctl_sectorsize = res->hr_local_sectorsize; ggiocreate.gctl_flags = 0; - ggiocreate.gctl_maxcount = 128; + ggiocreate.gctl_maxcount = G_GATE_MAX_QUEUE_SIZE; ggiocreate.gctl_timeout = 0; ggiocreate.gctl_unit = G_GATE_NAME_GIVEN; snprintf(ggiocreate.gctl_name, sizeof(ggiocreate.gctl_name), "hast/%s", Modified: user/imp/tbemd/sbin/ifconfig/ifconfig.c ============================================================================== --- user/imp/tbemd/sbin/ifconfig/ifconfig.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sbin/ifconfig/ifconfig.c Thu Apr 15 20:48:57 2010 (r206685) @@ -922,19 +922,20 @@ status(const struct afswtch *afp, const ifr.ifr_buffer.buffer = descr; ifr.ifr_buffer.length = descrlen; if (ioctl(s, SIOCGIFDESCR, &ifr) == 0) { - if (strlen(descr) > 0) - printf("\tdescription: %s\n", descr); - break; - } else if (errno == ENAMETOOLONG) - descrlen = ifr.ifr_buffer.length; - else - break; - } else { + if (ifr.ifr_buffer.buffer == descr) { + if (strlen(descr) > 0) + printf("\tdescription: %s\n", + descr); + } else if (ifr.ifr_buffer.length > descrlen) { + descrlen = ifr.ifr_buffer.length; + continue; + } + } + } else warn("unable to allocate memory for interface" "description"); - break; - } - }; + break; + } if (ioctl(s, SIOCGIFCAP, (caddr_t)&ifr) == 0) { if (ifr.ifr_curcap != 0) { Modified: user/imp/tbemd/share/man/man4/Makefile ============================================================================== --- user/imp/tbemd/share/man/man4/Makefile Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/share/man/man4/Makefile Thu Apr 15 20:48:57 2010 (r206685) @@ -350,6 +350,7 @@ MAN= aac.4 \ sem.4 \ ses.4 \ sf.4 \ + sge.4 \ si.4 \ siba.4 \ sio.4 \ Modified: user/imp/tbemd/share/man/man4/altq.4 ============================================================================== --- user/imp/tbemd/share/man/man4/altq.4 Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/share/man/man4/altq.4 Thu Apr 15 20:48:57 2010 (r206685) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 26, 2009 +.Dd April 14, 2010 .Dt ALTQ 4 .Os .Sh NAME @@ -151,6 +151,7 @@ They have been applied to the following .Xr rl 4 , .Xr rum 4 , .Xr sf 4 , +.Xr sge 4 , .Xr sis 4 , .Xr sk 4 , .Xr ste 4 , Modified: user/imp/tbemd/share/man/man4/ktr.4 ============================================================================== --- user/imp/tbemd/share/man/man4/ktr.4 Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/share/man/man4/ktr.4 Thu Apr 15 20:48:57 2010 (r206685) @@ -122,7 +122,7 @@ option sets the flag to one. The KTR buffer can be examined from within .Xr ddb 4 via the -.Ic show ktr Op Cm /v +.Ic show ktr Op Cm /vV command. This command displays the contents of the trace buffer one page at a time. At the @@ -136,6 +136,10 @@ If the .Cm /v modifier is specified, then they are displayed in addition to the normal output. +If the +.Cm /V +modifier is specified, then just the timestamp is displayed in +addition to the normal output. Note that the events are displayed in reverse chronological order. That is, the most recent events are displayed first. .Ss Logging ktr to Disk @@ -167,7 +171,9 @@ the next invocation. enables logging of .Nm entries to disk if it is set to one. -Setting this to 0 will terminate logging. +Setting this to 0 will terminate logging to disk and revert to +logging to the normal ktr ring buffer. +Data is not sent to the ring buffer while logging to disk. .It Va debug.ktr.alq_max is the maximum number of entries that will be recorded to disk, or 0 for infinite. Modified: user/imp/tbemd/share/man/man4/miibus.4 ============================================================================== --- user/imp/tbemd/share/man/man4/miibus.4 Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/share/man/man4/miibus.4 Thu Apr 15 20:48:57 2010 (r206685) @@ -8,7 +8,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 14, 2009 +.Dd April 14, 2010 .Dt MIIBUS 4 .Os .Sh NAME @@ -97,6 +97,8 @@ RealTek 8129/8139 RealTek RTL8150 USB To Fast Ethernet .It Xr sf 4 Adaptec AIC-6915 +.It Xr sge 4 +Silicon Integrated Systems SiS190/191 Ethernet .It Xr sis 4 Silicon Integrated Systems SiS 900/SiS 7016 .It Xr sk 4 @@ -158,6 +160,7 @@ but as a result are not well behaved new .Xr rl 4 , .Xr rue 4 , .Xr sf 4 , +.Xr sge 4 , .Xr sis 4 , .Xr sk 4 , .Xr ste 4 , Modified: user/imp/tbemd/share/man/man4/netintro.4 ============================================================================== --- user/imp/tbemd/share/man/man4/netintro.4 Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/share/man/man4/netintro.4 Thu Apr 15 20:48:57 2010 (r206685) @@ -32,7 +32,7 @@ .\" @(#)netintro.4 8.2 (Berkeley) 11/30/93 .\" $FreeBSD$ .\" -.Dd January 26, 2010 +.Dd April 14, 2010 .Dt NETINTRO 4 .Os .Sh NAME @@ -292,8 +292,11 @@ field of struct passed in as parameter, and the length would include the terminating nul character. If there is not enough space to hold the interface length, -no copy would be done and an -error would be returned. +no copy would be done and the +.Va buffer +field of +.Va ifru_buffer +would be set to NULL. The kernel will store the buffer length in the .Va length field upon return, regardless whether the buffer itself is Copied: user/imp/tbemd/share/man/man4/sge.4 (from r206684, head/share/man/man4/sge.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/share/man/man4/sge.4 Thu Apr 15 20:48:57 2010 (r206685, copy of r206684, head/share/man/man4/sge.4) @@ -0,0 +1,120 @@ +.\" Copyright (c) 2010 Pyun YongHyeon +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd April 14, 2010 +.Dt SGE 4 +.Os +.Sh NAME +.Nm sge +.Nd Silicon Integrated Systems SiS190/191 Fast/Gigabit Ethernet driver +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device miibus" +.Cd "device sge" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +if_sge="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +device driver provides support for SiS190 Fast Ethernet +controllers and SiS191 Fast/Gigabit Ethernet controllers. +.Pp +All LOMs supported by the +.Nm +driver have TCP/UDP/IP checksum offload for transmit and receive. +Due to lack of documentation more offloading features like TCP +segmentation offload (TSO), hardware VLAN tag stripping/insertion +features, Wake On Lan (WOL), Jumbo frame and an interrupt moderation +mechanism are not supported yet. +.Pp +The +.Nm +driver supports the following media types: +.Bl -tag -width ".Cm 10baseT/UTP" +.It Cm autoselect +Enable autoselection of the media type and options. +The user can manually override +the autoselected mode by adding media options to +.Xr rc.conf 5 . +.It Cm 10baseT/UTP +Set 10Mbps operation. +.It Cm 100baseTX +Set 100Mbps (Fast Ethernet) operation. +.It Cm 1000baseTX +Set 1000baseTX operation over twisted pair. +.El +.Pp +The +.Nm +driver supports the following media options: +.Bl -tag -width ".Cm full-duplex" +.It Cm full-duplex +Force full duplex operation. +.It Cm half-duplex +Force half duplex operation. +.El +.Pp +For more information on configuring this device, see +.Xr ifconfig 8 . +.Sh HARDWARE +The +.Nm +device driver provides support for the following Ethernet controllers: +.Pp +.Bl -bullet -compact +.It +SiS190 Fast Ethernet controller +.It +SiS191 Fast/Gigabit Ethernet controller +.El +.Sh SEE ALSO +.Xr altq 4 , +.Xr arp 4 , +.Xr miibus 4 , +.Xr netintro 4 , +.Xr ng_ether 4 , +.Xr vlan 4 , +.Xr ifconfig 8 +.Sh HISTORY +The +.Nm +driver was written by +.An Alexander Pohoyda +.Aq alexander.pohoyda@gmx.net . +And enhanced by +.An Nikolay Denev +.Aq ndenev@gmail.com . +It first appeared in +.Fx 8.1 . Modified: user/imp/tbemd/share/man/man4/vlan.4 ============================================================================== --- user/imp/tbemd/share/man/man4/vlan.4 Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/share/man/man4/vlan.4 Thu Apr 15 20:48:57 2010 (r206685) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 14, 2009 +.Dd April 14, 2010 .Dt VLAN 4 .Os .Sh NAME @@ -172,6 +172,7 @@ natively: .Xr nve 4 , .Xr rl 4 , .Xr sf 4 , +.Xr sge 4 , .Xr sis 4 , .Xr sk 4 , .Xr ste 4 , Modified: user/imp/tbemd/sys/cam/scsi/scsi_cd.c ============================================================================== --- user/imp/tbemd/sys/cam/scsi/scsi_cd.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/cam/scsi/scsi_cd.c Thu Apr 15 20:48:57 2010 (r206685) @@ -2773,8 +2773,12 @@ cdcheckmedia(struct cam_periph *periph) softc->flags &= ~(CD_FLAG_VALID_MEDIA|CD_FLAG_VALID_TOC); cdprevent(periph, PR_ALLOW); return (error); - } else + } else { softc->flags |= CD_FLAG_VALID_MEDIA; + softc->disk->d_sectorsize = softc->params.blksize; + softc->disk->d_mediasize = + (off_t)softc->params.blksize * softc->params.disksize; + } /* * Now we check the table of contents. This (currently) is only @@ -2863,9 +2867,6 @@ cdcheckmedia(struct cam_periph *periph) } softc->flags |= CD_FLAG_VALID_TOC; - softc->disk->d_sectorsize = softc->params.blksize; - softc->disk->d_mediasize = - (off_t)softc->params.blksize * softc->params.disksize; bailout: Modified: user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c ============================================================================== --- user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Thu Apr 15 20:48:57 2010 (r206685) @@ -868,13 +868,15 @@ zfs_root(vfs_t *vfsp, int flags, vnode_t ZFS_ENTER_NOERROR(zfsvfs); error = zfs_zget(zfsvfs, zfsvfs->z_root, &rootzp); + + ZFS_EXIT(zfsvfs); + if (error == 0) { *vpp = ZTOV(rootzp); error = vn_lock(*vpp, flags); (*vpp)->v_vflag |= VV_ROOT; } - ZFS_EXIT(zfsvfs); return (error); } @@ -1143,13 +1145,13 @@ zfs_vget(vfs_t *vfsp, ino_t ino, int fla VN_RELE(ZTOV(zp)); err = EINVAL; } + ZFS_EXIT(zfsvfs); if (err != 0) *vpp = NULL; else { *vpp = ZTOV(zp); vn_lock(*vpp, flags); } - ZFS_EXIT(zfsvfs); return (err); } @@ -1237,8 +1239,8 @@ zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, vno } else { VN_HOLD(*vpp); } - vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); ZFS_EXIT(zfsvfs); + vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); return (0); } @@ -1259,10 +1261,11 @@ zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, vno return (EINVAL); } + ZFS_EXIT(zfsvfs); + *vpp = ZTOV(zp); vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); vnode_create_vobject(*vpp, zp->z_phys->zp_size, curthread); - ZFS_EXIT(zfsvfs); return (0); } Modified: user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Thu Apr 15 20:48:57 2010 (r206685) @@ -1209,15 +1209,17 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode ltype = VOP_ISLOCKED(dvp); VOP_UNLOCK(dvp, 0); } + ZFS_EXIT(zfsvfs); error = vn_lock(*vpp, cnp->cn_lkflags); if (cnp->cn_flags & ISDOTDOT) vn_lock(dvp, ltype | LK_RETRY); if (error != 0) { VN_RELE(*vpp); *vpp = NULL; - ZFS_EXIT(zfsvfs); return (error); } + } else { + ZFS_EXIT(zfsvfs); } #ifdef FREEBSD_NAMECACHE @@ -1237,8 +1239,6 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode } #endif - ZFS_EXIT(zfsvfs); - return (error); } Modified: user/imp/tbemd/sys/ddb/db_sym.c ============================================================================== --- user/imp/tbemd/sys/ddb/db_sym.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/ddb/db_sym.c Thu Apr 15 20:48:57 2010 (r206685) @@ -64,12 +64,6 @@ static boolean_t db_line_at_pc(c_db_sym_ static int db_cpu = -1; #ifdef VIMAGE -extern uintptr_t *__start_set_vnet; -extern uintptr_t *__stop_set_vnet; - -#define VNET_START (uintptr_t)&__start_set_vnet -#define VNET_STOP (uintptr_t)&__stop_set_vnet - static void *db_vnet = NULL; #endif Modified: user/imp/tbemd/sys/dev/e1000/if_em.c ============================================================================== --- user/imp/tbemd/sys/dev/e1000/if_em.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/dev/e1000/if_em.c Thu Apr 15 20:48:57 2010 (r206685) @@ -93,7 +93,7 @@ int em_display_debug_stats = 0; /********************************************************************* * Driver version: *********************************************************************/ -char em_driver_version[] = "7.0.4"; +char em_driver_version[] = "7.0.5"; /********************************************************************* @@ -1484,12 +1484,17 @@ em_msix_tx(void *arg) { struct tx_ring *txr = arg; struct adapter *adapter = txr->adapter; + bool more; ++txr->tx_irq; EM_TX_LOCK(txr); - em_txeof(txr); + more = em_txeof(txr); EM_TX_UNLOCK(txr); - E1000_WRITE_REG(&adapter->hw, E1000_IMS, txr->ims); + if (more) + taskqueue_enqueue(txr->tq, &txr->tx_task); + else + /* Reenable this interrupt */ + E1000_WRITE_REG(&adapter->hw, E1000_IMS, txr->ims); return; } Modified: user/imp/tbemd/sys/dev/e1000/if_igb.c ============================================================================== --- user/imp/tbemd/sys/dev/e1000/if_igb.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/dev/e1000/if_igb.c Thu Apr 15 20:48:57 2010 (r206685) @@ -99,7 +99,7 @@ int igb_display_debug_stats = 0; /********************************************************************* * Driver version: *********************************************************************/ -char igb_driver_version[] = "version - 1.9.4"; +char igb_driver_version[] = "version - 1.9.5"; /********************************************************************* @@ -758,8 +758,15 @@ igb_start_locked(struct tx_ring *txr, st if (!adapter->link_active) return; - while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { + /* Call cleanup if number of TX descriptors low */ + if (txr->tx_avail <= IGB_TX_CLEANUP_THRESHOLD) + igb_txeof(txr); + while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { + if (txr->tx_avail <= IGB_TX_OP_THRESHOLD) { + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + break; + } IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head); if (m_head == NULL) break; @@ -779,6 +786,7 @@ igb_start_locked(struct tx_ring *txr, st ETHER_BPF_MTAP(ifp, m_head); /* Set watchdog on */ + txr->watchdog_time = ticks; txr->watchdog_check = TRUE; } } @@ -817,8 +825,6 @@ igb_mq_start(struct ifnet *ifp, struct m /* Which queue to use */ if ((m->m_flags & M_FLOWID) != 0) i = m->m_pkthdr.flowid % adapter->num_queues; - else - i = curcpu % adapter->num_queues; txr = &adapter->tx_rings[i]; @@ -847,6 +853,10 @@ igb_mq_start_locked(struct ifnet *ifp, s return (err); } + /* Call cleanup if number of TX descriptors low */ + if (txr->tx_avail <= IGB_TX_CLEANUP_THRESHOLD) + igb_txeof(txr); + enq = 0; if (m == NULL) { next = drbr_dequeue(ifp, txr->br); @@ -856,6 +866,7 @@ igb_mq_start_locked(struct ifnet *ifp, s next = drbr_dequeue(ifp, txr->br); } else next = m; + /* Process the queue */ while (next != NULL) { if ((err = igb_xmit(txr, &next)) != 0) { @@ -877,6 +888,7 @@ igb_mq_start_locked(struct ifnet *ifp, s if (enq > 0) { /* Set the watchdog */ txr->watchdog_check = TRUE; + txr->watchdog_time = ticks; } return (err); } @@ -1248,19 +1260,13 @@ igb_handle_que(void *context, int pendin struct adapter *adapter = que->adapter; struct tx_ring *txr = que->txr; struct ifnet *ifp = adapter->ifp; - u32 loop = IGB_MAX_LOOP; bool more; - /* RX first */ - do { + if (ifp->if_drv_flags & IFF_DRV_RUNNING) { more = igb_rxeof(que, -1); - } while (loop-- && more); - if (IGB_TX_TRYLOCK(txr)) { - loop = IGB_MAX_LOOP; - do { - more = igb_txeof(txr); - } while (loop-- && more); + IGB_TX_LOCK(txr); + igb_txeof(txr); #if __FreeBSD_version >= 800000 igb_mq_start_locked(ifp, txr, NULL); #else @@ -1268,6 +1274,10 @@ igb_handle_que(void *context, int pendin igb_start_locked(txr, ifp); #endif IGB_TX_UNLOCK(txr); + if (more) { + taskqueue_enqueue(que->tq, &que->que_task); + return; + } } /* Reenable this interrupt */ Modified: user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c ============================================================================== --- user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c Thu Apr 15 20:48:57 2010 (r206685) @@ -603,7 +603,7 @@ static struct iap_event_descr iap_events IAPDESCR(06H_0FH, 0x06, 0x0F, IAP_F_FM | IAP_F_I7O), IAPDESCR(07H_00H, 0x07, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CC2), - IAPDESCR(07H_01H, 0x07, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_WM), + IAPDESCR(07H_01H, 0x07, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_I7 | IAP_F_WM), IAPDESCR(07H_02H, 0x07, 0x02, IAP_F_FM | IAP_F_ALLCPUSCORE2), IAPDESCR(07H_03H, 0x07, 0x03, IAP_F_FM | IAP_F_ALLCPUSCORE2), IAPDESCR(07H_06H, 0x07, 0x06, IAP_F_FM | IAP_F_CA), @@ -1053,6 +1053,7 @@ static struct iap_event_descr iap_events IAPDESCR(B0H_02H, 0xB0, 0x02, IAP_F_FM | IAP_F_WM | IAP_F_I7O), IAPDESCR(B0H_04H, 0xB0, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_I7O), IAPDESCR(B0H_08H, 0xB0, 0x08, IAP_F_FM | IAP_F_WM | IAP_F_I7O), + IAPDESCR(B0H_10H, 0xB0, 0x10, IAP_F_FM | IAP_F_WM | IAP_F_I7O), IAPDESCR(B0H_20H, 0xB0, 0x20, IAP_F_FM | IAP_F_I7O), IAPDESCR(B0H_40H, 0xB0, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(B0H_80H, 0xB0, 0x80, IAP_F_FM | IAP_F_CA | IAP_F_WM | IAP_F_I7O), Modified: user/imp/tbemd/sys/dev/hwpmc/pmc_events.h ============================================================================== --- user/imp/tbemd/sys/dev/hwpmc/pmc_events.h Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/dev/hwpmc/pmc_events.h Thu Apr 15 20:48:57 2010 (r206685) @@ -2207,7 +2207,7 @@ __PMC_EV_ALIAS("OFFCORE_REQUESTS.DEMAND. __PMC_EV_ALIAS("OFFCORE_REQUESTS.DEMAND.READ_CODE", IAP_EVENT_B0H_02H) \ __PMC_EV_ALIAS("OFFCORE_REQUESTS.DEMAND.RFO", IAP_EVENT_B0H_04H) \ __PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY.READ", IAP_EVENT_B0H_08H) \ -__PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY.RFO", IAP_EVENT_80H_10H) \ +__PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY.RFO", IAP_EVENT_B0H_10H) \ __PMC_EV_ALIAS("OFFCORE_REQUESTS.L1D_WRITEBACK", IAP_EVENT_B0H_40H) \ __PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY", IAP_EVENT_B0H_80H) \ __PMC_EV_ALIAS("UOPS_EXECUTED.PORT0", IAP_EVENT_B1H_01H) \ Modified: user/imp/tbemd/sys/dev/mxge/if_mxge.c ============================================================================== --- user/imp/tbemd/sys/dev/mxge/if_mxge.c Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/dev/mxge/if_mxge.c Thu Apr 15 20:48:57 2010 (r206685) @@ -883,6 +883,9 @@ mxge_send_cmd(mxge_softc_t *sc, uint32_t case MXGEFW_CMD_ERROR_BUSY: err = EBUSY; break; + case MXGEFW_CMD_ERROR_I2C_ABSENT: + err = ENXIO; + break; default: device_printf(sc->dev, "mxge: command %d " @@ -2782,37 +2785,25 @@ static struct mxge_media_type mxge_sfp_m }; static void -mxge_set_media(mxge_softc_t *sc, int type) +mxge_media_set(mxge_softc_t *sc, int media_type) { - sc->media_flags |= type; - ifmedia_add(&sc->media, sc->media_flags, 0, NULL); - ifmedia_set(&sc->media, sc->media_flags); -} + + ifmedia_add(&sc->media, IFM_ETHER | IFM_FDX | media_type, + 0, NULL); + ifmedia_set(&sc->media, IFM_ETHER | IFM_FDX | media_type); + sc->current_media = media_type; + sc->media.ifm_media = sc->media.ifm_cur->ifm_media; +} -/* - * Determine the media type for a NIC. Some XFPs will identify - * themselves only when their link is up, so this is initiated via a - * link up interrupt. However, this can potentially take up to - * several milliseconds, so it is run via the watchdog routine, rather - * than in the interrupt handler itself. This need only be done - * once, not each time the link is up. - */ static void -mxge_media_probe(mxge_softc_t *sc) +mxge_media_init(mxge_softc_t *sc) { - mxge_cmd_t cmd; - char *cage_type; char *ptr; - struct mxge_media_type *mxge_media_types = NULL; - int i, err, ms, mxge_media_type_entries; - uint32_t byte; - - sc->need_media_probe = 0; + int i; - /* if we've already set a media type, we're done */ - if (sc->media_flags != (IFM_ETHER | IFM_AUTO)) - return; + ifmedia_removeall(&sc->media); + mxge_media_set(sc, IFM_AUTO); /* * parse the product code to deterimine the interface type @@ -2823,6 +2814,7 @@ mxge_media_probe(mxge_softc_t *sc) ptr = sc->product_code_string; if (ptr == NULL) { device_printf(sc->dev, "Missing product code\n"); + return; } for (i = 0; i < 3; i++, ptr++) { @@ -2835,17 +2827,44 @@ mxge_media_probe(mxge_softc_t *sc) } if (*ptr == 'C') { /* -C is CX4 */ - mxge_set_media(sc, IFM_10G_CX4); - return; - } - else if (*ptr == 'Q') { + sc->connector = MXGE_CX4; + mxge_media_set(sc, IFM_10G_CX4); + } else if (*ptr == 'Q') { /* -Q is Quad Ribbon Fiber */ + sc->connector = MXGE_QRF; device_printf(sc->dev, "Quad Ribbon Fiber Media\n"); /* FreeBSD has no media type for Quad ribbon fiber */ - return; + } else if (*ptr == 'R') { + /* -R is XFP */ + sc->connector = MXGE_XFP; + } else if (*ptr == 'S' || *(ptr +1) == 'S') { + /* -S or -2S is SFP+ */ + sc->connector = MXGE_SFP; + } else { + device_printf(sc->dev, "Unknown media type: %c\n", *ptr); } +} - if (*ptr == 'R') { +/* + * Determine the media type for a NIC. Some XFPs will identify + * themselves only when their link is up, so this is initiated via a + * link up interrupt. However, this can potentially take up to + * several milliseconds, so it is run via the watchdog routine, rather + * than in the interrupt handler itself. + */ +static void +mxge_media_probe(mxge_softc_t *sc) +{ + mxge_cmd_t cmd; + char *cage_type; + + struct mxge_media_type *mxge_media_types = NULL; + int i, err, ms, mxge_media_type_entries; + uint32_t byte; + + sc->need_media_probe = 0; + + if (sc->connector == MXGE_XFP) { /* -R is XFP */ mxge_media_types = mxge_xfp_media_types; mxge_media_type_entries = @@ -2853,9 +2872,7 @@ mxge_media_probe(mxge_softc_t *sc) sizeof (mxge_xfp_media_types[0]); byte = MXGE_XFP_COMPLIANCE_BYTE; cage_type = "XFP"; - } - - if (*ptr == 'S' || *(ptr +1) == 'S') { + } else if (sc->connector == MXGE_SFP) { /* -S or -2S is SFP+ */ mxge_media_types = mxge_sfp_media_types; mxge_media_type_entries = @@ -2863,10 +2880,8 @@ mxge_media_probe(mxge_softc_t *sc) sizeof (mxge_sfp_media_types[0]); cage_type = "SFP+"; byte = 3; - } - - if (mxge_media_types == NULL) { - device_printf(sc->dev, "Unknown media type: %c\n", *ptr); + } else { + /* nothing to do; media type cannot change */ return; } @@ -2909,7 +2924,10 @@ mxge_media_probe(mxge_softc_t *sc) if (mxge_verbose) device_printf(sc->dev, "%s:%s\n", cage_type, mxge_media_types[0].name); - mxge_set_media(sc, mxge_media_types[0].flag); + if (sc->current_media != mxge_media_types[0].flag) { + mxge_media_init(sc); + mxge_media_set(sc, mxge_media_types[0].flag); + } return; } for (i = 1; i < mxge_media_type_entries; i++) { @@ -2919,12 +2937,16 @@ mxge_media_probe(mxge_softc_t *sc) cage_type, mxge_media_types[i].name); - mxge_set_media(sc, mxge_media_types[i].flag); + if (sc->current_media != mxge_media_types[i].flag) { + mxge_media_init(sc); + mxge_media_set(sc, mxge_media_types[i].flag); + } return; } } - device_printf(sc->dev, "%s media 0x%x unknown\n", cage_type, - cmd.data0); + if (mxge_verbose) + device_printf(sc->dev, "%s media 0x%x unknown\n", + cage_type, cmd.data0); return; } @@ -2988,10 +3010,12 @@ mxge_intr(void *arg) sc->link_state = stats->link_up; if (sc->link_state) { if_link_state_change(sc->ifp, LINK_STATE_UP); + sc->ifp->if_baudrate = IF_Gbps(10UL); if (mxge_verbose) device_printf(sc->dev, "link up\n"); } else { if_link_state_change(sc->ifp, LINK_STATE_DOWN); + sc->ifp->if_baudrate = 0; if (mxge_verbose) device_printf(sc->dev, "link down\n"); } @@ -4026,9 +4050,9 @@ mxge_media_status(struct ifnet *ifp, str if (sc == NULL) return; ifmr->ifm_status = IFM_AVALID; + ifmr->ifm_active = IFM_ETHER | IFM_FDX; ifmr->ifm_status |= sc->link_state ? IFM_ACTIVE : 0; - ifmr->ifm_active = IFM_AUTO | IFM_ETHER; - ifmr->ifm_active |= sc->link_state ? IFM_FDX : 0; + ifmr->ifm_active |= sc->current_media; } static int @@ -4135,6 +4159,9 @@ mxge_ioctl(struct ifnet *ifp, u_long com break; case SIOCGIFMEDIA: + mtx_lock(&sc->driver_mtx); + mxge_media_probe(sc); + mtx_unlock(&sc->driver_mtx); err = ifmedia_ioctl(ifp, (struct ifreq *)data, &sc->media, command); break; @@ -4732,7 +4759,7 @@ mxge_attach(device_t dev) ifp->if_baudrate = IF_Gbps(10UL); ifp->if_capabilities = IFCAP_RXCSUM | IFCAP_TXCSUM | IFCAP_TSO4 | - IFCAP_VLAN_MTU; + IFCAP_VLAN_MTU | IFCAP_LINKSTATE; #ifdef INET ifp->if_capabilities |= IFCAP_LRO; #endif @@ -4766,7 +4793,7 @@ mxge_attach(device_t dev) /* Initialise the ifmedia structure */ ifmedia_init(&sc->media, 0, mxge_media_change, mxge_media_status); - mxge_set_media(sc, IFM_ETHER | IFM_AUTO); + mxge_media_init(sc); mxge_media_probe(sc); sc->dying = 0; ether_ifattach(ifp, sc->mac_addr); Modified: user/imp/tbemd/sys/dev/mxge/if_mxge_var.h ============================================================================== --- user/imp/tbemd/sys/dev/mxge/if_mxge_var.h Thu Apr 15 19:45:03 2010 (r206684) +++ user/imp/tbemd/sys/dev/mxge/if_mxge_var.h Thu Apr 15 20:48:57 2010 (r206685) @@ -268,6 +268,8 @@ struct mxge_softc { int num_slices; int rx_ring_size; int dying; + int connector; + int current_media; mxge_dma_t dmabench_dma; struct callout co_hdl; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Sat Apr 17 02:28:25 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE305106564A; Sat, 17 Apr 2010 02:28:25 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B98CC8FC16; Sat, 17 Apr 2010 02:28:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3H2SPMR019654; Sat, 17 Apr 2010 02:28:25 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3H2SPVL019617; Sat, 17 Apr 2010 02:28:25 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004170228.o3H2SPVL019617@svn.freebsd.org> From: Juli Mallett Date: Sat, 17 Apr 2010 02:28:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206719 - in user/jmallett/octeon: . contrib/netcat etc etc/mtree etc/rc.d lib/libc/gen lib/libc/sys lib/libz sbin/geom/misc sbin/hastd sbin/ifconfig share/man/man4 sys/cam/scsi sys/cdd... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2010 02:28:25 -0000 Author: jmallett Date: Sat Apr 17 02:28:24 2010 New Revision: 206719 URL: http://svn.freebsd.org/changeset/base/206719 Log: Merge from head. Modified: user/jmallett/octeon/ObsoleteFiles.inc user/jmallett/octeon/contrib/netcat/nc.1 user/jmallett/octeon/contrib/netcat/netcat.c user/jmallett/octeon/etc/mtree/BSD.include.dist user/jmallett/octeon/etc/rc.d/Makefile user/jmallett/octeon/etc/rc.subr user/jmallett/octeon/lib/libc/gen/fnmatch.c user/jmallett/octeon/lib/libc/sys/sigaction.2 user/jmallett/octeon/lib/libz/ChangeLog user/jmallett/octeon/lib/libz/README user/jmallett/octeon/lib/libz/Symbol.map user/jmallett/octeon/lib/libz/deflate.c user/jmallett/octeon/lib/libz/gzguts.h user/jmallett/octeon/lib/libz/gzlib.c user/jmallett/octeon/lib/libz/inftrees.c user/jmallett/octeon/lib/libz/minigzip.c user/jmallett/octeon/lib/libz/zconf.h user/jmallett/octeon/lib/libz/zlib.3 user/jmallett/octeon/lib/libz/zlib.h user/jmallett/octeon/lib/libz/zutil.h user/jmallett/octeon/sbin/geom/misc/subr.c user/jmallett/octeon/sbin/hastd/hastd.c user/jmallett/octeon/sbin/hastd/pjdlog.c user/jmallett/octeon/sbin/hastd/primary.c user/jmallett/octeon/sbin/ifconfig/ifconfig.c user/jmallett/octeon/share/man/man4/ktr.4 user/jmallett/octeon/share/man/man4/netintro.4 user/jmallett/octeon/sys/cam/scsi/scsi_cd.c user/jmallett/octeon/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c user/jmallett/octeon/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/jmallett/octeon/sys/ddb/db_sym.c user/jmallett/octeon/sys/dev/hwpmc/hwpmc_core.c user/jmallett/octeon/sys/dev/hwpmc/pmc_events.h user/jmallett/octeon/sys/dev/ixgbe/ixgbe.c user/jmallett/octeon/sys/dev/mxge/if_mxge.c user/jmallett/octeon/sys/dev/mxge/if_mxge_var.h user/jmallett/octeon/sys/dev/sge/if_sge.c user/jmallett/octeon/sys/dev/siis/siis.c user/jmallett/octeon/sys/dev/usb/input/ukbd.c user/jmallett/octeon/sys/fs/devfs/devfs_devs.c user/jmallett/octeon/sys/fs/devfs/devfs_int.h user/jmallett/octeon/sys/fs/nfs/nfs_commonport.c user/jmallett/octeon/sys/fs/nfs/nfsclstate.h user/jmallett/octeon/sys/fs/nfsclient/nfs_clport.c user/jmallett/octeon/sys/fs/nfsclient/nfs_clrpcops.c user/jmallett/octeon/sys/fs/nfsclient/nfs_clstate.c user/jmallett/octeon/sys/geom/eli/g_eli.c user/jmallett/octeon/sys/geom/geom_io.c user/jmallett/octeon/sys/kern/kern_ktr.c user/jmallett/octeon/sys/kern/vfs_cache.c user/jmallett/octeon/sys/mips/include/profile.h user/jmallett/octeon/sys/mips/mips/mem.c user/jmallett/octeon/sys/mips/mips/trap.c user/jmallett/octeon/sys/net/if.c user/jmallett/octeon/sys/net/vnet.c user/jmallett/octeon/sys/net/vnet.h user/jmallett/octeon/sys/netipsec/key.c user/jmallett/octeon/tools/regression/lib/libc/gen/Makefile user/jmallett/octeon/usr.bin/indent/lexi.c user/jmallett/octeon/usr.sbin/config/config.h user/jmallett/octeon/usr.sbin/config/mkoptions.c user/jmallett/octeon/usr.sbin/pmcstat/pmcpl_callgraph.c user/jmallett/octeon/usr.sbin/pmcstat/pmcpl_gprof.c user/jmallett/octeon/usr.sbin/pmcstat/pmcstat_log.c Directory Properties: user/jmallett/octeon/ (props changed) user/jmallett/octeon/lib/libz/ (props changed) user/jmallett/octeon/sys/contrib/x86emu/ (props changed) Modified: user/jmallett/octeon/ObsoleteFiles.inc ============================================================================== --- user/jmallett/octeon/ObsoleteFiles.inc Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/ObsoleteFiles.inc Sat Apr 17 02:28:24 2010 (r206719) @@ -14,6 +14,18 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20100416: [mips] removed +.if ${TARGET_ARCH} == "mips" +OLD_FILES+=usr/include/machine/psl.h +.endif +# 20100415: [mips] removed unused headers +.if ${TARGET_ARCH} == "mips" +OLD_FILES+=usr/include/machine/archtype.h +OLD_FILES+=usr/include/machine/segments.h +OLD_FILES+=usr/include/machine/rm7000.h +OLD_FILES+=usr/include/machine/defs.h +OLD_FILES+=usr/include/machine/queue.h +.endif # 20100326: [ia64] removed .if ${TARGET_ARCH} == "ia64" OLD_FILES+=usr/include/machine/nexusvar.h Modified: user/jmallett/octeon/contrib/netcat/nc.1 ============================================================================== --- user/jmallett/octeon/contrib/netcat/nc.1 Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/contrib/netcat/nc.1 Sat Apr 17 02:28:24 2010 (r206719) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 23, 2010 +.Dd April 15, 2010 .Dt NC 1 .Os .Sh NAME @@ -36,7 +36,7 @@ .Sh SYNOPSIS .Nm nc .Bk -words -.Op Fl 46DdEhklnorStUuvz +.Op Fl 46DdEhklnrStUuvz .Op Fl e Ar IPsec_policy .Op Fl I Ar length .Op Fl i Ar interval @@ -159,15 +159,6 @@ socket option. .It Fl O Ar length Specifies the size of the TCP send buffer. When -.It Fl o -.Dq Once-only mode . -By default, -.Nm -does not terminate on EOF condition on input, -but continues until the network side has been closed down. -Specifying -.Fl o -will make it terminate on EOF as well. .It Fl P Ar proxy_username Specifies a username to present to a proxy server that requires authentication. If no username is specified then authentication will not be attempted. Modified: user/jmallett/octeon/contrib/netcat/netcat.c ============================================================================== --- user/jmallett/octeon/contrib/netcat/netcat.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/contrib/netcat/netcat.c Sat Apr 17 02:28:24 2010 (r206719) @@ -72,14 +72,12 @@ #define PORT_MAX_LEN 6 /* Command Line Options */ -int Eflag; /* Use IPsec ESP */ int dflag; /* detached, no stdin */ unsigned int iflag; /* Interval Flag */ int jflag; /* use jumbo frames if we can */ int kflag; /* More than one connect */ int lflag; /* Bind to local port */ int nflag; /* Don't do name look up */ -int oflag; /* Once only: stop on EOF */ int FreeBSD_Oflag; /* Do not use TCP options */ char *Pflag; /* Proxy username */ char *pflag; /* Localport flag */ @@ -151,7 +149,7 @@ main(int argc, char *argv[]) sv = NULL; while ((ch = getopt_long(argc, argv, - "46DdEe:hI:i:jklnO:oP:p:rSs:tT:UuV:vw:X:x:z", + "46DdEe:hI:i:jklnoO:P:p:rSs:tT:UuV:vw:X:x:z", longopts, NULL)) != -1) { switch (ch) { case '4': @@ -214,7 +212,7 @@ main(int argc, char *argv[]) nflag = 1; break; case 'o': - oflag = 1; + fprintf(stderr, "option -o is deprecated.\n"); break; case 'P': Pflag = optarg; @@ -282,8 +280,6 @@ main(int argc, char *argv[]) case 'T': Tflag = parse_iptos(optarg); break; - case 0: - break; default: usage(1); } @@ -574,10 +570,8 @@ remote_connect(const char *host, const c if (sflag || pflag) { struct addrinfo ahints, *ares; -#ifdef SO_BINDANY - /* try SO_BINDANY, but don't insist */ - setsockopt(s, SOL_SOCKET, SO_BINDANY, &on, sizeof(on)); -#endif + /* try IP_BINDANY, but don't insist */ + setsockopt(s, IPPROTO_IP, IP_BINDANY, &on, sizeof(on)); memset(&ahints, 0, sizeof(struct addrinfo)); ahints.ai_family = res0->ai_family; ahints.ai_socktype = uflag ? SOCK_DGRAM : SOCK_STREAM; @@ -729,10 +723,9 @@ readwrite(int nfd) } if (!dflag && pfd[1].revents & POLLIN) { - if ((n = read(wfd, buf, plen)) < 0 || - (oflag && n == 0)) { + if ((n = read(wfd, buf, plen)) < 0) return; - } else if (n == 0) { + else if (n == 0) { shutdown(nfd, SHUT_WR); pfd[1].fd = -1; pfd[1].events = 0; @@ -945,7 +938,6 @@ help(void) \t-n Suppress name/port resolutions\n\ \t--no-tcpopt Disable TCP options\n\ \t-O length TCP send buffer length\n\ - \t-o Terminate on EOF on input\n\ \t-P proxyuser\tUsername for proxy authentication\n\ \t-p port\t Specify local port for remote connects\n\ \t-r Randomize remote ports\n\ @@ -995,9 +987,9 @@ usage(int ret) { fprintf(stderr, #ifdef IPSEC - "usage: nc [-46DdEhklnorStUuvz] [-e policy] [-I length] [-i interval] [-O length]\n" + "usage: nc [-46DdEhklnrStUuvz] [-e policy] [-I length] [-i interval] [-O length]\n" #else - "usage: nc [-46DdhklnorStUuvz] [-I length] [-i interval] [-O length]\n" + "usage: nc [-46DdhklnrStUuvz] [-I length] [-i interval] [-O length]\n" #endif "\t [-P proxy_username] [-p source_port] [-s source_ip_address] [-T ToS]\n" "\t [-V fib] [-w timeout] [-X proxy_protocol]\n" Modified: user/jmallett/octeon/etc/mtree/BSD.include.dist ============================================================================== --- user/jmallett/octeon/etc/mtree/BSD.include.dist Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/etc/mtree/BSD.include.dist Sat Apr 17 02:28:24 2010 (r206719) @@ -104,8 +104,8 @@ .. lmc .. - mfi - .. + mfi + .. mpt mpilib .. Modified: user/jmallett/octeon/etc/rc.d/Makefile ============================================================================== --- user/jmallett/octeon/etc/rc.d/Makefile Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/etc/rc.d/Makefile Sat Apr 17 02:28:24 2010 (r206719) @@ -50,6 +50,10 @@ FILES+= sshd FILES+= nscd .endif +.if ${MK_BLUETOOTH} != "no" +FILES+= ubthidhci +.endif + FILESDIR= /etc/rc.d FILESMODE= ${BINMODE} Modified: user/jmallett/octeon/etc/rc.subr ============================================================================== --- user/jmallett/octeon/etc/rc.subr Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/etc/rc.subr Sat Apr 17 02:28:24 2010 (r206719) @@ -646,12 +646,12 @@ run_rc_command() if [ "$_elem" != "$rc_arg" ]; then continue fi - # if ${rcvar} is set, and $1 is not - # "rcvar", then run + # if ${rcvar} is set, $1 is not "rcvar" + # and ${rc_pid} is not set, then run # checkyesno ${rcvar} # and return if that failed # - if [ -n "${rcvar}" -a "$rc_arg" != "rcvar" ]; then + if [ -n "${rcvar}" -a "$rc_arg" != "rcvar" -a -z "${rc_pid}" ]; then if ! checkyesno ${rcvar}; then if [ -n "${rc_quiet}" ]; then return 0 Modified: user/jmallett/octeon/lib/libc/gen/fnmatch.c ============================================================================== --- user/jmallett/octeon/lib/libc/gen/fnmatch.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libc/gen/fnmatch.c Sat Apr 17 02:28:24 2010 (r206719) @@ -67,7 +67,8 @@ __FBSDID("$FreeBSD$"); #define RANGE_ERROR (-1) static int rangematch(const char *, wchar_t, int, char **, mbstate_t *); -static int fnmatch1(const char *, const char *, int, mbstate_t, mbstate_t); +static int fnmatch1(const char *, const char *, const char *, int, mbstate_t, + mbstate_t); int fnmatch(pattern, string, flags) @@ -76,22 +77,21 @@ fnmatch(pattern, string, flags) { static const mbstate_t initial; - return (fnmatch1(pattern, string, flags, initial, initial)); + return (fnmatch1(pattern, string, string, flags, initial, initial)); } static int -fnmatch1(pattern, string, flags, patmbs, strmbs) - const char *pattern, *string; +fnmatch1(pattern, string, stringstart, flags, patmbs, strmbs) + const char *pattern, *string, *stringstart; int flags; mbstate_t patmbs, strmbs; { - const char *stringstart; char *newp; char c; wchar_t pc, sc; size_t pclen, sclen; - for (stringstart = string;;) { + for (;;) { pclen = mbrtowc(&pc, pattern, MB_LEN_MAX, &patmbs); if (pclen == (size_t)-1 || pclen == (size_t)-2) return (FNM_NOMATCH); @@ -145,8 +145,8 @@ fnmatch1(pattern, string, flags, patmbs, /* General case, use recursion. */ while (sc != EOS) { - if (!fnmatch1(pattern, string, - flags & ~FNM_PERIOD, patmbs, strmbs)) + if (!fnmatch1(pattern, string, stringstart, + flags, patmbs, strmbs)) return (0); sclen = mbrtowc(&sc, string, MB_LEN_MAX, &strmbs); Modified: user/jmallett/octeon/lib/libc/sys/sigaction.2 ============================================================================== --- user/jmallett/octeon/lib/libc/sys/sigaction.2 Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libc/sys/sigaction.2 Sat Apr 17 02:28:24 2010 (r206719) @@ -496,6 +496,16 @@ or .Dv SIG_IGN this way. .Pp +If preprocessing symbol +.Va _POSIX_C_SOURCE +with the value >= 199309 is not defined, the following declaration for +the handler shall be used: +.Bl -tag -offset indent -width short +.It Tn POSIX Dv SA_SIGINFO : +.Ft void +.Fn handler int "struct __sigaction *" "void *" ; +.El +.Pp If the .Dv SA_SIGINFO flag is not set, the handler function should match Modified: user/jmallett/octeon/lib/libz/ChangeLog ============================================================================== --- user/jmallett/octeon/lib/libz/ChangeLog Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/ChangeLog Sat Apr 17 02:28:24 2010 (r206719) @@ -1,6 +1,34 @@ ChangeLog file for zlib +Changes in 1.2.4.3 (10 Apr 2010) +- Only use CROSS_PREFIX in configure for ar and ranlib if they exist +- Use CROSS_PREFIX for nm [Bar-Lev] +- Assume _LARGEFILE64_SOURCE defined is equivalent to true +- Avoid use of undefined symbols in #if with && and || +- Make *64 prototypes in gzguts.h consistent with functions +- Add -shared load option for MinGW in configure [Bowler] +- Move z_off64_t to public interface, use instead of off64_t +- Remove ! from shell test in configure (not portable to Solaris) +- Change +0 macro tests to -0 for possibly increased portability + +Changes in 1.2.4.2 (9 Apr 2010) +- Add consistent carriage returns to readme.txt's in masmx86 and masmx64 +- Really provide prototypes for *64 functions when building without LFS +- Only define unlink() in minigzip.c if unistd.h not included +- Update README to point to contrib/vstudio project files +- Move projects/vc6 to old/ and remove projects/ +- Include stdlib.h in minigzip.c for setmode() definition under WinCE +- Clean up assembler builds in win32/Makefile.msc [Rowe] +- Include sys/types.h for Microsoft for off_t definition +- Fix memory leak on error in gz_open() +- Symbolize nm as $NM in configure [Weigelt] +- Use TEST_LDSHARED instead of LDSHARED to link test programs [Weigelt] +- Add +0 to _FILE_OFFSET_BITS and _LFS64_LARGEFILE in case not defined +- Fix bug in gzeof() to take into account unused input data +- Avoid initialization of structures with variables in puff.c +- Updated win32/README-WIN32.txt [Rowe] + Changes in 1.2.4.1 (28 Mar 2010) - Remove the use of [a-z] constructs for sed in configure [gentoo 310225] - Remove $(SHAREDLIB) from LIBS in Makefile.in [Creech] Modified: user/jmallett/octeon/lib/libz/README ============================================================================== --- user/jmallett/octeon/lib/libz/README Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/README Sat Apr 17 02:28:24 2010 (r206719) @@ -1,6 +1,6 @@ ZLIB DATA COMPRESSION LIBRARY -zlib 1.2.4.1 is a general purpose data compression library. All the code is +zlib 1.2.4.3 is a general purpose data compression library. All the code is thread safe. The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) @@ -16,7 +16,8 @@ minigzip.c. To compile all files and run the test program, follow the instructions given at the top of Makefile.in. In short "./configure; make test", and if that goes well, "make install" should work for most flavors of Unix. For Windows, use one -of the special makefiles in win32/ or projects/ . For VMS, use make_vms.com. +of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use +make_vms.com. Questions about zlib should be sent to , or to Gilles Vollant for the Windows DLL version. The zlib home page is @@ -30,7 +31,7 @@ Mark Nelson wrote an ar issue of Dr. Dobb's Journal; a copy of the article is available at http://marknelson.us/1997/01/01/zlib-engine/ . -The changes made in version 1.2.4.1 are documented in the file ChangeLog. +The changes made in version 1.2.4.3 are documented in the file ChangeLog. Unsupported third party contributions are provided in directory contrib/ . Modified: user/jmallett/octeon/lib/libz/Symbol.map ============================================================================== --- user/jmallett/octeon/lib/libz/Symbol.map Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/Symbol.map Sat Apr 17 02:28:24 2010 (r206719) @@ -4,11 +4,13 @@ ZLIB_1.2.4.0 { adler32; + adler32_combine; adler32_combine64; compress; compress2; compressBound; crc32; + crc32_combine; crc32_combine64; deflate; deflateBound; @@ -35,15 +37,19 @@ ZLIB_1.2.4.0 { gzflush; gzgetc; gzgets; + gzoffset; gzoffset64; + gzopen; gzopen64; gzprintf; gzputc; gzputs; gzread; gzrewind; + gzseek; gzseek64; gzsetparams; + gztell; gztell64; gzungetc; gzwrite; @@ -80,13 +86,7 @@ ZLIBprivate_1.0 { _tr_init; _tr_stored_block; _tr_tally; - adler32_combine; - crc32_combine; gz_error; - gzoffset; - gzopen; - gzseek; - gztell; inflate_fast; inflate_table; longest_match; Modified: user/jmallett/octeon/lib/libz/deflate.c ============================================================================== --- user/jmallett/octeon/lib/libz/deflate.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/deflate.c Sat Apr 17 02:28:24 2010 (r206719) @@ -52,7 +52,7 @@ #include "deflate.h" const char deflate_copyright[] = - " deflate 1.2.4.1 Copyright 1995-2010 Jean-loup Gailly and Mark Adler "; + " deflate 1.2.4.3 Copyright 1995-2010 Jean-loup Gailly and Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot Modified: user/jmallett/octeon/lib/libz/gzguts.h ============================================================================== --- user/jmallett/octeon/lib/libz/gzguts.h Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/gzguts.h Sat Apr 17 02:28:24 2010 (r206719) @@ -3,7 +3,7 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ -#if _LARGEFILE64_SOURCE == 1 +#ifdef _LARGEFILE64_SOURCE # ifndef _LARGEFILE_SOURCE # define _LARGEFILE_SOURCE 1 # endif @@ -56,10 +56,12 @@ # endif #endif -#if _LARGEFILE64_SOURCE == 1 -# define z_off64_t off64_t -#else -# define z_off64_t z_off_t +/* provide prototypes for these when building zlib without LFS */ +#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0 + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); + ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); #endif /* default i/o buffer size -- double this for output when reading */ Modified: user/jmallett/octeon/lib/libz/gzlib.c ============================================================================== --- user/jmallett/octeon/lib/libz/gzlib.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/gzlib.c Sat Apr 17 02:28:24 2010 (r206719) @@ -8,7 +8,7 @@ #include "gzguts.h" #include "zutil.h" -#if _LARGEFILE64_SOURCE == 1 && _LFS64_LARGEFILE == 1 +#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 # define LSEEK lseek64 #else # define LSEEK lseek @@ -175,6 +175,7 @@ local gzFile gz_open(path, fd, mode) O_APPEND))), 0666); if (state->fd == -1) { + free(state->path); free(state); return NULL; } @@ -435,7 +436,8 @@ int ZEXPORT gzeof(file) return 0; /* return end-of-file state */ - return state->mode == GZ_READ ? (state->eof && state->have == 0) : 0; + return state->mode == GZ_READ ? + (state->eof && state->strm.avail_in == 0 && state->have == 0) : 0; } /* -- see zlib.h -- */ Modified: user/jmallett/octeon/lib/libz/inftrees.c ============================================================================== --- user/jmallett/octeon/lib/libz/inftrees.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/inftrees.c Sat Apr 17 02:28:24 2010 (r206719) @@ -9,7 +9,7 @@ #define MAXBITS 15 const char inflate_copyright[] = - " inflate 1.2.4.1 Copyright 1995-2010 Mark Adler "; + " inflate 1.2.4.3 Copyright 1995-2010 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot @@ -62,7 +62,7 @@ unsigned short FAR *work; 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 67, 206}; + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 195, 66}; static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, Modified: user/jmallett/octeon/lib/libz/minigzip.c ============================================================================== --- user/jmallett/octeon/lib/libz/minigzip.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/minigzip.c Sat Apr 17 02:28:24 2010 (r206719) @@ -32,6 +32,9 @@ #if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__) # include # include +# ifdef UNDER_CE +# include +# endif # define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY) #else # define SET_BINARY_MODE(file) @@ -50,9 +53,11 @@ # include /* for fileno */ #endif +#if !defined(Z_HAVE_UNISTD_H) && !defined(_LARGEFILE64_SOURCE) #ifndef WIN32 /* unlink already in stdio.h for WIN32 */ extern int unlink OF((const char *)); #endif +#endif #if defined(UNDER_CE) # include Modified: user/jmallett/octeon/lib/libz/zconf.h ============================================================================== --- user/jmallett/octeon/lib/libz/zconf.h Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/zconf.h Sat Apr 17 02:28:24 2010 (r206719) @@ -364,8 +364,11 @@ typedef uLong FAR uLongf; # define Z_HAVE_UNISTD_H #endif -#if defined(Z_HAVE_UNISTD_H) +#ifdef STDC # include /* for off_t */ +#endif + +#if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) # include /* for SEEK_* and off_t */ # ifdef VMS # include /* for off_t */ @@ -384,7 +387,6 @@ typedef uLong FAR uLongf; /* * This is hard-configured for FreeBSD. */ -#include #define z_off_t off_t #ifndef _FILE_OFFSET_BITS #define _FILE_OFFSET_BITS 64 @@ -394,6 +396,12 @@ typedef uLong FAR uLongf; # define z_off_t long #endif +#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 +# define z_off64_t off64_t +#else +# define z_off64_t z_off_t +#endif + #if defined(__OS400__) # define NO_vsnprintf #endif Modified: user/jmallett/octeon/lib/libz/zlib.3 ============================================================================== --- user/jmallett/octeon/lib/libz/zlib.3 Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/zlib.3 Sat Apr 17 02:28:24 2010 (r206719) @@ -1,4 +1,4 @@ -.TH ZLIB 3 "28 Mar 2010" +.TH ZLIB 3 "10 Apr 2010" .SH NAME zlib \- compression/decompression library .SH SYNOPSIS @@ -125,7 +125,7 @@ before asking for help. Send questions and/or comments to zlib@gzip.org, or (for the Windows DLL version) to Gilles Vollant (info@winimage.com). .SH AUTHORS -Version 1.2.4.1 +Version 1.2.4.3 Copyright (C) 1995-2010 Jean-loup Gailly (jloup@gzip.org) and Mark Adler (madler@alumni.caltech.edu). .LP Modified: user/jmallett/octeon/lib/libz/zlib.h ============================================================================== --- user/jmallett/octeon/lib/libz/zlib.h Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/zlib.h Sat Apr 17 02:28:24 2010 (r206719) @@ -1,5 +1,5 @@ /* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.4.1, March 28th, 2010 + version 1.2.4.3, April 10th, 2010 Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler @@ -37,12 +37,12 @@ extern "C" { #endif -#define ZLIB_VERSION "1.2.4.1" -#define ZLIB_VERNUM 0x1241 +#define ZLIB_VERSION "1.2.4.3" +#define ZLIB_VERNUM 0x1243 #define ZLIB_VER_MAJOR 1 #define ZLIB_VER_MINOR 2 #define ZLIB_VER_REVISION 4 -#define ZLIB_VER_SUBREVISION 1 +#define ZLIB_VER_SUBREVISION 3 /* The 'zlib' compression library provides in-memory compression and @@ -1556,18 +1556,51 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF( inflateBackInit_((strm), (windowBits), (window), \ ZLIB_VERSION, sizeof(z_stream)) +/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or + * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if + * both are true, the application gets the *64 functions, and the regular + * functions are changed to 64 bits) -- in case these are set on systems + * without large file support, _LFS64_LARGEFILE must also be true + */ +#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); + ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); +#endif +#if !defined(ZLIB_INTERNAL) && _FILE_OFFSET_BITS-0 == 64 && _LFS64_LARGEFILE-0 +# define gzopen gzopen64 +# define gzseek gzseek64 +# define gztell gztell64 +# define gzoffset gzoffset64 +# define adler32_combine adler32_combine64 +# define crc32_combine crc32_combine64 +# ifdef _LARGEFILE64_SOURCE + ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); + ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); + ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); + ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); +# endif +#else ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); +#endif +/* hack for buggy compilers */ #if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; /* hack for buggy compilers */ + struct internal_state {int dummy;}; #endif +/* undocumented functions */ ZEXTERN const char * ZEXPORT zError OF((int)); ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); Modified: user/jmallett/octeon/lib/libz/zutil.h ============================================================================== --- user/jmallett/octeon/lib/libz/zutil.h Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/lib/libz/zutil.h Sat Apr 17 02:28:24 2010 (r206719) @@ -154,20 +154,10 @@ extern const char * const z_errmsg[10]; #pragma warn -8066 #endif -#if _LARGEFILE64_SOURCE == 1 && _LFS64_LARGEFILE == 1 -# define z_off64_t off64_t -#else -# define z_off64_t z_off_t -#endif - /* provide prototypes for these when building zlib without LFS */ -#if _LARGEFILE64_SOURCE != 1 || _LFS64_LARGEFILE != 1 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN off_t ZEXPORT gzseek64 OF((gzFile, off_t, int)); - ZEXTERN off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, off_t)); +#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0 + ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); #endif /* common defaults */ Modified: user/jmallett/octeon/sbin/geom/misc/subr.c ============================================================================== --- user/jmallett/octeon/sbin/geom/misc/subr.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sbin/geom/misc/subr.c Sat Apr 17 02:28:24 2010 (r206719) @@ -236,6 +236,7 @@ g_metadata_store(const char *name, u_cha error = errno; goto out; } + (void)ioctl(fd, DIOCGFLUSH, NULL); out: if (sector != NULL) free(sector); @@ -293,6 +294,7 @@ g_metadata_clear(const char *name, const error = errno; goto out; } + (void)ioctl(fd, DIOCGFLUSH, NULL); out: if (sector != NULL) free(sector); Modified: user/jmallett/octeon/sbin/hastd/hastd.c ============================================================================== --- user/jmallett/octeon/sbin/hastd/hastd.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sbin/hastd/hastd.c Sat Apr 17 02:28:24 2010 (r206719) @@ -137,6 +137,7 @@ child_exit(void) pjdlog_error("Worker process failed (pid=%u, status=%d).", (unsigned int)pid, WEXITSTATUS(status)); } + proto_close(res->hr_ctrl); res->hr_workerpid = 0; if (res->hr_role == HAST_ROLE_PRIMARY) { sleep(1); Modified: user/jmallett/octeon/sbin/hastd/pjdlog.c ============================================================================== --- user/jmallett/octeon/sbin/hastd/pjdlog.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sbin/hastd/pjdlog.c Sat Apr 17 02:28:24 2010 (r206719) @@ -228,7 +228,7 @@ pjdlogv_common(int loglevel, int debugle len = snprintf(log, sizeof(log), "%s", pjdlog_prefix); if ((size_t)len < sizeof(log)) - len = vsnprintf(log + len, sizeof(log) - len, fmt, ap); + len += vsnprintf(log + len, sizeof(log) - len, fmt, ap); if (error != -1 && (size_t)len < sizeof(log)) { (void)snprintf(log + len, sizeof(log) - len, ": %s.", strerror(error)); Modified: user/jmallett/octeon/sbin/hastd/primary.c ============================================================================== --- user/jmallett/octeon/sbin/hastd/primary.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sbin/hastd/primary.c Sat Apr 17 02:28:24 2010 (r206719) @@ -682,7 +682,7 @@ init_ggate(struct hast_resource *res) ggiocreate.gctl_mediasize = res->hr_datasize; ggiocreate.gctl_sectorsize = res->hr_local_sectorsize; ggiocreate.gctl_flags = 0; - ggiocreate.gctl_maxcount = 128; + ggiocreate.gctl_maxcount = G_GATE_MAX_QUEUE_SIZE; ggiocreate.gctl_timeout = 0; ggiocreate.gctl_unit = G_GATE_NAME_GIVEN; snprintf(ggiocreate.gctl_name, sizeof(ggiocreate.gctl_name), "hast/%s", Modified: user/jmallett/octeon/sbin/ifconfig/ifconfig.c ============================================================================== --- user/jmallett/octeon/sbin/ifconfig/ifconfig.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sbin/ifconfig/ifconfig.c Sat Apr 17 02:28:24 2010 (r206719) @@ -922,19 +922,20 @@ status(const struct afswtch *afp, const ifr.ifr_buffer.buffer = descr; ifr.ifr_buffer.length = descrlen; if (ioctl(s, SIOCGIFDESCR, &ifr) == 0) { - if (strlen(descr) > 0) - printf("\tdescription: %s\n", descr); - break; - } else if (errno == ENAMETOOLONG) - descrlen = ifr.ifr_buffer.length; - else - break; - } else { + if (ifr.ifr_buffer.buffer == descr) { + if (strlen(descr) > 0) + printf("\tdescription: %s\n", + descr); + } else if (ifr.ifr_buffer.length > descrlen) { + descrlen = ifr.ifr_buffer.length; + continue; + } + } + } else warn("unable to allocate memory for interface" "description"); - break; - } - }; + break; + } if (ioctl(s, SIOCGIFCAP, (caddr_t)&ifr) == 0) { if (ifr.ifr_curcap != 0) { Modified: user/jmallett/octeon/share/man/man4/ktr.4 ============================================================================== --- user/jmallett/octeon/share/man/man4/ktr.4 Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/share/man/man4/ktr.4 Sat Apr 17 02:28:24 2010 (r206719) @@ -122,7 +122,7 @@ option sets the flag to one. The KTR buffer can be examined from within .Xr ddb 4 via the -.Ic show ktr Op Cm /v +.Ic show ktr Op Cm /vV command. This command displays the contents of the trace buffer one page at a time. At the @@ -136,6 +136,10 @@ If the .Cm /v modifier is specified, then they are displayed in addition to the normal output. +If the +.Cm /V +modifier is specified, then just the timestamp is displayed in +addition to the normal output. Note that the events are displayed in reverse chronological order. That is, the most recent events are displayed first. .Ss Logging ktr to Disk @@ -167,7 +171,9 @@ the next invocation. enables logging of .Nm entries to disk if it is set to one. -Setting this to 0 will terminate logging. +Setting this to 0 will terminate logging to disk and revert to +logging to the normal ktr ring buffer. +Data is not sent to the ring buffer while logging to disk. .It Va debug.ktr.alq_max is the maximum number of entries that will be recorded to disk, or 0 for infinite. Modified: user/jmallett/octeon/share/man/man4/netintro.4 ============================================================================== --- user/jmallett/octeon/share/man/man4/netintro.4 Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/share/man/man4/netintro.4 Sat Apr 17 02:28:24 2010 (r206719) @@ -32,7 +32,7 @@ .\" @(#)netintro.4 8.2 (Berkeley) 11/30/93 .\" $FreeBSD$ .\" -.Dd January 26, 2010 +.Dd April 14, 2010 .Dt NETINTRO 4 .Os .Sh NAME @@ -292,8 +292,11 @@ field of struct passed in as parameter, and the length would include the terminating nul character. If there is not enough space to hold the interface length, -no copy would be done and an -error would be returned. +no copy would be done and the +.Va buffer +field of +.Va ifru_buffer +would be set to NULL. The kernel will store the buffer length in the .Va length field upon return, regardless whether the buffer itself is Modified: user/jmallett/octeon/sys/cam/scsi/scsi_cd.c ============================================================================== --- user/jmallett/octeon/sys/cam/scsi/scsi_cd.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sys/cam/scsi/scsi_cd.c Sat Apr 17 02:28:24 2010 (r206719) @@ -2773,8 +2773,12 @@ cdcheckmedia(struct cam_periph *periph) softc->flags &= ~(CD_FLAG_VALID_MEDIA|CD_FLAG_VALID_TOC); cdprevent(periph, PR_ALLOW); return (error); - } else + } else { softc->flags |= CD_FLAG_VALID_MEDIA; + softc->disk->d_sectorsize = softc->params.blksize; + softc->disk->d_mediasize = + (off_t)softc->params.blksize * softc->params.disksize; + } /* * Now we check the table of contents. This (currently) is only @@ -2863,9 +2867,6 @@ cdcheckmedia(struct cam_periph *periph) } softc->flags |= CD_FLAG_VALID_TOC; - softc->disk->d_sectorsize = softc->params.blksize; - softc->disk->d_mediasize = - (off_t)softc->params.blksize * softc->params.disksize; bailout: Modified: user/jmallett/octeon/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c ============================================================================== --- user/jmallett/octeon/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Sat Apr 17 02:28:24 2010 (r206719) @@ -868,13 +868,15 @@ zfs_root(vfs_t *vfsp, int flags, vnode_t ZFS_ENTER_NOERROR(zfsvfs); error = zfs_zget(zfsvfs, zfsvfs->z_root, &rootzp); + + ZFS_EXIT(zfsvfs); + if (error == 0) { *vpp = ZTOV(rootzp); error = vn_lock(*vpp, flags); (*vpp)->v_vflag |= VV_ROOT; } - ZFS_EXIT(zfsvfs); return (error); } @@ -1143,13 +1145,13 @@ zfs_vget(vfs_t *vfsp, ino_t ino, int fla VN_RELE(ZTOV(zp)); err = EINVAL; } + ZFS_EXIT(zfsvfs); if (err != 0) *vpp = NULL; else { *vpp = ZTOV(zp); vn_lock(*vpp, flags); } - ZFS_EXIT(zfsvfs); return (err); } @@ -1237,8 +1239,8 @@ zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, vno } else { VN_HOLD(*vpp); } - vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); ZFS_EXIT(zfsvfs); + vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); return (0); } @@ -1259,10 +1261,11 @@ zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, vno return (EINVAL); } + ZFS_EXIT(zfsvfs); + *vpp = ZTOV(zp); vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); vnode_create_vobject(*vpp, zp->z_phys->zp_size, curthread); - ZFS_EXIT(zfsvfs); return (0); } Modified: user/jmallett/octeon/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- user/jmallett/octeon/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Sat Apr 17 02:28:24 2010 (r206719) @@ -1209,15 +1209,17 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode ltype = VOP_ISLOCKED(dvp); VOP_UNLOCK(dvp, 0); } + ZFS_EXIT(zfsvfs); error = vn_lock(*vpp, cnp->cn_lkflags); if (cnp->cn_flags & ISDOTDOT) vn_lock(dvp, ltype | LK_RETRY); if (error != 0) { VN_RELE(*vpp); *vpp = NULL; - ZFS_EXIT(zfsvfs); return (error); } + } else { + ZFS_EXIT(zfsvfs); } #ifdef FREEBSD_NAMECACHE @@ -1237,8 +1239,6 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode } #endif - ZFS_EXIT(zfsvfs); - return (error); } Modified: user/jmallett/octeon/sys/ddb/db_sym.c ============================================================================== --- user/jmallett/octeon/sys/ddb/db_sym.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sys/ddb/db_sym.c Sat Apr 17 02:28:24 2010 (r206719) @@ -64,12 +64,6 @@ static boolean_t db_line_at_pc(c_db_sym_ static int db_cpu = -1; #ifdef VIMAGE -extern uintptr_t *__start_set_vnet; -extern uintptr_t *__stop_set_vnet; - -#define VNET_START (uintptr_t)&__start_set_vnet -#define VNET_STOP (uintptr_t)&__stop_set_vnet - static void *db_vnet = NULL; #endif Modified: user/jmallett/octeon/sys/dev/hwpmc/hwpmc_core.c ============================================================================== --- user/jmallett/octeon/sys/dev/hwpmc/hwpmc_core.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sys/dev/hwpmc/hwpmc_core.c Sat Apr 17 02:28:24 2010 (r206719) @@ -603,7 +603,7 @@ static struct iap_event_descr iap_events IAPDESCR(06H_0FH, 0x06, 0x0F, IAP_F_FM | IAP_F_I7O), IAPDESCR(07H_00H, 0x07, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CC2), - IAPDESCR(07H_01H, 0x07, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_WM), + IAPDESCR(07H_01H, 0x07, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_I7 | IAP_F_WM), IAPDESCR(07H_02H, 0x07, 0x02, IAP_F_FM | IAP_F_ALLCPUSCORE2), IAPDESCR(07H_03H, 0x07, 0x03, IAP_F_FM | IAP_F_ALLCPUSCORE2), IAPDESCR(07H_06H, 0x07, 0x06, IAP_F_FM | IAP_F_CA), @@ -1053,6 +1053,7 @@ static struct iap_event_descr iap_events IAPDESCR(B0H_02H, 0xB0, 0x02, IAP_F_FM | IAP_F_WM | IAP_F_I7O), IAPDESCR(B0H_04H, 0xB0, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_I7O), IAPDESCR(B0H_08H, 0xB0, 0x08, IAP_F_FM | IAP_F_WM | IAP_F_I7O), + IAPDESCR(B0H_10H, 0xB0, 0x10, IAP_F_FM | IAP_F_WM | IAP_F_I7O), IAPDESCR(B0H_20H, 0xB0, 0x20, IAP_F_FM | IAP_F_I7O), IAPDESCR(B0H_40H, 0xB0, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM), IAPDESCR(B0H_80H, 0xB0, 0x80, IAP_F_FM | IAP_F_CA | IAP_F_WM | IAP_F_I7O), Modified: user/jmallett/octeon/sys/dev/hwpmc/pmc_events.h ============================================================================== --- user/jmallett/octeon/sys/dev/hwpmc/pmc_events.h Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sys/dev/hwpmc/pmc_events.h Sat Apr 17 02:28:24 2010 (r206719) @@ -2207,7 +2207,7 @@ __PMC_EV_ALIAS("OFFCORE_REQUESTS.DEMAND. __PMC_EV_ALIAS("OFFCORE_REQUESTS.DEMAND.READ_CODE", IAP_EVENT_B0H_02H) \ __PMC_EV_ALIAS("OFFCORE_REQUESTS.DEMAND.RFO", IAP_EVENT_B0H_04H) \ __PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY.READ", IAP_EVENT_B0H_08H) \ -__PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY.RFO", IAP_EVENT_80H_10H) \ +__PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY.RFO", IAP_EVENT_B0H_10H) \ __PMC_EV_ALIAS("OFFCORE_REQUESTS.L1D_WRITEBACK", IAP_EVENT_B0H_40H) \ __PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY", IAP_EVENT_B0H_80H) \ __PMC_EV_ALIAS("UOPS_EXECUTED.PORT0", IAP_EVENT_B1H_01H) \ Modified: user/jmallett/octeon/sys/dev/ixgbe/ixgbe.c ============================================================================== --- user/jmallett/octeon/sys/dev/ixgbe/ixgbe.c Sat Apr 17 01:49:50 2010 (r206718) +++ user/jmallett/octeon/sys/dev/ixgbe/ixgbe.c Sat Apr 17 02:28:24 2010 (r206719) @@ -759,6 +759,7 @@ ixgbe_start_locked(struct tx_ring *txr, /* Set watchdog on */ txr->watchdog_check = TRUE; + txr->watchdog_time = ticks; } return; @@ -798,8 +799,6 @@ ixgbe_mq_start(struct ifnet *ifp, struct /* Which queue to use */ if ((m->m_flags & M_FLOWID) != 0) i = m->m_pkthdr.flowid % adapter->num_queues; - else /* use the cpu we're on */ - i = curcpu % adapter->num_queues; txr = &adapter->tx_rings[i]; @@ -856,8 +855,11 @@ ixgbe_mq_start_locked(struct ifnet *ifp, next = drbr_dequeue(ifp, txr->br); } - if (enqueued > 0) + if (enqueued > 0) { + /* Set watchdog on */ txr->watchdog_check = TRUE; + txr->watchdog_time = ticks; + } return (err); } @@ -1251,16 +1253,12 @@ ixgbe_handle_que(void *context, int pend struct adapter *adapter = que->adapter; struct tx_ring *txr = que->txr; struct ifnet *ifp = adapter->ifp; - u32 loop = MAX_LOOP; - bool more_rx, more_tx; - - IXGBE_TX_LOCK(txr); - do { - more_rx = ixgbe_rxeof(que, adapter->rx_process_limit); - more_tx = ixgbe_txeof(txr); - } while (loop-- && (more_rx || more_tx)); + bool more; if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + more = ixgbe_rxeof(que, adapter->rx_process_limit); + IXGBE_TX_LOCK(txr); + ixgbe_txeof(txr); #if __FreeBSD_version >= 800000 if (!drbr_empty(ifp, txr->br)) ixgbe_mq_start_locked(ifp, txr, NULL); @@ -1268,11 +1266,16 @@ ixgbe_handle_que(void *context, int pend if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Sat Apr 17 03:14:01 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1590F1065674; Sat, 17 Apr 2010 03:14:01 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 04B728FC1C; Sat, 17 Apr 2010 03:14:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3H3E0Av030103; Sat, 17 Apr 2010 03:14:00 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3H3E0p2030101; Sat, 17 Apr 2010 03:14:00 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004170314.o3H3E0p2030101@svn.freebsd.org> From: Juli Mallett Date: Sat, 17 Apr 2010 03:14:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206722 - user/jmallett/octeon/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2010 03:14:01 -0000 Author: jmallett Date: Sat Apr 17 03:14:00 2010 New Revision: 206722 URL: http://svn.freebsd.org/changeset/base/206722 Log: Merge from head (loopback my remaining Octeon subport changes.) Modified: user/jmallett/octeon/sys/mips/mips/mpboot.S Directory Properties: user/jmallett/octeon/ (props changed) user/jmallett/octeon/sys/contrib/x86emu/ (props changed) Modified: user/jmallett/octeon/sys/mips/mips/mpboot.S ============================================================================== --- user/jmallett/octeon/sys/mips/mips/mpboot.S Sat Apr 17 03:08:13 2010 (r206721) +++ user/jmallett/octeon/sys/mips/mips/mpboot.S Sat Apr 17 03:14:00 2010 (r206722) @@ -46,10 +46,7 @@ mtc0 a0, COP_0_STATUS_REG #else #define CLEAR_STATUS \ - mfc0 a0, COP_0_STATUS_REG ;\ - li a2, ~(MIPS_SR_INT_IE | MIPS_SR_EXL | SR_KSU_USER) ; \ - and a0, a0, a2 ; \ - mtc0 a0, COP_0_STATUS_REG + mtc0 zero, COP_0_STATUS_REG #endif GLOBAL(mpentry) From owner-svn-src-user@FreeBSD.ORG Sat Apr 17 09:50:13 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5DD9106564A; Sat, 17 Apr 2010 09:50:13 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7CAA88FC12; Sat, 17 Apr 2010 09:50:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3H9oDMB019089; Sat, 17 Apr 2010 09:50:13 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3H9oDUh019088; Sat, 17 Apr 2010 09:50:13 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004170950.o3H9oDUh019088@svn.freebsd.org> From: Juli Mallett Date: Sat, 17 Apr 2010 09:50:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206750 - in user/jmallett/octeon: . sys/contrib/x86emu X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2010 09:50:13 -0000 Author: jmallett Date: Sat Apr 17 09:50:13 2010 New Revision: 206750 URL: http://svn.freebsd.org/changeset/base/206750 Log: Merge from head. Modified: Directory Properties: user/jmallett/octeon/ (props changed) user/jmallett/octeon/sys/contrib/x86emu/ (props changed) From owner-svn-src-user@FreeBSD.ORG Sat Apr 17 22:38:17 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BE8D106566B; Sat, 17 Apr 2010 22:38:17 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2B1148FC1F; Sat, 17 Apr 2010 22:38:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3HMcHut091767; Sat, 17 Apr 2010 22:38:17 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3HMcHSX091764; Sat, 17 Apr 2010 22:38:17 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004172238.o3HMcHSX091764@svn.freebsd.org> From: Juli Mallett Date: Sat, 17 Apr 2010 22:38:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206772 - in user/jmallett/octeon/sys/mips: include mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2010 22:38:17 -0000 Author: jmallett Date: Sat Apr 17 22:38:16 2010 New Revision: 206772 URL: http://svn.freebsd.org/changeset/base/206772 Log: Use the direct map for sfbufs in the n64 ABI and note how we should do the same on n32 and o32. Modified: user/jmallett/octeon/sys/mips/include/sf_buf.h user/jmallett/octeon/sys/mips/mips/vm_machdep.c Modified: user/jmallett/octeon/sys/mips/include/sf_buf.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/sf_buf.h Sat Apr 17 21:31:42 2010 (r206771) +++ user/jmallett/octeon/sys/mips/include/sf_buf.h Sat Apr 17 22:38:16 2010 (r206772) @@ -29,10 +29,17 @@ #ifndef _MACHINE_SF_BUF_H_ #define _MACHINE_SF_BUF_H_ +#if !defined(__mips_n64) #include +#else +#include +#include +#include +#endif struct vm_page; +#if !defined(__mips_n64) struct sf_buf { SLIST_ENTRY(sf_buf) free_list; /* list of free buffer slots */ struct vm_page *m; /* currently mapped page */ @@ -52,5 +59,28 @@ sf_buf_page(struct sf_buf *sf) return (sf->m); } +#else +/* + * On this machine, the only purpose for which sf_buf is used is to implement + * an opaque pointer required by the machine-independent parts of the kernel. + * That pointer references the vm_page that is "mapped" by the sf_buf. The + * actual mapping is provided by the direct virtual-to-physical mapping. + */ +struct sf_buf; + +static __inline vm_offset_t +sf_buf_kva(struct sf_buf *sf) +{ + + return (MIPS_PHYS_TO_XKPHYS(MIPS_XKPHYS_CCA_CNC, VM_PAGE_TO_PHYS((vm_page_t)sf))); +} + +static __inline vm_page_t +sf_buf_page(struct sf_buf *sf) +{ + + return ((vm_page_t)sf); +} +#endif #endif /* !_MACHINE_SF_BUF_H_ */ Modified: user/jmallett/octeon/sys/mips/mips/vm_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/vm_machdep.c Sat Apr 17 21:31:42 2010 (r206771) +++ user/jmallett/octeon/sys/mips/mips/vm_machdep.c Sat Apr 17 22:38:16 2010 (r206772) @@ -78,6 +78,7 @@ __FBSDID("$FreeBSD$"); #include #include +#if !defined(__mips_n64) #ifndef NSFBUFS #define NSFBUFS (512 + maxusers * 16) #endif @@ -95,6 +96,7 @@ static struct { } sf_freelist; static u_int sf_buf_alloc_want; +#endif /* * Finish a fork operation, with process p2 nearly set up. @@ -458,6 +460,7 @@ kvtop(void *addr) #define ZIDLE_LO(v) ((v) * 2 / 3) #define ZIDLE_HI(v) ((v) * 4 / 5) +#if !defined(__mips_n64) /* * Allocate a pool of sf_bufs (sendfile(2) or "super-fast" if you prefer. :-)) */ @@ -485,6 +488,11 @@ sf_buf_init(void *arg) /* * Get an sf_buf from the freelist. Will block if none are available. + * + * XXX + * If the physical address of m is within range of KSEG0, we should not do the + * qenter, and we should make sf_buf_kva() check the physical address and give + * the direct-mapped virutal address instead. */ struct sf_buf * sf_buf_alloc(struct vm_page *m, int flags) @@ -534,6 +542,26 @@ sf_buf_free(struct sf_buf *sf) wakeup_one(&sf_freelist); mtx_unlock(&sf_freelist.sf_lock); } +#else +/* + * Allocate an sf_buf. We just return the vm_page and use XKPHYS. + */ +struct sf_buf * +sf_buf_alloc(struct vm_page *m, int flags) +{ + return ((struct sf_buf *)m); +} + +/* + * Release resources back to the system. + * + * XXX Invalidate dcache? + */ +void +sf_buf_free(struct sf_buf *sf) +{ +} +#endif /* * Software interrupt handler for queued VM system processing. From owner-svn-src-user@FreeBSD.ORG Sat Apr 17 22:40:15 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7CEC41065697; Sat, 17 Apr 2010 22:40:15 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5263B8FC30; Sat, 17 Apr 2010 22:40:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3HMeF7R092286; Sat, 17 Apr 2010 22:40:15 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3HMeF42092284; Sat, 17 Apr 2010 22:40:15 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004172240.o3HMeF42092284@svn.freebsd.org> From: Juli Mallett Date: Sat, 17 Apr 2010 22:40:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206774 - user/jmallett/octeon/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2010 22:40:15 -0000 Author: jmallett Date: Sat Apr 17 22:40:15 2010 New Revision: 206774 URL: http://svn.freebsd.org/changeset/base/206774 Log: Remove pmap_nw_modified(). It is obsolete, as are the checks using it. Submitted by: alc Modified: user/jmallett/octeon/sys/mips/mips/pmap.c Modified: user/jmallett/octeon/sys/mips/mips/pmap.c ============================================================================== --- user/jmallett/octeon/sys/mips/mips/pmap.c Sat Apr 17 22:39:53 2010 (r206773) +++ user/jmallett/octeon/sys/mips/mips/pmap.c Sat Apr 17 22:40:15 2010 (r206774) @@ -557,23 +557,6 @@ pmap_init(void) * Low level helper routines..... ***************************************************/ -#if defined(PMAP_DIAGNOSTIC) - -/* - * This code checks for non-writeable/modified pages. - * This should be an invalid condition. - */ -static int -pmap_nw_modified(pt_entry_t pte) -{ - if (pte_test(&pte, PG_RO) == pte_est(&pte, PG_D)) - return (1); - else - return (0); -} - -#endif - static void pmap_invalidate_all(pmap_t pmap) { @@ -1502,16 +1485,8 @@ pmap_remove_pte(struct pmap *pmap, pt_en if (page_is_managed(pa)) { m = PHYS_TO_VM_PAGE(pa); - if (pte_test(&oldpte, PG_D)) { -#if defined(PMAP_DIAGNOSTIC) - if (pmap_nw_modified(oldpte)) { - printf( - "pmap_remove: modified page not writable: va: 0x%x, pte: 0x%x\n", - va, oldpte); - } -#endif + if (pte_test(&oldpte, PG_D)) vm_page_dirty(m); - } if (m->md.pv_flags & PV_TABLE_REF) vm_page_flag_set(m, PG_REFERENCED); m->md.pv_flags &= ~(PV_TABLE_REF | PV_TABLE_MOD); @@ -1646,16 +1621,8 @@ pmap_remove_all(vm_page_t m) /* * Update the vm_page_t clean and reference bits. */ - if (pte_test(&tpte, PG_D)) { -#if defined(PMAP_DIAGNOSTIC) - if (pmap_nw_modified(tpte)) { - printf( - "pmap_remove_all: modified page not writable: va: 0x%x, pte: 0x%x\n", - pv->pv_va, tpte); - } -#endif + if (pte_test(&tpte, PG_D)) vm_page_dirty(m); - } pmap_invalidate_page(pv->pv_pmap, pv->pv_va); TAILQ_REMOVE(&pv->pv_pmap->pm_pvlist, pv, pv_plist); @@ -1812,14 +1779,6 @@ pmap_enter(pmap_t pmap, vm_offset_t va, else if (!wired && pte_test(&origpte, PG_W)) pmap->pm_stats.wired_count--; -#if defined(PMAP_DIAGNOSTIC) - if (pmap_nw_modified(origpte)) { - printf( - "pmap_enter: modified page not writable: va: 0x%x, pte: 0x%x\n", - va, origpte); - } -#endif - /* * Remove extra pte reference */ From owner-svn-src-user@FreeBSD.ORG Sat Apr 17 23:04:57 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4B8B11065673; Sat, 17 Apr 2010 23:04:57 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3A6028FC1B; Sat, 17 Apr 2010 23:04:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3HN4vJo097922; Sat, 17 Apr 2010 23:04:57 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3HN4va7097918; Sat, 17 Apr 2010 23:04:57 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201004172304.o3HN4va7097918@svn.freebsd.org> From: Juli Mallett Date: Sat, 17 Apr 2010 23:04:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206778 - in user/jmallett/octeon/sys/mips: cavium include X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2010 23:04:57 -0000 Author: jmallett Date: Sat Apr 17 23:04:56 2010 New Revision: 206778 URL: http://svn.freebsd.org/changeset/base/206778 Log: Make coprocessor 0 register with selector accessors take a name to be used unadulterated rather than adding the selector as a suffix. "prid1" doesn't make half as much sense as "ebase". Probably other registers with selectors could use their ISA-given name here, too, but I don't know them. Remove a local mips_wr_ebase() from the Octeon code now that we DTRT. Modified: user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c user/jmallett/octeon/sys/mips/cavium/octeon_mp.c user/jmallett/octeon/sys/mips/include/cpufunc.h Modified: user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c Sat Apr 17 23:04:42 2010 (r206777) +++ user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c Sat Apr 17 23:04:56 2010 (r206778) @@ -86,16 +86,6 @@ static void octeon_boot_params_init(regi static uint64_t ciu_get_intr_sum_reg_addr(int core_num, int intx, int enx); static uint64_t ciu_get_intr_en_reg_addr(int core_num, int intx, int enx); -static __inline void -mips_wr_ebase(u_int32_t a0) -{ - __asm __volatile("mtc0 %[a0], $15, 1 ;" - : - : [a0] "r"(a0)); - - mips_barrier(); -} - void platform_cpu_init() { Modified: user/jmallett/octeon/sys/mips/cavium/octeon_mp.c ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Sat Apr 17 23:04:42 2010 (r206777) +++ user/jmallett/octeon/sys/mips/cavium/octeon_mp.c Sat Apr 17 23:04:56 2010 (r206778) @@ -69,7 +69,7 @@ platform_init_ap(int cpuid) /* * Set the exception base. */ - mips_wr_prid1(0x80000000 | cpuid); + mips_wr_ebase(0x80000000 | cpuid); /* * Set up interrupts, clear IPIs and unmask the IPI interrupt. Modified: user/jmallett/octeon/sys/mips/include/cpufunc.h ============================================================================== --- user/jmallett/octeon/sys/mips/include/cpufunc.h Sat Apr 17 23:04:42 2010 (r206777) +++ user/jmallett/octeon/sys/mips/include/cpufunc.h Sat Apr 17 23:04:56 2010 (r206778) @@ -166,7 +166,7 @@ mips_wr_ ## n (uint32_t a0) \ #define MIPS_RDRW32_COP0_SEL(n,r,s) \ static __inline uint32_t \ -mips_rd_ ## n ## s(void) \ +mips_rd_ ## n(void) \ { \ int v0; \ __asm __volatile ("mfc0 %[v0], $"__XSTRING(r)", "__XSTRING(s)";" \ @@ -175,7 +175,7 @@ mips_rd_ ## n ## s(void) \ return (v0); \ } \ static __inline void \ -mips_wr_ ## n ## s(uint32_t a0) \ +mips_wr_ ## n(uint32_t a0) \ { \ __asm __volatile ("mtc0 %[a0], $"__XSTRING(r)", "__XSTRING(s)";" \ __XSTRING(COP0_SYNC)";" \ @@ -201,9 +201,9 @@ static __inline void mips_sync_icache (v MIPS_RDRW32_COP0(compare, MIPS_COP_0_COMPARE); MIPS_RDRW32_COP0(config, MIPS_COP_0_CONFIG); -MIPS_RDRW32_COP0_SEL(config, MIPS_COP_0_CONFIG, 1); -MIPS_RDRW32_COP0_SEL(config, MIPS_COP_0_CONFIG, 2); -MIPS_RDRW32_COP0_SEL(config, MIPS_COP_0_CONFIG, 3); +MIPS_RDRW32_COP0_SEL(config1, MIPS_COP_0_CONFIG, 1); +MIPS_RDRW32_COP0_SEL(config2, MIPS_COP_0_CONFIG, 2); +MIPS_RDRW32_COP0_SEL(config3, MIPS_COP_0_CONFIG, 3); MIPS_RDRW32_COP0(count, MIPS_COP_0_COUNT); MIPS_RDRW32_COP0(index, MIPS_COP_0_TLB_INDEX); MIPS_RDRW32_COP0(wired, MIPS_COP_0_TLB_WIRED); @@ -219,20 +219,20 @@ MIPS_RDRW32_COP0(pagemask, MIPS_COP_0_TL #endif MIPS_RDRW32_COP0(prid, MIPS_COP_0_PRID); /* XXX 64-bit? */ -MIPS_RDRW32_COP0_SEL(prid, MIPS_COP_0_PRID, 1); +MIPS_RDRW32_COP0_SEL(ebase, MIPS_COP_0_PRID, 1); MIPS_RDRW32_COP0(watchlo, MIPS_COP_0_WATCH_LO); -MIPS_RDRW32_COP0_SEL(watchlo, MIPS_COP_0_WATCH_LO, 1); -MIPS_RDRW32_COP0_SEL(watchlo, MIPS_COP_0_WATCH_LO, 2); -MIPS_RDRW32_COP0_SEL(watchlo, MIPS_COP_0_WATCH_LO, 3); +MIPS_RDRW32_COP0_SEL(watchlo1, MIPS_COP_0_WATCH_LO, 1); +MIPS_RDRW32_COP0_SEL(watchlo2, MIPS_COP_0_WATCH_LO, 2); +MIPS_RDRW32_COP0_SEL(watchlo3, MIPS_COP_0_WATCH_LO, 3); MIPS_RDRW32_COP0(watchhi, MIPS_COP_0_WATCH_HI); -MIPS_RDRW32_COP0_SEL(watchhi, MIPS_COP_0_WATCH_HI, 1); -MIPS_RDRW32_COP0_SEL(watchhi, MIPS_COP_0_WATCH_HI, 2); -MIPS_RDRW32_COP0_SEL(watchhi, MIPS_COP_0_WATCH_HI, 3); - -MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 0); -MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 1); -MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 2); -MIPS_RDRW32_COP0_SEL(perfcnt, MIPS_COP_0_PERFCNT, 3); +MIPS_RDRW32_COP0_SEL(watchhi1, MIPS_COP_0_WATCH_HI, 1); +MIPS_RDRW32_COP0_SEL(watchhi2, MIPS_COP_0_WATCH_HI, 2); +MIPS_RDRW32_COP0_SEL(watchhi3, MIPS_COP_0_WATCH_HI, 3); + +MIPS_RDRW32_COP0_SEL(perfcnt0, MIPS_COP_0_PERFCNT, 0); +MIPS_RDRW32_COP0_SEL(perfcnt1, MIPS_COP_0_PERFCNT, 1); +MIPS_RDRW32_COP0_SEL(perfcnt2, MIPS_COP_0_PERFCNT, 2); +MIPS_RDRW32_COP0_SEL(perfcnt3, MIPS_COP_0_PERFCNT, 3); #undef MIPS_RDRW32_COP0