summaryrefslogtreecommitdiffstats
path: root/release
diff options
context:
space:
mode:
authorsimon <simon@FreeBSD.org>2004-08-03 22:12:45 +0000
committersimon <simon@FreeBSD.org>2004-08-03 22:12:45 +0000
commitcc6a920fbfdf5037a841f9f5d54a587ffad360cd (patch)
tree201c61c13fdbfc870db0edc4181601f660590220 /release
parente232f7c8d9781cfe8d68eed8c1f584a159d06af1 (diff)
downloadFreeBSD-src-cc6a920fbfdf5037a841f9f5d54a587ffad360cd.zip
FreeBSD-src-cc6a920fbfdf5037a841f9f5d54a587ffad360cd.tar.gz
Auto generate the device listings in the Hardware Notes based on
manual pages, to avoid duplicating work between the Hardware Notes and manual pages. Each text line in the output from the manual page parser is generated as a SGML entity, making it possible for translators to only translate lines which actually contains English text (this neat idea came from hrs). To determine which drivers are usable on which architectures the dev.archlist.txt file is used to explicitly list this. It it an imperfect solution, but the best I have been able to come up with for now. This commit converts most of the devices which has a section 4 manual page with a HARDWARE section to be the new auto generated format. Reviewed in principle by: ru, hrs, trhodes Good ideas for improvements: hrs No objections: -doc, re
Diffstat (limited to 'release')
-rw-r--r--release/doc/Makefile5
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/Makefile.inc8
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/alpha/Makefile2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/alpha/article.sgml2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/amd64/Makefile2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/amd64/article.sgml2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/article.sgml117
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/common/dev.sgml117
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/i386/Makefile3
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/i386/article.sgml2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/ia64/Makefile2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/ia64/article.sgml2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/pc98/Makefile2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/pc98/article.sgml2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/sparc64/Makefile2
-rw-r--r--release/doc/en_US.ISO8859-1/hardware/sparc64/article.sgml2
-rw-r--r--release/doc/share/misc/dev.archlist.txt63
-rw-r--r--release/doc/share/misc/man2hwnotes.pl353
-rw-r--r--release/doc/share/mk/doc.relnotes.mk21
-rw-r--r--release/doc/share/sgml/Makefile16
20 files changed, 542 insertions, 183 deletions
diff --git a/release/doc/Makefile b/release/doc/Makefile
index e5919e8..51076c2 100644
--- a/release/doc/Makefile
+++ b/release/doc/Makefile
@@ -3,10 +3,11 @@
# The user can override the default language to build and install
# with the RELNOTES_LANG variable.
#
+SUBDIR = share/sgml
.if defined(RELNOTES_LANG) && !empty(RELNOTES_LANG)
-SUBDIR = ${RELNOTES_LANG}
+SUBDIR+= ${RELNOTES_LANG}
.else
-SUBDIR = en_US.ISO8859-1
+SUBDIR+= en_US.ISO8859-1
.endif
RELN_ROOT?= ${.CURDIR}
diff --git a/release/doc/en_US.ISO8859-1/hardware/Makefile.inc b/release/doc/en_US.ISO8859-1/hardware/Makefile.inc
index 439fdc5..37ebd11 100644
--- a/release/doc/en_US.ISO8859-1/hardware/Makefile.inc
+++ b/release/doc/en_US.ISO8859-1/hardware/Makefile.inc
@@ -5,3 +5,11 @@ DESTDIR?= ${DOCDIR}/hardware/${.CURDIR:T}
.else
DESTDIR?= ${DOCDIR}/en_US.ISO8859-1/hardware/${.CURDIR:T}
.endif
+
+# Force include of the autogenerated catalog. It has to be set
+# directly in the CATALOG variable since doc.docbook.mk check if each
+# catalog file exist for the other *CATALOG variables, and
+# catalog-auto does not exist yet when that check is performed,
+# causing catalog-auto not to be added to CATALOGS which breaks the
+# build.
+CATALOGS+= -c ${DEV-AUTODIR}/catalog-auto
diff --git a/release/doc/en_US.ISO8859-1/hardware/alpha/Makefile b/release/doc/en_US.ISO8859-1/hardware/alpha/Makefile
index 7687c4b..505825c 100644
--- a/release/doc/en_US.ISO8859-1/hardware/alpha/Makefile
+++ b/release/doc/en_US.ISO8859-1/hardware/alpha/Makefile
@@ -15,6 +15,8 @@ SRCS+= proc-alpha.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
+SRCS+= ${DEV-AUTODIR}/catalog-auto
+SRCS+= ${DEV-AUTODIR}/dev-auto.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/release/doc/en_US.ISO8859-1/hardware/alpha/article.sgml b/release/doc/en_US.ISO8859-1/hardware/alpha/article.sgml
index 38ca966..fc342a1 100644
--- a/release/doc/en_US.ISO8859-1/hardware/alpha/article.sgml
+++ b/release/doc/en_US.ISO8859-1/hardware/alpha/article.sgml
@@ -9,6 +9,8 @@
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
+<!ENTITY % devauto PUBLIC "-//FreeBSD//ENTITIES Auto Generated Device Lists//EN">
+%devauto;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
diff --git a/release/doc/en_US.ISO8859-1/hardware/amd64/Makefile b/release/doc/en_US.ISO8859-1/hardware/amd64/Makefile
index d7bc728..976e97a 100644
--- a/release/doc/en_US.ISO8859-1/hardware/amd64/Makefile
+++ b/release/doc/en_US.ISO8859-1/hardware/amd64/Makefile
@@ -15,6 +15,8 @@ SRCS+= proc-amd64.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
+SRCS+= ${DEV-AUTODIR}/catalog-auto
+SRCS+= ${DEV-AUTODIR}/dev-auto.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/release/doc/en_US.ISO8859-1/hardware/amd64/article.sgml b/release/doc/en_US.ISO8859-1/hardware/amd64/article.sgml
index 868ec81..c40771c 100644
--- a/release/doc/en_US.ISO8859-1/hardware/amd64/article.sgml
+++ b/release/doc/en_US.ISO8859-1/hardware/amd64/article.sgml
@@ -9,6 +9,8 @@
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
+<!ENTITY % devauto PUBLIC "-//FreeBSD//ENTITIES Auto Generated Device Lists//EN">
+%devauto;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
diff --git a/release/doc/en_US.ISO8859-1/hardware/article.sgml b/release/doc/en_US.ISO8859-1/hardware/article.sgml
index 2f0ff87..0772680 100644
--- a/release/doc/en_US.ISO8859-1/hardware/article.sgml
+++ b/release/doc/en_US.ISO8859-1/hardware/article.sgml
@@ -66,25 +66,17 @@
</itemizedlist>
</para>
- <para arch="i386,pc98,amd64">Adaptec AIC-6260 and AIC-6360 based boards
- (&man.aic.4; driver)</para>
+ &hwlist.aic;
- <para arch="i386">Adaptec AHA-154X ISA and AHA-1640 MCA
- SCSI controllers and compatibles (&man.aha.4; driver)</para>
+ &hwlist.aha;
- <para arch="i386">Adaptec AHA_174x series EISA SCSI controller in
- enhanced mode (&man.ahb.4; driver)</para>
+ &hwlist.ahb;
- <para arch="i386,pc98,alpha,sparc64,amd64">Adaptec AIC-7770, AIC-7850,
- AIC-7860, AIC-7870, AIC-7880, and AIC789x based SCSI host
- adapters (&man.ahc.4; driver)</para>
+ &hwlist.ahc;
- <para arch="i386,sparc64,amd64">Ultra-320 SCSI controllers based on the Adaptec
- AIC7901, AIC7901A, and AIC7902 Ultra320 controller chips
- (&man.ahd.4; driver)
- </para>
+ &hwlist.ahd;
- <para arch="i386,amd64">Adaptec FSA family RAID controllers (&man.aac.4; driver)</para>
+ &hwlist.aac;
<para arch="pc98">NEC PC-9801-55, 92 and their compatible C-Bus SCSI interfaces (&man.ct.4; driver)
<itemizedlist>
@@ -199,6 +191,8 @@
</itemizedlist>
</para>
+ &hwlist.adw;
+
<para arch="i386,amd64">BusLogic MultiMaster <quote>W</quote>,
<quote>C</quote>, <quote>S</quote>, and <quote>A</quote> Series
Host Adapters (&man.bt.4; driver)
@@ -211,23 +205,11 @@
</para>
- <para arch="i386,amd64">DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, SmartCACHE IV and
- SmartRAID IV SCSI/RAID controllers (&man.dpt.4; driver)</para>
-
- <para arch="i386,amd64">Adaptec 21x0S/32x0S/34x0S SCSI RAID
- controllers (&man.asr.4; driver)</para>
-
- <para arch="i386,amd64">Adaptec 2000S/2005S Zero-Channel RAID controllers
- (&man.asr.4; driver)</para>
-
- <para arch="i386,amd64">Adaptec 2400A ATA-100 RAID controller
- (&man.asr.4; driver)</para>
+ &hwlist.dpt;
- <para arch="i386,amd64">DPT SmartRAID V and VI SCSI RAID controllers
- (&man.asr.4; driver)</para>
+ &hwlist.asr;
- <para arch="i386,alpha,amd64">AMI MegaRAID Express and Enterprise family RAID controllers
- (&man.amr.4; driver)
+ &hwlist.amr;
<note>
<para arch="i386,amd64">Booting from these controllers is supported. EISA
adapters are not supported.</para>
@@ -235,7 +217,6 @@
<para arch="alpha">Booting from these controllers is not
supported due to SRM limitations.</para>
</note>
- </para>
<para arch="i386,alpha,amd64">Mylex DAC-family RAID controllers with 2.x, 3.x, 4.x
and 5.x firmware (&man.mlx.4; driver)
@@ -257,8 +238,7 @@
(&man.mly.4; driver)
</para>
- <para arch="i386">3ware Escalade ATA RAID controllers (&man.twe.4; driver)
- </para>
+ &hwlist.twe;
<para arch="i386,pc98,alpha,sparc64,amd64">LSI/Symbios (formerly NCR)
53C8<replaceable>XX</replaceable> and 53C10<replaceable>XX</replaceable> PCI
@@ -274,8 +254,7 @@
adapters (&man.stg.4; driver)
</para>
- <para arch="i386,pc98,alpha,ia64,sparc64,amd64">Qlogic controllers and variants (&man.isp.4; driver)
- </para>
+ &hwlist.isp;
<para arch="i386,amd64">DTC 3290 EISA SCSI controller in 1542 emulation mode.</para>
@@ -299,9 +278,7 @@
(&man.ida.4; driver)
</para>
- <para arch="i386,amd64">SCSI adapters utilizing the Command Interface
- for SCSI-3 Support (&man.ciss.4; driver)
- </para>
+ &hwlist.ciss;
<para arch="i386,amd64">Intel Integrated RAID Controllers (&man.iir.4; driver)
</para>
@@ -713,7 +690,7 @@
NICs and clones for PCI, MiniPCI, and CardBus (&man.dc.4;
driver)</para>
- <para arch="i386,pc98,amd64">ADMtek Inc. AN986-based USB Ethernet NICs (&man.aue.4; driver)</para>
+ &hwlist.aue;
<para arch="i386,pc98,amd64">CATC USB-EL1210A-based USB Ethernet NICs (&man.cue.4; driver)</para>
@@ -726,18 +703,15 @@
<para arch="i386,pc98,amd64">RealTek RTL8150-based USB Ethernet NICs
(&man.rue.4; driver)</para>
- <para arch="i386,pc98,amd64">Davicom DM9601-based USB Ethernet
- NICs (&man.udav.4; driver)</para>
+ &hwlist.udav;
<para arch="i386,pc98,alpha,amd64">DEC DC21040, DC21041, DC21140, DC21141, DC21142, and DC21143
based NICs (&man.de.4; driver)
</para>
- <para arch="i386,pc98,amd64">Fujitsu MB86960A/MB86965A based Fast Ethernet NICs
- (&man.fe.4; driver)</para>
+ &hwlist.fe;
- <para arch="i386,pc98,alpha,ia64,sparc64,amd64">Intel 82557-, 82258-, 82559-, 82550-
- or 82562-based Fast Ethernet NICs (&man.fxp.4; driver)</para>
+ &hwlist.fxp;
<para arch="i386,amd64">Intel 82595-based Ethernet NICs (&man.ex.4; driver)
</para>
@@ -750,8 +724,7 @@
<para arch="i386">3Com 3C501 8-bit ISA Ethernet NIC
(&man.el.4; driver)</para>
- <para arch="i386,pc98,alpha,sparc64,amd64">3Com Etherlink XL-based NICs (&man.xl.4; driver)
- </para>
+ &hwlist.xl;
<para arch="i386,pc98,amd64">3Com 3C59X series NICs (&man.vx.4; driver)
</para>
@@ -763,9 +736,7 @@
<para arch="i386,amd64">Megahertz X-Jack Ethernet PC-Card CC-10BT (&man.sn.4;
driver)</para>
- <para arch="i386,amd64">Xircom CreditCard adapters (16 bit) and
- workalikes (&man.xe.4; driver)
- </para>
+ &hwlist.xe;
<para arch="pc98">National Semiconductor DP8393X (SONIC) Ethernet
cards (snc driver)
@@ -783,13 +754,9 @@
LXT1001 NetCellerator controller (&man.lge.4; driver)
</para>
- <para arch="i386,pc98,alpha,amd64">Ethernet and Fast Ethernet NICs based
- on the 3Com 3XP Typhoon/Sidewinder (3CR990) chipset (&man.txp.4; driver)
- </para>
+ &hwlist.txp;
- <para arch="i386,pc98,ia64,amd64">Gigabit Ethernet NICs based on the Broadcom BCM570x
- (&man.bge.4; driver)
- </para>
+ &hwlist.bge;
<para arch="i386,pc98,alpha,ia64,amd64">Gigabit Ethernet NICs based on the
Intel 82542 and 82543 controller chips (&man.gx.4; and &man.em.4;
@@ -798,13 +765,12 @@
controller chips (&man.em.4; driver only)
</para>
- <para arch="sparc64">Sun HME and QFE Ethernet NICs (&man.hme.4; driver)</para>
+ &hwlist.hme;
<para arch="sparc64">Sun GEM (Gigabit Ethernet) and ERI (Fast
Ethernet) NICs (&man.gem.4; driver)</para>
- <para arch="i386,pc98">Myson Ethernet NICs (&man.my.4; driver)
- </para>
+ &hwlist.my;
<para arch="i386,amd64">Broadcom BCM4401 based Fast Ethernet adapters
(&man.bfe.4; driver)</para>
@@ -859,8 +825,7 @@
<para arch="i386,pc98">Raytheon Raylink 2.4GHz wireless adapters (&man.ray.4; driver)
</para>
- <para arch="i386,pc98,amd64">AMD Am79C930 and Harris (Intersil) based 802.11b cards (&man.awi.4; driver)
- </para>
+ &hwlist.awi;
<para arch="i386">Atheros AR5210, AR5211, and AR5212-based
802.11a/b/g network interfaces (&man.ath.4; driver)
@@ -871,29 +836,7 @@
<sect2>
<title>Miscellaneous Networks</title>
- <para arch="i386">Cronyx Sigma synchronous / asynchronous serial
- adapters with V.35/RS-232/RS-530/RS-449 interfaces (&man.cx.4; driver)
- <itemizedlist>
- <listitem>
- <para>Cronyx Sigma-22, Sigma-24</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-100</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-400, Sigma-401, Sigma-404, Sigma-410, Sigma-440</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-500</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-703</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-800, Sigma-801, Sigma-810, Sigma-840</para>
- </listitem>
- </itemizedlist>
- </para>
+ &hwlist.cx;
<para arch="i386,pc98">Cronyx Tau-PCI synchronous serial adapters for PCI bus
(&man.cp.4; driver)
@@ -935,13 +878,7 @@
<para arch="i386">Granch SBNI16 SHDSL modems (&man.sbsh.4;
driver)</para>
- <para arch="i386">SMC COM90cx6 ARCNET network adapters (cm driver)
- <itemizedlist>
- <listitem>
- <para>SMC 90c26, 90c56, and 90c66 in 90c56 compatability mode</para>
- </listitem>
- </itemizedlist>
- </para>
+ &hwlist.cm;
</sect2>
diff --git a/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml b/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml
index 2f0ff87..0772680 100644
--- a/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml
+++ b/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml
@@ -66,25 +66,17 @@
</itemizedlist>
</para>
- <para arch="i386,pc98,amd64">Adaptec AIC-6260 and AIC-6360 based boards
- (&man.aic.4; driver)</para>
+ &hwlist.aic;
- <para arch="i386">Adaptec AHA-154X ISA and AHA-1640 MCA
- SCSI controllers and compatibles (&man.aha.4; driver)</para>
+ &hwlist.aha;
- <para arch="i386">Adaptec AHA_174x series EISA SCSI controller in
- enhanced mode (&man.ahb.4; driver)</para>
+ &hwlist.ahb;
- <para arch="i386,pc98,alpha,sparc64,amd64">Adaptec AIC-7770, AIC-7850,
- AIC-7860, AIC-7870, AIC-7880, and AIC789x based SCSI host
- adapters (&man.ahc.4; driver)</para>
+ &hwlist.ahc;
- <para arch="i386,sparc64,amd64">Ultra-320 SCSI controllers based on the Adaptec
- AIC7901, AIC7901A, and AIC7902 Ultra320 controller chips
- (&man.ahd.4; driver)
- </para>
+ &hwlist.ahd;
- <para arch="i386,amd64">Adaptec FSA family RAID controllers (&man.aac.4; driver)</para>
+ &hwlist.aac;
<para arch="pc98">NEC PC-9801-55, 92 and their compatible C-Bus SCSI interfaces (&man.ct.4; driver)
<itemizedlist>
@@ -199,6 +191,8 @@
</itemizedlist>
</para>
+ &hwlist.adw;
+
<para arch="i386,amd64">BusLogic MultiMaster <quote>W</quote>,
<quote>C</quote>, <quote>S</quote>, and <quote>A</quote> Series
Host Adapters (&man.bt.4; driver)
@@ -211,23 +205,11 @@
</para>
- <para arch="i386,amd64">DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, SmartCACHE IV and
- SmartRAID IV SCSI/RAID controllers (&man.dpt.4; driver)</para>
-
- <para arch="i386,amd64">Adaptec 21x0S/32x0S/34x0S SCSI RAID
- controllers (&man.asr.4; driver)</para>
-
- <para arch="i386,amd64">Adaptec 2000S/2005S Zero-Channel RAID controllers
- (&man.asr.4; driver)</para>
-
- <para arch="i386,amd64">Adaptec 2400A ATA-100 RAID controller
- (&man.asr.4; driver)</para>
+ &hwlist.dpt;
- <para arch="i386,amd64">DPT SmartRAID V and VI SCSI RAID controllers
- (&man.asr.4; driver)</para>
+ &hwlist.asr;
- <para arch="i386,alpha,amd64">AMI MegaRAID Express and Enterprise family RAID controllers
- (&man.amr.4; driver)
+ &hwlist.amr;
<note>
<para arch="i386,amd64">Booting from these controllers is supported. EISA
adapters are not supported.</para>
@@ -235,7 +217,6 @@
<para arch="alpha">Booting from these controllers is not
supported due to SRM limitations.</para>
</note>
- </para>
<para arch="i386,alpha,amd64">Mylex DAC-family RAID controllers with 2.x, 3.x, 4.x
and 5.x firmware (&man.mlx.4; driver)
@@ -257,8 +238,7 @@
(&man.mly.4; driver)
</para>
- <para arch="i386">3ware Escalade ATA RAID controllers (&man.twe.4; driver)
- </para>
+ &hwlist.twe;
<para arch="i386,pc98,alpha,sparc64,amd64">LSI/Symbios (formerly NCR)
53C8<replaceable>XX</replaceable> and 53C10<replaceable>XX</replaceable> PCI
@@ -274,8 +254,7 @@
adapters (&man.stg.4; driver)
</para>
- <para arch="i386,pc98,alpha,ia64,sparc64,amd64">Qlogic controllers and variants (&man.isp.4; driver)
- </para>
+ &hwlist.isp;
<para arch="i386,amd64">DTC 3290 EISA SCSI controller in 1542 emulation mode.</para>
@@ -299,9 +278,7 @@
(&man.ida.4; driver)
</para>
- <para arch="i386,amd64">SCSI adapters utilizing the Command Interface
- for SCSI-3 Support (&man.ciss.4; driver)
- </para>
+ &hwlist.ciss;
<para arch="i386,amd64">Intel Integrated RAID Controllers (&man.iir.4; driver)
</para>
@@ -713,7 +690,7 @@
NICs and clones for PCI, MiniPCI, and CardBus (&man.dc.4;
driver)</para>
- <para arch="i386,pc98,amd64">ADMtek Inc. AN986-based USB Ethernet NICs (&man.aue.4; driver)</para>
+ &hwlist.aue;
<para arch="i386,pc98,amd64">CATC USB-EL1210A-based USB Ethernet NICs (&man.cue.4; driver)</para>
@@ -726,18 +703,15 @@
<para arch="i386,pc98,amd64">RealTek RTL8150-based USB Ethernet NICs
(&man.rue.4; driver)</para>
- <para arch="i386,pc98,amd64">Davicom DM9601-based USB Ethernet
- NICs (&man.udav.4; driver)</para>
+ &hwlist.udav;
<para arch="i386,pc98,alpha,amd64">DEC DC21040, DC21041, DC21140, DC21141, DC21142, and DC21143
based NICs (&man.de.4; driver)
</para>
- <para arch="i386,pc98,amd64">Fujitsu MB86960A/MB86965A based Fast Ethernet NICs
- (&man.fe.4; driver)</para>
+ &hwlist.fe;
- <para arch="i386,pc98,alpha,ia64,sparc64,amd64">Intel 82557-, 82258-, 82559-, 82550-
- or 82562-based Fast Ethernet NICs (&man.fxp.4; driver)</para>
+ &hwlist.fxp;
<para arch="i386,amd64">Intel 82595-based Ethernet NICs (&man.ex.4; driver)
</para>
@@ -750,8 +724,7 @@
<para arch="i386">3Com 3C501 8-bit ISA Ethernet NIC
(&man.el.4; driver)</para>
- <para arch="i386,pc98,alpha,sparc64,amd64">3Com Etherlink XL-based NICs (&man.xl.4; driver)
- </para>
+ &hwlist.xl;
<para arch="i386,pc98,amd64">3Com 3C59X series NICs (&man.vx.4; driver)
</para>
@@ -763,9 +736,7 @@
<para arch="i386,amd64">Megahertz X-Jack Ethernet PC-Card CC-10BT (&man.sn.4;
driver)</para>
- <para arch="i386,amd64">Xircom CreditCard adapters (16 bit) and
- workalikes (&man.xe.4; driver)
- </para>
+ &hwlist.xe;
<para arch="pc98">National Semiconductor DP8393X (SONIC) Ethernet
cards (snc driver)
@@ -783,13 +754,9 @@
LXT1001 NetCellerator controller (&man.lge.4; driver)
</para>
- <para arch="i386,pc98,alpha,amd64">Ethernet and Fast Ethernet NICs based
- on the 3Com 3XP Typhoon/Sidewinder (3CR990) chipset (&man.txp.4; driver)
- </para>
+ &hwlist.txp;
- <para arch="i386,pc98,ia64,amd64">Gigabit Ethernet NICs based on the Broadcom BCM570x
- (&man.bge.4; driver)
- </para>
+ &hwlist.bge;
<para arch="i386,pc98,alpha,ia64,amd64">Gigabit Ethernet NICs based on the
Intel 82542 and 82543 controller chips (&man.gx.4; and &man.em.4;
@@ -798,13 +765,12 @@
controller chips (&man.em.4; driver only)
</para>
- <para arch="sparc64">Sun HME and QFE Ethernet NICs (&man.hme.4; driver)</para>
+ &hwlist.hme;
<para arch="sparc64">Sun GEM (Gigabit Ethernet) and ERI (Fast
Ethernet) NICs (&man.gem.4; driver)</para>
- <para arch="i386,pc98">Myson Ethernet NICs (&man.my.4; driver)
- </para>
+ &hwlist.my;
<para arch="i386,amd64">Broadcom BCM4401 based Fast Ethernet adapters
(&man.bfe.4; driver)</para>
@@ -859,8 +825,7 @@
<para arch="i386,pc98">Raytheon Raylink 2.4GHz wireless adapters (&man.ray.4; driver)
</para>
- <para arch="i386,pc98,amd64">AMD Am79C930 and Harris (Intersil) based 802.11b cards (&man.awi.4; driver)
- </para>
+ &hwlist.awi;
<para arch="i386">Atheros AR5210, AR5211, and AR5212-based
802.11a/b/g network interfaces (&man.ath.4; driver)
@@ -871,29 +836,7 @@
<sect2>
<title>Miscellaneous Networks</title>
- <para arch="i386">Cronyx Sigma synchronous / asynchronous serial
- adapters with V.35/RS-232/RS-530/RS-449 interfaces (&man.cx.4; driver)
- <itemizedlist>
- <listitem>
- <para>Cronyx Sigma-22, Sigma-24</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-100</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-400, Sigma-401, Sigma-404, Sigma-410, Sigma-440</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-500</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-703</para>
- </listitem>
- <listitem>
- <para>Cronyx Sigma-800, Sigma-801, Sigma-810, Sigma-840</para>
- </listitem>
- </itemizedlist>
- </para>
+ &hwlist.cx;
<para arch="i386,pc98">Cronyx Tau-PCI synchronous serial adapters for PCI bus
(&man.cp.4; driver)
@@ -935,13 +878,7 @@
<para arch="i386">Granch SBNI16 SHDSL modems (&man.sbsh.4;
driver)</para>
- <para arch="i386">SMC COM90cx6 ARCNET network adapters (cm driver)
- <itemizedlist>
- <listitem>
- <para>SMC 90c26, 90c56, and 90c66 in 90c56 compatability mode</para>
- </listitem>
- </itemizedlist>
- </para>
+ &hwlist.cm;
</sect2>
diff --git a/release/doc/en_US.ISO8859-1/hardware/i386/Makefile b/release/doc/en_US.ISO8859-1/hardware/i386/Makefile
index 507b8ee..ab08a81 100644
--- a/release/doc/en_US.ISO8859-1/hardware/i386/Makefile
+++ b/release/doc/en_US.ISO8859-1/hardware/i386/Makefile
@@ -1,5 +1,4 @@
# $FreeBSD$
-
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
@@ -15,6 +14,8 @@ SRCS+= proc-i386.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
+SRCS+= ${DEV-AUTODIR}/catalog-auto
+SRCS+= ${DEV-AUTODIR}/dev-auto.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/release/doc/en_US.ISO8859-1/hardware/i386/article.sgml b/release/doc/en_US.ISO8859-1/hardware/i386/article.sgml
index 3a67889..c8a4bf4 100644
--- a/release/doc/en_US.ISO8859-1/hardware/i386/article.sgml
+++ b/release/doc/en_US.ISO8859-1/hardware/i386/article.sgml
@@ -9,6 +9,8 @@
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
+<!ENTITY % devauto PUBLIC "-//FreeBSD//ENTITIES Auto Generated Device Lists//EN">
+%devauto;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
diff --git a/release/doc/en_US.ISO8859-1/hardware/ia64/Makefile b/release/doc/en_US.ISO8859-1/hardware/ia64/Makefile
index 3b302cc..8896ecc 100644
--- a/release/doc/en_US.ISO8859-1/hardware/ia64/Makefile
+++ b/release/doc/en_US.ISO8859-1/hardware/ia64/Makefile
@@ -15,6 +15,8 @@ SRCS+= article.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
+SRCS+= ${DEV-AUTODIR}/catalog-auto
+SRCS+= ${DEV-AUTODIR}/dev-auto.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/release/doc/en_US.ISO8859-1/hardware/ia64/article.sgml b/release/doc/en_US.ISO8859-1/hardware/ia64/article.sgml
index f6fc9ed..4a188b7 100644
--- a/release/doc/en_US.ISO8859-1/hardware/ia64/article.sgml
+++ b/release/doc/en_US.ISO8859-1/hardware/ia64/article.sgml
@@ -9,6 +9,8 @@
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
+<!ENTITY % devauto PUBLIC "-//FreeBSD//ENTITIES Auto Generated Device Lists//EN">
+%devauto;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
diff --git a/release/doc/en_US.ISO8859-1/hardware/pc98/Makefile b/release/doc/en_US.ISO8859-1/hardware/pc98/Makefile
index 5d33ce7..a4b5bc4 100644
--- a/release/doc/en_US.ISO8859-1/hardware/pc98/Makefile
+++ b/release/doc/en_US.ISO8859-1/hardware/pc98/Makefile
@@ -15,6 +15,8 @@ SRCS+= proc-pc98.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
+SRCS+= ${DEV-AUTODIR}/catalog-auto
+SRCS+= ${DEV-AUTODIR}/dev-auto.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/release/doc/en_US.ISO8859-1/hardware/pc98/article.sgml b/release/doc/en_US.ISO8859-1/hardware/pc98/article.sgml
index 8c7bb17..205fd2b 100644
--- a/release/doc/en_US.ISO8859-1/hardware/pc98/article.sgml
+++ b/release/doc/en_US.ISO8859-1/hardware/pc98/article.sgml
@@ -9,6 +9,8 @@
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
+<!ENTITY % devauto PUBLIC "-//FreeBSD//ENTITIES Auto Generated Device Lists//EN">
+%devauto;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
diff --git a/release/doc/en_US.ISO8859-1/hardware/sparc64/Makefile b/release/doc/en_US.ISO8859-1/hardware/sparc64/Makefile
index cb8a496..4414433 100644
--- a/release/doc/en_US.ISO8859-1/hardware/sparc64/Makefile
+++ b/release/doc/en_US.ISO8859-1/hardware/sparc64/Makefile
@@ -15,6 +15,8 @@ SRCS+= proc-sparc64.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
+SRCS+= ${DEV-AUTODIR}/catalog-auto
+SRCS+= ${DEV-AUTODIR}/dev-auto.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/release/doc/en_US.ISO8859-1/hardware/sparc64/article.sgml b/release/doc/en_US.ISO8859-1/hardware/sparc64/article.sgml
index b4ff29d..9db5748 100644
--- a/release/doc/en_US.ISO8859-1/hardware/sparc64/article.sgml
+++ b/release/doc/en_US.ISO8859-1/hardware/sparc64/article.sgml
@@ -9,6 +9,8 @@
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
+<!ENTITY % devauto PUBLIC "-//FreeBSD//ENTITIES Auto Generated Device Lists//EN">
+%devauto;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
diff --git a/release/doc/share/misc/dev.archlist.txt b/release/doc/share/misc/dev.archlist.txt
new file mode 100644
index 0000000..e184291
--- /dev/null
+++ b/release/doc/share/misc/dev.archlist.txt
@@ -0,0 +1,63 @@
+#
+# Copyright (c) 2004 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.
+# <Driver name><tab><arch>[,<arch>...]
+#
+aac i386,amd64
+adv i386,pc98,amd64
+adw i386,pc98,amd64
+aha i386
+ahb i386
+ahc i386,pc98,alpha,sparc64,amd64
+ahd i386,sparc64,amd64
+aic i386,pc98,amd64
+aue i386,pc98,amd64
+awi i386,pc98,amd64
+bge i386,pc98,ia64,amd64
+ciss i386,amd64
+cm i386
+cp i386,pc98
+ct pc98
+cx i386
+dpt i386,amd64
+fe i386,pc98,amd64
+hme sparc64
+isp i386,pc98,alpha,ia64,sparc64,amd64
+my i386,pc98
+twe i386
+txp i386,pc98,alpha,amd64
+udav i386,pc98,amd64
+xe i386,amd64
+xl i386,pc98,alpha,sparc64,amd64
diff --git a/release/doc/share/misc/man2hwnotes.pl b/release/doc/share/misc/man2hwnotes.pl
new file mode 100644
index 0000000..915728d
--- /dev/null
+++ b/release/doc/share/misc/man2hwnotes.pl
@@ -0,0 +1,353 @@
+#!/usr/bin/perl -w
+# Emacs should use -*- cperl -*- mode
+#
+# Copyright (c) 2003-2004 Simon L. Nielsen <simon@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$
+#
+
+# 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:
+# mdoc2sgml [-l] [-d 0-6] [-a <archlist file>] manualpage [manualpage ...]
+
+use strict;
+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 $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:d:l",\%options)) {
+ die("Invalid command line arguments\n");
+}
+
+if (defined($options{d})) {
+ $debuglevel = $options{d};
+}
+if (defined($options{a})) {
+ $archlist_file = $options{a};
+}
+if (defined($options{l})) {
+ $only_list_out = 1;
+}
+
+if ($debuglevel > 0) {
+ # Don't do output buffering in debug mode.
+ $| = 1;
+}
+
+load_archlist($archlist_file);
+
+if ($only_list_out) {
+ # Print the default device preamble entities
+ print "<!ENTITY hwlist.preamble.pre 'The'>\n";
+ print "<!ENTITY hwlist.preamble.post 'driver supports:'>\n";
+}
+
+foreach my $page (@ARGV) {
+ dlog(2, "Parsing $page");
+ parse($page);
+
+ print join("\n", @out_lines);
+ print "\n";
+ print join("\n", @out_dev);
+ print "\n";
+
+ @out_lines = ();
+ @out_dev = ();
+}
+
+sub parse {
+ my ($manpage) = @_;
+
+ my $cur_mansection;
+ my $found_hwlist = 0;
+ my %mdocvars;
+ $mdocvars{isin_hwlist} = 0;
+ $mdocvars{isin_list} = 0;
+ $mdocvars{parabuf} = "";
+ $mdocvars{listtype} = "";
+
+ open(MANPAGE, "$manpage") || die();
+ while(<MANPAGE>) {
+ chomp;
+ my $line = $_;
+
+ dlog(5, "Read '$line'");
+
+ # Find commands
+ if (s/^\.(.*)$/$1/) {
+ # Detect, and ignore, comment lines
+ if (s/^\\"(.*)$/$1/) {
+ next;
+ }
+
+ if (/^Nm "?(\w+)"?/ && !defined($mdocvars{Nm})) {
+ dlog(3, "Setting Nm to $1");
+ $mdocvars{Nm} = $1;
+
+ } elsif (/^Nm$/) {
+ if (defined($mdocvars{Nm}) && $mdocvars{Nm} ne "") {
+ parabuf_addline(\%mdocvars, "&man.".$mdocvars{Nm}.".$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, "<!ENTITY hwlist.".$mdocvars{cur_manname}." '");
+ if ($only_list_out) {
+ add_sgmltag("<para>&hwlist.preamble.pre; " .
+ "&man.".$mdocvars{Nm}.".$cur_mansection; " .
+ "&hwlist.preamble.post;</para>");
+ }
+ } elsif ($mdocvars{isin_hwlist}) {
+ dlog(2, "Found a HWLIST STOP key!");
+ add_sgmltag(\%mdocvars, "'>");
+ $mdocvars{isin_hwlist} = 0;
+ }
+
+ } elsif (/^Dt ([^ ]+) ([^ ]+)/) {
+ dlog(4, "Setting mansection to $2");
+ $mdocvars{cur_manname} = lc($1);
+ $cur_mansection = $2;
+
+ } elsif (/^It ?(.*)$/) {
+ # Flush last item
+ if ($mdocvars{parabuf} ne "") {
+ add_listitem(\%mdocvars);
+ }
+ parabuf_addline(\%mdocvars, $1);
+ } elsif (/^Bl/) {
+ $mdocvars{isin_list} = 1;
+ flush_out(\%mdocvars);
+ add_sgmltag(\%mdocvars, "<itemizedlist>");
+
+ if (/-tag/) {
+ $mdocvars{listtype} = "tag";
+ # YACK! Hack for ata(4)
+ if ($mdocvars{Nm} eq "ata") {
+ $mdocvars{listtype} = "tagHACK";
+ }
+ } elsif (/-bullet/) {
+ $mdocvars{listtype} = "bullet";
+ } else {
+ $mdocvars{listtype} = "unknown";
+ }
+ dlog(2, "Listtype set to $mdocvars{listtype}");
+ } elsif (/^El/) {
+ if ($mdocvars{parabuf} ne "") {
+ add_listitem(\%mdocvars);
+ }
+
+ add_sgmltag(\%mdocvars, "</itemizedlist>");
+ $mdocvars{isin_list} = 0;
+ } elsif (/^Tn (.+)$/) {
+ # For now we print TradeName text as regular text.
+ my $txt = $1;
+ $txt =~ s/^(.+) ,$/$1,/;
+
+ parabuf_addline(\%mdocvars, $txt);
+ } elsif (/^Xr (.+) (.+)/) {
+ # We need to check if the manual page exist to avoid
+ # breaking the doc build just because of a broken
+ # reference.
+ #parabuf_addline(\%mdocvars, "&man.$1.$2;");
+ parabuf_addline(\%mdocvars, "$1($2)");
+ }
+ # Ignore all other commands
+ } else {
+ # This is then regular text
+ parabuf_addline(\%mdocvars, $_);
+ }
+ }
+ close(MANPAGE) || die("Could not close input manual page");
+ if (! $found_hwlist) {
+ dlog(1, "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/'/&lsquo;/g;
+
+ $entity_name = "hwlist." . md5_hex($itemtxt);
+ dlog(4, "Adding '$itemtxt' as entity $entity_name");
+ push(@out_lines, "<!ENTITY $entity_name '$itemtxt'>");
+
+ 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}})) {
+ $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"';
+ }
+ $out = "<para".$para_arch.">&".$entity_name.";</para>";
+
+ 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(defined($archlist{${$mdocvars}{Nm}})) {
+ $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"';
+ }
+ $listitem = "<listitem><para".$para_arch.">&".$entity_name.";</para></listitem>";
+ 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");
+
+ # We only care about the HW list for now.
+ if (!${$mdocvars}{isin_hwlist}) {
+ return;
+ }
+ if ($txt eq "") {
+ return;
+ }
+
+ if ($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") {
+ 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\n");
+ while(<FILE>) {
+ chomp;
+ $lineno++;
+
+ if (/^#/ || $_ eq "") {
+ next;
+ }
+
+ if (/(\w+)\t([\w,]+)/) {
+ dlog(4, "For driver $1 setting arch to $2");
+ $archlist{$1} = $2;
+ } else {
+ dlog(1, "Could not parse line $lineno");
+ }
+ }
+
+ close(FILE);
+}
diff --git a/release/doc/share/mk/doc.relnotes.mk b/release/doc/share/mk/doc.relnotes.mk
index 0335640..da5dbc0 100644
--- a/release/doc/share/mk/doc.relnotes.mk
+++ b/release/doc/share/mk/doc.relnotes.mk
@@ -26,3 +26,24 @@ JADEFLAGS+= -iinclude.historic
.else
JADEFLAGS+= -ino.include.historic
.endif
+
+#
+# Automatic device list generation:
+#
+.if exists(${RELN_ROOT}/../man4)
+MAN4DIR?= ${RELN_ROOT}/../man4
+.elif exists(${RELN_ROOT}/../../man4)
+MAN4DIR?= ${RELN_ROOT}/../../man4
+.else
+MAN4DIR?= ${RELN_ROOT}/../../share/man/man4
+.endif
+MAN4PAGES?= ${MAN4DIR}/*.4 ${MAN4DIR}/man4.*/*.4
+ARCHLIST?= ${RELN_ROOT}/share/misc/dev.archlist.txt
+DEV-AUTODIR= ${RELN_ROOT:S/${.CURDIR}/${.OBJDIR}/}/share/sgml
+CLEANFILES+= ${DEV-AUTODIR}/dev-auto.sgml ${DEV-AUTODIR}/catalog-auto
+
+# Dependency that the article makefiles can use to pull in
+# dev-auto.sgml.
+${DEV-AUTODIR}/catalog-auto ${DEV-AUTODIR}/dev-auto.sgml: ${MAN4PAGES} \
+ ${ARCHLIST} ${RELN_ROOT}/share/misc/man2hwnotes.pl
+ cd ${RELN_ROOT}/share/sgml && make dev-auto.sgml
diff --git a/release/doc/share/sgml/Makefile b/release/doc/share/sgml/Makefile
new file mode 100644
index 0000000..8592fd0
--- /dev/null
+++ b/release/doc/share/sgml/Makefile
@@ -0,0 +1,16 @@
+# $FreeBSD$
+
+RELN_ROOT?= ${.CURDIR}/../..
+
+.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"
+
+dev-auto.sgml: ${MAN4PAGES} ${ARCHLIST} ${RELN_ROOT}/share/misc/man2hwnotes.pl catalog-auto
+ ${PERL} ${RELN_ROOT}/share/misc/man2hwnotes.pl -a ${ARCHLIST} \
+ ${MAN4PAGES} > ${.TARGET}
+
+catalog-auto:
+ ${ECHO_CMD} 'PUBLIC "-//FreeBSD//ENTITIES Auto Generated Device Lists//EN"' \
+ '"dev-auto.sgml"' > ${.TARGET}
+
+all: dev-auto.sgml
OpenPOWER on IntegriCloud