diff options
Diffstat (limited to 'share')
184 files changed, 12334 insertions, 2356 deletions
diff --git a/share/Makefile b/share/Makefile index e39da7f..075f116 100644 --- a/share/Makefile +++ b/share/Makefile @@ -5,7 +5,8 @@ # Do not include `info' in the SUBDIR list, it is handled separately. -SUBDIR= ${_colldef} \ +SUBDIR= ${_atf} \ + ${_colldef} \ ${_dict} \ ${_doc} \ dtrace \ @@ -26,10 +27,16 @@ SUBDIR= ${_colldef} \ tabset \ termcap \ ${_timedef} \ + xml \ + xsl \ ${_zoneinfo} # NB: keep these sorted by MK_* knobs +.if ${MK_ATF} != "no" +_atf= atf +.endif + .if ${MK_BSNMP} != "no" _snmp= snmp .endif diff --git a/share/atf/Makefile b/share/atf/Makefile new file mode 100644 index 0000000..f5318c4 --- /dev/null +++ b/share/atf/Makefile @@ -0,0 +1,37 @@ +#- +# Copyright (c) 2012 EMC Corporation. +# 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$ + +ATF= ${.CURDIR}/../../contrib/atf + +.PATH: ${ATF}/atf-run/sample + +NO_OBJ= + +FILESDIR= ${SHAREDIR}/atf +FILES= atf-run.hooks + +.include <bsd.prog.mk> diff --git a/share/dict/freebsd b/share/dict/freebsd index 66f57a5..c97170f 100644 --- a/share/dict/freebsd +++ b/share/dict/freebsd @@ -128,7 +128,6 @@ NNTP NSS NSSwitch NT -NTFS NTP Nasdaq NetBIOS diff --git a/share/doc/Makefile b/share/doc/Makefile index 7eabbd9..3f36375 100644 --- a/share/doc/Makefile +++ b/share/doc/Makefile @@ -3,7 +3,16 @@ .include <bsd.own.mk> -SUBDIR= ${_bind9} IPv6 legal ${_llvm} ${_roffdocs} +SUBDIR= ${_IPv6} \ + ${_atf} \ + ${_bind9} \ + legal \ + ${_llvm} \ + ${_roffdocs} + +.if ${MK_ATF} != "no" +_atf= atf +.endif .if ${MK_BIND} != "no" _bind9= bind9 @@ -13,6 +22,10 @@ _bind9= bind9 _llvm= llvm .endif +.if ${MK_INET6} != "no" +_IPv6= IPv6 +.endif + # FIXME this is not a real solution ... .if ${MK_GROFF} != "no" _roffdocs= papers psd smm usd diff --git a/share/doc/atf/Makefile b/share/doc/atf/Makefile new file mode 100644 index 0000000..1da915b --- /dev/null +++ b/share/doc/atf/Makefile @@ -0,0 +1,39 @@ +#- +# Copyright (c) 2011 Google, Inc. +# 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$ + +ATF= ${.CURDIR}/../../../contrib/atf +.PATH: ${ATF} +.PATH: ${ATF}/doc + +NO_OBJ= + +FILESGROUPS= TOP + +TOPDIR= ${SHAREDIR}/doc/atf +TOP= AUTHORS COPYING NEWS README + +.include <bsd.prog.mk> diff --git a/share/doc/smm/01.setup/3.t b/share/doc/smm/01.setup/3.t index 5b0afd4..fb7be96 100644 --- a/share/doc/smm/01.setup/3.t +++ b/share/doc/smm/01.setup/3.t @@ -1237,10 +1237,8 @@ location that uses a different password file. .PP Other new filesystems that may be stacked include the loopback filesystem .Xr mount_lofs (8), -the kernel filesystem -.Xr mount_kernfs (8), -and the portal filesystem -.Xr mount_portal (8). +and the kernel filesystem +.Xr mount_kernfs (8). .PP The buffer cache in the kernel is now organized as a file block cache rather than a device block cache. diff --git a/share/doc/smm/01.setup/4.t b/share/doc/smm/01.setup/4.t index 25f9efa..149aab0 100644 --- a/share/doc/smm/01.setup/4.t +++ b/share/doc/smm/01.setup/4.t @@ -89,7 +89,6 @@ miscfs miscellaneous filesystems broken down as follows kernfs filesystem access to kernel data structures lofs loopback filesystem nullfs another loopback filesystem - portal associate processes with filesystem locations specfs device special files umapfs provide alternate uid/gid mappings dev generic device drivers (SCSI, vnode, concatenated disk) diff --git a/share/doc/smm/Makefile b/share/doc/smm/Makefile index bfbea5b..fd42bd4 100644 --- a/share/doc/smm/Makefile +++ b/share/doc/smm/Makefile @@ -18,7 +18,7 @@ SUBDIR= title \ 04.quotas \ 05.fastfs \ 06.nfs \ - 07.lpd \ + ${_07.lpd} \ ${_08.sendmailop} \ 11.timedop \ 12.timed \ @@ -28,4 +28,8 @@ SUBDIR= title \ _08.sendmailop= 08.sendmailop .endif +.if ${MK_LPR} != "no" +_07.lpd= 07.lpd +.endif + .include <bsd.subdir.mk> diff --git a/share/dtrace/Makefile b/share/dtrace/Makefile index 71f1e4e..adbdc84 100644 --- a/share/dtrace/Makefile +++ b/share/dtrace/Makefile @@ -12,9 +12,9 @@ SUBDIR= ${_toolkit} _toolkit= toolkit .endif -SCRIPTS= nfsclienttime +SCRIPTS= nfsclienttime hotopen -SCRIPTSDIR= ${SHAREDIR}/dtrace/ +SCRIPTSDIR= ${SHAREDIR}/dtrace NO_OBJ= diff --git a/share/dtrace/hotopen b/share/dtrace/hotopen new file mode 100755 index 0000000..1570006 --- /dev/null +++ b/share/dtrace/hotopen @@ -0,0 +1,58 @@ +#!/bin/sh +# +# Copyright (c) 2012 George V. Neville-Neil +# 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$ +# +# The hotopen D script periodically outputs table of which UIDs +# are opening files. This is a very quick way to find out if +# a paritcular user is thrashing a system with rapid calls to +# open/close. +# +# Usage: hotopen +# + +/usr/sbin/dtrace -n ' +#pragma D option quiet +BEGIN +{ + printf("Files opened per UID in the last second.\n"); +} + +syscall::open:entry +{ + @files[uid] = count(); + output = 1; +} + +tick-1sec +/output != 0/ +{ + printf("%-20Y \n", walltimestamp); + printa("uid %d\tcount %@d\n", @files, @files); + trunc(@files); + output = 0; +} +' diff --git a/share/dtrace/nfsattrstats b/share/dtrace/nfsattrstats new file mode 100755 index 0000000..364a39a --- /dev/null +++ b/share/dtrace/nfsattrstats @@ -0,0 +1,74 @@ +#!/bin/sh +# +# Copyright (c) 2012 Robert N. M. Watson +# All rights reserved. +# +# This software was developed at the University of Cambridge Computer +# Laboratory with support from a grant from Google, Inc. +# +# 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$ +# +# This script creates a trace of NFS RPCs, NFS attribute cache +# activity, and NFS access cache activity, along with the system call +# that instigated the activity. Notice that NFS events may happen +# outside of the context of a system call, most likely due to the VM +# system paging from NFS, in which case the system call name is +# reported as "-" + +/usr/sbin/dtrace -n ' +#pragma D option quiet + +dtrace:::BEGIN +{ + printf("probe\targ0\texecutable\tsyscall\n"); +} + +syscall:::entry +{ + + self->syscallname = probefunc; +} + +syscall:::return +{ + + self->syscallname = ""; +} + +nfsclient::: +/self->syscallname != 0 && self->syscallname != ""/ +{ + + printf("%s\t%s\t%s\t%s\n", probemod, stringof(arg0), execname, + self->syscallname); +} + +nfsclient::: +/self->syscallname == 0 || self->syscallname == ""/ +{ + + printf("%s\t%s\t%s\t%s\n", probemod, stringof(arg0), execname, + self->syscallname); +} +' diff --git a/share/examples/Makefile b/share/examples/Makefile index 304ddb7..5cfd76b 100644 --- a/share/examples/Makefile +++ b/share/examples/Makefile @@ -20,12 +20,11 @@ LDIRS= BSD_daemon \ ipfw \ jails \ kld \ + libusb20 \ libvgl \ mdoc \ netgraph \ - nwclient \ perfmon \ - portal \ ppi \ ppp \ printing \ @@ -53,14 +52,12 @@ XFILES= BSD_daemon/FreeBSD.pfa \ csh/dot.cshrc \ cvsup/README \ cvsup/cvs-supfile \ - cvsup/doc-supfile \ cvsup/gnats-supfile \ cvsup/ports-supfile \ cvsup/refuse \ cvsup/refuse.README \ cvsup/stable-supfile \ cvsup/standard-supfile \ - cvsup/www-supfile \ diskless/ME \ diskless/README.BOOTP \ diskless/README.TEMPLATING \ @@ -110,6 +107,12 @@ XFILES= BSD_daemon/FreeBSD.pfa \ kld/syscall/module/syscall.c \ kld/syscall/test/Makefile \ kld/syscall/test/call.c \ + libusb20/Makefile \ + libusb20/README \ + libusb20/aux.c \ + libusb20/aux.h \ + libusb20/bulk.c \ + libusb20/control.c \ libvgl/Makefile \ libvgl/demo.c \ mdoc/POSIX-copyright \ @@ -125,13 +128,9 @@ XFILES= BSD_daemon/FreeBSD.pfa \ netgraph/udp.tunnel \ netgraph/virtual.chain \ netgraph/virtual.lan \ - nwclient/dot.nwfsrc \ - nwclient/nwfs.sh.sample \ perfmon/Makefile \ perfmon/README \ perfmon/perfmon.c \ - portal/README \ - portal/portal.conf \ ppi/Makefile \ ppi/ppilcd.c \ ppp/chap-auth \ @@ -243,7 +242,9 @@ etc-examples: .endif .if ${SHARED} != "symlinks" -SUBDIR= smbfs +.if ${MK_ATF} != "no" +SUBDIR+=atf +.endif .if ${MK_IPFILTER} != "no" SUBDIR+=ipfilter .endif diff --git a/share/examples/atf/Makefile b/share/examples/atf/Makefile new file mode 100644 index 0000000..774502a --- /dev/null +++ b/share/examples/atf/Makefile @@ -0,0 +1,39 @@ +#- +# Copyright (c) 2011 Google, Inc. +# 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$ + +ATF= ${.CURDIR}/../../../contrib/atf + +.PATH: ${ATF}/atf-report +.PATH: ${ATF}/atf-run/sample + +NO_OBJ= + +FILESDIR= ${SHAREDIR}/examples/atf +FILES= atf-run.hooks \ + tests-results.css + +.include <bsd.prog.mk> diff --git a/share/examples/csh/dot.cshrc b/share/examples/csh/dot.cshrc index 175bfd2..c85e4b1 100644 --- a/share/examples/csh/dot.cshrc +++ b/share/examples/csh/dot.cshrc @@ -4,8 +4,12 @@ # # Sets SSH_AUTH_SOCK to the user's ssh-agent socket path if running +# +# This has a couple caveats, the most notable being that if a user +# has multiple ssh-agent(1) processes running, this will very likely +# set SSH_AUTH_SOCK to point to the wrong file/domain socket. if (${?SSH_AUTH_SOCK} != "1") then - setenv SSH_AUTH_SOCK `sockstat | grep "^${USER} " | awk '/ssh-agent/ { print $6 }'` + setenv SSH_AUTH_SOCK `sockstat -u | awk '/^${USER}.+ ssh-agent/ { print $6 }' endif # Change only root's prompt @@ -21,29 +25,99 @@ bindkey "^[[3~" delete-char-or-list-or-eof # Make the Ins key work bindkey "\e[2~" overwrite-mode -# Aliases used for completions -alias _PKGS_PkGs_PoRtS_ 'awk -F\| \{sub\(\"\/usr\/ports\/\"\,\"\"\,\$2\)\;print\ \$2\} /usr/ports/INDEX-name -r | cut -d . -f 1' -alias _PKGS_PkGs_PoRtS_ 'awk -F\| \{sub\(\"\/usr\/ports\/\"\,\"\"\,\$2\)\;print\ \$2\} /usr/ports/INDEX-`uname -r | cut -d . -f 1`&& pkg_info -E \*' - # Some common completions +complete cd 'p/1/d/' complete chown 'p/1/u/' complete dd 'c/[io]f=/f/ n/*/"(if of ibs obs bs skip seek count)"/=' +complete find 'n/-fstype/"(nfs 4.2)"/' 'n/-name/f/' \ + 'n/-type/(c b d f p l s)/' \ + 'n/-user/u/ n/-group/g/' \ + 'n/-exec/c/' 'n/-ok/c/' \ + 'n/-cpio/f/' \ + 'n/-ncpio/f/' \ + 'n/-newer/f/' \ + 'c/-/(fstype name perm prune type user nouser group nogroup size inum atime mtime ctime exec \ + ok print ls cpio ncpio newer xdev depth daystart follow maxdepth mindepth noleaf version \ + anewer cnewer amin cmin mmin true false uid gid ilname iname ipath iregex links lname empty path \ + regex used xtype fprint fprint0 fprintf print0 printf not a and o or)/' \ + 'n/*/d/' +complete fg 'c/%/j/' +complete gpart 'p/1/(add backup bootcode commit create delete destroy modify recover resize restore set show undo unset)/' \ + 'n/add/x:-t type [-a alignment] [-b start] [-s size] [-i index] [-l label] -f flags geom/' \ + 'n/backup/x:geom/' \ + 'n/bootcode/x:[-b bootcode] [-p partcode -i index] [-f flags] geom/' \ + 'n/commit/x:geom/' \ + 'n/create/x:-s scheme [-n entries] [-f flags] provider/' \ + 'n/delete/x:-i index [-f flags] geom/' \ + 'n/destroy/x:[-F] [-f flags] geom/' \ + 'n/modify/x:-i index [-l label] [-t type] [-f flags] geom/' \ + 'n/recover/x:[-f flags] geom/' \ + 'n/resize/x:-i index [-a alignment] [-s size] [-f flags] geom/' \ + 'n/restore/x:[-lF] [-f flags] provider [...]/' \ + 'n/set/x:-a attrib -i index [-f flags] geom/' \ + 'n/show/x:[-l | -r] [-p] [geom ...]/' \ + 'n/undo/x:geom/' \ + 'n/unset/x:-a attrib -i index [-f flags] geom/' +complete grep 'c/-*A/x:<#_lines_after>/' \ + 'c/-*B/x:<#_lines_before>/' \ + 'c/--/(extended-regexp fixed-regexp basic-regexp regexp file ignore-case word-regexp line-regexp \ + no-messages revert-match version help byte-offset line-number with-filename no-filename quiet silent \ + text directories recursive files-without-match files-with-matches count before-context after-context \ + context binary unix-byte-offsets)/' \ + 'c/-/(A a B b C c d E e F f G H h i L l n q r s U u V v w x)/' \ + 'p/1/x:<limited_regular_expression>/ N/-*e/f/' \ + 'n/-*e/x:<limited_regular_expression>/' \ + 'n/-*f/f/' \ + 'n/*/f/' +complete ifconfig 'p@1@`ifconfig -l`@' \ + 'n/*/(range phase link netmask mtu vlandev vlan metric mediaopt down delete broadcast arp debug)/' + 'c/%/j/' \ + 'n/*/`ps -ax | awk '"'"'{print $1}'"'"'`/' complete kill 'c/-/S/' 'c/%/j/' 'n/*/`ps -ax | awk '"'"'{print $1}'"'"'`/' complete killall 'c/-/S/' 'c/%/j/' 'n/*/`ps -ax | awk '"'"'{print $5}'"'"'`/' -complete kldunload 'n@*@`kldstat | awk \{sub\(\/\.ko\/,\"\",\$NF\)\;print\ \$NF\} | grep -v Name` @' -complete make 'n@*@`make -pn | sed -n -E "/^[#_.\/[:blank:]]+/d; /=/d; s/[[:blank:]]*:.*//gp;"`@' -complete man 'C/*/c/' +complete kldload 'n@*@`ls -1 /boot/modules/ /boot/kernel/ | awk -F/ \$NF\ \~\ \".ko\"\ \{sub\(\/\.ko\/,\"\",\$NF\)\;print\ \$NF\}`@' +complete kldunload 'n@*@`kldstat | awk \{sub\(\/\.ko\/,\"\",\$NF\)\;print\ \$NF\} | grep -v Name`@' +complete make 'p@1@`make -pn | sed -n -E "/^[#_.\/[:blank:]]+/d; /=/d; s/[[:blank:]]*:.*//gp;"`@' \ + 'n@-V@`make -ndv | & grep Global: | sed -E -e "s/^Global://" -e "s/ .*//" -e "/^[[:lower:]]/d" | sort | uniq`@' +complete man 'C/*/c/' +complete netstat 'n@-I@`ifconfig -l`@' complete pkg_delete 'c/-/(i v D n p d f G x X r)/' 'n@*@`ls /var/db/pkg`@' complete pkg_info 'c/-/(a b v p q Q c d D f g i I j k K r R m L s o G O x X e E l t V P)/' 'n@*@`\ls -1 /var/db/pkg | sed s%/var/db/pkg/%%`@' -complete portmaster 'c/--/(always-fetch check-depends check-port-dbdir clean-distfiles \ - clean-packages delete-build-only delete-packages force-config help \ - index index-first index-only list-origins local-packagedir no-confirm \ - no-index-fetch no-term-title packages packages-build packages-if-newer \ - packages-local packages-only show-work update-if-newer version)/' \ - 'c/-/(a b B C d D e f F g G h H i l L m n o p r R s t u v w x)/' \ - 'n@*@`_PKGS_PkGs_PoRtS_`@' +complete ping 'p/1/$hosts/' +complete pkill 'c/-/S/' \ + 'n@*@`ps -axc -o command="" | sort | uniq`@' +complete portmaster 'c/--/(always-fetch check-depends check-port-dbdir clean-distfiles clean-packages delete-build-only \ + delete-packages force-config help index index-first index-only list-origins local-packagedir \ + no-confirm no-index-fetch no-term-title packages packages-build packages-if-newer packages-local \ + packages-only show-work update-if-newer version)/' \ + 'c/-/(a b B C d D e f F g G h H i l L m n o p r R s t u v w x)/' \ + 'n@*@`pkg_info -E \*`@' +complete rsync "c,*:/,F:/," \ + "c,*:,F:$HOME," \ + 'c/*@/$hosts/:/' +complete scp "c,*:/,F:/," \ + "c,*:,F:$HOME," \ + 'c/*@/$hosts/:/' complete service 'c/-/(e l r v)/' 'p/1/`service -l`/' 'n/*/(start stop reload restart status rcvar onestart onestop)/' +complete svn 'C@file:///@`'"${HOME}/etc/tcsh/complete.d/svn"'`@@' \ + 'n@ls@(file:/// svn+ssh:// svn://)@@' \ + 'n@help@(add blame cat checkout cleanup commit copy delete export help import info list ls lock log merge mkdir move propdel \ + propedit propget proplist propset resolved revert status switch unlock update)@' 'p@1@(add blame cat checkout cleanup commit \ + copy delete export help import info list ls lock log merge mkdir move propdel propedit propget proplist propset resolved \ + revert status switch unlock update)@' +complete ssh 'p/1/$hosts/' \ + 'c/-/(l n)/' \ + 'n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/' complete sysctl 'n/*/`sysctl -Na`/' +complete tmux 'n/*/(attach detach has kill-server kill-session lsc lscm ls lockc locks new refresh rename showmsgs source start suspendc switchc)/' +complete which 'C/*/c/' + +if ( -f /etc/printcap ) then + set printers=(`sed -n -e "/^[^ #].*:/s/:.*//p" /etc/printcap`) + complete lpr 'c/-P/$printers/' + complete lpq 'c/-P/$printers/' + complete lprm 'c/-P/$printers/' +endif # Alternate prompts set prompt = '#' diff --git a/share/examples/cvsup/cvs-supfile b/share/examples/cvsup/cvs-supfile index 8b4f16d..b4edfdc 100644 --- a/share/examples/cvsup/cvs-supfile +++ b/share/examples/cvsup/cvs-supfile @@ -169,19 +169,6 @@ ports-all #ports-x11-toolkits #ports-x11-wm -## Documentation -# -# The easiest way to get the doc tree is to use the "doc-all" -# mega-collection. It includes all of the individual "doc-*" -# collections, -doc-all - -## Website -# -# This collection retrieves the www tree of the FreeBSD -# repository -www - ## Projects # # This collection retrieves the projects tree of the FreeBSD @@ -200,4 +187,3 @@ cvsroot-all #cvsroot-common #cvsroot-src #cvsroot-ports -#cvsroot-doc diff --git a/share/examples/cvsup/doc-supfile b/share/examples/cvsup/doc-supfile deleted file mode 100644 index 0271ecc..0000000 --- a/share/examples/cvsup/doc-supfile +++ /dev/null @@ -1,64 +0,0 @@ -# $FreeBSD$ -# -# This file contains all of the "CVSup collections" that make up the -# source of the FreeBSD doc tree -# -# csup (CVS Update Protocol) allows you to download the latest CVS -# tree (or any branch of development therefrom) to your system easily -# and efficiently -# -# To keep your CVS tree up-to-date run: -# -# csup doc-supfile -# -# Note that this only updates the tree contents and does not -# update what is actually installed. -# -# You may wish to change some of the settings in this file to better -# suit your system: -# -# host=CHANGE_THIS.FreeBSD.org -# This specifies the server host which will supply the -# file updates. You must change it to one of the CVSup -# mirror sites listed in the FreeBSD Handbook at -# http://www.freebsd.org/doc/handbook/cvsup.html#CVSUP-MIRRORS. -# You can override this setting on the command line -# with cvsup's "-h host" option. -# -# base=/var/db -# This specifies the root where csup will store information -# about the collections you have transferred to your system. -# A setting of "/var/db" will generate this information in -# /var/db/sup. You can override the "base" setting on the -# command line with cvsup's "-b base" option. This directory -# must exist in order to run CVSup. -# -# prefix=/usr -# This specifies where to place the requested files. A -# setting of "/usr" will place all of the files requested -# in "/usr/doc" (e.g., "/usr/doc/en_US.ISO8859-1"). -# The prefix directory must exist in order to run CVSup. - -# Defaults that apply to all the collections -# -# IMPORTANT: Change the next line to use one of the CVSup mirror sites -# listed at http://www.freebsd.org/doc/handbook/cvsup.html#CVSUP-MIRRORS. -*default host=CHANGE_THIS.FreeBSD.org -*default base=/var/db -*default prefix=/usr -# -# "tag" in the next line should always either be "." to receive the most -# up-to-date files, or left blank (i.e., "*default release=cvs") to receive -# the CVS ,v files. The doc collection is not branched. -# -*default release=cvs tag=. -*default delete use-rel-suffix - -# If you seem to be limited by CPU rather than network or disk bandwidth, try -# commenting out the following line. (Normally, today's CPUs are fast enough -# that you want to run compression.) -*default compress - -# This will retrieve the entire doc branch of the FreeBSD repository. -# This includes the handbook, FAQ, and translations thereof. -doc-all diff --git a/share/examples/cvsup/ports-supfile b/share/examples/cvsup/ports-supfile index 9090944..582f29f 100644 --- a/share/examples/cvsup/ports-supfile +++ b/share/examples/cvsup/ports-supfile @@ -1,15 +1,20 @@ # $FreeBSD$ # # This file contains all of the "CVSup collections" that make up the -# FreeBSD-current ports collection. +# ports collection. # # csup (CVS Update Protocol) allows you to download the latest CVS # tree (or any branch of development therefrom) to your system easily # and efficiently -# -# To keep your CVS tree up-to-date run: -# -# csup ports-supfile +# _ +# __ ____ _ _ __ _ __ (_)_ __ __ _ +# \ \ /\ / / _` | '__| '_ \| | '_ \ / _` | +# \ V V / (_| | | | | | | | | | | (_| | +# \_/\_/ \__,_|_| |_| |_|_|_| |_|\__, | +# |___/ +# cvsup for ports is being phased out as of 28 February 2013 and its +# use is discouraged. Users are advised to migrate to portsnap +# or svn directly. # # Note that this only updates the tree contents and does not # update what is actually installed. @@ -63,11 +68,13 @@ ports-all # These are the individual collections that make up "ports-all". If you # use these, be sure to comment out "ports-all" above. -# + # Be sure to ALWAYS cvsup the ports-base collection if you use any of the # other individual collections below. ports-base is a mandatory collection # for the ports collection, and your ports may not build correctly if it # is not kept up to date. +# +# Use of individual collections is not a supported configuration. #ports-base #ports-accessibility #ports-arabic diff --git a/share/examples/cvsup/refuse b/share/examples/cvsup/refuse index 96c6cd0..c257f71 100644 --- a/share/examples/cvsup/refuse +++ b/share/examples/cvsup/refuse @@ -1,23 +1,3 @@ -doc/bn_* -doc/da_* -doc/de_* -doc/el_* -doc/es_* -doc/fr_* -doc/hu_* -doc/id_* -doc/it_* -doc/ja_* -doc/mn_* -doc/nl_* -doc/no_* -doc/pl_* -doc/pt_* -doc/ro_* -doc/ru_* -doc/sr_* -doc/tr_* -doc/zh_* ports/arabic ports/chinese ports/french diff --git a/share/examples/cvsup/refuse.README b/share/examples/cvsup/refuse.README index 5af4d46..4b90962 100644 --- a/share/examples/cvsup/refuse.README +++ b/share/examples/cvsup/refuse.README @@ -16,33 +16,9 @@ CVSup's base directory to "/var/db". The sup directory is in the base directory; i.e., it is "/var/db/sup". If you have changed your base directory, your sup directory is /path/to/base/sup. -This file used to contain /usr/src/etc/sendmail/freebsd.mc in case -you modified that file. However, this was removed as it can break -buildworld. Modify /etc/mail/`hostname`.mc instead. - If you are an English speaker and don't wish to receive the -foreign-language documentation or ports, use the following patterns: +non-English ports, use the following patterns: - doc/bn_* - doc/da_* - doc/de_* - doc/el_* - doc/es_* - doc/fr_* - doc/hu_* - doc/id_* - doc/it_* - doc/ja_* - doc/mn_* - doc/nl_* - doc/no_* - doc/pl_* - doc/pt_* - doc/ro_* - doc/ru_* - doc/sr_* - doc/tr_* - doc/zh_* ports/arabic ports/chinese ports/french @@ -57,6 +33,9 @@ foreign-language documentation or ports, use the following patterns: ports/ukrainian ports/vietnamese +Note that this is *not* a supported configuration and may result +in ports builds breaking. + Use refuse files with care. Some parts of the src distribution depend on files in completely different parts. diff --git a/share/examples/cvsup/stable-supfile b/share/examples/cvsup/stable-supfile index 209b1eb..c747944 100644 --- a/share/examples/cvsup/stable-supfile +++ b/share/examples/cvsup/stable-supfile @@ -43,14 +43,13 @@ # # DANGER! WARNING! LOOK OUT! VORSICHT! # -# If you add any of the ports or doc collections to this file, be sure to +# If you add any of the ports collections to this file, be sure to # specify them with a "tag" value set to ".", like this: # # ports-all tag=. -# doc-all tag=. # # If you leave out the "tag=." portion, CVSup will delete all of -# the files in your ports or doc tree. That is because the ports and doc +# the files in your ports. That is because the ports # collections do not use the same tags as the main part of the FreeBSD # source tree. # diff --git a/share/examples/cvsup/www-supfile b/share/examples/cvsup/www-supfile deleted file mode 100644 index db78f0f..0000000 --- a/share/examples/cvsup/www-supfile +++ /dev/null @@ -1,58 +0,0 @@ -# $FreeBSD$ -# -# This file contains all of the "CVSup collections" that make up the -# source of the FreeBSD www tree -# -# csup (CVS Update Protocol) allows you to download the latest CVS -# tree (or any branch of development therefrom) to your system easily -# and efficiently -# -# To keep your CVS tree up-to-date run: -# -# csup www-supfile -# -# Note that this only updates the tree contents and does not -# update what is actually installed. -# -# You may wish to change some of the settings in this file to better -# suit your system: -# -# host=CHANGE_THIS.FreeBSD.org -# This specifies the server host which will supply the -# file updates. You must change it to one of the CVSup -# mirror sites listed in the FreeBSD Handbook at -# http://www.freebsd.org/doc/handbook/cvsup.html#CVSUP-MIRRORS. -# You can override this setting on the command line -# with cvsup's "-h host" option. -# -# base=/var/db -# This specifies the root where csup will store information -# about the collections you have transferred to your system. -# A setting of "/var/db" will generate this information in -# /var/db/sup. You can override the "base" setting on the -# command line with cvsup's "-b base" option. This directory -# must exist in order to run CVSup. -# -# prefix=/usr -# This specifies where to place the requested files. A -# setting of "/usr" will place all of the files requested -# in "/usr/www" (e.g., "/usr/www/en", "/usr/www/ja"). -# The prefix directory must exist in order to run CVSup. - -# Defaults that apply to all the collections -# -# IMPORTANT: Change the next line to use one of the CVSup mirror sites -# listed at http://www.freebsd.org/doc/handbook/cvsup.html#CVSUP-MIRRORS. -*default host=CHANGE_THIS.FreeBSD.org -*default base=/var/db -*default prefix=/usr -*default release=cvs tag=. -*default delete use-rel-suffix - -# If you seem to be limited by CPU rather than network or disk bandwidth, try -# commenting out the following line. (Normally, today's CPUs are fast enough -# that you want to run compression.) -*default compress - -# This collection retrieves the www/ tree of the FreeBSD repository -www diff --git a/share/examples/diskless/README.BOOTP b/share/examples/diskless/README.BOOTP index 5ee5343..6383bb7 100644 --- a/share/examples/diskless/README.BOOTP +++ b/share/examples/diskless/README.BOOTP @@ -85,7 +85,7 @@ options NULLFS # nullfs to map /var/tmp to /tmp BOOTP SERVER SETUP - The BOOTP server must be running on the same logical LAN as the the + The BOOTP server must be running on the same logical LAN as the BOOTP client(s). You need to setup two things: (1) You need to NFS-export /, /usr, and /var. diff --git a/share/examples/etc/README.examples b/share/examples/etc/README.examples index ba2cf00..d703edb 100644 --- a/share/examples/etc/README.examples +++ b/share/examples/etc/README.examples @@ -9,7 +9,6 @@ This directory contains the following files: amd.map - filesystem automounter lookup resolution map (see amd(8)) apmd.conf - configuration file for apmd(8) -auth.conf - authentication capability database (see auth.conf(5)) bsd-style-copyright - copyright style for bsd system crontab - system scheduled command table (see crontab(5)) csh.cshrc - sample .cshrc (see csh(1)) @@ -41,7 +40,6 @@ netstart - network startup script run from /etc/rc network.subr - routines for network configuration scripts networks - see networks(5) newsyslog.conf - configuration for system log file rotator newsyslog(8) -nsmb.conf - smbfs lookups configuration file opieaccess - OPIE database of trusted networks pf.conf - pf(4) example configuration file pf.os - SYN fingerprint database diff --git a/share/examples/etc/make.conf b/share/examples/etc/make.conf index 05872ff..60c7668 100644 --- a/share/examples/etc/make.conf +++ b/share/examples/etc/make.conf @@ -187,8 +187,6 @@ #SUPHOST= cvsup.uk.FreeBSD.org #SUPFILE= /usr/share/examples/cvsup/standard-supfile #PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile -#DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile -#WWWSUPFILE= /usr/share/examples/cvsup/www-supfile # # top(1) uses a hash table for the user names. The size of this hash # can be tuned to match the number of local users. The table size should diff --git a/share/examples/kld/dyn_sysctl/dyn_sysctl.c b/share/examples/kld/dyn_sysctl/dyn_sysctl.c index 5ed5e26..684f58d 100644 --- a/share/examples/kld/dyn_sysctl/dyn_sysctl.c +++ b/share/examples/kld/dyn_sysctl/dyn_sysctl.c @@ -59,7 +59,7 @@ load(module_t mod, int cmd, void *arg) error = 0; switch (cmd) { - case MOD_LOAD : + case MOD_LOAD: /* Initialize the contexts */ printf("Initializing contexts and creating subtrees.\n\n"); sysctl_ctx_init(&clist); @@ -123,7 +123,7 @@ load(module_t mod, int cmd, void *arg) OID_AUTO, "string_c", CTLFLAG_RD, c, 0, "shouldn't panic"); printf("3. (%p) /kern/dyn_sysctl bad (WRONG!)\n", &clist2); break; - case MOD_UNLOAD : + case MOD_UNLOAD: printf("1. Try to free ctx1 (%p): ", &clist); if (sysctl_ctx_free(&clist) != 0) printf("failed: expected. Need to remove ctx3 first.\n"); @@ -153,7 +153,7 @@ load(module_t mod, int cmd, void *arg) } else printf("Ok\n"); break; - default : + default: error = EOPNOTSUPP; break; } diff --git a/share/examples/libusb20/Makefile b/share/examples/libusb20/Makefile new file mode 100644 index 0000000..6f870a1 --- /dev/null +++ b/share/examples/libusb20/Makefile @@ -0,0 +1,13 @@ +# $FreeBSD$ +TARGETS= bulk control + +all: $(TARGETS) + +bulk: bulk.o aux.o + $(CC) $(CFLAGS) -o bulk bulk.o aux.o -lusb + +control: control.o aux.o + $(CC) $(CFLAGS) -o control control.o aux.o -lusb + +clean: + rm -f $(TARGETS) *.o *~ diff --git a/share/examples/libusb20/README b/share/examples/libusb20/README new file mode 100644 index 0000000..e30d53e --- /dev/null +++ b/share/examples/libusb20/README @@ -0,0 +1,42 @@ +As I dug my own way through the documentation of libusb 2.0 that ships +with FreeBSD 8+ as the OS'es own USB library API, I noticed there are +only few code examples around under /usr/src (namely, usbconfig +itself). + +The libusb20(3) man page is a starting point, but it's a reference +manual, nothing less, nothing more. Using just a reference, it's not +very easy to start writing your own code based on that. + +So I started writing my own examples, to "get a feeling" about how to +use the library. I covered two typical scenarios which are common for +a number of devices. + +The first one is called "bulk", and uses bulk output (host to device) +and input transfers to talk to an USB device. + +The second one is called "control", and can use both control output +and input transfers, as well as so-called interrupt transfers. The +latter are used for data that are being reported frequently or +repeatedly, like position updates from a pointing device (mouse). +Despite of its name, the host has to poll devices for their interrupt +transfers on each USB frame (i.e., each 1 ms). + +Recommended reading is the USB 3.0 specification (the older 2.0 one +would do as well), to be found under + +http://www.usb.org/developers/docs/ + +as well as documents for individual USB device classes where +appropriate. + +Feel free to be liberal in the licensing of these examples: while the +beer-ware license mandates to keep the license notice, this only +applies to modifications of the original examples itself. For +copy&pasting (even a larger) piece of an example into your own work, I +won't imply you have to reproduce the beer-ware license text there. +Feel free to credit my name in your derived work if you want. + +Dresden, July 2012 +Joerg Wunsch <joerg@FreeBSD.org> + +# $FreeBSD$ diff --git a/share/examples/libusb20/aux.c b/share/examples/libusb20/aux.c new file mode 100644 index 0000000..434972a --- /dev/null +++ b/share/examples/libusb20/aux.c @@ -0,0 +1,120 @@ +/* ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42) (by Poul-Henning Kamp): + * <joerg@FreeBSD.ORG> wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Joerg Wunsch + * ---------------------------------------------------------------------------- + * + * $FreeBSD$ + */ + +/* + * Helper functions common to all examples + */ + +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> + +#include <libusb20.h> +#include <libusb20_desc.h> + +#include "aux.h" + +/* + * Return a textual description for error "r". + */ +const char * +usb_error(enum libusb20_error r) +{ + const char *msg = "UNKNOWN"; + + switch (r) + { + case LIBUSB20_SUCCESS: + msg = "success"; + break; + + case LIBUSB20_ERROR_IO: + msg = "IO error"; + break; + + case LIBUSB20_ERROR_INVALID_PARAM: + msg = "Invalid parameter"; + break; + + case LIBUSB20_ERROR_ACCESS: + msg = "Access denied"; + break; + + case LIBUSB20_ERROR_NO_DEVICE: + msg = "No such device"; + break; + + case LIBUSB20_ERROR_NOT_FOUND: + msg = "Entity not found"; + break; + + case LIBUSB20_ERROR_BUSY: + msg = "Resource busy"; + break; + + case LIBUSB20_ERROR_TIMEOUT: + msg = "Operation timed out"; + break; + + case LIBUSB20_ERROR_OVERFLOW: + msg = "Overflow"; + break; + + case LIBUSB20_ERROR_PIPE: + msg = "Pipe error"; + break; + + case LIBUSB20_ERROR_INTERRUPTED: + msg = "System call interrupted"; + break; + + case LIBUSB20_ERROR_NO_MEM: + msg = "Insufficient memory"; + break; + + case LIBUSB20_ERROR_NOT_SUPPORTED: + msg = "Operation not supported"; + break; + + case LIBUSB20_ERROR_OTHER: + msg = "Other error"; + break; + } + + return msg; +} + +/* + * Print "len" bytes from "buf" in hex, followed by an ASCII + * representation (somewhat resembling the output of hd(1)). + */ +void +print_formatted(uint8_t *buf, uint32_t len) +{ + int i, j; + + for (j = 0; j < len; j += 16) + { + printf("%02x: ", j); + + for (i = 0; i < 16 && i + j < len; i++) + printf("%02x ", buf[i + j]); + printf(" "); + for (i = 0; i < 16 && i + j < len; i++) + { + uint8_t c = buf[i + j]; + if(c >= ' ' && c <= '~') + printf("%c", (char)c); + else + putchar('.'); + } + putchar('\n'); + } +} diff --git a/share/examples/libusb20/aux.h b/share/examples/libusb20/aux.h new file mode 100644 index 0000000..d43ea4e --- /dev/null +++ b/share/examples/libusb20/aux.h @@ -0,0 +1,15 @@ +/* ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42) (by Poul-Henning Kamp): + * <joerg@FreeBSD.ORG> wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Joerg Wunsch + * ---------------------------------------------------------------------------- + * + * $FreeBSD$ + */ + +#include <stdint.h> +#include <libusb20.h> + +const char *usb_error(enum libusb20_error r); +void print_formatted(uint8_t *buf, uint32_t len); diff --git a/share/examples/libusb20/bulk.c b/share/examples/libusb20/bulk.c new file mode 100644 index 0000000..7b6b02c --- /dev/null +++ b/share/examples/libusb20/bulk.c @@ -0,0 +1,243 @@ +/* ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42) (by Poul-Henning Kamp): + * <joerg@FreeBSD.ORG> wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Joerg Wunsch + * ---------------------------------------------------------------------------- + * + * $FreeBSD$ + */ + +/* + * Simple demo program to illustrate the handling of FreeBSD's + * libusb20. + * + * Issues a bulk output, and then requests a bulk input. + */ + +/* + * Examples: + * Just list all VID:PID pairs + * ./bulk + * + * Say "hello" to an Atmel JTAGICEmkII. + * ./bulk -o 2 -i 0x82 -v 0x03eb -p 0x2103 0x1b 0 0 1 0 0 0 0x0e 1 0xf3 0x97 + * + * Return the INQUIRY data of an USB mass storage device. + * (It's best to have the umass(4) driver unloaded while doing such + * experiments, and perform a "usbconfig reset" for the device if it + * gets stuck.) + * ./bulk -v 0x5e3 -p 0x723 -i 0x81 -o 2 0x55 0x53 0x42 0x43 1 2 3 4 31 12 0x80 0x24 0 0 0 0x12 0 0 0 36 0 0 0 0 0 0 0 0 0 0 + */ + + +#include <limits.h> +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> +#include <sysexits.h> +#include <unistd.h> + +#include <libusb20.h> +#include <libusb20_desc.h> + +#include "aux.h" + +/* + * If you want to see the details of the internal datastructures + * in the debugger, unifdef the following. + */ +#ifdef DEBUG +# include <sys/queue.h> +# include "/usr/src/lib/libusb/libusb20_int.h" +#endif + +#define BUFLEN 64 + +#define TIMEOUT 5000 /* 5 s */ + +int in_ep, out_ep; /* endpoints */ +uint8_t out_buf[BUFLEN]; +uint16_t out_len; + +static void +doit(struct libusb20_device *dev) +{ + int rv; + + /* + * Open the device, allocating memory for two possible (bulk or + * interrupt) transfers. + * + * If only control transfers are intended (via + * libusb20_dev_request_sync()), transfer_max can be given as 0. + */ + if ((rv = libusb20_dev_open(dev, 2)) != 0) + { + fprintf(stderr, "libusb20_dev_open: %s\n", usb_error(rv)); + return; + } + + /* + * If the device has more than one configuration, select the desired + * one here. + */ + if ((rv = libusb20_dev_set_config_index(dev, 0)) != 0) + { + fprintf(stderr, "libusb20_dev_set_config_index: %s\n", usb_error(rv)); + return; + } + + /* + * Two transfers have been requested in libusb20_dev_open() above; + * obtain the corresponding transfer struct pointers. + */ + struct libusb20_transfer *xfr_out = libusb20_tr_get_pointer(dev, 0); + struct libusb20_transfer *xfr_in = libusb20_tr_get_pointer(dev, 1); + + if (xfr_in == NULL || xfr_out == NULL) + { + fprintf(stderr, "libusb20_tr_get_pointer: %s\n", usb_error(rv)); + return; + } + + /* + * Open both transfers, the "out" one for the write endpoint, the + * "in" one for the read endpoint (ep | 0x80). + */ + if ((rv = libusb20_tr_open(xfr_out, 0, 1, out_ep)) != 0) + { + fprintf(stderr, "libusb20_tr_open: %s\n", usb_error(rv)); + return; + } + if ((rv = libusb20_tr_open(xfr_in, 0, 1, in_ep)) != 0) + { + fprintf(stderr, "libusb20_tr_open: %s\n", usb_error(rv)); + return; + } + + uint8_t in_buf[BUFLEN]; + uint32_t rlen; + + if (out_len > 0) + { + if ((rv = libusb20_tr_bulk_intr_sync(xfr_out, out_buf, out_len, &rlen, TIMEOUT)) + != 0) + { + fprintf(stderr, "libusb20_tr_bulk_intr_sync (OUT): %s\n", usb_error(rv)); + } + printf("sent %d bytes\n", rlen); + } + + if ((rv = libusb20_tr_bulk_intr_sync(xfr_in, in_buf, BUFLEN, &rlen, TIMEOUT)) + != 0) + { + fprintf(stderr, "libusb20_tr_bulk_intr_sync: %s\n", usb_error(rv)); + } + printf("received %d bytes\n", rlen); + if (rlen > 0) + print_formatted(in_buf, rlen); + + libusb20_tr_close(xfr_out); + libusb20_tr_close(xfr_in); + + libusb20_dev_close(dev); +} + +static void +usage(void) +{ + fprintf(stderr, + "Usage ./usb -i <IN_EP> -o <OUT_EP> -v <VID> -p <PID> [<outdata> ...\n]"); + exit(EX_USAGE); +} + +int +main(int argc, char **argv) +{ + unsigned int vid = UINT_MAX, pid = UINT_MAX; /* impossible VID:PID */ + int c; + + while ((c = getopt(argc, argv, "i:o:p:v:")) != -1) + switch (c) + { + case 'i': + in_ep = strtol(optarg, NULL, 0); + break; + + case 'o': + out_ep = strtol(optarg, NULL, 0); + break; + + case 'p': + pid = strtol(optarg, NULL, 0); + break; + + case 'v': + vid = strtol(optarg, NULL, 0); + break; + + default: + usage(); + break; + } + argc -= optind; + argv += optind; + + if (vid != UINT_MAX || pid != UINT_MAX) + { + if (in_ep == 0 || out_ep == 0) + { + usage(); + } + if ((in_ep & 0x80) == 0) + { + fprintf(stderr, "IN_EP must have bit 7 set\n"); + return (EX_USAGE); + } + + if (argc > 0) + { + for (out_len = 0; argc > 0 && out_len < BUFLEN; out_len++, argc--) + { + unsigned n = strtoul(argv[out_len], 0, 0); + if (n > 255) + fprintf(stderr, + "Warning: data #%d 0x%0x > 0xff, truncating\n", + out_len, n); + out_buf[out_len] = (uint8_t)n; + } + out_len++; + if (argc > 0) + fprintf(stderr, + "Data count exceeds maximum of %d, ignoring %d elements\n", + BUFLEN, optind); + } + } + + struct libusb20_backend *be; + struct libusb20_device *dev; + + if ((be = libusb20_be_alloc_default()) == NULL) + { + perror("libusb20_be_alloc()"); + return 1; + } + + dev = NULL; + while ((dev = libusb20_be_device_foreach(be, dev)) != NULL) + { + struct LIBUSB20_DEVICE_DESC_DECODED *ddp = + libusb20_dev_get_device_desc(dev); + + printf("Found device %s (VID:PID = 0x%04x:0x%04x)\n", + libusb20_dev_get_desc(dev), + ddp->idVendor, ddp->idProduct); + + if (ddp->idVendor == vid && ddp->idProduct == pid) + doit(dev); + } + + libusb20_be_free(be); + return 0; +} diff --git a/share/examples/libusb20/control.c b/share/examples/libusb20/control.c new file mode 100644 index 0000000..0a9d152 --- /dev/null +++ b/share/examples/libusb20/control.c @@ -0,0 +1,414 @@ +/* ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42) (by Poul-Henning Kamp): + * <joerg@FreeBSD.ORG> wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Joerg Wunsch + * ---------------------------------------------------------------------------- + * + * $FreeBSD$ + */ + +/* + * Simple demo program to illustrate the handling of FreeBSD's + * libusb20. + * + * XXX + */ + +/* + * Examples: + * Just list all VID:PID pairs + * ./control + * + * Standard device request GET_STATUS, report two bytes of status + * (bit 0 in the first byte returned is the "self powered" bit) + * ./control -v 0x3eb -p 0x2103 in std dev get_status 0 0 2 + * + * Request input reports through the interrupt pipe from a mouse + * device (move the mouse around after issuing the command): + * ./control -v 0x093a -p 0x2516 -i 0x81 + * + */ + + +#include <limits.h> +#include <stdbool.h> +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> +#include <sysexits.h> +#include <unistd.h> + +#include <libusb20.h> +#include <libusb20_desc.h> + +#include <sys/queue.h> + +/* + * If you want to see the details of the internal datastructures + * in the debugger, unifdef the following. + */ +#ifdef DEBUG +# include "/usr/src/lib/libusb/libusb20_int.h" +#endif + +#define BUFLEN 64 + +#define TIMEOUT 5000 /* 5 s */ + +int intr_ep; /* endpoints */ +struct LIBUSB20_CONTROL_SETUP_DECODED setup; + +uint8_t out_buf[BUFLEN]; +uint16_t out_len; + +bool do_request; + +static void +doit(struct libusb20_device *dev) +{ + int rv; + + if (do_request) + printf("doit(): bmRequestType 0x%02x, bRequest 0x%02x, wValue 0x%04x, wIndex 0x%04x, wLength 0x%04x\n", + setup.bmRequestType, + setup.bRequest, + setup.wValue, + setup.wIndex, + setup.wLength); + + /* + * Open the device, allocating memory for two possible (bulk or + * interrupt) transfers. + * + * If only control transfers are intended (via + * libusb20_dev_request_sync()), transfer_max can be given as 0. + */ + if ((rv = libusb20_dev_open(dev, 1)) != 0) + { + fprintf(stderr, "libusb20_dev_open: %s\n", usb_error(rv)); + return; + } + + /* + * If the device has more than one configuration, select the desired + * one here. + */ + if ((rv = libusb20_dev_set_config_index(dev, 0)) != 0) + { + fprintf(stderr, "libusb20_dev_set_config_index: %s\n", usb_error(rv)); + return; + } + + uint8_t *data = 0; + uint16_t actlen; + + if ((setup.bmRequestType & 0x80) != 0) + { + /* this is an IN request, allocate a buffer */ + data = malloc(setup.wLength); + if (data == 0) + { + fprintf(stderr, + "Out of memory allocating %u bytes of reply buffer\n", + setup.wLength); + return; + } + } + else + data = out_buf; + + if (do_request) + { + if ((rv = libusb20_dev_request_sync(dev, &setup, data, + &actlen, + TIMEOUT, + 0 /* flags */)) != 0) + { + fprintf(stderr, + "libusb20_dev_request_sync: %s\n", usb_error(rv)); + } + printf("sent %d bytes\n", actlen); + if ((setup.bmRequestType & 0x80) != 0) + { + print_formatted(data, (uint32_t)setup.wLength); + free(data); + } + } + + if (intr_ep != 0) + { + /* + * One transfer has been requested in libusb20_dev_open() above; + * obtain the corresponding transfer struct pointer. + */ + struct libusb20_transfer *xfr_intr = libusb20_tr_get_pointer(dev, 0); + + if (xfr_intr == NULL) + { + fprintf(stderr, "libusb20_tr_get_pointer: %s\n", usb_error(rv)); + return; + } + + /* + * Open the interrupt transfer. + */ + if ((rv = libusb20_tr_open(xfr_intr, 0, 1, intr_ep)) != 0) + { + fprintf(stderr, "libusb20_tr_open: %s\n", usb_error(rv)); + return; + } + + uint8_t in_buf[BUFLEN]; + uint32_t rlen; + + if ((rv = libusb20_tr_bulk_intr_sync(xfr_intr, in_buf, BUFLEN, &rlen, TIMEOUT)) + != 0) + { + fprintf(stderr, "libusb20_tr_bulk_intr_sync: %s\n", usb_error(rv)); + } + printf("received %d bytes\n", rlen); + if (rlen > 0) + print_formatted(in_buf, rlen); + + libusb20_tr_close(xfr_intr); + } + + libusb20_dev_close(dev); +} + +static void +usage(void) +{ + fprintf(stderr, + "Usage ./usb [-i <INTR_EP>] -v <VID> -p <PID> [dir type rcpt req wValue wIndex wLength [<outdata> ...]]\n"); + exit(EX_USAGE); +} + +static const char *reqnames[] = +{ + "get_status", + "clear_feature", + "res1", + "set_feature", + "res2", + "set_address", + "get_descriptor", + "set_descriptor", + "get_configuration", + "set_configuration", + "get_interface", + "set_interface", + "synch_frame", +}; + +static int +get_req(const char *reqname) +{ + size_t i; + size_t l = strlen(reqname); + + for (i = 0; + i < sizeof reqnames / sizeof reqnames[0]; + i++) + if (strncasecmp(reqname, reqnames[i], l) == 0) + return i; + + return strtoul(reqname, 0, 0); +} + + +static int +parse_req(int argc, char **argv) +{ + int idx; + uint8_t rt = 0; + + for (idx = 0; argc != 0 && idx <= 6; argc--, idx++) + switch (idx) + { + case 0: + /* dir[ection]: i[n] | o[ut] */ + if (*argv[idx] == 'i') + rt |= 0x80; + else if (*argv[idx] == 'o') + /* nop */; + else + { + fprintf(stderr, "request direction must be \"in\" or \"out\" (got %s)\n", + argv[idx]); + return -1; + } + break; + + case 1: + /* type: s[tandard] | c[lass] | v[endor] */ + if (*argv[idx] == 's') + /* nop */; + else if (*argv[idx] == 'c') + rt |= 0x20; + else if (*argv[idx] == 'v') + rt |= 0x40; + else + { + fprintf(stderr, + "request type must be one of \"standard\", \"class\", or \"vendor\" (got %s)\n", + argv[idx]); + return -1; + } + break; + + case 2: + /* rcpt: d[evice], i[nterface], e[ndpoint], o[ther] */ + if (*argv[idx] == 'd') + /* nop */; + else if (*argv[idx] == 'i') + rt |= 1; + else if (*argv[idx] == 'e') + rt |= 2; + else if (*argv[idx] == 'o') + rt |= 3; + else + { + fprintf(stderr, + "recipient must be one of \"device\", \"interface\", \"endpoint\", or \"other\" (got %s)\n", + argv[idx]); + return -1; + } + setup.bmRequestType = rt; + break; + + case 3: + setup.bRequest = get_req(argv[idx]); + break; + + case 4: + setup.wValue = strtoul(argv[idx], 0, 0); + break; + + case 5: + setup.wIndex = strtoul(argv[idx], 0, 0); + break; + + case 6: + setup.wLength = strtoul(argv[idx], 0, 0); + break; + } + + return argc; +} + + +int +main(int argc, char **argv) +{ + unsigned int vid = UINT_MAX, pid = UINT_MAX; /* impossible VID:PID */ + int c; + + /* + * Initialize setup struct. This step is required, and initializes + * internal fields in the struct. + * + * All the "public" fields are named exactly the way as the USB + * standard describes them, namely: + * + * setup.bmRequestType: bitmask, bit 7 is direction + * bits 6/5 is request type + * (standard, class, vendor) + * bits 4..0 is recipient + * (device, interface, endpoint, + * other) + * setup.bRequest: the request itself (see get_req() for standard + * requests, or specific value) + * setup.wValue: a 16-bit value + * setup.wIndex: another 16-bit value + * setup.wLength: length of associated data transfer, direction + * depends on bit 7 of bmRequestType + */ + LIBUSB20_INIT(LIBUSB20_CONTROL_SETUP, &setup); + + while ((c = getopt(argc, argv, "i:p:v:")) != -1) + switch (c) + { + case 'i': + intr_ep = strtol(optarg, NULL, 0); + break; + + case 'p': + pid = strtol(optarg, NULL, 0); + break; + + case 'v': + vid = strtol(optarg, NULL, 0); + break; + + default: + usage(); + break; + } + argc -= optind; + argv += optind; + + if (vid != UINT_MAX || pid != UINT_MAX) + { + if (intr_ep != 0 && (intr_ep & 0x80) == 0) + { + fprintf(stderr, "Interrupt endpoint must be of type IN\n"); + usage(); + } + + if (argc > 0) + { + do_request = true; + + int rv = parse_req(argc, argv); + if (rv < 0) + return EX_USAGE; + argc = rv; + + if (argc > 0) + { + for (out_len = 0; argc > 0 && out_len < BUFLEN; out_len++, argc--) + { + unsigned n = strtoul(argv[out_len], 0, 0); + if (n > 255) + fprintf(stderr, + "Warning: data #%d 0x%0x > 0xff, truncating\n", + out_len, n); + out_buf[out_len] = (uint8_t)n; + } + out_len++; + if (argc > 0) + fprintf(stderr, + "Data count exceeds maximum of %d, ignoring %d elements\n", + BUFLEN, optind); + } + } + } + + struct libusb20_backend *be; + struct libusb20_device *dev; + + if ((be = libusb20_be_alloc_default()) == NULL) + { + perror("libusb20_be_alloc()"); + return 1; + } + + dev = NULL; + while ((dev = libusb20_be_device_foreach(be, dev)) != NULL) + { + struct LIBUSB20_DEVICE_DESC_DECODED *ddp = + libusb20_dev_get_device_desc(dev); + + printf("Found device %s (VID:PID = 0x%04x:0x%04x)\n", + libusb20_dev_get_desc(dev), + ddp->idVendor, ddp->idProduct); + + if (ddp->idVendor == vid && ddp->idProduct == pid) + doit(dev); + } + + libusb20_be_free(be); + return 0; +} diff --git a/share/examples/mdoc/example.4 b/share/examples/mdoc/example.4 index a5fa1a6..c39e486 100644 --- a/share/examples/mdoc/example.4 +++ b/share/examples/mdoc/example.4 @@ -34,7 +34,6 @@ .Nd "example device driver manual page" .Sh SYNOPSIS To compile the -.Ns Nm driver into the kernel, place the following lines in the kernel configuration file: @@ -44,7 +43,6 @@ kernel configuration file: .Ed .Pp Alternatively, to load the -.Ns Nm driver as a module at boot time, place the following line in .Xr loader.conf 5 : diff --git a/share/examples/pf/faq-example1 b/share/examples/pf/faq-example1 index 91942f6..e9b240f 100644 --- a/share/examples/pf/faq-example1 +++ b/share/examples/pf/faq-example1 @@ -26,7 +26,7 @@ set skip on lo scrub in # nat/rdr -nat on $ext_if from !($ext_if) -> ($ext_if:0) +nat on $ext_if inet from !($ext_if) -> ($ext_if:0) nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" diff --git a/share/examples/pf/pf.conf b/share/examples/pf/pf.conf index 299999d..d97b4ed 100644 --- a/share/examples/pf/pf.conf +++ b/share/examples/pf/pf.conf @@ -16,7 +16,7 @@ #nat-anchor "ftp-proxy/*" #rdr-anchor "ftp-proxy/*" -#nat on $ext_if from !($ext_if) -> ($ext_if:0) +#nat on $ext_if inet from !($ext_if) -> ($ext_if:0) #rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021 #no rdr on $ext_if proto tcp from <spamd-white> to any port smtp #rdr pass on $ext_if proto tcp from any to any port smtp \ diff --git a/share/examples/scsi_target/scsi_target.c b/share/examples/scsi_target/scsi_target.c index 6f665af..1a7a061 100644 --- a/share/examples/scsi_target/scsi_target.c +++ b/share/examples/scsi_target/scsi_target.c @@ -88,7 +88,7 @@ static void handle_read(void); /* static int work_atio(struct ccb_accept_tio *); */ static void queue_io(struct ccb_scsiio *); static int run_queue(struct ccb_accept_tio *); -static int work_inot(struct ccb_immed_notify *); +static int work_inot(struct ccb_immediate_notify *); static struct ccb_scsiio * get_ctio(void); /* static void free_ccb(union ccb *); */ @@ -387,7 +387,7 @@ init_ccbs() warn("malloc INOT"); return (-1); } - inot->ccb_h.func_code = XPT_IMMED_NOTIFY; + inot->ccb_h.func_code = XPT_IMMEDIATE_NOTIFY; send_ccb((union ccb *)inot, /*priority*/1); } @@ -495,8 +495,8 @@ request_loop() /* Start one more transfer. */ retval = work_atio(&ccb->atio); break; - case XPT_IMMED_NOTIFY: - retval = work_inot(&ccb->cin); + case XPT_IMMEDIATE_NOTIFY: + retval = work_inot(&ccb->cin1); break; default: warnx("Unhandled ccb type %#x on workq", @@ -651,7 +651,7 @@ work_atio(struct ccb_accept_tio *atio) warnx("ATIO with %u bytes sense received", atio->sense_len); } - sense = &atio->sense_data; + sense = (struct scsi_sense_data_fixed *)&atio->sense_data; tcmd_sense(ctio->init_id, ctio, sense->flags, sense->add_sense_code, sense->add_sense_code_qual); send_ccb((union ccb *)ctio, /*priority*/1); @@ -772,16 +772,14 @@ run_queue(struct ccb_accept_tio *atio) } static int -work_inot(struct ccb_immed_notify *inot) +work_inot(struct ccb_immediate_notify *inot) { cam_status status; - int sense; if (debug) warnx("Working on INOT %p", inot); status = inot->ccb_h.status; - sense = (status & CAM_AUTOSNS_VALID) != 0; status &= CAM_STATUS_MASK; switch (status) { @@ -794,7 +792,7 @@ work_inot(struct ccb_immed_notify *inot) abort_all_pending(); break; case CAM_MESSAGE_RECV: - switch (inot->message_args[0]) { + switch (inot->arg) { case MSG_TASK_COMPLETE: case MSG_INITIATOR_DET_ERR: case MSG_ABORT_TASK_SET: @@ -805,7 +803,7 @@ work_inot(struct ccb_immed_notify *inot) case MSG_ABORT_TASK: case MSG_CLEAR_TASK_SET: default: - warnx("INOT message %#x", inot->message_args[0]); + warnx("INOT message %#x", inot->arg); break; } break; @@ -817,17 +815,6 @@ work_inot(struct ccb_immed_notify *inot) break; } - /* If there is sense data, use it */ - if (sense != 0) { - struct scsi_sense_data_fixed *sense; - - sense = (struct scsi_sense_data_fixed *)&inot->sense_data; - tcmd_sense(inot->initiator_id, NULL, sense->flags, - sense->add_sense_code, sense->add_sense_code_qual); - if (debug) - warnx("INOT has sense: %#x", sense->flags); - } - /* Requeue on SIM */ TAILQ_REMOVE(&work_queue, &inot->ccb_h, periph_links.tqe); send_ccb((union ccb *)inot, /*priority*/1); diff --git a/share/man/man1/Makefile b/share/man/man1/Makefile index 43bf944..23bc1d8 100644 --- a/share/man/man1/Makefile +++ b/share/man/man1/Makefile @@ -1,8 +1,16 @@ # @(#)Makefile 8.1 (Berkeley) 6/5/93 # $FreeBSD$ +.include <bsd.own.mk> + MAN= builtin.1 intro.1 +.if ${MK_ATF} != "no" +ATF= ${.CURDIR}/../../../contrib/atf +.PATH: ${ATF}/doc +MAN+= atf-test-program.1 +.endif + # Create MLINKS for Shell built in commands for which there are no userland # utilities of the same name: MLINKS= builtin.1 alias.1 \ diff --git a/share/man/man3/Makefile b/share/man/man3/Makefile index d1453eb..ccdc549 100644 --- a/share/man/man3/Makefile +++ b/share/man/man3/Makefile @@ -76,6 +76,7 @@ MLINKS+= queue.3 LIST_EMPTY.3 \ queue.3 LIST_INSERT_BEFORE.3 \ queue.3 LIST_INSERT_HEAD.3 \ queue.3 LIST_NEXT.3 \ + queue.3 LIST_PREV.3 \ queue.3 LIST_REMOVE.3 \ queue.3 LIST_SWAP.3 \ queue.3 SLIST_EMPTY.3 \ @@ -206,6 +207,7 @@ PTHREAD_MAN= pthread.3 \ pthread_equal.3 \ pthread_exit.3 \ pthread_getconcurrency.3 \ + pthread_getcpuclockid.3 \ pthread_getspecific.3 \ pthread_getthreadid_np.3 \ pthread_join.3 \ diff --git a/share/man/man3/pthread_getcpuclockid.3 b/share/man/man3/pthread_getcpuclockid.3 new file mode 100644 index 0000000..94a99ff --- /dev/null +++ b/share/man/man3/pthread_getcpuclockid.3 @@ -0,0 +1,84 @@ +.\" Copyright (c) 2012 David Xu <davidxu@FreeBSD.org> +.\" 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. +.\" +.\" Portions of this text are reprinted and reproduced in electronic form +.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- +.\" Portable Operating System Interface (POSIX), The Open Group Base +.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of +.\" Electrical and Electronics Engineers, Inc and The Open Group. In the +.\" event of any discrepancy between this version and the original IEEE and +.\" The Open Group Standard, the original IEEE and The Open Group Standard is +.\" the referee document. The original Standard can be obtained online at +.\" http://www.opengroup.org/unix/online.html. +.\" +.\" $FreeBSD$ +.\" +.Dd August 21, 2012 +.Dt PTHREAD_GETCPUCLOCKID 3 +.Os +.Sh NAME +.Nm pthread_getcpuclockid +.Nd access a thread CPU-time clock +.Sh LIBRARY +.Lb libpthread +.Sh SYNOPSIS +.In pthread.h +.In time.h +.Ft int +.Fn pthread_getcpuclockid "pthread_t thread_id" "clockid_t *clock_id" +.Sh DESCRIPTION +The +.Fn pthread_getcpuclockid +returns the clock ID of the CPU-time clock of the thread specified by +.Fa thread_id . +If the thread described by +.Fa thread_id +exists. +.Sh RETURN VALUES +Upon successful completion, +.Fn pthread_getcpuclockid +returns zero; otherwise, an error number is returned to indicate the +error. +.Sh ERRORS +The pthread_getcpuclockid() function will fail if: +.Bl -tag -width Er +.It Bq Er ESRCH +The value specified by +.Fa thread_id +does not refer to an existing thread. +.El +.Sh SEE ALSO +.Xr clock_gettime 2 +.Sh STANDARDS +The +.Fn pthread_getcpuclockid +function conforms to +.St -p1003.1-2004 . +.Sh HISTORY +The +.Fn pthread_getcpuclockid +function first appeared in +.Fx 10.0 . +.Sh AUTHORS +.An David Xu Aq davidxu@FreeBSD.org diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3 index 76f9464..256fea3 100644 --- a/share/man/man3/queue.3 +++ b/share/man/man3/queue.3 @@ -32,7 +32,7 @@ .\" @(#)queue.3 8.2 (Berkeley) 1/24/94 .\" $FreeBSD$ .\" -.Dd May 13, 2011 +.Dd Sep 12, 2012 .Dt QUEUE 3 .Os .Sh NAME @@ -81,6 +81,7 @@ .Nm LIST_INSERT_BEFORE , .Nm LIST_INSERT_HEAD , .Nm LIST_NEXT , +.Nm LIST_PREV , .Nm LIST_REMOVE , .Nm LIST_SWAP , .Nm TAILQ_CONCAT , @@ -155,6 +156,7 @@ lists and tail queues .Fn LIST_INSERT_BEFORE "TYPE *listelm" "TYPE *elm" "LIST_ENTRY NAME" .Fn LIST_INSERT_HEAD "LIST_HEAD *head" "TYPE *elm" "LIST_ENTRY NAME" .Fn LIST_NEXT "TYPE *elm" "LIST_ENTRY NAME" +.Fn LIST_PREV "TYPE *elm" "LIST_HEAD *head" "TYPE" "LIST_ENTRY NAME" .Fn LIST_REMOVE "TYPE *elm" "LIST_ENTRY NAME" .Fn LIST_SWAP "LIST_HEAD *head1" "LIST_HEAD *head2" "TYPE" "LIST_ENTRY NAME" .\" @@ -248,8 +250,18 @@ Code size and execution time of operations (except for removal) is about twice that of the singly-linked data-structures. .El .Pp -Linked lists are the simplest of the doubly linked data structures and support -only the above functionality over singly-linked lists. +Linked lists are the simplest of the doubly linked data structures. +They add the following functionality over the above: +.Bl -enum -compact -offset indent +.It +They may be traversed backwards. +.El +However: +.Bl -enum -compact -offset indent +.It +To traverse backwards, an entry to begin the traversal and the list in +which it is contained must be specified. +.El .Pp Tail queues add the following functionality: .Bl -enum -compact -offset indent @@ -763,6 +775,14 @@ The macro returns the next element in the list, or NULL if this is the last. .Pp The macro +.Nm LIST_PREV +returns the previous element in the list, or NULL if this is the first. +List +.Fa head +must contain element +.Fa elm . +.Pp +The macro .Nm LIST_REMOVE removes the element .Fa elm diff --git a/share/man/man3/siginfo.3 b/share/man/man3/siginfo.3 index 9452b08..2255766 100644 --- a/share/man/man3/siginfo.3 +++ b/share/man/man3/siginfo.3 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 8, 2005 +.Dd September 14, 2012 .Dt SIGINFO 3 .Os .Sh NAME @@ -154,6 +154,8 @@ object-specific hardware error process breakpoint .It Ta Dv TRAP_TRACE Ta process trace trap +.It Ta Dv TRAP_DTRACE Ta +DTrace induced trap .It Dv SIGCHLD Ta Dv CLD_EXITED Ta child has exited .It Ta Dv CLD_KILLED Ta @@ -195,6 +197,11 @@ signal generated by expiration of a timer set by signal generated by completion of an asynchronous I/O request .It Ta Dv SI_MESGQ Ta signal generated by arrival of a message on an empty message queue +.It Ta Dv SI_KERNEL Ta +signal generated by miscellaneous parts of the kernel +.It Ta Dv SI_LWP Ta +signal sent by +.Xr pthread_kill 3 .El .Pp In addition, the following signal-specific information is available: @@ -235,6 +242,10 @@ or Finally, the following code-specific information is available: .Bl -column ".Dv SI_QUEUE" ".Va si_overrun" .It Sy "Code Member Value" +.It Dv SI_USER Ta Va si_pid Ta +the process ID that sent the signal +.It Ta Va si_uid Ta +real user ID of the process that sent the signal .It Dv SI_QUEUE Ta Va si_value Ta the value passed to .Xr sigqueue 2 @@ -267,6 +278,10 @@ the value passed to system call .It Ta Va si_mqd Ta the ID of the message queue which generated the signal +.It Dv SI_LWP Ta Va si_pid Ta +the process ID that sent the signal +.It Ta Va si_uid Ta +real user ID of the process that sent the signal .El .Sh NOTES Currently, the kernel never generates the @@ -277,6 +292,15 @@ signal is queued when a process changed its status or exited. .Tn POSIX Realtime Extensions like aio, timer, and message queue also queue signals. +Signals with code +.Dv SI_USER , +.Dv SI_KERNEL +or +.Dv SI_LWP +are only queued if there are sufficient resources; +otherwise, +.Dv SI_NOINFO +results. For some hardware architectures, the exact value of .Va si_addr might not be available. @@ -289,7 +313,8 @@ might not be available. .Xr sigwaitinfo 2 , .Xr timer_create 2 , .Xr timer_settime 2 , -.Xr waitpid 2 +.Xr waitpid 2 , +.Xr pthread_kill 3 .Sh STANDARDS The .Vt siginfo_t @@ -300,6 +325,16 @@ Full support for .Tn POSIX signal information first appeared in .Fx 7.0 . +The codes +.Dv SI_USER +and +.Dv SI_KERNEL +can be generated as of +.Fx 8.1 . +The code +.Dv SI_LWP +can be generated as of +.Fx 9.0 . .Sh AUTHORS This manual page was written by .An "David Xu" Aq davidxu@FreeBSD.org . diff --git a/share/man/man3/sysexits.3 b/share/man/man3/sysexits.3 index 2ef3407..a0f9af9 100644 --- a/share/man/man3/sysexits.3 +++ b/share/man/man3/sysexits.3 @@ -26,7 +26,7 @@ .\" $FreeBSD$ .\" .\" " -.Dd March 31, 1996 +.Dd January 21, 2010 .Dt SYSEXITS 3 .Os .Sh NAME diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 89ef310..8894cfd 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -1,9 +1,12 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 # $FreeBSD$ +.include <bsd.own.mk> + MAN= aac.4 \ acpi.4 \ ${_acpi_asus.4} \ + ${_acpi_asus_wmi.4} \ ${_acpi_dock.4} \ ${_acpi_fujitsu.4} \ ${_acpi_hp.4} \ @@ -31,13 +34,18 @@ MAN= aac.4 \ alc.4 \ ale.4 \ alpm.4 \ + altera_avgen.4 \ + altera_jtag_uart.4 \ + altera_sdcard.4 \ altq.4 \ amdpm.4 \ ${_amdsbwd.4} \ ${_amdsmb.4} \ ${_amdtemp.4} \ + ${_bxe.4} \ amr.4 \ an.4 \ + ${_aout.4} \ ${_apic.4} \ arcmsr.4 \ ${_asmc.4} \ @@ -52,6 +60,7 @@ MAN= aac.4 \ atkbd.4 \ atkbdc.4 \ ${_atp.4} \ + ${_atf_test_case.4} \ ${_atrtc.4} \ ${_attimer.4} \ audit.4 \ @@ -85,7 +94,6 @@ MAN= aac.4 \ ciss.4 \ cm.4 \ cmx.4 \ - coda.4 \ ${_coretemp.4} \ ${_cpuctl.4} \ cpufreq.4 \ @@ -116,6 +124,7 @@ MAN= aac.4 \ enc.4 \ epair.4 \ esp.4 \ + est.4 \ et.4 \ eventtimers.4 \ exca.4 \ @@ -145,9 +154,7 @@ MAN= aac.4 \ gpib.4 \ gre.4 \ h_ertt.4 \ - harp.4 \ hatm.4 \ - hfa.4 \ hifn.4 \ hme.4 \ hpet.4 \ @@ -161,7 +168,6 @@ MAN= aac.4 \ icmp.4 \ icmp6.4 \ ida.4 \ - idt.4 \ ifmib.4 \ igb.4 \ igmp.4 \ @@ -185,6 +191,7 @@ MAN= aac.4 \ ipwfw.4 \ isci.4 \ iscsi_initiator.4 \ + isf.4 \ isp.4 \ ispfw.4 \ iwi.4 \ @@ -327,7 +334,9 @@ MAN= aac.4 \ nmdm.4 \ nsp.4 \ null.4 \ + ${_nvd.4} \ ${_nve.4} \ + ${_nvme.4} \ ${_nvram.4} \ ${_nvram2env.4} \ ${_nxge.4} \ @@ -346,6 +355,9 @@ MAN= aac.4 \ pcii.4 \ pcm.4 \ pcn.4 \ + ${_pf.4} \ + ${_pflog.4} \ + ${_pfsync.4} \ pim.4 \ polling.4 \ ppbus.4 \ @@ -449,6 +461,7 @@ MAN= aac.4 \ targ.4 \ tcp.4 \ tdfx.4 \ + terasic_mtl.4 \ termios.4 \ textdump.4 \ ti.4 \ @@ -506,6 +519,7 @@ MAN= aac.4 \ utopia.4 \ uvisor.4 \ uvscom.4 \ + vale.4 \ vga.4 \ vge.4 \ viapm.4 \ @@ -514,6 +528,7 @@ MAN= aac.4 \ ${_virtio.4} \ ${_virtio_balloon.4} \ ${_virtio_blk.4} \ + ${_virtio_scsi.4} \ vkbd.4 \ vlan.4 \ vpo.4 \ @@ -546,8 +561,12 @@ MAN= aac.4 \ MLINKS= ae.4 if_ae.4 MLINKS+=age.4 if_age.4 MLINKS+=agp.4 agpgart.4 +MLINKS+=alc.4 if_alc.4 MLINKS+=ale.4 if_ale.4 +MLINKS+=altera_sdcard.4 altera_sdcardc.4 MLINKS+=altq.4 ALTQ.4 +MLINKS+=ath.4 if_ath.4 +MLINKS+=ath_pci.4 if_ath_pci.4 MLINKS+=an.4 if_an.4 MLINKS+=aue.4 if_aue.4 MLINKS+=axe.4 if_axe.4 @@ -557,9 +576,14 @@ MLINKS+=bge.4 if_bge.4 MLINKS+=bktr.4 brooktree.4 MLINKS+=bridge.4 if_bridge.4 MLINKS+=bwi.4 if_bwi.4 +MLINKS+=bwn.4 if_bwn.4 +MLINKS+=${_bxe.4} ${_if_bxe.4} MLINKS+=cas.4 if_cas.4 +MLINKS+=cdce.4 if_cdce.4 MLINKS+=crypto.4 cryptodev.4 MLINKS+=cue.4 if_cue.4 +MLINKS+=cxgb.4 if_cxgb.4 +MLINKS+=cxgbe.4 if_cxgbe.4 MLINKS+=dc.4 if_dc.4 MLINKS+=de.4 if_de.4 MLINKS+=disc.4 if_disc.4 @@ -591,7 +615,6 @@ MLINKS+=hme.4 if_hme.4 MLINKS+=hpet.4 acpi_hpet.4 MLINKS+=${_hptrr.4} ${_rr232x.4} MLINKS+=${_attimer.4} ${_i8254.4} -MLINKS+=idt.4 if_idt.4 MLINKS+=igb.4 if_igb.4 MLINKS+=ip.4 rawip.4 MLINKS+=ipfirewall.4 ipaccounting.4 \ @@ -605,14 +628,19 @@ MLINKS+=ixgbe.4 if_ixgbe.4 MLINKS+=jme.4 if_jme.4 MLINKS+=kue.4 if_kue.4 MLINKS+=lagg.4 trunk.4 +MLINKS+=lagg.4 if_lagg.4 MLINKS+=le.4 if_le.4 MLINKS+=lge.4 if_lge.4 +MLINKS+=lmc.4 if_lmc.4 MLINKS+=lo.4 loop.4 MLINKS+=lp.4 plip.4 MLINKS+=malo.4 if_malo.4 MLINKS+=md.4 vn.4 MLINKS+=mem.4 kmem.4 MLINKS+=mn.4 if_mn.4 +MLINKS+=mos.4 if_mos.4 +MLINKS+=msk.4 if_msk.4 +MLINKS+=mwl.4 if_mwl.4 MLINKS+=mxge.4 if_mxge.4 MLINKS+=my.4 if_my.4 MLINKS+=${_ndis.4} ${_if_ndis.4} @@ -632,11 +660,13 @@ MLINKS+=re.4 if_re.4 MLINKS+=rl.4 if_rl.4 MLINKS+=rue.4 if_rue.4 MLINKS+=rum.4 if_rum.4 +MLINKS+=run.4 if_run.4 MLINKS+=scsi.4 CAM.4 \ scsi.4 cam.4 \ scsi.4 scbus.4 \ scsi.4 SCSI.4 MLINKS+=sf.4 if_sf.4 +MLINKS+=sge.4 if_sge.4 MLINKS+=sis.4 if_sis.4 MLINKS+=sk.4 if_sk.4 MLINKS+=smp.4 SMP.4 @@ -668,6 +698,7 @@ MLINKS+=vge.4 if_vge.4 MLINKS+=vlan.4 if_vlan.4 MLINKS+=vpo.4 imm.4 MLINKS+=vr.4 if_vr.4 +MLINKS+=vte.4 if_vte.4 MLINKS+=${_vtnet.4} ${_if_vtnet.4} MLINKS+=${_vxge.4} ${_if_vxge.4} MLINKS+=watchdog.4 SW_WATCHDOG.4 @@ -680,6 +711,7 @@ MLINKS+=zyd.4 if_zyd.4 .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" _acpi_asus.4= acpi_asus.4 +_acpi_asus_wmi.4= acpi_asus_wmi.4 _acpi_dock.4= acpi_dock.4 _acpi_fujitsu.4=acpi_fujitsu.4 _acpi_hp.4= acpi_hp.4 @@ -689,6 +721,7 @@ _acpi_sony.4= acpi_sony.4 _acpi_toshiba.4=acpi_toshiba.4 _acpi_wmi.4= acpi_wmi.4 _aesni.4= aesni.4 +_aout.4= aout.4 _apic.4= apic.4 _atrtc.4= atrtc.4 _attimer.4= attimer.4 @@ -698,6 +731,7 @@ _amdsmb.4= amdsmb.4 _amdtemp.4= amdtemp.4 _asmc.4= asmc.4 _atp.4= atp.4 +_bxe.4= bxe.4 _coretemp.4= coretemp.4 _cpuctl.4= cpuctl.4 _dpms.4= dpms.4 @@ -707,6 +741,7 @@ _hptmv.4= hptmv.4 _hptrr.4= hptrr.4 _i8254.4= i8254.4 _ichwd.4= ichwd.4 +_if_bxe.4= if_bxe.4 _if_ndis.4= if_ndis.4 _if_nfe.4= if_nfe.4 _if_nve.4= if_nve.4 @@ -722,12 +757,15 @@ _linux.4= linux.4 _ndis.4= ndis.4 _nfe.4= nfe.4 _nfsmb.4= nfsmb.4 +_nvd.4= nvd.4 _nve.4= nve.4 +_nvme.4= nvme.4 _nvram.4= nvram.4 _nxge.4= nxge.4 _virtio.4= virtio.4 _virtio_balloon.4=virtio_balloon.4 _virtio_blk.4= virtio_blk.4 +_virtio_scsi.4= virtio_scsi.4 _vtnet.4= vtnet.4 _vxge.4= vxge.4 _padlock.4= padlock.4 @@ -748,6 +786,9 @@ MLINKS+=lindev.4 full.4 .if ${MACHINE_CPUARCH} == "amd64" _qlxgb.4= qlxgb.4 _sfxge.4= sfxge.4 + +MLINKS+=qlxgb.4 if_qlxgb.4 +MLINKS+=sfxge.4 if_sfxge.4 .endif .if ${MACHINE_CPUARCH} == "powerpc" @@ -761,4 +802,16 @@ _nvram2env.4= nvram2env.4 SUBDIR= man4.${MACHINE_CPUARCH} .endif +.if ${MK_ATF} != "no" +ATF= ${.CURDIR}/../../../contrib/atf +.PATH: ${ATF}/doc +_atf_test_case.4= atf-test-case.4 +.endif + +.if ${MK_PF} != "no" +_pf.4= pf.4 +_pflog.4= pflog.4 +_pfsync.4= pfsync.4 +.endif + .include <bsd.prog.mk> diff --git a/share/man/man4/acpi.4 b/share/man/man4/acpi.4 index 9d57128..1e06d68 100644 --- a/share/man/man4/acpi.4 +++ b/share/man/man4/acpi.4 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 4, 2012 +.Dd August 16, 2012 .Dt ACPI 4 .Os .Sh NAME @@ -80,8 +80,12 @@ A scheduling algorithm will select states between and this setting as system load dictates. To enable ACPI CPU idling control, -.Va machdep.cpu_idle_hlt -must be set to 1. +.Va machdep.idle +should be set to +.Li acpi +if it is listed in +.Va machdep.idle_available +. .It Va hw.acpi.cpu.cx_supported List of supported CPU idle states and their transition latency in microseconds. @@ -219,14 +223,6 @@ Override any automatic quirks completely. Beep the PC speaker on resume. This can help diagnose suspend/resume problems. Default is 0 (disabled). -.It Va debug.acpi.sleep_flags -Execute optional ACPI methods for suspend/resume. -If the bit 0 is set (1), it will try to execute _GTS (Going To Sleep) method -when entering suspend state. -If the bit 1 is set (2), it will try to execute _BFS (Back From Sleep) method -when leaving suspend state. -If both the bits are set (3), both the methods will be tried. -Default is 0 (disabled). .It Va hint.acpi.0.disabled Set this to 1 to disable all of ACPI. If ACPI has been disabled on your system due to a blacklist entry for your diff --git a/share/man/man4/acpi_asus.4 b/share/man/man4/acpi_asus.4 index f3b99da..1921adc 100644 --- a/share/man/man4/acpi_asus.4 +++ b/share/man/man4/acpi_asus.4 @@ -157,6 +157,7 @@ Defaults for these variables can be set in which is parsed at boot-time. .Sh SEE ALSO .Xr acpi 4 , +.Xr acpi_asus_wmi 4 , .Xr acpi_video 4 , .Xr sysctl.conf 5 , .Xr sysctl 8 diff --git a/share/man/man4/acpi_asus_wmi.4 b/share/man/man4/acpi_asus_wmi.4 new file mode 100644 index 0000000..129894b --- /dev/null +++ b/share/man/man4/acpi_asus_wmi.4 @@ -0,0 +1,90 @@ +.\" +.\" Copyright (c) 2012 Alexander Motin <mav@FreeBSD.org> +.\" 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 July 2, 2012 +.Dt ACPI_ASUS_WMI 4 +.Os +.Sh NAME +.Nm acpi_asus_wmi +.Nd Asus Laptop WMI Extras +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device acpi_asus_wmi" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +acpi_asus_wmi_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for the extra WMI-controlled gadgets, such as hotkeys +and leds, found on Asus laptops. +It allows one to use the +.Xr sysctl 8 +interface to manipulate the brightness of the LCD panel and keyboard backlight, +power on/off different internal components, such as WiFi, Bluetooth, camera, +cardreader, etc, read some sensors. +Hotkey events are passed to +.Xr devd 8 +for easy handling in userspace with the default configuration in +.Pa /etc/devd/asus.conf . +Some hotkey events, such as keyboard backlight and touchpad control, are +handled inside the driver. +.Sh SYSCTL VARIABLES +The following sysctls are currently implemented: +.Bl -tag -width indent +.It Va dev.acpi_asus_wmi.0.handle_keys +Specifies whether driver should handle some harwdare keys, such as keyboard +backlight, internally. +.El +.Pp +Number of other variables under the same sysctl branch are model-specific. +.Pp +Defaults for these variables can be set in +.Xr sysctl.conf 5 , +which is parsed at boot-time. +.Sh SEE ALSO +.Xr acpi 4 , +.Xr acpi_asus 4 , +.Xr acpi_video 4 , +.Xr sysctl.conf 5 , +.Xr devd 8 , +.Xr sysctl 8 +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 10.0 . +.Sh AUTHORS +.An Alexander Motin Aq mav@FreeBSD.org . diff --git a/share/man/man4/acpi_ibm.4 b/share/man/man4/acpi_ibm.4 index 376b64d..4aa6d9f 100644 --- a/share/man/man4/acpi_ibm.4 +++ b/share/man/man4/acpi_ibm.4 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 8, 2010 +.Dd June 24, 2012 .Dt ACPI_IBM 4 .Os .Sh NAME @@ -335,6 +335,17 @@ Built-in battery .It UltraBay battery .El +.It Va dev.acpi_ibm.0.handlerevents +.Xr devd 8 +events handled by +.Nm +when +.Va events +is set to 1. +Events are specified as a whitespace-separated list of event code in +hexadecimal or decimal form. +Note that the event maybe handled twice (eg. Brightness up/down) if ACPI BIOS +already handled the event. .El .Pp Defaults for these sysctls can be set in @@ -436,6 +447,19 @@ then fi exit 0 .Ed +.Pp +The following example specify that event code 0x04 (Suspend to RAM), +0x10 (Brightness up) and 0x11 (Brightness down) are handled by +.Nm . +.Bd -literal -offset indent +sysctl dev.acpi_ibm.0.handlerevents='0x04 0x10 0x11' +.Ed +.Pp +in +.Xr sysctl.conf 5 : +.Bd -literal -offset indent +dev.acpi_ibm.0.handlerevents=0x04\\ 0x10\\ 0x11 +.Ed .Sh SEE ALSO .Xr acpi 4 , .Xr led 4 , diff --git a/share/man/man4/acpi_panasonic.4 b/share/man/man4/acpi_panasonic.4 index d02a16e..5458a31 100644 --- a/share/man/man4/acpi_panasonic.4 +++ b/share/man/man4/acpi_panasonic.4 @@ -68,7 +68,7 @@ sound mute state via .Ss Hotkeys There are 9 hotkeys available on the supported hardware: .Pp -.Bl -tag -compact -offset indent +.Bl -tag -width 10n -compact -offset indent .It Sy Fn+F1 Make LCD backlight darker. .It Sy Fn+F2 @@ -105,7 +105,7 @@ When notified to .Xr devd 8 , the hotkey event provides the following information: .Pp -.Bl -tag -compact -offset indent +.Bl -tag -width 10n -compact -offset indent .It system .Qq Li ACPI .It subsystem @@ -119,7 +119,7 @@ Event code (see below). .El .Pp Event codes to be generated are assigned as follows: -.Bl -tag -offset indent +.Bl -tag -width 10n -offset indent .It 0x81-0x86, 0x89 .Sy Fn+F<n> pressed. diff --git a/share/man/man4/ahci.4 b/share/man/man4/ahci.4 index 75426e7..23c4574 100644 --- a/share/man/man4/ahci.4 +++ b/share/man/man4/ahci.4 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2009 Alexander Motin <mav@FreeBSD.org> +.\" Copyright (c) 2009-2012 Alexander Motin <mav@FreeBSD.org> .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 6, 2011 +.Dd July 25, 2012 .Dt AHCI 4 .Os .Sh NAME @@ -52,7 +52,8 @@ The following tunables are settable from the .Bl -ohang .It Va hint.ahci. Ns Ar X Ns Va .msi controls Message Signaled Interrupts (MSI) usage by the specified controller. -.Bl -tag -compact +.Pp +.Bl -tag -width 4n -offset indent -compact .It 0 MSI disabled; .It 1 @@ -72,7 +73,8 @@ controls SATA interface Power Management for the specified channel, allowing some power to be saved at the cost of additional command latency. Possible values: -.Bl -tag -compact +.Pp +.Bl -tag -width 4n -offset indent -compact .It 0 interface Power Management is disabled (default); .It 1 @@ -86,6 +88,7 @@ driver initiates PARTIAL PM state transition 1ms after port becomes idle; .It 5 driver initiates SLUMBER PM state transition 125ms after port becomes idle. .El +.Pp Some controllers, such as ICH8, do not implement modes 2 and 3 with NCQ used. Because of artificial entering latency, performance degradation in modes 4 and 5 is much smaller then in modes 2 and 3. @@ -98,7 +101,8 @@ setting to nonzero value limits maximum SATA revision (speed). Values 1, 2 and 3 are respectively 1.5, 3 and 6Gbps. .It Va hw.ahci.force setting to nonzero value forces driver attach to some known AHCI-capable -chips even if they are configured for legacy IDE emulation. Default is 1. +chips even if they are configured for legacy IDE emulation. +Default is 1. .El .Sh DESCRIPTION This driver provides the @@ -128,7 +132,9 @@ Driver supports "LED" enclosure management messages, defined by the AHCI. When supported by hardware, it allows to control per-port activity, locate and fault LEDs via the .Xr led 4 -API for localization and status reporting purposes. +API or emulated +.Xr ses 4 +device for localization and status reporting purposes. Supporting AHCI controllers may transmit that information to the backplane controllers via SGPIO interface. Backplane controllers interpret received statuses in some way (IBPI standard) to report them using present indicators. @@ -149,11 +155,11 @@ it supports AHCI part of legacy-PATA + AHCI-SATA combined controllers, such as JMicron JMB36x and Marvell 88SE61xx. .Sh FILES .Bl -tag -width /dev/led/ahcich*.locate -.It Pa /dev/led/ahcich*.act +.It Pa /dev/led/ahci*.*.act activity LED device nodes -.It Pa /dev/led/ahcich*.fault +.It Pa /dev/led/ahci*.*.fault fault LED device nodes -.It Pa /dev/led/ahcich*.locate +.It Pa /dev/led/ahci*.*.locate locate LED device nodes .El .Sh SEE ALSO @@ -162,7 +168,8 @@ locate LED device nodes .Xr cam 4 , .Xr cd 4 , .Xr da 4 , -.Xr sa 4 +.Xr sa 4 , +.Xr ses 4 .Sh HISTORY The .Nm diff --git a/share/man/man4/altera_avgen.4 b/share/man/man4/altera_avgen.4 new file mode 100644 index 0000000..fee8f54 --- /dev/null +++ b/share/man/man4/altera_avgen.4 @@ -0,0 +1,155 @@ +.\"- +.\" Copyright (c) 2012 Robert N. M. Watson +.\" All rights reserved. +.\" +.\" This software was developed by SRI International and the University of +.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) +.\" ("CTSRD"), as part of the DARPA CRASH research programme. +.\" +.\" 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 August 18, 2012 +.Dt ALTERA_AVGEN 4 +.Os +.Sh NAME +.Nm altera_avgen +.Nd driver for generic Altera Avalon-bus-attached, memory-mapped devices +.Sh SYNOPSIS +.Cd "device altera_avgen" +.Pp +In +.Pa /boot/device.hints : +.Cd hint.altera_avgen.0.at="nexus0" +.Cd hint.altera_avgen.0.maddr=0x7f00a000 +.Cd hint.altera_avgen.0.msize=20 +.Cd hint.altera_avgen.0.width=4 +.Cd hint.altera_avgen.0.fileio="rw" +.Cd hint.altera_avgen.0.devname="berirom" +.Sh DESCRIPTION +The +.Nm +device driver provides generic support for memory-mapped devices on the +Altera Avalon bus. +.Pa device.hints +entries configure the address, size, I/O disposition, and +.Pa /dev +device node name that will be used. +The +.Xr open , +.Xr read , +.Xr write , +and +.Xr mmap +system calls (and variations) may be used on +.Nm +device nodes, subject to constraints imposed using +.Pa device.hints +entries. +Although reading and writing mapped memory is supported, +.Nm +does not currently support directing device interrupts to userspace. +.Pp +A number of +.Pa device.hints +sub-fields are available to configure +.Nm +device instances: +.Bl -tag -width devunit +.It maddr +base physical address of the memory region to export; must be aligned to +.Li width +.It msize +length of the memory region export; must be aligned to +.Li width +.It width +Granularity at which +.Xr read 2 +and +.Xr write 2 +operations will be performed. +Larger requests will be broken down into +.Li width -sized +operations; smaller requests will be rejected. +I/O operations must be aligned to +.Li width . +.It fileio +allowed file descriptor operations; +.Li r +authorizes +.Xr read 2 ; +.Li w +authorizes +.Xr write 2 . +.It mmapio +allowed +.Xr mmap 2 +permissions; +.Li w +authorizes +.Dv PROT_WRITE ; +.Li r +authorizes +.Dv PROT_READ ; +.Li x +authorizes +.Dv PROT_EXEC . +.It devname +specifies a device name relative to +.Pa /dev . +.It devunit +specifies a device unit number; no unit number is used if this is unspecified. +.El +.Sh SEE ALSO +.Xr mmap 2 , +.Xr open 2 , +.Xr read 2 , +.Xr write 2 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 10.0 . +.Sh AUTHORS +The +.Nm +device driver and this manual page were +developed by SRI International and the University of Cambridge Computer +Laboratory under DARPA/AFRL contract +.Pq FA8750-10-C-0237 +.Pq Do CTSRD Dc , +as part of the DARPA CRASH research programme. +This device driver was written by +.An Robert N. M. Watson . +.Sh BUGS +.Nm +is intended to support the writing of userspace device drivers; however, it +does not permit directing interrupts to userspace, only memory-mapped I/O. +.Pp +.Nm +supports only a +.Li nexus +bus attachment, which is appropriate for system-on-chip busses such as +Altera's Avalon bus. +If the target device is off of another bus type, then additional bus +attachments will be required. diff --git a/share/man/man4/altera_jtag_uart.4 b/share/man/man4/altera_jtag_uart.4 new file mode 100644 index 0000000..5b5a25f --- /dev/null +++ b/share/man/man4/altera_jtag_uart.4 @@ -0,0 +1,121 @@ +.\"- +.\" Copyright (c) 2012 Robert N. M. Watson +.\" All rights reserved. +.\" +.\" This software was developed by SRI International and the University of +.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) +.\" ("CTSRD"), as part of the DARPA CRASH research programme. +.\" +.\" 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 August 18, 2012 +.Dt ALTERA_JTAG_UART 4 +.Os +.Sh NAME +.Nm altera_jtag_uart +.Nd driver for the Altera JTAG UART Core +.Sh SYNOPSIS +.Cd "device altera_jtag_uart" +.Pp +In +.Pa /boot/device.hints : +.Cd hint.altera_jtag_uart.0.at="nexus0" +.Cd hint.altera_jtag_uart.0.maddr=0x7f000000 +.Cd hint.altera_jtag_uart.0.msize=0x40 +.Cd hint.altera_jtag_uart.0.irq=0 +.Cd hint.altera_jtag_uart.1.at="nexus0" +.Cd hint.altera_jtag_uart.1.maddr=0x7f001000 +.Cd hint.altera_jtag_uart.1.msize=0x40 +.Sh DESCRIPTION +The +.Nm +device driver provides support for the Altera JTAG UART core, which allows +multiple UART-like streams to be carried over JTAG. +.Nm +allows JTAG UART streams to be attached to both the low-level console +interface, used for direct kernel input and output, and the +.Xr tty 4 +layer, to be used with +.Xr ttys 5 +and +.Xr login 1 . +Sequential Altera JTAG UART devices will appear as +.Li ttyu0 , +.Li ttyu1 , +etc. +.Sh HARDWARE +Altera JTAG UART devices can be connected to using Altera's +.Pa nios2-terminal +program, with the instance selected using the +.Li --instance +argument on the management host. +.Nm +supports JTAG UART cores with or without interrupt lines connected; if the +.Li irq +portion of the +.Pa device.hints +entry is omitted, the driver will poll rather than configure interrupts. +.Sh SEE ALSO +.Xr login 1 , +.Xr tty 4 , +.Xr ttys 5 +.Rs +.%T Altera Embedded Peripherals IP User Guide +.%D June 2011 +.%I Altera Corporation +.%U http://www.altera.com/literature/ug/ug_embedded_ip.pdf +.Re +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 10.0 . +.Sh AUTHORS +The +.Nm +device driver and this manual page were +developed by SRI International and the University of Cambridge Computer +Laboratory under DARPA/AFRL contract +.Pq FA8750-10-C-0237 +.Pq Do CTSRD Dc , +as part of the DARPA CRASH research programme. +This device driver was written by +.An Robert N. M. Watson . +.Sh BUGS +.Nm +must dynamically poll to detect when JTAG is present, in order to disable flow +control in the event that there is no receiving endpoint. +Otherwise, the boot may hang waiting for the JTAG client to be attached, and +user processes attached to JTAG UART devices might block indefinitely. +However, there is no way to flush the output buffer once JTAG is detected to +have disappeared; this means that a small amount of stale output data will +remain in the output buffer, being displayed by +.Li nios2-terminal +when it is connected. +Loss of JTAG will not generate a hang-up event, as that is rarely the desired +behaviour. +.Pp +.Li nios2-terminal +does not place the client-side TTY in raw mode, and so by default will not +pass all control characters through to the UART. diff --git a/share/man/man4/altera_sdcard.4 b/share/man/man4/altera_sdcard.4 new file mode 100644 index 0000000..4155dcb --- /dev/null +++ b/share/man/man4/altera_sdcard.4 @@ -0,0 +1,118 @@ +.\"- +.\" Copyright (c) 2012 Robert N. M. Watson +.\" All rights reserved. +.\" +.\" This software was developed by SRI International and the University of +.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) +.\" ("CTSRD"), as part of the DARPA CRASH research programme. +.\" +.\" 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 August 18, 2012 +.Dt ALTERA_SDCARD 4 +.Os +.Sh NAME +.Nm altera_sdcard +.Nd driver for the Altera University Program Secure Data Card IP Core +.Sh SYNOPSIS +.Cd "device altera_sdcard" +.Pp +In +.Pa /boot/device.hints : +.Cd hint.altera_sdcardc.0.at="nexus0" +.Cd hint.altera_sdcardc.0.maddr=0x7f008000 +.Cd hint.altera_sdcardc.0.msize=0x400 +.Sh DESCRIPTION +The +.Nm +device driver provides support for the Altera University Program Secure Data +Card (SD Card) IP Core device. +A controller device, +.Li altera_sdcardcX , +will be attached during boot. +Inserted disks are presented as +.Xr disk 9 +devices, +.Li altera_sdcardX , +corresponding to the controller number. +.Sh HARDWARE +The current version of the +.Nm +driver supports the SD Card IP core as described in the August 2011 version of +Altera's documentation. +The core supports only cards up to 2G (CSD 0); larger cards, or cards using +newer CSD versions, will not be detected. +The IP core has two key limitations: a lack of interrupt support, requiring +timer-driven polling to detect I/O completion, and support for only single +512-byte block read and write operations at a time. +The combined effect of those two limits is that the system clock rate, +.Dv HZ , +must be set to at least 200 in order to accomplish the maximum 100KB/s data +rate supported by the IP core. +.Sh SEE ALSO +.Xr disk 9 +.Rs +.%T Altera University Program Secure Data Card IP Core +.%D August 2011 +.%I Altera Corporation - University Program +.%U ftp://ftp.altera.com/up/pub/Altera_Material/11.0/University_Program_IP_Cores/Memory/SD_Card_Interface_for_SoPC_Builder.pdf +.Re +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 10.0 . +.Sh AUTHORS +The +.Nm +device driver and this manual page were +developed by SRI International and the University of Cambridge Computer +Laboratory under DARPA/AFRL contract +.Pq FA8750-10-C-0237 +.Pq Do CTSRD Dc , +as part of the DARPA CRASH research programme. +This device driver was written by +.An Robert N. M. Watson . +.Sh BUGS +.Nm +contains a number of work-arounds for IP core bugs. +Perhaps most critically, +.Nm +ignores the CRC error bit returned in the RR1 register, which appears to be +unexpectedly set by the IP core. +.Pp +.Nm +uses fixed polling intervals are used for card insertion/removal and +I/O completion detection; an adaptive strategy might improve performance by +reducing the latency to detecting completed I/O. +However, in our experiments, using polling rates greater than 200 times a +second did not improve performance. +.Pp +.Nm +supports only a +.Li nexus +bus attachment, which is appropriate for system-on-chip busses such as +Altera's Avalon bus. +If the IP core is configured off of another bus type, then additional bus +attachments will be required. diff --git a/share/man/man4/aout.4 b/share/man/man4/aout.4 new file mode 100644 index 0000000..e44362e --- /dev/null +++ b/share/man/man4/aout.4 @@ -0,0 +1,146 @@ +.\" Copyright (c) 2012 Konstantin Belousov <kib@FreeBSD.org> +.\" +.\" 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. +.\" +.\" $FreeBSD$ +.\" +.Dd August 14, 2012 +.Dt AOUT 4 +.Os +.Sh NAME +.Nm aout +.Nd kernel support for executing binary files in legacy a.out format +.Sh SYNOPSIS +.Bd -literal -offset indent +kldload a.out +.Ed +.Sh DESCRIPTION +The +.Xr a.out 5 +executable format was used before the release of +.Fx 3.0 . +Since i386 was the only supported architecture at that time, +.Xr a.out 5 +executables can only be activated on platforms that support +execution of i386 code, such as i386, amd64 and (partially) ia64. +.Pp +To add kernel support for old syscalls and old syscall invocation methods, +place the following options in the kernel configuration file: +.Bd -ragged -offset indent +.Cd "options COMPAT_43" +.br +.Cd "options COMPAT_FREEBSD32" +.Ed +.Pp +The +.Va COMPAT_FREEBSD32 +option is only required on 64-bit CPU architectures. +.Pp +The +.Va aout.ko +module needs to be loaded with the +.Xr kldload 8 +utility in order to support the +.Xr a.out 5 +image activator: +.Bd -ragged -offset indent +.Ic kldload aout +.Ed +.Pp +Alternatively, to load the module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +aout_load="YES" +.Ed +.Pp +The +.Xr a.out 5 +format was mainstream quite a long time ago. +Reasonable default settings and security requirements of +modern operating systems today contradict the default environment of that time +and require adjustments of the system to mimic natural environment for +old binaries. +.Pp +The following +.Xr sysctl 8 +tunables are useful for this: +.Bl -tag -offset indent -width "XXXXXXXXXXXXXXXXXXXXXXXXX" +.It Xo Va security.bsd.map_at_zero +.Xc +Set to 1 to allow mapping of process pages at address 0. +Some very old +.Va ZMAGIC +executable images require text mapping at address 0. +.It Xo Va kern.pid_max +.Xc +Old versions of +.Fx +used signed 16-bit type for +.Vt pid_t . +Current kernels use 32-bit type for +.Vt pid_t , +and allow process id's up to 99999. +Such values cannot be represented by old +.Vt pid_t , +mostly causing issues for processes using +.Xr wait 2 +syscalls, for example shells. +Set the sysctl to 30000 to work around the problem. +.It Xo Va kern.elf32.read_exec +.Xc +Set to 1 to force any accessible memory mapping performed by 32-bit +process to allow execution, see +.Xr mmap 2 . +Old i386 CPUs did not have a bit in PTE which disallowed execution +from the page, so many old programs did not specify +.Va PROT_EXEC +even for mapping of executable code. +The sysctl forces +.Va PROT_EXEC +if mapping has any access allowed at all. +The setting is only needed if the host architecture allows +non-executable mappings. +.El +.Sh SEE ALSO +.Xr execve 2 , +.Xr a.out 5 , +.Xr elf 5 , +.Xr sysctl 8 . +.Sh HISTORY +The +.Xr a.out 5 +executable format was used on ancient +.At +and served as the main executable format for +.Fx +from the beginning up to +.Fx 2.2.9 . +In +.Fx 3.0 +it was superseded by +.Xr elf 5 . +.Sh AUTHORS +The +.Nm +manual page was written by +.An Konstantin Belousov Aq kib@FreeBSD.org . +.Sh BUGS +On 64bit architectures, not all wrappers for older syscalls are implemented. diff --git a/share/man/man4/arcmsr.4 b/share/man/man4/arcmsr.4 index 499c34e..1e92e3b 100644 --- a/share/man/man4/arcmsr.4 +++ b/share/man/man4/arcmsr.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 25, 2010 +.Dd September 3, 2012 .Dt ARCMSR 4 .Os .Sh NAME @@ -98,10 +98,14 @@ ARC-1210 .It ARC-1212 .It +ARC-1213 +.It ARC-1220 .It ARC-1222 .It +ARC-1223 +.It ARC-1230 .It ARC-1231 @@ -133,6 +137,8 @@ ARC-1680 ARC-1681 .It ARC-1880 +.It +ARC-1882 .El .Sh FILES .Bl -tag -width ".Pa /dev/arcmsr?" -compact diff --git a/share/man/man4/ata.4 b/share/man/man4/ata.4 index d2ac57a..b325eb7 100644 --- a/share/man/man4/ata.4 +++ b/share/man/man4/ata.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 17, 2011 +.Dd October 3, 2012 .Dt ATA 4 .Os .Sh NAME @@ -89,20 +89,25 @@ subsystem module. The following tunables are settable from the .Xr loader 8 : .Bl -ohang +.It Va hw.ahci.force +set to nonzero value for forcing drivers to attach to some known AHCI-capable +chips even if they are configured for legacy IDE emulation (the default is 1, +force the attach). .It Va hw.ata.ata_dma_check_80pin -set to 0 to disable the 80pin cable check (the default is 1, check the cable) +set to 0 to disable the 80pin cable check (the default is 1, check the cable). .It Va hint.atapci.X.msi set to 1 to allow Message Signalled Interrupts (MSI) to be used by the specified PCI ATA controller, if supported. .It Va hint.ata.X.devX.mode -limits the initial ATA mode for the specified device on specified the channel. +limits the initial ATA mode for the specified device on the specified channel. .It Va hint.ata.X.mode limits the initial ATA mode for every device on the specified channel. .It Va hint.ata.X.pm_level controls SATA interface Power Management for the specified channel, allowing some power savings at the cost of additional command latency. Possible values: -.Bl -tag -compact +.Pp +.Bl -tag -width 4n -offset indent -compact .It 0 Interface Power Management is disabled. This is the default value. @@ -113,7 +118,14 @@ The host initiates a PARTIAL PM state transition every time a port becomes idle. .It 3 host initiates SLUMBER PM state transition every time port becomes idle. .El +.Pp Modes 2 and 3 are only supported for AHCI. +.It Va hint.ata. Ns Ar X Ns Va .dev Ns Ar X Ns Va .sata_rev +limits the initial SATA revision (speed) for the specified device +on the specified channel. +Values 1, 2 and 3 are respectively 1.5, 3 and 6Gbps. +.It Va hint.ata. Ns Ar X Ns Va .sata_rev +Same, but for every device on the specified channel. .El .Sh DESCRIPTION The diff --git a/share/man/man4/bce.4 b/share/man/man4/bce.4 index dd7b981..28fdf6a 100644 --- a/share/man/man4/bce.4 +++ b/share/man/man4/bce.4 @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 1, 2012 +.Dd June 4, 2012 .Dt BCE 4 .Os .Sh NAME @@ -213,45 +213,58 @@ Enable/Disable strict RX frame size checking (default 0). Enable/Disable frame header/payload splitting (default 1). .It Va hw.bce.rx_pages Set the number of memory pages assigned to recieve packets by the driver. -Due to alignment issues, this value can only be of the set 1, 2, 4 or 8 (default 2). +Due to alignment issues, this value can only be of the set +1, 2, 4 or 8 (default 2). .It Va hw.bce.tx_pages -Set the number of memory pages assigned to transmit packets by the driver. -Due to alignment issues, this value can only be of the set 1, 2, 4 or 8 (default 2). +Set the number of memory pages assigned to transmit packets +by the driver. +Due to alignment issues, this value can only be of the set +1, 2, 4 or 8 (default 2). .It Va hw.bce.rx_ticks -Time in microsecond ticks to wait before generating a status block updates due to RX processing activity. +Time in microsecond ticks to wait before generating a status +block updates due to RX processing activity. Values from 0-100 are valid. A value of 0 disables this status block update. -Cannot be set to 0 if hw.bce.rx_quick_cons_trip is also 0 (default 18). +Cannot be set to 0 if hw.bce.rx_quick_cons_trip is also 0 +(default 18). .It Va hw.bce.rx_ticks_int -Time in microsecond ticks to wait during RX interrupt processing before generating a status block update. +Time in microsecond ticks to wait during RX interrupt +processing before generating a status block update. Values from 0-100 are valid. Valid values are in the range from 0-100. A value of 0 disables this status block update (default 18). .It Va hw.bce.rx_quick_cons_trip -Number of RX Quick BD Chain entries that must be completed before a status block is generated. +Number of RX Quick BD Chain entries that must be completed +before a status block is generated. Values from 0-256 are valid. A value of 0 disables this status block update. Cannot be set to 0 if hw.bce.rx_ticks is also 0 (default 6). .It Va hw.bce.rx_quick_cons_trip_int -Number of RX quick BD entries that must be completed before a status block is generated duing interrupt processing. +Number of RX quick BD entries that must be completed before +a status block is generated duing interrupt processing. Values from 0-256 are valid. A value of 0 disables this status block update (default 6). .It Va hw.bce.tx_ticks -Time in microsecond ticks to wait before a status block update is generated due to TX activitiy. +Time in microsecond ticks to wait before a status block +update is generated due to TX activitiy. Values from 0-100 are valid. A value of 0 disables this status block update. -Cannot be set to 0 if hw.bce.tx_quick_cons_trip is also 0 (default 80). +Cannot be set to 0 if hw.bce.tx_quick_cons_trip is also 0 +(default 80). .It Va hw.bce.tx_ticks_int -Time in microsecond ticks to wait in interrupt processing before a status block update is generated due to TX activity +Time in microsecond ticks to wait in interrupt processing +before a status block update is generated due to TX activity Values from 0-100 are valid. A value of 0 disables this status block update (default 80). .It Va hw.bce.tx_cons_trip -How many TX Quick BD Chain entries that must be completed before a status block is generated. +How many TX Quick BD Chain entries that must be completed +before a status block is generated. Values from 0-100 are valid. A value of 0 disables this status block update. Cannot be set to 0 if hw.bce.tx_ticks is also 0 (default 20). .It Va hw.bce.tx_cons_trip_int -How many TX Quick BD Chain entries that must be completed before a status block is generated during an interrupt. +How many TX Quick BD Chain entries that must be completed +before a status block is generated during an interrupt. Values from 0-100 are valid. A value of 0 disables this status block update (default 20). .El diff --git a/share/man/man4/bxe.4 b/share/man/man4/bxe.4 new file mode 100644 index 0000000..588900f --- /dev/null +++ b/share/man/man4/bxe.4 @@ -0,0 +1,138 @@ +.\" Copyright (c) 2012 Edward Tomasz Napierala <trasz@FreeBSD.org> +.\" 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 AUTHORS 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 AUTHORS 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 June 25, 2012 +.Dt BXE 4 +.Os +.Sh NAME +.Nm bxe +.Nd "Broadcom BCM57710/BCM57711/BCM57711E 10Gb Ethernet adapter driver" +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device bxe" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +if_bxe_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for PCIe 10GbE Ethernet adapters based on +BCM5771x chips. +The driver supports Jumbo Frames, VLAN tagging, IP, UDP and TCP checksum +offload, MSI-X, TCP Segmentation Offload (TSO), Large Receive Offload (LRO), +and Receive Side Steering (RSS). +.Pp +For more information on configuring this device, see +.Xr ifconfig 8 . +.Sh HARDWARE +The +.Nm +driver provides support for various NICs based on the Broadcom BCM5771x +family of 10GbE Ethernet controller chips, including the +following: +.Pp +.Bl -bullet -compact +.It +Broadcom NetXtreme II BCM57710 10GbE +.It +Broadcom NetXtreme II BCM57711 10GbE +.It +Broadcom NetXtreme II BCM57711E 10GbE +.El +.Sh SYSCTL VARIABLES +The following variables are available as both +.Xr sysctl 8 +variables and +.Xr loader 8 +tunables: +.Bl -tag -width indent +.It Va hw.bxe.dcc_enable +Enable HP Flex-10 support. +Allowed values are 0 to disable and 1 to enable. +The default value is 0. +.It Va hw.bxe.tso_enable +Enable TCP Segmentation Offload. +The default value is 1. +.It Va hw.bxe.int_mode +Set interrupt mode. +Allowed values are 0 for IRQ, 1 for MSI/IRQ and 2 for MSI-X/MSI/IRQ. +The default value is 2. +.It Va hw.bxe.queue_count +Specify the number of queues that will be used when a multi-queue +RSS mode is selected using bxe_multi_mode. +Allowed values are 0 for Auto or 1 to 16 for fixed number of queues. +The default value is 0. +.It Va hw.bxe.multi_mode +Enable Receive Side Steering. +Allowed values are 0, which disables all multi-queue/packet sorting +algorithms, and 1, which assigns incoming frames to receive queues +according to RSS. +The default value is 0. +.It Va hw.bxe.rx_ticks +Control interrupt coalescing for received frames. +The first frame always causes an interrupt, but subsequent frames +are coalesced until the RX/TX ticks timer value expires and another +interrupt occurs. +The default value is 25. +.It Va hw.bxe.tx_ticks +Control interrupt coalescing for trasmitted frames. +The first frame always causes an interrupt, but subsequent frames +are coalesced until the RX/TX ticks timer value expires and another +interrupt occurs. +The default value is 50. +.It Va hw.bxe.mrrs +Allows to set the PCIe maximum read request size. +Allowed values are -1 for Auto, 0 for 128B, 1 for 256B, 2 for 512B, +and 3 for 1kB. +The default value is -1. +.El +.Sh SEE ALSO +.Xr altq 4 , +.Xr arp 4 , +.Xr netintro 4 , +.Xr ng_ether 4 , +.Xr vlan 4 , +.Xr ifconfig 8 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 9.0 . +.Sh AUTHORS +The +.Nm +driver was written by +.An Gary Zambrano Aq zambrano@broadcom.com +and +.An David Christensen Aq davidch@broadcom.com . diff --git a/share/man/man4/carp.4 b/share/man/man4/carp.4 index 6a45703..c1dfa57 100644 --- a/share/man/man4/carp.4 +++ b/share/man/man4/carp.4 @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 30, 2012 +.Dd September 29, 2012 .Dt CARP 4 .Os .Sh NAME @@ -287,6 +287,19 @@ notify 0 { action "/root/carpcontrol.sh $subsystem $type"; }; .Ed +.Pp +To see +.Nm +packets decoded in +.Xr tcpdump 8 +output, one needs to specify +.Fl T Ar carp +option, otherwise +.Xr tcpdump 8 +tries to interpret them as VRRP packets: +.Bd -literal -offset indent +tcpdump -npi vlan0 -T carp +.Ed .Sh SEE ALSO .Xr inet 4 , .Xr pfsync 4 , @@ -294,6 +307,7 @@ notify 0 { .Xr devd.conf 5 , .Xr ifconfig 8 , .Xr sysctl 8 +.Xr tcpdump 8 .Sh HISTORY The .Nm diff --git a/share/man/man4/cpufreq.4 b/share/man/man4/cpufreq.4 index d4a2a3f..850660e 100644 --- a/share/man/man4/cpufreq.4 +++ b/share/man/man4/cpufreq.4 @@ -286,6 +286,7 @@ then it should set all elements to .Dv CPUFREQ_VAL_UNKNOWN . .Sh SEE ALSO .Xr acpi 4 , +.Xr est 4 , .Xr timecounters 4 , .Xr powerd 8 , .Xr sysctl 8 diff --git a/share/man/man4/ddb.4 b/share/man/man4/ddb.4 index cefa7dd..d8a2d9b 100644 --- a/share/man/man4/ddb.4 +++ b/share/man/man4/ddb.4 @@ -1173,9 +1173,15 @@ See the .Sx SCRIPTING section for more information on the scripting facility. .Pp +.It Ic textdump dump .It Ic textdump set .It Ic textdump status .It Ic textdump unset +Use the +.Ic textdump dump +command to immediately perform a textdump. +More information may be found in +.Xr textdump 4 . The .Ic textdump set command may be used to force the next kernel core dump to be a textdump @@ -1184,8 +1190,6 @@ rather than a traditional memory dump or minidump. reports whether a textdump has been scheduled. .Ic textdump unset cancels a request to perform a textdump as the next kernel core dump. -More information may be found in -.Xr textdump 4 . .El .Sh VARIABLES The debugger accesses registers and variables as diff --git a/share/man/man4/est.4 b/share/man/man4/est.4 new file mode 100644 index 0000000..9f60206 --- /dev/null +++ b/share/man/man4/est.4 @@ -0,0 +1,121 @@ +.\" +.\" Copyright (c) 2012 Sean Bruno <sbruno@freebsd.org> +.\" 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 October 18, 2012 +.Dt EST 4 +.Os +.Sh NAME +.Nm est +.Nd Enhanced Speedstep Technology +.Sh SYNOPSIS +To compile this capability into your kernel +place the following line in your kernel +configuration file: +.Bd -ragged -offset indent +.Cd "device cpufreq" +.Ed +.Sh DESCRIPTION +The +.Nm +interface provides support for the Intel Enhanced Speedstep Technology. +.Pp +Note that +.Nm +capabilities are automatically loaded by the +.Xr cpufreq 4 +driver. +.Sh LOADER TUNABLES +The +.Nm +interface is intended to allow +.Xr cpufreq 4 +to access and implement Intel Enhanced SpeedStep Technology via +.Xr acpi 4 +and the acpi_perf interface accessors. +If the default settings are not optimal, the following sysctls can be +used to modify or monitor +.Nm +behavior. +.Bl -tag -width indent +.It hw.est.msr_info +Attempt to infer information from direct probing of the msr. +Should only be used in diagnostic cases. +.Pq default 0 +.It hw.est.strict +Validate frequency requested is accepted by the cpu when set. +It appears that this will only work on single core cpus. +.Pq default 0 +.El +.Sh SYSCTL VARIABLES +The following +.Xr sysctl 8 +values are available +.Bl -tag -width indent +.It Va dev.est.%d.\%desc +Description of support, almost always Enhanced SpeedStep Frequency Control. +.It dev.est.0.%desc: Enhanced SpeedStep Frequency Control +.It Va dev.est.%d.\%driver +Driver in use, always est. +.It dev.est.0.%driver: est +.It Va dev.est.%d.\%parent +.It dev.est.0.%parent: cpu0 +The cpu that is exposing these frequencies. +For example +.Va cpu0 . +.It Va dev.est.%d.freq_settings . +The valid frequencies that are allowed by this CPU and their step values. +.It dev.est.0.freq_settings: 2201/45000 2200/45000 2000/39581 1900/37387 +1800/34806 1700/32703 1600/30227 1500/28212 1400/25828 1300/23900 1200/21613 +1100/19775 1000/17582 900/15437 800/13723 +.Pp +.El +.Sh DIAGNOSTICS +.Bl -diag +.It "est%d: <Enhanced SpeedStep Frequency Control> on cpu%d" +.Pp +Indicates normal startup of this interface. +.It "est: CPU supports Enhanced Speedstep, but is not recognized." +.It "est: cpu_vendor GenuineIntel, msr 471c471c0600471c" +.It "device_attach: est%d attach returned 6" +.Pp +Indicates all attempts to attach to this interface have failed. +This usually indicates an improper BIOS setting restricting O/S +control of the CPU speeds. +Consult your BIOS documentation for more details. +.El +.Sh COMPATIBILITY +.Nm +is only found on supported Intel CPUs. +.Sh SEE ALSO +.Xr cpufreq 4 +.Rs +.%T "Intel 64 and IA-32 Architectures Software Developer Manuals" +.%U "http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html" +.Re +.Sh AUTHORS +This manual page was written by +.An Sean Bruno Aq sbruno@FreeBSD.org . diff --git a/share/man/man4/filemon.4 b/share/man/man4/filemon.4 index 801f4df..0726e5a 100644 --- a/share/man/man4/filemon.4 +++ b/share/man/man4/filemon.4 @@ -10,7 +10,7 @@ .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: +.\" must display the following acknowledgment: .\" This product includes software developed by David E. O'Brien and .\" contributors. .\" 4. Neither the name of the author nor the names of its contributors @@ -19,7 +19,7 @@ .\" .\" 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 +.\" IMPLIED WARRANTIES OF MERCHANT ABILITY 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 @@ -87,12 +87,13 @@ following records can represent a single .Xr open 2 for R/W, -or two seperate +or two separate .Xr open 2 calls, one for .Ql R and one for .Ql W . +Note that only successful system calls are captured. .Sh IOCTLS User mode programs communicate with the .Nm @@ -168,7 +169,8 @@ buffer contents to it. .Sh SEE ALSO .Xr dtrace 1 , .Xr ktrace 1 , -.Xr truss 1 +.Xr truss 1 , +.Xr ioctl 2 .Sh HISTORY A .Nm diff --git a/share/man/man4/firewire.4 b/share/man/man4/firewire.4 index 82e3622..9ec5dfa 100644 --- a/share/man/man4/firewire.4 +++ b/share/man/man4/firewire.4 @@ -90,7 +90,7 @@ Please see .Pa http://wiki.freebsd.org/DebugWithDcons for details on how to setup debugging with firewire. .Sh FILES -.Bl -tag -compact +.Bl -tag -width "Pa /dev/fwmem0.0" -compact .It Pa /dev/fw0.0 .It Pa /dev/fwmem0.0 .El diff --git a/share/man/man4/gpib.4 b/share/man/man4/gpib.4 index 6e0f341..b5f29cd 100644 --- a/share/man/man4/gpib.4 +++ b/share/man/man4/gpib.4 @@ -63,7 +63,7 @@ main(int argc, char **argv) { int dmm; unsigned char buf[100]; - char vbuf[sizeof buf * 4]; + char vbuf[sizeof(buf) * 4]; /* DVM */ dmm = ibdev(0, (argc > 1? atoi(argv[1]): 7), 0, @@ -71,7 +71,7 @@ main(int argc, char **argv) if (dmm < 0) errx(1, "ibdev = %d\\n", dmm); ibwrt(dmm, "*IDN?\\r\\n", 7); - ibrd(dmm, buf, sizeof buf - 1); + ibrd(dmm, buf, sizeof(buf) - 1); strvisx(vbuf, buf, ibcnt, VIS_WHITE | VIS_CSTYLE); printf("%s\\n", vbuf); return (0); diff --git a/share/man/man4/hfa.4 b/share/man/man4/hfa.4 deleted file mode 100644 index 1c254bfeb..0000000 --- a/share/man/man4/hfa.4 +++ /dev/null @@ -1,139 +0,0 @@ -.\" -.\" Copyright (c) 2004 Tom Rhodes -.\" 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 August 6, 2004 -.Dt HFA 4 -.Os -.Sh NAME -.Nm hfa -.Nd FORE Systems 200-Series ATM adapter driver -.Sh SYNOPSIS -.Cd device hfa -.Sh DESCRIPTION -The -.Nm -driver provides support for the -.Tn FORE -Systems -.Tn ATM -series 200 adapters. -This driver will support up to eight devices in a system -at any given time. -The -.Nm -driver follows the -.Tn AALI -or -.Tn FORE -.Tn ATM -Adaptation Layer Interface and as such -will adhere to its specifications. -The supported -.Tn AALs -include: -.Bl -bullet -.It -FORE AAL 0: -The cell service; -.It -FORE AAL 4: -Version three and four of AAL; -.It -FORE AAL 5: -Version five of AAL. -.El -.Pp -The -.Nm -driver supports traffic shaping for cards with firmware -revisions of 4.X.X, see -.Xr fore_dnld 8 . -The following sysctls are recognized by the driver and -may be used to enable or disable traffic shaping: -.Bl -tag -width indent -.It Va hw.atm.hfa Ns Ar N Ns Va .shape Pq 0 -Disable shaping on card number -.Ar N . -.It Va hw.atm.hfa Ns Ar N Ns Va .shape Pq 1 -Set one VCI to be traffic shaped on device -.Ar N . -This will shape the first CBR VCI which is opened. -.It Va hw.atm.hfa Ns Ar N Ns Va .shape Pq 2 -Attempt to shape all VCIs on device -.Ar N . -.El -The firmware should be loaded before using this -driver, this can be an easy task if the -.Xr fore_dnld 8 -utility is used. -If the -.Pa /etc/rc.d/atm1 -file has been properly configured then the firmware -update should be automatic. -.Sh HARDWARE -The -.Nm -driver supports the following adapters: -.Pp -.Bl -bullet -compact -.It -FORE Systems PCA-200E ATM -.It -FORE Systems 200S -.It -FORE Systems 200 -.El -.Sh DIAGNOSTICS -.Bl -diag -.It "fore_cmd_drain: %s%d: GET_PROM failed" -The driver failed to drain the PROM buffer. -.It "fore initialization failed: intf=%s%d" -Initialization of the card has failed. -.It "fore initialization timed out: intf=%s%d" -Initialization of the card has timed out. -.It "hfa: version mismatch: fore=%d.%d kernel=%d.%d" -A version mismatch error has occurred. -.El -.Sh SEE ALSO -.Xr fatm 4 , -.Xr harp 4 , -.Xr ng_atm 4 , -.Xr atm 8 , -.Xr fore_dnld 8 -.Sh HISTORY -The -.Nm -driver was written by Network Computing Services, Inc.\& -and added to -.Fx 3.0 -by -.An Poul-Henning Kamp Aq phk@FreeBSD.org . -This manual page first appeared in -.Fx 5.3 . -.Sh AUTHORS -This manual page was written by -.An Tom Rhodes Aq trhodes@FreeBSD.org . diff --git a/share/man/man4/hptiop.4 b/share/man/man4/hptiop.4 index 94a6dbd..ea963dd 100644 --- a/share/man/man4/hptiop.4 +++ b/share/man/man4/hptiop.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 1, 2011 +.Dd October 25, 2012 .Dt HPTIOP 4 .Os .Sh NAME @@ -58,34 +58,50 @@ driver supports the following SAS and SATA RAID controllers: .Pp .Bl -bullet -compact .It -HighPoint RocketRAID 4320 +HighPoint RocketRAID 4522 .It -HighPoint RocketRAID 4321 +HighPoint RocketRAID 4520 .It HighPoint RocketRAID 4322 .It -HighPoint RocketRAID 3220 +HighPoint RocketRAID 4321 .It -HighPoint RocketRAID 3320 +HighPoint RocketRAID 4320 .It -HighPoint RocketRAID 3410 +HighPoint RocketRAID 4311 .It -HighPoint RocketRAID 3520 +HighPoint RocketRAID 4310 .It -HighPoint RocketRAID 3510 +HighPoint RocketRAID 4211 .It -HighPoint RocketRAID 3511 +HighPoint RocketRAID 4210 .It -HighPoint RocketRAID 3521 +HighPoint RocketRAID 3560 +.It +HighPoint RocketRAID 3540 +.It +HighPoint RocketRAID 3530 .It HighPoint RocketRAID 3522 .It -HighPoint RocketRAID 3540 +HighPoint RocketRAID 3521 .It -HighPoint RocketRAID 3120 +HighPoint RocketRAID 3520 +.It +HighPoint RocketRAID 3511 +.It +HighPoint RocketRAID 3510 +.It +HighPoint RocketRAID 3410 +.It +HighPoint RocketRAID 3320 +.It +HighPoint RocketRAID 3220 .It HighPoint RocketRAID 3122 .It +HighPoint RocketRAID 3120 +.It HighPoint RocketRAID 3020 .El .Sh NOTES diff --git a/share/man/man4/hptrr.4 b/share/man/man4/hptrr.4 index 847d86d..0cbd2fd 100644 --- a/share/man/man4/hptrr.4 +++ b/share/man/man4/hptrr.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 8, 2009 +.Dd June 6, 2012 .Dt HPTRR 4 .Os .Sh NAME @@ -50,8 +50,11 @@ hptrr_load="YES" The following tunables are settable from the loader: .Bl -ohang .It Va hw.hptrr.attach_generic -set to 0 to deny driver attach to chips with generic Marvell (non-HighPoint) -PCI identification. These chips are also supported by ata(4). +set to 1 to permit driver attach to chips with generic Marvell (non-HighPoint) +PCI identification. These chips are also supported by +.Xr ata 4 +and +.Xr mvs 4 . Some vendors are using same chips, but without providing RAID BIOS. .El .Sh DESCRIPTION @@ -112,6 +115,7 @@ This driver supersedes the older rr232x driver. .Xr ata 4 , .Xr cam 4 , .Xr hptmv 4 , +.Xr mvs 4 , .Xr loader 8 .Sh HISTORY The diff --git a/share/man/man4/hwpmc.4 b/share/man/man4/hwpmc.4 index f65e8c4..b0c3930 100644 --- a/share/man/man4/hwpmc.4 +++ b/share/man/man4/hwpmc.4 @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 22, 2008 +.Dd November 2, 2012 .Dt HWPMC 4 .Os .Sh NAME @@ -430,10 +430,10 @@ The default is 32. The number of log buffers used by .Nm for logging. -The default is 16. +The default is 64. .It Va kern.hwpmc.nsamples Pq integer, read-only The number of entries in the per-CPU ring buffer used during sampling. -The default is 16. +The default is 512. .It Va security.bsd.unprivileged_syspmcs Pq boolean, read-write If set to non-zero, allow unprivileged processes to allocate system-wide PMCs. diff --git a/share/man/man4/idt.4 b/share/man/man4/idt.4 deleted file mode 100644 index adf1cf7..0000000 --- a/share/man/man4/idt.4 +++ /dev/null @@ -1,60 +0,0 @@ -.\" $FreeBSD$ -.\" -.Dd June 3, 2003 -.Dt IDT 4 -.Os -.Sh NAME -.Nm idt -.Nd device driver for IDT NICStAR-based ATM interfaces -.Sh SYNOPSIS -.Cd "device idt" -.Cd "device atm" -.Sh DESCRIPTION -The -.Nm -device driver supports ATM network interfaces based on the -IDT NICStAR 77211 controller, including the FORE Systems -ForeRunner LE25 and LE155. -For configuring the card for IP see -.Xr natmip 4 . -.Pp -ATM CBR connections are supported, and bandwidth is allocated in -slots of 64k each. -Three VBR queues handle traffic for VBR and UBR. -Two UBR queues prioritize UBR traffic. -ILMI and signalling get the higher priority queue, as well as UBR traffic -that specifies a peak cell rate. -All other UBR traffic goes into the lower queue. -.Pp -The following sysctls are recognized by the driver: -.Bl -tag -width indent -.It Va hw.idt.log_bufstat -Print statistics about buffer use to the system log periodically. -.It Va hw.idt.log_vcs -Print information about VC opens, closes, and other events to the system log. -.It Va hw.idt.bufs_large -Set or print the maximum size of the 2KB buffer queue. -.It Va hw.idt.bufs_small -Set or print the maximum size of the mbuf queue. -.It Va hw.idt.cur_large -Print the current size of the 2KB buffer queue. -.It Va hw.idt.cur_small -Print the current size of the mbuf queue. -.It Va hw.idt.qptr_hold -Optimize the TX queue buffer for lowest overhead. -.El -.Sh SEE ALSO -.Xr natm 4 , -.Xr natmip 4 , -.Xr ifconfig 8 , -.Xr route 8 -.Sh AUTHORS -.An -nosplit -.An Richard Hodges , -based on the original driver for -.Fx 2.2 -by -.An Mark Tinguely . -.An Bruce M. Simpson -wrote this manual page and backported the driver to -.Fx 4.9 . diff --git a/share/man/man4/io.4 b/share/man/man4/io.4 index a3561db..fa1c3f1 100644 --- a/share/man/man4/io.4 +++ b/share/man/man4/io.4 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 01, 2010 +.Dd June 1, 2010 .Dt IO 4 .Os .Sh NAME diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4 index 50a11c3..7d16fc0 100644 --- a/share/man/man4/ip.4 +++ b/share/man/man4/ip.4 @@ -32,7 +32,7 @@ .\" @(#)ip.4 8.2 (Berkeley) 11/30/93 .\" $FreeBSD$ .\" -.Dd November 14, 2011 +.Dd October 12, 2012 .Dt IP 4 .Os .Sh NAME @@ -165,16 +165,14 @@ The .Vt cmsghdr fields have the following values: .Bd -literal -cmsg_len = sizeof(struct in_addr) +cmsg_len = CMSG_LEN(sizeof(struct in_addr)) cmsg_level = IPPROTO_IP cmsg_type = IP_RECVDSTADDR .Ed .Pp The source address to be used for outgoing .Tn UDP -datagrams on a socket that is not bound to a specific -.Tn IP -address can be specified as ancillary data with a type code of +datagrams on a socket can be specified as ancillary data with a type code of .Dv IP_SENDSRCADDR . The msg_control field in the msghdr structure should point to a buffer that contains a @@ -184,11 +182,25 @@ structure followed by the address. The cmsghdr fields should have the following values: .Bd -literal -cmsg_len = sizeof(struct in_addr) +cmsg_len = CMSG_LEN(sizeof(struct in_addr)) cmsg_level = IPPROTO_IP cmsg_type = IP_SENDSRCADDR .Ed .Pp +The socket should be either bound to +.Dv INADDR_ANY +and a local port, and the address supplied with +.Dv IP_SENDSRCADDR +should't be +.Dv INADDR_ANY , +or the socket should be bound to a local address and the address supplied with +.Dv IP_SENDSRCADDR +should be +.Dv INADDR_ANY . +In the latter case bound address is overriden via generic source address +selection logic, which would choose IP address of interface closest to +destination. +.Pp For convenience, .Dv IP_SENDSRCADDR is defined to have the same value as @@ -227,7 +239,7 @@ configured with the broadcast address 192.168.2.255: .Bd -literal char msg[512]; struct sockaddr_in sin; -u_char onesbcast = 1; /* 0 = disable (default), 1 = enable */ +int onesbcast = 1; /* 0 = disable (default), 1 = enable */ setsockopt(s, IPPROTO_IP, IP_ONESBCAST, &onesbcast, sizeof(onesbcast)); sin.sin_addr.s_addr = inet_addr("192.168.2.255"); @@ -279,13 +291,36 @@ that contains a cmsghdr structure followed by the .Tn TTL . The cmsghdr fields have the following values: .Bd -literal -cmsg_len = sizeof(u_char) +cmsg_len = CMSG_LEN(sizeof(u_char)) cmsg_level = IPPROTO_IP cmsg_type = IP_RECVTTL .Ed .\" .Pp If the +.Dv IP_RECVTOS +option is enabled on a +.Dv SOCK_DGRAM +socket, the +.Xr recvmsg 2 +call will return the +.Tn IP +.Tn TOS +(type of service) field for a +.Tn UDP +datagram. +The msg_control field in the msghdr structure points to a buffer +that contains a cmsghdr structure followed by the +.Tn TOS . +The cmsghdr fields have the following values: +.Bd -literal +cmsg_len = CMSG_LEN(sizeof(u_char)) +cmsg_level = IPPROTO_IP +cmsg_type = IP_RECVTOS +.Ed +.\" +.Pp +If the .Dv IP_RECVIF option is enabled on a .Dv SOCK_DGRAM @@ -307,7 +342,7 @@ The .Vt cmsghdr fields have the following values: .Bd -literal -cmsg_len = sizeof(struct sockaddr_dl) +cmsg_len = CMSG_LEN(sizeof(struct sockaddr_dl)) cmsg_level = IPPROTO_IP cmsg_type = IP_RECVIF .Ed @@ -726,7 +761,11 @@ unless the option has been set. Incoming packets are received with .Tn IP -header and options intact. +header and options intact, except for +.Va ip_len +and +.Va ip_off +fields converted to host byte order. .Pp .Dv IP_HDRINCL indicates the complete IP header is included with the data diff --git a/share/man/man4/ip6.4 b/share/man/man4/ip6.4 index fdbb956..fcd396c 100644 --- a/share/man/man4/ip6.4 +++ b/share/man/man4/ip6.4 @@ -570,7 +570,8 @@ struct iovec iov[2]; u_char buf[BUFSIZ]; struct cmsghdr *cm; struct msghdr m; -int found, optval; +int optval; +bool found; u_char data[2048]; /* Create socket. */ @@ -597,8 +598,8 @@ if (setsockopt(s, IPPROTO_IPV6, IPV6_HOPLIMIT, &optval, sizeof(optval)) == -1) err(1, "setsockopt"); -found = 0; -while (!found) { +found = false; +do { if (recvmsg(s, &m, 0) == -1) err(1, "recvmsg"); for (cm = CMSG_FIRSTHDR(&m); cm != NULL; @@ -606,13 +607,13 @@ while (!found) { if (cm->cmsg_level == IPPROTO_IPV6 && cm->cmsg_type == IPV6_HOPLIMIT && cm->cmsg_len == CMSG_LEN(sizeof(int))) { - found = 1; + found = true; (void)printf("hop limit: %d\en", *(int *)CMSG_DATA(cm)); break; } } -} +} while (!found); .Ed .Sh DIAGNOSTICS A socket operation may fail with one of the following errors returned: diff --git a/share/man/man4/ipfirewall.4 b/share/man/man4/ipfirewall.4 index f19d024..40c77a1 100644 --- a/share/man/man4/ipfirewall.4 +++ b/share/man/man4/ipfirewall.4 @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 1, 2006 +.Dd October 25, 2012 .Dt IPFW 4 .Os .Sh NAME @@ -20,7 +20,6 @@ Other related kernel options which may also be useful are: .Bd -ragged -offset indent .Cd "options IPFIREWALL_DEFAULT_TO_ACCEPT" -.Cd "options IPFIREWALL_FORWARD" .Cd "options IPFIREWALL_VERBOSE" .Cd "options IPFIREWALL_VERBOSE_LIMIT=100" .Ed @@ -71,12 +70,6 @@ from flooding system logs or causing local Denial of Service. This option may be set to the number of packets which will be logged on a per-entry basis before the entry is rate-limited. .Pp -Policy routing and transparent forwarding features of -.Nm -can be enabled by -.Dv IPFIREWALL_FORWARD -kernel option. -.Pp The user interface for .Nm is implemented by the diff --git a/share/man/man4/isf.4 b/share/man/man4/isf.4 new file mode 100644 index 0000000..f863720 --- /dev/null +++ b/share/man/man4/isf.4 @@ -0,0 +1,135 @@ +.\"- +.\" Copyright (c) 2012 SRI International +.\" All rights reserved. +.\" +.\" This software was developed by SRI International and the University of +.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) +.\" ("CTSRD"), as part of the DARPA CRASH research programme. +.\" +.\" 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 August 3, 2012 +.Dt ISF 4 +.Os +.Sh NAME +.Nm isf +.Nd driver for Intel StrataFlash NOR flash devices +.Sh SYNOPSIS +.Cd "device isf" +.Pp +In +.Pa /boot/device.hints : +.Cd hint.isf.0.at="nexus0" +.Cd hint.isf.0.maddr=0x74000000 +.Cd hint.isf.0.msize=0x2000000 +.Sh DESCRIPTION +The +.Nm +device driver provides support for Intel StrataFlash NOR flash devices. +Devices are presented as +.Xr disk 9 +devices and read access is supported along with limited write support. +Erasing blocks is supported the +.Dv ISF_ERASE +ioctl. +.Pp +The erase block size of +.Nm +devices is 128K. +NOR flash blocks contains all 1's after an erase cycle. +Writes to +.Nm +devices are allowed to succeed if and only if they all bits in the write +block (512-bytes) remain the same or transition from 1 to 0. +.Sh HARDWARE +The current version of the +.Nm +driver is known to support the 64MB part found on the Altera DE4 board. +It attempts to support other StrataFlash parts documented in the +datasheet, but those are untested. +.Sh IOCTLS +The +.Nm device +supports the +.Xr ioctl 2 +command codes: +.Bl -tag -width ISF_ERASE +.It Dv ISF_ERASE +Erase one or more blocks. +.Dv ISF_ERASE is defined as follows: +.Bd -literal + struct isf_range { + off_t ir_off; + size_t ir_size; + }; + + #define ISF_ERASE _IOW('I', 1, struct isf_range) +.Ed +.Pp +The +.Li ir_off +member marks the beginning of the area to be erased and must fall on at 128K +boundary. +The +.Li ir_size +member indicates the size of the area to be erased and must a multiple +of 128K. +.El +.Sh SEE ALSO +.Xr isfctl 4 , +.Xr disk 9 +.Rs +.%T Intel StrataFlash Embedded Memory (P30) +.%D November 1, 2005 +.%I Intel Corporation +.%U http://www.xilinx.com/products/boards/ml505/datasheets/30666604.pdf +.Re +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 10.0 . +.Sh AUTHORS +The +.Nm +device driver and this manual page were +developed by SRI International and the University of Cambridge Computer +Laboratory under DARPA/AFRL contract +.Pq FA8750-10-C-0237 +.Pq Do CTSRD Dc , +as part of the DARPA CRASH research programme. +.Sh BUGS +While an erase is in progress, all read and write operations return +.Er EBUSY . +In principle, reads could be allowed outside the programming region the +blocked currently being erased resides in and writes could be allowed by +suspending the erase, but neither of these is currently implemented. +.Pp +Depending on the flash part ether the top or bottom 128K of the flash +address space is divided into 4 32K erase blocks. +The +.Nm +driver hides this from the user requiring that all erase requests be +multiples of 128K in size and erasing the individual blocks as needed at +the top or bottom. diff --git a/share/man/man4/ktr.4 b/share/man/man4/ktr.4 index b4039f0..db61dfe 100644 --- a/share/man/man4/ktr.4 +++ b/share/man/man4/ktr.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 25, 2005 +.Dd October 20, 2012 .Dt KTR 4 .Os .Sh NAME @@ -52,7 +52,6 @@ is The .Dv KTR_ENTRIES option sets the size of the buffer of events. -It must be a power of two. The size of the buffer in the currently running kernel can be found via the read-only sysctl .Va debug.ktr.entries . @@ -78,9 +77,7 @@ environment variable. It can also be examined and set after booting via the .Va debug.ktr.mask sysctl. -By default the run time mask is set to log only -.Dv KTR_GEN -events. +By default the run time mask is set to block any tracing. The definitions of the event mask bits can be found in .In sys/ktr.h . .Pp @@ -88,6 +85,9 @@ Furthermore, there is a CPU event mask whose default value can be changed via the .Dv KTR_CPUMASK option. +When two or more parameters to +.Dv KTR_CPUMASK , +are used, it is important they are not separated by whitespace. A CPU must have the bit corresponding to its logical id set in this bitmask for events that occur on it to be logged. This mask can be set by the @@ -98,7 +98,12 @@ environment variable. It can also be examined and set after booting via the .Va debug.ktr.cpumask sysctl. -By default events on all CPUs are enabled. +By default, only CPUs specified in +.Dv KTR_CPUMASK +will log events. +See +.Pa sys/conf/NOTES +for more information. .Ss Verbose Mode By default, events are only logged to the internal buffer for examination later, but if the verbose flag is set then they are dumped to the kernel diff --git a/share/man/man4/mac_lomac.4 b/share/man/man4/mac_lomac.4 index 0cf99c9..273a585 100644 --- a/share/man/man4/mac_lomac.4 +++ b/share/man/man4/mac_lomac.4 @@ -63,7 +63,7 @@ which protects the integrity of system objects and subjects by means of an information flow policy coupled with the subject demotion via floating labels. In LOMAC, all system subjects and objects are assigned integrity labels, made -up of one or more hierarchical grades, depending on the their types. +up of one or more hierarchical grades, depending on their types. Together, these label elements permit all labels to be placed in a partial order, with information flow protections and demotion decisions based on a dominance operator diff --git a/share/man/man4/man4.i386/sbni.4 b/share/man/man4/man4.i386/sbni.4 index 31cf610..779deba 100644 --- a/share/man/man4/man4.i386/sbni.4 +++ b/share/man/man4/man4.i386/sbni.4 @@ -97,7 +97,7 @@ bits 4-5 value, otherwise baud rate is set to 2Mb .Sh FILES The sources for the driver reside in: .Pp -.Bl -tag -compact +.Bl -tag -width ".Pa /sys/dev/sbni/if_sbni.c" -compact .It Pa /sys/dev/sbni/if_sbni.c .It Pa /sys/dev/sbni/if_sbnireg.h .It Pa /sys/dev/sbni/if_sbnivar.h diff --git a/share/man/man4/mps.4 b/share/man/man4/mps.4 index ce19737..2fbb669 100644 --- a/share/man/man4/mps.4 +++ b/share/man/man4/mps.4 @@ -34,7 +34,7 @@ .\" $Id: //depot/SpectraBSD/head/share/man/man4/mps.4#6 $ .\" $FreeBSD$ .\" -.Dd February 7, 2012 +.Dd June 30, 2012 .Dt MPS 4 .Os .Sh NAME @@ -166,7 +166,7 @@ variable, where X is the adapter number, either in or via .Xr sysctl 8 . The following bits have the described effects: -.Bl -tag -offset indent +.Bl -tag -width 6n -offset indent .It 0x01 Enable informational prints. .It 0x02 @@ -205,9 +205,6 @@ This man page was written by This driver has a couple of known shortcomings: .Bl -bullet -compact .It -Not endian safe. -It only works on little endian machines (e.g. amd64 and i386). -.It No userland utility available (e.g. .Xr mptutil 8 ) . .It diff --git a/share/man/man4/mpt.4 b/share/man/man4/mpt.4 index 4983759..9d62d17 100644 --- a/share/man/man4/mpt.4 +++ b/share/man/man4/mpt.4 @@ -124,15 +124,15 @@ Dell PowerEdge 1750 thru 2850 IBM eServer xSeries 335 .El .Pp -These systems also contain Integrated Raid Mirroring and Integrated -Raid Mirroring Enhanced which this driver also supports. +These systems also contain Integrated RAID Mirroring and Integrated +RAID Mirroring Enhanced which this driver also supports. .Pp The .Tn SAS controller chips are also present on many new AMD/Opteron based systems, like the Sun 4100. Note that this controller can drive both SAS and SATA -drives or a mix of them at the same time. The Integrated Raid Mirroring +drives or a mix of them at the same time. The Integrated RAID Mirroring available for these controllers is poorly supported at best. .Pp The diff --git a/share/man/man4/mvs.4 b/share/man/man4/mvs.4 index a7bbe80..5c8d8cc 100644 --- a/share/man/man4/mvs.4 +++ b/share/man/man4/mvs.4 @@ -67,7 +67,8 @@ controls SATA interface Power Management for the specified channel, allowing some power to be saved at the cost of additional command latency. Possible values: -.Bl -tag -compact +.Pp +.Bl -tag -width 4n -offset indent -compact .It 0 interface Power Management is disabled (default); .It 1 diff --git a/share/man/man4/netmap.4 b/share/man/man4/netmap.4 index 9ac9fd0..deed0c1 100644 --- a/share/man/man4/netmap.4 +++ b/share/man/man4/netmap.4 @@ -21,12 +21,12 @@ .\" 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. -.\" +.\" .\" This document is derived in part from the enet man page (enet.4) .\" distributed with 4.3BSD Unix. .\" .\" $FreeBSD$ -.\" $Id: netmap.4 9662 2011-11-16 13:18:06Z luigi $: stable/8/share/man/man4/bpf.4 181694 2008-08-13 17:45:06Z ed $ +.\" $Id: netmap.4 11563 2012-08-02 08:59:12Z luigi $: stable/8/share/man/man4/bpf.4 181694 2008-08-13 17:45:06Z ed $ .\" .Dd February 27, 2012 .Dt NETMAP 4 @@ -46,7 +46,7 @@ uses memory mapped buffers and metadata which is in charge of validating information through .Pa ioctl() and -.Pa select()/poll() . +.Pa select()/poll(). .Nm can exploit the parallelism in multiqueue devices and multicore systems. @@ -159,7 +159,7 @@ struct netmap_ring *rxring = NETMAP_RXRING(nifp, i); int i = txring->slot[txring->cur].buf_idx; char *buf = NETMAP_BUF(txring, i); .Ed -.Ss IOCTLS +.Sh IOCTLS .Nm supports some ioctl() to synchronize the state of the rings between the kernel and the user processes, plus some @@ -172,7 +172,7 @@ defined as follows: struct nmreq { char nr_name[IFNAMSIZ]; uint32_t nr_version; /* API version */ -#define NETMAP_API 2 /* current version */ +#define NETMAP_API 3 /* current version */ uint32_t nr_offset; /* nifp offset in the shared region */ uint32_t nr_memsize; /* size of the shared region */ uint32_t nr_tx_slots; /* slots in tx rings */ @@ -184,6 +184,8 @@ struct nmreq { #define NETMAP_SW_RING 0x2000 /* we process the sw ring */ #define NETMAP_NO_TX_POLL 0x1000 /* no gratuitous txsync on poll */ #define NETMAP_RING_MASK 0xfff /* the actual ring number */ + uint16_t spare1; + uint32_t spare2[4]; }; .Ed @@ -250,7 +252,7 @@ number of slots available for transmission. tells the hardware of consumed packets, and asks for newly available packets. .El -.Ss SYSTEM CALLS +.Sh SYSTEM CALLS .Nm uses .Nm select @@ -279,7 +281,7 @@ fds.fd = fd; fds.events = POLLOUT; for (;;) { poll(list, 1, -1); - while (ring->avail-- > 0) { + for ( ; ring->avail > 0 ; ring->avail--) { i = ring->cur; buf = NETMAP_BUF(ring, ring->slot[i].buf_index); ... prepare packet in buf ... @@ -292,13 +294,31 @@ for (;;) { .Nm supports the following interfaces: .Xr em 4 , +.Xr igb 4 , .Xr ixgbe 4 , -.Xr re 4 , +.Xr lem 4 , +.Xr re 4 +.Sh SEE ALSO +.Xr vale 4 +.Pp +http://info.iet.unipi.it/~luigi/netmap/ +.Pp +Luigi Rizzo, Revisiting network I/O APIs: the netmap framework, +Communications of the ACM, 55 (3), pp.45-51, March 2012 +.Pp +Luigi Rizzo, netmap: a novel framework for fast packet I/O, +Usenix ATC'12, June 2012, Boston .Sh AUTHORS +.An -nosplit The .Nm -framework has been designed and implemented by -.An Luigi Rizzo -and -.An Matteo Landi -in 2011 at the Universita` di Pisa. +framework has been designed and implemented at the +Universita` di Pisa in 2011 by +.An Luigi Rizzo , +with help from +.An Matteo Landi , +.An Gaetano Catalli , +.An Giuseppe Lettieri . +.Pp +.Nm +has been funded by the European Commission within FP7 Project CHANGE (257422). diff --git a/share/man/man4/ng_atm.4 b/share/man/man4/ng_atm.4 index aad0224..c11b911 100644 --- a/share/man/man4/ng_atm.4 +++ b/share/man/man4/ng_atm.4 @@ -30,7 +30,7 @@ .\" .\" ng_atm(4) man page .\" -.Dd June 24, 2003 +.Dd November 2, 2012 .Dt NG_ATM 4 .Os .Sh NAME @@ -151,23 +151,23 @@ headers. .Sh CONTROL MESSAGES This node type supports the generic messages plus the following: .Bl -tag -width 4n -.It Dv NGM_ATM_GET_IFNAME +.It Dv NGM_ATM_GET_IFNAME Pq Ic getifname Return the name of the interface as a .Dv NUL Ns -terminated string. This is normally the same name as that of the node. -.It Dv NGM_ATM_GET_CONFIG +.It Dv NGM_ATM_GET_CONFIG Pq Ic getconfig Returns a structure defining the configuration of the interface: .Bd -literal -struct ng_atm_config { +struct ngm_atm_config { uint32_t pcr; /* peak cell rate */ - uint32_t maxvpi; /* maximum vpi */ - uint32_t maxvci; /* maximum vci */ + uint32_t vpi_bits; /* number of active VPI bits */ + uint32_t vci_bits; /* number of active VCI bits */ uint32_t max_vpcs; /* maximum number of VPCs */ uint32_t max_vccs; /* maximum number of VCCs */ }; .Ed -.It Dv NGM_ATM_GET_VCCS +.It Dv NGM_ATM_GET_VCCS Pq Ic getvccs Returns the table of open VCCs from the driver. This table consists of a header and a variable sized array of entries, one for each open VCC: @@ -190,7 +190,7 @@ struct atmio_tparam { uint32_t pcr; /* 24bit: Peak Cell Rate */ uint32_t scr; /* 24bit: VBR Sustainable Cell Rate */ uint32_t mbs; /* 24bit: VBR Maximum burst size */ - uint32_t mcr; /* 24bit: MCR */ + uint32_t mcr; /* 24bit: ABR/VBR/UBR+MCR MCR */ uint32_t icr; /* 24bit: ABR ICR */ uint32_t tbe; /* 24bit: ABR TBE (1...2^24-1) */ uint8_t nrm; /* 3bit: ABR Nrm */ @@ -264,23 +264,23 @@ all traffic types however): .It Dv ATMIO_TRAFFIC_ABR .It Dv ATMIO_TRAFFIC_VBR .El -.It Dv NGM_ATM_CPCS_INIT +.It Dv NGM_ATM_CPCS_INIT Pq Ic cpcsinit Initialize a VCC for sending and receiving. The argument is a structure: .Bd -literal -struct ng_atm_cpcs_init { +struct ngm_atm_cpcs_init { char name[NG_HOOKSIZ]; - uint32_t flags; /* flags. (if_natmio.h) */ + uint32_t flags; /* flags. (if_atm.h) */ uint16_t vci; /* VCI to open */ uint16_t vpi; /* VPI to open */ uint16_t rmtu; /* receive maximum PDU */ uint16_t tmtu; /* transmit maximum PDU */ - uint8_t aal; /* AAL type (if_natmio.h) */ - uint8_t traffic; /* traffic type (if_natmio.h) */ + uint8_t aal; /* AAL type (if_atm.h) */ + uint8_t traffic; /* traffic type (if_atm.h) */ uint32_t pcr; /* Peak cell rate */ - uint32_t scr; /* Sustainable cell rate */ - uint32_t mbs; /* Maximum burst size */ - uint32_t mcr; /* Minimum cell rate */ + uint32_t scr; /* VBR: Sustainable cell rate */ + uint32_t mbs; /* VBR: Maximum burst rate */ + uint32_t mcr; /* UBR+: Minimum cell rate */ uint32_t icr; /* ABR: Initial cell rate */ uint32_t tbe; /* ABR: Transmit buffer exposure */ uint8_t nrm; /* ABR: Nrm */ @@ -316,14 +316,25 @@ The field contains the flags (see above) and the other fields describe the type of traffic. -.It Dv NGM_ATM_CPCS_TERM +.It Dv NGM_ATM_CPCS_TERM Pq Ic cpcsterm Stop sending and receiving on the indicated hook. The argument is a .Bd -literal -struct ng_atm_cpcs_term { +struct ngm_atm_cpcs_term { char name[NG_HOOKSIZ]; }; .Ed +.It Dv NGM_ATM_GET_STATS Pq Ic getstats +This command returns a message, containing node statistics. The +structure of the message is: +.Bd -literal +struct ngm_atm_stats { + uint64_t in_packets; + uint64_t in_errors; + uint64_t out_packets; + uint64_t out_errors; +}; +.Ed .El .Sh MANAGEMENT MESSAGES If the @@ -333,35 +344,14 @@ They are received by the peer node with a cookie of .Dv NG_ATM_COOKIE . .Bl -tag -width 4n -.It Dv NGM_ATM_CARRIER_CHANGE -The carrier state of the ATM physical interface has changed. -The message has the following structure: -.Bd -literal -struct ng_atm_carrier_change { - uint32_t node; - uint32_t state; -}; -.Ed -.Pp -The -.Va node -field -is the node ID of the ATM node. -This can be used by the managing entity -(for example -.Xr ilmid 8 ) -to manage several interfaces at the same time through the same node. -The -.Va state -field is 1 if the carrier was detected, and 0 if it was lost. -.It Dv NGM_ATM_VCC_CHANGE +.It Dv NGM_ATM_VCC_CHANGE Pq Ic vcc_change A permanent VCC has been added, deleted or changed. This is used by .Xr ilmid 8 to generate the appropriate ILMI traps. The structure of the message is: .Bd -literal -struct ng_atm_vcc_change { +struct ngm_atm_vcc_change { uint32_t node; uint16_t vci; uint8_t vpi; diff --git a/share/man/man4/ng_ksocket.4 b/share/man/man4/ng_ksocket.4 index e74f61a..3a9fcd0 100644 --- a/share/man/man4/ng_ksocket.4 +++ b/share/man/man4/ng_ksocket.4 @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 09, 2012 +.Dd January 9, 2012 .Dt NG_KSOCKET 4 .Os .Sh NAME diff --git a/share/man/man4/ng_netflow.4 b/share/man/man4/ng_netflow.4 index 9431c62..36551d5 100644 --- a/share/man/man4/ng_netflow.4 +++ b/share/man/man4/ng_netflow.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 2, 2011 +.Dd Nov 2, 2012 .Dt NG_NETFLOW 4 .Os .Sh NAME @@ -100,25 +100,36 @@ node. .Sh CONTROL MESSAGES This node type supports the generic control messages, plus the following: .Bl -tag -width indent -.It Dv NGM_NETFLOW_INFO +.It Dv NGM_NETFLOW_INFO Pq Ic info Returns some node statistics and the current timeout values in a .Vt "struct ng_netflow_info" . -.It Dv NGM_NETFLOW_IFINFO +.It Dv NGM_NETFLOW_IFINFO Pq Ic ifinfo Returns information about the .Va iface Ns Ar N hook. The hook number is passed as an argument. -.It Dv NGM_NETFLOW_SETDLT +.It Dv NGM_NETFLOW_SETDLT Pq Ic setdlt Sets data link type on the .Va iface Ns Ar N hook. -Currently, supported types are raw IP datagrams and Ethernet. +Currently, supported types are +.Cm DLT_RAW +(raw IP datagrams) and +.Cm DLT_EN10MB +(Ethernet). +DLT_ definitions can be found in +.In net/bpf.h +header. +Currently used values are 1 for +.Cm DLT_EN10MB +and 12 for +.Cm DLT_RAW . This message type uses .Vt "struct ng_netflow_setdlt" as an argument: .Bd -literal -offset 4n struct ng_netflow_setdlt { - uint16_t iface; /* which iface to operate on */ + uint16_t iface; /* which iface dlt change */ uint8_t dlt; /* DLT_XXX from bpf.h */ }; .Ed @@ -127,7 +138,7 @@ The requested .Va iface Ns Ar N hook must already be connected, otherwise message send operation will return an error. -.It Dv NGM_NETFLOW_SETIFINDEX +.It Dv NGM_NETFLOW_SETIFINDEX Pq Ic setifindex In some cases, .Nm may be unable to determine the input interface index of a packet. @@ -147,7 +158,7 @@ This message requires as an argument: .Bd -literal -offset 4n struct ng_netflow_setifindex { - uint16_t iface; /* which iface to operate on */ + uint16_t iface; /* which iface index change */ uint16_t index; /* new index */ }; .Ed @@ -156,65 +167,83 @@ The requested .Va iface Ns Ar N hook must already be connected, otherwise the message send operation will return an error. -.It Dv NGM_NETFLOW_SETTIMEOUTS +.It Dv NGM_NETFLOW_SETTIMEOUTS Pq Ic settimeouts Sets values in seconds for NetFlow active/inactive timeouts. This message requires .Vt "struct ng_netflow_settimeouts" as an argument: .Bd -literal -offset 4n struct ng_netflow_settimeouts { - uint32_t inactive_timeout; - uint32_t active_timeout; + uint32_t inactive_timeout; /* flow inactive timeout */ + uint32_t active_timeout; /* flow active timeout */ }; .Ed -.It Dv NGM_NETFLOW_SETCONFIG +.It Dv NGM_NETFLOW_SETCONFIG Pq Ic setconfig Sets configuration for the specified interface. This message requires .Vt "struct ng_netflow_setconfig" as an argument: .Bd -literal -offset 4n struct ng_netflow_setconfig { - uint16_t iface; - uint32_t conf; + uint16_t iface; /* which iface config change */ + uint32_t conf; /* new config */ #define NG_NETFLOW_CONF_INGRESS 1 #define NG_NETFLOW_CONF_EGRESS 2 #define NG_NETFLOW_CONF_ONCE 4 #define NG_NETFLOW_CONF_THISONCE 8 +#define NG_NETFLOW_CONF_NOSRCLOOKUP 16 +#define NG_NETFLOW_CONF_NODSTLOOKUP 32 }; .Ed .Pp Configuration is a bitmask of several options. Option NG_NETFLOW_CONF_INGRESS enabled by default enables ingress NetFlow generation (for data coming from -ifaceX hook). Option NG_NETFLOW_CONF_EGRESS enables egress NetFlow (for data -coming from outX hook). Option NG_NETFLOW_CONF_ONCE defines that packet should -be accounted only once if it several times passes via netflow node. Option -NG_NETFLOW_CONF_THISONCE defines that packet should be accounted only once -if it several times passes via exactly this netflow node. Last two options are -important to avoid duplicate accounting when both ingress and egress NetFlow -are enabled. -.It Dv NGM_NETFLOW_SETTEMPLATE +ifaceX hook). +Option +.Va NG_NETFLOW_CONF_EGRESS +enables egress NetFlow (for data coming from outX hook). +Option +.Va NG_NETFLOW_CONF_ONCE +defines that packet should be accounted only once if it several times passes +via netflow node. +Option +.Va NG_NETFLOW_CONF_THISONCE +defines that packet should be accounted only once if it several times passes +via exactly this netflow node. +These two options are important to avoid duplicate accounting when both ingress +and egress NetFlow are enabled. +Option +.Va NG_NETFLOW_CONF_NOSRCLOOKUP +skips radix lookup on flow source address used to fill in network mask. +Option +.Va NG_NETFLOW_CONF_NODSTLOOKUP +skips radix lookup on destination (which fills egress interface id, destination +mask and gateway). +If one doesn't need data provided by lookups, he/she can disable them, to reduce +load on routers. +.It Dv NGM_NETFLOW_SETTEMPLATE Pq Ic settemplate Sets various timeouts to announce data flow templates (NetFlow v9-specific). This message requires .Vt "struct ng_netflow_settemplate" as an argument: .Bd -literal -offset 4n struct ng_netflow_settemplate { - uint16_t time; - uint16_t packets; + uint16_t time; /* max time between announce */ + uint16_t packets; /* max packets between announce */ }; .Ed .Pp Value of time field represents time in seconds to re-announce data templates. Value of packets field represents maximum packets count between re-announcing data templates. -.It Dv NGM_NETFLOW_SETMTU +.It Dv NGM_NETFLOW_SETMTU Pq Ic setmtu Sets export interface MTU to build packets of specified size (NetFlow v9-specific). This message requires .Vt "struct ng_netflow_setmtu" as an argument: .Bd -literal -offset 4n -struct ng_netflow_settemtu { - uint16_t mtu; +struct ng_netflow_setemtu { + uint16_t mtu; /* MTU for packet */ }; .Ed .Pp @@ -228,32 +257,15 @@ not directly from See also .Sx BUGS section. -.El -.Sh ASCII CONTROL MESSAGES -Most binary control messages have an -.Tn ASCII -equivalent. -The supported -.Tn ASCII -commands are: -.Pp -.Bl -tag -width ".Dv NGM_NETFLOW_SETTIMEOUTS" -compact -.It Dv NGM_NETFLOW_INFO -.Qq Li info -.It Dv NGM_NETFLOW_IFINFO -.Qq Li "ifinfo %u" -.It Dv NGM_NETFLOW_SETDLT -.Qq Li "setdlt { iface = %u dlt = %u }" -.It Dv NGM_NETFLOW_SETIFINDEX -.Qq Li "setifindex { iface = %u index = %u }" -.It Dv NGM_NETFLOW_SETTIMEOUTS -.Qq Li "settimeouts { inactive = %u active = %u }" -.It Dv NGM_NETFLOW_SETCONFIG -.Qq Li "setconfig { iface = %u conf = %u }" -.It Dv NGM_NETFLOW_SETTEMPLATE -.Qq Li "settemplate { time = %u packets = %u }" -.It Dv NGM_NETFLOW_SETMTU -.Qq Li "setmtu { mtu = %u }" +.It Dv NGM_NETFLOW_V9INFO Pq Ic v9info +Returns some NetFlow v9 related values in a +.Bd -literal -offset 4n +struct ng_netflow_v9info { + uint16_t templ_packets; /* v9 template packets */ + uint16_t templ_time; /* v9 template time */ + uint16_t mtu; /* v9 MTU */ +}; +.Ed .El .Sh SHUTDOWN This node shuts down upon receipt of a diff --git a/share/man/man4/ng_ppp.4 b/share/man/man4/ng_ppp.4 index 050d639..88cf6e2 100644 --- a/share/man/man4/ng_ppp.4 +++ b/share/man/man4/ng_ppp.4 @@ -35,7 +35,7 @@ .\" $FreeBSD$ .\" $Whistle: ng_ppp.8,v 1.3 1999/01/25 23:46:27 archie Exp $ .\" -.Dd December 28, 2006 +.Dd September 24, 2012 .Dt NG_PPP 4 .Os .Sh NAME @@ -325,6 +325,8 @@ Connection to hook .It Dv inet IP packet data +.It Dv ipv6 +IPv6 packet data .It Dv atalk AppleTalk packet data .It Dv ipx diff --git a/share/man/man4/nvd.4 b/share/man/man4/nvd.4 new file mode 100644 index 0000000..192d946 --- /dev/null +++ b/share/man/man4/nvd.4 @@ -0,0 +1,90 @@ +.\" +.\" Copyright (c) 2012 Intel Corporation +.\" 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. +.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer +.\" substantially similar to the "NO WARRANTY" disclaimer below +.\" ("Disclaimer") and any redistribution must be conditioned upon +.\" including a substantially similar Disclaimer requirement for further +.\" binary redistribution. +.\" +.\" NO WARRANTY +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR +.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +.\" HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. +.\" +.\" nvd driver man page. +.\" +.\" Author: Jim Harris <jimharris@FreeBSD.org> +.\" +.\" $FreeBSD$ +.\" +.Dd October 10, 2012 +.Dt NVD 4 +.Os +.Sh NAME +.Nm nvd +.Nd NVM Express disk driver +.Sh SYNOPSIS +To compile this driver into your kernel, +place the following lines in your kernel configuration file: +.Bd -ragged -offset indent +.Cd "device nvme" +.Cd "device nvd" +.Ed +.Pp +Or, to load the driver as a module at boot, place the following lines in +.Xr loader.conf 5 : +.Bd -literal -offset indent +nvme_load="YES" +nvd_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver exposes NVM Express (NVMe) namespaces as disks to the kernel disk +storage API. +It depends on the +.Xr nvme 4 +driver for notification of existing NVMe namespaces and submission of NVM +I/O commands. +.Sh SEE ALSO +.Xr nvme 4 , +.Xr nvmecontrol 8 , +.Xr disk 9 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was developed by Intel and originally written by +.An Jim Harris Aq jimharris@FreeBSD.org , +with contributions from Joe Golio at EMC. +.Pp +This man page was written by +.An Jim Harris Aq jimharris@FreeBSD.org . +.Sh BUGS +The +.Nm +driver is considered experimental. +Development and testing have been primarily focused on amd64. +The following areas of development and testing are in progress: +.Bl -bullet +.It +testing on i386 +.It +command timeout error handling +.El diff --git a/share/man/man4/nvme.4 b/share/man/man4/nvme.4 new file mode 100644 index 0000000..4a1a6de --- /dev/null +++ b/share/man/man4/nvme.4 @@ -0,0 +1,175 @@ +.\" +.\" Copyright (c) 2012 Intel Corporation +.\" 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. +.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer +.\" substantially similar to the "NO WARRANTY" disclaimer below +.\" ("Disclaimer") and any redistribution must be conditioned upon +.\" including a substantially similar Disclaimer requirement for further +.\" binary redistribution. +.\" +.\" NO WARRANTY +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR +.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +.\" HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. +.\" +.\" nvme driver man page. +.\" +.\" Author: Jim Harris <jimharris@FreeBSD.org> +.\" +.\" $FreeBSD$ +.\" +.Dd October 10, 2012 +.Dt NVME 4 +.Os +.Sh NAME +.Nm nvme +.Nd NVM Express core driver +.Sh SYNOPSIS +To compile this driver into your kernel, +place the following line in your kernel configuration file: +.Bd -ragged -offset indent +.Cd "device nvme" +.Ed +.Pp +Or, to load the driver as a module at boot, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +nvme_load="YES" +.Ed +.Pp +Most users will also want to enable +.Xr nvd 4 +to surface NVM Express namespaces as disk devices. +Note that in NVM Express terms, a namespace is roughly equivalent to a +SCSI LUN. +.Sh DESCRIPTION +The +.Nm +driver provides support for NVM Express (NVMe) controllers, such as: +.Bl -bullet +.It +Hardware initialization +.It +Per-CPU IO queue pairs +.It +API for registering NVMe namespace consumers such as +.Xr nvd 4 +.It +API for submitting NVM commands to namespaces +.It +Ioctls for controller and namespace configuration and management +.Nm +creates controller devices in the format /dev/nvmeX and namespace devices in +the format /dev/nvmeXnsY. +Note that the NVM Express specification starts numbering namespaces at 1, +not 0, and this driver follows that convention. +.El +.Sh CONFIGURATION +By default, +.Nm +will create an I/O queue pair for each CPU, provided enough MSI-X vectors +can be allocated. +To force a single I/O queue pair shared by all CPUs, set the following +tunable value in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.nvme.per_cpu_io_queues=0 +.Ed +.Pp +To force legacy interrupts for all +.Nm +driver instances, set the following tunable value in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.nvme.force_intx=1 +.Ed +.Pp +Note that use of INTx implies disabling of per-CPU I/O queue pairs. +.Sh SYSCTL VARIABLES +The following controller-level sysctls are currently implemented: +.Bl -tag -width indent +.It Va dev.nvme.0.int_coal_time +(R/W) Interrupt coalescing timer period in microseconds. Set to 0 to disable. +.It Va dev.nvme.0.int_coal_threshold +(R/W) Interrupt coalescing threshold in number of command completions. +Set to 0 to disable. +.El +.Pp +The following queue pair-level sysctls are currently implemented. +Admin queue sysctls take the format of dev.nvme.0.adminq and I/O queue sysctls +take the format of dev.nvme.0.ioq0. +.Bl -tag -width indent +.It Va dev.nvme.0.ioq0.num_entries +(R) Number of entries in this queue pair's command and completion queue. +.It Va dev.nvme.0.ioq0.num_tr +(R) Number of nvme_tracker structures currently allocated for this queue pair. +.It Va dev.nvme.0.ioq0.num_prp_list +(R) Number of nvme_prp_list structures currently allocated for this queue pair. +.It Va dev.nvme.0.ioq0.sq_head +(R) Current location of the submission queue head pointer as observed by +the driver. +The head pointer is incremented by the controller as it takes commands off +of the submission queue. +.It Va dev.nvme.0.ioq0.sq_tail +(R) Current location of the submission queue tail pointer as observed by +the driver. +The driver increments the tail pointer after writing a command +into the submission queue to signal that a new command is ready to be +processed. +.It Va dev.nvme.0.ioq0.cq_head +(R) Current location of the completion queue head pointer as observed by +the driver. +The driver increments the head pointer after finishing +with a completion entry that was posted by the controller. +.It Va dev.nvme.0.ioq0.num_cmds +(R) Number of commands that have been submitted on this queue pair. +.It Va dev.nvme.0.ioq0.dump_debug +(W) Writing 1 to this sysctl will dump the full contents of the submission +and completion queues to the console. +.El +.Sh SEE ALSO +.Xr nvd 4 , +.Xr pci 4 , +.Xr nvmecontrol 8 , +.Xr disk 9 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was developed by Intel and originally written by +.An Jim Harris Aq jimharris@FreeBSD.org , +with contributions from Joe Golio at EMC. +.Pp +This man page was written by +.An Jim Harris Aq jimharris@FreeBSD.org . +.Sh BUGS +The +.Nm +driver is considered experimental. +Development and testing have been primarily focused on amd64. +The following areas of development and testing are in progress: +.Bl -bullet +.It +testing on i386 +.It +asynchronous error reporting +.It +command timeout error handling +.It +controller-level resets +.El diff --git a/share/man/man4/pf.4 b/share/man/man4/pf.4 new file mode 100644 index 0000000..f290a9b --- /dev/null +++ b/share/man/man4/pf.4 @@ -0,0 +1,1185 @@ +.\" $OpenBSD: pf.4,v 1.62 2008/09/10 14:57:37 jmc Exp $ +.\" +.\" Copyright (C) 2001, Kjell Wooding. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the project nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT 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 PROJECT 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 September 18 2012 +.Dt PF 4 +.Os +.Sh NAME +.Nm pf +.Nd packet filter +.Sh SYNOPSIS +.Cd "device pf" +.Cd "options PF_DEFAULT_TO_DROP" +.Sh DESCRIPTION +Packet filtering takes place in the kernel. +A pseudo-device, +.Pa /dev/pf , +allows userland processes to control the +behavior of the packet filter through an +.Xr ioctl 2 +interface. +There are commands to enable and disable the filter, load rulesets, +add and remove individual rules or state table entries, +and retrieve statistics. +The most commonly used functions are covered by +.Xr pfctl 8 . +.Pp +Manipulations like loading a ruleset that involve more than a single +.Xr ioctl 2 +call require a so-called +.Em ticket , +which prevents the occurrence of +multiple concurrent manipulations. +.Pp +Fields of +.Xr ioctl 2 +parameter structures that refer to packet data (like +addresses and ports) are generally expected in network byte-order. +.Pp +Rules and address tables are contained in so-called +.Em anchors . +When servicing an +.Xr ioctl 2 +request, if the anchor field of the argument structure is empty, +the kernel will use the default anchor (i.e., the main ruleset) +in operations. +Anchors are specified by name and may be nested, with components +separated by +.Sq / +characters, similar to how file system hierarchies are laid out. +The final component of the anchor path is the anchor under which +operations will be performed. +.Sh SYSCTL VARIABLES AND LOADER TUNABLES +The following +.Xr loader 8 +tunables are available. +.Bl -tag -width indent +.It Va net.pf.states_hashsize +Size of hash tables that store states. +Should be power of 2. +Default value is 32768. +.It Va net.pf.source_nodes_hashsize +Size of hash table that store source nodes. +Should be power of 2. +Default value is 8192. +.El +.Pp +Read only +.Xr sysctl 8 +variables with matching names are provided to obtain current values +at runtime. +.Sh KERNEL OPTIONS +The following options in the kernel configuration file are related to +.Nm +operation: +.Pp +.Bl -tag -width ".Dv PF_DEFAULT_TO_DROP" -compact +.It Dv PF_DEFAULT_TO_DROP +Change default policy to drop by default +.El +.Sh IOCTL INTERFACE +.Nm +supports the following +.Xr ioctl 2 +commands, available through +.Aq Pa net/pfvar.h : +.Bl -tag -width xxxxxx +.It Dv DIOCSTART +Start the packet filter. +.It Dv DIOCSTOP +Stop the packet filter. +.It Dv DIOCSTARTALTQ +Start the ALTQ bandwidth control system (see +.Xr altq 9 ) . +.It Dv DIOCSTOPALTQ +Stop the ALTQ bandwidth control system. +.It Dv DIOCBEGINADDRS Fa "struct pfioc_pooladdr *pp" +.Bd -literal +struct pfioc_pooladdr { + u_int32_t action; + u_int32_t ticket; + u_int32_t nr; + u_int32_t r_num; + u_int8_t r_action; + u_int8_t r_last; + u_int8_t af; + char anchor[MAXPATHLEN]; + struct pf_pooladdr addr; +}; +.Ed +.Pp +Clear the buffer address pool and get a +.Va ticket +for subsequent +.Dv DIOCADDADDR , +.Dv DIOCADDRULE , +and +.Dv DIOCCHANGERULE +calls. +.It Dv DIOCADDADDR Fa "struct pfioc_pooladdr *pp" +.Pp +Add the pool address +.Va addr +to the buffer address pool to be used in the following +.Dv DIOCADDRULE +or +.Dv DIOCCHANGERULE +call. +All other members of the structure are ignored. +.It Dv DIOCADDRULE Fa "struct pfioc_rule *pr" +.Bd -literal +struct pfioc_rule { + u_int32_t action; + u_int32_t ticket; + u_int32_t pool_ticket; + u_int32_t nr; + char anchor[MAXPATHLEN]; + char anchor_call[MAXPATHLEN]; + struct pf_rule rule; +}; +.Ed +.Pp +Add +.Va rule +at the end of the inactive ruleset. +This call requires a +.Va ticket +obtained through a preceding +.Dv DIOCXBEGIN +call and a +.Va pool_ticket +obtained through a +.Dv DIOCBEGINADDRS +call. +.Dv DIOCADDADDR +must also be called if any pool addresses are required. +The optional +.Va anchor +name indicates the anchor in which to append the rule. +.Va nr +and +.Va action +are ignored. +.It Dv DIOCADDALTQ Fa "struct pfioc_altq *pa" +Add an ALTQ discipline or queue. +.Bd -literal +struct pfioc_altq { + u_int32_t action; + u_int32_t ticket; + u_int32_t nr; + struct pf_altq altq; +}; +.Ed +.It Dv DIOCGETRULES Fa "struct pfioc_rule *pr" +Get a +.Va ticket +for subsequent +.Dv DIOCGETRULE +calls and the number +.Va nr +of rules in the active ruleset. +.It Dv DIOCGETRULE Fa "struct pfioc_rule *pr" +Get a +.Va rule +by its number +.Va nr +using the +.Va ticket +obtained through a preceding +.Dv DIOCGETRULES +call. +If +.Va action +is set to +.Dv PF_GET_CLR_CNTR , +the per-rule statistics on the requested rule are cleared. +.It Dv DIOCGETADDRS Fa "struct pfioc_pooladdr *pp" +Get a +.Va ticket +for subsequent +.Dv DIOCGETADDR +calls and the number +.Va nr +of pool addresses in the rule specified with +.Va r_action , +.Va r_num , +and +.Va anchor . +.It Dv DIOCGETADDR Fa "struct pfioc_pooladdr *pp" +Get the pool address +.Va addr +by its number +.Va nr +from the rule specified with +.Va r_action , +.Va r_num , +and +.Va anchor +using the +.Va ticket +obtained through a preceding +.Dv DIOCGETADDRS +call. +.It Dv DIOCGETALTQS Fa "struct pfioc_altq *pa" +Get a +.Va ticket +for subsequent +.Dv DIOCGETALTQ +calls and the number +.Va nr +of queues in the active list. +.It Dv DIOCGETALTQ Fa "struct pfioc_altq *pa" +Get the queueing discipline +.Va altq +by its number +.Va nr +using the +.Va ticket +obtained through a preceding +.Dv DIOCGETALTQS +call. +.It Dv DIOCGETQSTATS Fa "struct pfioc_qstats *pq" +Get the statistics on a queue. +.Bd -literal +struct pfioc_qstats { + u_int32_t ticket; + u_int32_t nr; + void *buf; + int nbytes; + u_int8_t scheduler; +}; +.Ed +.Pp +This call fills in a pointer to the buffer of statistics +.Va buf , +of length +.Va nbytes , +for the queue specified by +.Va nr . +.It Dv DIOCGETRULESETS Fa "struct pfioc_ruleset *pr" +.Bd -literal +struct pfioc_ruleset { + u_int32_t nr; + char path[MAXPATHLEN]; + char name[PF_ANCHOR_NAME_SIZE]; +}; +.Ed +.Pp +Get the number +.Va nr +of rulesets (i.e., anchors) directly attached to the anchor named by +.Va path +for use in subsequent +.Dv DIOCGETRULESET +calls. +Nested anchors, since they are not directly attached to the given +anchor, will not be included. +This ioctl returns +.Er EINVAL +if the given anchor does not exist. +.It Dv DIOCGETRULESET Fa "struct pfioc_ruleset *pr" +Get a ruleset (i.e., an anchor) +.Va name +by its number +.Va nr +from the given anchor +.Va path , +the maximum number of which can be obtained from a preceding +.Dv DIOCGETRULESETS +call. +This ioctl returns +.Er EINVAL +if the given anchor does not exist or +.Er EBUSY +if another process is concurrently updating a ruleset. +.It Dv DIOCADDSTATE Fa "struct pfioc_state *ps" +Add a state entry. +.Bd -literal +struct pfioc_state { + struct pfsync_state state; +}; +.Ed +.It Dv DIOCGETSTATE Fa "struct pfioc_state *ps" +Extract the entry identified by the +.Va id +and +.Va creatorid +fields of the +.Va state +structure from the state table. +.It Dv DIOCKILLSTATES Fa "struct pfioc_state_kill *psk" +Remove matching entries from the state table. +This ioctl returns the number of killed states in +.Va psk_killed . +.Bd -literal +struct pfioc_state_kill { + struct pf_state_cmp psk_pfcmp; + sa_family_t psk_af; + int psk_proto; + struct pf_rule_addr psk_src; + struct pf_rule_addr psk_dst; + char psk_ifname[IFNAMSIZ]; + char psk_label[PF_RULE_LABEL_SIZE]; + u_int psk_killed; +}; +.Ed +.It Dv DIOCCLRSTATES Fa "struct pfioc_state_kill *psk" +Clear all states. +It works like +.Dv DIOCKILLSTATES , +but ignores the +.Va psk_af , +.Va psk_proto , +.Va psk_src , +and +.Va psk_dst +fields of the +.Vt pfioc_state_kill +structure. +.It Dv DIOCSETSTATUSIF Fa "struct pfioc_if *pi" +Specify the interface for which statistics are accumulated. +.Bd -literal +struct pfioc_if { + char ifname[IFNAMSIZ]; +}; +.Ed +.It Dv DIOCGETSTATUS Fa "struct pf_status *s" +Get the internal packet filter statistics. +.Bd -literal +struct pf_status { + u_int64_t counters[PFRES_MAX]; + u_int64_t lcounters[LCNT_MAX]; + u_int64_t fcounters[FCNT_MAX]; + u_int64_t scounters[SCNT_MAX]; + u_int64_t pcounters[2][2][3]; + u_int64_t bcounters[2][2]; + u_int32_t running; + u_int32_t states; + u_int32_t src_nodes; + u_int32_t since; + u_int32_t debug; + u_int32_t hostid; + char ifname[IFNAMSIZ]; + u_int8_t pf_chksum[MD5_DIGEST_LENGTH]; +}; +.Ed +.It Dv DIOCCLRSTATUS +Clear the internal packet filter statistics. +.It Dv DIOCNATLOOK Fa "struct pfioc_natlook *pnl" +Look up a state table entry by source and destination addresses and ports. +.Bd -literal +struct pfioc_natlook { + struct pf_addr saddr; + struct pf_addr daddr; + struct pf_addr rsaddr; + struct pf_addr rdaddr; + u_int16_t sport; + u_int16_t dport; + u_int16_t rsport; + u_int16_t rdport; + sa_family_t af; + u_int8_t proto; + u_int8_t direction; +}; +.Ed +.It Dv DIOCSETDEBUG Fa "u_int32_t *level" +Set the debug level. +.Bd -literal +enum { PF_DEBUG_NONE, PF_DEBUG_URGENT, PF_DEBUG_MISC, + PF_DEBUG_NOISY }; +.Ed +.It Dv DIOCGETSTATES Fa "struct pfioc_states *ps" +Get state table entries. +.Bd -literal +struct pfioc_states { + int ps_len; + union { + caddr_t psu_buf; + struct pf_state *psu_states; + } ps_u; +#define ps_buf ps_u.psu_buf +#define ps_states ps_u.psu_states +}; +.Ed +.Pp +If +.Va ps_len +is non-zero on entry, as many states as possible that can fit into this +size will be copied into the supplied buffer +.Va ps_states . +On exit, +.Va ps_len +is always set to the total size required to hold all state table entries +(i.e., it is set to +.Li sizeof(struct pf_state) * nr ) . +.It Dv DIOCCHANGERULE Fa "struct pfioc_rule *pcr" +Add or remove the +.Va rule +in the ruleset specified by +.Va rule.action . +.Pp +The type of operation to be performed is indicated by +.Va action , +which can be any of the following: +.Bd -literal +enum { PF_CHANGE_NONE, PF_CHANGE_ADD_HEAD, PF_CHANGE_ADD_TAIL, + PF_CHANGE_ADD_BEFORE, PF_CHANGE_ADD_AFTER, + PF_CHANGE_REMOVE, PF_CHANGE_GET_TICKET }; +.Ed +.Pp +.Va ticket +must be set to the value obtained with +.Dv PF_CHANGE_GET_TICKET +for all actions except +.Dv PF_CHANGE_GET_TICKET . +.Va pool_ticket +must be set to the value obtained with the +.Dv DIOCBEGINADDRS +call for all actions except +.Dv PF_CHANGE_REMOVE +and +.Dv PF_CHANGE_GET_TICKET . +.Va anchor +indicates to which anchor the operation applies. +.Va nr +indicates the rule number against which +.Dv PF_CHANGE_ADD_BEFORE , +.Dv PF_CHANGE_ADD_AFTER , +or +.Dv PF_CHANGE_REMOVE +actions are applied. +.\" It Dv DIOCCHANGEALTQ Fa "struct pfioc_altq *pcr" +.It Dv DIOCCHANGEADDR Fa "struct pfioc_pooladdr *pca" +Add or remove the pool address +.Va addr +from the rule specified by +.Va r_action , +.Va r_num , +and +.Va anchor . +.It Dv DIOCSETTIMEOUT Fa "struct pfioc_tm *pt" +.Bd -literal +struct pfioc_tm { + int timeout; + int seconds; +}; +.Ed +.Pp +Set the state timeout of +.Va timeout +to +.Va seconds . +The old value will be placed into +.Va seconds . +For possible values of +.Va timeout , +consult the +.Dv PFTM_* +values in +.Aq Pa net/pfvar.h . +.It Dv DIOCGETTIMEOUT Fa "struct pfioc_tm *pt" +Get the state timeout of +.Va timeout . +The value will be placed into the +.Va seconds +field. +.It Dv DIOCCLRRULECTRS +Clear per-rule statistics. +.It Dv DIOCSETLIMIT Fa "struct pfioc_limit *pl" +Set the hard limits on the memory pools used by the packet filter. +.Bd -literal +struct pfioc_limit { + int index; + unsigned limit; +}; + +enum { PF_LIMIT_STATES, PF_LIMIT_SRC_NODES, PF_LIMIT_FRAGS, + PF_LIMIT_TABLE_ENTRIES, PF_LIMIT_MAX }; +.Ed +.It Dv DIOCGETLIMIT Fa "struct pfioc_limit *pl" +Get the hard +.Va limit +for the memory pool indicated by +.Va index . +.It Dv DIOCRCLRTABLES Fa "struct pfioc_table *io" +Clear all tables. +All the ioctls that manipulate radix tables +use the same structure described below. +For +.Dv DIOCRCLRTABLES , +.Va pfrio_ndel +contains on exit the number of tables deleted. +.Bd -literal +struct pfioc_table { + struct pfr_table pfrio_table; + void *pfrio_buffer; + int pfrio_esize; + int pfrio_size; + int pfrio_size2; + int pfrio_nadd; + int pfrio_ndel; + int pfrio_nchange; + int pfrio_flags; + u_int32_t pfrio_ticket; +}; +#define pfrio_exists pfrio_nadd +#define pfrio_nzero pfrio_nadd +#define pfrio_nmatch pfrio_nadd +#define pfrio_naddr pfrio_size2 +#define pfrio_setflag pfrio_size2 +#define pfrio_clrflag pfrio_nadd +.Ed +.It Dv DIOCRADDTABLES Fa "struct pfioc_table *io" +Create one or more tables. +On entry, +.Va pfrio_buffer +must point to an array of +.Vt struct pfr_table +containing at least +.Vt pfrio_size +elements. +.Vt pfrio_esize +must be the size of +.Vt struct pfr_table . +On exit, +.Va pfrio_nadd +contains the number of tables effectively created. +.Bd -literal +struct pfr_table { + char pfrt_anchor[MAXPATHLEN]; + char pfrt_name[PF_TABLE_NAME_SIZE]; + u_int32_t pfrt_flags; + u_int8_t pfrt_fback; +}; +.Ed +.It Dv DIOCRDELTABLES Fa "struct pfioc_table *io" +Delete one or more tables. +On entry, +.Va pfrio_buffer +must point to an array of +.Vt struct pfr_table +containing at least +.Vt pfrio_size +elements. +.Vt pfrio_esize +must be the size of +.Vt struct pfr_table . +On exit, +.Va pfrio_ndel +contains the number of tables effectively deleted. +.It Dv DIOCRGETTABLES Fa "struct pfioc_table *io" +Get the list of all tables. +On entry, +.Va pfrio_buffer[pfrio_size] +contains a valid writeable buffer for +.Vt pfr_table +structures. +On exit, +.Va pfrio_size +contains the number of tables written into the buffer. +If the buffer is too small, the kernel does not store anything but just +returns the required buffer size, without error. +.It Dv DIOCRGETTSTATS Fa "struct pfioc_table *io" +This call is like +.Dv DIOCRGETTABLES +but is used to get an array of +.Vt pfr_tstats +structures. +.Bd -literal +struct pfr_tstats { + struct pfr_table pfrts_t; + u_int64_t pfrts_packets + [PFR_DIR_MAX][PFR_OP_TABLE_MAX]; + u_int64_t pfrts_bytes + [PFR_DIR_MAX][PFR_OP_TABLE_MAX]; + u_int64_t pfrts_match; + u_int64_t pfrts_nomatch; + long pfrts_tzero; + int pfrts_cnt; + int pfrts_refcnt[PFR_REFCNT_MAX]; +}; +#define pfrts_name pfrts_t.pfrt_name +#define pfrts_flags pfrts_t.pfrt_flags +.Ed +.It Dv DIOCRCLRTSTATS Fa "struct pfioc_table *io" +Clear the statistics of one or more tables. +On entry, +.Va pfrio_buffer +must point to an array of +.Vt struct pfr_table +containing at least +.Vt pfrio_size +elements. +.Vt pfrio_esize +must be the size of +.Vt struct pfr_table . +On exit, +.Va pfrio_nzero +contains the number of tables effectively cleared. +.It Dv DIOCRCLRADDRS Fa "struct pfioc_table *io" +Clear all addresses in a table. +On entry, +.Va pfrio_table +contains the table to clear. +On exit, +.Va pfrio_ndel +contains the number of addresses removed. +.It Dv DIOCRADDADDRS Fa "struct pfioc_table *io" +Add one or more addresses to a table. +On entry, +.Va pfrio_table +contains the table ID and +.Va pfrio_buffer +must point to an array of +.Vt struct pfr_addr +containing at least +.Vt pfrio_size +elements to add to the table. +.Vt pfrio_esize +must be the size of +.Vt struct pfr_addr . +On exit, +.Va pfrio_nadd +contains the number of addresses effectively added. +.Bd -literal +struct pfr_addr { + union { + struct in_addr _pfra_ip4addr; + struct in6_addr _pfra_ip6addr; + } pfra_u; + u_int8_t pfra_af; + u_int8_t pfra_net; + u_int8_t pfra_not; + u_int8_t pfra_fback; +}; +#define pfra_ip4addr pfra_u._pfra_ip4addr +#define pfra_ip6addr pfra_u._pfra_ip6addr +.Ed +.It Dv DIOCRDELADDRS Fa "struct pfioc_table *io" +Delete one or more addresses from a table. +On entry, +.Va pfrio_table +contains the table ID and +.Va pfrio_buffer +must point to an array of +.Vt struct pfr_addr +containing at least +.Vt pfrio_size +elements to delete from the table. +.Vt pfrio_esize +must be the size of +.Vt struct pfr_addr . +On exit, +.Va pfrio_ndel +contains the number of addresses effectively deleted. +.It Dv DIOCRSETADDRS Fa "struct pfioc_table *io" +Replace the content of a table by a new address list. +This is the most complicated command, which uses all the structure members. +.Pp +On entry, +.Va pfrio_table +contains the table ID and +.Va pfrio_buffer +must point to an array of +.Vt struct pfr_addr +containing at least +.Vt pfrio_size +elements which become the new contents of the table. +.Vt pfrio_esize +must be the size of +.Vt struct pfr_addr . +Additionally, if +.Va pfrio_size2 +is non-zero, +.Va pfrio_buffer[pfrio_size..pfrio_size2] +must be a writeable buffer, into which the kernel can copy the +addresses that have been deleted during the replace operation. +On exit, +.Va pfrio_ndel , +.Va pfrio_nadd , +and +.Va pfrio_nchange +contain the number of addresses deleted, added, and changed by the +kernel. +If +.Va pfrio_size2 +was set on entry, +.Va pfrio_size2 +will point to the size of the buffer used, exactly like +.Dv DIOCRGETADDRS . +.It Dv DIOCRGETADDRS Fa "struct pfioc_table *io" +Get all the addresses of a table. +On entry, +.Va pfrio_table +contains the table ID and +.Va pfrio_buffer[pfrio_size] +contains a valid writeable buffer for +.Vt pfr_addr +structures. +On exit, +.Va pfrio_size +contains the number of addresses written into the buffer. +If the buffer was too small, the kernel does not store anything but just +returns the required buffer size, without returning an error. +.It Dv DIOCRGETASTATS Fa "struct pfioc_table *io" +This call is like +.Dv DIOCRGETADDRS +but is used to get an array of +.Vt pfr_astats +structures. +.Bd -literal +struct pfr_astats { + struct pfr_addr pfras_a; + u_int64_t pfras_packets + [PFR_DIR_MAX][PFR_OP_ADDR_MAX]; + u_int64_t pfras_bytes + [PFR_DIR_MAX][PFR_OP_ADDR_MAX]; + long pfras_tzero; +}; +.Ed +.It Dv DIOCRCLRASTATS Fa "struct pfioc_table *io" +Clear the statistics of one or more addresses. +On entry, +.Va pfrio_table +contains the table ID and +.Va pfrio_buffer +must point to an array of +.Vt struct pfr_addr +containing at least +.Vt pfrio_size +elements to be cleared from the table. +.Vt pfrio_esize +must be the size of +.Vt struct pfr_addr . +On exit, +.Va pfrio_nzero +contains the number of addresses effectively cleared. +.It Dv DIOCRTSTADDRS Fa "struct pfioc_table *io" +Test if the given addresses match a table. +On entry, +.Va pfrio_table +contains the table ID and +.Va pfrio_buffer +must point to an array of +.Vt struct pfr_addr +containing at least +.Vt pfrio_size +elements, each of which will be tested for a match in the table. +.Vt pfrio_esize +must be the size of +.Vt struct pfr_addr . +On exit, the kernel updates the +.Vt pfr_addr +array by setting the +.Va pfra_fback +member appropriately. +.It Dv DIOCRSETTFLAGS Fa "struct pfioc_table *io" +Change the +.Dv PFR_TFLAG_CONST +or +.Dv PFR_TFLAG_PERSIST +flags of a table. +On entry, +.Va pfrio_buffer +must point to an array of +.Vt struct pfr_table +containing at least +.Vt pfrio_size +elements. +.Va pfrio_esize +must be the size of +.Vt struct pfr_table . +.Va pfrio_setflag +must contain the flags to add, while +.Va pfrio_clrflag +must contain the flags to remove. +On exit, +.Va pfrio_nchange +and +.Va pfrio_ndel +contain the number of tables altered or deleted by the kernel. +Yes, tables can be deleted if one removes the +.Dv PFR_TFLAG_PERSIST +flag of an unreferenced table. +.It Dv DIOCRINADEFINE Fa "struct pfioc_table *io" +Defines a table in the inactive set. +On entry, +.Va pfrio_table +contains the table ID and +.Va pfrio_buffer[pfrio_size] +contains an array of +.Vt pfr_addr +structures to put in the table. +A valid ticket must also be supplied to +.Va pfrio_ticket . +On exit, +.Va pfrio_nadd +contains 0 if the table was already defined in the inactive list +or 1 if a new table has been created. +.Va pfrio_naddr +contains the number of addresses effectively put in the table. +.It Dv DIOCXBEGIN Fa "struct pfioc_trans *io" +.Bd -literal +struct pfioc_trans { + int size; /* number of elements */ + int esize; /* size of each element in bytes */ + struct pfioc_trans_e { + int rs_num; + char anchor[MAXPATHLEN]; + u_int32_t ticket; + } *array; +}; +.Ed +.Pp +Clear all the inactive rulesets specified in the +.Vt pfioc_trans_e +array. +For each ruleset, a ticket is returned for subsequent "add rule" ioctls, +as well as for the +.Dv DIOCXCOMMIT +and +.Dv DIOCXROLLBACK +calls. +.Pp +Ruleset types, identified by +.Va rs_num , +include the following: +.Pp +.Bl -tag -width PF_RULESET_FILTER -offset ind -compact +.It Dv PF_RULESET_SCRUB +Scrub (packet normalization) rules. +.It Dv PF_RULESET_FILTER +Filter rules. +.It Dv PF_RULESET_NAT +NAT (Network Address Translation) rules. +.It Dv PF_RULESET_BINAT +Bidirectional NAT rules. +.It Dv PF_RULESET_RDR +Redirect rules. +.It Dv PF_RULESET_ALTQ +ALTQ disciplines. +.It Dv PF_RULESET_TABLE +Address tables. +.El +.It Dv DIOCXCOMMIT Fa "struct pfioc_trans *io" +Atomically switch a vector of inactive rulesets to the active rulesets. +This call is implemented as a standard two-phase commit, which will either +fail for all rulesets or completely succeed. +All tickets need to be valid. +This ioctl returns +.Er EBUSY +if another process is concurrently updating some of the same rulesets. +.It Dv DIOCXROLLBACK Fa "struct pfioc_trans *io" +Clean up the kernel by undoing all changes that have taken place on the +inactive rulesets since the last +.Dv DIOCXBEGIN . +.Dv DIOCXROLLBACK +will silently ignore rulesets for which the ticket is invalid. +.It Dv DIOCSETHOSTID Fa "u_int32_t *hostid" +Set the host ID, which is used by +.Xr pfsync 4 +to identify which host created state table entries. +.It Dv DIOCOSFPFLUSH +Flush the passive OS fingerprint table. +.It Dv DIOCOSFPADD Fa "struct pf_osfp_ioctl *io" +.Bd -literal +struct pf_osfp_ioctl { + struct pf_osfp_entry { + SLIST_ENTRY(pf_osfp_entry) fp_entry; + pf_osfp_t fp_os; + char fp_class_nm[PF_OSFP_LEN]; + char fp_version_nm[PF_OSFP_LEN]; + char fp_subtype_nm[PF_OSFP_LEN]; + } fp_os; + pf_tcpopts_t fp_tcpopts; + u_int16_t fp_wsize; + u_int16_t fp_psize; + u_int16_t fp_mss; + u_int16_t fp_flags; + u_int8_t fp_optcnt; + u_int8_t fp_wscale; + u_int8_t fp_ttl; + int fp_getnum; +}; +.Ed +.Pp +Add a passive OS fingerprint to the table. +Set +.Va fp_os.fp_os +to the packed fingerprint, +.Va fp_os.fp_class_nm +to the name of the class (Linux, Windows, etc), +.Va fp_os.fp_version_nm +to the name of the version (NT, 95, 98), and +.Va fp_os.fp_subtype_nm +to the name of the subtype or patchlevel. +The members +.Va fp_mss , +.Va fp_wsize , +.Va fp_psize , +.Va fp_ttl , +.Va fp_optcnt , +and +.Va fp_wscale +are set to the TCP MSS, the TCP window size, the IP length, the IP TTL, +the number of TCP options, and the TCP window scaling constant of the +TCP SYN packet, respectively. +.Pp +The +.Va fp_flags +member is filled according to the +.Aq Pa net/pfvar.h +include file +.Dv PF_OSFP_* +defines. +The +.Va fp_tcpopts +member contains packed TCP options. +Each option uses +.Dv PF_OSFP_TCPOPT_BITS +bits in the packed value. +Options include any of +.Dv PF_OSFP_TCPOPT_NOP , +.Dv PF_OSFP_TCPOPT_SACK , +.Dv PF_OSFP_TCPOPT_WSCALE , +.Dv PF_OSFP_TCPOPT_MSS , +or +.Dv PF_OSFP_TCPOPT_TS . +.Pp +The +.Va fp_getnum +member is not used with this ioctl. +.Pp +The structure's slack space must be zeroed for correct operation; +.Xr memset 3 +the whole structure to zero before filling and sending to the kernel. +.It Dv DIOCOSFPGET Fa "struct pf_osfp_ioctl *io" +Get the passive OS fingerprint number +.Va fp_getnum +from the kernel's fingerprint list. +The rest of the structure members will come back filled. +Get the whole list by repeatedly incrementing the +.Va fp_getnum +number until the ioctl returns +.Er EBUSY . +.It Dv DIOCGETSRCNODES Fa "struct pfioc_src_nodes *psn" +.Bd -literal +struct pfioc_src_nodes { + int psn_len; + union { + caddr_t psu_buf; + struct pf_src_node *psu_src_nodes; + } psn_u; +#define psn_buf psn_u.psu_buf +#define psn_src_nodes psn_u.psu_src_nodes +}; +.Ed +.Pp +Get the list of source nodes kept by sticky addresses and source +tracking. +The ioctl must be called once with +.Va psn_len +set to 0. +If the ioctl returns without error, +.Va psn_len +will be set to the size of the buffer required to hold all the +.Va pf_src_node +structures held in the table. +A buffer of this size should then be allocated, and a pointer to this buffer +placed in +.Va psn_buf . +The ioctl must then be called again to fill this buffer with the actual +source node data. +After that call, +.Va psn_len +will be set to the length of the buffer actually used. +.It Dv DIOCCLRSRCNODES +Clear the tree of source tracking nodes. +.It Dv DIOCIGETIFACES Fa "struct pfioc_iface *io" +Get the list of interfaces and interface drivers known to +.Nm . +All the ioctls that manipulate interfaces +use the same structure described below: +.Bd -literal +struct pfioc_iface { + char pfiio_name[IFNAMSIZ]; + void *pfiio_buffer; + int pfiio_esize; + int pfiio_size; + int pfiio_nzero; + int pfiio_flags; +}; +.Ed +.Pp +If not empty, +.Va pfiio_name +can be used to restrict the search to a specific interface or driver. +.Va pfiio_buffer[pfiio_size] +is the user-supplied buffer for returning the data. +On entry, +.Va pfiio_size +contains the number of +.Vt pfi_kif +entries that can fit into the buffer. +The kernel will replace this value by the real number of entries it wants +to return. +.Va pfiio_esize +should be set to +.Li sizeof(struct pfi_kif) . +.Pp +The data is returned in the +.Vt pfi_kif +structure described below: +.Bd -literal +struct pfi_kif { + RB_ENTRY(pfi_kif) pfik_tree; + char pfik_name[IFNAMSIZ]; + u_int64_t pfik_packets[2][2][2]; + u_int64_t pfik_bytes[2][2][2]; + u_int32_t pfik_tzero; + int pfik_flags; + struct pf_state_tree_lan_ext pfik_lan_ext; + struct pf_state_tree_ext_gwy pfik_ext_gwy; + TAILQ_ENTRY(pfi_kif) pfik_w_states; + void *pfik_ah_cookie; + struct ifnet *pfik_ifp; + struct ifg_group *pfik_group; + int pfik_states; + int pfik_rules; + TAILQ_HEAD(, pfi_dynaddr) pfik_dynaddrs; +}; +.Ed +.It Dv DIOCSETIFFLAG Fa "struct pfioc_iface *io" +Set the user setable flags (described above) of the +.Nm +internal interface description. +The filtering process is the same as for +.Dv DIOCIGETIFACES . +.Bd -literal +#define PFI_IFLAG_SKIP 0x0100 /* skip filtering on interface */ +.Ed +.It Dv DIOCCLRIFFLAG Fa "struct pfioc_iface *io" +Works as +.Dv DIOCSETIFFLAG +above but clears the flags. +.It Dv DIOCKILLSRCNODES Fa "struct pfioc_iface *io" +Explicitly remove source tracking nodes. +.El +.Sh FILES +.Bl -tag -width /dev/pf -compact +.It Pa /dev/pf +packet filtering device. +.El +.Sh EXAMPLES +The following example demonstrates how to use the +.Dv DIOCNATLOOK +command to find the internal host/port of a NATed connection: +.Bd -literal +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/ioctl.h> +#include <sys/fcntl.h> +#include <net/if.h> +#include <netinet/in.h> +#include <net/pfvar.h> +#include <err.h> +#include <stdio.h> +#include <stdlib.h> + +u_int32_t +read_address(const char *s) +{ + int a, b, c, d; + + sscanf(s, "%i.%i.%i.%i", &a, &b, &c, &d); + return htonl(a << 24 | b << 16 | c << 8 | d); +} + +void +print_address(u_int32_t a) +{ + a = ntohl(a); + printf("%d.%d.%d.%d", a >> 24 & 255, a >> 16 & 255, + a >> 8 & 255, a & 255); +} + +int +main(int argc, char *argv[]) +{ + struct pfioc_natlook nl; + int dev; + + if (argc != 5) { + printf("%s <gwy addr> <gwy port> <ext addr> <ext port>\\n", + argv[0]); + return 1; + } + + dev = open("/dev/pf", O_RDWR); + if (dev == -1) + err(1, "open(\\"/dev/pf\\") failed"); + + memset(&nl, 0, sizeof(struct pfioc_natlook)); + nl.saddr.v4.s_addr = read_address(argv[1]); + nl.sport = htons(atoi(argv[2])); + nl.daddr.v4.s_addr = read_address(argv[3]); + nl.dport = htons(atoi(argv[4])); + nl.af = AF_INET; + nl.proto = IPPROTO_TCP; + nl.direction = PF_IN; + + if (ioctl(dev, DIOCNATLOOK, &nl)) + err(1, "DIOCNATLOOK"); + + printf("internal host "); + print_address(nl.rsaddr.v4.s_addr); + printf(":%u\\n", ntohs(nl.rsport)); + return 0; +} +.Ed +.Sh SEE ALSO +.Xr ioctl 2 , +.Xr altq 4 , +.Xr if_bridge 4 , +.Xr pflog 4 , +.Xr pflow 4 , +.Xr pfsync 4 , +.Xr pfctl 8 , +.Xr altq 9 +.Sh HISTORY +The +.Nm +packet filtering mechanism first appeared in +.Ox 3.0 +and then +.Fx 5.2 . +.Pp +This implementation matches +.Ox 4.5 . diff --git a/share/man/man4/pflog.4 b/share/man/man4/pflog.4 new file mode 100644 index 0000000..c1039a3 --- /dev/null +++ b/share/man/man4/pflog.4 @@ -0,0 +1,107 @@ +.\" $OpenBSD: pflog.4,v 1.10 2007/05/31 19:19:51 jmc Exp $ +.\" +.\" Copyright (c) 2001 Tobias Weingartner +.\" 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. +.\" +.\" $FreeBSD$ +.\" +.Dd May 31 2007 +.Dt PFLOG 4 +.Os +.Sh NAME +.Nm pflog +.Nd packet filter logging interface +.Sh SYNOPSIS +.Cd "device pflog" +.Sh DESCRIPTION +The +.Nm pflog +interface is a device which makes visible all packets logged by +the packet filter, +.Xr pf 4 . +Logged packets can easily be monitored in real +time by invoking +.Xr tcpdump 1 +on the +.Nm +interface, or stored to disk using +.Xr pflogd 8 . +.Pp +The pflog0 interface is created automatically at boot if both +.Xr pf 4 +and +.Xr pflogd 8 +are enabled; +further instances can be created using +.Xr ifconfig 8 . +.Pp +Each packet retrieved on this interface has a header associated +with it of length +.Dv PFLOG_HDRLEN . +This header documents the address family, interface name, rule +number, reason, action, and direction of the packet that was logged. +This structure, defined in +.Aq Pa net/if_pflog.h +looks like +.Bd -literal -offset indent +struct pfloghdr { + u_int8_t length; + sa_family_t af; + u_int8_t action; + u_int8_t reason; + char ifname[IFNAMSIZ]; + char ruleset[PF_RULESET_NAME_SIZE]; + u_int32_t rulenr; + u_int32_t subrulenr; + uid_t uid; + pid_t pid; + uid_t rule_uid; + pid_t rule_pid; + u_int8_t dir; + u_int8_t pad[3]; +}; +.Ed +.Sh EXAMPLES +Create a +.Nm +interface +and monitor all packets logged on it: +.Bd -literal -offset indent +# ifconfig pflog1 up +# tcpdump -n -e -ttt -i pflog1 +.Ed +.Sh SEE ALSO +.Xr inet 4 , +.Xr inet6 4 , +.Xr netintro 4 , +.Xr pf 4 , +.Xr ifconfig 8 , +.Xr pflogd 8 , +.Xr tcpdump 1 +.Sh HISTORY +The +.Nm +device first appeared in +.Ox 3.0 . +.\" .Sh BUGS +.\" Anything here? diff --git a/share/man/man4/pfsync.4 b/share/man/man4/pfsync.4 new file mode 100644 index 0000000..b00bf9d --- /dev/null +++ b/share/man/man4/pfsync.4 @@ -0,0 +1,229 @@ +.\" $OpenBSD: pfsync.4,v 1.28 2009/02/17 10:05:18 dlg Exp $ +.\" +.\" Copyright (c) 2002 Michael Shalayeff +.\" Copyright (c) 2003-2004 Ryan McBride +.\" 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 MIND, +.\" 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 December 20 2011 +.Dt PFSYNC 4 +.Os +.Sh NAME +.Nm pfsync +.Nd packet filter state table sychronisation interface +.Sh SYNOPSIS +.Cd "device pfsync" +.Sh DESCRIPTION +The +.Nm +interface is a pseudo-device which exposes certain changes to the state +table used by +.Xr pf 4 . +State changes can be viewed by invoking +.Xr tcpdump 1 +on the +.Nm +interface. +If configured with a physical synchronisation interface, +.Nm +will also send state changes out on that interface, +and insert state changes received on that interface from other systems +into the state table. +.Pp +By default, all local changes to the state table are exposed via +.Nm . +State changes from packets received by +.Nm +over the network are not rebroadcast. +Updates to states created by a rule marked with the +.Ar no-sync +keyword are ignored by the +.Nm +interface (see +.Xr pf.conf 5 +for details). +.Pp +The +.Nm +interface will attempt to collapse multiple state updates into a single +packet where possible. +The maximum number of times a single state can be updated before a +.Nm +packet will be sent out is controlled by the +.Ar maxupd +parameter to ifconfig +(see +.Xr ifconfig 8 +and the example below for more details). +The sending out of a +.Nm +packet will be delayed by a maximum of one second. +.Sh NETWORK SYNCHRONISATION +States can be synchronised between two or more firewalls using this +interface, by specifying a synchronisation interface using +.Xr ifconfig 8 . +For example, the following command sets fxp0 as the synchronisation +interface: +.Bd -literal -offset indent +# ifconfig pfsync0 syncdev fxp0 +.Ed +.Pp +By default, state change messages are sent out on the synchronisation +interface using IP multicast packets to the 244.0.0.240 group address. +An alternative destination address for +.Nm +packets can be specified using the +.Ic syncpeer +keyword. +This can be used in combination with +.Xr ipsec 4 +to protect the synchronisation traffic. +In such a configuration, the syncdev should be set to the +.Xr enc 4 +interface, as this is where the traffic arrives when it is decapsulated, +e.g.: +.Bd -literal -offset indent +# ifconfig pfsync0 syncpeer 10.0.0.2 syncdev enc0 +.Ed +.Pp +It is important that the pfsync traffic be well secured +as there is no authentication on the protocol and it would +be trivial to spoof packets which create states, bypassing the pf ruleset. +Either run the pfsync protocol on a trusted network \- ideally a network +dedicated to pfsync messages such as a crossover cable between two firewalls, +or specify a peer address and protect the traffic with +.Xr ipsec 4 . +.Pp +.Nm +has the following +.Xr sysctl 8 +tunables: +.Bl -tag -width ".Va net.pfsync" +.It Va net.pfsync.carp_demotion_factor +Value added to +.Va net.inet.carp.demotion +while +.Nm +tries to perform its bulk update. +See +.Xr carp 4 +for more information. +Default value is 240. +.El +.Sh EXAMPLES +.Nm +and +.Xr carp 4 +can be used together to provide automatic failover of a pair of firewalls +configured in parallel. +One firewall will handle all traffic until it dies, is shut down, or is +manually demoted, at which point the second firewall will take over +automatically. +.Pp +Both firewalls in this example have three +.Xr sis 4 +interfaces. +sis0 is the external interface, on the 10.0.0.0/24 subnet; sis1 is the +internal interface, on the 192.168.0.0/24 subnet; and sis2 is the +.Nm +interface, using the 192.168.254.0/24 subnet. +A crossover cable connects the two firewalls via their sis2 interfaces. +On all three interfaces, firewall A uses the .254 address, while firewall B +uses .253. +The interfaces are configured as follows (firewall A unless otherwise +indicated): +.Pp +Interfaces configuration in +.Pa /etc/rc.conf : +.Bd -literal -offset indent +network_interfaces="lo0 sis0 sis1 sis2" +ifconfig_sis0="10.0.0.254/24" +ifconfig_sis0_alias0="inet 10.0.0.1/24 vhid 1 pass foo" +ifconfig_sis1="192.168.0.254/24" +ifconfig_sis1_alias0="inet 192.168.0.1/24 vhid 2 pass bar" +ifconfig_sis2="192.168.254.254/24" +pfsync_enable="YES" +pfsync_syncdev="sis2" +.Ed +.Pp +.Xr pf 4 +must also be configured to allow +.Nm +and +.Xr carp 4 +traffic through. +The following should be added to the top of +.Pa /etc/pf.conf : +.Bd -literal -offset indent +pass quick on { sis2 } proto pfsync keep state (no-sync) +pass on { sis0 sis1 } proto carp keep state (no-sync) +.Ed +.Pp +It is preferable that one firewall handle the forwarding of all the traffic, +therefore the +.Ar advskew +on the backup firewall's +.Xr carp 4 +vhids should be set to something higher than +the primary's. +For example, if firewall B is the backup, its +carp1 configuration would look like this: +would look like this: +.Bd -literal -offset indent +ifconfig_sis1_alias0="inet 192.168.0.1/24 vhid 2 pass bar advskew 100" +.Ed +.Pp +The following must also be added to +.Pa /etc/sysctl.conf : +.Bd -literal -offset indent +net.inet.carp.preempt=1 +.Ed +.Sh SEE ALSO +.Xr bpf 4 , +.Xr carp 4 , +.Xr enc 4 , +.Xr inet 4 , +.Xr inet6 4 , +.Xr ipsec 4 , +.Xr netintro 4 , +.Xr pf 4 , +.Xr pf.conf 5 , +.Xr protocols 5 , +.Xr rc.conf 5 , +.Xr ifconfig 8 , +.Xr tcpdump 1 +.Sh HISTORY +The +.Nm +device first appeared in +.Ox 3.3 . +It was first imported to +.Fx 5.3 . +.Pp +The +.Nm +protocol and kernel implementation were significantly modified in +.Fx 9.0 . +The newer protocol is not compatible with older one and will not interoperate +with it. diff --git a/share/man/man4/polling.4 b/share/man/man4/polling.4 index 2c711cc..6abc37c 100644 --- a/share/man/man4/polling.4 +++ b/share/man/man4/polling.4 @@ -184,6 +184,7 @@ As of this writing, the .Xr fwe 4 , .Xr fwip 4 , .Xr fxp 4 , +.Xr igb 4 , .Xr ixgb 4 , .Xr nfe 4 , .Xr nge 4 , diff --git a/share/man/man4/random.4 b/share/man/man4/random.4 index 9ba00c0..e2809f4 100644 --- a/share/man/man4/random.4 +++ b/share/man/man4/random.4 @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 19, 2006 +.Dd September 7, 2012 .Dt RANDOM 4 .Os .Sh NAME @@ -142,7 +142,7 @@ if you wish to use them for entropy harvesting. The other variables are explained in the paper describing the .Em Yarrow algorithm at -.Pa http://www.counterpane.com/yarrow.html . +.Pa http://www.schneier.com/yarrow.html . .Pp These variables are all limited in terms of the values they may contain: @@ -315,11 +315,16 @@ and is an implementation of the .Em Yarrow algorithm by Bruce Schneier, .Em et al . -The only hardware implementation -currently is for the +The only hardware implementations +currently are for the .Tn VIA C3 Nehemiah (stepping 3 or greater) -CPU. +CPU +and the +.Tn Intel +.Dq Bull Mountain +.Em RdRand +instruction and underlying random number generator (RNG). More will be added in the future. .Pp The author gratefully acknowledges diff --git a/share/man/man4/run.4 b/share/man/man4/run.4 index 469e904..3aeb3db 100644 --- a/share/man/man4/run.4 +++ b/share/man/man4/run.4 @@ -16,7 +16,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 12, 2011 +.Dd July 9, 2012 .Dt RUN 4 .Os .Sh NAME @@ -112,7 +112,7 @@ driver supports the following wireless adapters: .Bl -tag -width Ds -offset indent -compact .It Airlink101 AWLL6090 .It ASUS USB-N11 -.It ASUS USB-N13 +.It ASUS USB-N13 ver. A1 .It ASUS WL-160N .It Belkin F5D8051 ver 3000 .It Belkin F5D8053 @@ -122,6 +122,8 @@ driver supports the following wireless adapters: .It Buffalo WLI-UC-G300N .It Buffalo WLI-UC-G301N .It Buffalo WLI-UC-GN +.It Buffalo WLI-UC-GNM +.It Buffalo WLI-UC-GNM2 .It Corega CG-WLUSB2GNL .It Corega CG-WLUSB2GNR .It Corega CG-WLUSB300AGN @@ -142,6 +144,7 @@ driver supports the following wireless adapters: .It Hercules HWNU-300 .It Linksys WUSB54GC v3 .It Linksys WUSB600N +.It Logitec LAN-W150N/U2 .It Mvix Nubbin MS-811N .It Planex GW-USMicroN .It Planex GW-US300MiniS diff --git a/share/man/man4/sched_ule.4 b/share/man/man4/sched_ule.4 index fdb96f1..42dee4d 100644 --- a/share/man/man4/sched_ule.4 +++ b/share/man/man4/sched_ule.4 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 21, 2008 +.Dd August 10, 2012 .Dt SCHED_ULE 4 .Os .Sh NAME @@ -59,6 +59,9 @@ The following sysctls are relevant to the operation of .Bl -tag -width indent .It Va kern.sched.name This read-only sysctl reports the name of the active scheduler. +.It Va kern.sched.quantum +This read-write sysctl reports or sets the length of the quantum (in +micro-seconds) granted to a thread. .El .Sh SEE ALSO .Xr sched_4bsd 4 , diff --git a/share/man/man4/scsi.4 b/share/man/man4/scsi.4 index ad52663..fa5e05d 100644 --- a/share/man/man4/scsi.4 +++ b/share/man/man4/scsi.4 @@ -24,7 +24,7 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd March 4, 2010 +.Dd June 7, 2012 .Dt CAM 4 .Os .Sh NAME @@ -43,6 +43,7 @@ .Cd "options CAM_DEBUG_BUS=-1" .Cd "options CAM_DEBUG_TARGET=-1" .Cd "options CAM_DEBUG_LUN=-1" +.Cd "options CAM_DEBUG_COMPILE=CAM_DEBUG_INFO|CAM_DEBUG_CDB|CAM_DEBUG_PROBE" .Cd "options CAM_DEBUG_FLAGS=CAM_DEBUG_INFO|CAM_DEBUG_CDB" .Cd "options CAM_MAX_HIGHPOWER=4" .Cd "options SCSI_NO_SENSE_STRINGS" @@ -72,12 +73,11 @@ There are a number of generic kernel configuration options for the subsystem: .Bl -tag -width SCSI_NO_SENSE_STRINGS .It Dv CAMDEBUG -This option enables the +This option compiles in all the .Nm debugging printf code. This will not actually cause any debugging information to be printed out when included by itself. -Enabling printouts requires additional configuration. See below for details. .It Dv "CAM_MAX_HIGHPOWER=4" This sets the maximum allowable number of concurrent "high power" commands. @@ -248,54 +248,53 @@ see other .Nm device entries. .Sh DIAGNOSTICS -When the kernel is compiled with options CAMDEBUG, an XPT_DEBUG CCB can be -used to enable various amounts of tracing information on any -specific device. -Devices not being traced will not produce trace information. -There are currently four debugging flags that may be turned on: +An XPT_DEBUG CCB can be used to enable various amounts of tracing information +on any specific bus/device from the list of options compiled into the kernel. +There are currently seven debugging flags that may be compiled in and used: .Bl -tag -width CAM_DEBUG_SUBTRACE .It Dv CAM_DEBUG_INFO -This debugging flag enables general informational printfs for the device +This flag enables general informational printfs for the device or devices in question. .It Dv CAM_DEBUG_TRACE -This debugging flag enables function-level command flow tracing. +This flag enables function-level command flow tracing. i.e.\& kernel printfs will happen at the entrance and exit of various functions. .It Dv CAM_DEBUG_SUBTRACE -This debugging flag enables debugging output internal to various functions. +This flag enables debugging output internal to various functions. .It Dv CAM_DEBUG_CDB -This debugging flag will cause the kernel to print out all +This flag will cause the kernel to print out all +.Tn ATA +and .Tn SCSI commands sent to a particular device or devices. +.It Dv CAM_DEBUG_XPT +This flag will enable command scheduler tracing. +.It Dv CAM_DEBUG_PERIPH +This flag will enable peripheral drivers messages. +.It Dv CAM_DEBUG_PROBE +This flag will enable devices probe process tracing. .El .Pp Some of these flags, most notably .Dv CAM_DEBUG_TRACE and -.Dv CAM_DEBUG_SUBTRACE -will produce kernel printfs in EXTREME numbers, -and because of that, they are not especially useful. -There are not many things logged at the -.Dv CAM_DEBUG_INFO -level, so it is not especially useful. -The most useful debugging flag is the -.Dv CAM_DEBUG_CDB -flag. +.Dv CAM_DEBUG_SUBTRACE , +will produce kernel printfs in EXTREME numbers. +.Pp Users can enable debugging from their kernel config file, by using the following kernel config options: -.Bl -tag -width CAM_DEBUG_TARGET +.Bl -tag -width CAM_DEBUG_COMPILE .It Dv CAMDEBUG -This enables +This builds into the kernel all possible .Nm debugging. -Without this option, users will not even be able -to turn on debugging from userland via -.Xr camcontrol 8 . -.It Dv CAM_DEBUG_FLAGS -This allows the user to set the various debugging flags described above -in a kernel config file. +.It Dv CAM_DEBUG_COMPILE +This allows to specify support for which debugging flags described above +should be built into the kernel. Flags may be ORed together if the user wishes to see printfs for multiple debugging levels. +.It Dv CAM_DEBUG_FLAGS +This allows to set the various debugging flags from a kernel config file. .It Dv CAM_DEBUG_BUS Specify a bus to debug. To debug all busses, set this to -1. @@ -307,17 +306,9 @@ Specify a lun to debug. To debug all luns, set this to -1. .El .Pp -When specifying a bus, target or lun to debug, you -.Em MUST -specify all three bus/target/lun options above. -Using wildcards, you -should be able to enable debugging on most anything. -.Pp -Users may also enable debugging printfs on the fly, if the -.Dv CAMDEBUG -option is their config file, by using the +Users may also enable debugging on the fly by using the .Xr camcontrol 8 -utility. +utility, if wanted options built into the kernel. See .Xr camcontrol 8 for details. diff --git a/share/man/man4/siis.4 b/share/man/man4/siis.4 index 8bf03dd..366c3cc 100644 --- a/share/man/man4/siis.4 +++ b/share/man/man4/siis.4 @@ -57,12 +57,13 @@ controls SATA interface Power Management for the specified channel, allowing some power to be saved at the cost of additional command latency. Possible values: -.Bl -tag -compact +.Bl -tag -width 2n -offset indent .It 0 interface Power Management is disabled (default); .It 1 device is allowed to initiate PM state change, host is passive. .El +.Pp Note that interface Power Management is not compatible with device presence detection. A manual bus reset is needed on device hot-plug. @@ -107,6 +108,7 @@ given precedence as the more functional of the two. The .Nm driver supports the following controller chips: +.Pp .Bl -bullet -compact .It SiI3124 (PCI-X 133MHz/64bit, 4 ports) diff --git a/share/man/man4/sk.4 b/share/man/man4/sk.4 index 4710f58..18e53a9 100644 --- a/share/man/man4/sk.4 +++ b/share/man/man4/sk.4 @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 23, 2010 +.Dd August 29, 2012 .Dt SK 4 .Os .Sh NAME @@ -223,7 +223,7 @@ the network connection (cable). .Xr ifconfig 8 .Rs .%T XaQti XMAC II datasheet -.%U http://www.xaqti.com +.%U http://people.freebsd.org/~wpaul/SysKonnect/xmacii_datasheet_rev_c_9-29.pdf .Re .Rs .%T SysKonnect GEnesis programming manual diff --git a/share/man/man4/snd_hda.4 b/share/man/man4/snd_hda.4 index 84e0b22..91e599d 100644 --- a/share/man/man4/snd_hda.4 +++ b/share/man/man4/snd_hda.4 @@ -184,7 +184,7 @@ or as a set of space-separated pairs. .It Va hint.pcm.%d.rec.autosrc Controls automatic recording source feature: -.Bl -tag -compact +.Bl -tag -width 2n -compact .It 0 disabled, .It 1 diff --git a/share/man/man4/terasic_mtl.4 b/share/man/man4/terasic_mtl.4 new file mode 100644 index 0000000..ae375cd --- /dev/null +++ b/share/man/man4/terasic_mtl.4 @@ -0,0 +1,132 @@ +.\"- +.\" Copyright (c) 2012 Robert N. M. Watson +.\" All rights reserved. +.\" +.\" This software was developed by SRI International and the University of +.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) +.\" ("CTSRD"), as part of the DARPA CRASH research programme. +.\" +.\" 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 August 18, 2012 +.Dt TERASIC_MTL 4 +.Os +.Sh NAME +.Nm terasic_mtl +.Nd driver for the Terasic/Cambridge Multi-Touch LCD device +.Sh SYNOPSIS +.Cd "device terasic_mtl" +.Pp +In +.Pa /boot/device.hints : +.Cd hint.terasic_mtl.0.at="nexus0" +.Cd hint.terasic_mtl.0.reg_maddr=0x70400000 +.Cd hint.terasic_mtl.0.reg_msize=0x1000 +.Cd hint.terasic_mtl.0.pixel_maddr=0x70000000 +.Cd hint.terasic_mtl.0.pixel_msize=0x177000 +.Cd hint.terasic_mtl.0.text_maddr=0x70177000 +.Cd hint.terasic_mtl.0.text_msize=0x2000 +.Sh DESCRIPTION +The +.Nm +device driver provides support for the Terasic Multi-Touch LCD combined as +controlled by a University of Cambridge's IP Core. +Three device nodes are instantiated, representing various services supported +by the device: +.Bl -tag -width terasic_pixelX +.It terasic_regX +Memory-mapped register interface, including touch screen input. +.It terasic_pixelX +Memory-mapped pixel-oriented frame buffer. +.It terasic_textX +Memory-mapped text-oriented frame buffer. +.El +.Pp +.Nm +devices are also attached to the +.Xr syscons 4 +framework, which implements a VT-compatible terminal connected to the +.Xr tty 4 +framework. +.Li ttyvX +device nodes may be added to +.Xr ttys 5 +in order to launch +.Xr login 1 +sessions at boot. +.Pp +Register, text, and pixel devices may be accessed using +.Xr read 2 +and +.Xr write 2 +system calls, and also memory mapped using +.Xr mmap 2 . +.Sh SEE ALSO +.Xr login 1 , +.Xr ioctl 2 , +.Xr mmap 2 , +.Xr poll 2 , +.Xr read 2 , +.Xr write 2 , +.Xr syscons 4 , +.Xr tty 4 , +.Xr ttys 5 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 10.0 . +.Sh AUTHORS +The +.Nm +device driver and this manual page were +developed by SRI International and the University of Cambridge Computer +Laboratory under DARPA/AFRL contract +.Pq FA8750-10-C-0237 +.Pq Do CTSRD Dc , +as part of the DARPA CRASH research programme. +This device driver was written by +.An Robert N. M. Watson . +.Sh BUGS +.Nm +The +.Xr syscons 4 +attachment does not support the hardware cursor feature. +.Pp +A more structured interface to control registers using the +.Xr ioctl 2 +system call, would sometimes be preferable to memory mapping. +For touch screen input, it would be highly desirable to offer a streaming +interface whose events can be managed using +.Xr poll 2 +and related system calls, with the kernel performing polling rather than the +userspace application. +.Pp +.Nm +supports only a +.Li nexus +bus attachment, which is appropriate for system-on-chip busses such as +Altera's Avalon bus. +If the IP core is configured off of another bus type, then additional bus +attachments will be required. diff --git a/share/man/man4/textdump.4 b/share/man/man4/textdump.4 index c104630..f3aa5bd 100644 --- a/share/man/man4/textdump.4 +++ b/share/man/man4/textdump.4 @@ -34,8 +34,11 @@ .Nm textdump .Nd textdump kernel dumping facility .Sh SYNOPSIS -.Cd options KDB .Cd options DDB +.Cd options KDB +.Pp +.Cd options TEXTDUMP_PREFERRED +.Cd options TEXTDUMP_VERBOSE .Sh DESCRIPTION The .Nm @@ -116,6 +119,10 @@ or by setting the sysctl to 1 using .Xr sysctl 8 , it is possible to request that the next dump be a textdump. +One may also directly trigger a textdump in +.Xr ddb 4 +by running the command +.Ic textdump dump . .Pp If at the .Xr ddb 4 @@ -129,6 +136,23 @@ may be used to set, query, and clear the textdump pending flag. As with regular kernel dumps, a dump partition must be automatically or manually configured using .Xr dumpon 8 . +.Pp +Additional kernel +.Xr config 8 +options: +.Bl -tag -width TEXTDUMP_PREFERRED +.It Cd TEXTDUMP_PREFERRED +sets textdumps to be the default manner of doing dumps. +This means there will be no need to +.Xr sysctl 8 +or use the +.Ic textdump set +.Xr ddb 8 +commands. +.It Cd TEXTDUMP_VERBOSE +will have the textdump facility be more verbose about each file it is emitting +as well as other diagnostics useful to debug the textdump facility itself. +.El .Sh EXAMPLES In the following example, the script .Dv kdb.enter.panic diff --git a/share/man/man4/ugen.4 b/share/man/man4/ugen.4 index 9b149fb..07b07da 100644 --- a/share/man/man4/ugen.4 +++ b/share/man/man4/ugen.4 @@ -29,26 +29,17 @@ .\" .\" $FreeBSD$ .\" -.Dd November 22, 2006 +.Dd July 22, 2012 .Dt UGEN 4 .Os .Sh NAME .Nm ugen .Nd USB generic device support .Sh SYNOPSIS -To compile this driver into the kernel, -place the following line in your -kernel configuration file: -.Bd -ragged -offset indent -.Cd "device ugen" -.Ed -.Pp -Alternatively, to load the driver as a -module at boot time, place the following line in -.Xr loader.conf 5 : -.Bd -literal -offset indent -ugen_load="YES" -.Ed +.Nm +is integrated into the +.Xr usb 4 +kernel module. .Sh DESCRIPTION The .Nm @@ -65,22 +56,22 @@ bulk, or interrupt. Each of the endpoints will have a different device node. The four least significant bits in the minor device -number determines which endpoint the device accesses and the rest -of the bits determines which USB device. +number determine which endpoint the device accesses, and the rest +of the bits determine which USB device. .Pp -If an endpoint address is used both for input and output the device +If an endpoint address is used both for input and output, the device can be opened for both read or write. .Pp -To find out what endpoints that exist there are a series of +To find out which endpoints exist, there are a series of .Xr ioctl 2 -operation on the control endpoint that returns the USB descriptors +operations on the control endpoint that return the USB descriptors of the device, configurations, interfaces, and endpoints. .Pp The control transfer mode can only happen on the control endpoint which is always endpoint 0. -The control endpoint accepts request -and may respond with an answer to such request. -Control request +The control endpoint accepts a request +and may respond with an answer to such a request. +Control requests are issued by .Xr ioctl 2 calls. @@ -129,8 +120,8 @@ Normally a transfer from the device which is shorter than the request specified is reported as an error. .It Dv USB_SET_TIMEOUT Pq Vt int -Set the timeout on the device operations, the time is specified -in milliseconds. +Set the timeout on the device operations +The time is specified in milliseconds. The value 0 is used to indicate that there is no timeout. .El @@ -176,7 +167,7 @@ field. Return the device descriptor. .It Dv USB_GET_CONFIG_DESC Pq Vt "struct usb_config_desc" Return the descriptor for the configuration with the given index. -For convenience the current configuration can be specified by +For convenience, the current configuration can be specified by .Dv USB_CURRENT_CONFIG_INDEX . .Bd -literal struct usb_config_desc { @@ -187,7 +178,7 @@ struct usb_config_desc { .It Dv USB_GET_INTERFACE_DESC Pq Vt "struct usb_interface_desc" Return the interface descriptor for an interface specified by its configuration index, interface index, and alternative index. -For convenience the current alternative can be specified by +For convenience, the current alternative can be specified by .Dv USB_CURRENT_ALT_INDEX . .Bd -literal struct usb_interface_desc { @@ -251,7 +242,7 @@ field is ignored in this call. The .Va ucr_flags field can be used to flag that the request is allowed to -be shorter than the requested size, and the +be shorter than the requested size, and .Va ucr_actlen will contain the actual size on completion. .Bd -literal @@ -270,18 +261,17 @@ Some of the most dangerous (e.g., changing the device address) are not allowed. .It Dv USB_GET_DEVICEINFO Pq Vt "struct usb_device_info" Get an information summary for the device. -This call will not -issue any USB transactions. +This call will not issue any USB transactions. .El .Pp -Note that there are two different ways of addressing configurations, interfaces, -alternatives, and endpoints: by index or by number. +Note that there are two different ways of addressing configurations, +interfaces, alternatives, and endpoints: by index or by number. The index is the ordinal number (starting from 0) of the descriptor as presented by the device. The number is the respective number of the entity as found in its descriptor. Enumeration of descriptors -use the index, getting and setting typically uses numbers. +uses the index, getting and setting typically uses numbers. .Pp Example: all endpoints (except the control endpoint) for the current configuration @@ -289,13 +279,13 @@ can be found by iterating the .Va interface_index from 0 to .Va config_desc->bNumInterface Ns \-1 -and for each of these iterating the +and for each of these, iterating the .Va endpoint_index from 0 to .Va interface_desc->bNumEndpoints . The .Va config_index -should set to +should be set to .Dv USB_CURRENT_CONFIG_INDEX and .Va alt_index diff --git a/share/man/man4/umodem.4 b/share/man/man4/umodem.4 index 594f4b0..71827db 100644 --- a/share/man/man4/umodem.4 +++ b/share/man/man4/umodem.4 @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 20, 2011 +.Dd August 6, 2012 .Dt UMODEM 4 .Os .Sh NAME @@ -92,6 +92,8 @@ Yamaha Broadband Wireless Router RTW65b ELSA MicroLink 56k USB modem .It Sony Ericsson W810i phone +.It +Sonim XP5300 Force .El .Sh SEE ALSO .Xr tty 4 , diff --git a/share/man/man4/uplcom.4 b/share/man/man4/uplcom.4 index 05b4ff3..7c2bce0 100644 --- a/share/man/man4/uplcom.4 +++ b/share/man/man4/uplcom.4 @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 20, 2011 +.Dd July 25, 2012 .Dt UPLCOM 4 .Os .Sh NAME @@ -118,6 +118,8 @@ Microsoft Palm 700WX .It Mobile Action MA-620 Infrared Adapter .It +Motorola Cables +.It Nokia CA-42 Cable .It OTI DKU-5 cable diff --git a/share/man/man4/usb.4 b/share/man/man4/usb.4 index f3f8104..d3a236f 100644 --- a/share/man/man4/usb.4 +++ b/share/man/man4/usb.4 @@ -58,7 +58,7 @@ devices in host and device side mode. The .Nm driver has three layers: -.Bl -tag +.Bl -tag -width 6n -offset indent .It USB Controller (Bus) .It USB Device .It USB Driver @@ -85,7 +85,7 @@ The .Tn USB is a system where external devices can be connected to a PC. The most common USB speeds are: -.Bl -tag +.Bl -tag -width 6n -offset indent .It Low Speed (1.5MBit/sec) .It Full Speed (12MBit/sec) .It High Speed (480MBit/sec) diff --git a/share/man/man4/usb_quirk.4 b/share/man/man4/usb_quirk.4 index 2323495..65deafa 100644 --- a/share/man/man4/usb_quirk.4 +++ b/share/man/man4/usb_quirk.4 @@ -66,6 +66,8 @@ device should be ignored by hid class device should be ignored by kbd class .It UQ_KBD_BOOTPROTO device should set the boot protocol +.It UQ_UMS_IGNORE +device should be ignored by ums class .It UQ_MS_BAD_CLASS doesn't identify properly .It UQ_MS_LEADING_BYTE diff --git a/share/man/man4/uslcom.4 b/share/man/man4/uslcom.4 index 14c78ff..d043cb2 100644 --- a/share/man/man4/uslcom.4 +++ b/share/man/man4/uslcom.4 @@ -16,12 +16,12 @@ .\" .\" $FreeBSD$ .\" -.Dd November 20, 2011 +.Dd August 4, 2012 .Dt USLCOM 4 .Os .Sh NAME .Nm uslcom -.Nd Silicon Laboratories CP2101/CP2102 based USB serial adapter +.Nd Silicon Laboratories CP2101/CP2102/CP2103/CP2104/CP2105 based USB serial adapter .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your @@ -41,7 +41,8 @@ uslcom_load="YES" .Sh DESCRIPTION The .Nm -driver supports Silicon Laboratories CP2101/CP2102 based USB serial adapters. +driver supports Silicon Laboratories CP2101/CP2102/CP2103/CP2104/CP2105 +based USB serial adapters. .Sh HARDWARE The following devices should work with the .Nm @@ -49,29 +50,147 @@ driver: .Pp .Bl -bullet -compact .It +AC-Services CAN, CIS-IBUS, IBUS and OBD interfaces +.It +Aerocomm Radio +.It +AKTACOM ACE-1001 cable +.It +AMBER Wireless AMB2560 +.It +Arkham DS-101 Adapter +.It Argussoft ISP .It +Arygon Technologies Mifare RFID Reader +.It +AVIT Research USB-TTL interface +.It +B&G H3000 Data Cable +.It +Balluff RFID reader +.It Baltech card reader .It +BEI USB VCP Sensor +.It Burnside Telecom Desktop Mobile .It chip45.com Crumb128 module .It +Clipsal 5000CT2, 5500PACA, 5500PCU, 560884, 5800PC, C5000CT2 +and L51xx C-Bus Home Automation products +.It +Commander 2 EDGE(GSM) Modem +.It +Cygnal Fasttrax GPS and Debug adapter +.It +DataApex MultiCOM USB to RS232 converter +.It +Degree Controls USB adapter +.It +DekTec DTA Plus VHF/UHF Booster +.It +Dell DW700 GPS Receiver +.It +Digianswer ZigBee/802.15.4 MAC +.It +Dynastream ANT Development kits +.It +Elan USBcount50, USBscope50, USBpulse100 and USBwave12 +.It +ELV USB-I2C interface +.It +EMS C1007 HF RFID controller +.It +Festo CPX-USB and CMSP interfaces +.It +Gemalto Prox-PU/CU contactless card reader +.It +Helicomm IP-Link 1220-DVM +.It +IMS USB-RS422 adapter +.It +Infinity GPS-MIC-1 Radio Monophone +.It +INSYS Modem +.It +IRZ SG-10 and MC35pu GSM/GPRS Modems +.It Jablotron PC-60B .It -Lipowsky Baby-JTAG +Kamstrup M-Bus Master MultiPort 250D +and Optical Eye/3 wire utility meter interfaces .It -Lipowsky Baby-LIN +Kyocera GPS .It -Lipowsky HARP-1 +Link Instruments MS-019 and MS-028 +Oscilloscope/Logic Analyzer/Pattern Generators +.It +Lipowsky Baby-JTAG, Baby-LIN and HARP-1 +.It +MEI CashFlow SC and Series 2000 cash acceptors +.It +MJS USB-TOSLINK Adapter +.It +MobiData GPRS USB Modems +.It +MSD DashHawk +.It +Multiplex RC adapter +.It +Optris MSpro LT Thermometer +.It +Owen AC4 USB-RS485 converter +.It +Pirelli DP-L10 SIP phone +.It +PLX CA-42 Phone cable .It Pololu USB to Serial .It -Silicon Laboratories CP2101 +Procyon AVS Mind Machine +.It +Renesas RX-Stick for RX610 +.It +Siemens MC60 Cable +.It +Silicon Laboratories generic CP2101/CP2102/CP2103/CP2104/CP2105 chips +.It +Software Bisque Paramount ME +.It +SPORTident BSM7-D USB .It -Silicon Laboratories CP2102 +Suunto Sports Instrument +.It +Syntech CipherLab USB Barcode Scanner +.It +T-Com TC 300 SIP phone +.It +Tams Master Easy Control +.It +Telegesis ETRX2USB +.It +Timewave HamLinkUSB +.It +Tracient RFID Reader .It Track Systems Traqmate +.It +Vaisala USB Instrument cable +.It +VStabi Controller +.It +WAGO 750-923 USB Service Cable +.It +WaveSense Jazz Blood Glucose Meter +.It +WIENER Plein & Baus CML Data Logger, RCM Remote, +and PL512 and MPOD PSUs +.It +WMR RIGblaster Plug&Play and RIGtalk RT1 +.It +Zephyr Bioharness .El .Sh SEE ALSO .Xr tty 4 , @@ -91,8 +210,3 @@ The .Nm driver was written by .An Jonathan Gray Aq jsg@openbsd.org . -.Sh CAVEATS -Setting hardware flow control is not currently supported. -.Pp -Silicon Laboratories do not release any programming information -on their products. diff --git a/share/man/man4/vale.4 b/share/man/man4/vale.4 new file mode 100644 index 0000000..a52b137 --- /dev/null +++ b/share/man/man4/vale.4 @@ -0,0 +1,132 @@ +.\" Copyright (c) 2012 Luigi Rizzo, Universita` di Pisa +.\" 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. +.\" +.\" This document is derived in part from the enet man page (enet.4) +.\" distributed with 4.3BSD Unix. +.\" +.\" $FreeBSD$ +.\" $Id: $ +.\" +.Dd July 27, 2012 +.Dt VALE 4 +.Os +.Sh NAME +.Nm vale +.Nd a very fast Virtual Local Ethernet using the netmap API +.Sh SYNOPSIS +.Cd device netmap +.Sh DESCRIPTION +.Nm +is a feature of the +.Xr netmap 4 +module that implements multiple Virtual switches that can +be used to interconnect netmap clients, including traffic +sources and sinks, packet forwarders, userspace firewalls, +and so on. +.Pp +.Nm +is implemented completely in software, and is extremely fast. +On a modern machine it can move almost 20 Million packets per +second (Mpps) per core with small frames, and about 70 Gbit/s +with 1500 byte frames. +.Sh OPERATION +.Nm +dynamically creates switches and ports as clients connect +to it using the +.Xr netmap 4 +API. +.Pp +.Nm +ports are named +.Pa vale[bdg:][port] +where +.Pa vale +is the prefix indicating a VALE switch rather than a standard interface, +.Pa bdg +indicates a specific switch (the colon is a separator), +and +.Pa port +indicates a port within the switch. +Bridge and port names are arbitrary strings, the only +constraint being that the full name must fit within 16 +characters. +.Pp +See +.Xr netmap 4 +for details on the API. +.Ss LIMITS +.Nm +currently supports up to 4 switches, 16 ports per switch, with +1024 buffers per port. +These hard limits will be +changed to sysctl variables in future releases. +.Sh SYSCTL VARIABLES +.Nm +uses the following sysctl variables to control operation: +.Bl -tag -width dev.netmap.verbose +.It dev.netmap.bridge +The maximum number of packets processed internally +in each iteration. +Defaults to 1024, use lower values to trade latency +with throughput. +.Pp +.It dev.netmap.verbose +Set to non-zero values to enable in-kernel diagnostics. +.El +.Sh EXAMPLES +Create one switch, with a traffic generator connected to one +port, and a netmap-enabled tcpdump instance on another port: +.Bd -literal -offset indent +tcpdump -ni vale-a:1 & +pkt-gen -i vale-a:0 -f tx & +.Ed +.Pp +Create two switches, +each connected to two qemu machines on different ports. +.Bd -literal -offset indent +qemu -net nic -net netmap,ifname=vale-1:a ... & +qemu -net nic -net netmap,ifname=vale-1:b ... & +qemu -net nic -net netmap,ifname=vale-2:c ... & +qemu -net nic -net netmap,ifname=vale-2:d ... & +.Ed +.Sh SEE ALSO +.Xr netmap 4 +.Pp +.Xr http://info.iet.unipi.it/~luigi/vale/ +.Pp +Luigi Rizzo, Giuseppe Lettieri: VALE, a switched ethernet for virtual machines, +June 2012, http://info.iet.unipi.it/~luigi/vale/ +.Sh AUTHORS +.An -nosplit +The +.Nm +switch was designed and implemented in 2012 by +.An Luigi Rizzo +and +.An Giuseppe Lettieri +at the Universita` di Pisa. +.Pp +.Nm +was funded by the European Commission within FP7 Projects +CHANGE (257422) and OPENLAB (287581). diff --git a/share/man/man4/virtio.4 b/share/man/man4/virtio.4 index f30f339..6856f69 100644 --- a/share/man/man4/virtio.4 +++ b/share/man/man4/virtio.4 @@ -72,6 +72,10 @@ device driver. An emulated disk controller is provided by the .Xr virtio_blk 4 device driver. +.It Nm SCSI +An emulated SCSI HBA is provided by the +.Xr virtio_scsi 4 +device driver. .It Nm Balloon A pseudo-device to allow the VM to release memory back to the hypervisor is provided by the @@ -81,6 +85,7 @@ device driver. .Sh SEE ALSO .Xr virtio_balloon 4 , .Xr virtio_blk 4 , +.Xr virtio_scsi 4 , .Xr vtnet 4 .Sh HISTORY Support for VirtIO first appeared in diff --git a/share/man/man4/virtio_scsi.4 b/share/man/man4/virtio_scsi.4 new file mode 100644 index 0000000..a2d30d4 --- /dev/null +++ b/share/man/man4/virtio_scsi.4 @@ -0,0 +1,92 @@ +.\" Copyright (c) 2012 Bryan Venteicher +.\" 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 June 24, 2012 +.Dt VIRTIO_SCSI 4 +.Os +.Sh NAME +.Nm virtio_scsi +.Nd VirtIO SCSI driver +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device virtio_scsi" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +virtio_scsi_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +device driver provides support for VirtIO SCSI devices. +.Sh LOADER TUNABLES +Tunables can be set at the +.Xr loader 8 +prompt before booting the kernel or stored in +.Xr loader.conf 5 . +.Bl -tag -width "xxxxxx" +.It Va hw.vtscsi.bus_reset_disable +In the initial QEMU release with VirtIO SCSI support, in-flight +operations were not aborted when stopping the device, rendering +bus reset ineffective. This tunable disables attempts to issue +reset bus commands. The default value is 1. +.El +.Sh DEBUGGING +To enable debugging prints from the +.Nm +driver, set the +.Bd -literal -offset indent +hw.vtscsi.X.debug_level +.Ed +.Pp +variable, where X is the adapter number, either in +.Xr loader.conf 5 +or via +.Xr sysctl 8 . +The following bits have the described effects: +.Bl -tag -width 6n -offset indent +.It 0x01 +Enable informational prints. +.It 0x02 +Enable prints for driver errors. +.It 0x04 +Enable tracing prints. +.El +.Sh SEE ALSO +.Xr virtio 4 +.Sh HISTORY +The +.Nm +driver was written by +.An Bryan Venteicher Aq bryanv@daemoninthecloset.org . +It first appeared in +.Fx 10.0 . diff --git a/share/man/man4/vlan.4 b/share/man/man4/vlan.4 index dd36ff7..4717d2a 100644 --- a/share/man/man4/vlan.4 +++ b/share/man/man4/vlan.4 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 25, 2011 +.Dd June 4, 2012 .Dt VLAN 4 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd "IEEE 802.1Q VLAN network interface" .Sh SYNOPSIS To compile this driver into the kernel, -place the following lines in your +place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device vlan" @@ -119,8 +119,8 @@ It may have either capability enabled permanently without a way to turn it off. The whole issue is very specific to a particular device and its driver. .Pp -At present, physical interfaces capable of full VLAN processing -in the hardware is limited to these devices: +At present, these devices are capable of full VLAN processing +in hardware: .Xr ae 4 , .Xr age 4 , .Xr alc 4 , @@ -196,7 +196,7 @@ for use and calculates the appropriate frame MTU based on the capabilities of the parent interface. Some other interfaces not listed above may handle long frames, -but they do not advertise this ability of theirs. +but they do not advertise this ability. The MTU setting on .Nm can be corrected manually if used in conjunction with such a parent interface. diff --git a/share/man/man5/Makefile b/share/man/man5/Makefile index c7a3c59..5a337b8 100644 --- a/share/man/man5/Makefile +++ b/share/man/man5/Makefile @@ -6,6 +6,7 @@ #MISSING: dump.5 plot.5 MAN= acct.5 \ ar.5 \ + ${_atf_formats.5} \ a.out.5 \ bluetooth.device.conf.5 \ bluetooth.hosts.5 \ @@ -68,8 +69,7 @@ MAN= acct.5 \ stab.5 \ style.Makefile.5 \ sysctl.conf.5 \ - tmpfs.5 \ - xfs.5 + tmpfs.5 MLINKS= dir.5 dirent.5 MLINKS+=fs.5 inode.5 @@ -81,6 +81,12 @@ MLINKS+=quota.user.5 quota.group.5 MLINKS+=rc.conf.5 rc.conf.local.5 MLINKS+=resolver.5 resolv.conf.5 +.if ${MK_ATF} != "no" +ATF= ${.CURDIR}/../../../contrib/atf +.PATH: ${ATF}/doc +_atf_formats.5= atf-formats.5 +.endif + .if ${MK_HESIOD} != "no" MAN+= hesiod.conf.5 .endif @@ -89,6 +95,11 @@ MAN+= hesiod.conf.5 MAN+= nandfs.5 .endif +.if ${MK_PF} != "no" +MAN+= pf.conf.5 \ + pf.os.5 +.endif + .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" _boot.config.5= boot.config.5 .endif diff --git a/share/man/man5/fstab.5 b/share/man/man5/fstab.5 index 060d57c..d516767 100644 --- a/share/man/man5/fstab.5 +++ b/share/man/man5/fstab.5 @@ -32,7 +32,7 @@ .\" @(#)fstab.5 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd June 7, 2011 +.Dd October 11, 2012 .Dt FSTAB 5 .Os .Sh NAME @@ -66,12 +66,20 @@ The first field, .Pq Fa fs_spec , describes the special device or remote file system to be mounted. +The contents are decoded by the +.Xr strunvis 3 +function. +This allows using spaces or tabs in the device name which would be +interpreted as field separators otherwise. .Pp The second field, .Pq Fa fs_file , describes the mount point for the file system. For swap partitions, this field should be specified as .Dq none . +The contents are decoded by the +.Xr strunvis 3 +function, as above. .Pp The third field, .Pq Fa fs_vfstype , @@ -338,6 +346,7 @@ resides in .Xr mount 8 , .Xr quotacheck 8 , .Xr quotaon 8 , +.Xr strunvis 3 , .Xr swapon 8 , .Xr umount 8 .Sh HISTORY diff --git a/share/man/man5/make.conf.5 b/share/man/man5/make.conf.5 index 9723f4c..e6ed94e 100644 --- a/share/man/man5/make.conf.5 +++ b/share/man/man5/make.conf.5 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 02, 2012 +.Dd October 14, 2012 .Dt MAKE.CONF 5 .Os .Sh NAME @@ -200,14 +200,6 @@ value, use .Dq Li += instead of .Dq Li = . -.It Va DOCSUPFILE -.Pq Vt str -The documentation -.Ar supfile -to use when doing a -.Dq Li "make update" . -For example, -.Pa /usr/share/examples/cvsup/doc-supfile . .It Va INSTALL .Pq Vt str the default install command. @@ -267,14 +259,6 @@ Set this to not update the ports tree during .Pq Vt bool Set this to not update the www tree during .Dq Li "make update" . -.It Va PORTSSUPFILE -.Pq Vt str -The ports -.Ar supfile -to use when doing a -.Dq Li "make update" . -For example, -.Pa /usr/share/examples/cvsup/ports-supfile . .It Va SUP .Pq Vt str The location of the @@ -320,9 +304,9 @@ The hostname of the sup server to use when doing Set this to use .Xr csup 1 to update your -.Pa src , ports , doc +.Pa src , and -.Pa www +.Pa ports trees with .Dq Li "make update" . .It Va SVN_UPDATE @@ -339,14 +323,6 @@ you will need to set to the full path of a .Xr svn 1 binary. -.It Va WWWSUPFILE -.Pq Vt str -The www -.Ar supfile -to use when doing a -.Dq Li "make update" . -For example, -.Pa /usr/share/examples/cvsup/www-supfile . .El .Ss "BUILDING THE KERNEL" The following list provides a name and short description for variables diff --git a/share/man/man5/moduli.5 b/share/man/man5/moduli.5 index 32d7989..becd3ea 100644 --- a/share/man/man5/moduli.5 +++ b/share/man/man5/moduli.5 @@ -1,159 +1,125 @@ -.\" $OpenBSD: moduli.5,v 1.3 2001/06/24 18:50:52 provos Exp $ +.\" $OpenBSD: moduli.5,v 1.16 2011/11/28 08:46:27 eric Exp $ .\" -.\" Copyright 1997, 2000 William Allen Simpson <wsimpson@greendragon.com> -.\" All rights reserved. +.\" Copyright (c) 2008 Damien Miller <djm@mindrot.org> .\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software designed by William Allen Simpson. -.\" 4. The name of the author may not be used to endorse or promote products -.\" derived from this software without specific prior written permission. +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. .\" -.\" 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. +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .\" $FreeBSD$ .\" -.Dd July 28, 1997 +.Dd July 19, 2012 .Dt MODULI 5 .Os .Sh NAME .Nm moduli -.Nd system moduli file +.Nd Diffie-Hellman moduli .Sh DESCRIPTION The -.Nm -file contains the system-wide Diffie-Hellman prime moduli for the -.Xr photurisd 8 -and +.Pa /etc/ssh/moduli +file contains prime numbers and generators for use by .Xr sshd 8 -programs. +in the Diffie-Hellman Group Exchange key exchange method. .Pp -Each line in this file contains the following fields: -.Va Time , Type , Tests , Tries , Size , Generator , -and -.Va Modulus . -The fields are separated by white space (tab or blank). -.Bl -tag -width indent -.It Va Time Pq Vt yyyymmddhhmmss -Specifies the system time that the line was appended to the file. -The value 00000000000000 means unknown (historic). -.\"The file is sorted in ascending order. -.It Va Type Pq Vt decimal -Specifies the internal structure of the prime modulus. +New moduli may be generated with +.Xr ssh-keygen 1 +using a two-step process. +An initial +.Em candidate generation +pass, using +.Ic ssh-keygen -G , +calculates numbers that are likely to be useful. +A second +.Em primality testing +pass, using +.Ic ssh-keygen -T , +provides a high degree of assurance that the numbers are prime and are +safe for use in Diffie-Hellman operations by +.Xr sshd 8 . +This +.Nm +format is used as the output from each pass. .Pp -.Bl -tag -width indent -compact -.It 0 -unknown; -often learned from peer during protocol operation, -and saved for later analysis. -.It 1 -unstructured; -a common large number. -.It 2 -safe (p = 2q + 1); -meets basic structural requirements. -.It 3 -Schnorr. -.It 4 -Sophie-Germaine (q = (p-1)/2); -usually generated in the process of testing safe or strong primes. -.It 5 -strong; -useful for RSA public key generation. -.El -.It Xo -.Va Tests Pq Vt decimal -(bit field) -.Xc -Specifies the methods used in checking for primality. -Usually, more than one test is used. +The file consists of newline-separated records, one per modulus, +containing seven space-separated fields. +These fields are as follows: +.Bl -tag -width Description -offset indent +.It timestamp +The time that the modulus was last processed as YYYYMMDDHHMMSS. +.It type +Decimal number specifying the internal structure of the prime modulus. +Supported types are: .Pp -.Bl -tag -width indent -compact +.Bl -tag -width 0x00 -compact .It 0 -not tested; -often learned from peer during protocol operation, -and saved for later analysis. -.It 1 -composite; -failed one or more tests. -In this case, the highest bit specifies the test that failed. +Unknown, not tested. .It 2 -sieve; -checked for division by a range of smaller primes. +"Safe" prime; (p-1)/2 is also prime. .It 4 -Miller-Rabin. -.It 8 -Jacobi. -.It 16 -Elliptic Curve. +Sophie Germain; 2p+1 is also prime. .El -.It Va Tries Pq Vt decimal -Depends on the value of the highest valid Test bit, -where the method specified is: .Pp -.Bl -tag -width indent -compact -.It 0 -not tested -(always zero). -.It 1 -composite -(irrelevant). -.It 2 -sieve; -number of primes sieved. -Commonly on the order of 32,000,000. -.It 4 -Miller-Rabin; -number of M-R iterations. -Commonly on the order of 32 to 64. -.It 8 -Jacobi; -unknown -(always zero). -.It 16 -Elliptic Curve; -unused -(always zero). -.El -.It Va Size Pq Vt decimal -Specifies the number of significant bits. -.It Va Generator Pq Vt "hex string" -Specifies the best generator for a Diffie-Hellman exchange. -0 = unknown or variable, -2, 3, 5, etc. -.It Va Modulus Pq Vt "hex string" -The prime modulus. +Moduli candidates initially produced by +.Xr ssh-keygen 1 +are Sophie Germain primes (type 4). +Further primality testing with +.Xr ssh-keygen 1 +produces safe prime moduli (type 2) that are ready for use in +.Xr sshd 8 . +Other types are not used by OpenSSH. +.It tests +Decimal number indicating the type of primality tests that the number +has been subjected to represented as a bitmask of the following values: +.Pp +.Bl -tag -width 0x00 -compact +.It 0x00 +Not tested. +.It 0x01 +Composite number \(en not prime. +.It 0x02 +Sieve of Eratosthenes. +.It 0x04 +Probabilistic Miller-Rabin primality tests. .El .Pp -The file is searched for moduli that meet the appropriate -.Va Time , Size -and -.Va Generator -criteria. -When more than one meet the criteria, -the selection should be weighted toward newer moduli, -without completely disqualifying older moduli. -.Sh FILES -.Bl -tag -width ".Pa /etc/ssh/moduli" -compact -.It Pa /etc/ssh/moduli +The +.Xr ssh-keygen 1 +moduli candidate generation uses the Sieve of Eratosthenes (flag 0x02). +Subsequent +.Xr ssh-keygen 1 +primality tests are Miller-Rabin tests (flag 0x04). +.It trials +Decimal number indicating the number of primality trials +that have been performed on the modulus. +.It size +Decimal number indicating the size of the prime in bits. +.It generator +The recommended generator for use with this modulus (hexadecimal). +.It modulus +The modulus itself in hexadecimal. .El +.Pp +When performing Diffie-Hellman Group Exchange, +.Xr sshd 8 +first estimates the size of the modulus required to produce enough +Diffie-Hellman output to sufficiently key the selected symmetric cipher. +.Xr sshd 8 +then randomly selects a modulus from +.Fa /etc/ssh/moduli +that best meets the size requirement. .Sh SEE ALSO -.Xr photurisd 8 , +.Xr ssh-keygen 1 , .Xr sshd 8 +.Rs +.%R RFC 4419 +.%T "Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol" +.%D 2006 +.Re diff --git a/share/man/man5/passwd.5 b/share/man/man5/passwd.5 index 228c4e3..c49b0f7 100644 --- a/share/man/man5/passwd.5 +++ b/share/man/man5/passwd.5 @@ -35,7 +35,7 @@ .\" From: @(#)passwd.5 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd May 8, 2007 +.Dd June 23, 2012 .Dt PASSWD 5 .Os .Sh NAME @@ -203,7 +203,8 @@ field is the number of seconds from the epoch, .Dv UTC , until the password for the account must be changed. -This field may be left empty to turn off the password aging feature. +This field may be left empty to turn off the password aging feature; +a value of zero is equivalent to leaving the field empty. .Pp The .Ar expire @@ -211,7 +212,8 @@ field is the number of seconds from the epoch, .Dv UTC , until the account expires. -This field may be left empty to turn off the account aging feature. +This field may be left empty to turn off the account aging feature; +a value of zero is equivalent to leaving the field empty. .Pp The .Ar gecos @@ -271,7 +273,8 @@ as it is done for system accounts, is to set its .Ar shell to -.Xr nologin 8 . +.Pa /sbin/nologin +.Pq see Xr nologin 8 . .Sh HESIOD SUPPORT If .Sq Li dns @@ -363,7 +366,7 @@ fields, the specified numbers will override the information retrieved from the Hesiod domain or the .Tn NIS maps. -As well, if the +Likewise, if the .Ar gecos , .Ar dir or @@ -399,7 +402,8 @@ The additional fields .Ar change and .Ar expire -are added, but are turned off by default. +are added, but are turned off by default +.Pq setting these fields to zero is equivalent to leaving them blank . Class is currently not implemented, but change and expire are; to set them, use the current day in seconds from the epoch + whatever number of seconds of offset you want. diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5 new file mode 100644 index 0000000..fc86111 --- /dev/null +++ b/share/man/man5/pf.conf.5 @@ -0,0 +1,3066 @@ +.\" $FreeBSD$ +.\" $OpenBSD: pf.conf.5,v 1.406 2009/01/31 19:37:12 sobrado Exp $ +.\" +.\" Copyright (c) 2002, Daniel Hartmeier +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" +.\" - Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" - Redistributions in binary form must reproduce the above +.\" copyright notice, this list of conditions and the following +.\" disclaimer in the documentation and/or other materials provided +.\" with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 +.\" COPYRIGHT HOLDERS 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. +.\" +.Dd June 29 2012 +.Dt PF.CONF 5 +.Os +.Sh NAME +.Nm pf.conf +.Nd packet filter configuration file +.Sh DESCRIPTION +The +.Xr pf 4 +packet filter modifies, drops or passes packets according to rules or +definitions specified in +.Nm pf.conf . +.Sh STATEMENT ORDER +There are seven types of statements in +.Nm pf.conf : +.Bl -tag -width xxxx +.It Cm Macros +User-defined variables may be defined and used later, simplifying +the configuration file. +Macros must be defined before they are referenced in +.Nm pf.conf . +.It Cm Tables +Tables provide a mechanism for increasing the performance and flexibility of +rules with large numbers of source or destination addresses. +.It Cm Options +Options tune the behaviour of the packet filtering engine. +.It Cm Traffic Normalization Li (e.g. Em scrub ) +Traffic normalization protects internal machines against inconsistencies +in Internet protocols and implementations. +.It Cm Queueing +Queueing provides rule-based bandwidth control. +.It Cm Translation Li (Various forms of NAT) +Translation rules specify how addresses are to be mapped or redirected to +other addresses. +.It Cm Packet Filtering +Packet filtering provides rule-based blocking or passing of packets. +.El +.Pp +With the exception of +.Cm macros +and +.Cm tables , +the types of statements should be grouped and appear in +.Nm pf.conf +in the order shown above, as this matches the operation of the underlying +packet filtering engine. +By default +.Xr pfctl 8 +enforces this order (see +.Ar set require-order +below). +.Pp +Comments can be put anywhere in the file using a hash mark +.Pq Sq # , +and extend to the end of the current line. +.Pp +Additional configuration files can be included with the +.Ic include +keyword, for example: +.Bd -literal -offset indent +include "/etc/pf/sub.filter.conf" +.Ed +.Sh MACROS +Macros can be defined that will later be expanded in context. +Macro names must start with a letter, and may contain letters, digits +and underscores. +Macro names may not be reserved words (for example +.Ar pass , +.Ar in , +.Ar out ) . +Macros are not expanded inside quotes. +.Pp +For example, +.Bd -literal -offset indent +ext_if = \&"kue0\&" +all_ifs = \&"{\&" $ext_if lo0 \&"}\&" +pass out on $ext_if from any to any +pass in on $ext_if proto tcp from any to any port 25 +.Ed +.Sh TABLES +Tables are named structures which can hold a collection of addresses and +networks. +Lookups against tables in +.Xr pf 4 +are relatively fast, making a single rule with tables much more efficient, +in terms of +processor usage and memory consumption, than a large number of rules which +differ only in IP address (either created explicitly or automatically by rule +expansion). +.Pp +Tables can be used as the source or destination of filter rules, +.Ar scrub +rules +or +translation rules such as +.Ar nat +or +.Ar rdr +(see below for details on the various rule types). +Tables can also be used for the redirect address of +.Ar nat +and +.Ar rdr +rules and in the routing options of filter rules, but only for +.Ar round-robin +pools. +.Pp +Tables can be defined with any of the following +.Xr pfctl 8 +mechanisms. +As with macros, reserved words may not be used as table names. +.Bl -tag -width "manually" +.It Ar manually +Persistent tables can be manually created with the +.Ar add +or +.Ar replace +option of +.Xr pfctl 8 , +before or after the ruleset has been loaded. +.It Pa pf.conf +Table definitions can be placed directly in this file, and loaded at the +same time as other rules are loaded, atomically. +Table definitions inside +.Nm pf.conf +use the +.Ar table +statement, and are especially useful to define non-persistent tables. +The contents of a pre-existing table defined without a list of addresses +to initialize it is not altered when +.Nm pf.conf +is loaded. +A table initialized with the empty list, +.Li { } , +will be cleared on load. +.El +.Pp +Tables may be defined with the following attributes: +.Bl -tag -width persist +.It Ar persist +The +.Ar persist +flag forces the kernel to keep the table even when no rules refer to it. +If the flag is not set, the kernel will automatically remove the table +when the last rule referring to it is flushed. +.It Ar const +The +.Ar const +flag prevents the user from altering the contents of the table once it +has been created. +Without that flag, +.Xr pfctl 8 +can be used to add or remove addresses from the table at any time, even +when running with +.Xr securelevel 7 += 2. +.It Ar counters +The +.Ar counters +flag enables per-address packet and byte counters which can be displayed with +.Xr pfctl 8 . +.El +.Pp +For example, +.Bd -literal -offset indent +table \*(Ltprivate\*(Gt const { 10/8, 172.16/12, 192.168/16 } +table \*(Ltbadhosts\*(Gt persist +block on fxp0 from { \*(Ltprivate\*(Gt, \*(Ltbadhosts\*(Gt } to any +.Ed +.Pp +creates a table called private, to hold RFC 1918 private network +blocks, and a table called badhosts, which is initially empty. +A filter rule is set up to block all traffic coming from addresses listed in +either table. +The private table cannot have its contents changed and the badhosts table +will exist even when no active filter rules reference it. +Addresses may later be added to the badhosts table, so that traffic from +these hosts can be blocked by using +.Bd -literal -offset indent +# pfctl -t badhosts -Tadd 204.92.77.111 +.Ed +.Pp +A table can also be initialized with an address list specified in one or more +external files, using the following syntax: +.Bd -literal -offset indent +table \*(Ltspam\*(Gt persist file \&"/etc/spammers\&" file \&"/etc/openrelays\&" +block on fxp0 from \*(Ltspam\*(Gt to any +.Ed +.Pp +The files +.Pa /etc/spammers +and +.Pa /etc/openrelays +list IP addresses, one per line. +Any lines beginning with a # are treated as comments and ignored. +In addition to being specified by IP address, hosts may also be +specified by their hostname. +When the resolver is called to add a hostname to a table, +.Em all +resulting IPv4 and IPv6 addresses are placed into the table. +IP addresses can also be entered in a table by specifying a valid interface +name, a valid interface group or the +.Em self +keyword, in which case all addresses assigned to the interface(s) will be +added to the table. +.Sh OPTIONS +.Xr pf 4 +may be tuned for various situations using the +.Ar set +command. +.Bl -tag -width xxxx +.It Ar set timeout +.Pp +.Bl -tag -width "src.track" -compact +.It Ar interval +Interval between purging expired states and fragments. +.It Ar frag +Seconds before an unassembled fragment is expired. +.It Ar src.track +Length of time to retain a source tracking entry after the last state +expires. +.El +.Pp +When a packet matches a stateful connection, the seconds to live for the +connection will be updated to that of the +.Ar proto.modifier +which corresponds to the connection state. +Each packet which matches this state will reset the TTL. +Tuning these values may improve the performance of the +firewall at the risk of dropping valid idle connections. +.Pp +.Bl -tag -width xxxx -compact +.It Ar tcp.first +The state after the first packet. +.It Ar tcp.opening +The state before the destination host ever sends a packet. +.It Ar tcp.established +The fully established state. +.It Ar tcp.closing +The state after the first FIN has been sent. +.It Ar tcp.finwait +The state after both FINs have been exchanged and the connection is closed. +Some hosts (notably web servers on Solaris) send TCP packets even after closing +the connection. +Increasing +.Ar tcp.finwait +(and possibly +.Ar tcp.closing ) +can prevent blocking of such packets. +.It Ar tcp.closed +The state after one endpoint sends an RST. +.El +.Pp +ICMP and UDP are handled in a fashion similar to TCP, but with a much more +limited set of states: +.Pp +.Bl -tag -width xxxx -compact +.It Ar udp.first +The state after the first packet. +.It Ar udp.single +The state if the source host sends more than one packet but the destination +host has never sent one back. +.It Ar udp.multiple +The state if both hosts have sent packets. +.It Ar icmp.first +The state after the first packet. +.It Ar icmp.error +The state after an ICMP error came back in response to an ICMP packet. +.El +.Pp +Other protocols are handled similarly to UDP: +.Pp +.Bl -tag -width xxxx -compact +.It Ar other.first +.It Ar other.single +.It Ar other.multiple +.El +.Pp +Timeout values can be reduced adaptively as the number of state table +entries grows. +.Pp +.Bl -tag -width xxxx -compact +.It Ar adaptive.start +When the number of state entries exceeds this value, adaptive scaling +begins. +All timeout values are scaled linearly with factor +(adaptive.end - number of states) / (adaptive.end - adaptive.start). +.It Ar adaptive.end +When reaching this number of state entries, all timeout values become +zero, effectively purging all state entries immediately. +This value is used to define the scale factor, it should not actually +be reached (set a lower state limit, see below). +.El +.Pp +Adaptive timeouts are enabled by default, with an adaptive.start value +equal to 60% of the state limit, and an adaptive.end value equal to +120% of the state limit. +They can be disabled by setting both adaptive.start and adaptive.end to 0. +.Pp +The adaptive timeout values can be defined both globally and for each rule. +When used on a per-rule basis, the values relate to the number of +states created by the rule, otherwise to the total number of +states. +.Pp +For example: +.Bd -literal -offset indent +set timeout tcp.first 120 +set timeout tcp.established 86400 +set timeout { adaptive.start 6000, adaptive.end 12000 } +set limit states 10000 +.Ed +.Pp +With 9000 state table entries, the timeout values are scaled to 50% +(tcp.first 60, tcp.established 43200). +.Pp +.It Ar set loginterface +Enable collection of packet and byte count statistics for the given +interface or interface group. +These statistics can be viewed using +.Bd -literal -offset indent +# pfctl -s info +.Ed +.Pp +In this example +.Xr pf 4 +collects statistics on the interface named dc0: +.Bd -literal -offset indent +set loginterface dc0 +.Ed +.Pp +One can disable the loginterface using: +.Bd -literal -offset indent +set loginterface none +.Ed +.Pp +.It Ar set limit +Sets hard limits on the memory pools used by the packet filter. +See +.Xr zone 9 +for an explanation of memory pools. +.Pp +For example, +.Bd -literal -offset indent +set limit states 20000 +.Ed +.Pp +sets the maximum number of entries in the memory pool used by state table +entries (generated by +.Ar pass +rules which do not specify +.Ar no state ) +to 20000. +Using +.Bd -literal -offset indent +set limit frags 20000 +.Ed +.Pp +sets the maximum number of entries in the memory pool used for fragment +reassembly (generated by +.Ar scrub +rules) to 20000. +Using +.Bd -literal -offset indent +set limit src-nodes 2000 +.Ed +.Pp +sets the maximum number of entries in the memory pool used for tracking +source IP addresses (generated by the +.Ar sticky-address +and +.Ar src.track +options) to 2000. +Using +.Bd -literal -offset indent +set limit tables 1000 +set limit table-entries 100000 +.Ed +.Pp +sets limits on the memory pools used by tables. +The first limits the number of tables that can exist to 1000. +The second limits the overall number of addresses that can be stored +in tables to 100000. +.Pp +Various limits can be combined on a single line: +.Bd -literal -offset indent +set limit { states 20000, frags 20000, src-nodes 2000 } +.Ed +.Pp +.It Ar set ruleset-optimization +.Bl -tag -width xxxxxxxx -compact +.It Ar none +Disable the ruleset optimizer. +.It Ar basic +Enable basic ruleset optimization. +This is the default behaviour. +Basic ruleset optimization does four things to improve the +performance of ruleset evaluations: +.Pp +.Bl -enum -compact +.It +remove duplicate rules +.It +remove rules that are a subset of another rule +.It +combine multiple rules into a table when advantageous +.It +re-order the rules to improve evaluation performance +.El +.Pp +.It Ar profile +Uses the currently loaded ruleset as a feedback profile to tailor the +ordering of quick rules to actual network traffic. +.El +.Pp +It is important to note that the ruleset optimizer will modify the ruleset +to improve performance. +A side effect of the ruleset modification is that per-rule accounting +statistics will have different meanings than before. +If per-rule accounting is important for billing purposes or whatnot, +either the ruleset optimizer should not be used or a label field should +be added to all of the accounting rules to act as optimization barriers. +.Pp +Optimization can also be set as a command-line argument to +.Xr pfctl 8 , +overriding the settings in +.Nm . +.It Ar set optimization +Optimize state timeouts for one of the following network environments: +.Pp +.Bl -tag -width xxxx -compact +.It Ar normal +A normal network environment. +Suitable for almost all networks. +.It Ar high-latency +A high-latency environment (such as a satellite connection). +.It Ar satellite +Alias for +.Ar high-latency . +.It Ar aggressive +Aggressively expire connections. +This can greatly reduce the memory usage of the firewall at the cost of +dropping idle connections early. +.It Ar conservative +Extremely conservative settings. +Avoid dropping legitimate connections at the +expense of greater memory utilization (possibly much greater on a busy +network) and slightly increased processor utilization. +.El +.Pp +For example: +.Bd -literal -offset indent +set optimization aggressive +.Ed +.Pp +.It Ar set block-policy +The +.Ar block-policy +option sets the default behaviour for the packet +.Ar block +action: +.Pp +.Bl -tag -width xxxxxxxx -compact +.It Ar drop +Packet is silently dropped. +.It Ar return +A TCP RST is returned for blocked TCP packets, +an ICMP UNREACHABLE is returned for blocked UDP packets, +and all other packets are silently dropped. +.El +.Pp +For example: +.Bd -literal -offset indent +set block-policy return +.Ed +.It Ar set state-policy +The +.Ar state-policy +option sets the default behaviour for states: +.Pp +.Bl -tag -width group-bound -compact +.It Ar if-bound +States are bound to interface. +.It Ar floating +States can match packets on any interfaces (the default). +.El +.Pp +For example: +.Bd -literal -offset indent +set state-policy if-bound +.Ed +.It Ar set state-defaults +The +.Ar state-defaults +option sets the state options for states created from rules +without an explicit +.Ar keep state . +For example: +.Bd -literal -offset indent +set state-defaults pflow, no-sync +.Ed +.It Ar set hostid +The 32-bit +.Ar hostid +identifies this firewall's state table entries to other firewalls +in a +.Xr pfsync 4 +failover cluster. +By default the hostid is set to a pseudo-random value, however it may be +desirable to manually configure it, for example to more easily identify the +source of state table entries. +.Bd -literal -offset indent +set hostid 1 +.Ed +.Pp +The hostid may be specified in either decimal or hexadecimal. +.It Ar set require-order +By default +.Xr pfctl 8 +enforces an ordering of the statement types in the ruleset to: +.Em options , +.Em normalization , +.Em queueing , +.Em translation , +.Em filtering . +Setting this option to +.Ar no +disables this enforcement. +There may be non-trivial and non-obvious implications to an out of +order ruleset. +Consider carefully before disabling the order enforcement. +.It Ar set fingerprints +Load fingerprints of known operating systems from the given filename. +By default fingerprints of known operating systems are automatically +loaded from +.Xr pf.os 5 +in +.Pa /etc +but can be overridden via this option. +Setting this option may leave a small period of time where the fingerprints +referenced by the currently active ruleset are inconsistent until the new +ruleset finishes loading. +.Pp +For example: +.Pp +.Dl set fingerprints \&"/etc/pf.os.devel\&" +.Pp +.It Ar set skip on Aq Ar ifspec +List interfaces for which packets should not be filtered. +Packets passing in or out on such interfaces are passed as if pf was +disabled, i.e. pf does not process them in any way. +This can be useful on loopback and other virtual interfaces, when +packet filtering is not desired and can have unexpected effects. +For example: +.Pp +.Dl set skip on lo0 +.Pp +.It Ar set debug +Set the debug +.Ar level +to one of the following: +.Pp +.Bl -tag -width xxxxxxxxxxxx -compact +.It Ar none +Don't generate debug messages. +.It Ar urgent +Generate debug messages only for serious errors. +.It Ar misc +Generate debug messages for various errors. +.It Ar loud +Generate debug messages for common conditions. +.El +.El +.Sh TRAFFIC NORMALIZATION +Traffic normalization is used to sanitize packet content in such +a way that there are no ambiguities in packet interpretation on +the receiving side. +The normalizer does IP fragment reassembly to prevent attacks +that confuse intrusion detection systems by sending overlapping +IP fragments. +Packet normalization is invoked with the +.Ar scrub +directive. +.Pp +.Ar scrub +has the following options: +.Bl -tag -width xxxx +.It Ar no-df +Clears the +.Ar dont-fragment +bit from a matching IP packet. +Some operating systems are known to generate fragmented packets with the +.Ar dont-fragment +bit set. +This is particularly true with NFS. +.Ar Scrub +will drop such fragmented +.Ar dont-fragment +packets unless +.Ar no-df +is specified. +.Pp +Unfortunately some operating systems also generate their +.Ar dont-fragment +packets with a zero IP identification field. +Clearing the +.Ar dont-fragment +bit on packets with a zero IP ID may cause deleterious results if an +upstream router later fragments the packet. +Using the +.Ar random-id +modifier (see below) is recommended in combination with the +.Ar no-df +modifier to ensure unique IP identifiers. +.It Ar min-ttl Aq Ar number +Enforces a minimum TTL for matching IP packets. +.It Ar max-mss Aq Ar number +Enforces a maximum MSS for matching TCP packets. +.It Xo Ar set-tos Aq Ar string +.No \*(Ba Aq Ar number +.Xc +Enforces a +.Em TOS +for matching IP packets. +.Em TOS +may be +given as one of +.Ar lowdelay , +.Ar throughput , +.Ar reliability , +or as either hex or decimal. +.It Ar random-id +Replaces the IP identification field with random values to compensate +for predictable values generated by many hosts. +This option only applies to packets that are not fragmented +after the optional fragment reassembly. +.It Ar fragment reassemble +Using +.Ar scrub +rules, fragments can be reassembled by normalization. +In this case, fragments are buffered until they form a complete +packet, and only the completed packet is passed on to the filter. +The advantage is that filter rules have to deal only with complete +packets, and can ignore fragments. +The drawback of caching fragments is the additional memory cost. +But the full reassembly method is the only method that currently works +with NAT. +This is the default behavior of a +.Ar scrub +rule if no fragmentation modifier is supplied. +.It Ar fragment crop +The default fragment reassembly method is expensive, hence the option +to crop is provided. +In this case, +.Xr pf 4 +will track the fragments and cache a small range descriptor. +Duplicate fragments are dropped and overlaps are cropped. +Thus data will only occur once on the wire with ambiguities resolving to +the first occurrence. +Unlike the +.Ar fragment reassemble +modifier, fragments are not buffered, they are passed as soon as they +are received. +The +.Ar fragment crop +reassembly mechanism does not yet work with NAT. +.Pp +.It Ar fragment drop-ovl +This option is similar to the +.Ar fragment crop +modifier except that all overlapping or duplicate fragments will be +dropped, and all further corresponding fragments will be +dropped as well. +.It Ar reassemble tcp +Statefully normalizes TCP connections. +.Ar scrub reassemble tcp +rules may not have the direction (in/out) specified. +.Ar reassemble tcp +performs the following normalizations: +.Pp +.Bl -tag -width timeout -compact +.It ttl +Neither side of the connection is allowed to reduce their IP TTL. +An attacker may send a packet such that it reaches the firewall, affects +the firewall state, and expires before reaching the destination host. +.Ar reassemble tcp +will raise the TTL of all packets back up to the highest value seen on +the connection. +.It timestamp modulation +Modern TCP stacks will send a timestamp on every TCP packet and echo +the other endpoint's timestamp back to them. +Many operating systems will merely start the timestamp at zero when +first booted, and increment it several times a second. +The uptime of the host can be deduced by reading the timestamp and multiplying +by a constant. +Also observing several different timestamps can be used to count hosts +behind a NAT device. +And spoofing TCP packets into a connection requires knowing or guessing +valid timestamps. +Timestamps merely need to be monotonically increasing and not derived off a +guessable base time. +.Ar reassemble tcp +will cause +.Ar scrub +to modulate the TCP timestamps with a random number. +.It extended PAWS checks +There is a problem with TCP on long fat pipes, in that a packet might get +delayed for longer than it takes the connection to wrap its 32-bit sequence +space. +In such an occurrence, the old packet would be indistinguishable from a +new packet and would be accepted as such. +The solution to this is called PAWS: Protection Against Wrapped Sequence +numbers. +It protects against it by making sure the timestamp on each packet does +not go backwards. +.Ar reassemble tcp +also makes sure the timestamp on the packet does not go forward more +than the RFC allows. +By doing this, +.Xr pf 4 +artificially extends the security of TCP sequence numbers by 10 to 18 +bits when the host uses appropriately randomized timestamps, since a +blind attacker would have to guess the timestamp as well. +.El +.El +.Pp +For example, +.Bd -literal -offset indent +scrub in on $ext_if all fragment reassemble +.Ed +.Pp +The +.Ar no +option prefixed to a scrub rule causes matching packets to remain unscrubbed, +much in the same way as +.Ar drop quick +works in the packet filter (see below). +This mechanism should be used when it is necessary to exclude specific packets +from broader scrub rules. +.Sh QUEUEING +The ALTQ system is currently not available in the GENERIC kernel nor as +loadable modules. +In order to use the herein after called queueing options one has to use a +custom built kernel. +Please refer to +.Xr altq 4 +to learn about the related kernel options. +.Pp +Packets can be assigned to queues for the purpose of bandwidth +control. +At least two declarations are required to configure queues, and later +any packet filtering rule can reference the defined queues by name. +During the filtering component of +.Nm pf.conf , +the last referenced +.Ar queue +name is where any packets from +.Ar pass +rules will be queued, while for +.Ar block +rules it specifies where any resulting ICMP or TCP RST +packets should be queued. +The +.Ar scheduler +defines the algorithm used to decide which packets get delayed, dropped, or +sent out immediately. +There are three +.Ar schedulers +currently supported. +.Bl -tag -width xxxx +.It Ar cbq +Class Based Queueing. +.Ar Queues +attached to an interface build a tree, thus each +.Ar queue +can have further child +.Ar queues . +Each queue can have a +.Ar priority +and a +.Ar bandwidth +assigned. +.Ar Priority +mainly controls the time packets take to get sent out, while +.Ar bandwidth +has primarily effects on throughput. +.Ar cbq +achieves both partitioning and sharing of link bandwidth +by hierarchically structured classes. +Each class has its own +.Ar queue +and is assigned its share of +.Ar bandwidth . +A child class can borrow bandwidth from its parent class +as long as excess bandwidth is available +(see the option +.Ar borrow , +below). +.It Ar priq +Priority Queueing. +.Ar Queues +are flat attached to the interface, thus, +.Ar queues +cannot have further child +.Ar queues . +Each +.Ar queue +has a unique +.Ar priority +assigned, ranging from 0 to 15. +Packets in the +.Ar queue +with the highest +.Ar priority +are processed first. +.It Ar hfsc +Hierarchical Fair Service Curve. +.Ar Queues +attached to an interface build a tree, thus each +.Ar queue +can have further child +.Ar queues . +Each queue can have a +.Ar priority +and a +.Ar bandwidth +assigned. +.Ar Priority +mainly controls the time packets take to get sent out, while +.Ar bandwidth +primarily affects throughput. +.Ar hfsc +supports both link-sharing and guaranteed real-time services. +It employs a service curve based QoS model, +and its unique feature is an ability to decouple +.Ar delay +and +.Ar bandwidth +allocation. +.El +.Pp +The interfaces on which queueing should be activated are declared using +the +.Ar altq on +declaration. +.Ar altq on +has the following keywords: +.Bl -tag -width xxxx +.It Aq Ar interface +Queueing is enabled on the named interface. +.It Aq Ar scheduler +Specifies which queueing scheduler to use. +Currently supported values +are +.Ar cbq +for Class Based Queueing, +.Ar priq +for Priority Queueing and +.Ar hfsc +for the Hierarchical Fair Service Curve scheduler. +.It Ar bandwidth Aq Ar bw +The maximum bitrate for all queues on an +interface may be specified using the +.Ar bandwidth +keyword. +The value can be specified as an absolute value or as a +percentage of the interface bandwidth. +When using an absolute value, the suffixes +.Ar b , +.Ar Kb , +.Ar Mb , +and +.Ar Gb +are used to represent bits, kilobits, megabits, and +gigabits per second, respectively. +The value must not exceed the interface bandwidth. +If +.Ar bandwidth +is not specified, the interface bandwidth is used +(but take note that some interfaces do not know their bandwidth, +or can adapt their bandwidth rates). +.It Ar qlimit Aq Ar limit +The maximum number of packets held in the queue. +The default is 50. +.It Ar tbrsize Aq Ar size +Adjusts the size, in bytes, of the token bucket regulator. +If not specified, heuristics based on the +interface bandwidth are used to determine the size. +.It Ar queue Aq Ar list +Defines a list of subqueues to create on an interface. +.El +.Pp +In the following example, the interface dc0 +should queue up to 5Mbps in four second-level queues using +Class Based Queueing. +Those four queues will be shown in a later example. +.Bd -literal -offset indent +altq on dc0 cbq bandwidth 5Mb queue { std, http, mail, ssh } +.Ed +.Pp +Once interfaces are activated for queueing using the +.Ar altq +directive, a sequence of +.Ar queue +directives may be defined. +The name associated with a +.Ar queue +must match a queue defined in the +.Ar altq +directive (e.g. mail), or, except for the +.Ar priq +.Ar scheduler , +in a parent +.Ar queue +declaration. +The following keywords can be used: +.Bl -tag -width xxxx +.It Ar on Aq Ar interface +Specifies the interface the queue operates on. +If not given, it operates on all matching interfaces. +.It Ar bandwidth Aq Ar bw +Specifies the maximum bitrate to be processed by the queue. +This value must not exceed the value of the parent +.Ar queue +and can be specified as an absolute value or a percentage of the parent +queue's bandwidth. +If not specified, defaults to 100% of the parent queue's bandwidth. +The +.Ar priq +scheduler does not support bandwidth specification. +.It Ar priority Aq Ar level +Between queues a priority level can be set. +For +.Ar cbq +and +.Ar hfsc , +the range is 0 to 7 and for +.Ar priq , +the range is 0 to 15. +The default for all is 1. +.Ar Priq +queues with a higher priority are always served first. +.Ar Cbq +and +.Ar Hfsc +queues with a higher priority are preferred in the case of overload. +.It Ar qlimit Aq Ar limit +The maximum number of packets held in the queue. +The default is 50. +.El +.Pp +The +.Ar scheduler +can get additional parameters with +.Xo Aq Ar scheduler +.Pf ( Aq Ar parameters ) . +.Xc +Parameters are as follows: +.Bl -tag -width Fl +.It Ar default +Packets not matched by another queue are assigned to this one. +Exactly one default queue is required. +.It Ar red +Enable RED (Random Early Detection) on this queue. +RED drops packets with a probability proportional to the average +queue length. +.It Ar rio +Enables RIO on this queue. +RIO is RED with IN/OUT, thus running +RED two times more than RIO would achieve the same effect. +RIO is currently not supported in the GENERIC kernel. +.It Ar ecn +Enables ECN (Explicit Congestion Notification) on this queue. +ECN implies RED. +.El +.Pp +The +.Ar cbq +.Ar scheduler +supports an additional option: +.Bl -tag -width Fl +.It Ar borrow +The queue can borrow bandwidth from the parent. +.El +.Pp +The +.Ar hfsc +.Ar scheduler +supports some additional options: +.Bl -tag -width Fl +.It Ar realtime Aq Ar sc +The minimum required bandwidth for the queue. +.It Ar upperlimit Aq Ar sc +The maximum allowed bandwidth for the queue. +.It Ar linkshare Aq Ar sc +The bandwidth share of a backlogged queue. +.El +.Pp +.Aq Ar sc +is an acronym for +.Ar service curve . +.Pp +The format for service curve specifications is +.Ar ( m1 , d , m2 ) . +.Ar m2 +controls the bandwidth assigned to the queue. +.Ar m1 +and +.Ar d +are optional and can be used to control the initial bandwidth assignment. +For the first +.Ar d +milliseconds the queue gets the bandwidth given as +.Ar m1 , +afterwards the value given in +.Ar m2 . +.Pp +Furthermore, with +.Ar cbq +and +.Ar hfsc , +child queues can be specified as in an +.Ar altq +declaration, thus building a tree of queues using a part of +their parent's bandwidth. +.Pp +Packets can be assigned to queues based on filter rules by using the +.Ar queue +keyword. +Normally only one +.Ar queue +is specified; when a second one is specified it will instead be used for +packets which have a +.Em TOS +of +.Em lowdelay +and for TCP ACKs with no data payload. +.Pp +To continue the previous example, the examples below would specify the +four referenced +queues, plus a few child queues. +Interactive +.Xr ssh 1 +sessions get priority over bulk transfers like +.Xr scp 1 +and +.Xr sftp 1 . +The queues may then be referenced by filtering rules (see +.Sx PACKET FILTERING +below). +.Bd -literal +queue std bandwidth 10% cbq(default) +queue http bandwidth 60% priority 2 cbq(borrow red) \e + { employees, developers } +queue developers bandwidth 75% cbq(borrow) +queue employees bandwidth 15% +queue mail bandwidth 10% priority 0 cbq(borrow ecn) +queue ssh bandwidth 20% cbq(borrow) { ssh_interactive, ssh_bulk } +queue ssh_interactive bandwidth 50% priority 7 cbq(borrow) +queue ssh_bulk bandwidth 50% priority 0 cbq(borrow) + +block return out on dc0 inet all queue std +pass out on dc0 inet proto tcp from $developerhosts to any port 80 \e + queue developers +pass out on dc0 inet proto tcp from $employeehosts to any port 80 \e + queue employees +pass out on dc0 inet proto tcp from any to any port 22 \e + queue(ssh_bulk, ssh_interactive) +pass out on dc0 inet proto tcp from any to any port 25 \e + queue mail +.Ed +.Sh TRANSLATION +Translation rules modify either the source or destination address of the +packets associated with a stateful connection. +A stateful connection is automatically created to track packets matching +such a rule as long as they are not blocked by the filtering section of +.Nm pf.conf . +The translation engine modifies the specified address and/or port in the +packet, recalculates IP, TCP and UDP checksums as necessary, and passes it to +the packet filter for evaluation. +.Pp +Since translation occurs before filtering the filter +engine will see packets as they look after any +addresses and ports have been translated. +Filter rules will therefore have to filter based on the translated +address and port number. +Packets that match a translation rule are only automatically passed if +the +.Ar pass +modifier is given, otherwise they are +still subject to +.Ar block +and +.Ar pass +rules. +.Pp +The state entry created permits +.Xr pf 4 +to keep track of the original address for traffic associated with that state +and correctly direct return traffic for that connection. +.Pp +Various types of translation are possible with pf: +.Bl -tag -width xxxx +.It Ar binat +A +.Ar binat +rule specifies a bidirectional mapping between an external IP netblock +and an internal IP netblock. +.It Ar nat +A +.Ar nat +rule specifies that IP addresses are to be changed as the packet +traverses the given interface. +This technique allows one or more IP addresses +on the translating host to support network traffic for a larger range of +machines on an "inside" network. +Although in theory any IP address can be used on the inside, it is strongly +recommended that one of the address ranges defined by RFC 1918 be used. +These netblocks are: +.Bd -literal +10.0.0.0 - 10.255.255.255 (all of net 10, i.e., 10/8) +172.16.0.0 - 172.31.255.255 (i.e., 172.16/12) +192.168.0.0 - 192.168.255.255 (i.e., 192.168/16) +.Ed +.It Pa rdr +The packet is redirected to another destination and possibly a +different port. +.Ar rdr +rules can optionally specify port ranges instead of single ports. +rdr ... port 2000:2999 -\*(Gt ... port 4000 +redirects ports 2000 to 2999 (inclusive) to port 4000. +rdr ... port 2000:2999 -\*(Gt ... port 4000:* +redirects port 2000 to 4000, 2001 to 4001, ..., 2999 to 4999. +.El +.Pp +In addition to modifying the address, some translation rules may modify +source or destination ports for +.Xr tcp 4 +or +.Xr udp 4 +connections; implicitly in the case of +.Ar nat +rules and explicitly in the case of +.Ar rdr +rules. +Port numbers are never translated with a +.Ar binat +rule. +.Pp +Evaluation order of the translation rules is dependent on the type +of the translation rules and of the direction of a packet. +.Ar binat +rules are always evaluated first. +Then either the +.Ar rdr +rules are evaluated on an inbound packet or the +.Ar nat +rules on an outbound packet. +Rules of the same type are evaluated in the same order in which they +appear in the ruleset. +The first matching rule decides what action is taken. +.Pp +The +.Ar no +option prefixed to a translation rule causes packets to remain untranslated, +much in the same way as +.Ar drop quick +works in the packet filter (see below). +If no rule matches the packet it is passed to the filter engine unmodified. +.Pp +Translation rules apply only to packets that pass through +the specified interface, and if no interface is specified, +translation is applied to packets on all interfaces. +For instance, redirecting port 80 on an external interface to an internal +web server will only work for connections originating from the outside. +Connections to the address of the external interface from local hosts will +not be redirected, since such packets do not actually pass through the +external interface. +Redirections cannot reflect packets back through the interface they arrive +on, they can only be redirected to hosts connected to different interfaces +or to the firewall itself. +.Pp +Note that redirecting external incoming connections to the loopback +address, as in +.Bd -literal -offset indent +rdr on ne3 inet proto tcp to port smtp -\*(Gt 127.0.0.1 port spamd +.Ed +.Pp +will effectively allow an external host to connect to daemons +bound solely to the loopback address, circumventing the traditional +blocking of such connections on a real interface. +Unless this effect is desired, any of the local non-loopback addresses +should be used as redirection target instead, which allows external +connections only to daemons bound to this address or not bound to +any address. +.Pp +See +.Sx TRANSLATION EXAMPLES +below. +.Sh PACKET FILTERING +.Xr pf 4 +has the ability to +.Ar block +and +.Ar pass +packets based on attributes of their layer 3 (see +.Xr ip 4 +and +.Xr ip6 4 ) +and layer 4 (see +.Xr icmp 4 , +.Xr icmp6 4 , +.Xr tcp 4 , +.Xr udp 4 ) +headers. +In addition, packets may also be +assigned to queues for the purpose of bandwidth control. +.Pp +For each packet processed by the packet filter, the filter rules are +evaluated in sequential order, from first to last. +The last matching rule decides what action is taken. +If no rule matches the packet, the default action is to pass +the packet. +.Pp +The following actions can be used in the filter: +.Bl -tag -width xxxx +.It Ar block +The packet is blocked. +There are a number of ways in which a +.Ar block +rule can behave when blocking a packet. +The default behaviour is to +.Ar drop +packets silently, however this can be overridden or made +explicit either globally, by setting the +.Ar block-policy +option, or on a per-rule basis with one of the following options: +.Pp +.Bl -tag -width xxxx -compact +.It Ar drop +The packet is silently dropped. +.It Ar return-rst +This applies only to +.Xr tcp 4 +packets, and issues a TCP RST which closes the +connection. +.It Ar return-icmp +.It Ar return-icmp6 +This causes ICMP messages to be returned for packets which match the rule. +By default this is an ICMP UNREACHABLE message, however this +can be overridden by specifying a message as a code or number. +.It Ar return +This causes a TCP RST to be returned for +.Xr tcp 4 +packets and an ICMP UNREACHABLE for UDP and other packets. +.El +.Pp +Options returning ICMP packets currently have no effect if +.Xr pf 4 +operates on a +.Xr if_bridge 4 , +as the code to support this feature has not yet been implemented. +.Pp +The simplest mechanism to block everything by default and only pass +packets that match explicit rules is specify a first filter rule of: +.Bd -literal -offset indent +block all +.Ed +.It Ar pass +The packet is passed; +state is created unless the +.Ar no state +option is specified. +.El +.Pp +By default +.Xr pf 4 +filters packets statefully; the first time a packet matches a +.Ar pass +rule, a state entry is created; for subsequent packets the filter checks +whether the packet matches any state. +If it does, the packet is passed without evaluation of any rules. +After the connection is closed or times out, the state entry is automatically +removed. +.Pp +This has several advantages. +For TCP connections, comparing a packet to a state involves checking +its sequence numbers, as well as TCP timestamps if a +.Ar scrub reassemble tcp +rule applies to the connection. +If these values are outside the narrow windows of expected +values, the packet is dropped. +This prevents spoofing attacks, such as when an attacker sends packets with +a fake source address/port but does not know the connection's sequence +numbers. +Similarly, +.Xr pf 4 +knows how to match ICMP replies to states. +For example, +.Bd -literal -offset indent +pass out inet proto icmp all icmp-type echoreq +.Ed +.Pp +allows echo requests (such as those created by +.Xr ping 8 ) +out statefully, and matches incoming echo replies correctly to states. +.Pp +Also, looking up states is usually faster than evaluating rules. +If there are 50 rules, all of them are evaluated sequentially in O(n). +Even with 50000 states, only 16 comparisons are needed to match a +state, since states are stored in a binary search tree that allows +searches in O(log2 n). +.Pp +Furthermore, correct handling of ICMP error messages is critical to +many protocols, particularly TCP. +.Xr pf 4 +matches ICMP error messages to the correct connection, checks them against +connection parameters, and passes them if appropriate. +For example if an ICMP source quench message referring to a stateful TCP +connection arrives, it will be matched to the state and get passed. +.Pp +Finally, state tracking is required for +.Ar nat , binat No and Ar rdr +rules, in order to track address and port translations and reverse the +translation on returning packets. +.Pp +.Xr pf 4 +will also create state for other protocols which are effectively stateless by +nature. +UDP packets are matched to states using only host addresses and ports, +and other protocols are matched to states using only the host addresses. +.Pp +If stateless filtering of individual packets is desired, +the +.Ar no state +keyword can be used to specify that state will not be created +if this is the last matching rule. +A number of parameters can also be set to affect how +.Xr pf 4 +handles state tracking. +See +.Sx STATEFUL TRACKING OPTIONS +below for further details. +.Sh PARAMETERS +The rule parameters specify the packets to which a rule applies. +A packet always comes in on, or goes out through, one interface. +Most parameters are optional. +If a parameter is specified, the rule only applies to packets with +matching attributes. +Certain parameters can be expressed as lists, in which case +.Xr pfctl 8 +generates all needed rule combinations. +.Bl -tag -width xxxx +.It Ar in No or Ar out +This rule applies to incoming or outgoing packets. +If neither +.Ar in +nor +.Ar out +are specified, the rule will match packets in both directions. +.It Ar log +In addition to the action specified, a log message is generated. +Only the packet that establishes the state is logged, +unless the +.Ar no state +option is specified. +The logged packets are sent to a +.Xr pflog 4 +interface, by default +.Ar pflog0 . +This interface is monitored by the +.Xr pflogd 8 +logging daemon, which dumps the logged packets to the file +.Pa /var/log/pflog +in +.Xr pcap 3 +binary format. +.It Ar log (all) +Used to force logging of all packets for a connection. +This is not necessary when +.Ar no state +is explicitly specified. +As with +.Ar log , +packets are logged to +.Xr pflog 4 . +.It Ar log (user) +Logs the +.Ux +user ID of the user that owns the socket and the PID of the process that +has the socket open where the packet is sourced from or destined to +(depending on which socket is local). +This is in addition to the normal information logged. +.Pp +Only the first packet +logged via +.Ar log (all, user) +will have the user credentials logged when using stateful matching. +.It Ar log (to Aq Ar interface ) +Send logs to the specified +.Xr pflog 4 +interface instead of +.Ar pflog0 . +.It Ar quick +If a packet matches a rule which has the +.Ar quick +option set, this rule +is considered the last matching rule, and evaluation of subsequent rules +is skipped. +.It Ar on Aq Ar interface +This rule applies only to packets coming in on, or going out through, this +particular interface or interface group. +For more information on interface groups, +see the +.Ic group +keyword in +.Xr ifconfig 8 . +.It Aq Ar af +This rule applies only to packets of this address family. +Supported values are +.Ar inet +and +.Ar inet6 . +.It Ar proto Aq Ar protocol +This rule applies only to packets of this protocol. +Common protocols are +.Xr icmp 4 , +.Xr icmp6 4 , +.Xr tcp 4 , +and +.Xr udp 4 . +For a list of all the protocol name to number mappings used by +.Xr pfctl 8 , +see the file +.Em /etc/protocols . +.It Xo +.Ar from Aq Ar source +.Ar port Aq Ar source +.Ar os Aq Ar source +.Ar to Aq Ar dest +.Ar port Aq Ar dest +.Xc +This rule applies only to packets with the specified source and destination +addresses and ports. +.Pp +Addresses can be specified in CIDR notation (matching netblocks), as +symbolic host names, interface names or interface group names, or as any +of the following keywords: +.Pp +.Bl -tag -width xxxxxxxxxxxxxx -compact +.It Ar any +Any address. +.It Ar no-route +Any address which is not currently routable. +.It Ar urpf-failed +Any source address that fails a unicast reverse path forwarding (URPF) +check, i.e. packets coming in on an interface other than that which holds +the route back to the packet's source address. +.It Aq Ar table +Any address that matches the given table. +.El +.Pp +Ranges of addresses are specified by using the +.Sq - +operator. +For instance: +.Dq 10.1.1.10 - 10.1.1.12 +means all addresses from 10.1.1.10 to 10.1.1.12, +hence addresses 10.1.1.10, 10.1.1.11, and 10.1.1.12. +.Pp +Interface names and interface group names can have modifiers appended: +.Pp +.Bl -tag -width xxxxxxxxxxxx -compact +.It Ar :network +Translates to the network(s) attached to the interface. +.It Ar :broadcast +Translates to the interface's broadcast address(es). +.It Ar :peer +Translates to the point-to-point interface's peer address(es). +.It Ar :0 +Do not include interface aliases. +.El +.Pp +Host names may also have the +.Ar :0 +option appended to restrict the name resolution to the first of each +v4 and v6 address found. +.Pp +Host name resolution and interface to address translation are done at +ruleset load-time. +When the address of an interface (or host name) changes (under DHCP or PPP, +for instance), the ruleset must be reloaded for the change to be reflected +in the kernel. +Surrounding the interface name (and optional modifiers) in parentheses +changes this behaviour. +When the interface name is surrounded by parentheses, the rule is +automatically updated whenever the interface changes its address. +The ruleset does not need to be reloaded. +This is especially useful with +.Ar nat . +.Pp +Ports can be specified either by number or by name. +For example, port 80 can be specified as +.Em www . +For a list of all port name to number mappings used by +.Xr pfctl 8 , +see the file +.Pa /etc/services . +.Pp +Ports and ranges of ports are specified by using these operators: +.Bd -literal -offset indent += (equal) +!= (unequal) +\*(Lt (less than) +\*(Le (less than or equal) +\*(Gt (greater than) +\*(Ge (greater than or equal) +: (range including boundaries) +\*(Gt\*(Lt (range excluding boundaries) +\*(Lt\*(Gt (except range) +.Ed +.Pp +.Sq \*(Gt\*(Lt , +.Sq \*(Lt\*(Gt +and +.Sq \&: +are binary operators (they take two arguments). +For instance: +.Bl -tag -width Fl +.It Ar port 2000:2004 +means +.Sq all ports \*(Ge 2000 and \*(Le 2004 , +hence ports 2000, 2001, 2002, 2003 and 2004. +.It Ar port 2000 \*(Gt\*(Lt 2004 +means +.Sq all ports \*(Gt 2000 and \*(Lt 2004 , +hence ports 2001, 2002 and 2003. +.It Ar port 2000 \*(Lt\*(Gt 2004 +means +.Sq all ports \*(Lt 2000 or \*(Gt 2004 , +hence ports 1-1999 and 2005-65535. +.El +.Pp +The operating system of the source host can be specified in the case of TCP +rules with the +.Ar OS +modifier. +See the +.Sx OPERATING SYSTEM FINGERPRINTING +section for more information. +.Pp +The host, port and OS specifications are optional, as in the following examples: +.Bd -literal -offset indent +pass in all +pass in from any to any +pass in proto tcp from any port \*(Le 1024 to any +pass in proto tcp from any to any port 25 +pass in proto tcp from 10.0.0.0/8 port \*(Gt 1024 \e + to ! 10.1.2.3 port != ssh +pass in proto tcp from any os "OpenBSD" +.Ed +.It Ar all +This is equivalent to "from any to any". +.It Ar group Aq Ar group +Similar to +.Ar user , +this rule only applies to packets of sockets owned by the specified group. +.It Ar user Aq Ar user +This rule only applies to packets of sockets owned by the specified user. +For outgoing connections initiated from the firewall, this is the user +that opened the connection. +For incoming connections to the firewall itself, this is the user that +listens on the destination port. +For forwarded connections, where the firewall is not a connection endpoint, +the user and group are +.Em unknown . +.Pp +All packets, both outgoing and incoming, of one connection are associated +with the same user and group. +Only TCP and UDP packets can be associated with users; for other protocols +these parameters are ignored. +.Pp +User and group refer to the effective (as opposed to the real) IDs, in +case the socket is created by a setuid/setgid process. +User and group IDs are stored when a socket is created; +when a process creates a listening socket as root (for instance, by +binding to a privileged port) and subsequently changes to another +user ID (to drop privileges), the credentials will remain root. +.Pp +User and group IDs can be specified as either numbers or names. +The syntax is similar to the one for ports. +The value +.Em unknown +matches packets of forwarded connections. +.Em unknown +can only be used with the operators +.Cm = +and +.Cm != . +Other constructs like +.Cm user \*(Ge unknown +are invalid. +Forwarded packets with unknown user and group ID match only rules +that explicitly compare against +.Em unknown +with the operators +.Cm = +or +.Cm != . +For instance +.Cm user \*(Ge 0 +does not match forwarded packets. +The following example allows only selected users to open outgoing +connections: +.Bd -literal -offset indent +block out proto { tcp, udp } all +pass out proto { tcp, udp } all user { \*(Lt 1000, dhartmei } +.Ed +.It Xo Ar flags Aq Ar a +.Pf / Ns Aq Ar b +.No \*(Ba / Ns Aq Ar b +.No \*(Ba any +.Xc +This rule only applies to TCP packets that have the flags +.Aq Ar a +set out of set +.Aq Ar b . +Flags not specified in +.Aq Ar b +are ignored. +For stateful connections, the default is +.Ar flags S/SA . +To indicate that flags should not be checked at all, specify +.Ar flags any . +The flags are: (F)IN, (S)YN, (R)ST, (P)USH, (A)CK, (U)RG, (E)CE, and C(W)R. +.Bl -tag -width Fl +.It Ar flags S/S +Flag SYN is set. +The other flags are ignored. +.It Ar flags S/SA +This is the default setting for stateful connections. +Out of SYN and ACK, exactly SYN may be set. +SYN, SYN+PSH and SYN+RST match, but SYN+ACK, ACK and ACK+RST do not. +This is more restrictive than the previous example. +.It Ar flags /SFRA +If the first set is not specified, it defaults to none. +All of SYN, FIN, RST and ACK must be unset. +.El +.Pp +Because +.Ar flags S/SA +is applied by default (unless +.Ar no state +is specified), only the initial SYN packet of a TCP handshake will create +a state for a TCP connection. +It is possible to be less restrictive, and allow state creation from +intermediate +.Pq non-SYN +packets, by specifying +.Ar flags any . +This will cause +.Xr pf 4 +to synchronize to existing connections, for instance +if one flushes the state table. +However, states created from such intermediate packets may be missing +connection details such as the TCP window scaling factor. +States which modify the packet flow, such as those affected by +.Ar nat , binat No or Ar rdr +rules, +.Ar modulate No or Ar synproxy state +options, or scrubbed with +.Ar reassemble tcp +will also not be recoverable from intermediate packets. +Such connections will stall and time out. +.It Xo Ar icmp-type Aq Ar type +.Ar code Aq Ar code +.Xc +.It Xo Ar icmp6-type Aq Ar type +.Ar code Aq Ar code +.Xc +This rule only applies to ICMP or ICMPv6 packets with the specified type +and code. +Text names for ICMP types and codes are listed in +.Xr icmp 4 +and +.Xr icmp6 4 . +This parameter is only valid for rules that cover protocols ICMP or +ICMP6. +The protocol and the ICMP type indicator +.Po +.Ar icmp-type +or +.Ar icmp6-type +.Pc +must match. +.It Xo Ar tos Aq Ar string +.No \*(Ba Aq Ar number +.Xc +This rule applies to packets with the specified +.Em TOS +bits set. +.Em TOS +may be +given as one of +.Ar lowdelay , +.Ar throughput , +.Ar reliability , +or as either hex or decimal. +.Pp +For example, the following rules are identical: +.Bd -literal -offset indent +pass all tos lowdelay +pass all tos 0x10 +pass all tos 16 +.Ed +.It Ar allow-opts +By default, IPv4 packets with IP options or IPv6 packets with routing +extension headers are blocked. +When +.Ar allow-opts +is specified for a +.Ar pass +rule, packets that pass the filter based on that rule (last matching) +do so even if they contain IP options or routing extension headers. +For packets that match state, the rule that initially created the +state is used. +The implicit +.Ar pass +rule that is used when a packet does not match any rules does not +allow IP options. +.It Ar label Aq Ar string +Adds a label (name) to the rule, which can be used to identify the rule. +For instance, +pfctl -s labels +shows per-rule statistics for rules that have labels. +.Pp +The following macros can be used in labels: +.Pp +.Bl -tag -width $srcaddr -compact -offset indent +.It Ar $if +The interface. +.It Ar $srcaddr +The source IP address. +.It Ar $dstaddr +The destination IP address. +.It Ar $srcport +The source port specification. +.It Ar $dstport +The destination port specification. +.It Ar $proto +The protocol name. +.It Ar $nr +The rule number. +.El +.Pp +For example: +.Bd -literal -offset indent +ips = \&"{ 1.2.3.4, 1.2.3.5 }\&" +pass in proto tcp from any to $ips \e + port \*(Gt 1023 label \&"$dstaddr:$dstport\&" +.Ed +.Pp +expands to +.Bd -literal -offset indent +pass in inet proto tcp from any to 1.2.3.4 \e + port \*(Gt 1023 label \&"1.2.3.4:\*(Gt1023\&" +pass in inet proto tcp from any to 1.2.3.5 \e + port \*(Gt 1023 label \&"1.2.3.5:\*(Gt1023\&" +.Ed +.Pp +The macro expansion for the +.Ar label +directive occurs only at configuration file parse time, not during runtime. +.It Xo Ar queue Aq Ar queue +.No \*(Ba ( Aq Ar queue , +.Aq Ar queue ) +.Xc +Packets matching this rule will be assigned to the specified queue. +If two queues are given, packets which have a +.Em TOS +of +.Em lowdelay +and TCP ACKs with no data payload will be assigned to the second one. +See +.Sx QUEUEING +for setup details. +.Pp +For example: +.Bd -literal -offset indent +pass in proto tcp to port 25 queue mail +pass in proto tcp to port 22 queue(ssh_bulk, ssh_prio) +.Ed +.It Ar tag Aq Ar string +Packets matching this rule will be tagged with the +specified string. +The tag acts as an internal marker that can be used to +identify these packets later on. +This can be used, for example, to provide trust between +interfaces and to determine if packets have been +processed by translation rules. +Tags are +.Qq sticky , +meaning that the packet will be tagged even if the rule +is not the last matching rule. +Further matching rules can replace the tag with a +new one but will not remove a previously applied tag. +A packet is only ever assigned one tag at a time. +Packet tagging can be done during +.Ar nat , +.Ar rdr , +or +.Ar binat +rules in addition to filter rules. +Tags take the same macros as labels (see above). +.It Ar tagged Aq Ar string +Used with filter, translation or scrub rules +to specify that packets must already +be tagged with the given tag in order to match the rule. +Inverse tag matching can also be done +by specifying the +.Cm !\& +operator before the +.Ar tagged +keyword. +.It Ar rtable Aq Ar number +Used to select an alternate routing table for the routing lookup. +Only effective before the route lookup happened, i.e. when filtering inbound. +.It Xo Ar divert-to Aq Ar host +.Ar port Aq Ar port +.Xc +Used to redirect packets to a local socket bound to +.Ar host +and +.Ar port . +The packets will not be modified, so +.Xr getsockname 2 +on the socket will return the original destination address of the packet. +.It Ar divert-reply +Used to receive replies for sockets that are bound to addresses +which are not local to the machine. +See +.Xr setsockopt 2 +for information on how to bind these sockets. +.It Ar probability Aq Ar number +A probability attribute can be attached to a rule, with a value set between +0 and 1, bounds not included. +In that case, the rule will be honoured using the given probability value +only. +For example, the following rule will drop 20% of incoming ICMP packets: +.Bd -literal -offset indent +block in proto icmp probability 20% +.Ed +.El +.Sh ROUTING +If a packet matches a rule with a route option set, the packet filter will +route the packet according to the type of route option. +When such a rule creates state, the route option is also applied to all +packets matching the same connection. +.Bl -tag -width xxxx +.It Ar fastroute +The +.Ar fastroute +option does a normal route lookup to find the next hop for the packet. +.It Ar route-to +The +.Ar route-to +option routes the packet to the specified interface with an optional address +for the next hop. +When a +.Ar route-to +rule creates state, only packets that pass in the same direction as the +filter rule specifies will be routed in this way. +Packets passing in the opposite direction (replies) are not affected +and are routed normally. +.It Ar reply-to +The +.Ar reply-to +option is similar to +.Ar route-to , +but routes packets that pass in the opposite direction (replies) to the +specified interface. +Opposite direction is only defined in the context of a state entry, and +.Ar reply-to +is useful only in rules that create state. +It can be used on systems with multiple external connections to +route all outgoing packets of a connection through the interface +the incoming connection arrived through (symmetric routing enforcement). +.It Ar dup-to +The +.Ar dup-to +option creates a duplicate of the packet and routes it like +.Ar route-to . +The original packet gets routed as it normally would. +.El +.Sh POOL OPTIONS +For +.Ar nat +and +.Ar rdr +rules, (as well as for the +.Ar route-to , +.Ar reply-to +and +.Ar dup-to +rule options) for which there is a single redirection address which has a +subnet mask smaller than 32 for IPv4 or 128 for IPv6 (more than one IP +address), a variety of different methods for assigning this address can be +used: +.Bl -tag -width xxxx +.It Ar bitmask +The +.Ar bitmask +option applies the network portion of the redirection address to the address +to be modified (source with +.Ar nat , +destination with +.Ar rdr ) . +.It Ar random +The +.Ar random +option selects an address at random within the defined block of addresses. +.It Ar source-hash +The +.Ar source-hash +option uses a hash of the source address to determine the redirection address, +ensuring that the redirection address is always the same for a given source. +An optional key can be specified after this keyword either in hex or as a +string; by default +.Xr pfctl 8 +randomly generates a key for source-hash every time the +ruleset is reloaded. +.It Ar round-robin +The +.Ar round-robin +option loops through the redirection address(es). +.Pp +When more than one redirection address is specified, +.Ar round-robin +is the only permitted pool type. +.It Ar static-port +With +.Ar nat +rules, the +.Ar static-port +option prevents +.Xr pf 4 +from modifying the source port on TCP and UDP packets. +.El +.Pp +Additionally, the +.Ar sticky-address +option can be specified to help ensure that multiple connections from the +same source are mapped to the same redirection address. +This option can be used with the +.Ar random +and +.Ar round-robin +pool options. +Note that by default these associations are destroyed as soon as there are +no longer states which refer to them; in order to make the mappings last +beyond the lifetime of the states, increase the global options with +.Ar set timeout src.track . +See +.Sx STATEFUL TRACKING OPTIONS +for more ways to control the source tracking. +.Sh STATE MODULATION +Much of the security derived from TCP is attributable to how well the +initial sequence numbers (ISNs) are chosen. +Some popular stack implementations choose +.Em very +poor ISNs and thus are normally susceptible to ISN prediction exploits. +By applying a +.Ar modulate state +rule to a TCP connection, +.Xr pf 4 +will create a high quality random sequence number for each connection +endpoint. +.Pp +The +.Ar modulate state +directive implicitly keeps state on the rule and is +only applicable to TCP connections. +.Pp +For instance: +.Bd -literal -offset indent +block all +pass out proto tcp from any to any modulate state +pass in proto tcp from any to any port 25 flags S/SFRA modulate state +.Ed +.Pp +Note that modulated connections will not recover when the state table +is lost (firewall reboot, flushing the state table, etc...). +.Xr pf 4 +will not be able to infer a connection again after the state table flushes +the connection's modulator. +When the state is lost, the connection may be left dangling until the +respective endpoints time out the connection. +It is possible on a fast local network for the endpoints to start an ACK +storm while trying to resynchronize after the loss of the modulator. +The default +.Ar flags +settings (or a more strict equivalent) should be used on +.Ar modulate state +rules to prevent ACK storms. +.Pp +Note that alternative methods are available +to prevent loss of the state table +and allow for firewall failover. +See +.Xr carp 4 +and +.Xr pfsync 4 +for further information. +.Sh SYN PROXY +By default, +.Xr pf 4 +passes packets that are part of a +.Xr tcp 4 +handshake between the endpoints. +The +.Ar synproxy state +option can be used to cause +.Xr pf 4 +itself to complete the handshake with the active endpoint, perform a handshake +with the passive endpoint, and then forward packets between the endpoints. +.Pp +No packets are sent to the passive endpoint before the active endpoint has +completed the handshake, hence so-called SYN floods with spoofed source +addresses will not reach the passive endpoint, as the sender can't complete the +handshake. +.Pp +The proxy is transparent to both endpoints, they each see a single +connection from/to the other endpoint. +.Xr pf 4 +chooses random initial sequence numbers for both handshakes. +Once the handshakes are completed, the sequence number modulators +(see previous section) are used to translate further packets of the +connection. +.Ar synproxy state +includes +.Ar modulate state . +.Pp +Rules with +.Ar synproxy +will not work if +.Xr pf 4 +operates on a +.Xr bridge 4 . +.Pp +Example: +.Bd -literal -offset indent +pass in proto tcp from any to any port www synproxy state +.Ed +.Sh STATEFUL TRACKING OPTIONS +A number of options related to stateful tracking can be applied on a +per-rule basis. +.Ar keep state , +.Ar modulate state +and +.Ar synproxy state +support these options, and +.Ar keep state +must be specified explicitly to apply options to a rule. +.Pp +.Bl -tag -width xxxx -compact +.It Ar max Aq Ar number +Limits the number of concurrent states the rule may create. +When this limit is reached, further packets that would create +state will not match this rule until existing states time out. +.It Ar no-sync +Prevent state changes for states created by this rule from appearing on the +.Xr pfsync 4 +interface. +.It Xo Aq Ar timeout +.Aq Ar seconds +.Xc +Changes the timeout values used for states created by this rule. +For a list of all valid timeout names, see +.Sx OPTIONS +above. +.It Ar sloppy +Uses a sloppy TCP connection tracker that does not check sequence +numbers at all, which makes insertion and ICMP teardown attacks way +easier. +This is intended to be used in situations where one does not see all +packets of a connection, e.g. in asymmetric routing situations. +Cannot be used with modulate or synproxy state. +.It Ar pflow +States created by this rule are exported on the +.Xr pflow 4 +interface. +.El +.Pp +Multiple options can be specified, separated by commas: +.Bd -literal -offset indent +pass in proto tcp from any to any \e + port www keep state \e + (max 100, source-track rule, max-src-nodes 75, \e + max-src-states 3, tcp.established 60, tcp.closing 5) +.Ed +.Pp +When the +.Ar source-track +keyword is specified, the number of states per source IP is tracked. +.Pp +.Bl -tag -width xxxx -compact +.It Ar source-track rule +The maximum number of states created by this rule is limited by the rule's +.Ar max-src-nodes +and +.Ar max-src-states +options. +Only state entries created by this particular rule count toward the rule's +limits. +.It Ar source-track global +The number of states created by all rules that use this option is limited. +Each rule can specify different +.Ar max-src-nodes +and +.Ar max-src-states +options, however state entries created by any participating rule count towards +each individual rule's limits. +.El +.Pp +The following limits can be set: +.Pp +.Bl -tag -width xxxx -compact +.It Ar max-src-nodes Aq Ar number +Limits the maximum number of source addresses which can simultaneously +have state table entries. +.It Ar max-src-states Aq Ar number +Limits the maximum number of simultaneous state entries that a single +source address can create with this rule. +.El +.Pp +For stateful TCP connections, limits on established connections (connections +which have completed the TCP 3-way handshake) can also be enforced +per source IP. +.Pp +.Bl -tag -width xxxx -compact +.It Ar max-src-conn Aq Ar number +Limits the maximum number of simultaneous TCP connections which have +completed the 3-way handshake that a single host can make. +.It Xo Ar max-src-conn-rate Aq Ar number +.No / Aq Ar seconds +.Xc +Limit the rate of new connections over a time interval. +The connection rate is an approximation calculated as a moving average. +.El +.Pp +Because the 3-way handshake ensures that the source address is not being +spoofed, more aggressive action can be taken based on these limits. +With the +.Ar overload Aq Ar table +state option, source IP addresses which hit either of the limits on +established connections will be added to the named table. +This table can be used in the ruleset to block further activity from +the offending host, redirect it to a tarpit process, or restrict its +bandwidth. +.Pp +The optional +.Ar flush +keyword kills all states created by the matching rule which originate +from the host which exceeds these limits. +The +.Ar global +modifier to the flush command kills all states originating from the +offending host, regardless of which rule created the state. +.Pp +For example, the following rules will protect the webserver against +hosts making more than 100 connections in 10 seconds. +Any host which connects faster than this rate will have its address added +to the +.Aq bad_hosts +table and have all states originating from it flushed. +Any new packets arriving from this host will be dropped unconditionally +by the block rule. +.Bd -literal -offset indent +block quick from \*(Ltbad_hosts\*(Gt +pass in on $ext_if proto tcp to $webserver port www keep state \e + (max-src-conn-rate 100/10, overload \*(Ltbad_hosts\*(Gt flush global) +.Ed +.Sh OPERATING SYSTEM FINGERPRINTING +Passive OS Fingerprinting is a mechanism to inspect nuances of a TCP +connection's initial SYN packet and guess at the host's operating system. +Unfortunately these nuances are easily spoofed by an attacker so the +fingerprint is not useful in making security decisions. +But the fingerprint is typically accurate enough to make policy decisions +upon. +.Pp +The fingerprints may be specified by operating system class, by +version, or by subtype/patchlevel. +The class of an operating system is typically the vendor or genre +and would be +.Ox +for the +.Xr pf 4 +firewall itself. +The version of the oldest available +.Ox +release on the main FTP site +would be 2.6 and the fingerprint would be written +.Pp +.Dl \&"OpenBSD 2.6\&" +.Pp +The subtype of an operating system is typically used to describe the +patchlevel if that patch led to changes in the TCP stack behavior. +In the case of +.Ox , +the only subtype is for a fingerprint that was +normalized by the +.Ar no-df +scrub option and would be specified as +.Pp +.Dl \&"OpenBSD 3.3 no-df\&" +.Pp +Fingerprints for most popular operating systems are provided by +.Xr pf.os 5 . +Once +.Xr pf 4 +is running, a complete list of known operating system fingerprints may +be listed by running: +.Pp +.Dl # pfctl -so +.Pp +Filter rules can enforce policy at any level of operating system specification +assuming a fingerprint is present. +Policy could limit traffic to approved operating systems or even ban traffic +from hosts that aren't at the latest service pack. +.Pp +The +.Ar unknown +class can also be used as the fingerprint which will match packets for +which no operating system fingerprint is known. +.Pp +Examples: +.Bd -literal -offset indent +pass out proto tcp from any os OpenBSD +block out proto tcp from any os Doors +block out proto tcp from any os "Doors PT" +block out proto tcp from any os "Doors PT SP3" +block out from any os "unknown" +pass on lo0 proto tcp from any os "OpenBSD 3.3 lo0" +.Ed +.Pp +Operating system fingerprinting is limited only to the TCP SYN packet. +This means that it will not work on other protocols and will not match +a currently established connection. +.Pp +Caveat: operating system fingerprints are occasionally wrong. +There are three problems: an attacker can trivially craft his packets to +appear as any operating system he chooses; +an operating system patch could change the stack behavior and no fingerprints +will match it until the database is updated; +and multiple operating systems may have the same fingerprint. +.Sh BLOCKING SPOOFED TRAFFIC +"Spoofing" is the faking of IP addresses, typically for malicious +purposes. +The +.Ar antispoof +directive expands to a set of filter rules which will block all +traffic with a source IP from the network(s) directly connected +to the specified interface(s) from entering the system through +any other interface. +.Pp +For example, the line +.Bd -literal -offset indent +antispoof for lo0 +.Ed +.Pp +expands to +.Bd -literal -offset indent +block drop in on ! lo0 inet from 127.0.0.1/8 to any +block drop in on ! lo0 inet6 from ::1 to any +.Ed +.Pp +For non-loopback interfaces, there are additional rules to block incoming +packets with a source IP address identical to the interface's IP(s). +For example, assuming the interface wi0 had an IP address of 10.0.0.1 and a +netmask of 255.255.255.0, +the line +.Bd -literal -offset indent +antispoof for wi0 inet +.Ed +.Pp +expands to +.Bd -literal -offset indent +block drop in on ! wi0 inet from 10.0.0.0/24 to any +block drop in inet from 10.0.0.1 to any +.Ed +.Pp +Caveat: Rules created by the +.Ar antispoof +directive interfere with packets sent over loopback interfaces +to local addresses. +One should pass these explicitly. +.Sh FRAGMENT HANDLING +The size of IP datagrams (packets) can be significantly larger than the +maximum transmission unit (MTU) of the network. +In cases when it is necessary or more efficient to send such large packets, +the large packet will be fragmented into many smaller packets that will each +fit onto the wire. +Unfortunately for a firewalling device, only the first logical fragment will +contain the necessary header information for the subprotocol that allows +.Xr pf 4 +to filter on things such as TCP ports or to perform NAT. +.Pp +Besides the use of +.Ar scrub +rules as described in +.Sx TRAFFIC NORMALIZATION +above, there are three options for handling fragments in the packet filter. +.Pp +One alternative is to filter individual fragments with filter rules. +If no +.Ar scrub +rule applies to a fragment, it is passed to the filter. +Filter rules with matching IP header parameters decide whether the +fragment is passed or blocked, in the same way as complete packets +are filtered. +Without reassembly, fragments can only be filtered based on IP header +fields (source/destination address, protocol), since subprotocol header +fields are not available (TCP/UDP port numbers, ICMP code/type). +The +.Ar fragment +option can be used to restrict filter rules to apply only to +fragments, but not complete packets. +Filter rules without the +.Ar fragment +option still apply to fragments, if they only specify IP header fields. +For instance, the rule +.Bd -literal -offset indent +pass in proto tcp from any to any port 80 +.Ed +.Pp +never applies to a fragment, even if the fragment is part of a TCP +packet with destination port 80, because without reassembly this information +is not available for each fragment. +This also means that fragments cannot create new or match existing +state table entries, which makes stateful filtering and address +translation (NAT, redirection) for fragments impossible. +.Pp +It's also possible to reassemble only certain fragments by specifying +source or destination addresses or protocols as parameters in +.Ar scrub +rules. +.Pp +In most cases, the benefits of reassembly outweigh the additional +memory cost, and it's recommended to use +.Ar scrub +rules to reassemble +all fragments via the +.Ar fragment reassemble +modifier. +.Pp +The memory allocated for fragment caching can be limited using +.Xr pfctl 8 . +Once this limit is reached, fragments that would have to be cached +are dropped until other entries time out. +The timeout value can also be adjusted. +.Pp +Currently, only IPv4 fragments are supported and IPv6 fragments +are blocked unconditionally. +.Sh ANCHORS +Besides the main ruleset, +.Xr pfctl 8 +can load rulesets into +.Ar anchor +attachment points. +An +.Ar anchor +is a container that can hold rules, address tables, and other anchors. +.Pp +An +.Ar anchor +has a name which specifies the path where +.Xr pfctl 8 +can be used to access the anchor to perform operations on it, such as +attaching child anchors to it or loading rules into it. +Anchors may be nested, with components separated by +.Sq / +characters, similar to how file system hierarchies are laid out. +The main ruleset is actually the default anchor, so filter and +translation rules, for example, may also be contained in any anchor. +.Pp +An anchor can reference another +.Ar anchor +attachment point +using the following kinds +of rules: +.Bl -tag -width xxxx +.It Ar nat-anchor Aq Ar name +Evaluates the +.Ar nat +rules in the specified +.Ar anchor . +.It Ar rdr-anchor Aq Ar name +Evaluates the +.Ar rdr +rules in the specified +.Ar anchor . +.It Ar binat-anchor Aq Ar name +Evaluates the +.Ar binat +rules in the specified +.Ar anchor . +.It Ar anchor Aq Ar name +Evaluates the filter rules in the specified +.Ar anchor . +.It Xo Ar load anchor +.Aq Ar name +.Ar from Aq Ar file +.Xc +Loads the rules from the specified file into the +anchor +.Ar name . +.El +.Pp +When evaluation of the main ruleset reaches an +.Ar anchor +rule, +.Xr pf 4 +will proceed to evaluate all rules specified in that anchor. +.Pp +Matching filter and translation rules marked with the +.Ar quick +option are final and abort the evaluation of the rules in other +anchors and the main ruleset. +If the +.Ar anchor +itself is marked with the +.Ar quick +option, +ruleset evaluation will terminate when the anchor is exited if the packet is +matched by any rule within the anchor. +.Pp +.Ar anchor +rules are evaluated relative to the anchor in which they are contained. +For example, all +.Ar anchor +rules specified in the main ruleset will reference anchor +attachment points underneath the main ruleset, and +.Ar anchor +rules specified in a file loaded from a +.Ar load anchor +rule will be attached under that anchor point. +.Pp +Rules may be contained in +.Ar anchor +attachment points which do not contain any rules when the main ruleset +is loaded, and later such anchors can be manipulated through +.Xr pfctl 8 +without reloading the main ruleset or other anchors. +For example, +.Bd -literal -offset indent +ext_if = \&"kue0\&" +block on $ext_if all +anchor spam +pass out on $ext_if all +pass in on $ext_if proto tcp from any \e + to $ext_if port smtp +.Ed +.Pp +blocks all packets on the external interface by default, then evaluates +all rules in the +.Ar anchor +named "spam", and finally passes all outgoing connections and +incoming connections to port 25. +.Bd -literal -offset indent +# echo \&"block in quick from 1.2.3.4 to any\&" \&| \e + pfctl -a spam -f - +.Ed +.Pp +This loads a single rule into the +.Ar anchor , +which blocks all packets from a specific address. +.Pp +The anchor can also be populated by adding a +.Ar load anchor +rule after the +.Ar anchor +rule: +.Bd -literal -offset indent +anchor spam +load anchor spam from "/etc/pf-spam.conf" +.Ed +.Pp +When +.Xr pfctl 8 +loads +.Nm pf.conf , +it will also load all the rules from the file +.Pa /etc/pf-spam.conf +into the anchor. +.Pp +Optionally, +.Ar anchor +rules can specify packet filtering parameters using the same syntax as +filter rules. +When parameters are used, the +.Ar anchor +rule is only evaluated for matching packets. +This allows conditional evaluation of anchors, like: +.Bd -literal -offset indent +block on $ext_if all +anchor spam proto tcp from any to any port smtp +pass out on $ext_if all +pass in on $ext_if proto tcp from any to $ext_if port smtp +.Ed +.Pp +The rules inside +.Ar anchor +spam are only evaluated for +.Ar tcp +packets with destination port 25. +Hence, +.Bd -literal -offset indent +# echo \&"block in quick from 1.2.3.4 to any" \&| \e + pfctl -a spam -f - +.Ed +.Pp +will only block connections from 1.2.3.4 to port 25. +.Pp +Anchors may end with the asterisk +.Pq Sq * +character, which signifies that all anchors attached at that point +should be evaluated in the alphabetical ordering of their anchor name. +For example, +.Bd -literal -offset indent +anchor "spam/*" +.Ed +.Pp +will evaluate each rule in each anchor attached to the +.Li spam +anchor. +Note that it will only evaluate anchors that are directly attached to the +.Li spam +anchor, and will not descend to evaluate anchors recursively. +.Pp +Since anchors are evaluated relative to the anchor in which they are +contained, there is a mechanism for accessing the parent and ancestor +anchors of a given anchor. +Similar to file system path name resolution, if the sequence +.Dq .. +appears as an anchor path component, the parent anchor of the current +anchor in the path evaluation at that point will become the new current +anchor. +As an example, consider the following: +.Bd -literal -offset indent +# echo ' anchor "spam/allowed" ' | pfctl -f - +# echo -e ' anchor "../banned" \en pass' | \e + pfctl -a spam/allowed -f - +.Ed +.Pp +Evaluation of the main ruleset will lead into the +.Li spam/allowed +anchor, which will evaluate the rules in the +.Li spam/banned +anchor, if any, before finally evaluating the +.Ar pass +rule. +.Pp +Filter rule +.Ar anchors +can also be loaded inline in the ruleset within a brace ('{' '}') delimited +block. +Brace delimited blocks may contain rules or other brace-delimited blocks. +When anchors are loaded this way the anchor name becomes optional. +.Bd -literal -offset indent +anchor "external" on egress { + block + anchor out { + pass proto tcp from any to port { 25, 80, 443 } + } + pass in proto tcp to any port 22 +} +.Ed +.Pp +Since the parser specification for anchor names is a string, any +reference to an anchor name containing +.Sq / +characters will require double quote +.Pq Sq \&" +characters around the anchor name. +.Sh TRANSLATION EXAMPLES +This example maps incoming requests on port 80 to port 8080, on +which a daemon is running (because, for example, it is not run as root, +and therefore lacks permission to bind to port 80). +.Bd -literal +# use a macro for the interface name, so it can be changed easily +ext_if = \&"ne3\&" + +# map daemon on 8080 to appear to be on 80 +rdr on $ext_if proto tcp from any to any port 80 -\*(Gt 127.0.0.1 port 8080 +.Ed +.Pp +If the +.Ar pass +modifier is given, packets matching the translation rule are passed without +inspecting the filter rules: +.Bd -literal +rdr pass on $ext_if proto tcp from any to any port 80 -\*(Gt 127.0.0.1 \e + port 8080 +.Ed +.Pp +In the example below, vlan12 is configured as 192.168.168.1; +the machine translates all packets coming from 192.168.168.0/24 to 204.92.77.111 +when they are going out any interface except vlan12. +This has the net effect of making traffic from the 192.168.168.0/24 +network appear as though it is the Internet routable address +204.92.77.111 to nodes behind any interface on the router except +for the nodes on vlan12. +(Thus, 192.168.168.1 can talk to the 192.168.168.0/24 nodes.) +.Bd -literal +nat on ! vlan12 from 192.168.168.0/24 to any -\*(Gt 204.92.77.111 +.Ed +.Pp +In the example below, the machine sits between a fake internal 144.19.74.* +network, and a routable external IP of 204.92.77.100. +The +.Ar no nat +rule excludes protocol AH from being translated. +.Bd -literal +# NO NAT +no nat on $ext_if proto ah from 144.19.74.0/24 to any +nat on $ext_if from 144.19.74.0/24 to any -\*(Gt 204.92.77.100 +.Ed +.Pp +In the example below, packets bound for one specific server, as well as those +generated by the sysadmins are not proxied; all other connections are. +.Bd -literal +# NO RDR +no rdr on $int_if proto { tcp, udp } from any to $server port 80 +no rdr on $int_if proto { tcp, udp } from $sysadmins to any port 80 +rdr on $int_if proto { tcp, udp } from any to any port 80 -\*(Gt 127.0.0.1 \e + port 80 +.Ed +.Pp +This longer example uses both a NAT and a redirection. +The external interface has the address 157.161.48.183. +On localhost, we are running +.Xr ftp-proxy 8 , +waiting for FTP sessions to be redirected to it. +The three mandatory anchors for +.Xr ftp-proxy 8 +are omitted from this example; see the +.Xr ftp-proxy 8 +manpage. +.Bd -literal +# NAT +# Translate outgoing packets' source addresses (any protocol). +# In this case, any address but the gateway's external address is mapped. +nat on $ext_if inet from ! ($ext_if) to any -\*(Gt ($ext_if) + +# NAT PROXYING +# Map outgoing packets' source port to an assigned proxy port instead of +# an arbitrary port. +# In this case, proxy outgoing isakmp with port 500 on the gateway. +nat on $ext_if inet proto udp from any port = isakmp to any -\*(Gt ($ext_if) \e + port 500 + +# BINAT +# Translate outgoing packets' source address (any protocol). +# Translate incoming packets' destination address to an internal machine +# (bidirectional). +binat on $ext_if from 10.1.2.150 to any -\*(Gt $ext_if + +# RDR +# Translate incoming packets' destination addresses. +# As an example, redirect a TCP and UDP port to an internal machine. +rdr on $ext_if inet proto tcp from any to ($ext_if) port 8080 \e + -\*(Gt 10.1.2.151 port 22 +rdr on $ext_if inet proto udp from any to ($ext_if) port 8080 \e + -\*(Gt 10.1.2.151 port 53 + +# RDR +# Translate outgoing ftp control connections to send them to localhost +# for proxying with ftp-proxy(8) running on port 8021. +rdr on $int_if proto tcp from any to any port 21 -\*(Gt 127.0.0.1 port 8021 +.Ed +.Pp +In this example, a NAT gateway is set up to translate internal addresses +using a pool of public addresses (192.0.2.16/28) and to redirect +incoming web server connections to a group of web servers on the internal +network. +.Bd -literal +# NAT LOAD BALANCE +# Translate outgoing packets' source addresses using an address pool. +# A given source address is always translated to the same pool address by +# using the source-hash keyword. +nat on $ext_if inet from any to any -\*(Gt 192.0.2.16/28 source-hash + +# RDR ROUND ROBIN +# Translate incoming web server connections to a group of web servers on +# the internal network. +rdr on $ext_if proto tcp from any to any port 80 \e + -\*(Gt { 10.1.2.155, 10.1.2.160, 10.1.2.161 } round-robin +.Ed +.Sh FILTER EXAMPLES +.Bd -literal +# The external interface is kue0 +# (157.161.48.183, the only routable address) +# and the private network is 10.0.0.0/8, for which we are doing NAT. + +# use a macro for the interface name, so it can be changed easily +ext_if = \&"kue0\&" + +# normalize all incoming traffic +scrub in on $ext_if all fragment reassemble + +# block and log everything by default +block return log on $ext_if all + +# block anything coming from source we have no back routes for +block in from no-route to any + +# block packets whose ingress interface does not match the one in +# the route back to their source address +block in from urpf-failed to any + +# block and log outgoing packets that do not have our address as source, +# they are either spoofed or something is misconfigured (NAT disabled, +# for instance), we want to be nice and do not send out garbage. +block out log quick on $ext_if from ! 157.161.48.183 to any + +# silently drop broadcasts (cable modem noise) +block in quick on $ext_if from any to 255.255.255.255 + +# block and log incoming packets from reserved address space and invalid +# addresses, they are either spoofed or misconfigured, we cannot reply to +# them anyway (hence, no return-rst). +block in log quick on $ext_if from { 10.0.0.0/8, 172.16.0.0/12, \e + 192.168.0.0/16, 255.255.255.255/32 } to any + +# ICMP + +# pass out/in certain ICMP queries and keep state (ping) +# state matching is done on host addresses and ICMP id (not type/code), +# so replies (like 0/0 for 8/0) will match queries +# ICMP error messages (which always refer to a TCP/UDP packet) are +# handled by the TCP/UDP states +pass on $ext_if inet proto icmp all icmp-type 8 code 0 + +# UDP + +# pass out all UDP connections and keep state +pass out on $ext_if proto udp all + +# pass in certain UDP connections and keep state (DNS) +pass in on $ext_if proto udp from any to any port domain + +# TCP + +# pass out all TCP connections and modulate state +pass out on $ext_if proto tcp all modulate state + +# pass in certain TCP connections and keep state (SSH, SMTP, DNS, IDENT) +pass in on $ext_if proto tcp from any to any port { ssh, smtp, domain, \e + auth } + +# Do not allow Windows 9x SMTP connections since they are typically +# a viral worm. Alternately we could limit these OSes to 1 connection each. +block in on $ext_if proto tcp from any os {"Windows 95", "Windows 98"} \e + to any port smtp + +# IPv6 +# pass in/out all IPv6 traffic: note that we have to enable this in two +# different ways, on both our physical interface and our tunnel +pass quick on gif0 inet6 +pass quick on $ext_if proto ipv6 + +# Packet Tagging + +# three interfaces: $int_if, $ext_if, and $wifi_if (wireless). NAT is +# being done on $ext_if for all outgoing packets. tag packets in on +# $int_if and pass those tagged packets out on $ext_if. all other +# outgoing packets (i.e., packets from the wireless network) are only +# permitted to access port 80. + +pass in on $int_if from any to any tag INTNET +pass in on $wifi_if from any to any + +block out on $ext_if from any to any +pass out quick on $ext_if tagged INTNET +pass out on $ext_if proto tcp from any to any port 80 + +# tag incoming packets as they are redirected to spamd(8). use the tag +# to pass those packets through the packet filter. + +rdr on $ext_if inet proto tcp from \*(Ltspammers\*(Gt to port smtp \e + tag SPAMD -\*(Gt 127.0.0.1 port spamd + +block in on $ext_if +pass in on $ext_if inet proto tcp tagged SPAMD +.Ed +.Sh GRAMMAR +Syntax for +.Nm +in BNF: +.Bd -literal +line = ( option | pf-rule | nat-rule | binat-rule | rdr-rule | + antispoof-rule | altq-rule | queue-rule | trans-anchors | + anchor-rule | anchor-close | load-anchor | table-rule | + include ) + +option = "set" ( [ "timeout" ( timeout | "{" timeout-list "}" ) ] | + [ "ruleset-optimization" [ "none" | "basic" | "profile" ]] | + [ "optimization" [ "default" | "normal" | + "high-latency" | "satellite" | + "aggressive" | "conservative" ] ] + [ "limit" ( limit-item | "{" limit-list "}" ) ] | + [ "loginterface" ( interface-name | "none" ) ] | + [ "block-policy" ( "drop" | "return" ) ] | + [ "state-policy" ( "if-bound" | "floating" ) ] + [ "state-defaults" state-opts ] + [ "require-order" ( "yes" | "no" ) ] + [ "fingerprints" filename ] | + [ "skip on" ifspec ] | + [ "debug" ( "none" | "urgent" | "misc" | "loud" ) ] ) + +pf-rule = action [ ( "in" | "out" ) ] + [ "log" [ "(" logopts ")"] ] [ "quick" ] + [ "on" ifspec ] [ "fastroute" | route ] [ af ] [ protospec ] + hosts [ filteropt-list ] + +logopts = logopt [ "," logopts ] +logopt = "all" | "user" | "to" interface-name + +filteropt-list = filteropt-list filteropt | filteropt +filteropt = user | group | flags | icmp-type | icmp6-type | "tos" tos | + ( "no" | "keep" | "modulate" | "synproxy" ) "state" + [ "(" state-opts ")" ] | + "fragment" | "no-df" | "min-ttl" number | "set-tos" tos | + "max-mss" number | "random-id" | "reassemble tcp" | + fragmentation | "allow-opts" | + "label" string | "tag" string | [ ! ] "tagged" string | + "queue" ( string | "(" string [ [ "," ] string ] ")" ) | + "rtable" number | "probability" number"%" + +nat-rule = [ "no" ] "nat" [ "pass" [ "log" [ "(" logopts ")" ] ] ] + [ "on" ifspec ] [ af ] + [ protospec ] hosts [ "tag" string ] [ "tagged" string ] + [ "-\*(Gt" ( redirhost | "{" redirhost-list "}" ) + [ portspec ] [ pooltype ] [ "static-port" ] ] + +binat-rule = [ "no" ] "binat" [ "pass" [ "log" [ "(" logopts ")" ] ] ] + [ "on" interface-name ] [ af ] + [ "proto" ( proto-name | proto-number ) ] + "from" address [ "/" mask-bits ] "to" ipspec + [ "tag" string ] [ "tagged" string ] + [ "-\*(Gt" address [ "/" mask-bits ] ] + +rdr-rule = [ "no" ] "rdr" [ "pass" [ "log" [ "(" logopts ")" ] ] ] + [ "on" ifspec ] [ af ] + [ protospec ] hosts [ "tag" string ] [ "tagged" string ] + [ "-\*(Gt" ( redirhost | "{" redirhost-list "}" ) + [ portspec ] [ pooltype ] ] + +antispoof-rule = "antispoof" [ "log" ] [ "quick" ] + "for" ifspec [ af ] [ "label" string ] + +table-rule = "table" "\*(Lt" string "\*(Gt" [ tableopts-list ] +tableopts-list = tableopts-list tableopts | tableopts +tableopts = "persist" | "const" | "counters" | "file" string | + "{" [ tableaddr-list ] "}" +tableaddr-list = tableaddr-list [ "," ] tableaddr-spec | tableaddr-spec +tableaddr-spec = [ "!" ] tableaddr [ "/" mask-bits ] +tableaddr = hostname | ifspec | "self" | + ipv4-dotted-quad | ipv6-coloned-hex + +altq-rule = "altq on" interface-name queueopts-list + "queue" subqueue +queue-rule = "queue" string [ "on" interface-name ] queueopts-list + subqueue + +anchor-rule = "anchor" [ string ] [ ( "in" | "out" ) ] [ "on" ifspec ] + [ af ] [ protospec ] [ hosts ] [ filteropt-list ] [ "{" ] + +anchor-close = "}" + +trans-anchors = ( "nat-anchor" | "rdr-anchor" | "binat-anchor" ) string + [ "on" ifspec ] [ af ] [ "proto" ] [ protospec ] [ hosts ] + +load-anchor = "load anchor" string "from" filename + +queueopts-list = queueopts-list queueopts | queueopts +queueopts = [ "bandwidth" bandwidth-spec ] | + [ "qlimit" number ] | [ "tbrsize" number ] | + [ "priority" number ] | [ schedulers ] +schedulers = ( cbq-def | priq-def | hfsc-def ) +bandwidth-spec = "number" ( "b" | "Kb" | "Mb" | "Gb" | "%" ) + +action = "pass" | "block" [ return ] | [ "no" ] "scrub" +return = "drop" | "return" | "return-rst" [ "( ttl" number ")" ] | + "return-icmp" [ "(" icmpcode [ [ "," ] icmp6code ] ")" ] | + "return-icmp6" [ "(" icmp6code ")" ] +icmpcode = ( icmp-code-name | icmp-code-number ) +icmp6code = ( icmp6-code-name | icmp6-code-number ) + +ifspec = ( [ "!" ] ( interface-name | interface-group ) ) | + "{" interface-list "}" +interface-list = [ "!" ] ( interface-name | interface-group ) + [ [ "," ] interface-list ] +route = ( "route-to" | "reply-to" | "dup-to" ) + ( routehost | "{" routehost-list "}" ) + [ pooltype ] +af = "inet" | "inet6" + +protospec = "proto" ( proto-name | proto-number | + "{" proto-list "}" ) +proto-list = ( proto-name | proto-number ) [ [ "," ] proto-list ] + +hosts = "all" | + "from" ( "any" | "no-route" | "urpf-failed" | "self" | host | + "{" host-list "}" ) [ port ] [ os ] + "to" ( "any" | "no-route" | "self" | host | + "{" host-list "}" ) [ port ] + +ipspec = "any" | host | "{" host-list "}" +host = [ "!" ] ( address [ "/" mask-bits ] | "\*(Lt" string "\*(Gt" ) +redirhost = address [ "/" mask-bits ] +routehost = "(" interface-name [ address [ "/" mask-bits ] ] ")" +address = ( interface-name | interface-group | + "(" ( interface-name | interface-group ) ")" | + hostname | ipv4-dotted-quad | ipv6-coloned-hex ) +host-list = host [ [ "," ] host-list ] +redirhost-list = redirhost [ [ "," ] redirhost-list ] +routehost-list = routehost [ [ "," ] routehost-list ] + +port = "port" ( unary-op | binary-op | "{" op-list "}" ) +portspec = "port" ( number | name ) [ ":" ( "*" | number | name ) ] +os = "os" ( os-name | "{" os-list "}" ) +user = "user" ( unary-op | binary-op | "{" op-list "}" ) +group = "group" ( unary-op | binary-op | "{" op-list "}" ) + +unary-op = [ "=" | "!=" | "\*(Lt" | "\*(Le" | "\*(Gt" | "\*(Ge" ] + ( name | number ) +binary-op = number ( "\*(Lt\*(Gt" | "\*(Gt\*(Lt" | ":" ) number +op-list = ( unary-op | binary-op ) [ [ "," ] op-list ] + +os-name = operating-system-name +os-list = os-name [ [ "," ] os-list ] + +flags = "flags" ( [ flag-set ] "/" flag-set | "any" ) +flag-set = [ "F" ] [ "S" ] [ "R" ] [ "P" ] [ "A" ] [ "U" ] [ "E" ] + [ "W" ] + +icmp-type = "icmp-type" ( icmp-type-code | "{" icmp-list "}" ) +icmp6-type = "icmp6-type" ( icmp-type-code | "{" icmp-list "}" ) +icmp-type-code = ( icmp-type-name | icmp-type-number ) + [ "code" ( icmp-code-name | icmp-code-number ) ] +icmp-list = icmp-type-code [ [ "," ] icmp-list ] + +tos = ( "lowdelay" | "throughput" | "reliability" | + [ "0x" ] number ) + +state-opts = state-opt [ [ "," ] state-opts ] +state-opt = ( "max" number | "no-sync" | timeout | "sloppy" | "pflow" | + "source-track" [ ( "rule" | "global" ) ] | + "max-src-nodes" number | "max-src-states" number | + "max-src-conn" number | + "max-src-conn-rate" number "/" number | + "overload" "\*(Lt" string "\*(Gt" [ "flush" ] | + "if-bound" | "floating" ) + +fragmentation = [ "fragment reassemble" | "fragment crop" | + "fragment drop-ovl" ] + +timeout-list = timeout [ [ "," ] timeout-list ] +timeout = ( "tcp.first" | "tcp.opening" | "tcp.established" | + "tcp.closing" | "tcp.finwait" | "tcp.closed" | + "udp.first" | "udp.single" | "udp.multiple" | + "icmp.first" | "icmp.error" | + "other.first" | "other.single" | "other.multiple" | + "frag" | "interval" | "src.track" | + "adaptive.start" | "adaptive.end" ) number + +limit-list = limit-item [ [ "," ] limit-list ] +limit-item = ( "states" | "frags" | "src-nodes" ) number + +pooltype = ( "bitmask" | "random" | + "source-hash" [ ( hex-key | string-key ) ] | + "round-robin" ) [ sticky-address ] + +subqueue = string | "{" queue-list "}" +queue-list = string [ [ "," ] string ] +cbq-def = "cbq" [ "(" cbq-opt [ [ "," ] cbq-opt ] ")" ] +priq-def = "priq" [ "(" priq-opt [ [ "," ] priq-opt ] ")" ] +hfsc-def = "hfsc" [ "(" hfsc-opt [ [ "," ] hfsc-opt ] ")" ] +cbq-opt = ( "default" | "borrow" | "red" | "ecn" | "rio" ) +priq-opt = ( "default" | "red" | "ecn" | "rio" ) +hfsc-opt = ( "default" | "red" | "ecn" | "rio" | + linkshare-sc | realtime-sc | upperlimit-sc ) +linkshare-sc = "linkshare" sc-spec +realtime-sc = "realtime" sc-spec +upperlimit-sc = "upperlimit" sc-spec +sc-spec = ( bandwidth-spec | + "(" bandwidth-spec number bandwidth-spec ")" ) +include = "include" filename +.Ed +.Sh FILES +.Bl -tag -width "/etc/protocols" -compact +.It Pa /etc/hosts +Host name database. +.It Pa /etc/pf.conf +Default location of the ruleset file. +.It Pa /etc/pf.os +Default location of OS fingerprints. +.It Pa /etc/protocols +Protocol name database. +.It Pa /etc/services +Service name database. +.El +.Sh SEE ALSO +.Xr altq 4 , +.Xr carp 4 , +.Xr icmp 4 , +.Xr icmp6 4 , +.Xr ip 4 , +.Xr ip6 4 , +.Xr pf 4 , +.Xr pflow 4 , +.Xr pfsync 4 , +.Xr tcp 4 , +.Xr udp 4 , +.Xr hosts 5 , +.Xr pf.os 5 , +.Xr protocols 5 , +.Xr services 5 , +.Xr ftp-proxy 8 , +.Xr pfctl 8 , +.Xr pflogd 8 , +.Sh HISTORY +The +.Nm +file format first appeared in +.Ox 3.0 . diff --git a/share/man/man5/pf.os.5 b/share/man/man5/pf.os.5 new file mode 100644 index 0000000..5930525 --- /dev/null +++ b/share/man/man5/pf.os.5 @@ -0,0 +1,223 @@ +.\" $OpenBSD: pf.os.5,v 1.8 2007/05/31 19:19:58 jmc Exp $ +.\" +.\" Copyright (c) 2003 Mike Frantzen <frantzen@w4g.org> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.\" $FreeBSD$ +.\" +.Dd May 31 2007 +.Dt PF.OS 5 +.Os +.Sh NAME +.Nm pf.os +.Nd format of the operating system fingerprints file +.Sh DESCRIPTION +The +.Xr pf 4 +firewall and the +.Xr tcpdump 1 +program can both fingerprint the operating system of hosts that +originate an IPv4 TCP connection. +The file consists of newline-separated records, one per fingerprint, +containing nine colon +.Pq Ql \&: +separated fields. +These fields are as follows: +.Pp +.Bl -tag -width Description -offset indent -compact +.It window +The TCP window size. +.It TTL +The IP time to live. +.It df +The presence of the IPv4 don't fragment bit. +.It packet size +The size of the initial TCP packet. +.It TCP options +An ordered list of the TCP options. +.It class +The class of operating system. +.It version +The version of the operating system. +.It subtype +The subtype of patchlevel of the operating system. +.It description +The overall textual description of the operating system, version and subtype. +.El +.Pp +The +.Ar window +field corresponds to the th->th_win field in the TCP header and is the +source host's advertised TCP window size. +It may be between zero and 65,535 inclusive. +The window size may be given as a multiple of a constant by prepending +the size with a percent sign +.Sq % +and the value will be used as a modulus. +Three special values may be used for the window size: +.Pp +.Bl -tag -width xxx -offset indent -compact +.It * +An asterisk will wildcard the value so any window size will match. +.It S +Allow any window size which is a multiple of the maximum segment size (MSS). +.It T +Allow any window size which is a multiple of the maximum transmission unit +(MTU). +.El +.Pp +The +.Ar ttl +value is the initial time to live in the IP header. +The fingerprint code will account for the volatility of the packet's TTL +as it traverses a network. +.Pp +The +.Ar df +bit corresponds to the Don't Fragment bit in an IPv4 header. +It tells intermediate routers not to fragment the packet and is used for +path MTU discovery. +It may be either a zero or a one. +.Pp +The +.Ar packet size +is the literal size of the full IP packet and is a function of all of +the IP and TCP options. +.Pp +The +.Ar TCP options +field is an ordered list of the individual TCP options that appear in the +SYN packet. +Each option is described by a single character separated by a comma and +certain ones may include a value. +The options are: +.Pp +.Bl -tag -width Description -offset indent -compact +.It Mnnn +maximum segment size (MSS) option. +The value is the maximum packet size of the network link which may +include the +.Sq % +modulus or match all MSSes with the +.Sq * +value. +.It N +the NOP option (NO Operation). +.It T[0] +the timestamp option. +Certain operating systems always start with a zero timestamp in which +case a zero value is added to the option; otherwise no value is appended. +.It S +the Selective ACKnowledgement OK (SACKOK) option. +.It Wnnn +window scaling option. +The value is the size of the window scaling which may include the +.Sq % +modulus or match all window scalings with the +.Sq * +value. +.El +.Pp +No TCP options in the fingerprint may be given with a single dot +.Sq \&. . +.Pp +An example of OpenBSD's TCP options are: +.Pp +.Dl M*,N,N,S,N,W0,N,N,T +.Pp +The first option +.Ar M* +is the MSS option and will match all values. +The second and third options +.Ar N +will match two NOPs. +The fourth option +.Ar S +will match the SACKOK option. +The fifth +.Ar N +will match another NOP. +The sixth +.Ar W0 +will match a window scaling option with a zero scaling size. +The seventh and eighth +.Ar N +options will match two NOPs. +And the ninth and final option +.Ar T +will match the timestamp option with any time value. +.Pp +The TCP options in a fingerprint will only match packets with the +exact same TCP options in the same order. +.Pp +The +.Ar class +field is the class, genre or vendor of the operating system. +.Pp +The +.Ar version +is the version of the operating system. +It is used to distinguish between different fingerprints of operating +systems of the same class but different versions. +.Pp +The +.Ar subtype +is the subtype or patch level of the operating system version. +It is used to distinguish between different fingerprints of operating +systems of the same class and same version but slightly different +patches or tweaking. +.Pp +The +.Ar description +is a general description of the operating system, its version, +patchlevel and any further useful details. +.Sh EXAMPLES +The fingerprint of a plain +.Ox 3.3 +host is: +.Bd -literal + 16384:64:1:64:M*,N,N,S,N,W0,N,N,T:OpenBSD:3.3::OpenBSD 3.3 +.Ed +.Pp +The fingerprint of an +.Ox 3.3 +host behind a PF scrubbing firewall with a no-df rule would be: +.Bd -literal + 16384:64:0:64:M*,N,N,S,N,W0,N,N,T:OpenBSD:3.3:!df:OpenBSD 3.3 scrub no-df +.Ed +.Pp +An absolutely braindead embedded operating system fingerprint could be: +.Bd -literal + 65535:255:0:40:.:DUMMY:1.1:p3:Dummy embedded OS v1.1p3 +.Ed +.Pp +The +.Xr tcpdump 1 +output of +.Bd -literal + # tcpdump -s128 -c1 -nv 'tcp[13] == 2' + 03:13:48.118526 10.0.0.1.3377 > 10.0.0.2.80: S [tcp sum ok] \e + 534596083:534596083(0) win 57344 <mss 1460> (DF) [tos 0x10] \e + (ttl 64, id 11315, len 44) +.Ed +.Pp +almost translates into the following fingerprint +.Bd -literal + 57344:64:1:44:M1460: exampleOS:1.0::exampleOS 1.0 +.Ed +.Sh SEE ALSO +.Xr pf 4 , +.Xr pf.conf 5 , +.Xr pfctl 8 , +.Xr tcpdump 1 diff --git a/share/man/man5/portindex.5 b/share/man/man5/portindex.5 index 3526196..a3f856f 100644 --- a/share/man/man5/portindex.5 +++ b/share/man/man5/portindex.5 @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 8, 2012 +.Dd October 14, 2012 .Dt PORTINDEX 5 .Os .Sh NAME @@ -48,7 +48,7 @@ branch, i.e.: .Pa INDEX-7 , or .Pa INDEX-8 . -.Bl -tag -compact -width indent +.Bl -tag -width XXXXXXXXXX .It Cm \&name The name of the package. .It Cm \&path @@ -77,7 +77,7 @@ Ports that may be required to patch this port. Ports that may be required to fetch this port. .El .Sh FILES -.Bl -tag -width /usr/ports/INDEX-8 +.Bl -tag -width /usr/ports/INDEX-8XX .It Pa /usr/ports/INDEX- Ns Ar N where .Ar N @@ -91,7 +91,6 @@ vim-6.3.15|/usr/ports/editors/vim|/usr/local|Vi "workalike", with many additiona .Ed .Sh SEE ALSO .Xr build 7 , -.Xr csup 1 , .Xr ports 7 .Sh AUTHORS .An -nosplit diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5 index f419335..d9497b9 100644 --- a/share/man/man5/rc.conf.5 +++ b/share/man/man5/rc.conf.5 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 06, 2012 +.Dd October 27, 2012 .Dt RC.CONF 5 .Os .Sh NAME @@ -168,6 +168,27 @@ If set to .Dq Li NO , no swapfile is installed, otherwise the value is used as the full pathname to a file to use for additional swap space. +.It Ao Ar name Ac Ns Va _chroot +.Pq Vt str +.Xr chroot +to this directory before running the service. +.It Ao Ar name Ac Ns Va _user +.Pq Vt str +Run the service under this user account. +.It Ao Ar name Ac Ns Va _group +.Pq Vt str +Run the chrooted service under this system group. Unlike the _user +setting, this setting has no effect if the service is not chrooted. +.It Ao Ar name Ac Ns Va _fib +.Pq Vt int +The +.Xr setfib 1 +value to run the service under. +.It Ao Ar name Ac Ns Va _nice +.Pq Vt int +The +.Xr nice 1 +value to run the service under. .It Va apm_enable .Pq Vt bool If set to @@ -501,6 +522,16 @@ to enable firewall event logging. This is equivalent to the .Dv IPFIREWALL_VERBOSE kernel option. +.It Va firewall_logif +.Pq Vt bool +Set to +.Dq Li YES +to create pseudo interface +.Li ipfw0 +for logging. +For more details, see +.Xr ipfw 8 +manual page. .It Va firewall_flags .Pq Vt str Flags passed to @@ -2924,6 +2955,34 @@ If set to .Dq Li YES this enables IPv4 mapped IPv6 address communication (like .Li ::ffff:a.b.c.d ) . +.It Va rtsold_enable +.Pq Vt bool +Set to +.Dq Li YES +to enable the +.Xr rtsold 8 +daemon to send ICMPv6 Router Solicitation messages. +.It Va rtsold_flags +.Pq Vt str +If +.Va rtsold_enable +is set to +.Dq Li YES , +these are the flags to pass to +.Xr rtsold 8 . +.It Va rtsol_flags +.Pq Vt str +For interfaces configured with the +.Dq Li inet6 accept_rtadv +keyword, these are the flags to pass to +.Xr rtsol 8 . +.Pp +Note that +.Va rtsold_enable +is mutually exclusive to +.Va rtsol_flags ; +.Va rtsold_enable +takes precedence. .It Va atm_enable .Pq Vt bool Set to diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index d40e4cf..239bad3 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 236279 2012-05-30 02:37:20Z gjb .\" $FreeBSD$ -.Dd May 29, 2012 +.Dd October 21, 2012 .Dt SRC.CONF 5 .Os .Sh NAME @@ -110,6 +110,9 @@ checks. Set to not build .Xr at 1 and related utilities. +.It Va WITHOUT_ATF +.\" from FreeBSD: head/tools/build/options/WITHOUT_ATF 241823 2012-10-22 01:18:41Z marcel +Set to not build programs and libraries related to the ATF testing framework. .It Va WITHOUT_ATM .\" from FreeBSD: head/tools/build/options/WITHOUT_ATM 156932 2006-03-21 07:50:50Z ru Set to not build @@ -217,9 +220,21 @@ toolchain is enabled. .It Va WITHOUT_BLUETOOTH .\" from FreeBSD: head/tools/build/options/WITHOUT_BLUETOOTH 156932 2006-03-21 07:50:50Z ru Set to not build Bluetooth related kernel modules, programs and libraries. +.It Va WITH_BMAKE +.\" from FreeBSD: head/tools/build/options/WITH_BMAKE 241279 2012-10-06 19:19:21Z marcel +Build and install the portable BSD make (bmake) as +.Xr make 1 +instead of the traditional FreeBSD make. +This build option is temporary. +It allows developers to switch to bmake in order to work out any remaining +kinks or issues. +This option will be removed in due time. .It Va WITHOUT_BOOT .\" from FreeBSD: head/tools/build/options/WITHOUT_BOOT 156932 2006-03-21 07:50:50Z ru Set to not build the boot blocks and loader. +.It Va WITH_BSDCONFIG +.\" from FreeBSD: head/tools/build/options/WITH_BSDCONFIG 238448 2012-07-14 10:17:47Z zeising +Set to install bsdconfig(8), a BSD-licensed configuration/management utility. .It Va WITHOUT_BSD_CPIO .\" from FreeBSD: head/tools/build/options/WITHOUT_BSD_CPIO 179813 2008-06-16 05:48:15Z dougb Set to not build the BSD licensed version of cpio based on @@ -227,9 +242,6 @@ Set to not build the BSD licensed version of cpio based on .It Va WITH_BSD_GREP .\" from FreeBSD: head/tools/build/options/WITH_BSD_GREP 222273 2011-05-25 01:04:12Z obrien Install BSD-licensed grep as '[ef]grep' instead of GNU grep. -.It Va WITH_BSD_SORT -.\" from FreeBSD: head/tools/build/options/WITH_BSD_SORT 235268 2012-05-11 12:47:21Z gabor -Install BSD-licensed sort as 'sort' instead of GNU sort. .It Va WITHOUT_BSNMP .\" from FreeBSD: head/tools/build/options/WITHOUT_BSNMP 183306 2008-09-23 16:15:42Z sam Set to not build or install @@ -273,7 +285,7 @@ When set, it also enforces the following options: Set to not build the Clang C/C++ compiler. .Pp It is a default setting on -arm/arm, arm/armeb, ia64/ia64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32 and sparc64/sparc64. +arm/arm, arm/armeb, arm/armv6, arm/armv6eb, ia64/ia64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32 and sparc64/sparc64. When set, it also enforces the following options: .Pp .Bl -item -compact @@ -390,7 +402,7 @@ Set to build Flattened Device Tree support as part of the base system. This includes the device tree compiler (dtc) and libfdt support library. .Pp It is a default setting on -arm/arm, arm/armeb, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, powerpc/powerpc and powerpc/powerpc64. +arm/arm, arm/armeb, arm/armv6, arm/armv6eb, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, powerpc/powerpc and powerpc/powerpc64. .It Va WITHOUT_FLOPPY .\" from FreeBSD: head/tools/build/options/WITHOUT_FLOPPY 221540 2011-05-06 19:13:03Z ru Set to not build or install programs @@ -514,6 +526,16 @@ Set this if you do not want to install optional libraries. For example when creating a .Xr nanobsd 8 image. +.It Va WITH_INSTALL_AS_USER +.\" from FreeBSD: head/tools/build/options/WITH_INSTALL_AS_USER 238021 2012-07-02 20:24:01Z marcel +Set to make install targets succeed for non-root users by installing +files with owner and group attributes set to that of the user running +the +.Xr make 1 +command. +The user still has to set the +.Va DESTDIR +variable to point to a directory where the user has write permissions. .It Va WITHOUT_IPFILTER .\" from FreeBSD: head/tools/build/options/WITHOUT_IPFILTER 156932 2006-03-21 07:50:50Z ru Set to not build IP Filter package. @@ -528,8 +550,6 @@ When set, it also enforces the following options: .Bl -item -compact .It .Va WITHOUT_IPX_SUPPORT -.It -.Va WITHOUT_NCP .El .It Va WITHOUT_IPX_SUPPORT .\" from FreeBSD: head/tools/build/options/WITHOUT_IPX_SUPPORT 156932 2006-03-21 07:50:50Z ru @@ -538,6 +558,12 @@ Set to build some programs without IPX support. .\" from FreeBSD: head/tools/build/options/WITHOUT_JAIL 183242 2008-09-21 22:02:26Z sam Set to not build tools for the support of jails; e.g. .Xr jail 8 . +.It Va WITHOUT_KDUMP +.\" from FreeBSD: head/tools/build/options/WITHOUT_KDUMP 240690 2012-09-19 11:38:37Z zeising +Set to not build +.Xr kdump 1 +and +.Xr truss 1 . .It Va WITHOUT_KERBEROS .\" from FreeBSD: head/tools/build/options/WITHOUT_KERBEROS 174549 2007-12-12 16:42:03Z ru Set this if you do not want to build Kerberos 5 (KTH Heimdal). @@ -722,10 +748,6 @@ and related support files. .It Va WITH_NAND .\" from FreeBSD: head/tools/build/options/WITH_NAND 235537 2012-05-17 10:11:18Z gber Set to build the NAND Flash components. -.It Va WITHOUT_NCP -.\" from FreeBSD: head/tools/build/options/WITHOUT_NCP 156932 2006-03-21 07:50:50Z ru -Set to not build programs, libraries, and kernel modules -related to NetWare Core protocol. .It Va WITHOUT_NDIS .\" from FreeBSD: head/tools/build/options/WITHOUT_NDIS 183242 2008-09-21 22:02:26Z sam Set to not build programs and libraries @@ -839,6 +861,11 @@ When set, it also enforces the following options: .It .Va WITHOUT_AUTHPF .El +.It Va WITHOUT_PKGBOOTSTRAP +.\" from FreeBSD: head/tools/build/options/WITHOUT_PKGBOOTSTRAP 238023 2012-07-02 20:26:11Z marcel +Set to not build +.Xr pkg 1 +bootstrap tool .It Va WITHOUT_PKGTOOLS .\" from FreeBSD: head/tools/build/options/WITHOUT_PKGTOOLS 183242 2008-09-21 22:02:26Z sam Set to not build diff --git a/share/man/man7/Makefile b/share/man/man7/Makefile index 011fbaf..8417934 100644 --- a/share/man/man7/Makefile +++ b/share/man/man7/Makefile @@ -1,6 +1,8 @@ # @(#)Makefile 8.1 (Berkeley) 6/5/93 # $FreeBSD$ +.include <bsd.own.mk> + #MISSING: eqnchar.7 ms.7 term.7 MAN= adding_user.7 \ ascii.7 \ @@ -34,4 +36,17 @@ MLINKS+= c99.7 c78.7 MLINKS+= c99.7 c89.7 MLINKS+= c99.7 c90.7 +.if ${MK_ATF} != "no" +ATF= ${.CURDIR}/../../../contrib/atf +.PATH: ${ATF}/doc +MAN+= atf.7 + +CLEANFILES+= atf.7 atf.7.tmp +atf.7: atf.7.in + sed -e 's,__DOCDIR__,${DOCDIR}/atf,g' \ + -e 's,__TESTSDIR__,${TESTSBASE},g' \ + < ${.ALLSRC} > ${.TARGET}.tmp + mv ${.TARGET}.tmp ${.TARGET} +.endif + .include <bsd.prog.mk> diff --git a/share/man/man7/build.7 b/share/man/man7/build.7 index f168958..931b444 100644 --- a/share/man/man7/build.7 +++ b/share/man/man7/build.7 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 29, 2011 +.Dd October 10, 2012 .Dt BUILD 7 .Os .Sh NAME @@ -39,6 +39,11 @@ normally .Pa /usr/doc , and .Pa /usr/ports . +These directories may be initially empty or non-existent until updated with +.Xr csup 1 , +.Xr svn 1 , +or +.Xr portsnap 8 . Directory .Pa /usr/src contains the @@ -377,12 +382,6 @@ even if the makefile says otherwise. .It Va WITH_CTF If defined, the build process will run the DTrace CTF conversion tools on built objects. -Please note that this WITH_ option is handled differently than all -other WITH_ options (there is no -.Va WITHOUT_CTF , -or corresponding -.Va MK_CTF -in the build system). .El .Pp Additionally, builds in @@ -489,7 +488,7 @@ on built objects. .It Va NO_SHARE If set, the build does not descend into the .Pa /usr/src/share -subdirectory (i.e. manpages, locale data files, timezone data files and +subdirectory (i.e., manpages, locale data files, timezone data files and other .Pa /usr/src/share files will not be rebuild from their sources). @@ -594,14 +593,17 @@ make TARGET=sparc64 DESTDIR=/clients/sparc64 installworld .Ed .Sh SEE ALSO .Xr cc 1 , +.Xr csup 1 , .Xr install 1 , .Xr make 1 , +.Xr svn 1 , .Xr make.conf 5 , .Xr src.conf 5 , .Xr ports 7 , .Xr release 7 , .Xr config 8 , .Xr mergemaster 8 , +.Xr portsnap 8 , .Xr reboot 8 , .Xr shutdown 8 .Sh AUTHORS diff --git a/share/man/man7/development.7 b/share/man/man7/development.7 index a643542..3da1858 100644 --- a/share/man/man7/development.7 +++ b/share/man/man7/development.7 @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 02, 2012 +.Dd September 19, 2012 .Dt DEVELOPMENT 7 .Os .Sh NAME @@ -48,8 +48,6 @@ kernel. The methods described here are as applicable to production installations as it is to development environments. -You need a good 12-17GB of disk space on one machine to make this work -conveniently. .Sh SETTING UP THE ENVIRONMENT ON THE MASTER SERVER Your master server should always run a stable, production version of the .Fx @@ -60,11 +58,11 @@ The last thing you want to do is to run an unstable environment on your master server which could lead to a situation where you lose the environment and/or cannot recover from a mistake. .Pp -Create a huge partition called +Create a partition called .Pa /FreeBSD . -8-12GB is recommended. +Approximately 20GB is recommended. This partition will contain nearly all the development environment, -including the CVS tree, broken-out source, and possibly even object files. +including the subversion tree, broken-out source, and possibly even object files. You are going to export this partition to your other machines via a READ-ONLY NFS export so do not mix it with other more security-sensitive partitions. @@ -86,73 +84,22 @@ Third, because it makes it far easier to mix and match the development environments which are described later in this document. I recommend a .Pa /usr/obj -partition of at least 5GB. +partition of at least 12GB. .Pp On the master server, use -.Xr csup 1 -to automatically pull down and maintain +.Xr svn 1 +to pull down and maintain the .Fx -CVS archive once a day. +source. The first pull will take a long time, it is several gigabytes, but once you have it, -the daily synchronizations will be quite small. -.Bd -literal -offset 4n -mkdir /FreeBSD/FreeBSD-CVS -rm -rf /home/ncvs -ln -s /FreeBSD/FreeBSD-CVS /home/ncvs -.Ed -.Pp -The -.Xr cron 8 -job should look something like this (please randomize the time of -day!). -Note that you can use the -.Xr csup 1 -configuration file example directly from -.Pa /usr/share/examples -without modification by supplying appropriate arguments -to -.Xr csup 1 . -.Bd -literal -offset 4n -33 6 * * * /usr/bin/csup -r 20 -L 2 -h cvsup.freebsd.org /usr/share/examples/cvsup/cvs-supfile -.Ed -.Pp -Run the -.Xr csup 1 -manually the first time to pull down the archive. -It could take -all day depending on how fast your connection is! -You will run all -.Xr csup 1 -and -.Xr cvs 1 +the updates will be quite small. +Run all +.Xr svn 1 operations as .Dq Li root -and you need to set up a -.Pa ~/.cvsrc -.Pq Pa /root/.cvsrc -file, as shown below, for proper -.Xr cvs 1 -operation. -Using -.Pa ~/.cvsrc -to specify -.Xr cvs 1 -defaults is an excellent way to -.Dq "file and forget" , -but you should never forget that you put them in there. -.Bd -literal -offset 4n -# cvs -q -diff -u -update -Pd -checkout -P -.Ed .Pp -Now use -.Xr cvs 1 -to check out a -STABLE source tree and a -CURRENT source tree, -as well as ports and docs, to create your initial source environment. Keeping the broken-out source and ports in .Pa /FreeBSD allows you to export @@ -160,71 +107,16 @@ it to other machines via read-only NFS. This also means you only need to edit/maintain files in one place and all your clients automatically pick up the changes. .Bd -literal -offset 4n -mkdir /FreeBSD/FreeBSD-4.x -mkdir /FreeBSD/FreeBSD-current - -cd /FreeBSD/FreeBSD-4.x -cvs -d /home/ncvs checkout -rRELENG_4 src - -cd /FreeBSD/FreeBSD-current -cvs -d /home/ncvs checkout src -cvs -d /home/ncvs checkout ports -cvs -d /home/ncvs checkout doc -.Ed -.Pp -Now create a softlink for -.Pa /usr/src -and -.Pa /usr/src2 . -On the main server I always point -.Pa /usr/src -at -STABLE and -.Pa /usr/src2 -at -CURRENT. -On client machines I usually do not have a -.Pa /usr/src2 -and I make -.Pa /usr/src -point at whatever version of -.Fx -the client box is intended to -run. -.Bd -literal -offset 4n -cd /usr -rm -rf src src2 -ln -s /FreeBSD/FreeBSD-4.x/src src (could be -CURRENT on a client) -ln -s /FreeBSD/FreeBSD-current/src src2 (MASTER SERVER ONLY) -.Ed -.Pp -Now you have to make a choice for -.Pa /usr/obj . -Well, hopefully you made it already and chose the partition method. -If you -chose poorly you probably intend to put it in -.Pa /FreeBSD -and, if so, this is -what you want to do: -.Bd -literal -offset 4n -(ONLY IF YOU MADE A POOR CHOICE AND PUT /usr/obj in /FreeBSD!) -mkdir /FreeBSD/obj +mkdir /FreeBSD +cd /FreeBSD +svn co svn://svn.freebsd.org/ports/head ports +svn co svn://svn.freebsd.org/doc/head doc +svn co svn://svn.freebsd.org/base/head src cd /usr -rm -rf obj -ln -s /FreeBSD/obj obj +rm -rf src +ln -s /FreeBSD/src src .Ed .Pp -Alternatively you may chose simply to leave -.Pa /usr/obj -in -.Pa /usr . -If your -.Pa /usr -is large enough this will work, but I do not recommend it for -safety reasons -.Pa ( /usr/obj -is constantly being modified, -.Pa /usr -is not). -.Pp Note that exporting .Pa /usr/obj via read-only NFS to your other boxes will @@ -240,19 +132,17 @@ problems and issues down the line and presents a security problem as well. It is far easier to do builds on the master server and then only do installs on the clients. .Pp -I usually maintain my ports tree via CVS. -It is sitting right there in the master CVS archive and I have even told you -to check it out (see above). +I usually maintain my ports tree via svn or portsnap. With some fancy softlinks you can make the ports tree available both on your master server and on all of your other machines. -Note that the ports tree exists only on the HEAD CVS branch, so its always --CURRENT even on a -STABLE box. +Note that the ports tree exists only on the HEAD ports branch, so its always +usable even on a -STABLE box. This is what you do: .Bd -literal -offset 4n (THESE COMMANDS ON THE MASTER SERVER AND ON ALL CLIENTS) cd /usr rm -rf ports -ln -s /FreeBSD/FreeBSD-current/ports ports +ln -s /FreeBSD/ports ports cd /usr/ports (this pushes into the softlink) rm -rf distfiles (ON MASTER SERVER ONLY) @@ -344,7 +234,7 @@ into the NFS-mounted environment. If a particular client is running -CURRENT, .Pa /usr/src should be a softlink to -.Pa /FreeBSD/FreeBSD-current/src . +.Pa /FreeBSD/src . If it is running -STABLE, .Pa /usr/src should be a softlink to @@ -359,8 +249,8 @@ human variety) on a client. (ON EACH CLIENT) cd /usr rm -rf ports src -ln -s /FreeBSD/FreeBSD-current/ports ports -ln -s /FreeBSD/FreeBSD-XXX/src src +ln -s /FreeBSD/ports ports +ln -s /FreeBSD/src src .Ed .Pp Do not forget to create the working directories so you can build ports, as @@ -521,11 +411,6 @@ subdirectory in which is typically local to the client. You can then do builds to your heart's content! .Sh MAINTAINING A LOCAL BRANCH -I have described how to maintain two versions of the source tree, a stable -version in -.Pa /FreeBSD/FreeBSD-4.x -and a current version in -.Pa /FreeBSD/FreeBSD-current . There is absolutely nothing preventing you from breaking out other versions of the source tree into @@ -548,135 +433,28 @@ which can build those other operating systems. Many developers choose to maintain a local branch of .Fx to test patches or build a custom distribution. -This can be done with CVS or another source code management system -(SubVersion, Perforce, BitKeeper) with its own repository. -Since the main -.Fx -tree is based on CVS, the former is convenient. -.Pp -First, you need to modify your -.Xr csup 1 -environment to avoid it modifying -the local changes you have committed to the repository. -It is important to remove the -.Ic delete -keyword from your -.Pa supfile -and to add the -.Pa CVSROOT -subdirectory to your -.Pa refuse -file. -For more information, see -.Xr csup 1 . -.Pp -The -.Fx -version of -.Xr cvs 1 -examines a custom environmental variable, -.Ev CVS_LOCAL_BRANCH_NUM , -which specifies an integer to use when doing a -.Xr cvs 1 -.Cm tag Ns / Ns Cm rtag . -Set this number to something high (say 1000) to avoid colliding -with potential future branches of the main repository. -For example, -branching a file with version 1.4 produces 1.4.1000. -Future commits to this branch will produce revisions 1.4.1000.1, -1.4.1000.2, etc. -.Pp -To fork your local branch, do: -.Bd -literal -offset 4n -cvs rtag -r RELENG_4 -b LOCAL_RELENG_4 src -.Ed -.Pp -After this, you can check out a copy from your local repository using the -new tag and begin making changes and committing them. -For more information on using CVS, see -.Xr cvs 1 . -.Pp -.Sy WARNING! -The -.Xr csup 1 -utility may blow away changes made on a local branch in -some situations. -This has been reported to occur when the master CVS repository is -directly manipulated or an RCS file is changed. -At this point, -.Xr csup 1 -notices that the client and server have entirely -different RCS files, so it does a full replace instead of trying to -send just deltas. -Ideally this situation should never arise, but in the real world it -happens all the time. -.Pp -While this is the only scenario where the problem should crop up, -there have been some suspicious-sounding reports of -.Ev CVS_LOCAL_BRANCH_NUM -lossage that cannot be explained by this alone. -Bottom line is, if you value your local branch then you -should back it up before every update. -.Sh UPDATING VIA CVS -The advantage of using -.Xr csup 1 -to maintain an updated copy of the CVS -repository instead of using it to maintain source trees directly is that you -can then pick and choose when you bring your source tree (or pieces of your -source tree) up to date. +This can be done with svn or another source code management system +(git, mercurial, Perforce, BitKeeper) with its own repository. +.Sh "UPDATING VIA SVN" By using a .Xr cron 8 -job to maintain an updated CVS repository, you can update -your source tree at any time without any network cost as follows: +job to maintain an updated svn repository, +the source tree can be +updated at any time as follows: .Bd -literal -offset 4n (on the main development server) -cd /usr/src -cvs -d /home/ncvs update -cd /usr/src2 -cvs -d /home/ncvs update -cd /usr/ports -cvs -d /home/ncvs update +cd /usr +svn update src doc ports .Ed .Pp It is that simple, and since you are exporting the whole lot to your clients, your clients have immediate visibility into the updated source. This is a good time to also remind you that most of the -.Xr cvs 1 +.Xr svn 1 operations you do will be done as -.Dq Li root , -and that certain options are -required for CVS to operate properly on the -.Fx -repository. -For example, -.Fl Pd -is necessary when running -.Nm cvs Cm update . -These options are typically placed in your -.Pa ~/.cvsrc -(as already described) -so you do not have to re-specify them every time you run a -.Xr cvs 1 -command. -Maintaining the CVS repository also gives you far more flexibility -in regards to breaking out multiple versions of the source tree. -It is a good idea to give your -.Pa /FreeBSD -partition a lot of space (I recommend -8-12GB) precisely for that reason. -If you can make it 15GB I would do it. +.Dq Li root . .Pp -I generally do not -.Nm cvs Cm update -via a -.Xr cron 8 -job. -This is because I generally want the source to not change out from under me -when I am developing code. -Instead I manually update the source every so often...\& when I feel it is -a good time. -My recommendation is to only keep the CVS repository synchronized via .Xr cron 8 . .Sh SEE ALSO .Xr crontab 1 , @@ -696,3 +474,9 @@ and first appeared in .Fx 5.0 , December 2002. +It was since extensively modified by +.An Eitan Adler Aq eadler@FreeBSD.org +to reflect the repository conversion from +.Xr cvs +to +.Xr svn . diff --git a/share/man/man7/hier.7 b/share/man/man7/hier.7 index df76f46..25b1566 100644 --- a/share/man/man7/hier.7 +++ b/share/man/man7/hier.7 @@ -32,7 +32,7 @@ .\" @(#)hier.7 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd May 25, 2008 +.Dd January 21, 2010 .Dt HIER 7 .Os .Sh NAME @@ -252,14 +252,8 @@ FIFOs file system MS-DOS file system .It Pa nfs/ C include files for NFS (Network File System) version 2, 3 and 4 -.It Pa ntfs/ -NTFS file system .It Pa nullfs/ loopback file system -.It Pa nwfs/ -NetWare file system -.It Pa portalfs/ -portal file system .It Pa procfs/ process file system .It Pa smbfs/ @@ -552,6 +546,8 @@ see .Xr setlocale 3 .It Pa man/ manual pages +.It Pa mdocml/ +data files used by mdocml .It Pa me/ macros for use with the me macro package; see diff --git a/share/man/man7/release.7 b/share/man/man7/release.7 index 2a794c8..ff6fec4 100644 --- a/share/man/man7/release.7 +++ b/share/man/man7/release.7 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 14, 2012 +.Dd September 16, 2012 .Dt RELEASE 7 .Os .Sh NAME @@ -105,11 +105,7 @@ environment in It then checks out the src tree specified by .Ar svn-branch using -.Xr svn 1 -and (optionally) the ports and documentation trees using -.Xr csup 1 -or -.Xr cvs 1 . +.Xr svn 1 . Once the various source trees have been obtained, it executes .Dq Li "make release" within the @@ -122,33 +118,19 @@ release media. .Pp Environment variables: .Bl -tag -width ".Cm MAKE_FLAGS" -.It Ev CVSUP_HOST -The CVSUP server to use for the doc and ports trees. One of -.Ev CVSUP_HOST -or -.Ev CVSROOT -must be specified for ports and documentation to be included in the release. -.It Ev CVSROOT -The location of the -.Fx -CVS repository to use for the doc and ports trees. One of -.Ev CVSUP_HOST -or -.Ev CVSROOT -must be specified for ports and documentation to be included in the release. -.It Ev CVS_TAG -If the variable -.Ev CVS_TAG -is set, that tag will be used for CVS checkouts (doc and ports), otherwise -.Ic generate-release.sh -will use HEAD. .It Ev MAKE_FLAGS This environment variable can be set to pass flags (e.g. -j) to .Xr make 1 when invoked by the script. .It Ev SVNROOT -The location of the FreeBSD SVN source repository. Defaults to -.Pa svn://svn.freebsd.org/base . +The location of the FreeBSD SVN source, doc, and ports repositories. +Defaults to +.Pa svn://svn.freebsd.org/base +for the source tree, +.Pa svn://svn.freebsd.org/ports/head +for the Ports Collection, and +.Pa svn://svn.freebsd.org/doc/head +for the Documentation Project source. .It Ev RELSTRING Optional base name for generated media images (e.g. FreeBSD-9.0-RC2-amd64). Defaults to the output of @@ -246,7 +228,7 @@ If defined, the Ports Collection will be omitted from the release. .It Va NOSRC If set, do not include system source code in the release. .It Va NODOC -If defined, the SGML-based documentation from the +If defined, the XML-based documentation from the .Fx Documentation Project will not be built. However, the @@ -317,7 +299,7 @@ The following sequence of commands can be used to build a in a clean environment, including ports and documentation: .Bd -literal -offset indent cd /usr/src/release -export CVSUP_HOST=cvsupN.freebsd.org +export SVNROOT=svn://svn.freebsd.org/base sh generate-release.sh head /local3/release .Ed .Pp @@ -326,7 +308,6 @@ After running these commands, all prepared release files are available in the directory. .Sh SEE ALSO .Xr cc 1 , -.Xr cvs 1 , .Xr install 1 , .Xr make 1 , .Xr svn 1 Pq Pa ports/devel/subversion-freebsd , @@ -376,7 +357,7 @@ was overhauled and the wrapper script introduced to support the introduction of a new installer. .Pp At near 1000 revisions spread over multiple branches, the -.Xr cvs 1 +.Xr svn 1 log of .Pa src/release/Makefile contains a vivid historical record of some diff --git a/share/man/man4/harp.4 b/share/man/man9/BUS_CHILD_DELETED.9 index 9495f62..4caa856 100644 --- a/share/man/man4/harp.4 +++ b/share/man/man9/BUS_CHILD_DELETED.9 @@ -1,7 +1,8 @@ +.\" -*- nroff -*- .\" -.\" Copyright (c) 2003 -.\" Fraunhofer Institute for Open Communication Systems (FhG Fokus). -.\" All rights reserved. +.\" Copyright (c) 2012 Advanced Computing Technologies LLC +.\" Written by: John H. Baldwin <jhb@FreeBSD.org> +.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -24,43 +25,31 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" Author: Hartmut Brandt <harti@FreeBSD.org> -.\" .\" $FreeBSD$ .\" -.Dd July 21, 2003 -.Dt HARP 4 +.Dd August 21, 2012 +.Dt BUS_CHILD_DELETED 9 .Os .Sh NAME -.Nm harp -.Nd pseudo physical interface driver for HARP +.Nm BUS_CHILD_DELETED +.Nd "notify a bus device that a child is being deleted" .Sh SYNOPSIS -.Cd device atm -.Cd options NATM -.Cd options ATM_CORE -.Cd device harp +.In sys/param.h +.In sys/bus.h +.Ft void +.Fn BUS_CHILD_DELETED "device_t dev" "device_t child" .Sh DESCRIPTION The -.Nm -driver, when loaded, attaches to all -.Xr netgraph 4 -ATM interfaces in the system, and for -each of these interfaces presents a physical interface to the HARP stack. -The name of the -.Nm -physical interface is the same as the name of the -Netgraph interface (they are in different namespaces). +.Fn BUS_CHILD_DELETED +method is invoked by the new-bus framework when a device is deleted. +A bus driver can provide an implementation of this method to +release bus-specific resources associated with a device such as +instance variables. .Sh SEE ALSO -.Xr fatm 4 , -.Xr hatm 4 , -.Xr ng_atm 4 , -.Xr patm 4 , -.Xr atm 8 -.Sh AUTHORS -.An Harti Brandt Aq harti@FreeBSD.org -.Sh CAVEATS -When -.Xr fatm 4 -is used, it must be started before -.Nm -is loaded, to get the correct configuration for the HARP physical interface. +.Xr BUS_ADD_CHILD 9 , +.Xr device 9 +.Sh HISTORY +The +.Fn BUS_CHILD_DELETED +method first appeared in +.Fx 10.0 . diff --git a/share/man/man9/BUS_CHILD_DETACHED.9 b/share/man/man9/BUS_CHILD_DETACHED.9 new file mode 100644 index 0000000..4e032d1 --- /dev/null +++ b/share/man/man9/BUS_CHILD_DETACHED.9 @@ -0,0 +1,52 @@ +.\" -*- nroff -*- +.\" +.\" Copyright (c) 2012 Advanced Computing Technologies LLC +.\" Written by: John H. Baldwin <jhb@FreeBSD.org> +.\" 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 August 21, 2012 +.Dt BUS_CHILD_DETACHED 9 +.Os +.Sh NAME +.Nm BUS_CHILD_DETACHED +.Nd "notify a bus device that a child was detached" +.Sh SYNOPSIS +.In sys/param.h +.In sys/bus.h +.Ft void +.Fn BUS_CHILD_DETACHED "device_t dev" "device_t child" +.Sh DESCRIPTION +The +.Fn BUS_CHILD_DETACHED +method is invoked by the new-bus framework after a device is detached. +A bus driver can provide an implementation of this method to +reclaim any resources allocated on behalf of the child or +to cleanup state not properly released by a +.Xr DEVICE_DETACH 9 +method. +.Sh SEE ALSO +.Xr device 9 , +.Xr DEVICE_DETACH 9 diff --git a/share/man/man9/DRIVER_MODULE.9 b/share/man/man9/DRIVER_MODULE.9 index ca73945..274fdcc 100644 --- a/share/man/man9/DRIVER_MODULE.9 +++ b/share/man/man9/DRIVER_MODULE.9 @@ -28,11 +28,14 @@ .\" .\" $FreeBSD$ .\" -.Dd August 27, 2011 +.Dd August 21, 2012 .Dt DRIVER_MODULE 9 .Os .Sh NAME -.Nm DRIVER_MODULE +.Nm DRIVER_MODULE , +.Nm DRIVER_MODULE_ORDERED , +.Nm EARLY_DRIVER_MODULE , +.Nm EARLY_DRIVER_MODULE_ORDERED .Nd kernel driver declaration macro .Sh SYNOPSIS .In sys/param.h @@ -40,6 +43,9 @@ .In sys/bus.h .In sys/module.h .Fn DRIVER_MODULE name busname "driver_t driver" "devclass_t devclass" "modeventhand_t evh" "void *arg" +.Fn DRIVER_MODULE_ORDERED name busname "driver_t driver" "devclass_t devclass" "modeventhand_t evh" "void *arg" "int order" +.Fn EARLY_DRIVER_MODULE name busname "driver_t driver" "devclass_t devclass" "modeventhand_t evh" "void *arg" "enum sysinit_elem_order order" "int pass" +.Fn EARLY_DRIVER_MODULE_ORDERED name busname "driver_t driver" "devclass_t devclass" "modeventhand_t evh" "void *arg" "enum sysinit_elem_order order" "int pass" .Sh DESCRIPTION The .Fn DRIVER_MODULE @@ -95,10 +101,50 @@ The is unused at this time and should be a .Dv NULL pointer. +.Pp +The +.Fn DRIVER_MODULE_ORDERED +macro allows a driver to be registered in a specific order. +This can be useful if a single kernel module contains multiple drivers +that are inter-dependent. +The +.Fa order +argument should be one of the +.Xr SYSINIT 9 +initialization ordering constants +.Pq Dv SI_ORDER_* . +The default order for a driver module is +.Dv SI_ORDER_MIDDLE . +Typically a module will specify an order of +.Dv SI_ORDER_ANY +for a single driver to ensure it is registered last. +.Pp +The +.Fn EARLY_DRIVER_MODULE +macro allows a driver to be registered for a specific pass level. +The boot time probe and attach process makes multiple passes over the +device tree. +Certain critical drivers that provide basic services needed by other +devices are attach during earlier passes. +Most drivers are attached in a final general pass. +A driver that attaches during an early pass must register for a specific +pass level +.Pq BUS_PASS_* +via the +.Fa pass +argument. +Once a driver is registered it is available to attach to devices for +all subsequent passes. +.Pp +The +.Fn EARLY_DRIVER_MODULE_ORDERED +macro allows a driver to be registered both in a specific order and +for a specific pass level. .Sh SEE ALSO .Xr device 9 , .Xr driver 9 , -.Xr module 9 +.Xr module 9 , +.Xr SYSINIT 9 .Sh AUTHORS This manual page was written by .An Alexander Langer Aq alex@FreeBSD.org . diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 06b0e33..84c0f56 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -26,6 +26,8 @@ MAN= accept_filter.9 \ bus_alloc_resource.9 \ BUS_BIND_INTR.9 \ bus_child_present.9 \ + BUS_CHILD_DELETED.9 \ + BUS_CHILD_DETACHED.9 \ BUS_CONFIG_INTR.9 \ BUS_DESCRIBE_INTR.9 \ bus_dma.9 \ @@ -278,7 +280,6 @@ MAN= accept_filter.9 \ vfs_getnewfsid.9 \ vfs_getopt.9 \ vfs_getvfs.9 \ - VFS_LOCK_GIANT.9 \ VFS_MOUNT.9 \ vfs_mount.9 \ vfs_mountedfrom.9 \ @@ -613,7 +614,8 @@ MLINKS+=devstat.9 devicestat.9 \ MLINKS+=disk.9 disk_alloc.9 \ disk.9 disk_create.9 \ disk.9 disk_destroy.9 \ - disk.9 disk_gone.9 + disk.9 disk_gone.9 \ + disk.9 disk_resize.9 MLINKS+=domain.9 DOMAIN_SET.9 \ domain.9 domain_add.9 \ domain.9 pfctlinput.9 \ @@ -628,6 +630,9 @@ MLINKS+=drbr.9 drbr_free.9 \ drbr.9 drbr_empty.9 \ drbr.9 drbr_inuse.9 \ drbr.9 drbr_stats_update.9 +MLINKS+=DRIVER_MODULE.9 DRIVER_MODULE_ORDERED.9 \ + DRIVER_MODULE.9 EARLY_DRIVER_MODULE.9 \ + DRIVER_MODULE.9 EARLY_DRIVER_MODULE_ORDERED.9 MLINKS+=EVENTHANDLER.9 EVENTHANDLER_DECLARE.9 \ EVENTHANDLER.9 EVENTHANDLER_DEREGISTER.9 \ EVENTHANDLER.9 eventhandler_deregister.9 \ @@ -1408,7 +1413,6 @@ MLINKS+=vfs_getopt.9 vfs_copyopt.9 \ vfs_getopt.9 vfs_setopt.9 \ vfs_getopt.9 vfs_setopt_part.9 \ vfs_getopt.9 vfs_setopts.9 -MLINKS+=VFS_LOCK_GIANT.9 VFS_UNLOCK_GIANT.9 MLINKS+=vhold.9 vdrop.9 \ vhold.9 vdropl.9 \ vhold.9 vholdl.9 diff --git a/share/man/man9/VFS.9 b/share/man/man9/VFS.9 index ca3109b..cf5189e 100644 --- a/share/man/man9/VFS.9 +++ b/share/man/man9/VFS.9 @@ -49,10 +49,12 @@ rather than implementing empty functions or casting to .Xr VFS_INIT 9 , .Xr VFS_MOUNT 9 , .Xr VFS_QUOTACTL 9 , +.Xr VFS_SET 9 , .Xr VFS_STATFS 9 , .Xr VFS_SYNC 9 , .Xr VFS_UNMOUNT 9 , .Xr VFS_VGET 9 , +.Xr VOP_VPTOFH 9 , .Xr vnode 9 .Sh AUTHORS This manual page was written by diff --git a/share/man/man9/VFS_LOCK_GIANT.9 b/share/man/man9/VFS_LOCK_GIANT.9 deleted file mode 100644 index 9249e6c..0000000 --- a/share/man/man9/VFS_LOCK_GIANT.9 +++ /dev/null @@ -1,93 +0,0 @@ -.\" -.\" Copyright (c) 2005 Robert N. M. Watson -.\" 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(s), this list of conditions and the following disclaimer as -.\" the first lines of this file unmodified other than the possible -.\" addition of one or more copyright notices. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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 September 21, 2005 -.Dt VFS_LOCK_GIANT 9 -.Os -.Sh NAME -.Nm VFS_LOCK_GIANT , -.Nm VFS_UNLOCK_GIANT -.Nd "conditionally lock and unlock Giant around entry into VFS" -.Sh SYNOPSIS -.In sys/param.h -.In sys/mount.h -.In sys/vnode.h -.Ft int -.Fn VFS_LOCK_GIANT "struct mount *mp" -.Ft void -.Fn VFS_UNLOCK_GIANT "int vfslocked" -.Sh DESCRIPTION -.Fn VFS_LOCK_GIANT -will conditionally acquire the -.Va Giant -lock if the file system referenced by -.Fa mp -is marked as MPSAFE or not, returning a flag indicating whether -.Va Giant -was -set, which may later be passed to -.Fn VFS_UNLOCK_GIANT . -The value of -.Fa mp -will typically be derived from the mount pointer in a -.Vt vnode -on which a VFS operation will be performed. -.Pp -.Fn VFS_UNLOCK_GIANT -conditionally releases the -.Va Giant -lock if the passed -.Fa vfslocked -argument is non-zero. -It is expected that the argument will be derived from the return values of -.Fn VFS_LOCK_GIANT -or -.Xr NDHASGIANT 9 . -.Sh RETURN VALUES -.Fn VFS_LOCK_GIANT -returns a boolean indicating whether or not -.Va Giant -was acquired. -.Sh SEE ALSO -.Xr mutex 9 , -.Xr NDHASGIANT 9 , -.Xr vnode 9 -.Sh AUTHORS -.An -nosplit -MPSAFE VFS support for -.Fx -was implemented by -.An Jeff Roberson . -.Pp -This manual page was written by -.An Robert Watson . -.Sh BUGS -Non-MPSAFE file systems exist, requiring callers conditional locking and -unlocking of -.Va Giant . diff --git a/share/man/man9/buf_ring.9 b/share/man/man9/buf_ring.9 index ffade94..95b3a3d 100644 --- a/share/man/man9/buf_ring.9 +++ b/share/man/man9/buf_ring.9 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 30, 2012 +.Dd September 27, 2012 .Dt BUF_RING 9 .Os .Sh NAME @@ -33,7 +33,6 @@ .Nm buf_ring_alloc , .Nm buf_ring_free , .Nm buf_ring_enqueue , -.Nm buf_ring_enqueue_bytes , .Nm buf_ring_dequeue_mc , .Nm buf_ring_dequeue_sc , .Nm buf_ring_count , @@ -50,8 +49,6 @@ .Fn buf_ring_free "struct buf_ring *br" "struct malloc_type *type" .Ft int .Fn buf_ring_enqueue "struct buf_ring *br" "void *buf" -.Ft int -.Fn buf_ring_enqueue_bytes "struct buf_ring *br" "void *buf" "int bytes" .Ft void * .Fn buf_ring_dequeue_mc "struct buf_ring *br" .Ft void * @@ -91,12 +88,6 @@ The function is used to enqueue a buffer to a buf_ring. .Pp The -.Fn buf_ring_enqueue_bytes -function is used to enqueue a buffer to a buf_ring and increment the -number of bytes enqueued by -.Fa bytes . -.Pp -The .Fn buf_ring_dequeue_mc function is a multi-consumer safe way of dequeueing elements from a buf_ring. .Pp @@ -134,9 +125,7 @@ otherwise. .Sh RETURN VALUES The .Fn buf_ring_enqueue -and -.Fn buf_ring_enqueue_bytes -functions return +function return .Er ENOBUFS if there are no available slots in the buf_ring. .Sh HISTORY diff --git a/share/man/man9/bus_dma.9 b/share/man/man9/bus_dma.9 index 3b5ca78..ab85f3b 100644 --- a/share/man/man9/bus_dma.9 +++ b/share/man/man9/bus_dma.9 @@ -580,8 +580,13 @@ The status of the mapping has been delivered to the callback. The mapping has been deferred for lack of resources. The callback will be called as soon as resources are available. Callbacks are serviced in FIFO order. -To ensure that ordering is guaranteed, all subsequent load requests will also -be deferred until all callbacks have been processed. +.Pp +Note that subsequent load operations for the same tag that do not require +extra resources will still succeed. +This may result in out-of-order processing of requests. +If the caller requires the order of requests to be preserved, +then the caller is required to stall subsequent requests until a pending +request's callback is invoked. .It Er ENOMEM The load request has failed due to insufficient resources, and the caller specifically used the diff --git a/share/man/man9/cd.9 b/share/man/man9/cd.9 index 59f796d..f5b748b 100644 --- a/share/man/man9/cd.9 +++ b/share/man/man9/cd.9 @@ -57,7 +57,7 @@ This can lead to drives requiring special handling in the driver. The following is a list of quirks that the driver recognize. .Bl -tag -width CD_Q_BCD_TRACKS .It Dv CD_Q_NO_TOUCH -This flag tell the driver not to probe the drive at attach time to see if +This flag tells the driver not to probe the drive at attach time to see if there is a disk in the drive and find out what size it is. This flag is currently unimplemented in the CAM .Nm diff --git a/share/man/man9/devfs_set_cdevpriv.9 b/share/man/man9/devfs_set_cdevpriv.9 index a2b0279..736a007 100644 --- a/share/man/man9/devfs_set_cdevpriv.9 +++ b/share/man/man9/devfs_set_cdevpriv.9 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 8, 2008 +.Dd August 15, 2012 .Dt DEVFS_CDEVPRIV 9 .Os .Sh NAME @@ -79,6 +79,10 @@ finished operating, the callback is called, with private data supplied .Va data argument. +The +.Fn devfs_clear_cdevpriv +function will be also be called if the open callback +function returns an error code. .Pp On the last filedescriptor close, system automatically arranges .Fn devfs_clear_cdevpriv diff --git a/share/man/man9/disk.9 b/share/man/man9/disk.9 index 4643512..659a40d 100644 --- a/share/man/man9/disk.9 +++ b/share/man/man9/disk.9 @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 18, 2004 +.Dd October 30, 2012 .Dt DISK 9 .Os .Sh NAME @@ -43,6 +43,8 @@ .Fn disk_gone "struct disk *disk" .Ft void .Fn disk_destroy "struct disk *disk" +.Ft int +.Fn disk_resize "struct disk *disk" "int flags" .Sh DESCRIPTION The disk storage API permits kernel device drivers providing access to disk-like storage devices to advertise the device to other kernel @@ -67,6 +69,13 @@ function, fill in the fields and call .Fn disk_create when the device is ready to service requests. +.Fn disk_resize +can be called by the driver after modifying +.Va d_mediasize +to notify GEOM about the disk capacity change. +The +.Fa flags +field should be set to either M_WAITOK, or M_NOWAIT. .Fn disk_gone orphans all of the providers associated with the drive, setting an error condition of ENXIO in each one. @@ -145,6 +154,16 @@ Optional: if configured with .Xr dumpon 8 , this function is invoked from a very restricted system state after a kernel panic to record a copy of the system RAM to the disk. +.It Vt "disk_getattr_t *" Va d_getattr +Optional: if this method is provided, it gives the disk driver the +opportunity to override the default GEOM response to BIO_GETATTR requests. +This function should return -1 if the attribute is not handled, 0 if the +attribute is handled, or an errno to be passed to g_io_deliver(). +.It Vt "disk_gone_t *" Va d_gone +Optional: if this method is provided, it will be called after disk_gone() +is called, once GEOM has finished its cleanup process. +Once this callback is called, it is safe for the disk driver to free all of +its resources, as it will not be receiving further calls from GEOM. .El .Ss Mandatory Media Properties The following fields identify the size and granularity of the disk device. @@ -180,7 +199,23 @@ Please see .Pa src/sys/geom/notes for details. .It Vt char Va d_ident[DISK_IDENT_SIZE] -This field can and should be used to store disk's serial number. +This field can and should be used to store disk's serial number if the +d_getattr method described above isn't implemented, or if it does not +support the GEOM::ident attribute. +.It Vt char Va d_descr[DISK_IDENT_SIZE] +This field can be used to store the disk vendor and product description. +.It Vt uint16_t Va d_hba_vendor +This field can be used to store the PCI vendor ID for the HBA connected to +the disk. +.It Vt uint16_t Va d_hba_device +This field can be used to store the PCI device ID for the HBA connected to +the disk. +.It Vt uint16_t Va d_hba_subvendor +This field can be used to store the PCI subvendor ID for the HBA connected to +the disk. +.It Vt uint16_t Va d_hba_subdevice +This field can be used to store the PCI subdevice ID for the HBA connected to +the disk. .El .Ss Driver Private Data This field may be used by the device driver to store a pointer to diff --git a/share/man/man9/drbr.9 b/share/man/man9/drbr.9 index 168ce10..eebc3a7 100644 --- a/share/man/man9/drbr.9 +++ b/share/man/man9/drbr.9 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 30, 2012 +.Dd September 27, 2012 .Dt DRBR 9 .Os .Sh NAME @@ -37,7 +37,6 @@ .Nm drbr_flush , .Nm drbr_empty , .Nm drbr_inuse , -.Nm drbr_stats_update , .Nd network driver interface to buf_ring .Sh SYNOPSIS .In sys/param.h @@ -57,8 +56,6 @@ .Fn drbr_empty "struct ifnet *ifp" "struct buf_ring *br" .Ft int .Fn drbr_inuse "struct ifnet *ifp" "struct buf_ring *br" -.Ft void -.Fn drbr_stats_update "struct ifnet *ifp" "int len" "int mflags" .Sh DESCRIPTION The .Nm @@ -122,10 +119,6 @@ there will not be more mbufs when .Fn drbr_dequeue is actually called. Provided the tx queue lock is held there will not be less. -.Pp -The -.Fn drbr_stats_update -function updates the number of bytes and the number of multicast packets sent. .Sh RETURN VALUES The .Fn drbr_enqueue diff --git a/share/man/man9/hash.9 b/share/man/man9/hash.9 index d977ac3..7e48da9 100644 --- a/share/man/man9/hash.9 +++ b/share/man/man9/hash.9 @@ -26,7 +26,7 @@ .\" $OpenBSD: hash.9,v 1.5 2003/04/17 05:08:39 jmc Exp $ .\" $FreeBSD$ .\" -.Dd April 3, 2007 +.Dd September 4, 2012 .Dt HASH 9 .Os .Sh NAME @@ -36,7 +36,9 @@ .Nm hash32_str , .Nm hash32_strn , .Nm hash32_stre , -.Nm hash32_strne +.Nm hash32_strne , +.Nm jenkins_hash32 , +.Nm jenkins_hash .Nd general kernel hashing functions .Sh SYNOPSIS .In sys/hash.h @@ -50,6 +52,10 @@ .Fn hash32_stre "const void *buf" "int end" "const char **ep" "uint32_t hash" .Ft uint32_t .Fn hash32_strne "const void *buf" "size_t len" "int end" "const char **ep" "uint32_t hash" +.Ft uint32_t +.Fn jenkins_hash "const void *buf" "size_t len" "uint32_t hash" +.Ft uint32_t +.Fn jenkins_hash32 "const uint32_t *buf" "size_t count" "uint32_t hash" .Sh DESCRIPTION The .Fn hash32 @@ -107,6 +113,23 @@ is not .Dv NULL , it is set to the point in the buffer at which the hash function terminated hashing. +.Pp +The +.Fn jenkins_hash +function has same semantics as the +.Fn hash32_buf , +but provides more advanced hashing algorithm with better distribution. +.Pp +The +.Fn jenkins_hash32 +uses same hashing algorithm as the +.Fn jenkins_hash +function, but works only on +.Ft uint32_t +sized arrays, thus is simplier and faster. +It accepts an array of +.Ft uint32_t +values in its first argument and size of this array in the second argument. .Sh RETURN VALUES The .Fn hash32 @@ -150,12 +173,24 @@ be revisited. .Sh HISTORY The .Nm -functions were first committed to +functions first appeared in .Nx 1.6 . +The current implementation of +.Nm hash32 +functions was first committed to +.Ox 3.2 , +and later imported to +.Fx 6.1 . +The +.Nm jenkins_hash +functions were added in +.Fx 10.0 . +.Sh AUTHORS +The +.Nm hash32 +functions were written by +.An Tobias Weingartner . The -.Ox -versions were written and massaged for -.Ox 2.3 -by Tobias Weingartner, -and finally committed for -.Ox 3.2 . +.Nm jenkins_hash +functions was written by +Bob Jenkins . diff --git a/share/man/man9/ieee80211_node.9 b/share/man/man9/ieee80211_node.9 index 452bbcc..e065254 100644 --- a/share/man/man9/ieee80211_node.9 +++ b/share/man/man9/ieee80211_node.9 @@ -185,7 +185,7 @@ iwi_node_alloc(struct ieee80211vap *vap, { struct iwi_node *in; - in = malloc(sizeof (struct iwi_node), M_80211_NODE, + in = malloc(sizeof(struct iwi_node), M_80211_NODE, M_NOWAIT | M_ZERO); if (in == NULL) return NULL; diff --git a/share/man/man9/kernel_mount.9 b/share/man/man9/kernel_mount.9 index f34e759..7cf4fae 100644 --- a/share/man/man9/kernel_mount.9 +++ b/share/man/man9/kernel_mount.9 @@ -153,12 +153,12 @@ msdosfs_cmount(struct mntarg *ma, void *data, int flags, struct thread *td) if (data == NULL) return (EINVAL); - error = copyin(data, &args, sizeof args); + error = copyin(data, &args, sizeof(args)); if (error) return (error); ma = mount_argsu(ma, "from", args.fspec, MAXPATHLEN); - ma = mount_arg(ma, "export", &args.export, sizeof args.export); + ma = mount_arg(ma, "export", &args.export, sizeof(args.export)); ma = mount_argf(ma, "uid", "%d", args.uid); ma = mount_argf(ma, "gid", "%d", args.gid); ma = mount_argf(ma, "mask", "%d", args.mask); diff --git a/share/man/man9/locking.9 b/share/man/man9/locking.9 index f634d34..a8cf391 100644 --- a/share/man/man9/locking.9 +++ b/share/man/man9/locking.9 @@ -37,11 +37,19 @@ kernel is written to run across multiple CPUs and as such requires several different synchronization primitives to allow the developers to safely access and manipulate the many data types required. .Ss Mutexes -Mutexes (also called "sleep mutexes") are the most commonly used +Mutexes (also erroneously called "sleep mutexes") are the most commonly used synchronization primitive in the kernel. -Thread acquires (locks) a mutex before accessing data shared with other +A thread acquires (locks) a mutex before accessing data shared with other threads (including interrupt threads), and releases (unlocks) it afterwards. -If the mutex cannot be acquired, the thread requesting it will sleep. +If the mutex cannot be acquired, the thread requesting it will wait. +Mutexes are by default adaptive, meaning that +if the owner of a contended mutex is currently running on another CPU, +then a thread attempting to acquire the mutex will briefly spin +in the hope that the owner is only briefly holding it, +and might release it shortly. +If the owner does not do so, the waiting thread proceeds to yield the processor, +allowing other threads to run. +If the owner is not currently actually running then the spin step is skipped. Mutexes fully support priority propagation. .Pp See @@ -49,9 +57,10 @@ See for details. .Ss Spin mutexes Spin mutexes are variation of basic mutexes; the main difference between -the two is that spin mutexes never sleep - instead, they spin, waiting -for the thread holding the lock, which runs on another CPU, to release it. -Differently from ordinary mutex, spin mutexes disable interrupts when acquired. +the two is that spin mutexes never yield the processor - instead, they spin, +waiting for the thread holding the lock, +(which must be running on another CPU), to release it. +Spin mutexes disable interrupts while the held so as to not get pre-empted. Since disabling interrupts is expensive, they are also generally slower. Spin mutexes should be used only when necessary, e.g. to protect data shared with interrupt filter code (see @@ -122,7 +131,7 @@ and read-mostly locks. They don't support priority propagation. They should be considered to be closely related to .Xr sleep 9 . -In fact it could in some cases be +They could in some cases be considered a conditional sleep. .Pp See @@ -146,8 +155,8 @@ A thread must hold the mutex before calling the .Fn cv_wait* , functions. When a thread waits on a condition, the mutex -is atomically released before the thread is blocked, then reacquired -before the function call returns. +is atomically released before the thread yields the processor, +then reacquired before the function call returns. .Pp See .Xr condvar 9 @@ -255,14 +264,14 @@ Many of these rules are checked using the .Xr witness 4 code. .Ss Bounded vs. unbounded sleep -The following primitives perform bounded sleep: mutexes, pool mutexes, -reader/writer locks and read-mostly locks. +The following primitives perform bounded sleep: + mutexes, pool mutexes, reader/writer locks and read-mostly locks. .Pp -The following primitives block (perform unbounded sleep): shared/exclusive locks, -counting semaphores, condition variables, sleep/wakeup and lockmanager locks. +The following primitives may perform an unbounded sleep: +shared/exclusive locks, counting semaphores, condition variables, sleep/wakeup and lockmanager locks. .Pp -It is an error to do any operation that could result in any kind of sleep while -holding spin mutex. +It is an error to do any operation that could result in yielding the processor +while holding a spin mutex. .Pp As a general rule, it is an error to do any operation that could result in unbounded sleep while holding any primitive from the 'bounded sleep' group. @@ -284,21 +293,22 @@ Because the lock gets dropped during sleep, one must re-test all the assumptions that were made before, all the way up the call graph to the place where the lock was acquired. .Pp -It is an error to do any operation that could result in any kind of sleep when -running inside an interrupt filter. +It is an error to do any operation that could result in yielding of +the processor when running inside an interrupt filter. .Pp It is an error to do any operation that could result in unbounded sleep when running inside an interrupt thread. .Ss Interaction table The following table shows what you can and can not do while holding one of the synchronization primitives discussed: -.Bl -column ".Ic xxxxxxxxxxxxxxxxxxx" ".Xr XXXXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXX" -offset indent -.It Em "You have: You want:" Ta spin mtx Ta mutex Ta sx Ta rwlock Ta rmlock Ta sleep +.Bl -column ".Ic xxxxxxxxxxxxxxxx" ".Xr XXXXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXX" -offset indent +.It Em " You want:" Ta spin-mtx Ta mutex Ta rwlock Ta rmlock Ta sx Ta sleep +.It Em "You have: " Ta ------ Ta ------ Ta ------ Ta ------ Ta ------ Ta ------ .It spin mtx Ta \&ok-1 Ta \&no Ta \&no Ta \&no Ta \&no Ta \&no-3 -.It mutex Ta \&ok Ta \&ok-1 Ta \&no Ta \&ok Ta \&ok Ta \&no-3 -.It sx Ta \&ok Ta \&ok Ta \&ok-2 Ta \&ok Ta \&ok Ta \&ok-4 -.It rwlock Ta \&ok Ta \&ok Ta \&no Ta \&ok-2 Ta \&ok Ta \&no-3 -.It rmlock Ta \&ok Ta \&ok Ta \&no-5 Ta \&ok Ta \&ok-2 Ta \&no-5 +.It mutex Ta \&ok Ta \&ok-1 Ta \&ok Ta \&ok Ta \&no Ta \&no-3 +.It rwlock Ta \&ok Ta \&ok Ta \&ok-2 Ta \&ok Ta \&no Ta \&no-3 +.It rmlock Ta \&ok Ta \&ok Ta \&ok Ta \&ok-2 Ta \&no-5 Ta \&no-5 +.It sx Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&no-2 Ta \&ok-4 .El .Pp .Em *1 diff --git a/share/man/man9/malloc.9 b/share/man/man9/malloc.9 index 7490939..51b8cd3 100644 --- a/share/man/man9/malloc.9 +++ b/share/man/man9/malloc.9 @@ -197,7 +197,7 @@ MALLOC_DEFINE(M_FOOBUF, "foobuffers", "Buffers to foo data into the ether"); /* sys/something/foo_subr.c */ \&... -buf = malloc(sizeof *buf, M_FOOBUF, M_NOWAIT); +buf = malloc(sizeof(*buf), M_FOOBUF, M_NOWAIT); .Ed .Pp diff --git a/share/man/man9/mbuf.9 b/share/man/man9/mbuf.9 index 5c94029..6fa131e 100644 --- a/share/man/man9/mbuf.9 +++ b/share/man/man9/mbuf.9 @@ -331,10 +331,9 @@ The system defines an advisory macro .Dv MINCLSIZE , which is the smallest amount of data to put into an .Vt mbuf cluster . -It is equal to the sum of -.Dv MLEN -and -.Dv MHLEN . +It is equal to +.Dv MHLEN +plus one. It is typically preferable to store data into the data region of an .Vt mbuf , if size permits, as opposed to allocating a separate @@ -707,7 +706,7 @@ It does not allocate any .Vt mbuf clusters , so .Fa len -must be less than +must be less than or equal to .Dv MHLEN . .\" .It Fn m_pulldown mbuf offset len offsetp diff --git a/share/man/man9/module.9 b/share/man/man9/module.9 index 055dab9..bd072a9 100644 --- a/share/man/man9/module.9 +++ b/share/man/man9/module.9 @@ -99,7 +99,7 @@ static int foo_handler(module_t mod, int /*modeventtype_t*/ what, static moduledata_t mod_data= { "foo", foo_handler, - 0 + NULL }; MODULE_VERSION(foo, 1); diff --git a/share/man/man9/namei.9 b/share/man/man9/namei.9 index dc9ef8e..95c20a3 100644 --- a/share/man/man9/namei.9 +++ b/share/man/man9/namei.9 @@ -168,19 +168,6 @@ This flag allows the function to return the parent (directory) vnode in an unlocked state. The parent vnode must be released separately by using .Xr vrele 9 . -.It Dv MPSAFE -With this flag set, -.Fn namei -will conditionally acquire -.Va Giant -if it is required by a traversed file system. -MPSAFE callers should pass the results of -.Fn NDHASGIANT -to -.Xr VFS_UNLOCK_GIANT -in order to conditionally release -.Va Giant -if necessary. .It Dv NOCACHE Avoid .Fn namei @@ -354,7 +341,6 @@ An attempt is made to modify a file or directory on a read-only file system. .Xr uio 9 , .Xr uma 9 , .Xr VFS 9 , -.Xr VFS_UNLOCK_GIANT 9 , .Xr vnode 9 , .Xr vput 9 , .Xr vref 9 diff --git a/share/man/man9/pfil.9 b/share/man/man9/pfil.9 index e0df8c9..9425f5d 100644 --- a/share/man/man9/pfil.9 +++ b/share/man/man9/pfil.9 @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 29, 2004 +.Dd October 22, 2012 .Dt PFIL 9 .Os .Sh NAME @@ -39,7 +39,11 @@ .Nm pfil_hook_get , .Nm pfil_add_hook , .Nm pfil_remove_hook , -.Nm pfil_run_hooks +.Nm pfil_run_hooks , +.Nm pfil_rlock , +.Nm pfil_runlock , +.Nm pfil_wlock , +.Nm pfil_wunlock .Nd packet filter interface .Sh SYNOPSIS .In sys/param.h @@ -62,6 +66,14 @@ .Fn (*func) "void *arg" "struct mbuf **mp" "struct ifnet *" "int dir" "struct inpcb *" .Ft int .Fn pfil_run_hooks "struct pfil_head *head" "struct mbuf **mp" "struct ifnet *" "int dir" "struct inpcb *" +.Ft void +.Fn pfil_rlock "struct pfil_head *" "struct rm_priotracker *" +.Ft void +.Fn pfil_runlock "struct pfil_head *" "struct rm_priotracker *" +.Ft void +.Fn pfil_wlock "struct pfil_head *" +.Ft void +.Fn pfil_wunlock "struct pfil_head *" .Sh DESCRIPTION The .Nm @@ -86,6 +98,16 @@ The data link type is a .Xr bpf 4 DLT constant indicating what kind of header is present on the packet at the filtering point. +Each filtering point uses common per-VNET rmlock by default. +This can be changed by specifying +.Vt PFIL_FLAG_PRIVATE_LOCK +as +.Vt "flags" +field in the +.Vt pfil_head +structure. +Note that specifying private lock can break filters sharing the same +ruleset and/or state between different data link types. Filtering points may be unregistered with the .Fn pfil_head_unregister function. @@ -122,6 +144,42 @@ The filter returns an error (errno) if the packet processing is to stop, or 0 if the processing is to continue. If the packet processing is to stop, it is the responsibility of the filter to free the packet. +.Pp +Every filter hook is called with +.Nm +read lock held. +All heads uses the same lock within the same VNET instance. +Packet filter can use this lock instead of own locking model to +improve performance. +Since +.Nm +uses +.Xr rmlock 9 +.Fn pfil_rlock +and +.Fn pfil_runlock +require +.Va struct rm_priotracker +to be passed as argument. +Filter can acquire and release writer lock via +.Fn pfil_wlock +and +.Fn pfil_wunlock +functions. +See +.Xr rmlock 9 +for more details. +.Sh FILTERING POINTS +Currently, filtering points are implemented for the following link types: +.Pp +.Bl -tag -width "AF_INET6" -offset XXX -compact +.It AF_INET +IPv4 packets. +.It AF_INET6 +IPv6 packets. +.It AF_LINK +Link-layer packets. +.El .Sh RETURN VALUES If successful, .Fn pfil_head_get @@ -146,6 +204,7 @@ might sleep! .Sh SEE ALSO .Xr bpf 4 , .Xr if_bridge 4 +.Xr rmlock 4 .Sh HISTORY The .Nm @@ -181,29 +240,15 @@ as well as be less IP-centric. .Pp Fine-grained locking was added in .Fx 5.2 . +.Nm +lock export was added in +.Fx 10.0 . .Sh BUGS The .Fn pfil_hook_get function is only safe for internal use. .Pp -.Fx -implements only hooks for -.Dv AF_INET -and -.Dv AF_INET6 . -Packets diverted through these hooks have data in -host byte order contrary to the above statements. -.Pp -The -.Xr if_bridge 4 -diverts -.Dv AF_INET -and -.Dv AF_INET6 -traffic according to its sysctl settings, but contrary to the above -statements, the data is provided in host byte order. -.Pp When a .Vt pfil_head is being modified, no traffic is diverted diff --git a/share/man/man9/rmlock.9 b/share/man/man9/rmlock.9 index 893eb25..7808345 100644 --- a/share/man/man9/rmlock.9 +++ b/share/man/man9/rmlock.9 @@ -26,7 +26,7 @@ .\" $FreeBSD$ .\" .\" Based on rwlock.9 man page -.Dd November 16, 2011 +.Dd June 8, 2012 .Dt RMLOCK 9 .Os .Sh NAME @@ -41,7 +41,7 @@ .Nm rm_wunlock , .Nm rm_wowned , .Nm RM_SYSINIT -.Nd kernel reader/writer lock optimized for mostly read access patterns +.Nd kernel reader/writer lock optimized for read-mostly access patterns .Sh SYNOPSIS .In sys/param.h .In sys/lock.h @@ -67,7 +67,7 @@ .In sys/kernel.h .Fn RM_SYSINIT "name" "struct rmlock *rm" "const char *desc" "int opts" .Sh DESCRIPTION -Mostly reader locks allow shared access to protected data by multiple threads, +Read-mostly locks allow shared access to protected data by multiple threads, or exclusive access by a single thread. The threads with shared access are known as .Em readers @@ -76,83 +76,82 @@ A thread with exclusive access is known as a .Em writer since it can modify protected data. .Pp -Read mostly locks are designed to be efficient for locks almost exclusively +Read-mostly locks are designed to be efficient for locks almost exclusively used as reader locks and as such should be used for protecting data that rarely changes. -Acquiring an exclusive lock after the lock had been locked for shared access +Acquiring an exclusive lock after the lock has been locked for shared access is an expensive operation. .Pp -Although reader/writer locks look very similar to -.Xr sx 9 -locks, their usage pattern is different. -Reader/writer locks can be treated as mutexes (see -.Xr mutex 9 ) -with shared/exclusive semantics unless initialized with -.Dv RM_SLEEPABLE . +Normal read-mostly locks are similar to +.Xr rwlock 9 +locks and follow the same lock ordering rules as +.Xr rwlock 9 +locks. +Read-mostly locks have full priority propagation like mutexes. Unlike -.Xr sx 9 , -an -.Nm -can be locked while holding a non-spin mutex, and an -.Nm -cannot be held while sleeping, again unless initialized with -.Dv RM_SLEEPABLE . -The -.Nm -locks have full priority propagation like mutexes. -The +.Xr rwlock 9 , +read-mostly locks propagate priority to both readers and writers. +This is implemented via the .Va rm_priotracker -structure argument supplied in +structure argument supplied to .Fn rm_rlock and -.Fn rm_runlock -is used to keep track of the read owner(s). -Another important property is that shared holders of -.Nm -can recurse if the lock has been initialized with the -.Dv LO_RECURSABLE -option, however exclusive locks are not allowed to recurse. +.Fn rm_runlock . +Readers can recurse if the lock is initialized with the +.Dv RM_RECURSE +option; +however, writers are never allowed to recurse. +.Pp +Sleepable read-mostly locks are created by passing +.Dv RM_SLEEPABLE +to +.Fn rm_init_flags . +Unlike normal read-mostly locks, +sleepable read-mostly locks follow the same lock ordering rules as +.Xr sx 9 +locks. +Sleepable read-mostly locks do not propagate priority to writers, +but they do propagate priority to readers. +Writers are permitted to sleep while holding a read-mostly lock, +but readers are not. +Unlike other sleepable locks such as +.Xr sx 9 +locks, +readers must use try operations on other sleepable locks to avoid sleeping. .Ss Macros and Functions .Bl -tag -width indent .It Fn rm_init "struct rmlock *rm" "const char *name" -Initialize structure located at -.Fa rm -as mostly reader lock, described by -.Fa name . -The name description is used solely for debugging purposes. +Initialize the read-mostly lock +.Fa rm . +The +.Fa name +description is used solely for debugging purposes. This function must be called before any other operations on the lock. .It Fn rm_init_flags "struct rmlock *rm" "const char *name" "int opts" -Initialize the rm lock just like the -.Fn rm_init -function, but specifying a set of optional flags to alter the -behaviour of -.Fa rm , -through the +Similar to +.Fn rm_init , +initialize the read-mostly lock +.Fa rm +with a set of optional flags. +The .Fa opts -argument. -It contains one or more of the following flags: +arguments contains one or more of the following flags: .Bl -tag -width ".Dv RM_NOWITNESS" .It Dv RM_NOWITNESS Instruct .Xr witness 4 to ignore this lock. .It Dv RM_RECURSE -Allow threads to recursively acquire exclusive locks for +Allow threads to recursively acquire shared locks for .Fa rm . .It Dv RM_SLEEPABLE -Allow writers to sleep while holding the lock. -Readers must not sleep while holding the lock and can avoid to sleep on -taking the lock by using -.Fn rm_try_rlock -instead of -.Fn rm_rlock . +Create a sleepable read-mostly lock. .El .It Fn rm_rlock "struct rmlock *rm" "struct rm_priotracker* tracker" Lock .Fa rm -as a reader. -Using +as a reader using .Fa tracker to track read owners of a lock for priority propagation. This data structure is only used internally by @@ -161,28 +160,32 @@ and must persist until .Fn rm_runlock has been called. This data structure can be allocated on the stack since -rmlocks cannot be held while sleeping. +readers cannot sleep. If any thread holds this lock exclusively, the current thread blocks, and its priority is propagated to the exclusive holder. If the lock was initialized with the -.Dv LO_RECURSABLE +.Dv RM_RECURSE option the .Fn rm_rlock -function can be called when the thread has already acquired reader +function can be called when the current thread has already acquired reader access on .Fa rm . -This is called -.Dq "recursing on a lock" . .It Fn rm_try_rlock "struct rmlock *rm" "struct rm_priotracker* tracker" Try to lock .Fa rm as a reader. .Fn rm_try_rlock will return 0 if the lock cannot be acquired immediately; -otherwise the lock will be acquired and a non-zero value will be returned. +otherwise, +the lock will be acquired and a non-zero value will be returned. Note that .Fn rm_try_rlock may fail even while the lock is not currently held by a writer. +If the lock was initialized with the +.Dv RM_RECURSE +option, +.Fn rm_try_rlock +will succeed if the current thread has already acquired reader access. .It Fn rm_wlock "struct rmlock *rm" Lock .Fa rm diff --git a/share/man/man9/rtalloc.9 b/share/man/man9/rtalloc.9 index ab5379a..ea22f87 100644 --- a/share/man/man9/rtalloc.9 +++ b/share/man/man9/rtalloc.9 @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 14, 2011 +.Dd July 4, 2012 .Dt RTALLOC 9 .Os .Sh NAME @@ -52,6 +52,7 @@ .Fn RT_UNLOCK "struct rt_entry *rt" .Fn RT_ADDREF "struct rt_entry *rt" .Fn RT_REMREF "struct rt_entry *rt" +.Fn RO_RTFREE "struct route *ro" .Ft void .Fn rtfree "struct rt_entry *rt" .Ft "struct rtentry *" @@ -203,6 +204,14 @@ Its usage is contrary to .Fn RT_ADDREF . .Pp The +.Fn RO_RTFREE +macro is used to free route entry that is referenced by struct route. +At certain circumstances the latter may not hold a reference on rtentry, +and +.Fn RO_RTFREE +treats such routes correctly. +.Pp +The .Fn rtfree function does the actual free of the routing table entry, and shouldn't be called directly by facilities, that just perform routing table lookups. diff --git a/share/man/man9/rwlock.9 b/share/man/man9/rwlock.9 index f7da699..45fc3bd 100644 --- a/share/man/man9/rwlock.9 +++ b/share/man/man9/rwlock.9 @@ -114,12 +114,10 @@ cannot be held while sleeping. The .Nm locks have priority propagation like mutexes, but priority -can be propagated only to an exclusive holder. -This limitation comes from the fact that shared owners +can be propagated only to writers. +This limitation comes from the fact that readers are anonymous. -Another important property is that shared holders of -.Nm -can recurse, +Another important property is that readers can always recurse, and exclusive locks can be made recursive selectively. .Ss Macros and Functions .Bl -tag -width indent diff --git a/share/man/man9/timeout.9 b/share/man/man9/timeout.9 index ddc66b5..543d198 100644 --- a/share/man/man9/timeout.9 +++ b/share/man/man9/timeout.9 @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 2, 2008 +.Dd November 1, 2012 .Dt TIMEOUT 9 .Os .Sh NAME @@ -42,7 +42,11 @@ .Nm callout_stop , .Nm callout_drain , .Nm callout_reset , +.Nm callout_reset_on , +.Nm callout_reset_curcpu , .Nm callout_schedule , +.Nm callout_schedule_on , +.Nm callout_schedule_curcpu , .Nm callout_pending , .Nm callout_active , .Nm callout_deactivate @@ -75,8 +79,18 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle) .Ft int .Fn callout_reset "struct callout *c" "int ticks" "timeout_t *func" "void *arg" .Ft int +.Fn callout_reset_on "struct callout *c" "int ticks" "timeout_t *func" \ +"void *arg" "int cpu" +.Ft int +.Fn callout_reset_curcpu "struct callout *c" "int ticks" "timeout_t *func" \ +"void *arg" +.Ft int .Fn callout_schedule "struct callout *c" "int ticks" .Ft int +.Fn callout_schedule_on "struct callout *c" "int ticks" "int cpu" +.Ft int +.Fn callout_schedule_curcpu "struct callout *c" "int ticks" +.Ft int .Fn callout_pending "struct callout *c" .Ft int .Fn callout_active "struct callout *c" @@ -302,6 +316,26 @@ and parameters extracted from the callout structure (though possibly with lower overhead). .Pp +The functions +.Fn callout_reset_on +and +.Fn callout_schedule_on +are equivalent to +.Fn callout_reset +and +.Fn callout_schedule +but take an extra parameter specifying the target CPU for the callout. +.Pp +The functions +.Fn callout_reset_curcpu +and +.Fn callout_schedule_curcpu +are wrappers for +.Fn callout_reset_on +and +.Fn callout_schedule_on +using the current CPU as the target CPU. +.Pp The macros .Fn callout_pending , .Fn callout_active diff --git a/share/man/man9/vinvalbuf.9 b/share/man/man9/vinvalbuf.9 index 5180153..f3e627a 100644 --- a/share/man/man9/vinvalbuf.9 +++ b/share/man/man9/vinvalbuf.9 @@ -110,8 +110,6 @@ set in .Fa slpflag ) .El .Sh SEE ALSO -.Xr brelse 9 , -.Xr bremfree 9 , .Xr tsleep 9 , .Xr VOP_FSYNC 9 .Sh AUTHORS diff --git a/share/man/man9/vslock.9 b/share/man/man9/vslock.9 index 23c4127..1cf3e5d 100644 --- a/share/man/man9/vslock.9 +++ b/share/man/man9/vslock.9 @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 10, 2004 +.Dd August 29, 2012 .Dt VSLOCK 9 .Os .Sh NAME @@ -82,9 +82,6 @@ machine address space. .It Bq Er ENOMEM The size of the specified address range exceeds the system limit on locked memory. -.It Bq Er ENOMEM -Locking the requested address range would cause the process to exceed -its per-process locked memory limit. .It Bq Er EFAULT Some portion of the indicated address range is not allocated. There was an error faulting/mapping a page. diff --git a/share/man/man9/zero_copy.9 b/share/man/man9/zero_copy.9 index 50488d3..27498ff 100644 --- a/share/man/man9/zero_copy.9 +++ b/share/man/man9/zero_copy.9 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 5, 2004 +.Dd October 23, 2012 .Dt ZERO_COPY 9 .Os .Sh NAME @@ -33,7 +33,8 @@ .Nm zero_copy_sockets .Nd "zero copy sockets code" .Sh SYNOPSIS -.Cd "options ZERO_COPY_SOCKETS" +.Cd "options SOCKET_SEND_COW" +.Cd "options SOCKET_RECV_PFLIP" .Sh DESCRIPTION The .Fx @@ -166,3 +167,5 @@ The zero copy sockets code was originally written by .An Andrew Gallatin Aq gallatin@FreeBSD.org and substantially modified and updated by .An Kenneth Merry Aq ken@FreeBSD.org . +.Sh BUGS +The COW based send mechanism is not safe and may result in kernel crashes. diff --git a/share/man/man9/zone.9 b/share/man/man9/zone.9 index a77fd5b..a3efd83 100644 --- a/share/man/man9/zone.9 +++ b/share/man/man9/zone.9 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 25, 2012 +.Dd October 28, 2012 .Dt ZONE 9 .Os .Sh NAME @@ -145,7 +145,7 @@ or .Dv NULL in the rare case where all items in the zone are in use and the allocator is unable to grow the zone -or when +and .Dv M_NOWAIT is specified. .Pp @@ -218,8 +218,10 @@ The .Fn uma_zalloc function returns a pointer to an item, or .Dv NULL -if the zone ran out of unused items and the allocator was unable to -enlarge it. +if the zone ran out of unused items +and +.Dv M_NOWAIT +was specified. .Sh SEE ALSO .Xr malloc 9 .Sh HISTORY diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index eba25d0..7d4df68 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -254,6 +254,10 @@ FreeBSD 5.2 | | | | | 9.0 | | | | DragonFly 3.0.1 | v FreeBSD | | | | | 8.3 | | OpenBSD 5.1 | + | Mac OS X | | | + | 10.8 | | | + | | NetBSD 6.0 | | + | | | OpenBSD 5.2 DragonFly 3.2.1 | | | | | FreeBSD 10 -current | NetBSD -current OpenBSD -current | | | | | | @@ -547,6 +551,10 @@ FreeBSD 9.0 2012-01-12 [FBD] DragonFly 3.0.1 2012-02-21 [DFB] FreeBSD 8.3 2012-04-18 [FBD] OpenBSD 5.1 2012-05-01 [OBD] +Mac OS X 10.8 2012-07-25 [APL] +NetBSD 6.0 2012-10-17 [NBD] +OpenBSD 5.2 2012-11-01 [OBD] +DragonFly 3.2.1 2012-11-02 [DFB] Bibliography ------------------------ diff --git a/share/misc/committers-doc.dot b/share/misc/committers-doc.dot index 5631ed4..0d896b3 100644 --- a/share/misc/committers-doc.dot +++ b/share/misc/committers-doc.dot @@ -15,7 +15,7 @@ digraph doc { # foo [label="Foo Bar\nfoo@FreeBSD.org\n????/??/??"] # # ????/??/?? is the date when the commit bit was obtained, usually the one you -# can find looking at CVS logs for the access (or avail) file under CVSROOT. +# can find looking at svn logs for the svnadmin/access file. # Use YYYY/MM/DD format. # # For returned commit bits, the node definition will follow this example: @@ -23,7 +23,7 @@ digraph doc { # foo [label="Foo Bar\nfoo@FreeBSD.org\n????/??/??\n????/??/??"] # # The first date is the same as for an active committer, the second date is -# the date when the commit bit has been returned. Again, check CVS logs. +# the date when the commit bit has been returned. Again, check svn logs. node [color=grey62, style=filled, bgcolor=black]; @@ -58,6 +58,8 @@ brueffer [label="Christian Brueffer\nbrueffer@FreeBSD.org\n2003/01/13"] chinsan [label="Chinsan Huang\nchinsan@FreeBSD.org\n2006/09/20"] danger [label="Daniel Gerzo\ndanger@FreeBSD.org\n2006/08/20"] delphij [label="Xin Li\ndelphij@FreeBSD.org\n2004/09/14"] +eadler [label="Eitan Adler\neadler@FreeBSD.org\n2012/10/15"] +ebrandi [label="Edson Brandi\nebrandi@FreeBSD.org\n2012/09/13"] gabor [label="Gabor Kovesdan\ngabor@FreeBSD.org\n2007/02/02"] ganbold [label="Ganbold Tsagaankhuu\nganbold@FreeBSD.org\n2008/02/26"] gavin [label="Gavin Atkinson\ngavin@FreeBSD.org\n2011/07/18"] @@ -82,6 +84,7 @@ simon [label="Simon L. Nielsen\nsimon@FreeBSD.org\n2003/07/20"] taras [label="Taras Korenko\ntaras@FreeBSD.org\n2010/06/25"] trhodes [label="Tom Rhodes\ntrhodes@FreeBSD.org\n2002/03/25"] wblock [label="Warren Block\nwblock@FreeBSD.org\n2011/09/12"] +zeising [label="Niclas Zeising\nzeising@FreeBSD.org\n2012/07/03"] # Here are the mentor/mentee relationships. # Group together all the mentees for a particular mentor. @@ -89,6 +92,7 @@ wblock [label="Warren Block\nwblock@FreeBSD.org\n2011/09/12"] bcr -> gavin bcr -> wblock +bcr -> eadler blackend -> ale @@ -109,6 +113,7 @@ gabor -> pgj gabor -> manolis gabor -> taras gabor -> issyl0 +gabor -> ebrandi gjb -> wblock @@ -122,6 +127,9 @@ jkois -> miwi jkois -> bcr jkois -> gavin jkois -> gjb +jkois -> eadler + +joel -> zeising keramida -> blackend keramida -> danger diff --git a/share/misc/committers-ports.dot b/share/misc/committers-ports.dot index 1dadc10..f2901f3 100644 --- a/share/misc/committers-ports.dot +++ b/share/misc/committers-ports.dot @@ -15,14 +15,15 @@ digraph ports { # foo [label="Foo Bar\nfoo@FreeBSD.org\n????/??/??"] # # ????/??/?? is the date when the commit bit was obtained, usually the one you -# can find looking at CVS logs for the access (or avail) file under CVSROOT. +# can find looking at svn logs for the svnadmin/access file. +# Use YYYY/MM/DD format. # # For returned commit bits, the node definition will follow this example: # # foo [label="Foo Bar\nfoo@FreeBSD.org\n????/??/??\n????/??/??"] # # The first date is the same as for an active committer, the second date is -# the date when the commit bit has been returned. Again, check CVS logs. +# the date when the commit bit has been returned. Again, check svn logs. node [color=grey62, style=filled, bgcolor=black]; @@ -57,6 +58,7 @@ avilla [label="Alberto Villa\navilla@FreeBSD.org\n2010/01/24"] avl [label="Alexander Logvinov\navl@FreeBSD.org\n2009/05/27"] az [label="Andrej Zverev\naz@FreeBSD.org\n2005/10/03"] bapt [label="Baptiste Daroussin\nbapt@FreeBSD.org\n2010/07/27"] +bdrewery [label="Bryan Drewery\nbdrewery@FreeBSD.org\n2012/07/31"] beat [label="Beat Gaetzi\nbeat@FreeBSD.org\n2009/01/28"] beech [label="Beech Rintoul\nbeech@FreeBSD.org\n2007/05/30"] bf [label="Brendan Fabeny\nbf@FreeBSD.org\n2010/06/02"] @@ -93,6 +95,7 @@ gabor [label="Gabor Kovesdan\ngabor@FreeBSD.org\n2006/12/05"] gahr [label="Pietro Cerutti\ngahr@FreeBSD.org\n2008/02/20"] garga [label="Renato Botelho\ngarga@FreeBSD.org\n2005/07/11"] gerald [label="Gerald Pfeifer\ngerald@FreeBSD.org\n2002/04/03"] +gjb [label="Glen Barber\ngjb@FreeBSD.org\n2012/06/19"] glarkin [label="Greg Larkin\nglarkin@FreeBSD.org\n2008/07/17"] glewis [label="Greg Lewis\nglewis@FreeBSD.org\n2002/04/08"] hq [label="Herve Quiroz\nhq@FreeBSD.org\n2004/08/05"] @@ -102,6 +105,7 @@ jacula [label="Giuseppe Pilichi\njacula@FreeBSD.org\n2010/04/05"] jadawin [label="Philippe Audeoud\njadawin@FreeBSD.org\n2008/03/02"] jase [label="Jase Thew\njase@FreeBSD.org\n2012/05/30"] jgh [label="Jason Helfman\njgh@FreeBSD.org\n2011/12/16"] +jhale [label="Jason E. Hale\njhale@FreeBSD.org\n2012/09/10"] jkim [label="Jung-uk Kim\njkim@FreeBSD.org\n2007/09/12"] jlaffaye [label="Julien Laffaye\njlaffaye@FreeBSD.org\n2011/06/06"] jmelo [label="Jean Milanez Melo\njmelo@FreeBSD.org\n2006/03/31"] @@ -197,6 +201,7 @@ wen [label="Wen Heping\nwen@FreeBSD.org\n2010/12/13"] wxs [label="Wesley Shields\nwxs@FreeBSD.org\n2008/01/03"] xride [label="Soeren Straarup\nxride@FreeBSD.org\n2006/09/27"] yzlin [label="Yi-Jheng Lin\nyzlin@FreeBSD.org\n2009/07/19"] +zeising [label="Niclas Zeising\nzeising@FreeBSD.org\n2012/07/03"] zi [label="Ryan Steinmetz\nzi@FreeBSD.org\n2011/07/14"] znerd [label="Ernst de Haan\nznerd@FreeBSD.org\n2001/11/15"] @@ -222,8 +227,10 @@ arved -> stefan asami -> obrien +avilla -> jhale avilla -> rakuco +bapt -> bdrewery bapt -> eadler bapt -> jlaffaye @@ -245,6 +252,7 @@ clement -> lawrance clsung -> lwhsu clsung -> tabthorpe +crees -> gjb crees -> jgh crees -> madpilot @@ -260,6 +268,8 @@ delphij -> rafan demon -> mat eadler -> ak +eadler -> bdrewery +eadler -> gjb eadler -> tj edwin -> cperciva @@ -342,6 +352,7 @@ krion -> sem krion -> sergei kwm -> jsa +kwm -> zeising lawrance -> itetcu @@ -360,6 +371,7 @@ marcus -> eik marcus -> jmallett makc -> bf +makc -> jhale makc -> rakuco mat -> thierry @@ -390,6 +402,7 @@ miwi -> sylvio miwi -> tabthorpe miwi -> trasz miwi -> wen +miwi -> zeising mnag -> jmelo diff --git a/share/misc/committers-src.dot b/share/misc/committers-src.dot index 20ad004..ce7661c 100644 --- a/share/misc/committers-src.dot +++ b/share/misc/committers-src.dot @@ -15,14 +15,15 @@ digraph src { # foo [label="Foo Bar\nfoo@FreeBSD.org\n????/??/??"] # # ????/??/?? is the date when the commit bit was obtained, usually the one you -# can find looking at CVS logs for the access (or avail) file under CVSROOT. +# can find looking at svn logs for the svnadmin/access file. +# Use YYYY/MM/DD format. # # For returned commit bits, the node definition will follow this example: # # foo [label="Foo Bar\nfoo@FreeBSD.org\n????/??/??\n????/??/??"] # # The first date is the same as for an active committer, the second date is -# the date when the commit bit has been returned. Again, check CVS logs. +# the date when the commit bit has been returned. Again, check svn logs. node [color=grey62, style=filled, bgcolor=black]; @@ -132,6 +133,7 @@ dougb [label="Doug Barton\ndougb@FreeBSD.org\n2000/10/26"] dteske [label="Devin Teske\ndteske@FreeBSD.org\n2012/04/10"] dumbbell [label="Jean-Sebastien Pedron\ndumbbell@FreeBSD.org\n2004/11/29"] dwmalone [label="David Malone\ndwmalone@FreeBSD.org\n2000/07/11"] +eadler [label="Eitan Adler\neadler@FreeBSD.org\n2012/01/18"] ed [label="Ed Schouten\ned@FreeBSD.org\n2008/05/22"] edwin [label="Edwin Groothuis\nedwin@FreeBSD.org\n2007/06/25"] eivind [label="Eivind Eklund\neivind@FreeBSD.org\n????/??/??"] @@ -200,6 +202,7 @@ mdf [label="Matthew Fleming\nmdf@FreeBSD.org\n2010/06/04"] mdodd [label="Matthew N. Dodd\nmdodd@FreeBSD.org\n1999/07/27"] melifaro [label="Alexander V. Chernikov\nmelifaro@FreeBSD.org\n2011/10/04"] mjacob [label="Matt Jacob\nmjacob@FreeBSD.org\n1997/08/13"] +mjg [label="Mateusz Guzik\nmjg@FreeBSD.org\n2012/06/04"] mlaier [label="Max Laier\nmlaier@FreeBSD.org\n2004/02/10"] monthadar [label="Monthadar Al Jaberi\nmonthadar@FreeBSD.org\n2012/04/02"] mr [label="Michael Reifenberger\nmr@FreeBSD.org\n2001/09/30"] @@ -212,6 +215,7 @@ obrien [label="David E. O'Brien\nobrien@FreeBSD.org\n1996/10/29"] olli [label="Oliver Fromme\nolli@FreeBSD.org\n2008/02/14"] peadar [label="Peter Edwards\npeadar@FreeBSD.org\n2004/03/08"] peter [label="Peter Wemm\npeter@FreeBSD.org\n????/??/??"] +peterj [label="Peter Jeremy\npeterj@FreeBSD.org\n2012/09/14"] pfg [label="Pedro Giffuni\npfg@FreeBSD.org\n2011/12/01"] philip [label="Philip Paeps\nphilip@FreeBSD.org\n2004/01/21"] phk [label="Poul-Henning Kamp\nphk@FreeBSD.org\n1994/02/21"] @@ -243,6 +247,7 @@ scottl [label="Scott Long\nscottl@FreeBSD.org\n2000/09/28"] sephe [label="Sepherosa Ziehau\nsephe@FreeBSD.org\n2007/03/28"] sepotvin [label="Stephane E. Potvin\nsepotvin@FreeBSD.org\n2007/02/15"] simon [label="Simon L. Nielsen\nsimon@FreeBSD.org\n2006/03/07"] +sjg [label="Simon J. Gerraty\nsjg@FreeBSD.org\n2012/10/23"] sobomax [label="Maxim Sobolev\nsobomax@FreeBSD.org\n2001/07/25"] sos [label="Soren Schmidt\nsos@FreeBSD.org\n????/??/??"] sson [label="Stacey Son\nsson@FreeBSD.org\n2008/07/08"] @@ -271,6 +276,7 @@ yongari [label="Pyun YongHyeon\nyongari@FreeBSD.org\n2004/08/01"] zack [label="Zack Kirsch\nzack@FreeBSD.org\n2010/11/05"] zec [label="Marko Zec\nzec@FreeBSD.org\n2008/06/22"] zml [label="Zachary Loafman\nzml@FreeBSD.org\n2009/05/27"] +zont [label="Andrey Zonov\nzont@FreeBSD.org\n2012/08/21"] # Pseudo target representing rev 1.1 of commit.allow day1 [label="Birth of FreeBSD"] @@ -328,6 +334,7 @@ bz -> syrinx cognet -> jceel cognet -> kevlo +cperciva -> eadler cperciva -> flz cperciva -> randi cperciva -> simon @@ -391,6 +398,7 @@ gnn -> davide grog -> edwin grog -> le +grog -> peterj imp -> akiyama imp -> ambrisko @@ -434,8 +442,11 @@ jhb -> arr jhb -> avg jhb -> jeff jhb -> kbyanc +jhb -> peterj +jhb -> pfg jhb -> rnoland +jkh -> grog jkh -> imp jkh -> jlemon jkh -> joerg @@ -478,6 +489,7 @@ kib -> rmh kib -> stas kib -> tijl kib -> trociny +kib -> zont kmacy -> lstewart @@ -485,6 +497,7 @@ marcel -> art marcel -> arun marcel -> marius marcel -> nwhitehorn +marcel -> sjg markm -> jasone markm -> sheldonh @@ -602,6 +615,7 @@ thompsa -> weongyo thompsa -> eri trasz -> jh +trasz -> mjg ume -> jinmei ume -> suz diff --git a/share/misc/organization.dot b/share/misc/organization.dot index 891097d..7870dd8 100644 --- a/share/misc/organization.dot +++ b/share/misc/organization.dot @@ -25,22 +25,16 @@ _misc [label="Miscellaneous Hats"] # Development teams go here alphabetically sorted -core [label="Core Team\ncore@FreeBSD.org\nwilko, brooks, keramida, imp,\ngnn, wes, hrs, murray,\nrwatson"] -coresecretary [label="Core Team Secretary\ncore-secretary@FreeBSD.org\njoel"] +core [label="Core Team\ncore@FreeBSD.org\ntabthorpe, gavin, jhb, kib,\ntheraven, attilio, hrs,\npeter, miwi"] +coresecretary [label="Core Team Secretary\ncore-secretary@FreeBSD.org\npgj"] doccommitters [label="Doc/www Committers\ndoc-committers@FreeBSD.org"] -doceng [label="Documentation Engineering Team\ndoceng@FreeBSD.org\nnik, blackend, hrs,\nkeramida"] +doceng [label="Documentation Engineering Team\ndoceng@FreeBSD.org\ngjb, blackend,\ngabor, hrs"] portscommitters [label="Ports Committers\nports-committers@FreeBSD.org"] -portmgr [label="Port Management Team\nportmgr@FreeBSD.org\nmarcus, kris, erwin,\nlinimon, pav, krion"] -portmgrsecretary [label="Port Management Team Secretary\nportmgr-secretary@FreeBSD.org\nerwin"] -re [label="Primary Release Engineering Team\nre@FreeBSD.org\nmux, bmah, hrs, kensmith,\nmurray, rwatson, dwhite"] -realpha [label="FreeBSD/alpha Release Engineering Team\nre-alpha@FreeBSD.org\nwilko, murray, rwatson"] -reamd64 [label="FreeBSD/amd64 Release Engineering Team\nre-amd64@FreeBSD.org\nobrien"] -rei386 [label="FreeBSD/i386 Release Engineering Team\nre-i386@FreeBSD.org\nmurray, rwatson"] -reia64 [label="FreeBSD/ia64 Release Engineering Team\nre-ia64@FreeBSD.org\nmarcel"] -repc98 [label="FreeBSD/pc98 Release Engineering Team\nre-pc98@FreeBSD.org\nnyan"] -reppc [label="FreeBSD/ppc Release Engineering Team\nre-ppc@FreeBSD.org\ngrehan"] -resparc64 [label="FreeBSD/sparc64 Release Engineering Team\nre-sparc64@FreeBSD.org\njake, phk, tmm, obrien,\nkensmith, murray, rwatson"] -secteam [label="Security Team\nsecteam@FreeBSD.org\nmnag, remko, gnn, simon, philip,\ncperciva, csjp, des,\nnectar, rwatson"] +portmgr [label="Port Management Team\nportmgr@FreeBSD.org\ntabthorpe, marcus, bapt, beat,\nerwin, linimon, pav,\nitetcu, miwi"] +portmgrsecretary [label="Port Management Team Secretary\nportmgr-secretary@FreeBSD.org\ntabthorpe"] +re [label="Primary Release Engineering Team\nre@FreeBSD.org\nkib, blackend, jpaetzel, hrs, kensmith"] +secteam [label="Security Team\nsecteam@FreeBSD.org\nsimon, qingli, delphij,\nremko, philip, stas, cperciva,\ncsjp, rwatson, miwi, bz"] +portssecteam [label="Ports Security Team\nports-secteam@FreeBSD.org\nmiwi, rea, swills, wxs,\njgh, sbz, eadler, zi, remko, simon"] secteamsecretary [label="Security Team Secretary\nsecteam-secretary@FreeBSD.org\nremko"] securityofficer [label="Security Officer Team\nsecurity-officer@FreeBSD.org\ncperciva, simon, nectar"] srccommitters [label="Src Committers\nsrc-committers@FreeBSD.org"] @@ -49,24 +43,23 @@ srccommitters [label="Src Committers\nsrc-committers@FreeBSD.org"] accounts [label="Accounts Team\naccounts@FreeBSD.org\nmarkm, simon, kensmith,\ndhw"] backups [label="Backup Administrators\nbackups@FreeBSD.org\nsimon, kensmith,\ndhw"] -bugmeister [label="Bugmeister Team\nbugmeister@FreeBSD.org\nceri, linimon, remko"] -clusteradm [label="Cluster Administrators\nclusteradm@FreeBSD.org\nbillf, simon, ps,\nkensmith, peter"] +bugmeister [label="Bugmeister Team\nbugmeister@FreeBSD.org\neadler, gavin, gonzo, linimon"] +clusteradm [label="Cluster Administrators\nclusteradm@FreeBSD.org\nbrd, simon, ps,\nkensmith, peter"] cvsupmaster [label="CVSup Mirror Site Coordinators\ncvsup-master@FreeBSD.org\nkuriyama, jdp,\nkensmith"] -dcvs [label="CVS doc/www Repository Managers\ndcvs@FreeBSD.org\njoe, kuriyama, markm,\nsimon"] dnsadm [label="DNS Administrators\ndnsadm@FreeBSD.org\nbillf, dg, ps,\nkensmith, peter"] mirroradmin [label="FTP/WWW Mirror Site Coordinators\nmirror-admin@FreeBSD.org\nkuriyama, kensmith"] ncvs [label="CVS src Repository Managers\nncvs@FreeBSD.org\njoe, kuriyama, markm,\nsimon, peter"] pcvs [label="CVS ports Repository Managers\npcvs@FreeBSD.org\nmarcus, joe, kuriyama,\nmarkm, simon"] perforceadmin [label="Perforce Repository Administrators\nperforce-admin@FreeBSD.org\nscottl, kensmith, gordon,\nrwatson, peter, dhw"] -postmaster [label="Postmaster Team\npostmaster@FreeBSD.org\njmb, brd, dhw"] +postmaster [label="Postmaster Team\npostmaster@FreeBSD.org\njmb, brd, sahil, dhw"] refadm [label="Reference Systems Administrators\nrefadm@FreeBSD.org\njake, billf, markm, simon,\nobrien, ps, kensmith,\npeter, dhw"] webmaster [label="Webmaster Team\nwebmaster@FreeBSD.org\nnik, kuriyama, simon,\njesusr, wosch"] # Misc hats go here alphabetically sorted -donations [label="Donations Team\ndonations@FreeBSD.org\nwilko, brueffer,\nobrien, trhodes, ds,\nrwatson"] +donations [label="Donations Team\ndonations@FreeBSD.org\ngjb, wilko, gahr, pgolluci,\nobrien, trhodes, ds,\nrwatson"] marketing [label="Marketing Team\nmarketing@FreeBSD.org\nSteven Beedle, Denise Ebery, deb,\njkoshy, Dru Lavigne, mwlucas, imp,\nKris Moore, murray, mattt,\nJeremy C. Reed, rwatson"] -vendorrelations [label="Vendor Relations Team\nvendor-relations@FreeBSD.org\nbrueffer, gioria, jmg, rik,\nphilip, hmp, marks,\nmurray"] +vendorrelations [label="Vendor Relations\nvendor-relations@FreeBSD.org\ncore, FreeBSD Foundation"] # Here are the team relationships. # Group together all the entries for the superior team. @@ -105,15 +98,8 @@ doceng -> doccommitters portmgr -> portmgrsecretary portmgr -> portscommitters -re -> realpha -re -> reamd64 -re -> rei386 -re -> reia64 -re -> repc98 -re -> reppc -re -> resparc64 - securityofficer -> secteam +securityofficer -> portssecteam secteam -> secteamsecretary diff --git a/share/misc/pci_vendors b/share/misc/pci_vendors index b1ebcd1..921f402 100644 --- a/share/misc/pci_vendors +++ b/share/misc/pci_vendors @@ -3,11 +3,11 @@ # # List of PCI ID's # -# Version: 2011.07.14 -# Date: 2011-07-14 03:15:06 +# Version: 2012.10.24 +# Date: 2012-10-24 03:15:01 # # Maintained by Martin Mares <mj@ucw.cz> and other volunteers from the -# PCI ID Project at http://pciids.sf.net/. +# PCI ID Project at http://pci-ids.ucw.cz/. # # New data are always welcome, especially if they are accurate. If you have # anything to contribute, please follow the instructions at the web site. @@ -76,6 +76,7 @@ 02ac SpeedStream 1012 1012 PCMCIA 10/100 Ethernet Card [RTL81xx] 02e0 XFX Pine Group Inc +0303 Hewlett-Packard Company (Wrong ID) 0308 ZyXEL Communications Corporation 0315 SK-Electronics Co., Ltd. 0357 TTTech AG @@ -89,12 +90,11 @@ 04b3 IBM Corp. 4001 Remote System Administration device [RSA2] 050d Belkin -058f Alcor Micro Corporation 05a9 OmniVision 8519 OV519 series 05e3 CyberDoor 0701 CBD516 -066f Sigmatel Inc. +066f SigmaTel 3410 SMTP3410 3500 SMTP3500 0675 Dynalink @@ -123,8 +123,8 @@ 08e6 Gemalto NV 08ff AuthenTec afe4 [Anchor] AF-S2 FingerLoc Sensor Module -0925 First International Computer, Inc. - 1234 VA-502 Mainboard +0925 VIA Technologies, Inc. (Wrong ID) + 1234 VT82C686/A/B USB Controller 093a PixArt Imaging Inc. 010e Innovage Mini Digital Camera 010f SDC-300 Webcam @@ -153,8 +153,6 @@ 0906 RCB24FXX 24-channel modular analog telphony card 0a06 RCB672FXX 672-channel modular analog telphony card 0b3d Brontes Technologies -0b49 ASCII Corporation - 064f Trance Vibrator 0ccd TerraTec Electronic GmbH 0038 Cinergy T^2 DVB-T Receiver 0e11 Compaq Computer Corporation @@ -205,6 +203,7 @@ 7020 USB Controller a0ec Fibre Channel Host Controller a0f0 Advanced System Management Controller + 0e11 b0f3 ProLiant DL360 a0f3 Triflex PCI to ISA Bridge a0f7 PCI Hotplug Controller 8086 002a PCI Hotplug Controller A @@ -328,6 +327,8 @@ 4c53 1080 CT8 mainboard 4c53 1300 P017 mezzanine (32-bit PMC) 4c53 1310 P017 mezzanine (64-bit PMC) + 002f MegaRAID SAS 2208 IOV [Thunderbolt] + 1028 1f3e SPERC 8 0030 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI 0e11 00da ProLiant ML 350 1028 0123 LSI Logic 1020/1030 @@ -378,6 +379,11 @@ 0059 MegaRAID SAS 8208ELP/8208ELP 005a SAS1066E PCI-Express Fusion-MPT SAS 005b MegaRAID SAS 2208 [Thunderbolt] + 1000 9265 MegaRAID SAS 9265-8i + 1000 9266 MegaRAID SAS 9266-8i + 1000 9268 MegaRAID SAS 9265CV-8i / 9270CV-8i + 1014 040b ServeRAID M5110 SAS/SATA Controller + 1014 0412 ServeRAID M5110e SAS/SATA Controller 1028 1f2d PERC H810 Adapter 1028 1f30 PERC H710 Embedded 1028 1f31 PERC H710P Adapter @@ -386,9 +392,11 @@ 1028 1f35 PERC H710 Adapter 1028 1f37 PERC H710 Mini (for blades) 1028 1f38 PERC H710 Mini (for monolithics) + 8086 3513 RMS25CB080 RAID Controller 005c SAS1064A PCI-X Fusion-MPT SAS 005d MegaRAID SAS-3 3108 [Invader] 005e SAS1066 PCI-X Fusion-MPT SAS + 005f MegaRAID SAS-3 3008 [Fury] 0060 MegaRAID SAS 1078 1000 1006 MegaRAID SAS 8888ELP 1000 100a MegaRAID SAS 8708ELP @@ -419,13 +427,14 @@ 8086 1010 RAID Controller SRCSATA28E 8086 34cc Integrated RAID Controller SROMBSAS28E 8086 34cd Integrated RAID Controller SROMBSAS28E + 8086 3505 Integrated RAID Controller SROMBSASMP2 0062 SAS1078 PCI-Express Fusion-MPT SAS 1000 0062 SAS1078 PCI-Express Fusion-MPT SAS 0064 SAS2116 PCI-Express Fusion-MPT SAS-2 [Meteor] 0065 SAS2116 PCI-Express Fusion-MPT SAS-2 [Meteor] 006e SAS2308 PCI-Express Fusion-MPT SAS-2 0070 SAS2004 PCI-Express Fusion-MPT SAS-2 [Spitfire] - 0071 MR SAS HBA + 0071 MR SAS HBA 2004 0072 SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] 1028 1f1c 6Gbps SAS HBA Adapter 1028 1f1d PERC H200 Adapter @@ -434,9 +443,10 @@ 1028 1f20 PERC H200 Embedded 1028 1f22 Internal Tape Adapter 8086 350f RMS2LL040 RAID Controller - 0073 MegaRAID SAS 9240 + 0073 MegaRAID SAS 2008 [Falcon] 1000 9240 MegaRAID SAS 9240-8i 1000 9241 MegaRAID SAS 9240-4i + 1000 92a0 MegaRAID SAS 9220-8i 1014 03b1 ServeRAID M1015 SAS/SATA Controller 1028 1f4e PERC H310 Adapter 1028 1f4f PERC H310 Integrated @@ -448,6 +458,8 @@ 1054 3035 LSI MegaRAID SAS 9240-8i 1137 0072 2004 iMR ROMB 1137 0073 2008 ROMB + 1137 00b0 UCSC RAID SAS 2008M-8i + 1137 00b1 UCSC RAID SAS 2008M-8i 15d9 0400 Supermicro SMC2008-iMR 1734 1177 RAID Ctrl SAS 6G 0/1 (D2607) 8086 350d RMS2AF040 RAID Controller @@ -464,6 +476,8 @@ 1000 9262 MegaRAID SAS 9262-8i 1000 9263 MegaRAID SAS 9261-8i 1000 9264 MegaRAID SAS 9264-8i + 1000 9267 MegaRAID SAS 9260CV-4i + 1000 9268 MegaRAID SAS 9260CV-8i 1000 9275 MegaRAID SAS 9280-8ex 1000 9276 MR9260-16i 1000 9280 MegaRAID SAS 9280-8e @@ -498,6 +512,7 @@ 0085 SAS2208 PCI-Express Fusion-MPT SAS-2 0086 SAS2308 PCI-Express Fusion-MPT SAS-2 0087 SAS2308 PCI-Express Fusion-MPT SAS-2 + 1590 0044 H220i 008f 53c875J 1092 8000 FirePort 40 SCSI Controller 1092 8760 FirePort 40 Dual SCSI Host Adapter @@ -533,7 +548,7 @@ 8086 3008 MegaRAID RAID Controller SRCS28X 8086 3431 MegaRAID RAID Controller Alief SROMBU42E 8086 3499 MegaRAID RAID Controller Harwich SROMBU42E - 0411 MegaRAID SAS + 0411 MegaRAID SAS 1068 1000 1001 MegaRAID SAS 8408E 1000 1002 MegaRAID SAS 8480E 1000 1003 MegaRAID SAS 8344ELP @@ -552,7 +567,7 @@ 8086 3500 SROMBSAS18E RAID Controller 8086 3501 SROMBSAS18E RAID Controller 8086 3504 SROMBSAS18E RAID Controller - 0413 MegaRAID SAS Verde ZCR + 0413 MegaRAID SAS 1068 [Verde ZCR] 1000 1005 MegaRAID SAS 8300XLP 0621 FC909 Fibre Channel Adapter 0622 FC929 Fibre Channel Adapter @@ -601,19 +616,23 @@ 0016 PCI-MFB Analogue I/O board 0017 PROTO-3 PCI Prototyping board 9100 INI-9100/9100W SCSI Host -1002 ATI Technologies Inc +# nee ATI Technologies Inc. +1002 Advanced Micro Devices [AMD] nee ATI 1314 Wrestler HDMI Audio [Radeon HD 6250/6310] + 174b 1001 Sapphire PURE Fusion Mini + 1714 BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] + 103c 168b ProBook 4535s 3150 M24 1P [Radeon Mobility X600] 103c 0934 nx8220 3151 M24 [FireMV 2400] - 3152 M22 [Radeon Mobility X300] + 3152 RV370 [Mobility Radeon X300] 3154 M24GL [Mobility FireGL V3200] 3171 M24 [FireMV 2400] (Secondary) 3e50 RV380 0x3e50 [Radeon X600] 3e54 RV380 0x3e54 [FireGL V3200] 3e70 RV380 [Radeon X600] (Secondary) - 4136 Radeon IGP 320 M - 4137 Radeon IGP330/340/350 + 4136 RS100 [Radeon IGP320(M)] + 4137 RS200 [Radeon IGP330/340/350] 4144 R300 AD [Radeon 9500 Pro] 4145 R300 AE [Radeon 9700 Pro] 4146 R300 AF [Radeon 9700 Pro] @@ -653,7 +672,7 @@ 4164 R300 AD [Radeon 9500 Pro] (Secondary) 4165 R300 AE [Radeon 9700 Pro] (Secondary) 4166 R300 AF [Radeon 9700 Pro] (Secondary) - 4168 Radeon R350 [Radeon 9800] (Secondary) + 4168 R350 [Radeon 9800] (Secondary) 4170 RV350 AP [Radeon 9600] (Secondary) 1002 0003 R9600 Pro secondary (Asus OEM for HP) 1002 4723 All-in-Wonder 2006 AGP Edition (Secondary) @@ -673,15 +692,15 @@ 1787 4003 Radeon 9600 XT (Secondary) 4173 RV350 AS [Radeon 9550] (Secondary) 1043 010d A9550GE/TD (Secondary) - 4237 Radeon 7000 IGP + 4237 RS250 [Radeon Mobility 7000 IGP] 4242 R200 BB [Radeon All in Wonder 8500DV] 1002 02aa Radeon 8500 AIW DV Edition 4243 R200 BC [Radeon All in Wonder 8500] - 4336 Radeon Mobility U1 + 4336 RS100 [Radeon IGP320M] 1002 4336 Pavilion ze4300 ATI Radeon Mobility U1 (IGP 320 M) 103c 0024 Pavilion ze4400 builtin Video 161f 2029 eMachines M5312 builtin Video - 4337 Radeon IGP 330M/340M/350M + 4337 RS200 [Radeon IGP330M/340M/350M] 1014 053a ThinkPad R40e 103c 0850 Radeon IGP 345M 4341 IXP150 AC'97 Audio Controller @@ -739,7 +758,7 @@ 103c 2a20 Pavilion t3030.de Desktop PC 103c 308b MX6125 1462 7217 Aspire L250 - 4378 SB400 AC'97 Modem Controller + 4378 IXP SB400 AC'97 Modem Controller 1025 0080 Aspire 5024WLMMi 103c 308b MX6125 1462 0131 MS-1013 Notebook @@ -761,7 +780,7 @@ 1458 b005 Gigabyte GA-MA69G-S3H Motherboard 1462 7327 K9AG Neo2 17f2 5999 KI690-AM2 Motherboard - 4381 SB600 Raid-5 SATA + 4381 SB400 SATA Controller (RAID 5 mode) 4382 SB600 AC97 Audio 4383 SBx00 Azalia (Intel HDA) 103c 1611 Pavilion DM1Z-3000 @@ -782,6 +801,8 @@ 1179 ff50 Satellite P305D-S8995E 1458 4385 GA-MA770-DS3rev2.0 Motherboard 1462 7368 K9AG Neo2 + 15d9 a811 H8DGU + 174b 1001 Sapphire PURE Fusion Mini 17f2 5000 KI690-AM2 Motherboard 4386 SB600 USB Controller (EHCI) 103c 280a DC5750 Microtower @@ -834,6 +855,7 @@ 103c 1611 Pavilion DM1Z-3000 1043 82ef M3A78-EH Motherboard 1043 8443 M5A88-V EVO + 174b 1001 Sapphire PURE Fusion Mini 4392 SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode] 4393 SB7x0/SB8x0/SB9x0 SATA Controller [RAID5 mode] 4394 SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] @@ -842,24 +864,33 @@ 103c 1611 Pavilion DM1Z-3000 1043 82ef M3A78-EH Motherboard 1043 8443 M5A88-V EVO + 15d9 a811 H8DGU + 174b 1001 Sapphire PURE Fusion Mini 4397 SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 103c 1611 Pavilion DM1Z-3000 1043 82ef M3A78-EH Motherboard 1043 8443 M5A88-V EVO + 15d9 a811 H8DGU + 174b 1001 Sapphire PURE Fusion Mini 4398 SB7x0 USB OHCI1 Controller 1043 82ef M3A78-EH Motherboard + 15d9 a811 H8DGU 4399 SB7x0/SB8x0/SB9x0 USB OHCI2 Controller 1043 82ef M3A78-EH Motherboard 1043 8443 M5A88-V EVO + 174b 1001 Sapphire PURE Fusion Mini 439c SB7x0/SB8x0/SB9x0 IDE Controller 1043 82ef M3A78-EH Motherboard 439d SB7x0/SB8x0/SB9x0 LPC host controller 103c 1611 Pavilion DM1Z-3000 1043 82ef M3A78-EH Motherboard 1043 8443 M5A88-V EVO - 43a0 SB700/SB800 PCI to PCI bridge (PCIE port 0) - 43a1 SB700/SB800 PCI to PCI bridge (PCIE port 1) - 4437 Radeon Mobility 7000 IGP + 174b 1001 Sapphire PURE Fusion Mini + 43a0 SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) + 43a1 SB700/SB800/SB900 PCI to PCI bridge (PCIE port 1) + 43a2 SB900 PCI to PCI bridge (PCIE port 2) + 43a3 SB900 PCI to PCI bridge (PCIE port 3) + 4437 RS250 [Radeon Mobility 7000 IGP] 4554 210888ET [Mach64 ET] 4654 Mach64 VT 4742 3D Rage Pro AGP 1X/2X @@ -942,9 +973,9 @@ 1002 0084 Rage 3D Pro AGP 2x XPERT 98 1002 0087 Rage 3D IIC 1002 475a Rage IIC AGP - 4964 Radeon RV250 Id [Radeon 9000] - 4965 Radeon RV250 Ie [Radeon 9000] - 4966 Radeon RV250 If [Radeon 9000] + 4964 RV250 Id [Radeon 9000] + 4965 RV250 Ie [Radeon 9000] + 4966 R250 If [Radeon 9000] 10f1 0002 RV250 If [Tachyon G9000 PRO] 148c 2039 RV250 If [Radeon 9000 Pro "Evil Commando"] 1509 9a00 RV250 If [Radeon 9000 "AT009"] @@ -953,16 +984,16 @@ 174b 7192 RV250 If [Radeon 9000 "Atlantis"] 17af 2005 RV250 If [Excalibur Radeon 9000 Pro] 17af 2006 RV250 If [Excalibur Radeon 9000] - 4967 Radeon RV250 Ig [Radeon 9000] - 496e Radeon RV250 [Radeon 9000] (Secondary) + 4967 RV250 Ig [Radeon 9000] + 496e RV250 [Radeon 9000] (Secondary) 4a48 R420 JH [Radeon X800] 4a49 R420 JI [Radeon X800PRO] 4a4a R420 JJ [Radeon X800SE] 4a4b R420 JK [Radeon X800] 4a4c R420 JL [Radeon X800] 4a4d R420 JM [FireGL X3] - 4a4e M18 JN [Radeon Mobility 9800] - 4a4f Radeon X800 SE (R420) (AGP) + 4a4e R420 JN [Mobility Radeon 9800] + 4a4f R420 [Radeon X800 AGP] 4a50 R420 JP [Radeon X800XT] 4a54 R420 [Radeon X800 VE] 4a69 R420 [Radeon X800 PRO/GTO] (Secondary) @@ -970,9 +1001,9 @@ 4a6b R420 [Radeon X800] (Secondary) 4a70 R420 [X800XT-PE] (Secondary) 4a74 R420 [Radeon X800 VE] (Secondary) - 4b48 Radeon X850 Consumer (R481) + 4b48 R481 [Radeon X850 PCIe] 4b49 R480 [Radeon X850XT] - 4b4a Radeon X850 SE (R480) (AGP) + 4b4a R480 [Radeon X850SE AGP] 4b4b R480 [Radeon X850Pro] 4b4c R481 [Radeon X850XT-PE] 4b69 R480 [Radeon X850XT] (Secondary) @@ -1016,7 +1047,7 @@ 1033 8112 Versa Note VXi 4c53 Rage Mobility L 4c54 264LT [Mach64 LT] - 4c57 Radeon Mobility M7 LW [Radeon Mobility 7500] + 4c57 RV200 [Mobility Radeon 7500] 1014 0517 ThinkPad T30 1014 0530 ThinkPad T42 2373-4WU 1028 00e6 Radeon Mobility M7 LW (Dell Inspiron 8100) @@ -1024,7 +1055,7 @@ 1043 1622 Mobility Radeon M7 (L3C/S) 144d c006 Radeon Mobility M7 LW in vpr Matrix 170B4 4c58 Radeon RV200 LX [Mobility FireGL 7800 M7] - 4c59 Radeon Mobility M6 LY + 4c59 RV100 LY [Mobility Radeon 7000] 0e11 b111 Evo N600c 1014 0235 ThinkPad A30/A30p (2652/2653) 1014 0239 ThinkPad X22/X23/X24 @@ -1032,7 +1063,7 @@ 104d 80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP 104d 8140 PCG-Z1SP laptop 1509 1930 Medion MD9703 - 4c5a Radeon Mobility M6 LZ + 4c5a RV100 LZ [Mobility Radeon 7000] 4c64 Radeon RV250 Ld [Radeon Mobility 9000 M9] 4c65 Radeon RV250 Le [Radeon Mobility 9000 M9] 4c66 Radeon RV250 [Mobility FireGL 9000] @@ -1064,10 +1095,10 @@ 144d c00c P35 notebook 1462 0311 MSI M510A 1734 1055 Amilo M1420W - 4e51 M10 NQ [Radeon Mobility 9600] + 4e51 RV350 NQ [Mobility Radeon 9600] 4e52 RV350 [Mobility Radeon 9600 M10] 144d c00c P35 notebook - 4e53 M10 NS [Radeon Mobility 9600] + 4e53 RV350 NS [Mobility Radeon 9600] 4e54 M10 NT [FireGL Mobility T2] 4e56 M11 NV [FireGL Mobility T2e] 4e64 Radeon R300 [Radeon 9700 Pro] (Secondary) @@ -1157,7 +1188,7 @@ 514f Radeon R200 QO [Radeon 8500LE] 5154 R200 QT [Radeon 8500] 5155 R200 QU [Radeon 9100] - 5157 Radeon RV200 QW [Radeon 7500] + 5157 RV200 QW [Radeon 7500] 1002 013a Radeon 7500 1002 0f2b ALL-IN-WONDER VE PCI 1002 103a Dell Optiplex GX260 @@ -1169,8 +1200,8 @@ 174b 7147 RV200 QW [Sapphire Radeon 7500LE] 174b 7161 Radeon RV200 QW [Radeon 7500 LE] 17af 0202 RV200 QW [Excalibur Radeon 7500LE] - 5158 Radeon RV200 QX [Radeon 7500] - 5159 Radeon RV100 QY [Radeon 7000/VE] + 5158 RV200 QX [Radeon 7500] + 5159 RV100 QY [Radeon 7000/VE] 1002 000a Radeon 7000/Radeon VE 1002 000b Radeon 7000 1002 0038 Radeon 7000/Radeon VE @@ -1195,7 +1226,7 @@ 174b 7c28 Sapphire Radeon VE 7000 DDR 1787 0202 RV100 QY [Excalibur Radeon 7000] 17ee 1001 Radeon 7000 64MB DDR + DVI - 515a Radeon RV100 QZ [Radeon 7000/VE] + 515a RV100 QZ [Radeon 7000/VE] 515e ES1000 1028 01bb PowerEdge 1955 Embedded ATI ES1000 1028 01df PowerEdge SC440 @@ -1265,19 +1296,19 @@ 5453 Rage 128 Pro Ultra TS 5454 Rage 128 Pro Ultra TT 5455 Rage 128 Pro Ultra TU - 5460 M22 [Mobility Radeon X300] + 5460 RV370 [Mobility Radeon X300] 1775 1100 CR11/VR11 Single Board Computer - 5461 M22 [Mobility Radeon X300] - 5462 M24 [Radeon Mobility X600] - 5464 M22 [FireGL GL] + 5461 RV370 [Mobility Radeon X300] + 5462 RV380 [Mobility Radeon X600] + 5464 RV370 [Mobility FireGL V3100] 5548 R423 UH [Radeon X800 (PCIE)] 5549 R423 UI [Radeon X800PRO (PCIE)] 554a R423 UJ [Radeon X800LE (PCIE)] 554b R423 UK [Radeon X800SE (PCIE)] - 554c Radeon X800 XTP (R430) (PCIE) + 554c R430 [Radeon X800XTP PCIe] 554d R430 [Radeon X800 XL] (PCIe) 1458 2124 GV-R80L256V-B (AGP) - 554e Radeon X800 SE (R430) (PCIE) + 554e R430 [Radeon X800 SE PCIe] 554f R430 [Radeon X800 (PCIE)] 5550 R423 [FireGL V7100] 5551 R423 [FireGL V5100 (PCIE)] @@ -1306,7 +1337,7 @@ 5831 RS300 Host Bridge 5832 RS300 Host Bridge 5833 Radeon 9100 IGP Host Bridge - 5834 Radeon 9100 IGP + 5834 RS300 [Radeon 9100 IGP] 5835 RS300M AGP [Radeon Mobility 9100IGP] 5838 Radeon 9100 IGP AGP Bridge 5854 Radeon Xpress Series (RS480) @@ -1386,12 +1417,14 @@ 5a10 RD890 Northbridge only dual slot (2x16) PCI-e GFX Hydra part 5a11 RD890 Northbridge only single slot PCI-e GFX Hydra part 5a12 RD890 Northbridge only dual slot (2x8) PCI-e GFX Hydra part + 15d9 a811 H8DGU 5a13 RD890 PCI to PCI bridge (external gfx0 port A) 5a14 RD890 PCI to PCI bridge (external gfx0 port B) 5a15 RD890 PCI to PCI bridge (PCI express gpp port A) 5a16 RD890 PCI to PCI bridge (PCI express gpp port B) 5a17 RD890 PCI to PCI bridge (PCI express gpp port C) 5a18 RD890 PCI to PCI bridge (PCI express gpp port D) + 15d9 a811 H8DGU 5a19 RD890 PCI to PCI bridge (PCI express gpp port E) 5a1a RD890 PCI to PCI bridge (PCI express gpp port F) 5a1b RD890 PCI to PCI bridge (PCI express gpp port G) @@ -1399,6 +1432,9 @@ 5a1d RD890 PCI to PCI bridge (external gfx1 port A) 5a1e RD890 PCI to PCI bridge (external gfx1 port B) 5a1f RD890 PCI to PCI bridge (NB-SB link) + 15d9 a811 H8DGU + 5a20 RD890S PCI Express bridge for GPP2 port 1 + 5a23 RD990 I/O Memory Management Unit (IOMMU) 5a33 Radeon Xpress 200 Host Bridge 5a34 RS480 PCI-X Root Port # Comes in pair with 5a3f @@ -1424,7 +1460,7 @@ 174b 0500 Radeon X300 (PCIE) 196d 1086 X300SE HM 5b62 RV380 [Radeon X600 (PCIE)] - 5b63 RV370 [Sapphire X550 Silent] + 5b63 RV370 [Radeon X550] 5b64 RV370 5B64 [FireGL V3100 (PCIE)] 5b65 RV370 5B65 [FireGL D1100 (PCIE)] 5b66 RV370X @@ -1457,7 +1493,7 @@ 5d4d R480 [Radeon X850XT Platinum (PCIE)] 5d4e Radeon X850 SE (R480) (PCIE) 5d4f R480 [Radeon X800 GTO (PCIE)] - 5d50 FireGL V7200 (R480) (PCIE) + 5d50 R480 [FireGL V7200 (PCIE)] 5d51 R480 GL 12P 5d52 R480 [Radeon X850XT (PCIE)] (Primary) 1002 0b12 PowerColor X850XT PCIe (Primary) @@ -1479,49 +1515,93 @@ 5e6d RV410 [Radeon X700 (PCIE)] (Secondary) 148c 2117 PowerColor Bravo X700 5f57 R423 [Radeon X800XT (PCIE)] - 6718 Cayman XT [AMD Radeon HD 6900 Series] - 6719 Cayman PRO [AMD Radeon 6900 Series] + 6600 Mars [Radeon HD 8600/8700M Series] + 6601 Mars [Radeon HD 8500/8700M Series] + 6606 Mars [Radeon HD 8790M] + 6610 Oland [Radeon HD 8600 Series] + 6611 Oland [Radeon HD 8500 Series] + 6704 Cayman PRO GL [FirePro V7900] + 6707 Cayman LE GL [FirePro V5900] + 6718 Cayman XT [Radeon HD 6970] + 6719 Cayman PRO [Radeon HD 6950] 671d Antilles [AMD Radeon HD 6990] - 671f NI CAYMAN [Radeon HD 6900 Series] - 6720 Blackcomb [AMD Radeon HD 6900M Series] - 6738 Barts XT [ATI Radeon HD 6800 Series] - 6739 Barts PRO [ATI Radeon HD 6800 Series] + 671f Cayman [Radeon HD 6900 Series] + 6720 Blackcomb [Radeon HD 6900M series] + 6738 Barts XT [Radeon HD 6800 Series] + 6739 Barts PRO [Radeon HD 6800 Series] + 1043 03b4 EAH6850 [Radeon HD 6850] 673e Barts LE [AMD Radeon HD 6700 Series] 6740 Whistler XT [AMD Radeon HD 6700M Series] - 6741 NI Whistler [AMD Radeon HD 6600M Series] + 6741 Whistler [AMD Radeon HD 6600M Series] + 106b 00e2 MacBookPro8,2 [Core i7, 15", Late 2011] 6742 Whistler LE [AMD Radeon HD 6625M Graphics] - 6743 NI WHISTLER [Radeon E6760] - 6750 Turks [AMD Radeon HD 6500 series] - 6758 Turks XT [AMD Radeon HD 6600 Series] - 6759 NI Turks [AMD Radeon HD 6500] - 6760 NI Seymour [AMD Radeon HD 6470M] - 6761 NI Seymour [AMD Radeon HD 6430M] - 6763 NI SEYMOUR [Radoen] E6460 - 6770 NI CAICOS [AMD Radeon HD 6400 Series] - 6779 NI Caicos [AMD RADEON HD 6450] + 6743 Whistler [Radeon E6760] + 6749 Turks [FirePro V4900] + 674a Turks [AMD FirePro V3900] + 6750 Turks [AMD Radeon HD 6570] + 6751 Turks [Radeon HD 7600A Series] + 6758 Turks [Radeon HD 6670] + 6759 Turks [Radeon HD 6570] + 675d Turks [Radeon HD 7500 Series] + 6760 Caicos [Radeon HD 6400M/7400M Series] + 1028 04cc Vostro 3350 + 6761 Seymour LP [Radeon HD 6430M] + 6763 Seymour [Radeon E6460] + 6770 Caicos [Radeon HD 6400 Series] + 6772 Caicos [Radeon HD 7400A Series] + 6778 Caicos [Radeon HD 7000 Series] + 6779 Caicos [Radeon HD 6450] 174b e164 Sapphire HD 6450 1GB DDR3 - 6858 SI LOMBOK [Radoen HD 6000 Series] - 6889 EG Cypress [FirePro V7800] + 677b Caicos [Radeon HD 7400 Series] + 6798 Tahiti XT [Radeon HD 7970] + 6799 New Zealand [Radeon HD 7990] + 679a Tahiti PRO [Radeon HD 7950] + 679e Tahiti LE [Radeon HD 7800 Series] + 6800 Wimbledon XT [Radeon HD 7970M] + 6818 Pitcairn [Radeon HD 7800] + 6819 Pitcairn PRO [Radeon HD 7800] + 6820 Radeon HD 8800M Series + 6821 Radeon HD 8800M Series + 6823 Radeon HD 8800M Series + 6825 Cape Verde [Radeon HD 7800M Series] + 682b Radeon HD 8800M Series + 682f Cape Verde [Radeon HD 7700M Series] + 683b Cape Verde [Radeon HD 7700 Series] + 683d Cape Verde [Radeon HD 7700 Series] + 683f Cape Verde PRO [Radeon HD 7700 Series] + 6840 Thames XT/GL [Radeon HD 7600M Series] + 6841 Thames [Radeon 7500M/7600M Series] + 6842 Thames LE [Radeon HD 7000M Series] + 6843 Thames [Radeon HD 7670M] + 6850 Lombok GL AIO [Radeon HD 7570] + 6858 Lombok [Radeon HD 7400 series] + 6888 Cypress [FirePro 3D V8800] + 6889 Cypress [FirePro V7800] + 688a Cypress XT [FirePro 3D V9800] 688c Cypress [AMD FireStream 9370] 688d Cypress [AMD FireStream 9350] - 6898 Radeon HD 5870 (Cypress) + 6898 Cypress XT [Radeon HD 5870] 1462 8032 R5870 PM2D1G - 6899 Cypress [Radeon HD 5800 Series] - 689b EG CYPRESS [Radeon HD 6800 Series] - 689c Hemlock [ATI Radeon HD 5900 Series] - 689e Radeon HD 5800 Series (Cypress LE) + 6899 Cypress PRO [Radeon HD 5800 Series] + 1043 0330 EAH5850 [Radeon HD5850] + 689b Cypress [Radeon HD 6800 Series] + 689c Hemlock [Radeon HD 5900 Series] + 689e Cypress LE [Radeon HD 5800 Series] 68a0 Broadway XT [Mobility Radeon HD 5800 Series] 103c 1520 Broadway XT [FirePro M7820] 68a1 Broadway PRO [Mobility Radeon HD 5800 Series] 68a8 Broadway [ATI Mobility Radeon HD 6800 Series] + 68a9 Juniper XT [FirePro 3D V5800] 68b8 Juniper [Radeon HD 5700 Series] - 68b9 Juniper [ATI Radeon HD 5600/5700] + 106b 00cf MacPro5,1 [Mac Pro 2.8GHz DDR3] + 68b9 Juniper [Radeon HD 5600/5700] 68ba Juniper XT [AMD Radeon HD 6000 Series] - 68be Juniper [Radeon HD 5750 Series] - 68bf Juniper LE [AMD Radeon HD 6700 Series] + 68be Juniper [Radeon HD 5700 Series] + 68bf Juniper LE [Radeon HD 6700 Series] 68c0 Madison [Mobility Radeon HD 5000 Series] 103c 1521 Madison XT [FirePro M5800] - 68c1 Madison [AMD Radeon HD 5000M Series] + 68c1 Madison [Radeon HD 5000M Series] + 1025 033d Mobility Radeon HD 5650 1025 0347 Aspire 7740G 103c 1521 Madison Pro [FirePro M5800] 68c7 Pinewood [Radeon HD 5570] @@ -1534,10 +1614,11 @@ 68e1 Manhattan [Mobility Radeon HD 5430 Series] 68e4 Robson CE [AMD Radeon HD 6300 Series] 68e5 Robson LE [AMD Radeon HD 6300M Series] - 68f1 Cadar [FirePro 2460] + 68f1 Cedar [FirePro 2460] 68f2 Cedar [FirePro 2270] - 68f9 Cedar PRO [Radeon HD 5450] + 68f9 Cedar PRO [Radeon HD 5450/6350] 1028 010e XPS 8300 + 68fa EG Cedar [Radeon HD 7300 Series] 700f PCI Bridge [IGP 320M] 7010 PCI Bridge [IGP 340M] 7100 R520 [Radeon X1800] @@ -1684,14 +1765,16 @@ 17f2 5000 KI690-AM2 Motherboard 791f RS690M [Radeon X1200 Series] 1179 ff50 Satellite P305D-S8995E - 7930 Radeon Xpress 7930 Host Bridge - 7932 RS7932 PCI Bridge - 7933 RS7933 PCI Bridge - 7936 RS7936 PCI Bridge - 793b RS600 audio device [Radeon Xpress 12xx Series] - 793f RS600 [Radeon Xpress 1200 Series] - 7941 RS600 [Radeon Xpress 1200 Series] - 7942 Radeon Xpress 1250 + 7930 RS600 Host Bridge + 7932 RS600 PCI to PCI Bridge (Internal gfx) + 7933 RS600 PCI to PCI Bridge (PCI Express Graphics Port 0) + 7935 RS600 PCI to PCI Bridge (PCI Express Port 1) + 7936 RS600 PCI to PCI Bridge (PCI Express Port 2) + 7937 RS690 PCI to PCI Bridge (PCI Express Port 3) + 793b RS600 HDMI Audio [Radeon Xpress 1250] + 793f RS600 [Radeon Xpress 1250] + 7941 RS600 [Radeon Xpress 1250] + 7942 RS600 [Radeon Xpress 1250] 796e Radeon 2100 7c37 RV350 AQ [Radeon 9600 SE] 9400 R600 [Radeon HD 2900 Series] @@ -1718,6 +1801,7 @@ 9480 M96 [Mobility Radeon HD 4650] 103c 3628 ATI Mobility Radeon HD 4650 [dv6-1190en] 9485 RV740 Pro [Radeon HD 4770] + 9488 RV730 XT [Mobility Radeon HD 4670] 9489 M96 XT [Mobility FireGL V5725] 9490 RV730XT [Radeon HD 4670] 174b e880 Radeon HD 4670 512MB DDR3 @@ -1746,10 +1830,10 @@ 94c9 Mobility Radeon HD 2400 1002 94c9 Radeon HD2400 94cb Radeon E2400 - 94cc RV 610LE PCI [Radeon HD 2400] - 9501 Radeon HD 3870 + 94cc RV610 LE [Radeon HD 2400 Pro PCI] + 9501 RV670 [Radeon HD 3870] 174b e620 Sapphire Radeon HD 3870 PCIe 2.0 - 9504 Mobility Radeon HD 3850 + 9504 RV670 [Mobility Radeon HD 3850] 9505 RV670PRO [Radeon HD 3850] 9507 RV670 [Radeon HD 3850] 9508 M88 XT Mobility Radeon HD 3870] @@ -1760,15 +1844,15 @@ 9540 RV710 [Radeon HD 4550] 954f RV710 [Radeon HD 4350] 1462 1618 R4350 MD512H (MS-V161) - 9552 M92 LP [Mobility Radeon HD 4300 Series] - 9553 M92 [Mobility Radeon HD 4500/5100 Series] + 9552 RV710 [Mobility Radeon HD 4300 Series] + 9553 RV710 [Mobility Radeon HD 4500/5100 Series] 1179 ff82 Satellite L505-13T GPU (Mobility Radeon HD 5145) - 9555 M93 [Mobility Radeon HD 4300/4500 Series] + 9555 RV710 [Mobility Radeon HD 4300/4500 Series] 103c 1411 ProBook 4720s GPU (Mobility Radeon HD 4350) - 9559 Mobility Radeon HD 3600 Series - 955f M92 [Mobility Radeon HD 4330] - 9581 M76 [Radeon Mobility HD 2600 Series] - 9583 M76XT [Mobility Radeon HD 2600 XT] + 9559 RV635 [Mobility Radeon HD 3600 Series] + 955f RV710 [Mobility Radeon HD 4330] + 9581 RV630 [Mobility Radeon HD 2600] + 9583 RV630 [Mobility Radeon HD 2600 XT] 9586 RV 630 XT AGP [Radeon HD 2600 XT AGP] 9587 RV630 PRO AGP [Radeon HD 2600 PRO AGP] 9588 RV630 [Radeon HD 2600XT] @@ -1776,20 +1860,21 @@ 9589 RV630 [Radeon HD 2600 Series] 958c RV630GL [FireGL v5600] 958d RV630 [FireGL V3600] - 9591 Mobility Radeon HD 3650 + 9591 RV635 [Mobility Radeon HD 3650] 1002 9591 Mobility Radeon HD 3650 - 9593 Radeon Mobility HD 3670 + 9593 RV635 [Mobility Radeon HD 3670] 9595 M86GL [Mobility FireGL V5700] 9596 RV635 PRO AGP [Radeon HD 3650] 1043 0028 EAH3650 SILENT/HTDI/512M/A - 9598 Mobility Radeon HD 3600 Series + 9598 RV630 [Radeon HD 3600 Series] 1002 9598 Mobility Radeon HD 3600 1043 01d6 EAH3650 Silent - 95c0 Mobility Radeon HD 3470 + 95c0 RV620 PRO [Radeon HD 3470] 1002 95c0 Mobility Radeon HD 3470 - 95c4 Mobility Radeon HD 3400 Series + 95c4 RV620 [Mobility Radeon HD 3400 Series] 1002 95c4 Mobility Radeon HD 3400 95c5 RV620 LE [Radeon HD 3450] + 1028 0342 OptiPlex 980 95c6 RV620 LE AGP [Radeon HD 3450] 95c7 RV620 CE [Radeon HD 3430] 95c9 RV620 PCI [Radeon HD 3450] @@ -1797,53 +1882,69 @@ 95cd RV620 [FireMV 2450] 95ce RV620 [FirePro 2260] 95cf RV620 [FirePro 2260] - 960f RS780 Azalia controller - 9610 Radeon HD 3200 Graphics + 960f RS780 HDMI Audio [Radeon HD 3000-3300 Series] + 9610 RS780 [Radeon HD 3200] 1458 d000 GA-MA78GM-S2H Motherboard - 9611 Radeon 3100 Graphics - 9612 RS780M/RS780MN [Radeon HD 3200 Graphics] - 9613 RS780MC [Radeon HD 3100 Graphics] - 9614 Radeon HD 3300 Graphics - 9615 RS780E [AMD 780E] - 9616 760G [Radeon 3000] - 970f RS880 Audio Device [Radeon HD 4200] + 9611 RS780C [Radeon HD 3100] + 9612 RS780M/RS780MN [Mobility Radeon HD 3200 Graphics] + 9613 RS780MC [Mobility Radeon HD 3100 Graphics] + 9614 RS780D [Radeon HD 3300] + 9615 RS780E [Radeon HD 3200] + 9616 RS780L [Radeon HD 3000] + 9640 BeaverCreek [Radeon HD 6550D] + 9641 BeaverCreek [Mobility Radeon HD 6620G] + 9647 BeaverCreek [Radeon HD 6520G] + 964a BeaverCreek [Radeon HD 6530D] + 970f RS880 HDMI Audio [Radeon HD 4200 Series] 1043 83a2 M4A785TD Motherboard 1043 843e M5A88-V EVO 9710 RS880 [Radeon HD 4200] 1043 83a2 M4A785TD Motherboard - 9712 M880G [Mobility Radeon HD 4200] - 9713 M860G [Mobility Radeon 4100] + 9712 RS880M [Mobility Radeon HD 4200 Series] + 9713 RS880M [Mobility Radeon HD 4100] 9714 RS880 [Radeon HD 4290] 9715 RS880 [Radeon HD 4250] 1043 843e M5A88-V EVO - 9723 Radeon HD 5450 - 9802 AMD Radeon HD 6310 GraphicsATI +# Radeon HD 6250 too? + 9802 Wrestler [Radeon HD 6310] + 174b 1001 Sapphire PURE Fusion Mini + 9804 Wrestler [Radeon HD 6250] + 9806 Wrestler [Radeon HD 6320] + 9807 Wrestler [Radeon HD 6290] +# AMD A10-5800K CPU + 9901 Trinity [Radeon HD 7660D] + 9990 Trinity [Radeon HD 7520G] aa00 R600 Audio Device [Radeon HD 2900 Series] - aa08 RV630/M76 audio device [Radeon HD 2600 Series] - aa10 RV610 audio device [Radeon HD 2400 PRO] + aa08 RV630 audio device [Radeon HD 2600 Series] + aa10 RV610 HDMI Audio [Radeon HD 2350/2400 Series] 174b aa10 Sapphire HD 2400 PRO audio device 18bc aa10 GeCube Radeon HD 2400 PRO HDCP-capable digital-only audio device - aa18 Radeon HD 3870 Audio device - aa20 RV635 Audio device [Radeon HD 3600 Series] - aa28 RV620 Audio device [Radeon HD 34xx Series] - aa30 HD48x0 audio + aa18 RV670/680 HDMI Audio [Radeon HD 3690/3800 Series] + aa20 RV635 HDMI Audio [Radeon HD 3600 Series] + aa28 RV620 HDMI Audio [Radeon HD 3400 Series] + aa30 RV770 HDMI Audio [Radeon HD 4850/4870] 174b aa30 Sapphire HD 4850 512MB GDDR3 PCI-E Dual Slot Fansink - aa38 RV710/730 + aa38 RV710/730 HDMI Audio [Radeon HD 4000 series] 103c 3628 ATI RV710/730 [dv6-1190en] 174b aa38 R700 Audio Device [Radeon HD 4000 Series] aa50 Cypress HDMI Audio [Radeon HD 5800 Series] aa58 Juniper HDMI Audio [Radeon HD 5700 Series] - aa60 Redwood HDMI Audio [Radeon HD 5600 Series] +# 5500, 5600 and mobile 5700 series + aa60 Redwood HDMI Audio [Radeon HD 5000 Series] + 1025 033d Mobility Radeon HD 5650 1025 0347 Aspire 7740G - aa68 Manhattan HDMI Audio [Mobility Radeon HD 5000 Series] + aa68 Cedar HDMI Audio [Radeon HD 5400/6300 Series] 1028 aa68 XPS 8300 + aa80 Cayman/Antilles HDMI Audio [Radeon HD 6900 Series] aa88 Barts HDMI Audio [Radeon HD 6800 Series] - aa98 NI Caicos HDMI Audio [AMD RADEON HD 6450] + aa90 Turks/Whistler HDMI Audio [Radeon HD 6000 Series] + aa98 Caicos HDMI Audio [Radeon HD 6400 Series] 174b aa98 Sapphire HD 6450 1GB DDR3 + aaa0 Tahiti XT HDMI Audio [Radeon HD 7970 Series] ac00 Theater 600 Pro ac02 TV Wonder HD 600 PCIe ac12 Theater HD T507 (DVB-T) TV tuner/capture device - cab0 AGP Bridge [IGP 320M] + cab0 RS100 AGP Bridge [IGP 320M] cab2 RS200/RS200M AGP Bridge [IGP 340M] cab3 R200 AGP Bridge [Mobility Radeon 7000 IGP] cbb2 RS200/RS200M AGP Bridge [IGP 340M] @@ -1876,8 +1977,11 @@ 1004 0306 QSound ThunderBird PCI Audio Support Registers 122d 1208 DSP368 Audio Support Registers 1483 5022 XWave Thunder 3D Audio Support Registers - 0307 Thunderbird - 0308 Thunderbird + 0307 SAA7785 ThunderBird PCI Audio + 1004 0703 Philips Rhythmic Edge PSC703 + 1004 0705 Philips Seismic Edge PSC705 + 1004 0706 Philips Acoustic Edge PSC706 + 0308 SAA7785 ThunderBird PCI Audio Gameport 0702 VAS96011 [Golden Gate II] 0703 Tollgate 1005 Avance Logic Inc. [ALI] @@ -2231,13 +2335,15 @@ 1014 0360 PCI-E Auxiliary Cache Adapter (57B7) 033d PCI-E IPR SAS Adapter (FPGA) 1014 033c PCIe2 1.8GB Cache 6Gb SAS RAID Adapter Tri-port (57B5) + 1014 0353 PCIe2 3.1GB Cache 6Gb SAS RAID Enclosure (57C3) + 1014 0354 PCIe2 6Gb SAS Adapter Dual-port (57C4) 1014 0356 PCIe2 1.8GB Cache 6Gb SAS RAID & SSD Adapter (574D) 1014 035f PCIe2 6Gb SAS Adapter Quad-port (57B2) 034a PCI-E IPR SAS Adapter (ASIC) 1014 033b PCIe2 6Gb SAS RAID Adapter Quad-port (57B4) 1014 0355 PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57B1) 1014 0357 PCIe2 6Gb SAS Adapter Quad-port (57C6) - 1014 035d PCIe2 3.6GB Cache 6Gb SAS RAID & SSD Adapter (575D) + 1014 035d PCIe3 1.8GB Cache RAID SAS Adapter Quad-port 6GB (57C8) 1014 035e PCIe2 3.6GB Cache 6Gb SAS RAID Adapter Quad-port (57CE) 3022 QLA3022 Network Adapter 4022 QLA3022 Network Adapter @@ -2325,9 +2431,25 @@ 1302 Family 11h Processor DRAM Controller 1303 Family 11h Processor Miscellaneous Control 1304 Family 11h Processor Link Control + 1400 Family 15h (Models 10h-1fh) Processor Function 0 + 1401 Family 15h (Models 10h-1fh) Processor Function 1 + 1402 Family 15h (Models 10h-1fh) Processor Function 2 + 1403 Family 15h (Models 10h-1fh) Processor Function 3 + 1404 Family 15h (Models 10h-1fh) Processor Function 4 + 1405 Family 15h (Models 10h-1fh) Processor Function 5 + 1410 Family 15h (Models 10h-1fh) Processor Root Complex + 1412 Family 15h (Models 10h-1fh) Processor Root Port + 1413 Family 15h (Models 10h-1fh) Processor Root Port + 1414 Family 15h (Models 10h-1fh) Processor Root Port + 1415 Family 15h (Models 10h-1fh) Processor Root Port + 1416 Family 15h (Models 10h-1fh) Processor Root Port + 1417 Family 15h (Models 10h-1fh) Processor Root Port + 1418 Family 15h (Models 10h-1fh) Processor Root Port + 1419 Family 15h (Models 10h-1fh) I/O Memory Management Unit 1510 Family 14h Processor Root Complex - 1022 1510 Pavilion DM1Z-3000 Host bridge + 174b 1001 Sapphire PURE Fusion Mini 1512 Family 14h Processor Root Port + 174b 1001 Sapphire PURE Fusion Mini 1513 Family 14h Processor Root Port 1514 Family 14h Processor Root Port 1515 Family 14h Processor Root Port @@ -2396,6 +2518,10 @@ 2097 CS5536 [Geode companion] UOC 209a CS5536 [Geode companion] IDE 3000 ELanSC520 Microcontroller + 43a0 Hudson PCI to PCI bridge (PCIE port 0) + 43a1 Hudson PCI to PCI bridge (PCIE port 1) + 43a2 Hudson PCI to PCI bridge (PCIE port 2) + 43a3 Hudson PCI to PCI bridge (PCIE port 3) 7006 AMD-751 [Irongate] System Controller 7007 AMD-751 [Irongate] AGP Bridge 700a AMD-IGR4 AGP Host to PCI Bridge @@ -2422,7 +2548,7 @@ 7443 AMD-768 [Opus] ACPI 1043 8044 A7M-D Mainboard 7445 AMD-768 [Opus] Audio - 7446 AMD-768 [Opus] MC97 Modem (Smart Link HAMR5600 compatible) + 7446 AMD-768 [Opus] MC97 Modem 7448 AMD-768 [Opus] PCI 7449 AMD-768 [Opus] USB 7450 AMD-8131 PCI-X Bridge @@ -2472,8 +2598,8 @@ 1043 843e M5A88-V EVO 9602 RS780/RS880 PCI to PCI bridge (int gfx) 9603 RS780 PCI to PCI bridge (ext gfx port 0) - 9604 RS780 PCI to PCI bridge (PCIE port 0) - 9605 RS780 PCI to PCI bridge (PCIE port 1) + 9604 RS780/RS880 PCI to PCI bridge (PCIE port 0) + 9605 RS780/RS880 PCI to PCI bridge (PCIE port 1) 9606 RS780 PCI to PCI bridge (PCIE port 2) 9607 RS780 PCI to PCI bridge (PCIE port 3) 9608 RS780/RS880 PCI to PCI bridge (PCIE port 4) @@ -2595,6 +2721,8 @@ 5453 M5453 PCI AC-Link Controller Modem Device 7101 M7101 PCI PMU Power Management Controller 10b9 7101 M7101 PCI PMU Power Management Controller +# should be 1022:9602 + 9602 AMD RS780/RS880 PCI to PCI bridge (int gfx) 1028 Dell 0001 PowerEdge Expandable RAID Controller 2/Si 1028 0001 PowerEdge 2400 @@ -2649,7 +2777,7 @@ 00cf AIC-7899P U160/m 1028 0106 PowerEdge 4600 1028 0121 PowerEdge 2650 -102b Matrox Graphics, Inc. +102b Matrox Electronics Systems Ltd. # DJ: I've a suspicion that 0010 is a duplicate of 0d10. 0010 MGA-I [Impression?] 0100 MGA 1064SG [Mystique] @@ -2807,6 +2935,7 @@ 1028 028d PowerEdge T410 MGA G200eW WPCM450 1028 029c PowerEdge M710 MGA G200eW WPCM450 1028 02a4 PowerEdge T310 MGA G200eW WPCM450 + 15d9 a811 H8DGU 0533 MGA G200EH 103c 3381 iLO4 0534 G200eR2 @@ -2836,11 +2965,10 @@ 102b ff05 MGA-G100 Productiva AGP Multi-Monitor 110a 001e MGA-G100 AGP 2007 MGA Mistral - 2527 MGA G550 AGP + 2527 Millennium G550 102b 0f83 Millennium G550 102b 0f84 Millennium G550 Dual Head DDR 32Mb 102b 1e41 Millennium G550 -# Clearly the device name should not say AGP anymore... 102b 2300 Millennium G550 LP PCIE 2537 Millenium P650/P750 102b 1820 Millennium P750 64MB @@ -2890,10 +3018,46 @@ 102b 0101 Millenium P690 PCI 102b 0140 Millenium P690 LP PCIe x1 102b 0180 Display Wall IP Decode 128 MB + 4164 Morphis QxT frame grabber + 43b4 Morphis Qxt encoding engine + 4510 Morphis COM port 4536 VIA Framegrabber - 4cdc Morphis Vision System Jpeg2000 - 4fc5 Morphis Vision System - 5e10 Morphis Vision System Aux/IO + 4686 Concord GX (customized Intel 82541) + 475b Solios eCL/XCL-B frame grabber + 475d Vio frame grabber family + 102b 4b90 Vio Duo frame grabber (single channel) + 102b 4b91 Vio Duo frame grabber + 102b 4b92 Vio Analog frame grabber + 102b 4b93 Vio SDI Frame Grabber + 102b 4b94 Vio DVI-A frame grabber + 475f Solios (single-Full) CL frame grabber + 102b 475f Solios eCL/XCL-F frame grabber + 102b 4d5f Solios eV-CL (single-Full) frame grabber + 102b 4e5f Solios eM-CL (single-Full) frame grabber + 47a1 Solios eA/XA frame grabber + 102b 4be0 Solios eA/XA (single) frame grabber + 102b 4be1 Solios eA/XA (dual) frame grabber + 102b 4be2 Solios eA/XA (quad) frame grabber + 47a2 Solios COM port + 47c1 Solios (dual-Base/single-Medium) CL frame grabber + 102b 0000 Solios frame grabber + 102b 4b80 Solios eCL/XCL (single-Medium) frame grabber + 102b 4b81 Solios eCL/XCL (dual-Base) frame grabber + 102b 4d80 Solios eV-CL (single-Medium) frame grabber + 102b 4d81 Solios eV-CL (dual-Base) frame grabber + 102b 4e80 Solios eM-CL (single-Medium) frame grabber + 102b 4e81 Solios eM-CL (dual-Base) frame grabber + 47c2 Solios COM port + 4949 Radient frame grabber family + 102b 0010 Radient eCL (Single-full) frame grabber + 102b 0020 Radient eCL (Dual-base) frame grabber + 102b 0030 Radient eCL (Dual-full) frame grabber + 102b 0040 Radient eCL (Quad-base) frame grabber + 102b 0050 Radient eCL (Golden) frame grabber + 4cdc Morphis JPEG2000 accelerator + 4f54 Morphis (e)Quad frame grabber + 4fc5 Morphis (e)Dual frame grabber + 5e10 Morphis aux I/O 6573 Shark 10/100 Multiport SwitchNIC 102c Chips and Technologies 00b8 F64310 @@ -2982,7 +3146,7 @@ 003e NAPCCARD Cardbus Controller 0046 PowerVR PCX2 [midas] 005a Vrc5074 [Nile 4] - 0063 Firewarden + 0063 uPD72862 [Firewarden] IEEE1394 OHCI 1.0 Link Controller 0067 PowerVR Neon 250 Chipset 1010 0020 PowerVR Neon 250 AGP 32Mb 1010 0080 PowerVR Neon 250 AGP 16Mb @@ -2998,23 +3162,28 @@ 009b Vrc5476 00a5 VRC4173 00a6 VRC5477 AC97 - 00cd IEEE 1394 [OrangeLink] Host Controller + 00cd uPD72870 [Firewarden] IEEE1394a OHCI 1.0 Link/3-port PHY Controller 12ee 8011 Root hub - 00ce IEEE 1394 Host Controller + 00ce uPD72871 [Firewarden] IEEE1394a OHCI 1.0 Link/1-port PHY Controller 00df Vr4131 00e0 USB 2.0 12ee 7001 Root hub 14c2 0205 PTI-205N USB 2.0 Host Controller 1799 0002 Root Hub 807d 1043 PCI-USB2 (EHCI subsystem) - 00e7 uPD72873 IEEE1394 OHCI 1.1 2-port Host Controller - 00f2 uPD72874 IEEE1394 OHCI 1.1 3-port PHY-Link Ctrlr + 00e7 uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller + 00f2 uPD72874 [Firewarden] IEEE1394a OHCI 1.1 Link/3-port PHY Controller 00f3 uPD6113x Multimedia Decoder/Processor [EMMA2] 010c VR7701 0125 uPD720400 PCI Express - PCI/PCI-X Bridge 013a Dual Tuner/MPEG Encoder 0194 uPD720200 USB 3.0 Host Controller + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 1043 8413 P8P67 Deluxe Motherboard + 1b96 0001 USB 3.0 PCIe Card + 01e7 uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller + 01f2 uPD72874 [Firewarden] IEEE1394a OHCI 1.1 Link/3-port PHY Controller 1034 Framatome Connectors USA Inc. 1035 Comp. & Comm. Research Lab 1036 Future Domain Corp. @@ -3022,15 +3191,15 @@ 1037 Hitachi Micro Systems 1038 AMP, Inc 1039 Silicon Integrated Systems [SiS] - 0001 Virtual PCI-to-PCI bridge (AGP) - 0002 SG86C202 - 0003 SiS AGP Port (virtual PCI-to-PCI bridge) + 0001 AGP Port (virtual PCI-to-PCI bridge) + 0002 AGP Port (virtual PCI-to-PCI bridge) + 0003 AGP Port (virtual PCI-to-PCI bridge) 0004 PCI-to-PCI bridge 0006 85C501/2/3 0008 SiS85C503/5513 (LPC Bridge) - 0009 ACPI + 0009 5595 Power Management Controller 000a PCI-to-PCI bridge - 0016 SiS961/2 SMBus Controller + 0016 SiS961/2/3 SMBus controller 0018 SiS85C503/5513 (LPC Bridge) 0180 RAID bus controller 180 SATA/PATA [SiS] 0181 SATA @@ -3076,6 +3245,7 @@ 0735 735 Host 0740 740 Host 0741 741/741GX/M741 Host + 1849 0741 K7S41/K7S41GX motherboard 0745 745 Host 0746 746 Host 0755 755 Host @@ -3089,9 +3259,9 @@ 1043 80a7 Motherboard P4S800D-X 1462 0900 MS-6701 motherboard 0961 SiS961 [MuTIOL Media IO] - 0962 SiS962 [MuTIOL Media IO] - 0963 SiS963 [MuTIOL Media IO] - 0964 SiS964 [MuTIOL Media IO] + 0962 SiS962 [MuTIOL Media IO] LPC Controller + 0963 SiS963 [MuTIOL Media IO] LPC Controller + 0964 SiS964 [MuTIOL Media IO] LPC Controller 0965 SiS965 [MuTIOL Media IO] 0966 SiS966 [MuTIOL Media IO] 0968 SiS968 [MuTIOL Media IO] @@ -3106,7 +3276,7 @@ 5315 550 PCI/AGP VGA Display Adapter 5401 486 PCI Chipset 5511 5511/5512 - 5513 5513 [IDE] + 5513 5513 IDE Controller 1019 0970 P6STP-FL motherboard 1039 5513 SiS5513 EIDE Controller (A,B step) 1043 8035 CUSI-FX motherboard @@ -3160,7 +3330,7 @@ 1734 1095 D2030-A1 7007 FireWire Controller 1462 701d MS-6701 - 7012 C-Media AC'97 Sound Controller + 7012 SiS7012 AC'97 Sound Controller 1039 7012 SiS 7012 onboard [Asus P4SC-EA] AC'97 Sound Controller 1043 818f A8S-X Motherboard 13f6 0300 CMI9739(A) on ECS K7SOM+ motherboard @@ -3264,6 +3434,9 @@ 1303 RMP-3 (Remote Management Processor) 1361 BCM4312 802.11a/b/g WLAN Controller 1371 Broadcom Corporation BCM4312 802.11a/b/g (rev 02) + 1717 Intel 82571EB dual 1 Gb Ethernet controller + 179b EliteBook 8470p Notebook + 179d EliteBook 8470p Notebook 2910 E2910A PCIBus Exerciser 2925 E2925A 32 Bit, 33 MHzPCI Exerciser & Analyzer 3080 Pavilion ze2028ea @@ -3291,6 +3464,12 @@ 103c 3249 Smart Array P812 103c 324a HP Smart Array 712m (Mezzanine RAID controller) 103c 324b Smart Array P711m (Mezzanine RAID controller) + 323b Smart Array Gen8 Controllers + 103c 3350 P222 + 103c 3351 P420 + 103c 3352 P421 + 103c 3354 P420i + 103c 3355 P220i 3300 Integrated Lights-Out Standard Virtual USB Controller 103c 3304 iLO2 103c 3305 iLO2 @@ -3324,6 +3503,7 @@ 4037 PCIe Local Bus Adapter 403b PCIe Root Port 60e8 NetRAID-2M : ZX1/M (OEM AMI MegaRAID 493) + 780d Hudson Azalia Controller (rev 01) - Soundcard 103e Solliday Engineering 103f Synopsys/Logic Modeling Group 1040 Accelgraphics Inc. @@ -3345,7 +3525,7 @@ 4057 v8200 GeForce 3 8043 v8240 PAL 128M [P4T] Motherboard 8047 v8420 Deluxe [GeForce4 Ti4200] - 807b v9280/TD [Geforce4 TI4200 8X With TV-Out and DVI] + 807b v9280/TD [GeForce4 TI4200 8X With TV-Out and DVI] 8095 A7N8X Motherboard nForce2 AC97 Audio 80ac A7N8X Motherboard nForce2 AGP/Memory 80bb v9180 Magic/T [GeForce4 MX440 AGP 8x 64MB TV-out] @@ -3363,6 +3543,8 @@ 82e8 M3N72-D 8383 P7P55D Series Motherboard 83a4 Motherboard M2N68-AM SE2 +# Onboard audio for M4A89 series motherboards. + 8410 SBx00 [Azalia] 843e M5A88-V EVO # wrong vendor ID (should have been AMD) 9602 RS880 PCI to PCI bridge (int gfx) @@ -3430,6 +3612,7 @@ c825 82C825 [Firebridge 2] c832 82C832 c861 82C861 + c881 82C881 [FireLink] 1394 OHCI Link Controller c895 82C895 c935 EV1935 ECTIVA MachOne PCIAudio d568 82C825 [Firebridge 2] @@ -3450,6 +3633,7 @@ 0008 STG 2000X 0009 STG 1764X 0010 STG4000 [3D Prophet Kyro Series] + 1681 c069 3D Prophet 4000XT 0201 STPC Vega Northbridge 0209 STPC Consumer/Industrial North- and Southbridge 020a STPC Atlas/ConsumerS/Consumer IIA Northbridge @@ -3508,21 +3692,28 @@ 1102 100f Graphics Blaster Extreme 3d3d 0100 Reference Permedia 2 3D 8000 PCILynx/PCILynx2 IEEE 1394 Link Layer Controller + 105e 8003 FireBoard200 1443 8003 FireBoard200 + 1443 8005 FireBoard400 + 1443 8006 FireBoard400 e4bf 1010 CF1-1-SNARE e4bf 1020 CF1-2-SNARE + e4bf 1040 FireCompact400 8009 TSB12LV22 IEEE-1394 Controller 104d 8032 8032 OHCI i.LINK (IEEE 1394) Controller + 1443 8010 FireBoard400-OHCI 8017 PCI4410 FireWire Controller 8019 TSB12LV23 IEEE-1394 Controller 11bd 000a Studio DV500-1394 11bd 000e Studio DV + 1443 8010 FireBoard400-OHCI e4bf 1010 CF2-1-CYMBAL 8020 TSB12LV26 IEEE-1394 Controller (Link) 1028 00d8 Precision 530 104d 80e2 VAIO PCV-J200 11bd 000f Studio DV500-1394 11bd 001c Excalibur 4.1 + 1443 8010 FireBoard400-OHCI 8021 TSB43AA22 IEEE-1394 Controller (PHY/Link Integrated) 104d 80df Vaio PCG-FX403 104d 80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP @@ -3533,12 +3724,17 @@ 1043 808b K8N4-E Mainboard 1043 815b P5W DH Deluxe Motherboard 1443 8023 FireCard400 + 8086 5044 Desktop Board DP35DP 8024 TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) 107d 6620 Winfast DV2000 FireWire Controller 1443 8024 FireBoard Blue - 1458 1000 GA-EP45-DS5 Motherboard + 1458 1000 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 8025 TSB82AA2 IEEE-1394b Link Layer Controller + 1043 813c P5P series mainboard + 1443 8025 FireBoard800 1458 1000 GA-K8N Ultra-9 Mainboard + 1546 8025 FWB-PCI01 + 17fc 8025 GIC3800 8026 TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link) 1025 0035 TravelMate 660 1025 003c Aspire 2001WLCi (Compaq CL50 motherboard) @@ -3618,6 +3814,7 @@ 823f XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] 1546 803c FWB-PCIE1X11B 8240 XIO2001 PCI Express-to-PCI Bridge + 8241 TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller 8400 ACX 100 22Mbps Wireless Interface 1186 3b00 DWL-650+ PC Card cardbus 22Mbs Wireless Adapter [AirPlus] 1186 3b01 DWL-520+ 22Mbps PCI Wireless Adapter @@ -3909,7 +4106,7 @@ 1043 809e A7V8X motherboard 3515 PDC40719 [FastTrak TX4300/TX4310] 3519 PDC40519 (FastTrak TX4200) - 3570 20771 (FastTrak TX2300) + 3570 PDC20771 [FastTrak TX2300] 3571 PDC20571 (FastTrak TX2200) 3574 PDC20579 SATAII 150 IDE Controller 3577 PDC40779 (SATA 300 779) @@ -3929,8 +4126,8 @@ 105a 4d30 Ultra Device on SuperTrak 105a 4d33 Ultra66 105a 4d39 FastTrak66 - 4d68 PDC20268 (Ultra100 TX2) - 105a 4d68 Ultra100TX2 + 4d68 PDC20268 [Ultra100 TX2] + 105a 4d68 Ultra100 TX2 4d69 20269 105a 4d68 Ultra133TX2 5275 PDC20276 (MBFastTrak133 Lite) @@ -4082,7 +4279,7 @@ ba57 eXtremeRAID 4000/5000 support Device 1069 0072 eXtremeRAID 5000 support Device 106a Aten Research Inc -106b Apple Computer Inc. +106b Apple Inc. 0001 Bandit PowerPC host bridge 0002 Grand Central I/O 0003 Control Video @@ -4152,6 +4349,7 @@ 0074 U4 HT Bridge 1645 Tigon3 Gigabit Ethernet NIC (BCM5701) 106c Hynix Semiconductor + 8139 8139c 100BaseTX Ethernet Controller 8801 Dual Pentium ISA/PCI Motherboard 8802 PowerPC ISA/PCI Motherboard 8803 Dual Window Graphics Accelerator @@ -4221,6 +4419,7 @@ 103c 12dd 4Gb Fibre Channel [AB429A] 2432 ISP2432-based 4Gb Fibre Channel to PCI Express HBA 2532 ISP2532-based 8Gb Fibre Channel to PCI Express HBA + 1077 0167 QME2572 Dual Port FC8 HBA Mezzanine 3022 ISP4022-based Ethernet NIC 3032 ISP4032-based Ethernet IPv6 NIC 4010 ISP4010-based iSCSI TOE HBA @@ -4268,9 +4467,7 @@ 107c LG Electronics [Lucky Goldstar Co. Ltd] 107d LeadTek Research Inc. 0000 P86C850 - 204d [GeForce 7800 GTX] Winfast PX7800 GTX TDH 2134 WinFast 3D S320 II - 2971 [GeForce FX 5900] WinFast A350 TDH MyViVo 6609 Winfast TV 2000 XP RM 6654 Conexant CX23883 [WinFast DTV1800 H] 6f22 WinFast PxTV1200 @@ -4336,14 +4533,12 @@ 108d 0017 OC-2250 GoCard 10/100 Ethernet Adapter 0021 OC-6151/6152 [RapidFire ATM 155] 0022 ATM Adapter -# formerly Sun Microsystems -108e Oracle Corporation +108e Oracle/SUN 0001 EBUS 1000 EBUS 1001 Happy Meal 10/100 Ethernet [hme] 1100 RIO EBUS 108e 1100 RIO EBUS on Blade 100 motherboard -# Correction 1101 RIO 10/100 Ethernet [eri] 108e 1101 RIO GEM on Blade 100 motherboard 1102 RIO 1394 @@ -4511,6 +4706,7 @@ b071 IMAQ-PCI-1422 b081 IMAQ-PXI-1422 b091 IMAQ-PXI-1411 + c4c4 PXIe-4353 c801 PCI-GPIB c831 PCI-GPIB bridge 1094 First International Computers [FIC] @@ -4559,6 +4755,7 @@ 109c Megachips Corporation 109d Zida Technologies Ltd. 109e Brooktree Corporation + 0310 Bt848 Video Capture 032e Bt878 Video Capture 0350 Bt848 Video Capture 0351 Bt849A Video capture @@ -4807,6 +5004,7 @@ 8547 PEX 8547 48-lane, 3-port PCI Express Switch 8548 PEX 8548 48-lane, 9-port PCI Express Switch 8604 PEX 8604 4-lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch + 8605 PEX 8605 PCI Express 4-port Gen2 Switch 8606 PEX 8606 6 Lane, 6 Port PCI Express Gen 2 (5.0 GT/s) Switch 8608 PEX 8608 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch 8609 PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA @@ -4829,9 +5027,12 @@ 8664 PEX 8664 64-lane, 16-Port PCI Express Gen 2 (5.0 GT/s) Switch 8680 PEX 8680 80-lane, 20-Port PCI Express Gen 2 (5.0 GT/s) Multi-Root Switch 8696 PEX 8696 96-lane, 24-Port PCI Express Gen 2 (5.0 GT/s) Multi-Root Switch + 8732 PEX 8732 32-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch +# This is the Non-Transparent-Bridge Virtualized Port as presented by the PLX PEX 8732 chip, the physical bridges show up at 10b5:8732 + 87b0 PEX 8732 32-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch 9016 PLX 9016 8-port serial controller 9030 PCI9030 32-bit 33MHz PCI <-> IOBus Bridge - 10b5 2695 Hilscher CIF50-PB Profibus Master Board + 10b5 2695 Hilscher CIF50-PB/DPS Profibus 10b5 2862 Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board 10b5 2906 Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board 10b5 2940 Alpermann+Velte PCL PCI D (3V/5V): Timecode Reader Board @@ -4964,6 +5165,8 @@ a100 Blackmagic Design DeckLink bb04 B&B 3PCIOSD1A Isolated PCI Serial c001 CronyxOmega-PCI (8-port RS232) + d44d PCI9030 32-bit 33MHz PCI <-> IOBus Bridge + 10b5 17f6 entVoice E1 Card 10b6 Madge Networks 0001 Smart 16/4 PCI Ringnode 0002 Smart 16/4 PCI Ringnode Mk2 @@ -5141,7 +5344,8 @@ 1001 FDC 37C922 a011 83C170QF b106 SMC34C90 -10b9 ALi Corporation +# Split off ALi Corporation in 2003 +10b9 ULi Electronics Inc. 0101 CMI8338/C3DX PCI Audio Device 0111 C-Media CMI8738/C3DX Audio Device (OEM) 10b9 0111 C-Media CMI8738/C3DX Audio Device (OEM) @@ -5253,7 +5457,7 @@ 103c 0025 XE4500 Notebook 5459 SmartLink SmartPCI561 56K Modem 545a SmartLink SmartPCI563 56K Modem - 5461 High Definition Audio/AC'97 Host Controller + 5461 HD Audio Controller 5471 M5471 Memory Stick Controller 5473 M5473 SD-MMC Controller 7101 M7101 Power Management Controller [PMU] @@ -5358,6 +5562,7 @@ 1623 PCEA4 PCI-Express Dual Port ESCON Adapter 2001 mb86605 200c MB86613L IEEE1394 OHCI 1.0 Controller + 2010 MB86613S IEEE1394 OHCI 1.1 Controller 2019 MB86295S [CORAL P] 201e MB86296S [CORAL PA] 202b MB86297A [Carmine Graphics Controller] @@ -5390,10 +5595,9 @@ 10dd Evans & Sutherland 0100 Lightning 1200 10dd 0023 Lightning 1200 15+16M -10de nVidia Corporation +10de NVIDIA Corporation 0008 NV1 [EDGE 3D] 0009 NV1 [EDGE 3D] - 0010 NV2 [Mutara V08] 0020 NV4 [RIVA TNT] 1043 0200 V3400 TNT 1048 0c18 Erazor II SGRAM @@ -5443,6 +5647,7 @@ 10de 000f Compaq NVIDIA TNT2 Pro 1102 1020 3D Blaster RIVA TNT2 1102 1026 3D Blaster RIVA TNT2 Digital + 1462 8806 MS-8806 AGPhantom Graphics Card 14af 5810 Maxi Gamer Xentor 0029 NV5 [RIVA TNT2 Ultra] 1043 0200 AGP-V3800 Deluxe @@ -5510,6 +5715,7 @@ 10f1 2865 Tomcat K8E (S2865) 1458 0c11 GA-K8N Ultra-9 Mainboard 1462 7100 MSI K8N Diamond + 1462 7125 K8N Neo4-F mainboard 147b 1c1a KN8-Ultra Mainboard 1565 3402 NF4 AM2L Mainboard 0051 CK804 ISA Bridge @@ -5520,6 +5726,7 @@ 10f1 2865 Tomcat K8E (S2865) 1458 0c11 GA-K8N Ultra-9 Mainboard 1462 7100 MSI K8N Diamond + 1462 7125 K8N Neo4-F mainboard 147b 1c1a KN8-Ultra Mainboard 1565 3402 NF4 AM2L Mainboard 0053 CK804 IDE @@ -5527,6 +5734,7 @@ 10f1 2865 Tomcat K8E (S2865) 1458 5002 GA-K8N Ultra-9 Mainboard 1462 7100 MSI K8N Diamond + 1462 7125 K8N Neo4-F mainboard 147b 1c1a KN8-Ultra Mainboard 1565 3402 NF4 AM2L Mainboard 0054 CK804 Serial ATA Controller @@ -5535,6 +5743,7 @@ 10f1 2865 Tomcat K8E (S2865) 1458 b003 GA-K8N Ultra-9 Mainboard 1462 7100 MSI K8N Diamond + 1462 7125 K8N Neo4-F mainboard 147b 1c1a KN8-Ultra Mainboard 1565 5401 NF4 AM2L Mainboard 0055 CK804 Serial ATA Controller @@ -5542,6 +5751,7 @@ 1043 815a K8N4-E or A8N-E Mainboard 10f1 2865 Tomcat K8E (S2865) 1458 b003 GA-K8N Ultra-9 Mainboard + 1462 7125 K8N Neo4-F mainboard 147b 1c1a KN8-Ultra Mainboard 1565 5401 NF4 AM2L Mainboard 0056 CK804 Ethernet Controller @@ -5551,12 +5761,14 @@ 10f1 2865 Tomcat K8E (S2865) 1458 e000 GA-K8N Ultra-9 Mainboard 1462 7100 MSI K8N Diamond + 1462 7125 K8N Neo4-F mainboard 147b 1c1a KN8-Ultra Mainboard 1565 2501 NF4 AM2L Mainboard 0058 CK804 AC'97 Modem 0059 CK804 AC'97 Audio Controller 1043 812a K8N4-E or A8N-E Mainboard 10f1 2865 Tomcat K8E (S2865) + 1462 7585 K8N Neo4-F mainboard 147b 1c1a KN8-Ultra Mainboard 1565 8211 NF4 AM2L Mainboard 005a CK804 USB Controller @@ -5565,6 +5777,7 @@ 10f1 2865 Tomcat K8E (S2865) 1458 5004 GA-K8N Ultra-9 Mainboard 1462 7100 MSI K8N Diamond + 1462 7125 K8N Neo4-F mainboard 147b 1c1a KN8-Ultra Mainboard 1565 3402 NF4 AM2L Mainboard 005b CK804 USB Controller @@ -5573,6 +5786,7 @@ 10f1 2865 Tomcat K8E (S2865) 1458 5004 GA-K8N Ultra-9 Mainboard 1462 7100 MSI K8N Diamond + 1462 7125 K8N Neo4-F mainboard 147b 1c1a KN8-Ultra Mainboard 1565 3402 NF4 AM2L Mainboard 005c CK804 PCI Bridge @@ -5584,7 +5798,8 @@ 10f1 2865 Tomcat K8E (S2865) 10f1 2891 Thunder K8SRE Mainboard 1458 5000 GA-K8N Ultra-9 Mainboard - 1462 7100 MSI K8N Diamond + 1462 7100 K8N Diamond Mainboard + 1462 7125 K8N Neo4-F Mainboard 147b 1c1a KN8-Ultra Mainboard 1565 3402 NF4 AM2L Mainboard 005f CK804 Memory Controller @@ -5726,7 +5941,7 @@ 1043 81c6 N6600GT TD 128M AGP 1458 3150 GV-N66T128VP 1554 1191 PixelView PV-N43UA (128KD) - 1682 2119 GeForce 6600 GT AGP 128MB DDR3 DUAL DVI TV + 1682 2119 GeForce 6600 GT AGP 00f2 NV43 [GeForce 6600] 1554 1194 PixelView PV-N43AT (256KD) 1682 211c GeForce 6600 256MB DDR DUAL DVI TV @@ -5796,7 +6011,7 @@ 0143 NV43 [GeForce 6600 VE] 0144 NV43 [GeForce Go 6600] 0145 NV43 [GeForce 6610 XL] - 0146 NV43 [Geforce Go 6600TE/6200TE] + 0146 NV43 [GeForce Go 6600TE/6200TE] 0147 NV43 [GeForce 6700 XL] 0148 NV43 [GeForce Go 6600] 0149 NV43 [GeForce Go 6600 GT] @@ -5815,7 +6030,7 @@ 1462 8831 Creative GeForce2 Pro 0151 NV15DDR [GeForce2 Ti] 1043 405f V7700Ti - 1462 5506 Creative 3D Blaster Geforce2 Titanium + 1462 5506 Creative 3D Blaster GeForce2 Titanium 0152 NV15BR [GeForce2 Ultra, Bladerunner] 1048 0c56 GLADIAC Ultra 0153 NV15GL [Quadro2 Pro] @@ -5859,7 +6074,7 @@ 1043 806f V9180 Magic 1462 8880 MS-StarForce GeForce4 MX 440 with AGP8X 1462 8900 MS-8890 GeForce 4 MX440 AGP8X - 1462 9350 MSI Geforce4 MX T8X with AGP8X + 1462 9350 MSI GeForce4 MX T8X with AGP8X 147b 8f0d Siluro GF4 MX-8X 1554 1111 PixelView MVGA-NVG18A 0182 NV18 [GeForce4 MX 440SE AGP 8x] @@ -5882,7 +6097,7 @@ 0197 G80 [Tesla C870] 019d G80 [Quadro FX 5600] 019e G80 [Quadro FX 4600] - 01a0 NVCrush11 [GeForce2 MX Integrated Graphics] + 01a0 nForce 220/420 NV11 [GeForce2 MX] 01a4 nForce CPU bridge 01ab nForce 420 Memory Controller (DDR) 01ac nForce 220/420 Memory Controller @@ -5945,6 +6160,7 @@ 0215 NV48 [GeForce 6800 GT] 0218 NV48 [GeForce 6800 XT] 0221 NV44A [GeForce 6200] + 1043 81e1 N6200/TD/256M/A 3842 a341 256A8N341DX 0222 NV44 [GeForce 6200 A-LE] 0240 C51PV [GeForce 6150] @@ -5954,7 +6170,7 @@ 0242 C51G [GeForce 6100] 105b 0cad Winfast 6100K8MB 0243 C51 PCI Express Bridge - 0244 C51 [Geforce Go 6150] + 0244 C51 [GeForce Go 6150] 103c 30b5 Presario V3242AU 103c 30b7 Presario V6133CL 10de 0244 GeForce Go 6150 @@ -5983,6 +6199,7 @@ 0259 NV25GL [Quadro4 750 XGL] 025b NV25GL [Quadro4 700 XGL] 0260 MCP51 LPC Bridge + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81bc A8N-VM CSM Mainboard 1458 5001 GA-M55plus-S3G @@ -5992,25 +6209,30 @@ 0262 MCP51 LPC Bridge 0263 MCP51 LPC Bridge 0264 MCP51 SMBus + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81bc A8N-VM CSM Mainboard 105b 0cad Winfast 6100K8MB 1462 7207 K8NGM2 series 0265 MCP51 IDE + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81bc A8N-VM CSM Mainboard 1462 7207 K8NGM2 series # Foxconn has used a wrong vendor ID for this one f05b 0cad Winfast 6100K8MB 0266 MCP51 Serial ATA Controller + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81bc A8N-VM CSM Mainboard 1462 7207 K8NGM2 series 0267 MCP51 Serial ATA Controller + 103c 2a34 Pavilion a1677c 1043 81bc A8N-VM CSM Mainboard 1462 7207 K8NGM2 series 0268 MCP51 Ethernet Controller 0269 MCP51 Ethernet Controller + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 8141 A8N-VM CSM Mainboard 1462 7207 K8NGM2 series @@ -6018,16 +6240,19 @@ 026b MCP51 AC97 Audio Controller 105b 0cad Winfast 6100K8MB 026c MCP51 High Definition Audio + 103c 2a34 Pavilion a1677c 103c 30b5 Presario V3242AU 103c 30b7 Presario V6133CL 10de cb84 ASUSTeK Computer Inc. A8N-VM CSM Mainboard 1462 7207 K8NGM2 series 026d MCP51 USB Controller + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81bc A8N-VM CSM Mainboard 105b 0cad Winfast 6100K8MB 1462 7207 K8NGM2 series 026e MCP51 USB Controller + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81bc A8N-VM CSM Mainboard 105b 0cad Winfast 6100K8MB @@ -6035,6 +6260,7 @@ 026f MCP51 PCI Bridge 103c 30b7 Presario V6133CL 0270 MCP51 Host Bridge + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81bc A8N-VM CSM Mainboard 105b 0cad Winfast 6100K8MB @@ -6044,13 +6270,16 @@ 103c 30b5 Presario V3242AU 103c 30b7 Presario V6133CL 0272 MCP51 Memory Controller 0 + 103c 2a34 Pavilion a1677c 105b 0cad Winfast 6100K8MB 027e C51 Memory Controller 2 + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81cd A8N-VM CSM Mainboard 1458 5000 GA-M55plus-S3G 1462 7207 K8NGM2 series 027f C51 Memory Controller 3 + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81cd A8N-VM CSM Mainboard 1458 5000 GA-M55plus-S3G @@ -6095,6 +6324,7 @@ 02e4 G71 [GeForce 7950 GT] 1682 2271 PV-T71A-YDF7 (512MB) 02f0 C51 Host Bridge + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81cd A8N-VM CSM Mainboard 1462 7207 K8NGM2 series @@ -6107,6 +6337,7 @@ 02f6 C51 Host Bridge 02f7 C51 Host Bridge 02f8 C51 Memory Controller 5 + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81cd A8N-VM CSM Mainboard 1458 5000 GA-M55plus-S3G @@ -6117,6 +6348,7 @@ 1458 5000 GA-M55plus-S3G 1462 7207 K8NGM2 series 02fa C51 Memory Controller 0 + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81cd A8N-VM CSM Mainboard 1458 5000 GA-M55plus-S3G @@ -6127,11 +6359,13 @@ 02fd C51 PCI Express Bridge 103c 30b7 Presario V6133CL 02fe C51 Memory Controller 1 + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81cd A8N-VM CSM Mainboard 1458 5000 GA-M55plus-S3G 1462 7207 K8NGM2 series 02ff C51 Host Bridge + 103c 2a34 Pavilion a1677c 103c 30b7 Presario V6133CL 1043 81cd A8N-VM CSM Mainboard 1458 5000 GA-M55plus-S3G @@ -6162,6 +6396,7 @@ 1462 9110 MS-8911 (FX5200-TD128) 1462 9171 MS-8917 (FX5200-T128) 1462 9360 MS-8936 (FX5200-T128) + 1682 1351 GeForce FX 5200 0323 NV34 [GeForce FX 5200LE] 0324 NV34M [GeForce FX Go5200 64M] 1028 0196 Inspiron 5160 @@ -6208,7 +6443,7 @@ 0361 MCP55 LPC Bridge 1028 0221 PowerEdge R805 MCP55 LPC Bridge 0362 MCP55 LPC Bridge - 147b 12c4 KN9-Ultra Mainboard + 147b 1c24 KN9 series mainboard 0363 MCP55 LPC Bridge 0364 MCP55 LPC Bridge 1028 0221 PowerEdge R805 MCP55 LPC Bridge @@ -6218,26 +6453,27 @@ 0368 MCP55 SMBus 1028 020c PowerEdge M605 MCP55 SMBus 1028 0221 PowerEdge R805 MCP55 SMBus - 147b 12c4 KN9-Ultra Mainboard + 147b 1c24 KN9 series mainboard 0369 MCP55 Memory Controller - 147b 12c4 KN9-Ultra Mainboard + 147b 1c24 KN9 series mainboard 036a MCP55 Memory Controller 036b MCP55 SMU 036c MCP55 USB Controller 1028 020c PowerEdge M605 MCP55 USB Controller 1028 0221 PowerEdge R805 MCP55 USB Controller - 147b 12c4 KN9-Ultra Mainboard + 147b 1c24 KN9 series mainboard 036d MCP55 USB Controller 1028 020c PowerEdge M605 MCP55 USB Controller 1028 0221 PowerEdge R805 MCP55 USB Controller - 147b 12c4 KN9-Ultra Mainboard + 147b 1c24 KN9 series mainboard 036e MCP55 IDE - 147b 12c4 KN9-Ultra Mainboard + 147b 1c24 KN9 series mainboard 0370 MCP55 PCI bridge 0371 MCP55 High Definition Audio + 147b 1c24 KN9 series mainboard 0372 MCP55 Ethernet 0373 MCP55 Ethernet - 147b 12c4 KN9-Ultra Mainboard + 147b 1c24 KN9 series mainboard 0374 MCP55 PCI Express bridge 0375 MCP55 PCI Express bridge 0376 MCP55 PCI Express bridge @@ -6247,7 +6483,7 @@ 037e MCP55 SATA Controller 037f MCP55 SATA Controller 1028 0221 PowerEdge R805 MCP55 SATA Controller - 147b 12c4 KN9-Ultra Mainboard + 147b 1c24 KN9 series mainboard 038b G73 [GeForce 7650 GS] 0390 G73 [GeForce 7650 GS] 0391 G73 [GeForce 7600 GT] @@ -6307,7 +6543,9 @@ 1028 020e Inspiron 531 1849 03e0 939NF6G-VSTA Board 03e1 MCP61 LPC Bridge - 03e2 MCP61 LPC Bridge + 1043 83a4 M4N68T series motherboard + 03e2 MCP61 Host Bridge + 1043 83a4 M4N68T series motherboard 03e3 MCP61 LPC Bridge 03e4 MCP61 High Definition Audio 03e5 MCP61 Ethernet @@ -6324,22 +6562,30 @@ 1849 03ea 939NF6G-VSTA Board 03eb MCP61 SMBus 1028 020e Inspiron 531 + 1043 83a4 M4N68T series motherboard 1849 03eb 939NF6G-VSTA Board 03ec MCP61 IDE + 1025 0392 ET1350 1028 020e Inspiron 531 + 1043 83a4 M4N68T series motherboard 1849 03ec 939NF6G-VSTA Board 03ee MCP61 Ethernet 03ef MCP61 Ethernet + 1025 8000 ET1350 1028 020e Inspiron 531 + 1043 83a4 M4N68T series motherboard 1849 03ef 939NF6G-VSTA Board 03f0 MCP61 High Definition Audio 1028 020e Inspiron 531 + 1043 8415 M4N68T series motherboard 1849 0888 939NF6G-VSTA Board - 03f1 MCP61 USB Controller + 03f1 MCP61 USB 1.1 Controller 1028 020e Inspiron 531 + 1043 83a4 M4N68T series motherboard 1849 03f1 939NF6G-VSTA Board - 03f2 MCP61 USB Controller + 03f2 MCP61 USB 2.0 Controller 1028 020e Inspiron 531 + 1043 83a4 M4N68T series motherboard 1849 03f2 939NF6G-VSTA Board 03f3 MCP61 PCI bridge 1028 020e Inspiron 531 @@ -6347,14 +6593,18 @@ 03f4 MCP61 SMU 03f5 MCP61 Memory Controller 1028 020e Inspiron 531 + 1043 83a4 M4N68T series motherboard 1849 03eb 939NF6G-VSTA Board 03f6 MCP61 SATA Controller 1028 020e Inspiron 531 + 1043 83a4 M4N68T series motherboard 1849 03f6 939NF6G-VSTA Board 03f7 MCP61 SATA Controller 0400 G84 [GeForce 8600 GTS] + 1043 8241 EN8600GTS 0401 G84 [GeForce 8600GT] 0402 G84 [GeForce 8600 GT] + 1458 3455 GV-NX86T512H 1462 0910 NX8600GT-T2D256EZ 0403 G84 [GeForce 8600 GS] 0404 G84 [GeForce 8400 GS] @@ -6382,8 +6632,9 @@ 1025 0121 Aspire 5920G 0426 G86 [GeForce 8400M GT] 0427 G86 [GeForce 8400M GS] + 103c 30cc Pavilion dv6700 0428 G86 [GeForce 8400M G] - 0429 G84M [Quadro NVS 140M] + 0429 G86 [Quadro NVS 140M] 17aa 20d8 ThinkPad T61 042a G86M [Quadro NVS 130M] 042b G86M [Quadro NVS 135M] @@ -6442,7 +6693,6 @@ 1849 054c ALiveNF7G-HDready, MCP67 Gigabit Ethernet 054d MCP67 Ethernet 054e MCP67 Ethernet -# forcedeth source code from Nvidi 054f MCP67 Ethernet 0550 MCP67 AHCI Controller 1043 8308 M2N68-AM Motherboard @@ -6464,10 +6714,12 @@ 1849 0562 ALiveNF7G-HDready 0563 MCP67 PCI Express Bridge 0568 MCP78S [GeForce 8200] Memory Controller + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 0568 K10N78FullHD-hSLI R3.0 Memory Controller 0569 MCP78S [GeForce 8200] PCI Express Bridge + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 0569 K10N78FullHD-hSLI R3.0 PCI Express Bridge @@ -6482,7 +6734,7 @@ 1019 297a MCP73PVT-SM 056f MCP73 PCI Express bridge 1019 297a MCP73PVT-SM - 05b1 NF200 PCIe 2.0 switch for mainboards + 05b1 NF200 PCIe 2.0 switch 05b8 NF200 PCIe 2.0 switch for GTX 295 05be NF200 PCIe 2.0 switch for Quadro Plex S4 / Tesla S870 / Tesla S1070 / Tesla S2050 05e0 GT200b [GeForce GTX 295] @@ -6545,6 +6797,7 @@ 107d 2ac1 WinFast PX9600GT 1024MB 1458 3481 GV-NX96T512HP 0623 G94 [GeForce 9600 GS] + 0624 G94 [GeForce 9600 GT Green Edition] 0625 G94 [GeForce 9600 GSO 512] 0626 G94 [GeForce GT 130] 0627 G94 [GeForce GT 140] @@ -6585,12 +6838,12 @@ 06c0 GF100 [GeForce GTX 480] 06cd GF100 [GeForce GTX 470] 06d1 GF100 [Tesla C2050 / C2070] - 06d2 GF100 [M2070] - 06d8 GF100 [Quadro 6000] - 06d9 GF100 [Quadro 5000] - 06dd GF100 [Quadro 4000] + 06d2 GF100 [Tesla M2070] + 06d8 GF100GL [Quadro 6000] + 06d9 GF100GL [Quadro 5000] + 06dd GF100GL [Quadro 4000] 06de GF100 [Tesla S2050] - 06df GF100 [M2070Q] + 06df GF100 [Tesla M2070Q] 06e0 G98 [GeForce 9300 GE] 06e1 G98 [GeForce 9300 GS] 06e2 G98 [GeForce 8400] @@ -6598,7 +6851,7 @@ 06e4 G98 [GeForce 8400 GS] 1458 3475 GV-NX84S256HE [GeForce 8400 GS] 06e5 G98 [GeForce 9300M GS] - 06e6 G98 [GeForce G100] + 06e6 G98 [GeForce G 100] 06e7 G98 [GeForce 9300 SE] 06e8 G98 [GeForce 9200M GS] 06e9 G98 [GeForce 9300M GS] @@ -6607,7 +6860,7 @@ 06eb G98M [Quadro NVS 160M] 06ec G98M [GeForce G 105M] 06ef G98M [GeForce G 103M] - 06f1 G98 [GeForce G105M] + 06f1 G98M [GeForce G 105M] 06f8 G98 [Quadro NVS 420] 06f9 G98 [Quadro FX 370 LP] 06fa G98 [Quadro NVS 450] @@ -6615,18 +6868,22 @@ 06fd G98 [Quadro NVS 295] 06ff G98 [HICx16 + Graphics] 0751 MCP78S [GeForce 8200] Memory Controller + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 0751 K10N78FullHD-hSLI R3.0 Memory Controller 0752 MCP78S [GeForce 8200] SMBus + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 0752 K10N78FullHD-hSLI R3.0 SMBus 0753 MCP78S [GeForce 8200] Co-Processor + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 0753 K10N78FullHD-hSLI R3.0 Co-Processor 0754 MCP78S [GeForce 8200] Memory Controller + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 0754 K10N78FullHD-hSLI R3.0 Memory Controller @@ -6635,18 +6892,22 @@ 1462 7508 K9N2GM-FIH 1849 0759 K10N78FullHD-hSLI R3.0 IDE 075a MCP78S [GeForce 8200] PCI Bridge + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1849 075a K10N78FullHD-hSLI R3.0 PCI Bridge 075b MCP78S [GeForce 8200] PCI Express Bridge + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 075b K10N78FullHD-hSLI R3.0 PCI Express Bridge 075c MCP78S [GeForce 8200] LPC Bridge + 103c 2a9e Pavilion p6310f 1462 7508 K9N2GM-FIH 1849 075c K10N78FullHD-hSLI R3.0 LPC Bridge 075d MCP78S [GeForce 8200] LPC Bridge 1043 82e8 M3N72-D 0760 MCP77 Ethernet + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 0760 K10N78FullHD-hSLI R3.0 Ethernet @@ -6654,31 +6915,38 @@ 0762 MCP77 Ethernet 0763 MCP77 Ethernet 0774 MCP72XE/MCP72P/MCP78U/MCP78S High Definition Audio + 103c 2a9e Pavilion p6310f # has a Realtek ALC1200 HDAudio Codec 1043 82fe M3N72-D 1462 7508 K9N2GM-FIH 1849 3662 K10N78FullHD-hSLI R3.0 High Definition Audio 0778 MCP78S [GeForce 8200] PCI Express Bridge + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 0778 K10N78FullHD-hSLI R3.0 PCI Express Bridge 077a MCP78S [GeForce 8200] PCI Bridge + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 077a K10N78FullHD-hSLI R3.0 PCI Bridge 077b MCP78S [GeForce 8200] OHCI USB 1.1 Controller + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 077b K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller 077c MCP78S [GeForce 8200] EHCI USB 2.0 Controller + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 077c K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller 077d MCP78S [GeForce 8200] OHCI USB 1.1 Controller + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 077d K10N78FullHD-hSLI R3.0 OHCI USB 1.1 Controller 077e MCP78S [GeForce 8200] EHCI USB 2.0 Controller + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1462 7508 K9N2GM-FIH 1849 077e K10N78FullHD-hSLI R3.0 EHCI USB 2.0 Controller @@ -6754,6 +7022,7 @@ 0845 C77 [GeForce 8200M G] 0846 C77 [GeForce 9200] 0847 C78 [GeForce 9100] + 103c 2a9e Pavilion p6310f 0848 C77 [GeForce 8300] 0849 C77 [GeForce 8200] 1462 7508 K9N2GM-FIH @@ -6789,8 +7058,10 @@ 19da a123 IONITX-F-E 087e ION LE VGA 087f ION LE VGA - 08a4 GT216 [GeForce 320M] + 08a3 MCP89 [GeForce 320M] + 08a4 MCP89 [GeForce 320M] 0a20 GT216 [GeForce GT 220] + 1043 8311 ENGT220/DI/1GD3(LP)/V2 0a23 GT218 [GeForce 210] 0a28 GT216 [GeForce GT 230M] 0a29 GT216 [GeForce GT 330M] @@ -6809,6 +7080,8 @@ 0a65 GT218 [GeForce 210] 1043 8334 EN210 SILENT 0a66 GT218 [GeForce 310] +# taken from nv_disp.inf + 0a67 GT218 [GeForce 315] 0a68 G98M [GeForce G105M] 0a69 G98M [GeForce G105M] 0a6a GT218 [NVS 2100M] @@ -6823,6 +7096,7 @@ 0a73 GT218 [GeForce 305M] 0a74 GT218 [GeForce G210M] 0a75 GT218 [GeForce 310M] + 0a76 GT218 [ION 2] 0a78 GT218GL [Quadro FX 380 LP] 0a7c GT218 [Quadro FX 380M] 0a80 MCP79 Host Bridge @@ -6889,10 +7163,12 @@ 1462 7508 K9N2GM-FIH 1849 0ad0 K10N78FullHD-hSLI R3.0 IDE 0ad4 MCP78S [GeForce 8200] AHCI Controller + 103c 2a9e Pavilion p6310f 1043 82e8 M3N72-D 1849 0ad4 K10N78FullHD-hSLI R3.0 AHCI Controller 0ad8 MCP78S [GeForce 8200] SATA Controller (RAID mode) 0be2 High Definition Audio Controller + 1043 8311 ENGT220/DI/1GD3(LP)/V2 0be3 High Definition Audio Controller 1028 040b Latitude E6510 10de 066d G98 [GeForce 8400GS] @@ -6901,15 +7177,21 @@ 0be9 GF106 High Definition Audio Controller 1558 8687 CLEVO/KAPOK W860CU 0bea GF108 High Definition Audio Controller + 3842 1430 GeForce GT 430 0beb GF104 High Definition Audio Controller 1462 2322 N460GTX Cyclone 1GD5/OC + 0bee GF116 High Definition Audio Controller 0ca0 GT215 [GeForce GT 330] 0ca2 GT215 [GeForce GT 320] 0ca3 GT215 [GeForce GT 240] 0ca4 GT215 [GeForce GT 340] +# taken from nv_disp.inf + 0ca5 GT215 [GeForce GT 220] 0ca7 GT215 [GeForce GT 330] 0ca8 GT215 [GeForce GTS 260M] 0ca9 GT215 [GeForce GTS 250M] +# GT215, not GT216 per http://www.techpowerup.com/gpuz/594cm/ + 0cac GT215 [GeForce GT 220] 0caf GT215 [GeForce GT 335M] 0cb0 GT215 [GeForce GTS 350M] 0cb1 GT215 [GeForce GTS 360M] @@ -6930,36 +7212,151 @@ 0d94 MCP89 High Definition Audio 0d9c MCP89 OHCI USB 1.1 Controller 0d9d MCP89 EHCI USB 2.0 Controller - 0dc4 GF106 [GeForce 450 GTS] +# taken from nv_disp.inf + 0dc0 GF108 [GeForce GT 440] + 0dc4 GF106 [GeForce GTS 450] +# taken from nv_disp.inf + 0dc5 GF106 [GeForce GTS 450] +# taken from nv_disp.inf + 0dc6 GF106 [GeForce GTS 450] + 0dcd GF106 [GeForce GT 555M] + 0dce GF106 [GeForce GT 555M] # rev a1 0dd1 GF106 [GeForce GTX 460M] 1558 8687 CLEVO/KAPOK W860CU 0dd2 GF106 [GeForce GT 445M] 0dd8 GF106GL [Quadro 2000] - 0dda GF106 [Quadro 2000M] +# NVIDIA calls it GF106GML + 0dda GF106GLM [Quadro 2000M] + 0de0 GF108 [GeForce GT 440] 0de1 GF108 [GeForce GT 430] - 0dee GF108 [Geforce GT 415M] - 0df4 GF106 [GeForce GT 555M SDDR3] - 0df8 GF108 [Quadro 600] - 0dfa GF108 [Quadro 1000M] - 0e08 HDMI Audio stub + 3842 1430 GeForce GT 430 + 0de2 GF108 [GeForce GT 420] +# taken from nv_disp.inf + 0de4 GF108 [GeForce GT 520] +# taken from nv_disp.inf + 0de5 GF108 [GeForce GT 530] + 0de9 GF108 [GeForce GT 630M] +# Not fully sure that it's GF108, might also be GF106. + 0deb GF108 [GeForce GT 555M] + 0dee GF108 [GeForce GT 415M] + 0def GF108 [Quadro NVS 5400M] + 0df0 GF108 [GeForce GT 425M] + 0df2 GF108 [GeForce GT 435M] + 0df4 GF108 [GeForce GT 540M] + 0df5 GF108 [GeForce GT 540M] + 0df7 GF108 [GeForce GT 520M] +# NVIDIA calls it GL + 0df8 GF108GL [Quadro 600] +# NVIDIA calls it GLM + 0df9 GF108GLM [Quadro 500M] +# NVIDIA calls it GLM + 0dfa GF108GLM [Quadro 1000M] + 0e08 GF119 HDMI Audio Controller 0e09 GF110 High Definition Audio Controller + 0e0a GK104 HDMI Audio Controller + 0e0c GF114 HDMI Audio Controller 0e22 GF104 [GeForce GTX 460] 1462 2322 N460GTX Cyclone 1GD5/OC +# taken from nv_disp.inf + 0e23 GF104 [GeForce GTX 460 SE] +# taken from nv_disp.inf + 0e24 GF104 [GeForce GTX 460] 0e3a GF104 [Quadro 3000M] 0e3b GF104 [Quadro 4000M] - 1056 GF108 [Quadro NVS 4200M] - 1080 GF110 [Geforce GTX 580] - 1081 GF110 [Geforce GTX 570] +# taken from nv_disp.inf + 0f00 GK107 [GeForce GT 630] +# Probably GF108 + 0f01 GeForce GT 620 +# taken from nv_disp.inf + 0fc0 GK107 [GeForce GT 640] +# taken from nv_disp.inf + 0fc1 GK107 [GeForce GT 640] + 0fd1 GK107 [GeForce GT 650M] + 1043 2103 N56VZ + 0fd2 GK107 [GeForce GT 640M] + 0ff2 GK107 [VGX K1] + 0ffa GK107 [Quadro K600] + 0ffb GK107 [Quadro K2000M] + 0ffc GK107 [Quadro K1000M] + 0ffe GK107 [Quadro K2000] + 0fff GK107 [Quadro 410] + 1040 GF119 [GeForce GT 520] +# taken from nv_disp.inf + 1042 GF119 [GeForce 510] +# taken from nv_disp.inf + 1048 GF119 [GeForce 605] +# taken from nv_disp.inf + 1049 GF119 [GeForce GT 620] +# taken from nv_disp.inf + 104a GF119 [GeForce GT 610] + 1050 GF119 [GeForce GT 520M] + 1051 GF119 [GeForce GT 520MX] + 1056 GF119 [Quadro NVS 4200M] + 1057 GF119 [Quadro NVS 4200M] + 105a GF119 [GeForce 610M] + 107d GF119 [Quadro NVS 310] + 1080 GF110 [GeForce GTX 580] + 1081 GF110 [GeForce GTX 570] 10de 087e Leadtek WinFast GTX 570 - 1086 GF110 [Geforce GTX 570 HD] + 1082 GF110 [GeForce GTX 560 Ti] +# taken from nv_disp.inf + 1084 GF110 [GeForce GTX 560] + 1086 GF110 [GeForce GTX 570 HD] + 1087 GF110 [GeForce GTX 560 Ti 448 Cores] +# taken from nv_disp.inf + 1088 GF110 [GeForce GTX 590] +# taken from nv_disp.inf + 1089 GF110 [GeForce GTX 580] +# taken from nv_disp.inf + 108b GF110 [GeForce GTX 580] + 1091 Tesla M2090 + 1094 Tesla M2075 Dual-Slot Computing Processor Module + 1096 Tesla C2075 + 109b GF100GL [Quadro 7000] 10c3 GT218 [GeForce 8400 GS] 10de 066d G98 [GeForce 8400GS] - 10c5 M116N - 10d8 GT218 [NVS 300] - 1200 GF110 [GeForce GTX 560 Ti] + 10c5 GT218 [GeForce 405] + 10d8 GT218 [Quadro NVS 300] + 1180 GK104 [GeForce GTX 680] + 1183 GK104 [GeForce GTX 660 Ti] + 1188 GK104 [GeForce GTX 690] + 1189 GK104 [GeForce GTX 670] + 11ba GK104 [Quadro K5000] + 11bc GK104 [Quadro K5000M] + 11bd GK104 [Quadro K4000M] + 11be GK104 [Quadro K3000M] + 11bf GK104GL [VGX K2] + 11fa GK104 [Quadro K4000] + 1200 GF114 [GeForce GTX 560 Ti] + 1201 GF114 [GeForce GTX 560] + 1205 GF114 [GeForce GTX 460 v2] +# taken from nv_disp.inf + 1206 GF114 [GeForce GTX 555] +# taken from nv_disp.inf + 1207 GF114 [GeForce GTX 645] +# taken from nv_disp.inf + 1208 GF114 [GeForce GTX 560 SE] +# GT, not GTX + 1241 GF116 [GeForce GT 545] +# GT, not GTX + 1243 GF116 [GeForce GT 545] 1244 GF116 [GeForce GTX 550 Ti] + 1245 GF116 [GeForce GTS 450] + 1247 GF106 [GeForce GT 555M] +# taken from nv_disp.inf + 1249 GF116 [GeForce GTS 450] +# taken from nv_disp.inf + 124b GF116 [GeForce GT 640] 10df Emulex Corporation + 0720 OneConnect NIC (Skyhawk) + 0722 OneConnect iSCSI Initiator (Skyhawk) + 0723 OneConnect iSCSI Initiator + Target (Skyhawk) + 0724 OneConnect FCoE Initiator (Skyhawk) + 0728 OneConnect NIC (Skyhawk-VF) + 072a OneConnect iSCSI Initiator (Skyhawk-VF) + 072b OneConnect iSCSI Initiator + Target (Skyhawk-VF) + 072c OneConnect FCoE Initiator (Skyhawk-VF) 1ae5 LP6000 Fibre Channel Host Adapter e100 Proteus-X: LightPulse IOV Fibre Channel Host Adapter e131 LightPulse 8Gb/s PCIe Shared I/O Fibre Channel Adapter @@ -7105,6 +7502,10 @@ 0885 Realtek 885 High Definition Audio 0888 Realtek 888 High Definition Audio 1028 020d Inspiron 530 + 0892 Realtek 892 High Definition Audio + 5209 RTS5209 PCI Express Card Reader + 5229 RTS5229 PCI Express Card Reader + 5288 Barossa PCI Express Card Reader 8029 RTL-8029(AS) 10b8 2011 EZ-Card (SMC1208) 10ec 8029 RTL-8029(AS) @@ -7116,6 +7517,8 @@ 10ec 8129 RT8129 Fast Ethernet Adapter 11ec 8129 RT8129 Fast Ethernet Adapter 8136 RTL8101E/RTL8102E PCI Express Fast Ethernet controller + 103c 2ab1 Pavillion p6774 + 103c 30cc Pavilion dv6700 1179 ff64 RTL8102E PCI-E Fast Ethernet NIC 8138 RT8139 (B/C) Cardbus Fast Ethernet Adapter 10ec 8138 RT8139 (B/C) Fast Ethernet Adapter @@ -7173,21 +7576,24 @@ 1462 236c 945P Neo3-F motherboard 8168 RTL8111/8168B PCI Express Gigabit Ethernet controller 1019 8168 MCP73PVT-SM + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 103c 1611 Pavilion DM1Z-3000 1043 11f5 A6J-Q008 1043 16d5 U6V/U31J laptop 1043 81aa P5B 1043 82c6 M3A78-EH Motherboard 1043 83a3 M4A785TD Motherboard - 1043 8432 P8P67 Deluxe Motherboard [Realtek RTL8111E] + 1043 8432 P8P67 and other motherboards 10ec 8168 TEG-ECTX Gigabit PCI-E Adapter [Trendnet] - 1458 e000 GA-EP45-DS5 Motherboard + 1458 e000 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 1462 238c Onboard RTL8111b on MSI P965 Platinum Mainboard 1462 368c K9AG Neo2 + 1462 7522 X58 Pro-E 1775 11cc CC11/CL11 1849 8168 Motherboard (one of many) - 8086 d615 DeskTop Board D510MO - 8169 RTL-8169 Gigabit Ethernet + 8086 d615 Desktop Board D510MO + 8169 RTL8169 PCI Gigabit Ethernet Controller 1025 0079 Aspire 5024WLMi 10bd 3202 EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter 10ec 8169 RTL8169/8110 Family PCI Gigabit Ethernet NIC @@ -7207,27 +7613,33 @@ 8173 RTL8192SE Wireless LAN Controller 8174 RTL8192SE Wireless LAN Controller 8176 RTL8188CE 802.11b/g/n WiFi Adapter + 1a3b 1139 AW-NE139H Half-size Mini PCIe Card 8177 RTL8188CE 802.11b/g/n WiFi Adapter 8178 RTL8188CE 802.11b/g/n WiFi Adapter 8180 RTL8180L 802.11b MAC 1385 4700 MA521 802.11b Wireless PC Card 1737 0019 WPC11v4 802.11b Wireless-B Notebook Adapter 8185 RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller + 8190 RTL8190 802.11n Wireless LAN 8191 RTL8188CE 802.11b/g/n WiFi Adapter 8192 RTL8192E/RTL8192SE Wireless LAN Controller + 8193 RTL8192DE Wireless LAN Controller 8197 SmartLAN56 56K Modem 8199 RTL8187SE Wireless LAN Controller + 1462 6894 MN54G2 / MS-6894 Wireless Mini PCIe Card 10ed Ascii Corporation 7310 V7310 10ee Xilinx Corporation 0001 EUROCOM for PCI (ECOMP) 0002 Octal E1/T1 for PCI ETP Card - 0007 Zomojo Z1 + 0007 Default PCIe endpoint ID 0205 Wildcard TE205P 0210 Wildcard TE210P + 0300 Spartan 3 Designs (Xilinx IP) 0314 Wildcard TE405P/TE410P (1st Gen) 0405 Wildcard TE405P (2nd Gen) 0410 Wildcard TE410P (2nd Gen) + 0600 Xilinx 6 Designs (Xilinx IP) 2b00 Zomojo Zcard 3fc0 RME Digi96 3fc1 RME Digi96/8 @@ -7311,6 +7723,7 @@ 1102 1009 SB Audigy2 OEM HP 1102 2002 SB Audigy 2 ZS (SB0350) 1102 4001 E-MU 1010 + 1102 4002 E-MU 0404 0005 SB X-Fi 1102 0021 X-Fi Platinum 1102 002c X-Fi XtremeGamer FATAL1TY PRO @@ -7374,6 +7787,9 @@ 0007 HPT371/371N 0008 HPT374 0009 HPT372N + 0620 RocketRAID 620 2 Port SATA-III Controller + 0622 RocketRAID 622 2 Port SATA-III Controller + 0640 RocketRAID 640 4 Port SATA-III Controller 1720 RocketRAID 1720 (2x SATA II RAID Controller) 1740 RocketRAID 1740 1742 RocketRAID 1742 @@ -7385,8 +7801,16 @@ 2340 RocketRAID 2340 16 Port SATA-II Controller 2640 RocketRAID 2640 SAS/SATA Controller 2722 RocketRAID 2722 +# SFF-8087 Mini-SAS 16 port internal + 2740 RocketRAID 2740 +# SFF-8088 Mini-SAS 16 port external + 2744 RocketRaid 2744 +# SFF-8088 8 port external / SFF-8087 24 port internal + 2782 RocketRAID 2782 + 3120 RocketRAID 3120 3220 RocketRAID 3220 3320 RocketRAID 3320 + 4310 RocketRaid 4310 1104 RasterOps Corp. 1105 Sigma Designs, Inc. 1105 REALmagic Xcard MPEG 1/2/3/4 DVD Decoder @@ -7439,6 +7863,7 @@ 1043 836c P7H55 1043 83c7 P5KPL-AM EPU 0409 VX855/VX875 Host Bridge: Host Control + 0410 VX900 Host Bridge: Host Control 0415 VT6415 PATA IDE Host Controller 1043 838f M5A88-V EVO 0501 VT8501 [Apollo MVP4] @@ -7524,6 +7949,7 @@ 1353 VX800/VX820 Error Reporting 1364 CN896/VN896/P4M900 Host Bridge 1409 VX855/VX875 Error Reporting + 1410 VX900 Error Reporting 1571 VT82C576M/VT82C586 1595 VT82C595/97 [Apollo VP2/97] 1732 VT1732 [Envy24 II] PCI Multi-Channel Audio Controller @@ -7548,11 +7974,12 @@ 2353 VX800/VX820 Host Bus Control 2364 CN896/VN896/P4M900 Host Bridge 2409 VX855/VX875 Host Bus Control + 2410 VX900 CPU Bus Controller 287a VT8251 PCI to PCI Bridge 287b VT8251 Host Bridge 287c VT8251 PCIE Root Port 287d VT8251 PCIE Root Port - 287e VT8251 Ultra VLINK Controller + 287e VT8237/8251 Ultra VLINK Controller 3022 CLE266 3038 VT82xxxxx UHCI USB 1.1 Controller # possibly Hewlett-Packard D9840-60001 [Brio BA410 Motherboard] @@ -7573,6 +8000,7 @@ 147b 1407 KV8-MAX3 motherboard 182d 201d CN-029 USB2.0 4 port PCI Card 1849 3038 K7VT6 + 19da a179 ZBOX nano VD01 3040 VT82C586B ACPI 3043 VT86C100A [Rhine] 10bd 0000 VT86C100A Fast Ethernet Adapter @@ -7582,6 +8010,7 @@ 0010 0001 IEEE 1394 4port DCST 1394-3+1B 1025 005a TravelMate 290 103c 2a20 Pavilion t3030.de Desktop PC + 103c 2a3b Media Center PC m7590n 1043 808a A8V/A8N/P4P800 series motherboard 1043 81fe M4A series motherboard 1458 1000 GA-7VT600-1394 Motherboard @@ -7685,6 +8114,7 @@ 147b 1407 KV8-MAX3 motherboard 182d 201d CN-029 USB 2.0 4 port PCI Card 1849 3104 K7VT6 motherboard + 19da a179 ZBOX nano VD01 3106 VT6105/VT6106S [Rhine-III] 1106 0105 VT6106S [Rhine-III] 1186 1403 DFE-530TX rev C @@ -7755,7 +8185,7 @@ 1849 3227 K7VT4 motherboard 3230 K8M890CE/K8N890CE [Chrome 9] 3238 K8T890 Host Bridge - 3249 VT6421 IDE RAID Controller + 3249 VT6421 IDE/SATA Controller 324a CX700/VX700 PCI to PCI Bridge 324b CX700/VX700 Host Bridge 324e CX700/VX700 Internal Module Bus @@ -7766,7 +8196,8 @@ 3269 KT880 Host Bridge 3282 K8T800Pro Host Bridge 3287 VT8251 PCI to ISA Bridge - 3288 VT1708/A [Azalia HDAC] (VIA High Definition Audio Controller) + 3288 VT8237A/VT8251 HDA Controller + 19da a179 ZBOX VD01 3290 K8M890 Host Bridge 3296 P4M800 Host Bridge 3324 CX700/VX700 Host Bridge @@ -7775,7 +8206,7 @@ 3337 VT8237A PCI to ISA Bridge 3340 PT900 Host Bridge 3343 P4M890 [S3 UniChrome Pro] - 3344 CN700/P4M800 Pro/P4M800 CE/VN800 [S3 UniChrome Pro] + 3344 CN700/P4M800 Pro/P4M800 CE/VN800 Graphics [S3 UniChrome Pro] 3349 VT8251 AHCI/SATA 4-Port Controller 3351 VT3351 Host Bridge 3353 VX800 PCI to PCI Bridge @@ -7788,6 +8219,8 @@ 1043 8374 M5A88-V EVO 1043 8384 P8P67 Deluxe Motherboard 3409 VX855/VX875 DRAM Bus Control + 3410 VX900 DRAM Bus Control + 19da a179 ZBOX nano VD01 4149 VIA VT6420 (ATA133) Controller 4204 K8M800 Host Bridge 4208 PT890 Host Bridge @@ -7810,6 +8243,9 @@ 4364 CN896/VN896/P4M900 Host Bridge 4397 VT1708B/1702S/1708S HD audio codec 4409 VX855/VX875 Power Management Control + 4410 VX900 Power Management and Chip Testing Control + 19da a179 ZBOX nano VD01 + 4428 VT1718S HD Audio Codec 5030 VT82C596 ACPI [Apollo PRO] 5122 VX855/VX875 Chrome 9 HCM Integrated Graphics 5208 PT890 I/O APIC Interrupt Controller @@ -7824,13 +8260,19 @@ 5351 VT3351 I/O APIC Interrupt Controller 5353 VX800/VX820 APIC and Central Traffic Control 5364 CN896/VN896/P4M900 I/O APIC Interrupt Controller + 5372 VT8237/8251 Serial ATA Controller 5409 VX855/VX875 APIC and Central Traffic Control + 5410 VX900 APIC and Central Traffic Control 6100 VT85C100A [Rhine II] 6287 SATA RAID Controller + 6290 K8M890CE Host Bridge 6327 P4M890 Security Device 6353 VX800/VX820 Scratch Registers 6364 CN896/VN896/P4M900 Security Device 6409 VX855/VX875 Scratch Registers + 6410 VX900 Scratch Registers + 19da a179 ZBOX nano VD01 + 7122 VX900 Graphics [Chrome9 HD] 7204 K8M800 Host Bridge 7205 KM400/KN400/P4M800 [S3 UniChrome] 1458 d000 Gigabyte GA-7VM400(A)M(F) Motherboard @@ -7854,6 +8296,8 @@ 7353 VX800/VX820 North-South Module Interface Control 7364 CN896/VN896/P4M900 Host Bridge 7409 VX855/VX875 North-South Module Interface Control + 7410 VX900 North-South Module Interface Control + 19da a179 ZBOX nano VD01 8231 VT8231 [PCI-to-ISA Bridge] 8235 VT8235 ACPI 8305 VT8363/8365 [KT133/KM133 AGP] @@ -7862,6 +8306,8 @@ 8391 VT8371 [KX133 AGP] 8400 MVP4 8409 VX855/VX875 Bus Control and Power Management + 8410 VX900 Bus Control and Power Management + 19da a179 ZBOX VD01 8500 KLE133/PLE133/PLE133T 8501 VT8501 [Apollo MVP4 AGP] 8596 VT82C596 [Apollo PRO AGP] @@ -7876,6 +8322,7 @@ 8a26 KL133/KL133A/KM133/KM133A [S3 ProSavage] 8d01 PN133/PN133T [S3 Twister] 8d04 KM266/P4M266/P4M266A/P4N266 [S3 ProSavageDDR] + 9001 VX900 Serial ATA Controller 9530 Secure Digital Memory Card Controller 95d0 SDIO Host Controller a208 PT890 PCI to PCI Bridge Controller @@ -7893,11 +8340,11 @@ b113 VPX/VPX2 I/O APIC Interrupt Controller b115 VT8363/8365 [KT133/KM133] PCI Bridge b168 VT8235 PCI Bridge - b188 VT8237 PCI bridge [K8T800/K8T890 South] + b188 VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] 147b 1407 KV8-MAX3 motherboard b198 VT8237/VX700 PCI Bridge b213 VPX/VPX2 I/O APIC Interrupt Controller - b353 VX855/VX875 PCI to PCI Bridge + b353 VX855/VX875/VX900 PCI to PCI Bridge b999 [K8T890 North / VT8237 South] PCI Bridge c208 PT890 PCI to PCI Bridge Controller c238 K8T890 PCI to PCI Bridge Controller @@ -8207,7 +8654,7 @@ 102b 48d0 Matrox CronosPlus 1048 226b ELSA EX-VISION 300TV 107d 6655 WinFast DTV1000S - 1131 0000 Behold TV 401 + 1131 0000 SAA7130-based TV tuner card 1131 2001 10MOONS PCI TV CAPTURE CARD 1131 2005 Techcom (India) TV Tuner Card (SSD-TV-670) 1458 9006 GT-PS700 DVB-S tuner @@ -8226,7 +8673,6 @@ 0000 5071 Behold TV 507 RDS 0000 507b Behold TV 507 RDS 0000 5201 Behold TV Columbus -# Deleting vendor name after rereading submit instructions 0070 6701 WinTV HVR-1110 1019 4cb5 Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) 1043 0210 FlyTV mini Asus Digimatrix @@ -8234,10 +8680,11 @@ 1043 4845 TV-FM 7135 1043 4862 P7131 Dual 1043 4876 My Cinema-P7131 Hybrid - 1131 0000 KWorld V-Stream Studio TV Terminator + 1131 0000 SAA713x-based TV tuner card 1131 2001 Proteus Pro [philips reference design] 1131 2018 Tiger reference design 1131 4ee9 MonsterTV Mobile + 1131 7133 Pinnacle PCTV 301i 11bd 002b PCTV Stereo 11bd 002e PCTV 110i (saa7133) 12ab 0800 PURPLE TV @@ -8298,7 +8745,7 @@ 1043 0210 Digimatrix TV 1043 4840 ASUS TV-FM 7134 1043 4842 TV-FM 7134 - 1131 0000 Behold TV 403 FM + 1131 0000 SAA713x-based TV tuner card 1131 2004 EUROPA V3 reference design 1131 4e85 SKNet Monster TV 1131 6752 EMPRESS @@ -8489,25 +8936,35 @@ 1134 Mercury Computer Systems 0001 Raceway Bridge 0002 Dual PCI to RapidIO Bridge + 000b POET Serial RapidIO Bridge + 000d POET PSDMS Device 1135 Fuji Xerox Co Ltd 0001 Printer controller 1136 Momentum Data Systems 0002 PCI-JTAG 1137 Cisco Systems Inc - 0023 81 VIC PCIe Upstream Port + 0023 VIC 81 PCIe Upstream Port 0040 VIC PCIe Upstream Port 0041 VIC PCIe Downstream Port 0042 VIC Management Controller - 1137 0047 P81E PCIe + 1137 0047 VIC P81E PCIe Management Controller 0043 VIC Ethernet NIC - 1137 0047 P81E PCIe - 1137 0048 M81KR Mezzanine + 1137 0047 VIC P81E PCIe Ethernet NIC + 1137 0048 VIC M81KR Mezzanine Ethernet NIC + 1137 004f VIC 1280 Mezzanine Ethernet NIC + 1137 0084 VIC 1240 MLOM Ethernet NIC + 1137 0085 VIC 1225 PCIe Ethernet NIC 0044 VIC Ethernet NIC Dynamic - 1137 0047 P81E PCIe - 1137 0048 M81KR Mezzanine + 1137 0047 VIC P81E PCIe Ethernet NIC Dynamic + 1137 0048 VIC M81KR Mezzanine Ethernet NIC Dynamic + 1137 004f VIC 1280 Mezzanine Ethernet NIC Dynamic + 1137 0084 VIC 1240 MLOM Ethernet NIC Dynamic + 1137 0085 VIC 1225 PCIe Ethernet NIC Dynamic 0045 VIC FCoE HBA - 1137 0047 P81E PCIe - 1137 0048 M81KR Mezzanine + 1137 0047 VIC P81E PCIe FCoE HBA + 1137 0048 VIC M81KR Mezzanine FCoE HBA + 1137 004f VIC 1280 Mezzanine FCoE HBA + 004e VIC 82 PCIe Upstream Port 1138 Ziatech Corporation 8905 8905 [STD 32 Bridge] 1139 Dynamic Pictures, Inc @@ -8901,7 +9358,7 @@ 1179 0001 FIR Port Type-DO 117a A-Trend Technology 117b L G Electronics, Inc. -117c Atto Technology +117c ATTO Technology, Inc. 002c SAS RAID Adapter 0030 Ultra320 SCSI Host Adapter 117c 8013 ExpressPCI UL4D @@ -8962,6 +9419,7 @@ 1028 01f3 Inspiron 1420 103c 30b5 Presario V3242AU 103c 30b7 Presario V6133CL + 103c 30cc Pavilion dv6700 1043 1237 A6J-Q008 1043 1967 V6800V 144d c018 X20 IV @@ -8978,6 +9436,7 @@ 103c 03b5 Presario V3242AU 103c 30b7 Presario V6133CL 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 1043 1237 A6J-Q008 1043 1967 ASUS V6800V 10f7 8338 Panasonic CF-Y5 laptop @@ -8991,12 +9450,14 @@ 103c 30b5 Presario V3242AU 103c 30b7 Presario V6133CL 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 0841 R5C841 CardBus/SD/SDIO/MMC/MS/MSPro/xD/IEEE1394 0843 R5C843 MMC Host Controller 1025 0121 Aspire 5920G 1028 01d7 XPS M1210 1028 01f3 Inspiron 1420 1028 01f5 Dell Inspiron 1501 + 1028 024f Dell Latitude e6500 103c 03b5 Presario V3242AU 103c 30b7 Presario V6133CL 1183 0843 Alienware Aurora m9700 @@ -9005,14 +9466,22 @@ 1028 01f3 Inspiron 1420 103c 30b5 Presario V3242AU 103c 30b7 Presario V6133CL + 103c 30cc Pavilion dv6700 1043 1967 V6800V 1180 0852 Pavilion 2410us 1324 10cf P7120 - e230 Memory Stick Host Controller + e230 R5U2xx (R5U230 / R5U231 / R5U241) [Memory Stick Host Controller] + e476 CardBus bridge + 1028 040a Latitude E6410 + 1028 040b Latitude E6510 e822 MMC/SD Host Controller + 1028 040a Latitude E6410 1028 040b Latitude E6510 - e832 FireWire Host Controller + e823 PCIe SDXC/MMC Host Controller + e832 R5C832 PCIe IEEE 1394 Controller + 1028 040a Latitude E6410 1028 040b Latitude E6510 + e852 PCIe xD-Picture Card Controller 1181 Telmatics International 1183 Fujikura Ltd 1184 Forks Inc @@ -9052,6 +9521,9 @@ 4000 DL2000-based Gigabit Ethernet 4001 DGE-550SX PCI-X Gigabit Ethernet Adapter 4300 DGE-528T Gigabit Ethernet Adapter +# rev. B1; RealTek RTL8168E. + 1186 4b10 DGE-560T PCI Express (x1) Gigabit Ethernet Adapter + 4302 DGE-530T Gigabit Ethernet Adapter (rev.C1) [Realtek RTL8169] # There are at least 3 revisions of this adapter; 4800 is board revision A1 as far as I can tell, revision B1 is 4c00. 4800 DGE-530T Gigabit Ethernet Adapter (rev 11) 4b00 DGE-560T PCI Express Gigabit Ethernet Adapter @@ -9124,6 +9596,7 @@ 010c CompuScope 82G 8bit 2GS/s Analog Input Card 1198 Lambda Systems Inc 1199 Attachmate Corporation + 0101 Advanced ISCA/PCI Adapter 6832 Sierra Wireless MC8780 Device 119a Mind Share, Inc. 119b Omega Micro Inc. @@ -9163,6 +9636,7 @@ 2a01 88W8335 [Libertas] 802.11b/g Wireless 2a02 88W8361 [TopDog] 802.11n Wireless 07d1 3b02 DIR-615 rev. A1 Mini PCI Wireless Module + 1385 7c01 WN511T RangeMax Next 300 Mbps Wireless Notebook Adapter 1385 7e00 WN311T RangeMax Next 300 Mbps Wireless PCI Adapter 1799 801b F5D8011 v2 802.11n N1 Wireless Notebook Card 2a08 88W8362e [TopDog] 802.11a/b/g/n Wireless @@ -9242,6 +9716,7 @@ 4353 88E8039 PCI-E Fast Ethernet Controller 104d 902d VAIO VGN-NR120E 4354 88E8040 PCI-E Fast Ethernet Controller + 144d c072 Notebook N150P 4355 88E8040T PCI-E Fast Ethernet Controller 1179 ff50 Satellite P305D-S8995E 4356 88EC033 PCI-E Fast Ethernet Controller @@ -9310,6 +9785,7 @@ 4368 88EC034 Ethernet Controller 4369 88EC042 Ethernet Controller 436a 88E8058 PCI-E Gigabit Ethernet Controller + 11ab 00ba Imac 8,1 Wired Ethernet Adapter 436b 88E8071 PCI-E Gigabit Ethernet Controller 436c 88E8072 PCI-E Gigabit Ethernet Controller 436d 88E8055 PCI-E Gigabit Ethernet Controller @@ -9333,7 +9809,7 @@ 6081 MV88SX6081 8-port SATA II PCI-X Controller 6101 88SE6101/6102 single-port PATA133 interface 6111 88SE6111 1-port PATA133(IDE) and 1-port SATA II Controllers - 6121 88SE6121 SATA II Controller + 6121 88SE6121 SATA II / PATA Controller 6141 88SE614x SATA II PCI-E controller 6145 88SE6145 SATA II PCI-E controller 6180 88F6180 [Kirkwood] ARM SoC @@ -9404,8 +9880,8 @@ 11be International Microcircuits Inc 11bf Astrodesign, Inc. 11c0 Hewlett Packard -# Nee Lucent Microelectronics -11c1 Agere Systems +# nee Agere Systems nee Lucent Microelectronics +11c1 LSI Corporation 0440 56k WinModem 1033 8015 LT WinModem 56k Data+Fax+Voice+Dsvd 1033 8047 LT WinModem 56k Data+Fax+Voice+Dsvd @@ -9521,13 +9997,17 @@ 5801 USB 5802 USS-312 USB Controller 5803 USS-344S USB Controller - 5811 FW322/323 - 1043 8294 IEEE 1394a Firewire Controller + 5811 FW322/323 [TrueFire] 1394a Controller + 103c 2a34 Pavilion a1677c + 103c 2a9e Pavilion p6310f + 1043 8294 LSI FW322/323 IEEE 1394a FireWire Controller 8086 524c D865PERL mainboard dead 0800 FireWire Host Bus Adapter - 5901 FW643 PCI Express1394b Controller (PHY/Link) + 5901 FW643 [TrueFire] PCIe 1394b Controller + 11c1 5900 FW643 [TrueFire] PCIe 1394b Controller 1443 0643 FireBoard800-e V.2 - 1546 0643 FWB-PCIE1X20 + 1546 0643 FWB-PCIE1X2x + 5903 FW533 [TrueFire] PCIe 1394a Controller 8110 T8110 H.100/H.110 TDM switch 12d9 000c E1/T1 PMXc cPCI carrier card ab10 WL60010 Wireless LAN MAC @@ -9698,6 +10178,7 @@ 0805 RocketPort UPCI 8 port w/octa cable 080c RocketModem III 8 port 080d RocketModem III 4 port + 0810 RocketPort UPCI Plus 4 port RS232 0811 RocketPort UPCI Plus 8 port RS232 0812 RocketPort UPCI Plus 8 port RS422 0903 RocketPort Compact PCI 16 port w/external I/F @@ -9751,6 +10232,9 @@ 1217 O2 Micro, Inc. 00f7 Firewire (IEEE 1394) 1179 ff50 Satellite P305D-S8995E + 10f7 1394 OHCI Compliant Host Controller + 11f7 OZ600 1394a-2000 Controller + 13f7 1394 OHCI Compliant Host Controller 6729 OZ6729 673a OZ6730 6832 OZ6832/6833 CardBus Controller @@ -9786,6 +10270,10 @@ 103c 0890 NC6000 laptop 10cf 11c4 Lifebook P5020D Laptop 7233 OZ711MP3/MS3 4-in-1 MemoryCardBus Controller + 8120 Integrated MMC/SD Controller + 8130 Integrated MS/MSPRO/xD Controller + 8321 Integrated MMC/SD controller + 8331 O2 Flash Memory Card 1218 Hybricon Corp. 1219 First Virtual Corporation 121a 3Dfx Interactive, Inc. @@ -9835,7 +10323,7 @@ 0057 Voodoo 3/3000 [Avenger] 121b Advanced Telecommunications Modules 121c Nippon Texaco., Ltd -121d Lippert Automationstechnik GmbH +121d LiPPERT ADLINK Technology GmbH 121e CSPI 0201 Myrinet 2000 Scalable Cluster Interconnect 121f Arcus Technology, Inc. @@ -9892,8 +10380,6 @@ 0d13 Desktop PCI L1/L3 Telephony 1232 GPT Limited 1233 Bus-Tech, Inc. -# Also Bochs uses this for virtual VGA... -1234 Technical Corp. 1235 Risq Modular Systems, Inc. 1236 Sigma Designs Corporation 0000 RealMagic64/GX @@ -9997,7 +10483,7 @@ 1968 ES1968 Maestro 2 1028 0085 ES1968 Maestro-2 PCI 1033 8051 ES1968 Maestro-2 Audiodrive - 1969 ES1969 Solo-1 Audiodrive + 1969 ES1938/ES1946/ES1969 Solo-1 Audiodrive 1014 0166 ES1969 SOLO-1 AudioDrive on IBM Aptiva Mainboard 125d 8888 Solo-1 Audio Adapter 153b 111b Terratec 128i PCI @@ -10042,12 +10528,13 @@ 1468 0202 LAN-Express IEEE 802.11b Wireless LAN 3873 ISL3874 [Prism 2.5]/ISL3872 [Prism 3] 10cf 1169 MBH7WM01-8734 802.11b Wireless Mini PCI Card [ISL3874] - 1186 3501 DWL-520 Wireless PCI Adapter (rev A) [ISL3874] + 1186 3501 DWL-520 Wireless PCI Adapter (rev A or B) [ISL3874] 1186 3700 DWL-520 Wireless PCI Adapter (rev E1) [ISL3872] 1385 4105 MA311 802.11b wireless adapter [ISL3874] 1668 0414 HWP01170-01 802.11b PCI Wireless Adapter 16a5 1601 AIR.mate PC-400 PCI Wireless LAN Adapter 1737 3874 WMP11 v1 802.11b Wireless-B PCI Adapter [ISL3874] + 4033 7033 PCW200 802.11b Wireless PCI Adapter [ISL3874] 8086 2510 M3AWEB Wireless 802.11b MiniPCI Adapter 8086 2513 Wireless 802.11b MiniPCI Adapter 3877 ISL3877 [Prism Indigo] @@ -10335,10 +10822,10 @@ 8152 IT8152F/G Advanced RISC-to-PCI Companion Chip 8211 ITE 8211F Single Channel UDMA 133 1043 8138 P5GD1-VW Mainboard -# PCI version seems to be IT8212, embedded seems to be ITE8212 - 8212 IT/ITE8212 Dual channel ATA RAID controller + 8212 IT8212 Dual channel ATA RAID controller 1283 0001 IT/ITE8212 Dual channel ATA RAID controller 8213 IT8213 IDE Controller + 1458 b000 GA-EG45M-DS2H Mainboard 8330 IT8330G 8872 IT8874F PCI Dual Serial Port Controller 8888 IT8888F/G PCI to ISA Bridge with SMB [Golden Gate] @@ -10565,6 +11052,9 @@ 12d7 Biotronic SRL 12d8 Pericom Semiconductor 01a7 PI7C21P100 PCI to PCI Bridge + 400a PI7C9X442SL PCI Express Bridge Port + 400e PI7C9X442SL USB OHCI Controller + 400f PI7C9X442SL USB EHCI Controller 71e2 PI7C7300A/PI7C7300D PCI-to-PCI Bridge 71e3 PI7C7300A/PI7C7300D PCI-to-PCI Bridge (Secondary Bus 2) 8140 PI7C8140A PCI-to-PCI Bridge @@ -10732,8 +11222,10 @@ 0067 PCI-DAS6070 0068 PCI-DAS6071 006f PCI-DAS6036 + 0070 PCI-DAC6702 0078 PCI-DAS6013 0079 PCI-DAS6014 + 0115 PCIe-DAS1602/16 1308 Jato Technologies Inc. 0001 NetCelerator Adapter 1308 0001 NetCelerator Adapter @@ -10858,6 +11350,13 @@ 1343 Phylon Communications Inc # nee Crucial Technology 1344 Micron Technology Inc + 5150 RealSSD P320h + 5151 RealSSD P320m + 5152 RealSSD P320s + 5153 RealSSD P325m + 5160 RealSSD P420h + 5161 RealSSD P420m + 5163 RealSSD P425m 1345 Arescom Inc 1347 Odetics 1349 Sumitomo Electric Industries, Ltd. @@ -10883,7 +11382,8 @@ 134f Algo System Co Ltd 1350 Systec Co. Ltd 1351 Sonix Inc -1353 Thales Idatys +# nee Thales Idatys +1353 Vierling Communication SAS 0002 Proserver 0003 PCI-FUT 0004 PCI-S0 @@ -10928,6 +11428,7 @@ 0103 PCI510 DCF77 Radio Clock 0104 PCI511 DCF77 Radio Clock 0105 PEX511 DCF77 Radio Clock (PCI Express) + 0106 PZF180PEX High Precision DCF77 Radio Clock (PCI Express) 0201 GPS167PCI GPS Receiver 0202 GPS168PCI GPS Receiver 0203 GPS169PCI GPS Receiver @@ -10990,14 +11491,25 @@ 003a Silicom Dual port Fiber-LX Ethernet PCI-E Intel based Bypass Server Adapter 003b Silicom Dual port Fiber Ethernet PMC Intel based Bypass Server Adapter (PMCX2BPFI) 003c Silicom Dual port Copper Ethernet PCI-X BGE based Bypass Server Adapter (PXG2BPRB) + 003d 2-port Copper GBE Bypass with Caviume 1010 PCI-X 003e Silicom Dual port Fiber Giga Ethernet PCI-E 571 TAP/Bypass Server Adapter (PEG2TBFI) 003f Silicom Dual port Copper Giga Ethernet PCI-X 546 TAP/Bypass Server Adapter (PXG2TBI) 0040 Silicom Quad port Fiber-SX Giga Ethernet 571 Bypass Server Adapter (PEG4BPFI) + 0042 4-port Copper GBE PMC-X Bypass 0043 Silicom Quad port Fiber-SX Giga Ethernet 546 Bypass Server Adapter (PXG4BPFID) 0045 Silicom 6 port Copper Giga Ethernet 546 Bypass Server Adapter (PXG6BPI) + 0046 4-port bypass PCI-E w disconnect low profile 0047 Silicom Dual port Fiber-SX Giga Ethernet 571 Bypass Disconnect Server Adapter (PEG2BPFID) 004a Silicom Quad port Fiber-LX Giga Ethernet 571 Bypass Server Adapter (PEG4BPFI-LX) 004d Dual port Copper Giga Ethernet PCI-E Bypass Server Adapter + 0401 Gigabit Ethernet ExpressModule Bypass Server Adapter + 0420 Gigabit Ethernet ExpressModule Bypass Server Adapter + 0460 Gigabit Ethernet Express Module Bypass Server Adapter + 0461 Gigabit Ethernet ExpressModule Bypass Server Adapter + 0462 Gigabit Ethernet ExpressModule Bypass Server Adapter + 0470 Octal-port Copper Gigabit Ethernet Express Module Bypass Server Adapter + 0482 Dual-port Fiber (SR) 10 Gigabit Ethernet ExpressModule Bypass Server Adapter + 0483 Dual-port Fiber (LR) 10 Gigabit Ethernet ExpressModule Bypass Server Adapter 1375 Argosystems Inc 1376 LMC 1377 Electronic Equipment Production & Distribution GmbH @@ -11041,7 +11553,6 @@ 6d00 WPNT511 RangeMax 240 Mbps Wireless PC Card 7b00 WN511B RangeMax Next 270 Mbps Wireless PC Card 7c00 WN511T RangeMax Next 300 Mbps Wireless PC Card - 7d00 WN311B RangeMax Next 270 Mbps Wireless PCI Adapter f004 FA310TX f312 FA312 REV-A1 Fast Ethernet PCI Adapter 1386 Video Domain Technologies @@ -11050,6 +11561,7 @@ 1389 Applicom International 0001 PCI1500PFB [Intelligent fieldbus adaptor] 138a Fusion Micromedia Corp + 003d VFS491 Validity Sensor 138b Tokimec Inc 138c Silicon Reality 138d Future Techno Designs pte Ltd @@ -11297,7 +11809,7 @@ 13f6 ffff CMI8338/C3DX PCI Audio Device 0101 CM8338B 13f6 0101 CMI8338-031 PCI Audio Device - 0111 CM8738 + 0111 CMI8738/CMI8768 PCI Audio 1019 0970 P6STP-FL motherboard 1043 8035 CUSI-FX motherboard 1043 8077 CMI8738 6-channel audio controller @@ -11307,6 +11819,9 @@ 153b 1144 Aureon 5.1 153b 1170 Aureon 7.1 1681 a000 Gamesurround MUSE XL + 17ab 0604 PSC604 Dynamic Edge + 17ab 0605 PSC605 Sonic Edge + 17ab 7777 PSC605 Sonic Edge 270f 1103 CT-7NJS Ultra motherboard 270f f462 7NJL1 motherboard 584d 3731 Digital X-Mystique @@ -11316,6 +11831,8 @@ 584d 3771 X-Mystique 7.1 LP Value 7284 8384 Striker 7.1 0211 CM8738 + 5011 CM8888 [Oxygen Express] + 13f6 5011 HDA Controller 8788 CMI8788 [Oxygen HD Audio] 1043 8269 Virtuoso 200 (Xonar D2) 1043 8275 Virtuoso 100 (Xonar DX) @@ -11340,6 +11857,7 @@ 7284 9761 CLARO 7284 9781 CLARO halo 7284 9783 eCLARO + 7284 9787 CLARO II 9880 CM9880 13f7 Wildfire Communications 13f8 Ad Lib Multimedia Inc @@ -11527,6 +12045,7 @@ 153b 1151 PHASE88 16ce 1040 Edirol DA-2496 1724 VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller + 10b0 0200 Hollywood@Home 7.1 1412 1724 Albatron PX865PE 7.1 1412 3630 M-Audio Revolution 7.1 1412 3631 M-Audio Revolution 5.1 @@ -11581,6 +12100,9 @@ 9513 OX16PCI954 (Quad 16950 UART) function 1 (parallel port) 9521 OX16PCI952 (Dual 16950 UART) 9523 OX16PCI952 Integrated Parallel Port + c158 OXPCIe952 Dual 16C950 UART + e4bf c504 CP4-SCAT Wireless Technologies Carrier Board + e4bf d551 DU1-MUSTANG Dual-Port RS-485 Interface c308 EX-44016 16-port serial 1416 Multiwave Innovation pte Ltd 1417 Convergenet Technologies Inc @@ -11621,6 +12143,10 @@ 4008 T420-CX Unified Wire Ethernet Controller 4009 T420-BT Unified Wire Ethernet Controller 400a T404-BT Unified Wire Ethernet Controller + 400b B420-SR Unified Wire Ethernet Controller + 400c B404-BT Unified Wire Ethernet Controller + 400d T480 Unified Wire Ethernet Controller + 400e T440-LP-CR Unified Wire Ethernet Controller 4401 T420-CR Unified Wire Ethernet Controller 4402 T422-CR Unified Wire Ethernet Controller 4403 T440-CR Unified Wire Ethernet Controller @@ -11631,6 +12157,10 @@ 4408 T420-CX Unified Wire Ethernet Controller 4409 T420-BT Unified Wire Ethernet Controller 440a T404-BT Unified Wire Ethernet Controller + 440b B420-SR Unified Wire Ethernet Controller + 440c B404-BT Unified Wire Ethernet Controller + 440d T480 Unified Wire Ethernet Controller + 440e T440-LP-CR Unified Wire Ethernet Controller 4501 T420-CR Unified Wire Storage Controller 4502 T422-CR Unified Wire Storage Controller 4503 T440-CR Unified Wire Storage Controller @@ -11641,6 +12171,10 @@ 4508 T420-CX Unified Wire Storage Controller 4509 T420-BT Unified Wire Storage Controller 450a T404-BT Unified Wire Storage Controller + 450b B420-SR Unified Wire Ethernet Controller + 450c B404-BT Unified Wire Ethernet Controller + 450d T480 Unified Wire Storage Controller + 450e T440-LP-CR Unified Wire Storage Controller 4601 T420-CR Unified Wire Storage Controller 4602 T422-CR Unified Wire Storage Controller 4603 T440-CR Unified Wire Storage Controller @@ -11651,6 +12185,10 @@ 4608 T420-CX Unified Wire Storage Controller 4609 T420-BT Unified Wire Storage Controller 460a T404-BT Unified Wire Storage Controller + 460b B420-SR Unified Wire Ethernet Controller + 460c B404-BT Unified Wire Ethernet Controller + 460d T480 Unified Wire Storage Controller + 460e T440-LP-CR Unified Wire Storage Controller 4701 T420-CR Unified Wire Ethernet Controller 4702 T422-CR Unified Wire Ethernet Controller 4703 T440-CR Unified Wire Ethernet Controller @@ -11661,6 +12199,10 @@ 4708 T420-CX Unified Wire Ethernet Controller 4709 T420-BT Unified Wire Ethernet Controller 470a T404-BT Unified Wire Ethernet Controller + 470b B420-SR Unified Wire Ethernet Controller + 470c B404-BT Unified Wire Ethernet Controller + 470d T480 Unified Wire Ethernet Controller + 470e T440-LP-CR Unified Wire Ethernet Controller 4801 T420-CR Unified Wire Ethernet Controller 4802 T422-CR Unified Wire Ethernet Controller 4803 T440-CR Unified Wire Ethernet Controller @@ -11671,6 +12213,10 @@ 4808 T420-CX Unified Wire Ethernet Controller 4809 T420-BT Unified Wire Ethernet Controller 480a T404-BT Unified Wire Ethernet Controller + 480b B420-SR Unified Wire Ethernet Controller + 480c B404-BT Unified Wire Ethernet Controller + 480d T480 Unified Wire Ethernet Controller + 480e T440-LP-CR Unified Wire Ethernet Controller a000 PE10K Unified Wire Ethernet Controller 1426 Storage Technology Corp. 1427 Better On-Line Solutions @@ -11865,7 +12411,8 @@ 14a1 Systembase Co Ltd 14a2 Millennium Engineering Inc 14a3 Maverick Networks -14a4 GVC/BCM Advanced Research +# registered as GVC/BCM Advanced Research +14a4 Broadcom Corporation (Wrong ID) 4318 BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller 14a5 XIONICS Document Technologies Inc 14a6 INOVA Computers GmBH & Co KG @@ -11898,10 +12445,10 @@ 14b7 PROXIM Inc 0001 Symphony 4110 14b8 Techsoft Technology Co Ltd -14b9 AIRONET Wireless Communications +14b9 Cisco Aironet Wireless Communications 0001 PC4800 0340 PC4800 - 0350 PC4800 + 0350 350 series 802.11b Wireless LAN Adapter 4500 PC4500 4800 Cisco Aironet 340 802.11b Wireless LAN Adapter/Aironet PC4800 a504 Cisco Aironet Wireless 802.11b @@ -11948,7 +12495,7 @@ 8002 VScom 020L 2 port parallel adaptor 8010 VScom 100L 1 port serial adaptor 8011 VScom 110L 1 port serial and 1 port parallel adaptor - 8020 VScom 200L 1 port serial adaptor + 8020 VScom 200L 1 or 2 port serial adaptor 8021 VScom 210L 2 port serial and 1 port parallel adaptor 8028 VScom 200I/200I-SI 2-port serial adapter 8040 VScom 400L 4 port serial adaptor @@ -12024,7 +12571,7 @@ 1028 0235 PowerEdge R710 BCM5709 Gigabit Ethernet 1028 0236 PowerEdge R610 BCM5709 Gigabit Ethernet 1028 0237 PowerEdge T610 BCM5709 Gigabit Ethernet - 103c 7055 NC382i Integrated Quad Port PCI Express Gigabit Server Adapter + 103c 7055 NC382i Integrated Multi-port PCI Express Gigabit Server Adapter 103c 7059 NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter 10a9 8027 Quad port Gigabit Ethernet Controller 163a NetXtreme II BCM5709S Gigabit Ethernet @@ -12035,7 +12582,14 @@ 163b NetXtreme II BCM5716 Gigabit Ethernet 1028 028c PowerEdge R410 BCM5716 Gigabit Ethernet 1028 028d PowerEdge T410 BCM5716 Gigabit Ethernet + 1028 02f1 PowerEdge R510 BCM5716 Gigabit Ethernet 163c NetXtreme II BCM5716S Gigabit Ethernet + 163d NetXtreme II BCM57811 10-Gigabit Ethernet + 163e NetXtreme II BCM57811 10 Gigabit Ethernet Multi Function + 163f NetXtreme II BCM57811 10-Gigabit Ethernet Virtual Function + 1641 NetXtreme BCM57787 Gigabit Ethernet PCIe + 1642 NetXtreme BCM57764 Gigabit Ethernet PCIe + 1643 NetXtreme BCM5725 Gigabit Ethernet PCIe 1644 NetXtreme BCM5700 Gigabit Ethernet 1014 0277 Broadcom Vigil B5700 1000Base-T 1028 00d1 Broadcom BCM5700 @@ -12210,15 +12764,25 @@ 103c 280a DC5750 Microtower 167d NetXtreme BCM5751M Gigabit Ethernet PCI Express 1014 0577 ThinkPad Z60t + 103c 0934 HP nx8220 103c 0940 HP Compaq nw8240 Mobile Workstation 17aa 2081 ThinkPad R60e 167e NetXtreme BCM5751F Fast Ethernet PCI Express 167f NetLink BCM5787F Fast Ethernet PCI Express 1680 NetXtreme BCM5761e Gigabit Ethernet PCIe 1681 NetXtreme BCM5761 Gigabit Ethernet PCIe + 1682 NetXtreme BCM57762 Gigabit Ethernet PCIe + 1683 NetXtreme BCM57767 Gigabit Ethernet PCIe 1684 NetXtreme BCM5764M Gigabit Ethernet PCIe 1685 NetXtreme II BCM57500S Gigabit Ethernet - 168a NetXtreme II BCM57800 10 Gigabit Ethernet + 1686 NetXtreme BCM57766 Gigabit Ethernet PCIe + 1687 NetXtreme BCM5762 Gigabit Ethernet PCIe +# The Broadcom 57800 device has two 1Gig ports and two 10Gig ports. The subsystem information can be used to differentiate. + 168a NetXtreme II BCM57800 1/10 Gigabit Ethernet + 1028 1f5c BCM57800 10-Gigabit Ethernet + 1028 1f5d BCM57800 10-Gigabit Ethernet + 1028 1f67 BCM57800 1-Gigabit Ethernet + 1028 1f68 BCM57800 1-Gigabit Ethernet 168d NetXtreme II BCM57840 10/20 Gigabit Ethernet 168e NetXtreme II BCM57810 10 Gigabit Ethernet 1690 NetXtreme BCM57760 Gigabit Ethernet PCIe @@ -12244,7 +12808,15 @@ 1462 590c KT6 Delta-FIS2R (MS-6590) 169d NetLink BCM5789 Gigabit Ethernet PCI Express 16a0 NetLink BCM5785 Fast Ethernet - 16a5 NetXtreme II BCM57800 10 Gigabit Ethernet Multi Function + 16a1 BCM57840 NetXtreme II 10 Gigabit Ethernet + 16a2 BCM57840 NetXtreme II 10/20-Gigabit Ethernet + 16a4 BCM57840 NetXtreme II Ethernet Multi Function +# The Broadcom 57800 device has two 1Gig ports and two 10Gig ports. The subsystem information can be used to differentiate. + 16a5 NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function + 1028 1f5c NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function + 1028 1f5d NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function + 1028 1f67 NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function + 1028 1f68 NetXtreme II BCM57800 1-Gigabit Ethernet Multi Function 16a6 NetXtreme BCM5702X Gigabit Ethernet 0e11 00bb NC7760 Gigabit Server Adapter (PCI-X, 10/100/1000-T) 1028 0126 BCM5702 1000Base-T @@ -12263,7 +12835,12 @@ 10a9 8014 Dual Port Gigabit Ethernet (PCI-X,Fiber) 10a9 801c Quad Port Gigabit Ethernet (PCI-E,Fiber) 10b7 2001 3C998-SX Dual Port 1000-SX PCI-X - 16a9 NetXtreme II BCM57800 10 Gigabit Ethernet Virtual Function +# The Broadcom 57800 device has two 1Gig ports and two 10Gig ports. The subsystem information can be used to differentiate. + 16a9 NetXtreme II BCM57800 1/10 Gigabit Ethernet Virtual Function + 1028 1f5c NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function + 1028 1f5d NetXtreme II BCM57800 10-Gigabit Ethernet Virtual Function + 1028 1f67 NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function + 1028 1f68 NetXtreme II BCM57800 1-Gigabit Ethernet Virtual Function 16aa NetXtreme II BCM5706S Gigabit Ethernet 103c 3102 NC370F MultifuNCtion Gigabit Server Adapter 103c 310c NC370i Multifunction Gigabit Server Adapter @@ -12282,9 +12859,11 @@ 16b0 NetXtreme BCM57761 Gigabit Ethernet PCIe 16b1 NetLink BCM57781 Gigabit Ethernet PCIe 16b2 NetLink BCM57791 Gigabit Ethernet PCIe + 16b3 NetXtreme BCM57786 Gigabit Ethernet PCIe 16b4 NetXtreme BCM57765 Gigabit Ethernet PCIe 16b5 NetLink BCM57785 Gigabit Ethernet PCIe 16b6 NetLink BCM57795 Gigabit Ethernet PCIe + 16b7 NetXtreme BCM57782 Gigabit Ethernet PCIe 16bc NetXtreme BCM57765 Memory Card Reader 16c6 NetXtreme BCM5702A3 Gigabit Ethernet 10b7 1100 3C1000B-T 10/100/1000 PCI @@ -12337,8 +12916,8 @@ 16a5 1602 B-300 802.11b Wireless CardBus Adapter 1737 4301 WMP11 v2.7 802.11b Wireless-B PCI Adapter 4305 BCM4307 V.90 56k Modem - 4306 BCM4307 Ethernet Controller - 4307 BCM4307 802.11b Wireless LAN Controller + 4306 BCM4306 802.11bg Wireless LAN controller + 4307 BCM4306 802.11bg Wireless LAN Controller 4310 BCM4310 Chipcommon I/OController 4311 BCM4311 802.11b/g WLAN 1028 0007 Wireless 1390 WLAN Mini-Card @@ -12373,6 +12952,9 @@ 1028 000c Wireless 1397 WLAN Mini-Card 103c 137c BCM4312 802.11b/g Wireless LAN Controller 103c 137d BCM4312 802.11b/g Wireless LAN Controller + 103c 1507 U98Z049.00 Wireless Mini PCIe Card + 105b e003 T77H030.00 Wireless Mini PCIe Card + 105b e01b T77H106.00 Wireless Half-size Mini PCIe Card 4318 BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller 1028 0005 Wireless 1370 WLAN Mini-PCI Card 1028 0006 Wireless 1370 WLAN PC Card @@ -12414,7 +12996,8 @@ 1154 0330 Buffalo WLI2-PCI-G54S High Speed Mode Wireless Desktop Adapter 144f 7050 eMachines M6805 802.11g Built-in Wireless 144f 7051 Sonnet Aria Extreme PCI - 14e4 4320 Linksys WMP54G PCI + 1737 0013 WMP54G v1 802.11g PCI Adapter + 1737 0014 WMP54G v2 802.11g PCI Adapter 1737 0015 WMP54GS v1.0 802.11g Wireless-G PCI Adapter with SpeedBooster 1737 4320 WPC54G v1 / WPC54GS v1 802.11g Wireless-G Notebook Adapter 1799 7000 F5D7000 v1000 Wireless G Desktop Card @@ -12422,8 +13005,8 @@ 1799 7010 F5D7010 v1000 Wireless G Notebook Card 1799 7011 F5D7011 v1000 High-Speed Mode Wireless G Notebook Card 185f 1220 TravelMate 290E WLAN Mini-PCI Card - 4321 BCM4306 802.11a Wireless LAN Controller - 4322 BCM4306 UART + 4321 BCM4321 802.11a Wireless Network Controller + 4322 BCM4322 802.11bgn Wireless Network Controller 4324 BCM4306 802.11a/b/g 1028 0001 Truemobile 1400 1028 0002 TrueMobile 1400 Dual Band WLAN PC Card @@ -12431,7 +13014,7 @@ 1028 0004 Wireless 1450 Dual Band WLAN PC Card 103c 12f9 Broadcom 802.11a/b/g WLAN 103c 12fc Broadcom 802.11a/b/g WLAN - 4325 BCM43xG 802.11b/g + 4325 BCM4306 802.11bg Wireless Network Controller 1414 0003 Wireless Notebook Adapter MN-720 1414 0004 Wireless PCI Adapter MN-730 4326 BCM4307 Chipcommon I/O Controller? @@ -12443,21 +13026,34 @@ 103c 1368 BCM4321 802.11a/b/g/n Wireless LAN Controller 103c 1369 BCM4321 802.11a/b/g/n Wireless LAN Controller 14e4 4328 BCM4328 802.11a/b/g/n + 1737 0066 WPC600N v1 802.11a/b/g/n Wireless-N CardBus Adapter + 1737 0068 WEC600N v1 802.11a/b/g/n Wireless-N ExpressCard 4329 BCM4321 802.11b/g/n + 1385 7b00 WN511B RangeMax NEXT Wireless Notebook Adapter + 1385 7d00 WN311B RangeMax Next 270 Mbps Wireless PCI Adapter 1737 0058 WPC300N v1 Wireless-N Notebook Adapter - 432a BCM4321 + 432a BCM4321 802.11an Wireless Network Controller 432b BCM4322 802.11a/b/g/n Wireless LAN Controller 1028 000d Wireless 1510 Wireless-N WLAN Mini-Card + 106b 008e AirPort Extreme 432c BCM4322 802.11b/g/n 1799 d311 Dynex DX-NNBX 802.11n WLAN Cardbus Card - 432d BCM4322 802.11a/b/g/n + 432d BCM4322 802.11an Wireless Network Controller 4331 BCM4331 802.11a/b/g/n 106b 00d6 AirPort Extreme + 4333 Serial (EDGE/GPRS modem part of Option GT Combo Edge) 4344 EDGE/GPRS data and 802.11b/g combo cardbus [GC89] 4353 BCM43224 802.11a/b/g/n + 1028 000e Wireless 1520 Half-size Mini PCIe Card + 103c 1509 WMIB-275N Half-size Mini PCIe Card 4357 BCM43225 802.11b/g/n + 105b e021 T77H103.00 Wireless Half-size Mini PCIe Card 4358 BCM43227 802.11b/g/n 4359 BCM43228 802.11a/b/g/n + 1028 0011 Wireless 1530 Half-size Mini PCIe Card + 103c 182c BCM943228HM4L 802.11a/b/g/n 2x2 Wi-Fi Adapter + 4365 BCM43142 802.11b/g/n + 1028 0016 Wireless 1704 802.11n + BT 4.0 4401 BCM4401 100Base-T 1025 0035 TravelMate 660 103c 08b0 tc1100 tablet @@ -12492,7 +13088,7 @@ 4719 BCM47xx/53xx RoboSwitch Core 4720 BCM4712 MIPS CPU 4727 BCM4313 802.11b/g/n Wireless LAN Controller - 1028 0010 XPS 8300 + 1028 0010 Inspiron M5010 / XPS 8300 5365 BCM5365P Sentry5 Host Bridge 5600 BCM5600 StrataSwitch 24+2 Ethernet Switch Controller 5605 BCM5605 StrataSwitch 24+2 Ethernet Switch Controller @@ -12525,7 +13121,9 @@ ab07 RTL81xx RealTek Ethernet ab08 FNW-3602-TX CardBus Fast Ethernet 14eb SEIKO EPSON Corp -14ec ACQIRIS +# nee ACQIRIS +14ec Agilent Technologies + 0000 Aciris Digitizer (malformed ID) 14ed DATAKINETICS Ltd 14ee MASPRO KENKOH Corp 14ef CARRY Computer ENG. CO Ltd @@ -12779,6 +13377,7 @@ 8852 CX23885 PCI Video and Audio Decoder 0070 8010 Hauppauge WinTV HVR-1400 ExpressCard 1461 c039 AVerTV Hybrid Express (A577) + 153b 117e Cinergy T PCIe Dual 18ac db78 FusionHDTV DVB-T Dual Express 8880 CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb 0070 c108 WinTV-HVR-4400-HD model 1278 @@ -13066,7 +13665,8 @@ 158d Point Multimedia Systems 158e Lara Technology Inc 158f Ditect Coop -1590 3PAR Inc. +# nee 3PAR Inc. +1590 Hewlett-Packard Company 0001 Eagle Cluster Manager 0002 Osprey Cluster Manager 0003 Harrier Cluster Manager @@ -13120,13 +13720,15 @@ 07c0 PVSCSI SCSI Controller 0801 Virtual Machine Interface 15ad 0800 Hypervisor ROM Interface + 1977 HD Audio Controller 15ae Amersham Pharmacia Biotech 15b0 Zoltrix International Ltd 15b1 Source Technology Inc 15b2 Mosaid Technologies Inc 15b3 Mellanox Technologies 0191 MT25408 [ConnectX IB Flash Recovery] - 01f5 MT27500 Family [ConnectX-3 Flash Recovery] + 01f6 MT27500 Family [ConnectX-3 Flash Recovery] + 01ff MT27600 Family [Connect-IB Flash Recovery] 1002 MT25400 Family [ConnectX-2 Virtual Function] 1003 MT27500 Family [ConnectX-3] 1004 MT27500 Family [ConnectX-3 Virtual Function] @@ -13142,6 +13744,12 @@ 100e MT27551 Family 100f MT27560 Family 1010 MT27561 Family + 1011 MT27600 [Connect-IB] + 1012 MT27600 Family [Connect-IB Virtual Function] + 1013 MT27620 Family + 1014 MT27621 Family + 1015 MT27630 Family + 1016 MT27631 Family 5274 MT21108 InfiniBridge 5a44 MT23108 InfiniHost 5a45 MT23108 [Infinihost HCA Flash Recovery] @@ -13202,6 +13810,7 @@ 15ba Impacct Technology Corp 15bb Portwell Inc 15bc Agilent Technologies + 0100 HPFC-5600 Tachyon DX2+ FC 0103 QX4 PCI Express quad 4-gigabit Fibre Channel controller 0105 Celerity FC-42XS Fibre Channel Adapter 117c 0022 Celerity FC-42XS Fibre Channel Adapter @@ -13339,16 +13948,18 @@ 103c 1742 HP 82B 8Gbps dual port FC HBA 103c 1744 HP 42B 4Gbps dual port FC HBA 1657 0014 425/825 4Gbps/8Gbps PCIe dual port FC HBA - 0014 1010/1020/1007 10Gbps CNA - 1657 0014 1010/1020/1007 10Gbps CNA - FCOE - 1657 0015 1010/1020/1007 10Gbps CNA - LL + 0014 1010/1020/1007/1741 10Gbps CNA + 1657 0014 1010/1020/1007/1741 10Gbps CNA - FCOE + 1657 0015 1010/1020/1007/1741 10Gbps CNA - LL 0017 415/815/41B/81B 4Gbps/8Gbps PCIe single port FC HBA 103c 1741 HP 41B 4Gbps single port FC HBA 103c 1743 HP 81B 8Gbps single port FC HBA 1657 0014 415/815 4Gbps/8Gbps single port PCIe FC HBA - 0021 804/807 8Gbps FC HBA - 103c 1779 804 8Gbps FC HBA for HP Bladsystem c-class - 1657 0014 8Gbps FC HBA + 0021 804 8Gbps FC HBA for HP Bladesystem c-class + 0022 1867/1860: 16Gbps/10Gbps Fabric Adapter + 1657 0022 10Gbps CNA - FCOE + 1657 0023 10Gbps CNA - LL + 1657 0024 16Gbps FC HBA # Same Device_ID used for 410 (1port) and 420 (2 port) HBAs. 0646 400 4Gbps PCIe FC HBA 165a Epix Inc @@ -13384,26 +13995,26 @@ a000 MagicLAN SWL-2210P 802.11b [Intersil ISL3874] 167e ONNTO Corp. 1681 Hercules - 0010 Hercules 3d Prophet II Ultra 64MB (350 MHz NV15BR core) 1682 XFX Pine Group Inc. 1688 CastleNet Technology Inc. 1170 WLAN 802.11b card 168c Atheros Communications Inc. - 0007 AR5000 802.11a Wireless Adapter + 0007 AR5210 Wireless Network Adapter [AR5000 802.11a] 1737 0007 WPC54A Wireless PC Card 1b47 0100 Harmony 8450CN Wireless CardBus Module 1b47 0110 Skyline 4030 / Harmony 8450 802.11a Wireless CardBus Adapter 8086 2501 PRO/Wireless 5000 LAN PCI Adapter Module - 0011 AR5210 802.11a NIC - 0012 AR5211 802.11ab NIC + 0011 AR5211 Wireless Network Adapter [AR5001A 802.11a] + 0012 AR5211 Wireless Network Adapter [AR5001X 802.11ab] 126c 8031 2201 Mobile Adapter 1385 4400 WAB501 802.11ab Wireless CardBus Card 1b47 aa00 8460 802.11ab Wireless CardBus Adapter - 0013 Atheros AR5001X+ Wireless Network Adapter +# AR5001G, AR5001X+, AR5002G, AR5002X, AR5004G, AR5004X chipsets + 0013 AR5212/AR5213 Wireless Network Adapter 0308 3402 AG-100 802.11ag Wireless Cardbus Adapter 0308 3405 G-102 v2 802.11g Wireless Cardbus Adapter 0308 3408 G-170S 802.11g Wireless CardBus Adapter - 0e11 00e5 NC6000 laptop + 0e11 00e5 NC6000/NC8000 laptop 10b7 6002 3CRWE154A72 802.11abg Cardbus Adapter 1113 d301 Philips CPWNA100 Wireless CardBus adapter 1113 ee23 SMCWPCIT-G 108Mbps Wireless PCI adapter @@ -13419,7 +14030,7 @@ 1186 3a1a WNA-2330 802.11bg Wireless CardBus Adapter 1186 3a63 D-Link AirPremier DWL-AG660 Wireless Cardbus Adapter 1186 3a93 Conceptronic C54I Wireless 801.11g PCI card - 1186 3a94 C54C Wireless 801.11g cardbus + 1186 3a94 Conceptronic C54C 802.11g Wireless Cardbus Adapter 1186 3ab0 Allnet ALL0281 Wireless PCI Card 1385 4900 WG311v1 802.11g Wireless PCI Adapter 1385 4b00 WG511T 108 Mbps Wireless PC Card (rev.A/B) @@ -13452,14 +14063,14 @@ 1737 0017 WPC55AG 1737 0026 WMP55AG v1.1 1737 0035 WPC55AG v1.2 802.11abg Cardbus Adapter + 1737 0036 WMP55AG v1.2 802.11abg PCI Adapter 1799 3000 F6D3000 Dual-Band Wireless A+G Desktop Card 1799 3010 F6D3010 Dual-Band Wireless A+G Notebook Card 17cf 0042 Z-COMAX Highpower XG-622H (400mw) 802.11b/g mini-PCI Adapter 185f 1012 CM9 Wireless a/b/g MiniPCI Adapter 185f 2012 Wistron NeWeb WLAN a+b+g model CB9 a727 6801 3CRXJK10075 OfficeConnect Wireless 108Mbps 11g XJACK PC Card -# the name AR5005G is used for the reference design using AR2413 - 001a AR2413 802.11bg NIC + 001a AR2413/AR2414 Wireless Network Adapter [AR5005G(S) 802.11bg] 1052 168c Sweex Wireless Lan PC Card 54Mbps 1113 ee20 SMC Wireless CardBus Adapter 802.11g (SMCWCB-G EU) 1113 ee24 SMC Wireless PCI Card WPCI-G @@ -13479,8 +14090,7 @@ 1799 701d F5D7010 v5000 Wireless G Notebook Card 17f9 0008 DX-WGNBC 802.11bg Wireless CardBus Adapter 17f9 0018 DX-WGDTC 802.11bg Wireless PCI Adapter -# the name AR5006X is used for the reference design using AR5413 - 001b AR5413 802.11abg NIC + 001b AR5413/AR5414 Wireless Network Adapter [AR5006X(S) 802.11abg] 0777 3002 XR2 802.11g Wireless Mini PCI Adapter 0777 3005 XR5 802.11a Wireless Mini PCI Adapter 0777 3009 XR9 900MHz Wireless Mini PCI Adapter @@ -13502,7 +14112,9 @@ 001c AR242x / AR542x Wireless Network Adapter (PCI-Express) 0777 3006 SRX 802.11abg Wireless ExpressCard Adapter 103c 137a AR5BXB63 (Foxconn) 802.11bg Mini PCIe NIC - 144f 7128 WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Adapter + 106b 0086 AR5BXB6 802.11abg Wireless Mini PCIe Card + 144f 7106 WLL3140 (Toshiba PA3501U-1MPC) 802.11bg Wireless Mini PCIe Card + 144f 7128 WLL3141 (Toshiba PA3613U-1MPC) 802.11bg Wireless Mini PCIe Card 1468 0428 AR5BXB63 802.11bg NIC 1468 042a AR5007EG 802.11bg NIC 147b 1033 AirPace Wi-Fi @@ -13512,8 +14124,8 @@ 168c 3063 AR5006EX 802.11abg NIC (2.4/5.0GHz, PCI Express) 168c 3065 AR5006EG 802.11bg NIC (2.4GHz, PCI Express) 168c 3067 AR242x 802.11abg Wireless PCI Express Adapter (rev 01) - 1a3b 1026 AR5007EG 802.11bg Wi-Fi mini PCI express card - 001d AR5007G Wireless Network Adapter + 1a3b 1026 AW-GE780 802.11bg Wireless Mini PCIe Card + 001d AR2417 Wireless Network Adapter [AR5007G 802.11bg] 1799 720b F5D7000 v8000 Wireless G Desktop Card 1799 721b F5D7010 v8000 Wireless G Notebook Card # the name AR5005VL is used for some AR5513 based designs @@ -13523,38 +14135,68 @@ 1186 3a68 DWL-G520M Wireless 108G MIMO Desktop Adapter 187e 340e M-302 802.11g Wireless PCI Adapter 1976 2003 TEW-601PC 802.11g Wireless CardBus Adapter - 0023 AR5008 Wireless Network Adapter + 0023 AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn] 0308 340b NWD-170N 802.11bgn Wireless CardBus Adapter 1154 0365 Buffalo WLP-CB-AG300 802.11abgn Cardbus Adapter 1154 0367 WLI-CB-AG301N 802.11abgn Wireless CardBus Adapter 1186 3a6a DWA-642 802.11n RangeBooster N CardBus Adapter + 1186 3a6b DWA-547 802.11n RangeBooster N 650 DeskTop Adapter 1186 3a6d DWA-552 802.11n Xtreme N Desktop Adapter (rev A1) 1186 3a76 DWA-645 802.11n RangeBooster N 650 Notebook Adapter (rev A1) 1737 0059 WPC300N v2 Wireless-N Notebook Adapter 1737 0069 WPC100 v1 802.11n RangePlus Wireless Notebook Adapter + 1737 0072 WMP110 v1 802.11n RangePlus Wireless PCI Adapter 1799 8011 F5D8011 v1 802.11n N1 Wireless Notebook Card 187e 3411 NWD-370N 802.11n Wireless PCI Adapter 1976 2008 TEW-621PC 802.11bgn Wireless CardBus Adapter - 0024 AR5008 Wireless Network Adapter - 0027 AR9160 802.11abgn Wireless PCI Adapter + 0024 AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) + 106b 0087 AR5BXB72 802.11abgn Mini PCIe Card [AR5008E-3NX] + 0027 AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn] 0777 4082 SR71-A 802.11abgn Wireless Mini PCI Adapter 0029 AR922X Wireless Network Adapter + 0777 4005 SR71-15 802.11an Mini PCI Adapter 1186 3a7a DWA-552 802.11n Xtreme N Desktop Adapter (rev A2) 002a AR928X Wireless Network Adapter (PCI-Express) - 103c 3041 AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card - 1a3b 1081 AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card + 0777 4f05 SR71-X 802.11abgn Wireless ExpressCard Adapter [AR9280] + 103c 3041 AR5BHB92-H 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] + 105b e006 T77H053.00 802.11bgn Wireless Mini PCIe Card [AR9281] + 105b e01f T77H047.31 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] + 11ad 6600 WN6600A 802.11bgn Wireless Mini PCIe Card [AR9281] + 144f 7141 WLL6080 802.11bgn Wireless Mini PCIe Card [AR9281] + 168c 0203 DW1525 802.11abgn WLAN PCIe Card [AR9280] + 1a32 0303 EM303 802.11bgn Wireless Mini PCIe Card [AR9281] + 1a32 0306 EM306 802.11bgn Wireless Half-size Mini PCIe Card [AR9283] + 1a3b 1067 AW-NE771 802.11bgn Wireless Mini PCIe Card [AR9281] + 1a3b 1081 AW-NE773 802.11abgn Wireless Half-size Mini PCIe Card [AR9280] 002b AR9285 Wireless Network Adapter (PCI-Express) + 1028 0204 Wireless 1502 802.11bgn Half-size Mini PCIe Card + 1028 0205 Wireless 1702 802.11bgn Half-size Mini PCIe Card [AR9002WB-1NGCD] + 103c 303f U98Z062.10 802.11bgn Wireless Half-size Mini PCIe Card + 103c 3040 U98Z062.12 802.11bgn Wireless Half-size Mini PCIe Card + 105b e017 T77H126.00 802.11bgn Wireless Half-size Mini PCIe Card + 1113 e811 WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card + 185f 30af DNXA-95 802.11bgn Wireless Half-size Mini PCIe Card 1931 0023 Option GTM67x PCIe WiFi Adapter - 002c AR2427 Wireless Network Adapter (PCI-Express) - 002d AR9287 Wireless Network Adapter + 1a3b 1089 AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card + 1a3b 2c37 AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] + 1b9a 0401 XW204E 802.11bgn Wireless Half-size Mini PCIe Card + 1b9a 0c03 WB214E 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] + 002c AR2427 802.11bg Wireless Network Adapter (PCI-Express) + 002d AR9227 Wireless Network Adapter 002e AR9287 Wireless Network Adapter (PCI-Express) 0030 AR9300 Wireless LAN adaptor + 103c 1627 AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter + 1a56 2000 Killer Wireless-N 1102 Half-size Mini PCIe Card [AR9382] + 1a56 2001 Killer Wireless-N 1103 Half-size Mini PCIe Card [AR9380] 0032 AR9485 Wireless Network Adapter - 0033 11a/b/g/n Wireless LAN Mini-PCI Express Adapter - 0207 AR5210 + 103c 1838 AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter + 0033 AR9580 Wireless Network Adapter + 0034 AR9462 Wireless Network Adapter + 0036 AR9565 Wireless Network Adapter + 0207 AR5210 Wireless Network Adapter [AR5000 802.11a] 1014 AR5212 802.11abg NIC 1014 058a ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6) - 9013 AR5001X+ Wireless Network Adapter + 9013 AR5002X Wireless Network Adapter ff19 AR5006X Wireless Network Adapter ff1c AR5008 Wireless Network Adapter ff1d AR5008 Wireless Network Adapter @@ -13563,7 +14205,6 @@ 0044 Revolution Storage Processing Card # The right ID is 196d, but they got it nibble-swapped in 2202. 169d Club-3D VB (Wrong ID) - 3306 ZAP TV 2202 16a5 Tekram Technology Co.,Ltd. 16ab Global Sun Technology Inc 1100 GL24110P @@ -13586,7 +14227,19 @@ 16c9 EONIC B.V. The Netherlands 16ca CENATEK Inc 0001 Rocket Drive DL -16cd Densitron Technologies +# nee Innocore Gaming Ltd., nee Densitron Gaming Ltd., a division of Densitron Technologies +16cd Advantech Co. Ltd + 0101 DirectPCI SRAM for DPX-11x series + 0102 DirectPCI SRAM for DPX-S/C/E-series + 0103 DirectPCI ROM for DPX-11x series + 0104 DirectPCI ROM for DPX-S/C/E-series + 0105 DirectPCI I/O for DPX-114/DPX-115 + 0106 DirectPCI I/O for DPX-116 + 0107 DirectPCI I/O for DPX-116U + 0108 DirectPCI I/O for DPX-117 + 0109 DirectPCI I/O for DPX-112 + 010a DirectPCI I/O for DPX-C/E-series + 010b DirectPCI I/O for DPX-S series 16ce Roland Corp. 16d5 Acromag, Inc. 0504 PMC-DX504 Reconfigurable FPGA with LVDS I/O @@ -13630,12 +14283,19 @@ 5604 PMC-VLX155 Reconfigurable Virtex-5 FPGA with plug-in I/O 5605 PMC-VFX70 Reconfigurable Virtex-5 FPGA with plug-in I/O 5606 PMC-VLX155-1M Reconfigurable Virtex-5 FPGA with plug-in I/O + 5701 PMC-SLX150: Reconfigurable Spartan-6 FPGA with plug-in I/O + 5702 PMC-SLX150-1M: Reconfigurable Spartan-6 FPGA with plug-in I/O 5801 XMC-VLX85 Reconfigurable Virtex-5 FPGA with plug-in I/O 5802 XMC-VLX110 Reconfigurable Virtex-5 FPGA with plug-in I/O + 5803 XMC-VSX95 Reconfigurable Virtex-5 FPGA with plug-in I/O 5804 XMC-VLX155 Reconfigurable Virtex-5 FPGA with plug-in I/O 5807 XMC-SLX150: Reconfigurable Spartan-6 FPGA with plug-in I/O 5808 XMC-SLX150-1M: Reconfigurable Spartan-6 FPGA with plug-in I/O 5901 APCe8650 PCI Express IndustryPack Carrier Card + 6301 XMC Module with user-configurable Virtex-6 FPGA, 240k logic cells, SFP front I/O + 6302 XMC Module with user-configurable Virtex-6 FPGA, 365k logic cells, SFP front I/O + 6303 XMC Module with user-configurable Virtex-6 FPGA, 240k logic cells, no front I/O + 6304 XMC Module with user-configurable Virtex-6 FPGA, 365k logic cells, no front I/O 16da Advantech Co., Ltd. 0011 INES GPIB-PCI 16df PIKA Technologies Inc. @@ -13675,7 +14335,6 @@ 1098 Amilo L 1310G 1735 Aten International Co. Ltd. 1737 Linksys - 0013 WMP54G Wireless Pci Card 0029 WPG54G ver. 4 PCI Card 1032 Gigabit Network Adapter 1737 0015 EG1032 v2 Instant Gigabit Network Adapter @@ -13740,6 +14399,10 @@ 1797 Techwell Inc. 6801 TW6802 multimedia video card 6802 TW6802 multimedia other device + 6810 TW6816 multimedia video controller + 6811 TW6816 multimedia video controller + 6812 TW6816 multimedia video controller + 6813 TW6816 multimedia video controller 1799 Belkin 6001 F5D6001 Wireless PCI Card [Realtek RTL8180] 6020 F5D6020 v3000 Wireless PCMCIA Card [Realtek RTL8180] @@ -13763,7 +14426,6 @@ 8083 GL880 USB 1.1 UHCI controller 8084 GL880 USB 2.0 EHCI controller 17aa Lenovo - 20b1 ThinkPad T61p 17ab Phillips Components 17af Hightech Information System Ltd. 17b3 Hawking Technologies @@ -13779,6 +14441,7 @@ 17cb Airgo Networks Inc 0001 AGN100 802.11 a/b/g True MIMO Wireless Card 1385 5c00 WGM511 Pre-N 802.11g Wireless CardBus Adapter + 1737 0045 WMP54GX v1 802.11g Wireless-G PCI Adapter with SRX 0002 AGN300 802.11 a/b/g True MIMO Wireless Card 1385 6d00 WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter 1737 0054 WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400 @@ -13794,12 +14457,14 @@ 1201 ARC-1200 2-Port PCI-Express to SATA II RAID Controller 1210 ARC-1210 4-Port PCI-Express to SATA RAID Controller 1220 ARC-1220 8-Port PCI-Express to SATA RAID Controller + 1222 ARC-1222 8-Port PCI-Express to SAS/SATA II RAID Controller 1230 ARC-1230 12-Port PCI-Express to SATA RAID Controller 1260 ARC-1260 16-Port PCI-Express to SATA RAID Controller 1280 ARC-1280/1280ML 24-Port PCI-Express to SATA II RAID Controller 17d3 1221 ARC-1221 8-Port PCI-Express to SATA RAID Controller 1300 ARC-1300ix-16 16-Port PCI-Express to SAS Non-RAID Host Adapter 1680 ARC-1680 8 port PCIe/PCI-X to SAS/SATA II RAID Controller + 17d3 1212 ARC-1212 4-Port PCIe to SAS/SATA II RAID Controller 1880 ARC-1880 8/12 port PCIe/PCI-X to SAS/SATA II RAID Controller # nee Neterion Inc., previously S2io Inc. 17d5 Exar Corp. @@ -13843,6 +14508,7 @@ 0011 EN2010 [c.Link] MoCA Network Controller (Coax, MPEG interface) 0021 EN2210 [c.Link] MoCA Network Controller (Coax) 0025 EN2510 [c.Link] MoCA Network Controller (Coax, PCIe interface) + 0027 EN2710 [c.Link] MoCA 2.0 Network Controller (Coax, PCIe interface) 17ee Connect Components Ltd 17f2 Albatron Corp. 17f3 RDC Semiconductor, Inc. @@ -13856,6 +14522,7 @@ 6061 R6061 USB 2.0 Controller 17f7 Topdek Semiconductor Inc. 17f9 Gemtek Technology Co., Ltd +17fc IOGEAR, Inc. 17fe InProComm Inc. 2120 IPN 2120 802.11b 1737 0020 WMP11 v4 802.11b Wireless-B PCI Adapter @@ -13877,8 +14544,9 @@ 1371 0010 Minitar MNW2BPCI Wireless PCI Card 1462 6828 PC11B2 (MS-6828) Wireless 11b PCI Card 0200 RT2500 802.11g PCI [PC54G2] - 0201 RT2500 802.11g + 0201 RT2500 Wireless 802.11bg 1043 130f WL-130g + 1186 3c00 DWL-G650X Wireless 11g CardBus Adapter 1371 001e CWC-854 Wireless-G CardBus Adapter 1371 001f CWM-854 Wireless-G Mini PCI Adapter 1371 0020 CWP-854 Wireless-G PCI Adapter @@ -13886,10 +14554,13 @@ 1458 e931 GN-WIKG 802.11b/g mini-PCI Adapter 1462 6833 Unknown 802.11g mini-PCI Adapter 1462 6835 Wireless 11G CardBus CB54G2 - 1737 0032 WMP54G 2.0 PCI Adapter + 1737 0032 WMP54G v4.0 PCI Adapter 1799 700a F5D7000 v2000/v3000 Wireless G Desktop Card 1799 701a F5D7010 v2000/v3000 Wireless G Notebook Card + 1814 2560 RT2500 Wireless 802.11bg + 182d 9073 WL-115 Wireless Network PCI Adapter 185f 22a0 CN-WF513 Wireless Cardbus Adapter + 18eb 5312 WL531P IEEE 802.11g PCI Card-EU 1948 3c00 C54RC v1 Wireless 11g CardBus Adapter 1948 3c01 C54Ri v1 Wireless 11g PCI Adapter 0300 Wireless Adapter Canyon CN-WF511 @@ -13899,11 +14570,11 @@ 13d1 abe3 miniPCI Pluscom 802.11 a/b/g 1458 e933 GN-WI01GS 1458 e934 GN-WP01GS - 1737 0055 WMP54G ver 4.1 + 1737 0055 WMP54G v4.1 1799 700e F5D7000 v6000 Wireless G Desktop Card 1799 701e F5D7010 v6000 Wireless G Notebook Card 17f9 0012 AWLC3026T 802.11g Wireless CardBus Adapter - 1814 2561 EW-7108PCg + 1814 2561 EW-7108PCg/EW-7128g 0302 RT2561/RT61 rev B 802.11g 1186 3a71 DWA-510 Wireless G Desktop Adapter 1186 3c08 AirPlus G DWL-G630 Wireless Cardbus Adapter (rev.E2) @@ -13918,15 +14589,26 @@ 0601 RT2800 802.11n PCI 1799 801c F5D8011 v3 802.11n N1 Wireless Notebook Card 187e 3412 NWD-310N 802.11n Wireless PCI Adapter - 0681 RT2860 Wireless 802.11n PCIe - 0701 RT2760 Wireless 802.11n 1T/2R Cardbus - 0781 RT2860 + 0681 RT2890 Wireless 802.11n PCIe + 1458 e939 GN-WS30N-RH 802.11bgn Mini PCIe Card + 0701 RT2760 Wireless 802.11n 1T/2R + 1737 0074 WMP110 v2 802.11n RangePlus Wireless PCI Adapter + 0781 RT2790 Wireless 802.11n 1T/2R PCIe 3060 RT3060 Wireless 802.11n 1T/1R 1186 3c04 DWA-525 Wireless N 150 Desktop Adapter (rev.A1) + 3062 RT3062 Wireless 802.11n 2T/2R 3090 RT3090 Wireless 802.11n 1T/1R PCIe 13bd 1057 GN-WS32L-RH Half-size Mini PCIe Card 3091 RT3091 Wireless 802.11n 1T/2R PCIe 3092 RT3092 Wireless 802.11n 2T/2R PCIe + 3592 RT3592 Wireless 802.11abgn 1T/1R PCIe + 5360 RT5360 Wireless 802.11n 1T/1R + 1186 3c05 DWA-525 Wireless N 150 Desktop Adapter (rev.A2) + 20f4 703a TEW-703PI N150 Wireless PCI Adapter + 5390 RT5390 Wireless 802.11n 1T/1R PCIe + 103c 1636 U98Z077.00 Half-size Mini PCIe Card + 539f RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip] + 103c 1637 Pavilion DM1Z-3000 PCIe wireless card e932 RT2560F 802.11 b/g PCI 1815 Devolo AG 1820 InfiniCon Systems Inc. @@ -13948,6 +14630,7 @@ 08a8 MVC101 SDI 08a9 MVC102 DVI+Audio 08b0 MVC200-DC +1846 Alcatel-Lucent 1849 ASRock Incorporation 184a Thales Computers 1100 MAX II cPLD @@ -14015,17 +14698,19 @@ b001 AMSO 1100 iWARP/RDMA Gigabit Ethernet Coprocessor 18bc Info-Tek Corp. 18c3 Micronas Semiconductor Holding AG + 0720 nGene PCI-Express Multimedia Controller + 07ca 032e Hybrid M779 PCI-E # Nee Octigabay System 18c8 Cray Inc 18c9 ARVOO Engineering BV 18ca XGI Technology Inc. (eXtreme Graphics Innovation) 0020 Z7/Z9 (XG20 core) 0021 Z9s/Z9m (XG21 core) -# duh! Device name, not my name :) 0027 Z11/Z11M 0040 Volari V3XT/V5/V8 0047 Volari 8300 (chip: XP10, codename: XG47) -18d2 Sitecom +# should be 182d +18d2 Sitecom Europe BV (Wrong ID) # Sitecom HFC-S based ISDN controller card DC-105v2 3069 DC-105v2 ISDN controller 18d8 Dialogue Technology Corp. @@ -14086,7 +14771,8 @@ 18ee Chenming Mold Ind. Corp. 18f1 Spectrum GmbH 18f4 Napatech A/S - 0051 NT20-X Capture Card + 0031 NT20X Network Adapter + 0051 NT20X Capture Card 0061 NT20E Capture Card 0064 NT20E Inline Card 0071 NT4E Capture Card @@ -14095,6 +14781,13 @@ 0091 NT20X Capture Card [New Rev] 00a1 NT4E-STD Capture Card 00a4 NT4E-STD Inline Card +# 8 x 1 Gbps / 10 Gbps PCIe Optical Bypass Adapter + 00b1 NTBPE Optical Bypass Adapter + 00c5 NT20E2 Network Adapter 2x10Gb + 00d5 NT40E2-4 Network Adapter 4x10Gb + 00e5 NT40E2-1 Network Adapter 1x40Gb +# 4-Port Adapter for 1 GbE In-Line Bypass Applications + 00f5 NT4E2-4T-BP Network Adapter 4x1Gb with Electrical Bypass 18f6 NextIO 1000 [Nexsis] Switch Virtual P2P PCIe Bridge 1050 [Nexsis] Switch Virtual P2P PCI Bridge @@ -14109,7 +14802,6 @@ 000b Fastcom 232/8-PCI-335 Async 8-Port RS-232 Serial PCI Adapter 000f Fastcom FSCC 0010 Fastcom GSCC -# Dual Serocco 0011 Fastcom QSSB 0014 SuperFSCC 0015 SuperFSCC-104 @@ -14167,18 +14859,29 @@ 1924 5201 SFN4112F-R1 1924 5202 SFN4112F-R2 0803 SFC9020 [Solarstorm] + 1924 1201 SFA6902F-R1 SFP+ AOE Adapter 1924 6200 SFN5122F-R0 1924 6201 SFN5122F-R1 1924 6202 SFN5122F-R2 1924 6204 SFN5122F-R4 1924 6205 SFN5122F-R5 1924 6206 SFN5122F-R6 + 1924 6207 SFN5122F-R7 1924 6210 SFN5322F-R0 1924 6211 SFN5322F-R1 + 1924 6217 SFN5322F-R7 + 1924 6227 SFN6122F-R7 + 1924 6237 SFN6322F-R7 + 1924 6501 SFN5802K-R1 + 1924 6511 SFN5814H-R1 + 1924 6521 SFN5812H-R1 + 1924 6562 SFN6832F-R2 SFP+ Mezzanine Adapter 1924 6a05 SFN5112F-R5 1924 6a06 SFN5112F-R6 1924 7206 SFN5162F-R6 + 1924 7207 SFN5162F-R7 1924 7a06 SFN5152F-R6 + 1924 7a07 SFN5152F-R7 0813 SFL9021 [Solarstorm] 1924 6100 SFN5121T-R0 1924 6102 SFN5121T-R2 @@ -14204,6 +14907,7 @@ 1924 0304 SFE4003-A4 1924 0500 SFE4005-A0 c101 EF1-21022T [EtherFabric] +192a BiTMICRO Networks Inc. 192e TransDimension 1931 Option N.V. 000c Qualcomm MSM6275 UMTS chip @@ -14215,6 +14919,7 @@ 0363 AHA363-PCIe 0364 AHA364-PCIe 0367 AHA367-PCIe + 0370 AHA370-PCIe 1942 ClearSpeed Technology plc e511 Advance X620 accelerator card e521 Advance e620 accelerator card @@ -14231,7 +14936,8 @@ 1201 FireTrac 3460bT (fallback firmware) 1202 FireTrac 3460bT 1203 FireTrac 3460bT (fallback firmware) -1954 Curtis, Inc. +# nee Curtis, Inc. +1954 One Stop Systems, Inc. 1957 Freescale Semiconductor Inc 0012 MPC8548E 0013 MPC8548 @@ -14269,6 +14975,12 @@ 0086 MPC8343E 0087 MPC8343 00b4 MPC8315E + 00c2 MPC8379E + 00c3 MPC8379 + 00c4 MPC8378E + 00c5 MPC8378 + 00c6 MPC8377E + 00c7 MPC8377 0100 P1020E 0101 P1020 0102 P1021E @@ -14279,12 +14991,15 @@ 010b P1012 0110 P1022E 0111 P1022 + 1c7f 5200 EB5200 0118 P1013E 0119 P1013 + 0128 P1010 0400 P4080E 0401 P4080 0408 P4040E 0409 P4040 + 580c MPC5121e 7010 MPC8641 PCI Host Bridge 7011 MPC8641D PCI Host Bridge 7018 MPC8610 @@ -14308,19 +15023,22 @@ 1975 DVG64 family 1977 DVG128 family # nee Attansic Technology Corp. -1969 Atheros Communications +1969 Atheros Communications Inc. 1026 AR8121/AR8113/AR8114 Gigabit or Fast Ethernet 1043 8304 P5KPL-CM Motherboard - 1048 L1 Gigabit Ethernet + 1048 Attansic L1 Gigabit Ethernet 1043 8226 P5KPL-VM Motherboard 1062 AR8132 Fast Ethernet 1063 AR8131 Gigabit Ethernet 1458 e000 GA-G31M-ES2L Motherboard - 1066 L2c Gigabit Ethernet - 1067 L1c Gigabit Ethernet + 1066 Attansic L2c Gigabit Ethernet + 1067 Attansic L1c Gigabit Ethernet 1073 AR8151 v1.0 Gigabit Ethernet 1083 AR8151 v2.0 Gigabit Ethernet - 2048 L2 Fast Ethernet + 1090 AR8162 Fast Ethernet + 1091 AR8161 Gigabit Ethernet + 1043 1477 N56VZ + 2048 Attansic L2 Fast Ethernet 2060 AR8152 v1.1 Fast Ethernet 2062 AR8152 v2.0 Fast Ethernet 196a Sensory Networks Inc. @@ -14331,7 +15049,7 @@ 1971 AGEIA Technologies, Inc. 1011 Physics Processing Unit [PhysX] 1043 0001 PhysX P1 -1974 TransferZentrum Mikroelektronik +1974 Eberspaecher Electronics 1976 TRENDnet 1977 Parsec 197b JMicron Technology Corp. @@ -14341,9 +15059,9 @@ 2360 JMB360 AHCI Controller 2361 JMB361 AHCI/IDE 1462 7235 P965 Neo MS-7235 mainboard - 2362 JMB362 AHCI Controller + 2362 JMB362 SATA Controller 1043 8460 P8P67 Deluxe Motherboard - 2363 JMB362/JMB363 Serial ATA Controller + 2363 JMB363 SATA/IDE Controller 1043 81e4 P5B [JMB363] 1458 b000 GA-EP45-DS5 Motherboard 1849 2363 Motherboard (one of many) @@ -14373,12 +15091,15 @@ 8001 RapidFile 198a Nallatech Ltd. 1993 Innominate Security Technologies AG +1999 A-Logics + a900 AM-7209 Video Processor 199a Pulse-LINK, Inc. 199d Xsigo Systems 8209 Virtual NIC Device 890a Virtual HBA Device 199f Auvitek 8501 AU85X1 PCI REV1.1 + 8521 AU8521 TV card # nee ServerEngines Corp. 19a2 Emulex Corporation 0200 BladeEngine 10Gb PCI-E iSCSI adapter @@ -14454,8 +15175,18 @@ 0005 ETP v1.4 000a ETP-104 v1.1 000e DSLP-104 v1.1 +1a32 Quanta Microsystems, Inc 1a3b AzureWave 1112 AR9285 Wireless Network Adapter (PCI-Express) +1a41 Tilera Corp. + 0001 TILE64 processor + 0002 TILEPro processor + 0200 TILE-Gx36 processor +1a4a SLAC National Accelerator Lab PPA-REG + 1000 MCOR Power Supply Controller + 1010 AMC EVR - Stockholm Timing Board + 2000 PGPCard - 4 Lane + 2010 PCI-Express EVR 1a51 Hectronic AB 1a56 Bigfoot Networks, Inc. 1a57 Highly Reliable Systems @@ -14470,11 +15201,12 @@ 1a76 Wavesat 1a77 Lightfleet Corporation 1a78 Virident Systems Inc. - 0031 Virident tachIOn Drive - 1a78 0034 tachIOn PCIe SSD [rev 3] - 1a78 0037 tachIOn PCIe SSD [rev 3D] - 1a78 0038 tachIOn PCIe SSD [rev 4] - 1a78 0039 tachIOn PCIe SSD [rev 4D] + 0031 Virident FlashMAX Drive + 1a78 0034 FlashMAX PCIe SSD [rev 3] + 1a78 0037 FlashMAX PCIe SSD [rev 3D] + 1a78 0038 FlashMAX PCIe SSD [rev 4] + 1a78 0039 FlashMAX PCIe SSD [rev 4D] + 0040 FlashMAX II 1a84 Commex Technologies 0001 Vulcan SP HT6210 10-Gigabit Ethernet (rev 02) 1a88 MEN Mikro Elektronik @@ -14489,13 +15221,21 @@ 1aae Global Velocity, Inc. 1ab6 CalDigit, Inc. 6201 RAID Card +# Parallels VM virtual devices +1ab8 Parallels, Inc. + 4000 Virtual Machine Communication Interface + 4005 Accelerated Virtual Video Adapter + 4006 Memory Ballooning Controller 1ab9 Espia Srl +1acc Point of View B.V 1ad7 Spectracom Corporation 8000 TSync-PCIe Time Code Processor 9100 TPRO-PCI-66U Timecode Reader/Generator 1ade Spin Master Ltd. 1501 Swipetech barcode scanner 1ae0 Google, Inc. +1ae7 First Wise Media GmbH + 0520 HFC-S PCI A [X-TENSIONS XC-520] 1ae8 Silicon Software GmbH 0a40 microEnable IV-BASE x1 0a41 microEnable IV-FULL x1 @@ -14505,9 +15245,17 @@ 1aed Fusion-io 1003 ioDimm3 (v1.2) 1005 ioDimm3 + 1014 03c3 High IOPS SSD PCIe Adapter + 103c 176f 1.28TB MLC PCIe ioDrive Duo + 103c 1770 5.2TB MLC PCIe ioDrive Octal + 103c 178b 160GB SLC PCIe ioDrive + 103c 178c 320GB MLC PCIe ioDrive + 103c 178d 320GB SLC PCIe ioDrive Duo + 103c 178e 640GB MLC PCIe ioDrive Duo 1006 ioXtreme 1007 ioXtreme Pro 1008 ioXtreme-2 + 2001 ioDrive2 1aee Caustic Graphics Inc. # nee Qumranet, Inc. 1af4 Red Hat, Inc @@ -14519,12 +15267,18 @@ 1afa J & W Electronics Co., Ltd. 1b03 Magnum Semiconductor, Inc, 6100 DXT/DXTPro Multiformat Broadcast HD/SD Encoder/Decoder/Transcoder +1b08 MSC Vertriebs GmbH 1b13 Jaton Corp 1b1a K&F Computing Research Co. 0e70 GRAPE 1b21 ASMedia Technology Inc. + 0611 ASM1061 SATA IDE Controller + 0612 ASM1062 Serial ATA Controller 1042 ASM1042 SuperSpeed USB Host Controller + 1080 ASM1083/1085 PCIe to PCI Bridge 1b36 Red Hat, Inc. +1b37 Signal Processing Devices Sweden AB + 0014 ADQ412 1b3a Westar Display Technologies 7589 HRED J2000 - JPEG 2000 Video Codec Device 1b3e Teradata Corp. @@ -14532,22 +15286,52 @@ 1b3e 00a3 BYNET BIC2SX 1b3e 00c3 BYNET BIC2SE 1b40 Schooner Information Technology, Inc. -# Early Proxim devices use 1b47 rather than 14b7. -1b47 PROXIM Inc (Wrong ID) +# also used by some PROXIM (14b7) devices erroneously +1b47 Numascale AS + 0601 NumaChip N601 + 0602 NumaChip N602 1b4b Marvell Technology Group Ltd. + 0640 88SE9128 SATA III 6Gb/s RAID Controller + 9120 88SE9120 SATA 6Gb/s Controller 9123 88SE9123 PCIe SATA 6.0 Gb/s controller 9125 88SE9125 PCIe SATA 6.0 Gb/s controller 9128 88SE9128 PCIe SATA 6 Gb/s RAID controller 9130 88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo 1043 8438 P8P67 Deluxe Motherboard + 9172 88SE9172 SATA 6Gb/s Controller + 917a 88SE9172 SATA III 6Gb/s RAID Controller + 9192 88SE9172 SATA III 6Gb/s RAID Controller 91a0 88SE91A0 SATA 6Gb/s Controller - 91a4 88SE91A4 SATA 6Gb/s Controller + 91a4 88SE9128 IDE Controller + 9230 88SE9230 PCIe SATA 6Gb/s Controller + 9480 88SE9480 SAS/SATA 6Gb/s RAID controller 1b55 NetUP Inc. 2a2c Dual DVB-S2-CI card e2e4 Dual DVB-T/C-CI RF card +# 2xHDMI and 2xHD-SDI inputs + e5f4 MPEG2 and H264 Encoder-Transcoder + f1c4 Dual ASI-RX/TX-CI card +1b6f Etron Technology, Inc. + 7023 EJ168 USB 3.0 Host Controller + 7052 EJ188/EJ198 USB 3.0 Host Controller 1b73 Fresco Logic 1000 FL1000G USB 3.0 Host Controller + 1d5c 1000 Anker USB 3.0 Express Card + 1009 FL1009 USB 3.0 Host Controller +1b74 OpenVox Communication Co. Ltd. + 0115 D115P/D115E Single-port E1/T1 card + d130 D130P/D130E Single-port E1/T1 card (3rd GEN) + d210 D210P/D210E Dual-port E1/T1 card(2nd generation) + d230 D230 Dual-port E1/T1 card (2nd generation) + d410 D410/430 Quad-port E1/T1 card + d430 D410/430 Quad-port E1/T1 card +1b85 OCZ Technology Group, Inc. + 1041 RevoDrive 3 X2 PCI-Express SSD 240 GB (Marvell Controller) +1b96 Western Digital +1b9a XAVi Technologies Corp. 1bad ReFLEX CES +1bb0 SimpliVity Corporation + 0002 OmniCube Accelerator OA-3000 1bb3 Bluecherry 4304 BC-04120A MPEG4 4 port video encoder / decoder 4309 BC-08240A MPEG4 4 port video encoder / decoder @@ -14559,11 +15343,25 @@ 5308 BC-H08240A 8 port H.264 video and audio encoder / decoder 5310 BC-H16480A 16 port H.264 video and audio encoder / decoder 1bb5 Quantenna Communications, Inc. +1bbf Maxeler Technologies Ltd. + 0003 MAX3 + 0004 MAX4 1bf4 VTI Instruments Corporation 1c1c Symphony 0001 82C101 +1c2c Fiberblaze +# Used on V120 VME Crate Controller +1c32 Highland Technology, Inc. +1c3b Accensus, LLC + 0200 Telas2 +1c44 Enmotus Inc + 8000 8000 Storage IO Controller +1c7f Elektrobit Austria GmbH + 5100 EB5100 +1c8a TSF5 Corporation 1d44 DPT a400 PM2x24/PM3224 +1d5c Fantasia Trading LLC 1de1 Tekram Technology Co.,Ltd. 0391 TRM-S1040 2020 DC-390 @@ -14605,12 +15403,14 @@ 0001 Spectrum Analyzer PC Card (SAgE) 1fd4 SUNIX Co., Ltd. 0001 Matrix multiport serial adapter + 1999 Multiport serial controller 2000 Smart Link Ltd. 2800 SmartPCI2800 V.92 PCI Soft DFT 2001 Temporal Research Ltd 2003 Smart Link Ltd. 8800 LM-I56N 2004 Smart Link Ltd. +20f4 TRENDnet 2116 ZyDAS Technology Corp. 21c3 21st Century Computer Corp. # (Probably only the Mobile Phone Division) @@ -14625,6 +15425,8 @@ 29b4 82q35 Express MEI Controller 2a15 3D Vision(???) 3000 Hansol Electronics Inc. +3020 LSI SAS2 9211-8i +3080 LSI SAS2 9200-8e 3142 Post Impression Systems. 3388 Hint Corp 0013 HiNT HC4 PCI to ISDN bridge, Multimedia audio controller @@ -14659,6 +15461,8 @@ 1922 AS-i 3.0 PCI Master 3475 Arastra Inc. 3513 ARCOM Control Systems Ltd +37d9 ITD Firm ltd. + 1138 SCHD-PH-8 Phase detector 3842 eVga.com. Corp. 38ef 4Links 3d3d 3DLabs @@ -14761,7 +15565,7 @@ 4321 Tata Power Strategic Electronics Division 434e CAST Navigation LLC 4444 Internext Compression Inc - 0016 iTVC16 (CX23416) MPEG-2 Encoder + 0016 iTVC16 (CX23416) Video Decoder 0070 0003 WinTV PVR 250 0070 0009 WinTV PVR 150 0070 0801 WinTV PVR 150 @@ -14817,7 +15621,7 @@ 1461 c739 M785 AVerMedia PCI Analog TV (NTSC/PAL/SECAM+FM, Xceive 2028 tuner) 9005 0092 VideOh! AVC-2010 9005 0093 VideOh! AVC-2410 - 0803 iTVC15 MPEG-2 Encoder + 0803 iTVC15 (CX23415) Video Decoder 0070 4000 WinTV PVR-350 0070 4001 WinTV PVR-250 0070 4800 WinTV PVR-350 (V1) @@ -15133,7 +15937,6 @@ 1022 4 photo couple 4 relay Card 1025 16 photo couple 16 relay Card 4000 WatchDog Card -6739 RV 940 [Barts Pro] # nee Qumranet 6900 Red Hat, Inc. 7063 pcHDTV @@ -15171,13 +15974,13 @@ 004b Core Processor Secondary PCI Express Root Port 0050 Core Processor Thermal Management Controller 0069 Core Processor DRAM Controller - 0082 Centrino Advanced-N 6205 + 0082 Centrino Advanced-N 6205 [Taylor Peak] 8086 1301 Centrino Advanced-N 6205 AGN 8086 1306 Centrino Advanced-N 6205 ABG 8086 1307 Centrino Advanced-N 6205 BG 8086 1321 Centrino Advanced-N 6205 AGN 8086 1326 Centrino Advanced-N 6205 ABG - 0083 Centrino Wireless-N 1000 + 0083 Centrino Wireless-N 1000 [Condor Peak] 8086 1205 Centrino Wireless-N 1000 BGN 8086 1206 Centrino Wireless-N 1000 BG 8086 1225 Centrino Wireless-N 1000 BGN @@ -15186,35 +15989,35 @@ 8086 1306 Centrino Wireless-N 1000 BG 8086 1325 Centrino Wireless-N 1000 BGN 8086 1326 Centrino Wireless-N 1000 BG - 0084 Centrino Wireless-N 1000 + 0084 Centrino Wireless-N 1000 [Condor Peak] 8086 1215 Centrino Wireless-N 1000 BGN 8086 1216 Centrino Wireless-N 1000 BG 8086 1315 Centrino Wireless-N 1000 BGN 8086 1316 Centrino Wireless-N 1000 BG - 0085 Centrino Advanced-N 6205 + 0085 Centrino Advanced-N 6205 [Taylor Peak] 8086 1311 Centrino Advanced-N 6205 AGN 8086 1316 Centrino Advanced-N 6205 ABG - 0087 Centrino Advanced-N + WiMAX 6250 + 0087 Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] 8086 1301 Centrino Advanced-N + WiMAX 6250 2x2 AGN 8086 1306 Centrino Advanced-N + WiMAX 6250 2x2 ABG 8086 1321 Centrino Advanced-N + WiMAX 6250 2x2 AGN 8086 1326 Centrino Advanced-N + WiMAX 6250 2x2 ABG - 0089 Centrino Advanced-N + WiMAX 6250 + 0089 Centrino Advanced-N + WiMAX 6250 [Kilmer Peak] 8086 1311 Centrino Advanced-N + WiMAX 6250 2x2 AGN 8086 1316 Centrino Advanced-N + WiMAX 6250 2x2 ABG - 008a Centrino Wireless-N 1030 + 008a Centrino Wireless-N 1030 [Rainbow Peak] 8086 5305 Centrino Wireless-N 1030 BGN 8086 5307 Centrino Wireless-N 1030 BG 8086 5325 Centrino Wireless-N 1030 BGN 8086 5327 Centrino Wireless-N 1030 BG - 008b Centrino Wireless-N 1030 + 008b Centrino Wireless-N 1030 [Rainbow Peak] 8086 5315 Centrino Wireless-N 1030 BGN 8086 5317 Centrino Wireless-N 1030 BG - 0090 Centrino Advanced-N 6230 + 0090 Centrino Advanced-N 6230 [Rainbow Peak] 8086 5211 Centrino Advanced-N 6230 AGN 8086 5215 Centrino Advanced-N 6230 BGN 8086 5216 Centrino Advanced-N 6230 ABG - 0091 Centrino Advanced-N 6230 + 0091 Centrino Advanced-N 6230 [Rainbow Peak] 8086 5201 Centrino Advanced-N 6230 AGN 8086 5205 Centrino Advanced-N 6230 BGN 8086 5206 Centrino Advanced-N 6230 ABG @@ -15226,9 +16029,15 @@ 1028 04aa XPS 8300 1043 844d P8P67 Deluxe Motherboard 0101 Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port + 1028 04b2 Vostro 3350 + 106b 00dc MacBookPro8,2 [Core i7, 15", 2011] 0102 2nd Generation Core Processor Family Integrated Graphics Controller 0104 2nd Generation Core Processor Family DRAM Controller + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 + 106b 00dc MacBookPro8,2 [Core i7, 15", 2011] 0105 Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port + 106b 00dc MacBookPro8,2 [Core i7, 15", 2011] 0106 2nd Generation Core Processor Family Integrated Graphics Controller 0108 Xeon E3-1200 Processor Family DRAM Controller 0109 Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port @@ -15239,20 +16048,30 @@ 010e Xeon E3-1200/2nd Generation Core Processor Family Integrated Graphics Controller 0112 2nd Generation Core Processor Family Integrated Graphics Controller 0116 2nd Generation Core Processor Family Integrated Graphics Controller + 1028 04da Vostro 3750 0122 2nd Generation Core Processor Family Integrated Graphics Controller 0126 2nd Generation Core Processor Family Integrated Graphics Controller - 0150 Ivy Bridge DRAM Controller - 0151 Ivy Bridge PCI Express Root Port - 0152 Ivy Bridge Graphics Controller - 0154 Ivy Bridge DRAM Controller - 0155 Ivy Bridge PCI Express Root Port - 0156 Ivy Bridge Graphics Controller - 0158 Ivy Bridge DRAM Controller - 0159 Ivy Bridge PCI Express Root Port - 015a Ivy Bridge Graphics Controller - 015c Ivy Bridge DRAM Controller - 015d Ivy Bridge PCI Express Root Port - 015e Ivy Bridge Graphics Controller + 1028 04cc Vostro 3350 + 0150 Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller + 0151 Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + 1043 1477 N56VZ + 0152 Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + 0154 3rd Gen Core processor DRAM Controller + 1043 1477 N56VZ + 0155 Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + 0156 3rd Gen Core processor Graphics Controller + 0158 Xeon E3-1200 v2/Ivy Bridge DRAM Controller + 0159 Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + 015a Xeon E3-1200 v2/Ivy Bridge Graphics Controller + 015c Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller + 015d Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port + 015e Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + 0162 Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + 0166 3rd Gen Core processor Graphics Controller + 1043 2103 N56VZ + 016a Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + 0172 Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller + 0176 3rd Gen Core processor Graphics Controller 0309 80303 I/O Processor PCI-to-PCI Bridge 030d 80312 I/O Companion Chip PCI-to-PCI Bridge 0326 6700/6702PXH I/OxAPIC Interrupt Controller A @@ -15276,7 +16095,13 @@ 0372 80333 Segment-B PCI Express-to-PCI Express Bridge 0373 80333 B-Bus IOAPIC 0374 80333 Address Translation Unit - 0436 DH89xxCC Gigabit SGMII Connection + 0402 Haswell Integrated Graphics Controller + 0406 Haswell Integrated Graphics Controller + 040a Haswell Integrated Graphics Controller + 0412 Haswell Integrated Graphics Controller + 0416 Haswell Integrated Graphics Controller + 041a Haswell Integrated Graphics Controller + 0436 DH8900CC Null Device 0438 DH8900CC Series Gigabit Network Connection 043a DH8900CC Series Gigabit Fiber Network Connection 043c DH8900CC Series Gigabit Backplane Network Connection @@ -15353,6 +16178,33 @@ 0886 Centrino Wireless-N + WiMAX 6150 8086 1315 Centrino Wireless-N + WiMAX 6150 BGN 8086 1317 Centrino Wireless-N + WiMAX 6150 BG + 0887 Centrino Wireless-N 2230 + 8086 4062 Centrino Wireless-N 2230 BGN + 8086 4462 Centrino Wireless-N 2230 BGN + 0888 Centrino Wireless-N 2230 + 8086 4262 Centrino Wireless-N 2230 BGN + 088e Centrino Advanced-N 6235 + 8086 4060 Centrino Advanced-N 6235 AGN + 8086 4460 Centrino Advanced-N 6235 AGN + 088f Centrino Advanced-N 6235 + 8086 4260 Centrino Advanced-N 6235 AGN + 0890 Centrino Wireless-N 2200 + 8086 4022 Centrino Wireless-N 2200 BGN + 8086 4422 Centrino Wireless-N 2200 BGN + 8086 4822 Centrino Wireless-N 2200 BGN + 0891 Centrino Wireless-N 2200 + 8086 4222 Centrino Wireless-N 2200 BGN + 0892 Centrino Wireless-N 135 + 8086 0062 Centrino Wireless-N 135 BGN + 8086 0462 Centrino Wireless-N 135 BGN + 0893 Centrino Wireless-N 135 + 8086 0262 Centrino Wireless-N 135 BGN + 0894 Centrino Wireless-N 105 + 8086 0022 Centrino Wireless-N 105 BGN + 8086 0422 Centrino Wireless-N 105 BGN + 8086 0822 Centrino Wireless-N 105 BGN + 0895 Centrino Wireless-N 105 + 8086 0222 Centrino Wireless-N 105 BGN 0896 Centrino Wireless-N 130 8086 5005 Centrino Wireless-N 130 BGN 8086 5007 Centrino Wireless-N 130 BG @@ -15372,30 +16224,260 @@ 0960 80960RP (i960RP) Microprocessor/Bridge 0962 80960RM (i960RM) Bridge 0964 80960RP (i960RP) Microprocessor/Bridge - 0be0 Cedarview Integrated Graphics Controller - 0be1 Cedarview Integrated Graphics Controller - 0be2 Cedarview Integrated Graphics Controller - 0be3 Cedarview Integrated Graphics Controller - 0be4 Cedarview Integrated Graphics Controller - 0be5 Cedarview Integrated Graphics Controller - 0be6 Cedarview Integrated Graphics Controller - 0be7 Cedarview Integrated Graphics Controller - 0be8 Cedarview Integrated Graphics Controller - 0be9 Cedarview Integrated Graphics Controller - 0bea Cedarview Integrated Graphics Controller - 0beb Cedarview Integrated Graphics Controller - 0bec Cedarview Integrated Graphics Controller - 0bed Cedarview Integrated Graphics Controller - 0bee Cedarview Integrated Graphics Controller - 0bef Cedarview Integrated Graphics Controller - 0bf0 Cedarview DRAM Controller - 0bf1 Cedarview DRAM Controller - 0bf2 Cedarview DRAM Controller - 0bf3 Cedarview DRAM Controller - 0bf4 Cedarview DRAM Controller - 0bf5 Cedarview DRAM Controller - 0bf6 Cedarview DRAM Controller - 0bf7 Cedarview DRAM Controller + 0a04 Haswell-ULT DRAM Controller + 0a06 Haswell-ULT Integrated Graphics Controller + 0a16 Haswell-ULT Integrated Graphics Controller + 0a22 Haswell-ULT Integrated Graphics Controller + 0a26 Haswell-ULT Integrated Graphics Controller + 0a2a Haswell-ULT Integrated Graphics Controller + 0be0 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0be1 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0be2 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0be3 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0be4 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0be5 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0be6 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0be7 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0be8 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0be9 Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0bea Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0beb Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0bec Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0bed Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0bee Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0bef Atom Processor D2xxx/N2xxx Integrated Graphics Controller + 0bf0 Atom Processor D2xxx/N2xxx DRAM Controller + 0bf1 Atom Processor D2xxx/N2xxx DRAM Controller + 0bf2 Atom Processor D2xxx/N2xxx DRAM Controller + 0bf3 Atom Processor D2xxx/N2xxx DRAM Controller + 0bf4 Atom Processor D2xxx/N2xxx DRAM Controller + 0bf5 Atom Processor D2xxx/N2xxx DRAM Controller + 0bf6 Atom Processor D2xxx/N2xxx DRAM Controller + 0bf7 Atom Processor D2xxx/N2xxx DRAM Controller + 0c00 Haswell DRAM Controller + 0c01 Haswell PCI Express x16 Controller + 0c04 Haswell DRAM Controller + 0c05 Haswell PCI Express x8 Controller + 0c08 Haswell DRAM Controller + 0c09 Haswell PCI Express x4 Controller + 0c0c Haswell HD Audio Controller + 0c46 Centerton PCI Express Root Port 1 + 0c47 Centerton PCI Express Root Port 2 + 0c48 Centerton PCI Express Root Port 3 + 0c49 Centerton PCI Express Root Port 4 + 0c4e Centerton NTB Primary + 0c54 Centerton Internal Management + 0c59 Centerton SMBus 2.0 Controller 0 + 0c5a Centerton SMBus 2.0 Controller 1 + 0c5f Centerton UART + 0c60 Centerton Integrated Legacy Bus + 0c70 Centerton Internal Fabric + 0c71 Centerton Internal Fabric + 0c72 Centerton Internal Fabric + 0c73 Centerton Internal Fabric + 0c74 Centerton Internal Fabric + 0c75 Centerton Internal Fabric + 0c76 Centerton Internal Fabric + 0c77 Centerton Internal Fabric + 0c78 Centerton Internal Fabric + 0c79 Centerton Internal Fabric + 0c7a Centerton Internal Fabric + 0c7b Centerton Internal Fabric + 0c7c Centerton Internal Fabric + 0c7d Centerton Internal Fabric + 0c7e Centerton Internal Fabric + 0c7f Centerton Internal Fabric + 0e00 Ivytown DMI2 + 0e01 Ivytown PCI Express Root Port in DMI2 Mode + 0e04 Ivytown PCI Express Root Port 2a + 0e05 Ivytown PCI Express Root Port 2b + 0e06 Ivytown PCI Express Root Port 2c + 0e07 Ivytown PCI Express Root Port 2d + 0e08 Ivytown PCI Express Root Port 3a + 0e09 Ivytown PCI Express Root Port 3b + 0e0a Ivytown PCI Express Root Port 3c + 0e0b Ivytown PCI Express Root Port 3d + 0e1c Ivytown Debug and Error Injection Related Registers + 0e1d Ivytown R2PCIe + 0e1e Ivytown Semaphore and Scratchpad Configuration Registers + 0e1f Ivytown Semaphore and Scratchpad Configuration Registers + 0e20 Ivytown Crystal Beach DMA Channel 0 + 0e21 Ivytown Crystal Beach DMA Channel 1 + 0e22 Ivytown Crystal Beach DMA Channel 2 + 0e23 Ivytown Crystal Beach DMA Channel 3 + 0e24 Ivytown Crystal Beach DMA Channel 4 + 0e25 Ivytown Crystal Beach DMA Channel 5 + 0e26 Ivytown Crystal Beach DMA Channel 6 + 0e27 Ivytown Crystal Beach DMA Channel 7 + 0e28 Ivytown VTd/Memory Map/Misc + 0e29 Ivytown Memory Hotplug + 0e2a Ivytown IIO RAS + 0e2c Ivytown IOAPIC + 0e2e Ivytown CBDMA + 0e2f Ivytown CBDMA + 0e30 Ivytown Home Agent 0 + 0e32 Ivytown QPI Link 0 + 0e33 Ivytown QPI Link 1 + 0e34 Ivytown PCI Express Ring Performance Monitoring + 0e36 Ivytown QPI Ring Performance Ring Monitoring + 0e37 Ivytown QPI Ring Performance Ring Monitoring + 0e38 Ivytown Home Agent 1 + 0e3a Ivytown QPI Link 2 + 0e3e Ivytown QPI Ring Performance Ring Monitoring + 0e3f Ivytown QPI Ring Performance Ring Monitoring + 0e40 Ivytown QPI Link 2 + 0e41 Ivytown QPI Ring Registers + 0e43 Ivytown QPI Link Reut 2 + 0e44 Ivytown QPI Link Reut 2 + 0e60 Ivytown Home Agent 1 + 0e68 Ivytown Integrated Memory Controller 1 Target Address/Thermal Registers + 0e6a Ivytown Integrated Memory Controller 1 Channel Target Address Decoder Registers + 0e6b Ivytown Integrated Memory Controller 1 Channel Target Address Decoder Registers + 0e6c Ivytown Integrated Memory Controller 1 Channel Target Address Decoder Registers + 0e6d Ivytown Integrated Memory Controller 1 Channel Target Address Decoder Registers + 0e71 Ivytown Integrated Memory Controller 0 RAS Registers + 0e79 Ivytown Integrated Memory Controller 1 RAS Registers + 0e80 Ivytown QPI Link 0 + 0e81 Ivytown QPI Ring Registers + 0e83 Ivytown QPI Link Reut 0 + 0e84 Ivytown QPI Link Reut 0 + 0e90 Ivytown QPI Link 1 + 0e93 Ivytown QPI Link 1 + 0e94 Ivytown QPI Link Reut 1 + 0ea0 Ivytown Home Agent 0 + 0ea8 Ivytown Integrated Memory Controller 0 Target Address/Thermal Registers + 0eaa Ivytown Integrated Memory Controller 0 Channel Target Address Decoder Registers + 0eab Ivytown Integrated Memory Controller 0 Channel Target Address Decoder Registers + 0eac Ivytown Integrated Memory Controller 0 Channel Target Address Decoder Registers + 0ead Ivytown Integrated Memory Controller 0 Channel Target Address Decoder Registers + 0eb0 Ivytown Integrated Memory Controller 1 Channel 0-3 Thermal Control 0 + 0eb1 Ivytown Integrated Memory Controller 1 Channel 0-3 Thermal Control 1 + 0eb2 Ivytown Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0 + 0eb3 Ivytown Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1 + 0eb4 Ivytown Integrated Memory Controller 1 Channel 0-3 Thermal Control 2 + 0eb5 Ivytown Integrated Memory Controller 1 Channel 0-3 Thermal Control 3 + 0eb7 Ivytown Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2 + 0ec0 Ivytown Power Control Unit 0 + 0ec1 Ivytown Power Control Unit 1 + 0ec2 Ivytown Power Control Unit 2 + 0ec3 Ivytown Power Control Unit 3 + 0ec4 Ivytown Power Control Unit 4 + 0ec8 Ivytown System Address Decoder + 0ec9 Ivytown Broadcast Registers + 0eca Ivytown Broadcast Registers + 0ed8 Ivytown DDRIO + 0ed9 Ivytown DDRIO + 0edc Ivytown DDRIO + 0edd Ivytown DDRIO + 0ede Ivytown DDRIO + 0edf Ivytown DDRIO + 0ee0 Ivytown Unicast Registers + 0ee1 Ivytown Unicast Registers + 0ee2 Ivytown Unicast Registers + 0ee3 Ivytown Unicast Registers + 0ee4 Ivytown Unicast Registers + 0ee5 Ivytown Unicast Registers + 0ee6 Ivytown Unicast Registers + 0ee7 Ivytown Unicast Registers + 0ee8 Ivytown Unicast Registers + 0ee9 Ivytown Unicast Registers + 0eea Ivytown Unicast Registers + 0eeb Ivytown Unicast Registers + 0eec Ivytown Unicast Registers + 0eed Ivytown Unicast Registers + 0eee Ivytown Unicast Registers + 0ef0 Ivytown Integrated Memory Controller 0 Channel 0-3 Thermal Control 0 + 0ef1 Ivytown Integrated Memory Controller 0 Channel 0-3 Thermal Control 1 + 0ef2 Ivytown Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0 + 0ef3 Ivytown Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2 + 0ef4 Ivytown Integrated Memory Controller 0 Channel 0-3 Thermal Control 2 + 0ef5 Ivytown Integrated Memory Controller 0 Channel 0-3 Thermal Control 3 + 0ef7 Ivytown Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3 + 0ef8 Ivytown DDRIO + 0ef9 Ivytown DDRIO + 0efa Ivytown DDRIO + 0efb Ivytown DDRIO + 0efc Ivytown DDRIO + 0efd Ivytown DDRIO + 0f00 ValleyView SSA-CUnit + 0f01 ValleyView SSA-CUnit + 0f02 ValleyView SSA-CUnit + 0f03 ValleyView SSA-CUnit + 0f04 ValleyView High Definition Audio Controller + 0f05 ValleyView High Definition Audio Controller + 0f06 ValleyView LPIO1 DMA Controller + 0f07 ValleyView LPIO1 DMA Controller + 0f08 ValleyView LPIO1 PWM Controller + 0f09 ValleyView LPIO1 PWM Controller + 0f0a ValleyView LPIO1 HSUART Controller #1 + 0f0b ValleyView LPIO1 HSUART Controller #1 + 0f0c ValleyView LPIO1 HSUART Controller #2 + 0f0d ValleyView LPIO1 HSUART Controller #2 + 0f0e ValleyView LPIO1 SPI Controller + 0f0f ValleyView LPIO1 SPI Controller + 0f10 ValleyView LPIO1 Controller + 0f11 ValleyView LPIO1 Controller + 0f12 ValleyView SMBus Controller + 0f13 ValleyView SMBus Controller + 0f14 ValleyView SDIO Controller + 0f15 ValleyView SDIO Controller + 0f16 ValleyView SDIO Controller + 0f17 ValleyView SDIO Controller + 0f18 ValleyView SEC + 0f19 ValleyView SEC + 0f1a ValleyView SEC + 0f1b ValleyView SEC + 0f1c ValleyView Power Control Unit + 0f1d ValleyView Power Control Unit + 0f1e ValleyView Power Control Unit + 0f1f ValleyView Power Control Unit + 0f20 ValleyView 4-Port SATA Storage Controller + 0f21 ValleyView 4-Port SATA Storage Controller + 0f22 ValleyView 6-Port SATA AHCI Controller + 0f23 ValleyView 6-Port SATA AHCI Controller + 0f24 ValleyView SATA RAID Storage Controller + 0f25 ValleyView SATA RAID Storage Controller + 0f26 ValleyView 2-Port SATA Storage Controller + 0f27 ValleyView 2-Port SATA Storage Controller + 0f28 ValleyView LPE Audio Controller + 0f29 ValleyView LPE Audio Controller + 0f2a ValleyView LPE Audio Controller + 0f2b ValleyView LPE Audio Controller + 0f2e ValleyView SATA RAID Storage Controller + 0f2f ValleyView SATA RAID Storage Controller + 0f30 ValleyView Gen7 + 0f31 ValleyView Gen7 + 0f32 ValleyView Gen7 + 0f33 ValleyView Gen7 + 0f34 ValleyView USB Enhanced Host Controller + 0f35 ValleyView USB xHCI Host Controller + 0f36 ValleyView USB xHCI Host Controller + 0f37 ValleyView OTG + 0f38 ValleyView ISP + 0f39 ValleyView ISP + 0f3a ValleyView ISP + 0f3b ValleyView ISP + 0f3c ValleyView ISP + 0f3d ValleyView ISP + 0f3e ValleyView ISP + 0f3f ValleyView ISP + 0f40 ValleyView LPIO2 DMA Controller + 0f41 ValleyView LPIO2 I2C Controller #1 + 0f42 ValleyView LPIO2 I2C Controller #2 + 0f43 ValleyView LPIO2 I2C Controller #3 + 0f44 ValleyView LPIO2 I2C Controller #4 + 0f45 ValleyView LPIO2 I2C Controller #5 + 0f46 ValleyView LPIO2 I2C Controller #6 + 0f47 ValleyView LPIO2 I2C Controller #7 + 0f48 ValleyView PCI Express Root Port + 0f49 ValleyView PCI Express Root Port + 0f4a ValleyView PCI Express Root Port + 0f4b ValleyView PCI Express Root Port + 0f4c ValleyView PCI Express Root Port + 0f4d ValleyView PCI Express Root Port + 0f4e ValleyView PCI Express Root Port + 0f4f ValleyView PCI Express Root Port + 0f50 ValleyView MIPI-HSI Controller 1000 82542 Gigabit Ethernet Controller (Fiber) 0e11 b0df NC6132 Gigabit Ethernet Adapter (1000-SX) 0e11 b0e0 NC6133 Gigabit Ethernet Adapter (1000-LX) @@ -15701,8 +16783,8 @@ 17aa 2001 ThinkPad T60 17aa 207e ThinkPad X60s 8086 109a PRO/1000 PL Network Connection - 8086 309c DeskTop Board D945GTP - 8086 30a5 DeskTop Board D975XBX + 8086 309c Desktop Board D945GTP + 8086 30a5 Desktop Board D975XBX 109b 82546GB PRO/1000 GF Quad Port Server Adapter 109e 82597EX 10GbE Ethernet Controller 8086 a01f PRO/10GbE CX4 Server Adapter @@ -15766,6 +16848,7 @@ 103c 323f NC362i Integrated Dual port Gigabit Server Adapter 10a9 8028 UV-BaseIO dual-port GbE 13a3 0037 DS4100 Secure Multi-Gigabit Server Adapter with Compression + 15d9 a811 H8DGU 8086 a01c Gigabit ET Dual Port Server Adapter 8086 a03c Gigabit ET Dual Port Server Adapter 8086 a04c Gigabit ET Dual Port Server Adapter @@ -15780,6 +16863,8 @@ 8086 0001 Gigabit CT2 Desktop Adapter 8086 a01f Gigabit CT Desktop Adapter e4bf 50c1 PC1-GROOVE + e4bf 50c2 PC2-LIMBO + 10d4 Matrox Concord GE (customized Intel 82574) 10d5 82571PT Gigabit PT Quad Port Server ExpressModule 10d6 82575GB Gigabit Network Connection 8086 10d6 Gigabit VT Quad Port Server Adapter @@ -15808,6 +16893,7 @@ 8086 a02b Gigabit ET Quad Port Server Adapter 8086 a02c Gigabit ET Quad Port Server Adapter 10ea 82577LM Gigabit Network Connection + 1028 040a Latitude E6410 1028 040b Latitude E6510 e4bf 50c1 PC1-GROOVE 10eb 82577LC Gigabit Network Connection @@ -15816,6 +16902,7 @@ 8086 a11f 10-Gigabit CX4 Dual Port Server Adapter 10ed 82599 Ethernet Controller Virtual Function 10ef 82578DM Gigabit Network Connection + 1028 02da OptiPlex 980 10f0 82578DC Gigabit Network Connection 10f1 82598EB 10-Gigabit AF Dual Port Network Connection 8086 a20f 10-Gigabit AF DA Dual Port Server Adapter @@ -15830,9 +16917,15 @@ 8086 000d Ethernet Mezzanine Adapter X520-KX4-2 10f8 82599EB 10 Gigabit Dual Port Backplane Connection 1028 1f63 10GbE 2P X520k bNDC + 103c 17d2 Ethernet 10Gb 2-port 560M Adapter + 103c 18d0 Ethernet 10Gb 2-port 560FLB Adapter 8086 000c Ethernet X520 10GbE Dual Port KX4-KR Mezz 10f9 82599EB 10 Gigabit CX4 Dual Port Network Connection 10fb 82599EB 10-Gigabit SFI/SFP+ Network Connection + 1028 1f72 Ethernet 10G 4P X520/I350 rNDC + 103c 17d0 Ethernet 10Gb 2-port 560FLR-SFP+ Adapter + 103c 17d2 Ethernet 10Gb 2-port 560M Adapter + 103c 17d3 Ethernet 10Gb 2-port 560SFP+ Adapter 108e 7b11 Ethernet Server Adapter X520-2 1734 11a9 10 Gigabit Dual Port Network Connection 8086 0002 Ethernet Server Adapter X520-DA2 @@ -15841,6 +16934,7 @@ 8086 000a Ethernet Server Adapter X520-1 8086 000c Ethernet Server Adapter X520-2 8086 7a11 Ethernet Server Adapter X520-2 + 8086 7a12 Ethernet Server Adapter X520-2 10fc 82599EB 10-Gigabit XAUI/BX4 Network Connection 10fe 82552 10/100 Network Connection 1107 PRO/1000 MF Server Adapter (LX) @@ -16085,6 +17179,7 @@ 1511 82580 Gigabit SFP Connection 1514 82599EB 10 Gigabit KX4 Network Connection 8086 000b Ethernet X520 10GbE Dual Port KX4 Mezz + 1515 X540 Ethernet Controller Virtual Function 1516 82580 Gigabit Network Connection 8086 12b1 Ethernet Server Adapter I340-T2 8086 12b2 Ethernet Server Adapter I340-T2 @@ -16093,9 +17188,15 @@ 1518 82576NS SerDes Gigabit Network Connection 151c 82599EB 10 Gigabit TN Network Connection 108e 7b13 Dual 10GBASE-T LP + 1520 I350 Ethernet Controller Virtual Function 1521 I350 Gigabit Network Connection 1028 1f60 Intel GbE 4P I350crNDC 1028 1f62 Intel GbE 2P I350crNDC + 103c 337f Ethernet 1Gb 2-port 361i Adapter + 103c 3380 Ethernet 1Gb 4-port 366i Adapter + 103c 339e Ethernet 1Gb 2-port 361T Adapter [Wharton Stony Lake] + 108e 7b16 Quad Port GbE PCIe 2.0 ExpressModule, UTP + 108e 7b18 Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP 10a9 802a UV2-BaseIO dual-port GbE 8086 0001 Ethernet Server Adapter I350-T4 8086 0002 Ethernet Server Adapter I350-T2 @@ -16104,12 +17205,17 @@ 8086 5001 Ethernet Server Adapter I350-T4 8086 5002 Ethernet Server Adapter I350-T2 1522 I350 Gigabit Fiber Network Connection + 108e 7b17 Quad Port GbE PCIe 2.0 ExpressModule, MMF + 108e 7b19 Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF 8086 0002 Ethernet Server Adapter I350-T2 8086 0003 Ethernet Server Adapter I350-F4 8086 0004 Ethernet Server Adapter I350-F2 8086 00a3 Ethernet Server Adapter I350-F4 8086 00a4 Ethernet Server Adapter I350-F2 1523 I350 Gigabit Backplane Connection + 103c 1784 Ethernet 1Gb 2-port 361FLB Adapter [Badger Flat] + 103c 18d1 Ethernet 1Gb 2-port 361FLB Adapter + 103c 339f Ethernet 1Gb 4-port 366M Adapter [Vaca Key] 8086 1f52 1GbE 4P I350 Mezz 1524 I350 Gigabit Connection 1525 82567V-4 Gigabit Network Connection @@ -16119,16 +17225,39 @@ 1527 82580 Gigabit Fiber Network Connection 8086 0001 Ethernet Server Adapter I340-F4 8086 0002 Ethernet Server Adapter I340-F4 - 1528 Ethernet Controller 10 Gigabit X540-AT2 - 8086 0001 Ethernet Server Adapter X540-T2 - 8086 0002 Ethernet Server Adapter X540-T1 - 8086 001a Ethernet Server Adapter X540-T2 - 8086 00a2 Ethernet Server Adapter X540-T1 - 8086 5003 Ethernet Server Adapter X540-T2 + 1528 Ethernet Controller 10-Gigabit X540-AT2 + 103c 192d 561FLR-T 2-port 10Gb Ethernet Adapter + 108e 7b14 Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T + 108e 7b15 Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T + 1137 00bf Ethernet Converged Network Adapter X540-T2 + 8086 0001 Ethernet Converged Network Adapter X540-T2 + 8086 0002 Ethernet Converged Network Adapter X540-T1 + 8086 001a Ethernet Converged Network Adapter X540-T2 + 8086 00a2 Ethernet Converged Network Adapter X540-T1 + 8086 1f61 Ethernet 10G 4P X540/I350 rNDC + 8086 5003 Ethernet 10G 2P X540-t Adapter 1529 82599 10 Gigabit Dual Port Backplane Connection with FCoE 152a 82599 10 Gigabit Dual port Network Connection with FCoE + 1533 I210 Gigabit Network Connection + 103c 0003 Ethernet Server Adapter I210-T1 + 8086 0001 Ethernet Server Adapter I210-T1 + 8086 0002 Ethernet Server Adapter I210-T1 + 1534 I210 Gigabit Network Connection + 1536 I210 Gigabit Fiber Network Connection + 1537 I210 Gigabit Backplane Connection + 1538 I210 Gigabit Network Connection + 1539 I211 Gigabit Network Connection + 153a Ethernet Connection I217-LM + 153b Ethernet Connection I217-V + 1547 DSL3510 Thunderbolt Port [Cactus Ridge] + 1549 DSL3510 Thunderbolt Controller [Cactus Ridge] + 154a Ethernet Server Adapter X520-4 + 8086 011a Ethernet Converged Network Adapter X520-4 + 8086 011b Ethernet Converged Network Adapter X520-4 + 8086 011c Ethernet Converged Network Adapter X520-4 154d 82599EB 10-Gigabit SFP+ Network Connection 8086 7b11 10GbE 2P X520 Adapter + 1560 Ethernet Controller X540-AT1 1960 80960RP (i960RP) Microprocessor 101e 0431 MegaRAID 431 RAID Controller 101e 0438 MegaRAID 438 Ultra2 LVD RAID Controller @@ -16174,41 +17303,71 @@ 8086 a11f PRO/10GbE LR Server Adapter 1c00 6 Series/C200 Series Chipset Family 4 port SATA IDE Controller 1c01 6 Series/C200 Series Chipset Family 4 port SATA IDE Controller - 1c02 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller + 1c02 6 Series/C200 Series Chipset Family SATA AHCI Controller 1028 04aa XPS 8300 1043 844d P8P67 Deluxe Motherboard 1c03 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c04 6 Series/C200 Series Chipset Family SATA RAID Controller 1c05 6 Series/C200 Series Chipset Family SATA RAID Controller 1c08 6 Series/C200 Series Chipset Family 2 port SATA IDE Controller 1c09 6 Series/C200 Series Chipset Family 2 port SATA IDE Controller 1c10 6 Series/C200 Series Chipset Family PCI Express Root Port 1 + 1028 04da Vostro 3750 + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c12 6 Series/C200 Series Chipset Family PCI Express Root Port 2 + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c14 6 Series/C200 Series Chipset Family PCI Express Root Port 3 + 1028 04da Vostro 3750 + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c16 6 Series/C200 Series Chipset Family PCI Express Root Port 4 1c18 6 Series/C200 Series Chipset Family PCI Express Root Port 5 + 1028 04da Vostro 3750 1c1a 6 Series/C200 Series Chipset Family PCI Express Root Port 6 + 1028 04da Vostro 3750 1c1c 6 Series/C200 Series Chipset Family PCI Express Root Port 7 1c1e 6 Series/C200 Series Chipset Family PCI Express Root Port 8 1c20 6 Series/C200 Series Chipset Family High Definition Audio Controller + 1028 0490 Alienware M17x R3 1028 04aa XPS 8300 + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 1043 8418 P8P67 Deluxe Motherboard + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c22 6 Series/C200 Series Chipset Family SMBus Controller 1028 04aa XPS 8300 + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 1043 844d P8P67 Deluxe Motherboard + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c24 6 Series/C200 Series Chipset Family Thermal Management Controller 1c25 6 Series/C200 Series Chipset Family DMI to PCI Bridge 1c26 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 1028 04aa XPS 8300 + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 1043 844d P8P67 Deluxe Motherboard + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] + 1c27 6 Series/C200 Series Chipset Family USB Universal Host Controller #1 + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] + 1c2c 6 Series/C200 Series Chipset Family USB Universal Host Controller #5 + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c2d 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 1028 04aa XPS 8300 + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 1043 844d P8P67 Deluxe Motherboard + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c33 6 Series/C200 Series Chipset Family LAN Controller 1c35 6 Series/C200 Series Chipset Family VECI Controller 1c3a 6 Series/C200 Series Chipset Family MEI Controller #1 1028 04aa XPS 8300 + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 1043 844d P8P67 Deluxe Motherboard + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c3b 6 Series/C200 Series Chipset Family MEI Controller #2 1c3c 6 Series/C200 Series Chipset Family IDE-r Controller 1c3d 6 Series/C200 Series Chipset Family KT Controller @@ -16223,9 +17382,12 @@ 1c47 UM67 Express Chipset Family LPC Controller 1c48 6 Series/C200 Series Chipset Family LPC Controller 1c49 HM65 Express Chipset Family LPC Controller + 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c4a H67 Express Chipset Family LPC Controller 1028 04aa XPS 8300 1c4b HM67 Express Chipset Family LPC Controller + 1028 04b2 Vostro 3350 + 1028 04da Vostro 3750 1c4c Q65 Express Chipset Family LPC Controller 1c4d QS67 Express Chipset Family LPC Controller 1c4e Q67 Express Chipset Family LPC Controller @@ -16246,124 +17408,143 @@ 1c5d 6 Series/C200 Series Chipset Family LPC Controller 1c5e 6 Series/C200 Series Chipset Family LPC Controller 1c5f 6 Series/C200 Series Chipset Family LPC Controller - 1d00 Patsburg 4-Port SATA IDE Controller - 1d02 Patsburg 6-Port SATA AHCI Controller - 1d04 Patsburg SATA RAID Controller - 1d06 Patsburg SATA Premium RAID Controller - 1d08 Patsburg 2-Port SATA IDE Controller - 1d10 Patsburg PCI Express Root Port 1 - 1d11 Patsburg PCI Express Root Port 1 - 1d12 Patsburg PCI Express Root Port 2 - 1d13 Patsburg PCI Express Root Port 2 - 1d14 Patsburg PCI Express Root Port 3 - 1d15 Patsburg PCI Express Root Port 3 - 1d16 Patsburg PCI Express Root Port 4 - 1d17 Patsburg PCI Express Root Port 4 - 1d18 Patsburg PCI Express Root Port 5 - 1d19 Patsburg PCI Express Root Port 5 - 1d1a Patsburg PCI Express Root Port 6 - 1d1b Patsburg PCI Express Root Port 6 - 1d1c Patsburg PCI Express Root Port 7 - 1d1d Patsburg PCI Express Root Port 7 - 1d1e Patsburg PCI Express Root Port 8 - 1d1f Patsburg PCI Express Root Port 8 - 1d20 Patsburg High Definition Audio Controller - 1d22 Patsburg SMBus Host Controller - 1d24 Patsburg Thermal Management Controller - 1d25 Patsburg DMI to PCI Bridge - 1d26 Patsburg USB2 Enhanced Host Controller #1 - 1d2d Patsburg USB2 Enhanced Host Controller #2 - 1d33 Patsburg LAN Controller - 1d35 Patsburg VECI Controller - 1d3a Patsburg MEI Controller #1 - 1d3b Patsburg MEI Controller #2 - 1d3c Patsburg IDE-r Controller - 1d3d Patsburg KT Controller - 1d3e Patsburg PCI Express Virtual Root Port - 1d3f Patsburg PCI Express Virtual Switch Port - 1d40 Patsburg LPC Controller - 1d41 Patsburg LPC Controller - 1d50 Patsburg Dual 4-Port SATA/SAS Storage Control Unit - 1d54 Patsburg Dual 4-Port SATA/SAS Storage Control Unit - 1d55 Patsburg 4-Port SATA/SAS Storage Control Unit - 1d58 Patsburg Dual 4-Port SATA/SAS Storage Control Unit - 1d59 Patsburg 4-Port SATA/SAS Storage Control Unit - 1d5b Patsburg 4-Port SATA Storage Control Unit - 1d60 Patsburg Dual 4-Port SATA/SAS Storage Control Unit - 1d61 Patsburg SAS Storage Control Unit 1 - 1d64 Patsburg Dual 4-Port SATA/SAS Storage Control Unit - 1d65 Patsburg 4-Port SATA/SAS Storage Control Unit - 1d68 Patsburg Dual 4-Port SATA/SAS Storage Control Unit - 1d69 Patsburg 4-Port SATA/SAS Storage Control Unit - 1d6b Patsburg 4-Port SATA Storage Control Unit - 1d70 Patsburg SMBus Controller 0 - 1d71 Patsburg SMBus Controller 1 - 1d72 Patsburg SMBus Controller 2 - 1d73 Patsburg Integrated NVSRAM Controller - 1d74 Patsburg PCI Express Upstream Port - 1d76 Patsburg Multi-Function Glue - 1e00 Panther Point 4 port SATA IDE Controller - 1e01 Panther Point 4 port SATA IDE Controller - 1e02 Panther Point 6 port SATA AHCI Controller - 1e03 Panther Point 6 port SATA AHCI Controller - 1e04 Panther Point SATA RAID Controller - 1e05 Panther Point SATA RAID Controller - 1e06 Panther Point SATA Premium RAID Controller - 1e07 Panther Point SATA Premium RAID Controller - 1e08 Panther Point 2 port SATA IDE Controller - 1e09 Panther Point 2 port SATA IDE Controller - 1e10 Panther Point PCI Express Root Port 1 - 1e12 Panther Point PCI Express Root Port 2 - 1e14 Panther Point PCI Express Root Port 3 - 1e16 Panther Point PCI Express Root Port 4 - 1e18 Panther Point PCI Express Root Port 5 - 1e1a Panther Point PCI Express Root Port 6 - 1e1c Panther Point PCI Express Root Port 7 - 1e1e Panther Point PCI Express Root Port 8 - 1e20 Panther Point High Definition Audio Controller - 1e22 Panther Point SMBus Controller - 1e24 Panther Point Thermal Management Controller - 1e25 Panther Point DMI to PCI Bridge - 1e26 Panther Point USB Enhanced Host Controller #1 - 1e2d Panther Point USB Enhanced Host Controller #2 - 1e31 Panther Point USB xHCI Host Controller - 1e33 Panther Point LAN Controller - 1e3a Panther Point MEI Controller #1 - 1e3b Panther Point MEI Controller #2 - 1e3c Panther Point IDE-r Controller - 1e3d Panther Point KT Controller - 1e40 Panther Point LPC Controller - 1e41 Panther Point LPC Controller - 1e42 Panther Point LPC Controller - 1e43 Panther Point LPC Controller - 1e44 Panther Point LPC Controller - 1e45 Panther Point LPC Controller - 1e46 Panther Point LPC Controller - 1e47 Panther Point LPC Controller - 1e48 Panther Point LPC Controller - 1e49 Panther Point LPC Controller - 1e4a Panther Point LPC Controller - 1e4b Panther Point LPC Controller - 1e4c Panther Point LPC Controller - 1e4d Panther Point LPC Controller - 1e4e Panther Point LPC Controller - 1e4f Panther Point LPC Controller - 1e50 Panther Point LPC Controller - 1e51 Panther Point LPC Controller - 1e52 Panther Point LPC Controller - 1e53 Panther Point LPC Controller - 1e54 Panther Point LPC Controller - 1e55 Panther Point LPC Controller - 1e56 Panther Point LPC Controller - 1e57 Panther Point LPC Controller - 1e58 Panther Point LPC Controller - 1e59 Panther Point LPC Controller - 1e5a Panther Point LPC Controller - 1e5b Panther Point LPC Controller - 1e5c Panther Point LPC Controller - 1e5d Panther Point LPC Controller - 1e5e Panther Point LPC Controller - 1e5f Panther Point LPC Controller + 1d00 C600/X79 series chipset 4-Port SATA IDE Controller + 1d02 C600/X79 series chipset 6-Port SATA AHCI Controller + 1d04 C600/X79 series chipset SATA RAID Controller + 1d06 C600/X79 series chipset SATA Premium RAID Controller + 1d08 C600/X79 series chipset 2-Port SATA IDE Controller + 1d10 C600/X79 series chipset PCI Express Root Port 1 + 1d11 C600/X79 series chipset PCI Express Root Port 1 + 1d12 C600/X79 series chipset PCI Express Root Port 2 + 1d13 C600/X79 series chipset PCI Express Root Port 2 + 1d14 C600/X79 series chipset PCI Express Root Port 3 + 1d15 C600/X79 series chipset PCI Express Root Port 3 + 1d16 C600/X79 series chipset PCI Express Root Port 4 + 1d17 C600/X79 series chipset PCI Express Root Port 4 + 1d18 C600/X79 series chipset PCI Express Root Port 5 + 1d19 C600/X79 series chipset PCI Express Root Port 5 + 1d1a C600/X79 series chipset PCI Express Root Port 6 + 1d1b C600/X79 series chipset PCI Express Root Port 6 + 1d1c C600/X79 series chipset PCI Express Root Port 7 + 1d1d C600/X79 series chipset PCI Express Root Port 7 + 1d1e C600/X79 series chipset PCI Express Root Port 8 + 1d1f C600/X79 series chipset PCI Express Root Port 8 + 1d20 C600/X79 series chipset High Definition Audio Controller + 1d22 C600/X79 series chipset SMBus Host Controller + 1d24 C600/X79 series chipset Thermal Management Controller + 1d25 C600/X79 series chipset DMI to PCI Bridge + 1d26 C600/X79 series chipset USB2 Enhanced Host Controller #1 + 1d2d C600/X79 series chipset USB2 Enhanced Host Controller #2 + 1d33 C600/X79 series chipset LAN Controller + 1d35 C600/X79 series chipset VECI Controller + 1d3a C600/X79 series chipset MEI Controller #1 + 1d3b C600/X79 series chipset MEI Controller #2 + 1d3c C600/X79 series chipset IDE-r Controller + 1d3d C600/X79 series chipset KT Controller + 1d3e C600/X79 series chipset PCI Express Virtual Root Port + 1d3f C608/C606/X79 series chipset PCI Express Virtual Switch Port + 1d40 C600/X79 series chipset LPC Controller + 1d41 C600/X79 series chipset LPC Controller + 1d50 C608 chipset Dual 4-Port SATA/SAS Storage Control Unit + 1d54 C600/X79 series chipset Dual 4-Port SATA/SAS Storage Control Unit + 1d55 C600/X79 series chipset 4-Port SATA/SAS Storage Control Unit + 1d58 C606 chipset Dual 4-Port SATA/SAS Storage Control Unit + 1d59 C604/X79 series chipset 4-Port SATA/SAS Storage Control Unit + 1d5a C600/X79 series chipset Dual 4-Port SATA Storage Control Unit + 1d5b C602 chipset 4-Port SATA Storage Control Unit + 1d5c C600/X79 series chipset Dual 4-Port SATA/SAS Storage Control Unit + 1d5d C600/X79 series chipset 4-Port SATA/SAS Storage Control Unit + 1d5e C600/X79 series chipset Dual 4-Port SATA Storage Control Unit + 1d5f C600/X79 series chipset 4-Port SATA Storage Control Unit + 1d60 C608 chipset Dual 4-Port SATA/SAS Storage Control Unit + 1d64 C600/X79 series chipset Dual 4-Port SATA/SAS Storage Control Unit + 1d65 C600/X79 series chipset 4-Port SATA/SAS Storage Control Unit + 1d68 C606 chipset Dual 4-Port SATA/SAS Storage Control Unit + 1d69 C604/X79 series chipset 4-Port SATA/SAS Storage Control Unit + 1d6a C600/X79 series chipset Dual 4-Port SATA Storage Control Unit + 1d6b C602 chipset 4-Port SATA Storage Control Unit + 1d6c C600/X79 series chipset Dual 4-Port SATA/SAS Storage Control Unit + 1d6d C600/X79 series chipset 4-Port SATA/SAS Storage Control Unit + 1d6e C600/X79 series chipset Dual 4-Port SATA Storage Control Unit + 1d6f C600/X79 series chipset 4-Port SATA Storage Control Unit + 1d70 C600/X79 series chipset SMBus Controller 0 + 1d71 C608/C606/X79 series chipset SMBus Controller 1 + 1d72 C608 chipset SMBus Controller 2 + 1d74 C608/C606/X79 series chipset PCI Express Upstream Port + 1d76 C600/X79 series chipset Multi-Function Glue + 1e00 7 Series/C210 Series Chipset Family 4-port SATA Controller [IDE mode] + 1e01 7 Series Chipset Family 4-port SATA Controller [IDE mode] + 1e02 7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] + 1e03 7 Series Chipset Family 6-port SATA Controller [AHCI mode] + 1043 1477 N56VZ + 1e04 7 Series/C210 Series Chipset Family SATA Controller [RAID mode] + 1e05 7 Series Chipset SATA Controller [RAID mode] + 1e06 7 Series/C210 Series Chipset Family SATA Controller [RAID mode] + 1e07 7 Series Chipset Family SATA Controller [RAID mode] + 1e08 7 Series/C210 Series Chipset Family 2-port SATA Controller [IDE mode] + 1e09 7 Series Chipset Family 2-port SATA Controller [IDE mode] + 1e0e 7 Series/C210 Series Chipset Family SATA Controller [RAID mode] + 1e10 7 Series/C210 Series Chipset Family PCI Express Root Port 1 + 1043 1477 N56VZ + 1e12 7 Series/C210 Series Chipset Family PCI Express Root Port 2 + 1043 1477 N56VZ + 1e14 7 Series/C210 Series Chipset Family PCI Express Root Port 3 + 1e16 7 Series/C210 Series Chipset Family PCI Express Root Port 4 + 1043 1477 N56VZ + 1e18 7 Series/C210 Series Chipset Family PCI Express Root Port 5 + 1e1a 7 Series/C210 Series Chipset Family PCI Express Root Port 6 + 1e1c 7 Series/C210 Series Chipset Family PCI Express Root Port 7 + 1e1e 7 Series/C210 Series Chipset Family PCI Express Root Port 8 + 1e20 7 Series/C210 Series Chipset Family High Definition Audio Controller + 1043 1477 N56VZ + 1e22 7 Series/C210 Series Chipset Family SMBus Controller + 1043 1477 N56VZ + 1e24 7 Series/C210 Series Chipset Family Thermal Management Controller + 1e25 7 Series/C210 Series Chipset Family DMI to PCI Bridge + 1e26 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 + 1043 1477 N56VZ + 1e2d 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 + 1043 1477 N56VZ + 1e31 7 Series/C210 Series Chipset Family USB xHCI Host Controller + 1043 1477 N56VZ + 1e33 7 Series/C210 Series Chipset Family LAN Controller + 1e3a 7 Series/C210 Series Chipset Family MEI Controller #1 + 1043 1477 N56VZ + 1e3b 7 Series/C210 Series Chipset Family MEI Controller #2 + 1e3c 7 Series/C210 Series Chipset Family IDE-r Controller + 1e3d 7 Series/C210 Series Chipset Family KT Controller + 1e41 7 Series Chipset Family LPC Controller + 1e42 7 Series Chipset Family LPC Controller + 1e43 7 Series Chipset Family LPC Controller + 1e44 Z77 Express Chipset LPC Controller + 1e45 7 Series Chipset Family LPC Controller + 1e46 Z75 Express Chipset LPC Controller + 1e47 Q77 Express Chipset LPC Controller + 1e48 Q75 Express Chipset LPC Controller + 1e49 B75 Express Chipset LPC Controller + 1e4a H77 Express Chipset LPC Controller + 1e4b 7 Series Chipset Family LPC Controller + 1e4c 7 Series Chipset Family LPC Controller + 1e4d 7 Series Chipset Family LPC Controller + 1e4e 7 Series Chipset Family LPC Controller + 1e4f 7 Series Chipset Family LPC Controller + 1e50 7 Series Chipset Family LPC Controller + 1e51 7 Series Chipset Family LPC Controller + 1e52 7 Series Chipset Family LPC Controller + 1e53 C216 Series Chipset LPC Controller + 1e54 7 Series Chipset Family LPC Controller + 1e55 QM77 Express Chipset LPC Controller + 1e56 QS77 Express Chipset LPC Controller + 1e57 HM77 Express Chipset LPC Controller + 1e58 UM77 Express Chipset LPC Controller + 1e59 HM76 Express Chipset LPC Controller + 1043 1477 N56VZ + 1e5a 7 Series Chipset Family LPC Controller + 1e5b UM77 Express Chipset LPC Controller + 1e5c 7 Series Chipset Family LPC Controller + 1e5d HM75 Express Chipset LPC Controller + 1e5e 7 Series Chipset Family LPC Controller + 1e5f 7 Series Chipset Family LPC Controller 2310 DH89xxCC LPC Controller 2323 DH89xxCC 4 Port SATA AHCI Controller 2330 DH89xxCC SMBus Controller @@ -16460,7 +17641,7 @@ 1025 1016 Travelmate 612 TX 104d 80df Vaio PCG-FX403 2448 82801 Mobile PCI Bridge -# (rev d3) (prog-if (rev d3) (prog-if 01 [Subtractive decode]) + 1028 040b Latitude E6510 103c 0934 HP Compaq nw8240 Mobile Workstation 103c 099c NX6110/NC6120 103c 309f Compaq nx9420 Notebook @@ -16468,6 +17649,7 @@ 103c 30c1 Compaq 6910p 104d 902d VAIO VGN-NR120E 144d c00c P30 notebook + 144d c072 Notebook N150P 1734 1055 Amilo M1420 17aa 20ae ThinkPad T61 e4bf cc47 CCG-RUMBA @@ -16522,7 +17704,9 @@ 1014 0267 NetVista A30p 1028 020d Inspiron 530 1028 0211 Optiplex 755 + 1028 02da OptiPlex 980 103c 2a3b Pavilion A1512X + 103c 330b ProLiant ML150 G6 Server 1458 5000 GA-EP45-DS5 Motherboard 1775 11cc CC11/CL11 2450 82801E ISA Bridge (LPC) @@ -16823,7 +18007,7 @@ 1028 0156 Precision 360 1028 0169 Precision 470 103c 12bc d330 uT - 1043 80a6 P4P800 Mainboard + 1043 80a6 P4P800/P5P800 series motherboard 1458 24d2 GA-8IPE1000 Pro2 motherboard (865PE) 1462 7280 865PE Neo2 (MS-6728) 1462 7650 Hetis 865GV-E (MS-7065) @@ -16861,7 +18045,7 @@ 1028 0169 Precision 470 103c 006a NX9500 103c 12bc d330 uT - 1043 80f3 P4P800 Mainboard + 1043 80f3 P4P800 series motherboard 1043 810f P5P800-MX Mainboard 1458 a002 GA-8IPE1000/8KNXP motherboard 1462 0080 865PE Neo2-V (MS-6788) Mainboard @@ -17005,7 +18189,7 @@ 103c 12bc d330 uT 1043 80f2 P4P800/P5P800 series motherboard 1458 2570 GA-8IPE1000 Pro2 motherboard (865PE) - 2571 82865G/PE/P PCI to AGP Controller + 2571 82865G/PE/P AGP Bridge 2572 82865G Integrated Graphics Controller 1028 019d Dimension 3000 103c 12bc D530 sff(dc578av) @@ -17043,7 +18227,7 @@ 258a E7221 Integrated Graphics Controller 2590 Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller 1014 0575 ThinkPad Z60t - 1028 0182 Dell Latidude C610 + 1028 0182 Dell Latitude C610 103c 0934 Compaq nw8240/nx8220 103c 099c NX6110/NC6120 104d 81b7 Vaio VGN-S3XP @@ -17355,6 +18539,7 @@ 15d9 8680 X7DVL-E-O motherboard 8086 3476 Intel S5000PSLSATA Server Board 2682 631xESB/632xESB SATA RAID Controller + 103c 31fe Adaptec Serial ATA HostRAID 2683 631xESB/632xESB SATA RAID Controller 2688 631xESB/632xESB/3100 Chipset UHCI USB Controller #1 1028 01bb PowerEdge 1955 onboard USB @@ -17442,10 +18627,10 @@ 103c 30a1 NC2400 1775 11cc CC11/CL11 integrated graphics (secondary) 17aa 201a ThinkPad T60/R60 series - 27ac Mobile 945GME Express Memory Controller Hub + 27ac Mobile 945GSE Express Memory Controller Hub 1775 11cc CC11/CL11 - 27ad Mobile 945GME Express PCI Express Root Port - 27ae Mobile 945GME Express Integrated Graphics Controller + 27ad Mobile 945GSE Express PCI Express Root Port + 27ae Mobile 945GSE Express Integrated Graphics Controller 1775 11cc CC11/CL11 integrated graphics (primary) 27b0 82801GH (ICH7DH) LPC Interface Bridge 103c 2a3b Pavilion A1512X @@ -17464,10 +18649,11 @@ 10f7 8338 Panasonic CF-Y5 laptop 17aa 2009 ThinkPad T60/R60 series 27bc NM10 Family LPC Controller + 144d c072 Notebook N150P 8086 4f4d DeskTop Board D510MO 27bd 82801GHM (ICH7-M DH) LPC Interface Bridge 1025 006c 9814 WKMI - 27c0 N10/ICH7 Family SATA IDE Controller + 27c0 NM10/ICH7 Family SATA Controller [IDE mode] 1028 01ad OptiPlex GX620 1028 01df PowerEdge SC440 1028 01e6 PowerEdge 860 @@ -17477,25 +18663,26 @@ 1462 7236 945P Neo3-F Rev. 2.2 motherboard 1775 11cc CC11/CL11 8086 544e DeskTop Board D945GTP - 27c1 N10/ICH7 Family SATA AHCI Controller + 27c1 NM10/ICH7 Family SATA Controller [AHCI mode] 1028 01df PowerEdge SC440 103c 2a3b Pavilion A1512X + 144d c072 Notebook N150P 1775 11cc CC11/CL11 8086 4f4d DeskTop Board D510MO 8086 5842 DeskTop Board D975XBX - 27c3 82801GR/GH (ICH7 Family) SATA RAID Controller + 27c3 82801GR/GDH (ICH7R/ICH7DH) SATA Controller [RAID mode] 1775 11cc CC11/CL11 8086 544e DeskTop Board D945GTP - 27c4 82801GBM/GHM (ICH7 Family) SATA IDE Controller + 27c4 82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] 1025 006c 9814 WKMI 1028 01d7 XPS M1210 17aa 200e Thinkpad T60 model 2007 - 27c5 82801GBM/GHM (ICH7 Family) SATA AHCI Controller + 27c5 82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 17aa 200d ThinkPad T60/R60 series - 27c6 82801GHM (ICH7-M DH) SATA RAID Controller - 27c8 N10/ICH 7 Family USB UHCI Controller #1 + 27c6 82801GHM (ICH7-M DH) SATA Controller [RAID mode] + 27c8 NM10/ICH7 Family USB UHCI Controller #1 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -17508,11 +18695,12 @@ 1043 1237 A6J-Q008 1043 8179 P5KPL-VM,P5LD2-VM Mainboard 107b 5048 E4500 + 144d c072 Notebook N150P 1775 11cc CC11/CL11 17aa 200a ThinkPad T60/R60 series 8086 4f4d DeskTop Board D510MO 8086 544e DeskTop Board D945GTP - 27c9 N10/ICH 7 Family USB UHCI Controller #2 + 27c9 NM10/ICH7 Family USB UHCI Controller #2 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -17525,11 +18713,12 @@ 1043 1237 A6J-Q008 1043 8179 P5KPL-VM,P5LD2-VM Mainboard 107b 5048 E4500 + 144d c072 Notebook N150P 1775 11cc CC11/CL11 17aa 200a ThinkPad T60/R60 series 8086 4f4d DeskTop Board D510MO 8086 544e DeskTop Board D945GTP - 27ca N10/ICH 7 Family USB UHCI Controller #3 + 27ca NM10/ICH7 Family USB UHCI Controller #3 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -17542,11 +18731,12 @@ 1043 1237 A6J-Q008 1043 8179 P5KPL-VM,P5LD2-VM Mainboard 107b 5048 E4500 + 144d c072 Notebook N150P 1775 11cc CC11/CL11 17aa 200a ThinkPad T60/R60 series 8086 4f4d DeskTop Board D510MO 8086 544e DeskTop Board D945GTP - 27cb N10/ICH 7 Family USB UHCI Controller #4 + 27cb NM10/ICH7 Family USB UHCI Controller #4 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -17558,11 +18748,12 @@ 1043 1237 A6J-Q008 1043 8179 P5KPL-VM,P5LD2-VM Mainboard 107b 5048 E4500 + 144d c072 Notebook N150P 1775 11cc CC11/CL11 17aa 200a ThinkPad T60/R60 series 8086 4f4d DeskTop Board D510MO 8086 544e DeskTop Board D945GTP - 27cc N10/ICH 7 Family USB2 EHCI Controller + 27cc NM10/ICH7 Family USB2 EHCI Controller 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -17574,24 +18765,29 @@ 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 1043 8179 P5KPL-VM,P5LD2-VM Mainboard + 144d c072 Notebook N150P 1775 11cc CC11/CL11 17aa 200b ThinkPad T60/R60 series 8086 4f4d DeskTop Board D510MO 8086 544e DeskTop Board D945GTP - 27d0 N10/ICH 7 Family PCI Express Port 1 + 27d0 NM10/ICH7 Family PCI Express Port 1 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 + 144d c072 Notebook N150P 1775 11cc CC11/CL11 - 27d2 N10/ICH 7 Family PCI Express Port 2 + 27d2 NM10/ICH7 Family PCI Express Port 2 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 + 144d c072 Notebook N150P 1775 11cc CC11/CL11 - 27d4 N10/ICH 7 Family PCI Express Port 3 + 27d4 NM10/ICH7 Family PCI Express Port 3 + 144d c072 Notebook N150P 1775 11cc CC11/CL11 - 27d6 N10/ICH 7 Family PCI Express Port 4 + 27d6 NM10/ICH7 Family PCI Express Port 4 103c 30a3 Compaq nw8440 + 144d c072 Notebook N150P 1775 11cc CC11/CL11 - 27d8 N10/ICH 7 Family High Definition Audio Controller + 27d8 NM10/ICH7 Family High Definition Audio Controller 1025 006c 9814 WKMI 1028 01d7 XPS M1210 103c 2a3b Pavilion A1512X @@ -17608,6 +18804,7 @@ 1179 ff10 Toshiba Satellite A100-796 audio (Realtek ALC861) 1179 ff31 AC97 Data Fax SoftModem with SmartCP 1447 1043 Asus A8JP (Analog Devices AD1986A) + 144d c072 Notebook N150P 1458 a102 GA-8I945PG-RH Mainboard 152d 0753 Softmodem 1734 10ad Conexant softmodem SmartCP @@ -17616,7 +18813,8 @@ 8086 1112 DeskTop Board D945GTP 8086 27d8 DeskTop Board D945GTP 8086 d618 DeskTop Board D510MO - 27da N10/ICH 7 Family SMBus Controller + 8384 7680 STAC9221 HD Audio Codec + 27da NM10/ICH7 Family SMBus Controller 1025 006c 9814 WKMI 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 @@ -17625,13 +18823,14 @@ 103c 2a3b Pavilion A1512X 1043 8179 P5KPL-VM Motherboard 10f7 8338 Panasonic CF-Y5 laptop + 144d c072 Notebook N150P 1458 5001 GA-8I945PG-RH Mainboard 1775 11cc CC11/CL11 17aa 200f ThinkPad T60/R60 series 8086 4f4d DeskTop Board D510MO 8086 544e DeskTop Board D945GTP 8086 5842 DeskTop Board D975XBX - 27dc N10/ICH 7 Family LAN Controller + 27dc NM10/ICH7 Family LAN Controller 103c 2a3b Pavilion A1512X 8086 308d DeskTop Board D945GTP 27dd 82801G (ICH7 Family) AC'97 Modem Controller @@ -17660,45 +18859,47 @@ 2802 82GL40 [Cantiga] High Definition Audio HDMI Service 2810 82801HB/HR (ICH8/R) LPC Interface Controller 1043 81ec P5B - 2811 82801HBM (ICH8M-E) LPC Interface Controller + 2811 82801HEM (ICH8M-E) LPC Interface Controller 103c 30c1 Compaq 6910p 17aa 20b6 T61 e4bf cc47 CCG-RUMBA 2812 82801HH (ICH8DH) LPC Interface Controller 2814 82801HO (ICH8DO) LPC Interface Controller - 2815 82801HEM (ICH8M) LPC Interface Controller + 2815 82801HM (ICH8M) LPC Interface Controller 1025 0121 Aspire 5920G 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b + 103c 30cc Pavilion dv6700 103c 30d9 Presario C700 104d 9005 Vaio VGN-FZ260E 104d 902d VAIO VGN-NR120E - 2820 82801H (ICH8 Family) 4 port SATA IDE Controller + 2820 82801H (ICH8 Family) 4 port SATA Controller [IDE mode] 1028 01da OptiPlex 745 1462 7235 P965 Neo MS-7235 mainboard - 2821 82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller - 2822 82801 SATA RAID Controller + 2821 82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA Controller [AHCI mode] + 2822 82801 SATA Controller [RAID mode] 1028 020d Inspiron 530 - 2824 82801HB (ICH8) 4 port SATA AHCI Controller + 2824 82801HB (ICH8) 4 port SATA Controller [AHCI mode] 1043 81ec P5B - 2825 82801H (ICH8 Family) 2 port SATA IDE Controller + 2825 82801HR/HO/HH (ICH8R/DO/DH) 2 port SATA Controller [IDE mode] 1028 01da OptiPlex 745 1462 7235 P965 Neo MS-7235 mainboard - 2826 Patsburg SATA RAID Controller - 2828 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller + 2826 C600/X79 series chipset SATA RAID Controller + 2828 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b e4bf cc47 CCG-RUMBA - 2829 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller + 2829 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] 1025 0121 Aspire 5920G 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 103c 30d9 Presario C700 104d 9005 Vaio VGN-FZ260E 104d 902d VAIO VGN-NR120E 17aa 20a7 ThinkPad T61 e4bf cc47 CCG-RUMBA - 282a Mobile 82801 SATA RAID Controller + 282a 82801 Mobile SATA Controller [RAID mode] 1028 040b Latitude E6510 e4bf 50c1 PC1-GROOVE 2830 82801H (ICH8 Family) USB UHCI Controller #1 @@ -17707,6 +18908,7 @@ 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 103c 30d9 Presario C700 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E @@ -17719,8 +18921,8 @@ 1028 01da OptiPlex 745 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b -# Name mistyped on previous submission 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 103c 30d9 Presario C700 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E @@ -17734,6 +18936,7 @@ 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 103c 30d9 Presario C700 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E @@ -17748,6 +18951,7 @@ 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E 104d 902d VAIO VGN-NR120E @@ -17760,6 +18964,7 @@ 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E 104d 902d VAIO VGN-NR120E @@ -17771,6 +18976,7 @@ 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 103c 30d9 Presario C700 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E @@ -17784,6 +18990,7 @@ 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E 104d 902d VAIO VGN-NR120E @@ -17832,6 +19039,7 @@ 103c 2802 HP Compaq dc7700p 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 1043 1339 Asus M51S series 1043 81ec P5B 104d 9005 Vaio VGN-FZ260E @@ -17843,11 +19051,12 @@ 8384 7616 Dell Vostro 1400 e4bf cc47 CCG-RUMBA 284f 82801H (ICH8 Family) Thermal Reporting Device - 2850 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller + 2850 82801HM/HEM (ICH8M/ICH8M-E) IDE Controller 1025 0121 Aspire 5920G 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 103c 30d9 Presario C700 104d 9005 Vaio VGN-FZ260E 104d 902d VAIO VGN-NR120E @@ -17858,47 +19067,49 @@ 1028 0211 Optiplex 755 2916 82801IR (ICH9R) LPC Interface Controller 1028 020d Inspiron 530 + 8086 5044 Desktop Board DP35DP 2917 ICH9M-E LPC Interface Controller e4bf cc4d CCM-BOOGIE 2918 82801IB (ICH9) LPC Interface Controller 1028 0236 PowerEdge R610 82801IB (ICH9) LPC Interface Controller 1462 7360 G33/P35 Neo 2919 ICH9M LPC Interface Controller - 2920 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller + 2920 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode] 1028 020d Inspiron 530 1028 020f PowerEdge R300 onboard SATA Controller 1028 0210 PowerEdge T300 onboard SATA Controller 1028 0211 Optiplex 755 1028 023c PowerEdge R200 onboard SATA Controller - 2921 82801IB (ICH9) 2 port SATA IDE Controller + 2921 82801IB (ICH9) 2 port SATA Controller [IDE mode] 1028 0235 PowerEdge R710 SATA IDE Controller 1028 0236 PowerEdge R610 SATA IDE Controller 1028 0237 PowerEdge T610 SATA IDE Controller 1462 7360 G33/P35 Neo - 2922 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller - 2923 82801IB (ICH9) 4 port SATA AHCI Controller - 2925 82801IR/IO (ICH9R/DO) SATA RAID Controller + 2922 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] + 8086 5044 Desktop Board DP35DP + 2923 82801IB (ICH9) 4 port SATA Controller [AHCI mode] + 2925 82801IR/IO (ICH9R/DO) SATA Controller [RAID mode] 1734 10e0 System Board D2542 8086 2925 System Board D2542 - 2926 82801I (ICH9 Family) 2 port SATA IDE Controller + 2926 82801I (ICH9 Family) 2 port SATA Controller [IDE mode] 1028 020d Inspiron 530 1028 020f PowerEdge R300 onboard SATA Controller 1028 0210 PowerEdge T300 onboard SATA Controller 1028 0211 Optiplex 755 1462 7360 G33/P35 Neo - 2928 ICH9M/M-E 2 port SATA IDE Controller - 2929 ICH9M/M-E SATA AHCI Controller + 2928 82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] + 2929 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] 103c 3628 dv6-1190en e4bf cc4d CCM-BOOGIE - 292c ICH9M-E SATA RAID Controller - 292d ICH9M/M-E 2 port SATA IDE Controller + 292c 82801IEM (ICH9M-E) SATA Controller [RAID mode] + 292d 82801IBM/IEM (ICH9M/ICH9M-E) 2 port SATA Controller [IDE mode] e4bf cc4d CCM-BOOGIE - 292e ICH9M SATA IDE Controller 2930 82801I (ICH9 Family) SMBus Controller 1028 020d Inspiron 530 1028 0211 Optiplex 755 103c 3628 dv6-1190en 1462 7360 G33/P35 Neo + 8086 5044 Desktop Board DP35DP e4bf cc4d CCM-BOOGIE 2932 82801I (ICH9 Family) Thermal Subsystem 103c 3628 dv6-1190en @@ -17915,6 +19126,7 @@ 1028 029c PowerEdge M710 USB UHCI Controller 1028 2011 Optiplex 755 1462 7360 G33/P35 Neo + 8086 5044 Desktop Board DP35DP e4bf cc4d CCM-BOOGIE 2935 82801I (ICH9 Family) USB UHCI Controller #2 1028 020d Inspiron 530 @@ -17928,6 +19140,7 @@ 1028 0287 PowerEdge M610 onboard UHCI 1028 029c PowerEdge M710 USB UHCI Controller 1462 7360 G33/P35 Neo + 8086 5044 Desktop Board DP35DP e4bf cc4d CCM-BOOGIE 2936 82801I (ICH9 Family) USB UHCI Controller #3 1028 020d Inspiron 530 @@ -17939,6 +19152,7 @@ 1028 0287 PowerEdge M610 onboard UHCI 1028 029c PowerEdge M710 USB UHCI Controller 1462 7360 G33/P35 Neo + 8086 5044 Desktop Board DP35DP e4bf cc4d CCM-BOOGIE 2937 82801I (ICH9 Family) USB UHCI Controller #4 1028 020d Inspiron 530 @@ -17952,6 +19166,7 @@ 1462 7360 G33/P35 Neo 8086 2937 Optiplex 755 8086 2942 828011 (ICH9 Family ) USB UHCI Controller + 8086 5044 Desktop Board DP35DP e4bf cc4d CCM-BOOGIE 2938 82801I (ICH9 Family) USB UHCI Controller #5 1028 020d Inspiron 530 @@ -17963,12 +19178,14 @@ 1028 029c PowerEdge M710 USB UHCI Controller 1462 7360 G33/P35 Neo 8086 2938 Optiplex 755 + 8086 5044 Desktop Board DP35DP e4bf cc4d CCM-BOOGIE 2939 82801I (ICH9 Family) USB UHCI Controller #6 1028 020d Inspiron 530 1028 0210 PowerEdge T300 onboard UHCI 1028 0237 PowerEdge T610 USB UHCI Controller 1462 7360 G33/P35 Neo + 8086 5044 Desktop Board DP35DP e4bf cc4d CCM-BOOGIE 293a 82801I (ICH9 Family) USB2 EHCI Controller #1 1028 020d Inspiron 530 @@ -17982,6 +19199,7 @@ 1028 0287 PowerEdge M610 onboard EHCI 1028 029c PowerEdge M710 USB EHCI Controller 1462 7360 G33/P35 Neo + 8086 5044 Desktop Board DP35DP e4bf cc4d CCM-BOOGIE 293c 82801I (ICH9 Family) USB2 EHCI Controller #2 1028 020d Inspiron 530 @@ -17993,6 +19211,7 @@ 1028 029c PowerEdge M710 USB EHCI Controller 1462 7360 G33/P35 Neo 8086 293c Optiplex 755 + 8086 5044 Desktop Board DP35DP e4bf cc4d CCM-BOOGIE 293e 82801I (ICH9 Family) HD Audio Controller 1028 020d Inspiron 530 @@ -18070,6 +19289,7 @@ 1028 020d Inspiron 530 1043 82b0 P5KPL-VM Motherboard 1462 7360 G33/P35 Neo + 8086 5044 Desktop Board DP35DP 29c1 82G33/G31/P35/P31 Express PCI Express Root Port 1028 020d Inspiron 530 29c2 82G33/G31 Express Integrated Graphics Controller @@ -18079,6 +19299,7 @@ 1028 020d Inspiron 530 1043 82b0 P5KPL-VM Motherboard 29c4 82G33/G31/P35/P31 Express MEI Controller + 8086 5044 Desktop Board DP35DP 29c5 82G33/G31/P35/P31 Express MEI Controller 29c6 82G33/G31/P35/P31 Express PT IDER Controller 29c7 82G33/G31/P35/P31 Express Serial KT Controller @@ -18110,6 +19331,7 @@ 1028 01f3 Inspiron 1420 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30cc Pavilion dv6700 103c 30d9 Presario C700 104d 9005 Vaio VGN-FZ260E 104d 902d VAIO VGN-NR120E @@ -18332,11 +19554,15 @@ 2e16 4 Series Chipset PT IDER Controller 2e17 4 Series Chipset Serial KT Controller 2e20 4 Series Chipset DRAM Controller - 1458 5000 GA-EP45-DS5 Motherboard + 1043 82d3 P5Q Deluxe Motherboard + 1458 5000 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 2e21 4 Series Chipset PCI Express Root Port + 1043 82d3 P5Q Deluxe Motherboard 1458 5000 GA-EP45-DS5 Motherboard 2e22 4 Series Chipset Integrated Graphics Controller + 1458 d000 GA-EG45M-DS2H Mainboard 2e23 4 Series Chipset Integrated Graphics Controller + 1458 d000 GA-EG45M-DS2H Mainboard 2e24 4 Series Chipset HECI Controller 2e25 4 Series Chipset HECI Controller 2e26 4 Series Chipset PT IDER Controller @@ -18420,42 +19646,50 @@ 1028 0287 PowerEdge M610 I/O Hub to ESI Port 1028 028c PowerEdge R410 I/O Hub to ESI Port 1028 028d PowerEdge T410 I/O Hub to ESI Port + 103c 330b ProLiant ML150 G6 Server 3404 5520/5500/X58 I/O Hub to ESI Port 3405 5520/5500/X58 I/O Hub to ESI Port 3406 5520 I/O Hub to ESI Port + 103c 330b ProLiant G6 series 3407 5520/5500/X58 I/O Hub to ESI Port 3408 5520/5500/X58 I/O Hub PCI Express Root Port 1 + 103c 330b ProLiant G6 series 3409 5520/5500/X58 I/O Hub PCI Express Root Port 2 340a 5520/5500/X58 I/O Hub PCI Express Root Port 3 + 103c 330b ProLiant ML150 G6 Server 340b 5520/X58 I/O Hub PCI Express Root Port 4 340c 5520/X58 I/O Hub PCI Express Root Port 5 340d 5520/X58 I/O Hub PCI Express Root Port 6 340e 5520/5500/X58 I/O Hub PCI Express Root Port 7 + 103c 330b ProLiant ML150 G6 Server 340f 5520/5500/X58 I/O Hub PCI Express Root Port 8 - 3410 5520/5500/X58 I/O Hub PCI Express Root Port 9 - 3411 5520/5500/X58 I/O Hub PCI Express Root Port 10 - 3418 5520/5500/X58 Physical Layer Port 0 - 3419 5520/5500 Physical Layer Port 1 - 3420 5500 Non-Legacy I/O Hub PCI Express Root Port 0 - 3421 5520 Non-Legacy I/O Hub PCI Express Root Port 0 - 3422 5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers - 3423 5520/5500/X58 I/O Hub Control Status and RAS Registers - 3425 5520/5500/X58 Physical and Link Layer Registers Port 0 - 3426 5520/5500/X58 Routing and Protocol Layer Registers Port 0 - 3427 5520/5500 Physical and Link Layer Registers Port 1 - 3428 5520/5500 Routing & Protocol Layer Register Port 1 + 3410 7500/5520/5500/X58 I/O Hub PCI Express Root Port 9 + 3411 7500/5520/5500/X58 I/O Hub PCI Express Root Port 10 + 3418 7500/5520/5500/X58 Physical Layer Port 0 + 3419 7500/5520/5500 Physical Layer Port 1 + 3420 7500/5520/5500/X58 I/O Hub PCI Express Root Port 0 + 3421 7500/5520/5500/X58 I/O Hub PCI Express Root Port 0 + 3422 7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers + 103c 330b ProLiant G6 series + 3423 7500/5520/5500/X58 I/O Hub Control Status and RAS Registers + 103c 330b ProLiant G6 series + 3425 7500/5520/5500/X58 Physical and Link Layer Registers Port 0 + 3426 7500/5520/5500/X58 Routing and Protocol Layer Registers Port 0 + 3427 7500/5520/5500 Physical and Link Layer Registers Port 1 + 3428 7500/5520/5500 Routing & Protocol Layer Register Port 1 3429 5520/5500/X58 Chipset QuickData Technology Device 342a 5520/5500/X58 Chipset QuickData Technology Device 342b 5520/5500/X58 Chipset QuickData Technology Device 342c 5520/5500/X58 Chipset QuickData Technology Device - 342d 5520/5500/X58 I/O Hub I/OxAPIC Interrupt Controller - 342e 5520/5500/X58 I/O Hub System Management Registers - 342f 5520/5500/X58 Trusted Execution Technology Registers + 342d 7500/5520/5500/X58 I/O Hub I/OxAPIC Interrupt Controller + 342e 7500/5520/5500/X58 I/O Hub System Management Registers + 103c 330b ProLiant G6 series + 342f 7500/5520/5500/X58 Trusted Execution Technology Registers 3430 5520/5500/X58 Chipset QuickData Technology Device 3431 5520/5500/X58 Chipset QuickData Technology Device 3432 5520/5500/X58 Chipset QuickData Technology Device 3433 5520/5500/X58 Chipset QuickData Technology Device - 3438 5520/5500/X58 I/O Hub Throttle Registers + 3438 7500/5520/5500/X58 I/O Hub Throttle Registers 3500 6311ESB/6321ESB PCI Express Upstream Port 3501 6310ESB PCI Express Upstream Port 3504 6311ESB/6321ESB I/OxAPIC Interrupt Controller @@ -18468,14 +19702,14 @@ 3515 6310ESB PCI Express Downstream Port E2 3518 6311ESB/6321ESB PCI Express Downstream Port E3 3519 6310ESB PCI Express Downstream Port E3 - 3575 82830 830 Chipset Host Bridge + 3575 82830M/MG/MP Host Bridge 0e11 0030 Evo N600c 1014 021d ThinkPad A/T/X Series 104d 80e7 VAIO PCG-GR214EP/GR214MP/GR215MP/GR314MP/GR315MP - 3576 82830 830 Chipset AGP Bridge - 3577 82830 CGC [Chipset Graphics Controller] + 3576 82830M/MP AGP Bridge + 3577 82830M/MG Integrated Graphics Controller 1014 0513 ThinkPad A/T/X Series - 3578 82830 830 Chipset Host Bridge + 3578 82830M/MG/MP Host Bridge 3580 82852/82855 GM/GME/PM/GMV Processor to I/O Controller 1014 055c ThinkPad R50e 1028 0139 Latitude D400 @@ -18641,6 +19875,8 @@ 3a16 82801JIR (ICH10R) LPC Interface Controller 1028 028c PowerEdge R410 LPC Interface Controller 1028 028d PowerEdge T410 LPC Interface Controller + 103c 330b ProLiant G6 series + 1043 82d4 P5Q Deluxe Motherboard 1458 5001 GA-EP45-DS5 Motherboard 3a18 82801JIB (ICH10) LPC Interface Controller 3a1a 82801JD (ICH10D) LPC Interface Controller @@ -18648,8 +19884,9 @@ 1028 028c PowerEdge R410 SATA IDE Controller 1028 028d PowerEdge T410 SATA IDE Controller 3a22 82801JI (ICH10 Family) SATA AHCI Controller + 103c 330b ProLiant G6 series 1043 82d4 P5Q Deluxe Motherboard - 1458 b005 GA-EP45-DS5 Motherboard + 1458 b005 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 3a25 82801JIR (ICH10R) SATA RAID Controller 1028 028c PERC S100 Controller (PE R410) 1028 028d PERC S100 Controller (PE T410) @@ -18658,48 +19895,68 @@ 1028 028c PowerEdge R410 SATA IDE Controller 1028 028d PowerEdge T410 SATA IDE Controller 3a30 82801JI (ICH10 Family) SMBus Controller - 1458 5001 GA-EP45-DS5 Motherboard + 1043 82d4 P5Q Deluxe Motherboard + 1458 5001 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 3a32 82801JI (ICH10 Family) Thermal Subsystem 3a34 82801JI (ICH10 Family) USB UHCI Controller #1 1028 028c PowerEdge R410 USB UHCI Controller 1028 028d PowerEdge T410 USB UHCI Controller + 103c 330b ProLiant G6 series + 1043 82d4 P5Q Deluxe Motherboard 1458 5004 GA-EP45-DS5 Motherboard 3a35 82801JI (ICH10 Family) USB UHCI Controller #2 1028 028c PowerEdge R410 USB UHCI Controller 1028 028d PowerEdge T410 USB UHCI Controller + 103c 330b ProLiant G6 series + 1043 82d4 P5Q Deluxe Motherboard 1458 5004 GA-EP45-DS5 Motherboard 3a36 82801JI (ICH10 Family) USB UHCI Controller #3 1028 028c PowerEdge R410 USB UHCI Controller 1028 028d PowerEdge T410 USB UHCI Controller + 103c 330b ProLiant G6 series + 1043 82d4 P5Q Deluxe Motherboard 1458 5004 GA-EP45-DS5 Motherboard 3a37 82801JI (ICH10 Family) USB UHCI Controller #4 1028 028c PowerEdge R410 USB UHCI Controller 1028 028d PowerEdge T410 USB UHCI Controller - 1458 5004 GA-EP45-DS5 Motherboard + 103c 330b ProLiant G6 series + 1043 82d4 P5Q Deluxe Motherboard + 1458 5004 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 3a38 82801JI (ICH10 Family) USB UHCI Controller #5 1028 028c PowerEdge R410 USB UHCI Controller 1028 028d PowerEdge T410 USB UHCI Controller - 1458 5004 GA-EP45-DS5 Motherboard + 103c 330b ProLiant ML150 G6 Server + 1043 82d4 P5Q Deluxe Motherboard + 1458 5004 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 3a39 82801JI (ICH10 Family) USB UHCI Controller #6 1028 028c PowerEdge R410 USB UHCI Controller 1028 028d PowerEdge T410 USB UHCI Controller - 1458 5004 GA-EP45-DS5 Motherboard + 103c 330b ProLiant ML150 G6 Server + 1043 82d4 P5Q Deluxe Motherboard + 1458 5004 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 3a3a 82801JI (ICH10 Family) USB2 EHCI Controller #1 1028 028c PowerEdge R410 USB EHCI Controller 1028 028d PowerEdge T410 USB EHCI Controller + 103c 330b ProLiant G6 series + 1043 82d4 P5Q Deluxe Motherboard 1458 5006 GA-EP45-DS5 Motherboard 3a3c 82801JI (ICH10 Family) USB2 EHCI Controller #2 1028 028c PowerEdge R410 USB EHCI Controller 1028 028d PowerEdge T410 USB EHCI Controller + 103c 330b ProLiant G6 series + 1043 82d4 P5Q Deluxe Motherboard 1458 5006 GA-EP45-DS5 Motherboard 3a3e 82801JI (ICH10 Family) HD Audio Controller + 1043 8311 P5Q Deluxe Motherboard 1458 a002 GA-EP45-UD3R Motherboard - 1458 a102 GA-EP45-DS5 Motherboard + 1458 a102 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 3a40 82801JI (ICH10 Family) PCI Express Root Port 1 1028 028c PowerEdge R410 PCI Express Port 1 1028 028d PowerEdge T410 PCI Express Port 1 + 103c 330b ProLiant ML150 G6 Server + 1043 82d4 P5Q Deluxe Motherboard 1043 82ea P6T DeLuxe Motherboard - 1458 5001 GA-EP45-DS5 Motherboard + 1458 5001 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 3a42 82801JI (ICH10 Family) PCI Express Port 2 3a44 82801JI (ICH10 Family) PCI Express Root Port 3 1043 82ea P6T DeLuxe Motherboard @@ -18707,11 +19964,14 @@ 1043 82ea P6T DeLuxe Motherboard 1458 5001 GA-EP45-DS5 Motherboard 3a48 82801JI (ICH10 Family) PCI Express Root Port 5 + 103c 330b ProLiant ML150 G6 Server 1043 82ea P6T Deluxe Motherboard 1458 5001 GA-EP45-DS5 Motherboard 3a4a 82801JI (ICH10 Family) PCI Express Root Port 6 + 103c 330b ProLiant ML150 G6 Server + 1043 82d4 P5Q Deluxe Motherboard 1043 82ea P6T DeLuxe Motherboard - 1458 5001 GA-EP45-DS5 Motherboard + 1458 5001 GA-EP45-DS5/GA-EG45M-DS2H Motherboard 3a4c 82801JI (ICH10 Family) Gigabit Ethernet Controller 3a51 82801JDO (ICH10DO) VECI Controller 3a55 82801JD/DO (ICH10 Family) Virtual SATA Controller @@ -18747,6 +20007,7 @@ 3b09 Mobile 5 Series Chipset LPC Interface Controller 1025 0347 Aspire 7740G 3b0a 5 Series Chipset LPC Interface Controller + 1028 02da OptiPlex 980 3b0b Mobile 5 Series Chipset LPC Interface Controller 3b0c 5 Series Chipset LPC Interface Controller 3b0d 5 Series/3400 Series Chipset LPC Interface Controller @@ -18771,6 +20032,7 @@ 3b20 5 Series/3400 Series Chipset 4 port SATA IDE Controller 3b21 5 Series/3400 Series Chipset 2 port SATA IDE Controller 3b22 5 Series/3400 Series Chipset 6 port SATA AHCI Controller + 1028 02da OptiPlex 980 3b23 5 Series/3400 Series Chipset 4 port SATA AHCI Controller 3b25 5 Series/3400 Series Chipset SATA RAID Controller 3b26 5 Series/3400 Series Chipset 2 port SATA IDE Controller @@ -18783,15 +20045,18 @@ 3b2e 5 Series/3400 Series Chipset 4 port SATA IDE Controller e4bf 50c1 PC1-GROOVE 3b2f 5 Series/3400 Series Chipset 6 port SATA AHCI Controller + 1028 040b Latitude E6510 e4bf 50c1 PC1-GROOVE 3b30 5 Series/3400 Series Chipset SMBus Controller 1025 0347 Aspire 7740G + 1028 02da OptiPlex 980 1028 040b Latitude E6510 e4bf 50c1 PC1-GROOVE 3b32 5 Series/3400 Series Chipset Thermal Subsystem 1025 0347 Aspire 7740G 3b34 5 Series/3400 Series Chipset USB2 Enhanced Host Controller 1025 0347 Aspire 7740G + 1028 02da OptiPlex 980 1028 040b Latitude E6510 e4bf 50c1 PC1-GROOVE 3b36 5 Series/3400 Series Chipset USB Universal Host Controller @@ -18802,6 +20067,7 @@ 3b3b 5 Series/3400 Series Chipset USB Universal Host Controller 3b3c 5 Series/3400 Series Chipset USB2 Enhanced Host Controller 1025 0347 Aspire 7740G + 1028 02da OptiPlex 980 1028 040b Latitude E6510 e4bf 50c1 PC1-GROOVE 3b3e 5 Series/3400 Series Chipset USB Universal Host Controller @@ -18809,16 +20075,23 @@ 3b40 5 Series/3400 Series Chipset USB Universal Host Controller 3b41 5 Series/3400 Series Chipset LAN Controller 3b42 5 Series/3400 Series Chipset PCI Express Root Port 1 + 1028 02da OptiPlex 980 + 1028 040b Latitude E6510 3b44 5 Series/3400 Series Chipset PCI Express Root Port 2 + 1028 040b Latitude E6510 3b46 5 Series/3400 Series Chipset PCI Express Root Port 3 + 1028 040b Latitude E6510 3b48 5 Series/3400 Series Chipset PCI Express Root Port 4 + 1028 040b Latitude E6510 3b4a 5 Series/3400 Series Chipset PCI Express Root Port 5 + 1028 02da OptiPlex 980 3b4c 5 Series/3400 Series Chipset PCI Express Root Port 6 3b4e 5 Series/3400 Series Chipset PCI Express Root Port 7 3b50 5 Series/3400 Series Chipset PCI Express Root Port 8 3b53 5 Series/3400 Series Chipset VECI Controller 3b56 5 Series/3400 Series Chipset High Definition Audio 1025 0347 Aspire 7740G + 1028 02da OptiPlex 980 1028 040b Latitude E6510 e4bf 50c1 PC1-GROOVE 3b57 5 Series/3400 Series Chipset High Definition Audio @@ -18829,85 +20102,81 @@ 3b66 5 Series/3400 Series Chipset PT IDER Controller 3b67 5 Series/3400 Series Chipset KT Controller e4bf 50c1 PC1-GROOVE - 3c00 Sandy Bridge DMI2 - 3c01 Sandy Bridge DMI2 in PCI Express Mode - 3c02 Sandy Bridge IIO PCI Express Root Port 1a - 3c03 Sandy Bridge IIO PCI Express Root Port 1b - 3c04 Sandy Bridge IIO PCI Express Root Port 2a - 3c05 Sandy Bridge IIO PCI Express Root Port 2b - 3c06 Sandy Bridge IIO PCI Express Root Port 2c - 3c07 Sandy Bridge IIO PCI Express Root Port 2d - 3c08 Sandy Bridge IIO PCI Express Root Port 3a in PCI Express Mode - 3c09 Sandy Bridge IIO PCI Express Root Port 3b - 3c0a Sandy Bridge IIO PCI Express Root Port 3c - 3c0b Sandy Bridge IIO PCI Express Root Port 3d - 3c0d Sandy Bridge Non-Transparent Bridge - 3c0e Sandy Bridge Non-Transparent Bridge - 3c0f Sandy Bridge Non-Transparent Bridge - 3c20 Sandy Bridge DMA Channel 0 - 3c21 Sandy Bridge DMA Channel 1 - 3c22 Sandy Bridge DMA Channel 2 - 3c23 Sandy Bridge DMA Channel 3 - 3c24 Sandy Bridge DMA Channel 4 - 3c25 Sandy Bridge DMA Channel 5 - 3c26 Sandy Bridge DMA Channel 6 - 3c27 Sandy Bridge DMA Channel 7 - 3c28 Sandy Bridge Address Map, VTd_Misc, System Management - 3c2a Sandy Bridge Control Status and Global Errors - 3c2c Sandy Bridge I/O APIC - 3c2e Sandy Bridge DMA - 3c2f Sandy Bridge DMA - 3c40 Sandy Bridge IIO Switch and IRP Performance Monitor - 3c41 Sandy Bridge QPI Port 0 Performance Monitor - 3c42 Sandy Bridge QPI Port 1 Performance Monitor - 3c43 Sandy Bridge Ring to PCI Express Performance Monitor - 3c44 Sandy Bridge Ring to QuickPath Interconnect Link 0 Performance Monitor - 3c45 Sandy Bridge Ring to QuickPath Interconnect Link 1 Performance Monitor - 3c46 Sandy Bridge Processor Home Agent Performance Monitoring - 3c71 Sandy Bridge Integrated Memory Controller RAS Registers - 3c80 Sandy Bridge QPI Link 0 - 3c83 Sandy Bridge QPI Link Reut 0 - 3c84 Sandy Bridge QPI Link Reut 0 - 3c86 Sandy Bridge QPI Port 0 DFX Link - 3c90 Sandy Bridge QPI Link 1 - 3c93 Sandy Bridge QPI Link Reut 1 - 3c94 Sandy Bridge QPI Link Reut 1 - 3c96 Sandy Bridge QPI Port 1 DFX Link - 3ca0 Sandy Bridge Processor Home Agent - 3ca8 Sandy Bridge Integrated Memory Controller Registers - 3caa Sandy Bridge Integrated Memory Controller Target Address Decoder 0 - 3cab Sandy Bridge Integrated Memory Controller Target Address Decoder 1 - 3cac Sandy Bridge Integrated Memory Controller Target Address Decoder 2 - 3cad Sandy Bridge Integrated Memory Controller Target Address Decoder 3 - 3cae Sandy Bridge Integrated Memory Controller Target Address Decoder 4 - 3cb0 Sandy Bridge Integrated Memory Controller Channel 0-3 Thermal Control 0 - 3cb1 Sandy Bridge Integrated Memory Controller Channel 0-3 Thermal Control 1 - 3cb2 Sandy Bridge Integrated Memory Controller ERROR Registers 0 - 3cb3 Sandy Bridge Integrated Memory Controller ERROR Registers 1 - 3cb4 Sandy Bridge Integrated Memory Controller Channel 0-3 Thermal Control 2 - 3cb5 Sandy Bridge Integrated Memory Controller Channel 0-3 Thermal Control 3 - 3cb6 Sandy Bridge Integrated Memory Controller ERROR Registers 2 - 3cb7 Sandy Bridge Integrated Memory Controller ERROR Registers 3 - 3cb8 Sandy Bridge DDRIO - 3cc0 Sandy Bridge Power Control Unit 0 - 3cc1 Sandy Bridge Power Control Unit 1 - 3cc2 Sandy Bridge Power Control Unit 2 - 3cd0 Sandy Bridge Power Control Unit 3 - 3ce0 Sandy Bridge Interrupt Control Registers - 3ce3 Sandy Bridge Semaphore and Scratchpad Configuration Registers - 3ce4 Sandy Bridge R2PCIe - 3ce6 Sandy Bridge QuickPath Interconnect Agent Ring Registers - 3ce8 Sandy Bridge Unicast Register 0 - 3ce9 Sandy Bridge Unicast Register 5 - 3cea Sandy Bridge Unicast Register 1 - 3ceb Sandy Bridge Unicast Register 6 - 3cec Sandy Bridge Unicast Register 3 - 3ced Sandy Bridge Unicast Register 7 - 3cee Sandy Bridge Unicast Register 4 - 3cef Sandy Bridge Unicast Register 8 - 3cf4 Sandy Bridge Integrated Memory Controller System Address Decoder 0 - 3cf5 Sandy Bridge Integrated Memory Controller System Address Decoder 1 - 3cf6 Sandy Bridge System Address Decoder + 3c00 Xeon E5/Core i7 DMI2 + 3c01 Xeon E5/Core i7 DMI2 in PCI Express Mode + 3c02 Xeon E5/Core i7 IIO PCI Express Root Port 1a + 3c03 Xeon E5/Core i7 IIO PCI Express Root Port 1b + 3c04 Xeon E5/Core i7 IIO PCI Express Root Port 2a + 3c05 Xeon E5/Core i7 IIO PCI Express Root Port 2b + 3c06 Xeon E5/Core i7 IIO PCI Express Root Port 2c + 3c07 Xeon E5/Core i7 IIO PCI Express Root Port 2d + 3c08 Xeon E5/Core i7 IIO PCI Express Root Port 3a in PCI Express Mode + 3c09 Xeon E5/Core i7 IIO PCI Express Root Port 3b + 3c0a Xeon E5/Core i7 IIO PCI Express Root Port 3c + 3c0b Xeon E5/Core i7 IIO PCI Express Root Port 3d + 3c0d Xeon E5/Core i7 Non-Transparent Bridge + 3c0e Xeon E5/Core i7 Non-Transparent Bridge + 3c0f Xeon E5/Core i7 Non-Transparent Bridge + 3c20 Xeon E5/Core i7 DMA Channel 0 + 3c21 Xeon E5/Core i7 DMA Channel 1 + 3c22 Xeon E5/Core i7 DMA Channel 2 + 3c23 Xeon E5/Core i7 DMA Channel 3 + 3c24 Xeon E5/Core i7 DMA Channel 4 + 3c25 Xeon E5/Core i7 DMA Channel 5 + 3c26 Xeon E5/Core i7 DMA Channel 6 + 3c27 Xeon E5/Core i7 DMA Channel 7 + 3c28 Xeon E5/Core i7 Address Map, VTd_Misc, System Management + 3c2a Xeon E5/Core i7 Control Status and Global Errors + 3c2c Xeon E5/Core i7 I/O APIC + 3c2e Xeon E5/Core i7 DMA + 3c2f Xeon E5/Core i7 DMA + 3c40 Xeon E5/Core i7 IIO Switch and IRP Performance Monitor + 3c43 Xeon E5/Core i7 Ring to PCI Express Performance Monitor + 3c44 Xeon E5/Core i7 Ring to QuickPath Interconnect Link 0 Performance Monitor + 3c45 Xeon E5/Core i7 Ring to QuickPath Interconnect Link 1 Performance Monitor + 3c46 Xeon E5/Core i7 Processor Home Agent Performance Monitoring + 3c71 Xeon E5/Core i7 Integrated Memory Controller RAS Registers + 3c80 Xeon E5/Core i7 QPI Link 0 + 3c83 Xeon E5/Core i7 QPI Link Reut 0 + 3c84 Xeon E5/Core i7 QPI Link Reut 0 + 3c90 Xeon E5/Core i7 QPI Link 1 + 3c93 Xeon E5/Core i7 QPI Link Reut 1 + 3c94 Xeon E5/Core i7 QPI Link Reut 1 + 3ca0 Xeon E5/Core i7 Processor Home Agent + 3ca8 Xeon E5/Core i7 Integrated Memory Controller Registers + 3caa Xeon E5/Core i7 Integrated Memory Controller Target Address Decoder 0 + 3cab Xeon E5/Core i7 Integrated Memory Controller Target Address Decoder 1 + 3cac Xeon E5/Core i7 Integrated Memory Controller Target Address Decoder 2 + 3cad Xeon E5/Core i7 Integrated Memory Controller Target Address Decoder 3 + 3cae Xeon E5/Core i7 Integrated Memory Controller Target Address Decoder 4 + 3cb0 Xeon E5/Core i7 Integrated Memory Controller Channel 0-3 Thermal Control 0 + 3cb1 Xeon E5/Core i7 Integrated Memory Controller Channel 0-3 Thermal Control 1 + 3cb2 Xeon E5/Core i7 Integrated Memory Controller ERROR Registers 0 + 3cb3 Xeon E5/Core i7 Integrated Memory Controller ERROR Registers 1 + 3cb4 Xeon E5/Core i7 Integrated Memory Controller Channel 0-3 Thermal Control 2 + 3cb5 Xeon E5/Core i7 Integrated Memory Controller Channel 0-3 Thermal Control 3 + 3cb6 Xeon E5/Core i7 Integrated Memory Controller ERROR Registers 2 + 3cb7 Xeon E5/Core i7 Integrated Memory Controller ERROR Registers 3 + 3cb8 Xeon E5/Core i7 DDRIO + 3cc0 Xeon E5/Core i7 Power Control Unit 0 + 3cc1 Xeon E5/Core i7 Power Control Unit 1 + 3cc2 Xeon E5/Core i7 Power Control Unit 2 + 3cd0 Xeon E5/Core i7 Power Control Unit 3 + 3ce0 Xeon E5/Core i7 Interrupt Control Registers + 3ce3 Xeon E5/Core i7 Semaphore and Scratchpad Configuration Registers + 3ce4 Xeon E5/Core i7 R2PCIe + 3ce6 Xeon E5/Core i7 QuickPath Interconnect Agent Ring Registers + 3ce8 Xeon E5/Core i7 Unicast Register 0 + 3ce9 Xeon E5/Core i7 Unicast Register 5 + 3cea Xeon E5/Core i7 Unicast Register 1 + 3ceb Xeon E5/Core i7 Unicast Register 6 + 3cec Xeon E5/Core i7 Unicast Register 3 + 3ced Xeon E5/Core i7 Unicast Register 7 + 3cee Xeon E5/Core i7 Unicast Register 4 + 3cef Xeon E5/Core i7 Unicast Register 8 + 3cf4 Xeon E5/Core i7 Integrated Memory Controller System Address Decoder 0 + 3cf5 Xeon E5/Core i7 Integrated Memory Controller System Address Decoder 1 + 3cf6 Xeon E5/Core i7 System Address Decoder 4000 5400 Chipset Memory Controller Hub 4001 5400 Chipset Memory Controller Hub 4003 5400 Chipset Memory Controller Hub @@ -18943,13 +20212,13 @@ 4117 Atom Processor E6xx PCI Host Bridge #4 4220 PRO/Wireless 2200BG [Calexico2] Network Connection 103c 0934 Compaq nw8240/nx8220 - 103c 12f6 Compaq nw8240/nx8220 + 103c 12f6 nc6120/nx8220/nw8240 8086 2712 IBM ThinkPad R50e 8086 2721 Dell B130 laptop integrated WLAN 8086 2722 Dell Latitude D600 8086 2731 Samsung P35 integrated WLAN 4222 PRO/Wireless 3945ABG [Golan] Network Connection - 103c 135c Compaq 6710b or nx9420 Notebook + 103c 135c PRO/Wireless 3945ABG [Golan] Network Connection 8086 1000 PRO/Wireless 3945ABG Network Connection 8086 1001 PRO/Wireless 3945ABG Network Connection 8086 1005 PRO/Wireless 3945BG Network Connection @@ -19249,6 +20518,80 @@ 8817 Platform Controller Hub EG20T I2C Controller 8818 Platform Controller Hub EG20T Controller Area Network (CAN) Controller 8819 Platform Controller Hub EG20T IEEE 1588 Hardware Assist + 8c00 Lynx Point 4-port SATA Controller 1 [IDE mode] + 8c01 Lynx Point 4-port SATA Controller 1 [IDE mode] + 8c02 Lynx Point 6-port SATA Controller 1 [AHCI mode] + 8c03 Lynx Point 6-port SATA Controller 1 [AHCI mode] + 8c04 Lynx Point SATA Controller 1 [RAID mode] + 8c05 Lynx Point SATA Controller 1 [RAID mode] + 8c06 Lynx Point SATA Controller 1 [RAID mode] + 8c07 Lynx Point SATA Controller 1 [RAID mode] + 8c08 Lynx Point 2-port SATA Controller 2 [IDE mode] + 8c09 Lynx Point 2-port SATA Controller 2 [IDE mode] + 8c0e Lynx Point SATA Controller 1 [RAID mode] + 8c0f Lynx Point SATA Controller 1 [RAID mode] + 8c10 Lynx Point PCI Express Root Port #1 + 8c11 Lynx Point PCI Express Root Port #1 + 8c12 Lynx Point PCI Express Root Port #2 + 8c13 Lynx Point PCI Express Root Port #2 + 8c14 Lynx Point PCI Express Root Port #3 + 8c15 Lynx Point PCI Express Root Port #3 + 8c16 Lynx Point PCI Express Root Port #4 + 8c17 Lynx Point PCI Express Root Port #4 + 8c18 Lynx Point PCI Express Root Port #5 + 8c19 Lynx Point PCI Express Root Port #5 + 8c1a Lynx Point PCI Express Root Port #6 + 8c1b Lynx Point PCI Express Root Port #6 + 8c1c Lynx Point PCI Express Root Port #7 + 8c1d Lynx Point PCI Express Root Port #7 + 8c1e Lynx Point PCI Express Root Port #8 + 8c1f Lynx Point PCI Express Root Port #8 + 8c20 Lynx Point High Definition Audio Controller + 8c21 Lynx Point High Definition Audio Controller + 8c22 Lynx Point SMBus Controller + 8c23 Lynx Point CHAP Counters + 8c24 Lynx Point Thermal Management Controller + 8c26 Lynx Point USB Enhanced Host Controller #1 + 8c2d Lynx Point USB Enhanced Host Controller #2 + 8c31 Lynx Point USB xHCI Host Controller + 8c33 Lynx Point LAN Controller + 8c34 Lynx Point NAND Controller + 8c3a Lynx Point MEI Controller #1 + 8c3b Lynx Point MEI Controller #2 + 8c3c Lynx Point IDE-r Controller + 8c3d Lynx Point KT Controller + 8c40 Lynx Point LPC Controller + 8c41 Lynx Point LPC Controller + 8c42 Lynx Point LPC Controller + 8c43 Lynx Point LPC Controller + 8c44 Lynx Point LPC Controller + 8c45 Lynx Point LPC Controller + 8c46 Lynx Point LPC Controller + 8c47 Lynx Point LPC Controller + 8c48 Lynx Point LPC Controller + 8c49 Lynx Point LPC Controller + 8c4a Lynx Point LPC Controller + 8c4b Lynx Point LPC Controller + 8c4c Lynx Point LPC Controller + 8c4d Lynx Point LPC Controller + 8c4e Lynx Point LPC Controller + 8c4f Lynx Point LPC Controller + 8c50 Lynx Point LPC Controller + 8c51 Lynx Point LPC Controller + 8c52 Lynx Point LPC Controller + 8c53 Lynx Point LPC Controller + 8c54 Lynx Point LPC Controller + 8c55 Lynx Point LPC Controller + 8c56 Lynx Point LPC Controller + 8c57 Lynx Point LPC Controller + 8c58 Lynx Point LPC Controller + 8c59 Lynx Point LPC Controller + 8c5a Lynx Point LPC Controller + 8c5b Lynx Point LPC Controller + 8c5c Lynx Point LPC Controller + 8c5d Lynx Point LPC Controller + 8c5e Lynx Point LPC Controller + 8c5f Lynx Point LPC Controller 9000 IXP2000 Family Network Processor 9001 IXP2400 Network Processor 9002 IXP2300 Network Processor @@ -19257,16 +20600,75 @@ 9622 Integrated RAID 9641 Integrated RAID 96a1 Integrated RAID - a000 N10 Family DMI Bridge + 9c00 Lynx Point-LP SATA Controller 1 [IDE mode] + 9c01 Lynx Point-LP SATA Controller 1 [IDE mode] + 9c02 Lynx Point-LP SATA Controller 1 [AHCI mode] + 9c03 Lynx Point-LP SATA Controller 1 [AHCI mode] + 9c04 Lynx Point-LP SATA Controller 1 [RAID mode] + 9c05 Lynx Point-LP SATA Controller 1 [RAID mode] + 9c06 Lynx Point-LP SATA Controller 1 [RAID mode] + 9c07 Lynx Point-LP SATA Controller 1 [RAID mode] + 9c08 Lynx Point-LP SATA Controller 2 [IDE mode] + 9c09 Lynx Point-LP SATA Controller 2 [IDE mode] + 9c0a LynxPoint-LP SATA Controller [Reserved] + 9c0b LynxPoint-LP SATA Controller [Reserved] + 9c0c LynxPoint-LP SATA Controller [Reserved] + 9c0d LynxPoint-LP SATA Controller [Reserved] + 9c0e Lynx Point-LP SATA Controller 1 [RAID mode] + 9c0f Lynx Point-LP SATA Controller 1 [RAID mode] + 9c10 Lynx Point-LP PCI Express Root Port 1 + 9c11 Lynx Point-LP PCI Express Root Port 1 + 9c12 Lynx Point-LP PCI Express Root Port 2 + 9c13 Lynx Point-LP PCI Express Root Port 2 + 9c14 Lynx Point-LP PCI Express Root Port 3 + 9c15 Lynx Point-LP PCI Express Root Port 3 + 9c16 Lynx Point-LP PCI Express Root Port 4 + 9c17 Lynx Point-LP PCI Express Root Port 4 + 9c18 Lynx Point-LP PCI Express Root Port 5 + 9c19 Lynx Point-LP PCI Express Root Port 5 + 9c1a Lynx Point-LP PCI Express Root Port 6 + 9c1b Lynx Point-LP PCI Express Root Port 6 + 9c20 Lynx Point-LP HD Audio Controller + 9c21 Lynx Point-LP HD Audio Controller + 9c22 Lynx Point-LP SMBus Controller + 9c23 Lynx Point-LP CHAP Counters + 9c24 Lynx Point-LP Thermal + 9c26 Lynx Point-LP USB EHCI #1 + 9c31 Lynx Point-LP USB xHCI HC + 9c35 Lynx Point-LP SDIO Controller + 9c36 Lynx Point-LP Audio DSP Controller + 9c3a Lynx Point-LP HECI #0 + 9c3b Lynx Point-LP HECI #1 + 9c3c Lynx Point-LP HECI IDER + 9c3d Lynx Point-LP HECI KT + 9c40 Lynx Point-LP LPC Controller + 9c41 Lynx Point-LP LPC Controller + 9c42 Lynx Point-LP LPC Controller + 9c43 Lynx Point-LP LPC Controller + 9c44 Lynx Point-LP LPC Controller + 9c45 Lynx Point-LP LPC Controller + 9c46 Lynx Point-LP LPC Controller + 9c47 Lynx Point-LP LPC Controller + 9c60 Lynx Point-LP Low Power Sub-System DMA + 9c61 Lynx Point-LP I2C Controller #0 + 9c62 Lynx Point-LP I2C Controller #1 + 9c63 Lynx Point-LP UART Controller #0 + 9c64 Lynx Point-LP UART Controller #1 + 9c65 Lynx Point-LP SPI Controller #0 + 9c66 Lynx Point-LP SPI Controller #1 + a000 Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge 8086 4f4d DeskTop Board D510MO - a001 N10 Family Integrated Graphics Controller + a001 Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller 8086 4f4d DeskTop Board D510MO - a002 N10 Family Integrated Graphics Controller - a003 N10 Family CHAPS counter - a010 N10 Family DMI Bridge - a011 N10 Family Integrated Graphics Controller - a012 N10 Family Integrated Graphics Controller - a013 N10 Family CHAPS counter + a002 Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller + a003 Atom Processor D4xx/D5xx/N4xx/N5xx CHAPS counter + a010 Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge + 144d c072 Notebook N150P + a011 Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller + 144d c072 Notebook N150P + a012 Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller + 144d c072 Notebook N150P + a013 Atom Processor D4xx/D5xx/N4xx/N5xx CHAPS counter a620 6400/6402 Advanced Memory Buffer (AMB) b152 21152 PCI-to-PCI Bridge 8086 b152 21152 PCI-to-PCI Bridge @@ -19281,6 +20683,7 @@ e4bf 1000 CC8-1-BLUES d130 Core Processor DMI d131 Core Processor DMI + 1028 02da OptiPlex 980 d132 Core Processor DMI 1028 040b Latitude E6510 d133 Core Processor DMI @@ -19289,6 +20692,8 @@ d136 Core Processor DMI d137 Core Processor DMI d138 Core Processor PCI Express Root Port 1 + 1028 02da OptiPlex 980 + 1028 040b Latitude E6510 d139 Core Processor PCI Express Root Port 2 d13a Core Processor PCI Express Root Port 3 d13b Core Processor PCI Express Root Port 4 @@ -19609,6 +21014,31 @@ 9005 02b3 2400 9005 02b4 ICP ICP5045AL 9005 0800 Callisto + 028b Series 6 - 6G SAS/PCIe 2 + 9005 0200 Series 6 Entry Level - ASR-6405E - 4 internal 6G SAS ports + 9005 0201 Series 6 Entry Level - ASR-6805E - 8 internal 6G SAS ports + 9005 0300 Series 6 - ASR-6405 - 4 internal 6G SAS ports + 9005 0301 Series 6 - ASR-6805 - 8 internal 6G SAS ports + 9005 0302 Series 6 - ASR-6445 - 4 internal and 4 external 6G SAS ports + 9005 0310 Series 6 Connectors on Top - ASR-6405T - 4 internal 6G SAS ports + 9005 0311 Series 6 Connectors on Top - ASR-6805T - 8 internal 6G SAS + 9005 0400 Series 6 - ASR-61205 - 12 internal 6G SAS ports + 9005 0401 Series 6 - ASR-61605 - 16 internal 6G SAS ports + 9005 0403 Series 6 - ASR-62405 - 24 internal 6G SAS ports + 028c Series 7 6G SAS/PCIe 3 + 9005 0500 Series 7 - ASR-7805 - 8 internal 6G SAS Port/PCIe 3.0 + 9005 0501 Series 7 - ASR-71605 - 16 internal 6G SAS Port/PCIe 3.0 + 9005 0502 Series 7 - ASR-71685 - 16 internal 8 external 6G SAS Port/PCIe 3.0 + 9005 0503 Series 7 - ASR-72405 - 24 internal 0 external 6G SAS Port/PCIe 3.0 + 9005 0504 Series 7 - ASR-7885 - 8 internal 8 external 6G SAS Port/PCIe 3.0 + 9005 0505 Series 7 Entry Level - ASR-71685E - 16 internal 8 external 6G SAS Port/PCIe 3.0 + 9005 0506 Series 7 Entry Level - ASR-72405E - 24 internal 0 external 6G SAS Port/PCIe 3.0 + 028d Series 8 12G SAS/PCIe 3 + 9005 0550 Series 8 - ASR-82405 - 24 internal 0 external 12G SAS Port/PCIe 3.0 + 9005 0551 Series 8 - ASR-81605 - 16 internal 0 external 12G SAS Port/PCIe 3.0 + 9005 0552 Series 8 - ASR-8805 - 8 internal 0 external 12G SAS Port/PCIe 3.0 + 9005 0553 Series 8 - ASR-8085 - 0 internal 8 external 12G SAS Port/PCIe 3.0 + 9005 0554 Series 8 - ASR-8885 - 8 internal 8 external 12G SAS Port/PCIe 3.0 0410 AIC-9410W SAS (Razor HBA RAID) 9005 0410 ASC-48300(Spirit RAID) 9005 0411 ASC-58300 (Oakmont RAID) @@ -19677,6 +21107,8 @@ 919a Gigapixel Corp 9412 Holtek 6565 6565 +9618 JusonTech Corporation + 0001 JusonTech Gigabit Ethernet Controller 9699 Omni Media Technology Inc 6565 6565 9710 NetMos Technology @@ -19702,6 +21134,8 @@ 9865 PCI 9865 Multi-I/O Controller 9901 PCIe 9901 Multi-I/O Controller 9904 4-Port PCIe Serial Adapter +# 2-port Serial 1-port Parallel Adaptor + 9912 PCIe 9912 Multi-I/O Controller 9922 PCIe 9922 Multi-I/O Controller 9990 MCS9990 PCIe to 4‐Port USB 2.0 Host Controller 9902 Stargen Inc. @@ -19752,6 +21186,7 @@ cace CACE Technologies, Inc. 0023 AirPcap N cafe Chrysalis-ITS 0003 Luna K3 Hardware Security Module + 0006 Luna PCI-e 3000 Hardware Security Module cccc Catapult Communications ccec Curtiss-Wright Controls Embedded Computing cddd Tyzx, Inc. @@ -19787,7 +21222,16 @@ d4d4 Dy4 Systems Inc 0601 PCI Mezzanine Card d531 I+ME ACTIA GmbH d84d Exsys +dada Datapath Limited db10 Diablo Technologies +dcba Dynamic Engineering + 0046 PCIeAlteraCycloneIV +# VPX format Receiver Controller Board + 0047 VPX-RCB +# PMC Format FPGA design with 8 high speed UART channels + 0048 PMC-Biserial-III-BAE9 +dd01 Digital Devices GmbH + 0003 Octopus LE DVB adapter dead Indigita Corporation deaf Middle Digital Inc. 9050 PC Weasel Virtual VGA @@ -19807,6 +21251,15 @@ e159 Tiger Jet Network Inc. 0002 Tiger100APC ISDN chipset e1c5 Elcus e4bf EKF Elektronik GmbH + 0ccd CCD-CALYPSO + 0cd1 CD1-OPERA + 0cd2 CD2-BEBOP + 0cd3 CD3-JIVE + 50c1 PC1-GROOVE + 50c2 PC2-LIMBO + 53c1 SC1-ALLEGRO + cc47 CCG-RUMBA + cc4d CCM-BOOGIE e55e Essence Technology, Inc. ea01 Eagle Technology 000a PCI-773 Temperature Card @@ -20030,6 +21483,7 @@ C 08 Generic system peripheral 01 ISA RTC 04 PCI Hot-plug controller 05 SD Host controller + 06 IOMMU 80 System peripheral C 09 Input device controller 00 Keyboard controller @@ -20057,7 +21511,7 @@ C 0c Serial bus controller 10 OHCI 01 ACCESS Bus 02 SSA - 03 USB Controller + 03 USB controller 00 UHCI 10 OHCI 20 EHCI diff --git a/share/mk/Makefile b/share/mk/Makefile index 64c6549..5bab862 100644 --- a/share/mk/Makefile +++ b/share/mk/Makefile @@ -3,7 +3,8 @@ FILES= bsd.README FILES+= bsd.arch.inc.mk -FILES+= bsd.compat.mk bsd.cpu.mk bsd.dep.mk bsd.doc.mk bsd.dtrace.mk +FILES+= bsd.compat.mk bsd.compiler.mk bsd.cpu.mk +FILES+= bsd.dep.mk bsd.doc.mk bsd.dtrace.mk FILES+= bsd.endian.mk FILES+= bsd.files.mk bsd.crunchgen.mk bsd.incs.mk bsd.info.mk bsd.init.mk FILES+= bsd.kmod.mk diff --git a/share/mk/bsd.compiler.mk b/share/mk/bsd.compiler.mk new file mode 100644 index 0000000..02d152e --- /dev/null +++ b/share/mk/bsd.compiler.mk @@ -0,0 +1,27 @@ +# $FreeBSD$ + +.if !defined(COMPILER_TYPE) +. if ${CC:T:Mgcc} == "gcc" +COMPILER_TYPE:= gcc +. elif ${CC:T:Mclang} == "clang" +COMPILER_TYPE:= clang +. else +_COMPILER_VERSION!= ${CC} --version +. if ${_COMPILER_VERSION:Mgcc} == "gcc" +COMPILER_TYPE:= gcc +. elif ${_COMPILER_VERSION:M\(GCC\)} == "(GCC)" +COMPILER_TYPE:= gcc +. elif ${_COMPILER_VERSION:Mclang} == "clang" +COMPILER_TYPE:= clang +. else +.error Unable to determing compiler type for ${CC} +. endif +. undef _COMPILER_VERSION +. endif +.endif + +.if ${COMPILER_TYPE} == "clang" +COMPILER_FEATURES= c++11 +.else +COMPILER_FEATURES= +.endif diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk index 0670bff..4f9527c 100644 --- a/share/mk/bsd.cpu.mk +++ b/share/mk/bsd.cpu.mk @@ -97,9 +97,13 @@ _CPUCFLAGS = -march=${CPUTYPE} . if ${CPUTYPE} == "xscale" #XXX: gcc doesn't seem to like -mcpu=xscale, and dies while rebuilding itself #_CPUCFLAGS = -mcpu=xscale -_CPUCFLAGS = -march=armv5te -D__XSCALE__ +_CPUCFLAGS = -march=armv5te -D__XSCALE__ -DARM_WANT_TP_ADDRESS +. elif ${CPUTYPE} == "armv6" +_CPUCFLAGS = -march=${CPUTYPE} -DARM_ARCH_6=1 +. elif ${CPUTYPE} == "cortexa" +_CPUCFLAGS = -march=armv6 -DARM_ARCH_6=1 -mfpu=vfp . else -_CPUCFLAGS = -mcpu=${CPUTYPE} +_CPUCFLAGS = -mcpu=${CPUTYPE} -DARM_WANT_TP_ADDRESS . endif . elif ${MACHINE_ARCH} == "powerpc" . if ${CPUTYPE} == "e500" diff --git a/share/mk/bsd.dep.mk b/share/mk/bsd.dep.mk index d65d3c1..64e0d3c 100644 --- a/share/mk/bsd.dep.mk +++ b/share/mk/bsd.dep.mk @@ -139,8 +139,10 @@ depend: beforedepend ${DEPENDFILE} afterdepend # Different types of sources are compiled with slightly different flags. # Split up the sources, and filter out headers and non-applicable flags. -MKDEP_CFLAGS= ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BIDU]*} ${CFLAGS:M-std=*} ${CFLAGS:M-ansi} -MKDEP_CXXFLAGS= ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BIDU]*} ${CXXFLAGS:M-std=*} ${CXXFLAGS:M-ansi} +MKDEP_CFLAGS= ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BIDU]*} ${CFLAGS:M-std=*} \ + ${CFLAGS:M-ansi} +MKDEP_CXXFLAGS= ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BIDU]*} \ + ${CXXFLAGS:M-std=*} ${CXXFLAGS:M-ansi} ${CXXFLAGS:M-stdlib=*} DPSRCS+= ${SRCS} ${DEPENDFILE}: ${DPSRCS} diff --git a/share/mk/bsd.endian.mk b/share/mk/bsd.endian.mk index c4381bc..12dcbc0 100644 --- a/share/mk/bsd.endian.mk +++ b/share/mk/bsd.endian.mk @@ -4,12 +4,14 @@ ${MACHINE_ARCH} == "i386" || \ ${MACHINE_ARCH} == "ia64" || \ ${MACHINE_ARCH} == "arm" || \ + ${MACHINE_ARCH} == "armv6" || \ ${MACHINE_ARCH:Mmips*el} != "" TARGET_ENDIANNESS= 1234 .elif ${MACHINE_ARCH} == "powerpc" || \ ${MACHINE_ARCH} == "powerpc64" || \ ${MACHINE_ARCH} == "sparc64" || \ ${MACHINE_ARCH} == "armeb" || \ + ${MACHINE_ARCH} == "armv6eb" || \ ${MACHINE_ARCH:Mmips*} != "" TARGET_ENDIANNESS= 4321 .endif diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index 9a86e0c..236e12d 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -74,7 +74,7 @@ PO_FLAG=-pg ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} -.cc.o: +.cc.o .C.o .cpp.o .cxx.o: ${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} .cc.po .C.po .cpp.po .cxx.po: diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk index 075833b..bcaec4b 100644 --- a/share/mk/bsd.libnames.mk +++ b/share/mk/bsd.libnames.mk @@ -13,6 +13,8 @@ LIBCRT0?= ${DESTDIR}${LIBDIR}/crt0.o LIBALIAS?= ${DESTDIR}${LIBDIR}/libalias.a LIBARCHIVE?= ${DESTDIR}${LIBDIR}/libarchive.a LIBASN1?= ${DESTDIR}${LIBDIR}/libasn1.a +LIBATF_C?= ${DESTDIR}${LIBDIR}/libatf-c.a +LIBATF_CXX?= ${DESTDIR}${LIBDIR}/libatf-c++.a LIBATM?= ${DESTDIR}${LIBDIR}/libatm.a LIBAUDITD?= ${DESTDIR}${LIBDIR}/libauditd.a LIBAVL?= ${DESTDIR}${LIBDIR}/libavl.a @@ -97,9 +99,6 @@ LIBMENU?= ${DESTDIR}${LIBDIR}/libmenu.a LIBMILTER?= ${DESTDIR}${LIBDIR}/libmilter.a .endif LIBMP?= ${DESTDIR}${LIBDIR}/libmp.a -.if ${MK_NCP} != "no" -LIBNCP?= ${DESTDIR}${LIBDIR}/libncp.a -.endif LIBNCURSES?= ${DESTDIR}${LIBDIR}/libncurses.a LIBNCURSESW?= ${DESTDIR}${LIBDIR}/libncursesw.a LIBNETGRAPH?= ${DESTDIR}${LIBDIR}/libnetgraph.a @@ -146,7 +145,6 @@ LIBRT?= ${DESTDIR}${LIBDIR}/librt.a LIBRTLD_DB?= ${DESTDIR}${LIBDIR}/librtld_db.a LIBSBUF?= ${DESTDIR}${LIBDIR}/libsbuf.a LIBSDP?= ${DESTDIR}${LIBDIR}/libsdp.a -LIBSMB?= ${DESTDIR}${LIBDIR}/libsmb.a LIBSSH?= ${DESTDIR}${LIBDIR}/libssh.a LIBSSL?= ${DESTDIR}${LIBDIR}/libssl.a LIBSTAND?= ${DESTDIR}${LIBDIR}/libstand.a diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index e927cff..52aac91 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -254,6 +254,7 @@ WITHOUT_${var}= INFO \ IPFILTER \ IPX \ + KDUMP \ KERBEROS \ LIB32 \ LIBPTHREAD \ @@ -305,6 +306,7 @@ __DEFAULT_YES_OPTIONS = \ APM \ ASSERT_DEBUG \ AT \ + ATF \ ATM \ AUDIT \ AUTHPF \ @@ -357,6 +359,7 @@ __DEFAULT_YES_OPTIONS = \ IPFW \ IPX \ JAIL \ + KDUMP \ KERBEROS \ KERNEL_SYMBOLS \ KVM \ @@ -372,7 +375,6 @@ __DEFAULT_YES_OPTIONS = \ MAILWRAPPER \ MAKE \ MAN \ - NCP \ NDIS \ NETCAT \ NETGRAPH \ @@ -385,6 +387,7 @@ __DEFAULT_YES_OPTIONS = \ OPENSSL \ PAM \ PF \ + PKGBOOTSTRAP \ PKGTOOLS \ PMC \ PORTSNAP \ @@ -415,13 +418,14 @@ __DEFAULT_YES_OPTIONS = \ __DEFAULT_NO_OPTIONS = \ AUTO_OBJ \ + BMAKE \ BSD_GREP \ - BSD_SORT \ BIND_IDN \ BIND_LARGE_FILE \ BIND_LIBS \ BIND_SIGCHASE \ BIND_XML \ + BSDCONFIG \ CLANG_EXTRAS \ CLANG_IS_CC \ CTF \ @@ -429,7 +433,6 @@ __DEFAULT_NO_OPTIONS = \ ICONV \ IDEA \ INSTALL_AS_USER \ - LIBCPLUSPLUS \ META_MODE \ NAND \ OFED \ @@ -551,10 +554,6 @@ MK_CLANG:= no MK_GROFF:= no .endif -.if ${MK_IPX} == "no" -MK_NCP:= no -.endif - .if ${MK_MAIL} == "no" MK_MAILWRAPPER:= no MK_SENDMAIL:= no @@ -652,9 +651,36 @@ MK_${vv:H}:= ${MK_${vv:T}} .endif .endfor +# +# MK_* options that default to "yes" if the compiler is a C++11 compiler. +# +.include <bsd.compiler.mk> +.for var in \ + LIBCPLUSPLUS +.if defined(WITH_${var}) && defined(WITHOUT_${var}) +.error WITH_${var} and WITHOUT_${var} can't both be set. +.endif +.if defined(MK_${var}) +.error MK_${var} can't be set by a user. +.endif +.if ${COMPILER_FEATURES:Mc++11} +.if defined(WITHOUT_${var}) +MK_${var}:= no +.else +MK_${var}:= yes +.endif +.else +.if defined(WITH_${var}) +MK_${var}:= yes +.else +MK_${var}:= no +.endif +.endif +.endfor + .if ${MK_CTF} != "no" CTFCONVERT_CMD= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} -.elif ${MAKE_VERSION} >= 5201111300 +.elif defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300 CTFCONVERT_CMD= .else CTFCONVERT_CMD= @: diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk index ce62619..82a3b07 100644 --- a/share/mk/bsd.prog.mk +++ b/share/mk/bsd.prog.mk @@ -130,10 +130,14 @@ _EXTRADEPEND: .else echo ${PROG}: ${LIBC} ${DPADD} >> ${DEPENDFILE} .if defined(PROG_CXX) +.if !empty(CXXFLAGS:M-stdlib=libc++) + echo ${PROG}: ${LIBCPLUSPLUS} >> ${DEPENDFILE} +.else echo ${PROG}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE} .endif .endif .endif +.endif .if !target(install) @@ -245,7 +249,7 @@ stage_files.prog: ${PROG} .endif .if !empty(SYMLINKS) all: stage_symlinks -stage_symlinks.prog: ${SYMLINKS} +STAGE_SYMLINKS.prog= ${SYMLINKS} .endif .endif diff --git a/share/mk/bsd.progs.mk b/share/mk/bsd.progs.mk new file mode 100644 index 0000000..531c2ef --- /dev/null +++ b/share/mk/bsd.progs.mk @@ -0,0 +1,350 @@ +# from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 +# $FreeBSD$ + +.include <bsd.init.mk> + +.SUFFIXES: .out .o .c .cc .cpp .cxx .C .m .y .l .ln .s .S .asm + +.if ${MK_MAN} == "no" +NO_MAN= +.endif + +# Legacy knobs +.if defined(PROG) || defined(PROG_CXX) +. if defined(PROG) +PROGS= ${PROG} +. endif +. if defined(PROG_CXX) +PROGS= ${PROG_CXX} +PROGS_CXX= ${PROG_CXX} +. endif +# Loop once to keep pattern and avoid namespace pollution +. for _P in ${PROGS} +. if defined(INTERNALPROG) +INTERNALPROG.${_P}= +. endif +. if !defined(NO_MAN) +. if defined(MAN) +MAN.${_P}= ${MAN} +. else +. for sect in 1 1aout 2 3 4 5 6 7 8 9 +. if defined(MAN${sect}) +MAN.${_P}= ${MAN${sect}} +. endif +. endfor +. endif +. endif # defined(NO_MAN) +. if defined(NLSNAME) && !empty(NLSNAME) +NLSNAME.${P}:= ${NLSNAME} +. endif +. if defined(OBJS) +OBJS.${_P}:= ${OBJS} +. endif +. if defined(PRECIOUSPROG) +PRECIOUSPROG.${_P}= +. endif +. if defined(PROGNAME) +PROGNAME.${_P}= ${PROGNAME} +. endif +. if defined(SRCS) +SRCS.${_P}:= ${SRCS} +. endif +. endfor +.else # !defined(PROG) && !defined(PROG_CXX) +. if defined(PROGS_CXX) && !empty(PROGS_CXX) +PROGS+= ${PROGS_CXX} +. endif +.endif # defined(PROG) || defined(PROG_CXX) + +.if defined(PROGS_CXX) && !empty(PROGS_CXX) +. for _P in ${PROGS_CXX} +PROG_CXX.${_P}= +. endfor +.endif + +# Avoid recursive variables +.undef NLSNAME + +.if defined(COPTS) +CFLAGS+=${COPTS} +.endif + +.if defined(DEBUG_FLAGS) +. if ${MK_CTF} != "no" && ${DEBUG_FLAGS:M-g} != "" +CTFFLAGS+= -g +. endif +CFLAGS+=${DEBUG_FLAGS} +CXXFLAGS+=${DEBUG_FLAGS} +.endif + +STRIP?= -s + +.if ${MK_ASSERT_DEBUG} == "no" +CFLAGS+= -DNDEBUG +NO_WERROR= +.endif + +.for _P in ${PROGS} + +BINDIR.${_P}?= ${BINDIR} +BINGRP.${_P}?= ${BINGRP} +BINMODE.${_P}?= ${BINMODE} +BINOWN.${_P}?= ${BINOWN} + +CFLAGS.${_P}+= ${CFLAGS} +CXXFLAGS.${_P}+= ${CXXFLAGS} +DPADD.${_P}+= ${DPADD} +LDADD.${_P}+= ${LDADD} +LDFLAGS.${_P}+= ${LDFLAGS} + +INSTALLFLAGS.${_P}?= ${INSTALLFLAGS} + +. if defined(PRECIOUSPROG.${_P}) +. if !defined(NO_FSCHG) && !defined(NO_FSCHG.${_P}) +INSTALLFLAGS.${_P}+= -fschg +. endif +INSTALLFLAGS.${_P}+= -S +. endif + +NO_SHARED.${_P}?= ${NO_SHARED} + +. if !defined(NLSDIR.${_P}) +NLSDIR.${_P}:= ${NLSDIR} +. endif +. undef NLSDIR + +. if !empty(NO_SHARED.${_P}) && ${NO_SHARED.${_P}:tl} != "no" +LDFLAGS.${_P}+= -static +. endif + +. if defined(SRCS.${_P}) + +_SRCS:= ${SRCS.${_P}} +OBJS.${_P}+= ${_SRCS:N*.h:R:S/$/.o/g} + +. if target(beforelinking) +${_P}: ${OBJS.${_P}} beforelinking +. else +${_P}: ${OBJS.${_P}} +. endif +. if defined(PROG_CXX.${_P}) + ${CXX} ${CXXFLAGS.${_P}} ${LDFLAGS.${_P}} -o ${.TARGET} ${OBJS.${_P}} \ + ${LDADD.${_P}} +. else + ${CC} ${CFLAGS.${_P}} ${LDFLAGS.${_P}} -o ${.TARGET} ${OBJS.${_P}} \ + ${LDADD.${_P}} +. endif +. if ${MK_CTF} != "no" + ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${OBJS.${_P}} +. endif + +. else # !defined(SRCS.${_P}) + +. if !target(${_P}) +. if defined(PROG_CXX.${_P}) +SRCS.${_P}?= ${_P}.cc +. else +SRCS.${_P}?= ${_P}.c +. endif + +# Always make an intermediate object file because: +# - it saves time rebuilding when only the library has changed +# - the name of the object gets put into the executable symbol table instead of +# the name of a variable temporary object. +# - it's useful to keep objects around for crunching. +OBJS.${_P}:= ${_P}.o + +. if target(beforelinking) +${_P}: ${OBJS.${_P}} beforelinking +. else +${_P}: ${OBJS.${_P}} +. endif # target(beforelinking) +. if defined(PROG_CXX.${_P}) + ${CXX} ${CXXFLAGS.${_P}} ${LDFLAGS.${_P}} -o ${.TARGET} ${OBJS.${_P}} \ + ${LDADD.${_P}} +. else + ${CC} ${CFLAGS.${_P}} ${LDFLAGS.${_P}} -o ${.TARGET} ${OBJS.${_P}} \ + ${LDADD.${_P}} +. endif +. if ${MK_CTF} != "no" + ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${OBJS.${_P}} +. endif + +. endif # !target(${_P}) + +. endif # defined(SRCS.${_P}) + +CLEANFILES+= ${OBJS.${_P}} + +.endfor # for _P in ${PROGS} + +all: objwarn ${PROGS} ${SCRIPTS} + +.if !defined(NO_MAN) +. for _P in ${PROGS} +MAN.${_P}?= ${_P}.1 +MAN:= ${MAN.${_P}} +. include <bsd.man.mk> +. endfor +. if target(_manpages) # bsd.man.mk was included +all: _manpages +. endif +.endif + +CLEANFILES+= ${PROGS} + +.include <bsd.libnames.mk> + +_EXTRADEPEND: +.for _P in ${PROGS} +. if !empty(LDFLAGS.${P}:M-nostdlib) +. if !empty(DPADD.${_P}) + echo ${_P}: ${DPADD.${_P}} >> ${DEPENDFILE} +. endif +. else + echo ${_P}: ${LIBC} ${DPADD.${_P}} >> ${DEPENDFILE} +. if defined(PROG_CXX.${_P}) +. if !empty(CXXFLAGS.${P}:M-stdlib=libc++) + echo ${_P}: ${LIBCPLUSPLUS} >> ${DEPENDFILE} +. else + echo ${_P}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE} +. endif +. endif +. endif +.endfor + +.if !target(install) + +. if !target(realinstall) + +. for _P in ${PROGS} + +. if !defined(INTERNALPROG.${_P}) + +.ORDER: beforeinstall _proginstall.${_P} +_proginstall.${_P}: +. if defined(PROGNAME.${_P}) + ${INSTALL} ${STRIP} -o ${BINOWN.${_P}} -g ${BINGRP.${_P}} \ + -m ${BINMODE.${_P}} ${INSTALLFLAGS.${_P}} ${_P} \ + ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} +. else + ${INSTALL} ${STRIP} -o ${BINOWN.${_P}} -g ${BINGRP.${_P}} \ + -m ${BINMODE.${_P}} ${INSTALLFLAGS.${_P}} ${_P} \ + ${DESTDIR}${BINDIR.${_P}} +. endif + +realinstall: _proginstall.${_P} + +. endif # !defined(INTERNALPROG.${_P}) + +. endfor # for _P in ${PROGS} + +. endif # !target(realinstall) + +. if defined(SCRIPTS) && !empty(SCRIPTS) +SCRIPTSDIR?= ${BINDIR} +SCRIPTSOWN?= ${BINOWN} +SCRIPTSGRP?= ${BINGRP} +SCRIPTSMODE?= ${BINMODE} + +. for S in ${SCRIPTS} + +realinstall: scriptsinstall +.ORDER: beforeinstall scriptsinstall + +. if defined(SCRIPTSNAME) +SCRIPTSNAME_${S}?= ${SCRIPTSNAME} +. else +SCRIPTSNAME_${S}?= ${S:T:R} +. endif + +SCRIPTSDIR_${S}?= ${SCRIPTSDIR} +SCRIPTSOWN_${S}?= ${SCRIPTSOWN} +SCRIPTSGRP_${S}?= ${SCRIPTSGRP} +SCRIPTSMODE_${S}?= ${SCRIPTSMODE} + +scriptsinstall: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}} + +${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}: ${S} + ${INSTALL} -o ${SCRIPTSOWN_${S}} \ + -g ${SCRIPTSGRP_${S}} \ + -m ${SCRIPTSMODE_${S}} \ + ${.ALLSRC} \ + ${.TARGET} + +. endfor # for S in ${SCRIPTS} + +. endif # defined(SCRIPTS) && !empty(SCRIPTS) + +.endif # !target(install) + +.if !defined(NO_MAN) +. if target(_manpages) # bsd.man.mk was included +realinstall: _maninstall +. endif +.endif + +# Wrap bsd.nls.mk because I can't force that Makefile snippet to work only with +# ${PROGS}. +.for _P in ${PROGS} +NLSNAME.${_P}?= ${_P} +NLS:= ${NLS.${_P}} +NLSDIR:= ${NLSDIR.${_P}} +NLSNAME:= ${NLSNAME.${_P}} +.include <bsd.nls.mk> +.endfor + +.include <bsd.files.mk> +.include <bsd.incs.mk> +.include <bsd.links.mk> + +.if !target(lint) +. for _P in ${PROGS} +. if !target(lint.${_P}) +. if defined(PROG_CXX.${_P}) +lint.${_P}: +. else +_CFLAGS:= ${CFLAGS.${_P}} +_SRCS:= ${SRCS.${_P}} +lint.${_P}: ${_SRCS:M*.c} + ${LINT} ${LINTFLAGS} ${_CFLAGS:M-[DIU]*} ${.ALLSRC} +. endif +. endif +lint: lint.${_P} + +. endfor +.endif # !target(lint) + +.for _P in ${PROGS} +CFLAGS:= ${CFLAGS.${_P}} +CXXFLAGS:= ${CXXFLAGS.${_P}} +# XXX: Pollutes DPADD.${_P} and LDADD.${_P} above +#DPADD:= ${DPADD.${_P}} +#LDADD:= ${LDADD.${_P}} +SRCS:= ${SRCS.${_P}} +. include <bsd.dep.mk> +# bsd.dep.mk mangles SRCS +SRCS.${_P}:= ${SRCS} +. undef DPADD LDADD +.endfor + +# XXX: emulate the old bsd.prog.mk by allowing Makefiles that didn't set +# ${PROG*} to function with this Makefile snippet. +.if empty(PROGS) +. include <bsd.dep.mk> +.endif + +.if !exists(${.OBJDIR}/${DEPENDFILE}) +. for _P in ${PROGS} +_SRCS:= ${SRCS.${_P}} +${OBJS.${_P}}: ${_SRCS:M*.h} +. endfor +.endif + +.include <bsd.obj.mk> + +.include <bsd.sys.mk> + +.if defined(PORTNAME) +.include <bsd.pkg.mk> +.endif diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk index 5095973..847e571 100644 --- a/share/mk/bsd.sys.mk +++ b/share/mk/bsd.sys.mk @@ -8,6 +8,8 @@ # for GCC: http://gcc.gnu.org/onlinedocs/gcc-4.2.1/gcc/Warning-Options.html +.include <bsd.compiler.mk> + # the default is gnu99 for now CSTD?= gnu99 @@ -28,8 +30,8 @@ CFLAGS+= -std=${CSTD} .if defined(WARNS) .if ${WARNS} >= 1 CWARNFLAGS+= -Wsystem-headers -.if !defined(NO_WERROR) && ((${MK_CLANG_IS_CC} == "no" && \ - ${CC:T:Mclang} != "clang") || !defined(NO_WERROR.clang)) +.if !defined(NO_WERROR) && (${COMPILER_TYPE} != "clang" \ + || !defined(NO_WERROR.clang)) CWARNFLAGS+= -Werror .endif # !NO_WERROR && (!CLANG || !NO_WERROR.clang) .endif # WARNS >= 1 @@ -43,8 +45,8 @@ CWARNFLAGS+= -W -Wno-unused-parameter -Wstrict-prototypes\ .if ${WARNS} >= 4 CWARNFLAGS+= -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow\ -Wunused-parameter -.if !defined(NO_WCAST_ALIGN) && ((${MK_CLANG_IS_CC} == "no" && \ - ${CC:T:Mclang} != "clang") || !defined(NO_WCAST_ALIGN.clang)) +.if !defined(NO_WCAST_ALIGN) && (${COMPILER_TYPE} != "clang" \ + || !defined(NO_WCAST_ALIGN.clang)) CWARNFLAGS+= -Wcast-align .endif # !NO_WCAST_ALIGN && (!CLANG || !NO_WCAST_ALIGN.clang) .endif # WARNS >= 4 @@ -61,7 +63,7 @@ CWARNFLAGS+= -Wno-uninitialized CWARNFLAGS+= -Wno-pointer-sign # Clang has more warnings enabled by default, and when using -Wall, so if WARNS # is set to low values, these have to be disabled explicitly. -.if ${MK_CLANG_IS_CC} != "no" || ${CC:T:Mclang} == "clang" +.if ${COMPILER_TYPE} == "clang" && !defined(EARLY_BUILD) .if ${WARNS} <= 6 CWARNFLAGS+= -Wno-empty-body -Wno-string-plus-int .endif # WARNS <= 6 @@ -88,19 +90,18 @@ WFORMAT= 1 .if ${WFORMAT} > 0 #CWARNFLAGS+= -Wformat-nonliteral -Wformat-security -Wno-format-extra-args CWARNFLAGS+= -Wformat=2 -Wno-format-extra-args -.if ${MK_CLANG_IS_CC} != "no" || ${CC:T:Mclang} == "clang" +.if ${COMPILER_TYPE} == "clang" && !defined(EARLY_BUILD) .if ${WARNS} <= 3 CWARNFLAGS+= -Wno-format-nonliteral .endif # WARNS <= 3 .endif # CLANG -.if !defined(NO_WERROR) && ((${MK_CLANG_IS_CC} == "no" && \ - ${CC:T:Mclang} != "clang") || !defined(NO_WERROR.clang)) +.if !defined(NO_WERROR) && (${COMPILER_TYPE} != "clang" \ + || !defined(NO_WERROR.clang)) CWARNFLAGS+= -Werror .endif # !NO_WERROR && (!CLANG || !NO_WERROR.clang) .endif # WFORMAT > 0 .endif # WFORMAT -.if defined(NO_WFORMAT) || ((${MK_CLANG_IS_CC} != "no" || \ - ${CC:T:Mclang} == "clang") && defined(NO_WFORMAT.clang)) +.if defined(NO_WFORMAT) || (${COMPILER_TYPE} == "clang" && defined(NO_WFORMAT.clang)) CWARNFLAGS+= -Wno-format .endif # NO_WFORMAT || (CLANG && NO_WFORMAT.clang) .endif # !NO_WARNS @@ -109,7 +110,7 @@ CWARNFLAGS+= -Wno-format CWARNFLAGS+= -Wno-unknown-pragmas .endif # IGNORE_PRAGMA -.if ${MK_CLANG_IS_CC} != "no" || ${CC:T:Mclang} == "clang" +.if ${COMPILER_TYPE} == "clang" && !defined(EARLY_BUILD) CLANG_NO_IAS= -no-integrated-as CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\ -mllvm -enable-load-pre=false -mllvm -simplifycfg-dup-ret @@ -127,7 +128,7 @@ CFLAGS+= ${SSP_CFLAGS} CFLAGS+= ${CWARNFLAGS} -# Tell bmake not to misstake standard targets for things to be searched for +# Tell bmake not to mistake standard targets for things to be searched for # or expect to ever be up-to-date. PHONY_NOTMAIN = afterdepend afterinstall all beforedepend beforeinstall \ beforelinking build build-tools buildfiles buildincludes \ diff --git a/share/mk/local.sys.mk b/share/mk/local.sys.mk index 22ce501..8b8f085 100644 --- a/share/mk/local.sys.mk +++ b/share/mk/local.sys.mk @@ -189,6 +189,7 @@ MAKE_PRINT_VAR_ON_ERROR+= \ MACHINE \ MACHINE_ARCH \ MAKEOBJDIRPREFIX \ + MAKESYSPATH \ MAKE_VERSION\ OBJTOP \ ${MAKE_PRINT_VAR_ON_ERROR_XTRAS} diff --git a/share/mk/meta.autodep.mk b/share/mk/meta.autodep.mk index 92e43d7..f063837 100644 --- a/share/mk/meta.autodep.mk +++ b/share/mk/meta.autodep.mk @@ -235,11 +235,13 @@ META_FILES = ${.MAKE.META.FILES:T:N.depend*:N*o.meta:O:u} \ .export GENDIRDEPS_FILTER .endif +_makesyspath:= ${_PARSEDIR} ${_DEPENDFILE}: ${_depend} ${.PARSEDIR}/gendirdeps.mk ${META2DEPS} $${.MAKE.META.CREATED} @echo Checking $@: ${.OODATE:T:[1..8]} @(cd . && \ SKIP_GENDIRDEPS='${SKIP_GENDIRDEPS:O:u}' \ DPADD='${FORCE_DPADD:O:u}' ${_gendirdeps_mutex} \ + MAKESYSPATH=${_makesyspath} \ ${.MAKE} -f gendirdeps.mk RELDIR=${RELDIR} _DEPENDFILE=${_DEPENDFILE} \ META_FILES='${META_XTRAS:T:O:u} ${META_FILES:T:O:u:${META_FILE_FILTER:ts:}}') @test -s $@ && touch $@; : diff --git a/share/mk/sys.mk b/share/mk/sys.mk index 0f0b06e..0e8dc95 100644 --- a/share/mk/sys.mk +++ b/share/mk/sys.mk @@ -13,7 +13,7 @@ unix ?= We run FreeBSD, not UNIX. # and/or endian. This is called MACHINE_CPU in NetBSD, but that's used # for something different in FreeBSD. # -MACHINE_CPUARCH=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +MACHINE_CPUARCH=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/arm(v6)?(eb)?/arm/:C/powerpc64/powerpc/} .endif # Set any local definitions first. Place this early, but it needs @@ -328,6 +328,9 @@ SHELL= ${__MAKE_SHELL} # XXX hint for bsd.port.mk OBJFORMAT?= elf +# Tell bmake to expand -V VAR by default +.MAKE.EXPAND_VARIABLES= yes + .if !defined(.PARSEDIR) # We are not bmake, which is more aggressive about searching .PATH # It is sometime necessary to curb its enthusiasm with .NOPATH diff --git a/share/skel/dot.cshrc b/share/skel/dot.cshrc index b665825..8f75be4 100644 --- a/share/skel/dot.cshrc +++ b/share/skel/dot.cshrc @@ -18,7 +18,7 @@ umask 22 set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin) setenv EDITOR vi -setenv PAGER less +setenv PAGER more setenv BLOCKSIZE K if ($?prompt) then diff --git a/share/syscons/keymaps/INDEX.keymaps b/share/syscons/keymaps/INDEX.keymaps index 95681f4..3911c4b 100644 --- a/share/syscons/keymaps/INDEX.keymaps +++ b/share/syscons/keymaps/INDEX.keymaps @@ -117,6 +117,8 @@ danish.cp865.kbd:fr:Danois Code page 865 danish.cp865.kbd:pt:Dinamarqus Codepage 865 danish.cp865.kbd:es:Dans Codepage 865 +danish.iso.macbook.kbd:Danish ISO-8859-1 (macbook) + dutch.iso.acc.kbd:en:Dutch ISO keymap (accent keys) eee_nordic.kbd:en:Nordic layout on Asus eeePC @@ -378,6 +380,12 @@ ru.koi8-r.win.kbd:pt:Russo koi8-r (winkeys) ru.koi8-r.win.kbd:es:Ruso koi8-r (winkeys) ru.koi8-r.win.kbd:uk:Ӧ koi8-r (winkeys) +spanish.dvorak.kbd:en:Spanish Dvorak +spanish.dvorak.kbd:de:Spanisch Dvorak +spanish.dvorak.kbd:fr:Espagnol Dvorak +spanish.dvorak.kbd:pt:Espanhol Dvorak +spanish.dvorak.kbd:es:Espaol Dvorak + spanish.iso.kbd:en:Spanish ISO-8859-1 spanish.iso.kbd:de:Spanisch ISO-8859-1 spanish.iso.kbd:fr:Espagnol ISO-8859-1 diff --git a/share/syscons/keymaps/Makefile b/share/syscons/keymaps/Makefile index 883ffba..6861b26 100644 --- a/share/syscons/keymaps/Makefile +++ b/share/syscons/keymaps/Makefile @@ -10,6 +10,7 @@ FILES= INDEX.keymaps \ cs.latin2.qwertz.kbd \ cz.iso2.kbd \ danish.iso.kbd danish.iso.acc.kbd danish.cp865.kbd \ + danish.iso.macbook.kbd \ dutch.iso.acc.kbd \ eee_nordic.kbd el.iso07.kbd \ estonian.iso.kbd estonian.iso15.kbd estonian.cp850.kbd \ diff --git a/share/syscons/keymaps/danish.iso.macbook.kbd b/share/syscons/keymaps/danish.iso.macbook.kbd new file mode 100644 index 0000000..2429af3 --- /dev/null +++ b/share/syscons/keymaps/danish.iso.macbook.kbd @@ -0,0 +1,117 @@ +# $FreeBSD$ +# Danish ISO 8859-1 keyboard layout for Apple MacBook keyboards. Not all +# key combinations are available in this character set yet. +# by Erik Cederstrand <erik@cederstrand.dk> +# alt +# scan cntrl alt alt cntrl lock +# code base shift cntrl shift alt shift cntrl shift state +# ------------------------------------------------------------------ + 000 nop nop nop nop nop nop nop nop O + 001 esc esc esc esc esc esc debug esc O + 002 '1' '!' '1' nop 161 175 '1' '1' O + 003 '2' '"' '2' '2' nop nop '2' '2' O + 004 '3' '#' '3' '3' 167 '$' '3' '3' O + 005 '4' nop '4' '4' 163 162 '4' '4' O + 006 '5' '%' '5' '5' nop nop '5' '5' O + 007 '6' '&' '6' '6' nop nop '6' '6' O + 008 '7' '/' '7' '7' 182 '\' '7' '7' O + 009 '8' '(' '8' '8' '[' '{' '8' '8' O + 010 '9' ')' '9' '9' ']' '}' '9' '9' O + 011 '0' '=' '0' '0' nop nop '0' '0' O + 012 '+' '?' '+' '+' 177 191 '+' '+' O + 013 dacu dgra dacu dacu ''' nop dacu dacu O + 014 bs del del bs del bs susp bs O + 015 ht btab ht ht ht btab ht ht O + 016 'q' 'Q' dc1 dc1 186 nop nop nop C + 017 'w' 'W' etb etb 'w' 176 nop nop C + 018 'e' 'E' enq enq 223 nop nop nop C + 019 'r' 'R' dc2 dc2 174 nop nop nop C + 020 't' 'T' dc4 dc4 nop nop nop nop C + 021 'y' 'Y' em em 165 255 nop nop C + 022 'u' 'U' nak nak 252 nop nop nop C + 023 'i' 'I' ht ht '|' nop nop nop C + 024 'o' 'O' si si nop nop nop nop C + 025 'p' 'P' dle dle nop nop nop nop C + 026 229 nop nop nop nop nop nop nop C + 027 168 '^' nop nop '~' '^' '~' '~' O + 028 cr cr nl nl cr cr nl nl O + 029 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O + 030 'a' 'A' soh soh 170 nop nop nop C + 031 's' 'S' dc3 dc3 nop nop nop nop C + 032 'd' 'D' eot eot 240 nop nop nop C + 033 'f' 'F' ack ack nop nop nop nop C + 034 'g' 'G' bel bel 169 nop nop nop C + 035 'h' 'H' bs bs 171 187 nop nop C + 036 'j' 'J' nl nl nop nop nop nop C + 037 'k' 'K' vt vt nop nop nop nop C + 038 'l' 'L' ff ff 172 nop nop nop C + 039 230 nop nop nop 228 nop nop nop C + 040 248 nop nop nop 246 nop nop nop C + 041 '$' 167 '0' '0' nop ''' nop nop O + 042 lshift lshift lshift lshift lshift lshift lshift lshift O + 043 ''' '*' nop nop '@' nop nop nop O + 044 'z' 'Z' sub sub nop 184 nop nop C + 045 'x' 'X' can can nop nop nop nop C + 046 'c' 'C' etx etx 231 nop nop nop C + 047 'v' 'V' syn syn 'v' 'V' nop nop C + 048 'b' 'B' stx stx nop nop nop nop C + 049 'n' 'N' so so 241 nop nop nop C + 050 'm' 'M' cr cr 181 nop nop nop C + 051 ',' ';' ',' ',' ',' ';' ',' ',' O + 052 '.' ':' '.' '.' 183 247 '.' '.' O + 053 '-' '_' '-' '-' '-' nop '-' '-' O + 054 rshift rshift rshift rshift rshift rshift rshift rshift O + 055 '*' '*' '*' '*' '*' '*' '*' '*' O + 056 lalt lalt lalt lalt lalt lalt lalt lalt O + 057 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O + 058 clock clock clock clock clock clock clock clock O + 059 fkey01 nlock fkey25 fkey37 scr01 scr11 scr01 scr11 O + 060 fkey02 slock fkey26 fkey38 scr02 scr12 scr02 scr12 O + 061 fkey03 fkey15 fkey27 fkey39 scr03 scr13 scr03 scr13 O + 062 fkey04 fkey16 fkey28 fkey40 scr04 scr14 scr04 scr14 O + 063 fkey05 fkey17 fkey29 fkey41 scr05 scr15 scr05 scr15 O + 064 fkey06 fkey18 fkey30 fkey42 scr06 scr16 scr06 scr16 O + 065 fkey07 fkey19 fkey31 fkey43 scr07 scr07 scr07 scr07 O + 066 fkey08 fkey20 fkey32 fkey44 scr08 scr08 scr08 scr08 O + 067 fkey09 fkey21 fkey33 fkey45 scr09 scr09 scr09 scr09 O + 068 fkey10 fkey22 fkey34 fkey46 scr10 scr10 scr10 scr10 O + 069 nlock nlock nlock nlock nlock nlock nlock nlock O + 070 slock slock slock slock slock slock slock slock O + 071 '7' '7' '7' '7' '7' '7' '7' '7' N + 072 '8' '8' '8' '8' '8' '8' '8' '8' N + 073 '9' '9' '9' '9' '9' '9' '9' '9' N + 074 '-' '-' '-' '-' '-' '-' '-' '-' N + 075 '4' '4' '4' '4' '4' '4' '4' '4' N + 076 '5' '5' '5' '5' '5' '5' '5' '5' N + 077 '6' '6' '6' '6' '6' '6' '6' '6' N + 078 '+' '+' '+' '+' '+' '+' '+' '+' N + 079 '1' '1' '1' '1' '1' '1' '1' '1' N + 080 '2' '2' '2' '2' '2' '2' '2' '2' N + 081 '3' '3' '3' '3' '3' '3' '3' '3' N + 082 '0' '0' '0' '0' '0' '0' '0' '0' N + 083 ',' ',' ',' ',' ',' ',' ',' ',' N + 084 nop nop nop nop nop nop nop nop O + 085 nop nop nop nop nop nop nop nop O + 086 '<' '>' fs fs '\' '>' fs fs O + 087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O + 088 fkey12 fkey24 fkey36 fkey48 scr12 scr12 scr12 scr12 O + 089 cr cr nl nl cr cr nl nl O + 090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O + 091 '/' '/' '/' '/' '/' '/' '/' '/' O + 092 nscr pscr debug debug nop nop nop nop O + 093 ralt ralt ralt ralt ralt ralt ralt ralt O + 094 73 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 O + 095 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 O + 096 81 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 O + 097 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 O + 098 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 O + 099 79 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 O + 100 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 O + 101 71 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 O + 102 fkey60 paste fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 O + 103 del del del del del fkey61 boot fkey61 O + 104 slock saver slock saver susp nop susp nop O + 105 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O + 106 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 O + 107 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 O + 108 nop nop nop nop nop nop nop nop O diff --git a/share/syscons/scrnmaps/Makefile.depend b/share/syscons/scrnmaps/Makefile.depend index ff699f7..ac1b131 100644 --- a/share/syscons/scrnmaps/Makefile.depend +++ b/share/syscons/scrnmaps/Makefile.depend @@ -5,7 +5,10 @@ DEP_RELDIR := ${_PARSEDIR:S,${SRCTOP}/,,} DEP_MACHINE := ${.PARSEFILE:E} DIRDEPS = \ + gnu/lib/libgcc \ include \ + lib/${CSU_DIR} \ + lib/libc \ .include <dirdeps.mk> diff --git a/share/xml/Makefile b/share/xml/Makefile new file mode 100644 index 0000000..0fb0225 --- /dev/null +++ b/share/xml/Makefile @@ -0,0 +1,36 @@ +#- +# Copyright (c) 2012 EMC Corporation. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ + +.include <bsd.own.mk> + +SUBDIR+= ${_atf} + +.if ${MK_ATF} != "no" +_atf= atf +.endif + +.include <bsd.subdir.mk> diff --git a/share/xml/Makefile.inc b/share/xml/Makefile.inc new file mode 100644 index 0000000..e1c3398 --- /dev/null +++ b/share/xml/Makefile.inc @@ -0,0 +1,30 @@ +#- +# Copyright (c) 2012 EMC Corporation. +# 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$ + +BINDIR?= ${SHAREDIR}/xml + +# vim: syntax=make diff --git a/share/xml/atf/Makefile b/share/xml/atf/Makefile new file mode 100644 index 0000000..cf56ff1 --- /dev/null +++ b/share/xml/atf/Makefile @@ -0,0 +1,39 @@ +#- +# Copyright (c) 2011 Google, Inc. +# 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$ + +ATF= ${.CURDIR}/../../../contrib/atf + +.PATH: ${ATF}/atf-report + +NO_OBJ= + +FILESGROUPS= XML + +XMLDIR= ${SHAREDIR}/xml/atf +XML= tests-results.dtd + +.include <bsd.prog.mk> diff --git a/share/xsl/Makefile b/share/xsl/Makefile new file mode 100644 index 0000000..0fb0225 --- /dev/null +++ b/share/xsl/Makefile @@ -0,0 +1,36 @@ +#- +# Copyright (c) 2012 EMC Corporation. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ + +.include <bsd.own.mk> + +SUBDIR+= ${_atf} + +.if ${MK_ATF} != "no" +_atf= atf +.endif + +.include <bsd.subdir.mk> diff --git a/share/xsl/Makefile.inc b/share/xsl/Makefile.inc new file mode 100644 index 0000000..c2ed469 --- /dev/null +++ b/share/xsl/Makefile.inc @@ -0,0 +1,30 @@ +#- +# Copyright (c) 2012 EMC Corporation. +# 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$ + +BINDIR?= ${SHAREDIR}/xsl + +# vim: syntax=make diff --git a/share/xsl/atf/Makefile b/share/xsl/atf/Makefile new file mode 100644 index 0000000..73e84f2 --- /dev/null +++ b/share/xsl/atf/Makefile @@ -0,0 +1,39 @@ +#- +# Copyright (c) 2011 Google, Inc. +# 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$ + +ATF= ${.CURDIR}/../../../contrib/atf + +.PATH: ${ATF}/atf-report + +NO_OBJ= + +FILESGROUPS= XSL + +XSLDIR= ${SHAREDIR}/xsl/atf +XSL= tests-results.xsl + +.include <bsd.prog.mk> |