aboutsummaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/doc/bind9/Makefile1
-rw-r--r--share/doc/legal/Makefile3
-rw-r--r--share/doc/legal/realtek/Makefile7
-rw-r--r--share/doc/psd/28.cvs/Makefile10
-rw-r--r--share/doc/psd/Makefile3
-rw-r--r--share/examples/BSD_daemon/README4
-rw-r--r--share/examples/BSD_daemon/beastie2.eps2470
-rw-r--r--share/examples/Makefile1
-rw-r--r--share/examples/etc/README.examples1
-rw-r--r--share/examples/etc/make.conf16
-rw-r--r--share/examples/kld/syscall/test/call.c8
-rw-r--r--share/examples/ppi/ppilcd.c2
-rw-r--r--share/examples/scsi_target/scsi_target.c8
-rw-r--r--share/i18n/csmapper/KAZAKH/KZ1048%UCS.src4
-rw-r--r--share/i18n/csmapper/KAZAKH/UCS%KZ1048.src4
-rw-r--r--share/i18n/csmapper/Makefile4
-rw-r--r--share/i18n/esdb/Makefile4
-rw-r--r--share/man/man3/offsetof.32
-rw-r--r--share/man/man3/pthread_affinity_np.33
-rw-r--r--share/man/man3/pthread_attr_affinity_np.33
-rw-r--r--share/man/man3/pthread_getconcurrency.32
-rw-r--r--share/man/man3/pthread_testcancel.341
-rw-r--r--share/man/man3/queue.3158
-rw-r--r--share/man/man4/Makefile24
-rw-r--r--share/man/man4/aacraid.4138
-rw-r--r--share/man/man4/acpi_rapidstart.484
-rw-r--r--share/man/man4/ath_hal.47
-rw-r--r--share/man/man4/axe.44
-rw-r--r--share/man/man4/bce.42
-rw-r--r--share/man/man4/bridge.474
-rw-r--r--share/man/man4/capsicum.414
-rw-r--r--share/man/man4/cc_cdg.4155
-rw-r--r--share/man/man4/cd.481
-rw-r--r--share/man/man4/ciss.418
-rw-r--r--share/man/man4/cxgbe.43
-rw-r--r--share/man/man4/em.44
-rw-r--r--share/man/man4/filemon.412
-rw-r--r--share/man/man4/hptiop.418
-rw-r--r--share/man/man4/hptnr.492
-rw-r--r--share/man/man4/igb.46
-rw-r--r--share/man/man4/ixgb.44
-rw-r--r--share/man/man4/ixgbe.44
-rw-r--r--share/man/man4/man4.arm/Makefile2
-rw-r--r--share/man/man4/man4.arm/devcfg.495
-rw-r--r--share/man/man4/man4.i386/npx.42
-rw-r--r--share/man/man4/man4.i386/pnp.45
-rw-r--r--share/man/man4/mfi.44
-rw-r--r--share/man/man4/netgraph.46
-rw-r--r--share/man/man4/ntb.4114
-rw-r--r--share/man/man4/nvd.421
-rw-r--r--share/man/man4/nvme.425
-rw-r--r--share/man/man4/oce.44
-rw-r--r--share/man/man4/procdesc.493
-rw-r--r--share/man/man4/qlxgbe.491
-rw-r--r--share/man/man4/qlxge.491
-rw-r--r--share/man/man4/random.414
-rw-r--r--share/man/man4/rsu.4178
-rw-r--r--share/man/man4/rsufw.446
-rw-r--r--share/man/man4/sa.466
-rw-r--r--share/man/man4/syscons.42
-rw-r--r--share/man/man4/sysmouse.43
-rw-r--r--share/man/man4/udav.42
-rw-r--r--share/man/man4/urtwn.4141
-rw-r--r--share/man/man4/usb_quirk.48
-rw-r--r--share/man/man4/virtio.46
-rw-r--r--share/man/man4/virtio_balloon.42
-rw-r--r--share/man/man4/virtio_blk.432
-rw-r--r--share/man/man4/virtio_scsi.42
-rw-r--r--share/man/man4/vmx.4132
-rw-r--r--share/man/man4/vtnet.418
-rw-r--r--share/man/man5/freebsd-update.conf.52
-rw-r--r--share/man/man5/fstab.544
-rw-r--r--share/man/man5/mailer.conf.54
-rw-r--r--share/man/man5/make.conf.569
-rw-r--r--share/man/man5/periodic.conf.5394
-rw-r--r--share/man/man5/pf.conf.52
-rw-r--r--share/man/man5/portsnap.conf.52
-rw-r--r--share/man/man5/procfs.57
-rw-r--r--share/man/man5/rc.conf.5185
-rw-r--r--share/man/man5/src.conf.5120
-rw-r--r--share/man/man7/c99.72
-rw-r--r--share/man/man7/firewall.74
-rw-r--r--share/man/man7/hier.758
-rw-r--r--share/man/man7/ports.74
-rw-r--r--share/man/man7/release.7283
-rw-r--r--share/man/man8/rc.84
-rw-r--r--share/man/man9/DELAY.94
-rw-r--r--share/man/man9/EVENTHANDLER.910
-rw-r--r--share/man/man9/Makefile49
-rw-r--r--share/man/man9/SDT.9309
-rw-r--r--share/man/man9/VOP_GETPAGES.98
-rw-r--r--share/man/man9/atomic.982
-rw-r--r--share/man/man9/bus_dma.966
-rw-r--r--share/man/man9/counter.91
-rw-r--r--share/man/man9/hhook.98
-rw-r--r--share/man/man9/ifnet.94
-rw-r--r--share/man/man9/kernel_mount.91
-rw-r--r--share/man/man9/locking.9376
-rw-r--r--share/man/man9/microuptime.925
-rw-r--r--share/man/man9/mutex.911
-rw-r--r--share/man/man9/netisr.92
-rw-r--r--share/man/man9/pci.98
-rw-r--r--share/man/man9/pfil.919
-rw-r--r--share/man/man9/rmlock.967
-rw-r--r--share/man/man9/rwlock.918
-rw-r--r--share/man/man9/signal.936
-rw-r--r--share/man/man9/sleep.96
-rw-r--r--share/man/man9/timeout.928
-rw-r--r--share/man/man9/vfs_mount.9135
-rw-r--r--share/man/man9/vfsconf.96
-rw-r--r--share/man/man9/vm_page_alloc.96
-rw-r--r--share/man/man9/vm_page_busy.9216
-rw-r--r--share/man/man9/vm_page_grab.940
-rw-r--r--share/man/man9/vm_page_io.965
-rw-r--r--share/man/man9/vm_page_sleep_if_busy.968
-rw-r--r--share/man/man9/vm_page_wakeup.975
-rw-r--r--share/man/man9/vmem.9315
-rw-r--r--share/misc/bsd-family-tree108
-rw-r--r--share/misc/committers-doc.dot3
-rw-r--r--share/misc/committers-ports.dot23
-rw-r--r--share/misc/committers-src.dot22
-rw-r--r--share/misc/iso6391
-rw-r--r--share/misc/pci_vendors2
-rw-r--r--share/mk/bsd.cpu.mk4
-rw-r--r--share/mk/bsd.crunchgen.mk3
-rw-r--r--share/mk/bsd.lib.mk68
-rw-r--r--share/mk/bsd.libnames.mk2
-rw-r--r--share/mk/bsd.own.mk36
-rw-r--r--share/mk/bsd.prog.mk64
-rw-r--r--share/mk/bsd.progs.mk7
-rw-r--r--share/mk/bsd.subdir.mk8
-rw-r--r--share/mk/bsd.sys.mk4
-rw-r--r--share/mk/sys.mk38
-rw-r--r--share/monetdef/Makefile18
-rw-r--r--share/monetdef/ca_ES.UTF-8.src36
-rw-r--r--share/monetdef/de_AT.UTF-8.src36
-rw-r--r--share/monetdef/de_DE.UTF-8.src36
-rw-r--r--share/monetdef/el_GR.UTF-8.src36
-rw-r--r--share/monetdef/es_ES.UTF-8.src36
-rw-r--r--share/monetdef/fi_FI.UTF-8.src36
-rw-r--r--share/monetdef/fr_BE.UTF-8.src36
-rw-r--r--share/monetdef/fr_FR.UTF-8.src36
-rw-r--r--share/monetdef/it_IT.UTF-8.src36
-rw-r--r--share/monetdef/nl_BE.UTF-8.src36
-rw-r--r--share/monetdef/nl_NL.UTF-8.src36
-rw-r--r--share/syscons/fonts/iso04-wide-8x16.fnt2
-rw-r--r--share/syscons/fonts/iso05-8x16.fnt2
-rw-r--r--share/syscons/keymaps/us.dvorakp.kbd3
148 files changed, 7429 insertions, 1341 deletions
diff --git a/share/doc/bind9/Makefile b/share/doc/bind9/Makefile
index 3aca4e5515a0..f215fe3dd3b1 100644
--- a/share/doc/bind9/Makefile
+++ b/share/doc/bind9/Makefile
@@ -18,6 +18,7 @@ ARM= Bv9ARM.ch01.html Bv9ARM.ch02.html Bv9ARM.ch03.html \
man.dnssec-dsfromkey.html man.dnssec-keyfromlabel.html \
man.dnssec-keygen.html man.dnssec-revoke.html \
man.dnssec-settime.html man.dnssec-signzone.html \
+ man.dnssec-verify.html \
man.genrandom.html man.host.html man.isc-hmac-fixup.html \
man.named-checkconf.html man.named-checkzone.html \
man.named-journalprint.html man.named.html \
diff --git a/share/doc/legal/Makefile b/share/doc/legal/Makefile
index 3ae8eca3b4cb..9590800a67d7 100644
--- a/share/doc/legal/Makefile
+++ b/share/doc/legal/Makefile
@@ -3,6 +3,7 @@
SUBDIR= intel_ipw \
intel_iwi \
intel_iwn \
- intel_wpi
+ intel_wpi \
+ realtek
.include <bsd.subdir.mk>
diff --git a/share/doc/legal/realtek/Makefile b/share/doc/legal/realtek/Makefile
new file mode 100644
index 000000000000..18bbef3cbb2c
--- /dev/null
+++ b/share/doc/legal/realtek/Makefile
@@ -0,0 +1,7 @@
+# $FreeBSD$
+
+NO_OBJ=
+FILES= ${.CURDIR}/../../../../sys/contrib/dev/urtwn/LICENSE
+FILESDIR= ${SHAREDIR}/doc/legal/realtek
+
+.include <bsd.prog.mk>
diff --git a/share/doc/psd/28.cvs/Makefile b/share/doc/psd/28.cvs/Makefile
deleted file mode 100644
index a62473284e36..000000000000
--- a/share/doc/psd/28.cvs/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# $FreeBSD$
-
-VOLUME= psd/28.cvs
-SRCS= cvs-paper.ms
-MACROS= -ms
-USE_PIC=
-USE_TBL=
-SRCDIR= ${.CURDIR}/../../../../contrib/cvs/doc
-
-.include <bsd.doc.mk>
diff --git a/share/doc/psd/Makefile b/share/doc/psd/Makefile
index d50f05b1b2c6..243ba9992e21 100644
--- a/share/doc/psd/Makefile
+++ b/share/doc/psd/Makefile
@@ -35,7 +35,6 @@ SUBDIR+=22.rpcgen \
24.xdr \
25.xdrrfc \
26.rpcrfc \
- 27.nfsrpc \
- 28.cvs
+ 27.nfsrpc
.include <bsd.subdir.mk>
diff --git a/share/examples/BSD_daemon/README b/share/examples/BSD_daemon/README
index 9aa1173836a9..9ad7718f4f29 100644
--- a/share/examples/BSD_daemon/README
+++ b/share/examples/BSD_daemon/README
@@ -35,6 +35,10 @@ beastie.eps
Before committing this, clean out the comment brought
over from the .fig file to avoid Dollar-FreeBSD-Dollar junk
+beastie2.eps
+ Written by Rahul Siddharthan beaste2.eps is a
+ smaller, simpler version of the beastie eps graphic.
+
eps.patch
Add some comments about tweakables in the .eps file and set
the linecaps to round to improve visual appearance.
diff --git a/share/examples/BSD_daemon/beastie2.eps b/share/examples/BSD_daemon/beastie2.eps
new file mode 100644
index 000000000000..05761bf5b9b3
--- /dev/null
+++ b/share/examples/BSD_daemon/beastie2.eps
@@ -0,0 +1,2470 @@
+%!PS-Adobe-2.0 EPSF-1.2
+%%Title: beastie1.ps
+%%Creator: Sketch 0.6.12
+%%CreationDate: Sun May 26 00:37:36 2002
+%%For: Rahul Siddharthan
+%%Pages: 1
+%%DocumentFonts:
+%%BoundingBox: 385 514 545 694
+save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def
+%%EndProlog
+%%Page 1 1
+
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period
+/slash /zero /one /two /three /four /five /six /seven /eight /nine /colon
+/semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J
+/K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
+/bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i
+/j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+
+
+10.433 setmiterlimit
+
+SketchDict begin
+newpath
+473.625 576.087 m
+473.625 576.087 478.667 569.965 478.667 569.965 c
+478.667 569.965 481.187 559.523 489.109 552.681 c
+497.032 545.838 506.214 546.198 506.214 546.198 c
+506.214 546.198 520.619 544.217 529.802 540.437 c
+538.984 536.656 538.805 536.836 542.046 533.954 c
+545.287 531.074 545.287 527.473 542.406 524.952 c
+539.525 522.431 534.484 520.27 530.522 519.911 c
+526.562 519.55 519.719 519.55 519.719 519.55 c
+519.719 519.55 524.04 523.512 524.04 523.512 c
+524.04 523.512 534.483 527.112 535.564 528.553 c
+536.644 529.994 533.943 531.794 533.943 531.794 c
+533.943 531.794 528.002 535.035 523.68 536.115 c
+519.359 537.195 499.372 540.977 499.013 540.977 c
+498.652 540.977 495.052 541.337 486.229 544.758 c
+477.406 548.18 476.146 551.24 476.146 551.24 c
+476.146 551.24 468.584 558.802 468.584 558.802 c
+468.584 558.802 473.265 576.448 473.265 576.448 c
+closepath
+0.444 0 0 rgb
+F
+newpath
+442.656 609.577 m
+442.656 609.577 443.015 603.456 443.015 603.456 c
+443.015 603.456 438.694 600.215 438.694 600.215 c
+438.694 600.215 435.093 600.935 431.132 600.575 c
+427.171 600.215 416.547 593.553 416.547 593.553 c
+416.547 593.553 420.328 587.251 420.328 587.251 c
+420.328 587.251 427.171 587.971 427.171 587.971 c
+427.171 587.971 428.251 589.051 429.691 587.971 c
+431.132 586.89 430.411 586.89 432.212 583.65 c
+434.013 580.409 433.293 579.328 433.293 579.328 c
+433.293 579.328 431.852 576.448 431.492 574.287 c
+431.132 572.126 432.932 562.764 434.733 560.963 c
+436.534 559.162 438.334 558.802 438.334 557.002 c
+438.334 555.201 438.334 545.838 438.334 545.838 c
+438.334 545.838 455.259 543.678 455.259 543.678 c
+455.259 543.678 475.785 547.999 475.785 547.999 c
+475.785 547.999 476.146 570.326 477.226 573.927 c
+478.306 577.528 479.747 577.168 480.107 581.849 c
+480.467 586.531 479.026 593.013 479.026 593.013 c
+479.026 593.013 478.667 592.652 476.506 600.215 c
+474.345 607.777 474.705 609.938 474.705 609.938 c
+474.705 609.938 475.065 615.7 475.065 615.7 c
+475.065 615.7 442.295 609.938 442.295 610.298 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.677 0 0 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+0.679 0 0 $
+0.685 0 0 $
+0.69 0 0 $
+0.695 0 0 $
+0.7 0 0 $
+0.706 0 0 $
+0.711 0 0 $
+0.716 0 0 $
+0.721 0 0 $
+0.727 0 0 $
+0.732 0 0 $
+0.737 0 0 $
+0.742 0 0 $
+0.748 0 0 $
+0.753 0 0 $
+0.758 0 0 $
+0.763 0 0 $
+0.769 0 0 $
+0.774 0 0 $
+0.779 0 0 $
+0.784 0 0 $
+0.79 0 0 $
+0.795 0 0 $
+0.8 0 0 $
+0.805 0 0 $
+0.811 0 0 $
+0.816 0 0 $
+0.821 0 0 $
+0.826 0 0 $
+0.832 0 0 $
+0.837 0 0 $
+0.842 0 0 $
+0.847 0 0 $
+0.853 0 0 $
+0.858 0 0 $
+0.863 0 0 $
+0.868 0 0 $
+0.874 0 0 $
+0.879 0 0 $
+439.268 598.895 68.713 0 radial
+popc
+newpath
+[14.6696 -1.68454 -2.67069 -23.6151 446.099 580.972] ellipse
+pushc
+eoclip newpath
+50 gradient
+0.778 0 0 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+0.788 0 0 $
+0.8 0 0 $
+0.811 0 0 $
+0.822 0 0 $
+0.834 0 0 $
+0.845 0 0 $
+0.856 0 0 $
+0.868 0 0 $
+0.879 0 0 $
+0.89 0 0 $
+0.902 0 0 $
+0.913 0 0 $
+0.925 0 0 $
+0.936 0 0 $
+0.947 0 0 $
+0.959 0 0 $
+0.97 0 0 $
+438.644 584.129 34.9312 0 radial
+popc
+newpath
+newpath
+428.972 600.575 m
+428.251 599.855 430.772 601.655 434.373 601.655 c
+437.974 601.655 439.414 600.215 439.414 600.215 c
+439.414 600.215 452.738 598.414 452.378 598.055 c
+452.018 597.694 457.059 596.253 455.619 592.293 c
+454.179 588.331 457.42 588.691 457.06 588.691 c
+456.7 588.691 445.536 593.373 442.295 596.614 c
+439.055 599.855 437.254 589.051 432.212 588.691 c
+427.171 588.331 425.01 586.89 425.01 586.89 c
+425.01 586.89 425.01 591.572 425.731 592.652 c
+426.451 593.733 428.251 598.774 428.251 598.774 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.455 0 0 $
+0.462 0 0 $
+0.47 0 0 $
+0.477 0 0 $
+0.485 0 0 $
+0.492 0 0 $
+0.499 0 0 $
+0.507 0 0 $
+0.514 0 0 $
+0.522 0 0 $
+0.529 0 0 $
+0.536 0 0 $
+0.544 0 0 $
+0.551 0 0 $
+0.559 0 0 $
+0.566 0 0 $
+0.574 0 0 $
+0.581 0 0 $
+0.588 0 0 $
+0.596 0 0 $
+0.603 0 0 $
+0.611 0 0 $
+0.618 0 0 $
+0.625 0 0 $
+0.633 0 0 $
+0.64 0 0 $
+0.648 0 0 $
+0.655 0 0 $
+0.662 0 0 $
+0.67 0 0 $
+0.677 0 0 $
+0.685 0 0 $
+0.692 0 0 $
+0.699 0 0 $
+0.707 0 0 $
+0.714 0 0 $
+0.722 0 0 $
+0.729 0 0 $
+0.737 0 0 $
+0.744 0 0 $
+0.751 0 0 $
+0.759 0 0 $
+0.766 0 0 $
+0.774 0 0 $
+0.781 0 0 $
+0.788 0 0 $
+0.796 0 0 $
+0.803 0 0 $
+0.811 0 0 $
+0.818 0 0 $
+425.429 602.455 456.669 586.091 axial
+popc
+newpath
+newpath
+474.975 612.368 m
+474.975 612.368 474.616 608.408 474.795 607.687 c
+474.975 606.967 476.596 599.945 476.596 599.765 c
+476.596 599.585 479.657 591.122 479.657 591.122 c
+479.657 591.122 480.557 587.161 480.197 582.66 c
+479.837 578.158 479.117 578.698 477.856 574.917 c
+476.596 571.136 476.596 565.914 476.596 565.914 c
+476.596 565.914 476.235 556.371 476.056 556.371 c
+475.876 556.371 476.596 551.87 475.696 552.951 c
+474.795 554.031 469.213 556.011 469.034 556.011 c
+468.854 556.011 457.87 556.011 457.87 556.011 c
+457.87 556.011 450.128 556.011 450.128 556.011 c
+450.128 556.011 445.086 556.732 444.906 556.192 c
+444.726 555.651 449.228 560.873 452.828 560.333 c
+456.43 559.793 454.99 565.915 454.99 566.275 c
+454.99 566.635 463.631 567.535 463.812 569.875 c
+463.992 572.216 433.563 578.698 431.763 585 c
+429.962 591.302 446.887 579.598 445.086 585.721 c
+443.286 591.843 459.851 583.92 460.931 586.441 c
+462.012 588.961 465.793 586.62 467.773 588.961 c
+469.754 591.302 469.394 591.482 470.114 593.823 c
+470.834 596.163 470.654 597.964 470.474 600.125 c
+470.294 602.285 469.394 605.706 469.394 606.066 c
+469.394 606.427 468.314 606.607 465.612 607.507 c
+462.911 608.408 458.05 606.787 454.269 607.147 c
+450.488 607.507 449.587 609.488 449.587 609.488 c
+449.587 609.488 475.336 612.909 475.336 612.909 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+1 0 0 $
+0.984 0 0 $
+0.968 0 0 $
+0.951 0 0 $
+0.935 0 0 $
+0.919 0 0 $
+0.903 0 0 $
+0.886 0 0 $
+0.87 0 0 $
+0.854 0 0 $
+0.838 0 0 $
+0.821 0 0 $
+0.805 0 0 $
+0.789 0 0 $
+0.773 0 0 $
+0.756 0 0 $
+0.74 0 0 $
+0.724 0 0 $
+0.708 0 0 $
+0.691 0 0 $
+0.675 0 0 $
+0.659 0 0 $
+0.643 0 0 $
+0.627 0 0 $
+0.61 0 0 $
+0.594 0 0 $
+0.578 0 0 $
+0.562 0 0 $
+0.545 0 0 $
+0.529 0 0 $
+0.513 0 0 $
+0.497 0 0 $
+0.48 0 0 $
+0.464 0 0 $
+0.456 0 0 $
+0.459 0 0 $
+0.461 0 0 $
+0.464 0 0 $
+0.466 0 0 $
+0.469 0 0 $
+0.472 0 0 $
+0.474 0 0 $
+0.477 0 0 $
+0.479 0 0 $
+0.482 0 0 $
+0.485 0 0 $
+0.487 0 0 $
+0.49 0 0 $
+0.492 0 0 $
+0.495 0 0 $
+424.951 602.224 486.96 563.468 axial
+popc
+newpath
+newpath
+424.29 654.951 m
+424.29 654.951 422.129 670.076 423.21 673.317 c
+424.29 676.558 427.531 679.079 430.411 681.24 c
+433.293 683.4 436.894 688.441 440.855 690.962 c
+444.816 693.483 446.706 693.483 447.337 693.483 c
+447.967 693.483 450.218 693.753 450.578 692.763 c
+450.939 691.773 450.218 690.242 449.858 690.242 c
+449.497 690.242 446.617 687.721 446.256 687.721 c
+445.897 687.721 442.205 683.49 441.935 682.32 c
+441.665 681.149 441.935 679.079 441.935 679.079 c
+441.935 679.079 443.376 675.117 443.736 675.117 c
+444.096 675.117 446.977 676.648 448.777 677.278 c
+450.578 677.908 450.668 678.088 453.459 678.358 c
+456.25 678.628 459.941 678.358 460.301 678.358 c
+460.661 678.358 468.314 677.009 468.673 677.009 c
+469.034 677.009 474.345 675.117 477.226 673.317 c
+480.107 671.517 480.647 670.256 480.647 670.256 c
+480.647 670.256 483.348 666.835 483.348 666.835 c
+483.348 666.835 485.598 666.565 486.409 665.935 c
+487.219 665.304 484.428 665.755 488.029 666.115 c
+491.63 666.475 493.971 667.375 493.971 667.375 c
+493.971 667.375 494.871 668.996 494.871 668.996 c
+494.871 668.996 495.952 671.877 495.952 672.596 c
+495.952 673.317 495.232 677.638 495.232 677.999 c
+495.232 678.358 494.151 682.32 494.151 682.32 c
+494.151 682.32 491.63 685.921 491.63 685.921 c
+491.63 685.921 490.55 686.281 490.91 686.281 c
+491.271 686.281 490.19 687.001 493.431 687.361 c
+496.672 687.721 499.013 684.841 500.273 683.76 c
+501.534 682.68 507.295 678.179 509.096 673.497 c
+510.897 668.816 510.897 664.314 510.177 661.073 c
+509.456 657.833 507.115 654.591 505.855 652.43 c
+504.595 650.27 500.993 647.389 499.192 646.309 c
+497.392 645.229 491.271 642.347 491.271 642.347 c
+491.271 642.347 490.19 641.267 489.83 639.827 c
+489.47 638.387 490.19 630.824 490.19 630.824 c
+490.19 630.824 489.83 625.422 488.029 622.901 c
+486.229 620.381 480.107 617.32 480.107 617.32 c
+480.107 617.32 476.866 614.259 474.705 612.098 c
+472.545 609.938 462.101 607.958 457.78 608.317 c
+453.459 608.678 455.619 608.317 452.738 607.957 c
+449.858 607.597 446.617 607.777 446.617 607.777 c
+446.617 607.777 443.015 607.777 438.694 609.577 c
+434.373 611.378 433.653 612.098 433.293 612.459 c
+432.932 612.818 426.991 617.68 426.991 617.68 c
+426.991 617.68 422.849 620.381 421.049 621.101 c
+419.248 621.821 417.448 625.063 416.368 627.223 c
+415.287 629.384 415.287 631.544 415.287 631.544 c
+415.287 631.544 414.026 633.885 416.547 637.846 c
+419.068 641.807 419.068 639.467 421.589 643.788 c
+424.11 648.109 421.949 643.068 423.39 647.389 c
+424.83 651.71 424.29 657.112 424.29 657.112 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.626 0 0 $
+0.631 0 0 $
+0.636 0 0 $
+0.641 0 0 $
+0.645 0 0 $
+0.65 0 0 $
+0.655 0 0 $
+0.66 0 0 $
+0.665 0 0 $
+0.67 0 0 $
+0.674 0 0 $
+0.681 0 0 $
+0.689 0 0 $
+0.698 0 0 $
+0.706 0 0 $
+0.714 0 0 $
+0.723 0 0 $
+0.731 0 0 $
+0.74 0 0 $
+0.748 0 0 $
+0.756 0 0 $
+0.765 0 0 $
+0.773 0 0 $
+0.782 0 0 $
+0.79 0 0 $
+0.798 0 0 $
+0.807 0 0 $
+0.815 0 0 $
+0.824 0 0 $
+0.832 0 0 $
+0.84 0 0 $
+0.849 0 0 $
+0.857 0 0 $
+0.866 0 0 $
+0.874 0 0 $
+0.882 0 0 $
+0.891 0 0 $
+0.899 0 0 $
+0.908 0 0 $
+0.916 0 0 $
+0.924 0 0 $
+0.933 0 0 $
+0.941 0 0 $
+0.95 0 0 $
+0.958 0 0 $
+0.966 0 0 $
+0.975 0 0 $
+0.983 0 0 $
+0.992 0 0 $
+1 0 0 $
+446.857 653.484 78.4847 0 radial
+popc
+newpath
+newpath
+425.731 647.389 m
+425.731 647.389 426.631 652.971 426.631 652.971 c
+426.631 652.971 428.611 656.032 428.611 656.392 c
+428.611 656.752 430.772 660.173 432.572 661.973 c
+434.373 663.774 439.055 666.475 439.055 666.475 c
+439.055 666.475 441.935 667.375 442.656 666.115 c
+443.376 664.855 443.196 665.755 442.475 663.594 c
+441.755 661.433 440.135 658.913 440.135 658.913 c
+440.135 658.913 438.334 656.752 437.614 653.871 c
+436.894 650.99 436.894 650.27 436.894 650.27 c
+436.894 650.27 436.173 647.029 436.173 647.029 c
+436.173 647.029 434.373 643.788 434.373 643.788 c
+434.373 643.788 433.653 641.988 433.653 641.988 c
+433.653 641.988 431.132 640.907 431.132 640.907 c
+431.132 640.907 427.531 641.988 427.531 641.988 c
+427.531 641.988 425.91 644.148 425.731 645.229 c
+425.55 646.309 425.731 647.389 425.731 647.389 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.737 0.737 0.737 $
+0.746 0.746 0.746 $
+0.755 0.755 0.755 $
+0.764 0.764 0.764 $
+0.773 0.773 0.773 $
+0.782 0.782 0.782 $
+0.792 0.792 0.792 $
+0.801 0.801 0.801 $
+0.81 0.81 0.81 $
+0.819 0.819 0.819 $
+0.828 0.828 0.828 $
+0.837 0.837 0.837 $
+0.846 0.846 0.846 $
+0.855 0.855 0.855 $
+0.864 0.864 0.864 $
+0.873 0.873 0.873 $
+0.883 0.883 0.883 $
+0.892 0.892 0.892 $
+0.901 0.901 0.901 $
+0.91 0.91 0.91 $
+0.919 0.919 0.919 $
+0.928 0.928 0.928 $
+0.937 0.937 0.937 $
+0.946 0.946 0.946 $
+0.955 0.955 0.955 $
+0.964 0.964 0.964 $
+0.974 0.974 0.974 $
+0.983 0.983 0.983 $
+0.992 0.992 0.992 $
+1 1 1 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+427.937 655.141 20.8071 0 radial
+popc
+newpath
+newpath
+442.205 653.961 m
+442.205 653.961 444.546 658.283 446.347 660.623 c
+448.147 662.964 447.967 664.044 450.488 664.585 c
+453.009 665.125 454.089 664.945 456.25 663.324 c
+458.41 661.703 460.031 659.183 460.391 656.122 c
+460.751 653.061 460.571 644.598 459.671 641.898 c
+458.771 639.197 456.609 634.695 455.17 633.435 c
+453.729 632.175 453.729 631.094 450.308 630.734 c
+446.887 630.374 446.707 630.374 444.546 631.454 c
+442.386 632.535 440.585 634.695 440.585 634.876 c
+440.585 635.055 438.424 639.737 438.424 641.537 c
+438.424 643.338 440.405 650.54 440.405 650.72 c
+440.405 650.9 442.566 654.502 442.566 654.502 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.737 0.737 0.737 $
+0.746 0.746 0.746 $
+0.755 0.755 0.755 $
+0.764 0.764 0.764 $
+0.773 0.773 0.773 $
+0.782 0.782 0.782 $
+0.792 0.792 0.792 $
+0.801 0.801 0.801 $
+0.81 0.81 0.81 $
+0.819 0.819 0.819 $
+0.828 0.828 0.828 $
+0.837 0.837 0.837 $
+0.846 0.846 0.846 $
+0.855 0.855 0.855 $
+0.864 0.864 0.864 $
+0.873 0.873 0.873 $
+0.883 0.883 0.883 $
+0.892 0.892 0.892 $
+0.901 0.901 0.901 $
+0.91 0.91 0.91 $
+0.919 0.919 0.919 $
+0.928 0.928 0.928 $
+0.937 0.937 0.937 $
+0.946 0.946 0.946 $
+0.955 0.955 0.955 $
+0.964 0.964 0.964 $
+0.974 0.974 0.974 $
+0.983 0.983 0.983 $
+0.992 0.992 0.992 $
+1 1 1 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+440.796 648.261 26.5629 0 radial
+popc
+newpath
+[5.36527 -1.21705 -1.81379 -8.99236 443.376 642.978] ellipse
+pushc
+eoclip newpath
+50 gradient
+0 0 0 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+0.013 0.013 0.013 $
+0.045 0.045 0.045 $
+0.078 0.078 0.078 $
+0.11 0.11 0.11 $
+0.143 0.143 0.143 $
+0.176 0.176 0.176 $
+0.208 0.208 0.208 $
+0.241 0.241 0.241 $
+0.273 0.273 0.273 $
+0.306 0.306 0.306 $
+0.338 0.338 0.338 $
+0.371 0.371 0.371 $
+0.403 0.403 0.403 $
+0.436 0.436 0.436 $
+0.468 0.468 0.468 $
+0.501 0.501 0.501 $
+0.533 0.533 0.533 $
+0.566 0.566 0.566 $
+442.162 646.91 14.7128 0 radial
+popc
+newpath
+[3.50831 -0.944447 -1.42027 -6.48433 429.085 647.862] ellipse
+pushc
+eoclip newpath
+50 gradient
+0 0 0 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+0.013 0.013 0.013 $
+0.045 0.045 0.045 $
+0.078 0.078 0.078 $
+0.11 0.11 0.11 $
+0.143 0.143 0.143 $
+0.176 0.176 0.176 $
+0.208 0.208 0.208 $
+0.241 0.241 0.241 $
+0.273 0.273 0.273 $
+0.306 0.306 0.306 $
+0.338 0.338 0.338 $
+0.371 0.371 0.371 $
+0.403 0.403 0.403 $
+0.436 0.436 0.436 $
+0.468 0.468 0.468 $
+0.501 0.501 0.501 $
+0.533 0.533 0.533 $
+0.566 0.566 0.566 $
+427.643 651.138 11.1324 0 radial
+popc
+newpath
+[0.500026 -0.204317 -0.340534 -0.833389 428.161 651.08] ellipse
+1 1 1 rgb
+F
+[0.681665 -0.232484 -0.435916 -1.27814 442.408 647.052] ellipse
+F
+newpath
+493.791 685.561 m
+493.791 685.561 495.592 681.96 497.752 678.358 c
+499.913 674.757 501.354 672.957 500.633 669.716 c
+499.913 666.475 495.952 662.874 495.592 662.874 c
+495.232 662.874 490.91 657.832 486.229 657.472 c
+481.547 657.112 479.387 658.913 476.866 656.032 c
+474.345 653.151 472.545 647.749 471.825 644.868 c
+471.104 641.988 473.985 638.026 472.905 632.625 c
+471.825 627.223 471.104 623.262 469.304 621.461 c
+467.503 619.66 465.702 616.06 462.462 614.619 c
+459.221 613.179 457.06 612.098 457.06 612.098 c
+457.06 612.098 442.295 610.298 442.295 610.298 c
+442.295 610.298 446.256 609.577 450.218 609.577 c
+454.179 609.577 455.079 608.498 458.68 608.857 c
+462.282 609.218 467.683 610.118 471.645 611.558 c
+475.606 612.999 475.426 615.159 479.747 617.68 c
+484.068 620.201 488.03 620.561 489.83 626.323 c
+491.63 632.085 487.849 638.747 491.09 641.448 c
+494.331 644.148 501.534 646.669 504.054 649.91 c
+506.575 653.151 510.717 657.652 510.356 665.575 c
+509.996 673.497 506.755 673.677 504.234 677.638 c
+501.713 681.599 493.791 685.921 493.791 685.921 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+1 0 0 $
+0.99 0 0 $
+0.98 0 0 $
+0.97 0 0 $
+0.96 0 0 $
+0.95 0 0 $
+0.94 0 0 $
+0.93 0 0 $
+0.92 0 0 $
+0.91 0 0 $
+0.9 0 0 $
+0.89 0 0 $
+0.88 0 0 $
+0.87 0 0 $
+0.86 0 0 $
+0.85 0 0 $
+0.831 0 0 $
+0.809 0 0 $
+0.788 0 0 $
+0.767 0 0 $
+0.745 0 0 $
+0.724 0 0 $
+0.702 0 0 $
+0.681 0 0 $
+0.66 0 0 $
+0.638 0 0 $
+0.617 0 0 $
+0.595 0 0 $
+0.574 0 0 $
+0.553 0 0 $
+0.531 0 0 $
+0.51 0 0 $
+0.488 0 0 $
+0.467 0 0 $
+0.455 0 0 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+434.343 660.475 518.33 634.229 axial
+popc
+newpath
+newpath
+443.736 692.043 m
+443.736 692.043 438.334 684.841 437.974 684.841 c
+437.614 684.841 434.013 681.24 432.212 677.638 c
+430.411 674.037 432.212 668.996 432.212 668.996 c
+432.212 668.996 428.251 661.794 428.251 661.794 c
+428.251 661.794 434.733 668.996 434.733 668.996 c
+434.733 668.996 437.974 673.317 437.974 673.317 c
+437.974 673.317 440.135 673.317 441.575 674.397 c
+443.015 675.478 439.775 678.719 440.135 680.519 c
+440.495 682.32 441.576 685.2 444.816 687.361 c
+448.057 689.522 449.228 689.882 449.498 691.053 c
+449.768 692.223 448.507 692.673 448.507 692.673 c
+448.507 692.673 445.806 692.493 444.456 692.403 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.848 0 0 $
+0.836 0 0 $
+0.825 0 0 $
+0.813 0 0 $
+0.801 0 0 $
+0.789 0 0 $
+0.778 0 0 $
+0.766 0 0 $
+0.754 0 0 $
+0.743 0 0 $
+0.731 0 0 $
+0.719 0 0 $
+0.707 0 0 $
+0.696 0 0 $
+0.684 0 0 $
+0.672 0 0 $
+0.661 0 0 $
+0.649 0 0 $
+0.637 0 0 $
+0.626 0 0 $
+0.614 0 0 $
+0.602 0 0 $
+0.59 0 0 $
+0.579 0 0 $
+0.567 0 0 $
+0.555 0 0 $
+0.544 0 0 $
+0.532 0 0 $
+0.52 0 0 $
+0.508 0 0 $
+0.497 0 0 $
+0.485 0 0 $
+0.473 0 0 $
+0.462 0 0 $
+0.452 0 0 $
+0.444 0 0 $
+0.436 0 0 $
+0.428 0 0 $
+0.42 0 0 $
+0.412 0 0 $
+0.404 0 0 $
+0.396 0 0 $
+0.388 0 0 $
+0.38 0 0 $
+0.373 0 0 $
+0.365 0 0 $
+0.357 0 0 $
+0.349 0 0 $
+0.341 0 0 $
+0.333 0 0 $
+424.233 685.785 453.554 668.682 axial
+popc
+newpath
+newpath
+442.656 672.957 m
+442.295 672.957 443.736 669.716 444.456 669.716 c
+445.176 669.716 445.176 671.877 446.977 674.037 c
+448.777 676.198 455.98 676.918 455.98 675.838 c
+455.98 674.758 450.578 671.516 451.298 670.796 c
+452.018 670.076 456.339 670.796 458.14 669.716 c
+459.941 668.636 462.462 662.874 463.542 663.234 c
+464.622 663.594 464.622 669.356 467.503 669.716 c
+470.384 670.076 481.367 663.594 484.248 663.234 c
+487.129 662.874 493.161 667.375 493.161 667.015 c
+493.161 666.655 487.669 665.214 484.788 666.475 c
+481.907 667.736 480.287 672.056 476.326 673.857 c
+472.365 675.658 469.124 676.558 465.882 677.638 c
+462.641 678.719 454.899 678.538 453.999 678.538 c
+453.099 678.538 446.976 676.918 446.617 676.558 c
+446.256 676.198 442.295 673.317 442.295 673.317 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.929 0 0 $
+0.915 0 0 $
+0.901 0 0 $
+0.887 0 0 $
+0.873 0 0 $
+0.858 0 0 $
+0.844 0 0 $
+0.83 0 0 $
+0.816 0 0 $
+0.802 0 0 $
+0.788 0 0 $
+0.774 0 0 $
+0.76 0 0 $
+0.745 0 0 $
+0.731 0 0 $
+0.717 0 0 $
+0.703 0 0 $
+0.689 0 0 $
+0.675 0 0 $
+0.661 0 0 $
+0.647 0 0 $
+0.632 0 0 $
+0.618 0 0 $
+0.604 0 0 $
+0.59 0 0 $
+0.576 0 0 $
+0.562 0 0 $
+0.548 0 0 $
+0.534 0 0 $
+0.519 0 0 $
+0.505 0 0 $
+0.491 0 0 $
+0.477 0 0 $
+0.463 0 0 $
+0.452 0 0 $
+0.444 0 0 $
+0.436 0 0 $
+0.428 0 0 $
+0.42 0 0 $
+0.412 0 0 $
+0.404 0 0 $
+0.396 0 0 $
+0.388 0 0 $
+0.38 0 0 $
+0.373 0 0 $
+0.365 0 0 $
+0.357 0 0 $
+0.349 0 0 $
+0.341 0 0 $
+0.333 0 0 $
+461.749 655.601 473.707 686.162 axial
+popc
+newpath
+[8.98414 -1.89974 -1.2665 -5.98943 433.112 634.785] ellipse
+pushc
+eoclip newpath
+50 gradient
+0.424 0 0 $
+0.425 0 0 $
+0.426 0 0 $
+0.427 0 0 $
+0.428 0 0 $
+0.43 0 0 $
+0.431 0 0 $
+0.432 0 0 $
+0.433 0 0 $
+0.434 0 0 $
+0.435 0 0 $
+0.436 0 0 $
+0.437 0 0 $
+0.439 0 0 $
+0.44 0 0 $
+0.441 0 0 $
+0.442 0 0 $
+0.443 0 0 $
+0.444 0 0 $
+0.445 0 0 $
+0.446 0 0 $
+0.448 0 0 $
+0.449 0 0 $
+0.45 0 0 $
+0.451 0 0 $
+0.452 0 0 $
+0.453 0 0 $
+0.454 0 0 $
+0.463 0 0 $
+0.489 0 0 $
+0.515 0 0 $
+0.541 0 0 $
+0.566 0 0 $
+0.592 0 0 $
+0.618 0 0 $
+0.644 0 0 $
+0.67 0 0 $
+0.695 0 0 $
+0.721 0 0 $
+0.747 0 0 $
+0.773 0 0 $
+0.799 0 0 $
+0.824 0 0 $
+0.828 0 0 $
+!
+!
+!
+!
+!
+!
+430.304 636.461 14.3008 0 radial
+popc
+newpath
+newpath
+449.137 618.94 m
+449.137 618.94 455.259 621.461 457.78 621.822 c
+460.301 622.181 463.182 622.181 464.982 620.741 c
+466.783 619.3 466.063 617.5 465.702 617.5 c
+465.342 617.5 460.301 616.78 457.06 615.7 c
+453.819 614.619 452.018 612.098 446.977 611.738 c
+441.935 611.378 443.376 609.938 437.614 611.738 c
+431.852 613.539 431.492 613.899 429.331 616.06 c
+427.171 618.22 423.57 622.901 423.57 622.901 c
+423.57 622.901 423.21 626.863 423.21 626.863 c
+423.21 626.863 424.29 627.943 427.891 624.702 c
+431.492 621.461 433.652 622.181 437.254 619.66 c
+440.855 617.14 439.414 618.58 444.096 618.22 c
+448.777 617.86 448.417 619.3 448.417 619.3 c
+closepath
+0.636 0 0 rgb
+F
+newpath
+400.523 635.505 m
+400.523 635.505 406.285 624.702 406.285 624.702 c
+406.285 624.702 408.445 626.863 408.806 626.863 c
+409.165 626.863 412.406 623.622 412.046 621.821 c
+411.686 620.021 408.445 616.06 408.445 616.06 c
+408.445 616.06 402.323 620.741 402.323 621.101 c
+402.323 621.461 404.124 624.342 403.764 624.342 c
+403.403 624.342 395.121 626.143 395.121 626.143 c
+395.121 626.143 397.282 617.86 397.282 617.86 c
+397.282 617.86 399.442 619.301 399.442 619.301 c
+399.442 619.301 406.285 613.179 406.285 613.539 c
+406.285 613.899 404.484 609.218 400.162 608.857 c
+395.841 608.497 394.401 611.018 394.401 611.018 c
+394.401 611.018 394.761 613.899 394.761 613.899 c
+394.761 613.899 384.678 615.339 384.678 615.339 c
+384.678 615.339 385.218 610.838 390.26 607.957 c
+395.301 605.076 397.462 603.996 403.224 606.157 c
+408.985 608.317 409.346 609.758 409.346 609.758 c
+409.346 609.758 409.886 610.298 409.886 610.298 c
+409.886 610.298 415.287 605.256 415.287 605.256 c
+415.287 605.256 418.528 609.938 418.528 609.938 c
+418.528 609.938 412.766 614.259 412.766 614.259 c
+412.766 614.259 414.927 617.5 414.927 617.5 c
+414.927 617.5 416.547 621.641 415.107 625.242 c
+413.667 628.843 410.966 630.464 410.966 630.464 c
+410.966 630.464 408.445 632.625 405.564 633.705 c
+402.683 634.785 401.243 634.785 401.243 634.785 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.737 0.737 0.737 $
+0.731 0.731 0.731 $
+0.725 0.725 0.725 $
+0.718 0.718 0.718 $
+0.712 0.712 0.712 $
+0.706 0.706 0.706 $
+0.7 0.7 0.7 $
+0.694 0.694 0.694 $
+0.687 0.687 0.687 $
+0.681 0.681 0.681 $
+0.675 0.675 0.675 $
+0.669 0.669 0.669 $
+0.663 0.663 0.663 $
+0.656 0.656 0.656 $
+0.65 0.65 0.65 $
+0.644 0.644 0.644 $
+0.638 0.638 0.638 $
+0.631 0.631 0.631 $
+0.625 0.625 0.625 $
+0.619 0.619 0.619 $
+0.613 0.613 0.613 $
+0.607 0.607 0.607 $
+0.6 0.6 0.6 $
+0.594 0.594 0.594 $
+0.588 0.588 0.588 $
+0.582 0.582 0.582 $
+0.576 0.576 0.576 $
+0.569 0.569 0.569 $
+0.563 0.563 0.563 $
+0.557 0.557 0.557 $
+0.537 0.537 0.537 $
+0.514 0.514 0.514 $
+0.492 0.492 0.492 $
+0.469 0.469 0.469 $
+0.446 0.446 0.446 $
+0.424 0.424 0.424 $
+0.401 0.401 0.401 $
+0.384 0.384 0.384 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+382.433 631.763 420.773 608.758 axial
+popc
+newpath
+[6.26125 -1.34636 -0.426261 -8.21329 424.516 594.859] ellipse
+pushc
+eoclip newpath
+50 gradient
+0.424 0 0 $
+0.431 0 0 $
+0.438 0 0 $
+0.444 0 0 $
+0.451 0 0 $
+0.458 0 0 $
+0.465 0 0 $
+0.472 0 0 $
+0.479 0 0 $
+0.485 0 0 $
+0.492 0 0 $
+0.499 0 0 $
+0.506 0 0 $
+0.513 0 0 $
+0.519 0 0 $
+0.526 0 0 $
+0.533 0 0 $
+0.54 0 0 $
+0.547 0 0 $
+0.554 0 0 $
+0.56 0 0 $
+0.567 0 0 $
+0.574 0 0 $
+0.581 0 0 $
+0.588 0 0 $
+0.594 0 0 $
+0.601 0 0 $
+0.608 0 0 $
+0.615 0 0 $
+0.622 0 0 $
+0.628 0 0 $
+0.635 0 0 $
+0.642 0 0 $
+0.649 0 0 $
+0.656 0 0 $
+0.663 0 0 $
+0.669 0 0 $
+0.676 0 0 $
+0.683 0 0 $
+0.69 0 0 $
+0.697 0 0 $
+0.703 0 0 $
+0.71 0 0 $
+0.717 0 0 $
+0.724 0 0 $
+0.731 0 0 $
+0.738 0 0 $
+0.744 0 0 $
+0.751 0 0 $
+0.758 0 0 $
+422.275 598.188 14.4331 0 radial
+popc
+newpath
+newpath
+442.655 600.575 m
+442.655 600.575 443.376 604.536 446.256 605.256 c
+449.138 605.977 453.818 602.735 454.179 602.735 c
+454.539 602.735 458.5 603.816 463.182 602.015 c
+467.863 600.215 467.863 597.694 465.342 595.894 c
+462.822 594.093 466.063 591.932 463.542 591.573 c
+461.022 591.212 460.661 590.851 458.86 592.293 c
+457.06 593.733 455.259 599.494 454.899 599.494 c
+454.539 599.494 448.777 600.575 448.417 600.575 c
+448.057 600.575 443.015 600.215 443.015 600.215 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.778 0 0 $
+0.772 0 0 $
+0.765 0 0 $
+0.759 0 0 $
+0.752 0 0 $
+0.746 0 0 $
+0.74 0 0 $
+0.733 0 0 $
+0.727 0 0 $
+0.721 0 0 $
+0.714 0 0 $
+0.708 0 0 $
+0.701 0 0 $
+0.695 0 0 $
+0.689 0 0 $
+0.682 0 0 $
+0.676 0 0 $
+0.669 0 0 $
+0.663 0 0 $
+0.657 0 0 $
+0.65 0 0 $
+0.644 0 0 $
+0.637 0 0 $
+0.631 0 0 $
+0.625 0 0 $
+0.618 0 0 $
+0.612 0 0 $
+0.606 0 0 $
+0.599 0 0 $
+0.593 0 0 $
+0.586 0 0 $
+0.58 0 0 $
+0.574 0 0 $
+0.567 0 0 $
+0.561 0 0 $
+0.554 0 0 $
+0.548 0 0 $
+0.542 0 0 $
+0.535 0 0 $
+0.529 0 0 $
+0.522 0 0 $
+0.516 0 0 $
+0.51 0 0 $
+0.503 0 0 $
+0.497 0 0 $
+0.491 0 0 $
+0.484 0 0 $
+0.478 0 0 $
+0.471 0 0 $
+0.465 0 0 $
+454.84 605.361 454.84 591.25 axial
+popc
+newpath
+[5.36305 -1.08423 -0.365113 -6.61418 420.735 593.239] ellipse
+pushc
+eoclip newpath
+50 gradient
+0.424 0 0 $
+0.425 0 0 $
+0.426 0 0 $
+0.427 0 0 $
+0.428 0 0 $
+0.43 0 0 $
+0.431 0 0 $
+0.432 0 0 $
+0.433 0 0 $
+0.434 0 0 $
+0.435 0 0 $
+0.436 0 0 $
+0.437 0 0 $
+0.439 0 0 $
+0.44 0 0 $
+0.441 0 0 $
+0.442 0 0 $
+0.443 0 0 $
+0.444 0 0 $
+0.445 0 0 $
+0.446 0 0 $
+0.448 0 0 $
+0.449 0 0 $
+0.45 0 0 $
+0.451 0 0 $
+0.452 0 0 $
+0.453 0 0 $
+0.454 0 0 $
+0.463 0 0 $
+0.489 0 0 $
+0.515 0 0 $
+0.541 0 0 $
+0.566 0 0 $
+0.592 0 0 $
+0.618 0 0 $
+0.644 0 0 $
+0.67 0 0 $
+0.695 0 0 $
+0.721 0 0 $
+0.747 0 0 $
+0.773 0 0 $
+0.799 0 0 $
+0.824 0 0 $
+0.828 0 0 $
+!
+!
+!
+!
+!
+!
+419.172 595.338 11.2075 0 radial
+popc
+newpath
+newpath
+527.641 524.952 m
+522.96 522.791 l
+519.359 531.074 l
+511.437 522.791 l
+497.752 514.149 l
+519.359 514.869 l
+528.362 514.869 l
+538.805 516.309 l
+531.242 518.83 l
+535.924 522.791 l
+537.365 526.392 l
+534.124 526.753 l
+526.921 524.772 l
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.475 0 0 $
+0.474 0 0 $
+0.474 0 0 $
+0.473 0 0 $
+0.473 0 0 $
+0.472 0 0 $
+0.471 0 0 $
+0.471 0 0 $
+0.47 0 0 $
+0.47 0 0 $
+0.469 0 0 $
+0.468 0 0 $
+0.468 0 0 $
+0.467 0 0 $
+0.467 0 0 $
+0.466 0 0 $
+0.465 0 0 $
+0.465 0 0 $
+0.464 0 0 $
+0.464 0 0 $
+0.463 0 0 $
+0.462 0 0 $
+0.462 0 0 $
+0.461 0 0 $
+0.461 0 0 $
+0.46 0 0 $
+0.46 0 0 $
+0.459 0 0 $
+0.458 0 0 $
+0.458 0 0 $
+0.457 0 0 $
+0.457 0 0 $
+0.456 0 0 $
+0.455 0 0 $
+0.461 0 0 $
+0.476 0 0 $
+0.49 0 0 $
+0.504 0 0 $
+0.519 0 0 $
+0.533 0 0 $
+0.548 0 0 $
+0.562 0 0 $
+0.576 0 0 $
+0.591 0 0 $
+0.605 0 0 $
+0.619 0 0 $
+0.634 0 0 $
+0.648 0 0 $
+0.663 0 0 $
+0.677 0 0 $
+513.88 522.611 26.3224 0 radial
+popc
+newpath
+[8.05766 -0.851211 -0.548558 -5.1927 421.229 605.796] ellipse
+pushc
+eoclip newpath
+50 gradient
+0.424 0 0 $
+0.425 0 0 $
+0.426 0 0 $
+0.427 0 0 $
+0.428 0 0 $
+0.43 0 0 $
+0.431 0 0 $
+0.432 0 0 $
+0.433 0 0 $
+0.434 0 0 $
+0.435 0 0 $
+0.436 0 0 $
+0.437 0 0 $
+0.439 0 0 $
+0.44 0 0 $
+0.441 0 0 $
+0.442 0 0 $
+0.443 0 0 $
+0.444 0 0 $
+0.445 0 0 $
+0.446 0 0 $
+0.448 0 0 $
+0.449 0 0 $
+0.45 0 0 $
+0.451 0 0 $
+0.452 0 0 $
+0.453 0 0 $
+0.454 0 0 $
+0.463 0 0 $
+0.489 0 0 $
+0.515 0 0 $
+0.541 0 0 $
+0.566 0 0 $
+0.592 0 0 $
+0.618 0 0 $
+0.644 0 0 $
+0.67 0 0 $
+0.695 0 0 $
+0.721 0 0 $
+0.747 0 0 $
+0.773 0 0 $
+0.799 0 0 $
+0.824 0 0 $
+0.828 0 0 $
+!
+!
+!
+!
+!
+!
+418.881 607.444 12.5065 0 radial
+popc
+newpath
+[8.05766 -0.851211 -0.548558 -5.1927 417.831 599.877] ellipse
+pushc
+eoclip newpath
+50 gradient
+0.424 0 0 $
+0.425 0 0 $
+0.426 0 0 $
+0.427 0 0 $
+0.428 0 0 $
+0.43 0 0 $
+0.431 0 0 $
+0.432 0 0 $
+0.433 0 0 $
+0.434 0 0 $
+0.435 0 0 $
+0.436 0 0 $
+0.437 0 0 $
+0.439 0 0 $
+0.44 0 0 $
+0.441 0 0 $
+0.442 0 0 $
+0.443 0 0 $
+0.444 0 0 $
+0.445 0 0 $
+0.446 0 0 $
+0.448 0 0 $
+0.449 0 0 $
+0.45 0 0 $
+0.451 0 0 $
+0.452 0 0 $
+0.453 0 0 $
+0.454 0 0 $
+0.463 0 0 $
+0.489 0 0 $
+0.515 0 0 $
+0.541 0 0 $
+0.566 0 0 $
+0.592 0 0 $
+0.618 0 0 $
+0.644 0 0 $
+0.67 0 0 $
+0.695 0 0 $
+0.721 0 0 $
+0.747 0 0 $
+0.773 0 0 $
+0.799 0 0 $
+0.824 0 0 $
+0.828 0 0 $
+!
+!
+!
+!
+!
+!
+415.483 601.525 12.5065 0 radial
+popc
+newpath
+newpath
+416.727 544.758 m
+417.088 544.758 428.972 546.558 430.052 546.558 c
+431.132 546.558 434.733 546.919 436.173 548.719 c
+437.614 550.52 436.534 552.681 436.534 552.681 c
+436.534 552.681 434.733 558.082 435.093 558.442 c
+435.453 558.802 444.456 557.002 444.456 557.002 c
+444.456 557.002 450.938 557.362 452.378 555.561 c
+453.819 553.761 452.739 547.999 452.739 547.999 c
+452.739 547.999 450.218 544.037 449.858 544.037 c
+449.497 544.037 445.536 541.517 440.495 540.797 c
+435.453 540.077 435.814 542.598 431.132 541.157 c
+426.451 539.716 422.849 537.556 422.849 537.556 c
+422.849 537.556 417.448 544.758 417.448 544.758 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.556 0 0 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+0.564 0 0 $
+0.574 0 0 $
+0.585 0 0 $
+0.595 0 0 $
+0.606 0 0 $
+0.617 0 0 $
+0.627 0 0 $
+0.638 0 0 $
+0.648 0 0 $
+0.659 0 0 $
+0.669 0 0 $
+0.68 0 0 $
+0.691 0 0 $
+0.701 0 0 $
+0.712 0 0 $
+0.722 0 0 $
+0.733 0 0 $
+0.743 0 0 $
+0.754 0 0 $
+0.765 0 0 $
+0.775 0 0 $
+0.786 0 0 $
+0.796 0 0 $
+0.807 0 0 $
+0.817 0 0 $
+0.828 0 0 $
+432.761 549.418 23.5697 0 radial
+popc
+newpath
+newpath
+435.453 555.561 m
+435.453 555.921 434.373 558.442 434.373 558.442 c
+434.373 558.442 441.215 558.082 441.215 558.082 c
+441.215 558.082 446.977 557.002 446.977 557.002 c
+446.977 557.002 451.298 556.641 451.298 556.641 c
+451.298 556.641 452.739 553.761 452.739 553.761 c
+452.739 553.761 453.098 550.88 453.098 550.88 c
+453.098 550.88 446.617 552.32 446.256 552.681 c
+445.897 553.04 439.775 554.841 439.414 554.841 c
+439.055 554.841 435.453 557.002 435.453 557.002 c
+closepath
+0.434 0 0 rgb
+F
+newpath
+452.018 551.6 m
+452.018 551.6 453.098 550.88 452.018 547.639 c
+450.938 544.398 449.498 544.037 449.138 544.037 c
+448.777 544.037 446.256 542.237 446.256 542.237 c
+0.475 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+434.373 558.442 m
+434.373 558.442 434.733 558.082 435.814 555.201 c
+436.894 552.32 437.974 554.12 436.534 550.52 c
+435.093 546.919 434.733 547.278 434.733 547.278 c
+434.733 547.278 432.932 547.278 432.932 547.278 c
+S
+newpath
+475.065 553.401 m
+475.065 553.401 476.866 545.478 476.866 545.118 c
+476.866 544.758 479.747 539.356 479.387 539.356 c
+479.026 539.356 475.426 537.195 471.464 535.755 c
+467.503 534.315 462.462 531.794 459.221 531.434 c
+455.98 531.074 446.256 531.794 446.256 531.794 c
+446.256 531.794 445.897 535.395 441.575 537.916 c
+437.254 540.437 428.972 541.517 428.972 541.517 c
+428.972 541.517 439.775 543.678 439.775 543.678 c
+439.775 543.678 448.777 545.478 448.777 545.478 c
+448.777 545.478 450.218 554.481 450.218 554.481 c
+450.218 554.481 455.619 555.561 455.98 555.561 c
+456.339 555.561 467.863 555.921 468.223 555.921 c
+468.584 555.921 474.345 554.12 474.345 554.12 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.556 0 0 $
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+!
+0.564 0 0 $
+0.574 0 0 $
+0.585 0 0 $
+0.595 0 0 $
+0.606 0 0 $
+0.617 0 0 $
+0.627 0 0 $
+0.638 0 0 $
+0.648 0 0 $
+0.659 0 0 $
+0.669 0 0 $
+0.68 0 0 $
+0.691 0 0 $
+0.701 0 0 $
+0.712 0 0 $
+0.722 0 0 $
+0.733 0 0 $
+0.743 0 0 $
+0.754 0 0 $
+0.765 0 0 $
+0.775 0 0 $
+0.786 0 0 $
+0.796 0 0 $
+0.807 0 0 $
+0.817 0 0 $
+0.828 0 0 $
+451.192 545.266 31.4774 0 radial
+popc
+newpath
+newpath
+453.098 555.561 m
+463.542 559.162 l
+473.265 559.523 l
+475.785 553.401 l
+476.866 547.639 l
+477.586 543.318 l
+474.705 546.198 l
+467.863 549.079 l
+458.14 550.88 l
+453.098 552.32 l
+450.938 554.481 l
+452.739 555.921 l
+closepath
+0.434 0 0 rgb
+F
+453.098 555.561 m
+463.542 559.162 l
+473.265 559.523 l
+475.785 553.401 l
+476.866 547.639 l
+477.586 543.318 l
+474.705 546.198 l
+467.863 549.079 l
+458.14 550.88 l
+453.098 552.32 l
+450.938 554.481 l
+452.739 555.921 l
+0.475 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[15.1246 0 0 -7.74233 413.127 537.735] ellipse
+pushc
+eoclip newpath
+50 gradient
+0.576 0.576 0.576 $
+0.585 0.585 0.585 $
+0.593 0.593 0.593 $
+0.602 0.602 0.602 $
+0.611 0.611 0.611 $
+0.619 0.619 0.619 $
+0.628 0.628 0.628 $
+0.637 0.637 0.637 $
+0.645 0.645 0.645 $
+0.654 0.654 0.654 $
+0.663 0.663 0.663 $
+0.671 0.671 0.671 $
+0.68 0.68 0.68 $
+0.688 0.688 0.688 $
+0.697 0.697 0.697 $
+0.706 0.706 0.706 $
+0.714 0.714 0.714 $
+0.723 0.723 0.723 $
+0.732 0.732 0.732 $
+0.74 0.74 0.74 $
+0.749 0.749 0.749 $
+0.758 0.758 0.758 $
+0.766 0.766 0.766 $
+0.775 0.775 0.775 $
+0.784 0.784 0.784 $
+0.792 0.792 0.792 $
+0.801 0.801 0.801 $
+0.81 0.81 0.81 $
+0.818 0.818 0.818 $
+0.827 0.827 0.827 $
+0.836 0.836 0.836 $
+0.844 0.844 0.844 $
+0.853 0.853 0.853 $
+0.862 0.862 0.862 $
+0.87 0.87 0.87 $
+0.879 0.879 0.879 $
+0.888 0.888 0.888 $
+0.896 0.896 0.896 $
+0.905 0.905 0.905 $
+0.913 0.913 0.913 $
+0.922 0.922 0.922 $
+0.931 0.931 0.931 $
+0.939 0.939 0.939 $
+0.948 0.948 0.948 $
+0.957 0.957 0.957 $
+0.965 0.965 0.965 $
+0.974 0.974 0.974 $
+0.983 0.983 0.983 $
+0.991 0.991 0.991 $
+1 1 1 $
+406.645 540.058 23.8358 0 radial
+popc
+newpath
+newpath
+401.536 541.99 m
+401.536 541.99 399.555 541.45 399.376 541.27 c
+399.195 541.09 397.935 538.569 397.935 538.569 c
+397.935 538.569 402.976 535.328 402.976 535.328 c
+402.976 535.328 407.118 532.987 410.539 532.627 c
+413.96 532.267 417.021 531.907 417.021 531.907 c
+417.021 531.907 417.201 535.148 416.66 535.148 c
+416.12 535.148 410.358 536.048 410.179 536.048 c
+409.999 536.048 408.018 535.868 404.417 538.749 c
+400.816 541.63 402.256 541.27 402.076 541.27 c
+closepath
+0.596 0.596 0.596 rgb
+F
+[15.1246 0 0 -7.74233 430.975 533.257] ellipse
+pushc
+eoclip newpath
+50 gradient
+0.576 0.576 0.576 $
+0.585 0.585 0.585 $
+0.593 0.593 0.593 $
+0.602 0.602 0.602 $
+0.611 0.611 0.611 $
+0.619 0.619 0.619 $
+0.628 0.628 0.628 $
+0.637 0.637 0.637 $
+0.645 0.645 0.645 $
+0.654 0.654 0.654 $
+0.663 0.663 0.663 $
+0.671 0.671 0.671 $
+0.68 0.68 0.68 $
+0.688 0.688 0.688 $
+0.697 0.697 0.697 $
+0.706 0.706 0.706 $
+0.714 0.714 0.714 $
+0.723 0.723 0.723 $
+0.732 0.732 0.732 $
+0.74 0.74 0.74 $
+0.749 0.749 0.749 $
+0.758 0.758 0.758 $
+0.766 0.766 0.766 $
+0.775 0.775 0.775 $
+0.784 0.784 0.784 $
+0.792 0.792 0.792 $
+0.801 0.801 0.801 $
+0.81 0.81 0.81 $
+0.818 0.818 0.818 $
+0.827 0.827 0.827 $
+0.836 0.836 0.836 $
+0.844 0.844 0.844 $
+0.853 0.853 0.853 $
+0.862 0.862 0.862 $
+0.87 0.87 0.87 $
+0.879 0.879 0.879 $
+0.888 0.888 0.888 $
+0.896 0.896 0.896 $
+0.905 0.905 0.905 $
+0.913 0.913 0.913 $
+0.922 0.922 0.922 $
+0.931 0.931 0.931 $
+0.939 0.939 0.939 $
+0.948 0.948 0.948 $
+0.957 0.957 0.957 $
+0.965 0.965 0.965 $
+0.974 0.974 0.974 $
+0.983 0.983 0.983 $
+0.991 0.991 0.991 $
+1 1 1 $
+424.493 535.58 23.8359 0 radial
+popc
+newpath
+newpath
+443.015 533.954 m
+443.015 533.954 452.018 532.874 461.742 533.954 c
+471.464 535.035 479.026 538.996 479.026 538.996 c
+479.026 538.996 480.467 531.434 480.467 531.434 c
+480.467 531.434 469.664 527.473 462.101 526.392 c
+454.539 525.312 437.974 526.032 437.974 526.032 c
+437.974 526.032 435.093 526.392 435.093 526.392 c
+435.093 526.392 442.295 533.954 442.295 533.954 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.576 0.576 0.576 $
+0.585 0.585 0.585 $
+0.593 0.593 0.593 $
+0.602 0.602 0.602 $
+0.611 0.611 0.611 $
+0.619 0.619 0.619 $
+0.628 0.628 0.628 $
+0.637 0.637 0.637 $
+0.645 0.645 0.645 $
+0.654 0.654 0.654 $
+0.663 0.663 0.663 $
+0.671 0.671 0.671 $
+0.68 0.68 0.68 $
+0.688 0.688 0.688 $
+0.697 0.697 0.697 $
+0.706 0.706 0.706 $
+0.714 0.714 0.714 $
+0.723 0.723 0.723 $
+0.732 0.732 0.732 $
+0.74 0.74 0.74 $
+0.749 0.749 0.749 $
+0.758 0.758 0.758 $
+0.766 0.766 0.766 $
+0.775 0.775 0.775 $
+0.784 0.784 0.784 $
+0.792 0.792 0.792 $
+0.801 0.801 0.801 $
+0.81 0.81 0.81 $
+0.818 0.818 0.818 $
+0.827 0.827 0.827 $
+0.836 0.836 0.836 $
+0.844 0.844 0.844 $
+0.853 0.853 0.853 $
+0.862 0.862 0.862 $
+0.87 0.87 0.87 $
+0.879 0.879 0.879 $
+0.888 0.888 0.888 $
+0.896 0.896 0.896 $
+0.905 0.905 0.905 $
+0.913 0.913 0.913 $
+0.922 0.922 0.922 $
+0.931 0.931 0.931 $
+0.939 0.939 0.939 $
+0.948 0.948 0.948 $
+0.957 0.957 0.957 $
+0.965 0.965 0.965 $
+0.974 0.974 0.974 $
+0.983 0.983 0.983 $
+0.991 0.991 0.991 $
+1 1 1 $
+455.432 543.354 460.128 521.439 axial
+popc
+newpath
+newpath
+432.212 546.558 m
+435.814 544.758 l
+0.768 0.768 0.768 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+435.093 548.359 m
+439.055 545.838 l
+S
+newpath
+444.456 544.037 m
+449.497 542.598 l
+S
+newpath
+448.057 545.838 m
+451.298 544.758 l
+S
+newpath
+428.972 525.492 m
+429.331 525.852 432.572 531.794 432.572 531.794 c
+432.572 531.794 443.015 530.353 443.015 530.353 c
+443.015 530.353 451.838 530.173 452.558 529.813 c
+453.279 529.453 468.943 532.154 469.304 532.515 c
+469.664 532.874 479.387 537.195 479.387 537.195 c
+479.387 537.195 481.547 531.254 481.187 531.254 c
+480.827 531.254 480.467 529.813 465.342 527.112 c
+450.218 524.412 450.938 525.132 442.656 525.492 c
+434.373 525.852 428.611 525.672 428.611 525.672 c
+closepath
+0.596 0.596 0.596 rgb
+F
+newpath
+420.058 538.366 m
+420.058 538.366 418.078 537.826 417.898 537.646 c
+417.718 537.465 416.457 534.945 416.457 534.945 c
+416.457 534.945 421.499 531.704 421.499 531.704 c
+421.499 531.704 425.64 529.363 429.061 529.003 c
+432.483 528.643 433.563 529.543 433.563 529.543 c
+433.563 529.543 434.103 531.884 433.563 531.884 c
+433.023 531.884 428.881 532.424 428.701 532.424 c
+428.521 532.424 426.541 532.244 422.94 535.125 c
+419.338 538.006 420.779 537.646 420.599 537.646 c
+closepath
+F
+newpath
+426.451 622.542 m
+426.451 622.542 433.112 618.58 433.833 617.32 c
+434.553 616.06 439.414 613.179 442.295 613.179 c
+445.176 613.179 451.298 615.7 451.298 615.7 c
+451.298 615.7 461.742 619.301 461.742 619.301 c
+461.742 619.301 455.799 618.761 450.038 616.96 c
+444.276 615.159 444.816 615.339 441.935 615.339 c
+439.055 615.339 434.013 619.301 433.653 619.301 c
+433.293 619.301 426.451 622.542 426.451 622.542 c
+closepath
+pushc
+eoclip newpath
+50 gradient
+0.616 0 0 $
+0.611 0 0 $
+0.606 0 0 $
+0.602 0 0 $
+0.597 0 0 $
+0.592 0 0 $
+0.587 0 0 $
+0.582 0 0 $
+0.578 0 0 $
+0.573 0 0 $
+0.568 0 0 $
+0.563 0 0 $
+0.558 0 0 $
+0.554 0 0 $
+0.549 0 0 $
+0.544 0 0 $
+0.539 0 0 $
+0.534 0 0 $
+0.53 0 0 $
+0.525 0 0 $
+0.52 0 0 $
+0.515 0 0 $
+0.51 0 0 $
+0.506 0 0 $
+0.501 0 0 $
+0.496 0 0 $
+0.491 0 0 $
+0.486 0 0 $
+0.482 0 0 $
+0.477 0 0 $
+0.472 0 0 $
+0.467 0 0 $
+0.463 0 0 $
+0.458 0 0 $
+0.455 0 0 $
+0.456 0 0 $
+0.457 0 0 $
+0.457 0 0 $
+0.458 0 0 $
+0.459 0 0 $
+0.459 0 0 $
+0.46 0 0 $
+0.46 0 0 $
+0.461 0 0 $
+0.462 0 0 $
+0.462 0 0 $
+0.463 0 0 $
+0.464 0 0 $
+0.464 0 0 $
+0.465 0 0 $
+444.096 617.86 18.256 0 radial
+popc
+newpath
+newpath
+246.446 791.099 m
+246.263 653.969 l
+257.252 653.969 l
+266.043 663.649 l
+266.043 779.806 l
+259.45 790.292 l
+246.263 790.292 l
+closepath
+1 1 1 rgb
+F
+newpath
+338.281 563.853 m
+261.027 609.375 l
+271.99 609.375 l
+286.201 606.162 l
+351.486 567.602 l
+350.801 564.121 l
+337.645 564.121 l
+closepath
+F
+newpath
+71.1751 794.729 m
+71.1751 739.474 l
+83.6291 739.474 l
+87.292 751.573 l
+86.9257 784.646 l
+82.5302 794.326 l
+71.5414 794.326 l
+closepath
+F
+newpath
+165.457 562.648 m
+134.401 580.991 l
+146.827 580.991 l
+157.281 576.974 l
+175.504 565.995 l
+176.559 562.782 l
+165.596 562.782 l
+closepath
+F
+newpath
+71.1751 705.191 m
+71.1751 649.936 l
+83.6291 649.936 l
+87.292 662.036 l
+86.9257 695.108 l
+82.5302 704.788 l
+71.5414 704.788 l
+closepath
+F
+newpath
+115.134 592.371 m
+84.0782 610.714 l
+96.5032 610.714 l
+106.958 606.698 l
+125.181 595.719 l
+126.236 592.505 l
+115.272 592.505 l
+closepath
+F
+showpage
+end
+%%Trailer
+cleartomark countdictstack exch sub { end } repeat restore
+%%EOF
diff --git a/share/examples/Makefile b/share/examples/Makefile
index 90bef45f6dfc..04f53d683a2c 100644
--- a/share/examples/Makefile
+++ b/share/examples/Makefile
@@ -240,6 +240,7 @@ etc-examples:
.endif
.if ${SHARED} != "symlinks"
+SUBDIR= smbfs
.if ${MK_ATF} != "no"
SUBDIR+=atf
.endif
diff --git a/share/examples/etc/README.examples b/share/examples/etc/README.examples
index d703edbf5681..f7bf4ceb8cfb 100644
--- a/share/examples/etc/README.examples
+++ b/share/examples/etc/README.examples
@@ -40,6 +40,7 @@ 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 1fd3c79cf8bd..19be71347235 100644
--- a/share/examples/etc/make.conf
+++ b/share/examples/etc/make.conf
@@ -30,22 +30,22 @@
# NO_CPU_CFLAGS variable below.
# Currently the following CPU types are recognized:
# Intel x86 architecture:
-# (AMD CPUs) opteron-sse3, athlon64-sse3, k8-sse3, opteron,
-# athlon64, athlon-fx, k8, athlon-mp, athlon-xp,
-# athlon-4, athlon-tbird, athlon, k7, geode, k6-3,
-# k6-2, k6
+# (AMD CPUs) amdfam10, opteron-sse3, athlon64-sse3, k8-sse3,
+# opteron, athlon64, athlon-fx, k8, athlon-mp,
+# athlen-xp, athlon-4, athlon-tbird, athlon, k7,
+# geode, k6-3, k6-2, k6
# (Intel CPUs) core2, core, nocona, pentium4m, pentium4, prescott,
# pentium3m, pentium3, pentium-m, pentium2,
# pentiumpro, pentium-mmx, pentium, i486
# (VIA CPUs) c7, c3-2, c3
-# AMD64 architecture: opteron-sse3, athlon64-sse3, k8-sse3, opteron,
-# athlon64, k8, core2, nocona
+# AMD64 architecture: amdfam10, opteron-sse3, athlon64-sse3, k8-sse3,
+# opteron, athlon64, k8, core2, nocona
# Intel ia64 architecture: itanium2, itanium
# SPARC-V9 architecture: v9 (generic 64-bit V9), ultrasparc (default
# if omitted), ultrasparc3
# Additionally the following CPU types are recognized by clang:
# Intel x86 architecture (for both amd64 and i386):
-# (AMD CPUs) bdver2, bdver1, btver1, amdfam10
+# (AMD CPUs) bdver2, bdver1, btver2, btver1
# (Intel CPUs) core-avx2, core-avx-i, corei7-avx, corei7, atom
#
# (?= allows to buildworld for a different CPUTYPE.)
@@ -97,7 +97,7 @@
#COPTFLAGS= -O -pipe
#
# Compare before install.
-#INSTALL=install -C
+#INSTALL+= -C
#
# Mtree will follow symlinks.
#MTREE_FOLLOWS_SYMLINKS= -L
diff --git a/share/examples/kld/syscall/test/call.c b/share/examples/kld/syscall/test/call.c
index 0051df5b106c..3611966e097d 100644
--- a/share/examples/kld/syscall/test/call.c
+++ b/share/examples/kld/syscall/test/call.c
@@ -30,6 +30,7 @@
#include <sys/module.h>
#include <sys/syscall.h>
+#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -37,11 +38,14 @@
int
main(int argc __unused, char **argv __unused)
{
- int syscall_num;
+ int modid, syscall_num;
struct module_stat stat;
stat.version = sizeof(stat);
- modstat(modfind("sys/syscall"), &stat);
+ if ((modid = modfind("sys/syscall")) == -1)
+ err(1, "modfind");
+ if (modstat(modid, &stat) != 0)
+ err(1, "modstat");
syscall_num = stat.data.intval;
return syscall (syscall_num);
}
diff --git a/share/examples/ppi/ppilcd.c b/share/examples/ppi/ppilcd.c
index fd2506d66cd5..17e2172e2acb 100644
--- a/share/examples/ppi/ppilcd.c
+++ b/share/examples/ppi/ppilcd.c
@@ -269,7 +269,7 @@ do_char(struct lcd_driver *driver, char ch)
* one of the ground pins (eg. pin 25).
*
* Note that the pinning on some LCD modules has the odd and even pins
- * arranged as though reversed; check carefully before conecting a module
+ * arranged as though reversed; check carefully before connecting a module
* as it is possible to toast the HD44780 if the power is reversed.
*/
diff --git a/share/examples/scsi_target/scsi_target.c b/share/examples/scsi_target/scsi_target.c
index 1a7a0615a29e..0609ce12f65f 100644
--- a/share/examples/scsi_target/scsi_target.c
+++ b/share/examples/scsi_target/scsi_target.c
@@ -365,7 +365,7 @@ init_ccbs()
for (i = 0; i < MAX_INITIATORS; i++) {
struct ccb_accept_tio *atio;
struct atio_descr *a_descr;
- struct ccb_immed_notify *inot;
+ struct ccb_immediate_notify *inot;
atio = (struct ccb_accept_tio *)malloc(sizeof(*atio));
if (atio == NULL) {
@@ -382,7 +382,7 @@ init_ccbs()
atio->ccb_h.targ_descr = a_descr;
send_ccb((union ccb *)atio, /*priority*/1);
- inot = (struct ccb_immed_notify *)malloc(sizeof(*inot));
+ inot = (struct ccb_immediate_notify *)malloc(sizeof(*inot));
if (inot == NULL) {
warn("malloc INOT");
return (-1);
@@ -593,7 +593,7 @@ handle_read()
oo += run_queue(c_descr->atio);
break;
}
- case XPT_IMMED_NOTIFY:
+ case XPT_IMMEDIATE_NOTIFY:
/* INOTs are handled with priority */
TAILQ_INSERT_HEAD(&work_queue, &ccb->ccb_h,
periph_links.tqe);
@@ -903,7 +903,7 @@ free_ccb(union ccb *ccb)
case XPT_ACCEPT_TARGET_IO:
free(ccb->ccb_h.targ_descr);
/* FALLTHROUGH */
- case XPT_IMMED_NOTIFY:
+ case XPT_IMMEDIATE_NOTIFY:
default:
free(ccb);
break;
diff --git a/share/i18n/csmapper/KAZAKH/KZ1048%UCS.src b/share/i18n/csmapper/KAZAKH/KZ1048%UCS.src
index ca299dba179e..05cab4d7acae 100644
--- a/share/i18n/csmapper/KAZAKH/KZ1048%UCS.src
+++ b/share/i18n/csmapper/KAZAKH/KZ1048%UCS.src
@@ -22,8 +22,8 @@ BEGIN_MAP
# Suitability for use in MIME text:
# Yes
# Published specification(s):
-# The official Standard STRK1048-2002 was created by the Committee of standartization of
-# Ministry of economy and trade of Kazakhstan Republic ans was published in print by the
+# The official Standard STRK1048-2002 was created by the Committee of standardization of
+# Ministry of economy and trade of Kazakhstan Republic and was published in print by the
# Kazakhstan Standard Committee, Astana, February 7, 2002
#
# Mapping data are available online at http://www.sci.kz/~sairan/kazcode/TableA.html
diff --git a/share/i18n/csmapper/KAZAKH/UCS%KZ1048.src b/share/i18n/csmapper/KAZAKH/UCS%KZ1048.src
index 5d1227ec0b85..be6c4bdfb7e1 100644
--- a/share/i18n/csmapper/KAZAKH/UCS%KZ1048.src
+++ b/share/i18n/csmapper/KAZAKH/UCS%KZ1048.src
@@ -22,8 +22,8 @@ BEGIN_MAP
# Suitability for use in MIME text:
# Yes
# Published specification(s):
-# The official Standard STRK1048-2002 was created by the Committee of standartization of
-# Ministry of economy and trade of Kazakhstan Republic ans was published in print by the
+# The official Standard STRK1048-2002 was created by the Committee of standardization of
+# Ministry of economy and trade of Kazakhstan Republic and was published in print by the
# Kazakhstan Standard Committee, Astana, February 7, 2002
#
# Mapping data are available online at http://www.sci.kz/~sairan/kazcode/TableA.html
diff --git a/share/i18n/csmapper/Makefile b/share/i18n/csmapper/Makefile
index 7a0e3721f775..54746f97006e 100644
--- a/share/i18n/csmapper/Makefile
+++ b/share/i18n/csmapper/Makefile
@@ -7,7 +7,7 @@ SUBDIR= APPLE AST BIG5 CNS CP EBCDIC GB GEORGIAN ISO646 ISO-8859 JIS \
KAZAKH KOI KS MISC TCVN
mapper.dir: ${SUBDIR}
- touch ${.TARGET}
+ > ${.TARGET}
.for i in ${SUBDIR}
cat ${i}/mapper.dir.${i} >> ${.TARGET}
.endfor
@@ -18,7 +18,7 @@ FILES+= mapper.dir mapper.dir.db
CLEANFILES+= mapper.dir mapper.dir.db
charset.pivot: ${SUBDIR}
- touch ${.TARGET}
+ > ${.TARGET}
.for i in ${SUBDIR}
cat ${i}/charset.pivot.${i} >> ${.TARGET}
.endfor
diff --git a/share/i18n/esdb/Makefile b/share/i18n/esdb/Makefile
index 419ca21157ea..3cd372ca6842 100644
--- a/share/i18n/esdb/Makefile
+++ b/share/i18n/esdb/Makefile
@@ -10,7 +10,7 @@ FILES+= esdb.dir esdb.dir.db esdb.alias esdb.alias.db
CLEANFILES= ${FILES}
esdb.dir: ${SUBDIR}
- touch $@
+ > $@
.for i in ${SUBDIR}
cat ${i}/esdb.dir.${i} >>${.TARGET}
.endfor
@@ -18,7 +18,7 @@ esdb.dir.db: esdb.dir
${MKESDB} -m -o ${.TARGET} ${.ALLSRC}
esdb.alias: ${SUBDIR}
- touch $@
+ > $@
.for i in ${SUBDIR}
cat ${i}/esdb.alias.${i} >>${.TARGET}
.endfor
diff --git a/share/man/man3/offsetof.3 b/share/man/man3/offsetof.3
index e63916b18483..9b3f568e1386 100644
--- a/share/man/man3/offsetof.3
+++ b/share/man/man3/offsetof.3
@@ -23,7 +23,7 @@
.Nm offsetof
.Nd offset of a structure member
.Sh SYNOPSIS
-.Fd #include <stddef.h>
+.In stddef.h
.Ft size_t
.Fn offsetof "type" "member"
.Sh DESCRIPTION
diff --git a/share/man/man3/pthread_affinity_np.3 b/share/man/man3/pthread_affinity_np.3
index 95128c8ebd5e..359ce9543ca8 100644
--- a/share/man/man3/pthread_affinity_np.3
+++ b/share/man/man3/pthread_affinity_np.3
@@ -49,7 +49,7 @@ allow the manipulation of sets of CPUs available to the specified thread.
Masks of type
.Ft cpuset_t
are composed using the
-.Xr CPU_SET 3
+.Dv CPU_SET
macros.
The kernel tolerates large sets as long as all CPUs specified
in the set exist.
@@ -123,7 +123,6 @@ operation.
.Xr cpuset 2 ,
.Xr cpuset_getid 2 ,
.Xr cpuset_setid 2 ,
-.Xr CPU_SET 3 ,
.Xr pthread 3 ,
.Xr pthread_attr_getaffinity_np 3 ,
.Xr pthread_attr_setaffinity_np 3
diff --git a/share/man/man3/pthread_attr_affinity_np.3 b/share/man/man3/pthread_attr_affinity_np.3
index 8813f1a07dc9..fa1e6bb1b94e 100644
--- a/share/man/man3/pthread_attr_affinity_np.3
+++ b/share/man/man3/pthread_attr_affinity_np.3
@@ -50,7 +50,7 @@ functions allow the manipulation of sets of CPUs available to the specified thre
Masks of type
.Ft cpuset_t
are composed using the
-.Xr CPU_SET 3
+.Dv CPU_SET
macros.
The kernel tolerates large sets as long as all CPUs specified
in the set exist.
@@ -132,7 +132,6 @@ Insufficient memory exists to store the cpuset mask.
.Xr cpuset 2 ,
.Xr cpuset_getid 2 ,
.Xr cpuset_setid 2 ,
-.Xr CPU_SET 3 ,
.Xr pthread_get_affinity_np 3 ,
.Xr pthread_set_affinity_np 3
.Sh STANDARDS
diff --git a/share/man/man3/pthread_getconcurrency.3 b/share/man/man3/pthread_getconcurrency.3
index f442ea20b408..c4b23c96dbc5 100644
--- a/share/man/man3/pthread_getconcurrency.3
+++ b/share/man/man3/pthread_getconcurrency.3
@@ -40,7 +40,7 @@
.Fn pthread_setconcurrency "int new_level"
.Sh DESCRIPTION
The
-.Fn pthread_getconcurrency
+.Fn pthread_setconcurrency
function allows an application to inform the threads implementation
of its desired concurrency level,
.Fa new_level .
diff --git a/share/man/man3/pthread_testcancel.3 b/share/man/man3/pthread_testcancel.3
index 7a73cb9edcbe..007c768a94b0 100644
--- a/share/man/man3/pthread_testcancel.3
+++ b/share/man/man3/pthread_testcancel.3
@@ -1,5 +1,5 @@
.\" $FreeBSD$
-.Dd January 17, 1999
+.Dd June 11, 2013
.Dt PTHREAD_TESTCANCEL 3
.Os
.Sh NAME
@@ -100,28 +100,59 @@ type will be in effect.
.Ss Cancellation Points
Cancellation points will occur when a thread is executing the following
functions:
+.Fn accept ,
+.Fn accept4 ,
+.Fn aio_suspend ,
+.Fn connect ,
.Fn close ,
.Fn creat ,
-.Fn fcntl ,
.Fn fsync ,
+.Fn mq_receive ,
+.Fn mq_send ,
+.Fn mq_timedreceive ,
+.Fn mq_timedsend ,
.Fn msync ,
.Fn nanosleep ,
.Fn open ,
+.Fn openat ,
.Fn pause ,
+.Fn poll ,
+.Fn pselect ,
.Fn pthread_cond_timedwait ,
.Fn pthread_cond_wait ,
.Fn pthread_join ,
.Fn pthread_testcancel ,
.Fn read ,
-.Fn sigwaitinfo ,
+.Fn readv ,
+.Fn recv ,
+.Fn recvfrom ,
+.Fn recvmsg ,
+.Fn select ,
+.Fn sem_timedwait ,
+.Fn sem_wait ,
+.Fn send ,
+.Fn sendmsg ,
+.Fn sendto ,
.Fn sigsuspend ,
+.Fn sigtimedwait ,
+.Fn sigwaitinfo ,
.Fn sigwait ,
.Fn sleep ,
.Fn system ,
.Fn tcdrain ,
+.Fn usleep ,
.Fn wait ,
+.Fn wait3 ,
+.Fn wait4 ,
.Fn waitpid ,
-.Fn write .
+.Fn write ,
+.Fn writev .
+The
+.Fn fcntl
+function is a cancellation point if
+.Fa cmd
+is
+.Dv F_SETLKW .
.Sh RETURN VALUES
If successful, the
.Fn pthread_setcancelstate
@@ -201,6 +232,8 @@ The
.Fn pthread_testcancel
function conforms to
.St -p1003.1-96 .
+The standard allows implementations to make many more functions
+cancellation points.
.Sh AUTHORS
This manual page was written by
.An David Leonard Aq d@openbsd.org
diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3
index 256fea3f97db..2b7ad44cb934 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 Sep 12, 2012
+.Dd June 17, 2013
.Dt QUEUE 3
.Os
.Sh NAME
@@ -40,7 +40,9 @@
.Nm SLIST_ENTRY ,
.Nm SLIST_FIRST ,
.Nm SLIST_FOREACH ,
+.Nm SLIST_FOREACH_FROM ,
.Nm SLIST_FOREACH_SAFE ,
+.Nm SLIST_FOREACH_FROM_SAFE ,
.Nm SLIST_HEAD ,
.Nm SLIST_HEAD_INITIALIZER ,
.Nm SLIST_INIT ,
@@ -56,7 +58,9 @@
.Nm STAILQ_ENTRY ,
.Nm STAILQ_FIRST ,
.Nm STAILQ_FOREACH ,
+.Nm STAILQ_FOREACH_FROM ,
.Nm STAILQ_FOREACH_SAFE ,
+.Nm STAILQ_FOREACH_FROM_SAFE ,
.Nm STAILQ_HEAD ,
.Nm STAILQ_HEAD_INITIALIZER ,
.Nm STAILQ_INIT ,
@@ -73,7 +77,9 @@
.Nm LIST_ENTRY ,
.Nm LIST_FIRST ,
.Nm LIST_FOREACH ,
+.Nm LIST_FOREACH_FROM ,
.Nm LIST_FOREACH_SAFE ,
+.Nm LIST_FOREACH_FROM_SAFE ,
.Nm LIST_HEAD ,
.Nm LIST_HEAD_INITIALIZER ,
.Nm LIST_INIT ,
@@ -89,9 +95,13 @@
.Nm TAILQ_ENTRY ,
.Nm TAILQ_FIRST ,
.Nm TAILQ_FOREACH ,
+.Nm TAILQ_FOREACH_FROM ,
.Nm TAILQ_FOREACH_SAFE ,
+.Nm TAILQ_FOREACH_FROM_SAFE ,
.Nm TAILQ_FOREACH_REVERSE ,
+.Nm TAILQ_FOREACH_REVERSE_FROM ,
.Nm TAILQ_FOREACH_REVERSE_SAFE ,
+.Nm TAILQ_FOREACH_REVERSE_FROM_SAFE ,
.Nm TAILQ_HEAD ,
.Nm TAILQ_HEAD_INITIALIZER ,
.Nm TAILQ_INIT ,
@@ -113,7 +123,9 @@ lists and tail queues
.Fn SLIST_ENTRY "TYPE"
.Fn SLIST_FIRST "SLIST_HEAD *head"
.Fn SLIST_FOREACH "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME"
+.Fn SLIST_FOREACH_FROM "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME"
.Fn SLIST_FOREACH_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var"
+.Fn SLIST_FOREACH_FROM_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var"
.Fn SLIST_HEAD "HEADNAME" "TYPE"
.Fn SLIST_HEAD_INITIALIZER "SLIST_HEAD head"
.Fn SLIST_INIT "SLIST_HEAD *head"
@@ -130,7 +142,9 @@ lists and tail queues
.Fn STAILQ_ENTRY "TYPE"
.Fn STAILQ_FIRST "STAILQ_HEAD *head"
.Fn STAILQ_FOREACH "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
+.Fn STAILQ_FOREACH_FROM "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
.Fn STAILQ_FOREACH_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var"
+.Fn STAILQ_FOREACH_FROM_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var"
.Fn STAILQ_HEAD "HEADNAME" "TYPE"
.Fn STAILQ_HEAD_INITIALIZER "STAILQ_HEAD head"
.Fn STAILQ_INIT "STAILQ_HEAD *head"
@@ -148,7 +162,9 @@ lists and tail queues
.Fn LIST_ENTRY "TYPE"
.Fn LIST_FIRST "LIST_HEAD *head"
.Fn LIST_FOREACH "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME"
+.Fn LIST_FOREACH_FROM "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME"
.Fn LIST_FOREACH_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var"
+.Fn LIST_FOREACH_FROM_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var"
.Fn LIST_HEAD "HEADNAME" "TYPE"
.Fn LIST_HEAD_INITIALIZER "LIST_HEAD head"
.Fn LIST_INIT "LIST_HEAD *head"
@@ -165,9 +181,13 @@ lists and tail queues
.Fn TAILQ_ENTRY "TYPE"
.Fn TAILQ_FIRST "TAILQ_HEAD *head"
.Fn TAILQ_FOREACH "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME"
+.Fn TAILQ_FOREACH_FROM "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME"
.Fn TAILQ_FOREACH_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var"
+.Fn TAILQ_FOREACH_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var"
.Fn TAILQ_FOREACH_REVERSE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME"
+.Fn TAILQ_FOREACH_REVERSE_FROM "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME"
.Fn TAILQ_FOREACH_REVERSE_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var"
+.Fn TAILQ_FOREACH_REVERSE_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var"
.Fn TAILQ_HEAD "HEADNAME" "TYPE"
.Fn TAILQ_HEAD_INITIALIZER "TAILQ_HEAD head"
.Fn TAILQ_INIT "TAILQ_HEAD *head"
@@ -365,6 +385,19 @@ turn to
.Fa var .
.Pp
The macro
+.Nm SLIST_FOREACH_FROM
+behaves identically to
+.Nm SLIST_FOREACH
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found SLIST element and begins the loop at
+.Fa var
+instead of the first element in the SLIST referenced by
+.Fa head .
+.Pp
+The macro
.Nm SLIST_FOREACH_SAFE
traverses the list referenced by
.Fa head
@@ -379,6 +412,19 @@ as well as free it from within the loop safely without interfering with the
traversal.
.Pp
The macro
+.Nm SLIST_FOREACH_FROM_SAFE
+behaves identically to
+.Nm SLIST_FOREACH_SAFE
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found SLIST element and begins the loop at
+.Fa var
+instead of the first element in the SLIST referenced by
+.Fa head .
+.Pp
+The macro
.Nm SLIST_INIT
initializes the list referenced by
.Fa head .
@@ -404,7 +450,8 @@ The macro
.Nm SLIST_REMOVE_AFTER
removes the element after
.Fa elm
-from the list. Unlike
+from the list.
+Unlike
.Fa SLIST_REMOVE ,
this macro does not traverse the entire list.
.Pp
@@ -544,6 +591,19 @@ in turn to
.Fa var .
.Pp
The macro
+.Nm STAILQ_FOREACH_FROM
+behaves identically to
+.Nm STAILQ_FOREACH
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found STAILQ element and begins the loop at
+.Fa var
+instead of the first element in the STAILQ referenced by
+.Fa head .
+.Pp
+The macro
.Nm STAILQ_FOREACH_SAFE
traverses the tail queue referenced by
.Fa head
@@ -558,6 +618,19 @@ as well as free it from within the loop safely without interfering with the
traversal.
.Pp
The macro
+.Nm STAILQ_FOREACH_FROM_SAFE
+behaves identically to
+.Nm STAILQ_FOREACH_SAFE
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found STAILQ element and begins the loop at
+.Fa var
+instead of the first element in the STAILQ referenced by
+.Fa head .
+.Pp
+The macro
.Nm STAILQ_INIT
initializes the tail queue referenced by
.Fa head .
@@ -595,7 +668,8 @@ The macro
.Nm STAILQ_REMOVE_AFTER
removes the element after
.Fa elm
-from the tail queue. Unlike
+from the tail queue.
+Unlike
.Fa STAILQ_REMOVE ,
this macro does not traverse the entire tail queue.
.Pp
@@ -733,6 +807,19 @@ in the forward direction, assigning each element in turn to
.Fa var .
.Pp
The macro
+.Nm LIST_FOREACH_FROM
+behaves identically to
+.Nm LIST_FOREACH
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found LIST element and begins the loop at
+.Fa var
+instead of the first element in the LIST referenced by
+.Fa head .
+.Pp
+The macro
.Nm LIST_FOREACH_SAFE
traverses the list referenced by
.Fa head
@@ -746,6 +833,19 @@ as well as free it from within the loop safely without interfering with the
traversal.
.Pp
The macro
+.Nm LIST_FOREACH_FROM_SAFE
+behaves identically to
+.Nm LIST_FOREACH_SAFE
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found LIST element and begins the loop at
+.Fa var
+instead of the first element in the LIST referenced by
+.Fa head .
+.Pp
+The macro
.Nm LIST_INIT
initializes the list referenced by
.Fa head .
@@ -918,12 +1018,38 @@ is set to
if the loop completes normally, or if there were no elements.
.Pp
The macro
+.Nm TAILQ_FOREACH_FROM
+behaves identically to
+.Nm TAILQ_FOREACH
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found TAILQ element and begins the loop at
+.Fa var
+instead of the first element in the TAILQ referenced by
+.Fa head .
+.Pp
+The macro
.Nm TAILQ_FOREACH_REVERSE
traverses the tail queue referenced by
.Fa head
in the reverse direction, assigning each element in turn to
.Fa var .
.Pp
+The macro
+.Nm TAILQ_FOREACH_REVERSE_FROM
+behaves identically to
+.Nm TAILQ_FOREACH_REVERSE
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found TAILQ element and begins the reverse loop at
+.Fa var
+instead of the last element in the TAILQ referenced by
+.Fa head .
+.Pp
The macros
.Nm TAILQ_FOREACH_SAFE
and
@@ -943,6 +1069,32 @@ as well as free it from within the loop safely without interfering with the
traversal.
.Pp
The macro
+.Nm TAILQ_FOREACH_FROM_SAFE
+behaves identically to
+.Nm TAILQ_FOREACH_SAFE
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found TAILQ element and begins the loop at
+.Fa var
+instead of the first element in the TAILQ referenced by
+.Fa head .
+.Pp
+The macro
+.Nm TAILQ_FOREACH_REVERSE_FROM_SAFE
+behaves identically to
+.Nm TAILQ_FOREACH_REVERSE_SAFE
+when
+.Fa var
+is NULL, else it treats
+.Fa var
+as a previously found TAILQ element and begins the reverse loop at
+.Fa var
+instead of the last element in the TAILQ referenced by
+.Fa head .
+.Pp
+The macro
.Nm TAILQ_INIT
initializes the tail queue referenced by
.Fa head .
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index 22bb8d17852a..e51ad39fc080 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -4,6 +4,7 @@
.include <bsd.own.mk>
MAN= aac.4 \
+ aacraid.4 \
acpi.4 \
${_acpi_asus.4} \
${_acpi_asus_wmi.4} \
@@ -80,6 +81,7 @@ MAN= aac.4 \
cardbus.4 \
carp.4 \
cas.4 \
+ cc_cdg.4 \
cc_chd.4 \
cc_cubic.4 \
cc_hd.4 \
@@ -161,6 +163,7 @@ MAN= aac.4 \
${_hpt27xx.4} \
${_hptiop.4} \
${_hptmv.4} \
+ ${_hptnr.4} \
${_hptrr.4} \
hwpmc.4 \
ichsmb.4 \
@@ -333,6 +336,7 @@ MAN= aac.4 \
ng_vlan.4 \
nmdm.4 \
nsp.4 \
+ ${_ntb.4} \
null.4 \
${_nvd.4} \
${_nve.4} \
@@ -363,13 +367,16 @@ MAN= aac.4 \
ppbus.4 \
ppc.4 \
ppi.4 \
+ procdesc.4 \
psm.4 \
pst.4 \
pt.4 \
pts.4 \
pty.4 \
puc.4 \
+ ${_qlxge.4} \
${_qlxgb.4} \
+ ${_qlxgbe.4} \
ral.4 \
random.4 \
rc.4 \
@@ -379,6 +386,8 @@ MAN= aac.4 \
rndtest.4 \
route.4 \
rp.4 \
+ rsu.4 \
+ rsufw.4 \
rue.4 \
rum.4 \
run.4 \
@@ -513,6 +522,7 @@ MAN= aac.4 \
ural.4 \
urio.4 \
${_urtw.4} \
+ urtwn.4 \
usb.4 \
usb_quirk.4 \
uslcom.4 \
@@ -530,6 +540,7 @@ MAN= aac.4 \
${_virtio_scsi.4} \
vkbd.4 \
vlan.4 \
+ ${_vmx.4} \
vpo.4 \
vr.4 \
vte.4 \
@@ -647,6 +658,8 @@ MLINKS+=netintro.4 net.4 \
netintro.4 networking.4
MLINKS+=${_nfe.4} ${_if_nfe.4}
MLINKS+=nge.4 if_nge.4
+MLINKS+=${_ntb.4} ${_if_ntb.4} \
+ ${_ntb.4} ${_ntb_hw.4}
MLINKS+=${_nve.4} ${_if_nve.4}
MLINKS+=${_nxge.4} ${_if_nxge.4}
MLINKS+=patm.4 if_patm.4
@@ -695,6 +708,7 @@ MLINKS+=ural.4 if_ural.4
MLINKS+=${_urtw.4} ${_if_urtw.4}
MLINKS+=vge.4 if_vge.4
MLINKS+=vlan.4 if_vlan.4
+MLINKS+=${_vmx.4} ${_if_vmx.4}
MLINKS+=vpo.4 imm.4
MLINKS+=vr.4 if_vr.4
MLINKS+=vte.4 if_vte.4
@@ -737,6 +751,7 @@ _dpms.4= dpms.4
_hpt27xx.4= hpt27xx.4
_hptiop.4= hptiop.4
_hptmv.4= hptmv.4
+_hptnr.4= hptnr.4
_hptrr.4= hptrr.4
_i8254.4= i8254.4
_ichwd.4= ichwd.4
@@ -746,6 +761,7 @@ _if_nfe.4= if_nfe.4
_if_nve.4= if_nve.4
_if_nxge.4= if_nxge.4
_if_urtw.4= if_urtw.4
+_if_vmx.4= if_vmx.4
_if_vtnet.4= if_vtnet.4
_if_vxge.4= if_vxge.4
_if_wpi.4= if_wpi.4
@@ -765,6 +781,7 @@ _virtio.4= virtio.4
_virtio_balloon.4=virtio_balloon.4
_virtio_blk.4= virtio_blk.4
_virtio_scsi.4= virtio_scsi.4
+_vmx.4= vmx.4
_vtnet.4= vtnet.4
_vxge.4= vxge.4
_padlock.4= padlock.4
@@ -784,10 +801,17 @@ MLINKS+=lindev.4 full.4
.if ${MACHINE_CPUARCH} == "amd64"
_bhyve.4= bhyve.4
+_if_ntb.4= if_ntb.4
+_ntb.4= ntb.4
+_ntb_hw.4= ntb_hw.4
+_qlxge.4= qlxge.4
_qlxgb.4= qlxgb.4
+_qlxgbe.4= qlxgbe.4
_sfxge.4= sfxge.4
+MLINKS+=qlxge.4 if_qlxge.4
MLINKS+=qlxgb.4 if_qlxgb.4
+MLINKS+=qlxgbe.4 if_qlxgbe.4
MLINKS+=sfxge.4 if_sfxge.4
.endif
diff --git a/share/man/man4/aacraid.4 b/share/man/man4/aacraid.4
new file mode 100644
index 000000000000..5d22ac27131d
--- /dev/null
+++ b/share/man/man4/aacraid.4
@@ -0,0 +1,138 @@
+.\" Copyright (c) 2013 Achim Leubner
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.Dd April 09, 2013
+.Dt AACRAID 4
+.Os
+.Sh NAME
+.Nm aacraid
+.Nd Adaptec AACRAID Controller 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 pci
+.Cd device aacraid
+.Pp
+To compile in debugging code:
+.Cd options AACRAID_DEBUG=N
+.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
+aacraid_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for the Adaptec by PMC RAID controllers,
+including Series 6/7/8 and upcoming families.
+.Pp
+The RAID containers are handled via the
+.Nm aacraidp0
+bus.
+The physical buses are represented by the
+.Nm aacraidp?
+devices (beginning with aacraidp1). These devices enable the
+SCSI pass-thru interface and allows devices connected
+to the card such as CD-ROMs to be available via the CAM
+.Xr scsi 4
+subsystem.
+Note that not all cards allow this interface to be enabled.
+.Pp
+The
+.Pa /dev/aacraid?
+device nodes provide access to the management interface of the controller.
+One node exists per installed card.
+If the kernel is compiled with the
+.Dv COMPAT_LINUX
+option, or the
+.Pa aacraid_linux.ko
+and
+.Pa linux.ko
+modules are loaded, the
+Linux-compatible
+.Xr ioctl 2
+interface for the management device will be enabled and will allow
+Linux-based management applications to control the card.
+.Sh HARDWARE
+Controllers supported by the
+.Nm
+driver include:
+.Pp
+.Bl -bullet -compact
+.It
+Adaptec ASR-6405(T|E)
+.It
+Adaptec ASR-6445
+.It
+Adaptec ASR-6805(T|E|Q|TQ)
+.It
+Adaptec ASR-7085
+.It
+Adaptec ASR-7805(Q)
+.It
+Adaptec ASR-70165
+.It
+Adaptec ASR-71605(E|Q)
+.It
+Adaptec ASR-71685
+.It
+Adaptec ASR-72405
+.It
+Adaptec Series 8 cards
+.El
+.Sh FILES
+.Bl -tag -width /boot/kernel/aacraid.ko -compact
+.It Pa /dev/aacraid?
+aacraid management interface
+.El
+.Sh DIAGNOSTICS
+Compiling with
+.Dv AACRAID_DEBUG
+set to a number between 0 and 3
+will enable increasingly verbose debug messages.
+.Pp
+The adapter can send status and alert messages asynchronously
+to the driver.
+These messages are printed on the system console,
+and are also queued for retrieval by a management application.
+.Sh SEE ALSO
+.Xr kld 4 ,
+.Xr linux 4 ,
+.Xr scsi 4 ,
+.Xr kldload 8
+.Sh AUTHORS
+.An Achim Leubner
+.Aq achim@FreeBSD.org
+.An Ed Maste
+.Aq emaste@FreeBSD.org
+.An Scott Long
+.Aq scottl@FreeBSD.org
+.Sh BUGS
+The controller is not actually paused on suspend/resume.
diff --git a/share/man/man4/acpi_rapidstart.4 b/share/man/man4/acpi_rapidstart.4
new file mode 100644
index 000000000000..fa246f6c7711
--- /dev/null
+++ b/share/man/man4/acpi_rapidstart.4
@@ -0,0 +1,84 @@
+.\" Copyright (c) 2013 Takanori Watanabe
+.\" 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 May 8, 2013
+.Dt ACPI_RAPIDSTART 4
+.Os
+.Sh NAME
+.Nm acpi_rapidstart
+.Nd "Intel rapid start technology ACPI driver"
+.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_rapidstart"
+.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_rapidstart_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for Intel Rapid Start technology ACPI device interface.
+Note that this is only for the ACPI device interface.
+This has _CID PNP0C02 so it should be loaded at boot time to avoid attaching
+to the acpi_sysresource driver.
+.Sh SYSCTLS
+The following
+.Xr sysctl 8
+nodes are currently implemented:
+.Bl -tag -width indent
+.It Va dev.acpi_rapidstart.0.ffs
+Rapid start flag.
+It is a bitwise OR of the following:
+.Pp
+.Bl -tag -width indent-two -compact
+.It Li 1
+Enter Fast Flash Standby in RTC wake.
+.It Li 2
+Enter Fast Flash Standby in Critical Battery Wake enable
+.El
+.It Va dev.acpi_rapidstart.0.ftv
+Fast Flash Standby timer value in minutes.
+.El
+.Sh SEE ALSO
+.Xr acpi 4 ,
+.Xr sysctl 8
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 10.0 .
+.Sh AUTHORS
+The
+.Nm
+driver was written by
+.An Takanori Watanabe Aq takawata@FreeBSD.org .
diff --git a/share/man/man4/ath_hal.4 b/share/man/man4/ath_hal.4
index a17393fc4051..e3a7dcf0c6fb 100644
--- a/share/man/man4/ath_hal.4
+++ b/share/man/man4/ath_hal.4
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"/
-.Dd August 28, 2011
+.Dd July 22, 2013
.Dt ATH_HAL 4
.Os
.Sh NAME
@@ -56,11 +56,13 @@ or
.Cd "device ath_ar9280"
.Cd "device ath_ar9285"
.Cd "device ath_ar9287"
+.Cd "device ath_ar9300"
.Cd "options AH_SUPPORT_AR5416"
.Sh DESCRIPTION
The hal provides hardware support for wireless network adapters based on
the Atheros AR5210, AR5211, AR5212, AR5213, AR2413, AR2417, AR2425,
-AR5413, AR5416, AR5418, AR5424, AR9160, AR9220, AR9280, AR9285 and AR9287
+AR5413, AR5416, AR5418, AR5424, AR9160, AR9220, AR9280, AR9285, AR9287,
+AR9380, AR9390, AR9580, AR9590, AR9562 and QCA9565
chips (and companion RF/baseband parts).
This code is part of the
.Xr ath 4
@@ -128,6 +130,7 @@ module:
.It "Sony PCWA-C300S AR5212 Cardbus b/g"
.It "Sony PCWA-C500 AR5210 Cardbus a"
.It "3Com 3CRPAG175 AR5212 CardBus a/b/g"
+.It "TP-LINK TL-WDN4800 AR9380 PCIe a/b/g/n"
.El
.Sh SEE ALSO
.Xr ath 4
diff --git a/share/man/man4/axe.4 b/share/man/man4/axe.4
index 6c68d46e0fcd..65e1887de270 100644
--- a/share/man/man4/axe.4
+++ b/share/man/man4/axe.4
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 25, 2011
+.Dd June 25, 2013
.Dt AXE 4
.Os
.Sh NAME
@@ -215,6 +215,8 @@ AX88772B:
.Bl -bullet -compact
.It
ASIX AX88772B
+.It
+Lenovo USB 2.0 Ethernet
.El
.Pp
AX88760:
diff --git a/share/man/man4/bce.4 b/share/man/man4/bce.4
index 28fdf6aeffad..00df65931eea 100644
--- a/share/man/man4/bce.4
+++ b/share/man/man4/bce.4
@@ -212,7 +212,7 @@ Enable/Disable strict RX frame size checking (default 0).
.It Va hw.bce.hdr_split
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.
+Set the number of memory pages assigned to receive 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.tx_pages
diff --git a/share/man/man4/bridge.4 b/share/man/man4/bridge.4
index 1fadc5747b45..ec54666c53c1 100644
--- a/share/man/man4/bridge.4
+++ b/share/man/man4/bridge.4
@@ -35,7 +35,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 9, 2010
+.Dd July 27, 2013
.Dt IF_BRIDGE 4
.Os
.Sh NAME
@@ -142,6 +142,78 @@ This can be used to multiplex the input of two or more interfaces into a single
stream.
This is useful for reconstructing the traffic for network taps
that transmit the RX/TX signals out through two separate interfaces.
+.Sh IPV6 SUPPORT
+.Nm
+supports the
+.Li AF_INET6
+address family on bridge interfaces.
+The following
+.Xr rc.conf 5
+variable configures an IPv6 link-local address on
+.Li bridge0
+interface:
+.Bd -literal -offset indent
+ifconfig_bridge0_ipv6="up"
+.Ed
+.Pp
+or in a more explicit manner:
+.Bd -literal -offset indent
+ifconfig_bridge0_ipv6="inet6 auto_linklocal"
+.Ed
+.Pp
+However, the
+.Li AF_INET6
+address family has a concept of scope zone.
+Bridging multiple interfaces change the zone configuration because
+multiple links are merged to each other and form a new single link
+while the member interfaces still work individually.
+This means each member interface still has a separate link-local scope
+zone and the
+.Nm
+interface has another single,
+aggregated link-local scope zone at the same time.
+This situation is clearly against the description
+.Qq zones of the same scope cannot overlap
+in Section 5,
+RFC 4007.
+Although it works in most cases,
+it can cause some conterintuitive or undesirable behavior in some
+edge cases when both of the
+.Nm
+interface and one of the member interface have an IPv6 address
+and applications use both of them.
+.Pp
+To prevent this situation,
+.Nm
+checks whether a link-local scoped IPv6 address is configured on
+a member interface to be added and the
+.Nm
+interface.
+When the
+.Nm
+interface has IPv6 addresses,
+IPv6 addresses on the member interface will be automatically removed
+before the interface is added.
+.Pp
+This behavior can be disabled by setting
+.Xr sysctl 8
+variable
+.Va net.link.bridge.allow_llz_overlap
+to
+.Li 1 .
+.Pp
+Note that
+.Li ACCEPT_RTADV
+and
+.Li AUTO_LINKLOCAL
+interface flag are not enabled by default on
+.Nm
+interface even when
+.Va net.inet6.ip6.accept_rtadv
+and/or
+.Va net.inet6.ip6.auto_linklocal
+is set to
+.Li 1 .
.Sh SPANNING TREE
The
.Nm
diff --git a/share/man/man4/capsicum.4 b/share/man/man4/capsicum.4
index 39619f9b73b9..84ddb91ff989 100644
--- a/share/man/man4/capsicum.4
+++ b/share/man/man4/capsicum.4
@@ -1,5 +1,5 @@
.\"
-.\" Copyright (c) 2011 Robert N. M. Watson
+.\" Copyright (c) 2011, 2013 Robert N. M. Watson
.\" Copyright (c) 2011 Jonathan Anderson
.\" All rights reserved.
.\"
@@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 20, 2011
+.Dd August 21, 2013
.Dt CAPSICUM 4
.Os
.Sh NAME
@@ -78,10 +78,13 @@ objects using capabilities rather than global namespaces:
.Bl -tag -width indent
.It process descriptors
File descriptors representing processes, allowing parent processes to manage
-child processes without requiring access to the PID namespace.
+child processes without requiring access to the PID namespace; described in
+greater detail in
+.Xr procdesc 4 .
.It anonymous shared memory
An extension to the POSIX shared memory API to support anonymous swap objects
-associated with file descriptors.
+associated with file descriptors; described in greater detail in
+.Xr shm_open 2 .
.El
.Sh SEE ALSO
.Xr cap_enter 2 ,
@@ -96,7 +99,8 @@ associated with file descriptors.
.Xr pdwait4 2 ,
.Xr read 2 ,
.Xr shm_open 2 ,
-.Xr write 2
+.Xr write 2 ,
+.Xr procdesc 4
.Sh HISTORY
.Nm
first appeared in
diff --git a/share/man/man4/cc_cdg.4 b/share/man/man4/cc_cdg.4
new file mode 100644
index 000000000000..c111bd46ed40
--- /dev/null
+++ b/share/man/man4/cc_cdg.4
@@ -0,0 +1,155 @@
+.\"
+.\" Copyright (c) 2013 Swinburne University of Technology, Melbourne, Australia
+.\" 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, 2013
+.Dt CC_CDG 4
+.Os
+.Sh NAME
+.Nm cc_cdg
+.Nd CDG Congestion Control Algorithm
+.Sh DESCRIPTION
+CAIA-Delay Gradient (CDG) is a hybrid congestion control algorithm which reacts
+to both packet loss and inferred queuing delay.
+It attempts to operate as a delay-based algorithm where possible, but utilises
+heuristics to detect loss-based TCP cross traffic and will compete effectively
+as required.
+CDG is therefore incrementally deployable and suitable for use on shared
+networks.
+.Pp
+During delay-based operation, CDG uses a delay-gradient based probabilistic
+backoff mechanism, and will also try to infer non congestion related
+packet losses and avoid backing off when they occur.
+During loss-based operation, CDG essentially reverts to
+.Xr cc_newreno 4 Ns - Ns like
+behaviour.
+.Pp
+CDG switches to loss-based operation when it detects that a configurable number
+of consecutive delay-based backoffs have had no measurable effect.
+It periodically attempts to return to delay-based operation, but will keep
+switching back to loss-based operation as required.
+.Sh MIB Variables
+The algorithm exposes the following variables in the
+.Va net.inet.tcp.cc.cdg
+branch of the
+.Xr sysctl 3
+MIB:
+.Bl -tag -width ".Va exp_backoff_scale"
+.It Va version
+Current algorithm/implementation version number.
+.It Va beta_delay
+Delay-based window decrease factor as a percentage (on delay-based backoff, w =
+w * beta_delay / 100).
+Default is 70.
+.It Va beta_loss
+Loss-based window decrease factor as a percentage (on loss-based backoff, w =
+w * beta_loss / 100).
+Default is 50.
+.It Va exp_backoff_scale
+Scaling parameter for the probabilistic exponential backoff.
+Default is 2.
+.It Va smoothing_factor
+Number of samples used for moving average smoothing (0 means no smoothing).
+Default is 8.
+.It Va loss_compete_consec_cong
+Number of consecutive delay-gradient based congestion episodes which will
+trigger loss-based CC compatibility.
+Default is 5.
+.It Va loss_compete_hold_backoff
+Number of consecutive delay-gradient based congestion episodes to hold the
+window backoff for loss-based CC compatibility.
+Default is 5.
+.It Va alpha_inc
+If non-zero, this enables an experimental mode where CDG's window increase
+factor (alpha) is increased by 1 MSS every
+.Va alpha_inc
+RTTs during congestion avoidance mode.
+(Setting
+.Va alpha_inc
+to 1 results in the most aggressive growth of the window increase factor over
+time.
+Use higher
+.Va alpha_inc
+values for slower growth.)
+Default is 0.
+.El
+.Sh SEE ALSO
+.Xr cc_chd 4 ,
+.Xr cc_cubic 4 ,
+.Xr cc_hd 4 ,
+.Xr cc_htcp 4 ,
+.Xr cc_newreno 4 ,
+.Xr cc_vegas 4 ,
+.Xr h_ertt 4 ,
+.Xr mod_cc 4 ,
+.Xr tcp 4 ,
+.Xr khelp 9 ,
+.Xr mod_cc 9
+.Rs
+.%A "D. A. Hayes"
+.%A "G. Armitage"
+.%T "Revisiting TCP Congestion Control using Delay Gradients"
+.%J "Networking 2011 Proceedings, Part II"
+.%D "May 2011"
+.%P "328-341"
+.Re
+.Rs
+.%A "N. Khademi"
+.%A "G. Armitage"
+.%T "Minimising RTT across homogeneous 802.11 WLANs with CAIA Delay-Gradient TCP (v0.1)"
+.%R "CAIA Technical Report 121113A"
+.%D "November 2012"
+.%U "http://caia.swin.edu.au/reports/121113A/CAIA-TR-121113A.pdf"
+.Re
+.Sh ACKNOWLEDGEMENTS
+Development and testing of this software were made possible in part by grants
+from the FreeBSD Foundation and The Cisco University Research Program Fund, a
+corporate advised fund of Silicon Valley Community Foundation.
+.Sh HISTORY
+The
+.Nm
+congestion control module first appeared in
+.Fx 9.2 .
+.Pp
+The module was first released in 2011 by David Hayes whilst working on the
+NewTCP research project at Swinburne University of Technology's Centre for
+Advanced Internet Architectures, Melbourne, Australia.
+More details are available at:
+.Pp
+http://caia.swin.edu.au/urp/newtcp/
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+congestion control module was written by
+.An David Hayes Aq david.hayes@ieee.org .
+This manual page was written by
+.An Lawrence Stewart Aq lstewart@FreeBSD.org
+and
+.An Grenville Armitage Aq garmitage@swin.edu.au .
+.Sh BUGS
+The underlying algorithm and parameter values are still a work in progress and
+may not be optimal for some network scenarios.
diff --git a/share/man/man4/cd.4 b/share/man/man4/cd.4
index 5c67b0c6b103..f3a6fc239189 100644
--- a/share/man/man4/cd.4
+++ b/share/man/man4/cd.4
@@ -113,69 +113,6 @@ read from the scsi inquiry commands, and should be the same as
the information printed at boot.
This structure is defined in the header file
.In sys/disklabel.h .
-.It Dv CDIOCCAPABILITY
-.Pq Li "struct ioc_capability"
-Retrieve information from the drive on what features it supports.
-The information is returned in the following structure:
-.Bd -literal -offset indent
-struct ioc_capability {
- u_long play_function;
-#define CDDOPLAYTRK 0x00000001
- /* Can play tracks/index */
-#define CDDOPLAYMSF 0x00000002
- /* Can play msf to msf */
-#define CDDOPLAYBLOCKS 0x00000004
- /* Can play range of blocks */
-#define CDDOPAUSE 0x00000100
- /* Output can be paused */
-#define CDDORESUME 0x00000200
- /* Output can be resumed */
-#define CDDORESET 0x00000400
- /* Drive can be completely reset */
-#define CDDOSTART 0x00000800
- /* Audio can be started */
-#define CDDOSTOP 0x00001000
- /* Audio can be stopped */
-#define CDDOPITCH 0x00002000
- /* Audio pitch can be changed */
-
- u_long routing_function;
-#define CDREADVOLUME 0x00000001
- /* Volume settings can be read */
-#define CDSETVOLUME 0x00000002
- /* Volume settings can be set */
-#define CDSETMONO 0x00000100
- /* Output can be set to mono */
-#define CDSETSTEREO 0x00000200
- /* Output can be set to stereo (def) */
-#define CDSETLEFT 0x00000400
- /* Output can be set to left only */
-#define CDSETRIGHT 0x00000800
- /* Output can be set to right only */
-#define CDSETMUTE 0x00001000
- /* Output can be muted */
-#define CDSETPATCH 0x00008000
- /* Direct routing control allowed */
-
- u_long special_function;
-#define CDDOEJECT 0x00000001
- /* The tray can be opened */
-#define CDDOCLOSE 0x00000002
- /* The tray can be closed */
-#define CDDOLOCK 0x00000004
- /* The tray can be locked */
-#define CDREADHEADER 0x00000100
- /* Can read Table of Contents */
-#define CDREADENTRIES 0x00000200
- /* Can read TOC Entries */
-#define CDREADSUBQ 0x00000200
- /* Can read Subchannel info */
-#define CDREADRW 0x00000400
- /* Can read subcodes R-W */
-#define CDHASDEBUG 0x00004000
- /* The tray has dynamic debugging */
-};
-.Ed
.It Dv CDIOCPLAYTRACKS
.Pq Li "struct ioc_play_track"
Start audio playback given a track address and length.
@@ -320,24 +257,6 @@ Eject the
.It Dv CDIOCCLOSE
Tell the drive to close its door and load the media.
Not all drives support this feature.
-.It Dv CDIOCPITCH
-.Pq Li "struct ioc_pitch"
-For drives that support it, this command instructs the drive to play
-the audio at a faster or slower rate than normal.
-Values of
-.Li speed
-between -32767 and -1 result in slower playback; a zero value
-indicates normal speed; and values from 1 to 32767 give faster
-playback.
-Drives with less than 16 bits of resolution will silently
-ignore less-significant bits.
-The structure is defined thusly:
-.Bd -literal -offset indent
-struct ioc_pitch
-{
- short speed;
-};
-.Ed
.El
.Sh NOTES
When a
diff --git a/share/man/man4/ciss.4 b/share/man/man4/ciss.4
index 27464413a898..284944bd177b 100644
--- a/share/man/man4/ciss.4
+++ b/share/man/man4/ciss.4
@@ -122,6 +122,8 @@ HP Smart Array P220i
.It
HP Smart Array P222
.It
+HP Smart Array P230i
+.It
HP Smart Array P400
.It
HP Smart Array P400i
@@ -138,14 +140,30 @@ HP Smart Array P420i
.It
HP Smart Array P421
.It
+HP Smart Array P430
+.It
+HP Smart Array P430i
+.It
+HP Smart Array P431
+.It
+HP Smart Array P530
+.It
+HP Smart Array P531
+.It
HP Smart Array P600
.It
HP Smart Array P721m
.It
+HP Smart Array P731m
+.It
HP Smart Array P800
.It
HP Smart Array P812
.It
+HP Smart Array P830
+.It
+HP Smart Array P830i
+.It
HP Modular Smart Array 20 (MSA20)
.It
HP Modular Smart Array 500 (MSA500)
diff --git a/share/man/man4/cxgbe.4 b/share/man/man4/cxgbe.4
index 25cc148ca927..93925a716532 100644
--- a/share/man/man4/cxgbe.4
+++ b/share/man/man4/cxgbe.4
@@ -46,9 +46,10 @@ kernel configuration file:
.Ed
.Pp
To load the driver as a
-module at boot time, place the following line in
+module at boot time, place the following lines in
.Xr loader.conf 5 :
.Bd -literal -offset indent
+t4fw_cfg_load="YES"
if_cxgbe_load="YES"
.Ed
.Sh DESCRIPTION
diff --git a/share/man/man4/em.4 b/share/man/man4/em.4
index 9098b75875cf..9c95286736f5 100644
--- a/share/man/man4/em.4
+++ b/share/man/man4/em.4
@@ -260,7 +260,7 @@ go to the Intel support website at:
If an issue is identified with the released source code on the supported kernel
with a supported adapter, email the specific information related to the
issue to
-.Aq freebsdnic@mailbox.intel.com .
+.Aq freebsd@intel.com .
.Sh SEE ALSO
.Xr altq 4 ,
.Xr arp 4 ,
@@ -280,7 +280,7 @@ device driver first appeared in
The
.Nm
driver was written by
-.An Intel Corporation Aq freebsdnic@mailbox.intel.com .
+.An Intel Corporation Aq freebsd@intel.com .
.Sh BUGS
Hardware-assisted VLAN processing is disabled by default.
You can enable it on an
diff --git a/share/man/man4/filemon.4 b/share/man/man4/filemon.4
index 0726e5a7f411..585428bd4ea1 100644
--- a/share/man/man4/filemon.4
+++ b/share/man/man4/filemon.4
@@ -31,7 +31,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 30, 2012
+.Dd June 14, 2013
.Dt FILEMON 4
.Os
.Sh NAME
@@ -126,6 +126,7 @@ is set to indicate the error.
#include <dev/filemon/filemon.h>
#include <fcntl.h>
#include <err.h>
+#include <unistd.h>
static void
open_filemon(void)
@@ -133,29 +134,24 @@ open_filemon(void)
pid_t child;
int fm_fd, fm_log;
- if ((fm_fd = open("/dev/filemon", O_RDWR)) == -1)
+ if ((fm_fd = open("/dev/filemon", O_RDWR | O_CLOEXEC)) == -1)
err(1, "open(\e"/dev/filemon\e", O_RDWR)");
if ((fm_log = open("filemon.out",
- O_CREAT | O_WRONLY | O_TRUNC, DEFFILEMODE)) == -1)
+ O_CREAT | O_WRONLY | O_TRUNC | O_CLOEXEC, DEFFILEMODE)) == -1)
err(1, "open(filemon.out)");
if (ioctl(fm_fd, FILEMON_SET_FD, &fm_log) == -1)
err(1, "Cannot set filemon log file descriptor");
- /* Set up these two fd's to close on exec. */
- (void)fcntl(fm_fd, F_SETFD, FD_CLOEXEC);
- (void)fcntl(fm_log, F_SETFD, FD_CLOEXEC);
if ((child = fork()) == 0) {
child = getpid();
if (ioctl(fm_fd, FILEMON_SET_PID, &child) == -1)
err(1, "Cannot set filemon PID");
/* Do something here. */
- return 0;
} else {
wait(&child);
close(fm_fd);
}
- return 0;
}
.Ed
.Pp
diff --git a/share/man/man4/hptiop.4 b/share/man/man4/hptiop.4
index ea963dd1248d..c1017f1f449d 100644
--- a/share/man/man4/hptiop.4
+++ b/share/man/man4/hptiop.4
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 25, 2012
+.Dd July 5, 2013
.Dt HPTIOP 4
.Os
.Sh NAME
@@ -60,6 +60,8 @@ driver supports the following SAS and SATA RAID controllers:
.It
HighPoint RocketRAID 4522
.It
+HighPoint RocketRAID 4521
+.It
HighPoint RocketRAID 4520
.It
HighPoint RocketRAID 4322
@@ -72,6 +74,20 @@ HighPoint RocketRAID 4311
.It
HighPoint RocketRAID 4310
.It
+HighPoint RocketRAID 3640
+.It
+HighPoint RocketRAID 3622
+.It
+HighPoint RocketRAID 3620
+.El
+.Pp
+The
+.Nm
+driver also supports the following SAS and SATA RAID controllers that
+are already End-of-Life:
+.Pp
+.Bl -bullet -compact
+.It
HighPoint RocketRAID 4211
.It
HighPoint RocketRAID 4210
diff --git a/share/man/man4/hptnr.4 b/share/man/man4/hptnr.4
new file mode 100644
index 000000000000..e441b3ada2d8
--- /dev/null
+++ b/share/man/man4/hptnr.4
@@ -0,0 +1,92 @@
+.\"-
+.\" Copyright (c) 2013 iXsystems, 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 DEVELOPERS ``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 DEVELOPERS 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 5, 2013
+.Dt HPTNR 4
+.Os
+.Sh NAME
+.Nm hptnr
+.Nd "HighPoint DC Series Data Center HBA card driver"
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following line in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device hptnr"
+.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
+hptnr_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for HighPoint's DC Series Data Center HBA card.
+.Sh HARDWARE
+The
+.Nm
+driver supports the following SATA
+controllers:
+.Pp
+.Bl -bullet -compact
+.It
+HighPoint's DC7280 series
+.It
+HighPoint's Rocket R750 series
+.El
+.Sh NOTES
+The
+.Nm
+driver only works on the i386 and amd64 platforms as it requires a binary
+blob object from the manufacturer which they only supply for these platforms.
+The
+.Nm
+driver does
+.Em not
+work on i386 with
+.Xr pae 4
+enabled.
+.Sh SEE ALSO
+.Xr kld 4 ,
+.Xr kldload 8 ,
+.Xr loader 8
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 9.2 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+device driver was written by
+.An HighPoint Technologies, Inc. .
+This manual page was written by
+.An Xin LI Aq delphij@FreeBSD.org
+for iXsystems, Inc.
diff --git a/share/man/man4/igb.4 b/share/man/man4/igb.4
index 06eb4fdf7a14..5c857c8a9258 100644
--- a/share/man/man4/igb.4
+++ b/share/man/man4/igb.4
@@ -161,7 +161,7 @@ The minimum is 80, and the maximum is 4096.
If set to 1, enable Adaptive Interrupt Moderation.
The default is to enable Adaptive Interrupt Moderation.
.It Va hw.igb.num_queues
-Numer of queues used for data transfer.
+Number of queues used for data transfer.
If set to 0, number of queues will be configured
automatically based on number of CPUs and max
supported MSI-X messages on the device.
@@ -205,7 +205,7 @@ go to the Intel support website at:
If an issue is identified with the released source code on the supported kernel
with a supported adapter, email the specific information related to the
issue to
-.Aq freebsdnic@mailbox.intel.com .
+.Aq freebsd@intel.com .
.Sh SEE ALSO
.Xr altq 4 ,
.Xr arp 4 ,
@@ -225,4 +225,4 @@ device driver first appeared in
The
.Nm
driver was written by
-.An Intel Corporation Aq freebsdnic@mailbox.intel.com .
+.An Intel Corporation Aq freebsd@intel.com .
diff --git a/share/man/man4/ixgb.4 b/share/man/man4/ixgb.4
index adb51d4e1e3d..59d164825c4c 100644
--- a/share/man/man4/ixgb.4
+++ b/share/man/man4/ixgb.4
@@ -102,7 +102,7 @@ go to the Intel support website at:
If an issue is identified with the released source code on the supported kernel
with a supported adapter, email the specific information related to the
issue to
-.Aq freebsdnic@mailbox.intel.com .
+.Aq freebsd@intel.com .
.Sh SEE ALSO
.Xr arp 4 ,
.Xr em 4 ,
@@ -122,4 +122,4 @@ and
The
.Nm
driver was written by
-.An Intel Corporation Aq freebsdnic@mailbox.intel.com .
+.An Intel Corporation Aq freebsd@intel.com .
diff --git a/share/man/man4/ixgbe.4 b/share/man/man4/ixgbe.4
index 1fa970c7c9f9..be056d3b97a4 100644
--- a/share/man/man4/ixgbe.4
+++ b/share/man/man4/ixgbe.4
@@ -105,7 +105,7 @@ go to the Intel support website at:
If an issue is identified with the released source code on the supported kernel
with a supported adapter, email the specific information related to the
issue to
-.Aq freebsdnic@mailbox.intel.com .
+.Aq freebsd@intel.com .
.Sh SEE ALSO
.Xr altq 4 ,
.Xr arp 4 ,
@@ -123,4 +123,4 @@ device driver first appeared in
The
.Nm
driver was written by
-.An Intel Corporation Aq freebsdnic@mailbox.intel.com .
+.An Intel Corporation Aq freebsd@intel.com .
diff --git a/share/man/man4/man4.arm/Makefile b/share/man/man4/man4.arm/Makefile
index 8d3e2e1c362c..3bf4db0ed914 100644
--- a/share/man/man4/man4.arm/Makefile
+++ b/share/man/man4/man4.arm/Makefile
@@ -1,6 +1,6 @@
# $FreeBSD$
-MAN= mge.4 npe.4
+MAN= mge.4 npe.4 devcfg.4
MLINKS= mge.4 if_mge.4
MLINKS+=npe.4 if_npe.4
diff --git a/share/man/man4/man4.arm/devcfg.4 b/share/man/man4/man4.arm/devcfg.4
new file mode 100644
index 000000000000..83c4168581f2
--- /dev/null
+++ b/share/man/man4/man4.arm/devcfg.4
@@ -0,0 +1,95 @@
+.\"
+.\" Copyright (c) 2013 Thomas Skibo
+.\" 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. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd February 28, 2013
+.Dt DEVCFG 4
+.Os
+.Sh NAME
+.Nm devcfg
+.Nd Zynq PL device config interface
+.Sh SYNOPSIS
+.Cd device devcfg
+.Sh DESCRIPTION
+The special file
+.Pa /dev/devcfg
+can be used to configure the PL (FPGA) section of the Xilinx Zynq-7000.
+.Pp
+On the first write to the character device at file offset 0, the
+.Nm
+driver
+asserts the top-level PL reset signals, disables the PS-PL level shifters,
+and clears the PL configuration.
+Write data is sent to the PCAP (processor configuration access port).
+When the PL asserts the DONE signal, the devcfg driver will enable the level
+shifters and release the top-level PL reset signals.
+.Pp
+The PL (FPGA) can be configured by writing the bitstream to the character
+device like this:
+.Bd -literal -offset indent
+cat design.bit.bin > /dev/devcfg
+.Ed
+.Pp
+The file should not be confused with the .bit file output by the FPGA
+design tools.
+It is the binary form of the configuration bitstream.
+The Xilinx
+.Ic promgen
+tool can do the conversion:
+.Bd -literal -offset indent
+promgen -b -w -p bin -data_width 32 -u 0 design.bit -o design.bit.bin
+.Ed
+.Sh SYSCTL VARIABLES
+The
+.Nm
+driver provides the following
+.Xr sysctl 8
+variables:
+.Bl -tag -width 4n
+.It Va hw.fpga.pl_done
+.Pp
+This variable always reflects the status of the PL's DONE signal.
+A 1 means the PL section has been properly programmed.
+.It Va hw.fpga.en_level_shifters
+.Pp
+This variable controls if the PS-PL level shifters are enabled after the
+PL section has been reconfigured.
+This variable is 1 by default but setting it to 0 allows the PL section to be
+programmed with configurations that do not interface to the PS section of the
+part.
+Changing this value has no effect on the level shifters until the next device
+reconfiguration.
+.El
+.Sh FILES
+.Bl -tag -width 12n
+.It Pa /dev/devcfg
+Character device for the
+.Nm
+driver.
+.El
+.Sh SEE ALSO
+Zynq-7000 SoC Technical Reference Manual (Xilinx doc UG585)
+.Sh AUTHORS
+Thomas Skibo
diff --git a/share/man/man4/man4.i386/npx.4 b/share/man/man4/man4.i386/npx.4
index 7eea3723a47e..14a8eef1d64b 100644
--- a/share/man/man4/man4.i386/npx.4
+++ b/share/man/man4/man4.i386/npx.4
@@ -99,7 +99,7 @@ The flags can be used
to control cases
where it does not work or is slower.
Setting them at boot time
-using userconfig works correctly
+using hints works correctly
(the optimizations are not used
until later in the bootstrap
when
diff --git a/share/man/man4/man4.i386/pnp.4 b/share/man/man4/man4.i386/pnp.4
index 7c17b0e04dc0..fadde4fe20e3 100644
--- a/share/man/man4/man4.i386/pnp.4
+++ b/share/man/man4/man4.i386/pnp.4
@@ -8,11 +8,6 @@
.\" 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 acknowledgements:
-.\" This product includes software developed by Luigi Rizzo.
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
diff --git a/share/man/man4/mfi.4 b/share/man/man4/mfi.4
index 0deb92d5908b..14dab802fb16 100644
--- a/share/man/man4/mfi.4
+++ b/share/man/man4/mfi.4
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 24, 2013
+.Dd July 15, 2013
.Dt MFI 4
.Os
.Sh NAME
@@ -99,6 +99,8 @@ IBM ServeRAID M1115 SAS/SATA
.It
IBM ServeRAID M5015 SAS/SATA
.It
+IBM ServeRAID M5110 SAS/SATA
+.It
IBM ServeRAID-MR10i
.It
Intel RAID Controller SRCSAS18E
diff --git a/share/man/man4/netgraph.4 b/share/man/man4/netgraph.4
index ebd0aa5fdac4..6783973eac57 100644
--- a/share/man/man4/netgraph.4
+++ b/share/man/man4/netgraph.4
@@ -1284,7 +1284,7 @@ link between two machines.
There is a full multilink PPP implementation that runs in
.Nm .
The
-.Pa net/mpd
+.Pa net/mpd5
port can use these modules to make a very low latency high
capacity PPP system.
It also supports
@@ -1423,6 +1423,7 @@ common networking problems, solved using
.Xr ng_bridge 4 ,
.Xr ng_bt3c 4 ,
.Xr ng_btsocket 4 ,
+.Xr ng_car 4 ,
.Xr ng_cisco 4 ,
.Xr ng_device 4 ,
.Xr ng_echo 4 ,
@@ -1439,13 +1440,16 @@ common networking problems, solved using
.Xr ng_hub 4 ,
.Xr ng_iface 4 ,
.Xr ng_ip_input 4 ,
+.Xr ng_ipfw 4 ,
.Xr ng_ksocket 4 ,
.Xr ng_l2cap 4 ,
.Xr ng_l2tp 4 ,
.Xr ng_lmi 4 ,
.Xr ng_mppc 4 ,
+.Xr ng_nat 4 ,
.Xr ng_netflow 4 ,
.Xr ng_one2many 4 ,
+.Xr ng_patch 4 ,
.Xr ng_ppp 4 ,
.Xr ng_pppoe 4 ,
.Xr ng_pptpgre 4 ,
diff --git a/share/man/man4/ntb.4 b/share/man/man4/ntb.4
new file mode 100644
index 000000000000..c5765266e934
--- /dev/null
+++ b/share/man/man4/ntb.4
@@ -0,0 +1,114 @@
+.\"
+.\" Copyright (c) 2013 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.
+.\"
+.\" ntb driver man page.
+.\"
+.\" Author: Carl Delsey <carl@FreeBSD.org>
+.\"
+.\" $FreeBSD$
+.\"
+.Dd Apr 11, 2013
+.Dt NTB 4
+.Os
+.Sh NAME
+.Nm ntb ,
+.Nm ntb_hw ,
+.Nm if_ntb
+.Nd Intel(R) Non-Transparent Bridge 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 ntb_hw"
+.Cd "device if_ntb"
+.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
+if_ntb_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for the Non-Transparent Bridge (NTB) in the Intel S1200,
+Xeon E3 and Xeon E5 processor families.
+.Pp
+The NTB allows you to connect two computer systems using a PCI-e link if they
+have the correct equipment and connectors.
+.Sh CONFIGURATION
+The NTB memory windows need to be configured by the BIOS.
+If your BIOS allows you to set their size, you should set the size of both
+memory windows to 1 MiB.
+This needs to be done on both systems.
+.Pp
+Each system needs to have a different IP address assigned.
+The MAC address is randomly generated.
+Also for maximum performance, the MTU should be set to 16 kiB.
+This can be down by adding the line below to
+.Xr rc.conf 5 :
+.Bd -literal -offset indent
+ifconfig_ntb0="inet 192.168.1.10 netmask 255.255.255.0 mtu 16384"
+.Ed
+.Pp
+And on the second system :
+.Bd -literal -offset indent
+ifconfig_ntb0="inet 192.168.1.11 netmask 255.255.255.0 mtu 16384"
+.Ed
+.Pp
+If you are using the UDP protocol, you may want to increase the
+.Va net.inet.udp.maxdgram
+.Xr sysctl 8
+variable.
+.Sh SEE ALSO
+.Xr rc.conf 5 ,
+.Xr sysctl 8
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was developed by Intel and originally written by
+.An Carl Delsey Aq carl@FreeBSD.org.
+.Sh BUGS
+If the driver is unloaded, it cannot be reloaded without a system reboot.
+.Pp
+The network support is limited.
+It isn't fully configurable yet.
+It also isn't integrated into
+.Xr netgraph 4
+or
+.Xr bpf 4 .
+.Pp
+NTB to Root Port mode is not yet supported.
+.Pp
+There is no way to protect your system from malicious behavior on the other
+system once the link is brought up.
+Anyone with root or kernel access on the other system can read or write to
+any location on your system.
+In other words, only connect two systems that completely trust each other.
diff --git a/share/man/man4/nvd.4 b/share/man/man4/nvd.4
index 192d946e782c..eee4c7bf16c0 100644
--- a/share/man/man4/nvd.4
+++ b/share/man/man4/nvd.4
@@ -1,5 +1,5 @@
.\"
-.\" Copyright (c) 2012 Intel Corporation
+.\" Copyright (c) 2012-2013 Intel Corporation
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -33,7 +33,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 10, 2012
+.Dd July 9, 2013
.Dt NVD 4
.Os
.Sh NAME
@@ -66,6 +66,11 @@ I/O commands.
.Xr nvme 4 ,
.Xr nvmecontrol 8 ,
.Xr disk 9 .
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 9.2.
.Sh AUTHORS
.An -nosplit
The
@@ -76,15 +81,3 @@ 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
index 4a1a6de6a713..0e8527366ee1 100644
--- a/share/man/man4/nvme.4
+++ b/share/man/man4/nvme.4
@@ -1,5 +1,5 @@
.\"
-.\" Copyright (c) 2012 Intel Corporation
+.\" Copyright (c) 2012-2013 Intel Corporation
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -33,7 +33,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 10, 2012
+.Dd July 9, 2013
.Dt NVME 4
.Os
.Sh NAME
@@ -147,6 +147,11 @@ and completion queues to the console.
.Xr pci 4 ,
.Xr nvmecontrol 8 ,
.Xr disk 9 .
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 9.2.
.Sh AUTHORS
.An -nosplit
The
@@ -157,19 +162,3 @@ 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/oce.4 b/share/man/man4/oce.4
index 78043ffc32c8..51ac5ec9ae9d 100644
--- a/share/man/man4/oce.4
+++ b/share/man/man4/oce.4
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2012 Emulex
+.\" Copyright (C) 2013 Emulex
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -91,7 +91,7 @@ Firmware can be updated by following the steps below:
.It
Copy the below code to a Makefile:
.Bd -literal -offset indent
-\&.KMOD=elxflash
+KMOD=elxflash
FIRMWS=imagename.ufi:elxflash
\&.include <bsd.kmod.mk>
.Ed
diff --git a/share/man/man4/procdesc.4 b/share/man/man4/procdesc.4
new file mode 100644
index 000000000000..9bd310200c20
--- /dev/null
+++ b/share/man/man4/procdesc.4
@@ -0,0 +1,93 @@
+.\"
+.\" Copyright (c) 2013 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 21, 2013
+.Dt PROCDESC 4
+.Os
+.Sh NAME
+.Nm procdesc
+.Nd process descriptor facility
+.Sh SYNOPSIS
+.Cd "options PROCDESC"
+.Sh DESCRIPTION
+.Nm
+is a file-descriptor-oriented interface to process signalling and control,
+which supplements historic
+.Ux
+.Xr fork 2 ,
+.Xr kill 2 ,
+and
+.Xr wait4 2
+primitives with
+new system calls such as
+.Xr pdfork 2 ,
+.Xr pdkill 2 ,
+and
+.Xr pdwait4 2 .
+.Nm
+is designed for use with
+.Xr capsicum 4 ,
+replacing process identifiers with capability-oriented references.
+However, it can also be used independently of
+.Xr capsicum 4 ,
+displacing PIDs, which may otherwise suffer from race conditions.
+Given a process descriptor, it is possible to query its conventional PID using
+.Xr pdgetpid 2 .
+.Sh SEE ALSO
+.Xr fork 2 ,
+.Xr kill 2 ,
+.Xr wait4 2 ,
+.Xr pdfork 2 ,
+.Xr pdgetpid 2 ,
+.Xr pdkill 2 ,
+.Xr pdwait4 2 ,
+.Xr capsicum 4
+.Sh HISTORY
+.Nm
+first appeared in
+.Fx 9.0 ,
+and was developed at the University of Cambridge.
+.Sh AUTHORS
+.Nm
+was developed by
+.An -nosplit
+.An "Robert Watson" Aq rwatson@FreeBSD.org
+and
+.An "Jonathan Anderson" Aq jonathan@FreeBSD.org
+at the University of Cambridge, and
+.An "Ben Laurie" Aq benl@FreeBSD.org
+and
+.An "Kris Kennaway" Aq kris@FreeBSD.org
+at Google, Inc.
+.Sh BUGS
+.Nm
+is considered experimental in
+.Fx .
diff --git a/share/man/man4/qlxgbe.4 b/share/man/man4/qlxgbe.4
new file mode 100644
index 000000000000..888a57511577
--- /dev/null
+++ b/share/man/man4/qlxgbe.4
@@ -0,0 +1,91 @@
+.\"-
+.\" Copyright (c) 2013 Qlogic Corportaion
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd April 1, 2013
+.Dt QLXGBE 4
+.Os
+.Sh NAME
+.Nm qlxgbe
+.Nd "QLogic 10 Gigabit Ethernet & CNA 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 qlxgbe"
+.Ed
+.Pp
+To load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+if_qlxgbe_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver supports IPv4 checksum offload,
+TCP and UDP checksum offload for both IPv4 and IPv6,
+Large Segment Offload for both IPv4 and IPv6,
+Jumbo frames, VLAN Tag, and
+Receive Side scaling.
+For further hardware information, see
+.Pa http://www.qlogic.com/ .
+.Sh HARDWARE
+The
+.Nm
+driver supports 10 Gigabit Ethernet & CNA Adapter based on the following
+chipsets:
+.Pp
+.Bl -bullet -compact
+.It
+QLogic 8300 series
+.El
+.Sh SUPPORT
+For support questions please contact your QLogic approved reseller or
+QLogic Technical Support at
+.Pa http://support.qlogic.com ,
+or by E-mail at
+.Aq support@qlogic.com .
+.Sh SEE ALSO
+.Xr altq 4 ,
+.Xr arp 4 ,
+.Xr netintro 4 ,
+.Xr ng_ether 4 ,
+.Xr ifconfig 8
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 10.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An David C Somayajulu
+at QLogic Corporation.
diff --git a/share/man/man4/qlxge.4 b/share/man/man4/qlxge.4
new file mode 100644
index 000000000000..01d2c0595759
--- /dev/null
+++ b/share/man/man4/qlxge.4
@@ -0,0 +1,91 @@
+.\"-
+.\" Copyright (c) 2013-2014 Qlogic 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$
+.\"
+.Dd June 21, 2013
+.Dt QLXGE 4
+.Os
+.Sh NAME
+.Nm qlxge
+.Nd "QLogic 8100 Series 10 Gigabit 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 qlxge"
+.Ed
+.Pp
+To load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+if_qlxge_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver supports IPv4 checksum offload,
+TCP and UDP checksum offload for both IPv4 and IPv6,
+Large Segment Offload for both IPv4 and IPv6,
+Jumbo frames, VLAN Tag, and
+Receive Side scaling.
+For further hardware information, see
+.Pa http://www.qlogic.com/ .
+.Sh HARDWARE
+The
+.Nm
+driver supports 10 Gigabit Ethernet & CNA Adapter based on the following
+chipsets:
+.Pp
+.Bl -bullet -compact
+.It
+QLogic 8100 series
+.El
+.Sh SUPPORT
+For support questions please contact your QLogic approved reseller or
+QLogic Technical Support at
+.Pa http://support.qlogic.com ,
+or by E-mail at
+.Aq support@qlogic.com .
+.Sh SEE ALSO
+.Xr altq 4 ,
+.Xr arp 4 ,
+.Xr netintro 4 ,
+.Xr ng_ether 4 ,
+.Xr ifconfig 8
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 10.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An David C Somayajulu
+at QLogic Corporation.
diff --git a/share/man/man4/random.4 b/share/man/man4/random.4
index e2809f4c7435..5e73bc0aa6b0 100644
--- a/share/man/man4/random.4
+++ b/share/man/man4/random.4
@@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 7, 2012
+.Dd August 7, 2013
.Dt RANDOM 4
.Os
.Sh NAME
@@ -43,6 +43,13 @@ The device will probe for
certain hardware entropy sources,
and use these in preference to the fallback,
which is a generator implemented in software.
+If the kernel environment MIB's
+.Va hw.nehemiah_rng_enable
+or
+.Va hw.ivy_rng_enable
+are set to
+.Dq Li 0 ,
+the associated hardware entropy source will be ignored.
.Pp
If the device is using
the software generator,
@@ -74,6 +81,7 @@ device, use the command line:
.Pp
which results in something like:
.Bd -literal -offset indent
+kern.random.adaptors: yarrow
kern.random.sys.seeded: 1
kern.random.sys.harvest.ethernet: 1
kern.random.sys.harvest.point_to_point: 1
@@ -89,7 +97,9 @@ kern.random.yarrow.slowoverthresh: 2
(These would not be seen if a
hardware generator is present.)
.Pp
-All settings are read/write.
+Other than
+.Dl kern.random.adaptors
+all settings are read/write.
.Pp
The
.Va kern.random.sys.seeded
diff --git a/share/man/man4/rsu.4 b/share/man/man4/rsu.4
new file mode 100644
index 000000000000..fa9767a540ac
--- /dev/null
+++ b/share/man/man4/rsu.4
@@ -0,0 +1,178 @@
+.\" $OpenBSD: rsu.4,v 1.11 2013/02/14 07:40:42 jmc Exp $
+.\" $FreeBSD$
+.\"
+.\" Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
+.\"
+.\" 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.
+.\"
+.Dd July 29 2013
+.Dt RSU 4
+.Os
+.Sh NAME
+.Nm rsu
+.Nd Realtek RTL8188SU/RTL8192SU USB IEEE 802.11b/g/n wireless network device
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device ehci"
+.Cd "device uhci"
+.Cd "device ohci"
+.Cd "device usb"
+.Cd "device rsu"
+.Cd "device wlan"
+.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
+.Xr if_rsu_load="YES"
+.Ed
+.Pp
+After you have read the license in /usr/share/doc/legal/realtek
+you will want to add the following lines to
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+legal.realtek.license_ack=1
+rsu-rtl8712fw_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver supports USB 2.0 wireless network devices based on Realtek
+RTL8188SU, RTL8191SU and RTL8192SU chipsets.
+.Pp
+The RTL8188SU is a highly integrated 802.11n adapter that combines
+a MAC, a 1T1R capable baseband and an RF in a single chip.
+It operates in the 2GHz spectrum only.
+.Pp
+The RTL8191SU is a highly integrated multiple-in, single-out (MISO)
+802.11n adapter that combines a MAC, a 1T2R capable baseband and an
+RF in a single chip.
+It operates in the 2GHz spectrum only.
+.Pp
+The RTL8192SU is a highly integrated multiple-in, multiple-out (MIMO)
+802.11n adapter that combines a MAC, a 2T2R capable baseband and an
+RF in a single chip.
+It operates in the 2GHz spectrum only.
+.Pp
+These are the modes the
+.Nm
+driver can operate in:
+.Bl -tag -width "IBSS-masterXX"
+.It BSS mode
+Also known as
+.Em infrastructure
+mode, this is used when associating with an access point, through
+which all traffic passes.
+This mode is the default.
+.El
+.Pp
+The
+.Nm
+driver can be configured to use
+Wired Equivalent Privacy (WEP) or
+Wi-Fi Protected Access (WPA-PSK and WPA2-PSK).
+WPA is the de facto encryption standard for wireless networks.
+It is strongly recommended that WEP
+not be used as the sole mechanism
+to secure wireless communication,
+due to serious weaknesses in it.
+.Pp
+The
+.Nm
+driver can be configured at runtime with
+.Xr ifconfig 8
+or on boot with
+.Xr hostname 1 .
+.Sh FILES
+The driver needs at least version 1.2 of the following firmware file,
+which is loaded when an interface is attached:
+.Pp
+.Bl -tag -width Ds -offset indent -compact
+.It /boot/kernel/rsu-rtl8712fw.ko
+.El
+.Sh HARDWARE
+The following adapters should work:
+.Pp
+.Bl -tag -width Ds -offset indent -compact
+.It ASUS USB-N10
+.It Belkin F7D1101 v1
+.It D-Link DWA-131 A1
+.It EDUP EP-MS150N(W)
+.It Hercules HWGUn-54
+.It Hercules HWNUm-300
+.It Planex GW-USNano
+.It Sitecom WL-349 v1
+.It Sitecom WL-353
+.It Sweex LW154
+.It TRENDnet TEW-648UB
+.It TRENDnet TEW-649UB
+.El
+.Sh EXAMPLES
+Join an existing BSS network (i.e., connect to an access point):
+.Bd -literal -offset indent
+ifconfig wlan create wlandev rsu0 inet 192.168.0.20 \e
+ netmask 0xffffff00
+.Ed
+.Pp
+Join a specific BSS network with network name
+.Dq Li my_net :
+.Pp
+.Dl "ifconfig wlan create wlandev rsu0 ssid my_net up"
+.Pp
+Join a specific BSS network with 64-bit WEP encryption:
+.Bd -literal -offset indent
+ifconfig wlan create wlandev rsu0 ssid my_net \e
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
+.Ed
+.Sh DIAGNOSTICS
+.Bl -diag
+.It "%s: failed load firmware of file rsu-rtl8712fw"
+For some reason, the driver was unable to read the microcode file from the
+filesystem.
+The file might be missing or corrupted.
+.It "device timeout"
+A frame dispatched to the hardware for transmission did not complete in time.
+The driver will reset the hardware.
+This should not happen.
+.El
+.Sh SEE ALSO
+.Xr hostname 1 ,
+.Xr intro 1 ,
+.Xr usb 3 ,
+.Xr netintro 4 ,
+.Xr rsufw 4 ,
+.Xr wlan 4 ,
+.Xr arp 8 ,
+.Xr ifconfig 8
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Ox 4.9 and
+.Fx 10.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An Damien Bergamini Aq damien@openbsd.org
+and ported by
+.An Rui Paulo Aq rpaulo@freebsd.org .
+.Sh CAVEATS
+The
+.Nm
+driver does not support any of the 802.11n capabilities offered by the
+adapters.
diff --git a/share/man/man4/rsufw.4 b/share/man/man4/rsufw.4
new file mode 100644
index 000000000000..a50e094afe4e
--- /dev/null
+++ b/share/man/man4/rsufw.4
@@ -0,0 +1,46 @@
+.\" $FreeBSD$
+.\" Copyright (c) 2013 Idwer Vollering <vidwer@gmail.com>
+.\"
+.\" 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.
+.\"
+.Dd July 21, 2013
+.Dt RSUFW 4
+.Os
+.Sh NAME
+.Nm rsufw
+.Nd "Firmware Module for Realtek driver"
+.Sh SYNOPSIS
+To compile this module into the kernel, place the following line in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device rsufw"
+.Ed
+.Pp
+This will include the firmware image, RTL8712, inside the kernel.
+.Xr rsu 4
+will load the image into the chip.
+.Pp
+Alternatively, to load the firmware images as a module at boot time, place
+the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+rsu-rtl8712fw_load="YES"
+.Ed
+.Sh DESCRIPTION
+This module provides the firmware for the Realtek RTL8188SU and
+RTL8192SU chip based USB WiFi adapters.
+Please read Realtek's license,
+.Pa /usr/share/license/realtek .
+.Sh SEE ALSO
+.Xr rsu 4 ,
+.Xr firmware 9
diff --git a/share/man/man4/sa.4 b/share/man/man4/sa.4
index eae3bf5b1fd5..aa72f68ec186 100644
--- a/share/man/man4/sa.4
+++ b/share/man/man4/sa.4
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 6, 1999
+.Dd August 23, 2013
.Dt SA 4
.Os
.Sh NAME
@@ -159,6 +159,70 @@ of 0.
(As above, if the file mark is never read, it remains for the next
process to read if in no-rewind mode.)
.El
+.Sh BLOCK SIZES
+By default, the driver will NOT accept reads or writes to a tape device that
+are larger than may be written to or read from the mounted tape using a single
+write or read request.
+Because of this, the application author may have confidence that his wishes
+are respected in terms of the block size written to tape.
+For example, if the user tries to write a 256KB block to the tape, but the
+controller can handle no more than 128KB, the write will fail.
+The previous
+.Fx
+behavior, prior to
+.Fx
+10.0,
+was to break up large reads or writes into smaller blocks when going to the
+tape.
+The problem with that behavior, though, is that it hides the actual on-tape
+block size from the application writer, at least in variable block mode.
+.Pp
+If the user would like his large reads and writes broken up into separate
+pieces, he may set the following loader tunables.
+Note that these tunables WILL GO AWAY in
+.Fx 11.0 .
+They are provided for transition purposes only.
+.Bl -tag -width 12
+.It kern.cam.sa.allow_io_split
+.Pp
+This variable, when set to 1, will configure all
+.Nm
+devices to split large buffers into smaller pieces when needed.
+.It kern.cam.sa.%d.allow_io_split
+.Pp
+This variable, when set to 1, will configure the given
+.Nm
+unit to split large buffers into multiple pieces.
+This will override the global setting, if it exists.
+.El
+.Pp
+There are several
+.Xr sysctl 8
+variables available to view block handling parameters:
+.Bl -tag -width 12
+.It kern.cam.sa.%d.allow_io_split
+.Pp
+This variable allows the user to see, but not modify, the current I/O split
+setting.
+The user is not permitted to modify this setting so that there is no chance
+of behavior changing for the application while a tape is mounted.
+.It kern.cam.sa.%d.maxio
+.Pp
+This variable shows the maximum I/O size in bytes that is allowed by the
+combination of kernel tuning parameters (MAXPHYS, DFLTPHYS) and the
+capabilities of the controller that is attached to the tape drive.
+Applications may look at this value for a guide on how large an I/O may be
+permitted, but should keep in mind that the actual maximum may be
+restricted further by the tape drive via the
+.Tn SCSI
+READ BLOCK LIMITS command.
+.It kern.cam.sa.%d.cpi_maxio
+.Pp
+This variable shows the maximum I/O size supported by the controller, in
+bytes, that is reported via the CAM Path Inquiry CCB (XPT_PATH_INQ).
+If this is 0, that means that the controller has not reported a maximum I/O
+size.
+.El
.Sh FILE MARK HANDLING
The handling of file marks on write is automatic.
If the user has
diff --git a/share/man/man4/syscons.4 b/share/man/man4/syscons.4
index d9f8d24e6d10..d9400c91fbcb 100644
--- a/share/man/man4/syscons.4
+++ b/share/man/man4/syscons.4
@@ -471,9 +471,9 @@ device atkbdc
device atkbd
device vga
device sc
-
device splash
.Ed
+.Pp
You also need the following lines in
.Pa /boot/device.hints
for these drivers.
diff --git a/share/man/man4/sysmouse.4 b/share/man/man4/sysmouse.4
index e3972fec5e17..0fee7f357bc6 100644
--- a/share/man/man4/sysmouse.4
+++ b/share/man/man4/sysmouse.4
@@ -1,5 +1,4 @@
-.\" Copyright (c) 1997
-.\" John-Mark Gurney. All rights reserved.
+.\" Copyright 1997 John-Mark Gurney. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
diff --git a/share/man/man4/udav.4 b/share/man/man4/udav.4
index d970143ac745..4d90236d9121 100644
--- a/share/man/man4/udav.4
+++ b/share/man/man4/udav.4
@@ -87,7 +87,7 @@ For more information on configuring this device, see
.Xr ifconfig 8
.Rs
.%T "Davicom DM9601 data sheet"
-.%U http://www.davicom.com.tw/big5/download/Data%20Sheet/DM9601-DS-P01-930914.pdf
+.%U http://ptm2.cc.utu.fi/ftp/network/cards/DM9601/From_NET/DM9601-DS-P01-930914.pdf
.Re
.Sh HISTORY
The
diff --git a/share/man/man4/urtwn.4 b/share/man/man4/urtwn.4
new file mode 100644
index 000000000000..c6dfa29ed5a9
--- /dev/null
+++ b/share/man/man4/urtwn.4
@@ -0,0 +1,141 @@
+.\" $OpenBSD: urtwn.4,v 1.20 2013/05/16 10:02:59 sthen Exp $
+.\" $FreeBSD$
+.\"
+.\" Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
+.\"
+.\" 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.
+.\"
+.Dd July 7, 2013
+.Dt URTWN 4
+.Os
+.Sh NAME
+.Nm urtwn
+.Nd Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless network device
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device ehci"
+.Cd "device uhci"
+.Cd "device ohci"
+.Cd "device usb"
+.Cd "device urtwn"
+.Cd "device wlan"
+.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_urtwn_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver supports USB 2.0 wireless network devices based on Realtek
+RTL8188CUS, RTL8188CE-VAU, RTL8188RU and RTL8192CU chipsets.
+.Pp
+The RTL8188CUS is a highly integrated 802.11n adapter that combines
+a MAC, a 1T1R capable baseband and an RF in a single chip.
+It operates in the 2GHz spectrum only.
+The RTL8188RU is a high-power variant of the RTL8188CUS.
+The RTL8188CE-VAU is a PCI Express Mini Card adapter that attaches
+to the USB interface.
+.Pp
+The RTL8192CU is a highly integrated multiple-in, multiple-out (MIMO)
+802.11n adapter that combines a MAC, a 2T2R capable baseband and an
+RF in a single chip.
+It operates in the 2GHz spectrum only.
+.Pp
+The driver needs at least version 1.1p0 of the following firmware files,
+which are loaded when an interface is attached:
+.Pp
+.Bl -tag -width Ds -offset indent -compact
+.It urtwn-rtl8192cfwT
+.It urtwn-rtl8192cfwU
+.It urtwn-rtl8723fw
+.El
+.Pp
+The firmware is available as part of the FreeBSD Ports collection in
+net/urtwn-firmware-kmod.
+.Sh HARDWARE
+The following adapters should work:
+.Pp
+.Bl -tag -width Ds -offset indent -compact
+.It Belkin F7D1102 Surf Wireless Micro
+.It D-Link DWA-131
+.It Edimax EW-7811Un
+.It Netgear WNA1000M
+.It Realtek RTL8192CU
+.It Realtek RTL8188CUS
+.El
+.Sh EXAMPLES
+Join an existing BSS network (i.e., connect to an access point):
+.Bd -literal -offset indent
+ifconfig wlan create wlandev urtwn0 inet 192.168.0.20 \e
+ netmask 0xffffff00
+.Ed
+.Pp
+Join a specific BSS network with network name
+.Dq Li my_net :
+.Pp
+.Dl "ifconfig wlan create wlandev urtwn0 ssid my_net up"
+.Pp
+Join a specific BSS network with 64-bit WEP encryption:
+.Bd -literal -offset indent
+ifconfig wlan create wlandev urtwn0 ssid my_net \e
+ wepmode on wepkey 0x1234567890 weptxkey 1 up
+.Ed
+.Sh DIAGNOSTICS
+.Bl -diag
+.It "urtwn%d: error %d, could not read firmware %s"
+For some reason, the driver was unable to read the microcode file from the
+filesystem.
+The file might be missing or corrupted.
+.It "urtwn%d: device timeout"
+A frame dispatched to the hardware for transmission did not complete in time.
+The driver will reset the hardware.
+This should not happen.
+.El
+.Sh SEE ALSO
+.Xr intro 4 ,
+.Xr netintro 4 ,
+.Xr usb 4 ,
+.Xr wlan 4 ,
+.Xr wlan_ccmp 4 ,
+.Xr wlan_tkip 4 ,
+.Xr wlan_wep 4 ,
+.Xr ifconfig 8 ,
+.Xr wpa_supplicant 8
+.Rs
+.%T Realtek
+.%U http://www.realtek.com.tw
+.Re
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Ox 4.9
+and
+.Fx 10.0 .
+.Sh AUTHORS
+The
+.Nm
+driver was written by
+.An Damien Bergamini Aq damien@openbsd.org .
+.Sh CAVEATS
+The
+.Nm
+driver does not support any of the 802.11n capabilities offered by the
+adapters.
diff --git a/share/man/man4/usb_quirk.4 b/share/man/man4/usb_quirk.4
index f017e01e570e..a4c1c9b97577 100644
--- a/share/man/man4/usb_quirk.4
+++ b/share/man/man4/usb_quirk.4
@@ -16,7 +16,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 8, 2012
+.Dd April 21, 2013
.Dt USB_QUIRK 4
.Os
.Sh NAME
@@ -27,7 +27,7 @@ To compile this module into the kernel,
place the following line in your
kernel configuration file:
.Bd -ragged -offset indent
-.Cd "device usb_quirk"
+.Cd "device usb"
.Ed
.Pp
Alternatively, to load the module at boot
@@ -95,7 +95,7 @@ select configuration index 0 by default
.It UQ_ASSUME_CM_OVER_DATA
assume cm over data feature
.El
-.Sh USB Mass Storage Quirks
+.Sh USB Mass Storage quirks:
.Bl -tag -width Ds
.It UQ_MSC_NO_TEST_UNIT_READY
send start/stop instead of TUR
@@ -142,7 +142,7 @@ force UFI command protocol
.It UQ_MSC_FORCE_PROTO_RBC
force RBC command protocol
.El
-.Sh Mass Storage Change (u3g) quirks:
+.Sh 3G Datacard (u3g) quirks:
.Bl -tag -width Ds
.It UQ_MSC_EJECT_HUAWEI
ejects after Huawei USB command
diff --git a/share/man/man4/virtio.4 b/share/man/man4/virtio.4
index 6856f697fcc7..10ebf209bb12 100644
--- a/share/man/man4/virtio.4
+++ b/share/man/man4/virtio.4
@@ -53,10 +53,10 @@ This emulation is often inefficient.
.Pp
VirtIO defines an interface for efficient I/O between the hypervisor and VM.
The
-.Xr virtio 4
+.Nm
module provides a shared memory transport called a virtqueue.
The
-.Xr virtio_pci 4
+.Xr virtio_pci
device driver represents an emulated PCI device that the hypervisor makes
available to the VM.
This device provides the probing, configuration, and
@@ -94,4 +94,4 @@ Support for VirtIO first appeared in
.An -nosplit
.Fx
support for VirtIO was first added by
-.An Bryan Venteicher Aq bryanv@daemoninthecloset.org .
+.An Bryan Venteicher Aq bryanv@FreeBSD.org .
diff --git a/share/man/man4/virtio_balloon.4 b/share/man/man4/virtio_balloon.4
index 96e8c736f4d4..450b5cdfce94 100644
--- a/share/man/man4/virtio_balloon.4
+++ b/share/man/man4/virtio_balloon.4
@@ -59,6 +59,6 @@ The hypervisor can later signal the balloon to return the memory.
The
.Nm
driver was written by
-.An Bryan Venteicher Aq bryanv@daemoninthecloset.org .
+.An Bryan Venteicher Aq bryanv@FreeBSD.org .
It first appeared in
.Fx 9.0 .
diff --git a/share/man/man4/virtio_blk.4 b/share/man/man4/virtio_blk.4
index 7be4425bdc60..eb5fded32d3a 100644
--- a/share/man/man4/virtio_blk.4
+++ b/share/man/man4/virtio_blk.4
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 22, 2012
+.Dd July 2, 2013
.Dt VIRTIO_BLK 4
.Os
.Sh NAME
@@ -53,11 +53,33 @@ 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"
+.Bl -tag -width indent
.It Va hw.vtblk.no_ident
-This tunable disables retrieving the device identification string
-from the hypervisor.
+.It Va hw.vtblk. Ns Ar X Ns Va .no_ident
+.Pp
+These tunables disable retrieving the device identification string
+from the hypervisor either globally or per-device.
The default value is 0.
+.It Va hw.vtblk.writecache_mode
+.It Va hw.vtblk. Ns Ar X Ns Va .writecache_mode
+.Pp
+These tunables determine the write cache mode globally or per-device.
+The mode can changed only if the ConfigWCE feature is negotiated.
+Set to 0 for writethrough mode, 1 for writeback mode, and -1 to leave
+it as-is.
+The default value is to leave as-is.
+.El
+.Sh SYSCTL VARIABLES
+The following variables are available as
+.Xr sysctl 8
+variables.
+.Bl -tag -width indent
+.It Va dev.vtblk. Ns Ar X Ns Va .writecache_mode
+.Pp
+The write cache mode of the device can be either writethrough (0) or
+writeback (1).
+If the ConfigWCE feature is negotiated, the write cache mode can
+be toggled between writethrough and writeback.
.El
.Sh SEE ALSO
.Xr virtio 4
@@ -65,6 +87,6 @@ The default value is 0.
The
.Nm
driver was written by
-.An Bryan Venteicher Aq bryanv@daemoninthecloset.org .
+.An Bryan Venteicher Aq bryanv@FreeBSD.org .
It first appeared in
.Fx 9.0 .
diff --git a/share/man/man4/virtio_scsi.4 b/share/man/man4/virtio_scsi.4
index a2d30d4d8121..b136de6ba97c 100644
--- a/share/man/man4/virtio_scsi.4
+++ b/share/man/man4/virtio_scsi.4
@@ -87,6 +87,6 @@ Enable tracing prints.
The
.Nm
driver was written by
-.An Bryan Venteicher Aq bryanv@daemoninthecloset.org .
+.An Bryan Venteicher Aq bryanv@FreeBSD.org .
It first appeared in
.Fx 10.0 .
diff --git a/share/man/man4/vmx.4 b/share/man/man4/vmx.4
new file mode 100644
index 000000000000..c1dbe8e1eedf
--- /dev/null
+++ b/share/man/man4/vmx.4
@@ -0,0 +1,132 @@
+.\"
+.\" Copyright (c) 2006,2013 Reyk Floeter <reyk@openbsd.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.
+.\"
+.\" $OpenBSD: src/share/man/man4/vmx.4,v 1.1 2013/05/31 20:18:44 reyk Exp $
+.\"
+.\" $FreeBSD$
+.\"
+.Dd August 4, 2013
+.Dt VMX 4
+.Os
+.Sh NAME
+.Nm vmx
+.Nd VMware VMXNET3 Virtual Interface Controller device
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following line in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device vmx"
+.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_vmx_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for the VMXNET3 virtual NIC available in virtual
+machines by VMware.
+It appears as a simple Ethernet device but is actually a virtual network
+interface to the underlying host operating system.
+.Pp
+This driver supports the
+.Ic VMXNET3
+driver protocol, as an alternative to the emulated
+.Xr pcn 4 ,
+.Xr em 4
+interfaces also available in the VMware environment.
+The
+.Nm
+driver is optimized for the virtual machine, it can provide advanced
+capabilities depending on the underlying host operating system and
+the physical network interface controller of the host.
+The
+.Nm
+driver supports features like multiqueue support, IPv6
+checksum offloading, MSI/MSI-X support and hardware VLAN tagging in
+VMware's VLAN Guest Tagging (VGT) mode.
+.Pp
+The
+.Nm
+driver supports VMXNET3 VMware virtual NICs provided by the virtual
+machine hardware version 7 or newer, as provided by the following
+products:
+.Pp
+.Bl -bullet -compact -offset indent
+.It
+VMware ESX/ESXi 4.0 and newer
+.It
+VMware Server 2.0 and newer
+.It
+VMware Workstation 6.5 and newer
+.It
+VMware Fusion 2.0 and newer
+.El
+.Pp
+For more information on configuring this device, see
+.Xr ifconfig 8 .
+.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 indent
+.It Va hw.vmx.txndesc
+.It Va hw.vmx. Ns Ar X Ns Va .txndesc
+.Pp
+Number of transmit descriptors allocated by the driver.
+The default value is 512.
+The value must be a multiple of 32, and the maximum is 4096.
+.It Va hw.vmx.rxndesc
+.It Va hw.vmx. Ns Ar X Ns Va .rxndesc
+.Pp
+Number of receive descriptors per ring allocated by the driver.
+The default value is 256.
+The value must be a multiple of 32, and the maximum is 2048.
+There are two rings so the actual usage is doubled.
+.El
+.Sh EXAMPLES
+The following entry must be added to the VMware configuration file
+to provide the
+.Nm
+device:
+.Bd -literal -offset indent
+ethernet0.virtualDev = "vmxnet3"
+.Ed
+.Sh SEE ALSO
+.Xr altq 4 ,
+.Xr arp 4 ,
+.Xr em 4 ,
+.Xr netintro 4 ,
+.Xr ng_ether 4 ,
+.Xr pcn 4 ,
+.Xr vlan 4 ,
+.Xr ifconfig 8
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was ported from
+.Ox
+and significantly rewritten by
+.An Bryan Venteicher Aq bryanv@freebsd.org .
+The
+.Ox
+driver was written by
+.An Tsubai Masanari .
diff --git a/share/man/man4/vtnet.4 b/share/man/man4/vtnet.4
index febb0ac75f24..c7b2189abbb0 100644
--- a/share/man/man4/vtnet.4
+++ b/share/man/man4/vtnet.4
@@ -69,14 +69,30 @@ prompt before booting the kernel or stored in
.Xr loader.conf 5 .
.Bl -tag -width "xxxxxx"
.It Va hw.vtnet.csum_disable
+.It Va hw.vtnet. Ns Ar X Ns Va .csum_disable
This tunable disables receive and send checksum offload.
The default value is 0.
.It Va hw.vtnet.tso_disable
+.It Va hw.vtnet. Ns Ar X Ns Va .tso_disable
This tunable disables TSO.
The default value is 0.
.It Va hw.vtnet.lro_disable
+.It Va hw.vtnet. Ns Ar X Ns Va .lro_disable
This tunable disables LRO.
The default value is 0.
+.It Va hw.vtnet.mq_disable
+.It Va hw.vtnet. Ns Ar X Ns Va .mq_disable
+This tunable disables multiqueue.
+The default value is 0.
+.It Va hw.vtnet.mq_max_pairs
+.It Va hw.vtnet. Ns Ar X Ns Va .mq_max_pairs
+This tunable sets the maximum number of transmit and receive queue pairs.
+Multiple queues are only supported when the Multiqueue feature is negotiated.
+This driver supports a maximum of 8 queue pairs.
+The number of queue pairs used is the lesser of the maximum supported by the
+driver and the hypervisor, the number of CPUs present in the guest, and this
+tunable if not zero.
+The default value is 0.
.El
.Sh SEE ALSO
.Xr arp 4 ,
@@ -89,7 +105,7 @@ The default value is 0.
The
.Nm
driver was written by
-.An Bryan Venteicher Aq bryanv@daemoninthecloset.org .
+.An Bryan Venteicher Aq bryanv@FreeBSD.org .
It first appeared in
.Fx 9.0 .
.Sh CAVEATS
diff --git a/share/man/man5/freebsd-update.conf.5 b/share/man/man5/freebsd-update.conf.5
index 653b0559f201..f9f7a562fa42 100644
--- a/share/man/man5/freebsd-update.conf.5
+++ b/share/man/man5/freebsd-update.conf.5
@@ -221,7 +221,7 @@ kernel.
.El
.Sh FILES
.Bl -tag -width "/etc/freebsd-update.conf"
-.It /etc/freebsd-update.conf
+.It Pa /etc/freebsd-update.conf
Default location of the
.Cm freebsd-update
configuration file.
diff --git a/share/man/man5/fstab.5 b/share/man/man5/fstab.5
index d516767c4d00..adfe70f3848f 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 October 11, 2012
+.Dd July 15, 2013
.Dt FSTAB 5
.Os
.Sh NAME
@@ -185,6 +185,15 @@ variable must be used to extend the
.Xr rc 8
startup script's list of network file system types.
.Pp
+If the option
+.Dq late
+is specified, the file system will be automatically mounted
+at a stage of system startup after remote mount points are mounted.
+For more detail about this option,
+see the
+.Xr mount 8
+manual page.
+.Pp
The type of the mount is extracted from the
.Fa fs_mntops
field and stored separately in the
@@ -202,6 +211,7 @@ then the file system whose name is given in the
.Fa fs_file
field is normally mounted read-write or read-only on the
specified special file.
+.Pp
If
.Fa fs_type
is
@@ -210,6 +220,37 @@ then the special file is made available as a piece of swap
space by the
.Xr swapon 8
command at the end of the system reboot procedure.
+For vnode-backed swap spaces,
+.Dq file
+is supported in the
+.Fa fs_mntops
+field.
+When
+.Fa fs_spec
+is an
+.Xr md 4
+device file
+.Pq Do md Dc or Do md[0-9]* Dc
+and
+.Dq file
+is specified in
+.Fa fs_mntopts ,
+an
+.Xr md 4
+device is created with the specified file used as backing store,
+and then the new device is used as swap space.
+Swap entries on
+.Pa .eli
+devices will cause automatic creation of encrypted devices.
+The
+.Dq ealgo ,
+.Dq aalgo ,
+.Dq keylength ,
+and
+.Dq sectorsize
+options may be passed to control those
+.Xr geli 8
+parameters.
The fields other than
.Fa fs_spec
and
@@ -343,6 +384,7 @@ resides in
.Xr ccd 4 ,
.Xr dump 8 ,
.Xr fsck 8 ,
+.Xr geli 8 ,
.Xr mount 8 ,
.Xr quotacheck 8 ,
.Xr quotaon 8 ,
diff --git a/share/man/man5/mailer.conf.5 b/share/man/man5/mailer.conf.5
index 2fb8236b52f7..3f48eda1a952 100644
--- a/share/man/man5/mailer.conf.5
+++ b/share/man/man5/mailer.conf.5
@@ -83,7 +83,9 @@ The file may also contain comment lines, denoted by a
.Ql #
mark in the first column of any line.
.Sh FILES
-/etc/mail/mailer.conf
+.Bl -tag -width Pa
+.It Pa /etc/mail/mailer.conf
+.El
.Sh EXAMPLES
This example shows how to set up
.Nm
diff --git a/share/man/man5/make.conf.5 b/share/man/man5/make.conf.5
index 4eb5ed5e209d..7430a09164e4 100644
--- a/share/man/man5/make.conf.5
+++ b/share/man/man5/make.conf.5
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 21, 2013
+.Dd May 28, 2013
.Dt MAKE.CONF 5
.Os
.Sh NAME
@@ -177,16 +177,6 @@ Refer to
for a list of recognized
.Va CPUTYPE
options.
-.It Va CVS_UPDATE
-.Pq Vt bool
-Set this to use
-.Xr cvs 1
-to update your
-.Pa src , ports
-and
-.Pa doc
-trees with
-.Dq Li "make update" .
.It Va CXXFLAGS
.Pq Vt str
Controls the compiler settings when compiling C++ code.
@@ -205,7 +195,7 @@ instead of
the default install command.
To install only files for which the target differs or does not exist, use
.Bd -literal -offset indent
-INSTALL="install -C"
+INSTALL+= -C
.Ed
Note that some makefiles (including those in
.Pa /usr/share/mk )
@@ -255,61 +245,6 @@ Set this to not update the doc tree during
.Pq Vt bool
Set this to not update the ports tree during
.Dq Li "make update" .
-.It Va SUP
-.Pq Vt str
-The location of the
-.Xr csup 1
-or
-.Xr cvsup 1
-command for
-.Dq Li "make update" .
-.It Va SUPFILE
-.Pq Vt str
-The first
-.Ar supfile
-to use when doing a
-.Dq Li "make update" .
-For example,
-.Pa /usr/share/examples/cvsup/standard-supfile .
-.It Va SUPFILE1
-.Pq Vt str
-The second
-.Ar supfile
-to use when doing a
-.Dq Li "make update" .
-.It Va SUPFILE2
-.Pq Vt str
-The third
-.Ar supfile
-to use when doing a
-.Dq Li "make update" .
-.It Va SUPFLAGS
-.Pq Vt str
-The flag for the
-.Xr sup 1
-command when doing
-.Dq Li "make update" .
-This defaults to
-.Op Fl g L Ar 2 .
-.It Va SUPHOST
-.Pq Vt str
-The hostname of the sup server to use when doing
-.Dq Li "make update" .
-.It Va SUP_UPDATE
-.Pq Vt bool
-Set this to use
-.Xr csup 1
-to update your
-.Pa src ,
-and
-.Pa ports
-trees with
-.Dq Li "make update" .
-This option is deprecated.
-Please use
-.Va SVN_UPDATE
-or
-.Xr freebsd-update 8 .
.It Va SVN_UPDATE
.Pq Vt bool
Set this to use
diff --git a/share/man/man5/periodic.conf.5 b/share/man/man5/periodic.conf.5
index 4543532cfdba..b773c57d2856 100644
--- a/share/man/man5/periodic.conf.5
+++ b/share/man/man5/periodic.conf.5
@@ -482,121 +482,6 @@ This variable behaves in the same way as the
.Va *_output
variables above, namely it can be set either to one or more email addresses
or to an absolute file name.
-.It Va daily_status_security_diff_flags
-.Pq Vt str
-Set to the arguments to pass to the
-.Xr diff 1
-utility when generating differences.
-The default is
-.Fl b u .
-.It Va daily_status_security_chksetuid_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to compare the modes and modification times of setuid executables with
-the previous day's values.
-.It Va daily_status_security_chkportsum_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to verify checksums of all installed packages against the known checksums in
-.Pa /var/db/pkg .
-.It Va daily_status_security_neggrpperm_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to check for files where the group of a file has less permissions than
-the world at large.
-When users are in more than 14 supplemental groups these negative
-permissions may not be enforced via NFS shares.
-.It Va daily_status_security_chkmounts_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to check for changes mounted file systems to the previous day's values.
-.It Va daily_status_security_noamd
-.Pq Vt bool
-Set to
-.Dq Li YES
-if you want to ignore
-.Xr amd 8
-mounts when comparing against yesterday's file system mounts in the
-.Va daily_status_security_chkmounts_enable
-check.
-.It Va daily_status_security_chkuid0_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to check
-.Pa /etc/master.passwd
-for accounts with UID 0.
-.It Va daily_status_security_passwdless_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to check
-.Pa /etc/master.passwd
-for accounts with empty passwords.
-.It Va daily_status_security_logincheck_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to check
-.Pa /etc/login.conf
-ownership, see
-.Xr login.conf 5
-for more information.
-.It Va daily_status_security_ipfwdenied_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to show log entries for packets denied by
-.Xr ipfw 8
-since yesterday's check.
-.It Va daily_status_security_ipfdenied_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to show log entries for packets denied by
-.Xr ipf 8
-since yesterday's check.
-.It Va daily_status_security_pfdenied_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to show log entries for packets denied by
-.Xr pf 4
-since yesterday's check.
-.It Va daily_status_security_ipfwlimit_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to display
-.Xr ipfw 8
-rules that have reached their verbosity limit.
-.It Va daily_status_security_kernelmsg_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to show new
-.Xr dmesg 8
-entries since yesterday's check.
-.It Va daily_status_security_loginfail_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to display failed logins from
-.Pa /var/log/messages
-in the previous day.
-.It Va daily_status_security_tcpwrap_enable
-.Pq Vt bool
-Set to
-.Dq Li YES
-to display connections denied by tcpwrappers (see
-.Xr hosts_access 5 )
-from
-.Pa /var/log/messages
-during the previous day.
.It Va daily_status_mail_rejects_enable
.Pq Vt bool
Set to
@@ -709,6 +594,18 @@ An orphaned file is one with an invalid owner or group.
A list of directories under which orphaned files are searched for.
This would usually be set to
.Pa / .
+.It Va weekly_status_security_enable
+.Pq Vt bool
+Weekly counterpart of
+.Va daily_status_securiy_enable .
+.It Va weekly_status_security_inline
+.Pq Vt bool
+Weekly counterpart of
+.Va daily_status_securiy_inline .
+.It Va weekly_status_security_output
+.Pq Vt str
+Weekly counterpart of
+.Va daily_status_securiy_output .
.It Va weekly_status_pkg_enable
.Pq Vt bool
Set to
@@ -776,12 +673,279 @@ Set to
if you want to do login accounting using the
.Xr ac 8
command.
+.It Va monthly_status_security_enable
+.Pq Vt bool
+Monthly counterpart of
+.Va daily_status_securiy_enable .
+.It Va monthly_status_security_inline
+.Pq Vt bool
+Monthly counterpart of
+.Va daily_status_securiy_inline .
+.It Va monthly_status_security_output
+.Pq Vt str
+Monthly counterpart of
+.Va daily_status_securiy_output .
.It Va monthly_local
.Pq Vt str
Set to a list of extra scripts that should be run after all other
monthly scripts.
All scripts must be absolute path names.
.El
+.Pp
+The following variables are used by the standard scripts that reside in
+.Pa /etc/periodic/security .
+Those scripts are usually run from daily
+.Pq Va daily_status_security_enable ,
+weekly
+.Pq Va weekly_status_security_enable ,
+and monthly
+.Pq Va monthly_status_security_enable
+periodic hooks.
+The
+.Va ..._period
+of each script can be configured as
+.Dq daily ,
+.Dq weekly ,
+.Dq monthly
+or
+.Dq NO .
+Note that when periodic security scripts are run from
+.Xr crontab 5 ,
+they will be always run unless their
+.Va ..._enable
+or
+.Va ..._period
+variable is set to
+.Dq No .
+.Bl -tag -offset 4n -width 2n
+.It Va security_status_diff_flags
+.Pq Vt str
+Set to the arguments to pass to the
+.Xr diff 1
+utility when generating differences.
+The default is
+.Fl b u .
+.It Va security_status_chksetuid_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to compare the modes and modification times of setuid executables with
+the previous day's values.
+.It Va security_status_chksetuid_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_chkportsum_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to verify checksums of all installed packages against the known checksums in
+.Pa /var/db/pkg .
+.It Va security_status_chkportsum_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_neggrpperm_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to check for files where the group of a file has less permissions than
+the world at large.
+When users are in more than 14 supplemental groups these negative
+permissions may not be enforced via NFS shares.
+.It Va security_status_neggrpperm_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_chkmounts_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to check for changes mounted file systems to the previous day's values.
+.It Va security_status_chkmounts_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_noamd
+.Pq Vt bool
+Set to
+.Dq Li YES
+if you want to ignore
+.Xr amd 8
+mounts when comparing against yesterday's file system mounts in the
+.Va security_status_chkmounts_enable
+check.
+.It Va security_status_chkuid0_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to check
+.Pa /etc/master.passwd
+for accounts with UID 0.
+.It Va security_status_chkuid0_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_passwdless_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to check
+.Pa /etc/master.passwd
+for accounts with empty passwords.
+.It Va security_status_passwdless_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_logincheck_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to check
+.Pa /etc/login.conf
+ownership, see
+.Xr login.conf 5
+for more information.
+.It Va security_status_logincheck_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_ipfwdenied_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to show log entries for packets denied by
+.Xr ipfw 8
+since yesterday's check.
+.It Va security_status_ipfwdenied_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_ipfdenied_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to show log entries for packets denied by
+.Xr ipf 8
+since yesterday's check.
+.It Va security_status_ipfdenied_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_pfdenied_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to show log entries for packets denied by
+.Xr pf 4
+since yesterday's check.
+.It Va security_status_pfdenied_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_ipfwlimit_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to display
+.Xr ipfw 8
+rules that have reached their verbosity limit.
+.It Va security_status_ipfwlimit_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_kernelmsg_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to show new
+.Xr dmesg 8
+entries since yesterday's check.
+.It Va security_status_kernelmsg_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_loginfail_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to display failed logins from
+.Pa /var/log/messages
+in the previous day.
+.It Va security_status_loginfail_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.It Va security_status_tcpwrap_enable
+.Pq Vt bool
+Set to
+.Dq Li YES
+to display connections denied by tcpwrappers (see
+.Xr hosts_access 5 )
+from
+.Pa /var/log/messages
+during the previous day.
+.It Va security_status_tcpwrap_period
+.Pq Vt str
+Set to either
+.Dq Li daily ,
+.Dq Li weekly ,
+.Dq Li monthly
+or
+.Dq Li NO .
+.El
.Sh FILES
.Bl -tag -width ".Pa /etc/defaults/periodic.conf"
.It Pa /etc/defaults/periodic.conf
diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5
index fc8611137213..83fc7c5609c1 100644
--- a/share/man/man5/pf.conf.5
+++ b/share/man/man5/pf.conf.5
@@ -1461,7 +1461,7 @@ and
For a list of all the protocol name to number mappings used by
.Xr pfctl 8 ,
see the file
-.Em /etc/protocols .
+.Pa /etc/protocols .
.It Xo
.Ar from Aq Ar source
.Ar port Aq Ar source
diff --git a/share/man/man5/portsnap.conf.5 b/share/man/man5/portsnap.conf.5
index 90225b293820..07685b2b0ef0 100644
--- a/share/man/man5/portsnap.conf.5
+++ b/share/man/man5/portsnap.conf.5
@@ -135,7 +135,7 @@ supported and may cause unexpected results.
Any lines not of the above forms will be ignored.
.Sh FILES
.Bl -tag -width "/etc/portsnap.conf"
-.It /etc/portsnap.conf
+.It Pa /etc/portsnap.conf
Default location of the portsnap configuration file.
.El
.Sh SEE ALSO
diff --git a/share/man/man5/procfs.5 b/share/man/man5/procfs.5
index 17072732938c..684f9f3b6820 100644
--- a/share/man/man5/procfs.5
+++ b/share/man/man5/procfs.5
@@ -2,7 +2,7 @@
.\" Written by Garrett Wollman
.\" This file is in the public domain.
.\"
-.Dd September 22, 2009
+.Dd April 22, 2013
.Dt PROCFS 5
.Os
.Sh NAME
@@ -155,9 +155,10 @@ process group id
.It
session id
.It
-.Ar major , Ns Ar minor
+device name
of the controlling terminal, or
-.Dv -1,-1
+a minus sign
+.Pq Dq -
if there is no controlling terminal.
.It
a list of process flags:
diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5
index 35a5d8c00dae..3312c6fcccd1 100644
--- a/share/man/man5/rc.conf.5
+++ b/share/man/man5/rc.conf.5
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 27, 2012
+.Dd July 22, 2013
.Dt RC.CONF 5
.Os
.Sh NAME
@@ -161,12 +161,6 @@ Setting this option will bypass that check at boot time and
always test whether or not the service is actually running.
Enabling this option is likely to increase your boot time if
services are enabled that utilize the force_depend check.
-.It Va swapfile
-.Pq Vt str
-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
@@ -1124,44 +1118,63 @@ Such keywords are removed before passing the value to
.Xr ifconfig 8
while the order of the other arguments is preserved.
.Pp
-One can configure more than one IPv4 address with the
-.Va ipv4_addrs_ Ns Aq Ar interface
-variable.
-One or more IP addresses must be provided in Classless Inter-Domain
-Routing (CIDR) address notation, whose last byte can be a range like
-192.0.2.5-23/24.
-In this case the address 192.0.2.5 will be configured with the
+It is possible to add IP alias entries using
+.Xr ifconfig 8
+syntax with the address family keyword such as
+.Li inet .
+Assuming that the interface in question was
+.Li ed0 ,
+it might look something like this:
+.Bd -literal
+ifconfig_ed0_alias0="inet 127.0.0.253 netmask 0xffffffff"
+ifconfig_ed0_alias1="inet 127.0.0.254 netmask 0xffffffff"
+.Ed
+.Pp
+It also possible to configure multiple IP addresses in Classless
+Inter-Domain Routing
+.Pq CIDR
+address notation,
+whose each address component can be a range like
+.Li inet 192.0.2.5-23/24
+or
+.Li inet6 2001:db8:1-f::1/64 .
+This notation allows address and prefix length part only,
+not the other address modifiers.
+.Pp
+In the case of
+.Li 192.0.2.5-23/24 ,
+the address 192.0.2.5 will be configured with the
netmask /24 and the addresses 192.0.2.6 to 192.0.2.23 with
the non-conflicting netmask /32 as explained in the
.Xr ifconfig 8
alias section.
+Note that this special netmask handling is only for
+.Li inet ,
+not for the other address families such as
+.Li inet6 .
+.Pp
With the interface in question being
.Li ed0 ,
an example could look like:
.Bd -literal
-ipv4_addrs_ed0="192.0.2.129/27 192.0.2.1-5/28"
+ifconfig_ed0_alias2="inet 192.0.2.129/27"
+ifconfig_ed0_alias3="inet 192.0.2.1-5/28"
.Ed
.Pp
-It is also possible to add IP alias entries using
-.Xr ifconfig 8
-syntax with the
-.Dq Li inet
-keyword.
-Assuming that the interface in question was
-.Li ed0 ,
-it might look
-something like this:
-.Bd -literal
-ifconfig_ed0_alias0="inet 127.0.0.253 netmask 0xffffffff"
-ifconfig_ed0_alias1="inet 127.0.0.254 netmask 0xffffffff"
-.Ed
+and so on.
+.Pp
+Note that
+.Va ipv4_addrs_ Ns Aq Ar interface
+variable was supported for IPv4 CIDR address notation.
+It is now deprecated because the functionality was integrated into
+.Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n
+though
+.Va ipv4_addrs_ Ns Aq Ar interface
+is still supported for backward compatibility.
.Pp
-And so on.
For each
.Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n
-entry with the
-.Dq Li inet
-keyword that is found,
+entry with an address family keyword,
its contents are passed to
.Xr ifconfig 8 .
Execution stops at the first unsuccessful access, so if
@@ -1182,6 +1195,20 @@ entry.
Due to this difficult to manage behavior, the
.Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n
form is deprecated.
+There is
+.Va ifconfig_ Ns Ao Ar interface Ac Ns Va _aliases
+variable, which has the same functionality as
+.Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n
+and can have all of entries in a variable like the following:
+.Bd -literal
+ifconfig_ed0_aliases="\\
+ inet 127.0.0.251 netmask 0xffffffff \\
+ inet 127.0.0.252 netmask 0xffffffff \\
+ inet 127.0.0.253 netmask 0xffffffff \\
+ inet 127.0.0.254 netmask 0xffffffff"
+.Ed
+.Pp
+It also supports CIDR notation.
.Pp
If the
.Pa /etc/start_if. Ns Aq Ar interface
@@ -1288,7 +1315,7 @@ it is possible to use something like:
ifconfig_ed0="DHCP"
.Ed
.Pp
-Also, if you want to configure your wireless interface with
+If you want to configure your wireless interface with
.Xr wpa_supplicant 8
for use with WPA, EAP/LEAP or WEP, you need to add
.Dq Li WPA
@@ -1296,6 +1323,17 @@ to the
.Va ifconfig_ Ns Aq Ar interface
variable.
.Pp
+On the other hand, if you want to configure your wireless interface with
+.Xr hostapd 8 ,
+you need to add
+.Dq Li HOSTAP
+to the
+.Va ifconfig_ Ns Aq Ar interface
+variable.
+.Xr hostapd 8
+will use the settings from
+.Pa /etc/hostapd- Ns Ao Ar interface Ac Ns .conf
+.Pp
Finally, you can add
.Xr ifconfig 8
options in this variable, in addition to the
@@ -1613,11 +1651,33 @@ Further cloning arguments may be passed to the
command for each interface by setting the
.Va create_args_ Ns Aq Ar interface
variable.
+If an interface name is specified with
+.Dq :sticky
+keyword,
+the interface will not be destroyed even when
+.Pa rc.d/netif
+script is invoked with
+.Dq stop
+argument.
+This is useful when reconfiguring the interface without destroying it.
Entries in
.Va cloned_interfaces
are automatically appended to
.Va network_interfaces
for configuration.
+.It Va cloned_interfaces_sticky
+.Pq Vt bool
+This variable is to globally enable functionality of
+.Dq :sticky
+keyword in
+.Va cloned_interfaces
+for all interfaces.
+The default value is
+.Dq NO .
+Even if this variable is specified to
+.Dq YES ,
+.Dq :nosticky
+keyword can be used to override it on per interface basis.
.It Va fec_interfaces
.Pq Vt str
Set to the list of
@@ -1647,6 +1707,8 @@ ifconfig_fec0="DHCP"
.Ed
.It Va gif_interfaces
.Pq Vt str
+This variable is deprecated in favor of
+.Va cloned_interfaces .
Set to the list of
.Xr gif 4
tunnel interfaces to configure on this host.
@@ -1846,12 +1908,6 @@ Default is
This can be changed for every device separately by defining
.Va geli_ Ns Ao Ar device Ac Ns Va _autodetach
variable.
-.It Va geli_swap_flags
-Options passed to the
-.Xr geli 8
-utility when encrypted GEOM providers for swap partitions are created.
-The default is
-.Dq Li "-e aes -l 256 -s 4096 -d" .
.It Va root_rw_mount
.Pq Vt bool
Set to
@@ -2689,10 +2745,18 @@ whose contents will later be passed to a
operation.
For example:
.Bd -literal
-static_routes="mcast gif0local"
+static_routes="ext mcast:gif0 gif0local:gif0"
+route_ext="-net 10.0.0.0/24 -gateway 192.168.0.1"
route_mcast="-net 224.0.0.0/4 -iface gif0"
route_gif0local="-host 169.254.1.1 -iface lo0"
.Ed
+.Pp
+When an
+.Ar element
+is in the form of
+.Li name:ifname ,
+the route is specific to the interface
+.Li ifname .
.It Va ipv6_static_routes
.Pq Vt str
The IPv6 equivalent of
@@ -3835,6 +3899,11 @@ configure multiple jails.
The names specified in this list will be used to
identify settings common to an instance of a jail,
and should contain alphanumeric characters only.
+The literal jail name of
+.Dq Li 0
+.Pq zero
+is not allowed.
+.Pp
Assuming that the jail in question was named
.Li vjail ,
you would have the following dependent variables:
@@ -3982,6 +4051,42 @@ Set to the root directory used by jail
Unset by default.
Set to the fully qualified domain name (FQDN) assigned to jail
.Va jname .
+.It Va jail_ Ns Ao Ar jname Ac Ns Va _parameters
+.Pq Vt str
+Unset by default.
+Set extra parameters for jail
+.Va jname ,
+such as
+.Dq Li allow.chflags
+or
+.Dq Li children.max .
+See
+.Xr jail 8
+for a list of available parameters.
+Note that the following parameters are already defined by
+.Pa rc.d/jail
+script out of their corresponding
+.Nm
+variables:
+.Bl -tag -width "host.hostname" -offset indent
+.It Li path
+set from
+.Va jail_ Ns Ao Ar jname Ac Ns Va _rootdir
+.It Li host.hostname
+set from
+.Va jail_ Ns Ao Ar jname Ac Ns Va _hostname
+.It Li command
+set from
+.Va jail_ Ns Ao Ar jname Ac Ns Va _exec_start
+.It Li ip4.addr
+set if
+.Va jail_ Ns Ao Ar jname Ac Ns Va _ip
+contains IPv4 addresses
+.It Li ip6.addr
+set if
+.Va jail_ Ns Ao Ar jname Ac Ns Va _ip6
+contains IPv6 addresses
+.El
.It Va jail_ Ns Ao Ar jname Ac Ns Va _ip
.Pq Vt str
Unset by default.
diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5
index 17afca25875d..4e8986445a90 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
+.\" from FreeBSD: head/tools/build/options/makeman 253304 2013-07-12 23:08:44Z bapt
.\" $FreeBSD$
-.Dd February 15, 2013
+.Dd August 29, 2013
.Dt SRC.CONF 5
.Os
.Sh NAME
@@ -100,9 +100,9 @@ Set to not build
.Xr apm 8 ,
.Xr apmd 8
and related programs.
-.It Va WITH_ARM_EABI
-.\" from FreeBSD: head/tools/build/options/WITH_ARM_EABI 245539 2013-01-17 05:56:28Z andrew
-Set the ARM ABI to EABI.
+.It Va WITHOUT_ARM_EABI
+.\" from FreeBSD: head/tools/build/options/WITHOUT_ARM_EABI 253396 2013-07-16 19:15:19Z andrew
+Set the ARM ABI to OABI.
.It Va WITHOUT_ASSERT_DEBUG
.\" from FreeBSD: head/tools/build/options/WITHOUT_ASSERT_DEBUG 162215 2006-09-11 13:55:27Z ru
Set to compile programs and libraries without the
@@ -223,9 +223,9 @@ 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
+.It Va WITHOUT_BMAKE
+.\" from FreeBSD: head/tools/build/options/WITHOUT_BMAKE 250839 2013-05-21 00:41:49Z delphij
+Set to not build and install the portable BSD make (bmake) as
.Xr make 1
instead of the traditional FreeBSD make.
This build option is temporary.
@@ -235,9 +235,6 @@ 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
@@ -245,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_PATCH
-.\" from FreeBSD: head/tools/build/options/WITH_BSD_PATCH 246074 2013-01-29 17:03:18Z gabor
-Install BSD-licensed patch as 'patch' instead of GNU patch.
.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
@@ -302,6 +296,12 @@ When set, it also enforces the following options:
.It
.Va WITHOUT_CLANG_IS_CC
.El
+.It Va WITH_CLANG
+.\" from FreeBSD: head/tools/build/options/WITH_CLANG 221730 2011-05-10 11:14:40Z ru
+Set to build the Clang C/C++ compiler.
+.Pp
+It is a default setting on
+amd64/amd64, arm/arm, arm/armv6, i386/i386, pc98/i386, powerpc/powerpc and powerpc/powerpc64.
.It Va WITH_CLANG_EXTRAS
.\" from FreeBSD: head/tools/build/options/WITH_CLANG_EXTRAS 231057 2012-02-05 23:56:22Z dim
Set to build additional clang and llvm tools, such as bugpoint.
@@ -328,7 +328,7 @@ and
.Pa /usr/bin/cpp .
.Pp
It is a default setting on
-arm/arm, arm/armeb, arm/armv6, arm/armv6eb, ia64/ia64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64.
+arm/armeb, arm/armv6eb, ia64/ia64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64.
.It Va WITH_CLANG_IS_CC
.\" from FreeBSD: head/tools/build/options/WITH_CLANG_IS_CC 235342 2012-05-12 16:12:36Z gjb
Set to install the Clang C/C++ compiler as
@@ -338,11 +338,15 @@ and
.Pa /usr/bin/cpp .
.Pp
It is a default setting on
-amd64/amd64, i386/i386 and pc98/i386.
+amd64/amd64, arm/arm, arm/armv6, i386/i386 and pc98/i386.
.It Va WITHOUT_CPP
.\" from FreeBSD: head/tools/build/options/WITHOUT_CPP 156932 2006-03-21 07:50:50Z ru
Set to not build
.Xr cpp 1 .
+.It Va WITHOUT_CROSS_COMPILER
+.\" from FreeBSD: head/tools/build/options/WITHOUT_CROSS_COMPILER 250659 2013-05-15 14:30:03Z brooks
+Set to not build a cross compiler in the cross-tools stage of
+buildworld, buildkernel, etc.
.It Va WITHOUT_CRYPT
.\" from FreeBSD: head/tools/build/options/WITHOUT_CRYPT 156932 2006-03-21 07:50:50Z ru
Set to not build any crypto code.
@@ -377,9 +381,6 @@ similar to DWARF and the venerable stabs and is required for DTrace.
Set to not build
.Xr ctm 1
and related utilities.
-.It Va WITHOUT_CVS
-.\" from FreeBSD: head/tools/build/options/WITHOUT_CVS 156932 2006-03-21 07:50:50Z ru
-Set to not build CVS.
.It Va WITHOUT_CXX
.\" from FreeBSD: head/tools/build/options/WITHOUT_CXX 220402 2011-04-06 20:19:07Z uqs
Set to not build
@@ -403,6 +404,14 @@ When set, it also enforces the following options:
.It
.Va WITHOUT_GROFF
.El
+.It Va WITH_DEBUG_FILES
+.\" from FreeBSD: head/tools/build/options/WITH_DEBUG_FILES 251512 2013-06-07 21:40:02Z emaste
+Set to strip debug info into a separate file for each executable binary
+and shared library.
+The debug files will be placed in a subdirectory of
+.Pa /usr/lib/debug
+and are located automatically by
+.Xr gdb 1 .
.It Va WITHOUT_DICT
.\" from FreeBSD: head/tools/build/options/WITHOUT_DICT 156932 2006-03-21 07:50:50Z ru
Set to not build the Webster dictionary files.
@@ -429,10 +438,23 @@ This includes the device tree compiler (dtc) and libfdt support library.
.Pp
It is a default setting on
amd64/amd64, i386/i386, ia64/ia64, pc98/i386 and sparc64/sparc64.
+.It Va WITH_FDT
+.\" from FreeBSD: head/tools/build/options/WITH_FDT 221730 2011-05-10 11:14:40Z ru
+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, 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
for operating floppy disk driver.
+.It Va WITHOUT_FORMAT_EXTENSIONS
+.\" from FreeBSD: head/tools/build/options/WITHOUT_FORMAT_EXTENSIONS 250658 2013-05-15 13:04:10Z brooks
+Set to not enable
+.Fl fformat-extensions
+when compiling the kernel.
+Also disables all format checking.
.It Va WITHOUT_FORTH
.\" from FreeBSD: head/tools/build/options/WITHOUT_FORTH 156932 2006-03-21 07:50:50Z ru
Set to build bootloaders without Forth support.
@@ -510,16 +532,15 @@ Set to build Hesiod support.
.It Va WITHOUT_HTML
.\" from FreeBSD: head/tools/build/options/WITHOUT_HTML 156932 2006-03-21 07:50:50Z ru
Set to not build HTML docs.
-.It Va WITH_ICONV
-.\" from FreeBSD: head/tools/build/options/WITH_ICONV 219020 2011-02-25 00:10:26Z gabor
-Set to build iconv as part of libc.
-.It Va WITH_IDEA
-.\" from FreeBSD: head/tools/build/options/WITH_IDEA 156932 2006-03-21 07:50:50Z ru
-Set to build the IDEA encryption code.
-This code is patented in the USA and many European countries.
-It is
-.Em "YOUR RESPONSIBILITY"
-to determine if you can legally use IDEA.
+.It Va WITHOUT_ICONV
+.\" from FreeBSD: head/tools/build/options/WITHOUT_ICONV 254919 2013-08-26 17:15:56Z antoine
+Set to not build iconv as part of libc.
+When set, it also enforces the following options:
+.Pp
+.Bl -item -compact
+.It
+.Va WITHOUT_LIBICONV_COMPAT
+.El
.It Va WITHOUT_INET
.\" from FreeBSD: head/tools/build/options/WITHOUT_INET 221266 2011-04-30 17:58:28Z bz
Set to not build programs and libraries related to IPv4 networking.
@@ -585,8 +606,8 @@ When set, it also enforces the following options:
.\" from FreeBSD: head/tools/build/options/WITHOUT_IPX_SUPPORT 156932 2006-03-21 07:50:50Z ru
Set to build some programs without IPX support.
.It Va WITHOUT_JAIL
-.\" 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.
+.\" from FreeBSD: head/tools/build/options/WITHOUT_JAIL 249966 2013-04-27 04:09:09Z eadler
+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
@@ -613,9 +634,8 @@ When set, the following options are also in effect:
is set explicitly)
.El
.It Va WITHOUT_KERBEROS_SUPPORT
-.\" from FreeBSD: head/tools/build/options/WITHOUT_KERBEROS_SUPPORT 156932 2006-03-21 07:50:50Z ru
+.\" from FreeBSD: head/tools/build/options/WITHOUT_KERBEROS_SUPPORT 251794 2013-06-15 20:29:07Z eadler
Set to build some programs without Kerberos support, like
-.Xr cvs 1 ,
.Xr ssh 1 ,
.Xr telnet 1 ,
.Xr sshd 8 ,
@@ -661,14 +681,15 @@ Setting this variable will enable the LDNS-based versions of
.Xr dig 1
and
.Xr host 1 .
-When set, the following options are also in effect:
+When set, it also enforces the following options:
.Pp
-.Bl -inset -compact
-.It Va WITHOUT_BIND_UTILS
+.Bl -item -compact
+.It
+.Va WITHOUT_BIND_UTILS
.El
.It Va WITHOUT_LEGACY_CONSOLE
-.\" from FreeBSD: head/tools/build/options/WITHOUT_LEGACY_CONSOLE 183242 2008-09-21 22:02:26Z sam
-Set to not build programs that support a legacy PC console; e.g.
+.\" from FreeBSD: head/tools/build/options/WITHOUT_LEGACY_CONSOLE 249966 2013-04-27 04:09:09Z eadler
+Set to not build programs that support a legacy PC console; e.g.,
.Xr kbdcontrol 8
and
.Xr vidcontrol 8 .
@@ -680,6 +701,9 @@ runtime linker.
.It Va WITHOUT_LIBCPLUSPLUS
.\" from FreeBSD: head/tools/build/options/WITHOUT_LIBCPLUSPLUS 246262 2013-02-02 22:42:46Z dim
Set to avoid building libcxxrt and libc++.
+.It Va WITH_LIBICONV_COMPAT
+.\" from FreeBSD: head/tools/build/options/WITH_LIBICONV_COMPAT 254919 2013-08-26 17:15:56Z antoine
+Set to build libiconv API and link time compatibility.
.It Va WITHOUT_LIBPTHREAD
.\" from FreeBSD: head/tools/build/options/WITHOUT_LIBPTHREAD 188848 2009-02-20 11:09:55Z mtm
Set to not build the
@@ -941,9 +965,9 @@ When set, it also enforces the following options:
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
+.It Va WITH_PKGTOOLS
+.\" from FreeBSD: head/tools/build/options/WITH_PKGTOOLS 253305 2013-07-12 23:11:17Z bapt
+Set to build
.Xr pkg_add 8
and related programs.
.It Va WITHOUT_PMC
@@ -1034,6 +1058,17 @@ Set to not build kernel modules that include sourceless microcode.
.It Va WITHOUT_SSP
.\" from FreeBSD: head/tools/build/options/WITHOUT_SSP 180012 2008-06-25 21:33:28Z ru
Set to not build world with propolice stack smashing protection.
+.It Va WITH_SVN
+.\" from FreeBSD: head/tools/build/options/WITH_SVN 252561 2013-07-03 12:36:47Z zeising
+Set to install
+.Xr svnlite 1
+as
+.Xr svn 1 .
+.It Va WITHOUT_SVNLITE
+.\" from FreeBSD: head/tools/build/options/WITHOUT_SVNLITE 252561 2013-07-03 12:36:47Z zeising
+Set to not build
+.Xr svnlite 1
+and related programs.
.It Va WITHOUT_SYMVER
.\" from FreeBSD: head/tools/build/options/WITHOUT_SYMVER 169649 2007-05-17 05:03:24Z deischen
Set to disable symbol versioning when building shared libraries.
@@ -1097,6 +1132,9 @@ When set, it also enforces the following options:
.It Va WITHOUT_USB
.\" from FreeBSD: head/tools/build/options/WITHOUT_USB 156932 2006-03-21 07:50:50Z ru
Set to not build USB-related programs and libraries.
+.It Va WITH_USB_GADGET_EXAMPLES
+.\" from FreeBSD: head/tools/build/options/WITH_USB_GADGET_EXAMPLES 254919 2013-08-26 17:15:56Z antoine
+Set to build USB gadget kernel modules.
.It Va WITHOUT_UTMPX
.\" from FreeBSD: head/tools/build/options/WITHOUT_UTMPX 231530 2012-02-11 20:28:42Z ed
Set to not build user accounting tools such as
diff --git a/share/man/man7/c99.7 b/share/man/man7/c99.7
index e12d000476f3..43ef6750cd66 100644
--- a/share/man/man7/c99.7
+++ b/share/man/man7/c99.7
@@ -70,7 +70,7 @@ The elements of this standard library is still not enough for more
complicated tasks.
In this case the provided system calls of the given operating system can be
used.
-To not loose the portability by using these system calls, the POSIX
+To not lose the portability by using these system calls, the POSIX
(Portable Operating System Interface) standard evolved.
It describes what functions should be available to keep portability.
Note, that POSIX is not a C standard, but an operating system standard
diff --git a/share/man/man7/firewall.7 b/share/man/man7/firewall.7
index 20108d22e96d..48558b21d5a8 100644
--- a/share/man/man7/firewall.7
+++ b/share/man/man7/firewall.7
@@ -91,7 +91,7 @@ a firewall in the sample firewall section below.
.Sh IPFW KERNEL CONFIGURATION
You do not need to create a custom kernel to use the IP firewalling features.
If you enable firewalling in your
-.Em /etc/rc.conf
+.Pa /etc/rc.conf
(see below), the ipfw kernel module will be loaded automatically
when necessary.
However,
@@ -103,7 +103,7 @@ option set.
If compiled in the kernel, ipfw denies all
packets by default, which means that, if you do not load in
a permissive ruleset via
-.Em /etc/rc.conf ,
+.Pa /etc/rc.conf ,
rebooting into your new kernel will take the network offline.
This can prevent you from being able to access your system if you
are not sitting at the console.
diff --git a/share/man/man7/hier.7 b/share/man/man7/hier.7
index 320b07946202..328f88d1f9e8 100644
--- a/share/man/man7/hier.7
+++ b/share/man/man7/hier.7
@@ -434,15 +434,31 @@ local executables, libraries, etc.
Also used as the default destination for the
.Fx
ports framework.
-Within local/, the general layout sketched out by
+Within
+.Pa local/ ,
+the general layout sketched out by
.Nm
-for /usr
+for
+.Pa /usr
should be used.
-Exceptions are the man directory (directly under local/
-rather than under local/share/), ports documentation (in share/doc/<port>/),
-and /usr/local/etc (mimics /etc).
+Exceptions are the
+.Pa man
+directory
+.Po directly under
+.Pa local/
+rather than under
+.Pa local/share/ Ns Pc ,
+ports documentation
+.Po in
+.Pa share/doc/<port>/ Ns Pc ,
+and
+.Pa /usr/local/etc
+.Po mimics
+.Pa /etc Ns Pc .
.It Pa obj/
-architecture-specific target tree produced by building the /usr/src tree
+architecture-specific target tree produced by building the
+.Pa /usr/src
+tree
.It Pa ports/
The
.Fx
@@ -633,38 +649,48 @@ source code for contributed software
.It Pa crypto/
source code for contributed cryptography software
.It Pa etc/
-source code for files in /etc
+source code for files in
+.Pa /etc
.It Pa games/
-source code for files in /usr/games
+source code for files in
+.Pa /usr/games
.It Pa gnu/
Utilities covered by the GNU General Public License
.It Pa include/
-source code for files in /usr/include
+source code for files in
+.Pa /usr/include
.It Pa kerberos5/
build infrastructure for kerberos version 5
.It Pa lib/
-source code for files in /usr/lib
+source code for files in
+.Pa /usr/lib
.It Pa libexec/
-source code for files in /usr/libexec
+source code for files in
+.Pa /usr/libexec
.It Pa release/
files required to produce a
.Fx
release
.It Pa sbin/
-source code for files in /sbin
+source code for files in
+.Pa /sbin
.It Pa secure/
-build directory for files in /usr/src/crypto
+build directory for files in
+.Pa /usr/src/crypto
.It Pa share/
-source for files in /usr/share
+source for files in
+.Pa /usr/share
.It Pa sys/
kernel source code
.It Pa tools/
tools used for maintenance and testing of
.Fx
.It Pa usr.bin/
-source code for files in /usr/bin
+source code for files in
+.Pa /usr/bin
.It Pa usr.sbin/
-source code for files in /usr/sbin
+source code for files in
+.Pa /usr/sbin
.El
.El
.It Pa /var/
diff --git a/share/man/man7/ports.7 b/share/man/man7/ports.7
index 1243655f1d8d..04ffa7f8a493 100644
--- a/share/man/man7/ports.7
+++ b/share/man/man7/ports.7
@@ -97,7 +97,7 @@ target.
Configure
.Va OPTIONS
for this port using
-.Xr dialog 1 .
+.Xr dialog4ports 1 .
.It Cm fetch
Fetch all of the files needed to build this port from the sites
listed in
@@ -177,7 +177,7 @@ configured.
Configure
.Va OPTIONS
for this port and all its dependencies using
-.Xr dialog 1 .
+.Xr dialog4ports 1 .
.It Cm fetch-list
Show list of files to be fetched in order to build the port.
.It Cm fetch-recursive
diff --git a/share/man/man7/release.7 b/share/man/man7/release.7
index 8216eeff787e..b126cd796086 100644
--- a/share/man/man7/release.7
+++ b/share/man/man7/release.7
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 3, 2013
+.Dd August 14, 2013
.Dt RELEASE 7
.Os
.Sh NAME
@@ -50,8 +50,9 @@ For some users, it may be desirable to provide an absolutely clean
build environment, with no local modifications to the source tree or to
.Xr make.conf 5 ,
and with clean checkouts of specific versions of the doc, src, and ports
-trees. For this purpose, a script
-.Pq Pa src/release/generate-release.sh
+trees.
+For this purpose, a script
+.Pq Pa src/release/release.sh
is provided to automate these checkouts and then execute
.Dq Li "make release"
in a clean
@@ -70,86 +71,176 @@ and
.Dq Li "make buildkernel" .
This is necessary to provide the object files for the release or, when
using
-.Pa generate-release.sh ,
+.Pa release.sh ,
so that the object files for a complete system can be installed into a clean
.Xr chroot 8
-environment. In this second case, the built world must be capable of running
-on the build system (i.e. it must be for the same architecture and be
-compatible with the installed kernel).
+environment.
+.Pp
+If the target release build is for a different architecture or machine type,
+the
+.Va TARGET
+and
+.Va TARGET_ARCH
+variables must be used.
+See the supported
+.Fa release.conf
+variables for more information.
+.Pp
The release procedure on some architectures may also require that the
.Xr md 4
(memory disk) device driver be present in the kernel
-(either by being compiled in or available as a module).
+.Pq either by being compiled in or available as a module .
.Pp
This document does not cover source code management, quality
assurance, or other aspects of the release engineering process.
.Sh CLEAN RELEASE GENERATION
-Official releases of FreeBSD are produced in a totally clean environment to
+Official releases of
+.Fx
+are produced in a totally clean environment to
ensure consistency between the versions of the src, ports, and doc trees
-and to avoid contamination from the host system (e.g. local patches, changes
+and to avoid contamination from the host system
+.Po such as local patches, changes
to
.Xr make.conf 5 ,
-etc.). This is accomplished using the wrapper script
-.Pa src/release/generate-release.sh .
+etc.
+.Pc .
+This is accomplished using the wrapper script
+.Pa src/release/release.sh .
.Pp
-.Ic generate-release.sh
-svn-branch scratch-dir
+.Ic release.sh
+.Op Fl c Ar release.conf
.Pp
-.Ic generate-release.sh
-calls
+.Ic release.sh
+checks out the
+.Li src/ ,
+.Li ports/ ,
+and
+.Li doc/
+trees to
+.Va CHROOTDIR ,
+then calls
+.Dq Li "make buildworld"
+and
.Dq Li "make installworld"
to generate a
.Xr chroot 8
-environment in
-.Ar scratch-dir .
-It then checks out the src tree specified by
-.Ar svn-branch
-using
-.Xr svn 1 .
-Once the various source trees have been obtained, it executes
+environment.
+Next,
.Dq Li "make release"
-within the
+is run within the
.Xr chroot 8
environment and places the result in
-.Pa $scratch-dir/R .
-Note that because this uses a chroot, it cannot be used to cross-build
-.Fx
-release media.
+.Pa $CHROOTDIR/R .
.Pp
-Optional environment variables:
-.Bl -tag -width ".Cm WORLD_FLAGS"
-.It Ev WORLD_FLAGS
-This environment variable can be set to pass flags (e.g. -j) to
-.Xr make 1
-when invoked to build a world by the script.
-.It Ev KERNEL_FLAGS
-This environment variable can be set to pass flags (e.g. -j) to
-.Xr make 1
-when invoked to build a kernel by the script.
-.It Ev SVNROOTBASE
-The base part of URL of the FreeBSD SVN repositories.
+The optional
+.Fa release.conf
+configuration file supports the following variables:
+.Bl -tag -width Ev
+.It Va CHROOTDIR
+The directory within which the release will be built.
+.It Va SVNROOT
+The
+.Xr svn 1
+host used to check out the various trees.
Defaults to
-.Pa svn://svn.freebsd.org .
-.It Ev SVNROOTSRC
-The URL of the FreeBSD SVN source repository.
+.Pa svn://svn.FreeeBSD.org .
+.It Va SRCBRANCH
+The
+.Li src/
+branch to use.
Defaults to
-.Pa ${SVNROOTBASE}/base .
-.It Ev SVNROOTDOC
-The URL of the FreeBSD SVN doc repository.
+.Va head/@rHEAD .
+.It Va DOCBRANCH
+The
+.Li doc/
+branch to use.
Defaults to
-.Pa ${SVNROOTBASE}/doc .
-.It Ev SVNROOTPORTS
-The URL of the FreeBSD SVN ports repository.
+.Va head/@rHEAD .
+.It Va PORTBRANCH
+The
+.Li ports/
+branch to use.
Defaults to
-.Pa ${SVNROOTBASE}/ports .
-.It Ev BRANCHDOC
-The branch name of the FreeBSD SVN doc repository.
+.Va head/@rHEAD .
+.It Va TARGET
+The target machine type for cross-building a release.
+.It Va TARGET_ARCH
+The target machine architecture for cross-building a release.
+.Pp
+For the supported list of
+.Va TARGET
+and
+.Va TARGET_ARCH
+combinations, consult the output of
+.Dq make targets
+as documented in
+.Xr build 7 .
+.It Va KERNEL
+The target kernel configuration to use.
+Defaults to
+.Va GENERIC .
+Multiple
+.Va KERNEL
+entries may be specified.
+.It Va MAKE_CONF
+The
+.Xr make.conf 5
+to use for the release build.
Defaults to
-.Pa head .
-.It Ev BRANCHPORTS
-The branch name of the FreeBSD SVN ports repository.
+.Fa /dev/null
+to prevent polluting the release with local system changes.
+.It Va SRC_CONF
+The
+.Xr src.conf 5
+to use for the release build.
Defaults to
-.Pa head .
+.Fa /dev/null
+to prevent polluting the release with local system changes.
+.It Va MAKE_FLAGS
+Additional flags to pass to
+.Xr make 1 .
+.It Va WORLD_FLAGS
+Additional flags to pass to
+.Xr make 1
+during the
+.Dq buildworld
+phase.
+Defaults to setting the number of
+.Xr make 1
+jobs
+.Pq Ar -j
+to the number of CPUs available on a SMP-capable system.
+.It Va KERNEL_FLAGS
+Additional flags to pass to
+.Xr make 1
+during the
+.Dq buildkernel
+phase.
+Defaults to setting the number of
+.Xr make 1
+jobs
+.Pq Ar -j
+to half the number of CPUs available on a SMP-capable system.
+.It Va NODOC
+Set to a non-empty value to skip the
+.Li doc/
+tree checkout.
+When set,
+.Va NODOC
+will prevent the
+.Fa doc.txz
+distribution package from being created.
+.It Va NOPORTS
+Set to a non-empty value to skip the
+.Li ports/
+tree checkout.
+When set,
+.Va NOPORTS
+will prevent the
+.Fa ports.txz
+distribution package from being created.
+Setting this also sets
+.Va NODOC .
.El
.Sh MAKEFILE TARGETS
The release makefile
@@ -175,18 +266,19 @@ This may require the
(memory disk) device driver be present in the kernel
(either by being compiled in or available as a module).
This target produces files called
-.Pa release.iso
+.Pa disc1.iso
and
.Pa bootonly.iso
as its output.
.It Cm memstick
Builds an installation memory stick image named
-.Pa memstick .
+.Pa memstick.img .
Not applicable on all platforms.
Requires that the
.Xr md 4
-(memory disk) device driver be present in the kernel
-(either by being compiled in or available as a module).
+.Pq memory disk
+device driver be present in the kernel
+.Pq either by being compiled in or available as a module .
.It Cm ftp
Creates a directory named
.Pa ftp
@@ -197,7 +289,8 @@ and suitable for upload to an FTP mirror.
Major subtargets called by targets above:
.Bl -tag -width ".Cm packagesystem"
.It Cm packagesystem
-Generates all the distribution archives (e.g. base, kernel, ports, doc)
+Generates all the distribution archives
+.Pq base, kernel, ports, doc
applicable on this platform.
.It Cm system
Builds a bootable installation system containing all the distribution files
@@ -211,8 +304,9 @@ targets.
.It Cm reldoc
Builds the release documentation.
This includes the release notes,
-hardware guide, and installation instructions. Other documentation (e.g.
-the Handbook) is built during the
+hardware guide, and installation instructions.
+Other documentation, such as the Handbook,
+is built during the
.Cm base.txz
target invoked by
.Cm packagesystem .
@@ -221,20 +315,24 @@ target invoked by
Optional variables:
.Bl -tag -width ".Ev TARGET_ARCH"
.It Ev OSRELEASE
-Optional base name for generated media images (e.g. FreeBSD-9.0-RC2-amd64).
+Optional base name for generated media images
+.Pq e.g., FreeBSD-9.0-RC2-amd64 .
Defaults to the output of
.Ic `uname -s`-`uname -r`-`uname -p`
within the chroot.
.It Ev WORLDDIR
-Location of a directory containing the src tree. By default, the directory
+Location of a directory containing the src tree.
+By default, the directory
above the one containing the makefile
.Pq Pa src .
.It Ev PORTSDIR
-Location of a directory containing the ports tree. By default,
+Location of a directory containing the ports tree.
+By default,
.Pa /usr/ports .
If it is unset or cannot be found, ports will not be included in the release.
.It Ev DOCDIR
-Location of a directory containing the doc tree. By default,
+Location of a directory containing the doc tree.
+By default,
.Pa /usr/doc .
If it is unset or cannot be found, most documentation will not be included in
the release; see
@@ -291,7 +389,8 @@ Typically, one only needs to set
.It Pa /usr/src/Makefile
.It Pa /usr/src/Makefile.inc1
.It Pa /usr/src/release/Makefile
-.It Pa /usr/src/release/generate-release.sh
+.It Pa /usr/src/release/release.sh
+.It Pa /usr/src/release/release.conf.sample
.El
.Sh EXAMPLES
The following sequence of commands can be used to build a
@@ -316,12 +415,27 @@ 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
-sh generate-release.sh head /local3/release
+sh release.sh
+.Ed
+.Pp
+Optionally, a configuration file can be used customize the release build,
+such as the subversion revision to use, the branch of the subversion tree for
+.Li src/ ,
+.Li ports/ ,
+and
+.Li doc/ .
+.Bd -literal -offset indent
+cd /usr/src/release
+sh release.sh -c $HOME/release.conf
.Ed
.Pp
After running these commands, all prepared release files are available in the
-.Pa /local3/release/R
+.Pa /scratch
directory.
+The target directory can be changed by specifying the
+.Va CHROOTDIR
+variable in
+.Li release.conf .
.Sh SEE ALSO
.Xr cc 1 ,
.Xr install 1 ,
@@ -372,6 +486,16 @@ was overhauled and the wrapper script
.Pa src/release/generate-release.sh
introduced to support the introduction of a new installer.
.Pp
+For the
+.Fx 9.2
+release,
+.Pa src/release/release.sh
+was introduced to support per-build configuration files.
+.Pa src/release/release.sh
+is heavily based on the
+.Pa src/release/generate-release.sh
+script.
+.Pp
At near 1000 revisions spread over multiple branches, the
.Xr svn 1
log of
@@ -386,5 +510,22 @@ was originally written by
.An Jordan Hubbard ,
and
.An Poul-Henning Kamp .
-This manual page was written by
+.Pp
+This manual page was originally written by
.An Murray Stokely Aq murray@FreeBSD.org .
+.Pp
+It was updated by
+.An Nathan Whitehorn Aq nwhitehorn@FreeBSD.org
+to include the
+.Fa generate-release.sh
+script used for the
+.Fx 9.0
+release cycle.
+.Pp
+It was later updated by
+.An Glen Barber Aq gjb@FreeBSD.org
+to include the
+.Fa release.sh
+script used for the
+.Fx 9.2
+release cycle.
diff --git a/share/man/man8/rc.8 b/share/man/man8/rc.8
index a92c88b6bd50..cca05d470456 100644
--- a/share/man/man8/rc.8
+++ b/share/man/man8/rc.8
@@ -124,7 +124,9 @@ Load the configuration files.
Determine if booting in a jail,
and add
.Dq Li nojail
-to the list of KEYWORDS to skip in
+(no jails allowed) or
+.Dq Li nojailvnet
+(only allow vnet-enabled jails) to the list of KEYWORDS to skip in
.Xr rcorder 8 .
.It
Invoke
diff --git a/share/man/man9/DELAY.9 b/share/man/man9/DELAY.9
index 58b2a07e8b61..61cd235b5575 100644
--- a/share/man/man9/DELAY.9
+++ b/share/man/man9/DELAY.9
@@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 21, 2000
+.Dd April 20, 2013
.Dt DELAY 9
.Os
.Sh NAME
@@ -42,6 +42,8 @@
Delay for
.Fa delay
microseconds (1/1000000th of a second).
+.Sh SEE ALSO
+.Xr pause 9
.Sh AUTHORS
This manual page was written by
.An Alfred Perlstein .
diff --git a/share/man/man9/EVENTHANDLER.9 b/share/man/man9/EVENTHANDLER.9
index 4a1666087c9b..d6e75562c9c8 100644
--- a/share/man/man9/EVENTHANDLER.9
+++ b/share/man/man9/EVENTHANDLER.9
@@ -23,7 +23,7 @@
.\" SUCH DAMAGE.
.\" $FreeBSD$
.\"
-.Dd May 11, 2012
+.Dd August 1, 2013
.Dt EVENTHANDLER 9
.Os
.Sh NAME
@@ -199,6 +199,14 @@ Callbacks invoked when a new network interface appears.
Callbacks invoked when a network interface is taken down.
.It Vt bpf_track
Callbacks invoked when a BPF listener attaches to/detaches from network interface.
+.It Vt kld_load
+Callbacks invoked after a linker file has been loaded.
+.It Vt kld_unload
+Callbacks invoked after a linker file has been successfully unloaded.
+.It Vt kld_unload_try
+Callbacks invoked before a linker file is about to be unloaded.
+These callbacks may be used to return an error and prevent the unload from
+proceeding.
.It Vt power_profile_change
Callbacks invoked when the power profile of the system changes.
.It Vt process_exec
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile
index 46911917b954..e85c7ad6ddd5 100644
--- a/share/man/man9/Makefile
+++ b/share/man/man9/Makefile
@@ -236,6 +236,7 @@ MAN= accept_filter.9 \
rwlock.9 \
sbuf.9 \
scheduler.9 \
+ SDT.9 \
securelevel_gt.9 \
selrecord.9 \
sema.9 \
@@ -282,7 +283,6 @@ MAN= accept_filter.9 \
vfs_getopt.9 \
vfs_getvfs.9 \
VFS_MOUNT.9 \
- vfs_mount.9 \
vfs_mountedfrom.9 \
VFS_QUOTACTL.9 \
VFS_ROOT.9 \
@@ -324,6 +324,7 @@ MAN= accept_filter.9 \
vm_map_wire.9 \
vm_page_alloc.9 \
vm_page_bits.9 \
+ vm_page_busy.9 \
vm_page_cache.9 \
vm_page_deactivate.9 \
vm_page_dontneed.9 \
@@ -332,13 +333,11 @@ MAN= accept_filter.9 \
vm_page_grab.9 \
vm_page_hold.9 \
vm_page_insert.9 \
- vm_page_io.9 \
vm_page_lookup.9 \
vm_page_rename.9 \
- vm_page_sleep_if_busy.9 \
- vm_page_wakeup.9 \
vm_page_wire.9 \
vm_set_page_size.9 \
+ vmem.9 \
vn_fullpath.9 \
vn_isdisk.9 \
vnode.9 \
@@ -953,7 +952,9 @@ MLINKS+=microuptime.9 binuptime.9 \
microuptime.9 getbinuptime.9 \
microuptime.9 getmicrouptime.9 \
microuptime.9 getnanouptime.9 \
- microuptime.9 nanouptime.9
+ microuptime.9 getsbinuptime.9 \
+ microuptime.9 nanouptime.9 \
+ microuptime.9 sbinuptime.9
MLINKS+=mi_switch.9 cpu_switch.9 \
mi_switch.9 cpu_throw.9
MLINKS+=mtx_pool.9 mtx_pool_alloc.9 \
@@ -1078,12 +1079,15 @@ MLINKS+=rman.9 rman_activate_resource.9 \
rman.9 rman_set_bustag.9 \
rman.9 rman_set_rid.9 \
rman.9 rman_set_virtual.9
-MLINKS+=rmlock.9 rm_destroy.9 \
+MLINKS+=rmlock.9 rm_assert.9 \
+ rmlock.9 rm_destroy.9 \
rmlock.9 rm_init.9 \
+ rmlock.9 rm_init_flags.9 \
rmlock.9 rm_rlock.9 \
- rmlock.9 rm_try_rlock.9 \
rmlock.9 rm_runlock.9 \
+ rmlock.9 rm_sleep.9 \
rmlock.9 RM_SYSINIT.9 \
+ rmlock.9 rm_try_rlock.9 \
rmlock.9 rm_wlock.9 \
rmlock.9 rm_wowned.9 \
rmlock.9 rm_wunlock.9
@@ -1145,6 +1149,11 @@ MLINKS+=scheduler.9 curpriority_cmp.9 \
scheduler.9 sched_setup.9 \
scheduler.9 setrunnable.9 \
scheduler.9 updatepri.9
+MLINKS+=SDT.9 SDT_PROVIDER_DECLARE.9 \
+ SDT.9 SDT_PROVIDER_DEFINE.9 \
+ SDT.9 SDT_PROBE_DECLARE.9 \
+ SDT.9 SDT_PROBE_DEFINE.9 \
+ SDT.9 SDT_PROBE.9
MLINKS+=securelevel_gt.9 securelevel_ge.9
MLINKS+=selrecord.9 seldrain.9 \
selrecord.9 selwakeup.9
@@ -1434,6 +1443,13 @@ MLINKS+=vfs_getopt.9 vfs_copyopt.9 \
MLINKS+=vhold.9 vdrop.9 \
vhold.9 vdropl.9 \
vhold.9 vholdl.9
+MLINKS+=vmem.9 vmem_add.9 \
+ vmem.9 vmem_alloc.9 \
+ vmem.9 vmem_create.9 \
+ vmem.9 vmem_destroy.9 \
+ vmem.9 vmem_free.9 \
+ vmem.9 vmem_xalloc.9 \
+ vmem.9 vmem_xfree.9
MLINKS+=vm_map_lock.9 vm_map_lock_downgrade.9 \
vm_map_lock.9 vm_map_lock_read.9 \
vm_map_lock.9 vm_map_lock_upgrade.9 \
@@ -1454,6 +1470,21 @@ MLINKS+=vm_page_bits.9 vm_page_clear_dirty.9 \
vm_page_bits.9 vm_page_test_dirty.9 \
vm_page_bits.9 vm_page_undirty.9 \
vm_page_bits.9 vm_page_zero_invalid.9
+MLINKS+=vm_page_busy.9 vm_page_busied.9 \
+ vm_page_busy.9 vm_page_busy_downgrade.9 \
+ vm_page_busy.9 vm_page_busy_sleep.9 \
+ vm_page_busy.9 vm_page_sbusied.9 \
+ vm_page_busy.9 vm_page_sbusy.9 \
+ vm_page_busy.9 vm_page_sleep_if_busy.9 \
+ vm_page_busy.9 vm_page_sunbusy.9 \
+ vm_page_busy.9 vm_page_trysbusy.9 \
+ vm_page_busy.9 vm_page_tryxbusy.9 \
+ vm_page_busy.9 vm_page_xbusied.9 \
+ vm_page_busy.9 vm_page_xbusy.9 \
+ vm_page_busy.9 vm_page_xunbusy.9 \
+ vm_page_busy.9 vm_page_assert_sbusied.9 \
+ vm_page_busy.9 vm_page_assert_unbusied.9 \
+ vm_page_busy.9 vm_page_assert_xbusied.9
MLINKS+=vm_page_aflag.9 vm_page_aflag_clear.9 \
vm_page_aflag.9 vm_page_aflag_set.9 \
vm_page_aflag.9 vm_page_reference.9
@@ -1462,10 +1493,6 @@ MLINKS+=vm_page_free.9 vm_page_free_toq.9 \
vm_page_free.9 vm_page_try_to_free.9
MLINKS+=vm_page_hold.9 vm_page_unhold.9
MLINKS+=vm_page_insert.9 vm_page_remove.9
-MLINKS+=vm_page_io.9 vm_page_io_finish.9 \
- vm_page_io.9 vm_page_io_start.9
-MLINKS+=vm_page_wakeup.9 vm_page_busy.9 \
- vm_page_wakeup.9 vm_page_flash.9
MLINKS+=vm_page_wire.9 vm_page_unwire.9
MLINKS+=VOP_ACCESS.9 VOP_ACCESSX.9
MLINKS+=VOP_ATTRIB.9 VOP_GETATTR.9 \
diff --git a/share/man/man9/SDT.9 b/share/man/man9/SDT.9
new file mode 100644
index 000000000000..39fbdeb846a9
--- /dev/null
+++ b/share/man/man9/SDT.9
@@ -0,0 +1,309 @@
+.\" Copyright (c) 2013 Mark Johnston <markj@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 17, 2013
+.Dt SDT 9
+.Os
+.Sh NAME
+.Nm SDT
+.Nd a DTrace framework for adding statically-defined tracing probes
+.Sh SYNOPSIS
+.In sys/sdt.h
+.Fn SDT_PROVIDER_DECLARE prov
+.Fn SDT_PROVIDER_DEFINE prov
+.Fn SDT_PROBE_DECLARE prov mod func name
+.Fn SDT_PROBE_DEFINE prov mod func name sname
+.Fn SDT_PROBE_DEFINE0 prov mod func name sname
+.Fn SDT_PROBE_DEFINE1 prov mod func name sname arg0
+.Fn SDT_PROBE_DEFINE2 prov mod func name sname arg0 arg1
+.Fn SDT_PROBE_DEFINE3 prov mod func name sname arg0 arg1 arg2
+.Fn SDT_PROBE_DEFINE4 prov mod func name sname arg0 arg1 arg2 arg3
+.Fn SDT_PROBE_DEFINE5 prov mod func name sname arg0 arg1 arg2 arg3 arg4
+.Fn SDT_PROBE_DEFINE6 prov mod func name sname arg0 arg1 arg2 arg3 arg4 arg5
+.Fn SDT_PROBE_DEFINE7 prov mod func name sname arg0 arg1 arg2 arg3 arg4 arg5 \
+ arg6
+.Fn SDT_PROBE_DEFINE0_XLATE prov mod func name sname
+.Fn SDT_PROBE_DEFINE1_XLATE prov mod func name sname arg0 xarg0
+.Fn SDT_PROBE_DEFINE2_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1
+.Fn SDT_PROBE_DEFINE3_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
+ arg2 xarg2
+.Fn SDT_PROBE_DEFINE4_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
+ arg2 xarg2 arg3 xarg3
+.Fn SDT_PROBE_DEFINE5_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
+ arg2 xarg2 arg3 xarg3 arg4 xarg4
+.Fn SDT_PROBE_DEFINE6_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
+ arg2 xarg2 arg3 xarg3 arg4 xarg4 arg5 xarg5
+.Fn SDT_PROBE_DEFINE7_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
+ arg2 xarg2 arg3 xarg3 arg4 xarg4 arg5 xarg5 arg6 xarg6
+.Fn SDT_PROBE0 prov mod func name
+.Fn SDT_PROBE1 prov mod func name arg0
+.Fn SDT_PROBE2 prov mod func name arg0 arg1
+.Fn SDT_PROBE3 prov mod func name arg0 arg1 arg2
+.Fn SDT_PROBE4 prov mod func name arg0 arg1 arg2 arg3
+.Fn SDT_PROBE5 prov mod func name arg0 arg1 arg2 arg3 arg4
+.Fn SDT_PROBE6 prov mod func name arg0 arg1 arg2 arg3 arg4 arg5
+.Fn SDT_PROBE7 prov mod func name arg0 arg1 arg2 arg3 arg4 arg5 arg6
+.Sh DESCRIPTION
+The
+.Nm
+macros allow programmers to define static trace points in kernel code.
+These trace points are used by the
+.Nm
+framework to create DTrace probes, allowing the code to be instrumented
+using
+.Xr dtrace 1 .
+By default,
+.Nm
+trace points are disabled and have no effect on the surrounding code.
+When a DTrace probe corresponding to a given trace point is enabled, threads
+that execute the trace point will call a handler and cause the probe to fire.
+Moreover, trace points can take arguments, making it possible to pass data
+to the DTrace framework when an enabled probe fires.
+.Pp
+Multiple trace points may correspond to a single DTrace probe, allowing
+programmers to create DTrace probes that correspond to logical system events
+rather than tying probes to specific code execution paths.
+For instance, a DTrace probe corresponding to the arrival of an IP packet into
+the network stack may be defined using two
+.Nm
+trace points: one for IPv4 packets and one for IPv6 packets.
+.Pp
+In addition to defining DTrace probes, the
+.Nm
+macros allow programmers to define new DTrace providers, making it possible to
+namespace logically-related probes.
+An example is FreeBSD's sctp provider, which contains
+.Nm
+probes for FreeBSD's
+.Xr sctp 4
+implementation.
+.Pp
+The
+.Fn SDT_PROVIDER_DECLARE
+and
+.Fn SDT_PROVIDER_DEFINE
+macros are used respectively to declare and define a DTrace provider named
+.Ar prov
+with the
+.Nm
+framework.
+A provider need only be defined once; however, the provider must be declared
+before defining any
+.Nm
+probes belonging to that provider.
+.Pp
+Similarly, the
+.Fn SDT_PROBE_DECLARE
+and
+.Fn SDT_PROBE_DEFINE*
+macros are used to declare and define DTrace probes using the
+.Nm
+framework.
+Once a probe has been defined, trace points for that probe may be added to
+kernel code.
+DTrace probe identifiers consist of a provider, module, function and name, all
+of which may be specified in the
+.Nm
+probe definition.
+Note that probes should not specify a module name: the module name of a probe is
+used to determine whether or not it should be destroyed when a kernel module is
+unloaded.
+See the
+.Sx BUGS
+section.
+Note in particular that probes must not be defined across multiple kernel
+modules.
+The
+.Fn SDT_PROBE_DEFINE*
+macros also take an extra
+.Ar sname
+parameter.
+This is used to allow the creation of probes with names containing the
+.Ql -
+character.
+Specifically, the
+.Ar name
+argument should contain the probe name with all dashes converted to underscores,
+and the
+.Ar sname
+argument should be the probe name as it will be referenced by D scripts.
+.Pp
+The
+.Fn SDT_PROBE_DEFINE*
+macros also allow programmers to declare the types of the arguments that are
+passed to probes.
+This is optional; if the argument types are omitted (through use of the
+.Fn SDT_PROBE_DEFINE
+macro), users wishing to make use of the arguments will have to manually cast
+them to the correct types in their D scripts.
+It is strongly recommended that probe definitions include a declaration of their
+argument types.
+.Pp
+The
+.Fn SDT_PROBE_DEFINE*_XLATE
+macros are used for probes whose argument types are to be dynamically translated
+to the types specified by the corresponding
+.Ar xarg
+arguments.
+This is mainly useful when porting probe definitions from other operating
+systems.
+As seen by
+.Xr dtrace 1 ,
+the arguments of a probe defined using these macros will have types which match
+the
+.Ar xarg
+types in the probe definition.
+However, the arguments passed in at the trace point will have types matching the
+native argument types in the probe definition, and thus the native type is
+dynamically translated to the translated type.
+So long as an appropriate translator is defined in
+.Pa /usr/lib/dtrace ,
+scripts making use of the probe need not concern themselves with the underlying
+type of a given
+.Nm
+probe argument.
+.Pp
+The
+.Fn SDT_PROBE*
+macros are used to create
+.Nm
+trace points.
+They are meant to be added to executable code and can be used to instrument the
+code in which they are called.
+.Sh EXAMPLES
+The following probe definition will create a DTrace probe called
+.Ql icmp::unreach:pkt-receive ,
+which would hypothetically be triggered when the kernel receives an ICMP packet
+of type Destination Unreachable:
+.Bd -literal -offset indent
+SDT_PROVIDER_DECLARE(icmp);
+
+SDT_PROBE_DEFINE1(icmp, , unreach, pkt_receive, pkt-receive,
+ "struct icmp *");
+
+.Ed
+This particular probe would take a single argument: a pointer to the struct
+containing the ICMP header for the packet.
+Note that the module name of this probe is not specified.
+.Pp
+Consider a DTrace probe which fires when the network stack receives an IP
+packet.
+Such a probe would be defined by multiple tracepoints:
+.Bd -literal -offset indent
+SDT_PROBE_DEFINE3(ip, , , receive, receive, "struct ifnet *",
+ "struct ip *", "struct ip6_hdr *");
+
+int
+ip_input(struct mbuf *m)
+{
+ struct ip *ip;
+ ...
+ ip = mtod(m, struct ip *);
+ SDT_PROBE3(ip, , , receive, m->m_pkthdr.rcvif, ip, NULL);
+ ...
+}
+
+int
+ip6_input(struct mbuf *m)
+{
+ struct ip6_hdr *ip6;
+ ...
+ ip6 = mtod(m, struct ip6_hdr *);
+ SDT_PROBE3(ip, , , receive, m->m_pkthdr.rcvif, NULL, ip6);
+ ...
+}
+
+.Ed
+In particular, the probe should fire when the kernel receives either an IPv4
+packet or an IPv6 packet.
+.Pp
+Consider the ICMP probe discussed above.
+We note that its second argument is of type
+.Ar struct icmp ,
+which is a type defined in the FreeBSD kernel to represent the ICMP header of
+an ICMP packet, defined in RFC 792.
+Linux has a corresponding type,
+.Ar struct icmphdr ,
+for the same purpose, but its field names differ from FreeBSD's
+.Ar struct icmp .
+Similarly, illumos defines the
+.Ar icmph_t
+type, again with different field names.
+Even with the
+.Ql icmp:::pkt-receive
+probes defined in all three operating systems,
+one would still have to write OS-specific scripts to extract a given field out
+of the ICMP header argument.
+Dynamically-translated types solve this problem: one can define an
+OS-independent
+.Xr c 7
+struct to represent an ICMP header, say
+.Ar struct icmp_hdr_dt ,
+and define translators from each of the three OS-specific types to
+.Ar struct icmp_hdr_dt ,
+all in the
+.Xr dtrace 1
+library path.
+Then the FreeBSD probe above can be defined with:
+.Bd -literal -offset indent
+SDT_PROBE_DEFINE1_XLATE(ip, , , receive, receive, "struct icmp *",
+ "struct icmp_hdr_dt *");
+.Ed
+.Sh SEE ALSO
+.Xr dtrace 1
+.Sh AUTHORS
+.An -nosplit
+DTrace and the
+.Nm
+framework were originally ported to FreeBSD from Solaris by
+.An John Birrell Aq jb@FreeBSD.org .
+This manual page was written by
+.An Mark Johnston Aq markj@FreeBSD.org .
+.Sh BUGS
+The
+.Nm
+macros allow the module name of a probe to be specified as part of a probe
+definition.
+However, the DTrace framework uses the module name of probes to determine
+which probes should be destroyed when a kernel module is unloaded, so the module
+name of a probe should match the name of the module in which its defined.
+.Nm
+will set the module name properly if it is left unspecified in the probe
+definition; see the
+.Sx EXAMPLES
+section.
+.Pp
+One of the goals of the original
+.Nm
+implementation (and by extension, of FreeBSD's port) is that inactive
+.Nm
+probes should have no performance impact.
+This is unfortunately not the case;
+.Nm
+trace points will add a small but non-zero amount of latency to the code
+in which they are defined.
+A more sophisticated implementation of the probes will help alleviate this
+problem.
diff --git a/share/man/man9/VOP_GETPAGES.9 b/share/man/man9/VOP_GETPAGES.9
index b165162f3946..7869d45474cd 100644
--- a/share/man/man9/VOP_GETPAGES.9
+++ b/share/man/man9/VOP_GETPAGES.9
@@ -102,7 +102,7 @@ When the write completes, the completion callback should
call
.Xr vm_object_pip_wakeup 9
and
-.Xr vm_page_io_finish 9
+.Xr vm_page_sunbusy 9
to clear the busy flag and awaken any other threads waiting for this page,
in addition to calling
.Xr vm_page_undirty 9 .
@@ -139,7 +139,7 @@ For example,
.Fn VOP_GETPAGES
may either activate a page (if its wanted bit is set)
or deactivate it (otherwise), and finally call
-.Xr vm_page_wakeup 9
+.Xr vm_page_xunbusy 9
to arouse any threads currently waiting for the page to be faulted in.
.Sh RETURN VALUES
If it successfully reads
@@ -156,9 +156,9 @@ is
.Sh SEE ALSO
.Xr vm_object_pip_wakeup 9 ,
.Xr vm_page_free 9 ,
-.Xr vm_page_io_finish 9 ,
+.Xr vm_pagge_sunbusy 9 ,
.Xr vm_page_undirty 9 ,
-.Xr vm_page_wakeup 9 ,
+.Xr vm_page_xunbusy 9 ,
.Xr vnode 9
.Sh AUTHORS
This manual page was written by
diff --git a/share/man/man9/atomic.9 b/share/man/man9/atomic.9
index 0baac4557002..44d800e8bec3 100644
--- a/share/man/man9/atomic.9
+++ b/share/man/man9/atomic.9
@@ -23,7 +23,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 27, 2005
+.Dd August 20, 2013
.Dt ATOMIC 9
.Os
.Sh NAME
@@ -62,6 +62,10 @@
.Fn atomic_subtract_[acq_|rel_]<type> "volatile <type> *p" "<type> v"
.Ft void
.Fn atomic_store_rel_<type> "volatile <type> *p" "<type> v"
+.Ft <type>
+.Fn atomic_swap_<type> "volatile <type> *p" "<type> v"
+.Ft int
+.Fn atomic_testandset_<type> "volatile <type> *p" "u_int v"
.Sh DESCRIPTION
Each of the atomic operations is guaranteed to be atomic in the presence of
interrupts.
@@ -184,9 +188,9 @@ This section describes the semantics of each operation using a C like notation.
.Bd -literal -compact
if (*dst == old) {
*dst = new;
- return 1;
+ return (1);
} else
- return 0;
+ return (0);
.Ed
.El
.Pp
@@ -203,7 +207,7 @@ and
.Bd -literal -compact
tmp = *p;
*p += v;
-return tmp;
+return (tmp);
.Ed
.El
.Pp
@@ -216,9 +220,9 @@ and
.Dq Li 32
and do not have any variants with memory barriers at this time.
.Bl -hang
-.It Fn atomic_load addr
+.It Fn atomic_load p
.Bd -literal -compact
-return (*addr)
+return (*p);
.Ed
.El
.Pp
@@ -226,11 +230,11 @@ The
.Fn atomic_load
functions are only provided with acquire memory barriers.
.Bl -hang
-.It Fn atomic_readandclear addr
+.It Fn atomic_readandclear p
.Bd -literal -compact
-temp = *addr;
-*addr = 0;
-return (temp);
+tmp = *p;
+*p = 0;
+return (tmp);
.Ed
.El
.Pp
@@ -243,8 +247,7 @@ functions are not implemented for the types
.Dq Li 8 ,
and
.Dq Li 16
-and do
-not have any variants with memory barriers at this time.
+and do not have any variants with memory barriers at this time.
.Bl -hang
.It Fn atomic_set p v
.Bd -literal -compact
@@ -263,6 +266,43 @@ not have any variants with memory barriers at this time.
The
.Fn atomic_store
functions are only provided with release memory barriers.
+.Bl -hang
+.It Fn atomic_swap p v
+.Bd -literal -compact
+tmp = *p;
+*p = v;
+return (tmp);
+.Ed
+.El
+.Pp
+The
+.Fn atomic_swap
+functions are not implemented for the types
+.Dq Li char ,
+.Dq Li short ,
+.Dq Li ptr ,
+.Dq Li 8 ,
+and
+.Dq Li 16
+and do not have any variants with memory barriers at this time.
+.Bl -hang
+.It Fn atomic_testandset p v
+.Bd -literal -compact
+bit = 1 << (v % (sizeof(*p) * NBBY));
+tmp = (*p & bit) != 0;
+*p |= bit;
+return (tmp);
+.Ed
+.El
+.Pp
+The
+.Fn atomic_testandset
+functions are only implemented for the types
+.Dq Li int ,
+.Dq Li long
+and
+.Dq Li 32
+and do not have any variants with memory barriers at this time.
.Pp
The type
.Dq Li 64
@@ -275,15 +315,17 @@ architectures.
.Sh RETURN VALUES
The
.Fn atomic_cmpset
-function
-returns the result of the compare operation.
+function returns the result of the compare operation.
The
.Fn atomic_fetchadd ,
.Fn atomic_load ,
+.Fn atomic_readandclear ,
and
-.Fn atomic_readandclear
-functions
-return the value at the specified address.
+.Fn atomic_swap
+functions return the value at the specified address.
+The
+.Fn atomic_testandset
+function returns the result of the test operation.
.Sh EXAMPLES
This example uses the
.Fn atomic_cmpset_acq_ptr
@@ -354,3 +396,9 @@ The
.Fn atomic_fetchadd
operations were added in
.Fx 6.0 .
+The
+.Fn atomic_swap
+and
+.Fn atomic_testandset
+operations were added in
+.Fx 10.0 .
diff --git a/share/man/man9/bus_dma.9 b/share/man/man9/bus_dma.9
index ab85f3bfaa08..023b5c385c4b 100644
--- a/share/man/man9/bus_dma.9
+++ b/share/man/man9/bus_dma.9
@@ -60,7 +60,7 @@
.\" $FreeBSD$
.\" $NetBSD: bus_dma.9,v 1.25 2002/10/14 13:43:16 wiz Exp $
.\"
-.Dd May 12, 2009
+.Dd July 17, 2013
.Dt BUS_DMA 9
.Os
.Sh NAME
@@ -70,6 +70,8 @@
.Nm bus_dmamap_create ,
.Nm bus_dmamap_destroy ,
.Nm bus_dmamap_load ,
+.Nm bus_dmamap_load_bio ,
+.Nm bus_dmamap_load_ccb ,
.Nm bus_dmamap_load_mbuf ,
.Nm bus_dmamap_load_mbuf_sg ,
.Nm bus_dmamap_load_uio ,
@@ -97,6 +99,14 @@
"bus_size_t buflen" "bus_dmamap_callback_t *callback" "void *callback_arg" \
"int flags"
.Ft int
+.Fn bus_dmamap_load_bio "bus_dma_tag_t dmat" "bus_dmamap_t map" \
+"struct bio *bio" "bus_dmamap_callback_t *callback" "void *callback_arg" \
+"int flags"
+.Ft int
+.Fn bus_dmamap_load_ccb "bus_dma_tag_t dmat" "bus_dmamap_t map" \
+"union ccb *ccb" "bus_dmamap_callback_t *callback" "void *callback_arg" \
+"int flags"
+.Ft int
.Fn bus_dmamap_load_mbuf "bus_dma_tag_t dmat" "bus_dmamap_t map" \
"struct mbuf *mbuf" "bus_dmamap_callback2_t *callback" "void *callback_arg" \
"int flags"
@@ -199,7 +209,10 @@ Client specified callback for receiving mapping information resulting from
the load of a
.Vt bus_dmamap_t
via
-.Fn bus_dmamap_load .
+.Fn bus_dmamap_load ,
+.Fn bus_dmamap_load_bio
+or
+.Fn bus_dmamap_load_ccb .
Callbacks are of the format:
.Bl -tag -width indent
.It Ft void
@@ -624,6 +637,49 @@ This array is only valid during the scope of the callback function.
A mapping could not be achieved within the segment constraints provided
in the tag even though the requested allocation size was less than maxsize.
.El
+.It Fn bus_dmamap_load_bio "dmat" "map" "bio" "callback" "callback_arg" "flags"
+This is a variation of
+.Fn bus_dmamap_load
+which maps buffers pointed to by
+.Fa bio
+for DMA transfers.
+.Fa bio
+may point to either a mapped or unmapped buffer.
+.It Fn bus_dmamap_load_ccb "dmat" "map" "ccb" "callback" "callback_arg" "flags"
+This is a variation of
+.Fn bus_dmamap_load
+which maps data pointed to by
+.Fa ccb
+for DMA transfers.
+The data for
+.Fa ccb
+may be any of the following types:
+.Bl -tag -width ".Er CAM_DATA_SG_PADDR"
+.It CAM_DATA_VADDR
+The data is a single KVA buffer.
+.It CAM_DATA_PADDR
+The data is a single bus address range.
+.It CAM_DATA_SG
+The data is a scatter/gather list of KVA buffers.
+.It CAM_DATA_SG_PADDR
+The data is a scatter/gather list of bus address ranges.
+.It CAM_DATA_BIO
+The data is contained in a
+.Vt struct bio
+attached to the CCB.
+.El
+.Pp
+.Fn bus_dmamap_load_ccb
+supports the following CCB XPT function codes:
+.Pp
+.Bl -item -offset indent -compact
+.It
+XPT_ATA_IO
+.It
+XPT_CONT_TARGET_IO
+.It
+XPT_SCSI_IO
+.El
.It Fn bus_dmamap_load_mbuf "dmat" "map" "mbuf" "callback2" "callback_arg" \
"flags"
This is a variation of
@@ -898,12 +954,16 @@ These functions include:
.It
.Fn bus_dmamap_load
.It
-.Fn bus_dmamap_load_uio
+.Fn bus_dmamap_load_bio
+.It
+.Fn bus_dmamap_load_ccb
.It
.Fn bus_dmamap_load_mbuf
.It
.Fn bus_dmamap_load_mbuf_sg
.It
+.Fn bus_dmamap_load_uio
+.It
.Fn bus_dmamap_unload
.It
.Fn bus_dmamap_sync
diff --git a/share/man/man9/counter.9 b/share/man/man9/counter.9
index 8f77ce62e118..c29c475e733c 100644
--- a/share/man/man9/counter.9
+++ b/share/man/man9/counter.9
@@ -33,6 +33,7 @@
.Nd "SMP-friendly kernel counter implementation"
.Sh SYNOPSIS
.In sys/types.h
+.In sys/systm.h
.In sys/counter.h
.Ft counter_u64_t
.Fn counter_u64_alloc "int wait"
diff --git a/share/man/man9/hhook.9 b/share/man/man9/hhook.9
index df74543f5cce..ca6b4940fa3e 100644
--- a/share/man/man9/hhook.9
+++ b/share/man/man9/hhook.9
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 15, 2011
+.Dd June 21, 2013
.Dt HHOOK 9
.Os
.Sh NAME
@@ -380,9 +380,3 @@ This manual page was written by
.An David Hayes Aq david.hayes@ieee.org
and
.An Lawrence Stewart Aq lstewart@FreeBSD.org .
-.Sh BUGS
-The framework does not currently support registering hook points in subsystems
-which have not been virtualised with VIMAGE.
-Fairly minimal internal changes to the
-.Nm
-implementation are required to address this.
diff --git a/share/man/man9/ifnet.9 b/share/man/man9/ifnet.9
index 1059c889c620..8cb436f75ea9 100644
--- a/share/man/man9/ifnet.9
+++ b/share/man/man9/ifnet.9
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 23, 2012
+.Dd April 26, 2013
.Dt IFNET 9
.Os
.Sh NAME
@@ -103,7 +103,7 @@
.Ft int
.Fo \*(lp*if_output\*(rp
.Fa "struct ifnet *ifp" "struct mbuf *m"
-.Fa "struct sockaddr *dst" "struct route *ro"
+.Fa "const struct sockaddr *dst" "struct route *ro"
.Fc
.Ft void
.Fn \*(lp*if_start\*(rp "struct ifnet *ifp"
diff --git a/share/man/man9/kernel_mount.9 b/share/man/man9/kernel_mount.9
index 7cf4fae1fe77..4164e5b9c8db 100644
--- a/share/man/man9/kernel_mount.9
+++ b/share/man/man9/kernel_mount.9
@@ -195,7 +195,6 @@ must come in pairs, e.g.,
.Sh SEE ALSO
.Xr VFS 9 ,
.Xr VFS_MOUNT 9 ,
-.Xr vfs_mount 9
.Sh HISTORY
The
.Fn kernel_mount
diff --git a/share/man/man9/locking.9 b/share/man/man9/locking.9
index b16bcc3c6562..f8ac5f2d27b5 100644
--- a/share/man/man9/locking.9
+++ b/share/man/man9/locking.9
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd May 25, 2012
+.Dd June 30, 2013
.Dt LOCKING 9
.Os
.Sh NAME
@@ -33,53 +33,51 @@
.Sh DESCRIPTION
The
.Em FreeBSD
-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.
+kernel is written to run across multiple CPUs and as such provides
+several different synchronization primitives to allow developers
+to safely access and manipulate many data types.
.Ss Mutexes
-Mutexes (also erroneously called "sleep mutexes") are the most commonly used
+Mutexes (also called "blocking mutexes") are the most commonly used
synchronization primitive in the kernel.
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 wait.
-Mutexes are by default adaptive, meaning that
+Mutexes are adaptive by default, 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.
+then a thread attempting to acquire the mutex will spin rather than yielding
+the processor.
Mutexes fully support priority propagation.
.Pp
See
.Xr mutex 9
for details.
-.Ss Spin mutexes
-Spin mutexes are variation of basic mutexes; the main difference between
-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
+.Ss Spin Mutexes
+Spin mutexes are a variation of basic mutexes; the main difference between
+the two is that spin mutexes never block.
+Instead, they spin while waiting for the lock to be released.
+To avoid deadlock, a thread that holds a spin mutex must never yield its CPU.
+Unlike ordinary mutexes, spin mutexes disable interrupts when acquired.
+Since disabling interrupts can be expensive, they are generally slower to
+acquire and release.
+Spin mutexes should be used only when absolutely necessary,
+e.g. to protect data shared
with interrupt filter code (see
.Xr bus_setup_intr 9
-for details).
-.Ss Pool mutexes
-With most synchronization primitives, such as mutexes, programmer must
-provide a piece of allocated memory to hold the primitive.
+for details),
+or for scheduler internals.
+.Ss Mutex Pools
+With most synchronization primitives, such as mutexes, the programmer must
+provide memory to hold the primitive.
For example, a mutex may be embedded inside the structure it protects.
-Pool mutex is a variant of mutex without this requirement - to lock or unlock
-a pool mutex, one uses address of the structure being protected with it,
-not the mutex itself.
-Pool mutexes are seldom used.
+Mutex pools provide a preallocated set of mutexes to avoid this
+requirement.
+Note that mutexes from a pool may only be used as leaf locks.
.Pp
See
.Xr mtx_pool 9
for details.
-.Ss Reader/writer locks
-Reader/writer locks allow shared access to protected data by multiple threads,
+.Ss Reader/Writer Locks
+Reader/writer 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
@@ -91,26 +89,16 @@ since it may modify protected data.
Reader/writer locks can be treated as mutexes (see above and
.Xr mutex 9 )
with shared/exclusive semantics.
-More specifically, regular mutexes can be
-considered to be equivalent to a write-lock on an
-.Em rw_lock.
-The
-.Em rw_lock
-locks have priority propagation like mutexes, but priority
-can be propagated only to an exclusive holder.
+Reader/writer locks support priority propagation like mutexes,
+but priority is propagated only to an exclusive holder.
This limitation comes from the fact that shared owners
are anonymous.
-Another important property is that shared holders of
-.Em rw_lock
-can recurse, but exclusive locks are not allowed to recurse.
-This ability should not be used lightly and
-.Em may go away.
.Pp
See
.Xr rwlock 9
for details.
-.Ss Read-mostly locks
-Mostly reader locks are similar to
+.Ss Read-Mostly Locks
+Read-mostly locks are similar to
.Em reader/writer
locks but optimized for very infrequent write locking.
.Em Read-mostly
@@ -122,21 +110,41 @@ data structure.
See
.Xr rmlock 9
for details.
+.Ss Sleepable Read-Mostly Locks
+Sleepable read-mostly locks are a variation on read-mostly locks.
+Threads holding an exclusive lock may sleep,
+but threads holding a shared lock may not.
+Priority is propagated to shared owners but not to exclusive owners.
.Ss Shared/exclusive locks
Shared/exclusive locks are similar to reader/writer locks; the main difference
-between them is that shared/exclusive locks may be held during unbounded sleep
-(and may thus perform an unbounded sleep).
-They are inherently less efficient than mutexes, reader/writer locks
-and read-mostly locks.
-They do not support priority propagation.
-They should be considered to be closely related to
-.Xr sleep 9 .
-They could in some cases be
-considered a conditional sleep.
+between them is that shared/exclusive locks may be held during unbounded sleep.
+Acquiring a contested shared/exclusive lock can perform an unbounded sleep.
+These locks do not support priority propagation.
.Pp
See
.Xr sx 9
for details.
+.Ss Lockmanager locks
+Lockmanager locks are sleepable shared/exclusive locks used mostly in
+.Xr VFS 9
+.Po
+as a
+.Xr vnode 9
+lock
+.Pc
+and in the buffer cache
+.Po
+.Xr BUF_LOCK 9
+.Pc .
+They have features other lock types do not have such as sleep
+timeouts, blocking upgrades,
+writer starvation avoidance, draining, and an interlock mutex,
+but this makes them complicated both to use and to implement;
+for this reason, they should be avoided.
+.Pp
+See
+.Xr lock 9
+for details.
.Ss Counting semaphores
Counting semaphores provide a mechanism for synchronizing access
to a pool of resources.
@@ -149,43 +157,21 @@ See
.Xr sema 9
for details.
.Ss Condition variables
-Condition variables are used in conjunction with mutexes to wait for
-conditions to occur.
-A thread must hold the mutex before calling the
-.Fn cv_wait* ,
+Condition variables are used in conjunction with locks to wait for
+a condition to become true.
+A thread must hold the associated lock before calling one of the
+.Fn cv_wait ,
functions.
-When a thread waits on a condition, the mutex
-is atomically released before the thread yields the processor,
-then reacquired before the function call returns.
+When a thread waits on a condition, the lock
+is atomically released before the thread yields the processor
+and reacquired before the function call returns.
+Condition variables may be used with blocking mutexes,
+reader/writer locks, read-mostly locks, and shared/exclusive locks.
.Pp
See
.Xr condvar 9
for details.
-.Ss Giant
-Giant is an instance of a mutex, with some special characteristics:
-.Bl -enum
-.It
-It is recursive.
-.It
-Drivers and filesystems can request that Giant be locked around them
-by not marking themselves MPSAFE.
-Note that infrastructure to do this is slowly going away as non-MPSAFE
-drivers either became properly locked or disappear.
-.It
-Giant must be locked first before other locks.
-.It
-It is OK to hold Giant while performing unbounded sleep; in such case,
-Giant will be dropped before sleeping and picked up after wakeup.
-.It
-There are places in the kernel that drop Giant and pick it back up
-again.
-Sleep locks will do this before sleeping.
-Parts of the network or VM code may do this as well, depending on the
-setting of a sysctl.
-This means that you cannot count on Giant keeping other code from
-running if your code sleeps, even if you want it to.
-.El
-.Ss Sleep/wakeup
+.Ss Sleep/Wakeup
The functions
.Fn tsleep ,
.Fn msleep ,
@@ -194,7 +180,12 @@ The functions
.Fn wakeup ,
and
.Fn wakeup_one
-handle event-based thread blocking.
+also handle event-based thread blocking.
+Unlike condition variables,
+arbitrary addresses may be used as wait channels and a dedicated
+structure does not need to be allocated.
+However, care must be taken to ensure that wait channel addresses are
+unique to an event.
If a thread must wait for an external event, it is put to sleep by
.Fn tsleep ,
.Fn msleep ,
@@ -214,9 +205,10 @@ the thread is being put to sleep.
All threads sleeping on a single
.Fa chan
are woken up later by
-.Fn wakeup ,
-often called from inside an interrupt routine, to indicate that the
-resource the thread was blocking on is available now.
+.Fn wakeup
+.Pq often called from inside an interrupt routine
+to indicate that the
+event the thread was blocking on has occurred.
.Pp
Several of the sleep functions including
.Fn msleep ,
@@ -232,122 +224,170 @@ includes the
flag, then the lock will not be reacquired before returning.
The lock is used to ensure that a condition can be checked atomically,
and that the current thread can be suspended without missing a
-change to the condition, or an associated wakeup.
+change to the condition or an associated wakeup.
In addition, all of the sleep routines will fully drop the
.Va Giant
mutex
-(even if recursed)
+.Pq even if recursed
while the thread is suspended and will reacquire the
.Va Giant
-mutex before the function returns.
+mutex
+.Pq restoring any recursion
+before the function returns.
.Pp
-See
-.Xr sleep 9
-for details.
-.Ss Lockmanager locks
-Shared/exclusive locks, used mostly in
-.Xr VFS 9 ,
-in particular as a
-.Xr vnode 9
-lock.
-They have features other lock types do not have, such as sleep timeout,
-writer starvation avoidance, draining, and interlock mutex, but this makes them
-complicated to implement; for this reason, they are deprecated.
+The
+.Fn pause
+function is a special sleep function that waits for a specified
+amount of time to pass before the thread resumes execution.
+This sleep cannot be terminated early by either an explicit
+.Fn wakeup
+or a signal.
.Pp
See
-.Xr lock 9
+.Xr sleep 9
for details.
+.Ss Giant
+Giant is a special mutex used to protect data structures that do not
+yet have their own locks.
+Since it provides semantics akin to the old
+.Xr spl 9
+interface,
+Giant has special characteristics:
+.Bl -enum
+.It
+It is recursive.
+.It
+Drivers can request that Giant be locked around them
+by not marking themselves MPSAFE.
+Note that infrastructure to do this is slowly going away as non-MPSAFE
+drivers either became properly locked or disappear.
+.It
+Giant must be locked before other non-sleepable locks.
+.It
+Giant is dropped during unbounded sleeps and reacquired after wakeup.
+.It
+There are places in the kernel that drop Giant and pick it back up
+again.
+Sleep locks will do this before sleeping.
+Parts of the network or VM code may do this as well.
+This means that you cannot count on Giant keeping other code from
+running if your code sleeps, even if you want it to.
+.El
.Sh INTERACTIONS
-The primitives interact and have a number of rules regarding how
+The primitives can interact and have a number of rules regarding how
they can and can not be combined.
-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.
+Many of these rules are checked by
+.Xr witness 4 .
+.Ss Bounded vs. Unbounded Sleep
+In a bounded sleep
+.Po also referred to as
+.Dq blocking
+.Pc
+the only resource needed to resume execution of a thread
+is CPU time for the owner of a lock that the thread is waiting to acquire.
+In an unbounded sleep
+.Po
+often referred to as simply
+.Dq sleeping
+.Pc
+a thread waits for an external event or for a condition
+to become true.
+In particular,
+a dependency chain of threads in bounded sleeps should always make forward
+progress,
+since there is always CPU time available.
+This requires that no thread in a bounded sleep is waiting for a lock held
+by a thread in an unbounded sleep.
+To avoid priority inversions,
+a thread in a bounded sleep lends its priority to the owner of the lock
+that it is waiting for.
.Pp
-The following primitives may perform an unbounded sleep:
-shared/exclusive locks, counting semaphores, condition variables, sleep/wakeup and lockmanager locks.
+The following primitives perform bounded sleeps:
+mutexes, reader/writer locks and read-mostly locks.
.Pp
+The following primitives perform unbounded sleeps:
+sleepable read-mostly locks, shared/exclusive locks, lockmanager locks,
+counting semaphores, condition variables, and sleep/wakeup.
+.Ss General Principles
+.Bl -bullet
+.It
It is an error to do any operation that could result in yielding the processor
while holding a spin mutex.
+.It
+It is an error to do any operation that could result in unbounded sleep
+while holding any primitive from the 'bounded sleep' group.
+For example, it is an error to try to acquire a shared/exclusive lock while
+holding a mutex, or to try to allocate memory with M_WAITOK while holding a
+reader/writer lock.
.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.
-For example, it is an error to try to acquire shared/exclusive lock while
-holding mutex, or to try to allocate memory with M_WAITOK while holding
-read-write lock.
-.Pp
-As a special case, it is possible to call
+Note that the lock passed to one of the
.Fn sleep
or
-.Fn mtx_sleep
-while holding a single mutex.
-It will atomically drop that mutex and reacquire it as part of waking up.
-This is often a bad idea because it generally relies on the programmer having
-good knowledge of all of the call graph above the place where
-.Fn mtx_sleep
-is being called and assumptions the calling code has made.
-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
+.Fn cv_wait
+functions is dropped before the thread enters the unbounded sleep and does
+not violate this rule.
+.It
It is an error to do any operation that could result in yielding of
the processor when running inside an interrupt filter.
-.Pp
+.It
It is an error to do any operation that could result in unbounded sleep when
running inside an interrupt thread.
+.El
.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 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 \&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
+one of the locking primitives discussed. Note that
+.Dq sleep
+includes
+.Fn sema_wait ,
+.Fn sema_timedwait ,
+any of the
+.Fn cv_wait
+functions,
+and any of the
+.Fn sleep
+functions.
+.Bl -column ".Ic xxxxxxxxxxxxxxxx" ".Xr XXXXXXXXX" ".Xr XXXXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXXXX" ".Xr XXXXXX" -offset 3n
+.It Em " You want:" Ta spin mtx Ta mutex/rw Ta rmlock Ta sleep rm Ta sx/lk Ta sleep
+.It Em "You have: " Ta -------- Ta -------- Ta ------ Ta -------- Ta ------ Ta ------
+.It spin mtx Ta \&ok Ta \&no Ta \&no Ta \&no Ta \&no Ta \&no-1
+.It mutex/rw Ta \&ok Ta \&ok Ta \&ok Ta \&no Ta \&no Ta \&no-1
+.It rmlock Ta \&ok Ta \&ok Ta \&ok Ta \&no Ta \&no Ta \&no-1
+.It sleep rm Ta \&ok Ta \&ok Ta \&ok Ta \&ok-2 Ta \&ok-2 Ta \&ok-2/3
+.It sx Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok-3
+.It lockmgr Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok
.El
.Pp
.Em *1
-Recursion is defined per lock.
-Lock order is important.
+There are calls that atomically release this primitive when going to sleep
+and reacquire it on wakeup
+.Po
+.Fn mtx_sleep ,
+.Fn rw_sleep ,
+.Fn msleep_spin ,
+etc.
+.Pc .
.Pp
.Em *2
-Readers can recurse though writers can not.
-Lock order is important.
+These cases are only allowed while holding a write lock on a sleepable
+read-mostly lock.
.Pp
.Em *3
-There are calls that atomically release this primitive when going to sleep
-and reacquire it on wakeup (e.g.
-.Fn mtx_sleep ,
-.Fn rw_sleep
-and
-.Fn msleep_spin ) .
-.Pp
-.Em *4
-Though one can sleep holding an sx lock, one can also use
-.Fn sx_sleep
-which will atomically release this primitive when going to sleep and
+Though one can sleep while holding this lock,
+one can also use a
+.Fn sleep
+function to atomically release this primitive when going to sleep and
reacquire it on wakeup.
.Pp
-.Em *5
-.Em Read-mostly
-locks can be initialized to support sleeping while holding a write lock.
-See
-.Xr rmlock 9
-for details.
+Note that non-blocking try operations on locks are always permitted.
.Ss Context mode table
The next table shows what can be used in different contexts.
At this time this is a rather easy to remember table.
-.Bl -column ".Ic Xxxxxxxxxxxxxxxxxxx" ".Xr XXXXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXX" -offset indent
-.It Em "Context:" Ta spin mtx Ta mutex Ta sx Ta rwlock Ta rmlock Ta sleep
+.Bl -column ".Ic Xxxxxxxxxxxxxxxxxxx" ".Xr XXXXXXXXX" ".Xr XXXXXXXXX" ".Xr XXXXXXX" ".Xr XXXXXXXXX" ".Xr XXXXXX" -offset 3n
+.It Em "Context:" Ta spin mtx Ta mutex/rw Ta rmlock Ta sleep rm Ta sx/lk Ta sleep
.It interrupt filter: Ta \&ok Ta \&no Ta \&no Ta \&no Ta \&no Ta \&no
-.It interrupt thread: Ta \&ok Ta \&ok Ta \&no Ta \&ok Ta \&ok Ta \&no
-.It callout: Ta \&ok Ta \&ok Ta \&no Ta \&ok Ta \&no Ta \&no
-.It syscall: Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok
+.It interrupt thread: Ta \&ok Ta \&ok Ta \&ok Ta \&no Ta \&no Ta \&no
+.It callout: Ta \&ok Ta \&ok Ta \&ok Ta \&no Ta \&no Ta \&no
+.It system call: Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok
.El
.Sh SEE ALSO
.Xr witness 4 ,
diff --git a/share/man/man9/microuptime.9 b/share/man/man9/microuptime.9
index 8f9985f72aa9..5a9a71befd48 100644
--- a/share/man/man9/microuptime.9
+++ b/share/man/man9/microuptime.9
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 16, 2004
+.Dd July 25, 2013
.Dt MICROUPTIME 9
.Os
.Sh NAME
@@ -33,7 +33,9 @@
.Nm microuptime ,
.Nm getmicrouptime ,
.Nm nanouptime ,
-.Nm getnanouptime
+.Nm getnanouptime ,
+.Nm sbinuptime ,
+.Nm getsbinuptime
.Nd get the time elapsed since boot
.Sh SYNOPSIS
.In sys/time.h
@@ -49,6 +51,10 @@
.Fn nanouptime "struct timespec *ts"
.Ft void
.Fn getnanouptime "struct timespec *tsp"
+.Ft sbintime_t
+.Fn sbinuptime "void"
+.Ft sbintime_t
+.Fn getsbinuptime "void"
.Sh DESCRIPTION
The
.Fn binuptime
@@ -71,28 +77,37 @@ and
.Fn getnanouptime
functions store the elapsed time as a
.Vt "struct timespec" .
+The
+.Fn sbinuptime
+and
+.Fn getsbinuptime
+functions return the time elapsed since boot as a
+.Vt "sbintime_t" .
.Pp
The
.Fn binuptime ,
.Fn microuptime ,
+.Fn nanouptime ,
and
-.Fn nanouptime
+.Fn sbinuptime
functions
always query the timecounter to return the current time as precisely as
possible.
Whereas
.Fn getbinuptime ,
.Fn getmicrouptime ,
+.Fn getnanouptime ,
and
-.Fn getnanouptime
+.Fn getsbinuptime
functions are abstractions which return a less precise, but
faster to obtain, time.
.Pp
The intent of the
.Fn getbinuptime ,
.Fn getmicrouptime ,
+.Fn getnanouptime ,
and
-.Fn getnanouptime
+.Fn getsbinuptime
functions is to enforce the user's preference for timer accuracy versus
execution time.
.Sh SEE ALSO
diff --git a/share/man/man9/mutex.9 b/share/man/man9/mutex.9
index 628939f3cb29..c7cc1ef9876e 100644
--- a/share/man/man9/mutex.9
+++ b/share/man/man9/mutex.9
@@ -225,8 +225,10 @@ or
lock, respectively, and also accept a
.Fa flags
argument.
-In both cases, the only flag presently available for lock acquires is
-.Dv MTX_QUIET .
+In both cases, the only flags presently available for lock acquires are
+.Dv MTX_QUIET
+and
+.Dv MTX_RECURSE .
If the
.Dv MTX_QUIET
bit is turned on in the
@@ -235,6 +237,11 @@ argument, then if
.Dv KTR_LOCK
tracing is being done,
it will be silenced during the lock acquire.
+If the
+.Dv MTX_RECURSE
+bit is turned on in the
+.Fa flags
+argument, then the mutex can be acquired recursively.
.Pp
The
.Fn mtx_trylock
diff --git a/share/man/man9/netisr.9 b/share/man/man9/netisr.9
index 4377e02d03cf..e1e582202a89 100644
--- a/share/man/man9/netisr.9
+++ b/share/man/man9/netisr.9
@@ -83,7 +83,7 @@ and
.Nm
supports multi-processor execution of handlers, and relies on a combination
of source ordering and protocol-specific ordering and work-placement
-policies to decide how do distribute work across one or more worker
+policies to decide how to distribute work across one or more worker
threads.
Registering protocols will declare one of three policies:
.Bl -tag -width NETISR_POLICY_SOURCE
diff --git a/share/man/man9/pci.9 b/share/man/man9/pci.9
index adc78b53f09f..28bae85ff238 100644
--- a/share/man/man9/pci.9
+++ b/share/man/man9/pci.9
@@ -485,13 +485,13 @@ A driver is only allowed to use either MSI or MSI-X,
but not both.
.Pp
The
-.Fn pci_count_msi
+.Fn pci_msi_count
function returns the maximum number of MSI messages supported by the
device
.Fa dev .
If the device does not support MSI,
then
-.Fn pci_count_msi
+.Fn pci_msi_count
returns zero.
.Pp
The
@@ -538,13 +538,13 @@ The
function returns zero on success and an error on failure.
.Pp
The
-.Fn pci_count_msix
+.Fn pci_msix_count
function returns the maximum number of MSI-X messages supported by the
device
.Fa dev .
If the device does not support MSI-X,
then
-.Fn pci_count_msix
+.Fn pci_msix_count
returns zero.
.Pp
The
diff --git a/share/man/man9/pfil.9 b/share/man/man9/pfil.9
index d34c5792d19c..2f28df677a6c 100644
--- a/share/man/man9/pfil.9
+++ b/share/man/man9/pfil.9
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 22, 2012
+.Dd August 23, 2013
.Dt PFIL 9
.Os
.Sh NAME
@@ -36,7 +36,6 @@
.Nm pfil_head_register ,
.Nm pfil_head_unregister ,
.Nm pfil_head_get ,
-.Nm pfil_hook_get ,
.Nm pfil_add_hook ,
.Nm pfil_remove_hook ,
.Nm pfil_run_hooks ,
@@ -50,20 +49,18 @@
.In sys/mbuf.h
.In net/if.h
.In net/pfil.h
+.Bd -literal
+typedef int (*pfil_func_t)(void *arg, struct mbuf **mp, struct ifnet *, int dir, struct inpcb);
.Ft int
.Fn pfil_head_register "struct pfil_head *head"
.Ft int
.Fn pfil_head_unregister "struct pfil_head *head"
.Ft "struct pfil_head *"
.Fn pfil_head_get "int af" "u_long dlt"
-.Ft "struct packet_filter_hook *"
-.Fn pfil_hook_get "int dir" "struct pfil_head *head"
.Ft void
-.Fn pfil_add_hook "int (*func)()" "void *arg" "int flags" "struct pfil_head *"
+.Fn pfil_add_hook "pfil_func_t" "void *arg" "int flags" "struct pfil_head *"
.Ft void
-.Fn pfil_remove_hook "int (*func)()" "void *arg" "int flags" "struct pfil_head *"
-.Ft int
-.Fn (*func) "void *arg" "struct mbuf **mp" "struct ifnet *" "int dir" "struct inpcb *"
+.Fn pfil_remove_hook "pfil_func_t" "void *arg" "int flags" "struct pfil_head *"
.Ft int
.Fn pfil_run_hooks "struct pfil_head *head" "struct mbuf **mp" "struct ifnet *" "int dir" "struct inpcb *"
.Ft void
@@ -74,6 +71,7 @@
.Fn pfil_wlock "struct pfil_head *"
.Ft void
.Fn pfil_wunlock "struct pfil_head *"
+.Ed
.Sh DESCRIPTION
The
.Nm
@@ -244,11 +242,6 @@ Fine-grained locking was added in
lock export was added in
.Fx 10.0 .
.Sh BUGS
-The
-.Fn pfil_hook_get
-function
-is only safe for internal use.
-.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 78083458072b..aeb3b4599eff 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 June 8, 2012
+.Dd June 25, 2013
.Dt RMLOCK 9
.Os
.Sh NAME
@@ -40,6 +40,8 @@
.Nm rm_runlock ,
.Nm rm_wunlock ,
.Nm rm_wowned ,
+.Nm rm_sleep ,
+.Nm rm_assert ,
.Nm RM_SYSINIT
.Nd kernel reader/writer lock optimized for read-mostly access patterns
.Sh SYNOPSIS
@@ -64,6 +66,13 @@
.Fn rm_wunlock "struct rmlock *rm"
.Ft int
.Fn rm_wowned "const struct rmlock *rm"
+.Ft int
+.Fn rm_sleep "void *wchan" "struct rmlock *rm" "int priority" "const char *wmesg" "int timo"
+.Pp
+.Cd "options INVARIANTS"
+.Cd "options INVARIANT_SUPPORT"
+.Ft void
+.Fn rm_assert "struct rmlock *rm" "int what"
.In sys/kernel.h
.Fn RM_SYSINIT "name" "struct rmlock *rm" "const char *desc" "int opts"
.Sh DESCRIPTION
@@ -215,12 +224,63 @@ lock must be unlocked.
This function returns a non-zero value if the current thread owns an
exclusive lock on
.Fa rm .
+.It Fn rm_sleep "void *wchan" "struct rmlock *rm" "int priority" "const char *wmesg" "int timo"
+This function atomically releases
+.Fa rm
+while waiting for an event.
+The
+.Fa rm
+lock must be exclusively locked.
+For more details on the parameters to this function,
+see
+.Xr sleep 9 .
+.It Fn rm_assert "struct rmlock *rm" "int what"
+This function asserts that the
+.Fa rm
+lock is in the state specified by
+.Fa what .
+If the assertions are not true and the kernel is compiled with
+.Cd "options INVARIANTS"
+and
+.Cd "options INVARIANT_SUPPORT" ,
+the kernel will panic.
+Currently the following base assertions are supported:
+.Bl -tag -width ".Dv RA_UNLOCKED"
+.It Dv RA_LOCKED
+Assert that current thread holds either a shared or exclusive lock
+of
+.Fa rm .
+.It Dv RA_RLOCKED
+Assert that current thread holds a shared lock of
+.Fa rm .
+.It Dv RA_WLOCKED
+Assert that current thread holds an exclusive lock of
+.Fa rm .
+.It Dv RA_UNLOCKED
+Assert that current thread holds neither a shared nor exclusive lock of
+.Fa rm .
+.El
+.Pp
+In addition, one of the following optional flags may be specified with
+.Dv RA_LOCKED ,
+.Dv RA_RLOCKED ,
+or
+.Dv RA_WLOCKED :
+.Bl -tag -width ".Dv RA_NOTRECURSED"
+.It Dv RA_RECURSED
+Assert that the current thread holds a recursive lock of
+.Fa rm .
+.It Dv RA_NOTRECURSED
+Assert that the current thread does not hold a recursive lock of
+.Fa rm .
+.El
.El
.Sh SEE ALSO
.Xr locking 9 ,
.Xr mutex 9 ,
.Xr panic 9 ,
.Xr rwlock 9 ,
+.Xr sleep 9 ,
.Xr sema 9 ,
.Xr sx 9
.Sh HISTORY
@@ -252,8 +312,3 @@ implementation uses a single per CPU list shared by all
rmlocks in the system.
If rmlocks become popular, hashing to multiple per CPU queues may
be needed to speed up the writer lock process.
-.Pp
-The
-.Nm
-can currently not be used as a lock argument for condition variable
-wait functions.
diff --git a/share/man/man9/rwlock.9 b/share/man/man9/rwlock.9
index 45fc3bd804d8..c68c14be7590 100644
--- a/share/man/man9/rwlock.9
+++ b/share/man/man9/rwlock.9
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 16, 2011
+.Dd June 20, 2013
.Dt RWLOCK 9
.Os
.Sh NAME
@@ -254,7 +254,7 @@ with
and
.Cd "options INVARIANT_SUPPORT" ,
the kernel will panic.
-Currently the following assertions are supported:
+Currently the following base assertions are supported:
.Bl -tag -width ".Dv RA_UNLOCKED"
.It Dv RA_LOCKED
Assert that current thread holds either a shared or exclusive lock
@@ -270,6 +270,20 @@ Assert that current thread holds an exclusive lock of
Assert that current thread holds neither a shared nor exclusive lock of
.Fa rw .
.El
+.Pp
+In addition, one of the following optional flags may be specified with
+.Dv RA_LOCKED ,
+.Dv RA_RLOCKED ,
+or
+.Dv RA_WLOCKED :
+.Bl -tag -width ".Dv RA_NOTRECURSED"
+.It Dv RA_RECURSED
+Assert that the current thread holds a recursive lock of
+.Fa rw .
+.It Dv RA_NOTRECURSED
+Assert that the current thread does not hold a recursive lock of
+.Fa rw .
+.El
.El
.Sh SEE ALSO
.Xr locking 9 ,
diff --git a/share/man/man9/signal.9 b/share/man/man9/signal.9
index 6f377eeb346b..c61ceb653ced 100644
--- a/share/man/man9/signal.9
+++ b/share/man/man9/signal.9
@@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 20, 2004
+.Dd June 8, 2013
.Dt SIGNAL 9
.Os
.Sh NAME
@@ -252,7 +252,7 @@ The
function resets the signal set and signal stack of a process in preparation
for an
.Xr execve 2 .
-The lock for
+The process lock for
.Fa p
must be held before
.Fn execsigs
@@ -272,11 +272,9 @@ Stop signals are handled and cleared right away by
.Fn issignal
unless the process is a member of an orphaned process group and the stop
signal originated from a TTY.
-The
-.Va sched_lock
-lock may be acquired and released, and if
-.Va Giant
-is held, it may be released and reacquired.
+The process spin lock for
+.Fa td->td_proc
+may be acquired and released.
The
.Vt sigacts
structure
@@ -289,9 +287,6 @@ The process lock for
must be acquired before calling
.Fn issignal
and may be released and reacquired during the call.
-The lock for the parent of
-.Fa td->td_proc
-may also be acquired and released.
Default signal actions are not taken for system processes and init.
.Pp
The
@@ -342,7 +337,7 @@ after the kernel has been notified that a signal should be delivered
which causes the flag
.Dv PS_NEEDSIGCHK
to be set).
-The lock for process that owns
+The process lock for process that owns
.Va curthread
must be held before
.Fn postsig
@@ -360,7 +355,7 @@ function causes the process that owns
to exit with a return value of signal number
.Fa sig .
If required, the process will dump core.
-The lock for the process that owns
+The process lock for the process that owns
.Fa td
must be held before
.Fn sigexit
@@ -377,8 +372,8 @@ to be ignored by
.Fa p .
The process lock for
.Fa p
-is acquired and released by
-.Fn siginit .
+is acquired and released, as is the lock for sigacts structure
+.Fa p->p_sigacts .
The only process that
.Fn siginit
is ever called for
@@ -390,13 +385,11 @@ The
function flags that there are unmasked signals pending that
.Fn ast
should handle.
-The lock for process
+The process lock for process
.Fa td->td_proc
must be held before
.Fn signotify
-is called, and
-.Va sched_lock
-is acquired and released.
+is called, and the thread lock is acquired and released.
.Pp
The
.Fn trapsignal
@@ -410,10 +403,9 @@ will deliver it directly; otherwise,
will call
.Xr psignal 9
to cause the signal to be delivered.
-The
-.Va sched_lock
-lock is acquired and released, as is the lock for
-.Fa td->td_proc .
+The process lock for
+.Fa td->td_proc
+is acquired and released.
The lock for the
.Va p_sigacts
field of
diff --git a/share/man/man9/sleep.9 b/share/man/man9/sleep.9
index 4ac9d45a4019..e0225ee98a4f 100644
--- a/share/man/man9/sleep.9
+++ b/share/man/man9/sleep.9
@@ -173,15 +173,15 @@ functions take
.Fa sbt
parameter instead of
.Fa timo .
-It allows to specify relative or absolite wakeup time with higher resolution
+It allows the caller to specify relative or absolute wakeup time with higher resolution
in form of
.Vt sbintime_t .
The parameter
.Fa pr
-allows to specify wanted absolute event precision.
+allows the caller to specify wanted absolute event precision.
The parameter
.Fa flags
-allows to pass additional
+allows the caller to pass additional
.Fn callout_reset_sbt
flags.
.Pp
diff --git a/share/man/man9/timeout.9 b/share/man/man9/timeout.9
index c63c20162024..344ac81ce504 100644
--- a/share/man/man9/timeout.9
+++ b/share/man/man9/timeout.9
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 19, 2013
+.Dd August 23, 2013
.Dt TIMEOUT 9
.Os
.Sh NAME
@@ -38,6 +38,7 @@
.Nm callout_handle_init ,
.Nm callout_init ,
.Nm callout_init_mtx ,
+.Nm callout_init_rm ,
.Nm callout_init_rw ,
.Nm callout_stop ,
.Nm callout_drain ,
@@ -73,6 +74,8 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle);
.Fn callout_init "struct callout *c" "int mpsafe"
.Ft void
.Fn callout_init_mtx "struct callout *c" "struct mtx *mtx" "int flags"
+.Fn void
+.Fn callout_init_rm "struct callout *c" "struct rmlock *rm" "int flags"
.Ft void
.Fn callout_init_rw "struct callout *c" "struct rwlock *rw" "int flags"
.Ft int
@@ -203,6 +206,7 @@ Thus they are protected from re-entrancy.
The functions
.Fn callout_init ,
.Fn callout_init_mtx ,
+.Fn callout_init_rm ,
.Fn callout_init_rw ,
.Fn callout_stop ,
.Fn callout_drain ,
@@ -252,15 +256,25 @@ after the callout function returns.
.Pp
The
.Fn callout_init_rw
-function serves the need of using rwlocks in conjunction with callouts.
-The function does basically the same as
-.Fn callout_init_mtx
+and the
+.Fn callout_init_rm
+fuctions serve the need of using rwlocks and rmlocks in conjunction
+with callouts.
+The functions do the same as
+.Fn callout_init
with the possibility of specifying an extra
.Fa rw
+or
+.Fa rm
argument.
-The usable lock classes are currently limited to mutexes and rwlocks,
-because callout handlers run in softclock swi, so they cannot sleep nor
-acquire sleepable locks like sx or lockmgr.
+If an
+.Fa rm
+argument is specified, the lock should be created without passing the
+.Dv RM_SLEEPABLE
+flag.
+The usable lock classes are currently limited to mutexes, rwlocks and
+non-sleepable rmlocks, because callout handlers run in softclock swi,
+so they cannot sleep nor acquire sleepable locks like sx or lockmgr.
The following
.Fa flags
may be specified:
diff --git a/share/man/man9/vfs_mount.9 b/share/man/man9/vfs_mount.9
deleted file mode 100644
index 47f60486d84e..000000000000
--- a/share/man/man9/vfs_mount.9
+++ /dev/null
@@ -1,135 +0,0 @@
-.\"
-.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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 November 26, 2004
-.Dt VFS_MOUNT 9
-.Os
-.Sh NAME
-.Nm vfs_mount
-.Nd "generic file system mount function"
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/mount.h
-.Ft int
-.Fo vfs_mount
-.Fa "struct thread *td"
-.Fa "const char *fstype"
-.Fa "char *fspath"
-.Fa "int fsflags"
-.Fa "void *fsdata"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn vfs_mount
-function handles the generic portion of mounting a file system,
-and calls the file system specific mount function after verifying
-its parameters and setting up the structures expected by the
-underlying mount code.
-.Pp
-.Fn vfs_mount
-is called directly by the
-.Xr mount 2
-system call.
-.Pp
-Its arguments are:
-.Bl -tag -width ".Fa fsflags"
-.It Fa td
-The thread responsible for this call.
-.It Fa fstype
-The type of file system being mounted.
-.It Fa fspath
-The path to the mount point of the file system.
-.It Fa fsflags
-Flags controlling the mount.
-See
-.Xr mount 2
-for details.
-.Pp
-.Dv MNT_EXPORTED , MNT_NOSUID , MNT_UPDATE , MNT_RELOAD ,
-.Dv MNT_FORCE , MNT_ASYNC , MNT_SYNCHRONOUS , MNT_UNION , MNT_NOATIME ,
-.Dv MNT_SNAPSHOT , MNT_NOCLUSTERR , MNT_NOCLUSTERW , MNT_IGNORE ,
-.Dv MNT_UNION , MNT_NOSYMFOLLOW
-.It Fa fsdata
-File system specific data structure.
-It is in userspace
-when passed to
-.Fn vfs_mount
-and is left untouched when passed to file system's
-.Fn mount .
-.El
-.Sh RETURN VALUES
-A 0 value is returned on success.
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er ENAMETOOLONG
-The fs type or the mount point path is too long or any individual
-path component is too long.
-.It Bq Er EPERM
-Permission denied.
-There are a number of reason this can occur
-ranging from the user not having permission to mount a file system
-to the securelevel being to high to load the
-.Fa fstype
-module.
-.It Bq Er EINVAL
-Invalid operation (ex: trying to update a non mount-point).
-.It Bq Er ENOENT
-The mount point does not exist (from
-.Fn namei ) .
-.It Bq Er ELOOP
-The mount point is a muddle of links (from
-.Fn namei ) .
-.It Bq Er EOPNOTSUPP
-The operation is not supported (ex: reloading a r/w file system).
-.It Bq Er EBUSY
-The mount point is busy or is not really a mount point (on update).
-.It Bq Er ENOTDIR
-The mount point is not a directory.
-.It Bq Er ENODEV
-The kernel linker was unable to load the specified
-.Fa fstype
-or was unable to find the specified
-.Fa fstype
-module.
-.El
-.Pp
-Other errors can be returned by the file system's
-.Fn mount
-and
-you should check the specific file system for details.
-Also
-this call relies on a large number of other kernel services
-whose errors it returns so this list may not be exhaustive.
-.Sh SEE ALSO
-.Xr mount 2 ,
-.Xr mount 8
-.Pp
-.Va vfs.usermount
-.Sh AUTHORS
-This manual page was written by
-.An Chad David Aq davidc@acns.ab.ca .
diff --git a/share/man/man9/vfsconf.9 b/share/man/man9/vfsconf.9
index f7b160e21313..83a66210e228 100644
--- a/share/man/man9/vfsconf.9
+++ b/share/man/man9/vfsconf.9
@@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 21, 2001
+.Dd June 16, 2013
.Dt VFSCONF 9
.Os
.Sh NAME
@@ -58,7 +58,7 @@ struct vfsconf {
.Ed
.Pp
When a new file system is mounted,
-.Xr vfs_mount 9
+.Xr mount 2
does a lookup of the
.Vt vfsconf
structure by its name, and if it is not already registered,
@@ -143,7 +143,7 @@ or
.Fn vfs_unregister ,
whatever the case.
.Sh SEE ALSO
-.Xr vfs_mount 9 ,
+.Xr mount 2 ,
.Xr vfs_rootmountalloc 9 ,
.Xr VFS_SET 9
.Sh AUTHORS
diff --git a/share/man/man9/vm_page_alloc.9 b/share/man/man9/vm_page_alloc.9
index 9397d2153c27..3109a3fae492 100644
--- a/share/man/man9/vm_page_alloc.9
+++ b/share/man/man9/vm_page_alloc.9
@@ -91,9 +91,7 @@ than zero.
The optional flags are:
.Bl -tag -width ".Dv VM_ALLOC_IFNOTCACHED"
.It Dv VM_ALLOC_NOBUSY
-The returned page will not have the
-.Dv VPO_BUSY
-flag set.
+The returned page will not be exclusive busy.
.It Dv VM_ALLOC_NODUMP
The returned page will not be included in any kernel core dumps
regardless of whether or not it is mapped in to KVA.
@@ -112,6 +110,8 @@ Only allocate the page if it is not cached in the
If the page at the specified
.Fa pindex
is cached, NULL is returned instead.
+.It Dv VM_ALLOC_SBUSY
+The returned page will be shared busy.
.It Dv VM_ALLOC_WIRED
The returned page will be wired.
.It Dv VM_ALLOC_ZERO
diff --git a/share/man/man9/vm_page_busy.9 b/share/man/man9/vm_page_busy.9
new file mode 100644
index 000000000000..bc4b796d1fce
--- /dev/null
+++ b/share/man/man9/vm_page_busy.9
@@ -0,0 +1,216 @@
+.\"
+.\" Copyright (c) 2013 EMC Corp.
+.\" 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 07, 2013
+.Dt VM_PAGE_BUSY 9
+.Os
+.Sh NAME
+.Nm vm_page_busied ,
+.Nm vm_page_busy_downgrade ,
+.Nm vm_page_busy_sleep ,
+.Nm vm_page_sbusied ,
+.Nm vm_page_sbusy ,
+.Nm vm_page_sleep_if_busy ,
+.Nm vm_page_sunbusy ,
+.Nm vm_page_trysbusy ,
+.Nm vm_page_tryxbusy ,
+.Nm vm_page_xbusied ,
+.Nm vm_page_xbusy ,
+.Nm vm_page_xunbusy ,
+.Nm vm_page_assert_sbusied ,
+.Nm vm_page_assert_unbusied ,
+.Nm vm_page_assert_xbusied
+.Nd protect page identity changes and page content references
+.Sh SYNOPSIS
+.In sys/param.h
+.In vm/vm.h
+.In vm/vm_page.h
+.Ft int
+.Fn vm_page_busied "vm_page_t m"
+.Ft void
+.Fn vm_page_busy_downgrade "vm_page_t m"
+.Ft void
+.Fn vm_page_busy_sleep "vm_page_t m" "const char *msg"
+.Ft int
+.Fn vm_page_sbusied "vm_page_t m"
+.Ft void
+.Fn vm_page_sbusy "vm_page_t m"
+.Ft int
+.Fn vm_page_sleep_if_busy "vm_page_t m" "const char *msg"
+.Ft void
+.Fn vm_page_sunbusy "vm_page_t m"
+.Ft int
+.Fn vm_page_trysbusy "vm_page_t m"
+.Ft int
+.Fn vm_page_tryxbusy "vm_page_t m"
+.Ft int
+.Fn vm_page_xbusied "vm_page_t m"
+.Ft void
+.Fn vm_page_xbusy "vm_page_t m"
+.Ft void
+.Fn vm_page_xunbusy "vm_page_t m"
+.Pp
+.Cd "options INVARIANTS"
+.Cd "options INVARIANT_SUPPORT"
+.Ft void
+.Fn vm_page_assert_sbusied "vm_page_t m"
+.Ft void
+.Fn vm_page_assert_unbusied "vm_page_t m"
+.Ft void
+.Fn vm_page_assert_xbusied "vm_page_t m"
+.Sh DESCRIPTION
+Page identity is usually protected by higher level locks like vm_object
+locks and vm page locks.
+However, sometimes it is not possible to hold such locks for the time
+necessary to complete the identity change.
+In such case the page can be exclusively busied by a thread which needs
+to own the identity for a certain amount of time.
+.Pp
+In other situations, threads do not need to change the identity of the
+page but they want to prevent other threads from changing the identity
+themselves.
+For example, when a thread wants to access or update page contents
+without a lock held the page is shared busied.
+.Pp
+Before busing a page the vm_object lock must be held.
+The same rule applies when a page is unbusied.
+This makes the vm_object lock a real busy interlock.
+.Pp
+The
+.Fn vm_page_busied
+function returns non-zero if the current thread busied
+.Fa m
+in either exclusive or shared mode.
+Returns zero otherwise.
+.Pp
+The
+.Fn vm_page_busy_downgrade
+function must be used to downgrade
+.Fa m
+from an exclusive busy state to a shared busy state.
+.Pp
+The
+.Fn vm_page_busy_sleep
+function puts the invoking thread to sleep using the appropriate
+waitchannels for the busy mechanism.
+The parameter
+.Fa msg
+is a string describing the sleep condition for userland tools.
+.Pp
+The
+.Fn vm_page_busied
+function returns non-zero if the current thread busied
+.Fa m
+in shared mode.
+Returns zero otherwise.
+.Pp
+The
+.Fn vm_page_sbusy
+function shared busies
+.Fa m .
+.Pp
+The
+.Fn vm_page_sleep_if_busy
+function puts the invoking thread to sleep, using the appropriate
+waitchannels for the busy mechanism, if
+.Fa m .
+is busied in either exclusive or shared mode.
+If the invoking thread slept a non-zero value is returned, otherwise
+0 is returned.
+The parameter
+.Fa msg
+is a string describing the sleep condition for userland tools.
+.Pp
+The
+.Fn vm_page_sunbusy
+function shared unbusies
+.Fa m .
+.Pp
+The
+.Fn vm_page_trysbusy
+attempts to shared busy
+.Fa m .
+If the operation cannot immediately succeed
+.Fn vm_page_trysbusy
+returns 0, otherwise a non-zero value is returned.
+.Pp
+The
+.Fn vm_page_tryxbusy
+attempts to exclusive busy
+.Fa m .
+If the operation cannot immediately succeed
+.Fn vm_page_tryxbusy
+returns 0, otherwise a non-zero value is returned.
+.Pp
+The
+.Fn vm_page_xbusied
+function returns non-zero if the current thread busied
+.Fa m
+in exclusive mode.
+Returns zero otherwise.
+.Pp
+The
+.Fn vm_page_xbusy
+function exclusive busies
+.Fa m .
+.Pp
+The
+.Fn vm_page_xunbusy
+function exclusive unbusies
+.Fa m .
+Assertions on the busy state allow kernels compiled with
+.Cd "options INVARIANTS"
+and
+.Cd "options INVARIANT_SUPPORT"
+to panic if they are not respected.
+.Pp
+The
+.Fn vm_page_assert_sbusied
+function panics if
+.Fa m
+is not shared busied.
+.Pp
+The
+.Fn vm_page_assert_unbusied
+function panics if
+.Fa m
+is not unbusied.
+.Pp
+The
+.Fn vm_page_assert_xbusied
+function panics if
+.Fa m
+is not exclusive busied.
+.Sh SEE ALSO
+.Xr VOP_GETPAGES 9 ,
+.Xr vm_page_aflag 9 ,
+.Xr vm_page_alloc 9 ,
+.Xr vm_page_deactivate 9 ,
+.Xr vm_page_free 9 ,
+.Xr vm_page_grab 9 ,
+.Xr vm_page_insert 9 ,
+.Xr vm_page_lookup 9 ,
+.Xr vm_page_rename 9
diff --git a/share/man/man9/vm_page_grab.9 b/share/man/man9/vm_page_grab.9
index d0d3a321be5a..cfab9def3267 100644
--- a/share/man/man9/vm_page_grab.9
+++ b/share/man/man9/vm_page_grab.9
@@ -1,5 +1,9 @@
.\"
.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved.
+.\" Copyright (c) 2013 The FreeBSD Foundation
+.\"
+.\" Portions of this documentation were written by Konstantin Belousov
+.\" under sponsorship from the FreeBSD Foundation.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -26,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 7, 2001
+.Dd August 23, 2013
.Dt VM_PAGE_GRAB 9
.Os
.Sh NAME
@@ -48,21 +52,31 @@ If the page exists and is busy,
.Fn vm_page_grab
will sleep while waiting for it.
If the page does not exist, it is allocated.
+The function sleeps until the allocation request can be satisfied.
+.Pp
+The function requires the
+.Fa object
+to be locked on entry, and returns with the object locked.
+If the
+.Fn vm_page_grab
+function sleeps for any reason, the object lock is temporary dropped.
.Pp
-If
-.Dv VM_ALLOC_RETRY
-is not set in
-.Fa allocflags
-and the function sleeps, either getting the page from the object
-or while allocating it,
-.Dv NULL
-is returned.
+The
+.Fn vm_page_grab
+supports all of the flags supported by
+.Xr vm_page_alloc .
+In addition,
+.Fn vm_page_grab
+supports the following flags:
+.Bl -tag -width ".Dv VM_ALLOC_IGN_SBUSY"
+.It Dv VM_ALLOC_IGN_SBUSY
+When waiting for the busy state of the existing page to drain,
+only test for exclusive busy; ignore the shared busy counter.
+.El
.Sh RETURN VALUES
-If successful,
+The
.Fn vm_page_grab
-returns the page; otherwise,
-.Dv NULL
-is returned.
+always returns the page.
.Sh SEE ALSO
.Xr vm_page_alloc 9
.Sh AUTHORS
diff --git a/share/man/man9/vm_page_io.9 b/share/man/man9/vm_page_io.9
deleted file mode 100644
index bddb82b8ea7a..000000000000
--- a/share/man/man9/vm_page_io.9
+++ /dev/null
@@ -1,65 +0,0 @@
-.\"
-.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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 July 17, 2001
-.Dt VM_PAGE_IO_START 9
-.Os
-.Sh NAME
-.Nm vm_page_io_start ,
-.Nm vm_page_io_finish
-.Nd "ready or unready a page for I/O"
-.Sh SYNOPSIS
-.In sys/param.h
-.In vm/vm.h
-.In vm/vm_page.h
-.Ft void
-.Fn vm_page_io_start "vm_page_t m"
-.Ft void
-.Fn vm_page_io_finish "vm_page_t m"
-.Sh DESCRIPTION
-The
-.Fn vm_page_io_start
-function prepares the page for I/O by incrementing its busy flag by one.
-.Pp
-The
-.Fn vm_page_io_finish
-function lowers the busy count on the page by one, if the resulting busy
-count is zero, a
-.Xr wakeup 9
-will be issued if the page has been marked
-.Dv VPO_WANTED .
-A page is typically marked
-.Dv VPO_WANTED
-by a thread to register its interest in
-the page to either complete I/O or becoming available for general use.
-.Sh AUTHORS
-.An -nosplit
-This manual page was written by
-.An Chad David Aq davidc@acns.ab.ca
-and
-.An Alfred Perlstein Aq alfred@FreeBSD.org .
diff --git a/share/man/man9/vm_page_sleep_if_busy.9 b/share/man/man9/vm_page_sleep_if_busy.9
deleted file mode 100644
index 850979f2db81..000000000000
--- a/share/man/man9/vm_page_sleep_if_busy.9
+++ /dev/null
@@ -1,68 +0,0 @@
-.\"
-.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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 July 13, 2001
-.Dt VM_PAGE_SLEEP_IF_BUSY 9
-.Os
-.Sh NAME
-.Nm vm_page_sleep_if_busy
-.Nd "wait for a busy page to become unbusy"
-.Sh SYNOPSIS
-.In sys/param.h
-.In vm/vm.h
-.In vm/vm_page.h
-.Ft int
-.Fn vm_page_sleep_if_busy "vm_page_t m" "int also_m_busy" "const char *wmesg"
-.Sh DESCRIPTION
-The
-.Fn vm_page_sleep_if_busy
-function waits until the
-.Dv VPO_BUSY
-flag is cleared.
-If
-.Fa also_m_busy
-is non-zero, it also waits for
-.Fa m->busy
-to become zero.
-.Sh RETURN VALUES
-If
-.Fn vm_page_sleep_if_busy
-finds the page busy it returns
-.Dv TRUE .
-If not, it returns
-.Dv FALSE .
-Returning
-.Dv TRUE
-does not necessary mean that
-.Fn vm_page_sleep_if_busy
-slept, but only that
-.Fn splvm
-was called.
-.Sh AUTHORS
-This manual page was written by
-.An Chad David Aq davidc@acns.ab.ca .
diff --git a/share/man/man9/vm_page_wakeup.9 b/share/man/man9/vm_page_wakeup.9
deleted file mode 100644
index 5908b62001bc..000000000000
--- a/share/man/man9/vm_page_wakeup.9
+++ /dev/null
@@ -1,75 +0,0 @@
-.\"
-.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. 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 July 14, 2001
-.Dt VM_PAGE_BUSY 9
-.Os
-.Sh NAME
-.Nm vm_page_busy ,
-.Nm vm_page_flash ,
-.Nm vm_page_wakeup
-.Nd "handle the busying and unbusying of a page"
-.Sh SYNOPSIS
-.In sys/param.h
-.In vm/vm.h
-.In vm/vm_page.h
-.Ft void
-.Fn vm_page_busy "vm_page_t m"
-.Ft void
-.Fn vm_page_flash "vm_page_t m"
-.Ft void
-.Fn vm_page_wakeup "vm_page_t m"
-.Sh DESCRIPTION
-These functions handle the busying, unbusying and notification of the unbusying
-of a page.
-.Pp
-.Fn vm_page_busy
-sets the
-.Dv VPO_BUSY
-flag in the page.
-.Pp
-.Fn vm_page_flash
-checks to see if there is anybody waiting on the page
-.Dv ( VPO_WANTED
-will be set), and if so, clears the
-.Dv VPO_WANTED
-flag and notifies whoever is waiting via
-.Fn wakeup .
-.Pp
-.Fn vm_page_wakeup
-clears the
-.Dv VPO_BUSY
-flag on the page, and calls
-.Fn vm_page_flash
-in case somebody has been waiting for it.
-.Sh SEE ALSO
-.Xr vm_page_sleep_if_busy 9 ,
-.Xr wakeup 9
-.Sh AUTHORS
-This manual page was written by
-.An Chad David Aq davidc@acns.ab.ca .
diff --git a/share/man/man9/vmem.9 b/share/man/man9/vmem.9
new file mode 100644
index 000000000000..4433301e96b7
--- /dev/null
+++ b/share/man/man9/vmem.9
@@ -0,0 +1,315 @@
+.\" $NetBSD: vmem.9,v 1.15 2013/01/29 22:02:17 wiz Exp $
+.\"
+.\" Copyright (c)2006 YAMAMOTO Takashi,
+.\" 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 12, 2013
+.Dt VMEM 9
+.Os
+.\" ------------------------------------------------------------
+.Sh NAME
+.Nm vmem
+.Nd general purpose resource allocator
+.\" ------------------------------------------------------------
+.Sh SYNOPSIS
+.In sys/vmem.h
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Ft vmem_t *
+.Fn vmem_create \
+"const char *name" "vmem_addr_t base" "vmem_size_t size" "vmem_size_t quantum" \
+"vmem_size_t qcache_max" "int flags"
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Ft int
+.Fn vmem_add \
+"vmem_t *vm" "vmem_addr_t addr" "vmem_size_t size" "int flags"
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Ft int
+.Fn vmem_xalloc \
+"vmem_t *vm" "const vmem_size_t size" "vmem_size_t align" \
+"const vmem_size_t phase" "const vmem_size_t nocross" \
+"const vmem_addr_t minaddr" "const vmem_addr_t maxaddr" "int flags" \
+"vmem_addr_t *addrp"
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Ft void
+.Fn vmem_xfree "vmem_t *vm" "vmem_addr_t addr" "vmem_size_t size"
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Ft int
+.Fn vmem_alloc "vmem_t *vm" "vmem_size_t size" "int flags" "vmem_addr_t *addrp"
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Ft void
+.Fn vmem_free "vmem_t *vm" "vmem_addr_t addr" "vmem_size_t size"
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Ft void
+.Fn vmem_destroy "vmem_t *vm"
+.\" ------------------------------------------------------------
+.Sh DESCRIPTION
+The
+.Nm
+is a general purpose resource allocator.
+Despite its name, it can be used for arbitrary resources
+other than virtual memory.
+.Pp
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Fn vmem_create
+creates a new vmem arena.
+.Bl -tag -width qcache_max
+.It Fa name
+The string to describe the vmem.
+.It Fa base
+The start address of the initial span.
+Pass
+.Dv 0
+if no initial span is required.
+.It Fa size
+The size of the initial span.
+Pass
+.Dv 0
+if no initial span is required.
+.It Fa quantum
+The smallest unit of allocation.
+.It Fa qcache_max
+The largest size of allocations which can be served by quantum cache.
+It is merely a hint and can be ignored.
+.It Fa flags
+Combination of
+.Xr malloc 9
+wait flag and
+.Nm
+allocation strategy flag:
+.Bl -tag -width M_FIRSTFIT
+.It Dv M_FIRSTFIT
+Prefer allocation performance.
+.It Dv M_BESTFIT
+Prefer space efficiency.
+.El
+.El
+.Pp
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Fn vmem_add
+adds a span of size
+.Fa size
+starting at
+.Fa addr
+to the arena.
+Returns
+0
+on success,
+.Dv ENOMEM
+on failure.
+.Fa flags
+is
+.Xr malloc 9
+wait flag.
+.Pp
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Fn vmem_xalloc
+allocates a resource from the arena.
+.Bl -tag -width nocross
+.It Fa vm
+The arena which we allocate from.
+.It Fa size
+Specify the size of the allocation.
+.It Fa align
+If zero, don't care about the alignment of the allocation.
+Otherwise, request a resource segment starting at
+offset
+.Fa phase
+from an
+.Fa align
+aligned boundary.
+.It Fa phase
+See the above description of
+.Fa align .
+If
+.Fa align
+is zero,
+.Fa phase
+should be zero.
+Otherwise,
+.Fa phase
+should be smaller than
+.Fa align .
+.It Fa nocross
+Request a resource which doesn't cross
+.Fa nocross
+aligned boundary.
+.It Fa minaddr
+Specify the minimum address which can be allocated, or
+.Dv VMEM_ADDR_MIN
+if the caller does not care.
+.It Fa maxaddr
+Specify the maximum address which can be allocated, or
+.Dv VMEM_ADDR_MAX
+if the caller does not care.
+.It Fa flags
+A bitwise OR of an allocation strategy and a
+.Xr malloc 9
+wait flag.
+The allocation strategy is one of
+.Dv M_FIRSTFIT
+and
+.Dv M_BESTFIT .
+.It Fa addrp
+On success, if
+.Fa addrp
+is not
+.Dv NULL ,
+.Fn vmem_xalloc
+overwrites it with the start address of the allocated span.
+.El
+.Pp
+.\" ------------------------------------------------------------
+.Fn vmem_xfree
+frees resource allocated by
+.Fn vmem_xalloc
+to the arena.
+.Bl -tag -width addr
+.It Fa vm
+The arena which we free to.
+.It Fa addr
+The resource being freed.
+It must be the one returned by
+.Fn vmem_xalloc .
+Notably, it must not be the one from
+.Fn vmem_alloc .
+Otherwise, the behaviour is undefined.
+.It Fa size
+The size of the resource being freed.
+It must be the same as the
+.Fa size
+argument used for
+.Fn vmem_xalloc .
+.El
+.Pp
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Fn vmem_alloc
+allocates a resource from the arena.
+.Bl -tag -width flags
+.It Fa vm
+The arena which we allocate from.
+.It Fa size
+Specify the size of the allocation.
+.It Fa flags
+A bitwise OR of an
+.Nm
+allocation strategy flag (see above) and a
+.Xr malloc 9
+sleep flag.
+.It Fa addrp
+On success, if
+.Fa addrp
+is not
+.Dv NULL ,
+.Fn vmem_alloc
+overwrites it with the start address of the allocated span.
+.El
+.Pp
+.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+.Fn vmem_free
+frees resource allocated by
+.Fn vmem_alloc
+to the arena.
+.Bl -tag -width addr
+.It Fa vm
+The arena which we free to.
+.It Fa addr
+The resource being freed.
+It must be the one returned by
+.Fn vmem_alloc .
+Notably, it must not be the one from
+.Fn vmem_xalloc .
+Otherwise, the behaviour is undefined.
+.It Fa size
+The size of the resource being freed.
+It must be the same as the
+.Fa size
+argument used for
+.Fn vmem_alloc .
+.El
+.Pp
+.\" ------------------------------------------------------------
+.Fn vmem_destroy
+destroys a vmem arena.
+.Bl -tag -width vm
+.It Fa vm
+The vmem arena being destroyed.
+The caller should ensure that no one will use it anymore.
+.El
+.\" ------------------------------------------------------------
+.Sh RETURN VALUES
+.Fn vmem_create
+returns a pointer to the newly allocated vmem_t.
+Otherwise, it returns
+.Dv NULL .
+.Pp
+On success,
+.Fn vmem_xalloc
+and
+.Fn vmem_alloc
+return 0.
+Otherwise,
+.Dv ENOMEM
+is returned.
+.\" ------------------------------------------------------------
+.Sh CODE REFERENCES
+The
+.Nm
+subsystem is implemented within the file
+.Pa sys/kern/subr_vmem.c .
+.\" ------------------------------------------------------------
+.Sh SEE ALSO
+.Xr malloc 9
+.Rs
+.%A Jeff Bonwick
+.%A Jonathan Adams
+.%T "Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources"
+.%J "2001 USENIX Annual Technical Conference"
+.%D 2001
+.Re
+.\" ------------------------------------------------------------
+.Sh HISTORY
+The
+.Nm
+allocator was originally implemented in
+.Nx .
+It was introduced in
+.Fx 10.0 .
+.Sh AUTHORS
+.An -nosplit
+Original implementation of
+.Nm
+was written by
+.An "YAMAMOTO Takashi" .
+The
+.Fx
+port was made by
+.An "Jeff Roberson" .
+.Sh BUGS
+.Nm
+relies on
+.Xr malloc 9 ,
+so it cannot be used as early during system bootstrap.
diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree
index 47a41bd25985..f32f13692118 100644
--- a/share/misc/bsd-family-tree
+++ b/share/misc/bsd-family-tree
@@ -62,9 +62,9 @@ Tenth Edition | |
| | 4.4BSD |
| | / | |
| | 4.4BSD-Encumbered | |
- | NetBSD 0.8 | BSD/386 1.0
- | | | |
-FreeBSD 1.0 NetBSD 0.9 | BSD/386 1.1
+ | -NetBSD 0.8 | BSD/386 1.0
+ | / | | |
+FreeBSD 1.0 <-----' NetBSD 0.9 | BSD/386 1.1
| | .----- 4.4BSD Lite |
FreeBSD 1.1 | / / | \ |
| | / / | \ |
@@ -216,50 +216,62 @@ FreeBSD 5.2 | | | |
| | 10.5 | | |
| | | | OpenBSD 4.2 |
| | | NetBSD 4.0 | |
- | FreeBSD 6.3 | | | |
- | \ | | | |
- *--FreeBSD | | | | DragonFly 1.12.0
- | 7.0 | | | | |
- | | | | | OpenBSD 4.3 |
- | | | | | | DragonFly 2.0.0
- | | FreeBSD | | OpenBSD 4.4 |
+ | FreeBSD 6.3 | | | | |
+ | \ | | | | |
+ *--FreeBSD | | | | | DragonFly 1.12.0
+ | 7.0 | | | | | |
+ | | | | | | OpenBSD 4.3 |
+ | | | | | NetBSD | DragonFly 2.0.0
+ | | FreeBSD | | 4.0.1 OpenBSD 4.4 |
| | 6.4 | | | |
| | | | | |
| FreeBSD 7.1 | | | |
| | | | | DragonFly 2.2.0
| FreeBSD 7.2 | NetBSD 5.0 OpenBSD 4.5 |
- | \ | | | | |
- | | Mac OS X | | | |
- | | 10.6 | | | |
- | | | | | | DragonFly 2.4.0
- | | | | | OpenBSD 4.6 |
- | | | | | | |
- *--FreeBSD | | | | | |
- | 8.0 | | | | | |
- | | FreeBSD | | | | |
- | | 7.3 | | | | DragonFly 2.6.0
- | | | | | | OpenBSD 4.7 |
- | FreeBSD | | | | | |
- | 8.1 | | | | | |
- | | | | | | | DragonFly 2.8.2
- | | | | | | OpenBSD 4.8 |
- | | | | | NetBSD 5.1 | |
- | FreeBSD FreeBSD | | | |
- | 8.2 7.4 | | | DragonFly 2.10.1
- | | | | OpenBSD 4.9 |
- | `-----. Mac OS X | | |
- | \ 10.7 | | |
- | | | | OpenBSD 5.0 |
- *--FreeBSD | | | | |
- | 9.0 | | | | DragonFly 3.0.1
- | | FreeBSD | | | |
- | | 8.3 | | OpenBSD 5.1 |
- | | Mac OS X | | |
- | | 10.8 | | |
- | | | NetBSD 6.0 | |
- | | | | OpenBSD 5.2 DragonFly 3.2.1
- | FreeBSD | | | |
- | 9.1 | | | |
+ | \ | | | \ | |
+ | | Mac OS X | | \ | |
+ | | 10.6 | | \ | |
+ | | | | | NetBSD | DragonFly 2.4.0
+ | | | | | 5.0.1 OpenBSD 4.6 |
+ | | | | | | | |
+ *--FreeBSD | | | | | | |
+ | 8.0 | | | | | | |
+ | | FreeBSD | | | NetBSD | |
+ | | 7.3 | | | 5.0.2 | DragonFly 2.6.0
+ | | | | | | OpenBSD 4.7 |
+ | FreeBSD | | | | | |
+ | 8.1 | | | | | |
+ | | | | | | | DragonFly 2.8.2
+ | | | | | | OpenBSD 4.8 |
+ | | | | | *--NetBSD | |
+ | FreeBSD FreeBSD | | | 5.1 | |
+ | 8.2 7.4 | | | | | DragonFly 2.10.1
+ | | | | | | OpenBSD 4.9 |
+ | `-----. Mac OS X | | | | |
+ | \ 10.7 | | | | |
+ | | | | | | OpenBSD 5.0 |
+ *--FreeBSD | | | | | | |
+ | 9.0 | | | | NetBSD | DragonFly 3.0.1
+ | | FreeBSD | | | 5.1.2 | |
+ | | 8.3 | | | OpenBSD 5.1 |
+ | | | Mac OS X | `----. | |
+ | | | 10.8 | \ | |
+ | | | | NetBSD 6.0 | | |
+ | | | | | | | | OpenBSD 5.2 DragonFly 3.2.1
+ | FreeBSD | | | | | NetBSD | |
+ | 9.1 | | | | | 5.2 | |
+ | | | | | \ | |
+ | | | | | NetBSD | |
+ | | | | | 6.0.1 | |
+ | | | | | | OpenBSD 5.3 DragonFly 3.4.1
+ | | | | | NetBSD | |
+ | | | | | 6.0.2 | |
+ | | | | | | |
+ | | | | `-NetBSD 6.1 | |
+ | FreeBSD | | | |
+ | 8.4 | | | |
+ | | | | |
+ | | | | |
| | | | |
FreeBSD 10 -current | NetBSD -current OpenBSD -current |
| | | | |
@@ -533,9 +545,11 @@ NetBSD 5.0 2009-04-29 [NBD]
OpenBSD 4.5 2009-05-01 [OBD]
FreeBSD 7.2 2009-05-04 [FBD]
Mac OS X 10.6 2009-06-08 [APL]
+NetBSD 5.0.1 2009-08-02 [NBD] (security/critical release)
DragonFly 2.4.0 2009-09-16 [DFB]
OpenBSD 4.6 2009-10-18 [OBD]
FreeBSD 8.0 2009-11-26 [FBD]
+NetBSD 5.0.2 2010-02-12 [NBD] (security/critical release)
FreeBSD 7.3 2010-03-23 [FBD]
DragonFly 2.6.0 2010-03-28 [DFB]
OpenBSD 4.7 2010-05-19 [OBD]
@@ -550,6 +564,7 @@ OpenBSD 4.9 2011-05-01 [OBD]
Mac OS X 10.7 2011-07-20 [APL]
OpenBSD 5.0 2011-11-01 [OBD]
FreeBSD 9.0 2012-01-12 [FBD]
+NetBSD 5.1.2 2012-02-02 [NBD] (security/critical release)
DragonFly 3.0.1 2012-02-21 [DFB]
FreeBSD 8.3 2012-04-18 [FBD]
OpenBSD 5.1 2012-05-01 [OBD]
@@ -557,7 +572,14 @@ 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]
+NetBSD 5.2 2012-12-03 [NBD]
+NetBSD 6.0.1 2012-12-26 [NBD] (security/critical release)
FreeBSD 9.1 2012-12-30 [FBD]
+DragonFly 3.4.1 2013-04-29 [DFB]
+OpenBSD 5.3 2013-05-01 [OBD]
+NetBSD 6.0.2 2013-05-18 [NBD] (security/critical release)
+NetBSD 6.1 2013-05-18 [NBD]
+FreeBSD 8.4 2013-06-07 [FBD]
Bibliography
------------------------
@@ -616,6 +638,6 @@ Steven M. Schultz for providing 2.8BSD, 2.10BSD, 2.11BSD manual pages.
--
Copyright (c) 1997-2012 Wolfram Schneider <wosch@FreeBSD.ORG>
-URL: http://cvsweb.freebsd.org/src/share/misc/bsd-family-tree
+URL: http://svnweb.freebsd.org/base/head/share/misc/bsd-family-tree
$FreeBSD$
diff --git a/share/misc/committers-doc.dot b/share/misc/committers-doc.dot
index 168dcd2bd62f..e408eb12ef4e 100644
--- a/share/misc/committers-doc.dot
+++ b/share/misc/committers-doc.dot
@@ -56,6 +56,7 @@ blackend [label="Marc Fonvieille\nblackend@FreeBSD.org\n2002/06/16"]
brd [label="Brad Davis\nbrd@FreeBSD.org\n2005/06/01"]
brueffer [label="Christian Brueffer\nbrueffer@FreeBSD.org\n2003/01/13"]
chinsan [label="Chinsan Huang\nchinsan@FreeBSD.org\n2006/09/20"]
+crees [label="Chris Rees\ncrees@FreeBSD.org\n2013/05/27"]
danger [label="Daniel Gerzo\ndanger@FreeBSD.org\n2006/08/20"]
delphij [label="Xin Li\ndelphij@FreeBSD.org\n2004/09/14"]
dru [label="Dru Lavigne\ndru@FreeBSD.org\n2013/01/22"]
@@ -95,6 +96,7 @@ bcr -> gavin
bcr -> wblock
bcr -> eadler
bcr -> dru
+bcr -> crees
blackend -> ale
@@ -120,6 +122,7 @@ gabor -> ebrandi
gjb -> wblock
gjb -> rene
gjb -> dru
+gjb -> crees
hrs -> ryusuke
hrs -> dru
diff --git a/share/misc/committers-ports.dot b/share/misc/committers-ports.dot
index 5de4d8458ce5..79831dcd3d70 100644
--- a/share/misc/committers-ports.dot
+++ b/share/misc/committers-ports.dot
@@ -90,6 +90,7 @@ ehaupt [label="Emanuel Haupt\nehaupt@FreeBSD.org\n2005/10/03"]
eik [label="Oliver Eikemeier\neik@FreeBSD.org\n2003/11/12"]
erwin [label="Erwin Lansing\nerwin@FreeBSD.org\n2003/06/04"]
farrokhi [label="Babak Farrokhi\nfarrokhi@FreeBSD.org\n2006/11/07"]
+feld [label="Mark Felder\nfeld@FreeBSD.org\n2013/06/25"]
fjoe [label="Max Khon\nfjoe@FreeBSD.org\n2001/08/06"]
flo [label="Florian Smeets\nflo@FreeBSD.org\n2010/12/07"]
fluffy [label="Dima Panov\nfluffy@FreeBSD.org\n2009/08/10"]
@@ -102,6 +103,7 @@ 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"]
+gnn [label="George Neville-Neil\ngnn@FreeBSD.org\n2013/09/04"]
hq [label="Herve Quiroz\nhq@FreeBSD.org\n2004/08/05"]
ijliao [label="Ying-Chieh Liao\nijliao@FreeBSD.org\n2001/01/20"]
itetcu [label="Ion-Mihai Tetcu\nitetcu@FreeBSD.org\n2006/06/07"]
@@ -142,6 +144,7 @@ maho [label="Maho Nakata\nmaho@FreeBSD.org\n2002/10/17"]
makc [label="Max Brazhnikov\nmakc@FreeBSD.org\n2008/08/25"]
mandree [label="Matthias Andree\nmandree@FreeBSD.org\n2009/11/18"]
marcus [label="Joe Marcus Clarke\nmarcus@FreeBSD.org\n2002/04/05"]
+marino [label="John Marino\nmarino@FreeBSD.org\n2013/07/04"]
marius [label="Marius Strobl\nmarius@FreeBSD.org\n2012/12/29"]
markus [label="Markus Brueffer\nmarkus@FreeBSD.org\n2004/02/21"]
martymac [label="Ganael Laplanche\nmartymac@FreeBSD.org\n2010/09/24"]
@@ -153,6 +156,7 @@ miwi [label="Martin Wilke\nmiwi@FreeBSD.org\n2006/06/04"]
mm [label="Martin Matuska\nmm@FreeBSD.org\n2007/04/04"]
mnag [label="Marcus Alves Grando\nmnag@FreeBSD.org\n2005/09/15"]
mva [label="Marcus von Appen\nmva@FreeBSD.org\n2009/02/16"]
+nemysis [label="Rusmir Dusko\nnemysis@FreeBSD.org\n2013/07/31"]
nemoliu [label="Tong Liu\nnemoliu@FreeBSD.org\n2007/04/25"]
netchild [label="Alexander Leidinger\nnetchild@FreeBSD.org\n2002/03/19"]
nobutaka [label="Nobutaka Mantani\nnobutaka@FreeBSD.org\n2001/11/02"]
@@ -204,6 +208,7 @@ trasz [label="Edward Tomasz Napierala\ntrasz@FreeBSD.org\n2007/04/12"]
trhodes [label="Tom Rhodes\ntrhodes@FreeBSD.org\n2004/07/06"]
uqs [label="Ulrich Spoerlein\nuqs@FreeBSD.org\n2012/01/19"]
vd [label="Vasil Dimov\nvd@FreeBSD.org\n2006/01/19"]
+vg [label="Veniamin Gvozdikov\nvg@FreeBSD.org\n2013/06/11"]
wen [label="Wen Heping\nwen@FreeBSD.org\n2010/12/13"]
wg [label="William Grzybowski\nwg@FreeBSD.org\n2013/04/01"]
wxs [label="Wesley Shields\nwxs@FreeBSD.org\n2008/01/03"]
@@ -245,6 +250,7 @@ bapt -> bdrewery
bapt -> eadler
bapt -> jlaffaye
bapt -> marius
+bapt -> marino
beat -> decke
beat -> marius
@@ -265,6 +271,7 @@ clement -> lawrance
clsung -> lwhsu
clsung -> tabthorpe
+crees -> feld
crees -> gjb
crees -> jgh
crees -> madpilot
@@ -273,6 +280,7 @@ crees -> tijl
culot -> jase
culot -> wg
+culot -> marino
db -> tj
@@ -289,6 +297,7 @@ eadler -> dbn
eadler -> bdrewery
eadler -> gjb
eadler -> tj
+eadler -> vg
edwin -> cperciva
edwin -> erwin
@@ -414,6 +423,7 @@ miwi -> lme
miwi -> makc
miwi -> mandree
miwi -> mva
+miwi -> nemysis
miwi -> nox
miwi -> olivierd
miwi -> pawel
@@ -439,6 +449,8 @@ novel -> rm
obrien -> mharo
obrien -> gerald
+osa -> vg
+
pat -> adamw
pav -> ahze
@@ -447,6 +459,8 @@ pav -> josef
pav -> kwm
pav -> mnag
+pawel -> nemysis
+
pgj -> ashish
pgj -> jacula
@@ -462,6 +476,9 @@ rene -> crees
rene -> jgh
rene -> olivierd
+rm -> koobs
+rm -> vg
+
sahil -> culot
sahil -> eadler
@@ -475,6 +492,8 @@ sem -> stas
shaun -> timur
shaun -> matthew
+skreuzer -> gnn
+
sobomax -> demon
sobomax -> glewis
sobomax -> lev
@@ -485,6 +504,7 @@ stas -> araujo
steve -> netchild
+swills -> feld
swills -> pclin
tabthorpe -> ashish
@@ -512,9 +532,12 @@ wen -> cs
wen -> culot
wen -> pawel
+wg -> nemysis
+
will -> lioux
wxs -> jsa
+wxs -> nemysis
wxs -> sahil
wxs -> skreuzer
wxs -> swills
diff --git a/share/misc/committers-src.dot b/share/misc/committers-src.dot
index 45fac41987f6..a273cf9b3b97 100644
--- a/share/misc/committers-src.dot
+++ b/share/misc/committers-src.dot
@@ -48,10 +48,11 @@ dmlb [label="Duncan Barclay\ndmlb@FreeBSD.org\n2001/12/14\n2008/11/10"]
dougb [label="Doug Barton\ndougb@FreeBSD.org\n2000/10/26\n2012/10/08"]
eik [label="Oliver Eikemeier\neik@FreeBSD.org\n2004/05/20\n2008/11/10"]
furuta [label="Atsushi Furuta\nfuruta@FreeBSD.org\n2000/06/21\n2003/03/08"]
+gj [label="Gary L. Jennejohn\ngj@FreeBSD.org\n1994/??/??\n2006/04/28"]
groudier [label="Gerard Roudier\ngroudier@FreeBSD.org\n1999/12/30\n2006/04/06"]
jake [label="Jake Burkholder\njake@FreeBSD.org\n2000/05/16\n2008/11/10"]
jayanth [label="Jayanth Vijayaraghavan\njayanth@FreeBSD.org\n2000/05/08\n2008/11/10"]
-jb [label="John Birrell\njb@FreeBSD.org\n????/??/??\n2009/12/15"]
+jb [label="John Birrell\njb@FreeBSD.org\n1997/03/27\n2009/12/15"]
jdp [label="John Polstra\njdp@FreeBSD.org\n1995/12/07\n2008/02/26"]
jedgar [label="Chris D. Faulhaber\njedgar@FreeBSD.org\n1999/12/15\n2006/04/07"]
jkh [label="Jordan K. Hubbard\njkh@FreeBSD.org\n1993/06/12\n2008/06/13"]
@@ -110,11 +111,13 @@ andrew [label="Andrew Turner\nandrew@FreeBSD.org\n2010/07/19"]
antoine [label="Antoine Brodin\nantoine@FreeBSD.org\n2008/02/03"]
ariff [label="Ariff Abdullah\nariff@FreeBSD.org\n2005/11/14"]
art [label="Artem Belevich\nart@FreeBSD.org\n2011/03/29"]
+asomers [label="Alan Somers\nasomers@FreeBSD.org\n2013/04/24"]
avg [label="Andriy Gapon\navg@FreeBSD.org\n2009/02/18"]
bapt [label="Baptiste Daroussin\nbapt@FreeBSD.org\n2011/12/23"]
benl [label="Ben Laurie\nbenl@FreeBSD.org\n2011/05/18"]
benno [label="Benno Rice\nbenno@FreeBSD.org\n2000/11/02"]
bms [label="Bruce M Simpson\nbms@FreeBSD.org\n2003/08/06"]
+br [label="Ruslan Bukin\nbr@FreeBSD.org\n2013/09/02"]
brian [label="Brian Somers\nbrian@FreeBSD.org\n1996/12/16"]
brooks [label="Brooks Davis\nbrooks@FreeBSD.org\n2001/06/21"]
brucec [label="Bruce Cran\nbrucec@FreeBSD.org\n2010/01/29"]
@@ -143,7 +146,7 @@ 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????/??/??"]
+eivind [label="Eivind Eklund\neivind@FreeBSD.org\n1997/02/02"]
emaste [label="Ed Maste\nemaste@FreeBSD.org\n2005/10/04"]
emax [label="Maksim Yevmenkin\nemax@FreeBSD.org\n2003/10/12"]
eri [label="Ermal Luci\neri@FreeBSD.org\n2008/06/11"]
@@ -156,6 +159,7 @@ gad [label="Garance A. Drosehn\ngad@FreeBSD.org\n2000/10/27"]
gallatin [label="Andrew Gallatin\ngallatin@FreeBSD.org\n1999/01/15"]
gavin [label="Gavin Atkinson\ngavin@FreeBSD.org\n2009/12/07"]
gibbs [label="Justin T. Gibbs\ngibbs@FreeBSD.org\n????/??/??"]
+gjb [label="Glen Barber\ngjb@FreeBSD.org\n2013/06/04"]
gleb [label="Gleb Kurtsou\ngleb@FreeBSD.org\n2011/09/19"]
glebius [label="Gleb Smirnoff\nglebius@FreeBSD.org\n2004/07/14"]
gnn [label="George V. Neville-Neil\ngnn@FreeBSD.org\n2004/10/11"]
@@ -184,6 +188,7 @@ jkim [label="Jung-uk Kim\njkim@FreeBSD.org\n2005/07/06"]
jkoshy [label="A. Joseph Koshy\njkoshy@FreeBSD.org\n1998/05/13"]
jlh [label="Jeremie Le Hen\njlh@FreeBSD.org\n2012/04/22"]
jls [label="Jordan Sissel\njls@FreeBSD.org\n2006/12/06"]
+jmg [label="John-Mark Gurney\njmg@FreeBSD.org\n1997/02/13"]
joerg [label="Joerg Wunsch\njoerg@FreeBSD.org\n1993/11/14"]
jon [label="Jonathan Chen\njon@FreeBSD.org\n2000/10/17"]
jonathan [label="Jonathan Anderson\njonathan@FreeBSD.org\n2010/10/07"]
@@ -193,11 +198,13 @@ jwd [label="John De Boskey\njwd@FreeBSD.org\n2000/05/19"]
kaiw [label="Kai Wang\nkaiw@FreeBSD.org\n2007/09/26"]
kan [label="Alexander Kabaev\nkan@FreeBSD.org\n2002/07/21"]
kargl [label="Steven G. Kargl\nkargl@FreeBSD.org\n2011/01/17"]
+ken [label="Ken Merry\nken@FreeBSD.org\n1998/09/08"]
kensmith [label="Ken Smith\nkensmith@FreeBSD.org\n2004/01/23"]
kevlo [label="Kevin Lo\nkevlo@FreeBSD.org\n2006/07/23"]
kib [label="Konstantin Belousov\nkib@FreeBSD.org\n2006/06/03"]
kmacy [label="Kip Macy\nkmacy@FreeBSD.org\n2005/06/01"]
le [label="Lukas Ertl\nle@FreeBSD.org\n2004/02/02"]
+loos [label="Luiz Otavio O Souza\nloos@FreeBSD.org\n2013/07/03"]
lstewart [label="Lawrence Stewart\nlstewart@FreeBSD.org\n2008/10/06"]
marcel [label="Marcel Moolenaar\nmarcel@FreeBSD.org\n1999/07/03"]
marius [label="Marius Strobl\nmarius@FreeBSD.org\n2004/04/17"]
@@ -283,6 +290,7 @@ wkoszek [label="Wojciech A. Koszek\nwkoszek@FreeBSD.org\n2006/02/21"]
wollman [label="Garrett Wollman\nwollman@FreeBSD.org\n????/??/??"]
wsalamon [label="Wayne Salamon\nwsalamon@FreeBSD.org\n2005/06/25"]
yongari [label="Pyun YongHyeon\nyongari@FreeBSD.org\n2004/08/01"]
+zbb [label="Zbigniew Bodek\nzbb@FreeBSD.org\n2013/09/02"]
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"]
@@ -301,6 +309,7 @@ day1 -> rgrimes
day1 -> alm
day1 -> dg
+adrian -> loos
adrian -> monthadar
adrian -> ray
adrian -> rmh
@@ -341,10 +350,12 @@ bz -> anchie
bz -> jamie
bz -> syrinx
+cognet -> br
cognet -> jceel
cognet -> kevlo
cognet -> ian
cognet -> wkoszek
+cognet -> zbb
cperciva -> eadler
cperciva -> flz
@@ -467,6 +478,8 @@ jhb -> rnoland
jimharris -> carl
+jkh -> dfr
+jkh -> gj
jkh -> grog
jkh -> imp
jkh -> jlemon
@@ -487,6 +500,7 @@ jlemon -> brooks
joerg -> brian
joerg -> eik
+joerg -> jmg
joerg -> le
joerg -> netchild
joerg -> schweikh
@@ -499,8 +513,11 @@ julian -> zec
kan -> kib
+ken -> asomers
+
kib -> ae
kib -> dchagin
+kib -> gjb
kib -> jlh
kib -> jpaetzel
kib -> lulf
@@ -574,6 +591,7 @@ philip -> jls
philip -> matteo
philip -> uqs
+phk -> jkoshy
phk -> mux
pjd -> kib
diff --git a/share/misc/iso639 b/share/misc/iso639
index 5793421795e9..1902e51c21ba 100644
--- a/share/misc/iso639
+++ b/share/misc/iso639
@@ -517,6 +517,7 @@ yo yor yor Yoruba
zap zap Zapotec
zbl zbl Blissymbols; Blissymbolics; Bliss
zen zen Zenaga
+ zgh zgh Standard Moroccan Tamazight
za zha zha Zhuang; Chuang
znd znd Zande languages
zu zul zul Zulu
diff --git a/share/misc/pci_vendors b/share/misc/pci_vendors
index 921f402f7b9f..ca35435976f1 100644
--- a/share/misc/pci_vendors
+++ b/share/misc/pci_vendors
@@ -11402,7 +11402,7 @@
0040 QSC-200/300
0050 ESC-100D
0060 ESC-100M
- 00f0 MPAC-100 Syncronous Serial Card (Zilog 85230)
+ 00f0 MPAC-100 Synchronous Serial Card (Zilog 85230)
0170 QSCLP-100
0180 DSCLP-100
0190 SSCLP-100
diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk
index 1b90603f331c..caf83408d56c 100644
--- a/share/mk/bsd.cpu.mk
+++ b/share/mk/bsd.cpu.mk
@@ -144,6 +144,8 @@ _CPUCFLAGS = -mcpu=ultrasparc3
. if ${MACHINE_CPUARCH} == "i386"
. if ${CPUTYPE} == "bdver2" || ${CPUTYPE} == "bdver1"
MACHINE_CPU = xop avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586
+. elif ${CPUTYPE} == "btver2"
+MACHINE_CPU = avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586
. elif ${CPUTYPE} == "btver1"
MACHINE_CPU = ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586
. elif ${CPUTYPE} == "amdfam10"
@@ -204,6 +206,8 @@ MACHINE_CPU += i486
. elif ${MACHINE_CPUARCH} == "amd64"
. if ${CPUTYPE} == "bdver2" || ${CPUTYPE} == "bdver1"
MACHINE_CPU = xop avx sse42 sse41 ssse3 sse4a sse3
+. elif ${CPUTYPE} == "btver2"
+MACHINE_CPU = avx sse42 sse41 ssse3 sse4a sse3
. elif ${CPUTYPE} == "btver1"
MACHINE_CPU = ssse3 sse4a sse3
. elif ${CPUTYPE} == "amdfam10"
diff --git a/share/mk/bsd.crunchgen.mk b/share/mk/bsd.crunchgen.mk
index 95f1aa3be03d..d8f07b1c48b1 100644
--- a/share/mk/bsd.crunchgen.mk
+++ b/share/mk/bsd.crunchgen.mk
@@ -47,6 +47,9 @@ CRUNCH_GENERATE_LINKS?= yes
CLEANFILES+= $(CONF) *.o *.lo *.c *.mk *.cache *.a *.h
+# Don't try to extract debug info from ${PROG}.
+NO_DEBUG_FILES=
+
# Program names and their aliases contribute hardlinks to 'rescue' executable,
# except for those that get suppressed.
.for D in $(CRUNCH_SRCDIRS)
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index f1fd86df3181..02f5853e1e51 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -43,6 +43,12 @@ CTFFLAGS+= -g
STRIP?= -s
.endif
+.if ${MK_DEBUG_FILES} != "no" && empty(DEBUG_FLAGS:M-g) && \
+ empty(DEBUG_FLAGS:M-gdwarf*)
+CFLAGS+= -g
+CTFFLAGS+= -g
+.endif
+
.include <bsd.libnames.mk>
# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
@@ -117,8 +123,17 @@ beforebuild: objwarn
.endif
.if defined(SHLIB_NAME)
-.if defined(DEBUG_FLAGS)
-SHLIB_NAME_FULL=${SHLIB_NAME}.debug
+.if ${MK_DEBUG_FILES} != "no"
+SHLIB_NAME_FULL=${SHLIB_NAME}.full
+# Use ${DEBUGDIR} for base system debug files, else .debug subdirectory
+.if ${SHLIBDIR} == "/boot" ||\
+ ${SHLIBDIR:C%/lib(/.*)?$%/lib%} == "/lib" ||\
+ ${SHLIBDIR:C%/usr/lib(32)?(/.*)?%/usr/lib%} == "/usr/lib"
+DEBUGFILEDIR=${DEBUGDIR}${SHLIBDIR}
+.else
+DEBUGFILEDIR=${SHLIBDIR}/.debug
+DEBUGMKDIR=
+.endif
.else
SHLIB_NAME_FULL=${SHLIB_NAME}
.endif
@@ -204,13 +219,13 @@ ${SHLIB_NAME_FULL}: ${SOBJS}
${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SOBJS}
.endif
-.if defined(DEBUG_FLAGS)
-CLEANFILES+= ${SHLIB_NAME_FULL} ${SHLIB_NAME}.symbols
-${SHLIB_NAME}: ${SHLIB_NAME_FULL} ${SHLIB_NAME}.symbols
- ${OBJCOPY} --strip-debug --add-gnu-debuglink=${SHLIB_NAME}.symbols \
+.if ${MK_DEBUG_FILES} != "no"
+CLEANFILES+= ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug
+${SHLIB_NAME}: ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug
+ ${OBJCOPY} --strip-debug --add-gnu-debuglink=${SHLIB_NAME}.debug \
${SHLIB_NAME_FULL} ${.TARGET}
-${SHLIB_NAME}.symbols: ${SHLIB_NAME_FULL}
+${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL}
${OBJCOPY} --only-keep-debug ${SHLIB_NAME_FULL} ${.TARGET}
.endif
.endif #defined(SHLIB_NAME)
@@ -293,30 +308,41 @@ _libinstall:
${INSTALL} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
-.if defined(DEBUG_FLAGS)
- ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
+.if ${MK_DEBUG_FILES} != "no"
+.if defined(DEBUGMKDIR)
+ ${INSTALL} -T debug -d ${DESTDIR}${DEBUGFILEDIR}
+.endif
+ ${INSTALL} -T debug -o ${LIBOWN} -g ${LIBGRP} -m ${DEBUGMODE} \
${_INSTALLFLAGS} \
- ${SHLIB_NAME}.symbols ${DESTDIR}${SHLIBDIR}
+ ${SHLIB_NAME}.debug ${DESTDIR}${DEBUGFILEDIR}
.endif
.if defined(SHLIB_LINK)
# ${_SHLIBDIRPREFIX} and ${_LDSCRIPTROOT} are both needed when cross-building
# and when building 32 bits library shims. ${_SHLIBDIRPREFIX} is the directory
-# prefix where shared objects will be installed. ${_LDSCRIPTROOT} is the
-# directory prefix that will be used in generated ld(1) scripts. They cannot
-# be coalesced because of the way ld(1) handles the sysroot prefix (used in the
-# cross-toolchain):
-# - 64 bits libs are located under sysroot, so ${_LDSCRIPTROOT} must be empty.
+# prefix where shared objects will be installed by the install target.
+#
+# ${_LDSCRIPTROOT} is the directory prefix that will be used when generating
+# ld(1) scripts. The crosstools' ld is configured to lookup libraries in an
+# alternative directory which is called "sysroot", so during buildworld binaries
+# won't be linked against the running system libraries but against the ones of
+# the current source tree. ${_LDSCRIPTROOT} behavior is twisted because of
+# the location where we store them:
+# - 64 bits libs are located under sysroot, so ${_LDSCRIPTROOT} must be empty
+# because ld(1) will manage to find them from sysroot;
# - 32 bits shims are not, so ${_LDSCRIPTROOT} is used to specify their full
-# path. Note that ld(1) scripts are generated both during buildworld and
-# installworld; in the later case ${_LDSCRIPTROOT} must be obviously empty.
-# On the other hand, the use of ${_SHLIBDIRPREFIX} is more consistent since it
-# does not involve the logic of a tool we do not own.
+# path, outside of sysroot.
+# Note that ld(1) scripts are generated both during buildworld and
+# installworld; in the later case ${_LDSCRIPTROOT} must be obviously empty
+# because on the target system, libraries are meant to be looked up from /.
.if defined(SHLIB_LDSCRIPT) && !empty(SHLIB_LDSCRIPT) && exists(${.CURDIR}/${SHLIB_LDSCRIPT})
sed -e 's,@@SHLIB@@,${_LDSCRIPTROOT}${SHLIBDIR}/${SHLIB_NAME},g' \
-e 's,@@LIBDIR@@,${_LDSCRIPTROOT}${LIBDIR},g' \
- ${.CURDIR}/${SHLIB_LDSCRIPT} > lib${LIB}.ld
+ ${.CURDIR}/${SHLIB_LDSCRIPT} > ${DESTDIR}${LIBDIR}/${SHLIB_LINK:R}.ld
${INSTALL} -S -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
- ${_INSTALLFLAGS} lib${LIB}.ld ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
+ ${_INSTALLFLAGS} ${DESTDIR}${LIBDIR}/${SHLIB_LINK:R}.ld \
+ ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
+ rm -f ${DESTDIR}${LIBDIR}/${SHLIB_LINK:R}.ld
+
.else
.if ${SHLIBDIR} == ${LIBDIR}
${INSTALL_SYMLINK} ${SHLIB_NAME} ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk
index e11ac8163b12..accda1caf53e 100644
--- a/share/mk/bsd.libnames.mk
+++ b/share/mk/bsd.libnames.mk
@@ -51,6 +51,7 @@ LIBDTRACE?= ${DESTDIR}${LIBDIR}/libdtrace.a
LIBDWARF?= ${DESTDIR}${LIBDIR}/libdwarf.a
LIBEDIT?= ${DESTDIR}${LIBDIR}/libedit.a
LIBELF?= ${DESTDIR}${LIBDIR}/libelf.a
+LIBEXECINFO?= ${DESTDIR}${LIBDIR}/libexecinfo.a
LIBFETCH?= ${DESTDIR}${LIBDIR}/libfetch.a
LIBFL?= "don't use LIBFL, use LIBL"
LIBFORM?= ${DESTDIR}${LIBDIR}/libform.a
@@ -149,6 +150,7 @@ 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 9501bcea9ca0..8b5b3c4684ae 100644
--- a/share/mk/bsd.own.mk
+++ b/share/mk/bsd.own.mk
@@ -43,6 +43,11 @@
# LIBMODE Library mode. [${NOBINMODE}]
#
#
+# DEBUGDIR Base path for standalone debug files. [/usr/lib/debug]
+#
+# DEBUGMODE Mode for debug files. [${NOBINMODE}]
+#
+#
# KMODDIR Base path for loadable kernel modules
# (see kld(4)). [/boot/kernel]
#
@@ -147,6 +152,9 @@ LIBOWN?= ${BINOWN}
LIBGRP?= ${BINGRP}
LIBMODE?= ${NOBINMODE}
+DEBUGDIR?= /usr/lib/debug
+DEBUGMODE?= ${NOBINMODE}
+
# Share files
SHAREDIR?= /usr/share
@@ -213,6 +221,7 @@ COMPRESS_EXT?= .gz
#
.for var in \
CTF \
+ DEBUG_FILES \
INSTALLLIB \
MAN \
PROFILE
@@ -230,15 +239,13 @@ WITHOUT_${var}=
.if defined(YES_HESIOD)
WITH_HESIOD=
.endif
-.if defined(MAKE_IDEA)
-WITH_IDEA=
-.endif
__DEFAULT_YES_OPTIONS = \
ACCT \
ACPI \
AMD \
APM \
+ ARM_EABI \
ASSERT_DEBUG \
AT \
ATF \
@@ -254,6 +261,7 @@ __DEFAULT_YES_OPTIONS = \
BIND_UTILS \
BINUTILS \
BLUETOOTH \
+ BMAKE \
BOOT \
BSD_CPIO \
BSNMP \
@@ -262,15 +270,16 @@ __DEFAULT_YES_OPTIONS = \
CAPSICUM \
CDDL \
CPP \
+ CROSS_COMPILER \
CRYPT \
CTM \
- CVS \
CXX \
DICT \
DYNAMICROOT \
ED_CRYPTO \
EXAMPLES \
FLOPPY \
+ FORMAT_EXTENSIONS \
FORTH \
FP_LIBC \
FREEBSD_UPDATE \
@@ -283,6 +292,7 @@ __DEFAULT_YES_OPTIONS = \
GPIO \
GROFF \
HTML \
+ ICONV \
INET \
INET6 \
INFO \
@@ -322,7 +332,6 @@ __DEFAULT_YES_OPTIONS = \
PC_SYSINSTALL \
PF \
PKGBOOTSTRAP \
- PKGTOOLS \
PMC \
PORTSNAP \
PPP \
@@ -339,6 +348,7 @@ __DEFAULT_YES_OPTIONS = \
SOURCELESS_HOST \
SOURCELESS_UCODE \
SSP \
+ SVNLITE \
SYMVER \
SYSCONS \
SYSINSTALL \
@@ -354,23 +364,20 @@ __DEFAULT_YES_OPTIONS = \
ZONEINFO
__DEFAULT_NO_OPTIONS = \
- ARM_EABI \
AUTO_OBJ \
BIND_IDN \
BIND_LARGE_FILE \
BIND_LIBS \
BIND_SIGCHASE \
BIND_XML \
- BMAKE \
- BSDCONFIG \
BSD_GREP \
BSD_PATCH \
CLANG_EXTRAS \
CTF \
+ DEBUG_FILES \
GPL_DTC \
HESIOD \
- ICONV \
- IDEA \
+ LIBICONV_COMPAT \
INSTALL_AS_USER \
LDNS_UTILS \
META_MODE \
@@ -378,9 +385,12 @@ __DEFAULT_NO_OPTIONS = \
NMTREE \
OFED \
OPENSSH_NONE_CIPHER \
+ PKGTOOLS \
SHARED_TOOLCHAIN \
STAGING \
- STAGING_PROG
+ STAGING_PROG \
+ SVN \
+ USB_GADGET_EXAMPLES
#
# Default behaviour of some options depends on the architecture. Unfortunately
@@ -478,6 +488,10 @@ MK_BIND_NAMED:= no
MK_BIND_UTILS:= no
.endif
+.if ${MK_ICONV} == "no"
+MK_LIBICONV_COMPAT:= no
+.endif
+
.if ${MK_LDNS} == "no"
MK_LDNS_UTILS:= no
.endif
diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk
index c14962bda246..8374713ff44c 100644
--- a/share/mk/bsd.prog.mk
+++ b/share/mk/bsd.prog.mk
@@ -24,8 +24,24 @@ CTFFLAGS+= -g
.endif
.endif
+.if defined(PROG_CXX)
+PROG= ${PROG_CXX}
+.endif
+
+.if defined(PROG) && target(${PROG})
+MK_DEBUG_FILES= no
+.elif !empty(LDFLAGS:M-Wl,*--oformat,*) || !empty(LDFLAGS:M-static)
+MK_DEBUG_FILES= no
+.endif
+
.if defined(CRUNCH_CFLAGS)
CFLAGS+=${CRUNCH_CFLAGS}
+.else
+.if ${MK_DEBUG_FILES} != "no" && empty(DEBUG_FLAGS:M-g) && \
+ empty(DEBUG_FLAGS:M-gdwarf-*)
+CFLAGS+= -g
+CTFFLAGS+= -g
+.endif
.endif
.if !defined(DEBUG_FLAGS)
@@ -36,21 +52,36 @@ STRIP?= -s
LDFLAGS+= -static
.endif
-.if defined(PROG_CXX)
-PROG= ${PROG_CXX}
+.if ${MK_DEBUG_FILES} != "no"
+PROG_FULL=${PROG}.full
+# Use ${DEBUGDIR} for base system debug files, else .debug subdirectory
+.if defined(BINDIR) && (\
+ ${BINDIR} == "/bin" ||\
+ ${BINDIR} == "/libexec" ||\
+ ${BINDIR} == "/sbin" ||\
+ ${BINDIR:C%/usr/(bin|bsdinstall|games|libexec|lpr|sendmail|sm.bin|sbin)(/.*)?%/usr/bin%} == "/usr/bin"\
+ )
+DEBUGFILEDIR= ${DEBUGDIR}${BINDIR}
+.else
+DEBUGFILEDIR?= ${BINDIR}/.debug
+DEBUGMKDIR=
+.endif
+.else
+PROG_FULL= ${PROG}
.endif
.if defined(PROG)
PROGNAME?= ${PROG}
+
.if defined(SRCS)
OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
.if target(beforelinking)
beforelinking: ${OBJS}
-${PROG}: beforelinking
+${PROG_FULL}: beforelinking
.endif
-${PROG}: ${OBJS}
+${PROG_FULL}: ${OBJS}
.if defined(PROG_CXX)
${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD}
.else
@@ -78,9 +109,9 @@ OBJS+= ${PROG}.o
.if target(beforelinking)
beforelinking: ${OBJS}
-${PROG}: beforelinking
+${PROG_FULL}: beforelinking
.endif
-${PROG}: ${OBJS}
+${PROG_FULL}: ${OBJS}
.if defined(PROG_CXX)
${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD}
.else
@@ -89,10 +120,19 @@ ${PROG}: ${OBJS}
.if ${MK_CTF} != "no"
${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${OBJS}
.endif
-.endif
+.endif # !target(${PROG})
.endif # !defined(SRCS)
+.if ${MK_DEBUG_FILES} != "no"
+${PROG}: ${PROG_FULL} ${PROGNAME}.debug
+ ${OBJCOPY} --strip-debug --add-gnu-debuglink=${PROGNAME}.debug \
+ ${PROG_FULL} ${.TARGET}
+
+${PROGNAME}.debug: ${PROG_FULL}
+ ${OBJCOPY} --only-keep-debug ${PROG_FULL} ${.TARGET}
+.endif
+
.if ${MK_MAN} != "no" && !defined(MAN) && \
!defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \
!defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \
@@ -113,6 +153,9 @@ all: _manpages
.if defined(PROG)
CLEANFILES+= ${PROG}
+.if ${MK_DEBUG_FILES} != "no"
+CLEANFILES+= ${PROG_FULL} ${PROGNAME}.debug
+.endif
.endif
.if defined(OBJS)
@@ -160,6 +203,13 @@ _proginstall:
.if defined(PROG)
${INSTALL} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
${_INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR}/${PROGNAME}
+.if ${MK_DEBUG_FILES} != "no"
+.if defined(DEBUGMKDIR)
+ ${INSTALL} -T debug -d ${DESTDIR}${DEBUGFILEDIR}
+.endif
+ ${INSTALL} -T debug -o ${BINOWN} -g ${BINGRP} -m ${DEBUGMODE} \
+ ${PROGNAME}.debug ${DESTDIR}${DEBUGFILEDIR}/${PROGNAME}.debug
+.endif
.endif
.endif # !target(realinstall)
diff --git a/share/mk/bsd.progs.mk b/share/mk/bsd.progs.mk
index b6236fe52a2d..3262004297bb 100644
--- a/share/mk/bsd.progs.mk
+++ b/share/mk/bsd.progs.mk
@@ -36,9 +36,11 @@ PROG ?= $t
.if defined(PROG)
# just one of many
-PROG_VARS += CFLAGS CPPFLAGS CXXFLAGS DPADD DPLIBS LDADD MAN SRCS
+PROG_VARS += BINDIR CFLAGS CPPFLAGS CXXFLAGS DPADD DPLIBS LDADD MAN SRCS
.for v in ${PROG_VARS:O:u}
+.if defined(${v}.${PROG})
$v += ${${v}_${PROG}:U${${v}.${PROG}}}
+.endif
.endfor
# for meta mode, there can be only one!
@@ -64,7 +66,8 @@ UPDATE_DEPENDFILE = NO
.include <${.PARSEFILE:S,progs,prog,}>
.ifndef PROG
-PROGS_TARGETS += clean
+# tell progs.mk we might want to install things
+PROGS_TARGETS+= cleandepend cleandir cleanobj depend install
.for p in ${PROGS}
.if defined(PROGS_CXX) && !empty(PROGS_CXX:M$p)
diff --git a/share/mk/bsd.subdir.mk b/share/mk/bsd.subdir.mk
index 0738ae8e9a83..8f2dd80b43ee 100644
--- a/share/mk/bsd.subdir.mk
+++ b/share/mk/bsd.subdir.mk
@@ -45,14 +45,14 @@ _SUBDIR:
DISTRIBUTION?= base
.if !target(distribute)
-distribute:
+distribute: .MAKE
.for dist in ${DISTRIBUTION}
${_+_}cd ${.CURDIR}; \
${MAKE} install -DNO_SUBDIR DESTDIR=${DISTDIR}/${dist} SHARED=copies
.endfor
.endif
-_SUBDIR: .USE
+_SUBDIR: .USE .MAKE
.if defined(SUBDIR) && !empty(SUBDIR) && !defined(NO_SUBDIR)
@${_+_}set -e; for entry in ${SUBDIR}; do \
if test -d ${.CURDIR}/$${entry}.${MACHINE_ARCH}; then \
@@ -69,7 +69,7 @@ _SUBDIR: .USE
done
.endif
-${SUBDIR}: .PHONY
+${SUBDIR}: .PHONY .MAKE
${_+_}@if test -d ${.TARGET}.${MACHINE_ARCH}; then \
cd ${.CURDIR}/${.TARGET}.${MACHINE_ARCH}; \
else \
@@ -90,7 +90,7 @@ ${__stage}${__target}:
${__stage}${__target}: _SUBDIR
.endif
.endfor
-${__target}:
+${__target}: .MAKE
${_+_}set -e; cd ${.CURDIR}; ${MAKE} build${__target}; ${MAKE} install${__target}
.endfor
diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk
index fe3715a2be5d..e0b2357b2dcb 100644
--- a/share/mk/bsd.sys.mk
+++ b/share/mk/bsd.sys.mk
@@ -54,6 +54,10 @@ CWARNFLAGS+= -Wcast-align
.if ${WARNS} >= 6
CWARNFLAGS+= -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls\
-Wold-style-definition
+.if ${COMPILER_TYPE} == "clang" && !defined(EARLY_BUILD) && \
+ !defined(NO_WMISSING_VARIABLE_DECLARATIONS)
+CWARNFLAGS+= -Wmissing-variable-declarations
+.endif
.endif # WARNS >= 6
.if ${WARNS} >= 2 && ${WARNS} <= 4
# XXX Delete -Wuninitialized by default for now -- the compiler doesn't
diff --git a/share/mk/sys.mk b/share/mk/sys.mk
index 74cac6082d63..eb9f2ca189d4 100644
--- a/share/mk/sys.mk
+++ b/share/mk/sys.mk
@@ -95,7 +95,13 @@ ECHODIR ?= true
.endif
.endif
-.if !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n"
+.if defined(.PARSEDIR)
+# _+_ appears to be a workaround for the special src .MAKE not working.
+# setting it to + interferes with -N
+_+_ ?=
+.elif !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n"
+# the check above matches only a single -n, so -n -n will result
+# in _+_ = +
_+_ ?=
.else
_+_ ?= +
@@ -326,16 +332,6 @@ SHELL= ${__MAKE_SHELL}
.SHELL: path=${__MAKE_SHELL}
.endif
-# Default executable format
-# XXX hint for bsd.port.mk
-OBJFORMAT?= elf
-
-# Tell bmake to expand -V VAR by default
-.MAKE.EXPAND_VARIABLES= yes
-
-# Tell bmake the makefile preference
-.MAKE.MAKEFILE_PREFERENCE?= BSDmakefile makefile Makefile
-
.if !defined(.PARSEDIR)
# We are not bmake, which is more aggressive about searching .PATH
# It is sometime necessary to curb its enthusiasm with .NOPATH
@@ -349,4 +345,24 @@ OBJFORMAT?= elf
.endif
+.if defined(.PARSEDIR)
+# Tell bmake to expand -V VAR by default
+.MAKE.EXPAND_VARIABLES= yes
+
+# Tell bmake the makefile preference
+.MAKE.MAKEFILE_PREFERENCE= BSDmakefile makefile Makefile
+
+# By default bmake does *not* use set -e
+# when running target scripts, this is a problem for many makefiles here.
+# So define a shell that will do what FreeBSD expects.
+.ifndef WITHOUT_SHELL_ERRCTL
+.SHELL: name=sh \
+ quiet="set -" echo="set -v" filter="set -" \
+ hasErrCtl=yes check="set -e" ignore="set +e" \
+ echoFlag=v errFlag=e \
+ path=${__MAKE_SHELL:U/bin/sh}
+.endif
+
+.endif
+
.include <bsd.cpu.mk>
diff --git a/share/monetdef/Makefile b/share/monetdef/Makefile
index 60542055ae15..165e8793e05f 100644
--- a/share/monetdef/Makefile
+++ b/share/monetdef/Makefile
@@ -9,13 +9,17 @@ LOCALES= af_ZA.ISO8859-1 \
bg_BG.CP1251 \
bg_BG.UTF-8 \
ca_ES.ISO8859-1 \
+ ca_ES.UTF-8 \
cs_CZ.ISO8859-2 \
cs_CZ.UTF-8 \
da_DK.ISO8859-1 \
de_AT.ISO8859-1 \
+ de_AT.UTF-8 \
de_CH.ISO8859-1 \
de_DE.ISO8859-1 \
+ de_DE.UTF-8 \
el_GR.ISO8859-7 \
+ el_GR.UTF-8 \
en_AU.ISO8859-1 \
en_CA.ISO8859-1 \
en_GB.ISO8859-1 \
@@ -24,11 +28,15 @@ LOCALES= af_ZA.ISO8859-1 \
en_NZ.ISO8859-1 \
en_US.ISO8859-1 \
es_ES.ISO8859-1 \
+ es_ES.UTF-8 \
et_EE.ISO8859-15 \
fi_FI.ISO8859-1 \
+ fi_FI.UTF-8 \
fr_BE.ISO8859-1 \
+ fr_BE.UTF-8 \
fr_CA.ISO8859-1 \
fr_FR.ISO8859-1 \
+ fr_FR.UTF-8 \
he_IL.UTF-8 \
hi_IN.ISCII-DEV \
hr_HR.ISO8859-2 \
@@ -37,6 +45,7 @@ LOCALES= af_ZA.ISO8859-1 \
hy_AM.UTF-8 \
is_IS.ISO8859-1 \
it_IT.ISO8859-1 \
+ it_IT.UTF-8 \
ja_JP.eucJP \
ja_JP.UTF-8 \
kk_KZ.PT154 \
@@ -47,7 +56,9 @@ LOCALES= af_ZA.ISO8859-1 \
lv_LV.ISO8859-13 \
mn_MN.UTF-8 \
nl_BE.ISO8859-1 \
+ nl_BE.UTF-8 \
nl_NL.ISO8859-1 \
+ nl_NL.UTF-8 \
no_NO.ISO8859-1 \
pl_PL.ISO8859-2 \
pl_PL.UTF-8 \
@@ -110,12 +121,9 @@ ISO8859-1_ISO8859-15= af_ZA ca_AD ca_ES ca_FR ca_IT da_DK de_AT de_CH de_DE \
fi_FI fr_BE fr_CA fr_CH fr_FR \
is_IS it_IT it_CH nl_BE nl_NL nb_NO nn_NO no_NO sv_SE
ISO8859-1_US-ASCII= en_AU en_CA en_GB en_NZ en_US
-ISO8859-1_UTF-8= af_ZA ca_ES da_DK de_AT de_CH de_DE \
- en_AU en_CA en_NZ en_US es_ES \
- fi_FI fr_BE fr_CA fr_FR is_IS it_IT nl_BE \
- nl_NL nb_NO nn_NO no_NO pt_BR sv_SE
+ISO8859-1_UTF-8= af_ZA da_DK de_CH en_AU en_CA en_NZ en_US \
+ fr_CA is_IS nb_NO nn_NO no_NO pt_BR sv_SE
ISO8859-2_UTF-8= hr_HR hu_HU ro_RO sk_SK sl_SI
-ISO8859-7_UTF-8= el_GR
ISO8859-9_UTF-8= tr_TR
ISO8859-13_ISO8859-4= lt_LT
ISO8859-13_UTF-8= lt_LT lv_LV
diff --git a/share/monetdef/ca_ES.UTF-8.src b/share/monetdef/ca_ES.UTF-8.src
new file mode 100644
index 000000000000..4c6c7ff725b2
--- /dev/null
+++ b/share/monetdef/ca_ES.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+.
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+0
+# frac_digits
+0
+# p_cs_precedes
+1
+# p_sep_by_space
+1
+# n_cs_precedes
+1
+# n_sep_by_space
+1
+# p_sign_posn
+1
+# n_sign_posn
+1
+# EOF
diff --git a/share/monetdef/de_AT.UTF-8.src b/share/monetdef/de_AT.UTF-8.src
new file mode 100644
index 000000000000..00da141f1bdb
--- /dev/null
+++ b/share/monetdef/de_AT.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+1
+# p_sep_by_space
+1
+# n_cs_precedes
+1
+# n_sep_by_space
+1
+# p_sign_posn
+1
+# n_sign_posn
+1
+# EOF
diff --git a/share/monetdef/de_DE.UTF-8.src b/share/monetdef/de_DE.UTF-8.src
new file mode 100644
index 000000000000..42179e16a1ba
--- /dev/null
+++ b/share/monetdef/de_DE.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+.
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+1
+# p_sep_by_space
+0
+# n_cs_precedes
+1
+# n_sep_by_space
+0
+# p_sign_posn
+1
+# n_sign_posn
+1
+# EOF
diff --git a/share/monetdef/el_GR.UTF-8.src b/share/monetdef/el_GR.UTF-8.src
new file mode 100644
index 000000000000..9bbf58d4c1b7
--- /dev/null
+++ b/share/monetdef/el_GR.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+.
+# mon_grouping
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+0
+# p_sep_by_space
+1
+# n_cs_precedes
+0
+# n_sep_by_space
+1
+# p_sign_posn
+1
+# n_sign_posn
+1
+# EOF
diff --git a/share/monetdef/es_ES.UTF-8.src b/share/monetdef/es_ES.UTF-8.src
new file mode 100644
index 000000000000..75da5ccfbc45
--- /dev/null
+++ b/share/monetdef/es_ES.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+.
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+1
+# p_sep_by_space
+1
+# n_cs_precedes
+1
+# n_sep_by_space
+1
+# p_sign_posn
+1
+# n_sign_posn
+1
+# EOF
diff --git a/share/monetdef/fi_FI.UTF-8.src b/share/monetdef/fi_FI.UTF-8.src
new file mode 100644
index 000000000000..dbd23b235866
--- /dev/null
+++ b/share/monetdef/fi_FI.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+.
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+0
+# p_sep_by_space
+2
+# n_cs_precedes
+0
+# n_sep_by_space
+2
+# p_sign_posn
+1
+# n_sign_posn
+2
+# EOF
diff --git a/share/monetdef/fr_BE.UTF-8.src b/share/monetdef/fr_BE.UTF-8.src
new file mode 100644
index 000000000000..26548c73c33d
--- /dev/null
+++ b/share/monetdef/fr_BE.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+.
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+0
+# p_sep_by_space
+1
+# n_cs_precedes
+0
+# n_sep_by_space
+1
+# p_sign_posn
+1
+# n_sign_posn
+1
+# EOF
diff --git a/share/monetdef/fr_FR.UTF-8.src b/share/monetdef/fr_FR.UTF-8.src
new file mode 100644
index 000000000000..55ab9358b108
--- /dev/null
+++ b/share/monetdef/fr_FR.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+0
+# p_sep_by_space
+1
+# n_cs_precedes
+0
+# n_sep_by_space
+1
+# p_sign_posn
+1
+# n_sign_posn
+2
+# EOF
diff --git a/share/monetdef/it_IT.UTF-8.src b/share/monetdef/it_IT.UTF-8.src
new file mode 100644
index 000000000000..4c6c7ff725b2
--- /dev/null
+++ b/share/monetdef/it_IT.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+.
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+0
+# frac_digits
+0
+# p_cs_precedes
+1
+# p_sep_by_space
+1
+# n_cs_precedes
+1
+# n_sep_by_space
+1
+# p_sign_posn
+1
+# n_sign_posn
+1
+# EOF
diff --git a/share/monetdef/nl_BE.UTF-8.src b/share/monetdef/nl_BE.UTF-8.src
new file mode 100644
index 000000000000..26548c73c33d
--- /dev/null
+++ b/share/monetdef/nl_BE.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+.
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+0
+# p_sep_by_space
+1
+# n_cs_precedes
+0
+# n_sep_by_space
+1
+# p_sign_posn
+1
+# n_sign_posn
+1
+# EOF
diff --git a/share/monetdef/nl_NL.UTF-8.src b/share/monetdef/nl_NL.UTF-8.src
new file mode 100644
index 000000000000..aab90ca55e34
--- /dev/null
+++ b/share/monetdef/nl_NL.UTF-8.src
@@ -0,0 +1,36 @@
+# $FreeBSD$
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+EUR
+# currency_symbol
+€
+# mon_decimal_point
+,
+# mon_thousands_sep
+
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+1
+# p_sep_by_space
+1
+# n_cs_precedes
+1
+# n_sep_by_space
+1
+# p_sign_posn
+1
+# n_sign_posn
+2
+# EOF
diff --git a/share/syscons/fonts/iso04-wide-8x16.fnt b/share/syscons/fonts/iso04-wide-8x16.fnt
index e216b5b95727..af2bfff5ea30 100644
--- a/share/syscons/fonts/iso04-wide-8x16.fnt
+++ b/share/syscons/fonts/iso04-wide-8x16.fnt
@@ -42,7 +42,7 @@ MS'@``.!@8&!F9FQX;&9FY@`````X&!@8&!@8&!@8&#P``````````.;_V]O;
MP\/#``````````#<9F9F9F9F9@``````````?,;&QL;&QGP``````````-YC
M8V-C8V-^8/````````![QL;&QL;&?@8/````````WG-C8&!@8/``````````
M`'S&P'`<!L9\```````P,##\,#`P,#`V'```````````QL;&QL;&QGL`````
-M`````,;&QL;N?#@0``````````##P]O;V]O_9@``````````````````````
+M`````,;&QL;N?#@0``````````##P]O;V]O_9@``````````QNY\.#A\[L8`
M`````````,/#9F8\&!@P,.````````#^Q@P8,&#&_@`````.&!@8&'!P&!@8
M&`X`````&!@8&!@8&!@8&!@8`````'`8&!@8'AX8&!@8<`````!VW```````
M````````````````````````````````````````````````````````````
diff --git a/share/syscons/fonts/iso05-8x16.fnt b/share/syscons/fonts/iso05-8x16.fnt
index 3fdaa20b9afd..91273a853fec 100644
--- a/share/syscons/fonts/iso05-8x16.fnt
+++ b/share/syscons/fonts/iso05-8x16.fnt
@@ -40,7 +40,7 @@ M`'S&_L#`QGP````````X;&1@\&!@8&#P````````````=LS,S,S,?`S,>```
M`.!@8&QV9F9F9N8````````8&``X&!@8&!@\````````!@8`#@8&!@8&!F9F
M/````.!@8&9L>'AL9N8````````X&!@8&!@8&!@\````````````[/[6UM;6
MQ@```````````-QF9F9F9F8```````````!\QL;&QL9\````````````W&9F
-M9F9F?&!@\`````````````````````````````#<=F9@8&#P````````````
+M9F9F?&!@\````````';,S,S,S'P,#!X```````#<=F9@8&#P````````````
M?,9@.`S&?````````!`P,/PP,#`P-AP```````````#,S,S,S,QV````````
M````9F9F9F8\&````````````,;&UM;6_FP```````````#&;#@X.&S&````
M````````QL;&QL;&?@8,^````````/[,&#!@QOX````````.&!@8<!@8&!@.
diff --git a/share/syscons/keymaps/us.dvorakp.kbd b/share/syscons/keymaps/us.dvorakp.kbd
index e6d4d91259b8..b16d3398757a 100644
--- a/share/syscons/keymaps/us.dvorakp.kbd
+++ b/share/syscons/keymaps/us.dvorakp.kbd
@@ -113,5 +113,4 @@
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
-
+ 108 nop nop nop nop nop nop nop nop O