Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile
===================================================================
--- head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile (revision 51263)
+++ head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile (revision 51264)
@@ -1,117 +1,64 @@
# $FreeBSD$
.if exists(../Makefile.conf)
.include "../Makefile.conf"
.endif
.if exists(../Makefile.inc)
.include "../Makefile.inc"
.endif
RELN_ROOT?= ${.CURDIR}
_OS?= FreeBSD
_REVISION?= 12.0
_BRANCH?= RELEASE
THISRELEASE?= ${_OS}-${_REVISION}-${_BRANCH}
DOCS= index.xml \
schedule.xml
DATA= docbook.css
+SUBDIR= errata readme relnotes
+
+.if defined(MAN4DIR) && !empty(MAN4DIR)
+SUBDIR+= hardware
+.endif
+
# PGP-signed checksums
_BIGIRON?= amd64 \
i386 \
powerpc \
powerpc-powerpc64 \
sparc64 \
arm64-aarch64
_VMS?= amd64 \
i386 \
arm64-aarch64
_ARM?= BANANAPI \
BEAGLEBONE \
CUBIEBOARD \
CUBIEBOARD2 \
CUBOX-HUMMINGBOARD \
GUMSTIX \
PANDABOARD \
RPI-B \
RPI2 \
WANDBOARD
.for CHECKSUM in SHA512 SHA256
. for _B in ${_BIGIRON}
#DATA+= CHECKSUM.${CHECKSUM}-${THISRELEASE}-${_B}.asc
. endfor
. for _V in ${_VMS}
#DATA+= CHECKSUM.${CHECKSUM}-${THISRELEASE}-${_V}-vm.asc
. endfor
. for _A in ${_ARM}
#DATA+= CHECKSUM.${CHECKSUM}-${THISRELEASE}-arm-armv6-${_A}.asc
. endfor
-.endfor
-
-_hardware?= hardware
-
-# The path used on build-web is 'src/share/man/man4'.
-.if !defined(MAN4DIR) || empty(MAN4DIR)
-. if exists(${DOC_PREFIX}/../src/share/man/man4)
-MAN4DIR= ${DOC_PREFIX}/../src/share/man/man4
-. elif exists(${DOC_PREFIX}/../share/man/man4)
-MAN4DIR= ${DOC_PREFIX}/../share/man/man4
-. elif exists(${DOC_PREFIX}/../man/man4)
-MAN4DIR= ${DOC_PREFIX}/../man/man4
-. elif exists(${DOC_PREFIX}/../man4)
-MAN4DIR= ${DOC_PREFIX}/../man4
-. else
-. warning "MAN4DIR not found. Unable to build hardware.html"
-_hardware= # empty
-. endif
-.endif
-
-D= errata
-D+= ${_hardware}
-D+= readme
-D+= relnotes
-
-MAN4PAGES?= ${MAN4DIR}/*.4 ${MAN4DIR}/man4.*/*.4
-ARCHLIST?= ${.CURDIR}/../../share/misc/dev.archlist.txt
-CLEANFILES+= dev-auto.ent \
- index.html \
- schedule.html
-
-MAN2HWNOTES_CMD=${.CURDIR}/../../share/misc/man2hwnotes.pl
-.if defined(HWNOTES_MI)
-MAN2HWNOTES_FLAGS=
-.else
-MAN2HWNOTES_FLAGS= -c
-.endif
-
-dev-auto.ent:
- ${PERL} ${MAN2HWNOTES_CMD} ${MAN2HWNOTES_FLAGS} -a ${ARCHLIST} -o ${.TARGET}.tmp ${MAN4PAGES}
- ${MV} ${.TARGET}.tmp ${.TARGET}
-
-.if make(clean)
-beforeclean:
-SUBDIR+= ${D}
-.include "${DOC_PREFIX}/share/mk/doc.subdir.mk"
-.endif
-
-beforeinstall:
-.for _SD in ${D}
-. if (${_SD:Mhardware} != "")
- ${MAKE} -B -C ${.CURDIR} dev-auto.ent
-. endif
- ${MAKE} -C ${_SD} DOCINSTALLDIR=${DOCINSTALLDIR} all
-.endfor
-
-afterinstall:
-.for _SD in ${D}
- ${MAKE} -C ${_SD} DOCINSTALLDIR=${DOCINSTALLDIR} install
.endfor
.include "${DOC_PREFIX}/share/mk/web.site.mk"
Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile.inc
===================================================================
--- head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile.inc (nonexistent)
+++ head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile.inc (revision 51264)
@@ -0,0 +1,12 @@
+# $FreeBSD$
+.if !defined(_HTDOCS_RELEASES_12_0R_INC)
+_HTDOCS_RELEASES_12_0R_INC=1
+DOC_PREFIX?= ${.CURDIR}/../../../../..
+WEBDIR?= /data/releases/12.0R
+.if defined(DESTDIR)
+DESTDIR:= ${DESTDIR}/${WEBDIR}
+.else
+DESTDIR= ${HOME}/public_html/${WEBDIR}
+.endif
+DOCBOOK_DEPS_DISABLE= YES
+.endif
Property changes on: head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile.inc
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+FreeBSD=%H
\ No newline at end of property
Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/errata/Makefile
===================================================================
--- head/en_US.ISO8859-1/htdocs/releases/12.0R/errata/Makefile (revision 51263)
+++ head/en_US.ISO8859-1/htdocs/releases/12.0R/errata/Makefile (revision 51264)
@@ -1,34 +1,12 @@
# $FreeBSD$
-.if exists(../Makefile.conf)
-.include "../Makefile.conf"
-.endif
.if exists(../Makefile.inc)
.include "../Makefile.inc"
.endif
-DOC_PREFIX?= ${.CURDIR}/../../../../..
-RELN_ROOT?= ${.CURDIR}/..
-
DOC?= errata
-FORMATS?= html
+FORMATS?= html txt
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED=
-
-JADEFLAGS+= -V %generate-article-toc%
-
-SRCS?= errata.xml
-
-DATA+= ${DOC}.html
-
-CLEANFILES+= ${DOC}.html \
- ${DOC}.txt \
- catalog-cwd.xml \
- autogen.ent \
- ${DOC}.parsed.*
-
-install: ${DOC}.html
- mkdir -p ${DOCINSTALLDIR}
- ${INSTALL_DOCS} ${DATA} ${DOCINSTALLDIR}
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/Makefile
===================================================================
--- head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/Makefile (revision 51263)
+++ head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/Makefile (revision 51264)
@@ -1,34 +1,32 @@
# $FreeBSD$
-.if exists(../Makefile.conf)
-.include "../Makefile.conf"
-.endif
.if exists(../Makefile.inc)
.include "../Makefile.inc"
.endif
-DOC_PREFIX?= ${.CURDIR}/../../../../..
-RELN_ROOT?= ${.CURDIR}/..
+# The path used on build-web is 'src/share/man/man4'.
+.if make(all) && (!defined(MAN4DIR) || empty(MAN4DIR) || !exists(${MAN4DIR}))
+. warning "MAN4DIR not found. Unable to build hardware.html"
+.endif
-JADEFLAGS+= -V %generate-article-toc%
+MAN4PAGES?= ${MAN4DIR}/*.4 ${MAN4DIR}/man4.*/*.4
+ARCHLIST?= ${DOC_PREFIX}/share/misc/dev.archlist.txt
-DOC?= hardware
+MAN2HWNOTES_CMD=${DOC_PREFIX}/share/misc/man2hwnotes.pl
+.if defined(HWNOTES_MI)
+MAN2HWNOTES_FLAGS=
+.else
+MAN2HWNOTES_FLAGS= -c
+.endif
+
+DOC= hardware
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED=
-SRCS?= hardware.xml
-
-DATA+= ${DOC}.html
-
-CLEANFILES+= ${DOC}.html \
- ${DOC}.txt \
- catalog-cwd.xml \
- autogen.ent \
- ${DOC}.parsed.*
-
-install: ${DOC}.html
- mkdir -p ${DOCINSTALLDIR}
- ${INSTALL_DOCS} ${DATA} ${DOCINSTALLDIR}
+hardware.parsed.xml: dev-auto.ent
+dev-auto.ent:
+ ${PERL} ${MAN2HWNOTES_CMD} ${MAN2HWNOTES_FLAGS} -a ${ARCHLIST} -o ${.TARGET} ${MAN4PAGES} || (rm -f ${.TARGET})
+CLEANFILES+= dev-auto.ent
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/hardware.xml
===================================================================
--- head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/hardware.xml (revision 51263)
+++ head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/hardware.xml (revision 51264)
@@ -1,1479 +1,1482 @@
+ "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
+
%release;
-
+
%sponsor;
-
+
%vendor;
-
-
+
%devauto;
]>
&os; &release.current; Hardware NotesThe &os; Documentation Project$FreeBSD$200020012002200320042005200620072008200920102011201220132014201520162017The &os; Documentation
Project
&tm-attrib.freebsd;
&tm-attrib.amd;
&tm-attrib.fujitsu;
&tm-attrib.ibm;
&tm-attrib.intel;
&tm-attrib.sparc;
&tm-attrib.sun;
&tm-attrib.general;
IntroductionThis document contains the hardware compatibility notes for
&os; &release.current;. It lists the hardware platforms
supported by &os;, as well as the various types of hardware
devices (storage controllers, network interfaces, and so on),
along with known working instances of these devices.Supported Processors and System BoardsThis section provides some architecture-specific information
about the specific processors and systems that are supported by
each architecture.amd64Since mid-2003 &os;/&arch.amd64; has supported the AMD64
(Hammer) and &intel; EM64T architecture, and is
now one of the Tier-1 platforms (fully supported
architecture), which are expected to be Production Quality
with respects to all aspects of the &os; operating system,
including installation and development environments.Note that there are two names for this architecture, AMD64
(AMD) and Intel EM64T (Extended Memory 64-bit Technology).
64-bit mode of the two architectures are almost compatible
with each other, and &os;/&arch.amd64; supports them
both.As of this writing, the following processors are
supported:&amd.athlon;64 (Clawhammer).&amd.opteron; (Sledgehammer).&amd.sempron;.&amd.turion;.&amd.phenom;.All multi-core &intel; &xeon; processors except
Sossaman have EM64T support.The single-core &intel; &xeon; processors
Nocona, Irwindale,
Potomac, and Cranford have
EM64T support.All &intel; &core; 2 (not &core; Duo) and later
processorsAll &intel; &core; i range of processorsAll &intel; &pentium; D processorsAll &intel; ¢rino; Duo and ¢rino; Pro
platforms&intel; &pentium; 4s and &celeron; Ds using
the Cedar Mill core have EM64T
support.Some &intel; &pentium; 4s and &celeron; Ds using the
Prescott core have EM64T support. See the
Intel
Processor Spec Finder for the definitive answer
about EM64T support in Intel processors.&intel; EM64T is an extended version of IA-32 (x86) and
different from &intel; IA-64 (Itanium) architecture. Some of
&intel;'s old documentation refers to &intel; EM64T as
64-bit extension technology or
IA-32e.Both Uniprocessor (UP) and Symmetric Multi-processor (SMP)
configurations are supported.In many respects, &os;/&arch.amd64; is similar to
&os;/&arch.i386;, in terms of drivers supported. Generally,
drivers that already function correctly on other 64-bit
platforms should work.i386&os;/&arch.i386; runs on a wide variety of IBM PC
compatible machines. Due to the wide range of
hardware available for this architecture, it is impossible
to exhaustively list all combinations of equipment supported
by &os;. Nevertheless, some general guidelines are
presented here.Almost all &i386;-compatible processors with a floating
point unit are supported. All &intel; processors beginning
with the 80486 are supported, including the 80486, &pentium;,
&pentium; Pro, &pentium; II, &pentium; III, &pentium; 4, and
variants thereof, such as the &xeon; and &celeron; processors.
All &i386;-compatible AMD processors are also supported,
including the &am486;, &am5x86;, K5, &amd.k6; (and variants),
&amd.athlon; (including Athlon-MP, Athlon-XP, Athlon-4, and
Athlon Thunderbird), and &amd.duron; processors. The AMD
Élan SC520 embedded processor is supported. The
Transmeta Crusoe is recognized and supported, as are
&i386;-compatible processors from Cyrix and NexGen.There is a wide variety of motherboards available for this
architecture. Motherboards using the ISA, VLB, EISA, AGP, and
PCI expansion buses are well-supported. There is some
limited support for the MCA (MicroChannel)
expansion bus used in the IBM PS/2 line of PCs.Symmetric multi-processor (SMP) systems are generally
supported by &os;, although in some cases, BIOS or motherboard
bugs may generate some problems. Perusal of the archives of
the &a.smp; may yield some clues.&os; will take advantage of SMT (Symmetric MultiThreading,
also known as HyperThreading on &intel; CPUs) on the supported
CPUs. The GENERIC kernel which is
installed by default will automatically detect the additional
logical processors. The default &os; scheduler recognizes
processor topology on the system and selects logical and
physical processors to obtain optimal performance.
The &man.smp.4; manual page has more details.&os; will take advantage of Physical Address Extensions
(PAE) support on CPUs that support this feature. A kernel
with the PAE feature enabled will detect
memory above 4 gigabytes and allow it to be used by the
system. This feature places constraints on the device drivers
and other features of &os; which may be used; consult the
&man.pae.4; manual page for more details.&os; will generally run on i386-based laptops, albeit with
varying levels of support for certain hardware features such
as sound, graphics, power management, and PCCARD expansion
slots. These features tend to vary in idiosyncratic ways
between machines, and frequently require special-case support
in &os; to work around hardware bugs or other oddities. When
in doubt, a search of the archives of the &a.mobile; may be
useful.Most modern laptops (as well as many desktops) use the
Advanced Configuration and Power Management (ACPI) standard.
&os; supports ACPI via the ACPI Component Architecture
reference implementation from &intel;, as described in the
&man.acpi.4; manual page. The use of ACPI causes
instabilities on some machines and it may be necessary to
disable the ACPI driver, which is normally loaded via a kernel
module. This may be accomplished by adding the following line
to /boot/device.hints:hint.acpi.0.disabled="1"Users debugging ACPI-related problems may find it useful
to disable portions of the ACPI functionality. The
&man.acpi.4; manual page has more information on how to do
this via loader tunables.ACPI depends on a Differentiated System Descriptor Table
(DSDT) provided by each machine's BIOS. Some machines have
bad or incomplete DSDTs, which prevents ACPI from functioning
correctly. Replacement DSDTs for some machines can be found
at the DSDT
section of the ACPI4Linux
project Web site. &os; can use these DSDTs to override the
DSDT provided by the BIOS; see the &man.acpi.4; manual page
for more information.powerpcAll Apple PowerPC machines with built-in USB are
supported, as well a limited selection of non-Apple machines,
including KVM on POWER7SMP is supported on all systems with more than
1 processor.sparc64This section describes the systems currently known to be
supported by &os; on the Fujitsu &sparc64; and Sun
&ultrasparc; platforms.SMP is supported on all systems with more than 1
processor.When using the GENERIC kernel,
&os;/&arch.sparc64; systems not equipped with a framebuffer
supported by the &man.creator.4; (Sun Creator, Sun Creator3D
and Sun Elite3D) or &man.machfb.4; (Sun PGX and Sun PGX64 as
well as the ATI Mach64 chips found onboard in for example
&sun.blade; 100, &sun.blade; 150, &sun.ultra; 5 and
&sun.ultra; 10) driver must use the serial console.If you have a system that is not listed here, it may not
have been tested with &os; &release.current;. We encourage
you to try it and send a note to the &a.sparc; with your
results, including which devices work and which do not.The following systems are fully supported by &os;:Naturetech GENIALstation 777S&sun.blade; 100&sun.blade; 150&sun.enterprise; 150&sun.enterprise; 220R&sun.enterprise; 250&sun.enterprise; 420R&sun.enterprise; 450&sun.fire; B100s (support for the on-board NICs first
appeared in 8.1-RELEASE)&sun.fire; V100&sun.fire; V120Sun &netra; t1 100/105Sun &netra; T1 AC200/DC200Sun &netra; t 1100Sun &netra; t 1120Sun &netra; t 1125Sun &netra; t 1400/1405Sun &netra; 120Sun &netra; X1Sun &sparcengine; Ultra AX1105Sun &sparcengine; Ultra AXeSun &sparcengine; Ultra AXiSun &sparcengine; Ultra AXmpSun &sparcengine; CP1500&sun.ultra; 1&sun.ultra; 1E&sun.ultra; 2&sun.ultra; 5&sun.ultra; 10&sun.ultra; 30&sun.ultra; 60&sun.ultra; 80&sun.ultra; 450The following systems are partially supported by &os;. In
particular the fiber channel controllers in SBus-based systems
are not supported. However, it is possible to use these with
a SCSI controller supported by the &man.esp.4; driver (Sun ESP
SCSI, Sun FAS Fast-SCSI and Sun FAS366 Fast-Wide SCSI
controllers).&sun.enterprise; 3500&sun.enterprise; 4500Starting with 7.2-RELEASE, &arch.sparc64; systems based on
Sun &ultrasparc; III and beyond are also supported by &os;,
which includes the following known working systems:&sun.blade; 1000&sun.blade; 1500&sun.blade; 2000&sun.blade; 2500&sun.fire; 280R&sun.fire; V210&sun.fire; V215 (support first appeared in 7.3-RELEASE
and 8.1-RELEASE)&sun.fire; V240&sun.fire; V245 (support first appeared in 7.3-RELEASE
and 8.1-RELEASE)&sun.fire; V250&sun.fire; V440 (support for the on-board NICs first
appeared in 7.3-RELEASE and 8.0-RELEASE)&sun.fire; V480 (501-6780 and 501-6790 centerplanes
only, for which support first appeared in 7.3-RELEASE and
8.1-RELEASE, other centerplanes might work beginning with
8.3-RELEASE and 9.0-RELEASE)&sun.fire; V880&sun.fire; V890 (support first appeared in 7.4-RELEASE
and 8.1-RELEASE, non-mixed &ultrasparc; IV/IV+
CPU-configurations only)&netra; 20/&netra; T4The following Sun &ultrasparc; systems are not tested but
believed to be also supported by &os;:&sun.fire; V125&sun.fire; V490 (support first appeared in 7.4-RELEASE
and 8.1-RELEASE, non-mixed &ultrasparc; IV/IV+
CPU-configurations only)Starting with 7.4-RELEASE and 8.1-RELEASE, &arch.sparc64;
systems based on Fujitsu &sparc64; V are also supported by
&os;, which includes the following known working
systems:Fujitsu &primepower; 250The following Fujitsu &primepower; systems are not tested
but believed to be also supported by &os;:Fujitsu &primepower; 450Fujitsu &primepower; 650Fujitsu &primepower; 850Supported DevicesThis section describes the devices currently known to be
supported by &os;. Other configurations may also work, but
simply have not been tested yet. Feedback, updates, and
corrections to this list are encouraged.Where possible, the drivers applicable to each device or
class of devices is listed. If the driver in question has a
manual page in the &os; base distribution (most should), it is
referenced here. Information on specific models of supported
devices, controllers, etc. can be found in the manual
pages.The device lists in this document are being generated
automatically from &os; manual pages. This means that some
devices, which are supported by multiple drivers, may appear
multiple times.Disk Controllers[&arch.amd64;, &arch.i386;, &arch.sparc64;]
IDE/ATA controllers (&man.ata.4; driver)
&hwlist.aac;
&hwlist.adv;
&hwlist.adw;
&hwlist.aha;
&hwlist.ahc;
&hwlist.ahci;
&hwlist.ahd;
&hwlist.aic;
&hwlist.amr;
&hwlist.arcmsr;
&hwlist.bt;
&hwlist.ciss;
&hwlist.dpt;
[&arch.amd64;, &arch.i386;] Booting from these
controllers is supported. EISA adapters are not
supported.
&hwlist.esp;
&hwlist.hpt27xx;
&hwlist.hptiop;
&hwlist.hptmv;
&hwlist.hptrr;
&hwlist.ida;
&hwlist.iir;
&hwlist.ips;
&hwlist.isci;
&hwlist.isp;
&hwlist.mfi;
&hwlist.mlx;
[&arch.amd64;, &arch.i386;] Booting from these
controllers is supported. EISA adapters are not
supported.
&hwlist.mly;
&hwlist.mpr;
&hwlist.mps;
&hwlist.mpt;
&hwlist.mrsas;
&hwlist.mvs;
&hwlist.ncr;
&hwlist.ncv;
&hwlist.nsp;
&hwlist.pms;
&hwlist.pst;
&hwlist.siis;
&hwlist.stg;
&hwlist.sym;
&hwlist.trm;
&hwlist.twa;
&hwlist.twe;
&hwlist.tws;
&hwlist.vpo;
With all supported SCSI controllers, full support is
provided for SCSI-I, SCSI-II, and SCSI-III peripherals,
including hard disks, optical disks, tape drives (including
DAT, 8mm Exabyte, Mammoth, and DLT), medium changers,
processor target devices and CD-ROM drives. WORM devices that
support CD-ROM commands are supported for read-only access by
the CD-ROM drivers (such as &man.cd.4;). WORM/CD-R/CD-RW
writing support is provided by &man.cdrecord.1;, which is
a part of the sysutils/cdrtools port in the
Ports Collection.The following CD-ROM type systems are supported at this
time:SCSI interface (also includes ProAudio Spectrum and
SoundBlaster SCSI) (&man.cd.4;)ATAPI IDE interface (&man.acd.4;)Ethernet Interfaces
&hwlist.ae;
&hwlist.age;
&hwlist.ale;
&hwlist.aue;
&hwlist.axe;
ASIX Electronics AX88178A/AX88179 USB Gigabit Ethernet
adapters (&man.axge.4; driver)
&hwlist.bce;
[&arch.amd64;, &arch.i386;] Broadcom BCM4401 based Fast
Ethernet adapters (&man.bfe.4; driver)
&hwlist.bge;
&hwlist.bnxt;
&hwlist.bxe;
&hwlist.cas;
&hwlist.cdce;
[&arch.amd64;, &arch.i386;] Crystal Semiconductor
CS89x0-based NICs (&man.cs.4; driver)
&hwlist.cue;
&hwlist.cxgb;
&hwlist.cxgbe;
&hwlist.dc;
&hwlist.de;
&hwlist.ed;
&hwlist.em;
&hwlist.ep;
Agere ET1310 Gigabit Ethernet adapters
(&man.et.4; driver)
&hwlist.ex;
&hwlist.fe;
&hwlist.fxp;
&hwlist.gem;
&hwlist.hme;
&hwlist.ipheth;
&hwlist.ixgb;
&hwlist.ixgbe;
&hwlist.ixl;
&hwlist.jme;
&hwlist.kue;
&hwlist.lge;
&hwlist.mlx4en;
&hwlist.mlx5en;
&hwlist.msk;
&hwlist.mxge;
&hwlist.my;
&hwlist.nfe;
&hwlist.nge;
&hwlist.nxge;
&hwlist.oce;
&hwlist.pcn;
&hwlist.qlxgb;
&hwlist.qlxgbe;
&hwlist.qlxge;
&hwlist.re;
&hwlist.rl;
&hwlist.rue;
&hwlist.sf;
&hwlist.sfxge;
&hwlist.sge;
&hwlist.sis;
&hwlist.sk;
&hwlist.smsc;
&hwlist.sn;
&hwlist.ste;
&hwlist.stge;
&hwlist.ti;
&hwlist.tl;
[&arch.amd64;, &arch.i386;] SMC 83c17x
(EPIC)-based Ethernet NICs (&man.tx.4; driver)
&hwlist.txp;
&hwlist.udav;
&hwlist.urndis;
&hwlist.vge;
&hwlist.vr;
&hwlist.vte;
&hwlist.vx;
&hwlist.vxge;
&hwlist.wb;
&hwlist.xe;
&hwlist.xl;
FDDI Interfaces[&arch.i386;] DEC DEFPA PCI (&man.fpa.4; driver)[&arch.i386;] DEC DEFEA EISA (&man.fpa.4; driver)Wireless Network Interfaces[&arch.amd64;, &arch.i386;] Cisco/Aironet
802.11b wireless adapters (&man.an.4; driver)
&hwlist.ath;
&hwlist.bwi;
&hwlist.bwn;
[&arch.i386;, &arch.amd64;] Intel PRO/Wireless 2100
MiniPCI network adapter (&man.ipw.4; driver)[&arch.i386;, &arch.amd64;] Intel PRO/Wireless
2200BG/2915ABG MiniPCI and 2225BG PCI network adapters
(&man.iwi.4; driver)[&arch.i386;, &arch.amd64;] Intel Dual Band Wireless AC
3160/7260/7265 IEEE 802.11ac network adapters (&man.iwm.4;
driver)[&arch.i386;, &arch.amd64;] Intel Wireless WiFi Link
4965AGN IEEE 802.11n PCI network adapters
(&man.iwn.4; driver)[&arch.i386;, &arch.amd64;] Marvell Libertas IEEE
802.11b/g PCI network adapters (&man.malo.4; driver)Marvell 88W8363 IEEE 802.11n wireless network
adapters (&man.mwl.4; driver)
&hwlist.otus;
&hwlist.ral;
&hwlist.rsu;
Realtek RTL8192C, RTL8188E, RTL8812A and RTL8821A based
PCIe IEEE 802.11b/g/n wireless network adapters (&man.rtwn.4;
driver)
&hwlist.rum;
&hwlist.run;
&hwlist.uath;
&hwlist.upgt;
&hwlist.ural;
&hwlist.urtw;
[&arch.amd64;, &arch.i386;] Lucent
Technologies WaveLAN/IEEE 802.11b wireless network adapters
and workalikes using the Lucent Hermes, Intersil PRISM-II,
Intersil PRISM-2.5, Intersil Prism-3, and Symbol Spectrum24
chipsets (&man.wi.4; driver)[&arch.i386;, &arch.amd64;] Intel PRO/Wireless 3945ABG
MiniPCI network adapters (&man.wpi.4; driver)
&hwlist.zyd;
Miscellaneous Networks
&hwlist.ce;
&hwlist.cx;
&hwlist.cp;
&hwlist.ctau;
&hwlist.cm;
Serial Interfaces[&arch.amd64;, &arch.i386;] PC standard
8250, 16450, and 16550-based serial ports (&man.sio.4;
driver)
&hwlist.uart;
&hwlist.scc;
[&arch.amd64;, &arch.i386;] AST 4 port serial card using
shared IRQARNET 8 port serial card using shared IRQARNET (now Digiboard) Sync 570/i high-speed
serial[&arch.i386;] Boca multi-port serial cardsBoca BB1004 4-Port serial card (Modems
not supported)Boca IOAT66 6-Port serial card (Modems
supported)Boca BB1008 8-Port serial card (Modems
not supported)Boca BB2016 16-Port serial card (Modems
supported)[&arch.i386;] Comtrol Rocketport card (&man.rp.4;
driver)[&arch.i386;] Cyclades Cyclom-Y serial board (&man.cy.4;
driver)[&arch.i386;] STB 4 port card using shared IRQ[&arch.amd64;, &arch.i386;] PCI-Based multi-port serial
boards (&man.puc.4; driver)[&arch.amd64;, &arch.i386;] Actiontech 56K PCI[&arch.amd64;, &arch.i386;] Avlab Technology, PCI IO
2S and PCI IO 4S[&arch.amd64;, &arch.i386;] Comtrol RocketPort
550[&arch.amd64;, &arch.i386;] Decision Computers PCCOM
4-port serial and dual port RS232/422/485[&arch.amd64;, &arch.i386;] Dolphin Peripherals
4025/4035/4036[&arch.amd64;, &arch.i386;] IC Book Labs Dreadnought
16x Lite and Pro[&arch.amd64;, &arch.i386;] Lava Computers
2SP-PCI/DSerial-PCI/Quattro-PCI/Octopus-550[&arch.amd64;, &arch.i386;] Middle Digital, Weasle
serial port[&arch.amd64;, &arch.i386;] Moxa Industio CP-114,
Smartio C104H-PCI and C168H/PCI[&arch.amd64;, &arch.i386;] NEC PK-UG-X001 and
PK-UG-X008[&arch.amd64;, &arch.i386;] Netmos NM9835
PCI-2S-550[&arch.amd64;, &arch.i386;] Oxford Semiconductor
OX16PCI954 PCI UART[&arch.amd64;, &arch.i386;] Syba Tech SD-LAB
PCI-4S2P-550-ECP[&arch.amd64;, &arch.i386;] SIIG Cyber I/O PCI
16C550/16C650/16C850[&arch.amd64;, &arch.i386;] SIIG Cyber 2P1S PCI
16C550/16C650/16C850[&arch.amd64;, &arch.i386;] SIIG Cyber 2S1P PCI
16C550/16C650/16C850[&arch.amd64;, &arch.i386;] SIIG Cyber 4S PCI
16C550/16C650/16C850[&arch.amd64;, &arch.i386;] SIIG Cyber Serial (Single
and Dual) PCI 16C550/16C650/16C850[&arch.amd64;, &arch.i386;] Syba Tech
Ltd. PCI-4S2P-550-ECP[&arch.amd64;, &arch.i386;] Titan PCI-200H and
PCI-800H[&arch.amd64;, &arch.i386;] US Robotics (3Com) 3CP5609
modem[&arch.amd64;, &arch.i386;] VScom PCI-400 and
PCI-800
&hwlist.rc;
Sound Devices
&hwlist.snd.ad1816;
&hwlist.snd.als4000;
&hwlist.snd.atiixp;
&hwlist.snd.audiocs;
&hwlist.snd.cmi;
&hwlist.snd.cs4281;
&hwlist.snd.csa;
&hwlist.snd.ds1;
&hwlist.snd.emu10k1;
&hwlist.snd.emu10kx;
&hwlist.snd.envy24;
&hwlist.snd.envy24ht;
&hwlist.snd.es137x;
&hwlist.snd.ess;
&hwlist.snd.fm801;
&hwlist.snd.gusc;
&hwlist.snd.hda;
&hwlist.snd.hdspe;
&hwlist.snd.ich;
&hwlist.snd.maestro;
&hwlist.snd.maestro3;
&hwlist.snd.mss;
&hwlist.snd.neomagic;
&hwlist.snd.sbc;
&hwlist.snd.solo;
&hwlist.snd.spicds;
&hwlist.snd.t4dwave;
&hwlist.snd.via8233;
&hwlist.snd.via82c686;
&hwlist.snd.vibes;
Camera and Video Capture Devices
&hwlist.bktr;
[&arch.i386;] Connectix QuickCamUSB Devices[&arch.amd64;, &arch.i386;] A
range of USB peripherals are supported; devices known to work
are listed in this section. Owing to the generic nature of
most USB devices, with some exceptions any device of a given
class will be supported, even if not explicitly listed
here.[&arch.amd64;, &arch.i386;]
USB Ethernet adapters can be found in the section listing
Ethernet
interfaces.[&arch.amd64;, &arch.i386;] USB Bluetooth adapters can
be found in Bluetooth
section.
&hwlist.ohci;
&hwlist.uhci;
[&arch.amd64;, &arch.i386;] USB
2.0 controllers using the EHCI interface (&man.ehci.4;
driver)[&arch.amd64;, &arch.i386;] Hubs[&arch.amd64;, &arch.i386;] Keyboards (&man.ukbd.4;
driver)[&arch.amd64;, &arch.i386;] MiscellaneousAssist Computer Systems PC Camera C-M1ActiveWire I/O BoardCreative Technology Video Blaster WebCam PlusD-Link DSB-R100 USB Radio (&man.ufm.4; driver)Mirunet AlphaCam Plus
&hwlist.urio;
&hwlist.umodem;
[&arch.amd64;, &arch.i386;] Mice (&man.ums.4;
driver)
&hwlist.ulpt;
&hwlist.ubsa;
&hwlist.ubser;
&hwlist.uftdi;
&hwlist.uplcom;
&hwlist.umct;
&hwlist.umass;
[&arch.amd64;, &arch.i386;] Audio Devices
(&man.uaudio.4; driver)
&hwlist.uvisor;
IEEE 1394 (Firewire) Devices
&hwlist.fwohci;
[&arch.amd64;, &arch.i386;, &arch.sparc64;] Serial Bus
Protocol 2 (SBP-2) storage devices (&man.sbp.4; driver)Bluetooth Devices
&hwlist.ng.bt3c;
&hwlist.ng.ubt;
Cryptographic Accelerators
&hwlist.hifn;
&hwlist.safe;
&hwlist.ubsec;
Miscellaneous[&arch.amd64;, &arch.i386;] FAX-Modem/PCCARDMELCO IGM-PCM56K/IGM-PCM56KHNokia Card Phone 2.0 (gsm900/dcs1800 HSCSD
terminal)[&arch.amd64;, &arch.i386;] Floppy drives
(&man.fdc.4; driver)[&arch.amd64;, &arch.i386;] VGA-compatible video cards
(&man.vga.4; driver)Information regarding specific video cards and
compatibility with Xorg can be
found at http://www.x.org/.[&arch.amd64;, &arch.i386;] Keyboards including:[&arch.i386;] AT-style keyboards (&man.atkbd.4;
driver)[&arch.amd64;, &arch.i386;] PS/2 keyboards
(&man.atkbd.4; driver)[&arch.amd64;, &arch.i386;]
USB keyboards (&man.ukbd.4; driver)[&arch.amd64;, &arch.i386;]
Pointing devices including:[&arch.amd64;, &arch.i386;] Bus mice and
compatible devices (&man.mse.4; driver)[&arch.amd64;, &arch.i386;] PS/2 mice and compatible
devices, including many laptop pointing devices
(&man.psm.4; driver)Serial mice and compatible devices[&arch.amd64;, &arch.i386;]
USB mice (&man.ums.4; driver)&man.moused.8; has more information on using pointing
devices with &os;. Information on using pointing devices
with Xorg can be found at http://www.x.org/.[&arch.amd64;, &arch.i386;] PC standard
parallel ports (&man.ppc.4; driver)[&arch.i386;, &arch.amd64;] PC-compatible joysticks
(&man.joy.4; driver)[&arch.i386;] PHS Data Communication Card/PCCARDNTT DoCoMo P-in Comp@ctPanasonic KX-PH405SII MC-P200[&arch.i386;] Xilinx XC6200-based reconfigurable hardware
cards compatible with the HOT1 from Virtual Computers
(xrpu driver).
Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/readme/Makefile
===================================================================
--- head/en_US.ISO8859-1/htdocs/releases/12.0R/readme/Makefile (revision 51263)
+++ head/en_US.ISO8859-1/htdocs/releases/12.0R/readme/Makefile (revision 51264)
@@ -1,34 +1,12 @@
# $FreeBSD$
-.if exists(../Makefile.conf)
-.include "../Makefile.conf"
-.endif
.if exists(../Makefile.inc)
.include "../Makefile.inc"
.endif
-DOC_PREFIX?= ${.CURDIR}/../../../../..
-RELN_ROOT?= ${.CURDIR}/..
-
DOC= readme
-FORMATS?= html
+FORMATS?= html txt
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED=
-
-JADEFLAGS+= -V %generate-article-toc%
-
-SRCS?= readme.xml
-
-DATA+= ${DOC}.html
-
-CLEANFILES+= ${DOC}.html \
- ${DOC}.txt \
- catalog-cwd.xml \
- autogen.ent \
- ${DOC}.parsed.*
-
-install: ${DOC}.html
- mkdir -p ${DOCINSTALLDIR}
- ${INSTALL_DOCS} ${DATA} ${DOCINSTALLDIR}
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/relnotes/Makefile
===================================================================
--- head/en_US.ISO8859-1/htdocs/releases/12.0R/relnotes/Makefile (revision 51263)
+++ head/en_US.ISO8859-1/htdocs/releases/12.0R/relnotes/Makefile (revision 51264)
@@ -1,34 +1,12 @@
# $FreeBSD$
-.if exists(../Makefile.conf)
-.include "../Makefile.conf"
-.endif
.if exists(../Makefile.inc)
.include "../Makefile.inc"
.endif
-DOC_PREFIX?= ${.CURDIR}/../../../../..
-RELN_ROOT?= ${.CURDIR}/..
-
DOC= relnotes
-FORMATS?= html
+FORMATS?= html txt
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED=
-
-JADEFLAGS+= -V %generate-article-toc%
-
-SRCS?= relnotes.xml
-
-DATA+= ${DOC}.html
-
-CLEANFILES+= ${DOC}.html \
- ${DOC}.txt \
- catalog-cwd.xml \
- autogen.ent \
- ${DOC}.parsed.*
-
-install: ${DOC}.html
- mkdir -p ${DOCINSTALLDIR}
- ${INSTALL_DOCS} ${DATA} ${DOCINSTALLDIR}
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
Index: head/en_US.ISO8859-1/htdocs/share/misc/dev.archlist.txt
===================================================================
--- head/en_US.ISO8859-1/htdocs/share/misc/dev.archlist.txt (revision 51263)
+++ head/en_US.ISO8859-1/htdocs/share/misc/dev.archlist.txt (nonexistent)
@@ -1,176 +0,0 @@
-#
-# Copyright (c) 2004-2006 The FreeBSD Project
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-# $FreeBSD$
-#
-
-#
-# This file is used by man2hwnotes.pl to set which drivers are usable
-# on which architectures.
-#
-# Format:
-#
-# Empty lines, and lines beginning with "#" are ignored.
-# [,...]
-#
-aac i386,amd64
-adv i386,amd64
-adw i386,amd64
-aha i386
-ahb i386
-ahd i386,sparc64,amd64
-aic i386,amd64
-amd i386,amd64
-arcmsr i386,amd64
-asr i386
-ath i386,amd64,sparc64
-aue i386,amd64,powerpc
-axe i386,amd64,powerpc
-bce i386,amd64
-bge i386,sparc64,amd64
-bktr i386
-bt i386,amd64
-bxe i386,amd64
-cdce i386,amd64,powerpc
-ciss i386,amd64
-ce i386
-cm i386
-cnw i386,amd64
-cp i386
-ctau i386
-cue i386,amd64,powerpc
-cx i386
-cxgb i386,amd64
-de i386,amd64
-dpt i386,amd64
-ed i386
-ep i386,amd64
-esp sparc64
-ex i386,amd64
-fe i386,amd64
-fwohci i386,sparc64,amd64,powerpc
-hifn i386,amd64
-hpt27xx i386,amd64
-hptiop i386,amd64
-hptmv i386,amd64
-hptrr i386,amd64
-ida i386
-ie i386
-iir i386,amd64
-ips i386,amd64
-isci i386,amd64
-ixgb i386,amd64
-kue i386,amd64,powerpc
-lge i386,amd64
-mfi i386,amd64
-mlx i386,amd64
-mly i386,amd64
-msk i386,amd64
-mxge i386,amd64
-my i386
-ncr i386,amd64
-ncv i386
-nfe i386,amd64
-ng_bt3c i386,amd64
-ng_ubt i386,amd64
-nsp i386
-nxge i386,amd64
-oce i386,amd64
-ohci i386,amd64,powerpc
-oltr i386
-otus i386,amd64
-pcn i386,amd64
-pst i386
-qlxgb amd64
-qlxgbe amd64
-qlxge amd64
-rc i386
-ral i386,amd64
-rsu i386,amd64
-rue i386,amd64
-rum i386,amd64
-run i386,amd64
-safe i386,amd64
-sbp i386,sparc64,amd64
-sfgxe amd64
-sn i386,amd64
-snd_ad1816 i386,amd64
-snd_als4000 i386
-snd_atiixp i386,amd64
-snd_audiocs sparc64
-snd_cmi i386,amd64
-snd_cs4281 i386,amd64
-snd_csa i386,amd64
-snd_ds1 i386,amd64
-snd_emu10k1 i386,amd64
-snd_emu10kx i386,amd64
-snd_envy24 i386,amd64
-snd_envy24ht i386,amd64
-snd_es137x i386,sparc64,amd64
-snd_ess i386,amd64
-snd_fm801 i386,amd64
-snd_gusc i386,amd64
-snd_hda i386,amd64
-snd_hdspe i386,amd64
-snd_ich i386,amd64
-snd_maestro i386,amd64
-snd_maestro3 i386,amd64
-snd_mss i386
-snd_neomagic i386,amd64
-snd_sbc i386,amd64
-snd_solo i386,amd64
-snd_spicds i386,amd64
-snd_t4dwave i386,amd64,sparc64
-snd_via8233 i386,amd64
-snd_via82c686 i386,amd64
-snd_vibes i386,amd64
-stg i386
-ti i386,amd64,sparc64
-tl i386,amd64
-trm i386,amd64
-twa i386,amd64
-twe i386,amd64
-tws i386,amd64
-ubsa i386,amd64
-ubsec i386,amd64
-ubser i386,amd64
-ucycom i386,amd64
-udav i386,amd64
-uftdi i386,amd64
-uhci i386,amd64,powerpc
-ulpt i386,amd64,powerpc
-umass i386,amd64,powerpc
-umodem i386,amd64
-uplcom i386,amd64
-ural i386,amd64
-urio i386,amd64,powerpc
-uvisor i386,amd64
-uvscom i386,amd64
-vpo i386
-vx i386,amd64
-vxge i386,amd64
-wb i386,amd64
-xe i386,amd64
-zyd i386,amd64
Property changes on: head/en_US.ISO8859-1/htdocs/share/misc/dev.archlist.txt
___________________________________________________________________
Deleted: svn:keywords
## -1 +0,0 ##
-FreeBSD=%H
\ No newline at end of property
Index: head/en_US.ISO8859-1/htdocs/share/misc/man2hwnotes.pl
===================================================================
--- head/en_US.ISO8859-1/htdocs/share/misc/man2hwnotes.pl (revision 51263)
+++ head/en_US.ISO8859-1/htdocs/share/misc/man2hwnotes.pl (nonexistent)
@@ -1,534 +0,0 @@
-#!/usr/local/bin/perl -w
-# Emacs should use -*- cperl -*- mode
-#
-# Copyright (c) 2003-2006 Simon L. Nielsen
-# 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$
-#
-
-# Parse the list of supported hardware out of section 4 manual pages
-# and output it on stdout as SGML/DocBook entities.
-
-# The script will look for the following line in the manual page:
-# .Sh HARDWARE
-# and make an entity of the content until the line containing:
-# .Sh
-#
-# For Lists only the first line will be printed. If there are
-# arguments to the .It command, only the argument will be printed.
-
-# Usage:
-# man2hwnotes.pl [-cl] [-d 0-6] [-a ] [-o ]
-# [ ...]
-
-use strict;
-#use warnings;
-use Getopt::Std;
-use Digest::MD5 qw(md5_hex);
-
-# Section from manual page to extract
-my $hwlist_sect = "HARDWARE";
-
-# Override default archtecture list for some devices:
-my $archlist_file = "dev.archlist.txt";
-my %archlist;
-
-# Globals
-my $compat_mode = 0; # Enable compat for old Hardware Notes style
-my $debuglevel = 0;
-my $only_list_out = 0; # Should only lists be generated in the output?
-my @out_lines; # Single lines
-my @out_dev; # Device entities
-
-# Getopt
-my %options = ();
-if (!getopts("a:cd:lo:",\%options)) {
- die("$!: Invalid command line arguments in ", __LINE__, "\n");
-}
-
-if (defined($options{c})) {
- $compat_mode = 1;
-}
-if (defined($options{d})) {
- $debuglevel = $options{d};
-}
-if (defined($options{a})) {
- $archlist_file = $options{a};
-}
-if (defined($options{l})) {
- $only_list_out = 1;
-}
-
-my $outputfile = $options{o};
-
-if ($debuglevel > 0) {
- # Don't do output buffering in debug mode.
- $| = 1;
-}
-
-load_archlist($archlist_file);
-
-if (defined($outputfile)) {
- open(OLDOUT, ">&STDOUT") || die("$!: Could not open STDOUT in ", __LINE__, ".\n");
- open(STDOUT, ">$outputfile") || die("$!: Could not open $outputfile in ", __LINE__, ".\n");
-}
-
-print <
-EOT
-
-if ($only_list_out) {
- # Print the default device preamble entities
- print "\n";
- print "\n";
-}
-
-foreach my $page (@ARGV) {
- if ($page !~ m/\.4$/) {
- dlog(2, "Skipped $page (not *.4)");
- next;
- }
- dlog(2, "Parsing $page");
- parse($page);
-
- if (@out_lines) {
- print join("\n", @out_lines), "\n";
- }
- if (@out_dev) {
- print join("\n", @out_dev), "\n";
- }
-
- @out_lines = ();
- @out_dev = ();
-}
-
-if (defined($outputfile)) {
- open(STDOUT, ">&OLDOUT") || die("$!: Could not open STDOUT in ", __LINE__, ".\n");
- close(OLDOUT) || die("$!: Could not close OLDOUT in ", __LINE__, ".\n");
-}
-
-sub normalize (@) {
- my @lines = @_;
-
- foreach my $l (@lines) {
- $l =~ s/\\&//g;
- $l =~ s:([\x21-\x2f\x5b-\x60\x7b-\x7f]):sprintf("&\#\%d;", ord($1)):eg;
- # Make sure ampersand is encoded as & since jade seems to
- # be confused when it is encoded as & inside an entity.
- $l =~ s/&/&/g;
- }
- return (wantarray) ? @lines : join "", @lines;
-}
-
-sub parse {
- my ($manpage) = @_;
-
- my $cur_mansection;
- my $found_hwlist = 0;
- my %mdocvars;
- $mdocvars{isin_hwlist} = 0;
- $mdocvars{isin_list} = 0;
- $mdocvars{first_para} = 1;
- $mdocvars{parabuf} = "";
- $mdocvars{listtype} = "";
- $mdocvars{it_nr} = 0;
-
- open(MANPAGE, "$manpage") || die("$!: Could not open $manpage in ", __LINE__, ".\n");
- while() {
- chomp;
- my $line = $_;
-
- dlog(5, "Read '$line'");
-
- # Find commands
- if (s/^\.(.*)$/$1/) {
- my $cmd = $1;
-
- # Detect, and ignore, comment lines
- if (s/^\\"(.*)$/$1/) {
- next;
- }
-
- $cmd =~ s/^([^ ]+).*$/$1/;
-
- if (/^Nm "?(\w+)"?/ && !defined($mdocvars{Nm})) {
- dlog(3, "Setting Nm to $1");
- $mdocvars{Nm} = $1;
- # "_" cannot be used for an entity name.
- $mdocvars{EntNm} = $1;
- $mdocvars{EntNm} =~ s,_,.,g;
-
- } elsif (/^Nm$/) {
- if (defined($mdocvars{Nm}) && $mdocvars{Nm} ne "") {
- parabuf_addline(\%mdocvars, "&man.".$mdocvars{EntNm}.".$cur_mansection;");
- } else {
- dlog(2, "Warning: Bad Nm call in $manpage");
- }
-
- } elsif (/^Sh (.+)$/) {
- dlog(4, "Setting section to $1");
- my $cur_section = $1;
-
- flush_out(\%mdocvars);
-
- if ($cur_section =~ /^${hwlist_sect}$/) {
- dlog(2, "Found the device section ${hwlist_sect}");
- $mdocvars{isin_hwlist} = 1;
- $found_hwlist = 1;
- add_sgmltag(\%mdocvars, "&hwlist.preamble.pre; " .
- "&man.".$mdocvars{EntNm}.".$cur_mansection; " .
- "&hwlist.preamble.post;");
- }
- } elsif ($mdocvars{isin_hwlist}) {
- dlog(2, "Found a HWLIST STOP key!");
- add_sgmltag(\%mdocvars, "'>");
- $mdocvars{isin_hwlist} = 0;
- }
- if ($mdocvars{isin_list}) {
- dlog(1, "Warning: Still in list, but just entered new " .
- "section. This is probably due to missing .El; " .
- "check manual page for errors.");
- # If we try to recover from this we will probably
- # just end with bad SGML output and it really
- # should be fixed in the manual page so we don't
- # even try to "fix" this.
- }
-
-
- } elsif (/^Dt ([^ ]+) ([^ ]+)/) {
- dlog(4, "Setting mansection to $2");
- $mdocvars{cur_manname} = lc($1);
- $cur_mansection = $2;
-
- # "_" cannot be used for an entity name.
- $mdocvars{cur_manname} =~ s,_,.,g;
-
- } elsif (/^It ?(.*)$/) {
- my $txt = $1;
-
- $mdocvars{it_nr}++;
-
- # Flush last item
- if ($mdocvars{parabuf} ne "") {
- add_listitem(\%mdocvars);
- }
-
- # Remove quotes, if any.
- $txt =~ s/"(.*)"/$1/;
-
- if ($mdocvars{listtype} eq "column") {
- # Ignore first item when it is likely to be a
- # header.
- if ($mdocvars{it_nr} == 1 && $txt =~ m/^(Em|Sy) /) {
- dlog(2, "Skipping header line in column list");
- next;
- }
- # Only extract the first column.
- $txt =~ s/ Ta /\t/g;
- $txt =~ s/([^\t]+)\t.*/$1/;
- }
-
- # Remove Li commands
- $txt =~ s/^Li //g;
-
- parabuf_addline(\%mdocvars, normalize($txt));
- } elsif (/^Bl/) {
- $mdocvars{isin_list} = 1;
- flush_out(\%mdocvars);
- add_sgmltag(\%mdocvars, "");
-
- if (/-tag/) {
- $mdocvars{listtype} = "tag";
- # YACK! Hack for ata(4)
- if ($mdocvars{Nm} eq "ata") {
- $mdocvars{listtype} = "tagHACK";
- }
- } elsif (/-bullet/) {
- $mdocvars{listtype} = "bullet";
- } elsif (/-column/) {
- $mdocvars{listtype} = "column";
- } else {
- $mdocvars{listtype} = "unknown";
- }
- dlog(2, "Listtype set to $mdocvars{listtype}");
- } elsif (/^El/) {
- if ($mdocvars{parabuf} ne "") {
- add_listitem(\%mdocvars);
- }
-
- add_sgmltag(\%mdocvars, "");
- $mdocvars{isin_list} = 0;
- } elsif (/^Tn (.+)$/) {
- # For now we print TradeName text as regular text.
- my ($txt, $punct_str) = split_punct_chars($1);
-
- parabuf_addline(\%mdocvars, normalize($txt . $punct_str));
- } elsif (/^Xr ([^ ]+) (.+)$/) {
- my ($xr_sect, $punct_str) = split_punct_chars($2);
- my $txt;
-
- # We need to check if the manual page exist to avoid
- # breaking the doc build just because of a broken
- # reference.
- #$txt = "&man.$1.$xr_sect;$punct_str";
- $txt = "$1($xr_sect)$punct_str";
- parabuf_addline(\%mdocvars, normalize($txt));
- } elsif (/^Dq (.+)$/) {
- my ($txt, $punct_str) = split_punct_chars($1);
-
- parabuf_addline(\%mdocvars,
- normalize("$txt$punct_str"));
- } elsif (/^Sx (.+)$/) {
- if ($mdocvars{isin_hwlist}) {
- dlog(1, "Warning: Reference to another section in the " .
- "$hwlist_sect section in " . $mdocvars{Nm} .
- "(${cur_mansection})");
- }
- parabuf_addline(\%mdocvars, normalize($1));
- } elsif (/^Pa (.+)$/) {
- my ($txt, $punct_str) = split_punct_chars($1);
-
- $txt = make_ulink($txt) . $punct_str;
- parabuf_addline(\%mdocvars, normalize($txt));
- } elsif (/^Pp/) {
- dlog(3, "Got Pp command - forcing new para");
- flush_out(\%mdocvars);
- } elsif (/^Fx (.+)/) {
- dlog(3, "Got Fx command");
- parabuf_addline(\%mdocvars, "FreeBSD $1");
- } elsif (/^Fx/) {
- dlog(3, "Got Fx command");
- parabuf_addline(\%mdocvars, "FreeBSD");
- } elsif (/^Em (.+)$/) {
- my ($txt, $punct_str) = split_punct_chars($1);
-
- parabuf_addline(\%mdocvars,
- normalize("$txt$punct_str"));
- } else {
- # Ignore all other commands.
- dlog(3, "Ignoring unknown command $cmd");
- }
- } else {
- # This is then regular text
- parabuf_addline(\%mdocvars, normalize($_));
- }
- }
- close(MANPAGE) || die("$!: Could not close $manpage in ", __LINE__, ".\n");
- if (! $found_hwlist) {
- dlog(2, "Hardware list not found in $manpage");
- }
-}
-
-sub dlog {
- my ($level, $txt) = @_;
-
- if ($level <= $debuglevel) {
- print STDERR "$level: $txt\n";
- }
-}
-
-# Output a SGML tag.
-sub add_sgmltag {
- my ($mdocvars, $txt) = (@_);
-
- # We only care about the HW list for now.
- if (${$mdocvars}{isin_hwlist}) {
- push(@out_dev, $txt);
- }
-}
-
-# Add a text entity, and return the used entity name.
-sub add_txt_ent {
- my ($itemtxt) = (@_);
- my ($entity_name);
-
- # Convert mdoc(7) minus
- $itemtxt =~ s/\\-/-/g;
-
- $itemtxt =~ s/'/‘/g;
-
- $entity_name = "hwlist." . md5_hex($itemtxt);
- dlog(4, "Adding '$itemtxt' as entity $entity_name");
- push(@out_lines, "");
-
- return ($entity_name);
-}
-sub flush_out {
- my ($mdocvars) = (@_);
- my ($entity_name, $out);
- my $para_arch = "";
-
- if (!${$mdocvars}{isin_hwlist} || ${$mdocvars}{parabuf} eq "") {
- return;
- }
-
- $entity_name = add_txt_ent(${$mdocvars}{parabuf});
- ${$mdocvars}{parabuf} = "";
- if(defined($archlist{${$mdocvars}{Nm}})) {
- if ($compat_mode) {
- $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"';
- } else {
- $para_arch = '[' . $archlist{${$mdocvars}{Nm}} . '] ';
- }
- }
- if ($compat_mode) {
- $out = "&".$entity_name.";";
- } else {
- if (${$mdocvars}{first_para}) {
- $out = "".$para_arch."&".$entity_name.";";
- } else {
- $out = "&".$entity_name.";";
- }
- ${$mdocvars}{first_para} = 0;
- }
-
- dlog(4, "Flushing parabuf");
- add_sgmltag($mdocvars, $out);
-}
-
-# Add a new list item from the "parabuf".
-sub add_listitem {
- my ($mdocvars) = (@_);
- my ($listitem, $entity_name);
- my $para_arch = "";
-
- $entity_name = add_txt_ent(${$mdocvars}{parabuf});
- ${$mdocvars}{parabuf} = "";
-
- if ($compat_mode) {
- if(defined($archlist{${$mdocvars}{Nm}})) {
- $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"';
- }
- }
- $listitem = "&".$entity_name.";";
- dlog(4, "Adding '$listitem' to out_dev");
- push(@out_dev, $listitem);
-
-}
-
-# Add a line to the "paragraph buffer"
-sub parabuf_addline {
- my $mdocvars = shift;
- my ($txt) = (@_);
-
- dlog(5, "Now in parabuf_addline for '$txt'");
-
- # We only care about the HW list for now.
- if (!${$mdocvars}{isin_hwlist}) {
- dlog(6, "Exiting parabuf_addline due to: !\${\$mdocvars}{isin_hwlist}");
- return;
- }
- if ($txt eq "") {
- dlog(6, "Exiting parabuf_addline due to: \$txt eq \"\"");
- return;
- }
-
- if ($only_list_out && !${$mdocvars}{isin_list}) {
- dlog(6, "Exiting parabuf_addline due to: ".
- "\$only_list_out && !\${\$mdocvars}{isin_list}");
- return;
- }
-
- # We only add the first line for "tag" lists
- if (${$mdocvars}{parabuf} ne "" && ${$mdocvars}{isin_list} &&
- ${$mdocvars}{listtype} eq "tag") {
- dlog(6, "Exiting parabuf_addline due to: ".
- "\${\$mdocvars}{parabuf} ne \"\" && \${\$mdocvars}{isin_list} && ".
- "\${\$mdocvars}{listtype} eq \"tag\"");
- return;
- }
-
- if (${$mdocvars}{parabuf} ne "") {
- ${$mdocvars}{parabuf} .= " ";
- }
-
- dlog(4, "Adding '$txt' to parabuf");
-
- ${$mdocvars}{parabuf} .= $txt;
-}
-
-sub load_archlist {
- my ($file) = (@_);
-
- my $lineno = 0;
-
- dlog(2, "Parsing archlist $file");
-
- open(FILE, "$file") || die("$!: Could not open archlist $file in ", __LINE__, ".\n");
- while() {
- chomp;
- $lineno++;
-
- if (/^#/ || $_ eq "") {
- next;
- }
-
- if (/(\w+)\t([\w,]+)/) {
- dlog(4, "For driver $1 setting arch to $2");
- $archlist{$1} = $2;
- } else {
- dlog(1, "Warning: Could not parse archlist line $lineno");
- }
- }
-
- close(FILE);
-}
-
-# Check if a character is a mdoc(7) punctuation character.
-sub is_punct_char {
- my ($str) = (@_);
-
- return (length($str) == 1 && $str =~ /[\.,:;()\[\]\?!]/);
-}
-
-# Split out the punctuation characters of a mdoc(7) line.
-sub split_punct_chars {
- my ($str) = (@_);
- my (@stritems, $stritem, $punct_str);
-
- $punct_str = "";
- @stritems = split(/ /, $str);
-
- while (defined($stritem = $stritems[$#stritems]) &&
- is_punct_char($stritem)) {
- $punct_str = $stritem . $punct_str;
- pop(@stritems);
- }
-
- return (join(' ', @stritems), $punct_str);
-}
-
-# Create a ulink, if the string contains an URL.
-sub make_ulink {
- my ($str) = (@_);
-
- $str =~ s,(http://[^ ]+),,;
-
- return $str;
-}
Property changes on: head/en_US.ISO8859-1/htdocs/share/misc/man2hwnotes.pl
___________________________________________________________________
Deleted: svn:keywords
## -1 +0,0 ##
-FreeBSD=%H
\ No newline at end of property
Index: head/share/misc/dev.archlist.txt
===================================================================
--- head/share/misc/dev.archlist.txt (nonexistent)
+++ head/share/misc/dev.archlist.txt (revision 51264)
@@ -0,0 +1,176 @@
+#
+# Copyright (c) 2004-2006 The FreeBSD Project
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+
+#
+# This file is used by man2hwnotes.pl to set which drivers are usable
+# on which architectures.
+#
+# Format:
+#
+# Empty lines, and lines beginning with "#" are ignored.
+# [,...]
+#
+aac i386,amd64
+adv i386,amd64
+adw i386,amd64
+aha i386
+ahb i386
+ahd i386,sparc64,amd64
+aic i386,amd64
+amd i386,amd64
+arcmsr i386,amd64
+asr i386
+ath i386,amd64,sparc64
+aue i386,amd64,powerpc
+axe i386,amd64,powerpc
+bce i386,amd64
+bge i386,sparc64,amd64
+bktr i386
+bt i386,amd64
+bxe i386,amd64
+cdce i386,amd64,powerpc
+ciss i386,amd64
+ce i386
+cm i386
+cnw i386,amd64
+cp i386
+ctau i386
+cue i386,amd64,powerpc
+cx i386
+cxgb i386,amd64
+de i386,amd64
+dpt i386,amd64
+ed i386
+ep i386,amd64
+esp sparc64
+ex i386,amd64
+fe i386,amd64
+fwohci i386,sparc64,amd64,powerpc
+hifn i386,amd64
+hpt27xx i386,amd64
+hptiop i386,amd64
+hptmv i386,amd64
+hptrr i386,amd64
+ida i386
+ie i386
+iir i386,amd64
+ips i386,amd64
+isci i386,amd64
+ixgb i386,amd64
+kue i386,amd64,powerpc
+lge i386,amd64
+mfi i386,amd64
+mlx i386,amd64
+mly i386,amd64
+msk i386,amd64
+mxge i386,amd64
+my i386
+ncr i386,amd64
+ncv i386
+nfe i386,amd64
+ng_bt3c i386,amd64
+ng_ubt i386,amd64
+nsp i386
+nxge i386,amd64
+oce i386,amd64
+ohci i386,amd64,powerpc
+oltr i386
+otus i386,amd64
+pcn i386,amd64
+pst i386
+qlxgb amd64
+qlxgbe amd64
+qlxge amd64
+rc i386
+ral i386,amd64
+rsu i386,amd64
+rue i386,amd64
+rum i386,amd64
+run i386,amd64
+safe i386,amd64
+sbp i386,sparc64,amd64
+sfgxe amd64
+sn i386,amd64
+snd_ad1816 i386,amd64
+snd_als4000 i386
+snd_atiixp i386,amd64
+snd_audiocs sparc64
+snd_cmi i386,amd64
+snd_cs4281 i386,amd64
+snd_csa i386,amd64
+snd_ds1 i386,amd64
+snd_emu10k1 i386,amd64
+snd_emu10kx i386,amd64
+snd_envy24 i386,amd64
+snd_envy24ht i386,amd64
+snd_es137x i386,sparc64,amd64
+snd_ess i386,amd64
+snd_fm801 i386,amd64
+snd_gusc i386,amd64
+snd_hda i386,amd64
+snd_hdspe i386,amd64
+snd_ich i386,amd64
+snd_maestro i386,amd64
+snd_maestro3 i386,amd64
+snd_mss i386
+snd_neomagic i386,amd64
+snd_sbc i386,amd64
+snd_solo i386,amd64
+snd_spicds i386,amd64
+snd_t4dwave i386,amd64,sparc64
+snd_via8233 i386,amd64
+snd_via82c686 i386,amd64
+snd_vibes i386,amd64
+stg i386
+ti i386,amd64,sparc64
+tl i386,amd64
+trm i386,amd64
+twa i386,amd64
+twe i386,amd64
+tws i386,amd64
+ubsa i386,amd64
+ubsec i386,amd64
+ubser i386,amd64
+ucycom i386,amd64
+udav i386,amd64
+uftdi i386,amd64
+uhci i386,amd64,powerpc
+ulpt i386,amd64,powerpc
+umass i386,amd64,powerpc
+umodem i386,amd64
+uplcom i386,amd64
+ural i386,amd64
+urio i386,amd64,powerpc
+uvisor i386,amd64
+uvscom i386,amd64
+vpo i386
+vx i386,amd64
+vxge i386,amd64
+wb i386,amd64
+xe i386,amd64
+zyd i386,amd64
Property changes on: head/share/misc/dev.archlist.txt
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+FreeBSD=%H
\ No newline at end of property
Index: head/share/misc/man2hwnotes.pl
===================================================================
--- head/share/misc/man2hwnotes.pl (nonexistent)
+++ head/share/misc/man2hwnotes.pl (revision 51264)
@@ -0,0 +1,534 @@
+#!/usr/local/bin/perl -w
+# Emacs should use -*- cperl -*- mode
+#
+# Copyright (c) 2003-2006 Simon L. Nielsen
+# 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$
+#
+
+# Parse the list of supported hardware out of section 4 manual pages
+# and output it on stdout as SGML/DocBook entities.
+
+# The script will look for the following line in the manual page:
+# .Sh HARDWARE
+# and make an entity of the content until the line containing:
+# .Sh
+#
+# For Lists only the first line will be printed. If there are
+# arguments to the .It command, only the argument will be printed.
+
+# Usage:
+# man2hwnotes.pl [-cl] [-d 0-6] [-a ] [-o ]
+# [ ...]
+
+use strict;
+#use warnings;
+use Getopt::Std;
+use Digest::MD5 qw(md5_hex);
+
+# Section from manual page to extract
+my $hwlist_sect = "HARDWARE";
+
+# Override default archtecture list for some devices:
+my $archlist_file = "dev.archlist.txt";
+my %archlist;
+
+# Globals
+my $compat_mode = 0; # Enable compat for old Hardware Notes style
+my $debuglevel = 0;
+my $only_list_out = 0; # Should only lists be generated in the output?
+my @out_lines; # Single lines
+my @out_dev; # Device entities
+
+# Getopt
+my %options = ();
+if (!getopts("a:cd:lo:",\%options)) {
+ die("$!: Invalid command line arguments in ", __LINE__, "\n");
+}
+
+if (defined($options{c})) {
+ $compat_mode = 1;
+}
+if (defined($options{d})) {
+ $debuglevel = $options{d};
+}
+if (defined($options{a})) {
+ $archlist_file = $options{a};
+}
+if (defined($options{l})) {
+ $only_list_out = 1;
+}
+
+my $outputfile = $options{o};
+
+if ($debuglevel > 0) {
+ # Don't do output buffering in debug mode.
+ $| = 1;
+}
+
+load_archlist($archlist_file);
+
+if (defined($outputfile)) {
+ open(OLDOUT, ">&STDOUT") || die("$!: Could not open STDOUT in ", __LINE__, ".\n");
+ open(STDOUT, ">$outputfile") || die("$!: Could not open $outputfile in ", __LINE__, ".\n");
+}
+
+print <
+EOT
+
+if ($only_list_out) {
+ # Print the default device preamble entities
+ print "\n";
+ print "\n";
+}
+
+foreach my $page (@ARGV) {
+ if ($page !~ m/\.4$/) {
+ dlog(2, "Skipped $page (not *.4)");
+ next;
+ }
+ dlog(2, "Parsing $page");
+ parse($page);
+
+ if (@out_lines) {
+ print join("\n", @out_lines), "\n";
+ }
+ if (@out_dev) {
+ print join("\n", @out_dev), "\n";
+ }
+
+ @out_lines = ();
+ @out_dev = ();
+}
+
+if (defined($outputfile)) {
+ open(STDOUT, ">&OLDOUT") || die("$!: Could not open STDOUT in ", __LINE__, ".\n");
+ close(OLDOUT) || die("$!: Could not close OLDOUT in ", __LINE__, ".\n");
+}
+
+sub normalize (@) {
+ my @lines = @_;
+
+ foreach my $l (@lines) {
+ $l =~ s/\\&//g;
+ $l =~ s:([\x21-\x2f\x5b-\x60\x7b-\x7f]):sprintf("&\#\%d;", ord($1)):eg;
+ # Make sure ampersand is encoded as & since jade seems to
+ # be confused when it is encoded as & inside an entity.
+ $l =~ s/&/&/g;
+ }
+ return (wantarray) ? @lines : join "", @lines;
+}
+
+sub parse {
+ my ($manpage) = @_;
+
+ my $cur_mansection;
+ my $found_hwlist = 0;
+ my %mdocvars;
+ $mdocvars{isin_hwlist} = 0;
+ $mdocvars{isin_list} = 0;
+ $mdocvars{first_para} = 1;
+ $mdocvars{parabuf} = "";
+ $mdocvars{listtype} = "";
+ $mdocvars{it_nr} = 0;
+
+ open(MANPAGE, "$manpage") || die("$!: Could not open $manpage in ", __LINE__, ".\n");
+ while() {
+ chomp;
+ my $line = $_;
+
+ dlog(5, "Read '$line'");
+
+ # Find commands
+ if (s/^\.(.*)$/$1/) {
+ my $cmd = $1;
+
+ # Detect, and ignore, comment lines
+ if (s/^\\"(.*)$/$1/) {
+ next;
+ }
+
+ $cmd =~ s/^([^ ]+).*$/$1/;
+
+ if (/^Nm "?(\w+)"?/ && !defined($mdocvars{Nm})) {
+ dlog(3, "Setting Nm to $1");
+ $mdocvars{Nm} = $1;
+ # "_" cannot be used for an entity name.
+ $mdocvars{EntNm} = $1;
+ $mdocvars{EntNm} =~ s,_,.,g;
+
+ } elsif (/^Nm$/) {
+ if (defined($mdocvars{Nm}) && $mdocvars{Nm} ne "") {
+ parabuf_addline(\%mdocvars, "&man.".$mdocvars{EntNm}.".$cur_mansection;");
+ } else {
+ dlog(2, "Warning: Bad Nm call in $manpage");
+ }
+
+ } elsif (/^Sh (.+)$/) {
+ dlog(4, "Setting section to $1");
+ my $cur_section = $1;
+
+ flush_out(\%mdocvars);
+
+ if ($cur_section =~ /^${hwlist_sect}$/) {
+ dlog(2, "Found the device section ${hwlist_sect}");
+ $mdocvars{isin_hwlist} = 1;
+ $found_hwlist = 1;
+ add_sgmltag(\%mdocvars, "&hwlist.preamble.pre; " .
+ "&man.".$mdocvars{EntNm}.".$cur_mansection; " .
+ "&hwlist.preamble.post;");
+ }
+ } elsif ($mdocvars{isin_hwlist}) {
+ dlog(2, "Found a HWLIST STOP key!");
+ add_sgmltag(\%mdocvars, "'>");
+ $mdocvars{isin_hwlist} = 0;
+ }
+ if ($mdocvars{isin_list}) {
+ dlog(1, "Warning: Still in list, but just entered new " .
+ "section. This is probably due to missing .El; " .
+ "check manual page for errors.");
+ # If we try to recover from this we will probably
+ # just end with bad SGML output and it really
+ # should be fixed in the manual page so we don't
+ # even try to "fix" this.
+ }
+
+
+ } elsif (/^Dt ([^ ]+) ([^ ]+)/) {
+ dlog(4, "Setting mansection to $2");
+ $mdocvars{cur_manname} = lc($1);
+ $cur_mansection = $2;
+
+ # "_" cannot be used for an entity name.
+ $mdocvars{cur_manname} =~ s,_,.,g;
+
+ } elsif (/^It ?(.*)$/) {
+ my $txt = $1;
+
+ $mdocvars{it_nr}++;
+
+ # Flush last item
+ if ($mdocvars{parabuf} ne "") {
+ add_listitem(\%mdocvars);
+ }
+
+ # Remove quotes, if any.
+ $txt =~ s/"(.*)"/$1/;
+
+ if ($mdocvars{listtype} eq "column") {
+ # Ignore first item when it is likely to be a
+ # header.
+ if ($mdocvars{it_nr} == 1 && $txt =~ m/^(Em|Sy) /) {
+ dlog(2, "Skipping header line in column list");
+ next;
+ }
+ # Only extract the first column.
+ $txt =~ s/ Ta /\t/g;
+ $txt =~ s/([^\t]+)\t.*/$1/;
+ }
+
+ # Remove Li commands
+ $txt =~ s/^Li //g;
+
+ parabuf_addline(\%mdocvars, normalize($txt));
+ } elsif (/^Bl/) {
+ $mdocvars{isin_list} = 1;
+ flush_out(\%mdocvars);
+ add_sgmltag(\%mdocvars, "");
+
+ if (/-tag/) {
+ $mdocvars{listtype} = "tag";
+ # YACK! Hack for ata(4)
+ if ($mdocvars{Nm} eq "ata") {
+ $mdocvars{listtype} = "tagHACK";
+ }
+ } elsif (/-bullet/) {
+ $mdocvars{listtype} = "bullet";
+ } elsif (/-column/) {
+ $mdocvars{listtype} = "column";
+ } else {
+ $mdocvars{listtype} = "unknown";
+ }
+ dlog(2, "Listtype set to $mdocvars{listtype}");
+ } elsif (/^El/) {
+ if ($mdocvars{parabuf} ne "") {
+ add_listitem(\%mdocvars);
+ }
+
+ add_sgmltag(\%mdocvars, "");
+ $mdocvars{isin_list} = 0;
+ } elsif (/^Tn (.+)$/) {
+ # For now we print TradeName text as regular text.
+ my ($txt, $punct_str) = split_punct_chars($1);
+
+ parabuf_addline(\%mdocvars, normalize($txt . $punct_str));
+ } elsif (/^Xr ([^ ]+) (.+)$/) {
+ my ($xr_sect, $punct_str) = split_punct_chars($2);
+ my $txt;
+
+ # We need to check if the manual page exist to avoid
+ # breaking the doc build just because of a broken
+ # reference.
+ #$txt = "&man.$1.$xr_sect;$punct_str";
+ $txt = "$1($xr_sect)$punct_str";
+ parabuf_addline(\%mdocvars, normalize($txt));
+ } elsif (/^Dq (.+)$/) {
+ my ($txt, $punct_str) = split_punct_chars($1);
+
+ parabuf_addline(\%mdocvars,
+ normalize("$txt$punct_str"));
+ } elsif (/^Sx (.+)$/) {
+ if ($mdocvars{isin_hwlist}) {
+ dlog(1, "Warning: Reference to another section in the " .
+ "$hwlist_sect section in " . $mdocvars{Nm} .
+ "(${cur_mansection})");
+ }
+ parabuf_addline(\%mdocvars, normalize($1));
+ } elsif (/^Pa (.+)$/) {
+ my ($txt, $punct_str) = split_punct_chars($1);
+
+ $txt = make_ulink($txt) . $punct_str;
+ parabuf_addline(\%mdocvars, normalize($txt));
+ } elsif (/^Pp/) {
+ dlog(3, "Got Pp command - forcing new para");
+ flush_out(\%mdocvars);
+ } elsif (/^Fx (.+)/) {
+ dlog(3, "Got Fx command");
+ parabuf_addline(\%mdocvars, "FreeBSD $1");
+ } elsif (/^Fx/) {
+ dlog(3, "Got Fx command");
+ parabuf_addline(\%mdocvars, "FreeBSD");
+ } elsif (/^Em (.+)$/) {
+ my ($txt, $punct_str) = split_punct_chars($1);
+
+ parabuf_addline(\%mdocvars,
+ normalize("$txt$punct_str"));
+ } else {
+ # Ignore all other commands.
+ dlog(3, "Ignoring unknown command $cmd");
+ }
+ } else {
+ # This is then regular text
+ parabuf_addline(\%mdocvars, normalize($_));
+ }
+ }
+ close(MANPAGE) || die("$!: Could not close $manpage in ", __LINE__, ".\n");
+ if (! $found_hwlist) {
+ dlog(2, "Hardware list not found in $manpage");
+ }
+}
+
+sub dlog {
+ my ($level, $txt) = @_;
+
+ if ($level <= $debuglevel) {
+ print STDERR "$level: $txt\n";
+ }
+}
+
+# Output a SGML tag.
+sub add_sgmltag {
+ my ($mdocvars, $txt) = (@_);
+
+ # We only care about the HW list for now.
+ if (${$mdocvars}{isin_hwlist}) {
+ push(@out_dev, $txt);
+ }
+}
+
+# Add a text entity, and return the used entity name.
+sub add_txt_ent {
+ my ($itemtxt) = (@_);
+ my ($entity_name);
+
+ # Convert mdoc(7) minus
+ $itemtxt =~ s/\\-/-/g;
+
+ $itemtxt =~ s/'/‘/g;
+
+ $entity_name = "hwlist." . md5_hex($itemtxt);
+ dlog(4, "Adding '$itemtxt' as entity $entity_name");
+ push(@out_lines, "");
+
+ return ($entity_name);
+}
+sub flush_out {
+ my ($mdocvars) = (@_);
+ my ($entity_name, $out);
+ my $para_arch = "";
+
+ if (!${$mdocvars}{isin_hwlist} || ${$mdocvars}{parabuf} eq "") {
+ return;
+ }
+
+ $entity_name = add_txt_ent(${$mdocvars}{parabuf});
+ ${$mdocvars}{parabuf} = "";
+ if(defined($archlist{${$mdocvars}{Nm}})) {
+ if ($compat_mode) {
+ $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"';
+ } else {
+ $para_arch = '[' . $archlist{${$mdocvars}{Nm}} . '] ';
+ }
+ }
+ if ($compat_mode) {
+ $out = "&".$entity_name.";";
+ } else {
+ if (${$mdocvars}{first_para}) {
+ $out = "".$para_arch."&".$entity_name.";";
+ } else {
+ $out = "&".$entity_name.";";
+ }
+ ${$mdocvars}{first_para} = 0;
+ }
+
+ dlog(4, "Flushing parabuf");
+ add_sgmltag($mdocvars, $out);
+}
+
+# Add a new list item from the "parabuf".
+sub add_listitem {
+ my ($mdocvars) = (@_);
+ my ($listitem, $entity_name);
+ my $para_arch = "";
+
+ $entity_name = add_txt_ent(${$mdocvars}{parabuf});
+ ${$mdocvars}{parabuf} = "";
+
+ if ($compat_mode) {
+ if(defined($archlist{${$mdocvars}{Nm}})) {
+ $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"';
+ }
+ }
+ $listitem = "&".$entity_name.";";
+ dlog(4, "Adding '$listitem' to out_dev");
+ push(@out_dev, $listitem);
+
+}
+
+# Add a line to the "paragraph buffer"
+sub parabuf_addline {
+ my $mdocvars = shift;
+ my ($txt) = (@_);
+
+ dlog(5, "Now in parabuf_addline for '$txt'");
+
+ # We only care about the HW list for now.
+ if (!${$mdocvars}{isin_hwlist}) {
+ dlog(6, "Exiting parabuf_addline due to: !\${\$mdocvars}{isin_hwlist}");
+ return;
+ }
+ if ($txt eq "") {
+ dlog(6, "Exiting parabuf_addline due to: \$txt eq \"\"");
+ return;
+ }
+
+ if ($only_list_out && !${$mdocvars}{isin_list}) {
+ dlog(6, "Exiting parabuf_addline due to: ".
+ "\$only_list_out && !\${\$mdocvars}{isin_list}");
+ return;
+ }
+
+ # We only add the first line for "tag" lists
+ if (${$mdocvars}{parabuf} ne "" && ${$mdocvars}{isin_list} &&
+ ${$mdocvars}{listtype} eq "tag") {
+ dlog(6, "Exiting parabuf_addline due to: ".
+ "\${\$mdocvars}{parabuf} ne \"\" && \${\$mdocvars}{isin_list} && ".
+ "\${\$mdocvars}{listtype} eq \"tag\"");
+ return;
+ }
+
+ if (${$mdocvars}{parabuf} ne "") {
+ ${$mdocvars}{parabuf} .= " ";
+ }
+
+ dlog(4, "Adding '$txt' to parabuf");
+
+ ${$mdocvars}{parabuf} .= $txt;
+}
+
+sub load_archlist {
+ my ($file) = (@_);
+
+ my $lineno = 0;
+
+ dlog(2, "Parsing archlist $file");
+
+ open(FILE, "$file") || die("$!: Could not open archlist $file in ", __LINE__, ".\n");
+ while() {
+ chomp;
+ $lineno++;
+
+ if (/^#/ || $_ eq "") {
+ next;
+ }
+
+ if (/(\w+)\t([\w,]+)/) {
+ dlog(4, "For driver $1 setting arch to $2");
+ $archlist{$1} = $2;
+ } else {
+ dlog(1, "Warning: Could not parse archlist line $lineno");
+ }
+ }
+
+ close(FILE);
+}
+
+# Check if a character is a mdoc(7) punctuation character.
+sub is_punct_char {
+ my ($str) = (@_);
+
+ return (length($str) == 1 && $str =~ /[\.,:;()\[\]\?!]/);
+}
+
+# Split out the punctuation characters of a mdoc(7) line.
+sub split_punct_chars {
+ my ($str) = (@_);
+ my (@stritems, $stritem, $punct_str);
+
+ $punct_str = "";
+ @stritems = split(/ /, $str);
+
+ while (defined($stritem = $stritems[$#stritems]) &&
+ is_punct_char($stritem)) {
+ $punct_str = $stritem . $punct_str;
+ pop(@stritems);
+ }
+
+ return (join(' ', @stritems), $punct_str);
+}
+
+# Create a ulink, if the string contains an URL.
+sub make_ulink {
+ my ($str) = (@_);
+
+ $str =~ s,(http://[^ ]+),,;
+
+ return $str;
+}
Property changes on: head/share/misc/man2hwnotes.pl
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+FreeBSD=%H
\ No newline at end of property