From owner-svn-src-projects@FreeBSD.ORG Sun Jan 25 03:26:27 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EAE95106564A; Sun, 25 Jan 2009 03:26:27 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BE32E8FC0A; Sun, 25 Jan 2009 03:26:27 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0P3QR2P005359; Sun, 25 Jan 2009 03:26:27 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0P3QR4Y005357; Sun, 25 Jan 2009 03:26:27 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <200901250326.n0P3QR4Y005357@svn.freebsd.org> From: Lawrence Stewart Date: Sun, 25 Jan 2009 03:26:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187675 - in projects/tcp_cc_8.x/share/man: man4 man9 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Jan 2009 03:26:28 -0000 Author: lstewart Date: Sun Jan 25 03:26:27 2009 New Revision: 187675 URL: http://svn.freebsd.org/changeset/base/187675 Log: Couple of man page tweaks to address style and warnings. Submitted by: maxim Modified: projects/tcp_cc_8.x/share/man/man4/cc_htcp.4 projects/tcp_cc_8.x/share/man/man9/cc.9 Modified: projects/tcp_cc_8.x/share/man/man4/cc_htcp.4 ============================================================================== --- projects/tcp_cc_8.x/share/man/man4/cc_htcp.4 Sat Jan 24 19:22:05 2009 (r187674) +++ projects/tcp_cc_8.x/share/man/man4/cc_htcp.4 Sun Jan 25 03:26:27 2009 (r187675) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Nov 17, 2008 +.Dd November 17, 2008 .Dt CC_HTCP 4 .Os .Sh NAME @@ -75,4 +75,3 @@ This manual page was written by .Sh ACKNOWLEDGMENTS Development of this software was made possible in part by a grant from the Cisco University Research Program Fund at Community Foundation Silicon Valley. - Modified: projects/tcp_cc_8.x/share/man/man9/cc.9 ============================================================================== --- projects/tcp_cc_8.x/share/man/man9/cc.9 Sat Jan 24 19:22:05 2009 (r187674) +++ projects/tcp_cc_8.x/share/man/man9/cc.9 Sun Jan 25 03:26:27 2009 (r187675) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Nov 17, 2008 +.Dd November 17, 2008 .Dt CC 9 .Os .Sh NAME @@ -78,9 +78,11 @@ name. .Bl -tag -width ".Va net.inet.tcp.cc.algorithm" -offset indent .It Va net.inet.tcp.cc.algorithm Specifies which congestion control algorithm will be used by default for new TCP -connections. Setting this variable to one of the names in the +connections. +Setting this variable to one of the names in the .Va net.inet.tcp.cc.available list will change the system default for all new connections. +.El .Sh FUNCTIONS The .Fn cc_register_algorithm @@ -93,10 +95,10 @@ The .Fn cc_register_algorithm function returns non-zero on failure. .Sh SEE ALSO -.Xr cc_htcp 4 , .Xr cc_cubic 4 , -.Xr tcp 4 , +.Xr cc_htcp 4 , .Xr sctp 4 +.Xr tcp 4 , .Sh HISTORY The modular Congestion Control (CC) framework first appeared in .Fx 8.0 . @@ -119,4 +121,3 @@ This manual page was written by .Sh ACKNOWLEDGMENTS Development of this software was made possible in part by a grant from the Cisco University Research Program Fund at Community Foundation Silicon Valley. - From owner-svn-src-projects@FreeBSD.ORG Sun Jan 25 19:18:23 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8259B106574A; Sun, 25 Jan 2009 19:18:23 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 695228FC12; Sun, 25 Jan 2009 19:18:23 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0PJINxU025701; Sun, 25 Jan 2009 19:18:23 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0PJIMMQ025689; Sun, 25 Jan 2009 19:18:22 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200901251918.n0PJIMMQ025689@svn.freebsd.org> From: Andrew Thompson Date: Sun, 25 Jan 2009 19:18:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187695 - in projects/l2filter: . bin/chmod bin/dd bin/kenv bin/ln bin/test cddl/contrib/opensolaris/cmd/zinject cddl/contrib/opensolaris/lib/libdtrace/common cddl/contrib/opensolaris/l... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Jan 2009 19:18:25 -0000 Author: thompsa Date: Sun Jan 25 19:18:20 2009 New Revision: 187695 URL: http://svn.freebsd.org/changeset/base/187695 Log: MFH r186067-1876921 Added: projects/l2filter/contrib/bind9/aclocal.m4 - copied unchanged from r187692, head/contrib/bind9/aclocal.m4 projects/l2filter/contrib/bind9/bin/nsupdate/nsupdate.1 - copied unchanged from r187692, head/contrib/bind9/bin/nsupdate/nsupdate.1 projects/l2filter/contrib/bind9/config.h.in - copied unchanged from r187692, head/contrib/bind9/config.h.in projects/l2filter/contrib/bind9/doc/misc/sort-options.pl - copied unchanged from r187692, head/contrib/bind9/doc/misc/sort-options.pl projects/l2filter/contrib/bind9/doc/rfc/rfc4648.txt - copied unchanged from r187692, head/contrib/bind9/doc/rfc/rfc4648.txt projects/l2filter/contrib/bind9/doc/rfc/rfc4701.txt - copied unchanged from r187692, head/contrib/bind9/doc/rfc/rfc4701.txt projects/l2filter/contrib/bind9/doc/rfc/rfc5155.txt - copied unchanged from r187692, head/contrib/bind9/doc/rfc/rfc5155.txt projects/l2filter/contrib/bind9/lib/bind/aclocal.m4 - copied unchanged from r187692, head/contrib/bind9/lib/bind/aclocal.m4 projects/l2filter/contrib/bind9/lib/bind/config.h.in - copied unchanged from r187692, head/contrib/bind9/lib/bind/config.h.in projects/l2filter/contrib/bind9/lib/bind/include/isc/platform.h.in - copied unchanged from r187692, head/contrib/bind9/lib/bind/include/isc/platform.h.in projects/l2filter/contrib/bind9/lib/isc/include/isc/portset.h - copied unchanged from r187692, head/contrib/bind9/lib/isc/include/isc/portset.h projects/l2filter/contrib/bind9/lib/isc/portset.c - copied unchanged from r187692, head/contrib/bind9/lib/isc/portset.c projects/l2filter/contrib/csup/lex.rcs.c - copied unchanged from r187692, head/contrib/csup/lex.rcs.c projects/l2filter/contrib/csup/rcsfile.c - copied unchanged from r187692, head/contrib/csup/rcsfile.c projects/l2filter/contrib/csup/rcsfile.h - copied unchanged from r187692, head/contrib/csup/rcsfile.h projects/l2filter/contrib/csup/rcsparse.c - copied unchanged from r187692, head/contrib/csup/rcsparse.c projects/l2filter/contrib/csup/rcsparse.h - copied unchanged from r187692, head/contrib/csup/rcsparse.h projects/l2filter/contrib/csup/rcstokenizer.h - copied unchanged from r187692, head/contrib/csup/rcstokenizer.h projects/l2filter/contrib/csup/rcstokenizer.l - copied unchanged from r187692, head/contrib/csup/rcstokenizer.l projects/l2filter/contrib/csup/rsyncfile.c - copied unchanged from r187692, head/contrib/csup/rsyncfile.c projects/l2filter/contrib/csup/rsyncfile.h - copied unchanged from r187692, head/contrib/csup/rsyncfile.h projects/l2filter/contrib/file/AUTHORS - copied unchanged from r187692, head/contrib/file/AUTHORS projects/l2filter/contrib/file/COPYING - copied unchanged from r187692, head/contrib/file/COPYING projects/l2filter/contrib/file/INSTALL - copied unchanged from r187692, head/contrib/file/INSTALL projects/l2filter/contrib/file/Magdir/clarion - copied unchanged from r187692, head/contrib/file/Magdir/clarion projects/l2filter/contrib/file/Magdir/erlang - copied unchanged from r187692, head/contrib/file/Magdir/erlang projects/l2filter/contrib/file/Magdir/gnome-keyring - copied unchanged from r187692, head/contrib/file/Magdir/gnome-keyring projects/l2filter/contrib/file/Magdir/gnumeric - copied unchanged from r187692, head/contrib/file/Magdir/gnumeric projects/l2filter/contrib/file/Magdir/graphviz - copied unchanged from r187692, head/contrib/file/Magdir/graphviz projects/l2filter/contrib/file/Magdir/inform - copied unchanged from r187692, head/contrib/file/Magdir/inform projects/l2filter/contrib/file/Magdir/kde - copied unchanged from r187692, head/contrib/file/Magdir/kde projects/l2filter/contrib/file/Magdir/llvm - copied unchanged from r187692, head/contrib/file/Magdir/llvm projects/l2filter/contrib/file/Magdir/lua - copied unchanged from r187692, head/contrib/file/Magdir/lua projects/l2filter/contrib/file/Magdir/luks - copied unchanged from r187692, head/contrib/file/Magdir/luks projects/l2filter/contrib/file/Magdir/mathcad - copied unchanged from r187692, head/contrib/file/Magdir/mathcad projects/l2filter/contrib/file/Magdir/mercurial - copied unchanged from r187692, head/contrib/file/Magdir/mercurial projects/l2filter/contrib/file/Magdir/mozilla - copied unchanged from r187692, head/contrib/file/Magdir/mozilla projects/l2filter/contrib/file/Magdir/netware - copied unchanged from r187692, head/contrib/file/Magdir/netware projects/l2filter/contrib/file/Magdir/ole2compounddocs - copied unchanged from r187692, head/contrib/file/Magdir/ole2compounddocs projects/l2filter/contrib/file/Magdir/ruby - copied unchanged from r187692, head/contrib/file/Magdir/ruby projects/l2filter/contrib/file/Magdir/securitycerts - copied unchanged from r187692, head/contrib/file/Magdir/securitycerts projects/l2filter/contrib/file/Magdir/warc - copied unchanged from r187692, head/contrib/file/Magdir/warc projects/l2filter/contrib/file/Magdir/weak - copied unchanged from r187692, head/contrib/file/Magdir/weak projects/l2filter/contrib/file/Magdir/windows - copied unchanged from r187692, head/contrib/file/Magdir/windows projects/l2filter/contrib/file/Magdir/xilinx - copied unchanged from r187692, head/contrib/file/Magdir/xilinx projects/l2filter/contrib/file/NEWS - copied unchanged from r187692, head/contrib/file/NEWS projects/l2filter/contrib/file/TODO - copied unchanged from r187692, head/contrib/file/TODO projects/l2filter/contrib/file/asprintf.c - copied unchanged from r187692, head/contrib/file/asprintf.c projects/l2filter/contrib/file/compile - copied unchanged from r187692, head/contrib/file/compile projects/l2filter/contrib/file/config.guess - copied unchanged from r187692, head/contrib/file/config.guess projects/l2filter/contrib/file/config.sub - copied unchanged from r187692, head/contrib/file/config.sub projects/l2filter/contrib/file/configure.ac - copied unchanged from r187692, head/contrib/file/configure.ac projects/l2filter/contrib/file/elfclass.h - copied unchanged from r187692, head/contrib/file/elfclass.h projects/l2filter/contrib/file/getopt_long.c - copied unchanged from r187692, head/contrib/file/getopt_long.c projects/l2filter/contrib/file/mygetopt.h - copied unchanged from r187692, head/contrib/file/mygetopt.h projects/l2filter/contrib/file/tests/ - copied from r187692, head/contrib/file/tests/ projects/l2filter/contrib/file/vasprintf.c - copied unchanged from r187692, head/contrib/file/vasprintf.c projects/l2filter/contrib/openbsm/bin/auditd/auditd_darwin.c - copied unchanged from r187692, head/contrib/openbsm/bin/auditd/auditd_darwin.c projects/l2filter/contrib/openbsm/bin/auditd/auditd_fbsd.c - copied unchanged from r187692, head/contrib/openbsm/bin/auditd/auditd_fbsd.c projects/l2filter/contrib/openbsm/bsm/auditd_lib.h - copied unchanged from r187692, head/contrib/openbsm/bsm/auditd_lib.h projects/l2filter/contrib/openbsm/libauditd/ - copied from r187692, head/contrib/openbsm/libauditd/ projects/l2filter/contrib/openbsm/libbsm/au_domain.3 - copied unchanged from r187692, head/contrib/openbsm/libbsm/au_domain.3 projects/l2filter/contrib/openbsm/libbsm/au_errno.3 - copied unchanged from r187692, head/contrib/openbsm/libbsm/au_errno.3 projects/l2filter/contrib/openbsm/libbsm/au_socket_type.3 - copied unchanged from r187692, head/contrib/openbsm/libbsm/au_socket_type.3 projects/l2filter/contrib/openbsm/libbsm/bsm_domain.c - copied unchanged from r187692, head/contrib/openbsm/libbsm/bsm_domain.c projects/l2filter/contrib/openbsm/libbsm/bsm_errno.c - copied unchanged from r187692, head/contrib/openbsm/libbsm/bsm_errno.c projects/l2filter/contrib/openbsm/libbsm/bsm_socket_type.c - copied unchanged from r187692, head/contrib/openbsm/libbsm/bsm_socket_type.c projects/l2filter/contrib/openbsm/sys/bsm/audit_domain.h - copied unchanged from r187692, head/contrib/openbsm/sys/bsm/audit_domain.h projects/l2filter/contrib/openbsm/sys/bsm/audit_errno.h - copied unchanged from r187692, head/contrib/openbsm/sys/bsm/audit_errno.h projects/l2filter/contrib/openbsm/sys/bsm/audit_socket_type.h - copied unchanged from r187692, head/contrib/openbsm/sys/bsm/audit_socket_type.h projects/l2filter/contrib/openbsm/test/reference/E2BIG_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/E2BIG_record projects/l2filter/contrib/openbsm/test/reference/EACCES_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EACCES_record projects/l2filter/contrib/openbsm/test/reference/EBADF_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EBADF_record projects/l2filter/contrib/openbsm/test/reference/EBUSY_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EBUSY_record projects/l2filter/contrib/openbsm/test/reference/ECHILD_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ECHILD_record projects/l2filter/contrib/openbsm/test/reference/EDEADLK_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EDEADLK_record projects/l2filter/contrib/openbsm/test/reference/EEXIST_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EEXIST_record projects/l2filter/contrib/openbsm/test/reference/EFAULT_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EFAULT_record projects/l2filter/contrib/openbsm/test/reference/EFBIG_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EFBIG_record projects/l2filter/contrib/openbsm/test/reference/EINTR_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EINTR_record projects/l2filter/contrib/openbsm/test/reference/EINVAL_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EINVAL_record projects/l2filter/contrib/openbsm/test/reference/EIO_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EIO_record projects/l2filter/contrib/openbsm/test/reference/EISDIR_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EISDIR_record projects/l2filter/contrib/openbsm/test/reference/EMFILE_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EMFILE_record projects/l2filter/contrib/openbsm/test/reference/EMLINK_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EMLINK_record projects/l2filter/contrib/openbsm/test/reference/ENFILE_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENFILE_record projects/l2filter/contrib/openbsm/test/reference/ENODEV_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENODEV_record projects/l2filter/contrib/openbsm/test/reference/ENOENT_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENOENT_record projects/l2filter/contrib/openbsm/test/reference/ENOEXEC_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENOEXEC_record projects/l2filter/contrib/openbsm/test/reference/ENOMEM_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENOMEM_record projects/l2filter/contrib/openbsm/test/reference/ENOSPC_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENOSPC_record projects/l2filter/contrib/openbsm/test/reference/ENOTBLK_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENOTBLK_record projects/l2filter/contrib/openbsm/test/reference/ENOTDIR_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENOTDIR_record projects/l2filter/contrib/openbsm/test/reference/ENOTTY_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENOTTY_record projects/l2filter/contrib/openbsm/test/reference/ENXIO_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ENXIO_record projects/l2filter/contrib/openbsm/test/reference/EPERM_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EPERM_record projects/l2filter/contrib/openbsm/test/reference/EPIPE_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EPIPE_record projects/l2filter/contrib/openbsm/test/reference/EROFS_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EROFS_record projects/l2filter/contrib/openbsm/test/reference/ESPIPE_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ESPIPE_record projects/l2filter/contrib/openbsm/test/reference/ESRCH_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ESRCH_record projects/l2filter/contrib/openbsm/test/reference/ETXTBSY_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/ETXTBSY_record projects/l2filter/contrib/openbsm/test/reference/EXDEV_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/EXDEV_record projects/l2filter/contrib/openbsm/test/reference/socketex_record - copied unchanged from r187692, head/contrib/openbsm/test/reference/socketex_record projects/l2filter/contrib/openbsm/test/reference/socketex_token - copied unchanged from r187692, head/contrib/openbsm/test/reference/socketex_token projects/l2filter/etc/devd/ - copied from r187692, head/etc/devd/ projects/l2filter/lib/libarchive/test/test_write_disk_failures.c - copied unchanged from r187692, head/lib/libarchive/test/test_write_disk_failures.c projects/l2filter/lib/libauditd/ - copied from r187692, head/lib/libauditd/ projects/l2filter/lib/libc/include/isc/platform.h - copied unchanged from r187692, head/lib/libc/include/isc/platform.h projects/l2filter/lib/libc/stdio/printfcommon.h - copied unchanged from r187692, head/lib/libc/stdio/printfcommon.h projects/l2filter/lib/libelf/README - copied unchanged from r187692, head/lib/libelf/README projects/l2filter/share/man/man4/man4.powerpc/snd_ai2s.4 - copied unchanged from r187692, head/share/man/man4/man4.powerpc/snd_ai2s.4 projects/l2filter/share/man/man4/man4.powerpc/snd_davbus.4 - copied unchanged from r187692, head/share/man/man4/man4.powerpc/snd_davbus.4 projects/l2filter/share/man/man4/ng_ether_echo.4 - copied unchanged from r187692, head/share/man/man4/ng_ether_echo.4 projects/l2filter/share/man/man4/urtw.4 - copied unchanged from r187692, head/share/man/man4/urtw.4 projects/l2filter/sys/amd64/conf/USB2 - copied unchanged from r187692, head/sys/amd64/conf/USB2 projects/l2filter/sys/arm/arm/cpufunc_asm_sheeva.S - copied unchanged from r187692, head/sys/arm/arm/cpufunc_asm_sheeva.S projects/l2filter/sys/arm/conf/CAMBRIA - copied unchanged from r187692, head/sys/arm/conf/CAMBRIA projects/l2filter/sys/arm/conf/CAMBRIA.hints - copied unchanged from r187692, head/sys/arm/conf/CAMBRIA.hints projects/l2filter/sys/arm/xscale/ixp425/cambria_fled.c - copied unchanged from r187692, head/sys/arm/xscale/ixp425/cambria_fled.c projects/l2filter/sys/arm/xscale/ixp425/cambria_led.c - copied unchanged from r187692, head/sys/arm/xscale/ixp425/cambria_led.c projects/l2filter/sys/arm/xscale/ixp425/std.ixp435 - copied unchanged from r187692, head/sys/arm/xscale/ixp425/std.ixp435 projects/l2filter/sys/bsm/audit_domain.h - copied unchanged from r187692, head/sys/bsm/audit_domain.h projects/l2filter/sys/bsm/audit_errno.h - copied unchanged from r187692, head/sys/bsm/audit_errno.h projects/l2filter/sys/bsm/audit_socket_type.h - copied unchanged from r187692, head/sys/bsm/audit_socket_type.h projects/l2filter/sys/dev/ofw/ofw_if.m - copied unchanged from r187692, head/sys/dev/ofw/ofw_if.m projects/l2filter/sys/dev/ofw/ofw_iicbus.c - copied unchanged from r187692, head/sys/dev/ofw/ofw_iicbus.c projects/l2filter/sys/dev/ofw/ofw_standard.c - copied unchanged from r187692, head/sys/dev/ofw/ofw_standard.c projects/l2filter/sys/dev/ofw/ofwvar.h - copied unchanged from r187692, head/sys/dev/ofw/ofwvar.h projects/l2filter/sys/dev/sound/macio/ - copied from r187692, head/sys/dev/sound/macio/ projects/l2filter/sys/dev/syscons/scterm-teken.c - copied unchanged from r187692, head/sys/dev/syscons/scterm-teken.c projects/l2filter/sys/dev/syscons/teken/ - copied from r187692, head/sys/dev/syscons/teken/ projects/l2filter/sys/dev/usb/ehci_ddb.c - copied unchanged from r187692, head/sys/dev/usb/ehci_ddb.c projects/l2filter/sys/dev/usb/ehci_ixp4xx.c - copied unchanged from r187692, head/sys/dev/usb/ehci_ixp4xx.c projects/l2filter/sys/dev/usb/if_urtw.c - copied unchanged from r187692, head/sys/dev/usb/if_urtw.c projects/l2filter/sys/dev/usb/if_urtwreg.h - copied unchanged from r187692, head/sys/dev/usb/if_urtwreg.h projects/l2filter/sys/dev/usb/if_urtwvar.h - copied unchanged from r187692, head/sys/dev/usb/if_urtwvar.h projects/l2filter/sys/dev/usb2/controller/atmegadci.c - copied unchanged from r187692, head/sys/dev/usb2/controller/atmegadci.c projects/l2filter/sys/dev/usb2/controller/atmegadci.h - copied unchanged from r187692, head/sys/dev/usb2/controller/atmegadci.h projects/l2filter/sys/dev/usb2/controller/atmegadci_atmelarm.c - copied unchanged from r187692, head/sys/dev/usb2/controller/atmegadci_atmelarm.c projects/l2filter/sys/dev/usb2/ethernet/if_auereg.h - copied unchanged from r187692, head/sys/dev/usb2/ethernet/if_auereg.h projects/l2filter/sys/dev/usb2/ethernet/if_axereg.h - copied unchanged from r187692, head/sys/dev/usb2/ethernet/if_axereg.h projects/l2filter/sys/dev/usb2/ethernet/if_cdcereg.h - copied unchanged from r187692, head/sys/dev/usb2/ethernet/if_cdcereg.h projects/l2filter/sys/dev/usb2/ethernet/if_cuereg.h - copied unchanged from r187692, head/sys/dev/usb2/ethernet/if_cuereg.h projects/l2filter/sys/dev/usb2/ethernet/if_kuefw.h - copied unchanged from r187692, head/sys/dev/usb2/ethernet/if_kuefw.h projects/l2filter/sys/dev/usb2/ethernet/if_kuereg.h - copied unchanged from r187692, head/sys/dev/usb2/ethernet/if_kuereg.h projects/l2filter/sys/dev/usb2/ethernet/if_ruereg.h - copied unchanged from r187692, head/sys/dev/usb2/ethernet/if_ruereg.h projects/l2filter/sys/dev/usb2/ethernet/if_udavreg.h - copied unchanged from r187692, head/sys/dev/usb2/ethernet/if_udavreg.h projects/l2filter/sys/dev/usb2/wlan/if_rumfw.h - copied unchanged from r187692, head/sys/dev/usb2/wlan/if_rumfw.h projects/l2filter/sys/dev/usb2/wlan/if_rumreg.h - copied unchanged from r187692, head/sys/dev/usb2/wlan/if_rumreg.h projects/l2filter/sys/dev/usb2/wlan/if_rumvar.h - copied unchanged from r187692, head/sys/dev/usb2/wlan/if_rumvar.h projects/l2filter/sys/dev/usb2/wlan/if_uralreg.h - copied unchanged from r187692, head/sys/dev/usb2/wlan/if_uralreg.h projects/l2filter/sys/dev/usb2/wlan/if_uralvar.h - copied unchanged from r187692, head/sys/dev/usb2/wlan/if_uralvar.h projects/l2filter/sys/dev/usb2/wlan/if_zydfw.h - copied unchanged from r187692, head/sys/dev/usb2/wlan/if_zydfw.h projects/l2filter/sys/dev/usb2/wlan/if_zydreg.h - copied unchanged from r187692, head/sys/dev/usb2/wlan/if_zydreg.h projects/l2filter/sys/i386/conf/USB2 - copied unchanged from r187692, head/sys/i386/conf/USB2 projects/l2filter/sys/mips/mips/elf64_machdep.c - copied unchanged from r187692, head/sys/mips/mips/elf64_machdep.c projects/l2filter/sys/modules/netgraph/ether_echo/ - copied from r187692, head/sys/modules/netgraph/ether_echo/ projects/l2filter/sys/modules/sound/driver/ai2s/ - copied from r187692, head/sys/modules/sound/driver/ai2s/ projects/l2filter/sys/modules/sound/driver/davbus/ - copied from r187692, head/sys/modules/sound/driver/davbus/ projects/l2filter/sys/modules/urtw/ - copied from r187692, head/sys/modules/urtw/ projects/l2filter/sys/modules/usb2/controller_atmegadci/ - copied from r187692, head/sys/modules/usb2/controller_atmegadci/ projects/l2filter/sys/modules/usb2/serial_3g/ - copied from r187692, head/sys/modules/usb2/serial_3g/ projects/l2filter/sys/net/if_llatbl.c - copied unchanged from r187692, head/sys/net/if_llatbl.c projects/l2filter/sys/net/if_llatbl.h - copied unchanged from r187692, head/sys/net/if_llatbl.h projects/l2filter/sys/net80211/ieee80211_tdma.c - copied unchanged from r187692, head/sys/net80211/ieee80211_tdma.c projects/l2filter/sys/net80211/ieee80211_tdma.h - copied unchanged from r187692, head/sys/net80211/ieee80211_tdma.h projects/l2filter/sys/netgraph/ng_ether_echo.c - copied unchanged from r187692, head/sys/netgraph/ng_ether_echo.c projects/l2filter/sys/netgraph/ng_ether_echo.h - copied unchanged from r187692, head/sys/netgraph/ng_ether_echo.h projects/l2filter/sys/pc98/cbus/sctermvar.h - copied unchanged from r187692, head/sys/pc98/cbus/sctermvar.h projects/l2filter/sys/powerpc/mpc85xx/mpc85xx.h - copied unchanged from r187692, head/sys/powerpc/mpc85xx/mpc85xx.h projects/l2filter/sys/powerpc/powermac/kiic.c - copied unchanged from r187692, head/sys/powerpc/powermac/kiic.c projects/l2filter/sys/security/audit/audit_bsm_domain.c - copied unchanged from r187692, head/sys/security/audit/audit_bsm_domain.c projects/l2filter/sys/security/audit/audit_bsm_errno.c - copied unchanged from r187692, head/sys/security/audit/audit_bsm_errno.c projects/l2filter/sys/security/audit/audit_bsm_socket_type.c - copied unchanged from r187692, head/sys/security/audit/audit_bsm_socket_type.c projects/l2filter/sys/xen/evtchn.h - copied unchanged from r187692, head/sys/xen/evtchn.h projects/l2filter/sys/xen/hypervisor.h - copied unchanged from r187692, head/sys/xen/hypervisor.h projects/l2filter/sys/xen/xen_intr.h - copied unchanged from r187692, head/sys/xen/xen_intr.h projects/l2filter/tools/regression/usr.bin/jot/regress.wX1.out - copied unchanged from r187692, head/tools/regression/usr.bin/jot/regress.wX1.out projects/l2filter/tools/tools/ath/athrd/ - copied from r187692, head/tools/tools/ath/athrd/ projects/l2filter/tools/tools/ether_reflect/ - copied from r187692, head/tools/tools/ether_reflect/ projects/l2filter/tools/tools/nanobsd/gateworks/ - copied from r187692, head/tools/tools/nanobsd/gateworks/ projects/l2filter/tools/tools/net80211/scripts/setup.tdma-master - copied unchanged from r187692, head/tools/tools/net80211/scripts/setup.tdma-master projects/l2filter/tools/tools/net80211/scripts/setup.tdma-slave - copied unchanged from r187692, head/tools/tools/net80211/scripts/setup.tdma-slave projects/l2filter/tools/tools/net80211/wlantxtime/ - copied from r187692, head/tools/tools/net80211/wlantxtime/ projects/l2filter/tools/tools/sysbuild/ - copied from r187692, head/tools/tools/sysbuild/ projects/l2filter/tools/tools/tionxcl/ - copied from r187692, head/tools/tools/tionxcl/ projects/l2filter/usr.bin/elf2aout/elf2aout.1 - copied unchanged from r187692, head/usr.bin/elf2aout/elf2aout.1 projects/l2filter/usr.bin/mail/util.c - copied unchanged from r187692, head/usr.bin/mail/util.c projects/l2filter/usr.sbin/makefs/ - copied from r187692, head/usr.sbin/makefs/ Replaced: projects/l2filter/contrib/file/FREEBSD-upgrade - copied unchanged from r187692, head/contrib/file/FREEBSD-upgrade projects/l2filter/contrib/file/magic2mime - copied unchanged from r187692, head/contrib/file/magic2mime Deleted: projects/l2filter/contrib/bind9/bin/nsupdate/nsupdate.8 projects/l2filter/contrib/file/LEGAL.NOTICE projects/l2filter/contrib/file/Makefile.std projects/l2filter/contrib/file/PORTING projects/l2filter/contrib/file/configure.in projects/l2filter/contrib/file/magic.mime projects/l2filter/contrib/file/mkinstalldirs projects/l2filter/contrib/file/test.c projects/l2filter/sys/arm/arm/cpufunc_asm_feroceon.S projects/l2filter/sys/boot/common/load.c projects/l2filter/sys/dev/digi/con.CX-IBM.h projects/l2filter/sys/dev/digi/con.CX.h projects/l2filter/sys/dev/digi/con.EPCX.h projects/l2filter/sys/dev/digi/con.MBank.h projects/l2filter/sys/dev/sound/pci/au88x0.c projects/l2filter/sys/dev/sound/pci/au88x0.h projects/l2filter/sys/dev/syscons/scterm-dumb.c projects/l2filter/sys/dev/syscons/scterm-sc.c projects/l2filter/sys/dev/syscons/sctermvar.h projects/l2filter/sys/dev/usb2/ethernet/if_aue2_reg.h projects/l2filter/sys/dev/usb2/ethernet/if_axe2_reg.h projects/l2filter/sys/dev/usb2/ethernet/if_cdce2_reg.h projects/l2filter/sys/dev/usb2/ethernet/if_cue2_reg.h projects/l2filter/sys/dev/usb2/ethernet/if_kue2_fw.h projects/l2filter/sys/dev/usb2/ethernet/if_kue2_reg.h projects/l2filter/sys/dev/usb2/ethernet/if_rue2_reg.h projects/l2filter/sys/dev/usb2/ethernet/if_udav2_reg.h projects/l2filter/sys/dev/usb2/wlan/if_rum2_fw.h projects/l2filter/sys/dev/usb2/wlan/if_rum2_reg.h projects/l2filter/sys/dev/usb2/wlan/if_rum2_var.h projects/l2filter/sys/dev/usb2/wlan/if_ural2_reg.h projects/l2filter/sys/dev/usb2/wlan/if_ural2_var.h projects/l2filter/sys/dev/usb2/wlan/if_zyd2_fw.h projects/l2filter/sys/dev/usb2/wlan/if_zyd2_reg.h projects/l2filter/sys/i386/include/xen/evtchn.h projects/l2filter/sys/i386/include/xen/hypervisor.h projects/l2filter/sys/i386/include/xen/xen_intr.h projects/l2filter/sys/modules/ath_rate_amrr/ projects/l2filter/sys/modules/ath_rate_onoe/ projects/l2filter/sys/modules/ath_rate_sample/ projects/l2filter/sys/modules/sound/driver/au88x0/ projects/l2filter/sys/netinet/ipprotosw.h projects/l2filter/sys/powerpc/booke/support.S projects/l2filter/sys/sparc64/include/ofw_bus.h projects/l2filter/sys/sparc64/sparc64/ofw_bus.c projects/l2filter/sys/sun4v/include/ofw_bus.h projects/l2filter/tools/regression/usr.bin/jot/regress.wX.out projects/l2filter/usr.bin/mail/aux.c projects/l2filter/usr.sbin/sysinstall/tape.c Modified: projects/l2filter/ (props changed) projects/l2filter/bin/chmod/chmod.1 projects/l2filter/bin/dd/dd.1 projects/l2filter/bin/kenv/kenv.1 projects/l2filter/bin/ln/ln.1 projects/l2filter/bin/test/test.1 projects/l2filter/cddl/contrib/opensolaris/cmd/zinject/zinject.c projects/l2filter/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c projects/l2filter/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c projects/l2filter/contrib/bind9/ (props changed) projects/l2filter/contrib/bind9/CHANGES projects/l2filter/contrib/bind9/COPYRIGHT projects/l2filter/contrib/bind9/FAQ projects/l2filter/contrib/bind9/FAQ.xml projects/l2filter/contrib/bind9/README projects/l2filter/contrib/bind9/bin/check/check-tool.c projects/l2filter/contrib/bind9/bin/check/named-checkconf.c projects/l2filter/contrib/bind9/bin/check/named-checkzone.c projects/l2filter/contrib/bind9/bin/dig/dig.1 projects/l2filter/contrib/bind9/bin/dig/dig.c projects/l2filter/contrib/bind9/bin/dig/dig.docbook projects/l2filter/contrib/bind9/bin/dig/dig.html projects/l2filter/contrib/bind9/bin/dig/dighost.c projects/l2filter/contrib/bind9/bin/dig/host.1 projects/l2filter/contrib/bind9/bin/dig/host.docbook projects/l2filter/contrib/bind9/bin/dig/host.html projects/l2filter/contrib/bind9/bin/dnssec/dnssec-keygen.8 projects/l2filter/contrib/bind9/bin/dnssec/dnssec-keygen.docbook projects/l2filter/contrib/bind9/bin/dnssec/dnssec-keygen.html projects/l2filter/contrib/bind9/bin/dnssec/dnssec-signzone.8 projects/l2filter/contrib/bind9/bin/dnssec/dnssec-signzone.c projects/l2filter/contrib/bind9/bin/dnssec/dnssec-signzone.docbook projects/l2filter/contrib/bind9/bin/dnssec/dnssec-signzone.html projects/l2filter/contrib/bind9/bin/named/client.c projects/l2filter/contrib/bind9/bin/named/config.c projects/l2filter/contrib/bind9/bin/named/controlconf.c projects/l2filter/contrib/bind9/bin/named/include/named/globals.h projects/l2filter/contrib/bind9/bin/named/interfacemgr.c projects/l2filter/contrib/bind9/bin/named/lwaddr.c projects/l2filter/contrib/bind9/bin/named/lwdgnba.c projects/l2filter/contrib/bind9/bin/named/lwdnoop.c projects/l2filter/contrib/bind9/bin/named/lwresd.8 projects/l2filter/contrib/bind9/bin/named/lwresd.c projects/l2filter/contrib/bind9/bin/named/lwresd.docbook projects/l2filter/contrib/bind9/bin/named/lwresd.html projects/l2filter/contrib/bind9/bin/named/main.c projects/l2filter/contrib/bind9/bin/named/named.8 projects/l2filter/contrib/bind9/bin/named/named.conf.5 projects/l2filter/contrib/bind9/bin/named/named.conf.docbook projects/l2filter/contrib/bind9/bin/named/named.conf.html projects/l2filter/contrib/bind9/bin/named/named.docbook projects/l2filter/contrib/bind9/bin/named/named.html projects/l2filter/contrib/bind9/bin/named/query.c projects/l2filter/contrib/bind9/bin/named/server.c projects/l2filter/contrib/bind9/bin/named/unix/include/named/os.h projects/l2filter/contrib/bind9/bin/named/unix/os.c projects/l2filter/contrib/bind9/bin/named/update.c projects/l2filter/contrib/bind9/bin/nsupdate/Makefile.in projects/l2filter/contrib/bind9/bin/nsupdate/nsupdate.c projects/l2filter/contrib/bind9/bin/nsupdate/nsupdate.docbook projects/l2filter/contrib/bind9/bin/nsupdate/nsupdate.html projects/l2filter/contrib/bind9/bin/rndc/rndc-confgen.c projects/l2filter/contrib/bind9/bin/rndc/rndc.8 projects/l2filter/contrib/bind9/bin/rndc/rndc.c projects/l2filter/contrib/bind9/bin/rndc/rndc.docbook projects/l2filter/contrib/bind9/bin/rndc/rndc.html projects/l2filter/contrib/bind9/configure.in projects/l2filter/contrib/bind9/doc/arm/Bv9ARM-book.xml projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch01.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch02.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch03.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch04.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch05.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch06.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch07.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch08.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch09.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.ch10.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.html projects/l2filter/contrib/bind9/doc/arm/Bv9ARM.pdf projects/l2filter/contrib/bind9/doc/arm/man.dig.html projects/l2filter/contrib/bind9/doc/arm/man.dnssec-keygen.html projects/l2filter/contrib/bind9/doc/arm/man.dnssec-signzone.html projects/l2filter/contrib/bind9/doc/arm/man.host.html projects/l2filter/contrib/bind9/doc/arm/man.named-checkconf.html projects/l2filter/contrib/bind9/doc/arm/man.named-checkzone.html projects/l2filter/contrib/bind9/doc/arm/man.named.html projects/l2filter/contrib/bind9/doc/arm/man.rndc-confgen.html projects/l2filter/contrib/bind9/doc/arm/man.rndc.conf.html projects/l2filter/contrib/bind9/doc/arm/man.rndc.html projects/l2filter/contrib/bind9/doc/misc/Makefile.in projects/l2filter/contrib/bind9/doc/misc/format-options.pl projects/l2filter/contrib/bind9/doc/misc/migration projects/l2filter/contrib/bind9/doc/misc/options projects/l2filter/contrib/bind9/doc/rfc/index projects/l2filter/contrib/bind9/lib/bind/api projects/l2filter/contrib/bind9/lib/bind/bsd/Makefile.in projects/l2filter/contrib/bind9/lib/bind/bsd/strerror.c projects/l2filter/contrib/bind9/lib/bind/bsd/strtoul.c projects/l2filter/contrib/bind9/lib/bind/configure.in projects/l2filter/contrib/bind9/lib/bind/dst/Makefile.in projects/l2filter/contrib/bind9/lib/bind/dst/dst_api.c projects/l2filter/contrib/bind9/lib/bind/dst/hmac_link.c projects/l2filter/contrib/bind9/lib/bind/dst/support.c projects/l2filter/contrib/bind9/lib/bind/include/Makefile.in projects/l2filter/contrib/bind9/lib/bind/include/arpa/nameser.h projects/l2filter/contrib/bind9/lib/bind/include/isc/assertions.h projects/l2filter/contrib/bind9/lib/bind/include/isc/eventlib.h projects/l2filter/contrib/bind9/lib/bind/include/isc/misc.h projects/l2filter/contrib/bind9/lib/bind/include/netdb.h projects/l2filter/contrib/bind9/lib/bind/include/resolv.h projects/l2filter/contrib/bind9/lib/bind/inet/Makefile.in projects/l2filter/contrib/bind9/lib/bind/inet/inet_net_pton.c projects/l2filter/contrib/bind9/lib/bind/inet/inet_network.c projects/l2filter/contrib/bind9/lib/bind/irs/Makefile.in projects/l2filter/contrib/bind9/lib/bind/irs/dns_ho.c projects/l2filter/contrib/bind9/lib/bind/irs/getnetgrent.c projects/l2filter/contrib/bind9/lib/bind/irs/getnetgrent_r.c projects/l2filter/contrib/bind9/lib/bind/irs/irp.c projects/l2filter/contrib/bind9/lib/bind/isc/Makefile.in projects/l2filter/contrib/bind9/lib/bind/isc/assertions.c projects/l2filter/contrib/bind9/lib/bind/isc/bitncmp.c projects/l2filter/contrib/bind9/lib/bind/isc/ctl_clnt.c projects/l2filter/contrib/bind9/lib/bind/isc/ctl_srvr.c projects/l2filter/contrib/bind9/lib/bind/isc/logging.c projects/l2filter/contrib/bind9/lib/bind/nameser/Makefile.in projects/l2filter/contrib/bind9/lib/bind/port_after.h.in projects/l2filter/contrib/bind9/lib/bind/port_before.h.in projects/l2filter/contrib/bind9/lib/bind/resolv/Makefile.in projects/l2filter/contrib/bind9/lib/bind/resolv/res_debug.c projects/l2filter/contrib/bind9/lib/bind/resolv/res_mkquery.c projects/l2filter/contrib/bind9/lib/bind/resolv/res_query.c projects/l2filter/contrib/bind9/lib/bind/resolv/res_send.c projects/l2filter/contrib/bind9/lib/bind9/api projects/l2filter/contrib/bind9/lib/bind9/check.c projects/l2filter/contrib/bind9/lib/dns/acache.c projects/l2filter/contrib/bind9/lib/dns/adb.c projects/l2filter/contrib/bind9/lib/dns/api projects/l2filter/contrib/bind9/lib/dns/cache.c projects/l2filter/contrib/bind9/lib/dns/dispatch.c projects/l2filter/contrib/bind9/lib/dns/dst_parse.c projects/l2filter/contrib/bind9/lib/dns/dst_parse.h projects/l2filter/contrib/bind9/lib/dns/include/dns/dispatch.h projects/l2filter/contrib/bind9/lib/dns/journal.c projects/l2filter/contrib/bind9/lib/dns/master.c projects/l2filter/contrib/bind9/lib/dns/masterdump.c projects/l2filter/contrib/bind9/lib/dns/message.c projects/l2filter/contrib/bind9/lib/dns/openssldsa_link.c projects/l2filter/contrib/bind9/lib/dns/opensslrsa_link.c projects/l2filter/contrib/bind9/lib/dns/rbt.c projects/l2filter/contrib/bind9/lib/dns/rbtdb.c projects/l2filter/contrib/bind9/lib/dns/rdata/generic/nsec_47.c projects/l2filter/contrib/bind9/lib/dns/rdata/generic/nsec_47.h projects/l2filter/contrib/bind9/lib/dns/rdata/generic/txt_16.c projects/l2filter/contrib/bind9/lib/dns/rdata/in_1/apl_42.c projects/l2filter/contrib/bind9/lib/dns/rdata/in_1/naptr_35.c projects/l2filter/contrib/bind9/lib/dns/request.c projects/l2filter/contrib/bind9/lib/dns/resolver.c projects/l2filter/contrib/bind9/lib/dns/rootns.c projects/l2filter/contrib/bind9/lib/dns/sdb.c projects/l2filter/contrib/bind9/lib/dns/tkey.c projects/l2filter/contrib/bind9/lib/dns/tsig.c projects/l2filter/contrib/bind9/lib/dns/validator.c projects/l2filter/contrib/bind9/lib/dns/view.c projects/l2filter/contrib/bind9/lib/dns/xfrin.c projects/l2filter/contrib/bind9/lib/dns/zone.c projects/l2filter/contrib/bind9/lib/isc/Makefile.in projects/l2filter/contrib/bind9/lib/isc/api projects/l2filter/contrib/bind9/lib/isc/assertions.c projects/l2filter/contrib/bind9/lib/isc/include/isc/assertions.h projects/l2filter/contrib/bind9/lib/isc/include/isc/lex.h projects/l2filter/contrib/bind9/lib/isc/include/isc/mem.h projects/l2filter/contrib/bind9/lib/isc/include/isc/msgs.h projects/l2filter/contrib/bind9/lib/isc/include/isc/platform.h.in projects/l2filter/contrib/bind9/lib/isc/include/isc/resource.h projects/l2filter/contrib/bind9/lib/isc/include/isc/socket.h projects/l2filter/contrib/bind9/lib/isc/include/isc/timer.h projects/l2filter/contrib/bind9/lib/isc/include/isc/types.h projects/l2filter/contrib/bind9/lib/isc/mem.c projects/l2filter/contrib/bind9/lib/isc/print.c projects/l2filter/contrib/bind9/lib/isc/pthreads/mutex.c projects/l2filter/contrib/bind9/lib/isc/timer.c projects/l2filter/contrib/bind9/lib/isc/unix/app.c projects/l2filter/contrib/bind9/lib/isc/unix/include/isc/net.h projects/l2filter/contrib/bind9/lib/isc/unix/net.c projects/l2filter/contrib/bind9/lib/isc/unix/resource.c projects/l2filter/contrib/bind9/lib/isc/unix/socket.c projects/l2filter/contrib/bind9/lib/isc/unix/socket_p.h projects/l2filter/contrib/bind9/lib/isc/unix/time.c projects/l2filter/contrib/bind9/lib/isccfg/api projects/l2filter/contrib/bind9/lib/isccfg/namedconf.c projects/l2filter/contrib/bind9/lib/lwres/api projects/l2filter/contrib/bind9/make/rules.in projects/l2filter/contrib/bind9/version projects/l2filter/contrib/bsnmp/snmp_mibII/mibII.c projects/l2filter/contrib/bsnmp/snmp_mibII/mibII_route.c projects/l2filter/contrib/csup/ (props changed) projects/l2filter/contrib/csup/GNUmakefile projects/l2filter/contrib/csup/Makefile projects/l2filter/contrib/csup/TODO projects/l2filter/contrib/csup/config.c projects/l2filter/contrib/csup/csup.1 projects/l2filter/contrib/csup/detailer.c projects/l2filter/contrib/csup/diff.c projects/l2filter/contrib/csup/diff.h projects/l2filter/contrib/csup/fattr.c projects/l2filter/contrib/csup/fattr.h projects/l2filter/contrib/csup/keyword.c projects/l2filter/contrib/csup/keyword.h projects/l2filter/contrib/csup/lister.c projects/l2filter/contrib/csup/misc.c projects/l2filter/contrib/csup/misc.h projects/l2filter/contrib/csup/mux.c projects/l2filter/contrib/csup/proto.c projects/l2filter/contrib/csup/proto.h projects/l2filter/contrib/csup/status.c projects/l2filter/contrib/csup/stream.c projects/l2filter/contrib/csup/stream.h projects/l2filter/contrib/csup/updater.c projects/l2filter/contrib/file/ (props changed) projects/l2filter/contrib/file/ChangeLog projects/l2filter/contrib/file/MAINT projects/l2filter/contrib/file/Magdir/adventure projects/l2filter/contrib/file/Magdir/animation projects/l2filter/contrib/file/Magdir/apple projects/l2filter/contrib/file/Magdir/archive projects/l2filter/contrib/file/Magdir/audio projects/l2filter/contrib/file/Magdir/c-lang projects/l2filter/contrib/file/Magdir/c64 projects/l2filter/contrib/file/Magdir/cafebabe projects/l2filter/contrib/file/Magdir/cddb projects/l2filter/contrib/file/Magdir/commands projects/l2filter/contrib/file/Magdir/compress projects/l2filter/contrib/file/Magdir/console projects/l2filter/contrib/file/Magdir/cracklib projects/l2filter/contrib/file/Magdir/ctags projects/l2filter/contrib/file/Magdir/database projects/l2filter/contrib/file/Magdir/diff projects/l2filter/contrib/file/Magdir/dump projects/l2filter/contrib/file/Magdir/elf projects/l2filter/contrib/file/Magdir/filesystems projects/l2filter/contrib/file/Magdir/flash projects/l2filter/contrib/file/Magdir/fonts projects/l2filter/contrib/file/Magdir/fortran projects/l2filter/contrib/file/Magdir/frame projects/l2filter/contrib/file/Magdir/freebsd projects/l2filter/contrib/file/Magdir/fsav projects/l2filter/contrib/file/Magdir/games projects/l2filter/contrib/file/Magdir/gimp projects/l2filter/contrib/file/Magdir/gnu projects/l2filter/contrib/file/Magdir/hp projects/l2filter/contrib/file/Magdir/iff projects/l2filter/contrib/file/Magdir/images projects/l2filter/contrib/file/Magdir/java projects/l2filter/contrib/file/Magdir/jpeg projects/l2filter/contrib/file/Magdir/lex projects/l2filter/contrib/file/Magdir/linux projects/l2filter/contrib/file/Magdir/lisp projects/l2filter/contrib/file/Magdir/macintosh projects/l2filter/contrib/file/Magdir/mail.news projects/l2filter/contrib/file/Magdir/mathematica projects/l2filter/contrib/file/Magdir/misctools projects/l2filter/contrib/file/Magdir/msdos projects/l2filter/contrib/file/Magdir/mup projects/l2filter/contrib/file/Magdir/os2 projects/l2filter/contrib/file/Magdir/palm projects/l2filter/contrib/file/Magdir/pdf projects/l2filter/contrib/file/Magdir/perl projects/l2filter/contrib/file/Magdir/pgp projects/l2filter/contrib/file/Magdir/pkgadd projects/l2filter/contrib/file/Magdir/printer projects/l2filter/contrib/file/Magdir/psion projects/l2filter/contrib/file/Magdir/revision projects/l2filter/contrib/file/Magdir/riff projects/l2filter/contrib/file/Magdir/rpm projects/l2filter/contrib/file/Magdir/rtf projects/l2filter/contrib/file/Magdir/sc projects/l2filter/contrib/file/Magdir/scientific projects/l2filter/contrib/file/Magdir/sgi projects/l2filter/contrib/file/Magdir/sgml projects/l2filter/contrib/file/Magdir/sharc projects/l2filter/contrib/file/Magdir/sketch projects/l2filter/contrib/file/Magdir/softquad projects/l2filter/contrib/file/Magdir/spectrum projects/l2filter/contrib/file/Magdir/tex projects/l2filter/contrib/file/Magdir/troff projects/l2filter/contrib/file/Magdir/unicode projects/l2filter/contrib/file/Magdir/uuencode projects/l2filter/contrib/file/Magdir/varied.script projects/l2filter/contrib/file/Magdir/vorbis projects/l2filter/contrib/file/Magdir/wordprocessors projects/l2filter/contrib/file/Makefile.am projects/l2filter/contrib/file/Makefile.in projects/l2filter/contrib/file/README projects/l2filter/contrib/file/acinclude.m4 projects/l2filter/contrib/file/aclocal.m4 projects/l2filter/contrib/file/apprentice.c projects/l2filter/contrib/file/ascmagic.c projects/l2filter/contrib/file/compress.c projects/l2filter/contrib/file/config.h.in projects/l2filter/contrib/file/configure projects/l2filter/contrib/file/file.c projects/l2filter/contrib/file/file.h projects/l2filter/contrib/file/file.man projects/l2filter/contrib/file/fsmagic.c projects/l2filter/contrib/file/funcs.c projects/l2filter/contrib/file/is_tar.c projects/l2filter/contrib/file/libmagic.man projects/l2filter/contrib/file/magic.c projects/l2filter/contrib/file/magic.h projects/l2filter/contrib/file/magic.man projects/l2filter/contrib/file/names.h projects/l2filter/contrib/file/patchlevel.h projects/l2filter/contrib/file/print.c projects/l2filter/contrib/file/readelf.c projects/l2filter/contrib/file/readelf.h projects/l2filter/contrib/file/softmagic.c projects/l2filter/contrib/file/tar.h projects/l2filter/contrib/ipfilter/ipsend/44arp.c projects/l2filter/contrib/lukemftpd/src/extern.h projects/l2filter/contrib/lukemftpd/src/ftpcmd.y projects/l2filter/contrib/lukemftpd/src/ftpd.c projects/l2filter/contrib/netcat/ (props changed) projects/l2filter/contrib/netcat/FREEBSD-vendor projects/l2filter/contrib/netcat/atomicio.c (props changed) projects/l2filter/contrib/netcat/atomicio.h (props changed) projects/l2filter/contrib/netcat/nc.1 projects/l2filter/contrib/netcat/netcat.c projects/l2filter/contrib/netcat/socks.c (props changed) projects/l2filter/contrib/ntp/ntpd/ntp_crypto.c projects/l2filter/contrib/openbsm/ (props changed) projects/l2filter/contrib/openbsm/INSTALL projects/l2filter/contrib/openbsm/Makefile.am projects/l2filter/contrib/openbsm/Makefile.in projects/l2filter/contrib/openbsm/NEWS projects/l2filter/contrib/openbsm/README projects/l2filter/contrib/openbsm/TODO projects/l2filter/contrib/openbsm/VERSION projects/l2filter/contrib/openbsm/bin/Makefile.in projects/l2filter/contrib/openbsm/bin/audit/Makefile.am projects/l2filter/contrib/openbsm/bin/audit/Makefile.in projects/l2filter/contrib/openbsm/bin/audit/audit.8 projects/l2filter/contrib/openbsm/bin/audit/audit.c projects/l2filter/contrib/openbsm/bin/auditd/Makefile.am projects/l2filter/contrib/openbsm/bin/auditd/Makefile.in projects/l2filter/contrib/openbsm/bin/auditd/audit_warn.c projects/l2filter/contrib/openbsm/bin/auditd/auditd.8 projects/l2filter/contrib/openbsm/bin/auditd/auditd.c projects/l2filter/contrib/openbsm/bin/auditd/auditd.h projects/l2filter/contrib/openbsm/bin/auditfilterd/Makefile.in projects/l2filter/contrib/openbsm/bin/auditreduce/Makefile.in projects/l2filter/contrib/openbsm/bin/auditreduce/auditreduce.c projects/l2filter/contrib/openbsm/bin/praudit/Makefile.in projects/l2filter/contrib/openbsm/bsm/Makefile.am projects/l2filter/contrib/openbsm/bsm/Makefile.in projects/l2filter/contrib/openbsm/bsm/audit_uevents.h projects/l2filter/contrib/openbsm/bsm/libbsm.h projects/l2filter/contrib/openbsm/compat/endian.h projects/l2filter/contrib/openbsm/config/config.h projects/l2filter/contrib/openbsm/config/config.h.in projects/l2filter/contrib/openbsm/configure projects/l2filter/contrib/openbsm/configure.ac projects/l2filter/contrib/openbsm/etc/audit_event projects/l2filter/contrib/openbsm/libbsm/Makefile.am projects/l2filter/contrib/openbsm/libbsm/Makefile.in projects/l2filter/contrib/openbsm/libbsm/au_token.3 projects/l2filter/contrib/openbsm/libbsm/audit_submit.3 projects/l2filter/contrib/openbsm/libbsm/bsm_audit.c projects/l2filter/contrib/openbsm/libbsm/bsm_class.c projects/l2filter/contrib/openbsm/libbsm/bsm_control.c projects/l2filter/contrib/openbsm/libbsm/bsm_event.c projects/l2filter/contrib/openbsm/libbsm/bsm_io.c projects/l2filter/contrib/openbsm/libbsm/bsm_mask.c projects/l2filter/contrib/openbsm/libbsm/bsm_token.c projects/l2filter/contrib/openbsm/libbsm/bsm_user.c projects/l2filter/contrib/openbsm/libbsm/bsm_wrappers.c projects/l2filter/contrib/openbsm/libbsm/libbsm.3 projects/l2filter/contrib/openbsm/man/Makefile.in projects/l2filter/contrib/openbsm/man/audit.log.5 projects/l2filter/contrib/openbsm/man/audit_user.5 projects/l2filter/contrib/openbsm/modules/Makefile.in projects/l2filter/contrib/openbsm/modules/auditfilter_noop/Makefile.in projects/l2filter/contrib/openbsm/sys/Makefile.in projects/l2filter/contrib/openbsm/sys/bsm/Makefile.am projects/l2filter/contrib/openbsm/sys/bsm/Makefile.in projects/l2filter/contrib/openbsm/sys/bsm/audit.h projects/l2filter/contrib/openbsm/sys/bsm/audit_internal.h projects/l2filter/contrib/openbsm/sys/bsm/audit_kevents.h projects/l2filter/contrib/openbsm/sys/bsm/audit_record.h projects/l2filter/contrib/openbsm/test/Makefile.in projects/l2filter/contrib/openbsm/test/bsm/Makefile.in projects/l2filter/contrib/openbsm/test/bsm/generate.c projects/l2filter/contrib/openbsm/test/reference/arg32_record projects/l2filter/contrib/openbsm/test/reference/data_record projects/l2filter/contrib/openbsm/test/reference/data_token projects/l2filter/contrib/openbsm/test/reference/file_record projects/l2filter/contrib/openbsm/test/reference/header32_token projects/l2filter/contrib/openbsm/test/reference/in_addr_record projects/l2filter/contrib/openbsm/test/reference/ip_record projects/l2filter/contrib/openbsm/test/reference/ipc_record projects/l2filter/contrib/openbsm/test/reference/iport_record projects/l2filter/contrib/openbsm/test/reference/opaque_record projects/l2filter/contrib/openbsm/test/reference/path_record projects/l2filter/contrib/openbsm/test/reference/process32_record projects/l2filter/contrib/openbsm/test/reference/process32ex_record-IPv4 projects/l2filter/contrib/openbsm/test/reference/process32ex_record-IPv6 projects/l2filter/contrib/openbsm/test/reference/process64_record projects/l2filter/contrib/openbsm/test/reference/process64ex_record-IPv4 projects/l2filter/contrib/openbsm/test/reference/process64ex_record-IPv6 projects/l2filter/contrib/openbsm/test/reference/return32_record projects/l2filter/contrib/openbsm/test/reference/return32_token projects/l2filter/contrib/openbsm/test/reference/seq_record projects/l2filter/contrib/openbsm/test/reference/subject32_record projects/l2filter/contrib/openbsm/test/reference/subject32ex_record projects/l2filter/contrib/openbsm/test/reference/text_record projects/l2filter/contrib/openbsm/test/reference/zonename_record projects/l2filter/contrib/openbsm/tools/Makefile.in projects/l2filter/contrib/smbfs/mount_smbfs/mount_smbfs.8 projects/l2filter/contrib/smbfs/mount_smbfs/mount_smbfs.c projects/l2filter/contrib/wpa_supplicant/ (props changed) projects/l2filter/crypto/openssl/apps/speed.c projects/l2filter/crypto/openssl/apps/spkac.c projects/l2filter/crypto/openssl/apps/verify.c projects/l2filter/crypto/openssl/apps/x509.c projects/l2filter/crypto/openssl/ssl/s2_clnt.c projects/l2filter/crypto/openssl/ssl/s2_srvr.c projects/l2filter/crypto/openssl/ssl/s3_clnt.c projects/l2filter/crypto/openssl/ssl/s3_srvr.c projects/l2filter/crypto/openssl/ssl/ssltest.c projects/l2filter/etc/Makefile projects/l2filter/etc/defaults/rc.conf projects/l2filter/etc/devd.conf projects/l2filter/etc/mtree/BSD.root.dist projects/l2filter/etc/periodic/weekly/Makefile projects/l2filter/etc/rc.d/defaultroute projects/l2filter/etc/rc.shutdown projects/l2filter/etc/regdomain.xml projects/l2filter/games/fortune/datfiles/freebsd-tips projects/l2filter/gnu/lib/libstdc++/Makefile projects/l2filter/gnu/usr.bin/man/manpath/manpath.config projects/l2filter/include/arpa/nameser.h projects/l2filter/include/resolv.h projects/l2filter/lib/Makefile projects/l2filter/lib/bind/bind/config.h projects/l2filter/lib/bind/bind/port_after.h projects/l2filter/lib/bind/bind/port_before.h projects/l2filter/lib/bind/config.h projects/l2filter/lib/bind/dns/code.h projects/l2filter/lib/bind/dns/dns/enumclass.h projects/l2filter/lib/bind/dns/dns/enumtype.h projects/l2filter/lib/bind/dns/dns/rdatastruct.h projects/l2filter/lib/bind/isc/Makefile projects/l2filter/lib/bind/isc/isc/platform.h projects/l2filter/lib/libarchive/archive_entry.c projects/l2filter/lib/libarchive/archive_read_support_compression_gzip.c projects/l2filter/lib/libarchive/archive_read_support_format_ar.c projects/l2filter/lib/libarchive/archive_read_support_format_iso9660.c projects/l2filter/lib/libarchive/archive_write_disk.c projects/l2filter/lib/libarchive/test/Makefile projects/l2filter/lib/libarchive/test/main.c projects/l2filter/lib/libarchive/test/test_compat_gtar.c projects/l2filter/lib/libarchive/test/test_write_compress.c projects/l2filter/lib/libarchive/test/test_write_disk_secure.c projects/l2filter/lib/libarchive/test/test_write_format_ar.c projects/l2filter/lib/libbsm/Makefile projects/l2filter/lib/libc/arm/_fpmath.h projects/l2filter/lib/libc/arm/arith.h projects/l2filter/lib/libc/include/fpmath.h projects/l2filter/lib/libc/include/isc/eventlib.h (contents, props changed) projects/l2filter/lib/libc/inet/inet_net_pton.c projects/l2filter/lib/libc/locale/mbstowcs.c projects/l2filter/lib/libc/locale/wcsftime.c projects/l2filter/lib/libc/locale/wcstombs.c projects/l2filter/lib/libc/net/getaddrinfo.3 projects/l2filter/lib/libc/net/rcmd.3 projects/l2filter/lib/libc/resolv/res_debug.c projects/l2filter/lib/libc/resolv/res_mkquery.c projects/l2filter/lib/libc/resolv/res_query.c projects/l2filter/lib/libc/resolv/res_send.c projects/l2filter/lib/libc/stdio/fputws.c projects/l2filter/lib/libc/stdio/vfprintf.c projects/l2filter/lib/libc/stdio/vfscanf.c projects/l2filter/lib/libc/stdio/vfwprintf.c projects/l2filter/lib/libc/stdio/vfwscanf.c projects/l2filter/lib/libc/stdio/vswscanf.c projects/l2filter/lib/libc/stdio/wsetup.c projects/l2filter/lib/libc/string/Makefile.inc projects/l2filter/lib/libc/string/ffs.3 projects/l2filter/lib/libc/string/strlcat.c projects/l2filter/lib/libc/string/strlcpy.3 projects/l2filter/lib/libc/sys/jail.2 projects/l2filter/lib/libc/sys/kldunload.2 projects/l2filter/lib/libc/sys/socket.2 projects/l2filter/lib/libc/sys/timer_create.2 projects/l2filter/lib/libfetch/fetch.3 projects/l2filter/lib/libfetch/fetch.c projects/l2filter/lib/libfetch/fetch.h projects/l2filter/lib/libfetch/http.c projects/l2filter/lib/libmagic/Makefile projects/l2filter/lib/libmd/mdX.3 projects/l2filter/lib/libstand/bootp.c projects/l2filter/lib/libstand/if_ether.h projects/l2filter/lib/libusb20/libusb20.c projects/l2filter/lib/libusb20/libusb20_desc.c projects/l2filter/lib/libutil/kinfo_getfile.c projects/l2filter/lib/libutil/kinfo_getvmmap.c projects/l2filter/lib/msun/src/e_rem_pio2.c projects/l2filter/lib/msun/src/e_rem_pio2f.c projects/l2filter/lib/msun/src/k_cosf.c projects/l2filter/lib/msun/src/k_sinf.c projects/l2filter/lib/msun/src/k_tanf.c projects/l2filter/lib/msun/src/math.h projects/l2filter/lib/msun/src/math_private.h projects/l2filter/libexec/bootpd/rtmsg.c projects/l2filter/libexec/comsat/comsat.c projects/l2filter/libexec/ftpd/extern.h projects/l2filter/libexec/ftpd/ftpcmd.y projects/l2filter/libexec/ftpd/ftpd.c projects/l2filter/release/doc/en_US.ISO8859-1/hardware/article.sgml projects/l2filter/release/doc/en_US.ISO8859-1/relnotes/article.sgml projects/l2filter/release/picobsd/tinyware/ns/ns.c projects/l2filter/sbin/atacontrol/atacontrol.8 projects/l2filter/sbin/ddb/ddb.8 projects/l2filter/sbin/devd/devd.cc projects/l2filter/sbin/devd/devd.conf.5 projects/l2filter/sbin/fdisk/fdisk.c projects/l2filter/sbin/fsck_ffs/fsck.h projects/l2filter/sbin/fsck_ffs/fsck_ffs.8 projects/l2filter/sbin/fsck_ffs/fsutil.c projects/l2filter/sbin/fsck_ffs/main.c projects/l2filter/sbin/geom/class/virstor/gvirstor.8 projects/l2filter/sbin/geom/misc/subr.c projects/l2filter/sbin/ifconfig/ifconfig.8 projects/l2filter/sbin/ifconfig/ifconfig.c projects/l2filter/sbin/ifconfig/ifieee80211.c projects/l2filter/sbin/ifconfig/regdomain.c projects/l2filter/sbin/ifconfig/regdomain.h projects/l2filter/sbin/ipfw/ipfw.8 projects/l2filter/sbin/ipfw/ipfw2.c projects/l2filter/sbin/kldstat/kldstat.c projects/l2filter/sbin/md5/md5.1 projects/l2filter/sbin/mdconfig/mdconfig.8 projects/l2filter/sbin/mdconfig/mdconfig.c projects/l2filter/sbin/mount/getmntopts.c projects/l2filter/sbin/mount/mount.c projects/l2filter/sbin/mount/mount_fs.c projects/l2filter/sbin/mount_msdosfs/mount_msdosfs.8 projects/l2filter/sbin/mount_ntfs/mount_ntfs.8 projects/l2filter/sbin/ping/ping.8 projects/l2filter/sbin/recoverdisk/recoverdisk.c projects/l2filter/sbin/route/route.c projects/l2filter/sbin/routed/table.c projects/l2filter/sbin/savecore/savecore.8 projects/l2filter/sbin/shutdown/shutdown.8 projects/l2filter/share/doc/bind9/Makefile projects/l2filter/share/examples/cvsup/refuse.README projects/l2filter/share/man/man4/Makefile projects/l2filter/share/man/man4/acpi_asus.4 projects/l2filter/share/man/man4/ae.4 projects/l2filter/share/man/man4/ath.4 projects/l2filter/share/man/man4/bce.4 projects/l2filter/share/man/man4/bge.4 projects/l2filter/share/man/man4/cd.4 projects/l2filter/share/man/man4/cpuctl.4 projects/l2filter/share/man/man4/fxp.4 projects/l2filter/share/man/man4/gem.4 projects/l2filter/share/man/man4/hme.4 projects/l2filter/share/man/man4/man4.powerpc/Makefile projects/l2filter/share/man/man4/ndis.4 projects/l2filter/share/man/man4/ng_tty.4 projects/l2filter/share/man/man4/nge.4 projects/l2filter/share/man/man4/route.4 projects/l2filter/share/man/man4/sdhci.4 projects/l2filter/share/man/man4/sk.4 projects/l2filter/share/man/man4/snd_hda.4 projects/l2filter/share/man/man4/snd_ich.4 projects/l2filter/share/man/man4/sysmouse.4 projects/l2filter/share/man/man4/textdump.4 projects/l2filter/share/man/man4/uscanner.4 projects/l2filter/share/man/man5/nsswitch.conf.5 projects/l2filter/share/man/man5/rc.conf.5 projects/l2filter/share/man/man7/build.7 projects/l2filter/share/man/man7/ports.7 projects/l2filter/share/man/man7/tuning.7 projects/l2filter/share/man/man9/VOP_STRATEGY.9 projects/l2filter/share/man/man9/dev_clone.9 projects/l2filter/share/man/man9/domain.9 projects/l2filter/share/man/man9/insmntque.9 projects/l2filter/share/man/man9/redzone.9 projects/l2filter/share/man/man9/rtalloc.9 projects/l2filter/share/man/man9/rtentry.9 projects/l2filter/share/man/man9/style.9 projects/l2filter/share/misc/bsd-family-tree projects/l2filter/share/misc/pci_vendors projects/l2filter/share/mk/bsd.libnames.mk projects/l2filter/share/mk/bsd.own.mk projects/l2filter/share/zoneinfo/ (props changed) projects/l2filter/share/zoneinfo/asia projects/l2filter/share/zoneinfo/backward projects/l2filter/share/zoneinfo/europe projects/l2filter/share/zoneinfo/leapseconds projects/l2filter/share/zoneinfo/northamerica projects/l2filter/share/zoneinfo/zone.tab projects/l2filter/sys/ (props changed) projects/l2filter/sys/amd64/amd64/amd64_mem.c projects/l2filter/sys/amd64/amd64/cpu_switch.S projects/l2filter/sys/amd64/amd64/exception.S projects/l2filter/sys/amd64/amd64/identcpu.c projects/l2filter/sys/amd64/amd64/initcpu.c projects/l2filter/sys/amd64/amd64/msi.c projects/l2filter/sys/amd64/conf/DEFAULTS projects/l2filter/sys/amd64/conf/GENERIC projects/l2filter/sys/amd64/include/cputypes.h projects/l2filter/sys/amd64/include/elf.h projects/l2filter/sys/amd64/include/md_var.h projects/l2filter/sys/amd64/include/specialreg.h projects/l2filter/sys/amd64/linux32/linux32_sysvec.c projects/l2filter/sys/arm/arm/cpufunc.c projects/l2filter/sys/arm/arm/elf_trampoline.c projects/l2filter/sys/arm/arm/identcpu.c projects/l2filter/sys/arm/at91/at91.c projects/l2filter/sys/arm/at91/at91_mci.c projects/l2filter/sys/arm/at91/at91_twi.c projects/l2filter/sys/arm/at91/at91_twireg.h projects/l2filter/sys/arm/at91/at91var.h projects/l2filter/sys/arm/at91/uart_bus_at91usart.c projects/l2filter/sys/arm/at91/uart_cpu_at91rm9200usart.c projects/l2filter/sys/arm/at91/uart_dev_at91usart.c projects/l2filter/sys/arm/conf/AVILA projects/l2filter/sys/arm/conf/AVILA.hints projects/l2filter/sys/arm/conf/DEFAULTS projects/l2filter/sys/arm/conf/EP80219 projects/l2filter/sys/arm/conf/HL200 projects/l2filter/sys/arm/conf/IQ31244 projects/l2filter/sys/arm/conf/NSLU projects/l2filter/sys/arm/include/armreg.h projects/l2filter/sys/arm/include/cpufunc.h projects/l2filter/sys/arm/include/elf.h projects/l2filter/sys/arm/include/ieee.h projects/l2filter/sys/arm/include/intr.h projects/l2filter/sys/arm/include/vmparam.h projects/l2filter/sys/arm/mv/common.c projects/l2filter/sys/arm/mv/discovery/db78xxx.c projects/l2filter/sys/arm/mv/discovery/discovery.c projects/l2filter/sys/arm/mv/files.mv projects/l2filter/sys/arm/mv/gpio.c projects/l2filter/sys/arm/mv/kirkwood/db88f6xxx.c projects/l2filter/sys/arm/mv/kirkwood/kirkwood.c projects/l2filter/sys/arm/mv/mv_machdep.c projects/l2filter/sys/arm/mv/mv_pci.c projects/l2filter/sys/arm/mv/mvreg.h projects/l2filter/sys/arm/mv/mvvar.h projects/l2filter/sys/arm/mv/obio.c projects/l2filter/sys/arm/mv/orion/db88f5xxx.c projects/l2filter/sys/arm/mv/orion/orion.c projects/l2filter/sys/arm/xscale/i8134x/i81342_mcu.c projects/l2filter/sys/arm/xscale/ixp425/avila_ata.c projects/l2filter/sys/arm/xscale/ixp425/avila_led.c projects/l2filter/sys/arm/xscale/ixp425/avila_machdep.c projects/l2filter/sys/arm/xscale/ixp425/files.avila projects/l2filter/sys/arm/xscale/ixp425/files.ixp425 projects/l2filter/sys/arm/xscale/ixp425/if_npe.c projects/l2filter/sys/arm/xscale/ixp425/if_npereg.h projects/l2filter/sys/arm/xscale/ixp425/ixp425.c projects/l2filter/sys/arm/xscale/ixp425/ixp425_iic.c projects/l2filter/sys/arm/xscale/ixp425/ixp425_intr.h projects/l2filter/sys/arm/xscale/ixp425/ixp425_mem.c projects/l2filter/sys/arm/xscale/ixp425/ixp425_npe.c projects/l2filter/sys/arm/xscale/ixp425/ixp425_npevar.h projects/l2filter/sys/arm/xscale/ixp425/ixp425_pci.c projects/l2filter/sys/arm/xscale/ixp425/ixp425_qmgr.c projects/l2filter/sys/arm/xscale/ixp425/ixp425_timer.c projects/l2filter/sys/arm/xscale/ixp425/ixp425_wdog.c projects/l2filter/sys/arm/xscale/ixp425/ixp425reg.h projects/l2filter/sys/arm/xscale/ixp425/ixp425var.h projects/l2filter/sys/arm/xscale/ixp425/std.avila projects/l2filter/sys/boot/Makefile projects/l2filter/sys/boot/arm/ixp425/boot2/arm_init.S projects/l2filter/sys/boot/arm/ixp425/boot2/boot2.c projects/l2filter/sys/boot/arm/ixp425/boot2/ixp425_board.c projects/l2filter/sys/boot/arm/ixp425/boot2/lib.h projects/l2filter/sys/boot/forth/loader.4th projects/l2filter/sys/boot/forth/loader.conf projects/l2filter/sys/boot/forth/pnp.4th projects/l2filter/sys/boot/forth/support.4th projects/l2filter/sys/boot/i386/boot0/Makefile projects/l2filter/sys/boot/i386/boot0/boot0.S projects/l2filter/sys/boot/i386/gptzfsboot/Makefile projects/l2filter/sys/boot/i386/libi386/bootinfo64.c projects/l2filter/sys/boot/i386/zfsboot/Makefile projects/l2filter/sys/boot/powerpc/uboot/conf.c projects/l2filter/sys/boot/uboot/common/main.c projects/l2filter/sys/boot/uboot/lib/devicename.c projects/l2filter/sys/boot/zfs/zfsimpl.c projects/l2filter/sys/bsm/audit.h projects/l2filter/sys/bsm/audit_internal.h projects/l2filter/sys/bsm/audit_kevents.h projects/l2filter/sys/bsm/audit_record.h projects/l2filter/sys/cam/cam_periph.c projects/l2filter/sys/cam/cam_periph.h projects/l2filter/sys/cam/cam_sim.c projects/l2filter/sys/cam/cam_sim.h projects/l2filter/sys/cam/cam_xpt.c projects/l2filter/sys/cam/cam_xpt_sim.h projects/l2filter/sys/cam/scsi/scsi_all.c projects/l2filter/sys/cam/scsi/scsi_cd.c projects/l2filter/sys/cam/scsi/scsi_ch.c projects/l2filter/sys/cam/scsi/scsi_da.c projects/l2filter/sys/cam/scsi/scsi_low.c projects/l2filter/sys/cam/scsi/scsi_pass.c projects/l2filter/sys/cam/scsi/scsi_pt.c projects/l2filter/sys/cam/scsi/scsi_sa.c projects/l2filter/sys/cam/scsi/scsi_ses.c projects/l2filter/sys/cam/scsi/scsi_sg.c projects/l2filter/sys/compat/freebsd32/freebsd32_misc.c projects/l2filter/sys/compat/linprocfs/linprocfs.c projects/l2filter/sys/compat/linux/linux_misc.c projects/l2filter/sys/compat/ndis/kern_ndis.c projects/l2filter/sys/compat/ndis/kern_windrv.c projects/l2filter/sys/compat/ndis/ndis_var.h projects/l2filter/sys/compat/ndis/ntoskrnl_var.h projects/l2filter/sys/compat/ndis/subr_ndis.c projects/l2filter/sys/compat/ndis/subr_ntoskrnl.c projects/l2filter/sys/compat/ndis/subr_usbd.c projects/l2filter/sys/compat/ndis/usbd_var.h projects/l2filter/sys/compat/svr4/svr4_sysvec.c projects/l2filter/sys/conf/Makefile.arm projects/l2filter/sys/conf/NOTES projects/l2filter/sys/conf/files projects/l2filter/sys/conf/files.amd64 projects/l2filter/sys/conf/files.i386 projects/l2filter/sys/conf/files.ia64 projects/l2filter/sys/conf/files.pc98 projects/l2filter/sys/conf/files.powerpc projects/l2filter/sys/conf/files.sparc64 projects/l2filter/sys/conf/files.sun4v projects/l2filter/sys/conf/kern.post.mk projects/l2filter/sys/conf/kern.pre.mk projects/l2filter/sys/conf/newvers.sh projects/l2filter/sys/conf/options projects/l2filter/sys/conf/options.arm projects/l2filter/sys/contrib/altq/altq/altq_subr.c projects/l2filter/sys/contrib/dev/npe/IxNpeMicrocode.dat.uu projects/l2filter/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c projects/l2filter/sys/contrib/pf/ (props changed) projects/l2filter/sys/contrib/pf/net/pf.c projects/l2filter/sys/contrib/rdma/rdma_addr.c projects/l2filter/sys/crypto/rc4/rc4.c projects/l2filter/sys/crypto/via/padlock.c projects/l2filter/sys/crypto/via/padlock_hash.c projects/l2filter/sys/dev/acpi_support/acpi_asus.c projects/l2filter/sys/dev/acpica/acpi_battery.c projects/l2filter/sys/dev/adb/adb_kbd.c projects/l2filter/sys/dev/agp/agp.c projects/l2filter/sys/dev/agp/agp_amd64.c projects/l2filter/sys/dev/agp/agp_i810.c projects/l2filter/sys/dev/agp/agp_via.c projects/l2filter/sys/dev/agp/agppriv.h projects/l2filter/sys/dev/ata/ata-pci.c projects/l2filter/sys/dev/ata/ata-pci.h projects/l2filter/sys/dev/ata/ata-queue.c projects/l2filter/sys/dev/ata/atapi-cam.c projects/l2filter/sys/dev/ata/chipsets/ata-ahci.c projects/l2filter/sys/dev/ata/chipsets/ata-sis.c projects/l2filter/sys/dev/ath/ath_hal/ah.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_debug.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_decode.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_desc.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_devid.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_eeprom.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_eeprom_v1.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_eeprom_v1.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_eeprom_v14.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_eeprom_v3.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_regdomain.c (contents, props changed) projects/l2filter/sys/dev/ath/ath_hal/ah_soc.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_beacon.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_keycache.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_phy.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_power.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_recv.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c (contents, props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210desc.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210phy.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5210reg.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5210/ar5k_0007.ini (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_beacon.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_keycache.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c (contents, props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_phy.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_power.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_recv.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c (contents, props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211desc.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211phy.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/ar5211reg.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5211/boss.ini (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar2316.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar2317.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar2413.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar2425.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5112.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212.ini (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c (contents, props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_beacon.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_eeprom.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_gpio.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_keycache.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_phy.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_power.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c (contents, props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c (contents, props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212desc.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212phy.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5212reg.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5311reg.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5212/ar5413.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5312_eeprom.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5312_gpio.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5312_interrupts.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5312_misc.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5312_power.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c (contents, props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5312phy.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5312reg.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5312/ar5315_gpio.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar2133.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416.ini (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_beacon.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_cal.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_cal_iq.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_eeprom.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_gpio.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_keycache.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_phy.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_power.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_recv.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c (contents, props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416desc.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416phy.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar5416reg.h (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar9160.ini (props changed) projects/l2filter/sys/dev/ath/ath_hal/ar5416/ar9160_attach.c (props changed) projects/l2filter/sys/dev/ath/ath_rate/amrr/amrr.c projects/l2filter/sys/dev/ath/ath_rate/onoe/onoe.c projects/l2filter/sys/dev/ath/ath_rate/sample/sample.c projects/l2filter/sys/dev/ath/if_ath.c projects/l2filter/sys/dev/ath/if_ath_pci.c projects/l2filter/sys/dev/ath/if_athioctl.h projects/l2filter/sys/dev/ath/if_athvar.h projects/l2filter/sys/dev/atkbdc/psm.c projects/l2filter/sys/dev/bce/if_bce.c projects/l2filter/sys/dev/cardbus/cardbus.c projects/l2filter/sys/dev/cfe/cfe_console.c projects/l2filter/sys/dev/cxgb/common/cxgb_ael1002.c projects/l2filter/sys/dev/cxgb/cxgb_main.c projects/l2filter/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c projects/l2filter/sys/dev/cxgb/ulp/tom/cxgb_l2t.c projects/l2filter/sys/dev/cxgb/ulp/tom/cxgb_l2t.h projects/l2filter/sys/dev/dcons/dcons_crom.c projects/l2filter/sys/dev/dcons/dcons_os.c projects/l2filter/sys/dev/drm/drmP.h projects/l2filter/sys/dev/drm/drm_drv.c projects/l2filter/sys/dev/drm/drm_scatter.c projects/l2filter/sys/dev/drm/radeon_irq.c projects/l2filter/sys/dev/e1000/if_igb.c projects/l2filter/sys/dev/exca/exca.c projects/l2filter/sys/dev/fxp/if_fxp.c projects/l2filter/sys/dev/hwpmc/hwpmc_core.c projects/l2filter/sys/dev/hwpmc/hwpmc_logging.c projects/l2filter/sys/dev/if_ndis/if_ndis.c projects/l2filter/sys/dev/if_ndis/if_ndis_pccard.c projects/l2filter/sys/dev/if_ndis/if_ndis_pci.c projects/l2filter/sys/dev/if_ndis/if_ndis_usb.c projects/l2filter/sys/dev/if_ndis/if_ndisvar.h projects/l2filter/sys/dev/iicbus/ad7418.c projects/l2filter/sys/dev/iicbus/ds1672.c projects/l2filter/sys/dev/iicbus/icee.c projects/l2filter/sys/dev/iicbus/if_ic.c projects/l2filter/sys/dev/iicbus/iic.c projects/l2filter/sys/dev/iicbus/iicbus.c projects/l2filter/sys/dev/iicbus/iicsmb.c projects/l2filter/sys/dev/isp/isp.c projects/l2filter/sys/dev/md/md.c projects/l2filter/sys/dev/mfi/mfi.c projects/l2filter/sys/dev/mfi/mfi_pci.c projects/l2filter/sys/dev/mge/if_mge.c projects/l2filter/sys/dev/mge/if_mgevar.h projects/l2filter/sys/dev/mmc/mmc.c projects/l2filter/sys/dev/mpt/mpt.c projects/l2filter/sys/dev/mpt/mpt.h projects/l2filter/sys/dev/mpt/mpt_cam.c projects/l2filter/sys/dev/mpt/mpt_raid.c projects/l2filter/sys/dev/mpt/mpt_user.c projects/l2filter/sys/dev/msk/if_msk.c projects/l2filter/sys/dev/msk/if_mskreg.h projects/l2filter/sys/dev/nfe/if_nfe.c projects/l2filter/sys/dev/ofw/ofw_bus_subr.c projects/l2filter/sys/dev/ofw/ofw_bus_subr.h projects/l2filter/sys/dev/ofw/openfirm.c projects/l2filter/sys/dev/ofw/openfirm.h projects/l2filter/sys/dev/ofw/openfirmio.c projects/l2filter/sys/dev/ofw/openpromio.c projects/l2filter/sys/dev/pccard/pccardvar.h projects/l2filter/sys/dev/pci/pci.c projects/l2filter/sys/dev/pcn/if_pcn.c projects/l2filter/sys/dev/ppbus/if_plip.c projects/l2filter/sys/dev/ppbus/immio.c projects/l2filter/sys/dev/ppbus/lpbb.c projects/l2filter/sys/dev/ppbus/lpt.c projects/l2filter/sys/dev/ppbus/pcfclock.c projects/l2filter/sys/dev/ppbus/ppb_1284.c projects/l2filter/sys/dev/ppbus/ppb_base.c projects/l2filter/sys/dev/ppbus/ppb_msq.c projects/l2filter/sys/dev/ppbus/ppbconf.c projects/l2filter/sys/dev/ppbus/ppbconf.h projects/l2filter/sys/dev/ppbus/ppi.c projects/l2filter/sys/dev/ppbus/pps.c projects/l2filter/sys/dev/ppbus/vpo.c projects/l2filter/sys/dev/ppbus/vpoio.c projects/l2filter/sys/dev/ppc/ppc.c projects/l2filter/sys/dev/ppc/ppc_acpi.c projects/l2filter/sys/dev/ppc/ppc_isa.c projects/l2filter/sys/dev/ppc/ppc_pci.c projects/l2filter/sys/dev/ppc/ppc_puc.c projects/l2filter/sys/dev/ppc/ppcreg.h projects/l2filter/sys/dev/ppc/ppcvar.h projects/l2filter/sys/dev/puc/pucdata.c projects/l2filter/sys/dev/re/if_re.c projects/l2filter/sys/dev/sound/pci/cmi.c projects/l2filter/sys/dev/sound/pci/hda/hdac.c projects/l2filter/sys/dev/sound/pcm/dsp.c projects/l2filter/sys/dev/sound/pcm/mixer.c projects/l2filter/sys/dev/sound/pcm/sound.c projects/l2filter/sys/dev/sound/pcm/sound.h projects/l2filter/sys/dev/speaker/spkr.c projects/l2filter/sys/dev/syscons/scterm.c projects/l2filter/sys/dev/syscons/syscons.c projects/l2filter/sys/dev/syscons/syscons.h projects/l2filter/sys/dev/uart/uart_cpu_mv.c projects/l2filter/sys/dev/uart/uart_tty.c projects/l2filter/sys/dev/usb/ehci.c projects/l2filter/sys/dev/usb/ehci_mbus.c projects/l2filter/sys/dev/usb/ehci_pci.c projects/l2filter/sys/dev/usb/ehcireg.h projects/l2filter/sys/dev/usb/ehcivar.h projects/l2filter/sys/dev/usb/if_zyd.c projects/l2filter/sys/dev/usb/ucom.c projects/l2filter/sys/dev/usb/ucomvar.h projects/l2filter/sys/dev/usb/uftdi.c projects/l2filter/sys/dev/usb/uhci_pci.c projects/l2filter/sys/dev/usb/umass.c projects/l2filter/sys/dev/usb/usbdevs projects/l2filter/sys/dev/usb/usbdi.c projects/l2filter/sys/dev/usb/usbdi.h projects/l2filter/sys/dev/usb/uscanner.c projects/l2filter/sys/dev/usb2/bluetooth/ng_ubt2.c projects/l2filter/sys/dev/usb2/bluetooth/ng_ubt2_var.h projects/l2filter/sys/dev/usb2/bluetooth/ubtbcmfw2.c projects/l2filter/sys/dev/usb2/controller/at91dci.c projects/l2filter/sys/dev/usb2/controller/at91dci.h projects/l2filter/sys/dev/usb2/controller/at91dci_atmelarm.c projects/l2filter/sys/dev/usb2/controller/ehci2.c projects/l2filter/sys/dev/usb2/controller/ehci2.h projects/l2filter/sys/dev/usb2/controller/ehci2_pci.c projects/l2filter/sys/dev/usb2/controller/musb2_otg.c projects/l2filter/sys/dev/usb2/controller/musb2_otg.h projects/l2filter/sys/dev/usb2/controller/musb2_otg_atmelarm.c projects/l2filter/sys/dev/usb2/controller/ohci2.c projects/l2filter/sys/dev/usb2/controller/ohci2.h projects/l2filter/sys/dev/usb2/controller/ohci2_atmelarm.c projects/l2filter/sys/dev/usb2/controller/ohci2_pci.c projects/l2filter/sys/dev/usb2/controller/uhci2.c projects/l2filter/sys/dev/usb2/controller/uhci2.h projects/l2filter/sys/dev/usb2/controller/uhci2_pci.c projects/l2filter/sys/dev/usb2/controller/usb2_bus.h projects/l2filter/sys/dev/usb2/controller/usb2_controller.c projects/l2filter/sys/dev/usb2/controller/usb2_controller.h projects/l2filter/sys/dev/usb2/controller/uss820dci.c projects/l2filter/sys/dev/usb2/controller/uss820dci.h projects/l2filter/sys/dev/usb2/controller/uss820dci_atmelarm.c projects/l2filter/sys/dev/usb2/core/usb2_busdma.c projects/l2filter/sys/dev/usb2/core/usb2_compat_linux.c projects/l2filter/sys/dev/usb2/core/usb2_core.h projects/l2filter/sys/dev/usb2/core/usb2_debug.c projects/l2filter/sys/dev/usb2/core/usb2_device.c projects/l2filter/sys/dev/usb2/core/usb2_device.h projects/l2filter/sys/dev/usb2/core/usb2_dynamic.c projects/l2filter/sys/dev/usb2/core/usb2_dynamic.h projects/l2filter/sys/dev/usb2/core/usb2_generic.c projects/l2filter/sys/dev/usb2/core/usb2_handle_request.c projects/l2filter/sys/dev/usb2/core/usb2_hub.c projects/l2filter/sys/dev/usb2/core/usb2_hub.h projects/l2filter/sys/dev/usb2/core/usb2_mbuf.h projects/l2filter/sys/dev/usb2/core/usb2_msctest.c projects/l2filter/sys/dev/usb2/core/usb2_msctest.h projects/l2filter/sys/dev/usb2/core/usb2_parse.c projects/l2filter/sys/dev/usb2/core/usb2_request.c projects/l2filter/sys/dev/usb2/core/usb2_request.h projects/l2filter/sys/dev/usb2/core/usb2_sw_transfer.c projects/l2filter/sys/dev/usb2/core/usb2_transfer.c projects/l2filter/sys/dev/usb2/core/usb2_transfer.h projects/l2filter/sys/dev/usb2/ethernet/if_aue2.c projects/l2filter/sys/dev/usb2/ethernet/if_axe2.c projects/l2filter/sys/dev/usb2/ethernet/if_cdce2.c projects/l2filter/sys/dev/usb2/ethernet/if_cue2.c projects/l2filter/sys/dev/usb2/ethernet/if_kue2.c projects/l2filter/sys/dev/usb2/ethernet/if_rue2.c projects/l2filter/sys/dev/usb2/ethernet/if_udav2.c projects/l2filter/sys/dev/usb2/image/uscanner2.c projects/l2filter/sys/dev/usb2/include/usb2_defs.h projects/l2filter/sys/dev/usb2/include/usb2_devid.h projects/l2filter/sys/dev/usb2/include/usb2_devtable.h projects/l2filter/sys/dev/usb2/include/usb2_ioctl.h projects/l2filter/sys/dev/usb2/include/usb2_standard.h projects/l2filter/sys/dev/usb2/input/uhid2.c projects/l2filter/sys/dev/usb2/input/ukbd2.c projects/l2filter/sys/dev/usb2/input/ums2.c projects/l2filter/sys/dev/usb2/misc/ufm2.c projects/l2filter/sys/dev/usb2/serial/u3g2.c projects/l2filter/sys/dev/usb2/serial/uark2.c projects/l2filter/sys/dev/usb2/serial/ubsa2.c projects/l2filter/sys/dev/usb2/serial/ubser2.c projects/l2filter/sys/dev/usb2/serial/uchcom2.c projects/l2filter/sys/dev/usb2/serial/ucycom2.c projects/l2filter/sys/dev/usb2/serial/ufoma2.c projects/l2filter/sys/dev/usb2/serial/uftdi2.c projects/l2filter/sys/dev/usb2/serial/ugensa2.c projects/l2filter/sys/dev/usb2/serial/uipaq2.c projects/l2filter/sys/dev/usb2/serial/ulpt2.c projects/l2filter/sys/dev/usb2/serial/umct2.c projects/l2filter/sys/dev/usb2/serial/umodem2.c projects/l2filter/sys/dev/usb2/serial/umoscom2.c projects/l2filter/sys/dev/usb2/serial/uplcom2.c projects/l2filter/sys/dev/usb2/serial/usb2_serial.c projects/l2filter/sys/dev/usb2/serial/usb2_serial.h projects/l2filter/sys/dev/usb2/serial/uvisor2.c projects/l2filter/sys/dev/usb2/serial/uvscom2.c projects/l2filter/sys/dev/usb2/sound/uaudio2.c projects/l2filter/sys/dev/usb2/storage/ata-usb2.c projects/l2filter/sys/dev/usb2/storage/umass2.c projects/l2filter/sys/dev/usb2/storage/urio2.c projects/l2filter/sys/dev/usb2/storage/ustorage2_fs.c projects/l2filter/sys/dev/usb2/wlan/if_rum2.c projects/l2filter/sys/dev/usb2/wlan/if_ural2.c projects/l2filter/sys/dev/usb2/wlan/if_zyd2.c projects/l2filter/sys/dev/xen/blkfront/blkfront.c projects/l2filter/sys/dev/xen/console/console.c projects/l2filter/sys/dev/xen/console/xencons_ring.c projects/l2filter/sys/dev/xen/evtchn/evtchn_dev.c projects/l2filter/sys/dev/xen/netfront/netfront.c projects/l2filter/sys/fs/devfs/devfs_vnops.c projects/l2filter/sys/fs/hpfs/hpfs_vnops.c projects/l2filter/sys/fs/msdosfs/msdosfs_conv.c projects/l2filter/sys/fs/msdosfs/msdosfs_denode.c projects/l2filter/sys/fs/msdosfs/msdosfs_vnops.c projects/l2filter/sys/fs/ntfs/ntfs_vnops.c projects/l2filter/sys/fs/nwfs/nwfs_vnops.c projects/l2filter/sys/fs/procfs/procfs_map.c projects/l2filter/sys/fs/pseudofs/pseudofs_vncache.c projects/l2filter/sys/fs/pseudofs/pseudofs_vnops.c projects/l2filter/sys/fs/smbfs/smbfs_vnops.c projects/l2filter/sys/geom/geom_dev.c projects/l2filter/sys/geom/geom_vfs.c projects/l2filter/sys/geom/part/g_part.c projects/l2filter/sys/geom/part/g_part_bsd.c projects/l2filter/sys/geom/part/g_part_pc98.c projects/l2filter/sys/geom/part/g_part_vtoc8.c projects/l2filter/sys/geom/vinum/geom_vinum_plex.c projects/l2filter/sys/gnu/fs/ext2fs/ext2_bitops.h projects/l2filter/sys/gnu/fs/ext2fs/ext2_fs.h projects/l2filter/sys/gnu/fs/ext2fs/ext2_fs_sb.h projects/l2filter/sys/gnu/fs/ext2fs/ext2_inode.c projects/l2filter/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c projects/l2filter/sys/gnu/fs/ext2fs/ext2_vfsops.c projects/l2filter/sys/gnu/fs/ext2fs/ext2_vnops.c projects/l2filter/sys/gnu/fs/reiserfs/reiserfs_vnops.c projects/l2filter/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c projects/l2filter/sys/i386/conf/DEFAULTS projects/l2filter/sys/i386/conf/GENERIC projects/l2filter/sys/i386/conf/XEN projects/l2filter/sys/i386/cpufreq/est.c projects/l2filter/sys/i386/cpufreq/smist.c projects/l2filter/sys/i386/i386/genassym.c projects/l2filter/sys/i386/i386/i686_mem.c projects/l2filter/sys/i386/i386/identcpu.c projects/l2filter/sys/i386/i386/initcpu.c projects/l2filter/sys/i386/i386/machdep.c projects/l2filter/sys/i386/i386/msi.c projects/l2filter/sys/i386/i386/vm_machdep.c projects/l2filter/sys/i386/ibcs2/ibcs2_sysi86.c projects/l2filter/sys/i386/include/elf.h projects/l2filter/sys/i386/include/xen/xenfunc.h projects/l2filter/sys/i386/isa/npx.c projects/l2filter/sys/i386/linux/linux_sysvec.c projects/l2filter/sys/i386/xen/clock.c projects/l2filter/sys/i386/xen/mp_machdep.c projects/l2filter/sys/i386/xen/mptable.c projects/l2filter/sys/i386/xen/pmap.c projects/l2filter/sys/i386/xen/xen_machdep.c projects/l2filter/sys/ia64/ia64/pmap.c projects/l2filter/sys/ia64/include/elf.h projects/l2filter/sys/kern/imgact_elf.c projects/l2filter/sys/kern/kern_clock.c projects/l2filter/sys/kern/kern_cpu.c projects/l2filter/sys/kern/kern_descrip.c projects/l2filter/sys/kern/kern_jail.c projects/l2filter/sys/kern/kern_malloc.c projects/l2filter/sys/kern/kern_mbuf.c projects/l2filter/sys/kern/kern_proc.c projects/l2filter/sys/kern/kern_synch.c projects/l2filter/sys/kern/kern_sysctl.c projects/l2filter/sys/kern/kern_timeout.c projects/l2filter/sys/kern/kern_xxx.c projects/l2filter/sys/kern/sched_4bsd.c projects/l2filter/sys/kern/sched_ule.c projects/l2filter/sys/kern/subr_kobj.c projects/l2filter/sys/kern/subr_param.c projects/l2filter/sys/kern/subr_pcpu.c projects/l2filter/sys/kern/subr_prf.c projects/l2filter/sys/kern/subr_witness.c projects/l2filter/sys/kern/sys_generic.c projects/l2filter/sys/kern/sysv_sem.c projects/l2filter/sys/kern/tty.c projects/l2filter/sys/kern/tty_pts.c projects/l2filter/sys/kern/tty_pty.c projects/l2filter/sys/kern/uipc_cow.c projects/l2filter/sys/kern/uipc_debug.c projects/l2filter/sys/kern/uipc_domain.c projects/l2filter/sys/kern/uipc_mbuf.c projects/l2filter/sys/kern/uipc_usrreq.c projects/l2filter/sys/kern/vfs_aio.c projects/l2filter/sys/kern/vfs_cache.c projects/l2filter/sys/kern/vfs_export.c projects/l2filter/sys/kern/vfs_extattr.c projects/l2filter/sys/kern/vfs_lookup.c projects/l2filter/sys/kern/vfs_mount.c projects/l2filter/sys/kern/vfs_subr.c projects/l2filter/sys/kern/vfs_syscalls.c projects/l2filter/sys/kern/vfs_vnops.c projects/l2filter/sys/kern/vnode_if.src projects/l2filter/sys/mips/conf/DEFAULTS projects/l2filter/sys/mips/idt/idtpci.c projects/l2filter/sys/mips/include/elf.h projects/l2filter/sys/mips/include/pmap.h projects/l2filter/sys/mips/malta/gt_pci.c projects/l2filter/sys/mips/mips/busdma_machdep.c projects/l2filter/sys/mips/mips/cpu.c projects/l2filter/sys/mips/mips/elf_machdep.c projects/l2filter/sys/mips/mips/machdep.c projects/l2filter/sys/mips/mips/nexus.c projects/l2filter/sys/mips/mips/pmap.c projects/l2filter/sys/modules/Makefile projects/l2filter/sys/modules/agp/Makefile projects/l2filter/sys/modules/ath/Makefile projects/l2filter/sys/modules/cxgb/Makefile projects/l2filter/sys/modules/iwnfw/Makefile projects/l2filter/sys/modules/ndis/Makefile projects/l2filter/sys/modules/netgraph/Makefile projects/l2filter/sys/modules/sound/driver/Makefile projects/l2filter/sys/modules/usb2/Makefile projects/l2filter/sys/net/ieee8023ad_lacp.c projects/l2filter/sys/net/if.c projects/l2filter/sys/net/if_arcsubr.c projects/l2filter/sys/net/if_atmsubr.c projects/l2filter/sys/net/if_ethersubr.c projects/l2filter/sys/net/if_fddisubr.c projects/l2filter/sys/net/if_fwsubr.c projects/l2filter/sys/net/if_iso88025subr.c projects/l2filter/sys/net/if_lagg.c projects/l2filter/sys/net/if_loop.c projects/l2filter/sys/net/if_media.h projects/l2filter/sys/net/if_tun.c projects/l2filter/sys/net/if_var.h projects/l2filter/sys/net/pfil.c projects/l2filter/sys/net/radix.c projects/l2filter/sys/net/radix_mpath.c projects/l2filter/sys/net/route.c projects/l2filter/sys/net/route.h projects/l2filter/sys/net/rtsock.c projects/l2filter/sys/net80211/_ieee80211.h projects/l2filter/sys/net80211/ieee80211.c projects/l2filter/sys/net80211/ieee80211.h projects/l2filter/sys/net80211/ieee80211_acl.c projects/l2filter/sys/net80211/ieee80211_adhoc.c projects/l2filter/sys/net80211/ieee80211_crypto.h projects/l2filter/sys/net80211/ieee80211_crypto_ccmp.c projects/l2filter/sys/net80211/ieee80211_crypto_tkip.c projects/l2filter/sys/net80211/ieee80211_crypto_wep.c projects/l2filter/sys/net80211/ieee80211_ddb.c projects/l2filter/sys/net80211/ieee80211_dfs.h projects/l2filter/sys/net80211/ieee80211_freebsd.c projects/l2filter/sys/net80211/ieee80211_hostap.c projects/l2filter/sys/net80211/ieee80211_input.c projects/l2filter/sys/net80211/ieee80211_input.h projects/l2filter/sys/net80211/ieee80211_ioctl.c projects/l2filter/sys/net80211/ieee80211_ioctl.h projects/l2filter/sys/net80211/ieee80211_node.c projects/l2filter/sys/net80211/ieee80211_node.h projects/l2filter/sys/net80211/ieee80211_output.c projects/l2filter/sys/net80211/ieee80211_power.c projects/l2filter/sys/net80211/ieee80211_proto.c projects/l2filter/sys/net80211/ieee80211_proto.h projects/l2filter/sys/net80211/ieee80211_regdomain.c projects/l2filter/sys/net80211/ieee80211_scan.c projects/l2filter/sys/net80211/ieee80211_scan.h projects/l2filter/sys/net80211/ieee80211_scan_sta.c projects/l2filter/sys/net80211/ieee80211_sta.c projects/l2filter/sys/net80211/ieee80211_var.h projects/l2filter/sys/net80211/ieee80211_wds.c projects/l2filter/sys/netgraph/bluetooth/hci/ng_hci_main.c projects/l2filter/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c projects/l2filter/sys/netgraph/netflow/netflow.c projects/l2filter/sys/netgraph/ng_base.c projects/l2filter/sys/netgraph/ng_deflate.c projects/l2filter/sys/netgraph/ng_ether.c projects/l2filter/sys/netgraph/ng_iface.c projects/l2filter/sys/netgraph/ng_iface.h projects/l2filter/sys/netgraph/ng_mppc.c projects/l2filter/sys/netgraph/ng_ppp.c projects/l2filter/sys/netgraph/ng_pred1.c projects/l2filter/sys/netgraph/ng_vjc.c projects/l2filter/sys/netinet/if_atm.c projects/l2filter/sys/netinet/if_ether.c projects/l2filter/sys/netinet/if_ether.h projects/l2filter/sys/netinet/in.c projects/l2filter/sys/netinet/in.h projects/l2filter/sys/netinet/in_mcast.c projects/l2filter/sys/netinet/in_pcb.c projects/l2filter/sys/netinet/in_pcb.h projects/l2filter/sys/netinet/in_proto.c projects/l2filter/sys/netinet/in_rmx.c projects/l2filter/sys/netinet/in_var.h projects/l2filter/sys/netinet/ip_carp.c projects/l2filter/sys/netinet/ip_fastfwd.c projects/l2filter/sys/netinet/ip_fw2.c projects/l2filter/sys/netinet/ip_fw_pfil.c projects/l2filter/sys/netinet/ip_input.c projects/l2filter/sys/netinet/ip_output.c projects/l2filter/sys/netinet/libalias/alias_ftp.c projects/l2filter/sys/netinet/libalias/alias_irc.c projects/l2filter/sys/netinet/libalias/alias_nbt.c projects/l2filter/sys/netinet/raw_ip.c projects/l2filter/sys/netinet/tcp_hostcache.c projects/l2filter/sys/netinet/tcp_input.c projects/l2filter/sys/netinet/tcp_subr.c projects/l2filter/sys/netinet/tcp_syncache.c projects/l2filter/sys/netinet/tcp_timer.c projects/l2filter/sys/netinet/tcp_timewait.c projects/l2filter/sys/netinet/tcp_usrreq.c projects/l2filter/sys/netinet/tcp_var.h projects/l2filter/sys/netinet/udp_usrreq.c projects/l2filter/sys/netinet/udp_var.h projects/l2filter/sys/netinet/vinet.h projects/l2filter/sys/netinet6/icmp6.c projects/l2filter/sys/netinet6/in6.c projects/l2filter/sys/netinet6/in6_gif.c projects/l2filter/sys/netinet6/in6_ifattach.c projects/l2filter/sys/netinet6/in6_pcb.c projects/l2filter/sys/netinet6/in6_rmx.c projects/l2filter/sys/netinet6/in6_src.c projects/l2filter/sys/netinet6/in6_var.h projects/l2filter/sys/netinet6/ip6_input.c projects/l2filter/sys/netinet6/ip6_output.c projects/l2filter/sys/netinet6/ip6_var.h projects/l2filter/sys/netinet6/ip6protosw.h projects/l2filter/sys/netinet6/nd6.c projects/l2filter/sys/netinet6/nd6.h projects/l2filter/sys/netinet6/nd6_nbr.c projects/l2filter/sys/netinet6/nd6_rtr.c projects/l2filter/sys/netinet6/raw_ip6.c projects/l2filter/sys/netinet6/udp6_usrreq.c projects/l2filter/sys/netinet6/vinet6.h projects/l2filter/sys/netipsec/ipsec.c projects/l2filter/sys/netipsec/ipsec.h projects/l2filter/sys/netipsec/key.c projects/l2filter/sys/netipsec/vipsec.h projects/l2filter/sys/netipsec/xform_ipip.c projects/l2filter/sys/nfsclient/nfs_vnops.c projects/l2filter/sys/nfsserver/nfs_serv.c projects/l2filter/sys/pc98/cbus/scterm-sck.c projects/l2filter/sys/pc98/conf/DEFAULTS projects/l2filter/sys/pc98/conf/GENERIC projects/l2filter/sys/pci/if_rl.c projects/l2filter/sys/pci/if_rlreg.h projects/l2filter/sys/powerpc/aim/locore.S projects/l2filter/sys/powerpc/aim/machdep.c projects/l2filter/sys/powerpc/aim/ofw_machdep.c projects/l2filter/sys/powerpc/booke/interrupt.c projects/l2filter/sys/powerpc/booke/locore.S projects/l2filter/sys/powerpc/booke/machdep.c projects/l2filter/sys/powerpc/booke/pmap.c projects/l2filter/sys/powerpc/booke/trap_subr.S projects/l2filter/sys/powerpc/conf/GENERIC projects/l2filter/sys/powerpc/conf/NOTES projects/l2filter/sys/powerpc/include/elf.h projects/l2filter/sys/powerpc/include/ofw_machdep.h projects/l2filter/sys/powerpc/include/param.h projects/l2filter/sys/powerpc/include/pcpu.h projects/l2filter/sys/powerpc/include/pmap.h projects/l2filter/sys/powerpc/include/pte.h projects/l2filter/sys/powerpc/include/spr.h projects/l2filter/sys/powerpc/include/tlb.h projects/l2filter/sys/powerpc/mpc85xx/lbc.c projects/l2filter/sys/powerpc/mpc85xx/lbc.h projects/l2filter/sys/powerpc/mpc85xx/mpc85xx.c projects/l2filter/sys/powerpc/mpc85xx/nexus.c projects/l2filter/sys/powerpc/mpc85xx/ocpbus.c projects/l2filter/sys/powerpc/ofw/ofw_pcib_pci.c projects/l2filter/sys/powerpc/ofw/ofw_pcibus.c projects/l2filter/sys/powerpc/powermac/ata_macio.c projects/l2filter/sys/powerpc/powermac/grackle.c projects/l2filter/sys/powerpc/powermac/gracklevar.h projects/l2filter/sys/powerpc/powermac/macgpio.c projects/l2filter/sys/powerpc/powermac/macio.c projects/l2filter/sys/powerpc/powermac/uninorth.c projects/l2filter/sys/powerpc/powermac/uninorthvar.h projects/l2filter/sys/powerpc/powerpc/genassym.c projects/l2filter/sys/powerpc/powerpc/intr_machdep.c projects/l2filter/sys/powerpc/powerpc/pmap_dispatch.c projects/l2filter/sys/security/audit/audit.h projects/l2filter/sys/security/audit/audit_bsm.c projects/l2filter/sys/security/audit/audit_bsm_token.c projects/l2filter/sys/security/audit/audit_pipe.c projects/l2filter/sys/security/mac/mac_audit.c projects/l2filter/sys/security/mac/mac_framework.c projects/l2filter/sys/security/mac/mac_inet6.c projects/l2filter/sys/security/mac/mac_internal.h projects/l2filter/sys/security/mac/mac_policy.h projects/l2filter/sys/security/mac/mac_priv.c projects/l2filter/sys/security/mac/mac_process.c projects/l2filter/sys/security/mac_biba/mac_biba.c projects/l2filter/sys/security/mac_bsdextended/mac_bsdextended.c projects/l2filter/sys/security/mac_ifoff/mac_ifoff.c projects/l2filter/sys/security/mac_lomac/mac_lomac.c projects/l2filter/sys/security/mac_mls/mac_mls.c projects/l2filter/sys/security/mac_none/mac_none.c projects/l2filter/sys/security/mac_partition/mac_partition.c projects/l2filter/sys/security/mac_portacl/mac_portacl.c projects/l2filter/sys/security/mac_seeotheruids/mac_seeotheruids.c projects/l2filter/sys/security/mac_stub/mac_stub.c projects/l2filter/sys/security/mac_test/mac_test.c projects/l2filter/sys/sparc64/conf/DEFAULTS projects/l2filter/sys/sparc64/ebus/ebus.c projects/l2filter/sys/sparc64/include/elf.h projects/l2filter/sys/sparc64/include/ofw_machdep.h projects/l2filter/sys/sparc64/include/tlb.h projects/l2filter/sys/sparc64/isa/ofw_isa.c projects/l2filter/sys/sparc64/pci/apb.c projects/l2filter/sys/sparc64/pci/ofw_pci.h projects/l2filter/sys/sparc64/pci/ofw_pcib.c projects/l2filter/sys/sparc64/pci/ofw_pcib_subr.c projects/l2filter/sys/sparc64/pci/ofw_pcibus.c projects/l2filter/sys/sparc64/pci/psycho.c projects/l2filter/sys/sparc64/pci/schizo.c projects/l2filter/sys/sparc64/sbus/sbus.c projects/l2filter/sys/sparc64/sparc64/machdep.c projects/l2filter/sys/sparc64/sparc64/mp_machdep.c projects/l2filter/sys/sparc64/sparc64/ofw_machdep.c projects/l2filter/sys/sparc64/sparc64/pmap.c projects/l2filter/sys/sparc64/sparc64/support.S projects/l2filter/sys/sparc64/sparc64/trap.c projects/l2filter/sys/sparc64/sparc64/vm_machdep.c projects/l2filter/sys/sun4v/conf/DEFAULTS projects/l2filter/sys/sun4v/include/elf.h projects/l2filter/sys/sun4v/include/ofw_machdep.h projects/l2filter/sys/sun4v/include/pcpu.h projects/l2filter/sys/sun4v/sun4v/machdep.c projects/l2filter/sys/sun4v/sun4v/mp_machdep.c projects/l2filter/sys/sun4v/sun4v/support.S projects/l2filter/sys/sun4v/sun4v/trap.c projects/l2filter/sys/sys/buf_ring.h projects/l2filter/sys/sys/copyright.h projects/l2filter/sys/sys/elf64.h projects/l2filter/sys/sys/elf_common.h projects/l2filter/sys/sys/elf_generic.h projects/l2filter/sys/sys/file.h projects/l2filter/sys/sys/imgact_elf.h projects/l2filter/sys/sys/jail.h projects/l2filter/sys/sys/kobj.h projects/l2filter/sys/sys/ktr.h projects/l2filter/sys/sys/link_elf.h projects/l2filter/sys/sys/lock.h projects/l2filter/sys/sys/mbuf.h projects/l2filter/sys/sys/mount.h projects/l2filter/sys/sys/param.h projects/l2filter/sys/sys/pcpu.h projects/l2filter/sys/sys/protosw.h projects/l2filter/sys/sys/sched.h projects/l2filter/sys/sys/soundcard.h projects/l2filter/sys/sys/sysctl.h projects/l2filter/sys/sys/tree.h projects/l2filter/sys/sys/vnode.h projects/l2filter/sys/sys/vtoc.h projects/l2filter/sys/ufs/ffs/ffs_inode.c projects/l2filter/sys/ufs/ffs/ffs_vfsops.c projects/l2filter/sys/ufs/ffs/ffs_vnops.c projects/l2filter/sys/ufs/ufs/ufs_dirhash.c projects/l2filter/sys/ufs/ufs/ufs_extattr.c projects/l2filter/sys/ufs/ufs/ufs_lookup.c projects/l2filter/sys/ufs/ufs/ufs_vfsops.c projects/l2filter/sys/ufs/ufs/ufs_vnops.c projects/l2filter/sys/vm/uma.h projects/l2filter/sys/vm/uma_core.c projects/l2filter/sys/vm/uma_dbg.c projects/l2filter/sys/vm/uma_int.h projects/l2filter/sys/vm/vm_map.c projects/l2filter/sys/vm/vm_map.h projects/l2filter/sys/vm/vm_meter.c projects/l2filter/sys/vm/vm_mmap.c projects/l2filter/sys/vm/vm_object.c projects/l2filter/sys/vm/vm_page.c projects/l2filter/sys/vm/vm_page.h projects/l2filter/sys/xen/evtchn/evtchn.c projects/l2filter/sys/xen/evtchn/evtchn_dev.c projects/l2filter/sys/xen/features.c projects/l2filter/sys/xen/gnttab.c projects/l2filter/sys/xen/gnttab.h projects/l2filter/sys/xen/xenbus/xenbus_client.c projects/l2filter/sys/xen/xenbus/xenbus_comms.c projects/l2filter/sys/xen/xenbus/xenbus_comms.h projects/l2filter/sys/xen/xenbus/xenbus_dev.c projects/l2filter/sys/xen/xenbus/xenbus_probe.c projects/l2filter/sys/xen/xenbus/xenbus_probe_backend.c projects/l2filter/sys/xen/xenbus/xenbus_xs.c projects/l2filter/sys/xen/xenbus/xenbusvar.h projects/l2filter/tools/regression/bin/sh/builtins/type1.0.stderr (props changed) projects/l2filter/tools/regression/fstest/tests/conf projects/l2filter/tools/regression/fstest/tests/misc.sh projects/l2filter/tools/regression/usr.bin/jot/regress.sh projects/l2filter/tools/sched/schedgraph.py projects/l2filter/tools/tools/README projects/l2filter/tools/tools/ath/Makefile projects/l2filter/tools/tools/ath/Makefile.inc projects/l2filter/tools/tools/ath/athdebug/athdebug.c projects/l2filter/tools/tools/ath/athstats/Makefile projects/l2filter/tools/tools/ath/athstats/athstats.c projects/l2filter/tools/tools/ath/athstats/main.c projects/l2filter/tools/tools/mctest/mctest.1 projects/l2filter/tools/tools/nanobsd/gateworks/Files/ (props changed) projects/l2filter/tools/tools/nanobsd/gateworks/Files/root/ (props changed) projects/l2filter/tools/tools/nanobsd/gateworks/cfg/ (props changed) projects/l2filter/tools/tools/nanobsd/gateworks/cfg/ssh/ (props changed) projects/l2filter/tools/tools/nanobsd/nanobsd.sh projects/l2filter/tools/tools/net80211/Makefile projects/l2filter/tools/tools/usb/print-usb-if-vids.sh projects/l2filter/usr.bin/csplit/csplit.1 projects/l2filter/usr.bin/csup/ (props changed) projects/l2filter/usr.bin/csup/Makefile projects/l2filter/usr.bin/elf2aout/Makefile projects/l2filter/usr.bin/fetch/fetch.1 projects/l2filter/usr.bin/fetch/fetch.c projects/l2filter/usr.bin/fstat/zfs.c projects/l2filter/usr.bin/gprof/gprof.1 projects/l2filter/usr.bin/gprof/gprof.c projects/l2filter/usr.bin/ipcs/ipcs.c projects/l2filter/usr.bin/mail/Makefile projects/l2filter/usr.bin/make/Makefile projects/l2filter/usr.bin/make/buf.c projects/l2filter/usr.bin/make/for.c projects/l2filter/usr.bin/make/globals.h projects/l2filter/usr.bin/make/job.c projects/l2filter/usr.bin/make/job.h projects/l2filter/usr.bin/make/main.c projects/l2filter/usr.bin/make/make.1 projects/l2filter/usr.bin/make/make.c projects/l2filter/usr.bin/make/make.h projects/l2filter/usr.bin/make/parse.c projects/l2filter/usr.bin/make/suff.c projects/l2filter/usr.bin/make/var.c projects/l2filter/usr.bin/ncal/ncal.1 projects/l2filter/usr.bin/ncal/ncal.c projects/l2filter/usr.bin/netstat/inet6.c projects/l2filter/usr.bin/netstat/main.c projects/l2filter/usr.bin/netstat/netstat.1 projects/l2filter/usr.bin/netstat/route.c projects/l2filter/usr.bin/netstat/unix.c projects/l2filter/usr.bin/nsupdate/Makefile projects/l2filter/usr.bin/procstat/procstat.1 projects/l2filter/usr.bin/procstat/procstat.c projects/l2filter/usr.bin/procstat/procstat_args.c projects/l2filter/usr.bin/procstat/procstat_basic.c projects/l2filter/usr.bin/procstat/procstat_bin.c projects/l2filter/usr.bin/procstat/procstat_cred.c projects/l2filter/usr.bin/procstat/procstat_files.c projects/l2filter/usr.bin/procstat/procstat_kstack.c projects/l2filter/usr.bin/procstat/procstat_threads.c projects/l2filter/usr.bin/procstat/procstat_vm.c projects/l2filter/usr.bin/split/split.1 projects/l2filter/usr.bin/tar/util.c projects/l2filter/usr.bin/top/machine.c projects/l2filter/usr.bin/truss/truss.1 projects/l2filter/usr.sbin/Makefile projects/l2filter/usr.sbin/arp/arp.8 projects/l2filter/usr.sbin/arp/arp.c projects/l2filter/usr.sbin/auditd/Makefile projects/l2filter/usr.sbin/boot0cfg/boot0cfg.8 projects/l2filter/usr.sbin/burncd/Makefile projects/l2filter/usr.sbin/burncd/burncd.c projects/l2filter/usr.sbin/cpucontrol/cpucontrol.8 projects/l2filter/usr.sbin/crunch/crunchgen/crunchgen.c projects/l2filter/usr.sbin/fwcontrol/fwcontrol.c projects/l2filter/usr.sbin/gssd/Makefile projects/l2filter/usr.sbin/jail/jail.8 projects/l2filter/usr.sbin/jls/jls.c projects/l2filter/usr.sbin/kldxref/ef_i386.c projects/l2filter/usr.sbin/kldxref/ef_obj.c projects/l2filter/usr.sbin/kldxref/fileformat projects/l2filter/usr.sbin/kldxref/kldxref.c projects/l2filter/usr.sbin/mergemaster/mergemaster.8 projects/l2filter/usr.sbin/mergemaster/mergemaster.sh projects/l2filter/usr.sbin/mld6query/mld6query.8 projects/l2filter/usr.sbin/ndiscvt/inf.c projects/l2filter/usr.sbin/ndiscvt/windrv_stub.c projects/l2filter/usr.sbin/ndp/ndp.c projects/l2filter/usr.sbin/nscd/nscd.conf.5 projects/l2filter/usr.sbin/pkg_install/add/main.c projects/l2filter/usr.sbin/pkg_install/add/pkg_add.1 projects/l2filter/usr.sbin/pkg_install/lib/lib.h projects/l2filter/usr.sbin/pmcstat/pmcstat.c projects/l2filter/usr.sbin/powerd/powerd.8 projects/l2filter/usr.sbin/ppp/route.c projects/l2filter/usr.sbin/route6d/route6d.c projects/l2filter/usr.sbin/rrenumd/rrenumd.8 projects/l2filter/usr.sbin/rtadvd/rtadvd.8 projects/l2filter/usr.sbin/rtsold/rtsold.8 projects/l2filter/usr.sbin/sade/disks.c projects/l2filter/usr.sbin/sysinstall/Makefile projects/l2filter/usr.sbin/sysinstall/cdrom.c projects/l2filter/usr.sbin/sysinstall/config.c projects/l2filter/usr.sbin/sysinstall/devices.c projects/l2filter/usr.sbin/sysinstall/disks.c projects/l2filter/usr.sbin/sysinstall/dispatch.c projects/l2filter/usr.sbin/sysinstall/dist.c projects/l2filter/usr.sbin/sysinstall/dist.h projects/l2filter/usr.sbin/sysinstall/label.c projects/l2filter/usr.sbin/sysinstall/main.c projects/l2filter/usr.sbin/sysinstall/media.c projects/l2filter/usr.sbin/sysinstall/menus.c projects/l2filter/usr.sbin/sysinstall/options.c projects/l2filter/usr.sbin/sysinstall/sysinstall.8 projects/l2filter/usr.sbin/sysinstall/sysinstall.h projects/l2filter/usr.sbin/sysinstall/system.c projects/l2filter/usr.sbin/sysinstall/user.c projects/l2filter/usr.sbin/syslogd/Makefile projects/l2filter/usr.sbin/syslogd/syslog.conf.5 projects/l2filter/usr.sbin/syslogd/syslogd.c projects/l2filter/usr.sbin/traceroute6/traceroute6.8 projects/l2filter/usr.sbin/ugidfw/ugidfw.c projects/l2filter/usr.sbin/usbconfig/usbconfig.c projects/l2filter/usr.sbin/usbdevs/usbdevs.c projects/l2filter/usr.sbin/wlandebug/wlandebug.c Modified: projects/l2filter/bin/chmod/chmod.1 ============================================================================== --- projects/l2filter/bin/chmod/chmod.1 Sun Jan 25 19:03:30 2009 (r187694) +++ projects/l2filter/bin/chmod/chmod.1 Sun Jan 25 19:18:20 2009 (r187695) @@ -32,7 +32,7 @@ .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 .\" $FreeBSD$ .\" -.Dd December 22, 2006 +.Dd January 23, 2009 .Dt CHMOD 1 .Os .Sh NAME @@ -281,6 +281,10 @@ Operations upon the other permissions on ``o'' by itself), in combination with the .Ar perm symbols ``s'' or ``t'', are ignored. +.Pp +The ``w'' permission on directories will permit file creation, relocation, +and copy into that directory. +Files created within the directory itself will inherit its group ID. .Sh EXAMPLES .Bl -tag -width "u=rwx,go=u-w" -compact .It Li 644 @@ -343,4 +347,5 @@ command appeared in .Sh BUGS There is no .Ar perm -option for the naughty bits. +option for the naughty bits which are ``S'' and +``T'' respectively. Modified: projects/l2filter/bin/dd/dd.1 ============================================================================== --- projects/l2filter/bin/dd/dd.1 Sun Jan 25 19:03:30 2009 (r187694) +++ projects/l2filter/bin/dd/dd.1 Sun Jan 25 19:18:20 2009 (r187695) @@ -392,6 +392,11 @@ Remove parity bit from a file: Check for (even) parity errors on a file: .Pp .Dl "dd if=file conv=pareven | cmp -x - file" +.Pp +To create an image of a Mode-1 CD-ROM, which is a commonly used format +for data CD-ROM disks, use a block size of 2048 bytes: +.Pp +.Dl "dd if=/dev/acd0 of=filename.iso bs=2048" .Sh SEE ALSO .Xr cp 1 , .Xr mt 1 , Modified: projects/l2filter/bin/kenv/kenv.1 ============================================================================== --- projects/l2filter/bin/kenv/kenv.1 Sun Jan 25 19:03:30 2009 (r187694) +++ projects/l2filter/bin/kenv/kenv.1 Sun Jan 25 19:18:20 2009 (r187695) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 13, 2005 +.Dd January 13, 2009 .Dt KENV 1 .Os .Sh NAME @@ -67,8 +67,28 @@ If the .Fl q option is set, warnings normally printed as a result of being unable to perform the requested operation will be suppressed. +.Pp +Variables can be added to the kernel environment using the +.Xr /boot/loader.conf +file, or also statically compiled into the kernel using the statement +.Pp +.Dl Ic env Ar filename +.Pp +in the kernel config file. +The file can contain lines of the form +.Pp +.Dl name = "value" # this is a comment +.Pp +where whitespace around name and '=', and +everything after a '#' character, are ignored. Almost any printable +character except '=' is acceptable as part of a name. Quotes +are optional and necessary only if the value contains +whitespace. +.Pp .Sh SEE ALSO .Xr kenv 2 , +.Xr config 5 , +.Xr loader.conf 5 , .Xr loader 8 .Sh HISTORY The Modified: projects/l2filter/bin/ln/ln.1 ============================================================================== --- projects/l2filter/bin/ln/ln.1 Sun Jan 25 19:03:30 2009 (r187694) +++ projects/l2filter/bin/ln/ln.1 Sun Jan 25 19:18:20 2009 (r187695) @@ -38,7 +38,7 @@ .Sh NAME .Nm ln , .Nm link -.Nd make links +.Nd link files .Sh SYNOPSIS .Nm .Op Fl s Op Fl F @@ -57,8 +57,13 @@ .Sh DESCRIPTION The .Nm -utility creates a new directory entry (linked file) which has the -same modes as the original file. +utility creates a new directory entry (linked file) for the file name +specified by +.Ar target_file . +The +.Ar target_file +will be created with the same file modes as the +.Ar source_file . It is useful for maintaining multiple copies of a file in many places at once without using up storage for the .Dq copies ; @@ -148,7 +153,7 @@ links. A hard link to a file is indistinguishable from the original directory entry; any changes to a file are effectively independent of the name used to reference the file. -Hard links may not normally refer to directories and may not span file systems. +Directories may not be hardlinked, and hard links may not span file systems. .Pp A symbolic link contains the name of the file to which it is linked. Modified: projects/l2filter/bin/test/test.1 ============================================================================== --- projects/l2filter/bin/test/test.1 Sun Jan 25 19:03:30 2009 (r187694) +++ projects/l2filter/bin/test/test.1 Sun Jan 25 19:18:20 2009 (r187695) @@ -310,7 +310,7 @@ are evaluated consistently according to standards document. All other cases are subject to the ambiguity in the command semantics. -.Sh RETURN VALUES +.Sh EXIT STATUS The .Nm utility exits with one of the following values: Modified: projects/l2filter/cddl/contrib/opensolaris/cmd/zinject/zinject.c ============================================================================== --- projects/l2filter/cddl/contrib/opensolaris/cmd/zinject/zinject.c Sun Jan 25 19:03:30 2009 (r187694) +++ projects/l2filter/cddl/contrib/opensolaris/cmd/zinject/zinject.c Sun Jan 25 19:18:20 2009 (r187695) @@ -146,6 +146,7 @@ #include #include +#include #include #include Modified: projects/l2filter/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c ============================================================================== --- projects/l2filter/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Sun Jan 25 19:03:30 2009 (r187694) +++ projects/l2filter/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Sun Jan 25 19:18:20 2009 (r187695) @@ -1739,15 +1739,11 @@ dtrace_program_link(dtrace_hdl_t *dtp, d * Arches which are 32-bit only just use the normal * library path. */ -#if defined(__i386__) - int use_32 = 1; /* use /usr/lib/... -sson */ -#else int use_32 = 0; #endif -#endif (void) snprintf(drti, sizeof (drti), "/usr/lib%s/dtrace/drti.o", - use_32 ? "":"32"); + use_32 ? "32":""); len = snprintf(&tmp, 1, fmt, dtp->dt_ld_path, file, tfile, drti) + 1; Modified: projects/l2filter/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- projects/l2filter/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Sun Jan 25 19:03:30 2009 (r187694) +++ projects/l2filter/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Sun Jan 25 19:18:20 2009 (r187695) @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include Modified: projects/l2filter/contrib/bind9/CHANGES ============================================================================== --- projects/l2filter/contrib/bind9/CHANGES Sun Jan 25 19:03:30 2009 (r187694) +++ projects/l2filter/contrib/bind9/CHANGES Sun Jan 25 19:18:20 2009 (r187695) @@ -1,14 +1,166 @@ - --- 9.4.2-P2 released --- + --- 9.4.3-P1 released --- -2406. [bug] Some operating systems have FD_SETSIZE set to a - low value by default, which can cause resource - exhaustion when many simultaneous connections are - open. Linux in particular makes it difficult to - increase this value. To use more sockets with - select(), set ISC_SOCKET_FDSETSIZE. Example: - STD_CDEFINES="-DISC_SOCKET_FDSETSIZE=4096" ./configure - (This should not be necessary in most cases, and - never for an authoritative-only server.) [RT #18328] +2522. [security] Handle -1 from DSA_do_verify(). + +2498. [bug] Removed a bogus function argument used with + ISC_SOCKET_USE_POLLWATCH: it could cause compiler + warning or crash named with the debug 1 level + of logging. [RT #18917] + + --- 9.4.3 released --- + +2490. [port] aix: work around a kernel bug where IPV6_RECVPKTINFO + is cleared when IPV6_V6ONLY is set. [RT #18785] + +2489. [port] solaris: Workaround Solaris's kernel bug about + /dev/poll: + http://bugs.opensolaris.org/view_bug.do?bug_id=6724237 + Define ISC_SOCKET_USE_POLLWATCH at build time to enable + this workaround. [RT #18870] + + --- 9.4.3rc1 released --- + +2473. [port] linux: raise the limit on open files to the possible + maximum value before spawning threads; 'files' + specified in named.conf doesn't seem to work with + threads as expected. [RT #18784] + +2472. [port] linux: check the number of available cpu's before + calling chroot as it depends on "/proc". [RT #16923] + +2471. [bug] named-checkzone was not reporting missing manditory + glue when sibling checks were disabled. [RT #18768] + +2469. [port] solaris: Work around Solaris's select() limitations. + [RT #18769] + +2468. [bug] Resolver could try unreachable servers multiple times. + [RT #18739] + +2467. [bug] Failure of fcntl(F_DUPFD) wasn't logged. [RT #18740] + +2466. [doc] ARM: explain max-cache-ttl 0 SERVFAIL issue. + [RT #18302] + +2465. [bug] Adb's handling of lame addresses was different + for IPv4 and IPv6. [RT #18738] + +2463. [port] linux: POSIX doesn't include the IPv6 Advanced Socket + API and glibc hides parts of the IPv6 Advanced Socket + API as a result. This is stupid as it breaks how the + two halves (Basic and Advanced) of the IPv6 Socket API were designed to be used but we have to live with it. + Define _GNU_SOURCE to pull in the IPv6 Advanced Socket + API. [RT #18388] + +2462. [doc] Document -m (enable memory usage debugging) + option for dig. [RT #18757] + +2461. [port] sunos: Change #2363 was not complete. [RT #17513] + +2458. [doc] ARM: update and correction for max-cache-size. + [RT #18294] + +2455. [bug] Stop metadata being transfered via axfr/ixfr. + [RT #18639] + +2453. [bug] Remove NULL pointer dereference in dns_journal_print(). + [RT #18316] + +2449. [bug] libbind: Out of bounds reference in dns_ho.c:addrsort. + [RT #18044] + +2445. [doc] ARM out-of-date on empty reverse zones (list includes + RFC1918 address, but these are not yet compiled in). + [RT #18578] + +2444. [port] Linux, FreeBSD, AIX: Turn off path mtu discovery + (clear DF) for UDP responses and requests. + + --- 9.4.3b3 released --- + +2443. [bug] win32: UDP connect() would not generate an event, + and so connected UDP sockets would never clean up. + Fix this by doing an immediate WSAConnect() rather + than an io completion port type for UDP. + +2438. [bug] Timeouts could be logged incorrectly under win32. + [RT #18617] + +2437. [bug] Sockets could be closed too early, leading to + inconsistent states in the socket module. [RT #18298] + +2436. [security] win32: UDP client handler can be shutdown. [RT #18576] + +2433. [tuning] Set initial timeout to 800ms. + +2432. [bug] More Windows socket handling improvements. Stop + using I/O events and use IO Completion Ports + throughout. Rewrite the receive path logic to make + it easier to support multiple simultaneous + requestrs in the future. Add stricter consistency + checking as a compile-time option (define + ISC_SOCKET_CONSISTENCY_CHECKS; defaults to off). + +2430. [bug] win32: isc_interval_set() could round down to + zero if the input was less than NS_INTERVAL + nanoseconds. Round up instead. [RT #18549] + +2429. [doc] nsupdate should be in section 1 of the man pages. + [RT #18283] + +2426. [bug] libbind: inet_net_pton() can sometimes return the + wrong value if excessively large netmasks are + supplied. [RT #18512] + +2425. [bug] named didn't detect unavailable query source addresses + at load time. [RT #18536] + +2424. [port] configure now probes for a working epoll + implementation. Allow the use of kqueue, + epoll and /dev/poll to be selected at compile + time. [RT #18277] + +2422. [bug] Handle the special return value of a empty node as + if it was a NXRRSET in the validator. [RT #18447] + +2421. [func] Add new command line option '-S' for named to specify + the max number of sockets. [RT #18493] + Use caution: this option may not work for some + operating systems without rebuilding named. + +2420. [bug] Windows socket handling cleanup. Let the io + completion event send out cancelled read/write + done events, which keeps us from writing to memeory + we no longer have ownership of. Add debugging + socket_log() function. Rework TCP socket handling + to not leak sockets. + +2417. [bug] Connecting UDP sockets for outgoing queries could + unexpectedly fail with an 'address already in use' + error. [RT #18411] + +2416. [func] Log file descriptors that cause exceeding the + internal maximum. [RT #18460] + +2414. [bug] A masterdump context held the database lock too long, + causing various troubles such as dead lock and + recursive lock acquisition. [RT #18311, #18456] + +2413. [bug] Fixed an unreachable code path in socket.c. [RT #18442] + +2412. [bug] win32: address a resourse leak. [RT #18374] + +2411. [bug] Allow using a larger number of sockets than FD_SETSIZE + for select(). To enable this, set ISC_SOCKET_MAXSOCKETS + at compilation time. [RT #18433] + +2410. [bug] Correctly delete m_versionInfo. [RT #18432] + +2408. [bug] A duplicate TCP dispatch event could be sent, which + could then trigger an assertion failure in + resquery_response(). [RT #18275] + +2407. [port] hpux: test for sys/dyntune.h. [RT #18421] 2404. [port] hpux: files unlimited support. @@ -39,15 +191,271 @@ 2392. [bug] remove 'grep -q' from acl test script, some platforms don't support it. [RT #18253] +2391 [port] hpux: cover additional recvmsg() error codes. + [RT #18301] + +2390 [bug] dispatch.c could make a false warning on 'odd socket'. + [RT #18301]. + +2389 [bug] Move the "working directory writable" check to after + the ns_os_changeuser() call. [RT #18326] + +2386. [func] Add warning about too small 'open files' limit. + [RT #18269] + + --- 9.4.3b2 released --- + +2385. [bug] A condition variable in socket.c could leak in + rare error handling [RT #17968]. + +2384. [security] Additional support for query port randomization (change + #2375) including performance improvement and port range + specification. [RT #17949, #18098] + +2383. [bug] named could double queries when they resulted in + SERVFAIL due to overkilling EDNS0 failure detection. + [RT #18182] + +2382. [doc] Add descriptions of IPSECKEY, SPF and SSHFP to ARM. + +2381. [port] dlz/mysql: support multiple install layouts for + mysql. /include/{,mysql/}mysql.h and + /lib/{,mysql/}. [RT #18152] + +2380. [bug] dns_view_find() was not returning NXDOMAIN/NXRRSET + proofs which, in turn, caused validation failures + for insecure zones immediately below a secure zone + the server was authoritative for. [RT #18112] + +2379. [contrib] queryperf/gen-data-queryperf.py: removed redundant + TLDs and supported RRs with TTLs [RT #17972] + +2377. [bug] Address race condition in dnssec-signzone. [RT #18142] + +2376. [bug] Change #2144 was not complete. + +2375. [security] Fully randomize UDP query ports to improve + forgery resilience. [RT #17949] + +2372. [bug] fixed incorrect TAG_HMACSHA256_BITS value [RT #18047] + +2369. [bug] libbind: Array bounds overrun on read in bitncmp(). + [RT #18054] + +2364. [bug] named could trigger a assertion when serving a + malformed signed zone. [RT #17828] + +2363. [port] sunos: pre-set "lt_cv_sys_max_cmd_len=4096;". + [RT #17513] + +2361. [bug] "recursion" statistics counter could be counted + multiple times for a single query. [RT #17990] + + --- 9.4.3b1 released --- + +2358. [doc] Update host's default query description. [RT #17934] + +2356. [bug] Built in mutex profiler was not scalable enough. + [RT #17436] + +2353. [func] libbind: nsid support. [RT #17091] + +2350. [port] win32: IPv6 support. [RT #17797] + +2347. [bug] Delete now traverses the RB tree in the canonical + order. [RT #17451] + +2345. [bug] named-checkconf failed to detect when forwarders + were set at both the options/view level and in + a root zone. [RT #17671] + +2344. [bug] Improve "logging{ file ...; };" documentation. + [RT #17888] + +2343. [bug] (Seemingly) duplicate IPv6 entries could be + created in ADB. [RT #17837] + +2341. [bug] libbind: add missing -I../include for off source + tree builds. [RT #17606] + +2340. [port] openbsd: interface configuration. [RT #17700] + +2339. [port] tru64: support for libbind. [RT #17589] + +2338. [bug] check_ds() could be called with a non DS rdataset. + [RT #17598] + +2337. [bug] BUILD_LDFLAGS was not being correctly set. [RT #17614] + +2335. [port] sunos: libbind and *printf() support for long long. + [RT #17513] + +2334. [bug] Bad REQUIRES in fromstruct_in_naptr(), off by one + bug in fromstruct_txt(). [RT #17609] + +2333. [bug] Fix off by one error in isc_time_nowplusinterval(). + [RT #17608] + +2332. [contrib] query-loc-0.4.0. [RT #17602] + +2331. [bug] Failure to regenerate any signatures was not being + reported nor being past back to the UPDATE client. + [RT #17570] + +2330. [bug] Remove potential race condition when handling + over memory events. [RT #17572] + + WARNING: API CHANGE: over memory callback + function now needs to call isc_mem_waterack(). + See for details. + +2329. [bug] Clearer help text for dig's '-x' and '-i' options. + +2328. [maint] Add AAAA addresses for A.ROOT-SERVERS.NET, + F.ROOT-SERVERS.NET, H.ROOT-SERVERS.NET, + J.ROOT-SERVERS.NET, K.ROOT-SERVERS.NET and + M.ROOT-SERVERS.NET. + +2326. [bug] It was possible to trigger a INSIST in the acache + processing. + +2325. [port] Linux: use capset() function if available. [RT #17557] + +2323. [port] tru64: namespace clash. [RT #17547] + 2322. [port] MacOS: work around the limitation of setrlimit() for RLIMIT_NOFILE. [RT #17526] - --- 9.4.2-P1 released --- +2319. [bug] Silence Coverity warnings in + lib/dns/rdata/in_1/apl_42.c. [RT #17469] -2375. [security] Fully randomize UDP query ports to improve - forgery resilience. [RT #17949] +2318. [port] sunos fixes for libbind. [RT #17514] + +2314. [bug] Uninitialized memory use on error path in + bin/named/lwdnoop.c. [RT #17476] + +2313. [cleanup] Silence Coverity warnings. Handle private stacks. + [RT #17447] [RT #17478] + +2312. [cleanup] Silence Coverity warning in lib/isc/unix/socket.c. + [RT #17458] + +2311. [func] Update ACL regression test. [RT #17462] + +2310. [bug] dig, host, nslookup: flush stdout before emitting + debug/fatal messages. [RT #17501] + +2308. [cleanup] Silence Coverity warning in bin/named/controlconf.c. + [RT #17495] + +2307. [bug] Remove infinite loop from lib/dns/sdb.c. [RT #17496] + +2306. [bug] Remove potential race from lib/dns/resolver.c. + [RT #17470] + +2305. [security] inet_network() buffer overflow. CVE-2008-0122. + +2304. [bug] Check returns from all dns_rdata_tostruct() calls. + [RT #17460] + +2303. [bug] Remove unnecessary code from bin/named/lwdgnba.c. + [RT #17471] + +2302. [bug] Fix memset() calls in lib/tests/t_api.c. [RT #17472] + +2301. [bug] Remove resource leak and fix error messages in + bin/tests/system/lwresd/lwtest.c. [RT #17474] + +2300. [bug] Fixed failure to close open file in + bin/tests/names/t_names.c. [RT #17473] + +2299. [bug] Remove unnecessary NULL check in + bin/nsupdate/nsupdate.c. [RT #17475] + +2298. [bug] isc_mutex_lock() failure not caught in + bin/tests/timers/t_timers.c. [RT #17468] + +2297. [bug] isc_entropy_createfilesource() failure not caught in + bin/tests/dst/t_dst.c. [RT #17467] + +2296. [port] Allow docbook stylesheet location to be specified to + configure. [RT #17457] + +2295. [bug] Silence static overrun error in bin/named/lwaddr.c. + [RT #17459] + +2293. [func] Add ACL regression test. [RT #17375] + +2292. [bug] Log if the working directory is not writable. + [RT #17312] + +2291. [bug] PR_SET_DUMPABLE may be set too late. Also report + failure to set PR_SET_DUMPABLE. [RT #17312] + +2290. [bug] Let AD in the query signal that the client wants AD + set in the response. [RT #17301] + +2288. [port] win32: mark service as running when we have finished + loading. [RT #17441] + +2287. [bug] Use 'volatile' if the compiler supports it. [RT #17413] + +2284. [bug] Memory leak in UPDATE prerequisite processing. + [RT #17377] + +2283. [bug] TSIG keys were not attaching to the memory + context. TSIG keys should use the rings + memory context rather than the clients memory + context. [RT #17377] + +2279. [bug] Use setsockopt(SO_NOSIGPIPE), when available, + to protect applications from receiving spurious + SIGPIPE signals when using the resolver. + +2278. [bug] win32: handle the case where Windows returns no + search list or DNS suffix. [RT #17354] + +2277. [bug] Empty zone names were not correctly being caught at + in the post parse checks. [RT #17357] + +2273. [bug] Adjust log level to WARNING when saving inconsistent + stub/slave master and journal files. [RT# 17279] + +2272. [bug] Handle illegal dnssec-lookaside trust-anchor names. + [RT #17262] + +2270. [bug] dns_db_closeversion() version->writer could be reset + before it is tested. [RT #17290] + +2269. [contrib] dbus memory leaks and missing va_end calls. [RT #17232] + +2268. [bug] 0.IN-ADDR.ARPA was missing from the empty zones + list. + +2266. [bug] client.c:get_clientmctx() returned the same mctx + once the pool of mctx's was filled. [RT #17218] + +2265. [bug] Test that the memory context's basic_table is non NULL + before freeing. [RT #17265] + +2264. [bug] Server prefix length was being ignored. [RT #17308] + +2263. [bug] "named-checkconf -z" failed to set default value + for "check-integrity". [RT #17306] + +2262. [bug] Error status from all but the last view could be + lost. [RT #17292] + +2260. [bug] Reported wrong clients-per-query when increasing the + value. [RT #17236] + +2247. [doc] Sort doc/misc/options. [RT #17067] + +2246. [bug] Make the startup of test servers (ans.pl) more + robust. [RT #17147] --- 9.4.2 released --- + --- 9.4.2rc2 released --- 2259. [bug] Reverse incorrect LIBINTERFACE bump of libisc @@ -63,7 +471,7 @@ 2256. [bug] win32: Correctly register the installation location of bindevt.dll. [RT #17159] -2255. [bug] L.ROOT-SERVERS.NET is now 199.7.83.42. +2255. [maint] L.ROOT-SERVERS.NET is now 199.7.83.42. 2254. [bug] timer.c:dispatch() failed to lock timer->lock when reading timer->idle allowing it to see @@ -76,16 +484,16 @@ reality. Note there is behaviour change for BIND 9.5. [RT #17113] -2249. [bug] Only set Authentic Data bit if client requested +2249. [bug] Only set Authentic Data bit if client requested DNSSEC, per RFC 3655 [RT #17175] -2248. [cleanup] Fix several errors reported by Coverity. [RT #17160] +2248. [cleanup] Fix several errors reported by Coverity. [RT #17160] 2245. [bug] Validating lack of DS records at trust anchors wasn't working. [RT #17151] 2238. [bug] It was possible to trigger a REQUIRE when a - validation was cancelled. [RT #17106] + validation was canceled. [RT #17106] 2237. [bug] libbind: res_init() was not thread aware. [RT #17123] @@ -94,8 +502,8 @@ 2235. [bug] was not being installed. [RT #17135] -2234. [port] Correct some compiler warnings on SCO OSr5 [RT #17134] - +2234. [port] Correct some compiler warnings on SCO OSr5 [RT #17134] + 2232. [bug] dns_adb_findaddrinfo() could fail and return ISC_R_SUCCESS. [RT #17137] @@ -110,7 +518,7 @@ 2227. [cleanup] Tidied up the FAQ. [RT #17121] 2225. [bug] More support for systems with no IPv4 addresses. - [RT #17111] + [RT #17111] 2224. [bug] Defer journal compaction if a xfrin is in progress. [RT #17119] @@ -124,15 +532,15 @@ 2220. [bug] win32: Address a race condition in final shutdown of the Windows socket code. [RT #17028] - -2219. [bug] Apply zone consistancy checks to additions, not + +2219. [bug] Apply zone consistency checks to additions, not removals, when updating. [RT #17049] 2218. [bug] Remove unnecessary REQUIRE from dns_validator_create(). [RT #16976] 2216. [cleanup] Fix a number of errors reported by Coverity. - [RT #17094] + [RT #17094] 2215. [bug] Bad REQUIRE check isc_hmacsha1_verify(). [RT #17094] @@ -175,13 +583,13 @@ localhost;) is used. [RT #16987] - + 2205. [bug] libbind: change #2119 broke thread support. [RT #16982] 2203. [security] Query id generation was cryptographically weak. [RT # 16915] -2202. [security] The default acls for allow-query-cache and +2202. [security] The default acls for allow-query-cache and allow-recursion were not being applied. [RT #16960] 2200. [bug] The search for cached NSEC records was stopping to @@ -216,7 +624,7 @@ 2187. [bug] query_addds(), query_addwildcardproof() and query_addnxrrsetnsec() should take a version - arguement. [RT #16368] + argument. [RT #16368] 2186. [port] cygwin: libbind: check for struct sockaddr_storage independently of IPv6. [RT #16482] @@ -243,7 +651,7 @@ debug level 10+. [RT #16798] 2176. [contrib] dbus update to handle race condition during - initialisation (Bugzilla 235809). [RT #16842] + initialization (Bugzilla 235809). [RT #16842] 2175. [bug] win32: windows broadcast condition variable support was broken. [RT #16592] @@ -274,7 +682,7 @@ a server address as a name to be looked up, causing unexpected output. [RT #16743] -2164. [bug] The code to determine how named-checkzone / +2164. [bug] The code to determine how named-checkzone / named-compilezone was called failed under windows. [RT #16764] @@ -288,7 +696,7 @@ 2159. [bug] Array bounds overrun in acache processing. [RT #16710] -2158. [bug] ns_client_isself() failed to initialise key +2158. [bug] ns_client_isself() failed to initialize key leading to a REQUIRE failure. [RT #16688] 2156. [bug] Fix node reference leaks in lookup.c:lookup_find(), @@ -363,7 +771,7 @@ 2136. [bug] nslookup/host looped if there was no search list and the host didn't exist. [RT #16657] -2135. [bug] Uninitialised rdataset in sdlz.c. [RT# 16656] +2135. [bug] Uninitialized rdataset in sdlz.c. [RT# 16656] 2133. [port] powerpc: Support both IBM and MacOS Power PC assembler syntaxes. [RT #16647] @@ -379,7 +787,7 @@ 2127. [port] Improved OpenSSL 0.9.8 support. [RT #16563] -2126. [security] Serialise validation of type ANY responses. [RT #16555] +2126. [security] Serialize validation of type ANY responses. [RT #16555] 2125. [bug] dns_zone_getzeronosoattl() REQUIRE failure if DLZ was defined. [RT #16574] @@ -419,7 +827,7 @@ 2111. [bug] Fix a number of errors reported by Coverity. [RT #16507] -2110. [bug] "minimal-response yes;" interacted badly with BIND 8 +2110. [bug] "minimal-responses yes;" interacted badly with BIND 8 priming queries. [RT #16491] 2109. [port] libbind: silence aix 5.3 compiler warnings. [RT #16502] @@ -431,7 +839,7 @@ 2103. [port] Add /usr/sfw to list of locations for OpenSSL under Solaris. -2102. [port] Silence solaris 10 warnings. +2102. [port] Silence Solaris 10 warnings. --- 9.4.0b4 released --- @@ -441,7 +849,7 @@ 2100. [port] win32: copy libeay32.dll to Build\Debug. Copy Debug\named-checkzone to Debug\named-compilezone. -2099. [port] win32: more manifiest issues. +2099. [port] win32: more manifest issues. 2098. [bug] Race in rbtdb.c:no_references(), which occasionally triggered an INSIST failure about the node lock @@ -457,14 +865,14 @@ 2095. [port] libbind: alway prototype inet_cidr_ntop_ipv6() and net_cidr_ntop_ipv6(). [RT #16388] - + 2094. [contrib] Update named-bootconf. [RT# 16404] 2093. [bug] named-checkzone -s was broken. 2092. [bug] win32: dig, host, nslookup. Use registry config if resolv.conf does not exist or no nameservers - listed. [RT #15877] + listed. [RT #15877] 2091. [port] dighost.c: race condition on cleanup. [RT #16417] @@ -507,7 +915,7 @@ 2078. [bug] dnssec-checkzone output style "default" was badly named. It is now called "relative". [RT #16326] -2077. [bug] 'dnssec-signzone -O raw' wasn't outputing the +2077. [bug] 'dnssec-signzone -O raw' wasn't outputting the complete signed zone. [RT #16326] 2076. [bug] Several files were missing #include @@ -592,7 +1000,7 @@ [RT #16287] 2049. [bug] Restore SOA before AXFR when falling back from - a attempted IXFR when transfering in a zone. + a attempted IXFR when transferring in a zone. Allow a initial SOA query before attempting a AXFR to be requested. [RT #16156] @@ -601,7 +1009,7 @@ the OS always returned the same local port. [RT #16182] -2047. [bug] Failed to initialise the interface flags to zero. +2047. [bug] Failed to initialize the interface flags to zero. [RT #16245] 2046. [bug] rbtdb.c:rdataset_setadditional() could cause duplicate @@ -641,7 +1049,7 @@ 2034. [bug] gcc: set -fno-strict-aliasing. [RT #16124] -2033. [bug] We wern't creating multiple client memory contexts +2033. [bug] We weren't creating multiple client memory contexts on demand as expected. [RT #16095] --- 9.4.0a6 released --- @@ -657,7 +1065,7 @@ 2029. [bug] host printed out the server multiple times when specified on the command line. [RT #15992] -2028. [port] linux: socket.c compatability for old systems. +2028. [port] linux: socket.c compatibility for old systems. [RT #16015] 2027. [port] libbind: Solaris x86 support. [RT #16020] @@ -667,7 +1075,7 @@ 2025. [func] Update "zone serial unchanged" message. [RT #16026] -2024. [bug] named emited spurious "zone serial unchanged" +2024. [bug] named emitted spurious "zone serial unchanged" messages on reload. [RT #16027] 2023. [bug] "make install" should create ${localstatedir}/run and @@ -695,7 +1103,7 @@ --- 9.4.0a5 released --- 2015. [cleanup] use-additional-cache is now acache-enable for - consistancy. Default acache-enable off in BIND 9.4 + consistency. Default acache-enable off in BIND 9.4 as it requires memory usage to be configured. It may be enabled by default in BIND 9.5 once we have more experience with it. @@ -715,9 +1123,9 @@ --- 9.4.0a4 released --- -2009. [bug] libbind: coverity fixes. [RT #15808] +2009. [bug] libbind: Coverity fixes. [RT #15808] -2008. [func] It is now posssible to enable/disable DNSSEC +2008. [func] It is now possible to enable/disable DNSSEC validation from rndc. This is useful for the mobile hosts where the current connection point breaks DNSSEC (firewall/proxy). [RT #15592] @@ -729,7 +1137,7 @@ be changed to yes in 9.5.0. [RT #15674] 2006. [security] Allow-query-cache and allow-recursion now default - to the builtin acls "localnets" and "localhost". + to the built in acls "localnets" and "localhost". This is being done to make caching servers less attractive as reflective amplifying targets for @@ -777,7 +1185,7 @@ 1994. [port] OpenSSL 0.9.8 support. [RT #15694] -1993. [bug] Log messsage, via syslog, were missing the space +1993. [bug] Log messages, via syslog, were missing the space after the timestamp if "print-time yes" was specified. [RT #15844] @@ -785,11 +1193,11 @@ view. [RT #15825] 1991. [cleanup] The configuration data, once read, should be treated - as readonly. Expand the use of const to enforce this + as read only. Expand the use of const to enforce this at compile time. [RT #15813] 1990. [bug] libbind: isc's override of broken gettimeofday() - implementions was not always effective. + implementations was not always effective. [RT #15709] 1989. [bug] win32: don't check the service password when @@ -811,7 +1219,7 @@ server for the zone. Also any zones that contain DLV records should be removed when upgrading a slave zone. You do not however have to upgrade all - servers for a zone with DLV records simultaniously. + servers for a zone with DLV records simultaneously. 1984. [func] dig, nslookup and host now advertise a 4096 byte EDNS UDP buffer size by default. [RT #15855] @@ -848,7 +1256,7 @@ 1973. [func] TSIG HMACSHA1, HMACSHA224, HMACSHA256, HMACSHA384 and HMACSHA512 support. [RT #13606] -1972. [contrib] DBUS dynamic forwarders integation from +1972. [contrib] DBUS dynamic forwarders integration from Jason Vas Dias . 1971. [port] linux: make detection of missing IF_NAMESIZE more @@ -872,7 +1280,7 @@ 1964. [func] Separate out MX and SRV to CNAME checks. [RT #15723] -1963. [port] Tru64 4.0E doesn't support send() and recv(). +1963. [port] Tru64 4.0E doesn't support send() and recv(). [RT #15586] 1962. [bug] Named failed to clear old update-policy when it @@ -898,7 +1306,7 @@ by native compiler. See README for additional cross compile support information. [RT #15148] -1955. [bug] Pre-allocate the cache cleaning interator. [RT #14998] +1955. [bug] Pre-allocate the cache cleaning iterator. [RT #14998] 1954. [func] Named now falls back to advertising EDNS with a 512 byte receive buffer if the initial EDNS queries @@ -915,7 +1323,7 @@ 1951. [security] Drop queries from particular well known ports. Don't return FORMERR to queries from particular well known ports. [RT #15636] - + 1950. [port] Solaris 2.5.1 and earlier cannot bind() then connect() a TCP socket. This prevents the source address being set for TCP connections. [RT #15628] @@ -934,10 +1342,10 @@ 1946. [bug] resume_dslookup() could trigger a REQUIRE failure when using forwarders. [RT #15549] -1945. [cleanup] dnssec-keygen: RSA (RSAMD5) is nolonger recommended. +1945. [cleanup] dnssec-keygen: RSA (RSAMD5) is no longer recommended. To generate a RSAMD5 key you must explicitly request RSAMD5. [RT #13780] - + 1944. [cleanup] isc_hash_create() does not need a read/write lock. [RT #15522] @@ -1028,15 +1436,15 @@ 1917. [doc] funcsynopsisinfo wasn't being treated as verbatim when generating man pages. [RT #15385] -1916. [func] Integrate contibuted IDN code from JPNIC. [RT #15383] +1916. [func] Integrate contributed IDN code from JPNIC. [RT #15383] 1915. [bug] dig +ndots was broken. [RT #15215] 1914. [protocol] DS is required to accept mnemonic algorithms (RFC 4034). Still emit numeric algorithms for - compatability with RFC 3658. [RT #15354] + compatibility with RFC 3658. [RT #15354] -1913. [func] Integrate contibuted DLZ code into named. [RT #11382] +1913. [func] Integrate contributed DLZ code into named. [RT #11382] 1912. [port] aix: atomic locking for powerpc. [RT #15020] @@ -1059,7 +1467,7 @@ [RT #15034] 1905. [bug] Strings returned from cfg_obj_asstring() should be - treated as read-only. The prototype for + treated as read-only. The prototype for cfg_obj_asstring() has been updated to reflect this. [RT #15256] @@ -1108,7 +1516,7 @@ 1891. [port] freebsd: pthread_mutex_init can fail if it runs out *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sun Jan 25 19:25:41 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF9211065673; Sun, 25 Jan 2009 19:25:41 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DC1B18FC08; Sun, 25 Jan 2009 19:25:41 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0PJPf17025864; Sun, 25 Jan 2009 19:25:41 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0PJPfEu025860; Sun, 25 Jan 2009 19:25:41 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200901251925.n0PJPfEu025860@svn.freebsd.org> From: Andrew Thompson Date: Sun, 25 Jan 2009 19:25:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187696 - in projects/l2filter/sys: net netinet X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Jan 2009 19:25:42 -0000 Author: thompsa Date: Sun Jan 25 19:25:41 2009 New Revision: 187696 URL: http://svn.freebsd.org/changeset/base/187696 Log: Fix up merge conflicts (vimage, arpv2). Submitted by: Gleb Kurtsou Modified: projects/l2filter/sys/net/if_bridge.c projects/l2filter/sys/net/if_ethersubr.c projects/l2filter/sys/netinet/ip_fw2.c projects/l2filter/sys/netinet/ip_fw_pfil.c Modified: projects/l2filter/sys/net/if_bridge.c ============================================================================== --- projects/l2filter/sys/net/if_bridge.c Sun Jan 25 19:18:20 2009 (r187695) +++ projects/l2filter/sys/net/if_bridge.c Sun Jan 25 19:25:41 2009 (r187696) @@ -3013,6 +3013,7 @@ bridge_pfil(struct mbuf **mp, struct ifn } error = 0; + /* Add tag if member or bridge interface has IFF_L2TAG set */ if (((bifp ? bifp->if_flags : 0) | (ifp ? ifp->if_flags : 0)) & IFF_L2TAG) { mtag_ether_header = m_tag_locate(*mp, MTAG_ETHER, MTAG_ETHER_HEADER, Modified: projects/l2filter/sys/net/if_ethersubr.c ============================================================================== --- projects/l2filter/sys/net/if_ethersubr.c Sun Jan 25 19:18:20 2009 (r187695) +++ projects/l2filter/sys/net/if_ethersubr.c Sun Jan 25 19:25:41 2009 (r187696) @@ -65,6 +65,7 @@ #include #include #include +#include #include #include @@ -72,8 +73,6 @@ #include #include #include -#include -#include #include #endif #ifdef INET6 @@ -144,15 +143,7 @@ MALLOC_DEFINE(M_ARPCOM, "arpcom", "802.* #define senderr(e) do { error = (e); goto bad;} while (0) -#if defined(INET) || defined(INET6) -int -ether_ipfw_chk(struct mbuf **m0, struct ifnet *dst, - struct ip_fw **rule, int shared); -#ifdef VIMAGE_GLOBALS -static int ether_ipfw; -#endif -#endif - +struct pfil_head ether_pfil_hook; /* Packet filter hooks */ /* * Ethernet output routine. @@ -412,20 +403,12 @@ bad: if (m != NULL) int ether_output_frame(struct ifnet *ifp, struct mbuf *m) { -#if defined(INET) || defined(INET6) - INIT_VNET_NET(ifp->if_vnet); - struct ip_fw *rule = ip_dn_claim_rule(m); + int error = 0; - if (IPFW_LOADED && V_ether_ipfw != 0) { - if (ether_ipfw_chk(&m, ifp, &rule, 0) == 0) { - if (m) { - m_freem(m); - return EACCES; /* pkt dropped */ - } else - return 0; /* consumed e.g. in a pipe */ - } - } -#endif + if (PFIL_HOOKED(ðer_pfil_hook) && (ifp->if_flags & IFF_L2FILTER)) + error = pfil_run_hooks(ðer_pfil_hook, &m, ifp, PFIL_OUT, NULL); + if (m == NULL) + return 0; /* consumed e.g. in a pipe */ /* * Queue message on interface, update output statistics if @@ -434,103 +417,6 @@ ether_output_frame(struct ifnet *ifp, st return ((ifp->if_transmit)(ifp, m)); } -#if defined(INET) || defined(INET6) -/* - * ipfw processing for ethernet packets (in and out). - * The second parameter is NULL from ether_demux, and ifp from - * ether_output_frame. - */ -int -ether_ipfw_chk(struct mbuf **m0, struct ifnet *dst, - struct ip_fw **rule, int shared) -{ - INIT_VNET_INET(dst->if_vnet); - struct ether_header *eh; - struct ether_header save_eh; - struct mbuf *m; - int i; - struct ip_fw_args args; - - if (*rule != NULL && V_fw_one_pass) - return 1; /* dummynet packet, already partially processed */ - - /* - * I need some amt of data to be contiguous, and in case others need - * the packet (shared==1) also better be in the first mbuf. - */ - m = *m0; - i = min( m->m_pkthdr.len, max_protohdr); - if ( shared || m->m_len < i) { - m = m_pullup(m, i); - if (m == NULL) { - *m0 = m; - return 0; - } - } - eh = mtod(m, struct ether_header *); - save_eh = *eh; /* save copy for restore below */ - m_adj(m, ETHER_HDR_LEN); /* strip ethernet header */ - - args.m = m; /* the packet we are looking at */ - args.oif = dst; /* destination, if any */ - args.rule = *rule; /* matching rule to restart */ - args.next_hop = NULL; /* we do not support forward yet */ - args.eh = &save_eh; /* MAC header for bridged/MAC packets */ - args.inp = NULL; /* used by ipfw uid/gid/jail rules */ - i = ip_fw_chk_ptr(&args); - m = args.m; - if (m != NULL) { - /* - * Restore Ethernet header, as needed, in case the - * mbuf chain was replaced by ipfw. - */ - M_PREPEND(m, ETHER_HDR_LEN, M_DONTWAIT); - if (m == NULL) { - *m0 = m; - return 0; - } - if (eh != mtod(m, struct ether_header *)) - bcopy(&save_eh, mtod(m, struct ether_header *), - ETHER_HDR_LEN); - } - *m0 = m; - *rule = args.rule; - - if (i == IP_FW_DENY) /* drop */ - return 0; - - KASSERT(m != NULL, ("ether_ipfw_chk: m is NULL")); - - if (i == IP_FW_PASS) /* a PASS rule. */ - return 1; - - if (DUMMYNET_LOADED && (i == IP_FW_DUMMYNET)) { - /* - * Pass the pkt to dummynet, which consumes it. - * If shared, make a copy and keep the original. - */ - if (shared) { - m = m_copypacket(m, M_DONTWAIT); - if (m == NULL) - return 0; - } else { - /* - * Pass the original to dummynet and - * nothing back to the caller - */ - *m0 = NULL ; - } - ip_dn_io_ptr(&m, dst ? DN_TO_ETH_OUT: DN_TO_ETH_DEMUX, &args); - return 0; - } - /* - * XXX at some point add support for divert/forward actions. - * If none of the above matches, we have to drop the pkt. - */ - return 0; -} -#endif - /* * Process a received Ethernet packet; the packet is in the * mbuf chain m with the ethernet header at the front. @@ -728,6 +614,7 @@ void ether_demux(struct ifnet *ifp, struct mbuf *m) { struct ether_header *eh; + struct m_tag *mtag_ether_header; int isr; u_short ether_type; #if defined(NETATALK) @@ -736,22 +623,16 @@ ether_demux(struct ifnet *ifp, struct mb KASSERT(ifp != NULL, ("%s: NULL interface pointer", __func__)); -#if defined(INET) || defined(INET6) - INIT_VNET_NET(ifp->if_vnet); /* - * Allow dummynet and/or ipfw to claim the frame. + * Allow pfil to claim the frame. * Do not do this for PROMISC frames in case we are re-entered. */ - if (IPFW_LOADED && V_ether_ipfw != 0 && !(m->m_flags & M_PROMISC)) { - struct ip_fw *rule = ip_dn_claim_rule(m); - - if (ether_ipfw_chk(&m, NULL, &rule, 0) == 0) { - if (m) - m_freem(m); /* dropped; free mbuf chain */ - return; /* consumed */ - } + if (PFIL_HOOKED(ðer_pfil_hook) && (ifp->if_flags & IFF_L2FILTER) && + !(m->m_flags & M_PROMISC)) { + if (pfil_run_hooks(ðer_pfil_hook, &m, ifp, PFIL_IN, NULL) != 0 || + m == NULL) + return; } -#endif eh = mtod(m, struct ether_header *); ether_type = ntohs(eh->ether_type); @@ -783,6 +664,14 @@ ether_demux(struct ifnet *ifp, struct mb return; } + if (ifp->if_flags & IFF_L2TAG) { + mtag_ether_header = m_tag_alloc(MTAG_ETHER, MTAG_ETHER_HEADER, ETHER_HDR_LEN, M_NOWAIT); + if (mtag_ether_header != NULL) { + memcpy(mtag_ether_header + 1, eh, ETHER_HDR_LEN); + m_tag_prepend(m, mtag_ether_header); + } + } + /* * Reset layer specific mbuf flags to avoid confusing upper layers. * Strip off Ethernet header. @@ -958,10 +847,6 @@ ether_ifdetach(struct ifnet *ifp) SYSCTL_DECL(_net_link); SYSCTL_NODE(_net_link, IFT_ETHER, ether, CTLFLAG_RW, 0, "Ethernet"); -#if defined(INET) || defined(INET6) -SYSCTL_V_INT(V_NET, vnet_net, _net_link_ether, OID_AUTO, ipfw, CTLFLAG_RW, - ether_ipfw, 0, "Pass ether pkts through firewall"); -#endif #if 0 /* @@ -1217,10 +1102,16 @@ ether_free(void *com, u_char type) static int ether_modevent(module_t mod, int type, void *data) { + int err; switch (type) { case MOD_LOAD: if_register_com_alloc(IFT_ETHER, ether_alloc, ether_free); + ether_pfil_hook.ph_type = PFIL_TYPE_IFT; + ether_pfil_hook.ph_af = IFT_ETHER; + if ((err = pfil_head_register(ðer_pfil_hook)) != 0) + printf("%s: WARNING: unable to register pfil hook, " + "error %d\n", __func__, err); break; case MOD_UNLOAD: if_deregister_com_alloc(IFT_ETHER); Modified: projects/l2filter/sys/netinet/ip_fw2.c ============================================================================== --- projects/l2filter/sys/netinet/ip_fw2.c Sun Jan 25 19:18:20 2009 (r187695) +++ projects/l2filter/sys/netinet/ip_fw2.c Sun Jan 25 19:25:41 2009 (r187696) @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -66,6 +67,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -162,9 +164,47 @@ ipfw_nat_cfg_t *ipfw_nat_del_ptr; ipfw_nat_cfg_t *ipfw_nat_get_cfg_ptr; ipfw_nat_cfg_t *ipfw_nat_get_log_ptr; +static __inline int ether_addr_allow(ipfw_ether_addr *want, + ipfw_ether_addr *a) +{ + static ipfw_ether_addr mask = { + .octet = { 0xff, 0xff, 0xff, 0xff, 0xff,0xff }, + .flags = 0 + }; + if ((want->flags & IPFW_EA_CHECK) == 0) + return (1); + + if ((a->flags & IPFW_EA_CHECK) == 0) + return (0); + + if (want->flags & IPFW_EA_MULTICAST) { + return (ETHER_IS_MULTICAST(a->octet)); + } + +#define EA_CMP(a) (*((u_int64_t*)(a)) & *((u_int64_t*)&mask)) + return (EA_CMP(want) == EA_CMP(a)); +#undef EA_CMP +} + +static __inline int ether_addr_allow_dyn(ipfw_ether_addr *want, ipfw_ether_addr *a) +{ + if ((a->flags & IPFW_EA_CHECK) == 0) { + return (1); + } + return (ether_addr_allow(want, a)); +} + +struct table_entry_addr { + u_char len; + u_char __reserved; + struct ether_addr ether_addr; + in_addr_t in_addr; +}; + struct table_entry { - struct radix_node rn[2]; - struct sockaddr_in addr, mask; + struct radix_node in_rn[2], ether_rn[2]; + struct table_entry_addr addr, mask; + int refcnt; u_int32_t value; }; @@ -744,18 +784,6 @@ send_reject6(struct ip_fw_args *args, in */ tcp_respond(NULL, ip6, tcp, m, ack, seq, flags); } else if (code != ICMP6_UNREACH_RST) { /* Send an ICMPv6 unreach. */ -#if 0 - /* - * Unlike above, the mbufs need to line up with the ip6 hdr, - * as the contents are read. We need to m_adj() the - * needed amount. - * The mbuf will however be thrown away so we can adjust it. - * Remember we did an m_pullup on it already so we - * can make some assumptions about contiguousness. - */ - if (args->L3offset) - m_adj(m, args->L3offset); -#endif icmp6_error(m, ICMP6_DST_UNREACH, code, 0); } else m_freem(m); @@ -782,7 +810,6 @@ ipfw_log(struct ip_fw *f, u_int hlen, st struct ip *ip) { INIT_VNET_IPFW(curvnet); - struct ether_header *eh = args->eh; char *action; int limit_reached = 0; char action2[40], proto[128], fragment[32]; @@ -909,7 +936,7 @@ ipfw_log(struct ip_fw *f, u_int hlen, st } if (hlen == 0) { /* non-ip */ - snprintf(SNPARGS(proto, 0), "MAC"); + snprintf(SNPARGS(proto, 0), "ether"); } else { int len; @@ -1011,13 +1038,8 @@ ipfw_log(struct ip_fw *f, u_int hlen, st #endif { int ip_off, ip_len; - if (eh != NULL) { /* layer 2 packets are as on the wire */ - ip_off = ntohs(ip->ip_off); - ip_len = ntohs(ip->ip_len); - } else { - ip_off = ip->ip_off; - ip_len = ip->ip_len; - } + ip_off = ip->ip_off; + ip_len = ip->ip_len; if (ip_off & (IP_MF | IP_OFFMASK)) snprintf(SNPARGS(fragment, 0), " (frag %d:%d@%d%s)", @@ -1244,7 +1266,21 @@ next: if (q == NULL) goto done; /* q = NULL, not found */ - if ( prev != NULL) { /* found and not in front */ + /* + * Only check {src,dst}_ether if it was specified in rule and packet + * mbuf has mtag_ether_header. + */ + if (dir == MATCH_NONE || + !ether_addr_allow_dyn(&q->id.src_ether, + (dir == MATCH_FORWARD ? &pkt->src_ether : &pkt->dst_ether)) || + !ether_addr_allow_dyn(&q->id.dst_ether, + (dir == MATCH_FORWARD ? &pkt->dst_ether : &pkt->src_ether))) { + q = NULL; + dir = MATCH_NONE; + goto done; + } + + if (prev != NULL) { /* found and not in front */ prev->next = q->next; q->next = V_ipfw_dyn_v[i]; V_ipfw_dyn_v[i] = q; @@ -1370,7 +1406,7 @@ realloc_dynamic_table(void) * - "parent" rules for the above (O_LIMIT_PARENT). */ static ipfw_dyn_rule * -add_dyn_rule(struct ipfw_flow_id *id, u_int8_t dyn_type, struct ip_fw *rule) +add_dyn_rule(struct ipfw_flow_id *id, u_int8_t dyn_type, struct ip_fw *rule, uint32_t stateopts) { INIT_VNET_IPFW(curvnet); ipfw_dyn_rule *r; @@ -1403,6 +1439,10 @@ add_dyn_rule(struct ipfw_flow_id *id, u_ } r->id = *id; + if ((stateopts & IP_FW_STATEOPT_ETHER) == 0) { + r->id.src_ether.flags = 0; + r->id.dst_ether.flags = 0; + } r->expire = time_uptime + V_dyn_syn_lifetime; r->rule = rule; r->dyn_type = dyn_type; @@ -1426,7 +1466,7 @@ add_dyn_rule(struct ipfw_flow_id *id, u_ * If the lookup fails, then install one. */ static ipfw_dyn_rule * -lookup_dyn_parent(struct ipfw_flow_id *pkt, struct ip_fw *rule) +lookup_dyn_parent(struct ipfw_flow_id *pkt, struct ip_fw *rule, uint32_t stateopts) { INIT_VNET_IPFW(curvnet); ipfw_dyn_rule *q; @@ -1459,7 +1499,7 @@ lookup_dyn_parent(struct ipfw_flow_id *p return q; } } - return add_dyn_rule(pkt, O_LIMIT_PARENT, rule); + return add_dyn_rule(pkt, O_LIMIT_PARENT, rule, stateopts); } /** @@ -1469,7 +1509,7 @@ lookup_dyn_parent(struct ipfw_flow_id *p * session limitations are enforced. */ static int -install_state(struct ip_fw *rule, ipfw_insn_limit *cmd, +install_state(struct ip_fw *rule, uint32_t stateopts, ipfw_insn_limit *cmd, struct ip_fw_args *args, uint32_t tablearg) { INIT_VNET_IPFW(curvnet); @@ -1517,7 +1557,7 @@ install_state(struct ip_fw *rule, ipfw_i switch (cmd->o.opcode) { case O_KEEP_STATE: /* bidir rule */ - add_dyn_rule(&args->f_id, O_KEEP_STATE, rule); + add_dyn_rule(&args->f_id, O_KEEP_STATE, rule, stateopts); break; case O_LIMIT: { /* limit number of sessions */ @@ -1558,7 +1598,7 @@ install_state(struct ip_fw *rule, ipfw_i id.src_port = args->f_id.src_port; if (limit_mask & DYN_DST_PORT) id.dst_port = args->f_id.dst_port; - if ((parent = lookup_dyn_parent(&id, rule)) == NULL) { + if ((parent = lookup_dyn_parent(&id, rule, stateopts)) == NULL) { printf("ipfw: %s: add parent failed\n", __func__); IPFW_DYN_UNLOCK(); return (1); @@ -1605,7 +1645,7 @@ install_state(struct ip_fw *rule, ipfw_i return (1); } } - add_dyn_rule(&args->f_id, O_LIMIT, (struct ip_fw *)parent); + add_dyn_rule(&args->f_id, O_LIMIT, (struct ip_fw *)parent, stateopts); break; } default: @@ -1725,22 +1765,7 @@ static void send_reject(struct ip_fw_args *args, int code, int ip_len, struct ip *ip) { -#if 0 - /* XXX When ip is not guaranteed to be at mtod() we will - * need to account for this */ - * The mbuf will however be thrown away so we can adjust it. - * Remember we did an m_pullup on it already so we - * can make some assumptions about contiguousness. - */ - if (args->L3offset) - m_adj(m, args->L3offset); -#endif if (code != ICMP_REJECT_RST) { /* Send an ICMP unreach */ - /* We need the IP header in host order for icmp_error(). */ - if (args->eh != NULL) { - ip->ip_len = ntohs(ip->ip_len); - ip->ip_off = ntohs(ip->ip_off); - } icmp_error(args->m, ICMP_UNREACH, code, 0L, 0); } else if (args->f_id.proto == IPPROTO_TCP) { struct tcphdr *const tcp = @@ -1807,86 +1832,149 @@ lookup_next_rule(struct ip_fw *me, u_int return rule; } +static void +init_table_entry_addr(struct table_entry_addr *addr, struct table_entry_addr *mask, + in_addr_t in_addr, uint8_t mlen, ipfw_ether_addr *ether_addr) +{ + addr->len = mask->len = sizeof(struct table_entry_addr); + mask->in_addr = htonl(mlen ? ~((1 << (32 - mlen)) - 1) : 0); + addr->in_addr = in_addr & mask->in_addr; + if (ether_addr && (ether_addr->flags & IPFW_EA_CHECK)) { + if (ether_addr->flags & IPFW_EA_MULTICAST) { + bzero(addr->ether_addr.octet, ETHER_ADDR_LEN); + addr->ether_addr.octet[0] = 0x01; + bzero(mask->ether_addr.octet, ETHER_ADDR_LEN); + mask->ether_addr.octet[0] = 0x01; + } else { + memcpy(addr->ether_addr.octet, ether_addr->octet, ETHER_ADDR_LEN); + memset(mask->ether_addr.octet, 0xff, ETHER_ADDR_LEN); + } + } else { + /* set any ether addr */ + bzero(addr->ether_addr.octet, ETHER_ADDR_LEN); + memset(mask->ether_addr.octet, 0xff, ETHER_ADDR_LEN); + } +} + +static __inline struct table_entry * +__rn_to_table_entry(struct radix_node *_rn, int off) +{ + char *rn = (char*) _rn; + + if (rn == NULL) + return NULL; + return (struct table_entry*)(rn - off); + +} + +#define RN_TO_ENT(e, r) (__rn_to_table_entry(e, __offsetof(struct table_entry, r))) + +static __inline void +release_table_entry(struct ipfw_table_head *th, struct table_entry *ent) +{ + IPFW_WLOCK_ASSERT(&V_layer3_chain); /* FIXME */ + + if (refcount_release(&ent->refcnt)) { + if (ent->in_rn[0].rn_flags) + th->in_rnh->rnh_deladdr(&ent->addr, &ent->mask, th->in_rnh); + free(ent, M_IPFW_TBL); + } +} + static int add_table_entry(struct ip_fw_chain *ch, uint16_t tbl, in_addr_t addr, - uint8_t mlen, uint32_t value) + uint8_t mlen, ipfw_ether_addr *ether_addr, uint32_t value) { INIT_VNET_IPFW(curvnet); - struct radix_node_head *rnh; - struct table_entry *ent; - struct radix_node *rn; + struct ipfw_table_head *th; + struct table_entry *ent, *in_ent; if (tbl >= IPFW_TABLES_MAX) return (EINVAL); - rnh = ch->tables[tbl]; + th = &ch->tables[tbl]; ent = malloc(sizeof(*ent), M_IPFW_TBL, M_NOWAIT | M_ZERO); if (ent == NULL) return (ENOMEM); + refcount_init(&ent->refcnt, 1); ent->value = value; - ent->addr.sin_len = ent->mask.sin_len = 8; - ent->mask.sin_addr.s_addr = htonl(mlen ? ~((1 << (32 - mlen)) - 1) : 0); - ent->addr.sin_addr.s_addr = addr & ent->mask.sin_addr.s_addr; + init_table_entry_addr(&ent->addr, &ent->mask, addr, mlen, ether_addr); IPFW_WLOCK(ch); - rn = rnh->rnh_addaddr(&ent->addr, &ent->mask, rnh, (void *)ent); - if (rn == NULL) { + if (th->ether_rnh->rnh_addaddr(&ent->addr, &ent->mask, th->ether_rnh, + ent->ether_rn) == NULL) { IPFW_WUNLOCK(ch); free(ent, M_IPFW_TBL); return (EEXIST); } + in_ent = RN_TO_ENT(th->in_rnh->rnh_lookup(&ent->addr, &ent->mask, th->in_rnh), + in_rn); + if (in_ent == NULL) { + in_ent = RN_TO_ENT(th->in_rnh->rnh_addaddr(&ent->addr, &ent->mask, + th->in_rnh, ent->in_rn), in_rn); + if (in_ent == NULL) { + th->ether_rnh->rnh_deladdr(&ent->addr, &ent->mask, th->ether_rnh); + IPFW_WUNLOCK(ch); + free(ent, M_IPFW_TBL); + return (EEXIST); + } + } + refcount_acquire(&in_ent->refcnt); IPFW_WUNLOCK(ch); return (0); } +static __inline int +delete_table_entry_rn(struct ipfw_table_head *th, void *addr, void *mask) +{ + struct table_entry *ent, *in_ent; + + ent = RN_TO_ENT(th->ether_rnh->rnh_deladdr(addr, mask, th->ether_rnh), + ether_rn); + if (ent == NULL) + return (ESRCH); + in_ent = RN_TO_ENT(th->in_rnh->rnh_lookup(&ent->addr, &ent->mask, th->in_rnh), + in_rn); + release_table_entry(th, in_ent); + release_table_entry(th, ent); + return (0); +} + static int del_table_entry(struct ip_fw_chain *ch, uint16_t tbl, in_addr_t addr, - uint8_t mlen) + uint8_t mlen, ipfw_ether_addr *ether_addr) { - struct radix_node_head *rnh; - struct table_entry *ent; - struct sockaddr_in sa, mask; + struct ipfw_table_head *th; + struct table_entry_addr sa, mask; + int err; if (tbl >= IPFW_TABLES_MAX) return (EINVAL); - rnh = ch->tables[tbl]; - sa.sin_len = mask.sin_len = 8; - mask.sin_addr.s_addr = htonl(mlen ? ~((1 << (32 - mlen)) - 1) : 0); - sa.sin_addr.s_addr = addr & mask.sin_addr.s_addr; + th = &ch->tables[tbl]; + init_table_entry_addr(&sa, &mask, addr, mlen, ether_addr); IPFW_WLOCK(ch); - ent = (struct table_entry *)rnh->rnh_deladdr(&sa, &mask, rnh); - if (ent == NULL) { - IPFW_WUNLOCK(ch); - return (ESRCH); - } + err = delete_table_entry_rn(th, &sa, &mask); IPFW_WUNLOCK(ch); - free(ent, M_IPFW_TBL); - return (0); + return (err); } static int flush_table_entry(struct radix_node *rn, void *arg) { - struct radix_node_head * const rnh = arg; - struct table_entry *ent; - - ent = (struct table_entry *) - rnh->rnh_deladdr(rn->rn_key, rn->rn_mask, rnh); - if (ent != NULL) - free(ent, M_IPFW_TBL); + delete_table_entry_rn((struct ipfw_table_head *)arg, rn->rn_key, rn->rn_mask); return (0); } static int flush_table(struct ip_fw_chain *ch, uint16_t tbl) { - struct radix_node_head *rnh; + struct ipfw_table_head *th; IPFW_WLOCK_ASSERT(ch); if (tbl >= IPFW_TABLES_MAX) return (EINVAL); - rnh = ch->tables[tbl]; - KASSERT(rnh != NULL, ("NULL IPFW table")); - rnh->rnh_walktree(rnh, flush_table_entry, rnh); + th = &ch->tables[tbl]; + KASSERT(th->ether_rnh != NULL, ("NULL IPFW table")); + th->ether_rnh->rnh_walktree(th->ether_rnh, flush_table_entry, th); return (0); } @@ -1908,7 +1996,12 @@ init_tables(struct ip_fw_chain *ch) uint16_t j; for (i = 0; i < IPFW_TABLES_MAX; i++) { - if (!rn_inithead((void **)&ch->tables[i], 32)) { + struct ipfw_table_head *th = &ch->tables[i]; + + if (!rn_inithead((void**)&(th->in_rnh), + __offsetof(struct table_entry_addr, in_addr) * 8) || + !rn_inithead((void**)&(th->ether_rnh), + __offsetof(struct table_entry_addr, ether_addr) * 8)) { for (j = 0; j < i; j++) { (void) flush_table(ch, j); } @@ -1920,18 +2013,34 @@ init_tables(struct ip_fw_chain *ch) static int lookup_table(struct ip_fw_chain *ch, uint16_t tbl, in_addr_t addr, - uint32_t *val) + ipfw_ether_addr *ether_addr, uint32_t *val) { - struct radix_node_head *rnh; - struct table_entry *ent; - struct sockaddr_in sa; + struct ipfw_table_head *th; + struct table_entry_addr sa, mask; + struct table_entry *ent = NULL; + const int has_ether_addr = (ether_addr && (ether_addr->flags & IPFW_EA_CHECK)); + const int has_in_addr = (addr != INADDR_ANY); if (tbl >= IPFW_TABLES_MAX) return (0); - rnh = ch->tables[tbl]; - sa.sin_len = 8; - sa.sin_addr.s_addr = addr; - ent = (struct table_entry *)(rnh->rnh_lookup(&sa, NULL, rnh)); + th = &ch->tables[tbl]; + init_table_entry_addr(&sa, &mask, addr, (addr == INADDR_ANY ? 0 : 32), ether_addr); + if (has_ether_addr) { + ent = RN_TO_ENT(th->ether_rnh->rnh_lookup(&sa, NULL, th->ether_rnh), + ether_rn); + if (ent == NULL && has_in_addr) { + /* + * Try to lookup entry with any (zero) ether_addr. It's + * handled this way not to deal with non-continuous + * masks in radix trees. + */ + bzero(sa.ether_addr.octet, ETHER_ADDR_LEN); + ent = RN_TO_ENT(th->ether_rnh->rnh_lookup(&sa, NULL, th->ether_rnh), + ether_rn); + } + } else if (has_in_addr) { + ent = RN_TO_ENT(th->in_rnh->rnh_lookup(&sa, NULL, th->in_rnh), in_rn); + } if (ent != NULL) { *val = ent->value; return (1); @@ -1951,20 +2060,20 @@ count_table_entry(struct radix_node *rn, static int count_table(struct ip_fw_chain *ch, uint32_t tbl, uint32_t *cnt) { - struct radix_node_head *rnh; + struct ipfw_table_head *th; if (tbl >= IPFW_TABLES_MAX) return (EINVAL); - rnh = ch->tables[tbl]; + th = &ch->tables[tbl]; *cnt = 0; - rnh->rnh_walktree(rnh, count_table_entry, cnt); + th->ether_rnh->rnh_walktree(th->ether_rnh, count_table_entry, cnt); return (0); } static int dump_table_entry(struct radix_node *rn, void *arg) { - struct table_entry * const n = (struct table_entry *)rn; + struct table_entry * const n = RN_TO_ENT(rn, ether_rn); ipfw_table * const tbl = arg; ipfw_table_entry *ent; @@ -1972,11 +2081,23 @@ dump_table_entry(struct radix_node *rn, return (1); ent = &tbl->ent[tbl->cnt]; ent->tbl = tbl->tbl; - if (in_nullhost(n->mask.sin_addr)) + if (n->mask.in_addr == INADDR_ANY) ent->masklen = 0; else - ent->masklen = 33 - ffs(ntohl(n->mask.sin_addr.s_addr)); - ent->addr = n->addr.sin_addr.s_addr; + ent->masklen = 33 - ffs(ntohl(n->mask.in_addr)); + ent->addr = n->addr.in_addr; + memcpy(ent->ether_addr.octet, n->addr.ether_addr.octet, ETHER_ADDR_LEN); + ent->ether_addr.flags = 0; + +#define __ETHER_IS_ZERO(a) (((a)[0] | (a)[1] | (a)[2] | (a)[3] | (a)[4] | (a)[5]) == 0) + if (!__ETHER_IS_ZERO(n->mask.ether_addr.octet) && + !__ETHER_IS_ZERO(n->addr.ether_addr.octet)) { + ent->ether_addr.flags = IPFW_EA_CHECK; + /* Should be fixed after adding new flags */ + if (n->mask.ether_addr.octet[0] == 0x01) + ent->ether_addr.flags |= IPFW_EA_MULTICAST; + } +#undef __ETHER_IS_ZERO ent->value = n->value; tbl->cnt++; return (0); @@ -1985,13 +2106,13 @@ dump_table_entry(struct radix_node *rn, static int dump_table(struct ip_fw_chain *ch, ipfw_table *tbl) { - struct radix_node_head *rnh; + struct ipfw_table_head *th; if (tbl->tbl >= IPFW_TABLES_MAX) return (EINVAL); - rnh = ch->tables[tbl->tbl]; + th = &ch->tables[tbl->tbl]; tbl->cnt = 0; - rnh->rnh_walktree(rnh, dump_table_entry, tbl); + th->ether_rnh->rnh_walktree(th->ether_rnh, dump_table_entry, tbl); return (0); } @@ -2099,10 +2220,9 @@ check_uidgid(ipfw_insn_u32 *insn, int pr * Parameters: * * args->m (in/out) The packet; we set to NULL when/if we nuke it. - * Starts with the IP header. - * args->eh (in) Mac header if present, or NULL for layer3 packet. - * args->L3offset Number of bytes bypassed if we came from L2. - * e.g. often sizeof(eh) ** NOTYET ** + * Starts with the IP header or with layer2 header if IP_FW_ARGS_LAYER2 + * is set in args->flags. + * args->eh (in) ethernet header if present, or NULL for layer3 packet. * args->oif Outgoing interface, or NULL if packet is incoming. * The incoming interface is in the mbuf. (in) * args->divert_rule (in/out) @@ -2113,6 +2233,7 @@ check_uidgid(ipfw_insn_u32 *insn, int pr * args->next_hop Socket we are forwarding to (out). * args->f_id Addresses grabbed from the packet (out) * args->cookie a cookie depending on rule action + * args->flags Flags * * Return value: * @@ -2139,10 +2260,8 @@ ipfw_chk(struct ip_fw_args *args) * the implementation of the various instructions to make sure * that they still work. * - * args->eh The MAC header. It is non-null for a layer2 + * args->eh The ethernet header. It is non-null for a layer2 * packet, it is NULL for a layer-3 packet. - * **notyet** - * args->L3offset Offset in the packet to the L3 (IP or equiv.) header. * * m | args->m Pointer to the mbuf, as received from the caller. * It may change if ipfw_chk() does an m_pullup, or if it @@ -2150,12 +2269,10 @@ ipfw_chk(struct ip_fw_args *args) * XXX This has to change, so that ipfw_chk() never modifies * or consumes the buffer. * ip is the beginning of the ip(4 or 6) header. - * Calculated by adding the L3offset to the start of data. - * (Until we start using L3offset, the packet is * supposed to start with the ip header). */ struct mbuf *m = args->m; - struct ip *ip = mtod(m, struct ip *); + struct ip *ip = NULL; /* * For rules which contain uid/gid or jail constraints, cache @@ -2251,6 +2368,9 @@ ipfw_chk(struct ip_fw_args *args) if (m->m_flags & M_SKIP_FIREWALL) return (IP_FW_PASS); /* accept */ + if ((args->flags & IP_FW_ARGS_LAYER2) == 0) + ip = mtod(m, struct ip *); + pktlen = m->m_pkthdr.len; args->f_id.fib = M_GETFIB(m); /* note mbuf not altered) */ proto = args->f_id.proto = 0; /* mark f_id invalid */ @@ -2276,12 +2396,22 @@ do { \ /* * if we have an ether header, */ - if (args->eh) + if (args->eh != NULL) { etype = ntohs(args->eh->ether_type); + memcpy(args->f_id.src_ether.octet, args->eh->ether_shost, + ETHER_ADDR_LEN); + args->f_id.src_ether.flags = IPFW_EA_CHECK; + memcpy(args->f_id.dst_ether.octet, args->eh->ether_dhost, + ETHER_ADDR_LEN); + args->f_id.dst_ether.flags = IPFW_EA_CHECK; + } else { + args->f_id.src_ether.flags = 0; + args->f_id.dst_ether.flags = 0; + } /* Identify IP packets and fill up variables. */ if (pktlen >= sizeof(struct ip6_hdr) && - (args->eh == NULL || etype == ETHERTYPE_IPV6) && ip->ip_v == 6) { + (args->flags & IP_FW_ARGS_LAYER2) == 0 && ip->ip_v == 6) { struct ip6_hdr *ip6 = (struct ip6_hdr *)ip; is_ipv6 = 1; args->f_id.addr_type = 6; @@ -2446,7 +2576,7 @@ do { \ args->f_id.dst_ip = 0; args->f_id.flow_id6 = ntohl(ip6->ip6_flow); } else if (pktlen >= sizeof(struct ip) && - (args->eh == NULL || etype == ETHERTYPE_IP) && ip->ip_v == 4) { + (args->flags & IP_FW_ARGS_LAYER2) == 0 && ip->ip_v == 4) { is_ipv4 = 1; hlen = ip->ip_hl << 2; args->f_id.addr_type = 4; @@ -2457,13 +2587,8 @@ do { \ proto = ip->ip_p; src_ip = ip->ip_src; dst_ip = ip->ip_dst; - if (args->eh != NULL) { /* layer 2 packets are as on the wire */ - offset = ntohs(ip->ip_off) & IP_OFFMASK; - ip_len = ntohs(ip->ip_len); - } else { - offset = ip->ip_off & IP_OFFMASK; - ip_len = ip->ip_len; - } + offset = ip->ip_off & IP_OFFMASK; + ip_len = ip->ip_len; pktlen = ip_len < pktlen ? ip_len : pktlen; if (offset == 0) { @@ -2494,6 +2619,13 @@ do { \ ip = mtod(m, struct ip *); args->f_id.src_ip = ntohl(src_ip.s_addr); args->f_id.dst_ip = ntohl(dst_ip.s_addr); + } else if (pktlen >= ETHER_HDR_LEN && args->eh != NULL && + (args->flags & IP_FW_ARGS_LAYER2)) { + void *hdr; + switch (ntohs(args->eh->ether_type)) { + case ETHERTYPE_ARP: + PULLUP_TO(ETHER_HDR_LEN, hdr, struct arphdr); + } } #undef PULLUP_TO if (proto) { /* we may have port numbers, store them */ @@ -2529,7 +2661,7 @@ do { \ int skipto = mtag ? divert_cookie(mtag) : 0; f = chain->rules; - if (args->eh == NULL && skipto != 0) { + if ((args->flags & IP_FW_ARGS_LAYER2) == 0 && skipto != 0) { if (skipto >= IPFW_DEFAULT_RULE) { IPFW_RUNLOCK(chain); return (IP_FW_DENY); /* invalid */ @@ -2555,6 +2687,7 @@ do { \ for (; f; f = f->next) { ipfw_insn *cmd; uint32_t tablearg = 0; + uint32_t stateopts = 0; int l, cmdlen, skip_or; /* skip rest of OR block */ again: @@ -2600,11 +2733,6 @@ check_body: match = 1; break; - case O_FORWARD_MAC: - printf("ipfw: opcode %d unimplemented\n", - cmd->opcode); - break; - case O_GID: case O_UID: case O_JAIL: @@ -2641,23 +2769,20 @@ check_body: m->m_pkthdr.rcvif, (ipfw_insn_if *)cmd); break; - case O_MACADDR2: - if (args->eh != NULL) { /* have MAC header */ - u_int32_t *want = (u_int32_t *) - ((ipfw_insn_mac *)cmd)->addr; - u_int32_t *mask = (u_int32_t *) - ((ipfw_insn_mac *)cmd)->mask; - u_int32_t *hdr = (u_int32_t *)args->eh; - - match = - ( want[0] == (hdr[0] & mask[0]) && - want[1] == (hdr[1] & mask[1]) && - want[2] == (hdr[2] & mask[2]) ); + case O_ETHER_SRC: + case O_ETHER_DST: + if (args->eh != NULL) { /* have ethernet header */ + ipfw_ether_addr *want = + &(((ipfw_insn_ether *)cmd)->ether); + ipfw_ether_addr *a = (cmd->opcode == O_ETHER_SRC ? + &args->f_id.src_ether : + &args->f_id.dst_ether); + match = ether_addr_allow(want, a); } break; - case O_MAC_TYPE: - if (args->eh != NULL) { + case O_ETHER_TYPE: + if (args->eh != NULL) { /* have ethernet header */ u_int16_t *p = ((ipfw_insn_u16 *)cmd)->ports; int i; @@ -2678,7 +2803,7 @@ check_body: break; case O_LAYER2: - match = (args->eh != NULL); + match = ((args->flags & IP_FW_ARGS_LAYER2) != 0); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Jan 26 06:13:09 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE204106564A; Mon, 26 Jan 2009 06:13:09 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ADBD88FC18; Mon, 26 Jan 2009 06:13:09 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0Q6D9sS038607; Mon, 26 Jan 2009 06:13:09 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0Q6D96q038605; Mon, 26 Jan 2009 06:13:09 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200901260613.n0Q6D96q038605@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Mon, 26 Jan 2009 06:13:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187705 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Jan 2009 06:13:10 -0000 Author: gonzo Date: Mon Jan 26 06:13:09 2009 New Revision: 187705 URL: http://svn.freebsd.org/changeset/base/187705 Log: - Rename RESET-related registers - Add PCI registers Modified: projects/mips/sys/mips/atheros/ar71xx_machdep.c projects/mips/sys/mips/atheros/ar71xxreg.h Modified: projects/mips/sys/mips/atheros/ar71xx_machdep.c ============================================================================== --- projects/mips/sys/mips/atheros/ar71xx_machdep.c Mon Jan 26 05:44:40 2009 (r187704) +++ projects/mips/sys/mips/atheros/ar71xx_machdep.c Mon Jan 26 06:13:09 2009 (r187705) @@ -74,7 +74,7 @@ platform_reset(void) { uint32_t reg = ATH_READ_REG(AR71XX_RST_RESET); - ATH_WRITE_REG(AR71XX_RST_RESET, reg | RST_RESET_FULL_CHIP_RESET); + ATH_WRITE_REG(AR71XX_RST_RESET, reg | RST_RESET_FULL_CHIP); /* Wait for reset */ while(1) ; Modified: projects/mips/sys/mips/atheros/ar71xxreg.h ============================================================================== --- projects/mips/sys/mips/atheros/ar71xxreg.h Mon Jan 26 05:44:40 2009 (r187704) +++ projects/mips/sys/mips/atheros/ar71xxreg.h Mon Jan 26 06:13:09 2009 (r187705) @@ -32,9 +32,75 @@ #define ATH_WRITE_REG(reg, val) \ *((volatile uint32_t *)MIPS_PHYS_TO_KSEG1((reg))) = (val) -#define AR71XX_UART_ADDR 0x18020000 +/* PCI region */ +#define AR71XX_PCI_MEM_BASE 0x10000000 +/* + * PCI mem windows is 0x08000000 bytes long but we exclude control + * region from the resource manager + */ +#define AR71XX_PCI_MEM_SIZE 0x07000000 +#define AR71XX_PCI_IRQ_START 0 +#define AR71XX_PCI_IRQ_END 2 + +/* PCI config registers */ +#define AR71XX_PCI_LCONF_CMD 0x17010000 +#define PCI_LCONF_CMD_READ 0x00000000 +#define PCI_LCONF_CMD_WRITE 0x00010000 +#define AR71XX_PCI_LCONF_WRITE_DATA 0x17010004 +#define AR71XX_PCI_LCONF_READ_DATA 0x17010008 +#define AR71XX_PCI_CONF_ADDR 0x1701000C +#define AR71XX_PCI_CONF_CMD 0x17010010 +#define PCI_CONF_CMD_READ 0x0000000A +#define PCI_CONF_CMD_WRITE 0x0000000B +#define AR71XX_PCI_CONF_WRITE_DATA 0x17010014 +#define AR71XX_PCI_CONF_READ_DATA 0x17010018 +#define AR71XX_PCI_ERROR 0x1701001C +#define AR71XX_PCI_ERROR_ADDR 0x17010020 +#define AR71XX_PCI_AHB_ERROR 0x17010024 +#define AR71XX_PCI_AHB_ERROR_ADDR 0x17010028 + +/* APB region */ +/* DDR registers */ +#define AR71XX_DDR_CONFIG 0x18000000 +#define AR71XX_DDR_CONFIG2 0x18000004 +#define AR71XX_DDR_MODE_REGISTER 0x18000008 +#define AR71XX_DDR_EXT_MODE_REGISTER 0x1800000C +#define AR71XX_DDR_CONTROL 0x18000010 +#define AR71XX_DDR_REFRESH 0x18000014 +#define AR71XX_DDR_RD_DATA_THIS_CYCLE 0x18000018 +#define AR71XX_TAP_CONTROL0 0x1800001C +#define AR71XX_TAP_CONTROL1 0x18000020 +#define AR71XX_TAP_CONTROL2 0x18000024 +#define AR71XX_TAP_CONTROL3 0x18000028 +#define AR71XX_PCI_WINDOW0 0x1800007C +#define AR71XX_PCI_WINDOW1 0x18000080 +#define AR71XX_PCI_WINDOW2 0x18000084 +#define AR71XX_PCI_WINDOW3 0x18000088 +#define AR71XX_PCI_WINDOW4 0x1800008C +#define AR71XX_PCI_WINDOW5 0x18000090 +#define AR71XX_PCI_WINDOW6 0x18000094 +#define AR71XX_PCI_WINDOW7 0x18000098 +#define AR71XX_WB_FLUSH_GE0 0x1800009C +#define AR71XX_WB_FLUSH_GE1 0x180000A0 +#define AR71XX_WB_FLUSH_USB 0x180000A4 +#define AR71XX_WB_FLUSH_PCI 0x180000A8 + +/* + * Values for PCI_WINDOW_X registers + */ +#define PCI_WINDOW0_ADDR 0x10000000 +#define PCI_WINDOW1_ADDR 0x11000000 +#define PCI_WINDOW2_ADDR 0x12000000 +#define PCI_WINDOW3_ADDR 0x13000000 +#define PCI_WINDOW4_ADDR 0x14000000 +#define PCI_WINDOW5_ADDR 0x15000000 +#define PCI_WINDOW6_ADDR 0x16000000 +#define PCI_WINDOW7_ADDR 0x17000000 +/* This value enables acces to PCI config registers */ +#define PCI_WINDOW7_CONF_ADDR 0x07000000 + +#define AR71XX_UART_ADDR 0x18020000 -/* APB registers */ /* * APB interrupt status and mask register and interrupt bit numbers for */ @@ -49,8 +115,14 @@ #define MISC_INTR_OHCI 6 #define MISC_INTR_DMA 7 +#define AR71XX_PCI_INTR_STATUS 0x18060018 +#define AR71XX_PCI_INTR_MASK 0x1806001C +#define PCI_INTR_CORE (1 << 4) + #define AR71XX_RST_RESET 0x18060024 -#define RST_RESET_CPU_COLD_RESET (1 << 20) /* Cold reset */ -#define RST_RESET_FULL_CHIP_RESET (1 << 24) /* Same as pulling +#define RST_RESET_PCI_CORE (1 << 0) +#define RST_RESET_PCI_BUS (1 << 1) +#define RST_RESET_CPU_COLD (1 << 20) /* Cold reset */ +#define RST_RESET_FULL_CHIP (1 << 24) /* Same as pulling the reset pin */ #endif /* _AR71XX_REG_H_ */ From owner-svn-src-projects@FreeBSD.ORG Mon Jan 26 06:14:42 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C68C51065673; Mon, 26 Jan 2009 06:14:42 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B49E58FC14; Mon, 26 Jan 2009 06:14:42 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0Q6Egu7038688; Mon, 26 Jan 2009 06:14:42 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0Q6EgXs038684; Mon, 26 Jan 2009 06:14:42 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200901260614.n0Q6EgXs038684@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Mon, 26 Jan 2009 06:14:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187706 - in projects/mips/sys/mips: atheros conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Jan 2009 06:14:43 -0000 Author: gonzo Date: Mon Jan 26 06:14:42 2009 New Revision: 187706 URL: http://svn.freebsd.org/changeset/base/187706 Log: - Add ar71xx PCI bridge implementation and link it to the build Added: projects/mips/sys/mips/atheros/ar71xx_pci.c Modified: projects/mips/sys/mips/atheros/files.ar71xx projects/mips/sys/mips/conf/AR71XX projects/mips/sys/mips/conf/AR71XX.hints Added: projects/mips/sys/mips/atheros/ar71xx_pci.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/mips/sys/mips/atheros/ar71xx_pci.c Mon Jan 26 06:14:42 2009 (r187706) @@ -0,0 +1,429 @@ +/*- + * Copyright (c) 2009, Oleksandr Tymoshenko + * 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 unmodified, 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include +#include "pcib_if.h" + +#include "mips/atheros/ar71xxreg.h" + +#undef AR71XX_PCI_DEBUG +#ifdef AR71XX_PCI_DEBUG +#define dprintf printf +#else +#define dprintf(x, arg...) +#endif + +struct ar71xx_pci_softc { + device_t sc_dev; + + int sc_busno; + struct rman sc_mem_rman; + struct rman sc_irq_rman; + + struct resource *sc_irq; + void *sc_ih; +}; + +/* + * get bitmask for bytes of interest: + * 0 - we want this byte, 1 - ignore it. e.g: we read 1 byte + * from register 7. Bitmask would be: 0111 + */ +static uint32_t +ar71xx_get_bytes_to_read(int reg, int bytes) +{ + uint32_t bytes_to_read = 0; + if ((bytes % 4) == 0) + bytes_to_read = 0; + else if ((bytes % 4) == 1) + bytes_to_read = (~(1 << (reg % 4))) & 0xf; + else if ((bytes % 4) == 2) + bytes_to_read = (~(3 << (reg % 4))) & 0xf; + else + panic("%s: wrong combination", __func__); + + return (bytes_to_read); +} + +static int +ar71xx_pci_check_bus_error(void) +{ + uint32_t error, addr, has_errors = 0; + error = ATH_READ_REG(AR71XX_PCI_ERROR) & 0x3; + dprintf("%s: PCI error = %02x\n", __func__, error); + if (error) { + addr = ATH_READ_REG(AR71XX_PCI_ERROR_ADDR); + + /* Do not report it yet */ +#if 0 + printf("PCI bus error %d at addr 0x%08x\n", error, addr); +#endif + ATH_WRITE_REG(AR71XX_PCI_ERROR, error); + has_errors = 1; + } + + error = ATH_READ_REG(AR71XX_PCI_AHB_ERROR) & 0x1; + dprintf("%s: AHB error = %02x\n", __func__, error); + if (error) { + addr = ATH_READ_REG(AR71XX_PCI_AHB_ERROR_ADDR); + /* Do not report it yet */ +#if 0 + printf("AHB bus error %d at addr 0x%08x\n", error, addr); +#endif + ATH_WRITE_REG(AR71XX_PCI_AHB_ERROR, error); + has_errors = 1; + } + + return (has_errors); +} + +static uint32_t +ar71xx_pci_make_addr(int bus, int slot, int func, int reg) +{ + if (bus == 0) { + return ((1 << slot) | (func << 8) | (reg & ~3)); + } else { + return ((bus << 16) | (slot << 11) | (func << 8) + | (reg & ~3) | 1); + } +} + +static int +ar71xx_pci_conf_setup(int bus, int slot, int func, int reg, int bytes, + uint32_t cmd) +{ + uint32_t addr = ar71xx_pci_make_addr(bus, slot, func, (reg & ~3)); + cmd |= (ar71xx_get_bytes_to_read(reg, bytes) << 4); + + ATH_WRITE_REG(AR71XX_PCI_CONF_ADDR, addr); + ATH_WRITE_REG(AR71XX_PCI_CONF_CMD, cmd); + + dprintf("%s: tag (%x, %x, %x) %d/%d addr=%08x, cmd=%08x\n", __func__, + bus, slot, func, reg, bytes, addr, cmd); + + return ar71xx_pci_check_bus_error(); +} + +static uint32_t +ar71xx_pci_read_config(device_t dev, int bus, int slot, int func, int reg, + int bytes) +{ + uint32_t data; + uint32_t cmd, shift, mask; + + /* register access is 32-bit aligned */ + shift = (reg & 3) * 8; + if (shift) + mask = (1 << shift) - 1; + else + mask = 0xffffffff; + + dprintf("%s: tag (%x, %x, %x) reg %d(%d)\n", __func__, bus, slot, + func, reg, bytes); + + if ((bus == 0) && (slot == 0) && (func == 0)) { + cmd = PCI_LCONF_CMD_READ | (reg & ~3); + ATH_WRITE_REG(AR71XX_PCI_LCONF_CMD, cmd); + data = ATH_READ_REG(AR71XX_PCI_LCONF_READ_DATA); + } else { + if (ar71xx_pci_conf_setup(bus, slot, func, reg, bytes, + PCI_CONF_CMD_READ) == 0) + data = ATH_READ_REG(AR71XX_PCI_CONF_READ_DATA); + else + data = -1; + } + + /* get request bytes from 32-bit word */ + data = (data >> shift) & mask; + + dprintf("%s: read 0x%x\n", __func__, data); + + return (data); +} + +static void +ar71xx_pci_write_config(device_t dev, int bus, int slot, int func, int reg, + uint32_t data, int bytes) +{ + uint32_t cmd; + + dprintf("%s: tag (%x, %x, %x) reg %d(%d)\n", __func__, bus, slot, + func, reg, bytes); + + data = data << (8*(reg % 4)); + + if ((bus == 0) && (slot == 0) && (func == 0)) { + cmd = PCI_LCONF_CMD_WRITE | (reg & ~3); + cmd |= ar71xx_get_bytes_to_read(reg, bytes) << 20; + ATH_WRITE_REG(AR71XX_PCI_LCONF_CMD, cmd); + ATH_WRITE_REG(AR71XX_PCI_LCONF_WRITE_DATA, data); + } else { + if (ar71xx_pci_conf_setup(bus, slot, func, reg, bytes, + PCI_CONF_CMD_WRITE) == 0) + ATH_WRITE_REG(AR71XX_PCI_CONF_WRITE_DATA, data); + } +} + +static int +at71xx_pci_intr(void *v) +{ + panic("Implement me: %s\n", __func__); + return FILTER_HANDLED; +} + +static int +ar71xx_pci_probe(device_t dev) +{ + + return (0); +} + +static int +ar71xx_pci_attach(device_t dev) +{ + int busno = 0; + int rid = 0; + uint32_t reset; + struct ar71xx_pci_softc *sc = device_get_softc(dev); + + sc->sc_mem_rman.rm_type = RMAN_ARRAY; + sc->sc_mem_rman.rm_descr = "ar71xx PCI memory window"; + if (rman_init(&sc->sc_mem_rman) != 0 || + rman_manage_region(&sc->sc_mem_rman, AR71XX_PCI_MEM_BASE, + AR71XX_PCI_MEM_BASE + AR71XX_PCI_MEM_SIZE - 1) != 0) { + panic("ar71xx_pci_attach: failed to set up I/O rman"); + } + + sc->sc_irq_rman.rm_type = RMAN_ARRAY; + sc->sc_irq_rman.rm_descr = "ar71xx PCI IRQs"; + if (rman_init(&sc->sc_irq_rman) != 0 || + rman_manage_region(&sc->sc_irq_rman, AR71XX_PCI_IRQ_START, + AR71XX_PCI_IRQ_END) != 0) + panic("ar71xx_pci_attach: failed to set up IRQ rman"); + + + ATH_WRITE_REG(AR71XX_PCI_INTR_STATUS, 0); + ATH_WRITE_REG(AR71XX_PCI_INTR_MASK, 0); + + /* Hook up our interrupt handler. */ + if ((sc->sc_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, + RF_SHAREABLE | RF_ACTIVE)) == NULL) { + device_printf(dev, "unable to allocate IRQ resource\n"); + return ENXIO; + } + + if ((bus_setup_intr(dev, sc->sc_irq, INTR_TYPE_MISC, + at71xx_pci_intr, NULL, sc, &sc->sc_ih))) { + device_printf(dev, + "WARNING: unable to register interrupt handler\n"); + return ENXIO; + } + + /* reset PCI core and PCI bus */ + reset = ATH_READ_REG(AR71XX_RST_RESET); + reset |= (RST_RESET_PCI_CORE | RST_RESET_PCI_BUS); + ATH_WRITE_REG(AR71XX_RST_RESET, reset); + DELAY(1000); + + reset &= ~(RST_RESET_PCI_CORE | RST_RESET_PCI_BUS); + ATH_WRITE_REG(AR71XX_RST_RESET, reset); + DELAY(1000); + + /* Init PCI windows */ + ATH_WRITE_REG(AR71XX_PCI_WINDOW0, PCI_WINDOW0_ADDR); + ATH_WRITE_REG(AR71XX_PCI_WINDOW1, PCI_WINDOW1_ADDR); + ATH_WRITE_REG(AR71XX_PCI_WINDOW2, PCI_WINDOW2_ADDR); + ATH_WRITE_REG(AR71XX_PCI_WINDOW3, PCI_WINDOW3_ADDR); + ATH_WRITE_REG(AR71XX_PCI_WINDOW4, PCI_WINDOW4_ADDR); + ATH_WRITE_REG(AR71XX_PCI_WINDOW5, PCI_WINDOW5_ADDR); + ATH_WRITE_REG(AR71XX_PCI_WINDOW6, PCI_WINDOW6_ADDR); + ATH_WRITE_REG(AR71XX_PCI_WINDOW7, PCI_WINDOW7_CONF_ADDR); + DELAY(1000); + + ar71xx_pci_check_bus_error(); + + /* Fixup internal PCI bridge */ + ar71xx_pci_write_config(dev, 0, 0, 0, PCIR_COMMAND, + PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN + | PCIM_CMD_SERRESPEN | PCIM_CMD_BACKTOBACK + | PCIM_CMD_PERRESPEN | PCIM_CMD_MWRICEN, 2); + + device_add_child(dev, "pci", busno); + return (bus_generic_attach(dev)); +} + +static int +ar71xx_pci_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) +{ + struct ar71xx_pci_softc *sc = device_get_softc(dev); + + switch (which) { + case PCIB_IVAR_DOMAIN: + *result = 0; + return (0); + case PCIB_IVAR_BUS: + *result = sc->sc_busno; + return (0); + } + + return (ENOENT); +} + +static int +ar71xx_pci_write_ivar(device_t dev, device_t child, int which, uintptr_t result) +{ + struct ar71xx_pci_softc * sc = device_get_softc(dev); + + switch (which) { + case PCIB_IVAR_BUS: + sc->sc_busno = result; + return (0); + } + + return (ENOENT); +} + +static struct resource * +ar71xx_pci_alloc_resource(device_t bus, device_t child, int type, int *rid, + u_long start, u_long end, u_long count, u_int flags) +{ + + struct ar71xx_pci_softc *sc = device_get_softc(bus); + struct resource *rv = NULL; + struct rman *rm; + + switch (type) { + case SYS_RES_IRQ: + rm = &sc->sc_irq_rman; + break; + case SYS_RES_MEMORY: + rm = &sc->sc_mem_rman; + break; + default: + return (NULL); + } + + rv = rman_reserve_resource(rm, start, end, count, flags, child); + + if (rv == NULL) + return (NULL); + + rman_set_rid(rv, *rid); + + if (flags & RF_ACTIVE) { + if (bus_activate_resource(child, type, *rid, rv)) { + rman_release_resource(rv); + return (NULL); + } + } + + return (rv); +} + +static int +ar71xx_pci_teardown_intr(device_t dev, device_t child, struct resource *res, + void *cookie) +{ + + return (intr_event_remove_handler(cookie)); +} + +static int +ar71xx_pci_maxslots(device_t dev) +{ + + return (PCI_SLOTMAX); +} + +static int +ar71xx_pci_route_interrupt(device_t pcib, device_t device, int pin) +{ + + return (pin); +} + +static device_method_t ar71xx_pci_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, ar71xx_pci_probe), + DEVMETHOD(device_attach, ar71xx_pci_attach), + DEVMETHOD(device_shutdown, bus_generic_shutdown), + DEVMETHOD(device_suspend, bus_generic_suspend), + DEVMETHOD(device_resume, bus_generic_resume), + + /* Bus interface */ + DEVMETHOD(bus_print_child, bus_generic_print_child), + DEVMETHOD(bus_read_ivar, ar71xx_pci_read_ivar), + DEVMETHOD(bus_write_ivar, ar71xx_pci_write_ivar), + DEVMETHOD(bus_alloc_resource, ar71xx_pci_alloc_resource), + DEVMETHOD(bus_release_resource, bus_generic_release_resource), + DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), + DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), + DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), + DEVMETHOD(bus_teardown_intr, ar71xx_pci_teardown_intr), + + /* pcib interface */ + DEVMETHOD(pcib_maxslots, ar71xx_pci_maxslots), + DEVMETHOD(pcib_read_config, ar71xx_pci_read_config), + DEVMETHOD(pcib_write_config, ar71xx_pci_write_config), + DEVMETHOD(pcib_route_interrupt, ar71xx_pci_route_interrupt), + + {0, 0} +}; + +static driver_t ar71xx_pci_driver = { + "pcib", + ar71xx_pci_methods, + sizeof(struct ar71xx_pci_softc), +}; + +static devclass_t ar71xx_pci_devclass; + +DRIVER_MODULE(ar71xx_pci, nexus, ar71xx_pci_driver, ar71xx_pci_devclass, 0, 0); Modified: projects/mips/sys/mips/atheros/files.ar71xx ============================================================================== --- projects/mips/sys/mips/atheros/files.ar71xx Mon Jan 26 06:13:09 2009 (r187705) +++ projects/mips/sys/mips/atheros/files.ar71xx Mon Jan 26 06:14:42 2009 (r187706) @@ -1,6 +1,7 @@ # $FreeBSD$ -mips/atheros/ar71xx_machdep.c standard mips/atheros/apb.c standard +mips/atheros/ar71xx_machdep.c standard +mips/atheros/ar71xx_pci.c optional pci mips/atheros/uart_bus_ar71xx.c optional uart mips/atheros/uart_cpu_ar71xx.c optional uart Modified: projects/mips/sys/mips/conf/AR71XX ============================================================================== --- projects/mips/sys/mips/conf/AR71XX Mon Jan 26 06:13:09 2009 (r187705) +++ projects/mips/sys/mips/conf/AR71XX Mon Jan 26 06:14:42 2009 (r187706) @@ -29,6 +29,7 @@ options _KPOSIX_PRIORITY_SCHEDULING #Po options INVARIANTS options INVARIANT_SUPPORT +device pci device uart device loop Modified: projects/mips/sys/mips/conf/AR71XX.hints ============================================================================== --- projects/mips/sys/mips/conf/AR71XX.hints Mon Jan 26 06:13:09 2009 (r187705) +++ projects/mips/sys/mips/conf/AR71XX.hints Mon Jan 26 06:14:42 2009 (r187706) @@ -10,3 +10,7 @@ hint.uart.0.at="apb0" hint.uart.0.maddr=0x18020003 hint.uart.0.msize=0x18 hint.uart.0.irq=3 + +# pci +hint.pcib.0.at="nexus0" +hint.pcib.0.irq=0 From owner-svn-src-projects@FreeBSD.ORG Mon Jan 26 23:15:19 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DEEE4106566B; Mon, 26 Jan 2009 23:15:19 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CE22D8FC14; Mon, 26 Jan 2009 23:15:19 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0QNFJsk065904; Mon, 26 Jan 2009 23:15:19 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0QNFJ6S065903; Mon, 26 Jan 2009 23:15:19 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901262315.n0QNFJ6S065903@svn.freebsd.org> From: Sam Leffler Date: Mon, 26 Jan 2009 23:15:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187744 - projects/vap7/etc X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Jan 2009 23:15:20 -0000 Author: sam Date: Mon Jan 26 23:15:19 2009 New Revision: 187744 URL: http://svn.freebsd.org/changeset/base/187744 Log: merge r187743: ignore DETACH events Modified: projects/vap7/etc/ (props changed) projects/vap7/etc/devd.conf Modified: projects/vap7/etc/devd.conf ============================================================================== --- projects/vap7/etc/devd.conf Mon Jan 26 23:05:50 2009 (r187743) +++ projects/vap7/etc/devd.conf Mon Jan 26 23:15:19 2009 (r187744) @@ -31,18 +31,17 @@ options { # Configure the interface on attach. Due to a historical accident, this # script is called pccard_ether. # +# NB: DETACH events are ignored; the kernel should handle all cleanup +# (routes, arp cache) if you need to do something beware of races +# against immediate create of a device w/ the same name; e.g. +# ifconfig bridge0 destroy; ifconfig bridge0 create +# notify 0 { match "system" "IFNET"; match "type" "ATTACH"; action "/etc/pccard_ether $subsystem start"; }; -notify 0 { - match "system" "IFNET"; - match "type" "DETACH"; - action "/etc/pccard_ether $subsystem stop"; -}; - # # Try to start dhclient on Ethernet like interfaces when the link comes # up. Only devices that are configured to support DHCP will actually From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:34:40 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D2C201065672; Wed, 28 Jan 2009 19:34:40 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A55F78FC1F; Wed, 28 Jan 2009 19:34:40 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJYeiF030632; Wed, 28 Jan 2009 19:34:40 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJYeQX030630; Wed, 28 Jan 2009 19:34:40 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281934.n0SJYeQX030630@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:34:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187848 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:34:41 -0000 Author: sam Date: Wed Jan 28 19:34:40 2009 New Revision: 187848 URL: http://svn.freebsd.org/changeset/base/187848 Log: merge r187510: correct typo that left programmed sifs time in the slot time Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) Modified: projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c Wed Jan 28 19:32:19 2009 (r187847) +++ projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c Wed Jan 28 19:34:40 2009 (r187848) @@ -14,7 +14,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: ar5211_misc.c,v 1.7 2008/11/27 22:29:52 sam Exp $ + * $FreeBSD$ */ #include "opt_ah.h" @@ -432,7 +432,7 @@ ar5211SetSifsTime(struct ath_hal *ah, u_ } else { /* convert to system clocks */ OS_REG_WRITE(ah, AR_D_GBL_IFS_SIFS, ath_hal_mac_clks(ah, us)); - ahp->ah_slottime = us; + ahp->ah_sifstime = us; return AH_TRUE; } } Modified: projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c Wed Jan 28 19:32:19 2009 (r187847) +++ projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c Wed Jan 28 19:34:40 2009 (r187848) @@ -453,7 +453,7 @@ ar5212SetSifsTime(struct ath_hal *ah, u_ } else { /* convert to system clocks */ OS_REG_WRITE(ah, AR_D_GBL_IFS_SIFS, ath_hal_mac_clks(ah, us)); - ahp->ah_slottime = us; + ahp->ah_sifstime = us; return AH_TRUE; } } From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:35:27 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 080EA1065670; Wed, 28 Jan 2009 19:35:27 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CEE4F8FC1A; Wed, 28 Jan 2009 19:35:26 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJZQIN030699; Wed, 28 Jan 2009 19:35:26 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJZQPR030697; Wed, 28 Jan 2009 19:35:26 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281935.n0SJZQPR030697@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:35:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187849 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:35:27 -0000 Author: sam Date: Wed Jan 28 19:35:26 2009 New Revision: 187849 URL: http://svn.freebsd.org/changeset/base/187849 Log: merge r187608: don't run the calibration code if scanning Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/ath/if_ath.c projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) Modified: projects/vap7/sys/dev/ath/if_ath.c ============================================================================== --- projects/vap7/sys/dev/ath/if_ath.c Wed Jan 28 19:34:40 2009 (r187848) +++ projects/vap7/sys/dev/ath/if_ath.c Wed Jan 28 19:35:26 2009 (r187849) @@ -5793,9 +5793,12 @@ ath_calibrate(void *arg) struct ath_softc *sc = arg; struct ath_hal *ah = sc->sc_ah; struct ifnet *ifp = sc->sc_ifp; + struct ieee80211com *ic = ifp->if_l2com; HAL_BOOL longCal, isCalDone; int nextcal; + if (ic->ic_flags & IEEE80211_F_SCAN) /* defer, off channel */ + goto restart; longCal = (ticks - sc->sc_lastlongcal >= ath_longcalinterval*hz); if (longCal) { sc->sc_stats.ast_per_cal++; @@ -5833,6 +5836,7 @@ ath_calibrate(void *arg) sc->sc_stats.ast_per_calfail++; } if (!isCalDone) { +restart: /* * Use a shorter interval to potentially collect multiple * data samples required to complete calibration. Once From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:36:10 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0CF381065700; Wed, 28 Jan 2009 19:36:10 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E89018FC0C; Wed, 28 Jan 2009 19:36:09 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJa9XR030766; Wed, 28 Jan 2009 19:36:09 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJa9Tm030761; Wed, 28 Jan 2009 19:36:09 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281936.n0SJa9Tm030761@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:36:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187850 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:36:15 -0000 Author: sam Date: Wed Jan 28 19:36:09 2009 New Revision: 187850 URL: http://svn.freebsd.org/changeset/base/187850 Log: merge r187611: fix return status handling by ar5XXXReset Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) Modified: projects/vap7/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c Wed Jan 28 19:35:26 2009 (r187849) +++ projects/vap7/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c Wed Jan 28 19:36:09 2009 (r187850) @@ -14,7 +14,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: ar5210_reset.c,v 1.8 2008/11/11 17:25:16 sam Exp $ + * $FreeBSD$ */ #include "opt_ah.h" @@ -296,7 +296,7 @@ ar5210Reset(struct ath_hal *ah, HAL_OPMO return AH_TRUE; bad: - if (*status) + if (status != AH_NULL) *status = ecode; return AH_FALSE; #undef FAIL Modified: projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c Wed Jan 28 19:35:26 2009 (r187849) +++ projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c Wed Jan 28 19:36:09 2009 (r187850) @@ -14,7 +14,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: ar5211_reset.c,v 1.9 2008/11/27 22:29:52 sam Exp $ + * $FreeBSD$ */ #include "opt_ah.h" @@ -552,7 +552,7 @@ uint32_t softLedCfg, softLedState; return AH_TRUE; bad: - if (*status) + if (status != AH_NULL) *status = ecode; return AH_FALSE; #undef FAIL Modified: projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c Wed Jan 28 19:35:26 2009 (r187849) +++ projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c Wed Jan 28 19:36:09 2009 (r187850) @@ -14,7 +14,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: ar5212_reset.c,v 1.20 2008/11/27 22:30:00 sam Exp $ + * $FreeBSD$ */ #include "opt_ah.h" @@ -692,7 +692,7 @@ bad: RESTORE_CCK(ah, chan, isBmode); OS_MARK(ah, AH_MARK_RESET_DONE, ecode); - if (*status) + if (status != AH_NULL) *status = ecode; return AH_FALSE; #undef FAIL Modified: projects/vap7/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c Wed Jan 28 19:35:26 2009 (r187849) +++ projects/vap7/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c Wed Jan 28 19:36:09 2009 (r187850) @@ -14,7 +14,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: ar5312_reset.c,v 1.10 2008/11/22 07:41:37 sam Exp $ + * $FreeBSD$ */ #include "opt_ah.h" @@ -597,7 +597,7 @@ ar5312Reset(struct ath_hal *ah, HAL_OPMO return AH_TRUE; bad: OS_MARK(ah, AH_MARK_RESET_DONE, ecode); - if (*status) + if (status != AH_NULL) *status = ecode; return AH_FALSE; #undef FAIL Modified: projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Wed Jan 28 19:35:26 2009 (r187849) +++ projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Wed Jan 28 19:36:09 2009 (r187850) @@ -14,7 +14,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: ar5416_reset.c,v 1.27 2008/11/27 22:30:08 sam Exp $ + * $FreeBSD$ */ #include "opt_ah.h" @@ -470,7 +470,7 @@ ar5416Reset(struct ath_hal *ah, HAL_OPMO return AH_TRUE; bad: OS_MARK(ah, AH_MARK_RESET_DONE, ecode); - if (*status) + if (status != AH_NULL) *status = ecode; return AH_FALSE; #undef FAIL From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:36:47 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 105D31065691; Wed, 28 Jan 2009 19:36:47 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D75CD8FC23; Wed, 28 Jan 2009 19:36:46 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJaksL030822; Wed, 28 Jan 2009 19:36:46 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJakQK030821; Wed, 28 Jan 2009 19:36:46 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281936.n0SJakQK030821@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:36:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187851 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:36:47 -0000 Author: sam Date: Wed Jan 28 19:36:46 2009 New Revision: 187851 URL: http://svn.freebsd.org/changeset/base/187851 Log: merge r187634: add defines for driver-private bits Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/_ieee80211.h Modified: projects/vap7/sys/net80211/_ieee80211.h ============================================================================== --- projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:36:09 2009 (r187850) +++ projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:36:46 2009 (r187851) @@ -143,8 +143,11 @@ struct ieee80211_channel { #define IEEE80211_CHAN_ANYC \ ((struct ieee80211_channel *) IEEE80211_CHAN_ANY) -/* bits 0-3 are for private use by drivers */ /* channel attributes */ +#define IEEE80211_CHAN_PRIV0 0x00000001 /* driver private bit 0 */ +#define IEEE80211_CHAN_PRIV1 0x00000002 /* driver private bit 1 */ +#define IEEE80211_CHAN_PRIV2 0x00000004 /* driver private bit 2 */ +#define IEEE80211_CHAN_PRIV3 0x00000008 /* driver private bit 3 */ #define IEEE80211_CHAN_TURBO 0x00000010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x00000020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x00000040 /* OFDM channel */ From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:37:26 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49D2510656C0; Wed, 28 Jan 2009 19:37:26 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1CAFC8FC12; Wed, 28 Jan 2009 19:37:26 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJbQKq030884; Wed, 28 Jan 2009 19:37:26 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJbQK0030883; Wed, 28 Jan 2009 19:37:26 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281937.n0SJbQK0030883@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:37:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187852 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:37:26 -0000 Author: sam Date: Wed Jan 28 19:37:25 2009 New Revision: 187852 URL: http://svn.freebsd.org/changeset/base/187852 Log: merge r187635: fix regulatory state check for all vaps' being down Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_regdomain.c Modified: projects/vap7/sys/net80211/ieee80211_regdomain.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_regdomain.c Wed Jan 28 19:36:46 2009 (r187851) +++ projects/vap7/sys/net80211/ieee80211_regdomain.c Wed Jan 28 19:37:25 2009 (r187852) @@ -373,6 +373,13 @@ ieee80211_setregdomain(struct ieee80211v c->ic_maxpower = 2*c->ic_maxregpower; } IEEE80211_LOCK(ic); + /* XXX bandaid; a running vap will likely crash */ + if (!allvapsdown(ic)) { + IEEE80211_UNLOCK(ic); + IEEE80211_DPRINTF(vap, IEEE80211_MSG_IOCTL, + "%s: reject: vaps are running\n", __func__); + return EBUSY; + } error = ic->ic_setregdomain(ic, ®->rd, reg->chaninfo.ic_nchans, reg->chaninfo.ic_chans); if (error != 0) { @@ -381,13 +388,6 @@ ieee80211_setregdomain(struct ieee80211v "%s: driver rejected request, error %u\n", __func__, error); return error; } - /* XXX bandaid; a running vap will likely crash */ - if (!allvapsdown(ic)) { - IEEE80211_UNLOCK(ic); - IEEE80211_DPRINTF(vap, IEEE80211_MSG_IOCTL, - "%s: reject: vaps are running\n", __func__); - return EBUSY; - } /* * Commit: copy in new channel table and reset media state. * On return the state machines will be clocked so all vaps From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:38:10 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0192E106566C; Wed, 28 Jan 2009 19:38:10 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E2E7D8FC0C; Wed, 28 Jan 2009 19:38:09 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJc9Rx030947; Wed, 28 Jan 2009 19:38:09 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJc9Sc030946; Wed, 28 Jan 2009 19:38:09 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281938.n0SJc9Sc030946@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:38:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187853 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:38:10 -0000 Author: sam Date: Wed Jan 28 19:38:09 2009 New Revision: 187853 URL: http://svn.freebsd.org/changeset/base/187853 Log: merge r187793: define IEEE80211_CHAN_108A and IEEE80211_CHAN_108G in terms of their non-turbo names Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/_ieee80211.h Modified: projects/vap7/sys/net80211/_ieee80211.h ============================================================================== --- projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:37:25 2009 (r187852) +++ projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:38:09 2009 (r187853) @@ -186,9 +186,9 @@ struct ieee80211_channel { #define IEEE80211_CHAN_G \ (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_DYN) #define IEEE80211_CHAN_108A \ - (IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO) + (IEEE80211_CHAN_A | IEEE80211_CHAN_TURBO) #define IEEE80211_CHAN_108G \ - (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO) + (IEEE80211_CHAN_PUREG | IEEE80211_CHAN_TURBO) #define IEEE80211_CHAN_ST \ (IEEE80211_CHAN_108A | IEEE80211_CHAN_STURBO) From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:38:54 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 927741065673; Wed, 28 Jan 2009 19:38:54 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 651A58FC14; Wed, 28 Jan 2009 19:38:54 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJcsJl031010; Wed, 28 Jan 2009 19:38:54 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJcsrN031009; Wed, 28 Jan 2009 19:38:54 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281938.n0SJcsrN031009@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:38:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187854 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:38:55 -0000 Author: sam Date: Wed Jan 28 19:38:53 2009 New Revision: 187854 URL: http://svn.freebsd.org/changeset/base/187854 Log: merge r187794: change IEEE80211_IS_CHAN_OFDM and IEEE80211_IS_CHAN_CCK to return true for 11g (dynamic CCK/OFDM) Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/_ieee80211.h Modified: projects/vap7/sys/net80211/_ieee80211.h ============================================================================== --- projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:38:09 2009 (r187853) +++ projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:38:53 2009 (r187854) @@ -226,9 +226,9 @@ struct ieee80211_channel { #define IEEE80211_IS_CHAN_PASSIVE(_c) \ (((_c)->ic_flags & IEEE80211_CHAN_PASSIVE) != 0) #define IEEE80211_IS_CHAN_OFDM(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_OFDM) != 0) + (((_c)->ic_flags & (IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN)) != 0) #define IEEE80211_IS_CHAN_CCK(_c) \ - (((_c)->ic_flags & IEEE80211_CHAN_CCK) != 0) + (((_c)->ic_flags & (IEEE80211_CHAN_CCK | IEEE80211_CHAN_DYN)) != 0) #define IEEE80211_IS_CHAN_GFSK(_c) \ (((_c)->ic_flags & IEEE80211_CHAN_GFSK) != 0) #define IEEE80211_IS_CHAN_TURBO(_c) \ From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:39:43 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A1EE106564A; Wed, 28 Jan 2009 19:39:43 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5D20C8FC12; Wed, 28 Jan 2009 19:39:43 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJdhxr031082; Wed, 28 Jan 2009 19:39:43 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJdhPx031081; Wed, 28 Jan 2009 19:39:43 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281939.n0SJdhPx031081@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:39:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187855 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:39:43 -0000 Author: sam Date: Wed Jan 28 19:39:43 2009 New Revision: 187855 URL: http://svn.freebsd.org/changeset/base/187855 Log: merge r187796: fill in ieee channel #'s and max tx power Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/_ieee80211.h Modified: projects/vap7/sys/net80211/_ieee80211.h ============================================================================== --- projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:38:53 2009 (r187854) +++ projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:39:43 2009 (r187855) @@ -276,12 +276,15 @@ struct ieee80211_channel { /* dynamic state */ #define IEEE80211_CHANSTATE_RADAR 0x01 /* radar detected */ #define IEEE80211_CHANSTATE_CACDONE 0x02 /* CAC completed */ +#define IEEE80211_CHANSTATE_CWINT 0x04 /* interference detected */ #define IEEE80211_CHANSTATE_NORADAR 0x10 /* post notify on radar clear */ #define IEEE80211_IS_CHAN_RADAR(_c) \ (((_c)->ic_state & IEEE80211_CHANSTATE_RADAR) != 0) #define IEEE80211_IS_CHAN_CACDONE(_c) \ (((_c)->ic_state & IEEE80211_CHANSTATE_CACDONE) != 0) +#define IEEE80211_IS_CHAN_CWINT(_c) \ + (((_c)->ic_state & IEEE80211_CHANSTATE_CWINT) != 0) /* ni_chan encoding for FH phy */ #define IEEE80211_FH_CHANMOD 80 From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:40:22 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C5756106564A; Wed, 28 Jan 2009 19:40:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B1DC58FC18; Wed, 28 Jan 2009 19:40:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJeM9C031156; Wed, 28 Jan 2009 19:40:22 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJeMMs031149; Wed, 28 Jan 2009 19:40:22 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281940.n0SJeMMs031149@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:40:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187856 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:40:23 -0000 Author: sam Date: Wed Jan 28 19:40:22 2009 New Revision: 187856 URL: http://svn.freebsd.org/changeset/base/187856 Log: merge r187797: make %b msg bit defines public Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/_ieee80211.h projects/vap7/sys/net80211/ieee80211.h projects/vap7/sys/net80211/ieee80211_crypto.h projects/vap7/sys/net80211/ieee80211_ddb.c projects/vap7/sys/net80211/ieee80211_ht.h projects/vap7/sys/net80211/ieee80211_node.h projects/vap7/sys/net80211/ieee80211_var.h Modified: projects/vap7/sys/net80211/_ieee80211.h ============================================================================== --- projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:39:43 2009 (r187855) +++ projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:40:22 2009 (r187856) @@ -172,6 +172,11 @@ struct ieee80211_channel { #define IEEE80211_CHAN_HT40 (IEEE80211_CHAN_HT40U | IEEE80211_CHAN_HT40D) #define IEEE80211_CHAN_HT (IEEE80211_CHAN_HT20 | IEEE80211_CHAN_HT40) +#define IEEE80211_CHAN_BITS \ + "\20\1PRIV0\2PRIV2\3PRIV3\4PRIV4\5TURBO\6CCK\7OFDM\0102GHZ\0115GHZ" \ + "\12PASSIVE\13DYN\14GFSK\15GSM\16STURBO\17HALF\20QUARTER\21HT20" \ + "\22HT40U\23HT40D\24DFS\0254MSXMIT\26NOADHOC\27NOHOSTAP\03011D" + /* * Useful combinations of channel characteristics. */ Modified: projects/vap7/sys/net80211/ieee80211.h ============================================================================== --- projects/vap7/sys/net80211/ieee80211.h Wed Jan 28 19:39:43 2009 (r187855) +++ projects/vap7/sys/net80211/ieee80211.h Wed Jan 28 19:40:22 2009 (r187856) @@ -502,6 +502,11 @@ struct ieee80211_frame_bar { #define IEEE80211_CAPINFO_DSSSOFDM 0x2000 /* bits 14-15 are reserved */ +#define IEEE80211_CAPINFO_BITS \ + "\20\1ESS\2IBSS\3CF_POLLABLE\4CF_POLLREQ\5PRIVACY\6SHORT_PREAMBLE" \ + "\7PBCC\10CHNL_AGILITY\11SPECTRUM_MGMT\13SHORT_SLOTTIME\14RSN" \ + "\16DSSOFDM" + /* * 802.11i/WPA information element (maximally sized). */ @@ -562,6 +567,11 @@ struct ieee80211_ie_htcap { #define IEEE80211_HTCAP_40INTOLERANT 0x4000 /* 40MHz intolerant */ #define IEEE80211_HTCAP_LSIGTXOPPROT 0x8000 /* L-SIG TXOP prot */ +#define IEEE80211_HTCAP_BITS \ + "\20\1LDPC\2CHWIDTH40\5GREENFIELD\6SHORTGI20\7SHORTGI40\10TXSTBC" \ + "\13DELBA\14AMSDU(7935)\15DSSSCCK40\16PSMP\1740INTOLERANT" \ + "\20LSIGTXOPPROT" + /* HT parameters (hc_param) */ #define IEEE80211_HTCAP_MAXRXAMPDU 0x03 /* max rx A-MPDU factor */ #define IEEE80211_HTCAP_MAXRXAMPDU_S 0 @@ -754,6 +764,9 @@ struct ieee80211_ath_ie { #define IEEE80211_ERP_USE_PROTECTION 0x02 #define IEEE80211_ERP_LONG_PREAMBLE 0x04 +#define IEEE80211_ERP_BITS \ + "\20\1NON_ERP_PRESENT\2USE_PROTECTION\3LONG_PREAMBLE" + #define ATH_OUI 0x7f0300 /* Atheros OUI */ #define ATH_OUI_TYPE 0x01 #define ATH_OUI_SUBTYPE 0x01 Modified: projects/vap7/sys/net80211/ieee80211_crypto.h ============================================================================== --- projects/vap7/sys/net80211/ieee80211_crypto.h Wed Jan 28 19:39:43 2009 (r187855) +++ projects/vap7/sys/net80211/ieee80211_crypto.h Wed Jan 28 19:40:22 2009 (r187856) @@ -131,6 +131,9 @@ struct ieee80211_key { #define IEEE80211_CRYPTO_TKIPMIC (1< #include -#define IEEE80211_MSG_BITS \ - "\20\3IOCTL\4WDS\5ACTION\6RATECTL\7ROAM\10INACT\11DOTH\12SUPERG" \ - "\13WME\14ACL\15WPA\16RADKEYS\17RADDUMP\20RADIUS\21DOT1X\22POWER" \ - "\23STATE\24OUTPUT\25SCAN\26AUTH\27ASSOC\30NODE\31ELEMID\32XRATE" \ - "\33INPUT\34CRYPTO\35DUPMPKTS\36DEBUG\3711N" - -#define IEEE80211_F_BITS \ - "\20\1TURBOP\2COMP\3FF\4BURST\5PRIVACY\6PUREG\10SCAN\11ASCAN\12SIBSS" \ - "\13SHSLOT\14PMGTON\15DESBSSID\16WME\17BGSCAN\20SWRETRY\21TXPOW_FIXED" \ - "\22IBSSON\23SHPREAMBLE\24DATAPAD\25USEPROT\26USERBARKER\27CSAPENDING" \ - "\30WPA1\31WPA2\32DROPUNENC\33COUNTERM\34HIDESSID\35NOBRIDG\36PCF" \ - "\37DOTH\40DWDS" - -#define IEEE80211_FEXT_BITS \ - "\20\1NONHT_PR\2INACT\3SCANWAIT\4BGSCAN\5WPS\6TSN\7SCANREQ\10RESUME" \ - "\12NONEPR_PR\13SWBMISS\14DFS\15DOTD\22WDSLEGACY\23PROBECHAN\24HT" \ - "\25AMDPU_TX\26AMPDU_TX\27AMSDU_TX\30AMSDU_RX\31USEHT40\32PUREN" \ - "\33SHORTGI20\34SHORTGI40\35HTCOMPAT\36RIFS" - -#define IEEE80211_FVEN_BITS "\20" - -#define IEEE80211_C_BITS \ - "\20\1STA\7FF\10TURBOP\11IBSS\12PMGT" \ - "\13HOSTAP\14AHDEMO\15SWRETRY\16TXPMGT\17SHSLOT\20SHPREAMBLE" \ - "\21MONITOR\22DFS\30WPA1\31WPA2\32BURST\33WME\34WDS\36BGSCAN" \ - "\37TXFRAG\40TDMA" - -#define IEEE80211_C_CRYPTO_BITS \ - "\20\1WEP\2TKIP\3AES\4AES_CCM\5TKIPMIC\6CKIP\12PMGT" - -#define IEEE80211_C_HTCAP_BITS \ - "\20\1LDPC\2CHWIDTH40\5GREENFIELD\6SHORTGI20\7SHORTGI40\10TXSTBC" \ - "\21AMPDU\22AMSDU\23HT\24SMPS\25RIFS" - -/* NB: policy bits not included */ -#define IEEE80211_CHAN_BITS \ - "\20\5TURBO\6CCK\7OFDM\0102GHZ\0115GHZ\12PASSIVE\13DYN\14GFSK" \ - "\15STURBO\16HALF\17QUARTER\20HT20\21HT40U\22HT40D\23DFS" - -#define IEEE80211_NODE_BITS \ - "\20\1AUTH\2QOS\3ERP\5PWR_MGT\6AREF\7HT\10HTCOMPAT\11WPS\12TSN" \ - "\13AMPDU_RX\14AMPDU_TX\15MIMO_PS\16MIMO_RTS\17RIFS\20SGI20\21SGI40" \ - "\22ASSOCID" - -#define IEEE80211_ERP_BITS \ - "\20\1NON_ERP_PRESENT\2USE_PROTECTION\3LONG_PREAMBLE" - -#define IEEE80211_CAPINFO_BITS \ - "\20\1ESS\2IBSS\3CF_POLLABLE\4CF_POLLREQ\5PRIVACY\6SHORT_PREAMBLE" \ - "\7PBCC\10CHNL_AGILITY\11SPECTRUM_MGMT\13SHORT_SLOTTIME\14RSN" \ - "\16DSSOFDM" - -#define IEEE80211_HTCAP_BITS \ - "\20\1LDPC\2CHWIDTH40\5GREENFIELD\6SHORTGI20\7SHORTGI40\10TXSTBC" \ - "\13DELBA\14AMSDU(7935)\15DSSSCCK40\16PSMP\1740INTOLERANT" \ - "\20LSIGTXOPPROT" - -#define IEEE80211_AGGR_BITS \ - "\20\1IMMEDIATE\2XCHGPEND\3RUNNING\4SETUP\5NAK" - #define DB_PRINTSYM(prefix, addr) \ db_printf(prefix " "); \ db_printsym((db_addr_t) addr, DB_STGY_ANY); \ @@ -495,7 +435,7 @@ _db_show_com(const struct ieee80211com * db_printf("\tflags_ven=%b\n", ic->ic_flags_ven, IEEE80211_FVEN_BITS); db_printf("\tcaps=%b\n", ic->ic_caps, IEEE80211_C_BITS); db_printf("\tcryptocaps=%b\n", - ic->ic_cryptocaps, IEEE80211_C_CRYPTO_BITS); + ic->ic_cryptocaps, IEEE80211_CRYPTO_BITS); db_printf("\thtcaps=%b\n", ic->ic_htcaps, IEEE80211_HTCAP_BITS); #if 0 Modified: projects/vap7/sys/net80211/ieee80211_ht.h ============================================================================== --- projects/vap7/sys/net80211/ieee80211_ht.h Wed Jan 28 19:39:43 2009 (r187855) +++ projects/vap7/sys/net80211/ieee80211_ht.h Wed Jan 28 19:40:22 2009 (r187856) @@ -71,6 +71,9 @@ struct ieee80211_tx_ampdu { (((tap)->txa_flags & \ (IEEE80211_AGGR_RUNNING|IEEE80211_AGGR_XCHGPEND|IEEE80211_AGGR_NAK)) != 0) +#define IEEE80211_AGGR_BITS \ + "\20\1IMMEDIATE\2XCHGPEND\3RUNNING\4SETUP\5NAK" + /* * Traffic estimator support. We estimate packets/sec for * each AC that is setup for AMPDU or will potentially be Modified: projects/vap7/sys/net80211/ieee80211_node.h ============================================================================== --- projects/vap7/sys/net80211/ieee80211_node.h Wed Jan 28 19:39:43 2009 (r187855) +++ projects/vap7/sys/net80211/ieee80211_node.h Wed Jan 28 19:40:22 2009 (r187856) @@ -206,6 +206,11 @@ MALLOC_DECLARE(M_80211_NODE_IE); IEEE80211_NODE_MIMO_RTS | IEEE80211_NODE_RIFS | \ IEEE80211_NODE_SGI20 | IEEE80211_NODE_SGI40) +#define IEEE80211_NODE_BITS \ + "\20\1AUTH\2QOS\3ERP\5PWR_MGT\6AREF\7HT\10HTCOMPAT\11WPS\12TSN" \ + "\13AMPDU_RX\14AMPDU_TX\15MIMO_PS\16MIMO_RTS\17RIFS\20SGI20\21SGI40" \ + "\22ASSOCID" + #define IEEE80211_NODE_AID(ni) IEEE80211_AID(ni->ni_associd) #define IEEE80211_NODE_STAT(ni,stat) (ni->ni_stats.ns_##stat++) Modified: projects/vap7/sys/net80211/ieee80211_var.h ============================================================================== --- projects/vap7/sys/net80211/ieee80211_var.h Wed Jan 28 19:39:43 2009 (r187855) +++ projects/vap7/sys/net80211/ieee80211_var.h Wed Jan 28 19:40:22 2009 (r187856) @@ -469,6 +469,13 @@ MALLOC_DECLARE(M_80211_VAP); #define IEEE80211_F_DOTH 0x40000000 /* CONF: 11h enabled */ #define IEEE80211_F_DWDS 0x80000000 /* CONF: Dynamic WDS enabled */ +#define IEEE80211_F_BITS \ + "\20\1TURBOP\2COMP\3FF\4BURST\5PRIVACY\6PUREG\10SCAN\11ASCAN\12SIBSS" \ + "\13SHSLOT\14PMGTON\15DESBSSID\16WME\17BGSCAN\20SWRETRY\21TXPOW_FIXED" \ + "\22IBSSON\23SHPREAMBLE\24DATAPAD\25USEPROT\26USERBARKER\27CSAPENDING" \ + "\30WPA1\31WPA2\32DROPUNENC\33COUNTERM\34HIDESSID\35NOBRIDG\36PCF" \ + "\37DOTH\40DWDS" + /* Atheros protocol-specific flags */ #define IEEE80211_F_ATHEROS \ (IEEE80211_F_FF | IEEE80211_F_COMP | IEEE80211_F_TURBOP) @@ -505,6 +512,14 @@ MALLOC_DECLARE(M_80211_VAP); #define IEEE80211_FEXT_HTCOMPAT 0x10000000 /* CONF: HT vendor OUI's */ #define IEEE80211_FEXT_RIFS 0x20000000 /* CONF: RIFS enabled */ +#define IEEE80211_FEXT_BITS \ + "\20\1NONHT_PR\2INACT\3SCANWAIT\4BGSCAN\5WPS\6TSN\7SCANREQ\10RESUME" \ + "\12NONEPR_PR\13SWBMISS\14DFS\15DOTD\22WDSLEGACY\23PROBECHAN\24HT" \ + "\25AMDPU_TX\26AMPDU_TX\27AMSDU_TX\30AMSDU_RX\31USEHT40\32PUREN" \ + "\33SHORTGI20\34SHORTGI40\35HTCOMPAT\36RIFS" + +#define IEEE80211_FVEN_BITS "\20" + /* ic_caps/iv_caps: device driver capabilities */ /* 0x2f available */ #define IEEE80211_C_STA 0x00000001 /* CAPABILITY: STA available */ @@ -538,6 +553,12 @@ MALLOC_DECLARE(M_80211_VAP); IEEE80211_C_AHDEMO | IEEE80211_C_MONITOR | IEEE80211_C_WDS | \ IEEE80211_C_TDMA) +#define IEEE80211_C_BITS \ + "\20\1STA\7FF\10TURBOP\11IBSS\12PMGT" \ + "\13HOSTAP\14AHDEMO\15SWRETRY\16TXPMGT\17SHSLOT\20SHPREAMBLE" \ + "\21MONITOR\22DFS\30WPA1\31WPA2\32BURST\33WME\34WDS\36BGSCAN" \ + "\37TXFRAG\40TDMA" + /* * ic_htcaps/iv_htcaps: HT-specific device/driver capabilities * @@ -551,6 +572,10 @@ MALLOC_DECLARE(M_80211_VAP); #define IEEE80211_HTC_SMPS 0x00080000 /* CAPABILITY: MIMO power save*/ #define IEEE80211_HTC_RIFS 0x00100000 /* CAPABILITY: RIFS support */ +#define IEEE80211_C_HTCAP_BITS \ + "\20\1LDPC\2CHWIDTH40\5GREENFIELD\6SHORTGI20\7SHORTGI40\10TXSTBC" \ + "\21AMPDU\22AMSDU\23HT\24SMPS\25RIFS" + void ieee80211_ifattach(struct ieee80211com *); void ieee80211_ifdetach(struct ieee80211com *); int ieee80211_vap_setup(struct ieee80211com *, struct ieee80211vap *, @@ -694,6 +719,12 @@ ieee80211_htchanflags(const struct ieee8 #define IEEE80211_MSG_ANY 0xffffffff /* anything */ +#define IEEE80211_MSG_BITS \ + "\20\3IOCTL\4WDS\5ACTION\6RATECTL\7ROAM\10INACT\11DOTH\12SUPERG" \ + "\13WME\14ACL\15WPA\16RADKEYS\17RADDUMP\20RADIUS\21DOT1X\22POWER" \ + "\23STATE\24OUTPUT\25SCAN\26AUTH\27ASSOC\30NODE\31ELEMID\32XRATE" \ + "\33INPUT\34CRYPTO\35DUPMPKTS\36DEBUG\3711N" + #ifdef IEEE80211_DEBUG #define ieee80211_msg(_vap, _m) ((_vap)->iv_debug & (_m)) #define IEEE80211_DPRINTF(_vap, _m, _fmt, ...) do { \ From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:41:18 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DCD3E1065672; Wed, 28 Jan 2009 19:41:18 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CA32A8FC0A; Wed, 28 Jan 2009 19:41:18 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJfIlN031221; Wed, 28 Jan 2009 19:41:18 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJfI6W031220; Wed, 28 Jan 2009 19:41:18 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281941.n0SJfI6W031220@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:41:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187857 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:41:19 -0000 Author: sam Date: Wed Jan 28 19:41:18 2009 New Revision: 187857 URL: http://svn.freebsd.org/changeset/base/187857 Log: merge r187799: add country codes, sku's, opaque struct defs, etc. Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_regdomain.h Modified: projects/vap7/sys/net80211/ieee80211_regdomain.h ============================================================================== --- projects/vap7/sys/net80211/ieee80211_regdomain.h Wed Jan 28 19:40:22 2009 (r187856) +++ projects/vap7/sys/net80211/ieee80211_regdomain.h Wed Jan 28 19:41:18 2009 (r187857) @@ -142,11 +142,6 @@ enum ISOCountryCode { CTRY_ITALY = 380, /* Italy */ CTRY_JAMAICA = 388, /* Jamaica */ CTRY_JAPAN = 392, /* Japan */ - CTRY_JAPAN1 = 393, /* Japan (JP1) */ - CTRY_JAPAN2 = 394, /* Japan (JP0) */ - CTRY_JAPAN3 = 395, /* Japan (JP1-1) */ - CTRY_JAPAN4 = 396, /* Japan (JE1) */ - CTRY_JAPAN5 = 397, /* Japan (JE2) */ CTRY_JORDAN = 400, /* Jordan */ CTRY_KAZAKHSTAN = 398, /* Kazakhstan */ CTRY_KENYA = 404, /* Kenya */ @@ -209,6 +204,38 @@ enum ISOCountryCode { CTRY_VIET_NAM = 704, /* Viet Nam */ CTRY_YEMEN = 887, /* Yemen */ CTRY_ZIMBABWE = 716, /* Zimbabwe */ + + /* NB: from here down not listed in 3166; they come from Atheros */ + CTRY_DEBUG = 0x1ff, /* debug */ + CTRY_DEFAULT = 0, /* default */ + + CTRY_UNITED_STATES_FCC49 = 842, /* United States (Public Safety)*/ + CTRY_KOREA_ROC3 = 412, /* South Korea */ + + CTRY_JAPAN1 = 393, /* Japan (JP1) */ + CTRY_JAPAN2 = 394, /* Japan (JP0) */ + CTRY_JAPAN3 = 395, /* Japan (JP1-1) */ + CTRY_JAPAN4 = 396, /* Japan (JE1) */ + CTRY_JAPAN5 = 397, /* Japan (JE2) */ + CTRY_JAPAN6 = 399, /* Japan (JP6) */ + CTRY_JAPAN7 = 4007, /* Japan (J7) */ + CTRY_JAPAN8 = 4008, /* Japan (J8) */ + CTRY_JAPAN9 = 4009, /* Japan (J9) */ + CTRY_JAPAN10 = 4010, /* Japan (J10) */ + CTRY_JAPAN11 = 4011, /* Japan (J11) */ + CTRY_JAPAN12 = 4012, /* Japan (J12) */ + CTRY_JAPAN13 = 4013, /* Japan (J13) */ + CTRY_JAPAN14 = 4014, /* Japan (J14) */ + CTRY_JAPAN15 = 4015, /* Japan (J15) */ + CTRY_JAPAN16 = 4016, /* Japan (J16) */ + CTRY_JAPAN17 = 4017, /* Japan (J17) */ + CTRY_JAPAN18 = 4018, /* Japan (J18) */ + CTRY_JAPAN19 = 4019, /* Japan (J19) */ + CTRY_JAPAN20 = 4020, /* Japan (J20) */ + CTRY_JAPAN21 = 4021, /* Japan (J21) */ + CTRY_JAPAN22 = 4022, /* Japan (J22) */ + CTRY_JAPAN23 = 4023, /* Japan (J23) */ + CTRY_JAPAN24 = 4024, /* Japan (J24) */ }; enum RegdomainCode { @@ -225,21 +252,27 @@ enum RegdomainCode { SKU_APAC3 = 0x5d, /* Asia Pacific w/o ISM band */ SKU_ROW = 0x81, /* China/Taiwan/Rest of World */ SKU_NONE = 0xf0, /* "Region Free" */ - SKU_DEBUG = 0x1ff + SKU_DEBUG = 0x1ff, + + /* NB: from here down private */ + SKU_SR9 = 0x0298, /* Ubiquiti SR9 (900MHz/GSM) */ + SKU_XR9 = 0x0299, /* Ubiquiti XR9 (900MHz/GSM) */ + SKU_GZ901 = 0x029a, /* Zcomax GZ-901 (900MHz/GSM) */ }; #if defined(__KERNEL__) || defined(_KERNEL) -#define CTRY_DEBUG 0x1ff /* debug */ -#define CTRY_DEFAULT 0 /* default */ - +struct ieee80211com; void ieee80211_regdomain_attach(struct ieee80211com *); void ieee80211_regdomain_detach(struct ieee80211com *); +struct ieee80211vap; void ieee80211_regdomain_vattach(struct ieee80211vap *); void ieee80211_regdomain_vdetach(struct ieee80211vap *); +struct ieee80211_regdomain; int ieee80211_init_channels(struct ieee80211com *, const struct ieee80211_regdomain *, const uint8_t bands[]); -void ieee80211_sort_channels(struct ieee80211_channel chans[], int nchans); +struct ieee80211_channel; +void ieee80211_sort_channels(struct ieee80211_channel *chans, int nchans); struct ieee80211_appie; struct ieee80211_appie *ieee80211_alloc_countryie(struct ieee80211com *); struct ieee80211_regdomain_req; From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:42:02 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D55AC106564A; Wed, 28 Jan 2009 19:42:02 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C23F18FC13; Wed, 28 Jan 2009 19:42:02 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJg2NQ031288; Wed, 28 Jan 2009 19:42:02 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJg2Gs031283; Wed, 28 Jan 2009 19:42:02 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281942.n0SJg2Gs031283@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:42:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187858 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:42:03 -0000 Author: sam Date: Wed Jan 28 19:42:02 2009 New Revision: 187858 URL: http://svn.freebsd.org/changeset/base/187858 Log: merge r187800: hange ic_getradiocaps driver callback Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/ath/if_ath.c projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_ioctl.c projects/vap7/sys/net80211/ieee80211_regdomain.c projects/vap7/sys/net80211/ieee80211_var.h Modified: projects/vap7/sys/dev/ath/if_ath.c ============================================================================== --- projects/vap7/sys/dev/ath/if_ath.c Wed Jan 28 19:41:18 2009 (r187857) +++ projects/vap7/sys/dev/ath/if_ath.c Wed Jan 28 19:42:02 2009 (r187858) @@ -205,7 +205,7 @@ static void ath_newassoc(struct ieee8021 static int ath_setregdomain(struct ieee80211com *, struct ieee80211_regdomain *, int, struct ieee80211_channel []); -static void ath_getradiocaps(struct ieee80211com *, int *, +static void ath_getradiocaps(struct ieee80211com *, int, int *, struct ieee80211_channel []); static int ath_getchannels(struct ath_softc *); static void ath_led_event(struct ath_softc *, int); @@ -6332,7 +6332,7 @@ ath_setregdomain(struct ieee80211com *ic static void ath_getradiocaps(struct ieee80211com *ic, - int *nchans, struct ieee80211_channel chans[]) + int maxchans, int *nchans, struct ieee80211_channel chans[]) { struct ath_softc *sc = ic->ic_ifp->if_softc; struct ath_hal *ah = sc->sc_ah; Modified: projects/vap7/sys/net80211/ieee80211_ioctl.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_ioctl.c Wed Jan 28 19:41:18 2009 (r187857) +++ projects/vap7/sys/net80211/ieee80211_ioctl.c Wed Jan 28 19:42:02 2009 (r187858) @@ -707,7 +707,7 @@ ieee80211_ioctl_getdevcaps(struct ieee80 dc->dc_cryptocaps = ic->ic_cryptocaps; dc->dc_htcaps = ic->ic_htcaps; ci = &dc->dc_chaninfo; - ic->ic_getradiocaps(ic, &ci->ic_nchans, ci->ic_chans); + ic->ic_getradiocaps(ic, IEEE80211_CHAN_MAX, &ci->ic_nchans, ci->ic_chans); ieee80211_sort_channels(ci->ic_chans, ci->ic_nchans); error = copyout(dc, ireq->i_data, sizeof(*dc)); free(dc, M_TEMP); Modified: projects/vap7/sys/net80211/ieee80211_regdomain.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_regdomain.c Wed Jan 28 19:41:18 2009 (r187857) +++ projects/vap7/sys/net80211/ieee80211_regdomain.c Wed Jan 28 19:42:02 2009 (r187858) @@ -44,12 +44,14 @@ __FBSDID("$FreeBSD$"); #include static void -null_getradiocaps(struct ieee80211com *ic, int *n, struct ieee80211_channel *c) +null_getradiocaps(struct ieee80211com *ic, int maxchan, + int *n, struct ieee80211_channel *c) { /* just feed back the current channel list */ - *n = ic->ic_nchans; - memcpy(c, ic->ic_channels, - ic->ic_nchans*sizeof(struct ieee80211_channel)); + *n = ic->ic_nchans; /* XXX return count copied? */ + if (maxchan > ic->ic_nchans) + maxchan = ic->ic_nchans; + memcpy(c, ic->ic_channels, maxchan*sizeof(struct ieee80211_channel)); } static int Modified: projects/vap7/sys/net80211/ieee80211_var.h ============================================================================== --- projects/vap7/sys/net80211/ieee80211_var.h Wed Jan 28 19:41:18 2009 (r187857) +++ projects/vap7/sys/net80211/ieee80211_var.h Wed Jan 28 19:42:02 2009 (r187858) @@ -208,7 +208,7 @@ struct ieee80211com { ieee80211vap_attach ic_vattach[IEEE80211_OPMODE_MAX]; /* return hardware/radio capabilities */ void (*ic_getradiocaps)(struct ieee80211com *, - int *, struct ieee80211_channel []); + int, int *, struct ieee80211_channel []); /* check and/or prepare regdomain state change */ int (*ic_setregdomain)(struct ieee80211com *, struct ieee80211_regdomain *, From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:42:37 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D69FE1065744; Wed, 28 Jan 2009 19:42:37 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C42B48FC1A; Wed, 28 Jan 2009 19:42:37 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJgbaw031351; Wed, 28 Jan 2009 19:42:37 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJgbCA031350; Wed, 28 Jan 2009 19:42:37 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281942.n0SJgbCA031350@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:42:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187859 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:42:38 -0000 Author: sam Date: Wed Jan 28 19:42:37 2009 New Revision: 187859 URL: http://svn.freebsd.org/changeset/base/187859 Log: merge r187802: fix comment Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_regdomain.c Modified: projects/vap7/sys/net80211/ieee80211_regdomain.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_regdomain.c Wed Jan 28 19:42:02 2009 (r187858) +++ projects/vap7/sys/net80211/ieee80211_regdomain.c Wed Jan 28 19:42:37 2009 (r187859) @@ -71,7 +71,7 @@ ieee80211_regdomain_attach(struct ieee80 ic->ic_regdomain.location = ' '; /* both */ ic->ic_regdomain.isocc[0] = 'U'; /* XXX */ ic->ic_regdomain.isocc[1] = 'S'; /* XXX */ - /* XXX? too late to setup default channel list */ + /* NB: driver calls ieee80211_init_channels or similar */ } ic->ic_getradiocaps = null_getradiocaps; ic->ic_setregdomain = null_setregdomain; From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:43:16 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F34341065672; Wed, 28 Jan 2009 19:43:15 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E09588FC14; Wed, 28 Jan 2009 19:43:15 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJhFxY031412; Wed, 28 Jan 2009 19:43:15 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJhFQQ031411; Wed, 28 Jan 2009 19:43:15 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281943.n0SJhFQQ031411@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:43:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187860 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:43:16 -0000 Author: sam Date: Wed Jan 28 19:43:15 2009 New Revision: 187860 URL: http://svn.freebsd.org/changeset/base/187860 Log: merge r187802: extend channel definition Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/_ieee80211.h Modified: projects/vap7/sys/net80211/_ieee80211.h ============================================================================== --- projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:42:37 2009 (r187859) +++ projects/vap7/sys/net80211/_ieee80211.h Wed Jan 28 19:43:15 2009 (r187860) @@ -135,6 +135,9 @@ struct ieee80211_channel { int8_t ic_minpower; /* minimum tx power in .5 dBm */ uint8_t ic_state; /* dynamic state */ uint8_t ic_extieee; /* HT40 extension channel number */ + int8_t ic_maxantgain; /* maximum antenna gain in .5 dBm */ + uint8_t ic_pad; + uint16_t ic_devdata; /* opaque device/driver data */ }; #define IEEE80211_CHAN_MAX 256 From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:44:09 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C784D106566B; Wed, 28 Jan 2009 19:44:09 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B40DA8FC0C; Wed, 28 Jan 2009 19:44:09 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJi9ut031495; Wed, 28 Jan 2009 19:44:09 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJi9h8031494; Wed, 28 Jan 2009 19:44:09 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281944.n0SJi9h8031494@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:44:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187861 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:44:10 -0000 Author: sam Date: Wed Jan 28 19:44:09 2009 New Revision: 187861 URL: http://svn.freebsd.org/changeset/base/187861 Log: merge r187834: fix null_getradiocaps Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_regdomain.c Modified: projects/vap7/sys/net80211/ieee80211_regdomain.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_regdomain.c Wed Jan 28 19:43:15 2009 (r187860) +++ projects/vap7/sys/net80211/ieee80211_regdomain.c Wed Jan 28 19:44:09 2009 (r187861) @@ -48,10 +48,10 @@ null_getradiocaps(struct ieee80211com *i int *n, struct ieee80211_channel *c) { /* just feed back the current channel list */ - *n = ic->ic_nchans; /* XXX return count copied? */ if (maxchan > ic->ic_nchans) maxchan = ic->ic_nchans; memcpy(c, ic->ic_channels, maxchan*sizeof(struct ieee80211_channel)); + *n = maxchan; } static int From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 19:44:44 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7B6B1065670; Wed, 28 Jan 2009 19:44:44 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D4E048FC17; Wed, 28 Jan 2009 19:44:44 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SJiijs031553; Wed, 28 Jan 2009 19:44:44 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SJiisH031552; Wed, 28 Jan 2009 19:44:44 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901281944.n0SJiisH031552@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 19:44:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187862 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 19:44:45 -0000 Author: sam Date: Wed Jan 28 19:44:44 2009 New Revision: 187862 URL: http://svn.freebsd.org/changeset/base/187862 Log: merge r187835: add assert Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_ioctl.c Modified: projects/vap7/sys/net80211/ieee80211_ioctl.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_ioctl.c Wed Jan 28 19:44:09 2009 (r187861) +++ projects/vap7/sys/net80211/ieee80211_ioctl.c Wed Jan 28 19:44:44 2009 (r187862) @@ -708,6 +708,8 @@ ieee80211_ioctl_getdevcaps(struct ieee80 dc->dc_htcaps = ic->ic_htcaps; ci = &dc->dc_chaninfo; ic->ic_getradiocaps(ic, IEEE80211_CHAN_MAX, &ci->ic_nchans, ci->ic_chans); + KASSERT(ci->ic_nchans <= maxchans, + ("nchans %d maxchans %d", ci->ic_nchans, maxchans)); ieee80211_sort_channels(ci->ic_chans, ci->ic_nchans); error = copyout(dc, ireq->i_data, sizeof(*dc)); free(dc, M_TEMP); From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 21:19:59 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B807E10656F5; Wed, 28 Jan 2009 21:19:59 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A644C8FC24; Wed, 28 Jan 2009 21:19:59 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SLJxQr033681; Wed, 28 Jan 2009 21:19:59 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SLJxr1033680; Wed, 28 Jan 2009 21:19:59 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901282119.n0SLJxr1033680@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 21:19:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187868 - projects/vap7/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 21:20:01 -0000 Author: sam Date: Wed Jan 28 21:19:59 2009 New Revision: 187868 URL: http://svn.freebsd.org/changeset/base/187868 Log: merge r187796: fill in ieee channel #'s and max tx power Modified: projects/vap7/sys/net80211/ieee80211.c Modified: projects/vap7/sys/net80211/ieee80211.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211.c Wed Jan 28 20:35:16 2009 (r187867) +++ projects/vap7/sys/net80211/ieee80211.c Wed Jan 28 21:19:59 2009 (r187868) @@ -126,6 +126,21 @@ ieee80211_chan_init(struct ieee80211com for (i = 0; i < ic->ic_nchans; i++) { c = &ic->ic_channels[i]; KASSERT(c->ic_flags != 0, ("channel with no flags")); + /* + * Help drivers that work only with frequencies by filling + * in IEEE channel #'s if not already calculated. Note this + * mimics similar work done in ieee80211_setregdomain when + * changing regulatory state. + */ + if (c->ic_ieee == 0) + c->ic_ieee = ieee80211_mhz2ieee(c->ic_freq,c->ic_flags); + if (IEEE80211_IS_CHAN_HT40(c) && c->ic_extieee == 0) + c->ic_extieee = ieee80211_mhz2ieee(c->ic_freq + + (IEEE80211_IS_CHAN_HT40U(c) ? 20 : -20), + c->ic_flags); + /* default max tx power to max regulatory */ + if (c->ic_maxpower == 0) + c->ic_maxpower = 2*c->ic_maxregpower; setbit(ic->ic_chan_avail, c->ic_ieee); /* * Identify mode capabilities. From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 21:23:41 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F3DA9106567F; Wed, 28 Jan 2009 21:23:40 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E12538FC36; Wed, 28 Jan 2009 21:23:40 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SLNe1o033802; Wed, 28 Jan 2009 21:23:40 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SLNefP033800; Wed, 28 Jan 2009 21:23:40 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901282123.n0SLNefP033800@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 21:23:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187869 - projects/vap7/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 21:23:41 -0000 Author: sam Date: Wed Jan 28 21:23:40 2009 New Revision: 187869 URL: http://svn.freebsd.org/changeset/base/187869 Log: merge r187801: remove assumptions about the max # channels in ioctl's merge r187060: add missing break Modified: projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_ioctl.c projects/vap7/sys/net80211/ieee80211_ioctl.h Modified: projects/vap7/sys/net80211/ieee80211_ioctl.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_ioctl.c Wed Jan 28 21:19:59 2009 (r187868) +++ projects/vap7/sys/net80211/ieee80211_ioctl.c Wed Jan 28 21:23:40 2009 (r187869) @@ -695,23 +695,29 @@ ieee80211_ioctl_getdevcaps(struct ieee80 { struct ieee80211_devcaps_req *dc; struct ieee80211req_chaninfo *ci; - int error; + int maxchans, error; - if (ireq->i_len != sizeof(struct ieee80211_devcaps_req)) - return EINVAL; - dc = (struct ieee80211_devcaps_req *) malloc( - sizeof(struct ieee80211_devcaps_req), M_TEMP, M_NOWAIT | M_ZERO); + maxchans = 1 + ((ireq->i_len - sizeof(struct ieee80211_devcaps_req)) / + sizeof(struct ieee80211_channel)); + /* NB: require 1 so we know ic_nchans is accessible */ + if (maxchans < 1) + return EINVAL; + /* constrain max request size, 2K channels is ~24Kbytes */ + if (maxchans > 2048) + maxchans = 2048; + dc = (struct ieee80211_devcaps_req *) + malloc(IEEE80211_DEVCAPS_SIZE(maxchans), M_TEMP, M_NOWAIT | M_ZERO); if (dc == NULL) return ENOMEM; dc->dc_drivercaps = ic->ic_caps; dc->dc_cryptocaps = ic->ic_cryptocaps; dc->dc_htcaps = ic->ic_htcaps; ci = &dc->dc_chaninfo; - ic->ic_getradiocaps(ic, IEEE80211_CHAN_MAX, &ci->ic_nchans, ci->ic_chans); + ic->ic_getradiocaps(ic, maxchans, &ci->ic_nchans, ci->ic_chans); KASSERT(ci->ic_nchans <= maxchans, ("nchans %d maxchans %d", ci->ic_nchans, maxchans)); ieee80211_sort_channels(ci->ic_chans, ci->ic_nchans); - error = copyout(dc, ireq->i_data, sizeof(*dc)); + error = copyout(dc, ireq->i_data, IEEE80211_DEVCAPS_SPACE(dc)); free(dc, M_TEMP); return error; } @@ -1567,17 +1573,21 @@ static __noinline int ieee80211_ioctl_setchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq) { struct ieee80211com *ic = vap->iv_ic; - struct ieee80211req_chanlist list; - u_char chanlist[IEEE80211_CHAN_BYTES]; - int i, nchan, error; + uint8_t *chanlist, *list; + int i, nchan, maxchan, error; - if (ireq->i_len != sizeof(list)) - return EINVAL; - error = copyin(ireq->i_data, &list, sizeof(list)); + if (ireq->i_len > sizeof(ic->ic_chan_active)) + ireq->i_len = sizeof(ic->ic_chan_active); + list = malloc(ireq->i_len + IEEE80211_CHAN_BYTES, M_TEMP, + M_NOWAIT | M_ZERO); + if (list == NULL) + return ENOMEM; + error = copyin(ireq->i_data, list, ireq->i_len); if (error) return error; - memset(chanlist, 0, sizeof(chanlist)); nchan = 0; + chanlist = list + ireq->i_len; /* NB: zero'd already */ + maxchan = ireq->i_len * NBBY; for (i = 0; i < ic->ic_nchans; i++) { const struct ieee80211_channel *c = &ic->ic_channels[i]; /* @@ -1585,7 +1595,7 @@ ieee80211_ioctl_setchanlist(struct ieee8 * available channels so users can do things like specify * 1-255 to get all available channels. */ - if (isset(list.ic_channels, c->ic_ieee)) { + if (c->ic_ieee < maxchan && isset(list, c->ic_ieee)) { setbit(chanlist, c->ic_ieee); nchan++; } @@ -1595,8 +1605,9 @@ ieee80211_ioctl_setchanlist(struct ieee8 if (ic->ic_bsschan != IEEE80211_CHAN_ANYC && /* XXX */ isclr(chanlist, ic->ic_bsschan->ic_ieee)) ic->ic_bsschan = IEEE80211_CHAN_ANYC; - memcpy(ic->ic_chan_active, chanlist, sizeof(ic->ic_chan_active)); + memcpy(ic->ic_chan_active, chanlist, IEEE80211_CHAN_BYTES); ieee80211_scan_flush(vap); + free(list, M_TEMP); return ENETRESET; } @@ -1994,17 +2005,34 @@ ieee80211_ioctl_setregdomain(struct ieee const struct ieee80211req *ireq) { struct ieee80211_regdomain_req *reg; - int error; + int nchans, error; - if (ireq->i_len != sizeof(struct ieee80211_regdomain_req)) + nchans = 1 + ((ireq->i_len - sizeof(struct ieee80211_regdomain_req)) / + sizeof(struct ieee80211_channel)); + if (!(1 <= nchans && nchans <= IEEE80211_CHAN_MAX)) { + IEEE80211_DPRINTF(vap, IEEE80211_MSG_IOCTL, + "%s: bad # chans, i_len %d nchans %d\n", __func__, + ireq->i_len, nchans); return EINVAL; - reg = (struct ieee80211_regdomain_req *) malloc( - sizeof(struct ieee80211_regdomain_req), M_TEMP, M_NOWAIT); - if (reg == NULL) + } + reg = (struct ieee80211_regdomain_req *) + malloc(IEEE80211_REGDOMAIN_SIZE(nchans), M_TEMP, M_NOWAIT); + if (reg == NULL) { + IEEE80211_DPRINTF(vap, IEEE80211_MSG_IOCTL, + "%s: no memory, nchans %d\n", __func__, nchans); return ENOMEM; - error = copyin(ireq->i_data, reg, sizeof(*reg)); - if (error == 0) - error = ieee80211_setregdomain(vap, reg); + } + error = copyin(ireq->i_data, reg, IEEE80211_REGDOMAIN_SIZE(nchans)); + if (error == 0) { + /* NB: validate inline channel count against storage size */ + if (reg->chaninfo.ic_nchans != nchans) { + IEEE80211_DPRINTF(vap, IEEE80211_MSG_IOCTL, + "%s: chan cnt mismatch, %d != %d\n", __func__, + reg->chaninfo.ic_nchans, nchans); + error = EINVAL; + } else + error = ieee80211_setregdomain(vap, reg); + } free(reg, M_TEMP); return (error == 0 ? ENETRESET : error); @@ -2698,6 +2726,7 @@ ieee80211_ioctl_set80211(struct ieee8021 break; case 3: if ((vap->iv_caps & IEEE80211_C_WPA) != IEEE80211_C_WPA) + return EOPNOTSUPP; flags |= IEEE80211_F_WPA1 | IEEE80211_F_WPA2; break; default: /* Can't set any -> error */ Modified: projects/vap7/sys/net80211/ieee80211_ioctl.h ============================================================================== --- projects/vap7/sys/net80211/ieee80211_ioctl.h Wed Jan 28 21:19:59 2009 (r187868) +++ projects/vap7/sys/net80211/ieee80211_ioctl.h Wed Jan 28 21:23:40 2009 (r187869) @@ -299,13 +299,13 @@ struct ieee80211req_maclist { }; /* - * Set the active channel list. Note this list is - * intersected with the available channel list in - * calculating the set of channels actually used in - * scanning. + * Set the active channel list by IEEE channel #: each channel + * to be marked active is set in a bit vector. Note this list is + * intersected with the available channel list in calculating + * the set of channels actually used in scanning. */ struct ieee80211req_chanlist { - uint8_t ic_channels[IEEE80211_CHAN_BYTES]; + uint8_t ic_channels[32]; /* NB: can be variable length */ }; /* @@ -313,8 +313,13 @@ struct ieee80211req_chanlist { */ struct ieee80211req_chaninfo { u_int ic_nchans; - struct ieee80211_channel ic_chans[IEEE80211_CHAN_MAX]; + struct ieee80211_channel ic_chans[1]; /* NB: variable length */ }; +#define IEEE80211_CHANINFO_SIZE(_nchan) \ + (sizeof(struct ieee80211req_chaninfo) + \ + (((_nchan)-1) * sizeof(struct ieee80211_channel))) +#define IEEE80211_CHANINFO_SPACE(_ci) \ + IEEE80211_CHANINFO_SIZE((_ci)->ic_nchans) /* * Retrieve the WPA/RSN information element for an associated station. @@ -463,6 +468,11 @@ struct ieee80211_regdomain_req { struct ieee80211_regdomain rd; struct ieee80211req_chaninfo chaninfo; }; +#define IEEE80211_REGDOMAIN_SIZE(_nchan) \ + (sizeof(struct ieee80211_regdomain_req) + \ + (((_nchan)-1) * sizeof(struct ieee80211_channel))) +#define IEEE80211_REGDOMAIN_SPACE(_req) \ + IEEE80211_REGDOMAIN_SIZE((_req)->chaninfo.ic_nchans) /* * Get driver capabilities. Driver, hardware crypto, and @@ -475,6 +485,11 @@ struct ieee80211_devcaps_req { uint32_t dc_htcaps; /* HT/802.11n support */ struct ieee80211req_chaninfo dc_chaninfo; }; +#define IEEE80211_DEVCAPS_SIZE(_nchan) \ + (sizeof(struct ieee80211_devcaps_req) + \ + (((_nchan)-1) * sizeof(struct ieee80211_channel))) +#define IEEE80211_DEVCAPS_SPACE(_dc) \ + IEEE80211_DEVCAPS_SIZE((_dc)->dc_chaninfo.ic_nchans) struct ieee80211_chanswitch_req { struct ieee80211_channel csa_chan; /* new channel */ From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 21:34:08 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0BB56106566C; Wed, 28 Jan 2009 21:34:08 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EF0A38FC38; Wed, 28 Jan 2009 21:34:07 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SLY7WY034034; Wed, 28 Jan 2009 21:34:07 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SLY7Fj034033; Wed, 28 Jan 2009 21:34:07 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901282134.n0SLY7Fj034033@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 21:34:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187870 - projects/vap7/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 21:34:08 -0000 Author: sam Date: Wed Jan 28 21:34:07 2009 New Revision: 187870 URL: http://svn.freebsd.org/changeset/base/187870 Log: hand merge r179640; must've been botched in a previous attempt Modified: projects/vap7/sys/net80211/ieee80211_node.c Modified: projects/vap7/sys/net80211/ieee80211_node.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_node.c Wed Jan 28 21:23:40 2009 (r187869) +++ projects/vap7/sys/net80211/ieee80211_node.c Wed Jan 28 21:34:07 2009 (r187870) @@ -2282,8 +2282,7 @@ ieee80211_node_join(struct ieee80211_nod break; } if (aid >= vap->iv_max_aid) { - IEEE80211_SEND_MGMT(ni, resp, - IEEE80211_REASON_ASSOC_TOOMANY); + IEEE80211_SEND_MGMT(ni, resp, IEEE80211_STATUS_TOOMANY); ieee80211_node_leave(ni); return; } From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 21:42:17 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6E93106568B; Wed, 28 Jan 2009 21:42:17 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A48AB8FC3C; Wed, 28 Jan 2009 21:42:17 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SLgHpA034220; Wed, 28 Jan 2009 21:42:17 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SLgHTk034219; Wed, 28 Jan 2009 21:42:17 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901282142.n0SLgHTk034219@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 21:42:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187871 - projects/vap7/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 21:42:18 -0000 Author: sam Date: Wed Jan 28 21:42:17 2009 New Revision: 187871 URL: http://svn.freebsd.org/changeset/base/187871 Log: merge r187678: defer updown event Modified: projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_ioctl.c Modified: projects/vap7/sys/net80211/ieee80211_ioctl.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_ioctl.c Wed Jan 28 21:34:07 2009 (r187870) +++ projects/vap7/sys/net80211/ieee80211_ioctl.c Wed Jan 28 21:42:17 2009 (r187871) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -3263,6 +3264,8 @@ ieee80211_ioctl(struct ifnet *ifp, u_lon ieee80211_stop_locked(vap); } IEEE80211_UNLOCK(ic); + /* Wait for parent ioctl handler if it was queued */ + taskqueue_drain(taskqueue_thread, &ic->ic_parent_task); break; case SIOCADDMULTI: case SIOCDELMULTI: From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 21:52:46 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18036106579A; Wed, 28 Jan 2009 21:52:46 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 04ECF8FC18; Wed, 28 Jan 2009 21:52:46 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SLqkP6034492; Wed, 28 Jan 2009 21:52:46 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SLqjJa034491; Wed, 28 Jan 2009 21:52:45 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901282152.n0SLqjJa034491@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 21:52:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187872 - projects/vap7/sbin/ifconfig X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 21:52:46 -0000 Author: sam Date: Wed Jan 28 21:52:45 2009 New Revision: 187872 URL: http://svn.freebsd.org/changeset/base/187872 Log: sync 802.11 changes with head Modified: projects/vap7/sbin/ifconfig/ (props changed) projects/vap7/sbin/ifconfig/ifieee80211.c Modified: projects/vap7/sbin/ifconfig/ifieee80211.c ============================================================================== --- projects/vap7/sbin/ifconfig/ifieee80211.c Wed Jan 28 21:42:17 2009 (r187871) +++ projects/vap7/sbin/ifconfig/ifieee80211.c Wed Jan 28 21:52:45 2009 (r187872) @@ -79,6 +79,7 @@ #include +#include #include #include #include @@ -119,6 +120,8 @@ #define IEEE80211_NODE_RIFS 0x4000 /* RIFS enabled */ #endif +#define MAXCHAN 1536 /* max 1.5K channels */ + #define MAXCOL 78 static int col; static char spacer; @@ -145,7 +148,7 @@ static void print_channels(int, const st static void regdomain_makechannels(struct ieee80211_regdomain_req *, const struct ieee80211_devcaps_req *); -static struct ieee80211req_chaninfo chaninfo; +static struct ieee80211req_chaninfo *chaninfo; static struct ieee80211_regdomain regdomain; static int gotregdomain = 0; static struct ieee80211_roamparams_req roamparams; @@ -175,10 +178,14 @@ gethtconf(int s) static void getchaninfo(int s) { - if (chaninfo.ic_nchans != 0) + if (chaninfo != NULL) return; - if (get80211(s, IEEE80211_IOC_CHANINFO, &chaninfo, sizeof(chaninfo)) < 0) - errx(1, "unable to get channel information"); + chaninfo = malloc(IEEE80211_CHANINFO_SIZE(MAXCHAN)); + if (chaninfo == NULL) + errx(1, "no space for channel list"); + if (get80211(s, IEEE80211_IOC_CHANINFO, chaninfo, + IEEE80211_CHANINFO_SIZE(MAXCHAN)) < 0) + err(1, "unable to get channel information"); ifmr = ifmedia_getstate(s); gethtconf(s); } @@ -205,19 +212,19 @@ getregdata(void) static int canpromote(int i, int from, int to) { - const struct ieee80211_channel *fc = &chaninfo.ic_chans[i]; + const struct ieee80211_channel *fc = &chaninfo->ic_chans[i]; int j; if ((fc->ic_flags & from) != from) return i; /* NB: quick check exploiting ordering of chans w/ same frequency */ - if (i+1 < chaninfo.ic_nchans && - chaninfo.ic_chans[i+1].ic_freq == fc->ic_freq && - (chaninfo.ic_chans[i+1].ic_flags & to) == to) + if (i+1 < chaninfo->ic_nchans && + chaninfo->ic_chans[i+1].ic_freq == fc->ic_freq && + (chaninfo->ic_chans[i+1].ic_flags & to) == to) return i+1; /* brute force search in case channel list is not ordered */ - for (j = 0; j < chaninfo.ic_nchans; j++) { - const struct ieee80211_channel *tc = &chaninfo.ic_chans[j]; + for (j = 0; j < chaninfo->ic_nchans; j++) { + const struct ieee80211_channel *tc = &chaninfo->ic_chans[j]; if (j != i && tc->ic_freq == fc->ic_freq && (tc->ic_flags & to) == to) return j; @@ -287,13 +294,13 @@ mapfreq(struct ieee80211_channel *chan, { int i; - for (i = 0; i < chaninfo.ic_nchans; i++) { - const struct ieee80211_channel *c = &chaninfo.ic_chans[i]; + for (i = 0; i < chaninfo->ic_nchans; i++) { + const struct ieee80211_channel *c = &chaninfo->ic_chans[i]; if (c->ic_freq == freq && (c->ic_flags & flags) == flags) { if (flags == 0) { /* when ambiguous promote to ``best'' */ - c = &chaninfo.ic_chans[promote(i)]; + c = &chaninfo->ic_chans[promote(i)]; } *chan = *c; return; @@ -307,13 +314,13 @@ mapchan(struct ieee80211_channel *chan, { int i; - for (i = 0; i < chaninfo.ic_nchans; i++) { - const struct ieee80211_channel *c = &chaninfo.ic_chans[i]; + for (i = 0; i < chaninfo->ic_nchans; i++) { + const struct ieee80211_channel *c = &chaninfo->ic_chans[i]; if (c->ic_ieee == ieee && (c->ic_flags & flags) == flags) { if (flags == 0) { /* when ambiguous promote to ``best'' */ - c = &chaninfo.ic_chans[promote(i)]; + c = &chaninfo->ic_chans[promote(i)]; } *chan = *c; return; @@ -331,7 +338,7 @@ getcurchan(int s) int val; /* fall back to legacy ioctl */ if (get80211val(s, IEEE80211_IOC_CHANNEL, &val) < 0) - errx(-1, "cannot figure out current channel"); + err(-1, "cannot figure out current channel"); getchaninfo(s); mapchan(&curchan, val, 0); } @@ -370,7 +377,7 @@ getroam(int s) return; if (get80211(s, IEEE80211_IOC_ROAM, &roamparams, sizeof(roamparams)) < 0) - errx(1, "unable to get roaming parameters"); + err(1, "unable to get roaming parameters"); gotroam = 1; } @@ -388,7 +395,7 @@ gettxparams(int s) return; if (get80211(s, IEEE80211_IOC_TXPARAMS, &txparams, sizeof(txparams)) < 0) - errx(1, "unable to get transmit parameters"); + err(1, "unable to get transmit parameters"); gottxparams = 1; } @@ -406,23 +413,24 @@ getregdomain(int s) return; if (get80211(s, IEEE80211_IOC_REGDOMAIN, ®domain, sizeof(regdomain)) < 0) - errx(1, "unable to get regulatory domain info"); + err(1, "unable to get regulatory domain info"); gotregdomain = 1; } static void getdevcaps(int s, struct ieee80211_devcaps_req *dc) { - if (get80211(s, IEEE80211_IOC_DEVCAPS, dc, sizeof(*dc)) < 0) - errx(1, "unable to get device capabilities"); + if (get80211(s, IEEE80211_IOC_DEVCAPS, dc, + IEEE80211_DEVCAPS_SPACE(dc)) < 0) + err(1, "unable to get device capabilities"); } static void setregdomain_cb(int s, void *arg) { - struct ieee80211_regdomain_req req; + struct ieee80211_regdomain_req *req; struct ieee80211_regdomain *rd = arg; - struct ieee80211_devcaps_req dc; + struct ieee80211_devcaps_req *dc; struct regdata *rdp = getregdata(); if (rd->country != NO_COUNTRY) { @@ -462,34 +470,52 @@ setregdomain_cb(int s, void *arg) rp->name); } } - req.rd = *rd; /* * Fetch the device capabilities and calculate the * full set of netbands for which we request a new * channel list be constructed. Once that's done we * push the regdomain info + channel list to the kernel. */ - getdevcaps(s, &dc); + dc = malloc(IEEE80211_DEVCAPS_SIZE(MAXCHAN)); + if (dc == NULL) + errx(1, "no space for device capabilities"); + dc->dc_chaninfo.ic_nchans = MAXCHAN; + getdevcaps(s, dc); #if 0 if (verbose) { - printf("drivercaps: 0x%x\n", dc.dc_drivercaps); - printf("cryptocaps: 0x%x\n", dc.dc_cryptocaps); - printf("htcaps : 0x%x\n", dc.dc_htcaps); - memcpy(&chaninfo, &dc.dc_chaninfo, sizeof(chaninfo)); - print_channels(s, &dc.dc_chaninfo, 1/*allchans*/, 1/*verbose*/); + printf("drivercaps: 0x%x\n", dc->dc_drivercaps); + printf("cryptocaps: 0x%x\n", dc->dc_cryptocaps); + printf("htcaps : 0x%x\n", dc->dc_htcaps); + memcpy(chaninfo, &dc->dc_chaninfo, + IEEE80211_CHANINFO_SPACE(&dc->dc_chaninfo)); + print_channels(s, &dc->dc_chaninfo, 1/*allchans*/, 1/*verbose*/); } #endif - regdomain_makechannels(&req, &dc); + req = malloc(IEEE80211_REGDOMAIN_SIZE(dc->dc_chaninfo.ic_nchans)); + if (req == NULL) + errx(1, "no space for regdomain request"); + req->rd = *rd; + regdomain_makechannels(req, dc); if (verbose) { LINE_INIT(':'); print_regdomain(rd, 1/*verbose*/); LINE_BREAK(); - memcpy(&chaninfo, &req.chaninfo, sizeof(chaninfo)); - print_channels(s, &req.chaninfo, 1/*allchans*/, 1/*verbose*/); + /* blech, reallocate channel list for new data */ + if (chaninfo != NULL) + free(chaninfo); + chaninfo = malloc(IEEE80211_CHANINFO_SPACE(&req->chaninfo)); + if (chaninfo == NULL) + errx(1, "no space for channel list"); + memcpy(chaninfo, &req->chaninfo, + IEEE80211_CHANINFO_SPACE(&req->chaninfo)); + print_channels(s, &req->chaninfo, 1/*allchans*/, 1/*verbose*/); } - if (req.chaninfo.ic_nchans == 0) + if (req->chaninfo.ic_nchans == 0) errx(1, "no channels calculated"); - set80211(s, IEEE80211_IOC_REGDOMAIN, 0, sizeof(req), &req); + set80211(s, IEEE80211_IOC_REGDOMAIN, 0, + IEEE80211_REGDOMAIN_SPACE(req), req); + free(req); + free(dc); } static int @@ -980,7 +1006,6 @@ static void set80211chanlist(const char *val, int d, int s, const struct afswtch *rafp) { struct ieee80211req_chanlist chanlist; -#define MAXCHAN (sizeof(chanlist.ic_channels)*NBBY) char *temp, *cp, *tp; temp = malloc(strlen(val) + 1); @@ -997,18 +1022,18 @@ set80211chanlist(const char *val, int d, *tp++ = '\0'; switch (sscanf(cp, "%u-%u", &first, &last)) { case 1: - if (first > MAXCHAN) + if (first > IEEE80211_CHAN_MAX) errx(-1, "channel %u out of range, max %zu", - first, MAXCHAN); + first, IEEE80211_CHAN_MAX); setbit(chanlist.ic_channels, first); break; case 2: - if (first > MAXCHAN) + if (first > IEEE80211_CHAN_MAX) errx(-1, "channel %u out of range, max %zu", - first, MAXCHAN); - if (last > MAXCHAN) + first, IEEE80211_CHAN_MAX); + if (last > IEEE80211_CHAN_MAX) errx(-1, "channel %u out of range, max %zu", - last, MAXCHAN); + last, IEEE80211_CHAN_MAX); if (first > last) errx(-1, "void channel range, %u > %u", first, last); @@ -1026,7 +1051,6 @@ set80211chanlist(const char *val, int d, cp = tp; } set80211(s, IEEE80211_IOC_CHANLIST, 0, sizeof(chanlist), &chanlist); -#undef MAXCHAN } static void @@ -1641,7 +1665,7 @@ set80211amsdu(const char *val, int d, in int amsdu; if (get80211val(s, IEEE80211_IOC_AMSDU, &amsdu) < 0) - errx(-1, "cannot get AMSDU setting"); + err(-1, "cannot get AMSDU setting"); if (d < 0) { d = -d; amsdu &= ~d; @@ -1765,6 +1789,19 @@ chanlookup(const struct ieee80211_channe return NULL; } +static int +chanfind(const struct ieee80211_channel chans[], int nchans, int flags) +{ + int i; + + for (i = 0; i < nchans; i++) { + const struct ieee80211_channel *c = &chans[i]; + if ((c->ic_flags & flags) == flags) + return 1; + } + return 0; +} + static void regdomain_addchans(struct ieee80211req_chaninfo *ci, const netband_head *bands, @@ -1775,53 +1812,72 @@ regdomain_addchans(struct ieee80211req_c const struct netband *nb; const struct freqband *b; struct ieee80211_channel *c, *prev; - int freq, channelSep; + int freq, channelSep, hasHalfChans, hasQuarterChans; channelSep = (chanFlags & IEEE80211_CHAN_2GHZ) ? 0 : 40; + hasHalfChans = chanfind(avail->ic_chans, avail->ic_nchans, + IEEE80211_CHAN_HALF | + (chanFlags & (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ))); + hasQuarterChans = chanfind(avail->ic_chans, avail->ic_nchans, + IEEE80211_CHAN_QUARTER | + (chanFlags & (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ))); LIST_FOREACH(nb, bands, next) { b = nb->band; - if (verbose) - printf("%s: chanFlags 0x%x b %p\n", - __func__, chanFlags, b); + if (verbose) { + printf("%s:", __func__); + printb(" chanFlags", chanFlags, IEEE80211_CHAN_BITS); + printb(" bandFlags", nb->flags | b->flags, + IEEE80211_CHAN_BITS); + putchar('\n'); + } prev = NULL; for (freq = b->freqStart; freq <= b->freqEnd; freq += b->chanSep) { uint32_t flags = nb->flags | b->flags; /* check if device can operate on this frequency */ - if (chanlookup(avail->ic_chans, avail->ic_nchans, freq, chanFlags) == NULL) { - if (verbose) - printf("%u: skip, flags 0x%x not available\n", freq, chanFlags); - continue; - } /* - * NB: don't enforce 1/2 and 1/4 rate channels being - * specified in the device's calibration list for - * 900MHz cards because most are not self-identifying. + * XXX GSM frequency mapping is handled in the kernel + * so we cannot find them in the calibration table; + * just construct the list and the kernel will reject + * if it's wrong. */ - if ((flags & IEEE80211_CHAN_HALF) && - ((chanFlags & IEEE80211_CHAN_HALF) == 0 && - (flags & IEEE80211_CHAN_GSM) == 0)) { + if (chanlookup(avail->ic_chans, avail->ic_nchans, freq, chanFlags) == NULL && + (flags & IEEE80211_CHAN_GSM) == 0) { + if (verbose) { + printf("%u: skip, ", freq); + printb("flags", chanFlags, + IEEE80211_CHAN_BITS); + printf(" not available\n"); + } + continue; + } + if ((flags & IEEE80211_CHAN_HALF) && !hasHalfChans) { if (verbose) - printf("%u: skip, device does not support half-rate channels\n", freq); + printf("%u: skip, device does not " + "support half-rate channel\n", + freq); continue; } if ((flags & IEEE80211_CHAN_QUARTER) && - ((chanFlags & IEEE80211_CHAN_QUARTER) == 0 && - (flags & IEEE80211_CHAN_GSM) == 0)) { + !hasQuarterChans) { if (verbose) - printf("%u: skip, device does not support quarter-rate channels\n", freq); + printf("%u: skip, device does not " + "support quarter-rate channel\n", + freq); continue; } if ((flags & IEEE80211_CHAN_HT20) && (chanFlags & IEEE80211_CHAN_HT20) == 0) { if (verbose) - printf("%u: skip, device does not support HT20 operation\n", freq); + printf("%u: skip, device does not " + "support HT20 operation\n", freq); continue; } if ((flags & IEEE80211_CHAN_HT40) && (chanFlags & IEEE80211_CHAN_HT40) == 0) { if (verbose) - printf("%u: skip, device does not support HT40 operation\n", freq); + printf("%u: skip, device does not " + "support HT40 operation\n", freq); continue; } if ((flags & REQ_ECM) && !reg->ecm) { @@ -1844,10 +1900,12 @@ regdomain_addchans(struct ieee80211req_c } if (ci->ic_nchans == IEEE80211_CHAN_MAX) { if (verbose) - printf("%u: skip, channel table full\n", freq); + printf("%u: skip, channel table full\n", + freq); break; } c = &ci->ic_chans[ci->ic_nchans++]; + memset(c, 0, sizeof(*c)); c->ic_freq = freq; c->ic_flags = chanFlags | (flags &~ (REQ_FLAGS | IEEE80211_CHAN_HT40)); @@ -1855,10 +1913,12 @@ regdomain_addchans(struct ieee80211req_c c->ic_maxregpower = nb->maxPowerDFS; else c->ic_maxregpower = nb->maxPower; - if (verbose) - printf("[%3d] add freq %u flags 0x%x power %u\n", - ci->ic_nchans-1, c->ic_freq, c->ic_flags, - c->ic_maxregpower); + if (verbose) { + printf("[%3d] add freq %u ", + ci->ic_nchans-1, c->ic_freq); + printb("flags", c->ic_flags, IEEE80211_CHAN_BITS); + printf(" power %u\n", c->ic_maxregpower); + } /* NB: kernel fills in other fields */ prev = c; } @@ -1896,30 +1956,23 @@ regdomain_makechannels( errx(1, "internal error, regdomain %d not found", reg->regdomain); if (rd->sku != SKU_DEBUG) { - memset(ci, 0, sizeof(*ci)); + /* + * regdomain_addchans incrememnts the channel count for + * each channel it adds so initialize ic_nchans to zero. + * Note that we know we have enough space to hold all possible + * channels because the devcaps list size was used to + * allocate our request. + */ + ci->ic_nchans = 0; if (!LIST_EMPTY(&rd->bands_11b)) regdomain_addchans(ci, &rd->bands_11b, reg, IEEE80211_CHAN_B, &dc->dc_chaninfo); - if (!LIST_EMPTY(&rd->bands_11g)) { + if (!LIST_EMPTY(&rd->bands_11g)) regdomain_addchans(ci, &rd->bands_11g, reg, IEEE80211_CHAN_G, &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11g, reg, - IEEE80211_CHAN_G | IEEE80211_CHAN_HALF, - &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11g, reg, - IEEE80211_CHAN_G | IEEE80211_CHAN_QUARTER, - &dc->dc_chaninfo); - } - if (!LIST_EMPTY(&rd->bands_11a)) { + if (!LIST_EMPTY(&rd->bands_11a)) regdomain_addchans(ci, &rd->bands_11a, reg, IEEE80211_CHAN_A, &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11a, reg, - IEEE80211_CHAN_A | IEEE80211_CHAN_HALF, - &dc->dc_chaninfo); - regdomain_addchans(ci, &rd->bands_11a, reg, - IEEE80211_CHAN_A | IEEE80211_CHAN_QUARTER, - &dc->dc_chaninfo); - } if (!LIST_EMPTY(&rd->bands_11na)) { regdomain_addchans(ci, &rd->bands_11na, reg, IEEE80211_CHAN_A | IEEE80211_CHAN_HT20, @@ -1945,7 +1998,8 @@ regdomain_makechannels( qsort(ci->ic_chans, ci->ic_nchans, sizeof(ci->ic_chans[0]), regdomain_sort); } else - *ci = dc->dc_chaninfo; + memcpy(ci, &dc->dc_chaninfo, + IEEE80211_CHANINFO_SPACE(&dc->dc_chaninfo)); } static void @@ -3065,23 +3119,16 @@ get_chaninfo(const struct ieee80211_chan buf[0] = '\0'; if (IEEE80211_IS_CHAN_FHSS(c)) strlcat(buf, " FHSS", bsize); - if (IEEE80211_IS_CHAN_A(c)) { - if (IEEE80211_IS_CHAN_HALF(c)) - strlcat(buf, " 11a/10Mhz", bsize); - else if (IEEE80211_IS_CHAN_QUARTER(c)) - strlcat(buf, " 11a/5Mhz", bsize); - else - strlcat(buf, " 11a", bsize); - } - if (IEEE80211_IS_CHAN_ANYG(c)) { - if (IEEE80211_IS_CHAN_HALF(c)) - strlcat(buf, " 11g/10Mhz", bsize); - else if (IEEE80211_IS_CHAN_QUARTER(c)) - strlcat(buf, " 11g/5Mhz", bsize); - else - strlcat(buf, " 11g", bsize); - } else if (IEEE80211_IS_CHAN_B(c)) + if (IEEE80211_IS_CHAN_A(c)) + strlcat(buf, " 11a", bsize); + else if (IEEE80211_IS_CHAN_ANYG(c)) + strlcat(buf, " 11g", bsize); + else if (IEEE80211_IS_CHAN_B(c)) strlcat(buf, " 11b", bsize); + if (IEEE80211_IS_CHAN_HALF(c)) + strlcat(buf, "/10Mhz", bsize); + if (IEEE80211_IS_CHAN_QUARTER(c)) + strlcat(buf, "/5Mhz", bsize); if (IEEE80211_IS_CHAN_TURBO(c)) strlcat(buf, " Turbo", bsize); if (precise) { @@ -3109,23 +3156,49 @@ print_chaninfo(const struct ieee80211_ch get_chaninfo(c, verb, buf, sizeof(buf))); } +static int +chanpref(const struct ieee80211_channel *c) +{ + if (IEEE80211_IS_CHAN_HT40(c)) + return 40; + if (IEEE80211_IS_CHAN_HT20(c)) + return 30; + if (IEEE80211_IS_CHAN_HALF(c)) + return 10; + if (IEEE80211_IS_CHAN_QUARTER(c)) + return 5; + if (IEEE80211_IS_CHAN_TURBO(c)) + return 25; + if (IEEE80211_IS_CHAN_A(c)) + return 20; + if (IEEE80211_IS_CHAN_G(c)) + return 20; + if (IEEE80211_IS_CHAN_B(c)) + return 15; + if (IEEE80211_IS_CHAN_PUREG(c)) + return 15; + return 0; +} + static void print_channels(int s, const struct ieee80211req_chaninfo *chans, int allchans, int verb) { - struct ieee80211req_chaninfo achans; + struct ieee80211req_chaninfo *achans; uint8_t reported[IEEE80211_CHAN_BYTES]; const struct ieee80211_channel *c; int i, half; - memset(&achans, 0, sizeof(achans)); + achans = malloc(IEEE80211_CHANINFO_SPACE(chans)); + if (achans == NULL) + errx(1, "no space for active channel list"); + achans->ic_nchans = 0; memset(reported, 0, sizeof(reported)); if (!allchans) { struct ieee80211req_chanlist active; if (get80211(s, IEEE80211_IOC_CHANLIST, &active, sizeof(active)) < 0) errx(1, "unable to get active channel list"); - memset(&achans, 0, sizeof(achans)); for (i = 0; i < chans->ic_nchans; i++) { c = &chans->ic_chans[i]; if (!isset(active.ic_channels, c->ic_ieee)) @@ -3138,9 +3211,9 @@ print_channels(int s, const struct ieee8 */ if (isset(reported, c->ic_ieee) && !verb) { /* XXX we assume duplicates are adjacent */ - achans.ic_chans[achans.ic_nchans-1] = *c; + achans->ic_chans[achans->ic_nchans-1] = *c; } else { - achans.ic_chans[achans.ic_nchans++] = *c; + achans->ic_chans[achans->ic_nchans++] = *c; setbit(reported, c->ic_ieee); } } @@ -3150,33 +3223,37 @@ print_channels(int s, const struct ieee8 /* suppress duplicates as above */ if (isset(reported, c->ic_ieee) && !verb) { /* XXX we assume duplicates are adjacent */ - achans.ic_chans[achans.ic_nchans-1] = *c; + struct ieee80211_channel *a = + &achans->ic_chans[achans->ic_nchans-1]; + if (chanpref(c) > chanpref(a)) + *a = *c; } else { - achans.ic_chans[achans.ic_nchans++] = *c; + achans->ic_chans[achans->ic_nchans++] = *c; setbit(reported, c->ic_ieee); } } } - half = achans.ic_nchans / 2; - if (achans.ic_nchans % 2) + half = achans->ic_nchans / 2; + if (achans->ic_nchans % 2) half++; - for (i = 0; i < achans.ic_nchans / 2; i++) { - print_chaninfo(&achans.ic_chans[i], verb); - print_chaninfo(&achans.ic_chans[half+i], verb); + for (i = 0; i < achans->ic_nchans / 2; i++) { + print_chaninfo(&achans->ic_chans[i], verb); + print_chaninfo(&achans->ic_chans[half+i], verb); printf("\n"); } - if (achans.ic_nchans % 2) { - print_chaninfo(&achans.ic_chans[i], verb); + if (achans->ic_nchans % 2) { + print_chaninfo(&achans->ic_chans[i], verb); printf("\n"); } + free(achans); } static void list_channels(int s, int allchans) { getchaninfo(s); - print_channels(s, &chaninfo, allchans, verbose); + print_channels(s, chaninfo, allchans, verbose); } static void @@ -3201,48 +3278,52 @@ print_txpow_verbose(const struct ieee802 static void list_txpow(int s) { - struct ieee80211req_chaninfo achans; + struct ieee80211req_chaninfo *achans; uint8_t reported[IEEE80211_CHAN_BYTES]; struct ieee80211_channel *c, *prev; int i, half; getchaninfo(s); - memset(&achans, 0, sizeof(achans)); + achans = malloc(IEEE80211_CHANINFO_SPACE(chaninfo)); + if (achans == NULL) + errx(1, "no space for active channel list"); + achans->ic_nchans = 0; memset(reported, 0, sizeof(reported)); - for (i = 0; i < chaninfo.ic_nchans; i++) { - c = &chaninfo.ic_chans[i]; + for (i = 0; i < chaninfo->ic_nchans; i++) { + c = &chaninfo->ic_chans[i]; /* suppress duplicates as above */ if (isset(reported, c->ic_ieee) && !verbose) { /* XXX we assume duplicates are adjacent */ - prev = &achans.ic_chans[achans.ic_nchans-1]; + prev = &achans->ic_chans[achans->ic_nchans-1]; /* display highest power on channel */ if (c->ic_maxpower > prev->ic_maxpower) *prev = *c; } else { - achans.ic_chans[achans.ic_nchans++] = *c; + achans->ic_chans[achans->ic_nchans++] = *c; setbit(reported, c->ic_ieee); } } if (!verbose) { - half = achans.ic_nchans / 2; - if (achans.ic_nchans % 2) + half = achans->ic_nchans / 2; + if (achans->ic_nchans % 2) half++; - for (i = 0; i < achans.ic_nchans / 2; i++) { - print_txpow(&achans.ic_chans[i]); - print_txpow(&achans.ic_chans[half+i]); + for (i = 0; i < achans->ic_nchans / 2; i++) { + print_txpow(&achans->ic_chans[i]); + print_txpow(&achans->ic_chans[half+i]); printf("\n"); } - if (achans.ic_nchans % 2) { - print_txpow(&achans.ic_chans[i]); + if (achans->ic_nchans % 2) { + print_txpow(&achans->ic_chans[i]); printf("\n"); } } else { - for (i = 0; i < achans.ic_nchans; i++) { - print_txpow_verbose(&achans.ic_chans[i]); + for (i = 0; i < achans->ic_nchans; i++) { + print_txpow_verbose(&achans->ic_chans[i]); printf("\n"); } } + free(achans); } static void @@ -3256,29 +3337,34 @@ list_keys(int s) "\21MONITOR\22DFS\30WPA1\31WPA2\32BURST\33WME\34WDS\36BGSCAN" \ "\37TXFRAG\40TDMA" -#define IEEE80211_CRYPTO_BITS \ - "\20\1WEP\2TKIP\3AES\4AES_CCM\5TKIPMIC\6CKIP\12PMGT" - -#define IEEE80211_HTCAP_BITS \ - "\20\1LDPC\2CHWIDTH40\5GREENFIELD\6SHORTGI20\7SHORTGI40\10TXSTBC" \ - "\21AMPDU\22AMSDU\23HT" - static void list_capabilities(int s) { - struct ieee80211_devcaps_req dc; + struct ieee80211_devcaps_req *dc; - getdevcaps(s, &dc); - printb("drivercaps", dc.dc_drivercaps, IEEE80211_C_BITS); - if (dc.dc_cryptocaps != 0 || verbose) { + if (verbose) + dc = malloc(IEEE80211_DEVCAPS_SIZE(MAXCHAN)); + else + dc = malloc(IEEE80211_DEVCAPS_SIZE(1)); + if (dc == NULL) + errx(1, "no space for device capabilities"); + dc->dc_chaninfo.ic_nchans = verbose ? MAXCHAN : 1; + getdevcaps(s, dc); + printb("drivercaps", dc->dc_drivercaps, IEEE80211_C_BITS); + if (dc->dc_cryptocaps != 0 || verbose) { putchar('\n'); - printb("cryptocaps", dc.dc_cryptocaps, IEEE80211_CRYPTO_BITS); + printb("cryptocaps", dc->dc_cryptocaps, IEEE80211_CRYPTO_BITS); } - if (dc.dc_htcaps != 0 || verbose) { + if (dc->dc_htcaps != 0 || verbose) { putchar('\n'); - printb("htcaps", dc.dc_htcaps, IEEE80211_HTCAP_BITS); + printb("htcaps", dc->dc_htcaps, IEEE80211_HTCAP_BITS); } putchar('\n'); + if (verbose) { + chaninfo = &dc->dc_chaninfo; /* XXX */ + print_channels(s, &dc->dc_chaninfo, 1/*allchans*/, verbose); + } + free(dc); } static int @@ -3557,7 +3643,7 @@ list_regdomain(int s, int channelsalso) spacer = ':'; print_regdomain(®domain, 1); LINE_BREAK(); - print_channels(s, &chaninfo, 1/*allchans*/, 1/*verbose*/); + print_channels(s, chaninfo, 1/*allchans*/, 1/*verbose*/); } else print_regdomain(®domain, verbose); } @@ -4369,6 +4455,7 @@ get80211len(int s, int type, void *data, (void) strncpy(ireq.i_name, name, sizeof(ireq.i_name)); ireq.i_type = type; ireq.i_len = len; + assert(ireq.i_len == len); /* NB: check for 16-bit truncation */ ireq.i_data = data; if (ioctl(s, SIOCG80211, &ireq) < 0) return -1; @@ -4400,6 +4487,7 @@ set80211(int s, int type, int val, int l ireq.i_type = type; ireq.i_val = val; ireq.i_len = len; + assert(ireq.i_len == len); /* NB: check for 16-bit truncation */ ireq.i_data = data; if (ioctl(s, SIOCS80211, &ireq) < 0) err(1, "SIOCS80211"); From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 21:54:25 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2F49110658B1; Wed, 28 Jan 2009 21:54:25 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 11E478FC17; Wed, 28 Jan 2009 21:54:21 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SLsLLX034567; Wed, 28 Jan 2009 21:54:21 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SLsKxb034560; Wed, 28 Jan 2009 21:54:20 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901282154.n0SLsKxb034560@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 21:54:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187873 - in projects/vap7/sys: . arm/conf conf contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/at... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 21:54:27 -0000 Author: sam Date: Wed Jan 28 21:54:20 2009 New Revision: 187873 URL: http://svn.freebsd.org/changeset/base/187873 Log: merge r187831: overhaul regulatory support Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/arm/conf/AVILA projects/vap7/sys/conf/options projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ah.c projects/vap7/sys/dev/ath/ath_hal/ah.h projects/vap7/sys/dev/ath/ath_hal/ah_internal.h projects/vap7/sys/dev/ath/ath_hal/ah_regdomain.c projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ar5210.h projects/vap7/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/vap7/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c projects/vap7/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c projects/vap7/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211.h projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c projects/vap7/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ar2316.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar2317.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar2413.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar2425.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5111.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5112.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/vap7/sys/dev/ath/ath_hal/ar5212/ar5413.c projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ar5312.h projects/vap7/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ar2133.c projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416_cal.h projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/vap7/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/vap7/sys/dev/ath/if_ath.c projects/vap7/sys/dev/ath/if_athvar.h projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) Modified: projects/vap7/sys/arm/conf/AVILA ============================================================================== --- projects/vap7/sys/arm/conf/AVILA Wed Jan 28 21:52:45 2009 (r187872) +++ projects/vap7/sys/arm/conf/AVILA Wed Jan 28 21:54:20 2009 (r187873) @@ -127,6 +127,7 @@ device random # Entrop # Wireless NIC cards device wlan # 802.11 support +options IEEE80211_DEBUG device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support Modified: projects/vap7/sys/conf/options ============================================================================== --- projects/vap7/sys/conf/options Wed Jan 28 21:52:45 2009 (r187872) +++ projects/vap7/sys/conf/options Wed Jan 28 21:54:20 2009 (r187873) @@ -741,7 +741,7 @@ AH_WRITE_EEPROM opt_ah.h AH_PRIVATE_DIAG opt_ah.h AH_NEED_DESC_SWAP opt_ah.h AH_USE_INIPDGAIN opt_ah.h -AH_SUPPORT_11D opt_ah.h +AH_MAXCHAN opt_ah.h # options for the Marvell 8335 wireless driver MALO_DEBUG opt_malo.h Modified: projects/vap7/sys/dev/ath/ath_hal/ah.c ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ah.c Wed Jan 28 21:52:45 2009 (r187872) +++ projects/vap7/sys/dev/ath/ath_hal/ah.c Wed Jan 28 21:54:20 2009 (r187873) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * Copyright (c) 2002-2008 Atheros Communications, Inc. * * Permission to use, copy, modify, and/or distribute this software for any @@ -78,6 +78,15 @@ ath_hal_attach(uint16_t devid, HAL_SOFTC return AH_NULL; } +/* + * Return the mask of available modes based on the hardware capabilities. + */ +u_int +ath_hal_getwirelessmodes(struct ath_hal*ah) +{ + return ath_hal_getWirelessModes(ah); +} + /* linker set of registered RF backends */ OS_SET_DECLARE(ah_rfs, struct ath_hal_rf); @@ -152,8 +161,10 @@ ath_hal_computetxtime(struct ath_hal *ah kbps = rates->info[rateix].rateKbps; /* * index can be invalid duting dynamic Turbo transitions. + * XXX */ - if(kbps == 0) return 0; + if (kbps == 0) + return 0; switch (rates->info[rateix].phy) { case IEEE80211_T_CCK: @@ -187,8 +198,8 @@ ath_hal_computetxtime(struct ath_hal *ah #define OFDM_PLCP_BITS_QUARTER 22 #define OFDM_SYMBOL_TIME_QUARTER 16 - if (AH_PRIVATE(ah)->ah_curchan && - IS_CHAN_QUARTER_RATE(AH_PRIVATE(ah)->ah_curchan)) { + if (AH_PRIVATE(ah)->ah_curchan != AH_NULL && + IEEE80211_IS_CHAN_QUARTER(AH_PRIVATE(ah)->ah_curchan)) { bitsPerSymbol = (kbps * OFDM_SYMBOL_TIME_QUARTER) / 1000; HALASSERT(bitsPerSymbol != 0); @@ -197,8 +208,8 @@ ath_hal_computetxtime(struct ath_hal *ah txTime = OFDM_SIFS_TIME_QUARTER + OFDM_PREAMBLE_TIME_QUARTER + (numSymbols * OFDM_SYMBOL_TIME_QUARTER); - } else if (AH_PRIVATE(ah)->ah_curchan && - IS_CHAN_HALF_RATE(AH_PRIVATE(ah)->ah_curchan)) { + } else if (AH_PRIVATE(ah)->ah_curchan != AH_NULL && + IEEE80211_IS_CHAN_HALF(AH_PRIVATE(ah)->ah_curchan)) { bitsPerSymbol = (kbps * OFDM_SYMBOL_TIME_HALF) / 1000; HALASSERT(bitsPerSymbol != 0); @@ -252,71 +263,6 @@ ath_hal_computetxtime(struct ath_hal *ah return txTime; } -static __inline int -mapgsm(u_int freq, u_int flags) -{ - freq *= 10; - if (flags & CHANNEL_QUARTER) - freq += 5; - else if (flags & CHANNEL_HALF) - freq += 10; - else - freq += 20; - return (freq - 24220) / 5; -} - -static __inline int -mappsb(u_int freq, u_int flags) -{ - return ((freq * 10) + (((freq % 5) == 2) ? 5 : 0) - 49400) / 5; -} - -/* - * Convert GHz frequency to IEEE channel number. - */ -int -ath_hal_mhz2ieee(struct ath_hal *ah, u_int freq, u_int flags) -{ - if (flags & CHANNEL_2GHZ) { /* 2GHz band */ - if (freq == 2484) - return 14; - if (freq < 2484) { - if (ath_hal_isgsmsku(ah)) - return mapgsm(freq, flags); - return ((int)freq - 2407) / 5; - } else - return 15 + ((freq - 2512) / 20); - } else if (flags & CHANNEL_5GHZ) {/* 5Ghz band */ - if (ath_hal_ispublicsafetysku(ah) && - IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) { - return mappsb(freq, flags); - } else if ((flags & CHANNEL_A) && (freq <= 5000)) { - return (freq - 4000) / 5; - } else { - return (freq - 5000) / 5; - } - } else { /* either, guess */ - if (freq == 2484) - return 14; - if (freq < 2484) { - if (ath_hal_isgsmsku(ah)) - return mapgsm(freq, flags); - return ((int)freq - 2407) / 5; - } - if (freq < 5000) { - if (ath_hal_ispublicsafetysku(ah) && - IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) { - return mappsb(freq, flags); - } else if (freq > 4900) { - return (freq - 4000) / 5; - } else { - return 15 + ((freq - 2512) / 20); - } - } - return (freq - 5000) / 5; - } -} - typedef enum { WIRELESS_MODE_11a = 0, WIRELESS_MODE_TURBO = 1, @@ -328,15 +274,15 @@ typedef enum { } WIRELESS_MODE; static WIRELESS_MODE -ath_hal_chan2wmode(struct ath_hal *ah, const HAL_CHANNEL *chan) +ath_hal_chan2wmode(struct ath_hal *ah, const struct ieee80211_channel *chan) { - if (IS_CHAN_CCK(chan)) + if (IEEE80211_IS_CHAN_B(chan)) return WIRELESS_MODE_11b; - if (IS_CHAN_G(chan)) + if (IEEE80211_IS_CHAN_G(chan)) return WIRELESS_MODE_11g; - if (IS_CHAN_108G(chan)) + if (IEEE80211_IS_CHAN_108G(chan)) return WIRELESS_MODE_108g; - if (IS_CHAN_TURBO(chan)) + if (IEEE80211_IS_CHAN_TURBO(chan)) return WIRELESS_MODE_TURBO; return WIRELESS_MODE_11a; } @@ -350,17 +296,17 @@ static const uint8_t CLOCK_RATE[] = { 4 u_int ath_hal_mac_clks(struct ath_hal *ah, u_int usecs) { - const HAL_CHANNEL *c = (const HAL_CHANNEL *) AH_PRIVATE(ah)->ah_curchan; + const struct ieee80211_channel *c = AH_PRIVATE(ah)->ah_curchan; u_int clks; /* NB: ah_curchan may be null when called attach time */ if (c != AH_NULL) { clks = usecs * CLOCK_RATE[ath_hal_chan2wmode(ah, c)]; - if (IS_CHAN_HT40(c)) + if (IEEE80211_IS_CHAN_HT40(c)) clks <<= 1; - else if (IS_CHAN_HALF_RATE(c)) + else if (IEEE80211_IS_CHAN_HALF(c)) clks >>= 1; - else if (IS_CHAN_QUARTER_RATE(c)) + else if (IEEE80211_IS_CHAN_QUARTER(c)) clks >>= 2; } else clks = usecs * CLOCK_RATE[WIRELESS_MODE_11b]; @@ -370,17 +316,17 @@ ath_hal_mac_clks(struct ath_hal *ah, u_i u_int ath_hal_mac_usec(struct ath_hal *ah, u_int clks) { - const HAL_CHANNEL *c = (const HAL_CHANNEL *) AH_PRIVATE(ah)->ah_curchan; + const struct ieee80211_channel *c = AH_PRIVATE(ah)->ah_curchan; u_int usec; /* NB: ah_curchan may be null when called attach time */ if (c != AH_NULL) { usec = clks / CLOCK_RATE[ath_hal_chan2wmode(ah, c)]; - if (IS_CHAN_HT40(c)) + if (IEEE80211_IS_CHAN_HT40(c)) usec >>= 1; - else if (IS_CHAN_HALF_RATE(c)) + else if (IEEE80211_IS_CHAN_HALF(c)) usec <<= 1; - else if (IS_CHAN_QUARTER_RATE(c)) + else if (IEEE80211_IS_CHAN_QUARTER(c)) usec <<= 2; } else usec = clks / CLOCK_RATE[WIRELESS_MODE_11b]; @@ -505,11 +451,7 @@ ath_hal_getcapability(struct ath_hal *ah } return HAL_ENOTSUPP; case HAL_CAP_11D: -#ifdef AH_SUPPORT_11D return HAL_OK; -#else - return HAL_ENOTSUPP; -#endif case HAL_CAP_RXORN_FATAL: /* HAL_INT_RXORN treated as fatal */ return AH_PRIVATE(ah)->ah_rxornIsFatal ? HAL_OK : HAL_ENOTSUPP; case HAL_CAP_HT: @@ -764,7 +706,7 @@ static const int16_t NOISE_FLOOR[] = { - * implement the ah_getChanNoise method. */ int16_t -ath_hal_getChanNoise(struct ath_hal *ah, HAL_CHANNEL *chan) +ath_hal_getChanNoise(struct ath_hal *ah, const struct ieee80211_channel *chan) { HAL_CHANNEL_INTERNAL *ichan; @@ -772,7 +714,7 @@ ath_hal_getChanNoise(struct ath_hal *ah, if (ichan == AH_NULL) { HALDEBUG(ah, HAL_DEBUG_NFCAL, "%s: invalid channel %u/0x%x; no mapping\n", - __func__, chan->channel, chan->channelFlags); + __func__, chan->ic_freq, chan->ic_flags); return 0; } if (ichan->rawNoiseFloor == 0) { @@ -811,8 +753,8 @@ ath_hal_process_noisefloor(struct ath_ha c = &AH_PRIVATE(ah)->ah_channels[i]; if (c->rawNoiseFloor >= 0) continue; - mode = ath_hal_chan2wmode(ah, (HAL_CHANNEL *) c); - HALASSERT(mode < WIRELESS_MODE_MAX); + /* XXX can't identify proper mode */ + mode = IS_CHAN_5GHZ(c) ? WIRELESS_MODE_11a : WIRELESS_MODE_11g; nf = c->rawNoiseFloor + NOISE_FLOOR[mode] + ath_hal_getNfAdjust(ah, c); if (IS_CHAN_5GHZ(c)) { @@ -838,9 +780,8 @@ ath_hal_process_noisefloor(struct ath_ha /* Apply correction factor */ c->noiseFloorAdjust = ath_hal_getNfAdjust(ah, c) + (IS_CHAN_5GHZ(c) ? correct5 : correct2); - HALDEBUG(ah, HAL_DEBUG_NFCAL, "%u/0x%x raw nf %d adjust %d\n", - c->channel, c->channelFlags, c->rawNoiseFloor, - c->noiseFloorAdjust); + HALDEBUG(ah, HAL_DEBUG_NFCAL, "%u raw nf %d adjust %d\n", + c->channel, c->rawNoiseFloor, c->noiseFloorAdjust); } } Modified: projects/vap7/sys/dev/ath/ath_hal/ah.h ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ah.h Wed Jan 28 21:52:45 2009 (r187872) +++ projects/vap7/sys/dev/ath/ath_hal/ah.h Wed Jan 28 21:54:20 2009 (r187873) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * Copyright (c) 2002-2008 Atheros Communications, Inc. * * Permission to use, copy, modify, and/or distribute this software for any @@ -14,7 +14,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: ah.h,v 1.15 2008/11/15 03:43:50 sam Exp $ + * $FreeBSD$ */ #ifndef _ATH_AH_H_ @@ -63,6 +63,8 @@ typedef enum { HAL_ENOTSUPP = 13, /* Hardware revision not supported */ HAL_ESELFTEST = 14, /* Hardware self-test failed */ HAL_EINPROGRESS = 15, /* Operation incomplete */ + HAL_EEBADREG = 16, /* EEPROM invalid regulatory contents */ + HAL_EEBADCC = 17, /* EEPROM invalid country code */ } HAL_STATUS; typedef enum { @@ -362,64 +364,8 @@ typedef enum { HAL_RFGAIN_NEED_CHANGE = 2 } HAL_RFGAIN; -/* - * Channels are specified by frequency. - */ -typedef struct { - uint32_t channelFlags; /* see below */ - uint16_t channel; /* setting in Mhz */ - uint8_t privFlags; - int8_t maxRegTxPower; /* max regulatory tx power in dBm */ - int8_t maxTxPower; /* max true tx power in 0.5 dBm */ - int8_t minTxPower; /* min true tx power in 0.5 dBm */ -} HAL_CHANNEL; - -/* channelFlags */ -#define CHANNEL_CW_INT 0x00002 /* CW interference detected on channel */ -#define CHANNEL_TURBO 0x00010 /* Turbo Channel */ -#define CHANNEL_CCK 0x00020 /* CCK channel */ -#define CHANNEL_OFDM 0x00040 /* OFDM channel */ -#define CHANNEL_2GHZ 0x00080 /* 2 GHz spectrum channel */ -#define CHANNEL_5GHZ 0x00100 /* 5 GHz spectrum channel */ -#define CHANNEL_PASSIVE 0x00200 /* Only passive scan allowed in the channel */ -#define CHANNEL_DYN 0x00400 /* dynamic CCK-OFDM channel */ -#define CHANNEL_STURBO 0x02000 /* Static turbo, no 11a-only usage */ -#define CHANNEL_HALF 0x04000 /* Half rate channel */ -#define CHANNEL_QUARTER 0x08000 /* Quarter rate channel */ -#define CHANNEL_HT20 0x10000 /* 11n 20MHZ channel */ -#define CHANNEL_HT40PLUS 0x20000 /* 11n 40MHZ channel w/ ext chan above */ -#define CHANNEL_HT40MINUS 0x40000 /* 11n 40MHZ channel w/ ext chan below */ - -/* privFlags */ -#define CHANNEL_INTERFERENCE 0x01 /* Software use: channel interference - used for as AR as well as RADAR - interference detection */ -#define CHANNEL_DFS 0x02 /* DFS required on channel */ -#define CHANNEL_4MS_LIMIT 0x04 /* 4msec packet limit on this channel */ -#define CHANNEL_DFS_CLEAR 0x08 /* if channel has been checked for DFS */ - -#define CHANNEL_A (CHANNEL_5GHZ|CHANNEL_OFDM) -#define CHANNEL_B (CHANNEL_2GHZ|CHANNEL_CCK) -#define CHANNEL_PUREG (CHANNEL_2GHZ|CHANNEL_OFDM) -#ifdef notdef -#define CHANNEL_G (CHANNEL_2GHZ|CHANNEL_DYN) -#else -#define CHANNEL_G (CHANNEL_2GHZ|CHANNEL_OFDM) -#endif -#define CHANNEL_T (CHANNEL_5GHZ|CHANNEL_OFDM|CHANNEL_TURBO) -#define CHANNEL_ST (CHANNEL_T|CHANNEL_STURBO) -#define CHANNEL_108G (CHANNEL_2GHZ|CHANNEL_OFDM|CHANNEL_TURBO) -#define CHANNEL_108A CHANNEL_T -#define CHANNEL_G_HT20 (CHANNEL_G|CHANNEL_HT20) -#define CHANNEL_A_HT20 (CHANNEL_A|CHANNEL_HT20) -#define CHANNEL_G_HT40PLUS (CHANNEL_G|CHANNEL_HT40PLUS) -#define CHANNEL_G_HT40MINUS (CHANNEL_G|CHANNEL_HT40MINUS) -#define CHANNEL_A_HT40PLUS (CHANNEL_A|CHANNEL_HT40PLUS) -#define CHANNEL_A_HT40MINUS (CHANNEL_A|CHANNEL_HT40MINUS) -#define CHANNEL_ALL \ - (CHANNEL_OFDM | CHANNEL_CCK| CHANNEL_2GHZ | CHANNEL_5GHZ | \ - CHANNEL_TURBO | CHANNEL_HT20 | CHANNEL_HT40PLUS | CHANNEL_HT40MINUS) -#define CHANNEL_ALL_NOTURBO (CHANNEL_ALL &~ CHANNEL_TURBO) +typedef uint16_t HAL_CTRY_CODE; /* country code */ +typedef uint16_t HAL_REG_DOMAIN; /* regulatory domain code */ #define HAL_ANTENNA_MIN_MODE 0 #define HAL_ANTENNA_FIXED_A 1 @@ -434,14 +380,6 @@ typedef struct { uint32_t beacons; } HAL_MIB_STATS; -typedef uint16_t HAL_CTRY_CODE; /* country code */ -typedef uint16_t HAL_REG_DOMAIN; /* regulatory domain code */ - -enum { - CTRY_DEBUG = 0x1ff, /* debug country code */ - CTRY_DEFAULT = 0 /* default country code */ -}; - enum { HAL_MODE_11A = 0x001, /* 11a channels */ HAL_MODE_TURBO = 0x002, /* 11a turbo-only channels */ @@ -630,6 +568,7 @@ typedef struct { struct ath_desc; struct ath_tx_status; struct ath_rx_status; +struct ieee80211_channel; /* * Hardware Access Layer (HAL) API. @@ -665,16 +604,18 @@ struct ath_hal { /* Reset functions */ HAL_BOOL __ahdecl(*ah_reset)(struct ath_hal *, HAL_OPMODE, - HAL_CHANNEL *, HAL_BOOL bChannelChange, - HAL_STATUS *status); + struct ieee80211_channel *, + HAL_BOOL bChannelChange, HAL_STATUS *status); HAL_BOOL __ahdecl(*ah_phyDisable)(struct ath_hal *); HAL_BOOL __ahdecl(*ah_disable)(struct ath_hal *); void __ahdecl(*ah_setPCUConfig)(struct ath_hal *); - HAL_BOOL __ahdecl(*ah_perCalibration)(struct ath_hal*, HAL_CHANNEL *, - HAL_BOOL *); - HAL_BOOL __ahdecl(*ah_perCalibrationN)(struct ath_hal *, HAL_CHANNEL *, - u_int chainMask, HAL_BOOL longCal, HAL_BOOL *isCalDone); - HAL_BOOL __ahdecl(*ah_resetCalValid)(struct ath_hal *, HAL_CHANNEL *); + HAL_BOOL __ahdecl(*ah_perCalibration)(struct ath_hal*, + struct ieee80211_channel *, HAL_BOOL *); + HAL_BOOL __ahdecl(*ah_perCalibrationN)(struct ath_hal *, + struct ieee80211_channel *, u_int chainMask, + HAL_BOOL longCal, HAL_BOOL *isCalDone); + HAL_BOOL __ahdecl(*ah_resetCalValid)(struct ath_hal *, + const struct ieee80211_channel *); HAL_BOOL __ahdecl(*ah_setTxPowerLimit)(struct ath_hal *, uint32_t); /* Transmit functions */ @@ -735,7 +676,8 @@ struct ath_hal { struct ath_desc *next, uint64_t tsf, struct ath_rx_status *); void __ahdecl(*ah_rxMonitor)(struct ath_hal *, - const HAL_NODE_STATS *, HAL_CHANNEL *); + const HAL_NODE_STATS *, + const struct ieee80211_channel *); void __ahdecl(*ah_procMibEvent)(struct ath_hal *, const HAL_NODE_STATS *); @@ -804,7 +746,8 @@ struct ath_hal { HAL_BOOL __ahdecl(*ah_setPowerMode)(struct ath_hal*, HAL_POWER_MODE mode, int setChip); HAL_POWER_MODE __ahdecl(*ah_getPowerMode)(struct ath_hal*); - int16_t __ahdecl(*ah_getChanNoise)(struct ath_hal *, HAL_CHANNEL *); + int16_t __ahdecl(*ah_getChanNoise)(struct ath_hal *, + const struct ieee80211_channel *); /* Beacon Management Functions */ void __ahdecl(*ah_setBeaconTimers)(struct ath_hal*, @@ -847,53 +790,64 @@ extern struct ath_hal * __ahdecl ath_hal HAL_BUS_TAG, HAL_BUS_HANDLE, HAL_STATUS* status); /* - * Return a list of channels available for use with the hardware. - * The list is based on what the hardware is capable of, the specified - * country code, the modeSelect mask, and whether or not outdoor - * channels are to be permitted. + * Regulatory interfaces. Drivers should use ath_hal_init_channels to + * request a set of channels for a particular country code and/or + * regulatory domain. If CTRY_DEFAULT and SKU_NONE are specified then + * this list is constructed according to the contents of the EEPROM. + * ath_hal_getchannels acts similarly but does not alter the operating + * state; this can be used to collect information for a particular + * regulatory configuration. Finally ath_hal_set_channels installs a + * channel list constructed outside the driver. The HAL will adopt the + * channel list and setup internal state according to the specified + * regulatory configuration (e.g. conformance test limits). * - * The channel list is returned in the supplied array. maxchans - * defines the maximum size of this array. nchans contains the actual - * number of channels returned. If a problem occurred or there were - * no channels that met the criteria then AH_FALSE is returned. - */ -extern HAL_BOOL __ahdecl ath_hal_init_channels(struct ath_hal *, - HAL_CHANNEL *chans, u_int maxchans, u_int *nchans, - uint8_t *regclassids, u_int maxregids, u_int *nregids, - HAL_CTRY_CODE cc, u_int modeSelect, - HAL_BOOL enableOutdoor, HAL_BOOL enableExtendedChannels); + * For all interfaces the channel list is returned in the supplied array. + * maxchans defines the maximum size of this array. nchans contains the + * actual number of channels returned. If a problem occurred then a + * status code != HAL_OK is returned. + */ +struct ieee80211_channel; /* - * Calibrate noise floor data following a channel scan or similar. - * This must be called prior retrieving noise floor data. + * Return a list of channels according to the specified regulatory. */ -extern void __ahdecl ath_hal_process_noisefloor(struct ath_hal *ah); +extern HAL_STATUS __ahdecl ath_hal_getchannels(struct ath_hal *, + struct ieee80211_channel *chans, u_int maxchans, int *nchans, + u_int modeSelect, HAL_CTRY_CODE cc, HAL_REG_DOMAIN regDmn, + HAL_BOOL enableExtendedChannels); /* - * Return bit mask of wireless modes supported by the hardware. + * Return a list of channels and install it as the current operating + * regulatory list. */ -extern u_int __ahdecl ath_hal_getwirelessmodes(struct ath_hal*, HAL_CTRY_CODE); +extern HAL_STATUS __ahdecl ath_hal_init_channels(struct ath_hal *, + struct ieee80211_channel *chans, u_int maxchans, int *nchans, + u_int modeSelect, HAL_CTRY_CODE cc, HAL_REG_DOMAIN rd, + HAL_BOOL enableExtendedChannels); /* - * Calculate the transmit duration of a frame. + * Install the list of channels as the current operating regulatory + * and setup related state according to the country code and sku. */ -extern uint16_t __ahdecl ath_hal_computetxtime(struct ath_hal *, - const HAL_RATE_TABLE *rates, uint32_t frameLen, - uint16_t rateix, HAL_BOOL shortPreamble); +extern HAL_STATUS __ahdecl ath_hal_set_channels(struct ath_hal *, + struct ieee80211_channel *chans, int nchans, + HAL_CTRY_CODE cc, HAL_REG_DOMAIN regDmn); /* - * Return if device is public safety. + * Calibrate noise floor data following a channel scan or similar. + * This must be called prior retrieving noise floor data. */ -extern HAL_BOOL __ahdecl ath_hal_ispublicsafetysku(struct ath_hal *); +extern void __ahdecl ath_hal_process_noisefloor(struct ath_hal *ah); /* - * Return if device is operating in 900 MHz band. + * Return bit mask of wireless modes supported by the hardware. */ -extern HAL_BOOL ath_hal_isgsmsku(struct ath_hal *); +extern u_int __ahdecl ath_hal_getwirelessmodes(struct ath_hal*); /* - * Convert between IEEE channel number and channel frequency - * using the specified channel flags; e.g. CHANNEL_2GHZ. + * Calculate the transmit duration of a frame. */ -extern int __ahdecl ath_hal_mhz2ieee(struct ath_hal *, u_int mhz, u_int flags); +extern uint16_t __ahdecl ath_hal_computetxtime(struct ath_hal *, + const HAL_RATE_TABLE *rates, uint32_t frameLen, + uint16_t rateix, HAL_BOOL shortPreamble); #endif /* _ATH_AH_H_ */ Modified: projects/vap7/sys/dev/ath/ath_hal/ah_internal.h ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ah_internal.h Wed Jan 28 21:52:45 2009 (r187872) +++ projects/vap7/sys/dev/ath/ath_hal/ah_internal.h Wed Jan 28 21:54:20 2009 (r187873) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * Copyright (c) 2002-2008 Atheros Communications, Inc. * * Permission to use, copy, modify, and/or distribute this software for any @@ -27,6 +27,8 @@ #define AH_MIN(a,b) ((a)<(b)?(a):(b)) #define AH_MAX(a,b) ((a)>(b)?(a):(b)) +#include + #ifndef NBBY #define NBBY 8 /* number of bits/byte */ #endif @@ -108,32 +110,44 @@ OS_DATA_SET(ah_rfs, _name##_rf) struct ath_hal_rf *ath_hal_rfprobe(struct ath_hal *ah, HAL_STATUS *ecode); /* - * Internal form of a HAL_CHANNEL. Note that the structure - * must be defined such that you can cast references to a - * HAL_CHANNEL so don't shuffle the first two members. + * Maximum number of internal channels. Entries are per unique + * frequency so this might be need to be increased to handle all + * usage cases; typically no more than 32 are really needed but + * dynamically allocating the data structures is a bit painful + * right now. + */ +#ifndef AH_MAXCHAN +#define AH_MAXCHAN 96 +#endif + +/* + * Internal per-channel state. These are found + * using ic_devdata in the ieee80211_channel. */ typedef struct { - uint32_t channelFlags; - uint16_t channel; /* NB: must be first for casting */ + uint16_t channel; /* h/w frequency, NB: may be mapped */ uint8_t privFlags; - int8_t maxRegTxPower; - int8_t maxTxPower; - int8_t minTxPower; /* as above... */ - - HAL_BOOL bssSendHere; - uint8_t gainI; - HAL_BOOL iqCalValid; - uint8_t calValid; /* bitmask of cal types */ +#define CHANNEL_IQVALID 0x01 /* IQ calibration valid */ +#define CHANNEL_ANI_INIT 0x02 /* ANI state initialized */ +#define CHANNEL_ANI_SETUP 0x04 /* ANI state setup */ + uint8_t calValid; /* bitmask of cal types */ int8_t iCoff; int8_t qCoff; int16_t rawNoiseFloor; int16_t noiseFloorAdjust; - int8_t antennaMax; - uint32_t regDmnFlags; /* Flags for channel use in reg */ - uint32_t conformanceTestLimit; /* conformance test limit from reg domain */ - uint16_t mainSpur; /* cached spur value for this cahnnel */ + uint16_t mainSpur; /* cached spur value for this channel */ } HAL_CHANNEL_INTERNAL; +/* channel requires noise floor check */ +#define CHANNEL_NFCREQUIRED IEEE80211_CHAN_PRIV0 + +/* all full-width channels */ +#define IEEE80211_CHAN_ALLFULL \ + (IEEE80211_CHAN_ALL - (IEEE80211_CHAN_HALF | IEEE80211_CHAN_QUARTER)) +#define IEEE80211_CHAN_ALLTURBOFULL \ + (IEEE80211_CHAN_ALLTURBO - \ + (IEEE80211_CHAN_HALF | IEEE80211_CHAN_QUARTER)) + typedef struct { uint32_t halChanSpreadSupport : 1, halSleepAfterBeaconBroken : 1, @@ -189,6 +203,8 @@ typedef struct { uint8_t halNumAntCfg5GHz; } HAL_CAPABILITIES; +struct regDomain; + /* * The ``private area'' follows immediately after the ``public area'' * in the data structure returned by ath_hal_attach. Private data are @@ -228,7 +244,7 @@ struct ath_hal_private { uint32_t gpio, uint32_t val); void (*ah_gpioSetIntr)(struct ath_hal*, u_int, uint32_t); HAL_BOOL (*ah_getChipPowerLimits)(struct ath_hal *, - HAL_CHANNEL *, uint32_t); + struct ieee80211_channel *); int16_t (*ah_getNfAdjust)(struct ath_hal *, const HAL_CHANNEL_INTERNAL*); void (*ah_getNoiseFloor)(struct ath_hal *, @@ -255,8 +271,8 @@ struct ath_hal_private { uint16_t ah_analog5GhzRev; /* 2GHz radio revision */ uint16_t ah_analog2GhzRev; /* 5GHz radio revision */ - HAL_OPMODE ah_opmode; /* operating mode from reset */ + const struct ieee80211_channel *ah_curchan;/* operating channel */ HAL_CAPABILITIES ah_caps; /* device capabilities */ uint32_t ah_diagreg; /* user-specified AR_DIAG_SW */ int16_t ah_powerLimit; /* tx power cap */ @@ -267,14 +283,13 @@ struct ath_hal_private { /* * State for regulatory domain handling. */ - HAL_REG_DOMAIN ah_currentRD; /* Current regulatory domain */ - HAL_CTRY_CODE ah_countryCode; /* current country code */ - HAL_CHANNEL_INTERNAL ah_channels[256]; /* calculated channel list */ - u_int ah_nchan; /* valid channels in list */ - HAL_CHANNEL_INTERNAL *ah_curchan; /* current channel */ + HAL_REG_DOMAIN ah_currentRD; /* EEPROM regulatory domain */ + HAL_CHANNEL_INTERNAL ah_channels[AH_MAXCHAN]; /* private chan state */ + u_int ah_nchan; /* valid items in ah_channels */ + const struct regDomain *ah_rd2GHz; /* reg state for 2G band */ + const struct regDomain *ah_rd5GHz; /* reg state for 5G band */ uint8_t ah_coverageClass; /* coverage class */ - HAL_BOOL ah_regdomainUpdate; /* regdomain is updated? */ /* * RF Silent handling; setup according to the EEPROM. */ @@ -307,8 +322,8 @@ struct ath_hal_private { AH_PRIVATE(_ah)->ah_gpioGet(_ah, _gpio, _val) #define ath_hal_gpioSetIntr(_ah, _gpio, _ilevel) \ AH_PRIVATE(_ah)->ah_gpioSetIntr(_ah, _gpio, _ilevel) -#define ath_hal_getpowerlimits(_ah, _chans, _nchan) \ - AH_PRIVATE(_ah)->ah_getChipPowerLimits(_ah, _chans, _nchan) +#define ath_hal_getpowerlimits(_ah, _chan) \ + AH_PRIVATE(_ah)->ah_getChipPowerLimits(_ah, _chan) #define ath_hal_getNfAdjust(_ah, _c) \ AH_PRIVATE(_ah)->ah_getNfAdjust(_ah, _c) #define ath_hal_getNoiseFloor(_ah, _nfArray) \ @@ -327,38 +342,22 @@ struct ath_hal_private { #define ath_hal_eepromDiag(_ah, _request, _a, _asize, _r, _rsize) \ AH_PRIVATE(_ah)->ah_eepromDiag(_ah, _request, _a, _asize, _r, _rsize) -#if !defined(_NET_IF_IEEE80211_H_) && !defined(_NET80211__IEEE80211_H_) +#ifndef _NET_IF_IEEE80211_H_ /* * Stuff that would naturally come from _ieee80211.h */ #define IEEE80211_ADDR_LEN 6 -#define IEEE80211_WEP_KEYLEN 5 /* 40bit */ #define IEEE80211_WEP_IVLEN 3 /* 24bit */ #define IEEE80211_WEP_KIDLEN 1 /* 1 octet */ #define IEEE80211_WEP_CRCLEN 4 /* CRC-32 */ #define IEEE80211_CRC_LEN 4 -#define IEEE80211_MTU 1500 #define IEEE80211_MAX_LEN (2300 + IEEE80211_CRC_LEN + \ (IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN + IEEE80211_WEP_CRCLEN)) - -enum { - IEEE80211_T_DS, /* direct sequence spread spectrum */ - IEEE80211_T_FH, /* frequency hopping */ - IEEE80211_T_OFDM, /* frequency division multiplexing */ - IEEE80211_T_TURBO, /* high rate DS */ - IEEE80211_T_HT, /* HT - full GI */ -}; -#define IEEE80211_T_CCK IEEE80211_T_DS /* more common nomenclatur */ #endif /* _NET_IF_IEEE80211_H_ */ -/* NB: these are defined privately until XR support is announced */ -enum { - ATHEROS_T_XR = IEEE80211_T_HT+1, /* extended range */ -}; - #define HAL_TXQ_USE_LOCKOUT_BKOFF_DIS 0x00000001 #define INIT_AIFS 2 @@ -411,43 +410,11 @@ typedef enum { #define HAL_BIN_WIDTH_TURBO_100HZ 6250 #define HAL_MAX_BINS_ALLOWED 28 -/* - * A = 5GHZ|OFDM - * T = 5GHZ|OFDM|TURBO - * - * IS_CHAN_A(T) will return TRUE. This is probably - * not the default behavior we want. We should migrate to a better mask -- - * perhaps CHANNEL_ALL. - * - * For now, IS_CHAN_G() masks itself with CHANNEL_108G. - * - */ - -#define IS_CHAN_A(_c) (((_c)->channelFlags & CHANNEL_A) == CHANNEL_A) -#define IS_CHAN_B(_c) (((_c)->channelFlags & CHANNEL_B) == CHANNEL_B) -#define IS_CHAN_G(_c) (((_c)->channelFlags & (CHANNEL_108G|CHANNEL_G)) == CHANNEL_G) -#define IS_CHAN_108G(_c)(((_c)->channelFlags & CHANNEL_108G) == CHANNEL_108G) -#define IS_CHAN_T(_c) (((_c)->channelFlags & CHANNEL_T) == CHANNEL_T) -#define IS_CHAN_PUREG(_c) \ - (((_c)->channelFlags & CHANNEL_PUREG) == CHANNEL_PUREG) - -#define IS_CHAN_TURBO(_c) (((_c)->channelFlags & CHANNEL_TURBO) != 0) -#define IS_CHAN_CCK(_c) (((_c)->channelFlags & CHANNEL_CCK) != 0) -#define IS_CHAN_OFDM(_c) (((_c)->channelFlags & CHANNEL_OFDM) != 0) -#define IS_CHAN_5GHZ(_c) (((_c)->channelFlags & CHANNEL_5GHZ) != 0) -#define IS_CHAN_2GHZ(_c) (((_c)->channelFlags & CHANNEL_2GHZ) != 0) -#define IS_CHAN_PASSIVE(_c) (((_c)->channelFlags & CHANNEL_PASSIVE) != 0) -#define IS_CHAN_HALF_RATE(_c) (((_c)->channelFlags & CHANNEL_HALF) != 0) -#define IS_CHAN_QUARTER_RATE(_c) (((_c)->channelFlags & CHANNEL_QUARTER) != 0) +#define IS_CHAN_5GHZ(_c) ((_c)->channel > 4900) +#define IS_CHAN_2GHZ(_c) (!IS_CHAN_5GHZ(_c)) #define IS_CHAN_IN_PUBLIC_SAFETY_BAND(_c) ((_c) > 4940 && (_c) < 4990) -#define CHANNEL_HT40 (CHANNEL_HT40PLUS | CHANNEL_HT40MINUS) -#define CHANNEL_HT (CHANNEL_HT20 | CHANNEL_HT40) -#define IS_CHAN_HT(_c) (((_c)->channelFlags & CHANNEL_HT) != 0) -#define IS_CHAN_HT20(_c) (((_c)->channelFlags & CHANNEL_HT) == CHANNEL_HT20) -#define IS_CHAN_HT40(_c) (((_c)->channelFlags & CHANNEL_HT40) != 0) - /* * Deduce if the host cpu has big- or litt-endian byte order. */ @@ -486,37 +453,6 @@ isBigEndian(void) #define OS_REG_CLR_BIT(_a, _r, _f) \ OS_REG_WRITE(_a, _r, OS_REG_READ(_a, _r) &~ (_f)) -/* - * Regulatory domain support. - */ - -/* - * Return the max allowed antenna gain based on the current - * regulatory domain. - */ -extern u_int ath_hal_getantennareduction(struct ath_hal *, - HAL_CHANNEL *, u_int twiceGain); -/* - * Return the test group for the specific channel based on - * the current regulator domain. - */ -extern u_int ath_hal_getctl(struct ath_hal *, HAL_CHANNEL *); -/* - * Return whether or not a noise floor check is required - * based on the current regulatory domain for the specified - * channel. - */ -extern u_int ath_hal_getnfcheckrequired(struct ath_hal *, HAL_CHANNEL *); - -/* - * Map a public channel definition to the corresponding - * internal data structure. This implicitly specifies - * whether or not the specified channel is ok to use - * based on the current regulatory domain constraints. - */ -extern HAL_CHANNEL_INTERNAL *ath_hal_checkchannel(struct ath_hal *, - const HAL_CHANNEL *); - /* system-configurable parameters */ extern int ath_hal_dma_beacon_response_time; /* in TU's */ extern int ath_hal_sw_beacon_response_time; /* in TU's */ @@ -575,6 +511,57 @@ extern void ath_hal_assert_failed(const #define HALASSERT(_x) #endif /* AH_ASSERT */ +/* + * Regulatory domain support. + */ + +/* + * Return the max allowed antenna gain and apply any regulatory + * domain specific changes. + */ +u_int ath_hal_getantennareduction(struct ath_hal *ah, + const struct ieee80211_channel *chan, u_int twiceGain); + +/* + * Return the test group for the specific channel based on + * the current regulatory setup. + */ +u_int ath_hal_getctl(struct ath_hal *, const struct ieee80211_channel *); + +/* + * Map a public channel definition to the corresponding + * internal data structure. This implicitly specifies + * whether or not the specified channel is ok to use + * based on the current regulatory domain constraints. + */ +#ifndef AH_DEBUG +static OS_INLINE HAL_CHANNEL_INTERNAL * +ath_hal_checkchannel(struct ath_hal *ah, const struct ieee80211_channel *c) +{ + HAL_CHANNEL_INTERNAL *cc; + + HALASSERT(c->ic_devdata < AH_PRIVATE(ah)->ah_nchan); + cc = &AH_PRIVATE(ah)->ah_channels[c->ic_devdata]; + HALASSERT(c->ic_freq == cc->channel || IEEE80211_IS_CHAN_GSM(c)); + return cc; +} +#else +/* NB: non-inline version that checks state */ +HAL_CHANNEL_INTERNAL *ath_hal_checkchannel(struct ath_hal *, + const struct ieee80211_channel *); +#endif /* AH_DEBUG */ + +/* + * Return the h/w frequency for a channel. This may be + * different from ic_freq if this is a GSM device that + * takes 2.4GHz frequencies and down-converts them. + */ +static OS_INLINE uint16_t +ath_hal_gethwchannel(struct ath_hal *ah, const struct ieee80211_channel *c) +{ + return ath_hal_checkchannel(ah, c)->channel; +} + /* * Convert between microseconds and core system clocks. */ @@ -733,7 +720,7 @@ extern void ath_hal_setupratetable(struc /* * Common routine for implementing getChanNoise api. */ -extern int16_t ath_hal_getChanNoise(struct ath_hal *ah, HAL_CHANNEL *chan); +int16_t ath_hal_getChanNoise(struct ath_hal *, const struct ieee80211_channel *); /* * Initialization support. Modified: projects/vap7/sys/dev/ath/ath_hal/ah_regdomain.c ============================================================================== --- projects/vap7/sys/dev/ath/ath_hal/ah_regdomain.c Wed Jan 28 21:52:45 2009 (r187872) +++ projects/vap7/sys/dev/ath/ath_hal/ah_regdomain.c Wed Jan 28 21:54:20 2009 (r187873) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting + * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * Copyright (c) 2005-2006 Atheros Communications, Inc. * All rights reserved. * @@ -20,6 +20,10 @@ #include "opt_ah.h" #include "ah.h" + +#include +#include + #include "ah_internal.h" #include "ah_eeprom.h" #include "ah_devid.h" @@ -34,10 +38,6 @@ #define HAL_MODE_11A_TURBO HAL_MODE_108A #define HAL_MODE_11G_TURBO HAL_MODE_108G -/* 10MHz is half the 11A bandwidth used to determine upper edge freq - of the outdoor channel */ -#define HALF_MAXCHANBW 10 - /* * BMLEN defines the size of the bitmask used to hold frequency * band specifications. Note this must agree with the BM macro @@ -76,160 +76,6 @@ typedef uint64_t chanbmask_t[BMLEN]; W1(_fg) | W1(_fh) } /* - * Country/Region Codes - * Numbering from ISO 3166 - */ -enum { - CTRY_ALBANIA = 8, /* Albania */ - CTRY_ALGERIA = 12, /* Algeria */ - CTRY_ARGENTINA = 32, /* Argentina */ - CTRY_ARMENIA = 51, /* Armenia */ - CTRY_AUSTRALIA = 36, /* Australia */ - CTRY_AUSTRIA = 40, /* Austria */ - CTRY_AZERBAIJAN = 31, /* Azerbaijan */ - CTRY_BAHRAIN = 48, /* Bahrain */ - CTRY_BELARUS = 112, /* Belarus */ - CTRY_BELGIUM = 56, /* Belgium */ - CTRY_BELIZE = 84, /* Belize */ - CTRY_BOLIVIA = 68, /* Bolivia */ - CTRY_BRAZIL = 76, /* Brazil */ - CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */ - CTRY_BULGARIA = 100, /* Bulgaria */ - CTRY_CANADA = 124, /* Canada */ - CTRY_CHILE = 152, /* Chile */ - CTRY_CHINA = 156, /* People's Republic of China */ - CTRY_COLOMBIA = 170, /* Colombia */ - CTRY_COSTA_RICA = 188, /* Costa Rica */ - CTRY_CROATIA = 191, /* Croatia */ - CTRY_CYPRUS = 196, - CTRY_CZECH = 203, /* Czech Republic */ - CTRY_DENMARK = 208, /* Denmark */ - CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */ - CTRY_ECUADOR = 218, /* Ecuador */ - CTRY_EGYPT = 818, /* Egypt */ - CTRY_EL_SALVADOR = 222, /* El Salvador */ - CTRY_ESTONIA = 233, /* Estonia */ - CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */ - CTRY_FINLAND = 246, /* Finland */ - CTRY_FRANCE = 250, /* France */ - CTRY_FRANCE2 = 255, /* France2 */ - CTRY_GEORGIA = 268, /* Georgia */ - CTRY_GERMANY = 276, /* Germany */ - CTRY_GREECE = 300, /* Greece */ - CTRY_GUATEMALA = 320, /* Guatemala */ - CTRY_HONDURAS = 340, /* Honduras */ - CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */ - CTRY_HUNGARY = 348, /* Hungary */ - CTRY_ICELAND = 352, /* Iceland */ - CTRY_INDIA = 356, /* India */ - CTRY_INDONESIA = 360, /* Indonesia */ - CTRY_IRAN = 364, /* Iran */ - CTRY_IRAQ = 368, /* Iraq */ - CTRY_IRELAND = 372, /* Ireland */ - CTRY_ISRAEL = 376, /* Israel */ - CTRY_ITALY = 380, /* Italy */ - CTRY_JAMAICA = 388, /* Jamaica */ - CTRY_JAPAN = 392, /* Japan */ - CTRY_JAPAN1 = 393, /* Japan (JP1) */ - CTRY_JAPAN2 = 394, /* Japan (JP0) */ - CTRY_JAPAN3 = 395, /* Japan (JP1-1) */ - CTRY_JAPAN4 = 396, /* Japan (JE1) */ - CTRY_JAPAN5 = 397, /* Japan (JE2) */ - CTRY_JAPAN6 = 399, /* Japan (JP6) */ - - CTRY_JAPAN7 = 4007, /* Japan (J7) */ - CTRY_JAPAN8 = 4008, /* Japan (J8) */ - CTRY_JAPAN9 = 4009, /* Japan (J9) */ - - CTRY_JAPAN10 = 4010, /* Japan (J10) */ - CTRY_JAPAN11 = 4011, /* Japan (J11) */ - CTRY_JAPAN12 = 4012, /* Japan (J12) */ - - CTRY_JAPAN13 = 4013, /* Japan (J13) */ - CTRY_JAPAN14 = 4014, /* Japan (J14) */ - CTRY_JAPAN15 = 4015, /* Japan (J15) */ - - CTRY_JAPAN16 = 4016, /* Japan (J16) */ - CTRY_JAPAN17 = 4017, /* Japan (J17) */ - CTRY_JAPAN18 = 4018, /* Japan (J18) */ - - CTRY_JAPAN19 = 4019, /* Japan (J19) */ - CTRY_JAPAN20 = 4020, /* Japan (J20) */ - CTRY_JAPAN21 = 4021, /* Japan (J21) */ - - CTRY_JAPAN22 = 4022, /* Japan (J22) */ - CTRY_JAPAN23 = 4023, /* Japan (J23) */ - CTRY_JAPAN24 = 4024, /* Japan (J24) */ - - CTRY_JORDAN = 400, /* Jordan */ - CTRY_KAZAKHSTAN = 398, /* Kazakhstan */ - CTRY_KENYA = 404, /* Kenya */ - CTRY_KOREA_NORTH = 408, /* North Korea */ - CTRY_KOREA_ROC = 410, /* South Korea */ - CTRY_KOREA_ROC2 = 411, /* South Korea */ - CTRY_KOREA_ROC3 = 412, /* South Korea */ - CTRY_KUWAIT = 414, /* Kuwait */ - CTRY_LATVIA = 428, /* Latvia */ - CTRY_LEBANON = 422, /* Lebanon */ - CTRY_LIBYA = 434, /* Libya */ - CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */ - CTRY_LITHUANIA = 440, /* Lithuania */ - CTRY_LUXEMBOURG = 442, /* Luxembourg */ - CTRY_MACAU = 446, /* Macau */ - CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */ - CTRY_MALAYSIA = 458, /* Malaysia */ - CTRY_MALTA = 470, /* Malta */ - CTRY_MEXICO = 484, /* Mexico */ - CTRY_MONACO = 492, /* Principality of Monaco */ - CTRY_MOROCCO = 504, /* Morocco */ - CTRY_NETHERLANDS = 528, /* Netherlands */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Wed Jan 28 21:57:39 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7922E10657FE; Wed, 28 Jan 2009 21:57:39 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6850F8FC25; Wed, 28 Jan 2009 21:57:39 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0SLvdWZ034684; Wed, 28 Jan 2009 21:57:39 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0SLvdT1034683; Wed, 28 Jan 2009 21:57:39 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901282157.n0SLvdT1034683@svn.freebsd.org> From: Sam Leffler Date: Wed, 28 Jan 2009 21:57:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187874 - projects/vap7/etc X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2009 21:57:40 -0000 Author: sam Date: Wed Jan 28 21:57:39 2009 New Revision: 187874 URL: http://svn.freebsd.org/changeset/base/187874 Log: merge r187846: remove gsm hacks Modified: projects/vap7/etc/ (props changed) projects/vap7/etc/regdomain.xml Modified: projects/vap7/etc/regdomain.xml ============================================================================== --- projects/vap7/etc/regdomain.xml Wed Jan 28 21:54:20 2009 (r187873) +++ projects/vap7/etc/regdomain.xml Wed Jan 28 21:57:39 2009 (r187874) @@ -1133,7 +1133,6 @@ SR9 0x0298 - @@ -1156,20 +1155,19 @@ XR9 0x299 - - + 30 IEEE80211_CHAN_G - + 30 IEEE80211_CHAN_G - + 30 IEEE80211_CHAN_G @@ -1179,7 +1177,6 @@ GZ901 0x29a - @@ -1319,9 +1316,6 @@ 320 Guatemala - - 5002 ZComax GZ-901 - 340 Honduras @@ -1517,12 +1511,6 @@ 792 Turkey - - 5000 Ubiquiti SR9 - - - 5001 Ubiquiti XR9 - 804 Ukraine @@ -1725,55 +1713,37 @@ - 2422 2437 + 907 922 5 5 IEEE80211_CHAN_GSM IEEE80211_CHAN_QUARTER - 2422 2437 + 907 922 10 5 IEEE80211_CHAN_GSM IEEE80211_CHAN_HALF - 2427 2432 - 20 5 - IEEE80211_CHAN_GSM - - - - 2427 2442 - 5 5 - IEEE80211_CHAN_GSM - IEEE80211_CHAN_QUARTER - - - 2427 2442 - 10 5 - IEEE80211_CHAN_GSM - IEEE80211_CHAN_HALF - - - 2432 2437 + 912 917 20 5 IEEE80211_CHAN_GSM - 2447 2467 + 908 923 5 5 IEEE80211_CHAN_GSM IEEE80211_CHAN_QUARTER - 2457 2462 + 913 918 10 5 IEEE80211_CHAN_GSM IEEE80211_CHAN_HALF - 2457 2462 + 913 918 20 5 IEEE80211_CHAN_GSM From owner-svn-src-projects@FreeBSD.ORG Thu Jan 29 23:18:45 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5D98A1065676; Thu, 29 Jan 2009 23:18:45 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1744C8FC43; Thu, 29 Jan 2009 23:18:43 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0TNIhdq067944; Thu, 29 Jan 2009 23:18:43 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0TNIh6Z067943; Thu, 29 Jan 2009 23:18:43 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901292318.n0TNIh6Z067943@svn.freebsd.org> From: Sam Leffler Date: Thu, 29 Jan 2009 23:18:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187900 - projects/vap7/sys/arm/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2009 23:18:45 -0000 Author: sam Date: Thu Jan 29 23:18:43 2009 New Revision: 187900 URL: http://svn.freebsd.org/changeset/base/187900 Log: enable tdma and diagapi support Modified: projects/vap7/sys/arm/conf/AVILA Modified: projects/vap7/sys/arm/conf/AVILA ============================================================================== --- projects/vap7/sys/arm/conf/AVILA Thu Jan 29 23:12:06 2009 (r187899) +++ projects/vap7/sys/arm/conf/AVILA Thu Jan 29 23:18:43 2009 (r187900) @@ -128,6 +128,7 @@ device random # Entrop # Wireless NIC cards device wlan # 802.11 support options IEEE80211_DEBUG +options IEEE80211_SUPPORT_TDMA device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support @@ -137,6 +138,8 @@ device ath_hal # Atheros HAL (Hardware options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors device ath_rate_sample # SampleRate tx rate control for ath options ATH_DEBUG +options ATH_DIAGAPI +options ATH_SUPPORT_TDMA #device crypto #device cryptodev From owner-svn-src-projects@FreeBSD.ORG Thu Jan 29 23:19:47 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69A40106567C; Thu, 29 Jan 2009 23:19:47 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 549F88FC12; Thu, 29 Jan 2009 23:19:47 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0TNJl0Q068018; Thu, 29 Jan 2009 23:19:47 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0TNJl0l068017; Thu, 29 Jan 2009 23:19:47 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901292319.n0TNJl0l068017@svn.freebsd.org> From: Sam Leffler Date: Thu, 29 Jan 2009 23:19:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187901 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2009 23:19:48 -0000 Author: sam Date: Thu Jan 29 23:19:47 2009 New Revision: 187901 URL: http://svn.freebsd.org/changeset/base/187901 Log: merge r187897: setup default rate set for static turbo mode Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211.c Modified: projects/vap7/sys/net80211/ieee80211.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211.c Thu Jan 29 23:18:43 2009 (r187900) +++ projects/vap7/sys/net80211/ieee80211.c Thu Jan 29 23:19:47 2009 (r187901) @@ -184,6 +184,7 @@ ieee80211_chan_init(struct ieee80211com DEFAULTRATES(IEEE80211_MODE_11A, ieee80211_rateset_11a); DEFAULTRATES(IEEE80211_MODE_TURBO_A, ieee80211_rateset_11a); DEFAULTRATES(IEEE80211_MODE_TURBO_G, ieee80211_rateset_11g); + DEFAULTRATES(IEEE80211_MODE_STURBO_A, ieee80211_rateset_11a); /* * Set auto mode to reset active channel state and any desired channel. From owner-svn-src-projects@FreeBSD.ORG Thu Jan 29 23:21:38 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D50A0106566B; Thu, 29 Jan 2009 23:21:38 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A70518FC1C; Thu, 29 Jan 2009 23:21:38 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0TNLcAH068104; Thu, 29 Jan 2009 23:21:38 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0TNLcRV068103; Thu, 29 Jan 2009 23:21:38 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901292321.n0TNLcRV068103@svn.freebsd.org> From: Sam Leffler Date: Thu, 29 Jan 2009 23:21:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187902 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2009 23:21:39 -0000 Author: sam Date: Thu Jan 29 23:21:38 2009 New Revision: 187902 URL: http://svn.freebsd.org/changeset/base/187902 Log: merge r187898: set ni_txparms for static turbo mode Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_node.c Modified: projects/vap7/sys/net80211/ieee80211_node.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_node.c Thu Jan 29 23:19:47 2009 (r187901) +++ projects/vap7/sys/net80211/ieee80211_node.c Thu Jan 29 23:21:38 2009 (r187902) @@ -227,20 +227,25 @@ static void node_setuptxparms(struct ieee80211_node *ni) { struct ieee80211vap *vap = ni->ni_vap; + enum ieee80211_phymode mode; if (ni->ni_flags & IEEE80211_NODE_HT) { if (IEEE80211_IS_CHAN_5GHZ(ni->ni_chan)) - ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11NA]; + mode = IEEE80211_MODE_11NA; else - ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11NG]; + mode = IEEE80211_MODE_11NG; } else { /* legacy rate handling */ - if (IEEE80211_IS_CHAN_A(ni->ni_chan)) - ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11A]; + /* NB: 108A/108G should be handled as 11a/11g respectively */ + if (IEEE80211_IS_CHAN_ST(ni->ni_chan)) + mode = IEEE80211_MODE_STURBO_A; + else if (IEEE80211_IS_CHAN_A(ni->ni_chan)) + mode = IEEE80211_MODE_11A; else if (ni->ni_flags & IEEE80211_NODE_ERP) - ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11G]; + mode = IEEE80211_MODE_11G; else - ni->ni_txparms = &vap->iv_txparms[IEEE80211_MODE_11B]; + mode = IEEE80211_MODE_11B; } + ni->ni_txparms = &vap->iv_txparms[mode]; } /* From owner-svn-src-projects@FreeBSD.ORG Thu Jan 29 23:22:33 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0B312106564A; Thu, 29 Jan 2009 23:22:33 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EB9288FC0A; Thu, 29 Jan 2009 23:22:32 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0TNMWjn068180; Thu, 29 Jan 2009 23:22:32 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0TNMWrA068179; Thu, 29 Jan 2009 23:22:32 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901292322.n0TNMWrA068179@svn.freebsd.org> From: Sam Leffler Date: Thu, 29 Jan 2009 23:22:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187903 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2009 23:22:33 -0000 Author: sam Date: Thu Jan 29 23:22:32 2009 New Revision: 187903 URL: http://svn.freebsd.org/changeset/base/187903 Log: merge r187899: setup default fixed rates for static turbo and 11n Modified: projects/vap7/sys/ (props changed) projects/vap7/sys/contrib/pf/ (props changed) projects/vap7/sys/dev/ (props changed) projects/vap7/sys/dev/ath/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5210/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5211/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5212/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5312/ (props changed) projects/vap7/sys/dev/ath/ath_hal/ar5416/ (props changed) projects/vap7/sys/dev/cxgb/ (props changed) projects/vap7/sys/dev/usb2/ (props changed) projects/vap7/sys/i386/conf/USB2 (props changed) projects/vap7/sys/modules/usb2/ (props changed) projects/vap7/sys/net80211/ (props changed) projects/vap7/sys/net80211/ieee80211_tdma.c Modified: projects/vap7/sys/net80211/ieee80211_tdma.c ============================================================================== --- projects/vap7/sys/net80211/ieee80211_tdma.c Thu Jan 29 23:21:38 2009 (r187902) +++ projects/vap7/sys/net80211/ieee80211_tdma.c Thu Jan 29 23:22:32 2009 (r187903) @@ -79,6 +79,15 @@ __FBSDID("$FreeBSD$"); #ifndef TDMA_TXRATE_11A_DEFAULT #define TDMA_TXRATE_11A_DEFAULT 2*24 #endif +#ifndef TDMA_TXRATE_STURBO_A_DEFAULT +#define TDMA_TXRATE_STURBO_A_DEFAULT 2*24 +#endif +#ifndef TDMA_TXRATE_11NA_DEFAULT +#define TDMA_TXRATE_11NA_DEFAULT (4 | IEEE80211_RATE_MCS) +#endif +#ifndef TDMA_TXRATE_11NG_DEFAULT +#define TDMA_TXRATE_11NG_DEFAULT (4 | IEEE80211_RATE_MCS) +#endif static void tdma_vdetach(struct ieee80211vap *vap); static int tdma_newstate(struct ieee80211vap *, enum ieee80211_state, int); @@ -92,6 +101,13 @@ static int tdma_process_params(struct ie const u_int8_t *ie, u_int32_t rstamp, const struct ieee80211_frame *wh); static void +settxparms(struct ieee80211vap *vap, enum ieee80211_phymode mode, int rate) +{ + vap->iv_txparms[mode].ucastrate = rate; + vap->iv_txparms[mode].mcastrate = rate; +} + +static void setackpolicy(struct ieee80211com *ic, int noack) { struct ieee80211_wme_state *wme = &ic->ic_wme; @@ -126,12 +142,12 @@ ieee80211_tdma_vattach(struct ieee80211v ts->tdma_slot = 1; /* passive operation */ /* setup default fixed rates */ - vap->iv_txparms[IEEE80211_MODE_11B].ucastrate = TDMA_TXRATE_11B_DEFAULT; - vap->iv_txparms[IEEE80211_MODE_11B].mcastrate = TDMA_TXRATE_11B_DEFAULT; - vap->iv_txparms[IEEE80211_MODE_11G].ucastrate = TDMA_TXRATE_11G_DEFAULT; - vap->iv_txparms[IEEE80211_MODE_11G].mcastrate = TDMA_TXRATE_11G_DEFAULT; - vap->iv_txparms[IEEE80211_MODE_11A].ucastrate = TDMA_TXRATE_11A_DEFAULT; - vap->iv_txparms[IEEE80211_MODE_11A].mcastrate = TDMA_TXRATE_11A_DEFAULT; + settxparms(vap, IEEE80211_MODE_11A, TDMA_TXRATE_11A_DEFAULT); + settxparms(vap, IEEE80211_MODE_11B, TDMA_TXRATE_11B_DEFAULT); + settxparms(vap, IEEE80211_MODE_11G, TDMA_TXRATE_11G_DEFAULT); + settxparms(vap, IEEE80211_MODE_STURBO_A, TDMA_TXRATE_STURBO_A_DEFAULT); + settxparms(vap, IEEE80211_MODE_11NA, TDMA_TXRATE_11NA_DEFAULT); + settxparms(vap, IEEE80211_MODE_11NG, TDMA_TXRATE_11NG_DEFAULT); setackpolicy(vap->iv_ic, 1); /* disable ACK's */ From owner-svn-src-projects@FreeBSD.ORG Thu Jan 29 23:30:17 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 917D7106567B; Thu, 29 Jan 2009 23:30:17 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7BD2D8FC17; Thu, 29 Jan 2009 23:30:17 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0TNUHZ4068453; Thu, 29 Jan 2009 23:30:17 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0TNUHTI068450; Thu, 29 Jan 2009 23:30:17 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901292330.n0TNUHTI068450@svn.freebsd.org> From: Sam Leffler Date: Thu, 29 Jan 2009 23:30:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187906 - in projects/vap7/tools/tools/ath: . athrd athstats X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jan 2009 23:30:18 -0000 Author: sam Date: Thu Jan 29 23:30:17 2009 New Revision: 187906 URL: http://svn.freebsd.org/changeset/base/187906 Log: merge r187905: track hal changes Modified: projects/vap7/tools/tools/ath/ (props changed) projects/vap7/tools/tools/ath/athrd/athrd.1 projects/vap7/tools/tools/ath/athrd/athrd.c projects/vap7/tools/tools/ath/athstats/Makefile Modified: projects/vap7/tools/tools/ath/athrd/athrd.1 ============================================================================== --- projects/vap7/tools/tools/ath/athrd/athrd.1 Thu Jan 29 23:29:07 2009 (r187905) +++ projects/vap7/tools/tools/ath/athrd/athrd.1 Thu Jan 29 23:30:17 2009 (r187906) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\"/ -.Dd January 15, 2009 +.Dd January 27, 2009 .Dt ATHRD 1 .Os .Sh NAME @@ -36,7 +36,7 @@ .Nd list channels and transmit power for a country/regulatory domain .Sh SYNOPSIS .Nm -.Op Fl aioedlpcfr4ABGT +.Op Fl aedlpcfr4ABGT .Op Fl m Ar mode .Bk .Op Ar country @@ -61,10 +61,6 @@ use as G channels and similary for A and With this option .Nm will list all channels. -.It Fl i -Calculate channels based on indoor use. -.It Fl o -Calculate channels based on outdoor use (default). .It Fl e Calculate channels not assuming extended channel mode. .It Fl d Modified: projects/vap7/tools/tools/ath/athrd/athrd.c ============================================================================== --- projects/vap7/tools/tools/ath/athrd/athrd.c Thu Jan 29 23:29:07 2009 (r187905) +++ projects/vap7/tools/tools/ath/athrd/athrd.c Thu Jan 29 23:30:17 2009 (r187906) @@ -31,6 +31,10 @@ #include "opt_ah.h" #include "ah.h" + +#include +#include + #include "ah_internal.h" #include "ah_eeprom_v3.h" /* XXX */ @@ -40,13 +44,9 @@ #include #include -#define IEEE80211_CHAN_MAX 255 -#define IEEE80211_REGCLASSIDS_MAX 10 - int ath_hal_debug = 0; HAL_CTRY_CODE cc = CTRY_DEFAULT; HAL_REG_DOMAIN rd = 169; /* FCC */ -HAL_BOOL outdoor = AH_TRUE; HAL_BOOL Amode = 1; HAL_BOOL Bmode = 1; HAL_BOOL Gmode = 1; @@ -169,12 +169,12 @@ getChannelEdges(struct ath_hal *ah, u_in struct ath_hal_private *ahp = AH_PRIVATE(ah); HAL_CAPABILITIES *pCap = &ahp->ah_caps; - if (flags & CHANNEL_5GHZ) { + if (flags & IEEE80211_CHAN_5GHZ) { *low = pCap->halLow5GhzChan; *high = pCap->halHigh5GhzChan; return AH_TRUE; } - if (flags & CHANNEL_2GHZ) { + if (flags & IEEE80211_CHAN_2GHZ) { *low = pCap->halLow2GhzChan; *high = pCap->halHigh2GhzChan; return AH_TRUE; @@ -208,158 +208,6 @@ getWirelessModes(struct ath_hal *ah) return mode; } -/* - * Country/Region Codes from MS WINNLS.H - * Numbering from ISO 3166 - */ -enum CountryCode { - CTRY_ALBANIA = 8, /* Albania */ - CTRY_ALGERIA = 12, /* Algeria */ - CTRY_ARGENTINA = 32, /* Argentina */ - CTRY_ARMENIA = 51, /* Armenia */ - CTRY_AUSTRALIA = 36, /* Australia */ - CTRY_AUSTRIA = 40, /* Austria */ - CTRY_AZERBAIJAN = 31, /* Azerbaijan */ - CTRY_BAHRAIN = 48, /* Bahrain */ - CTRY_BELARUS = 112, /* Belarus */ - CTRY_BELGIUM = 56, /* Belgium */ - CTRY_BELIZE = 84, /* Belize */ - CTRY_BOLIVIA = 68, /* Bolivia */ - CTRY_BRAZIL = 76, /* Brazil */ - CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */ - CTRY_BULGARIA = 100, /* Bulgaria */ - CTRY_CANADA = 124, /* Canada */ - CTRY_CHILE = 152, /* Chile */ - CTRY_CHINA = 156, /* People's Republic of China */ - CTRY_COLOMBIA = 170, /* Colombia */ - CTRY_COSTA_RICA = 188, /* Costa Rica */ - CTRY_CROATIA = 191, /* Croatia */ - CTRY_CYPRUS = 196, - CTRY_CZECH = 203, /* Czech Republic */ - CTRY_DENMARK = 208, /* Denmark */ - CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */ - CTRY_ECUADOR = 218, /* Ecuador */ - CTRY_EGYPT = 818, /* Egypt */ - CTRY_EL_SALVADOR = 222, /* El Salvador */ - CTRY_ESTONIA = 233, /* Estonia */ - CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */ - CTRY_FINLAND = 246, /* Finland */ - CTRY_FRANCE = 250, /* France */ - CTRY_FRANCE2 = 255, /* France2 */ - CTRY_GEORGIA = 268, /* Georgia */ - CTRY_GERMANY = 276, /* Germany */ - CTRY_GREECE = 300, /* Greece */ - CTRY_GSM = 843, /* 900MHz/GSM */ - CTRY_GUATEMALA = 320, /* Guatemala */ - CTRY_HONDURAS = 340, /* Honduras */ - CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */ - CTRY_HUNGARY = 348, /* Hungary */ - CTRY_ICELAND = 352, /* Iceland */ - CTRY_INDIA = 356, /* India */ - CTRY_INDONESIA = 360, /* Indonesia */ - CTRY_IRAN = 364, /* Iran */ - CTRY_IRAQ = 368, /* Iraq */ - CTRY_IRELAND = 372, /* Ireland */ - CTRY_ISRAEL = 376, /* Israel */ - CTRY_ITALY = 380, /* Italy */ - CTRY_JAMAICA = 388, /* Jamaica */ - CTRY_JAPAN = 392, /* Japan */ - CTRY_JAPAN1 = 393, /* Japan (JP1) */ - CTRY_JAPAN2 = 394, /* Japan (JP0) */ - CTRY_JAPAN3 = 395, /* Japan (JP1-1) */ - CTRY_JAPAN4 = 396, /* Japan (JE1) */ - CTRY_JAPAN5 = 397, /* Japan (JE2) */ - CTRY_JAPAN6 = 399, /* Japan (JP6) */ - - CTRY_JAPAN7 = 4007, /* Japan (J7) */ - CTRY_JAPAN8 = 4008, /* Japan (J8) */ - CTRY_JAPAN9 = 4009, /* Japan (J9) */ - - CTRY_JAPAN10 = 4010, /* Japan (J10) */ - CTRY_JAPAN11 = 4011, /* Japan (J11) */ - CTRY_JAPAN12 = 4012, /* Japan (J12) */ - - CTRY_JAPAN13 = 4013, /* Japan (J13) */ - CTRY_JAPAN14 = 4014, /* Japan (J14) */ - CTRY_JAPAN15 = 4015, /* Japan (J15) */ - - CTRY_JAPAN16 = 4016, /* Japan (J16) */ - CTRY_JAPAN17 = 4017, /* Japan (J17) */ - CTRY_JAPAN18 = 4018, /* Japan (J18) */ - - CTRY_JAPAN19 = 4019, /* Japan (J19) */ - CTRY_JAPAN20 = 4020, /* Japan (J20) */ - CTRY_JAPAN21 = 4021, /* Japan (J21) */ - - CTRY_JAPAN22 = 4022, /* Japan (J22) */ - CTRY_JAPAN23 = 4023, /* Japan (J23) */ - CTRY_JAPAN24 = 4024, /* Japan (J24) */ - - CTRY_JORDAN = 400, /* Jordan */ - CTRY_KAZAKHSTAN = 398, /* Kazakhstan */ - CTRY_KENYA = 404, /* Kenya */ - CTRY_KOREA_NORTH = 408, /* North Korea */ - CTRY_KOREA_ROC = 410, /* South Korea */ - CTRY_KOREA_ROC2 = 411, /* South Korea */ - CTRY_KOREA_ROC3 = 412, /* South Korea */ - CTRY_KUWAIT = 414, /* Kuwait */ - CTRY_LATVIA = 428, /* Latvia */ - CTRY_LEBANON = 422, /* Lebanon */ - CTRY_LIBYA = 434, /* Libya */ - CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */ - CTRY_LITHUANIA = 440, /* Lithuania */ - CTRY_LUXEMBOURG = 442, /* Luxembourg */ - CTRY_MACAU = 446, /* Macau */ - CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */ - CTRY_MALAYSIA = 458, /* Malaysia */ - CTRY_MALTA = 470, /* Malta */ - CTRY_MEXICO = 484, /* Mexico */ - CTRY_MONACO = 492, /* Principality of Monaco */ - CTRY_MOROCCO = 504, /* Morocco */ - CTRY_NETHERLANDS = 528, /* Netherlands */ - CTRY_NEW_ZEALAND = 554, /* New Zealand */ - CTRY_NICARAGUA = 558, /* Nicaragua */ - CTRY_NORWAY = 578, /* Norway */ - CTRY_OMAN = 512, /* Oman */ - CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */ - CTRY_PANAMA = 591, /* Panama */ - CTRY_PARAGUAY = 600, /* Paraguay */ - CTRY_PERU = 604, /* Peru */ - CTRY_PHILIPPINES = 608, /* Republic of the Philippines */ - CTRY_POLAND = 616, /* Poland */ - CTRY_PORTUGAL = 620, /* Portugal */ - CTRY_PUERTO_RICO = 630, /* Puerto Rico */ - CTRY_QATAR = 634, /* Qatar */ - CTRY_ROMANIA = 642, /* Romania */ - CTRY_RUSSIA = 643, /* Russia */ - CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */ - CTRY_SINGAPORE = 702, /* Singapore */ - CTRY_SLOVAKIA = 703, /* Slovak Republic */ - CTRY_SLOVENIA = 705, /* Slovenia */ - CTRY_SOUTH_AFRICA = 710, /* South Africa */ - CTRY_SPAIN = 724, /* Spain */ - CTRY_SWEDEN = 752, /* Sweden */ - CTRY_SWITZERLAND = 756, /* Switzerland */ - CTRY_SYRIA = 760, /* Syria */ - CTRY_TAIWAN = 158, /* Taiwan */ - CTRY_THAILAND = 764, /* Thailand */ - CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */ - CTRY_TUNISIA = 788, /* Tunisia */ - CTRY_TURKEY = 792, /* Turkey */ - CTRY_UAE = 784, /* U.A.E. */ - CTRY_UKRAINE = 804, /* Ukraine */ - CTRY_UNITED_KINGDOM = 826, /* United Kingdom */ - CTRY_UNITED_STATES = 840, /* United States */ - CTRY_UNITED_STATES_FCC49 = 842, /* United States (Public Safety)*/ - CTRY_URUGUAY = 858, /* Uruguay */ - CTRY_UZBEKISTAN = 860, /* Uzbekistan */ - CTRY_VENEZUELA = 862, /* Venezuela */ - CTRY_VIET_NAM = 704, /* Viet Nam */ - CTRY_YEMEN = 887, /* Yemen */ - CTRY_ZIMBABWE = 716 /* Zimbabwe */ -}; - - /* Enumerated Regulatory Domain Information 8 bit values indicate that * the regdomain is really a pair of unitary regdomains. 12 bit values * are the real unitary regdomains and are the only ones which have the @@ -381,7 +229,6 @@ enum EnumRd { NULL1_WORLD = 0x03, /* For 11b-only countries (no 11a allowed) */ NULL1_ETSIB = 0x07, /* Israel */ NULL1_ETSIC = 0x08, - NULL1_GSM = 0x09, /* GSM-only operation */ FCC1_FCCA = 0x10, /* USA */ FCC1_WORLD = 0x11, /* Hong Kong */ FCC4_FCCA = 0x12, /* USA - Public Safety */ @@ -531,7 +378,6 @@ enum EnumRd { NULL1 = 0x0198, WORLD = 0x0199, - GSM = 0x019a, DEBUG_REG_DMN = 0x01ff, }; #define DEF_REGDMN FCC1_FCCA @@ -545,7 +391,6 @@ static struct { D(NULL1_WORLD), /* For 11b-only countries (no 11a allowed) */ D(NULL1_ETSIB), /* Israel */ D(NULL1_ETSIC), - D(NULL1_GSM), /* GSM-only operation */ D(FCC1_FCCA), /* USA */ D(FCC1_WORLD), /* Hong Kong */ D(FCC4_FCCA), /* USA - Public Safety */ @@ -682,7 +527,6 @@ static struct { D(NULL1), D(WORLD), - D(GSM), D(DEBUG_REG_DMN), #undef D }; @@ -734,163 +578,151 @@ typedef struct { HAL_REG_DOMAIN regDmnEnum; const char* isoName; const char* name; - HAL_BOOL allow11g; - HAL_BOOL allow11aTurbo; - HAL_BOOL allow11gTurbo; - u_int16_t outdoorChanStart; } COUNTRY_CODE_TO_ENUM_RD; -#define YES AH_TRUE -#define NO AH_FALSE -/* Index into table to avoid DEBUG and NO COUNTRY SET entries */ -#define CTRY_ONLY_INDEX 2 /* * Country Code Table to Enumerated RD */ - static COUNTRY_CODE_TO_ENUM_RD allCountries[] = { - {CTRY_DEBUG, NO_ENUMRD, "DB", "DEBUG", YES, YES, YES, 7000 }, - {CTRY_DEFAULT, DEF_REGDMN, "NA", "NO_COUNTRY_SET", YES, YES, YES, 7000 }, - {CTRY_ALBANIA, NULL1_WORLD, "AL", "ALBANIA", YES, NO, YES, 7000 }, - {CTRY_ALGERIA, NULL1_WORLD, "DZ", "ALGERIA", YES, NO, YES, 7000 }, - {CTRY_ARGENTINA, APL3_WORLD, "AR", "ARGENTINA", NO, NO, NO, 7000 }, - {CTRY_ARMENIA, ETSI4_WORLD, "AM", "ARMENIA", YES, NO, YES, 7000 }, - {CTRY_AUSTRALIA, FCC2_WORLD, "AU", "AUSTRALIA", YES, YES, YES, 7000 }, - {CTRY_AUSTRIA, ETSI1_WORLD, "AT", "AUSTRIA", YES, NO, YES, 7000 }, - {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", "AZERBAIJAN", YES, YES, YES, 7000 }, - {CTRY_BAHRAIN, APL6_WORLD, "BH", "BAHRAIN", YES, NO, YES, 7000 }, - {CTRY_BELARUS, NULL1_WORLD, "BY", "BELARUS", YES, NO, YES, 7000 }, - {CTRY_BELGIUM, ETSI1_WORLD, "BE", "BELGIUM", YES, NO, YES, 7000 }, - {CTRY_BELIZE, APL1_ETSIC, "BZ", "BELIZE", YES, YES, YES, 7000 }, - {CTRY_BOLIVIA, APL1_ETSIC, "BO", "BOLVIA", YES, YES, YES, 7000 }, - {CTRY_BRAZIL, FCC3_WORLD, "BR", "BRAZIL", YES, NO, NO, 7000 }, - {CTRY_BRUNEI_DARUSSALAM,APL1_WORLD,"BN", "BRUNEI DARUSSALAM", YES, YES, YES, 7000 }, - {CTRY_BULGARIA, ETSI6_WORLD, "BG", "BULGARIA", YES, NO, YES, 7000 }, - {CTRY_CANADA, FCC2_FCCA, "CA", "CANADA", YES, YES, YES, 7000 }, - {CTRY_CHILE, APL6_WORLD, "CL", "CHILE", YES, YES, YES, 7000 }, - {CTRY_CHINA, APL1_WORLD, "CN", "CHINA", YES, YES, YES, 7000 }, - {CTRY_COLOMBIA, FCC1_FCCA, "CO", "COLOMBIA", YES, NO, YES, 7000 }, - {CTRY_COSTA_RICA, NULL1_WORLD, "CR", "COSTA RICA", YES, NO, YES, 7000 }, - {CTRY_CROATIA, ETSI3_WORLD, "HR", "CROATIA", YES, NO, YES, 7000 }, - {CTRY_CYPRUS, ETSI1_WORLD, "CY", "CYPRUS", YES, YES, YES, 7000 }, - {CTRY_CZECH, ETSI3_WORLD, "CZ", "CZECH REPUBLIC", YES, NO, YES, 7000 }, - {CTRY_DENMARK, ETSI1_WORLD, "DK", "DENMARK", YES, NO, YES, 7000 }, - {CTRY_DOMINICAN_REPUBLIC,FCC1_FCCA,"DO", "DOMINICAN REPUBLIC", YES, YES, YES, 7000 }, - {CTRY_ECUADOR, NULL1_WORLD, "EC", "ECUADOR", NO, NO, NO, 7000 }, - {CTRY_EGYPT, ETSI3_WORLD, "EG", "EGYPT", YES, NO, YES, 7000 }, - {CTRY_EL_SALVADOR, NULL1_WORLD, "SV", "EL SALVADOR", YES, NO, YES, 7000 }, - {CTRY_ESTONIA, ETSI1_WORLD, "EE", "ESTONIA", YES, NO, YES, 7000 }, - {CTRY_FINLAND, ETSI1_WORLD, "FI", "FINLAND", YES, NO, YES, 7000 }, - {CTRY_FRANCE, ETSI3_WORLD, "FR", "FRANCE", YES, NO, YES, 7000 }, - {CTRY_FRANCE2, ETSI3_WORLD, "F2", "FRANCE_RES", YES, NO, YES, 7000 }, - {CTRY_GEORGIA, ETSI4_WORLD, "GE", "GEORGIA", YES, YES, YES, 7000 }, - {CTRY_GERMANY, ETSI1_WORLD, "DE", "GERMANY", YES, NO, YES, 7000 }, - {CTRY_GREECE, ETSI1_WORLD, "GR", "GREECE", YES, NO, YES, 7000 }, - {CTRY_GSM, NULL1_GSM, "GS", "GSM", YES, NO, NO, 7000 }, - {CTRY_GUATEMALA, FCC1_FCCA, "GT", "GUATEMALA", YES, YES, YES, 7000 }, - {CTRY_HONDURAS, NULL1_WORLD, "HN", "HONDURAS", YES, NO, YES, 7000 }, - {CTRY_HONG_KONG, FCC2_WORLD, "HK", "HONG KONG", YES, YES, YES, 7000 }, - {CTRY_HUNGARY, ETSI1_WORLD, "HU", "HUNGARY", YES, NO, YES, 7000 }, - {CTRY_ICELAND, ETSI1_WORLD, "IS", "ICELAND", YES, NO, YES, 7000 }, - {CTRY_INDIA, APL6_WORLD, "IN", "INDIA", YES, NO, YES, 7000 }, - {CTRY_INDONESIA, APL1_WORLD, "ID", "INDONESIA", YES, NO, YES, 7000 }, - {CTRY_IRAN, APL1_WORLD, "IR", "IRAN", YES, YES, YES, 7000 }, - {CTRY_IRELAND, ETSI1_WORLD, "IE", "IRELAND", YES, NO, YES, 7000 }, - {CTRY_ISRAEL, NULL1_WORLD, "IL", "ISRAEL", YES, NO, YES, 7000 }, - {CTRY_ITALY, ETSI1_WORLD, "IT", "ITALY", YES, NO, YES, 7000 }, - {CTRY_JAPAN, MKK1_MKKA, "JP", "JAPAN", YES, NO, NO, 7000 }, - {CTRY_JAPAN1, MKK1_MKKB, "JP", "JAPAN1", YES, NO, NO, 7000 }, - {CTRY_JAPAN2, MKK1_FCCA, "JP", "JAPAN2", YES, NO, NO, 7000 }, - {CTRY_JAPAN3, MKK2_MKKA, "JP", "JAPAN3", YES, NO, NO, 7000 }, - {CTRY_JAPAN4, MKK1_MKKA1, "JP", "JAPAN4", YES, NO, NO, 7000 }, - {CTRY_JAPAN5, MKK1_MKKA2, "JP", "JAPAN5", YES, NO, NO, 7000 }, - {CTRY_JAPAN6, MKK1_MKKC, "JP", "JAPAN6", YES, NO, NO, 7000 }, - - {CTRY_JAPAN7, MKK3_MKKB, "JP", "JAPAN7", YES, NO, NO, 7000 }, - {CTRY_JAPAN8, MKK3_MKKA2, "JP", "JAPAN8", YES, NO, NO, 7000 }, - {CTRY_JAPAN9, MKK3_MKKC, "JP", "JAPAN9", YES, NO, NO, 7000 }, - - {CTRY_JAPAN10, MKK4_MKKB, "JP", "JAPAN10", YES, NO, NO, 7000 }, - {CTRY_JAPAN11, MKK4_MKKA2, "JP", "JAPAN11", YES, NO, NO, 7000 }, - {CTRY_JAPAN12, MKK4_MKKC, "JP", "JAPAN12", YES, NO, NO, 7000 }, - - {CTRY_JAPAN13, MKK5_MKKB, "JP", "JAPAN13", YES, NO, NO, 7000 }, - {CTRY_JAPAN14, MKK5_MKKA2, "JP", "JAPAN14", YES, NO, NO, 7000 }, - {CTRY_JAPAN15, MKK5_MKKC, "JP", "JAPAN15", YES, NO, NO, 7000 }, - - {CTRY_JAPAN16, MKK6_MKKB, "JP", "JAPAN16", YES, NO, NO, 7000 }, - {CTRY_JAPAN17, MKK6_MKKA2, "JP", "JAPAN17", YES, NO, NO, 7000 }, - {CTRY_JAPAN18, MKK6_MKKC, "JP", "JAPAN18", YES, NO, NO, 7000 }, - - {CTRY_JAPAN19, MKK7_MKKB, "JP", "JAPAN19", YES, NO, NO, 7000 }, - {CTRY_JAPAN20, MKK7_MKKA2, "JP", "JAPAN20", YES, NO, NO, 7000 }, - {CTRY_JAPAN21, MKK7_MKKC, "JP", "JAPAN21", YES, NO, NO, 7000 }, - - {CTRY_JAPAN22, MKK8_MKKB, "JP", "JAPAN22", YES, NO, NO, 7000 }, - {CTRY_JAPAN23, MKK8_MKKA2, "JP", "JAPAN23", YES, NO, NO, 7000 }, - {CTRY_JAPAN24, MKK8_MKKC, "JP", "JAPAN24", YES, NO, NO, 7000 }, - - {CTRY_JORDAN, APL4_WORLD, "JO", "JORDAN", YES, NO, YES, 7000 }, - {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", "KAZAKHSTAN", YES, NO, YES, 7000 }, - {CTRY_KOREA_NORTH, APL2_WORLD, "KP", "NORTH KOREA", YES, YES, YES, 7000 }, - {CTRY_KOREA_ROC, APL2_WORLD, "KR", "KOREA REPUBLIC", YES, NO, NO, 7000 }, - {CTRY_KOREA_ROC2, APL2_WORLD, "K2", "KOREA REPUBLIC2",YES, NO, NO, 7000 }, - {CTRY_KOREA_ROC3, APL9_WORLD, "K3", "KOREA REPUBLIC3",YES, NO, NO, 7000 }, - {CTRY_KUWAIT, NULL1_WORLD, "KW", "KUWAIT", YES, NO, YES, 7000 }, - {CTRY_LATVIA, ETSI1_WORLD, "LV", "LATVIA", YES, NO, YES, 7000 }, - {CTRY_LEBANON, NULL1_WORLD, "LB", "LEBANON", YES, NO, YES, 7000 }, - {CTRY_LIECHTENSTEIN,ETSI1_WORLD, "LI", "LIECHTENSTEIN", YES, NO, YES, 7000 }, - {CTRY_LITHUANIA, ETSI1_WORLD, "LT", "LITHUANIA", YES, NO, YES, 7000 }, - {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", "LUXEMBOURG", YES, NO, YES, 7000 }, - {CTRY_MACAU, FCC2_WORLD, "MO", "MACAU", YES, YES, YES, 7000 }, - {CTRY_MACEDONIA, NULL1_WORLD, "MK", "MACEDONIA", YES, NO, YES, 7000 }, - {CTRY_MALAYSIA, APL8_WORLD, "MY", "MALAYSIA", YES, NO, NO, 7000 }, - {CTRY_MALTA, ETSI1_WORLD, "MT", "MALTA", YES, NO, YES, 7000 }, - {CTRY_MEXICO, FCC1_FCCA, "MX", "MEXICO", YES, YES, YES, 7000 }, - {CTRY_MONACO, ETSI4_WORLD, "MC", "MONACO", YES, YES, YES, 7000 }, - {CTRY_MOROCCO, NULL1_WORLD, "MA", "MOROCCO", YES, NO, YES, 7000 }, - {CTRY_NETHERLANDS, ETSI1_WORLD, "NL", "NETHERLANDS", YES, NO, YES, 7000 }, - {CTRY_NEW_ZEALAND, FCC2_ETSIC, "NZ", "NEW ZEALAND", YES, NO, YES, 7000 }, - {CTRY_NORWAY, ETSI1_WORLD, "NO", "NORWAY", YES, NO, YES, 7000 }, - {CTRY_OMAN, APL6_WORLD, "OM", "OMAN", YES, NO, YES, 7000 }, - {CTRY_PAKISTAN, NULL1_WORLD, "PK", "PAKISTAN", YES, NO, YES, 7000 }, - {CTRY_PANAMA, FCC1_FCCA, "PA", "PANAMA", YES, YES, YES, 7000 }, - {CTRY_PERU, APL1_WORLD, "PE", "PERU", YES, NO, YES, 7000 }, - {CTRY_PHILIPPINES, APL1_WORLD, "PH", "PHILIPPINES", YES, YES, YES, 7000 }, - {CTRY_POLAND, ETSI1_WORLD, "PL", "POLAND", YES, NO, YES, 7000 }, - {CTRY_PORTUGAL, ETSI1_WORLD, "PT", "PORTUGAL", YES, NO, YES, 7000 }, - {CTRY_PUERTO_RICO, FCC1_FCCA, "PR", "PUERTO RICO", YES, YES, YES, 7000 }, - {CTRY_QATAR, NULL1_WORLD, "QA", "QATAR", YES, NO, YES, 7000 }, - {CTRY_ROMANIA, NULL1_WORLD, "RO", "ROMANIA", YES, NO, YES, 7000 }, - {CTRY_RUSSIA, NULL1_WORLD, "RU", "RUSSIA", YES, NO, YES, 7000 }, - {CTRY_SAUDI_ARABIA,NULL1_WORLD, "SA", "SAUDI ARABIA", YES, NO, YES, 7000 }, - {CTRY_SINGAPORE, APL6_WORLD, "SG", "SINGAPORE", YES, YES, YES, 7000 }, - {CTRY_SLOVAKIA, ETSI1_WORLD, "SK", "SLOVAK REPUBLIC",YES, NO, YES, 7000 }, - {CTRY_SLOVENIA, ETSI1_WORLD, "SI", "SLOVENIA", YES, NO, YES, 7000 }, - {CTRY_SOUTH_AFRICA,FCC3_WORLD, "ZA", "SOUTH AFRICA", YES, NO, YES, 7000 }, - {CTRY_SPAIN, ETSI1_WORLD, "ES", "SPAIN", YES, NO, YES, 7000 }, - {CTRY_SWEDEN, ETSI1_WORLD, "SE", "SWEDEN", YES, NO, YES, 7000 }, - {CTRY_SWITZERLAND, ETSI1_WORLD, "CH", "SWITZERLAND", YES, NO, YES, 7000 }, - {CTRY_SYRIA, NULL1_WORLD, "SY", "SYRIA", YES, NO, YES, 7000 }, - {CTRY_TAIWAN, APL3_FCCA, "TW", "TAIWAN", YES, YES, YES, 7000 }, - {CTRY_THAILAND, NULL1_WORLD, "TH", "THAILAND", YES, NO, YES, 7000 }, - {CTRY_TRINIDAD_Y_TOBAGO,ETSI4_WORLD,"TT", "TRINIDAD & TOBAGO", YES, NO, YES, 7000 }, - {CTRY_TUNISIA, ETSI3_WORLD, "TN", "TUNISIA", YES, NO, YES, 7000 }, - {CTRY_TURKEY, ETSI3_WORLD, "TR", "TURKEY", YES, NO, YES, 7000 }, - {CTRY_UKRAINE, NULL1_WORLD, "UA", "UKRAINE", YES, NO, YES, 7000 }, - {CTRY_UAE, NULL1_WORLD, "AE", "UNITED ARAB EMIRATES", YES, NO, YES, 7000 }, - {CTRY_UNITED_KINGDOM, ETSI1_WORLD,"GB", "UNITED KINGDOM", YES, NO, YES, 7000 }, - {CTRY_UNITED_STATES, FCC1_FCCA, "US", "UNITED STATES", YES, YES, YES, 5825 }, - {CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS", "UNITED STATES (PUBLIC SAFETY)", YES, YES, YES, 7000 }, - {CTRY_URUGUAY, APL2_WORLD, "UY", "URUGUAY", YES, NO, YES, 7000 }, - {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ", "UZBEKISTAN", YES, YES, YES, 7000 }, - {CTRY_VENEZUELA, APL2_ETSIC, "VE", "VENEZUELA", YES, NO, YES, 7000 }, - {CTRY_VIET_NAM, NULL1_WORLD, "VN", "VIET NAM", YES, NO, YES, 7000 }, - {CTRY_YEMEN, NULL1_WORLD, "YE", "YEMEN", YES, NO, YES, 7000 }, - {CTRY_ZIMBABWE, NULL1_WORLD, "ZW", "ZIMBABWE", YES, NO, YES, 7000 } + {CTRY_DEBUG, NO_ENUMRD, "DB", "DEBUG" }, + {CTRY_DEFAULT, DEF_REGDMN, "NA", "NO_COUNTRY_SET" }, + {CTRY_ALBANIA, NULL1_WORLD, "AL", "ALBANIA" }, + {CTRY_ALGERIA, NULL1_WORLD, "DZ", "ALGERIA" }, + {CTRY_ARGENTINA, APL3_WORLD, "AR", "ARGENTINA" }, + {CTRY_ARMENIA, ETSI4_WORLD, "AM", "ARMENIA" }, + {CTRY_AUSTRALIA, FCC2_WORLD, "AU", "AUSTRALIA" }, + {CTRY_AUSTRIA, ETSI1_WORLD, "AT", "AUSTRIA" }, + {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", "AZERBAIJAN" }, + {CTRY_BAHRAIN, APL6_WORLD, "BH", "BAHRAIN" }, + {CTRY_BELARUS, NULL1_WORLD, "BY", "BELARUS" }, + {CTRY_BELGIUM, ETSI1_WORLD, "BE", "BELGIUM" }, + {CTRY_BELIZE, APL1_ETSIC, "BZ", "BELIZE" }, + {CTRY_BOLIVIA, APL1_ETSIC, "BO", "BOLVIA" }, + {CTRY_BRAZIL, FCC3_WORLD, "BR", "BRAZIL" }, + {CTRY_BRUNEI_DARUSSALAM,APL1_WORLD,"BN", "BRUNEI DARUSSALAM" }, + {CTRY_BULGARIA, ETSI6_WORLD, "BG", "BULGARIA" }, + {CTRY_CANADA, FCC2_FCCA, "CA", "CANADA" }, + {CTRY_CHILE, APL6_WORLD, "CL", "CHILE" }, + {CTRY_CHINA, APL1_WORLD, "CN", "CHINA" }, + {CTRY_COLOMBIA, FCC1_FCCA, "CO", "COLOMBIA" }, + {CTRY_COSTA_RICA, NULL1_WORLD, "CR", "COSTA RICA" }, + {CTRY_CROATIA, ETSI3_WORLD, "HR", "CROATIA" }, + {CTRY_CYPRUS, ETSI1_WORLD, "CY", "CYPRUS" }, + {CTRY_CZECH, ETSI3_WORLD, "CZ", "CZECH REPUBLIC" }, + {CTRY_DENMARK, ETSI1_WORLD, "DK", "DENMARK" }, + {CTRY_DOMINICAN_REPUBLIC,FCC1_FCCA,"DO", "DOMINICAN REPUBLIC" }, + {CTRY_ECUADOR, NULL1_WORLD, "EC", "ECUADOR" }, + {CTRY_EGYPT, ETSI3_WORLD, "EG", "EGYPT" }, + {CTRY_EL_SALVADOR, NULL1_WORLD, "SV", "EL SALVADOR" }, + {CTRY_ESTONIA, ETSI1_WORLD, "EE", "ESTONIA" }, + {CTRY_FINLAND, ETSI1_WORLD, "FI", "FINLAND" }, + {CTRY_FRANCE, ETSI3_WORLD, "FR", "FRANCE" }, + {CTRY_FRANCE2, ETSI3_WORLD, "F2", "FRANCE_RES" }, + {CTRY_GEORGIA, ETSI4_WORLD, "GE", "GEORGIA" }, + {CTRY_GERMANY, ETSI1_WORLD, "DE", "GERMANY" }, + {CTRY_GREECE, ETSI1_WORLD, "GR", "GREECE" }, + {CTRY_GUATEMALA, FCC1_FCCA, "GT", "GUATEMALA" }, + {CTRY_HONDURAS, NULL1_WORLD, "HN", "HONDURAS" }, + {CTRY_HONG_KONG, FCC2_WORLD, "HK", "HONG KONG" }, + {CTRY_HUNGARY, ETSI1_WORLD, "HU", "HUNGARY" }, + {CTRY_ICELAND, ETSI1_WORLD, "IS", "ICELAND" }, + {CTRY_INDIA, APL6_WORLD, "IN", "INDIA" }, + {CTRY_INDONESIA, APL1_WORLD, "ID", "INDONESIA" }, + {CTRY_IRAN, APL1_WORLD, "IR", "IRAN" }, + {CTRY_IRELAND, ETSI1_WORLD, "IE", "IRELAND" }, + {CTRY_ISRAEL, NULL1_WORLD, "IL", "ISRAEL" }, + {CTRY_ITALY, ETSI1_WORLD, "IT", "ITALY" }, + {CTRY_JAPAN, MKK1_MKKA, "JP", "JAPAN" }, + {CTRY_JAPAN1, MKK1_MKKB, "JP", "JAPAN1" }, + {CTRY_JAPAN2, MKK1_FCCA, "JP", "JAPAN2" }, + {CTRY_JAPAN3, MKK2_MKKA, "JP", "JAPAN3" }, + {CTRY_JAPAN4, MKK1_MKKA1, "JP", "JAPAN4" }, + {CTRY_JAPAN5, MKK1_MKKA2, "JP", "JAPAN5" }, + {CTRY_JAPAN6, MKK1_MKKC, "JP", "JAPAN6" }, + + {CTRY_JAPAN7, MKK3_MKKB, "JP", "JAPAN7" }, + {CTRY_JAPAN8, MKK3_MKKA2, "JP", "JAPAN8" }, + {CTRY_JAPAN9, MKK3_MKKC, "JP", "JAPAN9" }, + + {CTRY_JAPAN10, MKK4_MKKB, "JP", "JAPAN10" }, + {CTRY_JAPAN11, MKK4_MKKA2, "JP", "JAPAN11" }, + {CTRY_JAPAN12, MKK4_MKKC, "JP", "JAPAN12" }, + + {CTRY_JAPAN13, MKK5_MKKB, "JP", "JAPAN13" }, + {CTRY_JAPAN14, MKK5_MKKA2, "JP", "JAPAN14" }, + {CTRY_JAPAN15, MKK5_MKKC, "JP", "JAPAN15" }, + + {CTRY_JAPAN16, MKK6_MKKB, "JP", "JAPAN16" }, + {CTRY_JAPAN17, MKK6_MKKA2, "JP", "JAPAN17" }, + {CTRY_JAPAN18, MKK6_MKKC, "JP", "JAPAN18" }, + + {CTRY_JAPAN19, MKK7_MKKB, "JP", "JAPAN19" }, + {CTRY_JAPAN20, MKK7_MKKA2, "JP", "JAPAN20" }, + {CTRY_JAPAN21, MKK7_MKKC, "JP", "JAPAN21" }, + + {CTRY_JAPAN22, MKK8_MKKB, "JP", "JAPAN22" }, + {CTRY_JAPAN23, MKK8_MKKA2, "JP", "JAPAN23" }, + {CTRY_JAPAN24, MKK8_MKKC, "JP", "JAPAN24" }, + + {CTRY_JORDAN, APL4_WORLD, "JO", "JORDAN" }, + {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", "KAZAKHSTAN" }, + {CTRY_KOREA_NORTH, APL2_WORLD, "KP", "NORTH KOREA" }, + {CTRY_KOREA_ROC, APL2_WORLD, "KR", "KOREA REPUBLIC" }, + {CTRY_KOREA_ROC2, APL2_WORLD, "K2", "KOREA REPUBLIC2" }, + {CTRY_KOREA_ROC3, APL9_WORLD, "K3", "KOREA REPUBLIC3" }, + {CTRY_KUWAIT, NULL1_WORLD, "KW", "KUWAIT" }, + {CTRY_LATVIA, ETSI1_WORLD, "LV", "LATVIA" }, + {CTRY_LEBANON, NULL1_WORLD, "LB", "LEBANON" }, + {CTRY_LIECHTENSTEIN,ETSI1_WORLD, "LI", "LIECHTENSTEIN" }, + {CTRY_LITHUANIA, ETSI1_WORLD, "LT", "LITHUANIA" }, + {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", "LUXEMBOURG" }, + {CTRY_MACAU, FCC2_WORLD, "MO", "MACAU" }, + {CTRY_MACEDONIA, NULL1_WORLD, "MK", "MACEDONIA" }, + {CTRY_MALAYSIA, APL8_WORLD, "MY", "MALAYSIA" }, + {CTRY_MALTA, ETSI1_WORLD, "MT", "MALTA" }, + {CTRY_MEXICO, FCC1_FCCA, "MX", "MEXICO" }, + {CTRY_MONACO, ETSI4_WORLD, "MC", "MONACO" }, + {CTRY_MOROCCO, NULL1_WORLD, "MA", "MOROCCO" }, + {CTRY_NETHERLANDS, ETSI1_WORLD, "NL", "NETHERLANDS" }, + {CTRY_NEW_ZEALAND, FCC2_ETSIC, "NZ", "NEW ZEALAND" }, + {CTRY_NORWAY, ETSI1_WORLD, "NO", "NORWAY" }, + {CTRY_OMAN, APL6_WORLD, "OM", "OMAN" }, + {CTRY_PAKISTAN, NULL1_WORLD, "PK", "PAKISTAN" }, + {CTRY_PANAMA, FCC1_FCCA, "PA", "PANAMA" }, + {CTRY_PERU, APL1_WORLD, "PE", "PERU" }, + {CTRY_PHILIPPINES, APL1_WORLD, "PH", "PHILIPPINES" }, + {CTRY_POLAND, ETSI1_WORLD, "PL", "POLAND" }, + {CTRY_PORTUGAL, ETSI1_WORLD, "PT", "PORTUGAL" }, + {CTRY_PUERTO_RICO, FCC1_FCCA, "PR", "PUERTO RICO" }, + {CTRY_QATAR, NULL1_WORLD, "QA", "QATAR" }, + {CTRY_ROMANIA, NULL1_WORLD, "RO", "ROMANIA" }, + {CTRY_RUSSIA, NULL1_WORLD, "RU", "RUSSIA" }, + {CTRY_SAUDI_ARABIA,NULL1_WORLD, "SA", "SAUDI ARABIA" }, + {CTRY_SINGAPORE, APL6_WORLD, "SG", "SINGAPORE" }, + {CTRY_SLOVAKIA, ETSI1_WORLD, "SK", "SLOVAK REPUBLIC" }, + {CTRY_SLOVENIA, ETSI1_WORLD, "SI", "SLOVENIA" }, + {CTRY_SOUTH_AFRICA,FCC3_WORLD, "ZA", "SOUTH AFRICA" }, + {CTRY_SPAIN, ETSI1_WORLD, "ES", "SPAIN" }, + {CTRY_SWEDEN, ETSI1_WORLD, "SE", "SWEDEN" }, + {CTRY_SWITZERLAND, ETSI1_WORLD, "CH", "SWITZERLAND" }, + {CTRY_SYRIA, NULL1_WORLD, "SY", "SYRIA" }, + {CTRY_TAIWAN, APL3_FCCA, "TW", "TAIWAN" }, + {CTRY_THAILAND, NULL1_WORLD, "TH", "THAILAND" }, + {CTRY_TRINIDAD_Y_TOBAGO,ETSI4_WORLD,"TT", "TRINIDAD & TOBAGO" }, + {CTRY_TUNISIA, ETSI3_WORLD, "TN", "TUNISIA" }, + {CTRY_TURKEY, ETSI3_WORLD, "TR", "TURKEY" }, + {CTRY_UKRAINE, NULL1_WORLD, "UA", "UKRAINE" }, + {CTRY_UAE, NULL1_WORLD, "AE", "UNITED ARAB EMIRATES" }, + {CTRY_UNITED_KINGDOM, ETSI1_WORLD,"GB", "UNITED KINGDOM" }, + {CTRY_UNITED_STATES, FCC1_FCCA, "US", "UNITED STATES" }, + {CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS", "UNITED STATES (PUBLIC SAFETY)" }, + {CTRY_URUGUAY, APL2_WORLD, "UY", "URUGUAY" }, + {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ", "UZBEKISTAN" }, + {CTRY_VENEZUELA, APL2_ETSIC, "VE", "VENEZUELA" }, + {CTRY_VIET_NAM, NULL1_WORLD, "VN", "VIET NAM" }, + {CTRY_YEMEN, NULL1_WORLD, "YE", "YEMEN" }, + {CTRY_ZIMBABWE, NULL1_WORLD, "ZW", "ZIMBABWE" } }; -#undef YES -#undef NO static HAL_BOOL cclookup(const char *name, HAL_REG_DOMAIN *rd, HAL_CTRY_CODE *cc) @@ -952,12 +784,13 @@ cclist() } static HAL_BOOL -setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan, +setRateTable(struct ath_hal *ah, const struct ieee80211_channel *chan, int16_t tpcScaleReduction, int16_t powerLimit, int16_t *pMinPower, int16_t *pMaxPower); static void -calctxpower(struct ath_hal *ah, int nchan, HAL_CHANNEL *chans, +calctxpower(struct ath_hal *ah, + int nchan, const struct ieee80211_channel *chans, int16_t tpcScaleReduction, int16_t powerLimit, int16_t *txpow) { int16_t minpow; @@ -979,12 +812,12 @@ int isdfs = 0; int is4ms = 0; static int -anychan(const HAL_CHANNEL *chans, int nc, int flag) +anychan(const struct ieee80211_channel *chans, int nc, int flag) { int i; for (i = 0; i < nc; i++) - if ((chans[i].privFlags & flag) != 0) + if ((chans[i].ic_flags & flag) != 0) return 1; return 0; } @@ -993,9 +826,9 @@ static __inline int mapgsm(u_int freq, u_int flags) { freq *= 10; - if (flags & CHANNEL_QUARTER) + if (flags & IEEE80211_CHAN_QUARTER) freq += 5; - else if (flags & CHANNEL_HALF) + else if (flags & IEEE80211_CHAN_HALF) freq += 10; else freq += 20; @@ -1014,93 +847,85 @@ mappsb(u_int freq, u_int flags) int ath_hal_mhz2ieee(struct ath_hal *ah, u_int freq, u_int flags) { - if (flags & CHANNEL_2GHZ) { /* 2GHz band */ + if (flags & IEEE80211_CHAN_2GHZ) { /* 2GHz band */ if (freq == 2484) return 14; - if (freq < 2484) { - if (ath_hal_isgsmsku(ah)) - return mapgsm(freq, flags); + if (freq < 2484) return ((int)freq - 2407) / 5; - } else + else return 15 + ((freq - 2512) / 20); - } else if (flags & CHANNEL_5GHZ) {/* 5Ghz band */ - if (ath_hal_ispublicsafetysku(ah) && - IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) { + } else if (flags & IEEE80211_CHAN_5GHZ) {/* 5Ghz band */ + if (IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) return mappsb(freq, flags); - } else if ((flags & CHANNEL_A) && (freq <= 5000)) { + else if ((flags & IEEE80211_CHAN_A) && (freq <= 5000)) return (freq - 4000) / 5; - } else { + else return (freq - 5000) / 5; - } } else { /* either, guess */ if (freq == 2484) return 14; - if (freq < 2484) { - if (ath_hal_isgsmsku(ah)) - return mapgsm(freq, flags); + if (freq < 2484) return ((int)freq - 2407) / 5; - } if (freq < 5000) { - if (ath_hal_ispublicsafetysku(ah) && - IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) { + if (IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) return mappsb(freq, flags); - } else if (freq > 4900) { + else if (freq > 4900) return (freq - 4000) / 5; - } else { + else return 15 + ((freq - 2512) / 20); - } } return (freq - 5000) / 5; } } -#define IS_CHAN_DFS(_c) (((_c)->privFlags & CHANNEL_DFS) != 0) -#define IS_CHAN_4MS(_c) (((_c)->privFlags & CHANNEL_4MS_LIMIT) != 0) +#define IEEE80211_IS_CHAN_4MS(_c) \ + (((_c)->ic_flags & IEEE80211_CHAN_4MSXMIT) != 0) static void -dumpchannels(struct ath_hal *ah, int nc, HAL_CHANNEL *chans, int16_t *txpow) +dumpchannels(struct ath_hal *ah, int nc, + const struct ieee80211_channel *chans, int16_t *txpow) { int i; for (i = 0; i < nc; i++) { - HAL_CHANNEL *c = &chans[i]; + const struct ieee80211_channel *c = &chans[i]; int type; if (showchannels) printf("%s%3d", sep, - ath_hal_mhz2ieee(ah, c->channel, c->channelFlags)); + ath_hal_mhz2ieee(ah, c->ic_freq, c->ic_flags)); else - printf("%s%u", sep, c->channel); - if (IS_CHAN_HALF_RATE(c)) + printf("%s%u", sep, c->ic_freq); + if (IEEE80211_IS_CHAN_HALF(c)) type = 'H'; - else if (IS_CHAN_QUARTER_RATE(c)) + else if (IEEE80211_IS_CHAN_QUARTER(c)) type = 'Q'; - else if (IS_CHAN_TURBO(c)) + else if (IEEE80211_IS_CHAN_TURBO(c)) type = 'T'; - else if (IS_CHAN_HT(c)) + else if (IEEE80211_IS_CHAN_HT(c)) type = 'N'; - else if (IS_CHAN_A(c)) + else if (IEEE80211_IS_CHAN_A(c)) type = 'A'; - else if (IS_CHAN_108G(c)) + else if (IEEE80211_IS_CHAN_108G(c)) type = 'T'; - else if (IS_CHAN_G(c)) + else if (IEEE80211_IS_CHAN_G(c)) type = 'G'; else type = 'B'; - if (dopassive && IS_CHAN_PASSIVE(c)) + if (dopassive && IEEE80211_IS_CHAN_PASSIVE(c)) type = tolower(type); if (isdfs && is4ms) printf("%c%c%c %d.%d", type, - IS_CHAN_DFS(c) ? '*' : ' ', - IS_CHAN_4MS(c) ? '4' : ' ', + IEEE80211_IS_CHAN_DFS(c) ? '*' : ' ', + IEEE80211_IS_CHAN_4MS(c) ? '4' : ' ', txpow[i]/2, (txpow[i]%2)*5); else if (isdfs) printf("%c%c %d.%d", type, - IS_CHAN_DFS(c) ? '*' : ' ', + IEEE80211_IS_CHAN_DFS(c) ? '*' : ' ', txpow[i]/2, (txpow[i]%2)*5); else if (is4ms) printf("%c%c %d.%d", type, - IS_CHAN_4MS(c) ? '4' : ' ', + IEEE80211_IS_CHAN_4MS(c) ? '4' : ' ', txpow[i]/2, (txpow[i]%2)*5); else printf("%c %d.%d", type, txpow[i]/2, (txpow[i]%2)*5); @@ -1112,25 +937,12 @@ dumpchannels(struct ath_hal *ah, int nc, } static void -checkchannels(struct ath_hal *ah, HAL_CHANNEL *chans, int nchan) -{ - int i; - - for (i = 0; i < nchan; i++) { - HAL_CHANNEL *c = &chans[i]; - if (!ath_hal_checkchannel(ah, c)) - printf("Channel %u (0x%x) disallowed\n", - c->channel, c->channelFlags); - } -} - -static void -intersect(HAL_CHANNEL *dst, int16_t *dtxpow, int *nd, - const HAL_CHANNEL *src, int16_t *stxpow, int ns) +intersect(struct ieee80211_channel *dst, int16_t *dtxpow, int *nd, + const struct ieee80211_channel *src, int16_t *stxpow, int ns) { int i = 0, j, k, l; while (i < *nd) { - for (j = 0; j < ns && dst[i].channel != src[j].channel; j++) + for (j = 0; j < ns && dst[i].ic_freq != src[j].ic_freq; j++) ; if (j < ns && dtxpow[i] == stxpow[j]) { for (k = i+1, l = i; k < *nd; k++, l++) @@ -1149,7 +961,7 @@ usage(const char *progname) } static HAL_BOOL -getChipPowerLimits(struct ath_hal *ah, HAL_CHANNEL *chans, u_int32_t nchan) +getChipPowerLimits(struct ath_hal *ah, struct ieee80211_channel *chan) { } @@ -1199,25 +1011,23 @@ main(int argc, char *argv[]) static const u_int16_t tpcScaleReductionTable[5] = { 0, 3, 6, 9, MAX_RATE_POWER }; struct ath_hal_private ahp; - HAL_CHANNEL achans[IEEE80211_CHAN_MAX]; + struct ieee80211_channel achans[IEEE80211_CHAN_MAX]; int16_t atxpow[IEEE80211_CHAN_MAX]; - HAL_CHANNEL bchans[IEEE80211_CHAN_MAX]; + struct ieee80211_channel bchans[IEEE80211_CHAN_MAX]; int16_t btxpow[IEEE80211_CHAN_MAX]; - HAL_CHANNEL gchans[IEEE80211_CHAN_MAX]; + struct ieee80211_channel gchans[IEEE80211_CHAN_MAX]; int16_t gtxpow[IEEE80211_CHAN_MAX]; - HAL_CHANNEL tchans[IEEE80211_CHAN_MAX]; + struct ieee80211_channel tchans[IEEE80211_CHAN_MAX]; int16_t ttxpow[IEEE80211_CHAN_MAX]; - HAL_CHANNEL tgchans[IEEE80211_CHAN_MAX]; + struct ieee80211_channel tgchans[IEEE80211_CHAN_MAX]; int16_t tgtxpow[IEEE80211_CHAN_MAX]; - HAL_CHANNEL nchans[IEEE80211_CHAN_MAX]; + struct ieee80211_channel nchans[IEEE80211_CHAN_MAX]; int16_t ntxpow[IEEE80211_CHAN_MAX]; int i, na, nb, ng, nt, ntg, nn; HAL_BOOL showall = AH_FALSE; HAL_BOOL extendedChanMode = AH_TRUE; int modes = 0; int16_t tpcReduction, powerLimit; - int8_t regids[IEEE80211_REGCLASSIDS_MAX]; - int nregids; int showdfs = 0; int show4ms = 0; @@ -1239,7 +1049,7 @@ main(int argc, char *argv[]) tpcReduction = tpcScaleReductionTable[0]; powerLimit = MAX_RATE_POWER; - while ((i = getopt(argc, argv, "acdefoilm:pr4ABGhHNT")) != -1) + while ((i = getopt(argc, argv, "acdeflm:pr4ABGhHNT")) != -1) switch (i) { case 'a': showall = AH_TRUE; @@ -1256,12 +1066,6 @@ main(int argc, char *argv[]) case 'f': showchannels = AH_FALSE; break; - case 'o': - outdoor = AH_TRUE; - break; - case 'i': - outdoor = AH_FALSE; - break; case 'l': cclist(); rdlist(); @@ -1362,93 +1166,76 @@ main(int argc, char *argv[]) printf("\n%s (0x%x, %u)\n", getrdname(rd), rd, rd); - if (modes == 0) + if (modes == 0) { + /* NB: no HAL_MODE_HT */ modes = HAL_MODE_11A | HAL_MODE_11B | - HAL_MODE_11G | HAL_MODE_TURBO | HAL_MODE_108G | - HAL_MODE_HT; + HAL_MODE_11G | HAL_MODE_TURBO | HAL_MODE_108G; + } na = nb = ng = nt = ntg = nn = 0; if (modes & HAL_MODE_11G) { ahp.ah_currentRD = rd; - if (ath_hal_init_channels(&ahp.h, - gchans, IEEE80211_CHAN_MAX, &ng, - regids, IEEE80211_REGCLASSIDS_MAX, &nregids, - cc, HAL_MODE_11G, outdoor, extendedChanMode)) { - checkchannels(&ahp.h, gchans, ng); + if (ath_hal_getchannels(&ahp.h, gchans, IEEE80211_CHAN_MAX, &ng, + HAL_MODE_11G, cc, rd, extendedChanMode) == HAL_OK) { calctxpower(&ahp.h, ng, gchans, tpcReduction, powerLimit, gtxpow); if (showdfs) - isdfs |= anychan(gchans, ng, CHANNEL_DFS); + isdfs |= anychan(gchans, ng, IEEE80211_CHAN_DFS); if (show4ms) - is4ms |= anychan(gchans, ng, CHANNEL_4MS_LIMIT); + is4ms |= anychan(gchans, ng, IEEE80211_CHAN_4MSXMIT); } } if (modes & HAL_MODE_11B) { ahp.ah_currentRD = rd; - if (ath_hal_init_channels(&ahp.h, - bchans, IEEE80211_CHAN_MAX, &nb, - regids, IEEE80211_REGCLASSIDS_MAX, &nregids, - cc, HAL_MODE_11B, outdoor, extendedChanMode)) { - checkchannels(&ahp.h, bchans, nb); + if (ath_hal_getchannels(&ahp.h, bchans, IEEE80211_CHAN_MAX, &nb, + HAL_MODE_11B, cc, rd, extendedChanMode) == HAL_OK) { calctxpower(&ahp.h, nb, bchans, tpcReduction, powerLimit, btxpow); if (showdfs) - isdfs |= anychan(bchans, nb, CHANNEL_DFS); + isdfs |= anychan(bchans, nb, IEEE80211_CHAN_DFS); if (show4ms) - is4ms |= anychan(bchans, nb, CHANNEL_4MS_LIMIT); + is4ms |= anychan(bchans, nb, IEEE80211_CHAN_4MSXMIT); } } if (modes & HAL_MODE_11A) { ahp.ah_currentRD = rd; - if (ath_hal_init_channels(&ahp.h, - achans, IEEE80211_CHAN_MAX, &na, - regids, IEEE80211_REGCLASSIDS_MAX, &nregids, - cc, HAL_MODE_11A, outdoor, extendedChanMode)) { - checkchannels(&ahp.h, achans, na); + if (ath_hal_getchannels(&ahp.h, achans, IEEE80211_CHAN_MAX, &na, + HAL_MODE_11A, cc, rd, extendedChanMode) == HAL_OK) { calctxpower(&ahp.h, na, achans, tpcReduction, powerLimit, atxpow); if (showdfs) - isdfs |= anychan(achans, na, CHANNEL_DFS); + isdfs |= anychan(achans, na, IEEE80211_CHAN_DFS); if (show4ms) - is4ms |= anychan(achans, na, CHANNEL_4MS_LIMIT); + is4ms |= anychan(achans, na, IEEE80211_CHAN_4MSXMIT); } } if (modes & HAL_MODE_TURBO) { ahp.ah_currentRD = rd; - if (ath_hal_init_channels(&ahp.h, - tchans, IEEE80211_CHAN_MAX, &nt, - regids, IEEE80211_REGCLASSIDS_MAX, &nregids, - cc, HAL_MODE_TURBO, outdoor, extendedChanMode)) { - checkchannels(&ahp.h, tchans, nt); + if (ath_hal_getchannels(&ahp.h, tchans, IEEE80211_CHAN_MAX, &nt, + HAL_MODE_TURBO, cc, rd, extendedChanMode) == HAL_OK) { calctxpower(&ahp.h, nt, tchans, tpcReduction, powerLimit, ttxpow); if (showdfs) - isdfs |= anychan(tchans, nt, CHANNEL_DFS); + isdfs |= anychan(tchans, nt, IEEE80211_CHAN_DFS); if (show4ms) - is4ms |= anychan(tchans, nt, CHANNEL_4MS_LIMIT); + is4ms |= anychan(tchans, nt, IEEE80211_CHAN_4MSXMIT); } } if (modes & HAL_MODE_108G) { ahp.ah_currentRD = rd; - if (ath_hal_init_channels(&ahp.h, - tgchans, IEEE80211_CHAN_MAX, &ntg, - regids, IEEE80211_REGCLASSIDS_MAX, &nregids, - cc, HAL_MODE_108G, outdoor, extendedChanMode)) { - checkchannels(&ahp.h, tgchans, ntg); + if (ath_hal_getchannels(&ahp.h, tgchans, IEEE80211_CHAN_MAX, &ntg, + HAL_MODE_108G, cc, rd, extendedChanMode) == HAL_OK) { calctxpower(&ahp.h, ntg, tgchans, tpcReduction, powerLimit, tgtxpow); if (showdfs) - isdfs |= anychan(tgchans, ntg, CHANNEL_DFS); + isdfs |= anychan(tgchans, ntg, IEEE80211_CHAN_DFS); if (show4ms) - is4ms |= anychan(tgchans, ntg, CHANNEL_4MS_LIMIT); + is4ms |= anychan(tgchans, ntg, IEEE80211_CHAN_4MSXMIT); } } if (modes & HAL_MODE_HT) { ahp.ah_currentRD = rd; - if (ath_hal_init_channels(&ahp.h, - nchans, IEEE80211_CHAN_MAX, &nn, - regids, IEEE80211_REGCLASSIDS_MAX, &nregids, - cc, modes & HAL_MODE_HT, outdoor, extendedChanMode)) { - checkchannels(&ahp.h, nchans, nn); + if (ath_hal_getchannels(&ahp.h, nchans, IEEE80211_CHAN_MAX, &nn, + modes & HAL_MODE_HT, cc, rd, extendedChanMode) == HAL_OK) { calctxpower(&ahp.h, nn, nchans, tpcReduction, powerLimit, ntxpow); if (showdfs) - isdfs |= anychan(nchans, nn, CHANNEL_DFS); + isdfs |= anychan(nchans, nn, IEEE80211_CHAN_DFS); if (show4ms) - is4ms |= anychan(nchans, nn, CHANNEL_4MS_LIMIT); + is4ms |= anychan(nchans, nn, IEEE80211_CHAN_4MSXMIT); } } @@ -1623,7 +1410,7 @@ interpolate(u_int16_t target, u_int16_t * channel, and number of channels */ static void -ar5212GetTargetPowers(struct ath_hal *ah, HAL_CHANNEL *chan, +ar5212GetTargetPowers(struct ath_hal *ah, const struct ieee80211_channel *chan, TRGT_POWER_INFO *powInfo, u_int16_t numChannels, TRGT_POWER_INFO *pNewPower) { @@ -1636,7 +1423,7 @@ ar5212GetTargetPowers(struct ath_hal *ah for (i = 0; i < numChannels; i++) tempChannelList[i] = powInfo[i].testChannel; - ar5212GetLowerUpperValues(chan->channel, tempChannelList, + ar5212GetLowerUpperValues(chan->ic_freq, tempChannelList, numChannels, &clo, &chi); /* Get the indices for the channel */ @@ -1655,13 +1442,13 @@ ar5212GetTargetPowers(struct ath_hal *ah * Get the lower and upper channels, target powers, * and interpolate between them. */ - pNewPower->twicePwr6_24 = interpolate(chan->channel, clo, chi, + pNewPower->twicePwr6_24 = interpolate(chan->ic_freq, clo, chi, powInfo[ixlo].twicePwr6_24, powInfo[ixhi].twicePwr6_24); - pNewPower->twicePwr36 = interpolate(chan->channel, clo, chi, + pNewPower->twicePwr36 = interpolate(chan->ic_freq, clo, chi, powInfo[ixlo].twicePwr36, powInfo[ixhi].twicePwr36); - pNewPower->twicePwr48 = interpolate(chan->channel, clo, chi, + pNewPower->twicePwr48 = interpolate(chan->ic_freq, clo, chi, powInfo[ixlo].twicePwr48, powInfo[ixhi].twicePwr48); - pNewPower->twicePwr54 = interpolate(chan->channel, clo, chi, + pNewPower->twicePwr54 = interpolate(chan->ic_freq, clo, chi, powInfo[ixlo].twicePwr54, powInfo[ixhi].twicePwr54); } @@ -1681,7 +1468,7 @@ findEdgePower(struct ath_hal *ah, u_int * operating channel and mode. */ static HAL_BOOL -setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan, +setRateTable(struct ath_hal *ah, const struct ieee80211_channel *chan, int16_t tpcScaleReduction, int16_t powerLimit, int16_t *pMinPower, int16_t *pMaxPower) { @@ -1694,7 +1481,7 @@ setRateTable(struct ath_hal *ah, HAL_CHA int16_t scaledPower; u_int8_t cfgCtl; - twiceMaxRDPower = chan->maxRegTxPower * 2; + twiceMaxRDPower = chan->ic_maxregpower * 2; *pMaxPower = -MAX_RATE_POWER; *pMinPower = MAX_RATE_POWER; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Jan 30 02:39:09 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 035A81065672; Fri, 30 Jan 2009 02:39:09 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E308E8FC18; Fri, 30 Jan 2009 02:39:08 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0U2d8Qr076989; Fri, 30 Jan 2009 02:39:08 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0U2d8lq076983; Fri, 30 Jan 2009 02:39:08 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <200901300239.n0U2d8lq076983@svn.freebsd.org> From: Lawrence Stewart Date: Fri, 30 Jan 2009 02:39:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187908 - in projects/tcp_cc_8.x: share/man/man4 sys/conf sys/modules sys/modules/cc_cubic sys/netinet X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2009 02:39:09 -0000 Author: lstewart Date: Fri Jan 30 02:39:08 2009 New Revision: 187908 URL: http://svn.freebsd.org/changeset/base/187908 Log: Initial import from my dev repo of a clean room kernel module implementation of the CUBIC congestion control algorithm. Needs some further testing and debug/style cleanup, but is functional in its current form. Added: projects/tcp_cc_8.x/share/man/man4/cc_cubic.4 (contents, props changed) projects/tcp_cc_8.x/sys/modules/cc_cubic/ projects/tcp_cc_8.x/sys/modules/cc_cubic/Makefile (contents, props changed) projects/tcp_cc_8.x/sys/netinet/cc_cubic.c (contents, props changed) projects/tcp_cc_8.x/sys/netinet/cc_cubic.h (contents, props changed) Modified: projects/tcp_cc_8.x/sys/conf/files projects/tcp_cc_8.x/sys/modules/Makefile Added: projects/tcp_cc_8.x/share/man/man4/cc_cubic.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/tcp_cc_8.x/share/man/man4/cc_cubic.4 Fri Jan 30 02:39:08 2009 (r187908) @@ -0,0 +1,60 @@ +.\" +.\" Copyright (c) 2009 Lawrence Stewart +.\" 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, +.\" without modification, immediately at the beginning of the file. +.\" 2. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" 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 January 22, 2009 +.Dt CC_CUBIC 4 +.Os +.Sh NAME +.Nm cc_cubic +.Nd CUBIC Congestion Control Algorithm +.Sh DESCRIPTION +The +.N +congestion control algorithm +.Ss Runtime Configuration +There are currently no tunable variables. +.Sh SEE ALSO +.Xr cc 9 +.Sh HISTORY +The +.Nm +congestion control module first appeared in +.Fx 8.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +congestion control module was written by +.An Lawrence Stewart Aq lstewart@FreeBSD.org +while studying at the Centre for Advanced Internet Architectures, +Swinburne University (http://caia.swin.edu.au/). +.Pp +This manual page was written by +.An Lawrence Stewart Aq lstewart@FreeBSD.org . +.Sh ACKNOWLEDGMENTS +Development of this software was made possible in part by a grant from the +Cisco University Research Program Fund at Community Foundation Silicon Valley. Modified: projects/tcp_cc_8.x/sys/conf/files ============================================================================== --- projects/tcp_cc_8.x/sys/conf/files Fri Jan 30 00:22:08 2009 (r187907) +++ projects/tcp_cc_8.x/sys/conf/files Fri Jan 30 02:39:08 2009 (r187908) @@ -2355,6 +2355,7 @@ netinet/ip_options.c optional inet netinet/ip_output.c optional inet netinet/raw_ip.c optional inet netinet/cc.c optional inet +netinet/cc_cubic.c optional inet netinet/cc_htcp.c optional inet netinet/sctp_asconf.c optional inet sctp netinet/sctp_auth.c optional inet sctp Modified: projects/tcp_cc_8.x/sys/modules/Makefile ============================================================================== --- projects/tcp_cc_8.x/sys/modules/Makefile Fri Jan 30 00:22:08 2009 (r187907) +++ projects/tcp_cc_8.x/sys/modules/Makefile Fri Jan 30 02:39:08 2009 (r187908) @@ -45,6 +45,7 @@ SUBDIR= ${_3dfx} \ ${_canbus} \ ${_cardbus} \ ${_cbb} \ + cc_cubic \ cc_htcp \ cd9660 \ cd9660_iconv \ Added: projects/tcp_cc_8.x/sys/modules/cc_cubic/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/tcp_cc_8.x/sys/modules/cc_cubic/Makefile Fri Jan 30 02:39:08 2009 (r187908) @@ -0,0 +1,10 @@ +# $FreeBSD$ + +.include + +.PATH: ${.CURDIR}/../../netinet +KMOD=cc_cubic +SRCS=cc_cubic.c + +.include + Added: projects/tcp_cc_8.x/sys/netinet/cc_cubic.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/tcp_cc_8.x/sys/netinet/cc_cubic.c Fri Jan 30 02:39:08 2009 (r187908) @@ -0,0 +1,410 @@ +/*- + * Copyright (c) 2008-2009 Lawrence Stewart + * All rights reserved. + * + * This software was developed while studying at the Centre for Advanced + * Internet Architectures, Swinburne University (http://caia.swin.edu.au), + * made possible in part by a grant from the Cisco University Research Program + * Fund at Community Foundation Silicon Valley. + * + * 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. + * + */ + +/* + * An implementation of the CUBIC congestion algorithm for FreeBSD, + * based on the Internet Draft "draft-rhee-tcpm-cubic-02.txt" by + * Rhee, Xu and Ha. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +/* function prototypes */ +int cubic_init(struct tcpcb *tp); +void cubic_deinit(struct tcpcb *tp); +void cubic_pre_fr(struct tcpcb *tp, struct tcphdr *th); +void cubic_post_fr(struct tcpcb *tp, struct tcphdr *th); +void cubic_ack_received(struct tcpcb *tp, struct tcphdr *th); +void cubic_after_timeout(struct tcpcb *tp); +void cubic_after_idle(struct tcpcb *tp); +void cubic_ssthresh_update(struct tcpcb *tp); +void cubic_cwnd_init(struct tcpcb *tp); +void cubic_record_rtt(struct tcpcb *tp); + +struct cubic { + /* cwnd at the most recent congestion event */ + u_long max_cwnd; + /* cwnd at the previous congestion event */ + u_long prev_max_cwnd; + /* time of last congestion event in ticks */ + u_long t_last_cong; + /* minimum observed rtt in ticks */ + u_long min_rtt_ticks; + /* number of congestion events */ + u_long num_cong_events; +}; + +MALLOC_DECLARE(M_CUBIC); +MALLOC_DEFINE(M_CUBIC, "cubic data", + "Per connection data required for the CUBIC congestion algorithm"); + +/* function pointers for various hooks into the TCP stack */ +struct cc_algo cubic_cc_algo = { + .name = "cubic", + .init = cubic_init, + .deinit = cubic_deinit, + .cwnd_init = cubic_cwnd_init, + .ack_received = cubic_ack_received, + .pre_fr = cubic_pre_fr, + .post_fr = cubic_post_fr, + .after_idle = newreno_after_idle, + .after_timeout = cubic_after_timeout +}; + +void +cubic_cwnd_init(struct tcpcb *tp) +{ + struct cubic *cubic_data = CC_DATA(tp); + + newreno_cwnd_init(tp); + + /* + * Ensure we have a sane initial value for max_cwnd recorded. + * Without this here bad things happen when entries from + * the TCP hostcache get used. + */ + cubic_data->max_cwnd = tp->snd_cwnd; +} + +/* + * Initialise CUBIC on the specified TCP control block. Creates a + * new struct for CUBIC specific data and sticks a pointer to it + * in the control block + */ +int +cubic_init(struct tcpcb *tp) +{ + struct cubic *cubic_data; + + cubic_data = malloc(sizeof(struct cubic), M_CUBIC, M_NOWAIT); + + if (cubic_data == NULL) + return 1; + + /* init some key cubic values with sensible defaults */ + cubic_data->t_last_cong = ticks; + cubic_data->min_rtt_ticks = TCPTV_SRTTBASE; + cubic_data->max_cwnd = 0; + cubic_data->prev_max_cwnd = 0; + cubic_data->num_cong_events = 0; + + CC_DATA(tp) = cubic_data; + + return 0; +} + +/* + * Free the struct used to store CUBIC specific data for the specified + * TCP control block. + */ +void +cubic_deinit(struct tcpcb *tp) +{ + if (CC_DATA(tp)) + free(CC_DATA(tp), M_CUBIC); +} + +/* + * Perform any necesary tasks before we enter fast recovery + */ +void +cubic_pre_fr(struct tcpcb *tp, struct tcphdr *th) +{ + struct cubic *cubic_data = CC_DATA(tp); + + cubic_data->num_cong_events++; + + cubic_ssthresh_update(tp); + + /* + * record the current cwnd at the point of congestion so it can be used + * as the basis for resetting cwnd after exiting fr + */ + cubic_data->max_cwnd = tp->snd_cwnd; + + printf("congestion event started (max_cwnd: %ld)\n", cubic_data->max_cwnd); +} + +/* + * Decrease cwnd in the event of packet loss. + */ +void +cubic_post_fr(struct tcpcb *tp, struct tcphdr *th) +{ + struct cubic *cubic_data = CC_DATA(tp); + + /* + * grab the current time and record it so we know when the most recent + * congestion event was + */ + cubic_data->t_last_cong = ticks; + + /* fast convergence heuristic */ + if (cubic_data->max_cwnd < cubic_data->prev_max_cwnd) { + printf("fast convergence heuristic kicked in! (max_cwnd: %d\t prev_max_cwnd: %d\n", (int)cubic_data->max_cwnd, (int)cubic_data->prev_max_cwnd); + cubic_data->prev_max_cwnd = cubic_data->max_cwnd; + cubic_data->max_cwnd = (cubic_data->max_cwnd * CUBIC_FC_FACTOR) + >> CUBIC_SHIFT; + } + else + cubic_data->prev_max_cwnd = cubic_data->max_cwnd; + + /* + * if inflight data is less than ssthresh, set cwnd conservatively + * to avoid a burst of data, as suggested in the NewReno RFC. + * Otherwise, use the CUBIC method. + */ + if (th && SEQ_GT(th->th_ack + tp->snd_ssthresh, tp->snd_max)) + tp->snd_cwnd = tp->snd_max - th->th_ack + tp->t_maxseg; + else { + /* update cwnd based on beta and adjusted max_cwnd */ + tp->snd_cwnd = max(1,((CUBIC_BETA * cubic_data->max_cwnd) + >> CUBIC_SHIFT)); + printf("cubic_post_fr - cwnd: %ld\tmax_cwnd: %ld\n", tp->snd_cwnd, cubic_data->max_cwnd); + } + + printf("congestion event over\n"); +} + +void +cubic_record_rtt(struct tcpcb *tp) +{ + struct cubic *cubic_data = CC_DATA(tp); + int t_srtt_ticks = tp->t_srtt / TCP_RTT_SCALE; + + /* XXX: Should there be some hysteresis for minrtt? */ + + /* + * record the current SRTT as our minrtt if it's the smallest we've + * seen or minrtt is currently equal to its initialised value. + * Ignore srtt until a min number of samples have been taken + */ + if ((t_srtt_ticks < cubic_data->min_rtt_ticks || + cubic_data->min_rtt_ticks == TCPTV_SRTTBASE) && + (tp->t_rttupdated >= CUBIC_MIN_RTT_SAMPLES)) + cubic_data->min_rtt_ticks = max(1, t_srtt_ticks); +} + +/* + * Increase cwnd on the arrival of an ACK. + */ +void +cubic_ack_received(struct tcpcb *tp, struct tcphdr *th) +{ + struct cubic *cubic_data = CC_DATA(tp); + u_long w_newreno, w_cubic_next, ticks_since_cong; + static u_long last_print_ticks = 0; + int print = 0; + + cubic_record_rtt(tp); + + if ((tp->snd_cwnd < tp->snd_ssthresh) || + (tp->snd_ssthresh == TCP_MAXWIN << TCP_MAX_WINSHIFT) || + (cubic_data->min_rtt_ticks == TCPTV_SRTTBASE)) + newreno_ack_received(tp, th); + else { + /* num ticks since last congestion */ + ticks_since_cong = ticks - cubic_data->t_last_cong; + + if ((ticks - last_print_ticks) >= (cubic_data->min_rtt_ticks / 2)) { + + print = 1; + last_print_ticks = ticks; + } + + if (print) + printf("rtt_ticks: %ld\tticks_since_cong: %ld\n", cubic_data->min_rtt_ticks, ticks_since_cong); + + w_newreno = reno_cwnd( ticks_since_cong, + cubic_data->min_rtt_ticks, + cubic_data->max_cwnd, + tp->t_maxseg + ); + + if (print) + printf("reno_cwnd(%ld,%ld,%ld,%d): %ld\n", ticks_since_cong, cubic_data->min_rtt_ticks, cubic_data->max_cwnd, tp->t_maxseg, w_newreno); + + //w_cubic = cubic_cwnd(ticks_since_cong, cubic_data->max_cwnd, tp->t_maxseg); + //printf("cubic_cwnd(%ld,%ld,%d): %ld (w_cubic)\n", ticks_since_cong, cubic_data->max_cwnd, tp->t_maxseg, w_cubic); + + w_cubic_next = cubic_cwnd( ticks_since_cong + + cubic_data->min_rtt_ticks, + cubic_data->max_cwnd, + tp->t_maxseg + ); + + if (print) + printf("cubic_cwnd(%ld,%ld,%d): %ld (w_cubic_next)\n", ticks_since_cong + cubic_data->min_rtt_ticks, cubic_data->max_cwnd, tp->t_maxseg, w_cubic_next); + + if (print) + printf("pre\tmax_cwnd: %ld\tsnd_cwnd: %ld\tw_newreno: %ld\tw_cubic_next: %ld\n", cubic_data->max_cwnd, tp->snd_cwnd, w_newreno, w_cubic_next); + + + if (w_cubic_next < w_newreno) { + /* we are in TCP-friendly region, follow reno cwnd growth */ + tp->snd_cwnd = w_newreno; + + } else if (tp->snd_cwnd < w_cubic_next) { + /* else we are in the concave or convex growth regions */ + if (print) + printf("incr: %lu\n", (w_cubic_next * tp->t_maxseg) / tp->snd_cwnd); + //tp->snd_cwnd += max(1, (w_cubic_next - w_cubic) / tp->snd_cwnd); + //printf("incr: %d\n", max(1, (w_cubic_next - tp->snd_cwnd) / tp->t_maxseg)); + /* XXX: Test under what conditions the following will truncate */ + tp->snd_cwnd += (u_long)(((uint64_t)(w_cubic_next * tp->t_maxseg)) / tp->snd_cwnd); + } + + /* + * if we're not in slow start and we're probing for a new cwnd limit + * at the start of a connection (happens when hostcache has a relevant entry), + * keep updating our current estimate of the max_cwnd + */ + if (cubic_data->num_cong_events == 0 && + cubic_data->max_cwnd < tp->snd_cwnd) + cubic_data->max_cwnd = tp->snd_cwnd; + + if (print) + printf("post\tmax_cwnd: %ld\tsnd_cwnd: %ld\n\n", cubic_data->max_cwnd, tp->snd_cwnd); + } +} + +/* + * Reset the cwnd after a retransmission timeout + */ +void +cubic_after_timeout(struct tcpcb *tp) +{ + struct cubic *cubic_data = CC_DATA(tp); + + cubic_ssthresh_update(tp); + + /* + * grab the current time and record it so we know when the most recent + * congestion event was. Only record it when the timeout has fired more + * than once, as there is a reasonable chance the first one is a false alarm + * and may not indicate congestion. + */ + if (tp->t_rxtshift >= 2) + cubic_data->t_last_cong = ticks; + + newreno_after_timeout(tp); +} + +/* + * Update the ssthresh in the event of congestion. + */ +void +cubic_ssthresh_update(struct tcpcb *tp) +{ + /* + * on the first congestion event, set ssthresh to cwnd * 0.5, on + * subsequent congestion events, set it to cwnd * beta. + */ + if (tp->snd_ssthresh == (TCP_MAXWIN << TCP_MAX_WINSHIFT)) + tp->snd_ssthresh = tp->snd_cwnd >> 1; + else + tp->snd_ssthresh = (tp->snd_cwnd * CUBIC_BETA) >> CUBIC_SHIFT; +} + +/* + * Init the HTCP module when it is first loaded into the kernel. + * Calls the kernel function for registering a new congestion control + * algorithm + */ +static int +init_module(void) +{ + cc_register_algorithm(&cubic_cc_algo); + return 0; +} + +/* + * Called when the module is unloaded from the kernel. + */ +static int +deinit_module(void) +{ + cc_deregister_algorithm(&cubic_cc_algo); + return 0; +} + +/* + * Tell the kernel which functions to use to init and de-init the module. + */ +static int +cubic_load_handler(module_t mod, int what, void *arg) +{ + switch(what) { + case MOD_LOAD: + return init_module(); + break; + + case MOD_QUIESCE: + case MOD_SHUTDOWN: + return deinit_module(); + break; + + case MOD_UNLOAD: + return 0; + break; + + default: + return EINVAL; + break; + } +} + +/* a struct that holds basic data on the module */ +static moduledata_t cubic_mod = +{ + "cubic", /* module's name */ + cubic_load_handler, /* execution entry point for the module */ + NULL +}; + +DECLARE_MODULE(cubic, cubic_mod, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY); Added: projects/tcp_cc_8.x/sys/netinet/cc_cubic.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/tcp_cc_8.x/sys/netinet/cc_cubic.h Fri Jan 30 02:39:08 2009 (r187908) @@ -0,0 +1,200 @@ +/*- + * Copyright (c) 2008-2009 Lawrence Stewart + * All rights reserved. + * + * This software was developed while studying at the Centre for Advanced + * Internet Architectures, Swinburne University (http://caia.swin.edu.au), + * made possible in part by a grant from the Cisco University Research Program + * Fund at Community Foundation Silicon Valley. + * + * 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$ + */ + +#ifndef _NETINET_CC_CUBIC_H_ +#define _NETINET_CC_CUBIC_H_ + +/* needed for rdtsc() (performance analysis) */ +#include + +/* Number of bits of precision for fixed point math calcs */ +#define CUBIC_SHIFT 8 + +#define CUBIC_SHIFT_4 32 + +/* 0.5 with a shift << 8 */ +#define RENO_BETA 128 + +/* ~0.8 with a shift << 8 */ +#define CUBIC_BETA 204 + +/* ~0.2 with a shift << 8 */ +#define ONE_MINUS_CUBIC_BETA 51 + +/* ~0.4 with a shift << 8 */ +#define CUBIC_C_FACTOR 102 + +/* CUBIC fast convergence factor ~0.9 with a shift << 8 */ +#define CUBIC_FC_FACTOR 230 + +/* Don't trust s_rtt until this many rtt samples have been taken */ +#define CUBIC_MIN_RTT_SAMPLES 8 + +/* Userspace only bits */ +#ifndef _KERNEL + +extern int hz; + +inline float +theoretical_cubic_k(double wmax_pkts) +{ + double C = 0.4; + return pow((wmax_pkts*0.2)/C, (1.0/3.0)) * pow(2, CUBIC_SHIFT); +} + +inline u_long +theoretical_cubic_cwnd(u_long ticks_since_cong, u_long wmax, u_int smss) +{ + double C = 0.4; + double wmax_pkts = wmax/(double)smss; + return smss * (wmax_pkts + + (C * pow(ticks_since_cong/(double)hz - + theoretical_cubic_k(wmax_pkts) / pow(2, CUBIC_SHIFT), 3.0))); +} + +inline u_long +theoretical_reno_cwnd( u_long ticks_since_cong, u_long rtt_ticks, u_long wmax, + u_int smss) +{ + return (wmax * 0.5) + ((ticks_since_cong/(float)rtt_ticks) * smss); +} + +#endif /* _KERNEL*/ + +/* + * calc K (adapted from Apple Computer Technical Report #KT-32) + */ +static __inline +long cubic_k(u_long wmax_pkts) +{ + register uint16_t p = 0; + register long s = 0, K = 0; + + /* (wmax * beta)/C with CUBIC_SHIFT worth of precision */ + s = ((wmax_pkts * ONE_MINUS_CUBIC_BETA) << CUBIC_SHIFT) / + CUBIC_C_FACTOR; + + //printf("s: %d\n", s); + + /* + * rebase s such that it is between 1 and 1/8 with + * a shift of CUBIC_SHIFT + */ + while (s >= 256) { + s >>= 3; /* divide by 8 */ + p++; + } + + /* s is now between 1/8 and 1 (shifted by CUBIC_SHIFT) */ + + //printf("rebased s: %d\n", s); + + /* + * Some magic constants taken from the Apple TR with appropriate shifts + * 275 == 1.072302 << CUBIC_SHIFT (8) + * 98 == 0.3812513 << CUBIC_SHIFT (8) + * 120 == 0.46946116 << CUBIC_SHIFT (8) + */ + K = (((s * 275) >> CUBIC_SHIFT) + 98) - + (((s * s * 120) >> CUBIC_SHIFT) >> CUBIC_SHIFT); + + /* + * multiply by 2^p to undo the "divide by 8" transform from the + * previous while loop + */ + return (K <<= p); +} + +/* + * Acknowledgments: Kip Macy + */ +static __inline +u_long cubic_cwnd(u_long ticks_since_cong, u_long wmax, u_int smss) +{ + long K; + int64_t cwnd; + //int64_t start, end; + + //start = rdtsc(); + + K = cubic_k(wmax / smss); + + //printf("K: %d\n", K); + + /* + * we now have K in fixed point form with + * CUBIC_SHIFT worth of precision + */ + + /* t - K, with CUBIC_SHIFT worth of precision */ + cwnd = ((int64_t)(ticks_since_cong << CUBIC_SHIFT) - (K * hz)) / hz; + + //printf("t-k: %lld\n", cwnd); + + /* (t - K)^3, with CUBIC_SHIFT^3 worth of precision */ + cwnd *= (cwnd * cwnd); + + //printf("(t-k)^3: %lld\n", cwnd); + + /* + * C(t - K)^3 + wmax + * The down shift by CUBIC_SHIFT_4 is because cwnd has 4 lots of + * CUBIC_SHIFT included in the value. 3 from the cubing of cwnd above, + * and an extra from multiplying through by CUBIC_C_FACTOR + */ + cwnd = ((cwnd * CUBIC_C_FACTOR * smss) >> CUBIC_SHIFT_4) + wmax; + + //printf("final cwnd: %lld\n", cwnd); + + //end = rdtsc(); + + //printf("%lld TSC ticks\n", end - start); + + return ((u_long)cwnd); +} + +static __inline +u_long reno_cwnd(u_long ticks_since_cong, u_long rtt_ticks, u_long wmax, + u_int smss) +{ + /* + * Simplified form of equation 4 from I-D + * For reno, beta = 0.5, therefore W_tcp(t) = wmax*0.5 + t/RTT + * Equation 4 deals with cwnd/wmax in pkts, so because our cwnd is + * in bytes, we have to multiply by smss + */ + return (((wmax * RENO_BETA) + (((ticks_since_cong * smss) + << CUBIC_SHIFT) / rtt_ticks)) >> CUBIC_SHIFT); +} + +#endif /* _NETINET_CC_CUBIC_H_ */ From owner-svn-src-projects@FreeBSD.ORG Fri Jan 30 07:14:20 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CC6FB106564A; Fri, 30 Jan 2009 07:14:20 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A18FA8FC12; Fri, 30 Jan 2009 07:14:20 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0U7EKFD082434; Fri, 30 Jan 2009 07:14:20 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0U7EK3R082433; Fri, 30 Jan 2009 07:14:20 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <200901300714.n0U7EK3R082433@svn.freebsd.org> From: Lawrence Stewart Date: Fri, 30 Jan 2009 07:14:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187912 - projects/tcp_cc_7.x X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2009 07:14:21 -0000 Author: lstewart Date: Fri Jan 30 07:14:20 2009 New Revision: 187912 URL: http://svn.freebsd.org/changeset/base/187912 Log: Remove bogus mergeinfo and record something more useful in its place. Modified: projects/tcp_cc_7.x/ (props changed) From owner-svn-src-projects@FreeBSD.ORG Fri Jan 30 13:54:03 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9A855106566C; Fri, 30 Jan 2009 13:54:03 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8559C8FC0C; Fri, 30 Jan 2009 13:54:03 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0UDs3fY093580; Fri, 30 Jan 2009 13:54:03 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0UDs3Ag093570; Fri, 30 Jan 2009 13:54:03 GMT (envelope-from des@svn.freebsd.org) Message-Id: <200901301354.n0UDs3Ag093570@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Fri, 30 Jan 2009 13:54:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187914 - in projects/quota64: lib/libutil libexec/rpc.rquotad sys/ufs/ufs usr.sbin/edquota X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2009 13:54:03 -0000 Author: des Date: Fri Jan 30 13:54:03 2009 New Revision: 187914 URL: http://svn.freebsd.org/changeset/base/187914 Log: WIP Added: projects/quota64/lib/libutil/quotafile.3 (contents, props changed) projects/quota64/lib/libutil/quotafile.c (contents, props changed) Modified: projects/quota64/lib/libutil/Makefile projects/quota64/lib/libutil/libutil.h projects/quota64/libexec/rpc.rquotad/Makefile projects/quota64/libexec/rpc.rquotad/rquotad.c projects/quota64/sys/ufs/ufs/quota.h projects/quota64/sys/ufs/ufs/ufs_quota.c projects/quota64/sys/ufs/ufs/ufs_vfsops.c projects/quota64/sys/ufs/ufs/ufsmount.h projects/quota64/usr.sbin/edquota/Makefile projects/quota64/usr.sbin/edquota/edquota.c Modified: projects/quota64/lib/libutil/Makefile ============================================================================== --- projects/quota64/lib/libutil/Makefile Fri Jan 30 09:42:25 2009 (r187913) +++ projects/quota64/lib/libutil/Makefile Fri Jan 30 13:54:03 2009 (r187914) @@ -12,8 +12,8 @@ SRCS= _secure_path.c auth.c expand_numbe hexdump.c humanize_number.c kinfo_getfile.c kinfo_getvmmap.c kld.c \ login.c login_auth.c login_cap.c \ login_class.c login_crypt.c login_ok.c login_times.c login_tty.c \ - logout.c logwtmp.c pidfile.c property.c pty.c pw_util.c realhostname.c \ - stub.c trimdomain.c uucplock.c + logout.c logwtmp.c pidfile.c property.c pty.c pw_util.c quotafile.c \ + realhostname.c stub.c trimdomain.c uucplock.c INCS= libutil.h login_cap.h WARNS?= 6 @@ -30,7 +30,7 @@ MAN+= kld.3 login.3 login_auth.3 login_t login_cap.3 login_class.3 login_times.3 login_ok.3 \ _secure_path.3 uucplock.3 property.3 auth.3 realhostname.3 \ realhostname_sa.3 trimdomain.3 fparseln.3 humanize_number.3 \ - pidfile.3 flopen.3 expand_number.3 + pidfile.3 flopen.3 expand_number.3 quotafile.3 MAN+= login.conf.5 auth.conf.5 MLINKS+= kld.3 kld_isloaded.3 kld.3 kld_load.3 MLINKS+= property.3 properties_read.3 property.3 properties_free.3 @@ -58,5 +58,9 @@ MLINKS+=pidfile.3 pidfile_open.3 \ pidfile.3 pidfile_write.3 \ pidfile.3 pidfile_close.3 \ pidfile.3 pidfile_remove.3 +MLINKS+=quotafile.3 quota_open.3 \ + quotafile.3 quota_read.3 \ + quotafile.3 quota_write.3 \ + quotafile.3 quota_close.3 .include Modified: projects/quota64/lib/libutil/libutil.h ============================================================================== --- projects/quota64/lib/libutil/libutil.h Fri Jan 30 09:42:25 2009 (r187913) +++ projects/quota64/lib/libutil/libutil.h Fri Jan 30 13:54:03 2009 (r187914) @@ -140,6 +140,15 @@ int pidfile_close(struct pidfh *pfh); int pidfile_remove(struct pidfh *pfh); #endif +#ifdef _UFS_UFS_QUOTA_H_ +struct quotafile; +struct quotafile *quota_open(const char *); +struct quotafile *quota_create(const char *); +void quota_close(struct quotafile *); +int quota_read(struct quotafile *, struct dqblk *, int); +int quota_write(struct quotafile *, const struct dqblk *, int); +#endif + __END_DECLS #define UU_LOCK_INUSE (1) Added: projects/quota64/lib/libutil/quotafile.3 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/quota64/lib/libutil/quotafile.3 Fri Jan 30 13:54:03 2009 (r187914) @@ -0,0 +1,69 @@ +.\"- +.\" Copyright (c) 2008 Dag-Erling Coïdan Smørgrav +.\" 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 November 4, 2008 +.Dt QUOTAFILE 3 +.Os +.Sh NAME +.Nm quota_open +.Nm quota_create +.Nm quota_read +.Nm quota_write +.Nm quota_close +.Nd "Manipulate quota files" +.Sh LIBRARY +.Lb libutil +.Sh SYNOPSIS +.In ufs/ufs/quota.h +.In libutil.h +.Ft "struct quotafile *" +.Fn quota_open "const char *path" +.Ft "struct quotafile *" +.Fn quota_create "const char *path" +.Ft int +.Fn quota_read "struct quotafile *qf" "struct dqblk *dqb" "int type" +.Ft int +.Fn quota_write "struct quotafile *qf" "const struct dqblk *dqb" "int type" +.Ft int +.Fn quota_close "struct quotafile *qf" +.Sh DESCRIPTION +.Sh RETURN VALUES +.Sh SEE ALSO +.Xr quotactl 2 , +.Xr quota.user 5 , +.Xr quota.group 5 +.Sh HISTORY +The +.Nm +functions first appeared in +.Fx 8.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +functions and this manual page were written by +.An Dag-Erling Sm\(/orgrav Aq des@FreeBSD.org . Added: projects/quota64/lib/libutil/quotafile.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/quota64/lib/libutil/quotafile.c Fri Jan 30 13:54:03 2009 (r187914) @@ -0,0 +1,272 @@ +/*- + * Copyright (c) 2008 Dag-Erling Coïdan Smørgrav + * 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 + * in this position and unchanged. + * 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 +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct quotafile { + int fd; + int type; /* 32 or 64 */ +}; + +struct quotafile * +quota_open(const char *fn) +{ + struct quotafile *qf; + struct dqhdr64 dqh; + int serrno; + + if ((qf = calloc(1, sizeof(*qf))) == NULL) + return (NULL); + if ((qf->fd = open(fn, O_RDWR)) < 0) { + serrno = errno; + free(qf); + errno = serrno; + return (NULL); + } + qf->type = 32; + switch (read(qf->fd, &dqh, sizeof(dqh))) { + case -1: + serrno = errno; + close(qf->fd); + free(qf); + errno = serrno; + return (NULL); + case sizeof(dqh): + if (strcmp(dqh.dqh_magic, Q_DQHDR64_MAGIC) != 0) { + /* no magic, assume 32 bits */ + qf->type = 32; + return (qf); + } + if (be32toh(dqh.dqh_version) != Q_DQHDR64_VERSION || + be32toh(dqh.dqh_hdrlen) != sizeof(struct dqhdr64) || + be32toh(dqh.dqh_reclen) != sizeof(struct dqblk64)) { + /* correct magic, wrong version / lengths */ + close(qf->fd); + free(qf); + errno = EINVAL; + return (NULL); + } + qf->type = 64; + return (qf); + default: + qf->type = 32; + return (qf); + } + /* not reached */ +} + +struct quotafile * +quota_create(const char *fn) +{ + struct quotafile *qf; + struct dqhdr64 dqh; + struct group *grp; + int serrno; + + if ((qf = calloc(1, sizeof(*qf))) == NULL) + return (NULL); + if ((qf->fd = open(fn, O_RDWR|O_CREAT|O_TRUNC, 0)) < 0) { + serrno = errno; + free(qf); + errno = serrno; + return (NULL); + } + qf->type = 64; + memset(&dqh, 0, sizeof(dqh)); + memcpy(dqh.dqh_magic, Q_DQHDR64_MAGIC, sizeof(dqh.dqh_magic)); + dqh.dqh_version = htobe32(Q_DQHDR64_VERSION); + dqh.dqh_hdrlen = htobe32(sizeof(struct dqhdr64)); + dqh.dqh_reclen = htobe32(sizeof(struct dqblk64)); + if (write(qf->fd, &dqh, sizeof(dqh)) != sizeof(dqh)) { + serrno = errno; + unlink(fn); + close(qf->fd); + free(qf); + errno = serrno; + return (NULL); + } + grp = getgrnam(QUOTAGROUP); + fchown(qf->fd, 0, grp ? grp->gr_gid : 0); + fchmod(qf->fd, 0640); + return (qf); +} + +void +quota_close(struct quotafile *qf) +{ + + close(qf->fd); + free(qf); +} + +static int +quota_read32(struct quotafile *qf, struct dqblk *dqb, int id) +{ + struct dqblk32 dqb32; + off_t off; + + off = id * sizeof(struct dqblk32); + if (lseek(qf->fd, off, SEEK_SET) == -1) + return (-1); + switch (read(qf->fd, &dqb32, sizeof(dqb32))) { + case 0: + memset(&dqb, 0, sizeof(*dqb)); + return (0); + case sizeof(dqb32): + dqb->dqb_bhardlimit = dqb32.dqb_bhardlimit; + dqb->dqb_bsoftlimit = dqb32.dqb_bsoftlimit; + dqb->dqb_curblocks = dqb32.dqb_curblocks; + dqb->dqb_ihardlimit = dqb32.dqb_ihardlimit; + dqb->dqb_isoftlimit = dqb32.dqb_isoftlimit; + dqb->dqb_curinodes = dqb32.dqb_curinodes; + dqb->dqb_btime = dqb32.dqb_btime; + dqb->dqb_itime = dqb32.dqb_itime; + return (0); + default: + return (-1); + } +} + +static int +quota_read64(struct quotafile *qf, struct dqblk *dqb, int id) +{ + struct dqblk64 dqb64; + off_t off; + + off = sizeof(struct dqhdr64) + id * sizeof(struct dqblk64); + if (lseek(qf->fd, off, SEEK_SET) == -1) + return (-1); + switch (read(qf->fd, &dqb64, sizeof(dqb64))) { + case 0: + memset(&dqb, 0, sizeof(*dqb)); + return (0); + case sizeof(dqb64): + dqb->dqb_bhardlimit = be64toh(dqb64.dqb_bhardlimit); + dqb->dqb_bsoftlimit = be64toh(dqb64.dqb_bsoftlimit); + dqb->dqb_curblocks = be64toh(dqb64.dqb_curblocks); + dqb->dqb_ihardlimit = be64toh(dqb64.dqb_ihardlimit); + dqb->dqb_isoftlimit = be64toh(dqb64.dqb_isoftlimit); + dqb->dqb_curinodes = be64toh(dqb64.dqb_curinodes); + dqb->dqb_btime = be64toh(dqb64.dqb_btime); + dqb->dqb_itime = be64toh(dqb64.dqb_itime); + return (0); + default: + return (-1); + } +} + +int +quota_read(struct quotafile *qf, struct dqblk *dqb, int id) +{ + + switch (qf->type) { + case 32: + return quota_read32(qf, dqb, id); + case 64: + return quota_read64(qf, dqb, id); + default: + errno = EINVAL; + return (-1); + } + /* not reached */ +} + +#define CLIP32(u64) ((u64) > UINT32_MAX ? UINT32_MAX : (uint32_t)(u64)) + +static int +quota_write32(struct quotafile *qf, const struct dqblk *dqb, int id) +{ + struct dqblk32 dqb32; + off_t off; + + dqb32.dqb_bhardlimit = CLIP32(dqb->dqb_bhardlimit); + dqb32.dqb_bsoftlimit = CLIP32(dqb->dqb_bsoftlimit); + dqb32.dqb_curblocks = CLIP32(dqb->dqb_curblocks); + dqb32.dqb_ihardlimit = CLIP32(dqb->dqb_ihardlimit); + dqb32.dqb_isoftlimit = CLIP32(dqb->dqb_isoftlimit); + dqb32.dqb_curinodes = CLIP32(dqb->dqb_curinodes); + dqb32.dqb_btime = CLIP32(dqb->dqb_btime); + dqb32.dqb_itime = CLIP32(dqb->dqb_itime); + + off = id * sizeof(struct dqblk32); + if (lseek(qf->fd, off, SEEK_SET) == -1) + return (-1); + return (write(qf->fd, &dqb32, sizeof(dqb32))); +} + +static int +quota_write64(struct quotafile *qf, const struct dqblk *dqb, int id) +{ + struct dqblk64 dqb64; + off_t off; + + dqb64.dqb_bhardlimit = htobe64(dqb->dqb_bhardlimit); + dqb64.dqb_bsoftlimit = htobe64(dqb->dqb_bsoftlimit); + dqb64.dqb_curblocks = htobe64(dqb->dqb_curblocks); + dqb64.dqb_ihardlimit = htobe64(dqb->dqb_ihardlimit); + dqb64.dqb_isoftlimit = htobe64(dqb->dqb_isoftlimit); + dqb64.dqb_curinodes = htobe64(dqb->dqb_curinodes); + dqb64.dqb_btime = htobe64(dqb->dqb_btime); + dqb64.dqb_itime = htobe64(dqb->dqb_itime); + + off = sizeof(struct dqhdr64) + id * sizeof(struct dqblk64); + if (lseek(qf->fd, off, SEEK_SET) == -1) + return (-1); + return (write(qf->fd, &dqb64, sizeof(dqb64))); +} + +int +quota_write(struct quotafile *qf, const struct dqblk *dqb, int id) +{ + + switch (qf->type) { + case 32: + return quota_write32(qf, dqb, id); + case 64: + return quota_write64(qf, dqb, id); + default: + errno = EINVAL; + return (-1); + } + /* not reached */ +} Modified: projects/quota64/libexec/rpc.rquotad/Makefile ============================================================================== --- projects/quota64/libexec/rpc.rquotad/Makefile Fri Jan 30 09:42:25 2009 (r187913) +++ projects/quota64/libexec/rpc.rquotad/Makefile Fri Jan 30 13:54:03 2009 (r187914) @@ -6,7 +6,7 @@ MAN = rpc.rquotad.8 WARNS ?= 6 -DPADD= ${LIBRPCSVC} -LDADD= -lrpcsvc +DPADD= ${LIBRPCSVC} ${LIBUTIL} +LDADD= -lrpcsvc -lutil .include Modified: projects/quota64/libexec/rpc.rquotad/rquotad.c ============================================================================== --- projects/quota64/libexec/rpc.rquotad/rquotad.c Fri Jan 30 09:42:25 2009 (r187913) +++ projects/quota64/libexec/rpc.rquotad/rquotad.c Fri Jan 30 13:54:03 2009 (r187914) @@ -23,6 +23,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -247,9 +248,10 @@ initfs(void) int getfsquota(long id, char *path, struct dqblk *dqblk) { + struct quotafile *qf; struct stat st_path; struct fs_stat *fs; - int qcmd, fd, ret = 0; + int qcmd, ret = 0; if (stat(path, &st_path) < 0) return (0); @@ -265,32 +267,16 @@ getfsquota(long id, char *path, struct d if (quotactl(fs->fs_file, qcmd, id, dqblk) == 0) return (1); - if ((fd = open(fs->qfpathname, O_RDONLY)) < 0) { + if ((qf = quota_open(fs->qfpathname)) == NULL) { syslog(LOG_ERR, "open error: %s: %m", fs->qfpathname); return (0); } - if (lseek(fd, (off_t)(id * sizeof(struct dqblk)), L_SET) == (off_t)-1) { - close(fd); - return (1); - } - switch (read(fd, dqblk, sizeof(struct dqblk))) { - case 0: - /* - * Convert implicit 0 quota (EOF) - * into an explicit one (zero'ed dqblk) - */ - bzero(dqblk, sizeof(struct dqblk)); - ret = 1; - break; - case sizeof(struct dqblk): /* OK */ - ret = 1; - break; - default: /* ERROR */ + if (quota_read(qf, dqblk, id) != 0) { syslog(LOG_ERR, "read error: %s: %m", fs->qfpathname); - close(fd); + quota_close(qf); return (0); } - close(fd); + quota_close(qf); } return (ret); } Modified: projects/quota64/sys/ufs/ufs/quota.h ============================================================================== --- projects/quota64/sys/ufs/ufs/quota.h Fri Jan 30 09:42:25 2009 (r187913) +++ projects/quota64/sys/ufs/ufs/quota.h Fri Jan 30 13:54:03 2009 (r187914) @@ -81,10 +81,13 @@ #define Q_QUOTAON 0x0100 /* enable quotas */ #define Q_QUOTAOFF 0x0200 /* disable quotas */ -#define Q_GETQUOTA 0x0300 /* get limits and usage */ -#define Q_SETQUOTA 0x0400 /* set limits and usage */ -#define Q_SETUSE 0x0500 /* set usage */ +#define Q_GETQUOTA32 0x0300 /* get limits and usage (32-bit version) */ +#define Q_SETQUOTA32 0x0400 /* set limits and usage (32-bit version) */ +#define Q_SETUSE32 0x0500 /* set usage (32-bit version) */ #define Q_SYNC 0x0600 /* sync disk copy of a filesystems quotas */ +#define Q_GETQUOTA 0x0700 /* get limits and usage (64-bit version) */ +#define Q_SETQUOTA 0x0800 /* set limits and usage (64-bit version) */ +#define Q_SETUSE 0x0900 /* set usage (64-bit version) */ /* * The following structure defines the format of the disk quota file @@ -93,7 +96,7 @@ * the vnode for each quota file (a pointer is retained in the ufsmount * structure). */ -struct dqblk { +struct dqblk32 { u_int32_t dqb_bhardlimit; /* absolute limit on disk blks alloc */ u_int32_t dqb_bsoftlimit; /* preferred limit on disk blks */ u_int32_t dqb_curblocks; /* current block count */ @@ -104,6 +107,30 @@ struct dqblk { int32_t dqb_itime; /* time limit for excessive files */ }; +struct dqblk64 { + u_int64_t dqb_bhardlimit; /* absolute limit on disk blks alloc */ + u_int64_t dqb_bsoftlimit; /* preferred limit on disk blks */ + u_int64_t dqb_curblocks; /* current block count */ + u_int64_t dqb_ihardlimit; /* maximum # allocated inodes + 1 */ + u_int64_t dqb_isoftlimit; /* preferred inode limit */ + u_int64_t dqb_curinodes; /* current # allocated inodes */ + int64_t dqb_btime; /* time limit for excessive disk use */ + int64_t dqb_itime; /* time limit for excessive files */ +}; + +#define dqblk dqblk64 + +#define Q_DQHDR64_MAGIC "QUOTA64" +#define Q_DQHDR64_VERSION 0x20081104 + +struct dqhdr64 { + char dqh_magic[8]; /* Q_DQHDR64_MAGIC */ + uint32_t dqh_version; /* Q_DQHDR64_VERSION */ + uint32_t dqh_hdrlen; /* header length */ + uint32_t dqh_reclen; /* record length */ + char dqh_unused[44]; /* reserved for future extension */ +}; + #ifdef _KERNEL #include @@ -125,7 +152,7 @@ struct dquot { u_int32_t dq_id; /* identifier this applies to */ struct ufsmount *dq_ump; /* (h) filesystem that this is taken from */ - struct dqblk dq_dqb; /* actual usage & quotas */ + struct dqblk64 dq_dqb; /* actual usage & quotas */ }; /* * Flag values. @@ -199,10 +226,13 @@ void dqinit(void); void dqrele(struct vnode *, struct dquot *); void dquninit(void); int getinoquota(struct inode *); -int getquota(struct thread *, struct mount *, u_long, int, void *); int qsync(struct mount *mp); int quotaoff(struct thread *td, struct mount *, int); int quotaon(struct thread *td, struct mount *, int, void *); +int getquota32(struct thread *, struct mount *, u_long, int, void *); +int setquota32(struct thread *, struct mount *, u_long, int, void *); +int setuse32(struct thread *, struct mount *, u_long, int, void *); +int getquota(struct thread *, struct mount *, u_long, int, void *); int setquota(struct thread *, struct mount *, u_long, int, void *); int setuse(struct thread *, struct mount *, u_long, int, void *); vfs_quotactl_t ufs_quotactl; Modified: projects/quota64/sys/ufs/ufs/ufs_quota.c ============================================================================== --- projects/quota64/sys/ufs/ufs/ufs_quota.c Fri Jan 30 09:42:25 2009 (r187913) +++ projects/quota64/sys/ufs/ufs/ufs_quota.c Fri Jan 30 13:54:03 2009 (r187914) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -73,6 +74,7 @@ static char *quotatypes[] = INITQFNAMES; static int chkdqchg(struct inode *, ufs2_daddr_t, struct ucred *, int, int *); static int chkiqchg(struct inode *, int, struct ucred *, int, int *); +static int dqopen(struct vnode *, struct ufsmount *, int); static int dqget(struct vnode *, u_long, struct ufsmount *, int, struct dquot **); static int dqsync(struct vnode *, struct dquot *); @@ -80,6 +82,14 @@ static void dqflush(struct vnode *); static int quotaoff1(struct thread *td, struct mount *mp, int type); static int quotaoff_inchange(struct thread *td, struct mount *mp, int type); +/* conversion functions - from_to() */ +static void dqb32_dq(const struct dqblk32 *, struct dquot *); +static void dqb64_dq(const struct dqblk64 *, struct dquot *); +static void dq_dqb32(const struct dquot *, struct dqblk32 *); +static void dq_dqb64(const struct dquot *, struct dqblk64 *); +static void dqb32_dqb64(const struct dqblk32 *, struct dqblk64 *); +static void dqb64_dqb32(const struct dqblk64 *, struct dqblk32 *); + #ifdef DIAGNOSTIC static void dqref(struct dquot *); static void chkdquot(struct inode *); @@ -90,7 +100,7 @@ static void chkdquot(struct inode *); * * This routine completely defines the semantics of quotas. * If other criterion want to be used to establish quotas, the - * MAXQUOTAS value in quotas.h should be increased, and the + * MAXQUOTAS value in quota.h should be increased, and the * additional dquots set up here. */ int @@ -522,6 +532,13 @@ quotaon(struct thread *td, struct mount return (EALREADY); } ump->um_qflags[type] |= QTF_OPENING|QTF_CLOSING; + if ((error = dqopen(vp, ump, type)) != 0) { + ump->um_qflags[type] &= ~(QTF_OPENING|QTF_CLOSING); + UFS_UNLOCK(ump); + (void) vn_close(vp, FREAD|FWRITE, td->td_ucred, td); + VFS_UNLOCK_GIANT(vfslocked); + return (error); + } MNT_ILOCK(mp); mp->mnt_flag |= MNT_QUOTA; MNT_IUNLOCK(mp); @@ -734,8 +751,9 @@ quotaoff(struct thread *td, struct mount /* * Q_GETQUOTA - return current values in a dqblk structure. */ -int -getquota(struct thread *td, struct mount *mp, u_long id, int type, void *addr) +static int +_getquota(struct thread *td, struct mount *mp, u_long id, int type, + struct dqblk64 *dqb) { struct dquot *dq; int error; @@ -766,7 +784,7 @@ getquota(struct thread *td, struct mount error = dqget(NULLVP, id, VFSTOUFS(mp), type, &dq); if (error) return (error); - error = copyout(&dq->dq_dqb, addr, sizeof (struct dqblk)); + *dqb = dq->dq_dqb; dqrele(NULLVP, dq); return (error); } @@ -774,23 +792,21 @@ getquota(struct thread *td, struct mount /* * Q_SETQUOTA - assign an entire dqblk structure. */ -int -setquota(struct thread *td, struct mount *mp, u_long id, int type, void *addr) +static int +_setquota(struct thread *td, struct mount *mp, u_long id, int type, + struct dqblk64 *dqb) { struct dquot *dq; struct dquot *ndq; struct ufsmount *ump; - struct dqblk newlim; + struct dqblk64 newlim; int error; error = priv_check(td, PRIV_VFS_SETQUOTA); if (error) return (error); - ump = VFSTOUFS(mp); - error = copyin(addr, &newlim, sizeof (struct dqblk)); - if (error) - return (error); + newlim = *dqb; ndq = NODQUOT; ump = VFSTOUFS(mp); @@ -839,23 +855,21 @@ setquota(struct thread *td, struct mount /* * Q_SETUSE - set current inode and block usage. */ -int -setuse(struct thread *td, struct mount *mp, u_long id, int type, void *addr) +static int +_setuse(struct thread *td, struct mount *mp, u_long id, int type, + struct dqblk64 *dqb) { struct dquot *dq; struct ufsmount *ump; struct dquot *ndq; - struct dqblk usage; + struct dqblk64 usage; int error; error = priv_check(td, PRIV_UFS_SETUSE); if (error) return (error); - ump = VFSTOUFS(mp); - error = copyin(addr, &usage, sizeof (struct dqblk)); - if (error) - return (error); + usage = *dqb; ump = VFSTOUFS(mp); ndq = NODQUOT; @@ -888,6 +902,90 @@ setuse(struct thread *td, struct mount * return (0); } +int +getquota32(struct thread *td, struct mount *mp, u_long id, int type, void *addr) +{ + struct dqblk32 dqb32; + struct dqblk64 dqb64; + int error; + + error = _getquota(td, mp, id, type, &dqb64); + if (error) + return (error); + dqb64_dqb32(&dqb64, &dqb32); + error = copyout(&dqb32, addr, sizeof(dqb32)); + return (error); +} + +int +setquota32(struct thread *td, struct mount *mp, u_long id, int type, void *addr) +{ + struct dqblk32 dqb32; + struct dqblk64 dqb64; + int error; + + error = copyin(addr, &dqb32, sizeof(dqb32)); + if (error) + return (error); + dqb32_dqb64(&dqb32, &dqb64); + error = _setquota(td, mp, id, type, &dqb64); + return (error); +} + +int +setuse32(struct thread *td, struct mount *mp, u_long id, int type, void *addr) +{ + struct dqblk32 dqb32; + struct dqblk64 dqb64; + int error; + + error = copyin(addr, &dqb32, sizeof(dqb32)); + if (error) + return (error); + dqb32_dqb64(&dqb32, &dqb64); + error = _setuse(td, mp, id, type, &dqb64); + return (error); +} + +int +getquota(struct thread *td, struct mount *mp, u_long id, int type, void *addr) +{ + struct dqblk64 dqb64; + int error; + + error = _getquota(td, mp, id, type, &dqb64); + if (error) + return (error); + error = copyout(&dqb64, addr, sizeof(dqb64)); + return (error); +} + +int +setquota(struct thread *td, struct mount *mp, u_long id, int type, void *addr) +{ + struct dqblk64 dqb64; + int error; + + error = copyin(addr, &dqb64, sizeof(dqb64)); + if (error) + return (error); + error = _setquota(td, mp, id, type, &dqb64); + return (error); +} + +int +setuse(struct thread *td, struct mount *mp, u_long id, int type, void *addr) +{ + struct dqblk64 dqb64; + int error; + + error = copyin(addr, &dqb64, sizeof(dqb64)); + if (error) + return (error); + error = _setuse(td, mp, id, type, &dqb64); + return (error); +} + /* * Q_SYNC - sync quota files to disk. */ @@ -1025,6 +1123,47 @@ dqhashfind(struct dqhash *dqh, u_long id } /* + * Determine the quota file type. + */ +static int +dqopen(struct vnode *vp, struct ufsmount *ump, int type) +{ + struct dqhdr64 dqh; + struct iovec aiov; + struct uio auio; + int error, vfslocked; + + auio.uio_iov = &aiov; + auio.uio_iovcnt = 1; + aiov.iov_base = &dqh; + aiov.iov_len = sizeof(dqh); + auio.uio_resid = sizeof(dqh); + auio.uio_offset = 0; + auio.uio_segflg = UIO_SYSSPACE; + auio.uio_rw = UIO_READ; + auio.uio_td = (struct thread *)0; + vfslocked = VFS_LOCK_GIANT(vp->v_mount); + error = VOP_READ(vp, &auio, 0, ump->um_cred[type]); + VFS_UNLOCK_GIANT(vfslocked); + + if (error != 0) + return (error); + if (auio.uio_resid > 0) { + /* assume 32 bits */ + return (0); + } + + if (strcmp(dqh.dqh_magic, Q_DQHDR64_MAGIC) == 0 && + be32toh(dqh.dqh_version) == Q_DQHDR64_VERSION && + be32toh(dqh.dqh_hdrlen) == (uint32_t)sizeof(struct dqhdr64) && + be32toh(dqh.dqh_reclen) == (uint32_t)sizeof(struct dqblk64)) + ump->um_qflags[type] |= QTF_64BIT; + /* XXX: what if the magic matches, but the sizes are wrong? */ + + return (0); +} + +/* * Obtain a dquot structure for the specified identifier and quota file * reading the information from the file if necessary. */ @@ -1032,6 +1171,8 @@ static int dqget(struct vnode *vp, u_long id, struct ufsmount *ump, int type, struct dquot **dqp) { + uint8_t buf[sizeof(struct dqblk64)]; + off_t base, recsize; struct dquot *dq, *dq1; struct dqhash *dqh; struct vnode *dqvp; @@ -1121,8 +1262,7 @@ hfound: DQI_LOCK(dq); if (numdquot < desireddquot) { numdquot++; DQH_UNLOCK(); - dq1 = (struct dquot *)malloc(sizeof *dq, M_DQUOT, - M_WAITOK | M_ZERO); + dq1 = malloc(sizeof *dq1, M_DQUOT, M_WAITOK | M_ZERO); mtx_init(&dq1->dq_lock, "dqlock", NULL, MTX_DEF); DQH_LOCK(); /* @@ -1169,20 +1309,52 @@ hfound: DQI_LOCK(dq); DQREF(dq); DQH_UNLOCK(); + /* + * Read the requested quota record from the quota file, performing + * any necessary conversions. + * + * The record's offset within the file depends on the size of the + * record, which means we need to know whether it's a 32-bit file + * or a 64-bit file. + * + * Luckily, root's record is always at offset 0, and most of it is + * unused, so we can use it to store a magic number indicating the + * file format. Due to an acute lack of imagination, this magic + * number, stored in the first byte of root's record and hence the + * first byte of the file, is 64. + * + * Another lucky break is that quotaon() always loads root's + * record, to get the default values for dq_btime and dq_itime, so + * we will always have a chance to check the file format before + * being asked for a "real" record. + */ + if (id == 0 || (ump->um_qflags[type] & QTF_64BIT)) { + recsize = sizeof(struct dqblk64); + base = sizeof(struct dqhdr64); + } else { + recsize = sizeof(struct dqblk32); + base = 0; + } auio.uio_iov = &aiov; auio.uio_iovcnt = 1; - aiov.iov_base = &dq->dq_dqb; - aiov.iov_len = sizeof (struct dqblk); - auio.uio_resid = sizeof (struct dqblk); - auio.uio_offset = (off_t)id * sizeof (struct dqblk); + aiov.iov_base = buf; + aiov.iov_len = recsize; + auio.uio_resid = recsize; + auio.uio_offset = base + id * recsize; auio.uio_segflg = UIO_SYSSPACE; auio.uio_rw = UIO_READ; auio.uio_td = (struct thread *)0; vfslocked = VFS_LOCK_GIANT(dqvp->v_mount); error = VOP_READ(dqvp, &auio, 0, ump->um_cred[type]); - if (auio.uio_resid == sizeof(struct dqblk) && error == 0) - bzero(&dq->dq_dqb, sizeof(struct dqblk)); + if (auio.uio_resid == recsize && error == 0) { + bzero(&dq->dq_dqb, sizeof(dq->dq_dqb)); + } else { + if (ump->um_qflags[type] & QTF_64BIT) + dqb64_dq((struct dqblk64 *)buf, dq); + else + dqb32_dq((struct dqblk32 *)buf, dq); + } if (dqvplocked) vput(dqvp); else @@ -1281,6 +1453,8 @@ dqrele(struct vnode *vp, struct dquot *d static int dqsync(struct vnode *vp, struct dquot *dq) { + uint8_t buf[sizeof(struct dqblk64)]; + off_t base, recsize; struct vnode *dqvp; struct iovec aiov; struct uio auio; @@ -1327,12 +1501,26 @@ dqsync(struct vnode *vp, struct dquot *d dq->dq_flags |= DQ_LOCK; DQI_UNLOCK(dq); + /* + * Write the quota record to the quota file, performing any + * necessary conversions. See dqget() for additional details. + */ + if (ump->um_qflags[dq->dq_type] & QTF_64BIT) { + dq_dqb64(dq, (struct dqblk64 *)buf); + recsize = sizeof(struct dqblk64); + base = sizeof(struct dqhdr64); + } else { + dq_dqb32(dq, (struct dqblk32 *)buf); + recsize = sizeof(struct dqblk32); + base = 0; + } + auio.uio_iov = &aiov; auio.uio_iovcnt = 1; - aiov.iov_base = &dq->dq_dqb; - aiov.iov_len = sizeof (struct dqblk); - auio.uio_resid = sizeof (struct dqblk); - auio.uio_offset = (off_t)dq->dq_id * sizeof (struct dqblk); + aiov.iov_base = buf; + aiov.iov_len = recsize; + auio.uio_resid = recsize; + auio.uio_offset = base + dq->dq_id * recsize; auio.uio_segflg = UIO_SYSSPACE; auio.uio_rw = UIO_WRITE; auio.uio_td = (struct thread *)0; @@ -1345,7 +1533,8 @@ dqsync(struct vnode *vp, struct dquot *d DQI_LOCK(dq); DQI_WAKEUP(dq); dq->dq_flags &= ~DQ_MOD; -out: DQI_UNLOCK(dq); +out: + DQI_UNLOCK(dq); vfslocked = VFS_LOCK_GIANT(dqvp->v_mount); if (vp != dqvp) vput(dqvp); @@ -1384,3 +1573,98 @@ dqflush(struct vnode *vp) } DQH_UNLOCK(); } + +/* + * 32-bit / 64-bit conversion functions. + * + * 32-bit quota records are stored in native byte order. Attention must + * be paid to overflow issues. + * + * 64-bit quota records are stored in network byte order. + */ + +#define CLIP32(u64) (u64 > UINT32_MAX ? UINT32_MAX : (uint32_t)u64) + +static void +dqb32_dq(const struct dqblk32 *dqb32, struct dquot *dq) +{ + + dq->dq_bhardlimit = dqb32->dqb_bhardlimit; + dq->dq_bsoftlimit = dqb32->dqb_bsoftlimit; + dq->dq_curblocks = dqb32->dqb_curblocks; + dq->dq_ihardlimit = dqb32->dqb_ihardlimit; + dq->dq_isoftlimit = dqb32->dqb_isoftlimit; + dq->dq_curinodes = dqb32->dqb_curinodes; + dq->dq_btime = dqb32->dqb_btime; + dq->dq_itime = dqb32->dqb_itime; +} + +static void +dqb64_dq(const struct dqblk64 *dqb64, struct dquot *dq) +{ + + dq->dq_bhardlimit = be64toh(dqb64->dqb_bhardlimit); + dq->dq_bsoftlimit = be64toh(dqb64->dqb_bsoftlimit); + dq->dq_curblocks = be64toh(dqb64->dqb_curblocks); + dq->dq_ihardlimit = be64toh(dqb64->dqb_ihardlimit); + dq->dq_isoftlimit = be64toh(dqb64->dqb_isoftlimit); + dq->dq_curinodes = be64toh(dqb64->dqb_curinodes); + dq->dq_btime = be64toh(dqb64->dqb_btime); + dq->dq_itime = be64toh(dqb64->dqb_itime); +} + +static void +dq_dqb32(const struct dquot *dq, struct dqblk32 *dqb32) +{ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Jan 30 17:44:10 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B4701106566B; Fri, 30 Jan 2009 17:44:10 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A29748FC1C; Fri, 30 Jan 2009 17:44:10 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0UHiA74098762; Fri, 30 Jan 2009 17:44:10 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0UHiAuU098761; Fri, 30 Jan 2009 17:44:10 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901301744.n0UHiAuU098761@svn.freebsd.org> From: Sam Leffler Date: Fri, 30 Jan 2009 17:44:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187927 - projects/cambria/sys/arm/xscale/ixp425 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2009 17:44:11 -0000 Author: sam Date: Fri Jan 30 17:44:10 2009 New Revision: 187927 URL: http://svn.freebsd.org/changeset/base/187927 Log: checkpoint work; still nowhere close Modified: projects/cambria/sys/arm/xscale/ixp425/ixp4xx_crypto.c Modified: projects/cambria/sys/arm/xscale/ixp425/ixp4xx_crypto.c ============================================================================== --- projects/cambria/sys/arm/xscale/ixp425/ixp4xx_crypto.c Fri Jan 30 17:29:26 2009 (r187926) +++ projects/cambria/sys/arm/xscale/ixp425/ixp4xx_crypto.c Fri Jan 30 17:44:10 2009 (r187927) @@ -99,29 +99,10 @@ __FBSDID("$FreeBSD$"); #define MOD_AES192 (0x0900 | 6) /* 192-bit key = 6 words */ #define MOD_AES256 (0x0a00 | 8) /* 256-bit key = 8 words */ -#define CTL_FLAG_UNUSED 0x0000 -#define CTL_FLAG_USED 0x1000 -#define CTL_FLAG_PERFORM_ABLK 0x0001 -#define CTL_FLAG_GEN_ICV 0x0002 -#define CTL_FLAG_GEN_REVAES 0x0004 -#define CTL_FLAG_PERFORM_AEAD 0x0008 -#define CTL_FLAG_MASK 0x000f - -#define NPE_MAXSEG 3 /* empirically selected */ - -struct npehwbuf { - struct { /* NPE shared area, cacheline aligned */ - uint32_t next; /* phys addr of next segment */ - uint32_t len; /* buffer/segment length (bytes) */ - uint32_t data; /* phys addr of data segment */ - uint32_t pad[5]; /* pad to cacheline */ - } ne[NPE_MAXSEG]; -}; - -#define NPE_QM_Q_ADDR(e) ((e)&0xffffffff8) /* phys address */ -#define NPE_QM_Q_OK(e) (((e)&1) == 0) /* cmd status */ - -struct npehwctx { /* h/w crypto context */ +/* + * H/W crypto context, one per request sent to the NPE. + */ +struct npehwctx { uint8_t op; /* npe operation */ uint8_t init_len; uint16_t pad; @@ -140,8 +121,49 @@ struct npehwctx { /* h/w crypto contex uint16_t cipher_len; /* cipher data length */ uint32_t aad_addr; /* Additional Auth Data addr for CCM */ uint32_t ctx; /* phys addr of NPE crypto context */ + + /* driver extension, not used by NPE */ + struct cryptop *crp; /* associated crypto operation */ + struct npehwctx *next; /* free list */ }; +#define NPE_QM_Q_ADDR(e) ((e)&0xffffffff8) /* phys address */ +#define NPE_QM_Q_OK(e) (((e)&1) == 0) /* cmd status */ + +#define NPE_MAXCTX 64 +#define NPE_MAXCTX_BYTES 64 + +/* + * H/W operand buffers, used to hold in+out parameters + * attached to a context (see src, dst above). Scatter/gather + * of data is possible but w/ a max # segments (empirically + * selected). Fragmented data are copied as needed. + */ +struct npehwbuf { + struct { /* NPE shared area, cacheline aligned */ + uint32_t next; /* phys addr of next segment */ + uint32_t len; /* buffer/segment length (bytes) */ + uint32_t data; /* phys addr of data segment */ + uint32_t pad[5]; /* pad to cacheline */ +#define NPE_MAXSEG 3 /* empirically selected */ + } ne[NPE_MAXSEG]; +}; + +struct ixpcrypto_softc; + +/* + * Driver companion to npehwbuf (1-1). + */ +struct npebuf { + bus_dmamap_t map; /* bus dma map for associated data */ + struct npehwbuf *hw; /* associated h/w block */ + uint32_t neaddr; /* phys address of hw->ne */ + struct ixpcrypto_softc *sc; +}; + +/* + * Crypto session state. + */ struct ixpcrypto_session { TAILQ_ENTRY(ixpcrypto_session) next; uint32_t id; @@ -153,14 +175,6 @@ struct ixpcrypto_session { uint8_t iv[16]; }; -struct npebuf { - struct npebuf *next; /* chain to next buffer */ - bus_dmamap_t map; /* bus dma map for associated data */ - struct npehwbuf *hw; /* associated h/w block */ - uint32_t neaddr; /* phys address of hw->ne */ - struct cryptop *crp; /* associated crypto operation */ -}; - struct ixpcrypto_softc { device_t dev; int debug; /* debug msg flags */ @@ -169,14 +183,21 @@ struct ixpcrypto_softc { struct rwlock sessions_lock; /* lock over session table */ TAILQ_HEAD(ixpcrypto_sessions_head, ixpcrypto_session) sessions; struct ixpnpe_softc *npe; /* handle on NPE engine */ + + struct npehwctx *hwctx; /* NPE h/w crypto ctx */ + bus_dma_tag_t ctx_tag; /* tag+map for NPE crypto ctx */ + bus_dmamap_t ctx_map; + bus_addr_t ctx_phys; /* phys addr of crypto ctx */ + struct npehwctx *ctx; /* crypto ctx free list */ + bus_dma_tag_t dtag; /* bus dma tag for mapped data */ - struct npehwbuf *hwbuf; /* NPE h/w buffers */ - bus_dma_tag_t buf_tag; /* tag+map for NPE cmd buffers */ + struct npehwbuf *hwbuf; /* NPE h/w operand buffers */ + bus_dma_tag_t buf_tag; /* tag+map for NPE operand buffers */ bus_dmamap_t buf_map; bus_addr_t buf_phys; /* phys addr of h/w buffers */ - struct npebuf *buf; /* cmd buffers (1-1 w/ h/w) */ - struct npebuf *free; /* list of free cmd buffers */ - struct mtx mtx; /* lock over cmd buffer list */ + struct npebuf *buf; /* operand buffers (1-1 w/ h/w) */ + + struct mtx mtx; /* lock over operation state */ int cmd_qid; /* qid for submitting cmds */ int cmddone_qid; /* qid cmds return on */ }; @@ -195,10 +216,10 @@ TUNABLE_INT("hw.ixpcrypto.npe", &ixpcryp if (sc->debug >= n) device_printf(sc->dev, fmt, __VA_ARGS__); \ } while (0) -static int ixpcrypto_cmdbuf = 64; /* # cmd buffers to allocate */ -SYSCTL_INT(_hw_ixpcrypto, OID_AUTO, cmdbuf, CTLFLAG_RD, &ixpcrypto_cmdbuf, - 0, "cmd buffers allocated"); -TUNABLE_INT("hw.ixpcrypto.cmdbuf", &ixpcrypto_cmdbuf); +static int ixpcrypto_qlen = 16; /* NPE cmd queue len */ +SYSCTL_INT(_hw_ixpcrypto, OID_AUTO, qlen, CTLFLAG_RD, &ixpcrypto_qlen, + 0, "cmd queue length"); +TUNABLE_INT("hw.ixpcrypto.qlen", &ixpcrypto_qlen); static int ixpcrypto_dma_setup(struct ixpcrypto_softc *); static void ixpcrypto_dma_destroy(struct ixpcrypto_softc *); @@ -251,12 +272,11 @@ ixpcrypto_attach(device_t dev) } sc->cmd_qid = 29; - ixpqmgr_qconfig(sc->cmd_qid, ixpcrypto_cmdbuf, 0, - ixpcrypto_cmdbuf, 0, NULL, sc); + ixpqmgr_qconfig(sc->cmd_qid, 2*ixpcrypto_qlen, 0, + 2*ixpcrypto_qlen, 0, NULL, sc); sc->cmddone_qid = 30; - KASSERT(ixpcrypto_cmdbuf > 2*4, ("%d cmd buffers", ixpcrypto_cmdbuf)); - ixpqmgr_qconfig(sc->cmddone_qid, ixpcrypto_cmdbuf/4, 0, 2, + ixpqmgr_qconfig(sc->cmddone_qid, ixpcrypto_qlen/2, 0, 2, IX_QMGR_Q_SOURCE_ID_NOT_E, ixpcrypto_cmddone, sc); sc->cid = crypto_get_driverid(dev, CRYPTOCAP_F_HARDWARE); @@ -342,6 +362,43 @@ ixpcrypto_dma_setup(struct ixpcrypto_sof mtx_init(&sc->mtx, "ixpcrypto", NULL, MTX_DEF); + /* DMA tag and map for the NPE buffers */ + error = bus_dma_tag_create(bus_get_dma_tag(device_get_parent(sc->dev)), + sizeof(uint32_t), 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, + NULL, NULL, + ixpcrypto_qlen * sizeof(struct npehwctx), 1, + ixpcrypto_qlen * sizeof(struct npehwctx), 0, + NULL, NULL, &sc->ctx_tag); + if (error != 0) { + device_printf(sc->dev, + "unable to create npehwctx dma tag, error %u\n", error); + return error; + } + /* XXX COHERENT for now */ + if (bus_dmamem_alloc(sc->ctx_tag, (void **)&sc->hwctx, + BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT, + &sc->ctx_map) != 0) { + device_printf(sc->dev, + "unable to allocate memory for h/w ctx, error %u\n", + error); + return error; + } + /* NB: use npe_getaddr and copy phys address */ + if (bus_dmamap_load(sc->ctx_tag, sc->ctx_map, + sc->hwctx, ixpcrypto_qlen*sizeof(struct npehwctx), npe_getaddr, sc, 0) != 0) { + device_printf(sc->dev, + "unable to map memory for crypto ctx, error %u\n", error); + return error; + } + sc->ctx_phys = sc->buf_phys; + + sc->ctx = NULL; + for (i = 0; i < ixpcrypto_qlen; i++) { + struct npehwctx *ctx = &sc->hwctx[i]; + ctx->next = sc->ctx; + sc->ctx = ctx; + } + /* DMA tag for mapped mbufs */ error = bus_dma_tag_create(bus_get_dma_tag(device_get_parent(sc->dev)), 1, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, @@ -353,12 +410,12 @@ ixpcrypto_dma_setup(struct ixpcrypto_sof return error; } - /* DMA tag and map for the NPE buffers */ + /* DMA tag and map for the operand buffers */ error = bus_dma_tag_create(bus_get_dma_tag(device_get_parent(sc->dev)), sizeof(uint32_t), 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, - ixpcrypto_cmdbuf * sizeof(struct npehwbuf), 1, - ixpcrypto_cmdbuf * sizeof(struct npehwbuf), 0, + 2*ixpcrypto_qlen * sizeof(struct npehwbuf), 1, + 2*ixpcrypto_qlen * sizeof(struct npehwbuf), 0, NULL, NULL, &sc->buf_tag); if (error != 0) { device_printf(sc->dev, @@ -374,21 +431,22 @@ ixpcrypto_dma_setup(struct ixpcrypto_sof error); return error; } - sc->buf = malloc(ixpcrypto_cmdbuf * sizeof(struct npebuf), - M_IXPCRYPTO, M_NOWAIT | M_ZERO); - if (sc->buf == NULL) { + if (bus_dmamap_load(sc->buf_tag, sc->buf_map, + sc->hwbuf, 2*ixpcrypto_qlen*sizeof(struct npehwbuf), npe_getaddr, sc, 0) != 0) { device_printf(sc->dev, - "unable to allocate memory for s/w buffers\n"); + "unable to map memory for h/w buffers, error %u\n", error); return error; } - if (bus_dmamap_load(sc->buf_tag, sc->buf_map, - sc->hwbuf, ixpcrypto_cmdbuf*sizeof(struct npehwbuf), npe_getaddr, sc, 0) != 0) { + + sc->buf = malloc(2*ixpcrypto_qlen * sizeof(struct npebuf), + M_IXPCRYPTO, M_NOWAIT | M_ZERO); + if (sc->buf == NULL) { device_printf(sc->dev, - "unable to map memory for h/w buffers, error %u\n", error); + "unable to allocate memory for s/w buffers\n"); return error; } /* NB: sc->buf_phys set by npe_getaddr */ - for (i = 0; i < ixpcrypto_cmdbuf; i++) { + for (i = 0; i < 2*ixpcrypto_qlen; i++) { struct npebuf *npe = &sc->buf[i]; struct npehwbuf *hw = &sc->hwbuf[i]; @@ -405,9 +463,7 @@ ixpcrypto_dma_setup(struct ixpcrypto_sof return error; } npe->hw = hw; - - npe->next = sc->free; - sc->free = npe; + npe->sc = sc; } bus_dmamap_sync(sc->buf_tag, sc->buf_map, BUS_DMASYNC_PREWRITE); return 0; @@ -419,7 +475,7 @@ ixpcrypto_dma_destroy(struct ixpcrypto_s int i; if (sc->hwbuf != NULL) { - for (i = 0; i < ixpcrypto_cmdbuf; i++) { + for (i = 0; i < 2*ixpcrypto_qlen; i++) { struct npebuf *npe = &sc->buf[i]; bus_dmamap_destroy(sc->dtag, npe->map); } @@ -432,6 +488,12 @@ ixpcrypto_dma_destroy(struct ixpcrypto_s bus_dma_tag_destroy(sc->buf_tag); if (sc->dtag) bus_dma_tag_destroy(sc->dtag); + if (sc->hwctx != NULL) { + bus_dmamap_unload(sc->ctx_tag, sc->ctx_map); + bus_dmamem_free(sc->ctx_tag, sc->hwctx, sc->ctx_map); + } + if (sc->ctx_tag) + bus_dma_tag_destroy(sc->ctx_tag); mtx_destroy(&sc->mtx); } @@ -532,17 +594,43 @@ ixpcrypto_freesession(device_t dev, uint return EINVAL; } +static __inline struct npehwctx * +ctx_alloc(struct ixpcrypto_softc *sc) +{ + struct npehwctx *ctx; + + mtx_lock(&sc->mtx); + ctx = sc->ctx; + if (ctx != NULL) + sc->ctx = ctx->next; + mtx_unlock(&sc->mtx); + return ctx; +} + +static __inline void +ctx_free(struct ixpcrypto_softc *sc, struct npehwctx *ctx) +{ + + mtx_lock(&sc->mtx); + ctx->next = sc->ctx; + sc->ctx = ctx; + mtx_unlock(&sc->mtx); +} + static void ixpcrypto_cb(void *arg, bus_dma_segment_t *segs, int nsegs, bus_size_t len, int error) { struct npebuf *npe = arg; + struct ixpcrypto_softc *sc = npe->sc; + struct npehwctx *ctx; struct npehwbuf *hw; uint32_t next; - int i; + int i, ix; if (error != 0) return; + hw = npe->hw; next = npe->neaddr + sizeof(hw->ne[0]); for (i = 0; i < nsegs; i++) { @@ -554,6 +642,16 @@ ixpcrypto_cb(void *arg, next += sizeof(hw->ne[0]); } hw->ne[i-1].next = 0; /* zero last in chain */ + + bus_dmamap_sync(sc->dtag, npe->map, BUS_DMASYNC_PREWRITE); + /* XXX flush descriptor instead of using uncached memory */ + + ix = npe - sc->buf; + ctx = &sc->hwctx[ix]; + ctx->src = htobe32(npe->neaddr); + + /* dispatch to NPE */ + ixpqmgr_qwrite(sc->cmd_qid, sc->ctx_phys + (ix * sizeof(*ctx))); } static int @@ -562,20 +660,21 @@ ixpcrypto_process(device_t dev, struct c struct ixpcrypto_softc *sc = device_get_softc(dev); struct ixpcrypto_session *ses = NULL; struct cryptodesc *crd, *enccrd, *maccrd; + struct npehwctx *npectx; struct npebuf *npe; + uint32_t cfgword; int error = 0; - enccrd = maccrd = NULL; - - /* Sanity check. */ - if (crp == NULL) - return EINVAL; + KASSERT(crp != NULL, ("null crp")); + KASSERT(crp->crp_callback != NULL, ("null callback")); + KASSERT(crp->crp_desc != NULL, ("null desc")); - if (crp->crp_callback == NULL || crp->crp_desc == NULL) { + if ((crp->crp_flags & (CRYPTO_F_IMBUF | CRYPTO_F_IOV)) == 0) { error = EINVAL; - goto out; + goto done; } + enccrd = maccrd = NULL; for (crd = crp->crp_desc; crd != NULL; crd = crd->crd_next) { switch (crd->crd_alg) { case CRYPTO_NULL_HMAC: @@ -592,7 +691,12 @@ ixpcrypto_process(device_t dev, struct c } maccrd = crd; break; + case CRYPTO_DES_CBC: + case CRYPTO_3DES_CBC: case CRYPTO_AES_CBC: +#ifdef CRYPTO_AES_CTR_CBC + case CRYPTO_AES_CTR_CBC: +#endif if (enccrd != NULL) { error = EINVAL; goto out; @@ -603,10 +707,6 @@ ixpcrypto_process(device_t dev, struct c return EINVAL; } } - if (enccrd == NULL || (enccrd->crd_len % AES_BLOCK_LEN) != 0) { - error = EINVAL; - goto out; - } rw_rlock(&sc->sessions_lock); TAILQ_FOREACH_REVERSE(ses, &sc->sessions, ixpcrypto_sessions_head, next) { @@ -616,49 +716,72 @@ ixpcrypto_process(device_t dev, struct c rw_runlock(&sc->sessions_lock); if (ses == NULL) { error = EINVAL; - goto out; + goto done; } - mtx_lock(&sc->mtx); - npe = sc->free; - if (npe != NULL) - sc->free = npe->next; - mtx_unlock(&sc->mtx); - if (npe == NULL) { + /* allocate an npe context for the request */ + npectx = ctx_alloc(sc); + if (npectx == NULL) { error = ENOBUFS; - goto out; + goto bad; } - - npe->crp = crp; + npectx->crp = crp; + cfgword = 0; + if (maccrd != NULL) { + } + if (enccrd != NULL) { + switch (enccrd->crd_alg) { + case CRYPTO_DES_CBC: + cfgword |= ; + break; + case CRYPTO_3DES_CBC: + cfgword |= ; + break; + case CRYPTO_AES_CBC: + cfgword |= ; + switch (enccrd->crd_klen) { + case 128: + case 192: + case 256: + } + break; +#ifdef CRYPTO_AES_CTR_CBC + case CRYPTO_AES_CTR_CBC: + cfgword |= ; + break; +#endif + } + if (enccrd->crd_flags & CRD_F_ENCRYPT) + cfgword |= ; + if (enccrd->crd_flags & CRD_F_IV_EXPLICIT) + memcpy(npectx->iv, crd_iv, 16); + else + memcpy(npectx->iv, ses->iv, 16); + if (enccrd->crd_flags & CRD_F_KEY_EXPLICIT) + else + } + /* + * Assign operand buffers; NB: we pre-assign src+dst + * so there's no need to do it under the mtx. + * XXX assign and setup dst buffer + */ + npe = &sc->buf[npectx - sc->hwctx]; if (crp->crp_flags & CRYPTO_F_IMBUF) { error = bus_dmamap_load_mbuf(sc->dtag, npe->map, - (struct mbuf *) crp->crp_buf, - ixpcrypto_cb, npe, BUS_DMA_NOWAIT); - } else if (crp->crp_flags & CRYPTO_F_IOV) { + (struct mbuf *) crp->crp_buf, ixpcrypto_cb, npe, 0); + if (error) + goto bad; + } else { error = bus_dmamap_load_uio(sc->dtag, npe->map, - (struct uio *) crp->crp_buf, - ixpcrypto_cb, npe, BUS_DMA_NOWAIT); - } else - error = EINVAL; - if (error != 0) { - device_printf(sc->dev, "%s: error %u\n", __func__, error); - mtx_lock(&sc->mtx); - npe->next = sc->free; - sc->free = npe; - mtx_unlock(&sc->mtx); - goto out; + (struct uio *) crp->crp_buf, ixpcrypto_cb, npe, 0); + if (error) + goto bad; } - - bus_dmamap_sync(sc->dtag, npe->map, BUS_DMASYNC_PREWRITE); - /* XXX flush descriptor instead of using uncached memory */ - - DPRINTF(sc, "%s: qwrite(%u, 0x%x) data %x len 0x%x\n", - __func__, sc->cmd_qid, npe->neaddr, - npe->hw->ne[0].data, npe->hw->ne[0].len); - /* stick it on the cmd q */ - ixpqmgr_qwrite(sc->cmd_qid, npe->neaddr); - return 0; -out: + return 0; /* NB: success, work completes in cb */ +bad: + ctx_free(sc, npectx) + /* fall thru... */ +done: crp->crp_etype = error; crypto_done(crp); return error; @@ -667,34 +790,27 @@ out: static void ixpcrypto_cmddone(int qid, void *arg) { -#define P2V(a, sc) \ - &(sc)->buf[((a) - (sc)->buf_phys) / sizeof(struct npehwbuf)] +#define P2CTX(a, sc) \ + &(sc)->hwctx[((a) - (sc)->ctx_phys) / sizeof(struct npehwctx)] +#define P2BUF(a, sc) \ + &(sc)->hwctx[((a) - (sc)->ctx_phys) / sizeof(struct npehwctx)] struct ixpcrypto_softc *sc = arg; uint32_t entry; - struct npebuf *head; - struct npebuf **tail; - struct npebuf *npe; - head = NULL; - tail = &head; while (ixpqmgr_qread(qid, &entry) == 0) { - npe = P2V(NPE_QM_Q_ADDR(entry), sc); - - /* XXX optimize based on request */ - bus_dmamap_sync(sc->dtag, npe->map, - BUS_DMASYNC_POSTWRITE | BUS_DMASYNC_POSTREAD); + struct npehwctx *ctx = P2CTX(NPE_QM_Q_ADDR(entry), sc); - /* XXX copyback iv */ - crypto_done(npe->crp); - - *tail = npe; - tail = &npe->next; + if (ctx->op == data coming back) { + struct npebuf *dst = P2BUF(ctx->dst, sc); + bus_dmamap_sync(sc->dtag, dst->map, + BUS_DMASYNC_POSTWRITE | BUS_DMASYNC_POSTREAD); + } + crypto_done(ctx->crp); + /* XXX optimize? */ + ctx_free(sc, ctx); } - mtx_lock(&sc->mtx); - *tail = sc->free; - sc->free = head; - mtx_unlock(&sc->mtx); -#undef P2V +#undef P2BUF +#undef P2CTX } static device_method_t ixpcrypto_methods[] = { From owner-svn-src-projects@FreeBSD.ORG Fri Jan 30 18:06:25 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 888231065687; Fri, 30 Jan 2009 18:06:25 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 722968FC0A; Fri, 30 Jan 2009 18:06:25 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0UI6P1b099304; Fri, 30 Jan 2009 18:06:25 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0UI6OLT099288; Fri, 30 Jan 2009 18:06:24 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901301806.n0UI6OLT099288@svn.freebsd.org> From: Sam Leffler Date: Fri, 30 Jan 2009 18:06:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187929 - in projects/cambria: . bin/chmod bin/dd bin/kenv bin/ln bin/test cddl/contrib/opensolaris/cmd/zinject cddl/contrib/opensolaris/lib/libdtrace/common cddl/contrib/opensolaris/li... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2009 18:06:25 -0000 Author: sam Date: Fri Jan 30 18:06:22 2009 New Revision: 187929 URL: http://svn.freebsd.org/changeset/base/187929 Log: merge from head Added: projects/cambria/contrib/bind9/aclocal.m4 - copied unchanged from r187927, head/contrib/bind9/aclocal.m4 projects/cambria/contrib/bind9/bin/nsupdate/nsupdate.1 - copied unchanged from r187927, head/contrib/bind9/bin/nsupdate/nsupdate.1 projects/cambria/contrib/bind9/config.h.in - copied unchanged from r187927, head/contrib/bind9/config.h.in projects/cambria/contrib/bind9/doc/misc/sort-options.pl - copied unchanged from r187927, head/contrib/bind9/doc/misc/sort-options.pl projects/cambria/contrib/bind9/doc/rfc/rfc4648.txt - copied unchanged from r187927, head/contrib/bind9/doc/rfc/rfc4648.txt projects/cambria/contrib/bind9/doc/rfc/rfc4701.txt - copied unchanged from r187927, head/contrib/bind9/doc/rfc/rfc4701.txt projects/cambria/contrib/bind9/doc/rfc/rfc5155.txt - copied unchanged from r187927, head/contrib/bind9/doc/rfc/rfc5155.txt projects/cambria/contrib/bind9/lib/bind/aclocal.m4 - copied unchanged from r187927, head/contrib/bind9/lib/bind/aclocal.m4 projects/cambria/contrib/bind9/lib/bind/config.h.in - copied unchanged from r187927, head/contrib/bind9/lib/bind/config.h.in projects/cambria/contrib/bind9/lib/bind/include/isc/platform.h.in - copied unchanged from r187927, head/contrib/bind9/lib/bind/include/isc/platform.h.in projects/cambria/contrib/bind9/lib/isc/include/isc/portset.h - copied unchanged from r187927, head/contrib/bind9/lib/isc/include/isc/portset.h projects/cambria/contrib/bind9/lib/isc/portset.c - copied unchanged from r187927, head/contrib/bind9/lib/isc/portset.c projects/cambria/contrib/csup/lex.rcs.c - copied unchanged from r187927, head/contrib/csup/lex.rcs.c projects/cambria/contrib/csup/rcsfile.c - copied unchanged from r187927, head/contrib/csup/rcsfile.c projects/cambria/contrib/csup/rcsfile.h - copied unchanged from r187927, head/contrib/csup/rcsfile.h projects/cambria/contrib/csup/rcsparse.c - copied unchanged from r187927, head/contrib/csup/rcsparse.c projects/cambria/contrib/csup/rcsparse.h - copied unchanged from r187927, head/contrib/csup/rcsparse.h projects/cambria/contrib/csup/rcstokenizer.h - copied unchanged from r187927, head/contrib/csup/rcstokenizer.h projects/cambria/contrib/csup/rcstokenizer.l - copied unchanged from r187927, head/contrib/csup/rcstokenizer.l projects/cambria/contrib/csup/rsyncfile.c - copied unchanged from r187927, head/contrib/csup/rsyncfile.c projects/cambria/contrib/csup/rsyncfile.h - copied unchanged from r187927, head/contrib/csup/rsyncfile.h projects/cambria/contrib/file/AUTHORS - copied unchanged from r187927, head/contrib/file/AUTHORS projects/cambria/contrib/file/COPYING - copied unchanged from r187927, head/contrib/file/COPYING projects/cambria/contrib/file/INSTALL - copied unchanged from r187927, head/contrib/file/INSTALL projects/cambria/contrib/file/Magdir/clarion - copied unchanged from r187927, head/contrib/file/Magdir/clarion projects/cambria/contrib/file/Magdir/erlang - copied unchanged from r187927, head/contrib/file/Magdir/erlang projects/cambria/contrib/file/Magdir/gnome-keyring - copied unchanged from r187927, head/contrib/file/Magdir/gnome-keyring projects/cambria/contrib/file/Magdir/gnumeric - copied unchanged from r187927, head/contrib/file/Magdir/gnumeric projects/cambria/contrib/file/Magdir/graphviz - copied unchanged from r187927, head/contrib/file/Magdir/graphviz projects/cambria/contrib/file/Magdir/inform - copied unchanged from r187927, head/contrib/file/Magdir/inform projects/cambria/contrib/file/Magdir/kde - copied unchanged from r187927, head/contrib/file/Magdir/kde projects/cambria/contrib/file/Magdir/llvm - copied unchanged from r187927, head/contrib/file/Magdir/llvm projects/cambria/contrib/file/Magdir/lua - copied unchanged from r187927, head/contrib/file/Magdir/lua projects/cambria/contrib/file/Magdir/luks - copied unchanged from r187927, head/contrib/file/Magdir/luks projects/cambria/contrib/file/Magdir/mathcad - copied unchanged from r187927, head/contrib/file/Magdir/mathcad projects/cambria/contrib/file/Magdir/mercurial - copied unchanged from r187927, head/contrib/file/Magdir/mercurial projects/cambria/contrib/file/Magdir/mozilla - copied unchanged from r187927, head/contrib/file/Magdir/mozilla projects/cambria/contrib/file/Magdir/netware - copied unchanged from r187927, head/contrib/file/Magdir/netware projects/cambria/contrib/file/Magdir/ole2compounddocs - copied unchanged from r187927, head/contrib/file/Magdir/ole2compounddocs projects/cambria/contrib/file/Magdir/ruby - copied unchanged from r187927, head/contrib/file/Magdir/ruby projects/cambria/contrib/file/Magdir/securitycerts - copied unchanged from r187927, head/contrib/file/Magdir/securitycerts projects/cambria/contrib/file/Magdir/warc - copied unchanged from r187927, head/contrib/file/Magdir/warc projects/cambria/contrib/file/Magdir/weak - copied unchanged from r187927, head/contrib/file/Magdir/weak projects/cambria/contrib/file/Magdir/windows - copied unchanged from r187927, head/contrib/file/Magdir/windows projects/cambria/contrib/file/Magdir/xilinx - copied unchanged from r187927, head/contrib/file/Magdir/xilinx projects/cambria/contrib/file/NEWS - copied unchanged from r187927, head/contrib/file/NEWS projects/cambria/contrib/file/TODO - copied unchanged from r187927, head/contrib/file/TODO projects/cambria/contrib/file/asprintf.c - copied unchanged from r187927, head/contrib/file/asprintf.c projects/cambria/contrib/file/compile - copied unchanged from r187927, head/contrib/file/compile projects/cambria/contrib/file/config.guess - copied unchanged from r187927, head/contrib/file/config.guess projects/cambria/contrib/file/config.sub - copied unchanged from r187927, head/contrib/file/config.sub projects/cambria/contrib/file/configure.ac - copied unchanged from r187927, head/contrib/file/configure.ac projects/cambria/contrib/file/elfclass.h - copied unchanged from r187927, head/contrib/file/elfclass.h projects/cambria/contrib/file/getopt_long.c - copied unchanged from r187927, head/contrib/file/getopt_long.c projects/cambria/contrib/file/mygetopt.h - copied unchanged from r187927, head/contrib/file/mygetopt.h projects/cambria/contrib/file/tests/ - copied from r187927, head/contrib/file/tests/ projects/cambria/contrib/file/vasprintf.c - copied unchanged from r187927, head/contrib/file/vasprintf.c projects/cambria/contrib/gdtoa/gdtoa_fltrnds.h - copied unchanged from r187927, head/contrib/gdtoa/gdtoa_fltrnds.h projects/cambria/contrib/gdtoa/test/obad/ - copied from r187927, head/contrib/gdtoa/test/obad/ projects/cambria/contrib/openbsm/bin/auditd/auditd_darwin.c - copied unchanged from r187927, head/contrib/openbsm/bin/auditd/auditd_darwin.c projects/cambria/contrib/openbsm/bin/auditd/auditd_fbsd.c - copied unchanged from r187927, head/contrib/openbsm/bin/auditd/auditd_fbsd.c projects/cambria/contrib/openbsm/bsm/auditd_lib.h - copied unchanged from r187927, head/contrib/openbsm/bsm/auditd_lib.h projects/cambria/contrib/openbsm/libauditd/ - copied from r187927, head/contrib/openbsm/libauditd/ projects/cambria/contrib/openbsm/libbsm/au_domain.3 - copied unchanged from r187927, head/contrib/openbsm/libbsm/au_domain.3 projects/cambria/contrib/openbsm/libbsm/au_errno.3 - copied unchanged from r187927, head/contrib/openbsm/libbsm/au_errno.3 projects/cambria/contrib/openbsm/libbsm/au_socket_type.3 - copied unchanged from r187927, head/contrib/openbsm/libbsm/au_socket_type.3 projects/cambria/contrib/openbsm/libbsm/bsm_domain.c - copied unchanged from r187927, head/contrib/openbsm/libbsm/bsm_domain.c projects/cambria/contrib/openbsm/libbsm/bsm_errno.c - copied unchanged from r187927, head/contrib/openbsm/libbsm/bsm_errno.c projects/cambria/contrib/openbsm/libbsm/bsm_socket_type.c - copied unchanged from r187927, head/contrib/openbsm/libbsm/bsm_socket_type.c projects/cambria/contrib/openbsm/sys/bsm/audit_domain.h - copied unchanged from r187927, head/contrib/openbsm/sys/bsm/audit_domain.h projects/cambria/contrib/openbsm/sys/bsm/audit_errno.h - copied unchanged from r187927, head/contrib/openbsm/sys/bsm/audit_errno.h projects/cambria/contrib/openbsm/sys/bsm/audit_socket_type.h - copied unchanged from r187927, head/contrib/openbsm/sys/bsm/audit_socket_type.h projects/cambria/contrib/openbsm/test/reference/E2BIG_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/E2BIG_record projects/cambria/contrib/openbsm/test/reference/EACCES_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EACCES_record projects/cambria/contrib/openbsm/test/reference/EBADF_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EBADF_record projects/cambria/contrib/openbsm/test/reference/EBUSY_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EBUSY_record projects/cambria/contrib/openbsm/test/reference/ECHILD_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ECHILD_record projects/cambria/contrib/openbsm/test/reference/EDEADLK_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EDEADLK_record projects/cambria/contrib/openbsm/test/reference/EEXIST_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EEXIST_record projects/cambria/contrib/openbsm/test/reference/EFAULT_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EFAULT_record projects/cambria/contrib/openbsm/test/reference/EFBIG_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EFBIG_record projects/cambria/contrib/openbsm/test/reference/EINTR_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EINTR_record projects/cambria/contrib/openbsm/test/reference/EINVAL_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EINVAL_record projects/cambria/contrib/openbsm/test/reference/EIO_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EIO_record projects/cambria/contrib/openbsm/test/reference/EISDIR_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EISDIR_record projects/cambria/contrib/openbsm/test/reference/EMFILE_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EMFILE_record projects/cambria/contrib/openbsm/test/reference/EMLINK_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EMLINK_record projects/cambria/contrib/openbsm/test/reference/ENFILE_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENFILE_record projects/cambria/contrib/openbsm/test/reference/ENODEV_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENODEV_record projects/cambria/contrib/openbsm/test/reference/ENOENT_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENOENT_record projects/cambria/contrib/openbsm/test/reference/ENOEXEC_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENOEXEC_record projects/cambria/contrib/openbsm/test/reference/ENOMEM_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENOMEM_record projects/cambria/contrib/openbsm/test/reference/ENOSPC_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENOSPC_record projects/cambria/contrib/openbsm/test/reference/ENOTBLK_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENOTBLK_record projects/cambria/contrib/openbsm/test/reference/ENOTDIR_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENOTDIR_record projects/cambria/contrib/openbsm/test/reference/ENOTTY_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENOTTY_record projects/cambria/contrib/openbsm/test/reference/ENXIO_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ENXIO_record projects/cambria/contrib/openbsm/test/reference/EPERM_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EPERM_record projects/cambria/contrib/openbsm/test/reference/EPIPE_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EPIPE_record projects/cambria/contrib/openbsm/test/reference/EROFS_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EROFS_record projects/cambria/contrib/openbsm/test/reference/ESPIPE_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ESPIPE_record projects/cambria/contrib/openbsm/test/reference/ESRCH_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ESRCH_record projects/cambria/contrib/openbsm/test/reference/ETXTBSY_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/ETXTBSY_record projects/cambria/contrib/openbsm/test/reference/EXDEV_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/EXDEV_record projects/cambria/contrib/openbsm/test/reference/socketex_record - copied unchanged from r187927, head/contrib/openbsm/test/reference/socketex_record projects/cambria/contrib/openbsm/test/reference/socketex_token - copied unchanged from r187927, head/contrib/openbsm/test/reference/socketex_token projects/cambria/lib/libarchive/test/test_write_disk_failures.c - copied unchanged from r187927, head/lib/libarchive/test/test_write_disk_failures.c projects/cambria/lib/libarchive/test/test_write_disk_sparse.c - copied unchanged from r187927, head/lib/libarchive/test/test_write_disk_sparse.c projects/cambria/lib/libauditd/ - copied from r187927, head/lib/libauditd/ projects/cambria/lib/libc/stdio/printfcommon.h - copied unchanged from r187927, head/lib/libc/stdio/printfcommon.h projects/cambria/lib/libelf/README - copied unchanged from r187927, head/lib/libelf/README projects/cambria/sbin/ipfw/dummynet.c - copied unchanged from r187927, head/sbin/ipfw/dummynet.c projects/cambria/sbin/ipfw/ipfw2.h - copied unchanged from r187927, head/sbin/ipfw/ipfw2.h projects/cambria/sbin/ipfw/ipv6.c - copied unchanged from r187927, head/sbin/ipfw/ipv6.c projects/cambria/sbin/ipfw/main.c - copied unchanged from r187927, head/sbin/ipfw/main.c projects/cambria/sbin/ipfw/nat.c - copied unchanged from r187927, head/sbin/ipfw/nat.c projects/cambria/share/man/man4/man4.powerpc/snd_ai2s.4 - copied unchanged from r187927, head/share/man/man4/man4.powerpc/snd_ai2s.4 projects/cambria/share/man/man4/man4.powerpc/snd_davbus.4 - copied unchanged from r187927, head/share/man/man4/man4.powerpc/snd_davbus.4 projects/cambria/share/man/man4/ng_ether_echo.4 - copied unchanged from r187927, head/share/man/man4/ng_ether_echo.4 projects/cambria/share/man/man4/urtw.4 - copied unchanged from r187927, head/share/man/man4/urtw.4 projects/cambria/share/man/man5/portindex.5 - copied unchanged from r187927, head/share/man/man5/portindex.5 projects/cambria/share/man/man7/adding_user.7 - copied unchanged from r187927, head/share/man/man7/adding_user.7 projects/cambria/sys/amd64/conf/USB2 - copied unchanged from r187927, head/sys/amd64/conf/USB2 projects/cambria/sys/arm/arm/cpufunc_asm_sheeva.S - copied unchanged from r187927, head/sys/arm/arm/cpufunc_asm_sheeva.S projects/cambria/sys/bsm/audit_domain.h - copied unchanged from r187927, head/sys/bsm/audit_domain.h projects/cambria/sys/bsm/audit_errno.h - copied unchanged from r187927, head/sys/bsm/audit_errno.h projects/cambria/sys/bsm/audit_socket_type.h - copied unchanged from r187927, head/sys/bsm/audit_socket_type.h projects/cambria/sys/dev/ofw/ofw_iicbus.c - copied unchanged from r187927, head/sys/dev/ofw/ofw_iicbus.c projects/cambria/sys/dev/sound/macio/ - copied from r187927, head/sys/dev/sound/macio/ projects/cambria/sys/dev/syscons/scterm-teken.c - copied unchanged from r187927, head/sys/dev/syscons/scterm-teken.c projects/cambria/sys/dev/syscons/teken/ - copied from r187927, head/sys/dev/syscons/teken/ projects/cambria/sys/dev/usb/if_urtw.c - copied unchanged from r187927, head/sys/dev/usb/if_urtw.c projects/cambria/sys/dev/usb/if_urtwreg.h - copied unchanged from r187927, head/sys/dev/usb/if_urtwreg.h projects/cambria/sys/dev/usb/if_urtwvar.h - copied unchanged from r187927, head/sys/dev/usb/if_urtwvar.h projects/cambria/sys/dev/usb2/controller/atmegadci.c - copied unchanged from r187927, head/sys/dev/usb2/controller/atmegadci.c projects/cambria/sys/dev/usb2/controller/atmegadci.h - copied unchanged from r187927, head/sys/dev/usb2/controller/atmegadci.h projects/cambria/sys/dev/usb2/controller/atmegadci_atmelarm.c - copied unchanged from r187927, head/sys/dev/usb2/controller/atmegadci_atmelarm.c projects/cambria/sys/dev/usb2/ethernet/if_auereg.h - copied unchanged from r187927, head/sys/dev/usb2/ethernet/if_auereg.h projects/cambria/sys/dev/usb2/ethernet/if_axereg.h - copied unchanged from r187927, head/sys/dev/usb2/ethernet/if_axereg.h projects/cambria/sys/dev/usb2/ethernet/if_cdcereg.h - copied unchanged from r187927, head/sys/dev/usb2/ethernet/if_cdcereg.h projects/cambria/sys/dev/usb2/ethernet/if_cuereg.h - copied unchanged from r187927, head/sys/dev/usb2/ethernet/if_cuereg.h projects/cambria/sys/dev/usb2/ethernet/if_kuefw.h - copied unchanged from r187927, head/sys/dev/usb2/ethernet/if_kuefw.h projects/cambria/sys/dev/usb2/ethernet/if_kuereg.h - copied unchanged from r187927, head/sys/dev/usb2/ethernet/if_kuereg.h projects/cambria/sys/dev/usb2/ethernet/if_ruereg.h - copied unchanged from r187927, head/sys/dev/usb2/ethernet/if_ruereg.h projects/cambria/sys/dev/usb2/ethernet/if_udavreg.h - copied unchanged from r187927, head/sys/dev/usb2/ethernet/if_udavreg.h projects/cambria/sys/dev/usb2/wlan/if_rumfw.h - copied unchanged from r187927, head/sys/dev/usb2/wlan/if_rumfw.h projects/cambria/sys/dev/usb2/wlan/if_rumreg.h - copied unchanged from r187927, head/sys/dev/usb2/wlan/if_rumreg.h projects/cambria/sys/dev/usb2/wlan/if_rumvar.h - copied unchanged from r187927, head/sys/dev/usb2/wlan/if_rumvar.h projects/cambria/sys/dev/usb2/wlan/if_uralreg.h - copied unchanged from r187927, head/sys/dev/usb2/wlan/if_uralreg.h projects/cambria/sys/dev/usb2/wlan/if_uralvar.h - copied unchanged from r187927, head/sys/dev/usb2/wlan/if_uralvar.h projects/cambria/sys/dev/usb2/wlan/if_zydfw.h - copied unchanged from r187927, head/sys/dev/usb2/wlan/if_zydfw.h projects/cambria/sys/dev/usb2/wlan/if_zydreg.h - copied unchanged from r187927, head/sys/dev/usb2/wlan/if_zydreg.h projects/cambria/sys/i386/conf/USB2 - copied unchanged from r187927, head/sys/i386/conf/USB2 projects/cambria/sys/mips/mips/elf64_machdep.c - copied unchanged from r187927, head/sys/mips/mips/elf64_machdep.c projects/cambria/sys/modules/netgraph/ether_echo/ - copied from r187927, head/sys/modules/netgraph/ether_echo/ projects/cambria/sys/modules/sound/driver/ai2s/ - copied from r187927, head/sys/modules/sound/driver/ai2s/ projects/cambria/sys/modules/sound/driver/davbus/ - copied from r187927, head/sys/modules/sound/driver/davbus/ projects/cambria/sys/modules/urtw/ - copied from r187927, head/sys/modules/urtw/ projects/cambria/sys/modules/usb2/controller_atmegadci/ - copied from r187927, head/sys/modules/usb2/controller_atmegadci/ projects/cambria/sys/modules/usb2/serial_3g/ - copied from r187927, head/sys/modules/usb2/serial_3g/ projects/cambria/sys/net80211/ieee80211_tdma.c - copied unchanged from r187927, head/sys/net80211/ieee80211_tdma.c projects/cambria/sys/net80211/ieee80211_tdma.h - copied unchanged from r187927, head/sys/net80211/ieee80211_tdma.h projects/cambria/sys/netgraph/ng_ether_echo.c - copied unchanged from r187927, head/sys/netgraph/ng_ether_echo.c projects/cambria/sys/netgraph/ng_ether_echo.h - copied unchanged from r187927, head/sys/netgraph/ng_ether_echo.h projects/cambria/sys/pc98/cbus/sctermvar.h - copied unchanged from r187927, head/sys/pc98/cbus/sctermvar.h projects/cambria/sys/powerpc/powermac/kiic.c - copied unchanged from r187927, head/sys/powerpc/powermac/kiic.c projects/cambria/sys/security/audit/audit_bsm_domain.c - copied unchanged from r187927, head/sys/security/audit/audit_bsm_domain.c projects/cambria/sys/security/audit/audit_bsm_errno.c - copied unchanged from r187927, head/sys/security/audit/audit_bsm_errno.c projects/cambria/sys/security/audit/audit_bsm_socket_type.c - copied unchanged from r187927, head/sys/security/audit/audit_bsm_socket_type.c projects/cambria/sys/xen/evtchn.h - copied unchanged from r187927, head/sys/xen/evtchn.h projects/cambria/sys/xen/hypervisor.h - copied unchanged from r187927, head/sys/xen/hypervisor.h projects/cambria/sys/xen/xen_intr.h - copied unchanged from r187927, head/sys/xen/xen_intr.h projects/cambria/tools/regression/usr.bin/jot/regress.wX1.out - copied unchanged from r187927, head/tools/regression/usr.bin/jot/regress.wX1.out projects/cambria/tools/tools/ath/athrd/ - copied from r187927, head/tools/tools/ath/athrd/ projects/cambria/tools/tools/net80211/scripts/setup.tdma-master - copied unchanged from r187927, head/tools/tools/net80211/scripts/setup.tdma-master projects/cambria/tools/tools/net80211/scripts/setup.tdma-slave - copied unchanged from r187927, head/tools/tools/net80211/scripts/setup.tdma-slave projects/cambria/tools/tools/net80211/wlantxtime/ - copied from r187927, head/tools/tools/net80211/wlantxtime/ projects/cambria/tools/tools/sysbuild/ - copied from r187927, head/tools/tools/sysbuild/ projects/cambria/usr.bin/mail/util.c - copied unchanged from r187927, head/usr.bin/mail/util.c projects/cambria/usr.sbin/i2c/ - copied from r187927, head/usr.sbin/i2c/ Replaced: projects/cambria/contrib/file/FREEBSD-upgrade - copied unchanged from r187927, head/contrib/file/FREEBSD-upgrade projects/cambria/contrib/file/magic2mime - copied unchanged from r187927, head/contrib/file/magic2mime Deleted: projects/cambria/contrib/bind9/bin/nsupdate/nsupdate.8 projects/cambria/contrib/file/LEGAL.NOTICE projects/cambria/contrib/file/Makefile.std projects/cambria/contrib/file/PORTING projects/cambria/contrib/file/configure.in projects/cambria/contrib/file/magic.mime projects/cambria/contrib/file/mkinstalldirs projects/cambria/contrib/file/test.c projects/cambria/share/man/man8/adding_user.8 projects/cambria/sys/arm/arm/cpufunc_asm_feroceon.S projects/cambria/sys/boot/common/load.c projects/cambria/sys/dev/digi/con.CX-IBM.h projects/cambria/sys/dev/digi/con.CX.h projects/cambria/sys/dev/digi/con.EPCX.h projects/cambria/sys/dev/digi/con.MBank.h projects/cambria/sys/dev/sound/pci/au88x0.c projects/cambria/sys/dev/sound/pci/au88x0.h projects/cambria/sys/dev/syscons/scterm-dumb.c projects/cambria/sys/dev/syscons/scterm-sc.c projects/cambria/sys/dev/syscons/sctermvar.h projects/cambria/sys/dev/usb2/ethernet/if_aue2_reg.h projects/cambria/sys/dev/usb2/ethernet/if_axe2_reg.h projects/cambria/sys/dev/usb2/ethernet/if_cdce2_reg.h projects/cambria/sys/dev/usb2/ethernet/if_cue2_reg.h projects/cambria/sys/dev/usb2/ethernet/if_kue2_fw.h projects/cambria/sys/dev/usb2/ethernet/if_kue2_reg.h projects/cambria/sys/dev/usb2/ethernet/if_rue2_reg.h projects/cambria/sys/dev/usb2/ethernet/if_udav2_reg.h projects/cambria/sys/dev/usb2/wlan/if_rum2_fw.h projects/cambria/sys/dev/usb2/wlan/if_rum2_reg.h projects/cambria/sys/dev/usb2/wlan/if_rum2_var.h projects/cambria/sys/dev/usb2/wlan/if_ural2_reg.h projects/cambria/sys/dev/usb2/wlan/if_ural2_var.h projects/cambria/sys/dev/usb2/wlan/if_zyd2_fw.h projects/cambria/sys/dev/usb2/wlan/if_zyd2_reg.h projects/cambria/sys/i386/include/xen/evtchn.h projects/cambria/sys/i386/include/xen/hypervisor.h projects/cambria/sys/i386/include/xen/xen_intr.h projects/cambria/sys/modules/sound/driver/au88x0/ projects/cambria/sys/powerpc/booke/support.S projects/cambria/tools/regression/usr.bin/jot/regress.wX.out projects/cambria/usr.bin/mail/aux.c Modified: projects/cambria/ (props changed) projects/cambria/COPYRIGHT projects/cambria/Makefile projects/cambria/Makefile.inc1 projects/cambria/ObsoleteFiles.inc projects/cambria/UPDATING projects/cambria/bin/chmod/chmod.1 projects/cambria/bin/dd/dd.1 projects/cambria/bin/kenv/kenv.1 projects/cambria/bin/ln/ln.1 projects/cambria/bin/test/test.1 projects/cambria/cddl/contrib/opensolaris/cmd/zinject/zinject.c projects/cambria/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c projects/cambria/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c projects/cambria/contrib/bind9/ (props changed) projects/cambria/contrib/bind9/CHANGES projects/cambria/contrib/bind9/COPYRIGHT projects/cambria/contrib/bind9/FAQ projects/cambria/contrib/bind9/FAQ.xml projects/cambria/contrib/bind9/README projects/cambria/contrib/bind9/bin/check/check-tool.c projects/cambria/contrib/bind9/bin/check/named-checkconf.c projects/cambria/contrib/bind9/bin/check/named-checkzone.c projects/cambria/contrib/bind9/bin/dig/dig.1 projects/cambria/contrib/bind9/bin/dig/dig.c projects/cambria/contrib/bind9/bin/dig/dig.docbook projects/cambria/contrib/bind9/bin/dig/dig.html projects/cambria/contrib/bind9/bin/dig/dighost.c projects/cambria/contrib/bind9/bin/dig/host.1 projects/cambria/contrib/bind9/bin/dig/host.docbook projects/cambria/contrib/bind9/bin/dig/host.html projects/cambria/contrib/bind9/bin/dnssec/dnssec-keygen.8 projects/cambria/contrib/bind9/bin/dnssec/dnssec-keygen.docbook projects/cambria/contrib/bind9/bin/dnssec/dnssec-keygen.html projects/cambria/contrib/bind9/bin/dnssec/dnssec-signzone.8 projects/cambria/contrib/bind9/bin/dnssec/dnssec-signzone.c projects/cambria/contrib/bind9/bin/dnssec/dnssec-signzone.docbook projects/cambria/contrib/bind9/bin/dnssec/dnssec-signzone.html projects/cambria/contrib/bind9/bin/named/client.c projects/cambria/contrib/bind9/bin/named/config.c projects/cambria/contrib/bind9/bin/named/controlconf.c projects/cambria/contrib/bind9/bin/named/include/named/globals.h projects/cambria/contrib/bind9/bin/named/interfacemgr.c projects/cambria/contrib/bind9/bin/named/lwaddr.c projects/cambria/contrib/bind9/bin/named/lwdgnba.c projects/cambria/contrib/bind9/bin/named/lwdnoop.c projects/cambria/contrib/bind9/bin/named/lwresd.8 projects/cambria/contrib/bind9/bin/named/lwresd.c projects/cambria/contrib/bind9/bin/named/lwresd.docbook projects/cambria/contrib/bind9/bin/named/lwresd.html projects/cambria/contrib/bind9/bin/named/main.c projects/cambria/contrib/bind9/bin/named/named.8 projects/cambria/contrib/bind9/bin/named/named.conf.5 projects/cambria/contrib/bind9/bin/named/named.conf.docbook projects/cambria/contrib/bind9/bin/named/named.conf.html projects/cambria/contrib/bind9/bin/named/named.docbook projects/cambria/contrib/bind9/bin/named/named.html projects/cambria/contrib/bind9/bin/named/query.c projects/cambria/contrib/bind9/bin/named/server.c projects/cambria/contrib/bind9/bin/named/unix/include/named/os.h projects/cambria/contrib/bind9/bin/named/unix/os.c projects/cambria/contrib/bind9/bin/named/update.c projects/cambria/contrib/bind9/bin/nsupdate/Makefile.in projects/cambria/contrib/bind9/bin/nsupdate/nsupdate.c projects/cambria/contrib/bind9/bin/nsupdate/nsupdate.docbook projects/cambria/contrib/bind9/bin/nsupdate/nsupdate.html projects/cambria/contrib/bind9/bin/rndc/rndc-confgen.c projects/cambria/contrib/bind9/bin/rndc/rndc.8 projects/cambria/contrib/bind9/bin/rndc/rndc.c projects/cambria/contrib/bind9/bin/rndc/rndc.docbook projects/cambria/contrib/bind9/bin/rndc/rndc.html projects/cambria/contrib/bind9/configure.in projects/cambria/contrib/bind9/doc/arm/Bv9ARM-book.xml projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch01.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch02.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch03.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch04.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch05.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch06.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch07.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch08.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch09.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.ch10.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.html projects/cambria/contrib/bind9/doc/arm/Bv9ARM.pdf projects/cambria/contrib/bind9/doc/arm/man.dig.html projects/cambria/contrib/bind9/doc/arm/man.dnssec-keygen.html projects/cambria/contrib/bind9/doc/arm/man.dnssec-signzone.html projects/cambria/contrib/bind9/doc/arm/man.host.html projects/cambria/contrib/bind9/doc/arm/man.named-checkconf.html projects/cambria/contrib/bind9/doc/arm/man.named-checkzone.html projects/cambria/contrib/bind9/doc/arm/man.named.html projects/cambria/contrib/bind9/doc/arm/man.rndc-confgen.html projects/cambria/contrib/bind9/doc/arm/man.rndc.conf.html projects/cambria/contrib/bind9/doc/arm/man.rndc.html projects/cambria/contrib/bind9/doc/misc/Makefile.in projects/cambria/contrib/bind9/doc/misc/format-options.pl projects/cambria/contrib/bind9/doc/misc/migration projects/cambria/contrib/bind9/doc/misc/options projects/cambria/contrib/bind9/doc/rfc/index projects/cambria/contrib/bind9/lib/bind/api projects/cambria/contrib/bind9/lib/bind/bsd/Makefile.in projects/cambria/contrib/bind9/lib/bind/bsd/strerror.c projects/cambria/contrib/bind9/lib/bind/bsd/strtoul.c projects/cambria/contrib/bind9/lib/bind/configure.in projects/cambria/contrib/bind9/lib/bind/dst/Makefile.in projects/cambria/contrib/bind9/lib/bind/dst/dst_api.c projects/cambria/contrib/bind9/lib/bind/dst/hmac_link.c projects/cambria/contrib/bind9/lib/bind/dst/support.c projects/cambria/contrib/bind9/lib/bind/include/Makefile.in projects/cambria/contrib/bind9/lib/bind/include/arpa/nameser.h projects/cambria/contrib/bind9/lib/bind/include/isc/assertions.h projects/cambria/contrib/bind9/lib/bind/include/isc/eventlib.h projects/cambria/contrib/bind9/lib/bind/include/isc/misc.h projects/cambria/contrib/bind9/lib/bind/include/netdb.h projects/cambria/contrib/bind9/lib/bind/include/resolv.h projects/cambria/contrib/bind9/lib/bind/inet/Makefile.in projects/cambria/contrib/bind9/lib/bind/inet/inet_net_pton.c projects/cambria/contrib/bind9/lib/bind/inet/inet_network.c projects/cambria/contrib/bind9/lib/bind/irs/Makefile.in projects/cambria/contrib/bind9/lib/bind/irs/dns_ho.c projects/cambria/contrib/bind9/lib/bind/irs/getnetgrent.c projects/cambria/contrib/bind9/lib/bind/irs/getnetgrent_r.c projects/cambria/contrib/bind9/lib/bind/irs/irp.c projects/cambria/contrib/bind9/lib/bind/isc/Makefile.in projects/cambria/contrib/bind9/lib/bind/isc/assertions.c projects/cambria/contrib/bind9/lib/bind/isc/bitncmp.c projects/cambria/contrib/bind9/lib/bind/isc/ctl_clnt.c projects/cambria/contrib/bind9/lib/bind/isc/ctl_srvr.c projects/cambria/contrib/bind9/lib/bind/isc/logging.c projects/cambria/contrib/bind9/lib/bind/nameser/Makefile.in projects/cambria/contrib/bind9/lib/bind/port_after.h.in projects/cambria/contrib/bind9/lib/bind/port_before.h.in projects/cambria/contrib/bind9/lib/bind/resolv/Makefile.in projects/cambria/contrib/bind9/lib/bind/resolv/res_debug.c projects/cambria/contrib/bind9/lib/bind/resolv/res_mkquery.c projects/cambria/contrib/bind9/lib/bind/resolv/res_query.c projects/cambria/contrib/bind9/lib/bind/resolv/res_send.c projects/cambria/contrib/bind9/lib/bind9/api projects/cambria/contrib/bind9/lib/bind9/check.c projects/cambria/contrib/bind9/lib/dns/acache.c projects/cambria/contrib/bind9/lib/dns/adb.c projects/cambria/contrib/bind9/lib/dns/api projects/cambria/contrib/bind9/lib/dns/cache.c projects/cambria/contrib/bind9/lib/dns/dispatch.c projects/cambria/contrib/bind9/lib/dns/dst_parse.c projects/cambria/contrib/bind9/lib/dns/dst_parse.h projects/cambria/contrib/bind9/lib/dns/include/dns/dispatch.h projects/cambria/contrib/bind9/lib/dns/journal.c projects/cambria/contrib/bind9/lib/dns/master.c projects/cambria/contrib/bind9/lib/dns/masterdump.c projects/cambria/contrib/bind9/lib/dns/message.c projects/cambria/contrib/bind9/lib/dns/openssldsa_link.c projects/cambria/contrib/bind9/lib/dns/opensslrsa_link.c projects/cambria/contrib/bind9/lib/dns/rbt.c projects/cambria/contrib/bind9/lib/dns/rbtdb.c projects/cambria/contrib/bind9/lib/dns/rdata/generic/nsec_47.c projects/cambria/contrib/bind9/lib/dns/rdata/generic/nsec_47.h projects/cambria/contrib/bind9/lib/dns/rdata/generic/txt_16.c projects/cambria/contrib/bind9/lib/dns/rdata/in_1/apl_42.c projects/cambria/contrib/bind9/lib/dns/rdata/in_1/naptr_35.c projects/cambria/contrib/bind9/lib/dns/request.c projects/cambria/contrib/bind9/lib/dns/resolver.c projects/cambria/contrib/bind9/lib/dns/rootns.c projects/cambria/contrib/bind9/lib/dns/sdb.c projects/cambria/contrib/bind9/lib/dns/tkey.c projects/cambria/contrib/bind9/lib/dns/tsig.c projects/cambria/contrib/bind9/lib/dns/validator.c projects/cambria/contrib/bind9/lib/dns/view.c projects/cambria/contrib/bind9/lib/dns/xfrin.c projects/cambria/contrib/bind9/lib/dns/zone.c projects/cambria/contrib/bind9/lib/isc/Makefile.in projects/cambria/contrib/bind9/lib/isc/api projects/cambria/contrib/bind9/lib/isc/assertions.c projects/cambria/contrib/bind9/lib/isc/include/isc/assertions.h projects/cambria/contrib/bind9/lib/isc/include/isc/lex.h projects/cambria/contrib/bind9/lib/isc/include/isc/mem.h projects/cambria/contrib/bind9/lib/isc/include/isc/msgs.h projects/cambria/contrib/bind9/lib/isc/include/isc/platform.h.in projects/cambria/contrib/bind9/lib/isc/include/isc/resource.h projects/cambria/contrib/bind9/lib/isc/include/isc/socket.h projects/cambria/contrib/bind9/lib/isc/include/isc/timer.h projects/cambria/contrib/bind9/lib/isc/include/isc/types.h projects/cambria/contrib/bind9/lib/isc/mem.c projects/cambria/contrib/bind9/lib/isc/print.c projects/cambria/contrib/bind9/lib/isc/pthreads/mutex.c projects/cambria/contrib/bind9/lib/isc/timer.c projects/cambria/contrib/bind9/lib/isc/unix/app.c projects/cambria/contrib/bind9/lib/isc/unix/include/isc/net.h projects/cambria/contrib/bind9/lib/isc/unix/net.c projects/cambria/contrib/bind9/lib/isc/unix/resource.c projects/cambria/contrib/bind9/lib/isc/unix/socket.c projects/cambria/contrib/bind9/lib/isc/unix/socket_p.h projects/cambria/contrib/bind9/lib/isc/unix/time.c projects/cambria/contrib/bind9/lib/isccfg/api projects/cambria/contrib/bind9/lib/isccfg/namedconf.c projects/cambria/contrib/bind9/lib/lwres/api projects/cambria/contrib/bind9/make/rules.in projects/cambria/contrib/bind9/version projects/cambria/contrib/csup/ (props changed) projects/cambria/contrib/csup/GNUmakefile projects/cambria/contrib/csup/Makefile projects/cambria/contrib/csup/TODO projects/cambria/contrib/csup/config.c projects/cambria/contrib/csup/csup.1 projects/cambria/contrib/csup/detailer.c projects/cambria/contrib/csup/diff.c projects/cambria/contrib/csup/diff.h projects/cambria/contrib/csup/fattr.c projects/cambria/contrib/csup/fattr.h projects/cambria/contrib/csup/keyword.c projects/cambria/contrib/csup/keyword.h projects/cambria/contrib/csup/lister.c projects/cambria/contrib/csup/misc.c projects/cambria/contrib/csup/misc.h projects/cambria/contrib/csup/mux.c projects/cambria/contrib/csup/proto.c projects/cambria/contrib/csup/proto.h projects/cambria/contrib/csup/status.c projects/cambria/contrib/csup/stream.c projects/cambria/contrib/csup/stream.h projects/cambria/contrib/csup/updater.c projects/cambria/contrib/file/ (props changed) projects/cambria/contrib/file/ChangeLog projects/cambria/contrib/file/MAINT projects/cambria/contrib/file/Magdir/adventure projects/cambria/contrib/file/Magdir/animation projects/cambria/contrib/file/Magdir/apple projects/cambria/contrib/file/Magdir/archive projects/cambria/contrib/file/Magdir/audio projects/cambria/contrib/file/Magdir/c-lang projects/cambria/contrib/file/Magdir/c64 projects/cambria/contrib/file/Magdir/cafebabe projects/cambria/contrib/file/Magdir/cddb projects/cambria/contrib/file/Magdir/commands projects/cambria/contrib/file/Magdir/compress projects/cambria/contrib/file/Magdir/console projects/cambria/contrib/file/Magdir/cracklib projects/cambria/contrib/file/Magdir/ctags projects/cambria/contrib/file/Magdir/database projects/cambria/contrib/file/Magdir/diff projects/cambria/contrib/file/Magdir/dump projects/cambria/contrib/file/Magdir/elf projects/cambria/contrib/file/Magdir/filesystems projects/cambria/contrib/file/Magdir/flash projects/cambria/contrib/file/Magdir/fonts projects/cambria/contrib/file/Magdir/fortran projects/cambria/contrib/file/Magdir/frame projects/cambria/contrib/file/Magdir/freebsd projects/cambria/contrib/file/Magdir/fsav projects/cambria/contrib/file/Magdir/games projects/cambria/contrib/file/Magdir/gimp projects/cambria/contrib/file/Magdir/gnu projects/cambria/contrib/file/Magdir/hp projects/cambria/contrib/file/Magdir/iff projects/cambria/contrib/file/Magdir/images projects/cambria/contrib/file/Magdir/java projects/cambria/contrib/file/Magdir/jpeg projects/cambria/contrib/file/Magdir/lex projects/cambria/contrib/file/Magdir/linux projects/cambria/contrib/file/Magdir/lisp projects/cambria/contrib/file/Magdir/macintosh projects/cambria/contrib/file/Magdir/mail.news projects/cambria/contrib/file/Magdir/mathematica projects/cambria/contrib/file/Magdir/misctools projects/cambria/contrib/file/Magdir/msdos projects/cambria/contrib/file/Magdir/mup projects/cambria/contrib/file/Magdir/os2 projects/cambria/contrib/file/Magdir/palm projects/cambria/contrib/file/Magdir/pdf projects/cambria/contrib/file/Magdir/perl projects/cambria/contrib/file/Magdir/pgp projects/cambria/contrib/file/Magdir/pkgadd projects/cambria/contrib/file/Magdir/printer projects/cambria/contrib/file/Magdir/psion projects/cambria/contrib/file/Magdir/revision projects/cambria/contrib/file/Magdir/riff projects/cambria/contrib/file/Magdir/rpm projects/cambria/contrib/file/Magdir/rtf projects/cambria/contrib/file/Magdir/sc projects/cambria/contrib/file/Magdir/scientific projects/cambria/contrib/file/Magdir/sgi projects/cambria/contrib/file/Magdir/sgml projects/cambria/contrib/file/Magdir/sharc projects/cambria/contrib/file/Magdir/sketch projects/cambria/contrib/file/Magdir/softquad projects/cambria/contrib/file/Magdir/spectrum projects/cambria/contrib/file/Magdir/tex projects/cambria/contrib/file/Magdir/troff projects/cambria/contrib/file/Magdir/unicode projects/cambria/contrib/file/Magdir/uuencode projects/cambria/contrib/file/Magdir/varied.script projects/cambria/contrib/file/Magdir/vorbis projects/cambria/contrib/file/Magdir/wordprocessors projects/cambria/contrib/file/Makefile.am projects/cambria/contrib/file/Makefile.in projects/cambria/contrib/file/README projects/cambria/contrib/file/acinclude.m4 projects/cambria/contrib/file/aclocal.m4 projects/cambria/contrib/file/apprentice.c projects/cambria/contrib/file/ascmagic.c projects/cambria/contrib/file/compress.c projects/cambria/contrib/file/config.h.in projects/cambria/contrib/file/configure projects/cambria/contrib/file/file.c projects/cambria/contrib/file/file.h projects/cambria/contrib/file/file.man projects/cambria/contrib/file/fsmagic.c projects/cambria/contrib/file/funcs.c projects/cambria/contrib/file/is_tar.c projects/cambria/contrib/file/libmagic.man projects/cambria/contrib/file/magic.c projects/cambria/contrib/file/magic.h projects/cambria/contrib/file/magic.man projects/cambria/contrib/file/names.h projects/cambria/contrib/file/patchlevel.h projects/cambria/contrib/file/print.c projects/cambria/contrib/file/readelf.c projects/cambria/contrib/file/readelf.h projects/cambria/contrib/file/softmagic.c projects/cambria/contrib/file/tar.h projects/cambria/contrib/gdtoa/ (props changed) projects/cambria/contrib/gdtoa/README projects/cambria/contrib/gdtoa/g_Qfmt.c projects/cambria/contrib/gdtoa/g__fmt.c projects/cambria/contrib/gdtoa/g_ddfmt.c projects/cambria/contrib/gdtoa/g_dfmt.c projects/cambria/contrib/gdtoa/g_ffmt.c projects/cambria/contrib/gdtoa/g_xLfmt.c projects/cambria/contrib/gdtoa/g_xfmt.c projects/cambria/contrib/gdtoa/gdtoa.c projects/cambria/contrib/gdtoa/gdtoa.h projects/cambria/contrib/gdtoa/gdtoaimp.h projects/cambria/contrib/gdtoa/gethex.c projects/cambria/contrib/gdtoa/makefile projects/cambria/contrib/gdtoa/smisc.c projects/cambria/contrib/gdtoa/strtod.c projects/cambria/contrib/gdtoa/strtodg.c projects/cambria/contrib/gdtoa/strtof.c projects/cambria/contrib/gdtoa/strtopQ.c projects/cambria/contrib/gdtoa/strtopd.c projects/cambria/contrib/gdtoa/strtopdd.c projects/cambria/contrib/gdtoa/strtopf.c projects/cambria/contrib/gdtoa/strtopx.c projects/cambria/contrib/gdtoa/strtopxL.c projects/cambria/contrib/gdtoa/test/README projects/cambria/contrib/gdtoa/test/getround.c projects/cambria/contrib/gdtoa/test/makefile projects/cambria/contrib/gdtoa/test/xsum0.out projects/cambria/contrib/gdtoa/xsum0.out projects/cambria/contrib/lukemftpd/src/extern.h projects/cambria/contrib/lukemftpd/src/ftpcmd.y projects/cambria/contrib/lukemftpd/src/ftpd.c projects/cambria/contrib/ntp/ntpd/ntp_crypto.c projects/cambria/contrib/openbsm/ (props changed) projects/cambria/contrib/openbsm/INSTALL projects/cambria/contrib/openbsm/Makefile.am projects/cambria/contrib/openbsm/Makefile.in projects/cambria/contrib/openbsm/NEWS projects/cambria/contrib/openbsm/README projects/cambria/contrib/openbsm/TODO projects/cambria/contrib/openbsm/VERSION projects/cambria/contrib/openbsm/bin/Makefile.in projects/cambria/contrib/openbsm/bin/audit/Makefile.am projects/cambria/contrib/openbsm/bin/audit/Makefile.in projects/cambria/contrib/openbsm/bin/audit/audit.8 projects/cambria/contrib/openbsm/bin/audit/audit.c projects/cambria/contrib/openbsm/bin/auditd/Makefile.am projects/cambria/contrib/openbsm/bin/auditd/Makefile.in projects/cambria/contrib/openbsm/bin/auditd/audit_warn.c projects/cambria/contrib/openbsm/bin/auditd/auditd.8 projects/cambria/contrib/openbsm/bin/auditd/auditd.c projects/cambria/contrib/openbsm/bin/auditd/auditd.h projects/cambria/contrib/openbsm/bin/auditfilterd/Makefile.in projects/cambria/contrib/openbsm/bin/auditreduce/Makefile.in projects/cambria/contrib/openbsm/bin/auditreduce/auditreduce.c projects/cambria/contrib/openbsm/bin/praudit/Makefile.in projects/cambria/contrib/openbsm/bsm/Makefile.am projects/cambria/contrib/openbsm/bsm/Makefile.in projects/cambria/contrib/openbsm/bsm/audit_uevents.h projects/cambria/contrib/openbsm/bsm/libbsm.h projects/cambria/contrib/openbsm/compat/endian.h projects/cambria/contrib/openbsm/config/config.h projects/cambria/contrib/openbsm/config/config.h.in projects/cambria/contrib/openbsm/configure projects/cambria/contrib/openbsm/configure.ac projects/cambria/contrib/openbsm/etc/audit_event projects/cambria/contrib/openbsm/libbsm/Makefile.am projects/cambria/contrib/openbsm/libbsm/Makefile.in projects/cambria/contrib/openbsm/libbsm/au_token.3 projects/cambria/contrib/openbsm/libbsm/audit_submit.3 projects/cambria/contrib/openbsm/libbsm/bsm_audit.c projects/cambria/contrib/openbsm/libbsm/bsm_class.c projects/cambria/contrib/openbsm/libbsm/bsm_control.c projects/cambria/contrib/openbsm/libbsm/bsm_event.c projects/cambria/contrib/openbsm/libbsm/bsm_io.c projects/cambria/contrib/openbsm/libbsm/bsm_mask.c projects/cambria/contrib/openbsm/libbsm/bsm_token.c projects/cambria/contrib/openbsm/libbsm/bsm_user.c projects/cambria/contrib/openbsm/libbsm/bsm_wrappers.c projects/cambria/contrib/openbsm/libbsm/libbsm.3 projects/cambria/contrib/openbsm/man/Makefile.in projects/cambria/contrib/openbsm/man/audit.log.5 projects/cambria/contrib/openbsm/man/audit_user.5 projects/cambria/contrib/openbsm/modules/Makefile.in projects/cambria/contrib/openbsm/modules/auditfilter_noop/Makefile.in projects/cambria/contrib/openbsm/sys/Makefile.in projects/cambria/contrib/openbsm/sys/bsm/Makefile.am projects/cambria/contrib/openbsm/sys/bsm/Makefile.in projects/cambria/contrib/openbsm/sys/bsm/audit.h projects/cambria/contrib/openbsm/sys/bsm/audit_internal.h projects/cambria/contrib/openbsm/sys/bsm/audit_kevents.h projects/cambria/contrib/openbsm/sys/bsm/audit_record.h projects/cambria/contrib/openbsm/test/Makefile.in projects/cambria/contrib/openbsm/test/bsm/Makefile.in projects/cambria/contrib/openbsm/test/bsm/generate.c projects/cambria/contrib/openbsm/test/reference/arg32_record projects/cambria/contrib/openbsm/test/reference/data_record projects/cambria/contrib/openbsm/test/reference/data_token projects/cambria/contrib/openbsm/test/reference/file_record projects/cambria/contrib/openbsm/test/reference/header32_token projects/cambria/contrib/openbsm/test/reference/in_addr_record projects/cambria/contrib/openbsm/test/reference/ip_record projects/cambria/contrib/openbsm/test/reference/ipc_record projects/cambria/contrib/openbsm/test/reference/iport_record projects/cambria/contrib/openbsm/test/reference/opaque_record projects/cambria/contrib/openbsm/test/reference/path_record projects/cambria/contrib/openbsm/test/reference/process32_record projects/cambria/contrib/openbsm/test/reference/process32ex_record-IPv4 projects/cambria/contrib/openbsm/test/reference/process32ex_record-IPv6 projects/cambria/contrib/openbsm/test/reference/process64_record projects/cambria/contrib/openbsm/test/reference/process64ex_record-IPv4 projects/cambria/contrib/openbsm/test/reference/process64ex_record-IPv6 projects/cambria/contrib/openbsm/test/reference/return32_record projects/cambria/contrib/openbsm/test/reference/return32_token projects/cambria/contrib/openbsm/test/reference/seq_record projects/cambria/contrib/openbsm/test/reference/subject32_record projects/cambria/contrib/openbsm/test/reference/subject32ex_record projects/cambria/contrib/openbsm/test/reference/text_record projects/cambria/contrib/openbsm/test/reference/zonename_record projects/cambria/contrib/openbsm/tools/Makefile.in projects/cambria/contrib/opie/opiekey.1 projects/cambria/contrib/smbfs/mount_smbfs/mount_smbfs.8 projects/cambria/contrib/smbfs/mount_smbfs/mount_smbfs.c projects/cambria/contrib/wpa_supplicant/ (props changed) projects/cambria/contrib/wpa_supplicant/ChangeLog projects/cambria/contrib/wpa_supplicant/Makefile projects/cambria/contrib/wpa_supplicant/base64.c projects/cambria/contrib/wpa_supplicant/ctrl_iface.c projects/cambria/contrib/wpa_supplicant/ctrl_iface_dbus.c projects/cambria/contrib/wpa_supplicant/ctrl_iface_unix.c projects/cambria/contrib/wpa_supplicant/dbus_dict_helpers.c projects/cambria/contrib/wpa_supplicant/doc/docbook/wpa_background.8 projects/cambria/contrib/wpa_supplicant/doc/docbook/wpa_cli.8 projects/cambria/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml projects/cambria/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8 projects/cambria/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8 projects/cambria/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5 projects/cambria/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml projects/cambria/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml projects/cambria/contrib/wpa_supplicant/driver_ndis.c projects/cambria/contrib/wpa_supplicant/eap.c projects/cambria/contrib/wpa_supplicant/eap_aka.c projects/cambria/contrib/wpa_supplicant/eap_gpsk.c projects/cambria/contrib/wpa_supplicant/eap_gpsk_common.c projects/cambria/contrib/wpa_supplicant/eap_ttls.c projects/cambria/contrib/wpa_supplicant/eloop.c projects/cambria/contrib/wpa_supplicant/eloop.h projects/cambria/contrib/wpa_supplicant/eloop_none.c projects/cambria/contrib/wpa_supplicant/mlme.c projects/cambria/contrib/wpa_supplicant/os_unix.c projects/cambria/contrib/wpa_supplicant/preauth_test.c projects/cambria/contrib/wpa_supplicant/radius.c projects/cambria/contrib/wpa_supplicant/sha1.c projects/cambria/contrib/wpa_supplicant/tls_openssl.c projects/cambria/contrib/wpa_supplicant/version.h projects/cambria/contrib/wpa_supplicant/wpa.c projects/cambria/contrib/wpa_supplicant/wpa.h projects/cambria/contrib/wpa_supplicant/wpa_cli.c projects/cambria/contrib/wpa_supplicant/wpa_gui-qt4/networkconfig.cpp projects/cambria/contrib/wpa_supplicant/wpa_gui-qt4/scanresults.cpp projects/cambria/contrib/wpa_supplicant/wpa_gui-qt4/wpagui.cpp projects/cambria/contrib/wpa_supplicant/wpa_gui/networkconfig.ui.h projects/cambria/contrib/wpa_supplicant/wpa_gui/userdatarequest.ui.h projects/cambria/contrib/wpa_supplicant/wpa_gui/wpagui.ui.h projects/cambria/contrib/wpa_supplicant/wpa_i.h projects/cambria/contrib/wpa_supplicant/wpa_supplicant.c projects/cambria/crypto/openssl/apps/speed.c projects/cambria/crypto/openssl/apps/spkac.c projects/cambria/crypto/openssl/apps/verify.c projects/cambria/crypto/openssl/apps/x509.c projects/cambria/crypto/openssl/ssl/s2_clnt.c projects/cambria/crypto/openssl/ssl/s2_srvr.c projects/cambria/crypto/openssl/ssl/s3_clnt.c projects/cambria/crypto/openssl/ssl/s3_srvr.c projects/cambria/crypto/openssl/ssl/ssltest.c projects/cambria/etc/defaults/rc.conf projects/cambria/etc/devd.conf projects/cambria/etc/periodic/weekly/Makefile projects/cambria/etc/rc.d/defaultroute projects/cambria/etc/rc.d/jail projects/cambria/etc/rc.shutdown projects/cambria/etc/regdomain.xml projects/cambria/games/fortune/datfiles/freebsd-tips projects/cambria/gnu/lib/libstdc++/Makefile projects/cambria/gnu/usr.bin/grep/savedir.c projects/cambria/gnu/usr.bin/man/manpath/manpath.config projects/cambria/include/paths.h projects/cambria/lib/Makefile projects/cambria/lib/bind/bind/config.h projects/cambria/lib/bind/bind/port_after.h projects/cambria/lib/bind/bind/port_before.h projects/cambria/lib/bind/config.h projects/cambria/lib/bind/isc/Makefile projects/cambria/lib/bind/isc/isc/platform.h projects/cambria/lib/libarchive/archive_read_support_compression_gzip.c projects/cambria/lib/libarchive/archive_read_support_format_iso9660.c projects/cambria/lib/libarchive/archive_write_disk.c projects/cambria/lib/libarchive/test/Makefile projects/cambria/lib/libarchive/test/test_write_disk_secure.c projects/cambria/lib/libbsm/Makefile projects/cambria/lib/libc/arm/_fpmath.h projects/cambria/lib/libc/arm/arith.h projects/cambria/lib/libc/db/man/dbm.3 projects/cambria/lib/libc/gen/sysctl.3 projects/cambria/lib/libc/include/fpmath.h projects/cambria/lib/libc/locale/mbstowcs.c projects/cambria/lib/libc/locale/wcsftime.c projects/cambria/lib/libc/locale/wcstombs.c projects/cambria/lib/libc/net/getaddrinfo.3 projects/cambria/lib/libc/stdio/ferror.3 projects/cambria/lib/libc/stdio/fputws.c projects/cambria/lib/libc/stdio/printf.3 projects/cambria/lib/libc/stdio/vfprintf.c projects/cambria/lib/libc/stdio/vfscanf.c projects/cambria/lib/libc/stdio/vfwprintf.c projects/cambria/lib/libc/stdio/vfwscanf.c projects/cambria/lib/libc/stdio/vswscanf.c projects/cambria/lib/libc/stdio/wsetup.c projects/cambria/lib/libc/string/Makefile.inc projects/cambria/lib/libc/string/ffs.3 projects/cambria/lib/libc/string/strlcat.c projects/cambria/lib/libc/string/strlcpy.3 projects/cambria/lib/libc/string/strlen.c projects/cambria/lib/libc/sys/jail.2 projects/cambria/lib/libc/sys/kldunload.2 projects/cambria/lib/libc/sys/socket.2 projects/cambria/lib/libc/sys/timer_create.2 projects/cambria/lib/libmagic/Makefile projects/cambria/lib/libmd/mdX.3 projects/cambria/lib/libpmc/libpmc.c projects/cambria/lib/libstand/bootp.c projects/cambria/lib/libusb20/libusb20.c projects/cambria/lib/libusb20/libusb20_desc.c projects/cambria/lib/libutil/kinfo_getfile.c projects/cambria/lib/libutil/kinfo_getvmmap.c projects/cambria/lib/msun/src/e_rem_pio2.c projects/cambria/lib/msun/src/e_rem_pio2f.c projects/cambria/lib/msun/src/k_cosf.c projects/cambria/lib/msun/src/k_sinf.c projects/cambria/lib/msun/src/k_tanf.c projects/cambria/lib/msun/src/math.h projects/cambria/lib/msun/src/math_private.h projects/cambria/libexec/comsat/comsat.c projects/cambria/libexec/ftpd/ftpd.8 projects/cambria/release/doc/en_US.ISO8859-1/relnotes/article.sgml projects/cambria/sbin/ddb/ddb.8 projects/cambria/sbin/dumpfs/dumpfs.8 projects/cambria/sbin/dumpfs/dumpfs.c projects/cambria/sbin/fdisk/fdisk.c projects/cambria/sbin/fsck_ffs/fsck.h projects/cambria/sbin/fsck_ffs/fsck_ffs.8 projects/cambria/sbin/fsck_ffs/fsutil.c projects/cambria/sbin/fsck_ffs/main.c projects/cambria/sbin/geom/class/virstor/gvirstor.8 projects/cambria/sbin/geom/misc/subr.c projects/cambria/sbin/ifconfig/ifconfig.8 projects/cambria/sbin/ifconfig/ifconfig.c projects/cambria/sbin/ifconfig/ifieee80211.c projects/cambria/sbin/ipfw/Makefile projects/cambria/sbin/ipfw/ipfw2.c projects/cambria/sbin/md5/md5.1 projects/cambria/sbin/mdconfig/mdconfig.8 projects/cambria/sbin/mdconfig/mdconfig.c projects/cambria/sbin/mount/getmntopts.c projects/cambria/sbin/mount/mount.c projects/cambria/sbin/mount_msdosfs/mount_msdosfs.8 projects/cambria/sbin/mount_nfs/mount_nfs.c projects/cambria/sbin/mount_ntfs/mount_ntfs.8 projects/cambria/sbin/ping/ping.8 projects/cambria/sbin/recoverdisk/recoverdisk.c projects/cambria/sbin/restore/interactive.c projects/cambria/sbin/route/route.c projects/cambria/sbin/savecore/savecore.8 projects/cambria/share/doc/bind9/Makefile projects/cambria/share/examples/cvsup/refuse.README projects/cambria/share/man/man4/Makefile projects/cambria/share/man/man4/ae.4 projects/cambria/share/man/man4/ath.4 projects/cambria/share/man/man4/bce.4 projects/cambria/share/man/man4/bge.4 projects/cambria/share/man/man4/cd.4 projects/cambria/share/man/man4/cpuctl.4 projects/cambria/share/man/man4/gem.4 projects/cambria/share/man/man4/hme.4 projects/cambria/share/man/man4/iic.4 projects/cambria/share/man/man4/man4.powerpc/Makefile projects/cambria/share/man/man4/ndis.4 projects/cambria/share/man/man4/ng_tty.4 projects/cambria/share/man/man4/nge.4 projects/cambria/share/man/man4/sdhci.4 projects/cambria/share/man/man4/sk.4 projects/cambria/share/man/man4/snd_hda.4 projects/cambria/share/man/man4/snd_ich.4 projects/cambria/share/man/man4/sysmouse.4 projects/cambria/share/man/man4/textdump.4 projects/cambria/share/man/man5/Makefile projects/cambria/share/man/man5/rc.conf.5 projects/cambria/share/man/man7/Makefile projects/cambria/share/man/man7/build.7 projects/cambria/share/man/man7/ports.7 projects/cambria/share/man/man7/tuning.7 projects/cambria/share/man/man8/Makefile projects/cambria/share/man/man9/dev_clone.9 projects/cambria/share/man/man9/domain.9 projects/cambria/share/man/man9/insmntque.9 projects/cambria/share/man/man9/kthread.9 projects/cambria/share/man/man9/redzone.9 projects/cambria/share/misc/bsd-family-tree projects/cambria/share/misc/pci_vendors projects/cambria/share/mk/bsd.libnames.mk projects/cambria/share/mk/bsd.own.mk projects/cambria/share/zoneinfo/ (props changed) projects/cambria/share/zoneinfo/asia projects/cambria/share/zoneinfo/backward projects/cambria/share/zoneinfo/europe projects/cambria/share/zoneinfo/leapseconds projects/cambria/share/zoneinfo/northamerica projects/cambria/share/zoneinfo/zone.tab projects/cambria/sys/ (props changed) projects/cambria/sys/amd64/amd64/amd64_mem.c projects/cambria/sys/amd64/amd64/cpu_switch.S projects/cambria/sys/amd64/amd64/exception.S projects/cambria/sys/amd64/amd64/fpu.c projects/cambria/sys/amd64/amd64/identcpu.c projects/cambria/sys/amd64/amd64/initcpu.c projects/cambria/sys/amd64/amd64/io_apic.c projects/cambria/sys/amd64/amd64/local_apic.c projects/cambria/sys/amd64/amd64/mp_machdep.c projects/cambria/sys/amd64/amd64/msi.c projects/cambria/sys/amd64/conf/GENERIC projects/cambria/sys/amd64/include/apicvar.h projects/cambria/sys/amd64/include/cputypes.h projects/cambria/sys/amd64/include/fpu.h projects/cambria/sys/amd64/include/intr_machdep.h projects/cambria/sys/amd64/include/md_var.h projects/cambria/sys/amd64/include/specialreg.h projects/cambria/sys/arm/arm/busdma_machdep.c projects/cambria/sys/arm/arm/cpufunc.c projects/cambria/sys/arm/arm/elf_trampoline.c projects/cambria/sys/arm/at91/at91.c projects/cambria/sys/arm/at91/at91_mci.c projects/cambria/sys/arm/at91/at91_twi.c projects/cambria/sys/arm/at91/at91_twireg.h projects/cambria/sys/arm/at91/at91var.h projects/cambria/sys/arm/at91/uart_bus_at91usart.c projects/cambria/sys/arm/at91/uart_cpu_at91rm9200usart.c projects/cambria/sys/arm/at91/uart_dev_at91usart.c projects/cambria/sys/arm/conf/AVILA projects/cambria/sys/arm/conf/CAMBRIA projects/cambria/sys/arm/conf/EP80219 projects/cambria/sys/arm/conf/HL200 projects/cambria/sys/arm/conf/IQ31244 projects/cambria/sys/arm/conf/NSLU projects/cambria/sys/arm/include/cpufunc.h projects/cambria/sys/arm/include/ieee.h projects/cambria/sys/arm/include/vmparam.h projects/cambria/sys/arm/mv/common.c projects/cambria/sys/arm/mv/discovery/db78xxx.c projects/cambria/sys/arm/mv/discovery/discovery.c projects/cambria/sys/arm/mv/files.mv projects/cambria/sys/arm/mv/gpio.c projects/cambria/sys/arm/mv/kirkwood/db88f6xxx.c projects/cambria/sys/arm/mv/kirkwood/kirkwood.c projects/cambria/sys/arm/mv/mv_machdep.c projects/cambria/sys/arm/mv/mv_pci.c projects/cambria/sys/arm/mv/mvreg.h projects/cambria/sys/arm/mv/mvvar.h projects/cambria/sys/arm/mv/obio.c projects/cambria/sys/arm/mv/orion/db88f5xxx.c projects/cambria/sys/arm/mv/orion/orion.c projects/cambria/sys/arm/xscale/i8134x/i81342_mcu.c projects/cambria/sys/boot/forth/loader.4th projects/cambria/sys/boot/forth/loader.conf projects/cambria/sys/boot/forth/pnp.4th projects/cambria/sys/boot/forth/support.4th projects/cambria/sys/boot/i386/boot0/Makefile projects/cambria/sys/boot/i386/boot0/boot0.S projects/cambria/sys/boot/i386/libi386/bootinfo64.c projects/cambria/sys/boot/i386/pxeldr/pxeboot.8 projects/cambria/sys/bsm/audit.h projects/cambria/sys/bsm/audit_internal.h projects/cambria/sys/bsm/audit_kevents.h projects/cambria/sys/bsm/audit_record.h projects/cambria/sys/cam/cam_periph.c projects/cambria/sys/cam/cam_xpt.c projects/cambria/sys/cam/cam_xpt_sim.h projects/cambria/sys/cam/scsi/scsi_all.c projects/cambria/sys/cam/scsi/scsi_cd.c projects/cambria/sys/cam/scsi/scsi_ch.c projects/cambria/sys/cam/scsi/scsi_da.c projects/cambria/sys/cam/scsi/scsi_low.c projects/cambria/sys/cam/scsi/scsi_pass.c projects/cambria/sys/cam/scsi/scsi_pt.c projects/cambria/sys/cam/scsi/scsi_sa.c projects/cambria/sys/cam/scsi/scsi_ses.c projects/cambria/sys/cam/scsi/scsi_sg.c projects/cambria/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c projects/cambria/sys/compat/freebsd32/freebsd32_misc.c projects/cambria/sys/compat/linprocfs/linprocfs.c projects/cambria/sys/compat/linux/linux_misc.c projects/cambria/sys/compat/linux/linux_stats.c projects/cambria/sys/compat/ndis/kern_ndis.c projects/cambria/sys/compat/ndis/kern_windrv.c projects/cambria/sys/compat/ndis/ndis_var.h projects/cambria/sys/compat/ndis/ntoskrnl_var.h projects/cambria/sys/compat/ndis/subr_ndis.c projects/cambria/sys/compat/ndis/subr_ntoskrnl.c projects/cambria/sys/compat/ndis/subr_usbd.c projects/cambria/sys/compat/ndis/usbd_var.h projects/cambria/sys/compat/svr4/svr4_types.h projects/cambria/sys/conf/Makefile.arm projects/cambria/sys/conf/NOTES projects/cambria/sys/conf/files projects/cambria/sys/conf/files.amd64 projects/cambria/sys/conf/files.i386 projects/cambria/sys/conf/files.ia64 projects/cambria/sys/conf/files.pc98 projects/cambria/sys/conf/files.powerpc projects/cambria/sys/conf/files.sparc64 projects/cambria/sys/conf/kern.post.mk projects/cambria/sys/conf/kern.pre.mk projects/cambria/sys/conf/kmod.mk projects/cambria/sys/conf/newvers.sh projects/cambria/sys/conf/options projects/cambria/sys/contrib/altq/altq/altq_subr.c projects/cambria/sys/contrib/pf/ (props changed) projects/cambria/sys/crypto/via/padlock.c projects/cambria/sys/crypto/via/padlock_hash.c projects/cambria/sys/dev/acpi_support/acpi_asus.c projects/cambria/sys/dev/acpica/acpi_battery.c projects/cambria/sys/dev/adb/adb_kbd.c projects/cambria/sys/dev/adb/adb_mouse.c projects/cambria/sys/dev/agp/agp_amd64.c projects/cambria/sys/dev/agp/agp_via.c projects/cambria/sys/dev/ata/ata-queue.c projects/cambria/sys/dev/ata/atapi-cam.c projects/cambria/sys/dev/ath/ath_hal/ah.c projects/cambria/sys/dev/ath/ath_hal/ah.h projects/cambria/sys/dev/ath/ath_hal/ah_internal.h projects/cambria/sys/dev/ath/ath_hal/ah_regdomain.c projects/cambria/sys/dev/ath/ath_hal/ar5210/ar5210.h projects/cambria/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/cambria/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c projects/cambria/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c projects/cambria/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/cambria/sys/dev/ath/ath_hal/ar5211/ar5211.h projects/cambria/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/cambria/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c projects/cambria/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c projects/cambria/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar2316.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar2317.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar2413.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar2425.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5111.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5112.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/cambria/sys/dev/ath/ath_hal/ar5212/ar5413.c projects/cambria/sys/dev/ath/ath_hal/ar5312/ar5312.h projects/cambria/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c projects/cambria/sys/dev/ath/ath_hal/ar5416/ar2133.c projects/cambria/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/cambria/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c projects/cambria/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/cambria/sys/dev/ath/ath_hal/ar5416/ar5416_cal.h projects/cambria/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/cambria/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/cambria/sys/dev/ath/ath_rate/amrr/amrr.c projects/cambria/sys/dev/ath/ath_rate/onoe/onoe.c projects/cambria/sys/dev/ath/ath_rate/sample/sample.c projects/cambria/sys/dev/ath/if_ath.c projects/cambria/sys/dev/ath/if_ath_pci.c projects/cambria/sys/dev/ath/if_athioctl.h projects/cambria/sys/dev/ath/if_athvar.h projects/cambria/sys/dev/bce/if_bce.c projects/cambria/sys/dev/cardbus/cardbus.c projects/cambria/sys/dev/cfe/cfe_console.c projects/cambria/sys/dev/dcons/dcons_crom.c projects/cambria/sys/dev/dcons/dcons_os.c projects/cambria/sys/dev/drm/radeon_irq.c projects/cambria/sys/dev/e1000/if_igb.c projects/cambria/sys/dev/exca/exca.c projects/cambria/sys/dev/fxp/if_fxp.c projects/cambria/sys/dev/hwpmc/hwpmc_core.c projects/cambria/sys/dev/hwpmc/hwpmc_intel.c projects/cambria/sys/dev/hwpmc/pmc_events.h projects/cambria/sys/dev/if_ndis/if_ndis.c projects/cambria/sys/dev/if_ndis/if_ndis_pccard.c projects/cambria/sys/dev/if_ndis/if_ndis_pci.c projects/cambria/sys/dev/if_ndis/if_ndis_usb.c projects/cambria/sys/dev/if_ndis/if_ndisvar.h projects/cambria/sys/dev/iicbus/ad7418.c projects/cambria/sys/dev/iicbus/ds1672.c projects/cambria/sys/dev/iicbus/icee.c projects/cambria/sys/dev/iicbus/if_ic.c projects/cambria/sys/dev/iicbus/iic.c projects/cambria/sys/dev/iicbus/iic.h projects/cambria/sys/dev/iicbus/iicbus.c projects/cambria/sys/dev/iicbus/iicsmb.c projects/cambria/sys/dev/md/md.c projects/cambria/sys/dev/mge/if_mge.c projects/cambria/sys/dev/mge/if_mgevar.h projects/cambria/sys/dev/mmc/mmc.c projects/cambria/sys/dev/mpt/mpt.c projects/cambria/sys/dev/mpt/mpt.h projects/cambria/sys/dev/mpt/mpt_cam.c projects/cambria/sys/dev/mpt/mpt_raid.c projects/cambria/sys/dev/mpt/mpt_user.c projects/cambria/sys/dev/msk/if_msk.c projects/cambria/sys/dev/msk/if_mskreg.h projects/cambria/sys/dev/ofw/ofw_bus_subr.c projects/cambria/sys/dev/ofw/openfirm.c projects/cambria/sys/dev/ofw/openfirm.h projects/cambria/sys/dev/pccard/pccardvar.h projects/cambria/sys/dev/pci/pci.c projects/cambria/sys/dev/pcn/if_pcn.c projects/cambria/sys/dev/ppbus/if_plip.c projects/cambria/sys/dev/ppbus/immio.c projects/cambria/sys/dev/ppbus/lpbb.c projects/cambria/sys/dev/ppbus/lpt.c projects/cambria/sys/dev/ppbus/pcfclock.c projects/cambria/sys/dev/ppbus/ppb_1284.c projects/cambria/sys/dev/ppbus/ppb_base.c projects/cambria/sys/dev/ppbus/ppb_msq.c projects/cambria/sys/dev/ppbus/ppbconf.c projects/cambria/sys/dev/ppbus/ppbconf.h projects/cambria/sys/dev/ppbus/ppi.c projects/cambria/sys/dev/ppbus/pps.c projects/cambria/sys/dev/ppbus/vpo.c projects/cambria/sys/dev/ppbus/vpoio.c projects/cambria/sys/dev/ppc/ppc.c projects/cambria/sys/dev/ppc/ppc_acpi.c projects/cambria/sys/dev/ppc/ppc_isa.c projects/cambria/sys/dev/ppc/ppc_pci.c projects/cambria/sys/dev/ppc/ppc_puc.c projects/cambria/sys/dev/ppc/ppcreg.h projects/cambria/sys/dev/ppc/ppcvar.h projects/cambria/sys/dev/puc/pucdata.c projects/cambria/sys/dev/re/if_re.c projects/cambria/sys/dev/sdhci/sdhci.c projects/cambria/sys/dev/sound/pci/cmi.c projects/cambria/sys/dev/sound/pci/hda/hdac.c projects/cambria/sys/dev/sound/pcm/dsp.c projects/cambria/sys/dev/sound/pcm/mixer.c projects/cambria/sys/dev/sound/pcm/sound.c projects/cambria/sys/dev/sound/pcm/sound.h projects/cambria/sys/dev/speaker/spkr.c projects/cambria/sys/dev/syscons/scterm.c projects/cambria/sys/dev/syscons/syscons.c projects/cambria/sys/dev/syscons/syscons.h projects/cambria/sys/dev/uart/uart_cpu_mv.c projects/cambria/sys/dev/uart/uart_tty.c projects/cambria/sys/dev/usb/ehci.c projects/cambria/sys/dev/usb/ehci_ixp4xx.c (props changed) projects/cambria/sys/dev/usb/ehci_mbus.c projects/cambria/sys/dev/usb/ehci_pci.c projects/cambria/sys/dev/usb/if_zyd.c projects/cambria/sys/dev/usb/u3g.c projects/cambria/sys/dev/usb/uftdi.c projects/cambria/sys/dev/usb/uhci_pci.c projects/cambria/sys/dev/usb/usbdevs projects/cambria/sys/dev/usb/usbdi.c projects/cambria/sys/dev/usb/uscanner.c projects/cambria/sys/dev/usb2/bluetooth/ng_ubt2.c projects/cambria/sys/dev/usb2/bluetooth/ng_ubt2_var.h projects/cambria/sys/dev/usb2/bluetooth/ubtbcmfw2.c projects/cambria/sys/dev/usb2/controller/at91dci.c projects/cambria/sys/dev/usb2/controller/at91dci.h projects/cambria/sys/dev/usb2/controller/at91dci_atmelarm.c projects/cambria/sys/dev/usb2/controller/ehci2.c projects/cambria/sys/dev/usb2/controller/ehci2.h projects/cambria/sys/dev/usb2/controller/ehci2_pci.c projects/cambria/sys/dev/usb2/controller/musb2_otg.c projects/cambria/sys/dev/usb2/controller/musb2_otg.h projects/cambria/sys/dev/usb2/controller/musb2_otg_atmelarm.c projects/cambria/sys/dev/usb2/controller/ohci2.c projects/cambria/sys/dev/usb2/controller/ohci2.h projects/cambria/sys/dev/usb2/controller/ohci2_atmelarm.c projects/cambria/sys/dev/usb2/controller/ohci2_pci.c projects/cambria/sys/dev/usb2/controller/uhci2.c projects/cambria/sys/dev/usb2/controller/uhci2.h projects/cambria/sys/dev/usb2/controller/uhci2_pci.c projects/cambria/sys/dev/usb2/controller/usb2_bus.h projects/cambria/sys/dev/usb2/controller/usb2_controller.c projects/cambria/sys/dev/usb2/controller/usb2_controller.h projects/cambria/sys/dev/usb2/controller/uss820dci.c projects/cambria/sys/dev/usb2/controller/uss820dci.h projects/cambria/sys/dev/usb2/controller/uss820dci_atmelarm.c projects/cambria/sys/dev/usb2/core/usb2_busdma.c projects/cambria/sys/dev/usb2/core/usb2_compat_linux.c projects/cambria/sys/dev/usb2/core/usb2_core.h projects/cambria/sys/dev/usb2/core/usb2_debug.c projects/cambria/sys/dev/usb2/core/usb2_device.c projects/cambria/sys/dev/usb2/core/usb2_device.h projects/cambria/sys/dev/usb2/core/usb2_dynamic.c projects/cambria/sys/dev/usb2/core/usb2_dynamic.h projects/cambria/sys/dev/usb2/core/usb2_generic.c projects/cambria/sys/dev/usb2/core/usb2_handle_request.c projects/cambria/sys/dev/usb2/core/usb2_hub.c projects/cambria/sys/dev/usb2/core/usb2_hub.h projects/cambria/sys/dev/usb2/core/usb2_mbuf.h projects/cambria/sys/dev/usb2/core/usb2_msctest.c projects/cambria/sys/dev/usb2/core/usb2_msctest.h projects/cambria/sys/dev/usb2/core/usb2_parse.c projects/cambria/sys/dev/usb2/core/usb2_request.c projects/cambria/sys/dev/usb2/core/usb2_request.h projects/cambria/sys/dev/usb2/core/usb2_sw_transfer.c projects/cambria/sys/dev/usb2/core/usb2_transfer.c projects/cambria/sys/dev/usb2/core/usb2_transfer.h projects/cambria/sys/dev/usb2/ethernet/if_aue2.c projects/cambria/sys/dev/usb2/ethernet/if_axe2.c projects/cambria/sys/dev/usb2/ethernet/if_cdce2.c projects/cambria/sys/dev/usb2/ethernet/if_cue2.c projects/cambria/sys/dev/usb2/ethernet/if_kue2.c projects/cambria/sys/dev/usb2/ethernet/if_rue2.c projects/cambria/sys/dev/usb2/ethernet/if_udav2.c projects/cambria/sys/dev/usb2/image/uscanner2.c projects/cambria/sys/dev/usb2/include/usb2_defs.h projects/cambria/sys/dev/usb2/include/usb2_devid.h projects/cambria/sys/dev/usb2/include/usb2_devtable.h projects/cambria/sys/dev/usb2/include/usb2_ioctl.h projects/cambria/sys/dev/usb2/include/usb2_standard.h projects/cambria/sys/dev/usb2/input/uhid2.c projects/cambria/sys/dev/usb2/input/ukbd2.c projects/cambria/sys/dev/usb2/input/ums2.c projects/cambria/sys/dev/usb2/misc/ufm2.c projects/cambria/sys/dev/usb2/quirk/usb2_quirk.c projects/cambria/sys/dev/usb2/serial/u3g2.c projects/cambria/sys/dev/usb2/serial/uark2.c projects/cambria/sys/dev/usb2/serial/ubsa2.c projects/cambria/sys/dev/usb2/serial/ubser2.c projects/cambria/sys/dev/usb2/serial/uchcom2.c projects/cambria/sys/dev/usb2/serial/ucycom2.c projects/cambria/sys/dev/usb2/serial/ufoma2.c projects/cambria/sys/dev/usb2/serial/uftdi2.c projects/cambria/sys/dev/usb2/serial/ugensa2.c projects/cambria/sys/dev/usb2/serial/uipaq2.c projects/cambria/sys/dev/usb2/serial/ulpt2.c projects/cambria/sys/dev/usb2/serial/umct2.c projects/cambria/sys/dev/usb2/serial/umodem2.c projects/cambria/sys/dev/usb2/serial/umoscom2.c projects/cambria/sys/dev/usb2/serial/uplcom2.c projects/cambria/sys/dev/usb2/serial/usb2_serial.c projects/cambria/sys/dev/usb2/serial/usb2_serial.h projects/cambria/sys/dev/usb2/serial/uvisor2.c projects/cambria/sys/dev/usb2/serial/uvscom2.c projects/cambria/sys/dev/usb2/sound/uaudio2.c projects/cambria/sys/dev/usb2/storage/ata-usb2.c projects/cambria/sys/dev/usb2/storage/umass2.c projects/cambria/sys/dev/usb2/storage/urio2.c projects/cambria/sys/dev/usb2/storage/ustorage2_fs.c projects/cambria/sys/dev/usb2/wlan/if_rum2.c projects/cambria/sys/dev/usb2/wlan/if_ural2.c projects/cambria/sys/dev/usb2/wlan/if_zyd2.c projects/cambria/sys/dev/xen/blkback/blkback.c projects/cambria/sys/dev/xen/blkfront/blkfront.c projects/cambria/sys/dev/xen/console/console.c projects/cambria/sys/dev/xen/console/xencons_ring.c projects/cambria/sys/dev/xen/evtchn/evtchn_dev.c projects/cambria/sys/dev/xen/netfront/netfront.c projects/cambria/sys/fs/cd9660/cd9660_lookup.c projects/cambria/sys/fs/cd9660/cd9660_node.c projects/cambria/sys/fs/cd9660/cd9660_node.h projects/cambria/sys/fs/cd9660/cd9660_rrip.c projects/cambria/sys/fs/cd9660/cd9660_vfsops.c projects/cambria/sys/fs/cd9660/cd9660_vnops.c projects/cambria/sys/fs/devfs/devfs_devs.c projects/cambria/sys/fs/devfs/devfs_vnops.c projects/cambria/sys/fs/fifofs/fifo_vnops.c projects/cambria/sys/fs/msdosfs/msdosfs_conv.c projects/cambria/sys/fs/msdosfs/msdosfs_denode.c projects/cambria/sys/fs/procfs/procfs_map.c projects/cambria/sys/fs/pseudofs/pseudofs_vncache.c projects/cambria/sys/fs/pseudofs/pseudofs_vnops.c projects/cambria/sys/geom/geom_dev.c projects/cambria/sys/geom/geom_vfs.c projects/cambria/sys/geom/part/g_part.c projects/cambria/sys/geom/part/g_part_bsd.c projects/cambria/sys/geom/part/g_part_pc98.c projects/cambria/sys/geom/part/g_part_vtoc8.c projects/cambria/sys/geom/vinum/geom_vinum_plex.c projects/cambria/sys/gnu/fs/ext2fs/ext2_bitops.h projects/cambria/sys/gnu/fs/ext2fs/ext2_fs.h projects/cambria/sys/gnu/fs/ext2fs/ext2_fs_sb.h projects/cambria/sys/gnu/fs/ext2fs/ext2_inode.c projects/cambria/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c projects/cambria/sys/gnu/fs/ext2fs/ext2_vfsops.c projects/cambria/sys/i386/conf/GENERIC projects/cambria/sys/i386/conf/XEN projects/cambria/sys/i386/cpufreq/est.c projects/cambria/sys/i386/cpufreq/smist.c projects/cambria/sys/i386/i386/genassym.c projects/cambria/sys/i386/i386/i686_mem.c projects/cambria/sys/i386/i386/identcpu.c projects/cambria/sys/i386/i386/initcpu.c projects/cambria/sys/i386/i386/io_apic.c projects/cambria/sys/i386/i386/local_apic.c projects/cambria/sys/i386/i386/machdep.c projects/cambria/sys/i386/i386/mp_machdep.c projects/cambria/sys/i386/i386/msi.c projects/cambria/sys/i386/i386/vm_machdep.c projects/cambria/sys/i386/ibcs2/ibcs2_sysi86.c projects/cambria/sys/i386/include/apicvar.h projects/cambria/sys/i386/include/intr_machdep.h projects/cambria/sys/i386/include/xen/xenfunc.h projects/cambria/sys/i386/isa/npx.c projects/cambria/sys/i386/xen/clock.c projects/cambria/sys/i386/xen/mp_machdep.c projects/cambria/sys/i386/xen/mptable.c projects/cambria/sys/i386/xen/pmap.c projects/cambria/sys/i386/xen/xen_machdep.c projects/cambria/sys/ia64/ia64/pmap.c projects/cambria/sys/kern/imgact_elf.c projects/cambria/sys/kern/kern_clock.c projects/cambria/sys/kern/kern_descrip.c projects/cambria/sys/kern/kern_jail.c projects/cambria/sys/kern/kern_malloc.c projects/cambria/sys/kern/kern_mbuf.c projects/cambria/sys/kern/kern_mib.c projects/cambria/sys/kern/kern_proc.c projects/cambria/sys/kern/kern_synch.c projects/cambria/sys/kern/kern_sysctl.c projects/cambria/sys/kern/kern_timeout.c projects/cambria/sys/kern/kern_xxx.c projects/cambria/sys/kern/sched_4bsd.c projects/cambria/sys/kern/sched_ule.c projects/cambria/sys/kern/subr_param.c projects/cambria/sys/kern/subr_pcpu.c projects/cambria/sys/kern/subr_smp.c projects/cambria/sys/kern/subr_witness.c projects/cambria/sys/kern/sys_generic.c projects/cambria/sys/kern/sysv_sem.c projects/cambria/sys/kern/tty.c projects/cambria/sys/kern/tty_info.c projects/cambria/sys/kern/tty_pty.c projects/cambria/sys/kern/uipc_cow.c projects/cambria/sys/kern/uipc_debug.c projects/cambria/sys/kern/uipc_domain.c projects/cambria/sys/kern/uipc_mbuf.c projects/cambria/sys/kern/uipc_usrreq.c projects/cambria/sys/kern/vfs_aio.c projects/cambria/sys/kern/vfs_cache.c projects/cambria/sys/kern/vfs_export.c projects/cambria/sys/kern/vfs_extattr.c projects/cambria/sys/kern/vfs_subr.c projects/cambria/sys/kern/vfs_syscalls.c projects/cambria/sys/kern/vfs_vnops.c projects/cambria/sys/kern/vnode_if.src projects/cambria/sys/mips/idt/idtpci.c projects/cambria/sys/mips/include/pmap.h projects/cambria/sys/mips/malta/gt_pci.c projects/cambria/sys/mips/mips/busdma_machdep.c projects/cambria/sys/mips/mips/cpu.c projects/cambria/sys/mips/mips/machdep.c projects/cambria/sys/mips/mips/nexus.c projects/cambria/sys/mips/mips/pmap.c projects/cambria/sys/modules/Makefile projects/cambria/sys/modules/agp/Makefile projects/cambria/sys/modules/iwnfw/Makefile projects/cambria/sys/modules/ndis/Makefile projects/cambria/sys/modules/netgraph/Makefile projects/cambria/sys/modules/sound/driver/Makefile projects/cambria/sys/modules/usb2/Makefile projects/cambria/sys/net/if.c projects/cambria/sys/net/if_loop.c projects/cambria/sys/net/if_tun.c projects/cambria/sys/net/route.c projects/cambria/sys/net/route.h projects/cambria/sys/net/rtsock.c projects/cambria/sys/net80211/_ieee80211.h projects/cambria/sys/net80211/ieee80211.c projects/cambria/sys/net80211/ieee80211.h projects/cambria/sys/net80211/ieee80211_adhoc.c projects/cambria/sys/net80211/ieee80211_crypto.h projects/cambria/sys/net80211/ieee80211_ddb.c projects/cambria/sys/net80211/ieee80211_freebsd.c projects/cambria/sys/net80211/ieee80211_hostap.c projects/cambria/sys/net80211/ieee80211_ht.h projects/cambria/sys/net80211/ieee80211_input.c projects/cambria/sys/net80211/ieee80211_input.h projects/cambria/sys/net80211/ieee80211_ioctl.c projects/cambria/sys/net80211/ieee80211_ioctl.h projects/cambria/sys/net80211/ieee80211_node.c projects/cambria/sys/net80211/ieee80211_node.h projects/cambria/sys/net80211/ieee80211_output.c projects/cambria/sys/net80211/ieee80211_proto.h projects/cambria/sys/net80211/ieee80211_regdomain.c projects/cambria/sys/net80211/ieee80211_regdomain.h projects/cambria/sys/net80211/ieee80211_scan.h projects/cambria/sys/net80211/ieee80211_scan_sta.c projects/cambria/sys/net80211/ieee80211_var.h projects/cambria/sys/net80211/ieee80211_wds.c projects/cambria/sys/netgraph/bluetooth/hci/ng_hci_main.c projects/cambria/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c projects/cambria/sys/netgraph/ng_deflate.c projects/cambria/sys/netgraph/ng_ether.c projects/cambria/sys/netgraph/ng_iface.c projects/cambria/sys/netgraph/ng_iface.h projects/cambria/sys/netgraph/ng_mppc.c projects/cambria/sys/netgraph/ng_ppp.c projects/cambria/sys/netgraph/ng_pred1.c projects/cambria/sys/netgraph/ng_vjc.c projects/cambria/sys/netinet/if_ether.c projects/cambria/sys/netinet/in.c projects/cambria/sys/netinet/in.h projects/cambria/sys/netinet/in_pcb.c projects/cambria/sys/netinet/in_pcb.h projects/cambria/sys/netinet/ip_fw2.c projects/cambria/sys/netinet/ip_output.c projects/cambria/sys/netinet/libalias/alias_ftp.c projects/cambria/sys/netinet/libalias/alias_irc.c projects/cambria/sys/netinet/libalias/alias_nbt.c projects/cambria/sys/netinet/raw_ip.c projects/cambria/sys/netinet/tcp_input.c projects/cambria/sys/netinet/tcp_subr.c projects/cambria/sys/netinet/tcp_syncache.c projects/cambria/sys/netinet/tcp_timer.c projects/cambria/sys/netinet/tcp_var.h projects/cambria/sys/netinet/udp_usrreq.c projects/cambria/sys/netinet/udp_var.h projects/cambria/sys/netinet/vinet.h projects/cambria/sys/netinet6/in6.c projects/cambria/sys/netinet6/in6_gif.c projects/cambria/sys/netinet6/in6_ifattach.c projects/cambria/sys/netinet6/ip6protosw.h projects/cambria/sys/netinet6/nd6_nbr.c projects/cambria/sys/netinet6/raw_ip6.c projects/cambria/sys/netinet6/udp6_usrreq.c projects/cambria/sys/netipsec/ipsec.c projects/cambria/sys/netipsec/ipsec.h projects/cambria/sys/netipsec/ipsec_mbuf.c projects/cambria/sys/netipsec/xform_ipip.c projects/cambria/sys/nfs4client/nfs4_subs.c projects/cambria/sys/nfsclient/nfs_vfsops.c projects/cambria/sys/nfsclient/nfs_vnops.c projects/cambria/sys/nfsserver/nfs_srvsubs.c projects/cambria/sys/opencrypto/cryptosoft.c projects/cambria/sys/pc98/cbus/scterm-sck.c projects/cambria/sys/pc98/conf/GENERIC projects/cambria/sys/pci/if_rlreg.h projects/cambria/sys/powerpc/booke/locore.S projects/cambria/sys/powerpc/booke/machdep.c projects/cambria/sys/powerpc/booke/pmap.c projects/cambria/sys/powerpc/booke/trap_subr.S projects/cambria/sys/powerpc/conf/GENERIC projects/cambria/sys/powerpc/conf/NOTES projects/cambria/sys/powerpc/include/pcpu.h projects/cambria/sys/powerpc/include/pmap.h projects/cambria/sys/powerpc/include/pte.h projects/cambria/sys/powerpc/include/tlb.h projects/cambria/sys/powerpc/powermac/ata_macio.c projects/cambria/sys/powerpc/powermac/grackle.c projects/cambria/sys/powerpc/powermac/gracklevar.h projects/cambria/sys/powerpc/powermac/macgpio.c projects/cambria/sys/powerpc/powermac/macio.c projects/cambria/sys/powerpc/powermac/uninorth.c projects/cambria/sys/powerpc/powermac/uninorthvar.h projects/cambria/sys/powerpc/powerpc/genassym.c projects/cambria/sys/powerpc/powerpc/intr_machdep.c projects/cambria/sys/security/audit/audit.h projects/cambria/sys/security/audit/audit_bsm.c projects/cambria/sys/security/audit/audit_bsm_token.c projects/cambria/sys/security/audit/audit_pipe.c projects/cambria/sys/security/mac/mac_audit.c projects/cambria/sys/security/mac/mac_framework.c projects/cambria/sys/security/mac/mac_inet6.c projects/cambria/sys/security/mac/mac_internal.h projects/cambria/sys/security/mac/mac_policy.h projects/cambria/sys/security/mac/mac_priv.c projects/cambria/sys/security/mac_biba/mac_biba.c projects/cambria/sys/security/mac_bsdextended/mac_bsdextended.c projects/cambria/sys/security/mac_ifoff/mac_ifoff.c projects/cambria/sys/security/mac_lomac/mac_lomac.c projects/cambria/sys/security/mac_mls/mac_mls.c projects/cambria/sys/security/mac_none/mac_none.c projects/cambria/sys/security/mac_partition/mac_partition.c projects/cambria/sys/security/mac_portacl/mac_portacl.c projects/cambria/sys/security/mac_seeotheruids/mac_seeotheruids.c projects/cambria/sys/security/mac_stub/mac_stub.c projects/cambria/sys/security/mac_test/mac_test.c projects/cambria/sys/sparc64/include/tlb.h projects/cambria/sys/sparc64/sparc64/machdep.c projects/cambria/sys/sparc64/sparc64/pmap.c projects/cambria/sys/sun4v/include/pcpu.h projects/cambria/sys/sys/_null.h projects/cambria/sys/sys/conf.h projects/cambria/sys/sys/copyright.h projects/cambria/sys/sys/elf64.h projects/cambria/sys/sys/elf_common.h projects/cambria/sys/sys/elf_generic.h projects/cambria/sys/sys/file.h projects/cambria/sys/sys/imgact_elf.h projects/cambria/sys/sys/jail.h projects/cambria/sys/sys/ktr.h projects/cambria/sys/sys/link_elf.h projects/cambria/sys/sys/lock.h projects/cambria/sys/sys/mbuf.h projects/cambria/sys/sys/param.h projects/cambria/sys/sys/pcpu.h projects/cambria/sys/sys/pmc.h projects/cambria/sys/sys/protosw.h projects/cambria/sys/sys/sched.h projects/cambria/sys/sys/soundcard.h projects/cambria/sys/sys/sysctl.h projects/cambria/sys/sys/tree.h projects/cambria/sys/sys/types.h projects/cambria/sys/sys/vnode.h projects/cambria/sys/ufs/ffs/ffs_alloc.c projects/cambria/sys/ufs/ffs/ffs_balloc.c projects/cambria/sys/ufs/ffs/ffs_extern.h projects/cambria/sys/ufs/ffs/ffs_inode.c projects/cambria/sys/ufs/ffs/ffs_vfsops.c projects/cambria/sys/ufs/ffs/ffs_vnops.c projects/cambria/sys/ufs/ufs/ufs_dirhash.c projects/cambria/sys/ufs/ufs/ufs_extattr.c projects/cambria/sys/ufs/ufs/ufs_lookup.c projects/cambria/sys/ufs/ufs/ufs_vnops.c projects/cambria/sys/vm/uma.h projects/cambria/sys/vm/uma_core.c projects/cambria/sys/vm/uma_dbg.c projects/cambria/sys/vm/uma_int.h projects/cambria/sys/vm/vm_map.c projects/cambria/sys/vm/vm_map.h projects/cambria/sys/vm/vm_meter.c projects/cambria/sys/vm/vm_mmap.c projects/cambria/sys/vm/vm_page.c projects/cambria/sys/vm/vm_page.h projects/cambria/sys/xen/evtchn/evtchn.c projects/cambria/sys/xen/evtchn/evtchn_dev.c projects/cambria/sys/xen/features.c projects/cambria/sys/xen/gnttab.c projects/cambria/sys/xen/gnttab.h projects/cambria/sys/xen/xenbus/xenbus_client.c projects/cambria/sys/xen/xenbus/xenbus_comms.c projects/cambria/sys/xen/xenbus/xenbus_comms.h projects/cambria/sys/xen/xenbus/xenbus_dev.c projects/cambria/sys/xen/xenbus/xenbus_probe.c projects/cambria/sys/xen/xenbus/xenbus_probe_backend.c projects/cambria/sys/xen/xenbus/xenbus_xs.c projects/cambria/sys/xen/xenbus/xenbusvar.h projects/cambria/tools/regression/bin/sh/builtins/type1.0.stderr (props changed) projects/cambria/tools/regression/fstest/tests/conf projects/cambria/tools/regression/fstest/tests/misc.sh projects/cambria/tools/regression/usr.bin/jot/regress.sh projects/cambria/tools/sched/schedgraph.py projects/cambria/tools/tools/ath/Makefile projects/cambria/tools/tools/ath/Makefile.inc projects/cambria/tools/tools/ath/athdebug/athdebug.c projects/cambria/tools/tools/ath/athstats/Makefile projects/cambria/tools/tools/ath/athstats/athstats.c projects/cambria/tools/tools/ath/athstats/main.c projects/cambria/tools/tools/nanobsd/gateworks/ (props changed) projects/cambria/tools/tools/nanobsd/gateworks/Files/ (props changed) projects/cambria/tools/tools/nanobsd/gateworks/Files/root/ (props changed) projects/cambria/tools/tools/nanobsd/gateworks/Files/root/.profile (props changed) projects/cambria/tools/tools/nanobsd/gateworks/G2348 (props changed) projects/cambria/tools/tools/nanobsd/gateworks/G2358 (props changed) projects/cambria/tools/tools/nanobsd/gateworks/avila (contents, props changed) projects/cambria/tools/tools/nanobsd/gateworks/cambria (contents, props changed) projects/cambria/tools/tools/nanobsd/gateworks/cfg/ (props changed) projects/cambria/tools/tools/nanobsd/gateworks/cfg/motd (props changed) projects/cambria/tools/tools/nanobsd/gateworks/cfg/rc.conf (props changed) projects/cambria/tools/tools/nanobsd/gateworks/cfg/ssh/ (props changed) projects/cambria/tools/tools/nanobsd/gateworks/cfg/ssh/sshd_config (props changed) projects/cambria/tools/tools/nanobsd/gateworks/common (contents, props changed) projects/cambria/tools/tools/net80211/Makefile projects/cambria/tools/tools/usb/print-usb-if-vids.sh projects/cambria/usr.bin/csplit/csplit.1 projects/cambria/usr.bin/csup/ (props changed) projects/cambria/usr.bin/csup/Makefile projects/cambria/usr.bin/fetch/fetch.c projects/cambria/usr.bin/fstat/zfs.c projects/cambria/usr.bin/gprof/gprof.1 projects/cambria/usr.bin/gprof/gprof.c projects/cambria/usr.bin/mail/Makefile projects/cambria/usr.bin/make/Makefile projects/cambria/usr.bin/make/buf.c projects/cambria/usr.bin/make/for.c projects/cambria/usr.bin/make/globals.h projects/cambria/usr.bin/make/job.c projects/cambria/usr.bin/make/job.h projects/cambria/usr.bin/make/main.c projects/cambria/usr.bin/make/make.1 projects/cambria/usr.bin/make/make.h projects/cambria/usr.bin/make/parse.c projects/cambria/usr.bin/make/suff.c projects/cambria/usr.bin/make/var.c projects/cambria/usr.bin/netstat/inet6.c projects/cambria/usr.bin/netstat/main.c projects/cambria/usr.bin/netstat/netstat.1 projects/cambria/usr.bin/netstat/unix.c projects/cambria/usr.bin/nsupdate/Makefile projects/cambria/usr.bin/procstat/procstat.c projects/cambria/usr.bin/procstat/procstat_args.c projects/cambria/usr.bin/procstat/procstat_basic.c projects/cambria/usr.bin/procstat/procstat_bin.c projects/cambria/usr.bin/procstat/procstat_cred.c projects/cambria/usr.bin/procstat/procstat_files.c projects/cambria/usr.bin/procstat/procstat_kstack.c projects/cambria/usr.bin/procstat/procstat_threads.c projects/cambria/usr.bin/procstat/procstat_vm.c projects/cambria/usr.bin/sockstat/sockstat.c projects/cambria/usr.bin/split/split.1 projects/cambria/usr.bin/top/machine.c projects/cambria/usr.bin/truss/truss.1 projects/cambria/usr.sbin/Makefile projects/cambria/usr.sbin/arp/arp.8 projects/cambria/usr.sbin/arp/arp.c projects/cambria/usr.sbin/auditd/Makefile projects/cambria/usr.sbin/boot0cfg/boot0cfg.8 projects/cambria/usr.sbin/burncd/burncd.c projects/cambria/usr.sbin/config/config.8 projects/cambria/usr.sbin/cpucontrol/cpucontrol.8 projects/cambria/usr.sbin/crunch/crunchgen/crunchgen.c projects/cambria/usr.sbin/fwcontrol/fwcontrol.c projects/cambria/usr.sbin/gssd/Makefile projects/cambria/usr.sbin/gssd/gssd.8 projects/cambria/usr.sbin/jail/jail.8 projects/cambria/usr.sbin/kldxref/ef_i386.c projects/cambria/usr.sbin/kldxref/ef_obj.c projects/cambria/usr.sbin/kldxref/fileformat projects/cambria/usr.sbin/kldxref/kldxref.c projects/cambria/usr.sbin/makefs/ffs/ffs_bswap.c (props changed) projects/cambria/usr.sbin/makefs/ffs/ffs_subr.c (props changed) projects/cambria/usr.sbin/makefs/ffs/ufs_bswap.h (props changed) projects/cambria/usr.sbin/makefs/getid.c (props changed) projects/cambria/usr.sbin/mergemaster/mergemaster.8 projects/cambria/usr.sbin/mergemaster/mergemaster.sh projects/cambria/usr.sbin/mld6query/mld6query.8 projects/cambria/usr.sbin/mtree/spec.c projects/cambria/usr.sbin/ndiscvt/inf.c projects/cambria/usr.sbin/ndiscvt/windrv_stub.c projects/cambria/usr.sbin/ndp/ndp.c projects/cambria/usr.sbin/pkg_install/add/main.c projects/cambria/usr.sbin/pkg_install/add/pkg_add.1 projects/cambria/usr.sbin/pkg_install/lib/lib.h projects/cambria/usr.sbin/powerd/powerd.8 projects/cambria/usr.sbin/rrenumd/rrenumd.8 projects/cambria/usr.sbin/rtadvd/rtadvd.8 projects/cambria/usr.sbin/rtsold/rtsold.8 projects/cambria/usr.sbin/sade/disks.c projects/cambria/usr.sbin/sysinstall/devices.c projects/cambria/usr.sbin/sysinstall/disks.c projects/cambria/usr.sbin/sysinstall/menus.c projects/cambria/usr.sbin/sysinstall/sysinstall.8 projects/cambria/usr.sbin/traceroute6/traceroute6.8 projects/cambria/usr.sbin/ugidfw/ugidfw.c projects/cambria/usr.sbin/usbconfig/usbconfig.c projects/cambria/usr.sbin/usbdevs/usbdevs.c projects/cambria/usr.sbin/wlandebug/wlandebug.c Modified: projects/cambria/COPYRIGHT ============================================================================== --- projects/cambria/COPYRIGHT Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/COPYRIGHT Fri Jan 30 18:06:22 2009 (r187929) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (C) 1992-2008 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2009 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: projects/cambria/Makefile ============================================================================== --- projects/cambria/Makefile Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/Makefile Fri Jan 30 18:06:22 2009 (r187929) @@ -298,7 +298,7 @@ universe_prologue: .endif .for target in ${TARGETS} KERNCONFS!= cd ${.CURDIR}/sys/${target}/conf && \ - find [A-Z]*[A-Z] -type f -maxdepth 0 \ + find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \ ! -name DEFAULTS ! -name LINT KERNCONFS:= ${KERNCONFS:S/^NOTES$/LINT/} universe: universe_${target} Modified: projects/cambria/Makefile.inc1 ============================================================================== --- projects/cambria/Makefile.inc1 Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/Makefile.inc1 Fri Jan 30 18:06:22 2009 (r187929) @@ -5,6 +5,7 @@ # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir # -DNO_CLEAN do not clean at all # -DNO_SHARE do not go into share subdir +# -DKERNFAST define NO_KERNELCONFIG, NO_KERNELCLEAN and NO_KERNELCONFIG # -DNO_KERNELCONFIG do not run config in ${MAKE} buildkernel # -DNO_KERNELCLEAN do not run ${MAKE} clean in ${MAKE} buildkernel # -DNO_KERNELDEPEND do not run ${MAKE} depend in ${MAKE} buildkernel @@ -697,6 +698,15 @@ distrib-dirs distribution: # be set to cross-build, we have to make sure TARGET is set # properly. +.if defined(KERNFAST) +NO_KERNELCLEAN= t +NO_KERNELCONFIG= t +NO_KERNELDEPEND= t +# Shortcut for KERNCONF=Blah -DKERNFAST is now KERNFAST=Blah +.if !defined(KERNCONF) && ${KERNFAST} != "1" +KERNCONF=${KERNFAST} +.endif +.endif .if !defined(KERNCONF) && defined(KERNEL) KERNCONF= ${KERNEL} KERNWARN= Modified: projects/cambria/ObsoleteFiles.inc ============================================================================== --- projects/cambria/ObsoleteFiles.inc Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/ObsoleteFiles.inc Fri Jan 30 18:06:22 2009 (r187929) @@ -14,6 +14,13 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20090122: tzdata2009a import +OLD_FILES+=usr/share/zoneinfo/Asia/Katmandu +# 20090102: file 4.26 import +OLD_FILES+=usr/share/misc/magic.mime +OLD_FILES+=usr/share/misc/magic.mime.mgc +# 20081223: bind 9.4.3 import, nsupdate.8 moved to nsupdate.1 +OLD_FILES+=usr/share/man/man8/nsupdate.8.gz # 20081223: ipprotosw.h removed OLD_FILES+=usr/include/netinet/ipprotosw.h # 20081123: vfs_mountedon.9 removed Modified: projects/cambria/UPDATING ============================================================================== --- projects/cambria/UPDATING Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/UPDATING Fri Jan 30 18:06:22 2009 (r187929) @@ -22,6 +22,26 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8. to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090119: + NTFS has been removed from GENERIC kernel on amd64 to match + GENERIC on i386. Should not cause any issues since mount_ntfs(8) + will load ntfs.ko module automatically when NTFS support is + actually needed, unless ntfs.ko is not installed or security + level prohibits loading kernel modules. If either is the case, + "options NTFS" has to be added into kernel config. + +20090115: + TCP Appropriate Byte Counting (RFC 3465) support added to kernel. + New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to + 800061. User space tools that rely on the size of struct tcpcb in + tcp_var.h (e.g. sockstat) need to be recompiled. + +20081225: + ng_tty(4) module updated to match the new TTY subsystem. + Due to API change, user-level applications must be updated. + New API support added to mpd5 CVS and expected to be present + in next mpd5.3 release. + 20081219: With __FreeBSD_version 800060 the makefs tool is part of the base system (it was a port). Modified: projects/cambria/bin/chmod/chmod.1 ============================================================================== --- projects/cambria/bin/chmod/chmod.1 Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/bin/chmod/chmod.1 Fri Jan 30 18:06:22 2009 (r187929) @@ -32,7 +32,7 @@ .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 .\" $FreeBSD$ .\" -.Dd December 22, 2006 +.Dd January 26, 2009 .Dt CHMOD 1 .Os .Sh NAME @@ -281,6 +281,10 @@ Operations upon the other permissions on ``o'' by itself), in combination with the .Ar perm symbols ``s'' or ``t'', are ignored. +.Pp +The ``w'' permission on directories will permit file creation, relocation, +and copy into that directory. +Files created within the directory itself will inherit its group ID. .Sh EXAMPLES .Bl -tag -width "u=rwx,go=u-w" -compact .It Li 644 @@ -343,4 +347,4 @@ command appeared in .Sh BUGS There is no .Ar perm -option for the naughty bits. +option for the naughty bits of a horse. Modified: projects/cambria/bin/dd/dd.1 ============================================================================== --- projects/cambria/bin/dd/dd.1 Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/bin/dd/dd.1 Fri Jan 30 18:06:22 2009 (r187929) @@ -32,7 +32,7 @@ .\" @(#)dd.1 8.2 (Berkeley) 1/13/94 .\" $FreeBSD$ .\" -.Dd August 15, 2004 +.Dd January 23, 2009 .Dt DD 1 .Os .Sh NAME @@ -392,6 +392,11 @@ Remove parity bit from a file: Check for (even) parity errors on a file: .Pp .Dl "dd if=file conv=pareven | cmp -x - file" +.Pp +To create an image of a Mode-1 CD-ROM, which is a commonly used format +for data CD-ROM disks, use a block size of 2048 bytes: +.Pp +.Dl "dd if=/dev/acd0 of=filename.iso bs=2048" .Sh SEE ALSO .Xr cp 1 , .Xr mt 1 , Modified: projects/cambria/bin/kenv/kenv.1 ============================================================================== --- projects/cambria/bin/kenv/kenv.1 Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/bin/kenv/kenv.1 Fri Jan 30 18:06:22 2009 (r187929) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 13, 2005 +.Dd January 13, 2009 .Dt KENV 1 .Os .Sh NAME @@ -67,8 +67,28 @@ If the .Fl q option is set, warnings normally printed as a result of being unable to perform the requested operation will be suppressed. +.Pp +Variables can be added to the kernel environment using the +.Xr /boot/loader.conf +file, or also statically compiled into the kernel using the statement +.Pp +.Dl Ic env Ar filename +.Pp +in the kernel config file. +The file can contain lines of the form +.Pp +.Dl name = "value" # this is a comment +.Pp +where whitespace around name and '=', and +everything after a '#' character, are ignored. Almost any printable +character except '=' is acceptable as part of a name. Quotes +are optional and necessary only if the value contains +whitespace. +.Pp .Sh SEE ALSO .Xr kenv 2 , +.Xr config 5 , +.Xr loader.conf 5 , .Xr loader 8 .Sh HISTORY The Modified: projects/cambria/bin/ln/ln.1 ============================================================================== --- projects/cambria/bin/ln/ln.1 Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/bin/ln/ln.1 Fri Jan 30 18:06:22 2009 (r187929) @@ -38,7 +38,7 @@ .Sh NAME .Nm ln , .Nm link -.Nd make links +.Nd link files .Sh SYNOPSIS .Nm .Op Fl s Op Fl F @@ -57,8 +57,13 @@ .Sh DESCRIPTION The .Nm -utility creates a new directory entry (linked file) which has the -same modes as the original file. +utility creates a new directory entry (linked file) for the file name +specified by +.Ar target_file . +The +.Ar target_file +will be created with the same file modes as the +.Ar source_file . It is useful for maintaining multiple copies of a file in many places at once without using up storage for the .Dq copies ; @@ -148,7 +153,7 @@ links. A hard link to a file is indistinguishable from the original directory entry; any changes to a file are effectively independent of the name used to reference the file. -Hard links may not normally refer to directories and may not span file systems. +Directories may not be hardlinked, and hard links may not span file systems. .Pp A symbolic link contains the name of the file to which it is linked. Modified: projects/cambria/bin/test/test.1 ============================================================================== --- projects/cambria/bin/test/test.1 Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/bin/test/test.1 Fri Jan 30 18:06:22 2009 (r187929) @@ -310,7 +310,7 @@ are evaluated consistently according to standards document. All other cases are subject to the ambiguity in the command semantics. -.Sh RETURN VALUES +.Sh EXIT STATUS The .Nm utility exits with one of the following values: Modified: projects/cambria/cddl/contrib/opensolaris/cmd/zinject/zinject.c ============================================================================== --- projects/cambria/cddl/contrib/opensolaris/cmd/zinject/zinject.c Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/cddl/contrib/opensolaris/cmd/zinject/zinject.c Fri Jan 30 18:06:22 2009 (r187929) @@ -146,6 +146,7 @@ #include #include +#include #include #include Modified: projects/cambria/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c ============================================================================== --- projects/cambria/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Fri Jan 30 18:06:22 2009 (r187929) @@ -1739,15 +1739,11 @@ dtrace_program_link(dtrace_hdl_t *dtp, d * Arches which are 32-bit only just use the normal * library path. */ -#if defined(__i386__) - int use_32 = 1; /* use /usr/lib/... -sson */ -#else int use_32 = 0; #endif -#endif (void) snprintf(drti, sizeof (drti), "/usr/lib%s/dtrace/drti.o", - use_32 ? "":"32"); + use_32 ? "32":""); len = snprintf(&tmp, 1, fmt, dtp->dt_ld_path, file, tfile, drti) + 1; Modified: projects/cambria/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- projects/cambria/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Fri Jan 30 18:06:22 2009 (r187929) @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include Modified: projects/cambria/contrib/bind9/CHANGES ============================================================================== --- projects/cambria/contrib/bind9/CHANGES Fri Jan 30 18:04:53 2009 (r187928) +++ projects/cambria/contrib/bind9/CHANGES Fri Jan 30 18:06:22 2009 (r187929) @@ -1,14 +1,166 @@ - --- 9.4.2-P2 released --- + --- 9.4.3-P1 released --- -2406. [bug] Some operating systems have FD_SETSIZE set to a - low value by default, which can cause resource - exhaustion when many simultaneous connections are - open. Linux in particular makes it difficult to - increase this value. To use more sockets with - select(), set ISC_SOCKET_FDSETSIZE. Example: - STD_CDEFINES="-DISC_SOCKET_FDSETSIZE=4096" ./configure - (This should not be necessary in most cases, and - never for an authoritative-only server.) [RT #18328] +2522. [security] Handle -1 from DSA_do_verify(). + +2498. [bug] Removed a bogus function argument used with + ISC_SOCKET_USE_POLLWATCH: it could cause compiler + warning or crash named with the debug 1 level + of logging. [RT #18917] + + --- 9.4.3 released --- + +2490. [port] aix: work around a kernel bug where IPV6_RECVPKTINFO + is cleared when IPV6_V6ONLY is set. [RT #18785] + +2489. [port] solaris: Workaround Solaris's kernel bug about + /dev/poll: + http://bugs.opensolaris.org/view_bug.do?bug_id=6724237 + Define ISC_SOCKET_USE_POLLWATCH at build time to enable + this workaround. [RT #18870] + + --- 9.4.3rc1 released --- + +2473. [port] linux: raise the limit on open files to the possible + maximum value before spawning threads; 'files' + specified in named.conf doesn't seem to work with + threads as expected. [RT #18784] + +2472. [port] linux: check the number of available cpu's before + calling chroot as it depends on "/proc". [RT #16923] + +2471. [bug] named-checkzone was not reporting missing manditory + glue when sibling checks were disabled. [RT #18768] + +2469. [port] solaris: Work around Solaris's select() limitations. + [RT #18769] + +2468. [bug] Resolver could try unreachable servers multiple times. + [RT #18739] + +2467. [bug] Failure of fcntl(F_DUPFD) wasn't logged. [RT #18740] + +2466. [doc] ARM: explain max-cache-ttl 0 SERVFAIL issue. + [RT #18302] + +2465. [bug] Adb's handling of lame addresses was different + for IPv4 and IPv6. [RT #18738] + +2463. [port] linux: POSIX doesn't include the IPv6 Advanced Socket + API and glibc hides parts of the IPv6 Advanced Socket + API as a result. This is stupid as it breaks how the + two halves (Basic and Advanced) of the IPv6 Socket API were designed to be used but we have to live with it. + Define _GNU_SOURCE to pull in the IPv6 Advanced Socket + API. [RT #18388] + +2462. [doc] Document -m (enable memory usage debugging) + option for dig. [RT #18757] + +2461. [port] sunos: Change #2363 was not complete. [RT #17513] + +2458. [doc] ARM: update and correction for max-cache-size. + [RT #18294] + +2455. [bug] Stop metadata being transfered via axfr/ixfr. + [RT #18639] + +2453. [bug] Remove NULL pointer dereference in dns_journal_print(). + [RT #18316] + +2449. [bug] libbind: Out of bounds reference in dns_ho.c:addrsort. + [RT #18044] + +2445. [doc] ARM out-of-date on empty reverse zones (list includes + RFC1918 address, but these are not yet compiled in). + [RT #18578] + +2444. [port] Linux, FreeBSD, AIX: Turn off path mtu discovery + (clear DF) for UDP responses and requests. + + --- 9.4.3b3 released --- + +2443. [bug] win32: UDP connect() would not generate an event, + and so connected UDP sockets would never clean up. + Fix this by doing an immediate WSAConnect() rather + than an io completion port type for UDP. + +2438. [bug] Timeouts could be logged incorrectly under win32. + [RT #18617] + +2437. [bug] Sockets could be closed too early, leading to + inconsistent states in the socket module. [RT #18298] + +2436. [security] win32: UDP client handler can be shutdown. [RT #18576] + +2433. [tuning] Set initial timeout to 800ms. + +2432. [bug] More Windows socket handling improvements. Stop + using I/O events and use IO Completion Ports + throughout. Rewrite the receive path logic to make + it easier to support multiple simultaneous + requestrs in the future. Add stricter consistency + checking as a compile-time option (define + ISC_SOCKET_CONSISTENCY_CHECKS; defaults to off). + +2430. [bug] win32: isc_interval_set() could round down to + zero if the input was less than NS_INTERVAL + nanoseconds. Round up instead. [RT #18549] + +2429. [doc] nsupdate should be in section 1 of the man pages. + [RT #18283] + +2426. [bug] libbind: inet_net_pton() can sometimes return the + wrong value if excessively large netmasks are + supplied. [RT #18512] + +2425. [bug] named didn't detect unavailable query source addresses + at load time. [RT #18536] + +2424. [port] configure now probes for a working epoll + implementation. Allow the use of kqueue, + epoll and /dev/poll to be selected at compile + time. [RT #18277] + +2422. [bug] Handle the special return value of a empty node as + if it was a NXRRSET in the validator. [RT #18447] + +2421. [func] Add new command line option '-S' for named to specify + the max number of sockets. [RT #18493] + Use caution: this option may not work for some + operating systems without rebuilding named. + +2420. [bug] Windows socket handling cleanup. Let the io + completion event send out cancelled read/write + done events, which keeps us from writing to memeory + we no longer have ownership of. Add debugging + socket_log() function. Rework TCP socket handling + to not leak sockets. + +2417. [bug] Connecting UDP sockets for outgoing queries could + unexpectedly fail with an 'address already in use' + error. [RT #18411] + +2416. [func] Log file descriptors that cause exceeding the + internal maximum. [RT #18460] + +2414. [bug] A masterdump context held the database lock too long, + causing various troubles such as dead lock and + recursive lock acquisition. [RT #18311, #18456] + +2413. [bug] Fixed an unreachable code path in socket.c. [RT #18442] + +2412. [bug] win32: address a resourse leak. [RT #18374] + +2411. [bug] Allow using a larger number of sockets than FD_SETSIZE + for select(). To enable this, set ISC_SOCKET_MAXSOCKETS + at compilation time. [RT #18433] + +2410. [bug] Correctly delete m_versionInfo. [RT #18432] + +2408. [bug] A duplicate TCP dispatch event could be sent, which + could then trigger an assertion failure in + resquery_response(). [RT #18275] + +2407. [port] hpux: test for sys/dyntune.h. [RT #18421] 2404. [port] hpux: files unlimited support. @@ -39,15 +191,271 @@ 2392. [bug] remove 'grep -q' from acl test script, some platforms don't support it. [RT #18253] +2391 [port] hpux: cover additional recvmsg() error codes. + [RT #18301] + +2390 [bug] dispatch.c could make a false warning on 'odd socket'. + [RT #18301]. + +2389 [bug] Move the "working directory writable" check to after + the ns_os_changeuser() call. [RT #18326] + +2386. [func] Add warning about too small 'open files' limit. + [RT #18269] + + --- 9.4.3b2 released --- + +2385. [bug] A condition variable in socket.c could leak in + rare error handling [RT #17968]. + +2384. [security] Additional support for query port randomization (change + #2375) including performance improvement and port range + specification. [RT #17949, #18098] + +2383. [bug] named could double queries when they resulted in + SERVFAIL due to overkilling EDNS0 failure detection. + [RT #18182] + +2382. [doc] Add descriptions of IPSECKEY, SPF and SSHFP to ARM. + +2381. [port] dlz/mysql: support multiple install layouts for + mysql. /include/{,mysql/}mysql.h and + /lib/{,mysql/}. [RT #18152] + +2380. [bug] dns_view_find() was not returning NXDOMAIN/NXRRSET + proofs which, in turn, caused validation failures + for insecure zones immediately below a secure zone + the server was authoritative for. [RT #18112] + +2379. [contrib] queryperf/gen-data-queryperf.py: removed redundant + TLDs and supported RRs with TTLs [RT #17972] + +2377. [bug] Address race condition in dnssec-signzone. [RT #18142] + +2376. [bug] Change #2144 was not complete. + +2375. [security] Fully randomize UDP query ports to improve + forgery resilience. [RT #17949] + +2372. [bug] fixed incorrect TAG_HMACSHA256_BITS value [RT #18047] + +2369. [bug] libbind: Array bounds overrun on read in bitncmp(). + [RT #18054] + +2364. [bug] named could trigger a assertion when serving a + malformed signed zone. [RT #17828] + +2363. [port] sunos: pre-set "lt_cv_sys_max_cmd_len=4096;". + [RT #17513] + +2361. [bug] "recursion" statistics counter could be counted + multiple times for a single query. [RT #17990] + + --- 9.4.3b1 released --- + +2358. [doc] Update host's default query description. [RT #17934] + +2356. [bug] Built in mutex profiler was not scalable enough. + [RT #17436] + +2353. [func] libbind: nsid support. [RT #17091] + +2350. [port] win32: IPv6 support. [RT #17797] + +2347. [bug] Delete now traverses the RB tree in the canonical + order. [RT #17451] + +2345. [bug] named-checkconf failed to detect when forwarders + were set at both the options/view level and in + a root zone. [RT #17671] + +2344. [bug] Improve "logging{ file ...; };" documentation. + [RT #17888] + +2343. [bug] (Seemingly) duplicate IPv6 entries could be + created in ADB. [RT #17837] + +2341. [bug] libbind: add missing -I../include for off source + tree builds. [RT #17606] + +2340. [port] openbsd: interface configuration. [RT #17700] + +2339. [port] tru64: support for libbind. [RT #17589] + +2338. [bug] check_ds() could be called with a non DS rdataset. + [RT #17598] + +2337. [bug] BUILD_LDFLAGS was not being correctly set. [RT #17614] + +2335. [port] sunos: libbind and *printf() support for long long. + [RT #17513] + +2334. [bug] Bad REQUIRES in fromstruct_in_naptr(), off by one + bug in fromstruct_txt(). [RT #17609] + +2333. [bug] Fix off by one error in isc_time_nowplusinterval(). + [RT #17608] + +2332. [contrib] query-loc-0.4.0. [RT #17602] + +2331. [bug] Failure to regenerate any signatures was not being + reported nor being past back to the UPDATE client. + [RT #17570] + +2330. [bug] Remove potential race condition when handling + over memory events. [RT #17572] + + WARNING: API CHANGE: over memory callback + function now needs to call isc_mem_waterack(). + See for details. + +2329. [bug] Clearer help text for dig's '-x' and '-i' options. + +2328. [maint] Add AAAA addresses for A.ROOT-SERVERS.NET, + F.ROOT-SERVERS.NET, H.ROOT-SERVERS.NET, + J.ROOT-SERVERS.NET, K.ROOT-SERVERS.NET and + M.ROOT-SERVERS.NET. + +2326. [bug] It was possible to trigger a INSIST in the acache + processing. + +2325. [port] Linux: use capset() function if available. [RT #17557] + +2323. [port] tru64: namespace clash. [RT #17547] + 2322. [port] MacOS: work around the limitation of setrlimit() for RLIMIT_NOFILE. [RT #17526] - --- 9.4.2-P1 released --- +2319. [bug] Silence Coverity warnings in + lib/dns/rdata/in_1/apl_42.c. [RT #17469] -2375. [security] Fully randomize UDP query ports to improve - forgery resilience. [RT #17949] +2318. [port] sunos fixes for libbind. [RT #17514] + +2314. [bug] Uninitialized memory use on error path in + bin/named/lwdnoop.c. [RT #17476] + +2313. [cleanup] Silence Coverity warnings. Handle private stacks. + [RT #17447] [RT #17478] + +2312. [cleanup] Silence Coverity warning in lib/isc/unix/socket.c. + [RT #17458] + +2311. [func] Update ACL regression test. [RT #17462] + +2310. [bug] dig, host, nslookup: flush stdout before emitting + debug/fatal messages. [RT #17501] + +2308. [cleanup] Silence Coverity warning in bin/named/controlconf.c. + [RT #17495] + +2307. [bug] Remove infinite loop from lib/dns/sdb.c. [RT #17496] + +2306. [bug] Remove potential race from lib/dns/resolver.c. + [RT #17470] + +2305. [security] inet_network() buffer overflow. CVE-2008-0122. + +2304. [bug] Check returns from all dns_rdata_tostruct() calls. + [RT #17460] + +2303. [bug] Remove unnecessary code from bin/named/lwdgnba.c. + [RT #17471] + +2302. [bug] Fix memset() calls in lib/tests/t_api.c. [RT #17472] + +2301. [bug] Remove resource leak and fix error messages in + bin/tests/system/lwresd/lwtest.c. [RT #17474] + +2300. [bug] Fixed failure to close open file in + bin/tests/names/t_names.c. [RT #17473] + +2299. [bug] Remove unnecessary NULL check in + bin/nsupdate/nsupdate.c. [RT #17475] + +2298. [bug] isc_mutex_lock() failure not caught in + bin/tests/timers/t_timers.c. [RT #17468] + +2297. [bug] isc_entropy_createfilesource() failure not caught in + bin/tests/dst/t_dst.c. [RT #17467] + +2296. [port] Allow docbook stylesheet location to be specified to + configure. [RT #17457] + +2295. [bug] Silence static overrun error in bin/named/lwaddr.c. + [RT #17459] + +2293. [func] Add ACL regression test. [RT #17375] + +2292. [bug] Log if the working directory is not writable. + [RT #17312] + +2291. [bug] PR_SET_DUMPABLE may be set too late. Also report + failure to set PR_SET_DUMPABLE. [RT #17312] + +2290. [bug] Let AD in the query signal that the client wants AD + set in the response. [RT #17301] + +2288. [port] win32: mark service as running when we have finished + loading. [RT #17441] + +2287. [bug] Use 'volatile' if the compiler supports it. [RT #17413] + +2284. [bug] Memory leak in UPDATE prerequisite processing. + [RT #17377] + +2283. [bug] TSIG keys were not attaching to the memory + context. TSIG keys should use the rings + memory context rather than the clients memory + context. [RT #17377] + +2279. [bug] Use setsockopt(SO_NOSIGPIPE), when available, + to protect applications from receiving spurious + SIGPIPE signals when using the resolver. + +2278. [bug] win32: handle the case where Windows returns no + search list or DNS suffix. [RT #17354] + +2277. [bug] Empty zone names were not correctly being caught at + in the post parse checks. [RT #17357] + +2273. [bug] Adjust log level to WARNING when saving inconsistent + stub/slave master and journal files. [RT# 17279] + +2272. [bug] Handle illegal dnssec-lookaside trust-anchor names. + [RT #17262] + +2270. [bug] dns_db_closeversion() version->writer could be reset + before it is tested. [RT #17290] + +2269. [contrib] dbus memory leaks and missing va_end calls. [RT #17232] + +2268. [bug] 0.IN-ADDR.ARPA was missing from the empty zones + list. + +2266. [bug] client.c:get_clientmctx() returned the same mctx + once the pool of mctx's was filled. [RT #17218] + +2265. [bug] Test that the memory context's basic_table is non NULL + before freeing. [RT #17265] + +2264. [bug] Server prefix length was being ignored. [RT #17308] + +2263. [bug] "named-checkconf -z" failed to set default value + for "check-integrity". [RT #17306] + +2262. [bug] Error status from all but the last view could be + lost. [RT #17292] + +2260. [bug] Reported wrong clients-per-query when increasing the + value. [RT #17236] + +2247. [doc] Sort doc/misc/options. [RT #17067] + +2246. [bug] Make the startup of test servers (ans.pl) more + robust. [RT #17147] --- 9.4.2 released --- + --- 9.4.2rc2 released --- 2259. [bug] Reverse incorrect LIBINTERFACE bump of libisc @@ -63,7 +471,7 @@ 2256. [bug] win32: Correctly register the installation location of bindevt.dll. [RT #17159] -2255. [bug] L.ROOT-SERVERS.NET is now 199.7.83.42. +2255. [maint] L.ROOT-SERVERS.NET is now 199.7.83.42. 2254. [bug] timer.c:dispatch() failed to lock timer->lock when reading timer->idle allowing it to see @@ -76,16 +484,16 @@ reality. Note there is behaviour change for BIND 9.5. [RT #17113] -2249. [bug] Only set Authentic Data bit if client requested +2249. [bug] Only set Authentic Data bit if client requested DNSSEC, per RFC 3655 [RT #17175] -2248. [cleanup] Fix several errors reported by Coverity. [RT #17160] +2248. [cleanup] Fix several errors reported by Coverity. [RT #17160] 2245. [bug] Validating lack of DS records at trust anchors wasn't working. [RT #17151] 2238. [bug] It was possible to trigger a REQUIRE when a - validation was cancelled. [RT #17106] + validation was canceled. [RT #17106] 2237. [bug] libbind: res_init() was not thread aware. [RT #17123] @@ -94,8 +502,8 @@ 2235. [bug] was not being installed. [RT #17135] -2234. [port] Correct some compiler warnings on SCO OSr5 [RT #17134] - +2234. [port] Correct some compiler warnings on SCO OSr5 [RT #17134] + 2232. [bug] dns_adb_findaddrinfo() could fail and return ISC_R_SUCCESS. [RT #17137] @@ -110,7 +518,7 @@ 2227. [cleanup] Tidied up the FAQ. [RT #17121] 2225. [bug] More support for systems with no IPv4 addresses. - [RT #17111] + [RT #17111] 2224. [bug] Defer journal compaction if a xfrin is in progress. [RT #17119] @@ -124,15 +532,15 @@ 2220. [bug] win32: Address a race condition in final shutdown of the Windows socket code. [RT #17028] - -2219. [bug] Apply zone consistancy checks to additions, not + +2219. [bug] Apply zone consistency checks to additions, not removals, when updating. [RT #17049] 2218. [bug] Remove unnecessary REQUIRE from dns_validator_create(). [RT #16976] 2216. [cleanup] Fix a number of errors reported by Coverity. - [RT #17094] + [RT #17094] 2215. [bug] Bad REQUIRE check isc_hmacsha1_verify(). [RT #17094] @@ -175,13 +583,13 @@ localhost;) is used. [RT #16987] - + 2205. [bug] libbind: change #2119 broke thread support. [RT #16982] 2203. [security] Query id generation was cryptographically weak. [RT # 16915] -2202. [security] The default acls for allow-query-cache and +2202. [security] The default acls for allow-query-cache and allow-recursion were not being applied. [RT #16960] 2200. [bug] The search for cached NSEC records was stopping to @@ -216,7 +624,7 @@ 2187. [bug] query_addds(), query_addwildcardproof() and query_addnxrrsetnsec() should take a version - arguement. [RT #16368] + argument. [RT #16368] 2186. [port] cygwin: libbind: check for struct sockaddr_storage independently of IPv6. [RT #16482] @@ -243,7 +651,7 @@ debug level 10+. [RT #16798] 2176. [contrib] dbus update to handle race condition during - initialisation (Bugzilla 235809). [RT #16842] + initialization (Bugzilla 235809). [RT #16842] 2175. [bug] win32: windows broadcast condition variable support was broken. [RT #16592] @@ -274,7 +682,7 @@ a server address as a name to be looked up, causing unexpected output. [RT #16743] -2164. [bug] The code to determine how named-checkzone / +2164. [bug] The code to determine how named-checkzone / named-compilezone was called failed under windows. [RT #16764] @@ -288,7 +696,7 @@ 2159. [bug] Array bounds overrun in acache processing. [RT #16710] -2158. [bug] ns_client_isself() failed to initialise key +2158. [bug] ns_client_isself() failed to initialize key leading to a REQUIRE failure. [RT #16688] 2156. [bug] Fix node reference leaks in lookup.c:lookup_find(), @@ -363,7 +771,7 @@ 2136. [bug] nslookup/host looped if there was no search list and the host didn't exist. [RT #16657] -2135. [bug] Uninitialised rdataset in sdlz.c. [RT# 16656] +2135. [bug] Uninitialized rdataset in sdlz.c. [RT# 16656] 2133. [port] powerpc: Support both IBM and MacOS Power PC assembler syntaxes. [RT #16647] @@ -379,7 +787,7 @@ 2127. [port] Improved OpenSSL 0.9.8 support. [RT #16563] -2126. [security] Serialise validation of type ANY responses. [RT #16555] +2126. [security] Serialize validation of type ANY responses. [RT #16555] 2125. [bug] dns_zone_getzeronosoattl() REQUIRE failure if DLZ was defined. [RT #16574] @@ -419,7 +827,7 @@ 2111. [bug] Fix a number of errors reported by Coverity. [RT #16507] -2110. [bug] "minimal-response yes;" interacted badly with BIND 8 +2110. [bug] "minimal-responses yes;" interacted badly with BIND 8 priming queries. [RT #16491] 2109. [port] libbind: silence aix 5.3 compiler warnings. [RT #16502] @@ -431,7 +839,7 @@ 2103. [port] Add /usr/sfw to list of locations for OpenSSL under Solaris. -2102. [port] Silence solaris 10 warnings. +2102. [port] Silence Solaris 10 warnings. --- 9.4.0b4 released --- @@ -441,7 +849,7 @@ 2100. [port] win32: copy libeay32.dll to Build\Debug. Copy Debug\named-checkzone to Debug\named-compilezone. -2099. [port] win32: more manifiest issues. +2099. [port] win32: more manifest issues. 2098. [bug] Race in rbtdb.c:no_references(), which occasionally triggered an INSIST failure about the node lock @@ -457,14 +865,14 @@ 2095. [port] libbind: alway prototype inet_cidr_ntop_ipv6() and net_cidr_ntop_ipv6(). [RT #16388] - + 2094. [contrib] Update named-bootconf. [RT# 16404] 2093. [bug] named-checkzone -s was broken. 2092. [bug] win32: dig, host, nslookup. Use registry config if resolv.conf does not exist or no nameservers - listed. [RT #15877] + listed. [RT #15877] 2091. [port] dighost.c: race condition on cleanup. [RT #16417] @@ -507,7 +915,7 @@ 2078. [bug] dnssec-checkzone output style "default" was badly named. It is now called "relative". [RT #16326] -2077. [bug] 'dnssec-signzone -O raw' wasn't outputing the +2077. [bug] 'dnssec-signzone -O raw' wasn't outputting the complete signed zone. [RT #16326] 2076. [bug] Several files were missing #include @@ -592,7 +1000,7 @@ [RT #16287] 2049. [bug] Restore SOA before AXFR when falling back from - a attempted IXFR when transfering in a zone. + a attempted IXFR when transferring in a zone. Allow a initial SOA query before attempting a AXFR to be requested. [RT #16156] @@ -601,7 +1009,7 @@ the OS always returned the same local port. [RT #16182] -2047. [bug] Failed to initialise the interface flags to zero. +2047. [bug] Failed to initialize the interface flags to zero. [RT #16245] 2046. [bug] rbtdb.c:rdataset_setadditional() could cause duplicate @@ -641,7 +1049,7 @@ 2034. [bug] gcc: set -fno-strict-aliasing. [RT #16124] -2033. [bug] We wern't creating multiple client memory contexts +2033. [bug] We weren't creating multiple client memory contexts on demand as expected. [RT #16095] --- 9.4.0a6 released --- @@ -657,7 +1065,7 @@ 2029. [bug] host printed out the server multiple times when specified on the command line. [RT #15992] -2028. [port] linux: socket.c compatability for old systems. +2028. [port] linux: socket.c compatibility for old systems. [RT #16015] 2027. [port] libbind: Solaris x86 support. [RT #16020] @@ -667,7 +1075,7 @@ 2025. [func] Update "zone serial unchanged" message. [RT #16026] -2024. [bug] named emited spurious "zone serial unchanged" +2024. [bug] named emitted spurious "zone serial unchanged" messages on reload. [RT #16027] 2023. [bug] "make install" should create ${localstatedir}/run and @@ -695,7 +1103,7 @@ --- 9.4.0a5 released --- 2015. [cleanup] use-additional-cache is now acache-enable for - consistancy. Default acache-enable off in BIND 9.4 + consistency. Default acache-enable off in BIND 9.4 as it requires memory usage to be configured. It may be enabled by default in BIND 9.5 once we have more experience with it. @@ -715,9 +1123,9 @@ --- 9.4.0a4 released --- -2009. [bug] libbind: coverity fixes. [RT #15808] +2009. [bug] libbind: Coverity fixes. [RT #15808] -2008. [func] It is now posssible to enable/disable DNSSEC +2008. [func] It is now possible to enable/disable DNSSEC validation from rndc. This is useful for the mobile hosts where the current connection point breaks DNSSEC (firewall/proxy). [RT #15592] @@ -729,7 +1137,7 @@ be changed to yes in 9.5.0. [RT #15674] 2006. [security] Allow-query-cache and allow-recursion now default - to the builtin acls "localnets" and "localhost". + to the built in acls "localnets" and "localhost". This is being done to make caching servers less attractive as reflective amplifying targets for @@ -777,7 +1185,7 @@ 1994. [port] OpenSSL 0.9.8 support. [RT #15694] -1993. [bug] Log messsage, via syslog, were missing the space +1993. [bug] Log messages, via syslog, were missing the space after the timestamp if "print-time yes" was specified. [RT #15844] @@ -785,11 +1193,11 @@ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Jan 30 18:34:03 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 82ACD1065672; Fri, 30 Jan 2009 18:34:03 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 71F1B8FC1D; Fri, 30 Jan 2009 18:34:03 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0UIY34p099990; Fri, 30 Jan 2009 18:34:03 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0UIY3HR099989; Fri, 30 Jan 2009 18:34:03 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901301834.n0UIY3HR099989@svn.freebsd.org> From: Sam Leffler Date: Fri, 30 Jan 2009 18:34:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187932 - projects/cambria/sys/dev/cfi X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2009 18:34:03 -0000 Author: sam Date: Fri Jan 30 18:34:03 2009 New Revision: 187932 URL: http://svn.freebsd.org/changeset/base/187932 Log: setup to add new ioctl cmds Modified: projects/cambria/sys/dev/cfi/cfi_dev.c Modified: projects/cambria/sys/dev/cfi/cfi_dev.c ============================================================================== --- projects/cambria/sys/dev/cfi/cfi_dev.c Fri Jan 30 18:33:05 2009 (r187931) +++ projects/cambria/sys/dev/cfi/cfi_dev.c Fri Jan 30 18:34:03 2009 (r187932) @@ -252,26 +252,31 @@ cfi_devioctl(struct cdev *dev, u_long cm int error; u_char val; - if (cmd != CFIOCQRY) - return (ENOIOCTL); - sc = dev->si_drv1; + error = 0; - error = (sc->sc_writing) ? cfi_block_finish(sc) : 0; - if (error) - return (error); - - rq = (struct cfiocqry *)data; - - if (rq->offset >= sc->sc_size / sc->sc_width) - return (ESPIPE); - if (rq->offset + rq->count > sc->sc_size / sc->sc_width) - return (ENOSPC); - - while (!error && rq->count--) { - val = cfi_read_qry(sc, rq->offset++); - error = copyout(&val, rq->buffer++, 1); + switch(cmd) { + case CFIOCQRY: + if (sc->sc_writing) { + error = cfi_block_finish(sc); + if (error) + break; + } + + rq = (struct cfiocqry *)data; + if (rq->offset >= sc->sc_size / sc->sc_width) + return (ESPIPE); + if (rq->offset + rq->count > sc->sc_size / sc->sc_width) + return (ENOSPC); + + while (!error && rq->count--) { + val = cfi_read_qry(sc, rq->offset++); + error = copyout(&val, rq->buffer++, 1); + } + break; + default: + error = ENOIOCTL; + break; } - return (error); } From owner-svn-src-projects@FreeBSD.ORG Fri Jan 30 18:34:19 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 93D4B1065676; Fri, 30 Jan 2009 18:34:19 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 67FAD8FC1D; Fri, 30 Jan 2009 18:34:19 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0UIYJ5X000133; Fri, 30 Jan 2009 18:34:19 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0UIYJSa000132; Fri, 30 Jan 2009 18:34:19 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901301834.n0UIYJSa000132@svn.freebsd.org> From: Sam Leffler Date: Fri, 30 Jan 2009 18:34:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187933 - projects/cambria/sys/dev/cfi X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2009 18:34:20 -0000 Author: sam Date: Fri Jan 30 18:34:19 2009 New Revision: 187933 URL: http://svn.freebsd.org/changeset/base/187933 Log: add shell bus shim for xscale Added: projects/cambria/sys/dev/cfi/cfi_bus_ixp4xx.c (contents, props changed) Added: projects/cambria/sys/dev/cfi/cfi_bus_ixp4xx.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/cambria/sys/dev/cfi/cfi_bus_ixp4xx.c Fri Jan 30 18:34:19 2009 (r187933) @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 2009 Sam Leffler, Errno Consulting + * 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 ``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 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include + +static int +cfi_ixp4xx_probe(device_t dev) +{ +#if 0 + return cfi_probe(dev); +#else + return ENXIO; +#endif +} + +static device_method_t cfi_ixp4xx_methods[] = { + /* device interface */ + DEVMETHOD(device_probe, cfi_ixp4xx_probe), + DEVMETHOD(device_attach, cfi_attach), + DEVMETHOD(device_detach, cfi_detach), + + {0, 0} +}; + +static driver_t cfi_ixp4xx_driver = { + cfi_driver_name, + cfi_ixp4xx_methods, + sizeof(struct cfi_softc), +}; +DRIVER_MODULE (cfi, ixp4xx, cfi_ixp4xx_driver, cfi_devclass, 0, 0); From owner-svn-src-projects@FreeBSD.ORG Fri Jan 30 18:34:55 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 524E61065673; Fri, 30 Jan 2009 18:34:55 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4137D8FC16; Fri, 30 Jan 2009 18:34:55 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0UIYtqr000180; Fri, 30 Jan 2009 18:34:55 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0UIYtCb000178; Fri, 30 Jan 2009 18:34:55 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200901301834.n0UIYtCb000178@svn.freebsd.org> From: Sam Leffler Date: Fri, 30 Jan 2009 18:34:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187934 - projects/cambria/sys/arm/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jan 2009 18:34:55 -0000 Author: sam Date: Fri Jan 30 18:34:54 2009 New Revision: 187934 URL: http://svn.freebsd.org/changeset/base/187934 Log: o remove crypto stuff for now, doesn't build o add cfi so I can start on flash support Modified: projects/cambria/sys/arm/conf/AVILA projects/cambria/sys/arm/conf/AVILA.hints Modified: projects/cambria/sys/arm/conf/AVILA ============================================================================== --- projects/cambria/sys/arm/conf/AVILA Fri Jan 30 18:34:19 2009 (r187933) +++ projects/cambria/sys/arm/conf/AVILA Fri Jan 30 18:34:54 2009 (r187934) @@ -66,13 +66,15 @@ options BOOTP_COMPAT device pci device uart +device ixpwdog # watchdog timer +device cfi # flash support + # I2C Bus device iicbus device iicbb device iic device ixpiic # I2C bus glue -device ixpwdog # watchdog timer device ds1672 # DS1672 on I2C bus device ad7418 # AD7418 on I2C bus @@ -82,9 +84,9 @@ device ata device atadisk # ATA disk drives device avila_ata # Gateworks CF/IDE support -device ixpcrypto # requires npe + qmgr -device crypto -device cryptodev +#device ixpcrypto # requires npe + qmgr +#device crypto +#device cryptodev device npe # Network Processing Engine device npe_fw Modified: projects/cambria/sys/arm/conf/AVILA.hints ============================================================================== --- projects/cambria/sys/arm/conf/AVILA.hints Fri Jan 30 18:34:19 2009 (r187933) +++ projects/cambria/sys/arm/conf/AVILA.hints Fri Jan 30 18:34:54 2009 (r187934) @@ -29,6 +29,9 @@ hint.npe.1.mac="C" hint.npe.1.mii="B" hint.npe.1.phy=1 +# FLASH +hint.cfi.0.at="ixp0" + # NPE crypto acceleration hint.ixpcrypto.0.at="ixp0"