summaryrefslogtreecommitdiffstats
path: root/doc/networking
diff options
context:
space:
mode:
Diffstat (limited to 'doc/networking')
-rw-r--r--doc/networking/Makefile.am67
-rw-r--r--doc/networking/PCIreg.eps319
-rw-r--r--doc/networking/PCIreg.jpgbin48116 -> 0 bytes
-rw-r--r--doc/networking/PCIreg.txt2
-rw-r--r--doc/networking/decdriver.t268
-rw-r--r--doc/networking/driver.t339
-rw-r--r--doc/networking/networkapp.t924
-rw-r--r--doc/networking/networkflow.eps1343
-rw-r--r--doc/networking/networkflow.jpgbin36969 -> 0 bytes
-rw-r--r--doc/networking/networkflow.pngbin12933 -> 0 bytes
-rw-r--r--doc/networking/networkflow.txt2
-rw-r--r--doc/networking/networking.texi97
-rw-r--r--doc/networking/networktasks.t44
-rw-r--r--doc/networking/preface.texi53
-rw-r--r--doc/networking/recvbd.eps181
-rw-r--r--doc/networking/recvbd.jpgbin11100 -> 0 bytes
-rw-r--r--doc/networking/recvbd.txt2
-rw-r--r--doc/networking/servers.t115
-rw-r--r--doc/networking/stamp-vti4
-rw-r--r--doc/networking/testing.t365
-rw-r--r--doc/networking/version.texi4
21 files changed, 0 insertions, 4129 deletions
diff --git a/doc/networking/Makefile.am b/doc/networking/Makefile.am
deleted file mode 100644
index bb33fc48c2..0000000000
--- a/doc/networking/Makefile.am
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# COPYRIGHT (c) 1988-2002.
-# On-Line Applications Research Corporation (OAR).
-# All rights reserved.
-
-PROJECT = networking
-
-include $(top_srcdir)/project.am
-include $(top_srcdir)/main.am
-
-BMENU2 += -c
-
-GENERATED_FILES = networkapp.texi driver.texi networktasks.texi testing.texi \
- servers.texi decdriver.texi
-
-COMMON_FILES += $(top_srcdir)/common/cpright.texi
-
-FILES = networktasks.texi preface.texi
-
-info_TEXINFOS = networking.texi
-networking_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES)
-
-$(PROJECT).dvi: networkflow.eps PCIreg.eps recvbd.eps
-
-PDF_IMAGES = networkflow.pdf PCIreg.pdf recvbd.pdf
-
-if USE_HTML
-html_project_DATA += networkflow.jpg networkflow.png PCIreg.jpg recvbd.jpg
-endif
-
-networktasks.texi: networktasks.t
- $(BMENU2) -p "Preface" \
- -u "Top" \
- -n "Networking Driver" < $< > $@
-
-driver.texi: driver.t
- $(BMENU2) -p "Network Task Structure and Data Flow" \
- -u "Top" \
- -n "Using Networking in an RTEMS Application" < $< > $@
-
-networkapp.texi: networkapp.t
- $(BMENU2) -p "Write the Driver Statistic-Printing Function" \
- -u "Top" \
- -n "Testing the Driver" < $< > $@
-
-testing.texi: testing.t
- $(BMENU2) -p "Time Synchronization Using NTP" \
- -u "Top" \
- -n "Network Servers" < $< > $@
-
-servers.texi: servers.t
- $(BMENU2) -p "Throughput" \
- -u "Top" \
- -n "DEC 21140 Driver" < $< > $@
-
-decdriver.texi: decdriver.t
- $(BMENU2) -p "Using Hooks" \
- -u "Top" \
- -n "Command and Variable Index" < $< > $@
-
-PICTURE_FILES = PCIreg.eps PCIreg.jpg networkflow.eps networkflow.jpg \
- networkflow.png recvbd.eps recvbd.jpg
-
-EXTRA_DIST = decdriver.t driver.t networkapp.t networktasks.t servers.t \
- testing.t $(PICTURE_FILES)
-
-CLEANFILES += networking.info networking.info-?
diff --git a/doc/networking/PCIreg.eps b/doc/networking/PCIreg.eps
deleted file mode 100644
index e627786434..0000000000
--- a/doc/networking/PCIreg.eps
+++ /dev/null
@@ -1,319 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: PCI_reg.eps
-%%Creator: fig2dev Version 3.2 Patchlevel 1
-%%CreationDate: Mon Feb 8 15:09:56 1999
-%%For: raguet@genesis (Emmanuel Raguet)
-%%Orientation: Portrait
-%%BoundingBox: 0 0 270 592
-%%Pages: 0
-%%BeginSetup
-%%EndSetup
-%%Magnification: 1.0000
-%%EndComments
-/$F2psDict 200 dict def
-$F2psDict begin
-$F2psDict /mtrx matrix put
-/col-1 {0 setgray} bind def
-/col0 {0.000 0.000 0.000 srgb} bind def
-/col1 {0.000 0.000 1.000 srgb} bind def
-/col2 {0.000 1.000 0.000 srgb} bind def
-/col3 {0.000 1.000 1.000 srgb} bind def
-/col4 {1.000 0.000 0.000 srgb} bind def
-/col5 {1.000 0.000 1.000 srgb} bind def
-/col6 {1.000 1.000 0.000 srgb} bind def
-/col7 {1.000 1.000 1.000 srgb} bind def
-/col8 {0.000 0.000 0.560 srgb} bind def
-/col9 {0.000 0.000 0.690 srgb} bind def
-/col10 {0.000 0.000 0.820 srgb} bind def
-/col11 {0.530 0.810 1.000 srgb} bind def
-/col12 {0.000 0.560 0.000 srgb} bind def
-/col13 {0.000 0.690 0.000 srgb} bind def
-/col14 {0.000 0.820 0.000 srgb} bind def
-/col15 {0.000 0.560 0.560 srgb} bind def
-/col16 {0.000 0.690 0.690 srgb} bind def
-/col17 {0.000 0.820 0.820 srgb} bind def
-/col18 {0.560 0.000 0.000 srgb} bind def
-/col19 {0.690 0.000 0.000 srgb} bind def
-/col20 {0.820 0.000 0.000 srgb} bind def
-/col21 {0.560 0.000 0.560 srgb} bind def
-/col22 {0.690 0.000 0.690 srgb} bind def
-/col23 {0.820 0.000 0.820 srgb} bind def
-/col24 {0.500 0.190 0.000 srgb} bind def
-/col25 {0.630 0.250 0.000 srgb} bind def
-/col26 {0.750 0.380 0.000 srgb} bind def
-/col27 {1.000 0.500 0.500 srgb} bind def
-/col28 {1.000 0.630 0.630 srgb} bind def
-/col29 {1.000 0.750 0.750 srgb} bind def
-/col30 {1.000 0.880 0.880 srgb} bind def
-/col31 {1.000 0.840 0.000 srgb} bind def
-
-end
-save
--172.0 622.0 translate
-1 -1 scale
-
-/cp {closepath} bind def
-/ef {eofill} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth} bind def
-/tr {translate} bind def
-/tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
-/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
-/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
-/$F2psEnd {$F2psEnteredState restore end} def
-%%EndProlog
-
-$F2psBegin
-10 setmiterlimit
-n -1000 10868 m -1000 -1000 l 8010 -1000 l 8010 10868 l cp clip
- 0.06299 0.06299 sc
-% Polyline
-7.500 slw
-n 2745 1305 m 6525 1305 l 6525 1800 l 2745 1800 l cp gs 0.00 setgray ef gr gs col0 s gr
-% Polyline
-n 4635 1305 m 4635 1800 l gs col7 s gr
-% Polyline
-n 2745 6750 m 6525 6750 l 6525 7245 l 2745 7245 l cp gs col0 s gr
-% Polyline
-n 4635 6750 m 4635 7245 l gs col0 s gr
-% Polyline
-n 2745 8730 m 6525 8730 l 6525 9225 l 2745 9225 l cp gs col0 s gr
-% Polyline
-n 4635 8730 m 4635 9225 l gs col0 s gr
-% Polyline
-n 3735 8730 m 3735 9225 l gs col0 s gr
-% Polyline
-n 5580 8730 m 5580 9225 l gs col0 s gr
-% Polyline
-n 2745 3285 m 6525 3285 l 6525 3780 l 2745 3780 l cp gs col0 s gr
-% Polyline
-n 2745 3780 m 6525 3780 l 6525 4275 l 2745 4275 l cp gs col0 s gr
-% Polyline
-n 2745 4275 m 6525 4275 l 6525 4770 l 2745 4770 l cp gs col0 s gr
-% Polyline
-n 2745 4770 m 6525 4770 l 6525 5265 l 2745 5265 l cp gs col0 s gr
-% Polyline
-n 2745 5265 m 6525 5265 l 6525 5760 l 2745 5760 l cp gs col0 s gr
-% Polyline
-n 2745 5760 m 6525 5760 l 6525 6255 l 2745 6255 l cp gs col0 s gr
-% Polyline
-n 2745 2790 m 6525 2790 l 6525 3285 l 2745 3285 l cp gs col0 s gr
-% Polyline
-n 4635 2790 m 4635 3285 l gs col0 s gr
-% Polyline
-n 3735 2790 m 3735 3285 l gs col0 s gr
-% Polyline
-n 5580 2790 m 5580 3285 l gs col0 s gr
-% Polyline
-n 2745 2295 m 6525 2295 l 6525 2790 l 2745 2790 l cp gs 0.00 setgray ef gr gs col7 s gr
-% Polyline
-n 5580 2295 m 5580 2790 l gs col7 s gr
-% Polyline
-n 2745 1800 m 6525 1800 l 6525 2295 l 2745 2295 l cp gs 0.00 setgray ef gr gs col7 s gr
-% Polyline
-n 4635 1800 m 4635 2295 l gs col7 s gr
-% Polyline
-n 3735 3285 m 4635 3285 l 4635 2790 l 3735 2790 l cp gs 0.00 setgray ef gr gs col7 s gr
-% Polyline
-n 2745 6255 m 6525 6255 l 6525 6750 l 2745 6750 l cp gs col0 s gr
-% Polyline
-n 2745 7740 m 6525 7740 l 6525 8235 l 2745 8235 l cp gs col0 s gr
-% Polyline
-n 2745 8235 m 6525 8235 l 6525 8730 l 2745 8730 l cp gs col0 s gr
-% Polyline
-n 2880 9585 m 3285 9585 l 3285 9855 l 2880 9855 l cp gs 0.00 setgray ef gr gs col0 s gr
-% Polyline
-n 2745 7245 m 6525 7245 l 6525 7740 l 2745 7740 l cp gs col0 s gr
-% Polyline
-gs clippath
-6915 1140 m 6885 1260 l 6855 1140 l 6855 1275 l 6915 1275 l cp
-clip
-n 6885 1260 m 6885 675 l 6660 675 l gs col0 s gr gr
-
-% arrowhead
-n 6915 1140 m 6885 1260 l 6855 1140 l col0 s
-/Times-Roman ff 270.00 scf sf
-3735 7155 m
-gs 1 -1 sc (Subsystem ID) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-4635 8145 m
-gs 1 -1 sc (Reserved) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-4635 8550 m
-gs 1 -1 sc (Reserved) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-3240 3195 m
-gs 1 -1 sc (BIST) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-3240 9135 m
-gs 1 -1 sc (Max_Lat) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-4185 9135 m
-gs 1 -1 sc (Min_Gnt) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-5085 8955 m
-gs 1 -1 sc (Interrupt) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6030 8955 m
-gs 1 -1 sc (Interrupt) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-5040 3015 m
-gs 1 -1 sc (Latency) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-5535 6975 m
-gs 1 -1 sc (Subsystem) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-5535 7200 m
-gs 1 -1 sc (Vendor ID) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-4725 7695 m
-gs 1 -1 sc (Base address) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-4725 7470 m
-gs 1 -1 sc (Expansion ROM) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6030 3195 m
-gs 1 -1 sc (Size Line) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-5985 3015 m
-gs 1 -1 sc (Cache) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-5085 3240 m
-gs 1 -1 sc (Timer) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-4635 6615 m
-gs 1 -1 sc (CardBus CIS Pointer) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-4680 6120 m
-gs 1 -1 sc (Base address 5) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-4680 5625 m
-gs 1 -1 sc (Base address 4) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-4680 5130 m
-gs 1 -1 sc (Base address 3) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-4680 4635 m
-gs 1 -1 sc (Base address 2) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-4680 4140 m
-gs 1 -1 sc (Base address 1) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-4680 3600 m
-gs 1 -1 sc (Base address 0) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-5085 9180 m
-gs 1 -1 sc (Pin) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6030 9180 m
-gs 1 -1 sc (Line) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman ff 270.00 scf sf
-5535 1665 m
-gs 1 -1 sc (Vendor ID) dup sw pop 2 div neg 0 rm col7 sh gr
-/Times-Roman ff 270.00 scf sf
-4185 2655 m
-gs 1 -1 sc (Class code) dup sw pop 2 div neg 0 rm col7 sh gr
-/Times-Roman ff 210.00 scf sf
-6030 2475 m
-gs 1 -1 sc (Revision) dup sw pop 2 div neg 0 rm col7 sh gr
-/Times-Roman ff 210.00 scf sf
-6030 2730 m
-gs 1 -1 sc (ID) dup sw pop 2 div neg 0 rm col7 sh gr
-/Times-Roman ff 240.00 scf sf
-5625 2160 m
-gs 1 -1 sc (Command register) dup sw pop 2 div neg 0 rm col7 sh gr
-/Times-Roman ff 270.00 scf sf
-3690 2160 m
-gs 1 -1 sc (Status register) dup sw pop 2 div neg 0 rm col7 sh gr
-/Times-Roman ff 270.00 scf sf
-3735 1665 m
-gs 1 -1 sc (Device ID) dup sw pop 2 div neg 0 rm col7 sh gr
-/Times-Roman ff 210.00 scf sf
-4185 2970 m
-gs 1 -1 sc (Header) dup sw pop 2 div neg 0 rm col7 sh gr
-/Times-Roman ff 210.00 scf sf
-4185 3225 m
-gs 1 -1 sc (Type) dup sw pop 2 div neg 0 rm col7 sh gr
-/Times-Roman ff 210.00 scf sf
-3375 9810 m
-gs 1 -1 sc (Required configuration registers) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 1665 m
-gs 1 -1 sc (00) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 4140 m
-gs 1 -1 sc (05) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 4635 m
-gs 1 -1 sc (06) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 2160 m
-gs 1 -1 sc (01) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 2655 m
-gs 1 -1 sc (02) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 3645 m
-gs 1 -1 sc (04) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 3150 m
-gs 1 -1 sc (03) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 5085 m
-gs 1 -1 sc (07) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 5580 m
-gs 1 -1 sc (08) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 6570 m
-gs 1 -1 sc (10) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 7110 m
-gs 1 -1 sc (11) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 7605 m
-gs 1 -1 sc (12) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 6075 m
-gs 1 -1 sc (09) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 8100 m
-gs 1 -1 sc (13) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 8595 m
-gs 1 -1 sc (14) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-6795 9090 m
-gs 1 -1 sc (15) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-5580 855 m
-gs 1 -1 sc (\(in decimal\)) col0 sh gr
-/Times-Roman ff 210.00 scf sf
-4725 630 m
-gs 1 -1 sc (Double word number) col0 sh gr
-$F2psEnd
-rs
diff --git a/doc/networking/PCIreg.jpg b/doc/networking/PCIreg.jpg
deleted file mode 100644
index c03257bed4..0000000000
--- a/doc/networking/PCIreg.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/networking/PCIreg.txt b/doc/networking/PCIreg.txt
deleted file mode 100644
index adff06479e..0000000000
--- a/doc/networking/PCIreg.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Figure: PCI Device's Configuration Header Space Format
- (Not available in ASCII version of this document.)
diff --git a/doc/networking/decdriver.t b/doc/networking/decdriver.t
deleted file mode 100644
index 74ade6c6d6..0000000000
--- a/doc/networking/decdriver.t
+++ /dev/null
@@ -1,268 +0,0 @@
-@c
-@c RTEMS Remote Debugger Server Specifications
-@c
-@c Written by: Emmanuel Raguet <raguet@crf.canon.fr>
-@c
-
-@chapter DEC 21140 Driver
-
-@section DEC 21240 Driver Introduction
-
-@c XXX add back in cross reference to list of boards.
-
-One aim of our project is to port RTEMS on a standard PowerPC platform.
-To achieve it, we have chosen a Motorola MCP750 board. This board includes
-an Ethernet controller based on a DEC21140 chip. Because RTEMS has a
-TCP/IP stack, we will
-have to develop the DEC21140 related ethernet driver for the PowerPC port of
-RTEMS. As this controller is able to support 100Mbps network and as there is
-a lot of PCI card using this DEC chip, we have decided to first
-implement this driver on an Intel PC386 target to provide a solution for using
-RTEMS on PC with the 100Mbps network and then to port this code on PowerPC in
-a second phase.
-
-
-The aim of this document is to give some PCI board generalities and
-to explain the software architecture of the RTEMS driver. Finally, we will see
-what will be done for ChorusOs and Netboot environment .
-
-
-@section Document Revision History
-
-@b{Current release}:
-
-@itemize @bullet
-@item Current applicable release is 1.0.
-@end itemize
-@b{Existing releases}:
-
-@itemize @bullet
-@item 1.0 : Released the 10/02/98. First version of this document.
-@item 0.1 : First draft of this document
-@end itemize
-@b{Planned releases}:
-
-@itemize @bullet
-@item None planned today.
-@end itemize
-
-@section DEC21140 PCI Board Generalities
-
-@c XXX add crossreference to PCI Register Figure
-This chapter describes rapidely the PCI interface of this Ethernet controller.
-The board we have chosen for our PC386 implementation is a D-Link DFE-500TX.
-This is a dual-speed 10/100Mbps Ethernet PCI adapter with a DEC21140AF chip.
-Like other PCI devices, this board has a PCI device's header containing some
-required configuration registers, as shown in the PCI Register Figure.
-By reading
-or writing these registers, a driver can obtain information about the type of
-the board, the interrupt it uses, the mapping of the chip specific registers, ...
-
-
-
-On Intel target, the chip specific registers can be accessed via 2
-methods : I/O port access or PCI address mapped access. We have chosen to implement
-the PCI address access to obtain compatible source code to the port the driver
-on a PowerPC target.
-
-@c
-@c PCI Device's Configuration Header Space Format
-@c
-
-@ifclear use-html
-@image{PCIreg,,,PCI Device's Configuration Header Space Format}
-@end ifclear
-
-@ifset use-html
-@c <IMG SRC="PCIreg.jpg" WIDTH=500 HEIGHT=600 ALT="PCI Device's Configuration Header Space Format">
-@html
- <IMG SRC="PCIreg.jpg" ALT="PCI Device's Configuration Header Space Format">
-@end html
-@end ifset
-
-
-@c XXX add crossreference to PCI Register Figure
-
-On RTEMS, a PCI API exists. We have used it to configure the board. After initializing
-this PCI module via the @code{pci_initialize()} function, we try to detect
-the DEC21140 based ethernet board. This board is characterized by its Vendor
-ID (0x1011) and its Device ID (0x0009). We give these arguments to the
-@code{pcib_find_by_deviceid}
-function which returns , if the device is present, a pointer to the configuration
-header space (see PCI Registers Fgure). Once this operation performed,
-the driver
-is able to extract the information it needs to configure the board internal
-registers, like the interrupt line, the base address,... The board internal
-registers will not be detailled here. You can find them in @b{DIGITAL
-Semiconductor 21140A PCI Fast Ethernet LAN Controller
-- Hardware Reference Manual}.
-
-@c fix citation
-
-
-@section RTEMS Driver Software Architecture
-
-In this chapter will see the initialization phase, how the controller uses the
-host memory and the 2 threads launched at the initialization time.
-
-
-@subsection Initialization phase
-
-The DEC21140 Ethernet driver keeps the same software architecture than the other
-RTEMS ethernet drivers. The only API the programmer can use is the @code{rtems_dec21140_driver_attach}
-@code{(struct rtems_bsdnet_ifconfig *config)} function which
-detects the board and initializes the associated data structure (with registers
-base address, entry points to low-level initialization function,...), if the
-board is found.
-
-Once the attach function executed, the driver initializes the DEC
-chip. Then the driver connects an interrupt handler to the interrupt line driven
-by the Ethernet controller (the only interrupt which will be treated is the
-receive interrupt) and launches 2 threads : a receiver thread and a transmitter
-thread. Then the driver waits for incoming frame to give to the protocol stack
-or outcoming frame to send on the physical link.
-
-
-@subsection Memory Buffer
-
-@c XXX add cross reference to Problem
-This DEC chip uses the host memory to store the incoming Ethernet frames and
-the descriptor of these frames. We have chosen to use 7 receive buffers and
-1 transmit buffer to optimize memory allocation due to cache and paging problem
-that will be explained in the section @b{Encountered Problems}.
-
-
-To reference these buffers to the DEC chip we use a buffer descriptors
-ring. The descriptor structure is defined in the Buffer Descriptor Figure.
-Each descriptor
-can reference one or two memory buffers. We choose to use only one buffer of
-1520 bytes per descriptor.
-
-
-The difference between a receive and a transmit buffer descriptor
-is located in the status and control bits fields. We do not give details here,
-please refer to the [DEC21140 Hardware Manual].
-
-@c
-@c Buffer Descriptor
-@c
-
-@ifclear use-html
-@image{recvbd,,,"Buffer Descriptor"}
-@end ifclear
-
-@ifset use-html
-@c <IMG SRC="recvbd.jpg" WIDTH=500 HEIGHT=600 ALT="Buffer Descriptor">
-@html
-<IMG SRC="recvbd.jpg" ALT="Buffer Descriptor">
-@end html
-@end ifset
-
-
-
-@subsection Receiver Thread
-
-This thread is event driven. Each time a DEC PCI board interrupt occurs, the
-handler checks if this is a receive interrupt and send an event ``reception''
-to the receiver thread which looks into the entire buffer descriptors ring the
-ones that contain a valid incoming frame (bit OWN=0 means descriptor belongs
-to host processor). Each valid incoming ethernet frame is sent to the protocol
-stack and the buffer descriptor is given back to the DEC board (the host processor
-reset bit OWN, which means descriptor belongs to 21140).
-
-
-@subsection Transmitter Thread
-
-This thread is also event driven. Each time an Ethernet frame is put in the
-transmit queue, an event is sent to the transmit thread, which empty the queue
-by sending each outcoming frame. Because we use only one transmit buffer, we
-are sure that the frame is well-sent before sending the next.
-
-
-@section Encountered Problems
-
-On Intel PC386 target, we were faced with a problem of memory cache management.
-Because the DEC chip uses the host memory to store the incoming frame and because
-the DEC21140 configuration registers are mapped into the PCI address space,
-we must ensure that the data read (or written) by the host processor are the
-ones written (or read) by the DEC21140 device in the host memory and not old
-data stored in the cache memory. Therefore, we had to provide a way to manage
-the cache. This module is described in the document @b{RTEMS
-Cache Management For Intel}. On Intel, the
-memory region cache management is available only if the paging unit is enabled.
-We have used this paging mechanism, with 4Kb page. All the buffers allocated
-to store the incoming or outcoming frames, buffer descriptor and also the PCI
-address space of the DEC board are located in a memory space with cache disable.
-
-
-Concerning the buffers and their descriptors, we have tried to optimize
-the memory space in term of allocated page. One buffer has 1520 bytes, one descriptor
-has 16 bytes. We have 7 receive buffers and 1 transmit buffer, and for each,
-1 descriptor : (7+1)*(1520+16) = 12288 bytes = 12Kb = 3 entire pages. This
-allows not to lose too much memory or not to disable cache memory for a page
-which contains other data than buffer, which could decrease performance.
-
-
-@section ChorusOs DEC Driver
-
-Because ChorusOs is used in several Canon CRF projects, we must provide such
-a driver on this OS to ensure compatibility between the RTEMS and ChorusOs developments.
-On ChorusOs, a DEC driver source code already exists but only for a PowerPC
-target. We plan to port this code (which uses ChorusOs API) on Intel target.
-This will allow us to have homogeneous developments. Moreover, the port of the
-development performed with ChorusOs environment to RTEMS environment will be
-easier for the developers.
-
-
-@section Netboot DEC driver
-
-We use Netboot tool to load our development from a server to the target via
-an ethernet network. Currently, this tool does not support the DEC board. We
-plan to port the DEC driver for the Netboot tool.
-
-
-But concerning the port of the DEC driver into Netboot, we are faced
-with a problem : in RTEMS environment, the DEC driver is interrupt or event
-driven, in Netboot environment, it must be used in polling mode. It means that
-we will have to re-write some mechanisms of this driver.
-
-
-@section List of Ethernet cards using the DEC chip
-
-Many Ethernet adapter cards use the Tulip chip. Here is a non exhaustive list
-of adapters which support this driver :
-
-@itemize @bullet
-@item Accton EtherDuo PCI.
-@item Accton EN1207 All three media types supported.
-@item Adaptec ANA6911/TX 21140-AC.
-@item Cogent EM110 21140-A with DP83840 N-Way MII transceiver.
-@item Cogent EM400 EM100 with 4 21140 100mbps-only ports + PCI Bridge.
-@item Danpex EN-9400P3.
-@item D-Link DFE500-Tx 21140-A with DP83840 transceiver.
-@item Kingston EtherX KNE100TX 21140AE.
-@item Netgear FX310 TX 10/100 21140AE.
-@item SMC EtherPower10/100 With DEC21140 and 68836 SYM transceiver.
-@item SMC EtherPower10/100 With DEC21140-AC and DP83840 MII transceiver.
-Note: The EtherPower II uses the EPIC chip, which requires a different driver.
-@item Surecom EP-320X DEC 21140.
-@item Thomas Conrad TC5048.
-@item Znyx ZX345 21140-A, usually with the DP83840 N-Way MII transciever. Some ZX345
-cards made in 1996 have an ICS 1890 transciver instead.
-@item ZNYX ZX348 Two 21140-A chips using ICS 1890 transcievers and either a 21052
-or 21152 bridge. Early versions used National 83840 transcievers, but later
-versions are depopulated ZX346 boards.
-@item ZNYX ZX351 21140 chip with a Broadcom 100BaseT4 transciever.
-@end itemize
-
-Our DEC driver has not been tested with all these cards, only with the D-Link
-DFE500-TX.
-
-@itemize @code{ }
-@item @cite{[DEC21140 Hardware Manual] DIGITAL, @b{DIGITAL
-Semiconductor 21140A PCI Fast Ethernet LAN Controller - Hardware
-Reference Manual}}.
-
-@item @cite{[99.TA.0021.M.ER]Emmanuel Raguet,
-@b{RTEMS Cache Management For Intel}}.
-@end itemize
diff --git a/doc/networking/driver.t b/doc/networking/driver.t
deleted file mode 100644
index 2f1a4c368e..0000000000
--- a/doc/networking/driver.t
+++ /dev/null
@@ -1,339 +0,0 @@
-@c
-@c Written by Eric Norum
-@c
-@c COPYRIGHT (c) 1988-2002.
-@c On-Line Applications Research Corporation (OAR).
-@c All rights reserved.
-
-@chapter Networking Driver
-
-@section Introduction
-
-This chapter is intended to provide an introduction to the
-procedure for writing RTEMS network device drivers.
-The example code is taken from the `Generic 68360' network device
-driver. The source code for this driver is located in the
-@code{c/src/lib/libbsp/m68k/gen68360/network} directory in the RTEMS
-source code distribution. Having a copy of this driver at
-hand when reading the following notes will help significantly.
-
-@section Learn about the network device
-
-Before starting to write the network driver become completely
-familiar with the programmer's view of the device.
-The following points list some of the details of the
-device that must be understood before a driver can be written.
-
-@itemize @bullet
-
-@item Does the device use DMA to transfer packets to and from
-memory or does the processor have to
-copy packets to and from memory on the device?
-
-@item If the device uses DMA, is it capable of forming a single
-outgoing packet from multiple fragments scattered in separate
-memory buffers?
-
-@item If the device uses DMA, is it capable of chaining multiple
-outgoing packets, or does each outgoing packet require
-intervention by the driver?
-
-@item Does the device automatically pad short frames to the minimum
-64 bytes or does the driver have to supply the padding?
-
-@item Does the device automatically retry a transmission on detection
-of a collision?
-
-@item If the device uses DMA, is it capable of buffering multiple
-packets to memory, or does the receiver have to be restarted
-after the arrival of each packet?
-
-@item How are packets that are too short, too long, or received with
-CRC errors handled? Does the device automatically continue
-reception or does the driver have to intervene?
-
-@item How is the device Ethernet address set? How is the device
-programmed to accept or reject broadcast and multicast packets?
-
-@item What interrupts does the device generate? Does it generate an
-interrupt for each incoming packet, or only for packets received
-without error? Does it generate an interrupt for each packet
-transmitted, or only when the transmit queue is empty? What
-happens when a transmit error is detected?
-
-@end itemize
-
-In addition, some controllers have specific questions regarding
-board specific configuration. For example, the SONIC Ethernet
-controller has a very configurable data bus interface. It can
-even be configured for sixteen and thirty-two bit data buses. This
-type of information should be obtained from the board vendor.
-
-@section Understand the network scheduling conventions
-
-When writing code for the driver transmit and receive tasks,
-take care to follow the network scheduling conventions. All tasks
-which are associated with networking share various
-data structures and resources. To ensure the consistency
-of these structures the tasks
-execute only when they hold the network semaphore (@code{rtems_bsdnet_semaphore}).
-The transmit and receive tasks must abide by this protocol. Be very
-careful to avoid `deadly embraces' with the other network tasks.
-A number of routines are provided to make it easier for the network
-driver code to conform to the network task scheduling conventions.
-
-@itemize @bullet
-
-@item @code{void rtems_bsdnet_semaphore_release(void)}
-
-This function releases the network semaphore.
-The network driver tasks must call this function immediately before
-making any blocking RTEMS request.
-
-@item @code{void rtems_bsdnet_semaphore_obtain(void)}
-
-This function obtains the network semaphore.
-If a network driver task has released the network semaphore to allow other
-network-related tasks to run while the task blocks, then this function must
-be called to reobtain the semaphore immediately after the return from the
-blocking RTEMS request.
-
-@item @code{rtems_bsdnet_event_receive(rtems_event_set, rtems_option, rtems_interval, rtems_event_set *)}
-The network driver task should call this function when it wishes to wait
-for an event. This function releases the network semaphore,
-calls @code{rtems_event_receive} to wait for the specified event
-or events and reobtains the semaphore.
-The value returned is the value returned by the @code{rtems_event_receive}.
-
-@end itemize
-
-@section Network Driver Makefile
-
-Network drivers are considered part of the BSD network package and as such
-are to be compiled with the appropriate flags. This can be accomplished by
-adding @code{-D__INSIDE_RTEMS_BSD_TCPIP_STACK__} to the @code{command line}.
-If the driver is inside the RTEMS source tree or is built using the
-RTEMS application Makefiles, then adding the following line accomplishes
-this:
-
-@example
-DEFINES += -D__INSIDE_RTEMS_BSD_TCPIP_STACK__
-@end example
-
-This is equivalent to the following list of definitions. Early versions
-of the RTEMS BSD network stack required that all of these be defined.
-
-@example
--D_COMPILING_BSD_KERNEL_ -DKERNEL -DINET -DNFS \
- -DDIAGNOSTIC -DBOOTP_COMPAT
-@end example
-
-Defining these macros tells the network header files that the driver
-is to be compiled with extended visibility into the network stack. This
-is in sharp contrast to applications that simply use the network stack.
-Applications do not require this level of visibility and should stick
-to the portable application level API.
-
-As a direct result of being logically internal to the network stack,
-network drivers use the BSD memory allocation routines This means,
-for example, that malloc takes three arguments. See the SONIC
-device driver (@code{c/src/lib/libchip/network/sonic.c}) for an example
-of this. Because of this, network drivers should not include
-@code{<stdlib.h>}. Doing so will result in conflicting definitions
-of @code{malloc()}.
-
-@b{Application level} code including network servers such as the FTP
-daemon are @b{not} part of the BSD kernel network code and should not be
-compiled with the BSD network flags. They should include
-@code{<stdlib.h>} and not define the network stack visibility
-macros.
-
-@section Write the Driver Attach Function
-
-The driver attach function is responsible for configuring the driver
-and making the connection between the network stack
-and the driver.
-
-Driver attach functions take a pointer to an
-@code{rtems_bsdnet_ifconfig} structure as their only argument.
-and set the driver parameters based on the
-values in this structure. If an entry in the configuration
-structure is zero the attach function chooses an
-appropriate default value for that parameter.
-
-
-The driver should then set up several fields in the ifnet structure
-in the device-dependent data structure supplied and maintained by the driver:
-
-@table @code
-@item ifp->if_softc
-Pointer to the device-dependent data. The first entry
-in the device-dependent data structure must be an @code{arpcom}
-structure.
-
-@item ifp->if_name
-The name of the device. The network stack uses this string
-and the device number for device name lookups. The device name should
-be obtained from the @code{name} entry in the configuration structure.
-
-@item ifp->if_unit
-The device number. The network stack uses this number and the
-device name for device name lookups. For example, if
-@code{ifp->if_name} is @samp{scc} and @code{ifp->if_unit} is @samp{1},
-the full device name would be @samp{scc1}. The unit number should be
-obtained from the `name' entry in the configuration structure.
-
-@item ifp->if_mtu
-The maximum transmission unit for the device. For Ethernet
-devices this value should almost always be 1500.
-
-@item ifp->if_flags
-The device flags. Ethernet devices should set the flags
-to @code{IFF_BROADCAST|IFF_SIMPLEX}, indicating that the
-device can broadcast packets to multiple destinations
-and does not receive and transmit at the same time.
-
-@item ifp->if_snd.ifq_maxlen
-The maximum length of the queue of packets waiting to be
-sent to the driver. This is normally set to @code{ifqmaxlen}.
-
-@item ifp->if_init
-The address of the driver initialization function.
-
-@item ifp->if_start
-The address of the driver start function.
-
-@item ifp->if_ioctl
-The address of the driver ioctl function.
-
-@item ifp->if_output
-The address of the output function. Ethernet devices
-should set this to @code{ether_output}.
-@end table
-
-RTEMS provides a function to parse the driver name in the
-configuration structure into a device name and unit number.
-
-@example
-int rtems_bsdnet_parse_driver_name (
- const struct rtems_bsdnet_ifconfig *config,
- char **namep
-);
-@end example
-
-The function takes two arguments; a pointer to the configuration
-structure and a pointer to a pointer to a character. The function
-parses the configuration name entry, allocates memory for the driver
-name, places the driver name in this memory, sets the second argument
-to point to the name and returns the unit number.
-On error, a message is printed and -1 is returned.
-
-Once the attach function has set up the above entries it must link the
-driver data structure onto the list of devices by
-calling @code{if_attach}. Ethernet devices should then
-call @code{ether_ifattach}. Both functions take a pointer to the
-device's @code{ifnet} structure as their only argument.
-
-The attach function should return a non-zero value to indicate that
-the driver has been successfully configured and attached.
-
-@section Write the Driver Start Function.
-This function is called each time the network stack wants to start the
-transmitter. This occures whenever the network stack adds a packet
-to a device's send queue and the @code{IFF_OACTIVE} bit in the
-device's @code{if_flags} is not set.
-
-For many devices this function need only set the @code{IFF_OACTIVE} bit in the
-@code{if_flags} and send an event to the transmit task
-indicating that a packet is in the driver transmit queue.
-
-
-@section Write the Driver Initialization Function.
-
-This function should initialize the device, attach to interrupt handler,
-and start the driver transmit and receive tasks. The function
-
-@example
-rtems_id
-rtems_bsdnet_newproc (char *name,
- int stacksize,
- void(*entry)(void *),
- void *arg);
-@end example
-
-should be used to start the driver tasks.
-
-Note that the network stack may call the driver initialization function more
-than once.
-Make sure multiple versions of the receive and transmit tasks are not accidentally
-started.
-
-
-
-@section Write the Driver Transmit Task
-
-This task is reponsible for removing packets from the driver send queue and sending them to the device. The task should block waiting for an event from the
-driver start function indicating that packets are waiting to be transmitted.
-When the transmit task has drained the driver send queue the task should clear
-the @code{IFF_OACTIVE} bit in @code{if_flags} and block until another outgoing
-packet is queued.
-
-
-@section Write the Driver Receive Task
-This task should block until a packet arrives from the device. If the
-device is an Ethernet interface the function @code{ether_input} should be called
-to forward the packet to the network stack. The arguments to @code{ether_input}
-are a pointer to the interface data structure, a pointer to the ethernet
-header and a pointer to an mbuf containing the packet itself.
-
-
-
-
-@section Write the Driver Interrupt Handler
-A typical interrupt handler will do nothing more than the hardware
-manipulation required to acknowledge the interrupt and send an RTEMS event
-to wake up the driver receive or transmit task waiting for the event.
-Network interface interrupt handlers must not make any calls to other
-network routines.
-
-
-
-@section Write the Driver IOCTL Function
-This function handles ioctl requests directed at the device. The ioctl
-commands which must be handled are:
-
-@table @code
-@item SIOCGIFADDR
-@item SIOCSIFADDR
-If the device is an Ethernet interface these
-commands should be passed on to @code{ether_ioctl}.
-
-@item SIOCSIFFLAGS
-This command should be used to start or stop the device,
-depending on the state of the interface @code{IFF_UP} and
-@code{IFF_RUNNING} bits in @code{if_flags}:
-@table @code
-@item IFF_RUNNING
-Stop the device.
-
-@item IFF_UP
-Start the device.
-
-@item IFF_UP|IFF_RUNNING
-Stop then start the device.
-
-@item 0
-Do nothing.
-
-@end table
-@end table
-
-
-
-@section Write the Driver Statistic-Printing Function
-This function should print the values of any statistic/diagnostic
-counters the network driver may use. The driver ioctl function should call
-the statistic-printing function when the ioctl command is
-@code{SIO_RTEMS_SHOW_STATS}.
-
-
diff --git a/doc/networking/networkapp.t b/doc/networking/networkapp.t
deleted file mode 100644
index dd356a80a6..0000000000
--- a/doc/networking/networkapp.t
+++ /dev/null
@@ -1,924 +0,0 @@
-@c
-@c Written by Eric Norum
-@c
-@c COPYRIGHT (c) 1988-2002.
-@c On-Line Applications Research Corporation (OAR).
-@c All rights reserved.
-
-@chapter Using Networking in an RTEMS Application
-
-@section Makefile changes
-@subsection Including the required managers
-The FreeBSD networking code requires several RTEMS managers
-in the application:
-
-@example
-MANAGERS = io event semaphore
-@end example
-
-@subsection Increasing the size of the heap
-The networking tasks allocate a lot of memory. For most applications
-the heap should be at least 256 kbytes.
-The amount of memory set aside for the heap can be adjusted by setting
-the @code{CFLAGS_LD} definition as shown below:
-
-@example
-CFLAGS_LD += -Wl,--defsym -Wl,HeapSize=0x80000
-@end example
-
-This sets aside 512 kbytes of memory for the heap.
-
-@section System Configuration
-
-The networking tasks allocate some RTEMS objects. These
-must be accounted for in the application configuration table. The following
-lists the requirements.
-
-@table @b
-@item TASKS
-One network task plus a receive and transmit task for each device.
-
-@item SEMAPHORES
-One network semaphore plus one syslog mutex semaphore if the application uses
-openlog/syslog.
-
-@item EVENTS
-The network stack uses @code{RTEMS_EVENT_24} and @code{RTEMS_EVENT_25}.
-This has no effect on the application configuration, but
-application tasks which call the network functions should not
-use these events for other purposes.
-
-@end table
-
-@section Initialization
-@subsection Additional include files
-The source file which declares the network configuration
-structures and calls the network initialization function must include
-
-@example
-#include <rtems/rtems_bsdnet.h>
-@end example
-
-@subsection Network Configuration
-The network configuration is specified by declaring
-and initializing the @code{rtems_bsdnet_config}
-structure.
-
-@example
-@group
-struct rtems_bsdnet_config @{
- /*
- * This entry points to the head of the ifconfig chain.
- */
- struct rtems_bsdnet_ifconfig *ifconfig;
-
- /*
- * This entry should be rtems_bsdnet_do_bootp if BOOTP
- * is being used to configure the network, and NULL
- * if BOOTP is not being used.
- */
- void (*bootp)(void);
-
- /*
- * The remaining items can be initialized to 0, in
- * which case the default value will be used.
- */
- rtems_task_priority network_task_priority; /* 100 */
- unsigned long mbuf_bytecount; /* 64 kbytes */
- unsigned long mbuf_cluster_bytecount; /* 128 kbytes */
- char *hostname; /* BOOTP */
- char *domainname; /* BOOTP */
- char *gateway; /* BOOTP */
- char *log_host; /* BOOTP */
- char *name_server[3]; /* BOOTP */
- char *ntp_server[3]; /* BOOTP */
- unsigned long sb_efficiency; /* 2 */
- /* UDP TX: 9216 bytes */
- unsigned long udp_tx_buf_size;
- /* UDP RX: 40 * (1024 + sizeof(struct sockaddr_in)) */
- unsigned long udp_rx_buf_size;
- /* TCP TX: 16 * 1024 bytes */
- unsigned long tcp_tx_buf_size;
- /* TCP TX: 16 * 1024 bytes */
- unsigned long tcp_rx_buf_size;
- /* Default Network Tasks CPU Affinity */
-#ifdef RTEMS_SMP
- const cpu_set_t *network_task_cpuset;
- size_t network_task_cpuset_size;
-#endif
-@};
-@end group
-@end example
-
-The structure entries are described in the following table.
-If your application uses BOOTP/DHCP to obtain network configuration
-information and if you are happy with the default values described
-below, you need to provide only the first two entries in this structure.
-
-@table @code
-
-@item struct rtems_bsdnet_ifconfig *ifconfig
-A pointer to the first configuration structure of the first network
-device. This structure is described in the following section.
-You must provide a value for this entry since there is no default value for it.
-
-@item void (*bootp)(void)
-This entry should be set to @code{rtems_bsdnet_do_bootp} if your
-application by default uses the BOOTP/DHCP client protocol to obtain
-network configuration information. It should be set to @code{NULL} if
-your application does not use BOOTP/DHCP.
-
-You can also use @code{rtems_bsdnet_do_bootp_rootfs} to have a set of
-standard files created with the information return by the BOOTP/DHCP
-protocol. The IP address is added to @file{/etc/hosts} with the host
-name and domain returned. If no host name or domain is returned
-@code{me.mydomain} is used. The BOOTP/DHCP server's address is also
-added to @file{/etc/hosts}. The domain name server listed in the
-BOOTP/DHCP information are added to @file{/etc/resolv.conf}. A
-@code{search} record is also added if a domain is returned. The files
-are created if they do not exist.
-
-The default @code{rtems_bsdnet_do_bootp} and
-@code{rtems_bsdnet_do_bootp_rootfs} handlers will loop for-ever
-waiting for a BOOTP/DHCP server to respond. If an error is detected
-such as not valid interface or valid hardware address the target will
-reboot allowing any hardware reset to correct itself.
-
-You can provide your own custom handler which allows you to perform
-an initialization that meets your specific system requirements. For
-example you could try BOOTP/DHCP then enter a configuration tool if no
-server is found allowing the user to switch to a static configuration.
-
-@item int network_task_priority
-The priority at which the network task and network device
-receive and transmit tasks will run.
-If a value of 0 is specified the tasks will run at priority 100.
-
-@item unsigned long mbuf_bytecount
-The number of bytes to allocate from the heap for use as mbufs.
-If a value of 0 is specified, 64 kbytes will be allocated.
-
-@item unsigned long mbuf_cluster_bytecount
-The number of bytes to allocate from the heap for use as mbuf clusters.
-If a value of 0 is specified, 128 kbytes will be allocated.
-
-@item char *hostname
-The host name of the system.
-If this, or any of the following, entries are @code{NULL} the value
-may be obtained from a BOOTP/DHCP server.
-
-@item char *domainname
-The name of the Internet domain to which the system belongs.
-
-@item char *gateway
-The Internet host number of the network gateway machine,
-specified in 'dotted decimal' (@code{129.128.4.1}) form.
-
-@item char *log_host
-The Internet host number of the machine to which @code{syslog} messages
-will be sent.
-
-@item char *name_server[3]
-The Internet host numbers of up to three machines to be used as
-Internet Domain Name Servers.
-
-@item char *ntp_server[3]
-The Internet host numbers of up to three machines to be used as
-Network Time Protocol (NTP) Servers.
-
-@item unsigned long sb_efficiency
-This is the first of five configuration parameters related to
-the amount of memory each socket may consume for buffers. The
-TCP/IP stack reserves buffers (e.g. mbufs) for each open socket. The
-TCP/IP stack has different limits for the transmit and receive
-buffers associated with each TCP and UDP socket. By tuning these
-parameters, the application developer can make trade-offs between
-memory consumption and performance. The default parameters favor
-performance over memory consumption. See
-@uref{http://www.rtems.org/ml/rtems-users/2004/february/msg00200.html}
-for more details but note that after the RTEMS 4.8 release series,
-the sb_efficiency default was changed from @code{8} to @code{2}.
-
-The user should also be aware of the @code{SO_SNDBUF} and @code{SO_RCVBUF}
-IO control operations. These can be used to specify the
-send and receive buffer sizes for a specific socket. There
-is no standard IO control to change the @code{sb_efficiency} factor.
-
-The @code{sb_efficiency} parameter is a buffering factor used
-in the implementation of the TCP/IP stack. The default is @code{2}
-which indicates double buffering. When allocating memory for each
-socket, this number is multiplied by the buffer sizes for that socket.
-
-@item unsigned long udp_tx_buf_size
-This configuration parameter specifies the maximum amount of
-buffer memory which may be used for UDP sockets to transmit
-with. The default size is 9216 bytes which corresponds to
-the maximum datagram size.
-
-@item unsigned long udp_rx_buf_size
-This configuration parameter specifies the maximum amount of
-buffer memory which may be used for UDP sockets to receive
-into. The default size is the following length in bytes:
-
-@example
-40 * (1024 + sizeof(struct sockaddr_in)
-@end example
-
-@item unsigned long tcp_tx_buf_size
-This configuration parameter specifies the maximum amount of
-buffer memory which may be used for TCP sockets to transmit
-with. The default size is sixteen kilobytes.
-
-@item unsigned long tcp_rx_buf_size
-This configuration parameter specifies the maximum amount of
-buffer memory which may be used for TCP sockets to receive
-into. The default size is sixteen kilobytes.
-
-@item const cpu_set_t *network_task_cpuset
-This configuration parameter specifies the CPU affinity of the
-network task. If set to @code{0} the network task can be scheduled on
-any CPU. Only available in SMP configurations.
-
-@item size_t network_task_cpuset_size
-This configuration parameter specifies the size of the
-@code{network_task_cpuset} used. Only available in SMP configurations.
-
-@end table
-
-In addition, the following fields in the @code{rtems_bsdnet_ifconfig}
-are of interest.
-
-@table @b
-
-@item int port
-The I/O port number (ex: 0x240) on which the external Ethernet
-can be accessed.
-
-@item int irno
-The interrupt number of the external Ethernet controller.
-
-@item int bpar
-The address of the shared memory on the external Ethernet controller.
-
-
-@end table
-
-@subsection Network device configuration
-Network devices are specified and configured by declaring and initializing a
-@code{struct rtems_bsdnet_ifconfig} structure for each network device.
-
-The structure entries are described in the following table. An application
-which uses a single network interface, gets network configuration information
-from a BOOTP/DHCP server, and uses the default values for all driver
-parameters needs to initialize only the first two entries in the
-structure.
-
-@table @code
-@item char *name
-The full name of the network device. This name consists of the
-driver name and the unit number (e.g. @code{"scc1"}).
-The @code{bsp.h} include file usually defines RTEMS_BSP_NETWORK_DRIVER_NAME as
-the name of the primary (or only) network driver.
-
-@item int (*attach)(struct rtems_bsdnet_ifconfig *conf)
-The address of the driver @code{attach} function. The network
-initialization function calls this function to configure the driver and
-attach it to the network stack.
-The @code{bsp.h} include file usually defines RTEMS_BSP_NETWORK_DRIVER_ATTACH as
-the name of the attach function of the primary (or only) network driver.
-
-@item struct rtems_bsdnet_ifconfig *next
-A pointer to the network device configuration structure for the next network
-interface, or @code{NULL} if this is the configuration structure of the
-last network interface.
-
-@item char *ip_address
-The Internet address of the device,
-specified in `dotted decimal' (@code{129.128.4.2}) form, or @code{NULL}
-if the device configuration information is being obtained from a
-BOOTP/DHCP server.
-
-@item char *ip_netmask
-The Internet inetwork mask of the device,
-specified in `dotted decimal' (@code{255.255.255.0}) form, or @code{NULL}
-if the device configuration information is being obtained from a
-BOOTP/DHCP server.
-
-
-@item void *hardware_address
-The hardware address of the device, or @code{NULL} if the driver is
-to obtain the hardware address in some other way (usually by reading
-it from the device or from the bootstrap ROM).
-
-@item int ignore_broadcast
-Zero if the device is to accept broadcast packets, non-zero if the device
-is to ignore broadcast packets.
-
-@item int mtu
-The maximum transmission unit of the device, or zero if the driver
-is to choose a default value (typically 1500 for Ethernet devices).
-
-@item int rbuf_count
-The number of receive buffers to use, or zero if the driver is to
-choose a default value
-
-@item int xbuf_count
-The number of transmit buffers to use, or zero if the driver is to
-choose a default value
-Keep in mind that some network devices may use 4 or more
-transmit descriptors for a single transmit buffer.
-
-@end table
-
-A complete network configuration specification can be as simple as the one
-shown in the following example.
-This configuration uses a single network interface, gets
-network configuration information
-from a BOOTP/DHCP server, and uses the default values for all driver
-parameters.
-
-@example
-static struct rtems_bsdnet_ifconfig netdriver_config = @{
- RTEMS_BSP_NETWORK_DRIVER_NAME,
- RTEMS_BSP_NETWORK_DRIVER_ATTACH
-@};
-struct rtems_bsdnet_config rtems_bsdnet_config = @{
- &netdriver_config,
- rtems_bsdnet_do_bootp,
-@};
-@end example
-
-
-@subsection Network initialization
-The networking tasks must be started before any network I/O operations
-can be performed. This is done by calling:
-
-
-@example
-rtems_bsdnet_initialize_network ();
-@end example
-
-This function is declared in @code{rtems/rtems_bsdnet.h}.
-t returns 0 on success and -1 on failure with an error code
-in @code{errno}. It is not possible to undo the effects of
-a partial initialization, though, so the function can be
-called only once irregardless of the return code. Consequently,
-if the condition for the failure can be corrected, the
-system must be reset to permit another network initialization
-attempt.
-
-
-
-@section Application Programming Interface
-
-The RTEMS network package provides almost a complete set of BSD network
-services. The network functions work like their BSD counterparts
-with the following exceptions:
-
-@itemize @bullet
-@item A given socket can be read or written by only one task at a time.
-
-@item The @code{select} function only works for file descriptors associated
-with sockets.
-
-@item You must call @code{openlog} before calling any of the @code{syslog} functions.
-
-@item @b{Some of the network functions are not thread-safe.}
-For example the following functions return a pointer to a static
-buffer which remains valid only until the next call:
-
-@table @code
-@item gethostbyaddr
-@item gethostbyname
-@item inet_ntoa
-(@code{inet_ntop} is thread-safe, though).
-@end table
-
-@item The RTEMS network package gathers statistics.
-
-@item Addition of a mechanism to "tap onto" an interface
-and monitor every packet received and transmitted.
-
-@item Addition of @code{SO_SNDWAKEUP} and @code{SO_RCVWAKEUP} socket options.
-
-@end itemize
-
-Some of the new features are discussed in more detail in the following
-sections.
-
-@subsection Network Statistics
-
-There are a number of functions to print statistics gathered by
-the network stack.
-These function are declared in @code{rtems/rtems_bsdnet.h}.
-
-@table @code
-@item rtems_bsdnet_show_if_stats
-Display statistics gathered by network interfaces.
-
-@item rtems_bsdnet_show_ip_stats
-Display IP packet statistics.
-
-@item rtems_bsdnet_show_icmp_stats
-Display ICMP packet statistics.
-
-@item rtems_bsdnet_show_tcp_stats
-Display TCP packet statistics.
-
-@item rtems_bsdnet_show_udp_stats
-Display UDP packet statistics.
-
-@item rtems_bsdnet_show_mbuf_stats
-Display mbuf statistics.
-
-@item rtems_bsdnet_show_inet_routes
-Display the routing table.
-
-@end table
-
-@subsection Tapping Into an Interface
-
-RTEMS add two new ioctls to the BSD networking code:
-SIOCSIFTAP and SIOCGIFTAP. These may be used to set and get a
-@i{tap function}. The tap function will be called for every
-Ethernet packet received by the interface.
-
-These are called like other interface ioctls, such as SIOCSIFADDR.
-When setting the tap function with SIOCSIFTAP, set the ifr_tap field
-of the ifreq struct to the tap function. When retrieving the tap
-function with SIOCGIFTAP, the current tap function will be returned in
-the ifr_tap field. To stop tapping packets, call SIOCSIFTAP with a
-ifr_tap field of 0.
-
-The tap function is called like this:
-
-@example
-int tap (struct ifnet *, struct ether_header *, struct mbuf *)
-@end example
-
-The tap function should return 1 if the packet was fully handled, in
-which case the caller will simply discard the mbuf. The tap function
-should return 0 if the packet should be passed up to the higher
-networking layers.
-
-The tap function is called with the network semaphore locked. It must
-not make any calls on the application levels of the networking level
-itself. It is safe to call other non-networking RTEMS functions.
-
-@subsection Socket Options
-
-RTEMS adds two new @code{SOL_SOCKET} level options for @code{setsockopt} and
-@code{getsockopt}: @code{SO_SNDWAKEUP} and @code{SO_RCVWAKEUP}. For both, the
-option value should point to a sockwakeup structure. The sockwakeup
-structure has the following fields:
-
-@example
-@group
- void (*sw_pfn) (struct socket *, caddr_t);
- caddr_t sw_arg;
-@end group
-@end example
-
-These options are used to set a callback function to be called when, for
-example, there is
-data available from the socket (@code{SO_RCVWAKEUP}) and when there is space
-available to accept data written to the socket (@code{SO_SNDWAKEUP}).
-
-If @code{setsockopt} is called with the @code{SO_RCVWAKEUP} option, and the
-@code{sw_pfn} field is not zero, then when there is data
-available to be read from
-the socket, the function pointed to by the @code{sw_pfn} field will be
-called. A pointer to the socket structure will be passed as the first
-argument to the function. The @code{sw_arg} field set by the
-@code{SO_RCVWAKEUP} call will be passed as the second argument to the function.
-
-If @code{setsockopt} is called with the @code{SO_SNDWAKEUP}
-function, and the @code{sw_pfn} field is not zero, then when
-there is space available to accept data written to the socket,
-the function pointed to by the @code{sw_pfn} field
-will be called. The arguments passed to the function will be as with
-@code{SO_SNDWAKEUP}.
-
-When the function is called, the network semaphore will be locked and
-the callback function runs in the context of the networking task.
-The function must be careful not to call any networking functions. It
-is OK to call an RTEMS function; for example, it is OK to send an
-RTEMS event.
-
-The purpose of these callback functions is to permit a more efficient
-alternative to the select call when dealing with a large number of
-sockets.
-
-The callbacks are called by the same criteria that the select
-function uses for indicating "ready" sockets. In Stevens @cite{Unix
-Network Programming} on page 153-154 in the section "Under what Conditions
-Is a Descriptor Ready?" you will find the definitive list of conditions
-for readable and writable that also determine when the functions are
-called.
-
-When the number of received bytes equals or exceeds the socket receive
-buffer "low water mark" (default 1 byte) you get a readable callback. If
-there are 100 bytes in the receive buffer and you only read 1, you will
-not immediately get another callback. However, you will get another
-callback after you read the remaining 99 bytes and at least 1 more byte
-arrives. Using a non-blocking socket you should probably read until it
-produces error EWOULDBLOCK and then allow the readable callback to tell
-you when more data has arrived. (Condition 1.a.)
-
-For sending, when the socket is connected and the free space becomes at
-or above the "low water mark" for the send buffer (default 4096 bytes)
-you will receive a writable callback. You don't get continuous callbacks
-if you don't write anything. Using a non-blocking write socket, you can
-then call write until it returns a value less than the amount of data
-requested to be sent or it produces error EWOULDBLOCK (indicating buffer
-full and no longer writable). When this happens you can
-try the write again, but it is often better to go do other things and
-let the writable callback tell you when space is available to send
-again. You only get a writable callback when the free space transitions
-to above the "low water mark" and not every time you
-write to a non-full send buffer. (Condition 2.a.)
-
-The remaining conditions enumerated by Stevens handle the fact that
-sockets become readable and/or writable when connects, disconnects and
-errors occur, not just when data is received or sent. For example, when
-a server "listening" socket becomes readable it indicates that a client
-has connected and accept can be called without blocking, not that
-network data was received (Condition 1.c).
-
-@subsection Adding an IP Alias
-
-The following code snippet adds an IP alias:
-
-@example
-void addAlias(const char *pName, const char *pAddr, const char *pMask)
-@{
- struct ifaliasreq aliasreq;
- struct sockaddr_in *in;
-
- /* initialize alias request */
- memset(&aliasreq, 0, sizeof(aliasreq));
- sprintf(aliasreq.ifra_name, pName);
-
- /* initialize alias address */
- in = (struct sockaddr_in *)&aliasreq.ifra_addr;
- in->sin_family = AF_INET;
- in->sin_len = sizeof(aliasreq.ifra_addr);
- in->sin_addr.s_addr = inet_addr(pAddr);
-
- /* initialize alias mask */
- in = (struct sockaddr_in *)&aliasreq.ifra_mask;
- in->sin_family = AF_INET;
- in->sin_len = sizeof(aliasreq.ifra_mask);
- in->sin_addr.s_addr = inet_addr(pMask);
-
- /* call to setup the alias */
- rtems_bsdnet_ifconfig(pName, SIOCAIFADDR, &aliasreq);
-@}
-@end example
-
-Thanks to @uref{mailto:mikes@@poliac.com,Mike Seirs} for this example
-code.
-
-@subsection Adding a Default Route
-
-The function provided in this section is functionally equivalent to
-the command @code{route add default gw yyy.yyy.yyy.yyy}:
-
-@example
-void mon_ifconfig(int argc, char *argv[], unsigned32 command_arg,
- bool verbose)
-@{
- struct sockaddr_in ipaddr;
- struct sockaddr_in dstaddr;
- struct sockaddr_in netmask;
- struct sockaddr_in broadcast;
- char *iface;
- int f_ip = 0;
- int f_ptp = 0;
- int f_netmask = 0;
- int f_up = 0;
- int f_down = 0;
- int f_bcast = 0;
- int cur_idx;
- int rc;
- int flags;
-
- bzero((void*) &ipaddr, sizeof(ipaddr));
- bzero((void*) &dstaddr, sizeof(dstaddr));
- bzero((void*) &netmask, sizeof(netmask));
- bzero((void*) &broadcast, sizeof(broadcast));
-
- ipaddr.sin_len = sizeof(ipaddr);
- ipaddr.sin_family = AF_INET;
-
- dstaddr.sin_len = sizeof(dstaddr);
- dstaddr.sin_family = AF_INET;
-
- netmask.sin_len = sizeof(netmask);
- netmask.sin_family = AF_INET;
-
- broadcast.sin_len = sizeof(broadcast);
- broadcast.sin_family = AF_INET;
-
- cur_idx = 0;
- if (argc <= 1) @{
- /* display all interfaces */
- iface = NULL;
- cur_idx += 1;
- @} else @{
- iface = argv[1];
- if (isdigit(*argv[2])) @{
- if (inet_pton(AF_INET, argv[2], &ipaddr.sin_addr) < 0) @{
- printf("bad ip address: %s\n", argv[2]);
- return;
- @}
- f_ip = 1;
- cur_idx += 3;
- @} else @{
- cur_idx += 2;
- @}
- @}
-
- if ((f_down !=0) && (f_ip != 0)) @{
- f_up = 1;
- @}
-
- while(argc > cur_idx) @{
- if (strcmp(argv[cur_idx], "up") == 0) @{
- f_up = 1;
- if (f_down != 0) @{
- printf("Can't make interface up and down\n");
- @}
- @} else if(strcmp(argv[cur_idx], "down") == 0) @{
- f_down = 1;
- if (f_up != 0) @{
- printf("Can't make interface up and down\n");
- @}
- @} else if(strcmp(argv[cur_idx], "netmask") == 0) @{
- if ((cur_idx + 1) >= argc) @{
- printf("No netmask address\n");
- return;
- @}
- if (inet_pton(AF_INET, argv[cur_idx+1], &netmask.sin_addr) < 0) @{
- printf("bad netmask: %s\n", argv[cur_idx]);
- return;
- @}
- f_netmask = 1;
- cur_idx += 1;
- @} else if(strcmp(argv[cur_idx], "broadcast") == 0) @{
- if ((cur_idx + 1) >= argc) @{
- printf("No broadcast address\n");
- return;
- @}
- if (inet_pton(AF_INET, argv[cur_idx+1], &broadcast.sin_addr) < 0) @{
- printf("bad broadcast: %s\n", argv[cur_idx]);
- return;
- @}
- f_bcast = 1;
- cur_idx += 1;
- @} else if(strcmp(argv[cur_idx], "pointopoint") == 0) @{
- if ((cur_idx + 1) >= argc) @{
- printf("No pointopoint address\n");
- return;
- @}
- if (inet_pton(AF_INET, argv[cur_idx+1], &dstaddr.sin_addr) < 0) @{
- printf("bad pointopoint: %s\n", argv[cur_idx]);
- return;
- @}
-
- f_ptp = 1;
- cur_idx += 1;
- @} else @{
- printf("Bad parameter: %s\n", argv[cur_idx]);
- return;
- @}
-
- cur_idx += 1;
- @}
-
- printf("ifconfig ");
- if (iface != NULL) @{
- printf("%s ", iface);
- if (f_ip != 0) @{
- char str[256];
- inet_ntop(AF_INET, &ipaddr.sin_addr, str, 256);
- printf("%s ", str);
- @}
-
- if (f_netmask != 0) @{
- char str[256];
- inet_ntop(AF_INET, &netmask.sin_addr, str, 256);
- printf("netmask %s ", str);
- @}
-
- if (f_bcast != 0) @{
- char str[256];
- inet_ntop(AF_INET, &broadcast.sin_addr, str, 256);
- printf("broadcast %s ", str);
- @}
-
- if (f_ptp != 0) @{
- char str[256];
- inet_ntop(AF_INET, &dstaddr.sin_addr, str, 256);
- printf("pointopoint %s ", str);
- @}
-
- if (f_up != 0) @{
- printf("up\n");
- @} else if (f_down != 0) @{
- printf("down\n");
- @} else @{
- printf("\n");
- @}
- @}
-
- if ((iface == NULL) || ((f_ip == 0) && (f_down == 0) && (f_up == 0))) @{
- rtems_bsdnet_show_if_stats();
- return;
- @}
-
- flags = 0;
- if (f_netmask) @{
- rc = rtems_bsdnet_ifconfig(iface, SIOCSIFNETMASK, &netmask);
- if (rc < 0) @{
- printf("Could not set netmask: %s\n", strerror(errno));
- return;
- @}
- @}
-
- if (f_bcast) @{
- rc = rtems_bsdnet_ifconfig(iface, SIOCSIFBRDADDR, &broadcast);
- if (rc < 0) @{
- printf("Could not set broadcast: %s\n", strerror(errno));
- return;
- @}
- @}
-
- if (f_ptp) @{
- rc = rtems_bsdnet_ifconfig(iface, SIOCSIFDSTADDR, &dstaddr);
- if (rc < 0) @{
- printf("Could not set destination address: %s\n", strerror(errno));
- return;
- @}
- flags |= IFF_POINTOPOINT;
- @}
-
- /* This must come _after_ setting the netmask, broadcast addresses */
- if (f_ip) @{
- rc = rtems_bsdnet_ifconfig(iface, SIOCSIFADDR, &ipaddr);
- if (rc < 0) @{
- printf("Could not set IP address: %s\n", strerror(errno));
- return;
- @}
- @}
-
- if (f_up != 0) @{
- flags |= IFF_UP;
- @}
-
- if (f_down != 0) @{
- printf("Warning: taking interfaces down is not supported\n");
- @}
-
- rc = rtems_bsdnet_ifconfig(iface, SIOCSIFFLAGS, &flags);
- if (rc < 0) @{
- printf("Could not set interface flags: %s\n", strerror(errno));
- return;
- @}
-@}
-
-
-
-void mon_route(int argc, char *argv[], unsigned32 command_arg,
- bool verbose)
-@{
- int cmd;
- struct sockaddr_in dst;
- struct sockaddr_in gw;
- struct sockaddr_in netmask;
- int f_host;
- int f_gw = 0;
- int cur_idx;
- int flags;
- int rc;
-
- memset(&dst, 0, sizeof(dst));
- memset(&gw, 0, sizeof(gw));
- memset(&netmask, 0, sizeof(netmask));
-
- dst.sin_len = sizeof(dst);
- dst.sin_family = AF_INET;
- dst.sin_addr.s_addr = inet_addr("0.0.0.0");
-
- gw.sin_len = sizeof(gw);
- gw.sin_family = AF_INET;
- gw.sin_addr.s_addr = inet_addr("0.0.0.0");
-
- netmask.sin_len = sizeof(netmask);
- netmask.sin_family = AF_INET;
- netmask.sin_addr.s_addr = inet_addr("255.255.255.0");
-
- if (argc < 2) @{
- rtems_bsdnet_show_inet_routes();
- return;
- @}
-
- if (strcmp(argv[1], "add") == 0) @{
- cmd = RTM_ADD;
- @} else if (strcmp(argv[1], "del") == 0) @{
- cmd = RTM_DELETE;
- @} else @{
- printf("invalid command: %s\n", argv[1]);
- printf("\tit should be 'add' or 'del'\n");
- return;
- @}
-
- if (argc < 3) @{
- printf("not enough arguments\n");
- return;
- @}
-
- if (strcmp(argv[2], "-host") == 0) @{
- f_host = 1;
- @} else if (strcmp(argv[2], "-net") == 0) @{
- f_host = 0;
- @} else @{
- printf("Invalid type: %s\n", argv[1]);
- printf("\tit should be '-host' or '-net'\n");
- return;
- @}
-
- if (argc < 4) @{
- printf("not enough arguments\n");
- return;
- @}
-
- inet_pton(AF_INET, argv[3], &dst.sin_addr);
-
- cur_idx = 4;
- while(cur_idx < argc) @{
- if (strcmp(argv[cur_idx], "gw") == 0) @{
- if ((cur_idx +1) >= argc) @{
- printf("no gateway address\n");
- return;
- @}
- f_gw = 1;
- inet_pton(AF_INET, argv[cur_idx + 1], &gw.sin_addr);
- cur_idx += 1;
- @} else if(strcmp(argv[cur_idx], "netmask") == 0) @{
- if ((cur_idx +1) >= argc) @{
- printf("no netmask address\n");
- return;
- @}
- f_gw = 1;
- inet_pton(AF_INET, argv[cur_idx + 1], &netmask.sin_addr);
- cur_idx += 1;
- @} else @{
- printf("Unknown argument\n");
- return;
- @}
- cur_idx += 1;
- @}
-
- flags = RTF_STATIC;
- if (f_gw != 0) @{
- flags |= RTF_GATEWAY;
- @}
- if (f_host != 0) @{
- flags |= RTF_HOST;
- @}
-
- rc = rtems_bsdnet_rtrequest(cmd, &dst, &gw, &netmask, flags, NULL);
- if (rc < 0) @{
- printf("Error adding route\n");
- @}
-@}
-@end example
-
-Thanks to @uref{mailto:jtm@@smoothmsmoothie.com,Jay Monkman} for this example
-code.
-
-@subsection Time Synchronization Using NTP
-
-@example
-int rtems_bsdnet_synchronize_ntp (int interval, rtems_task_priority priority);
-@end example
-
-If the interval argument is 0 the routine synchronizes the RTEMS time-of-day
-clock with the first NTP server in the rtems_bsdnet_ntpserve array and
-returns. The priority argument is ignored.
-
-If the interval argument is greater than 0, the routine also starts an
-RTEMS task at the specified priority and polls the NTP server every
-`interval' seconds. NOTE: This mode of operation has not yet been
-implemented.
-
-On successful synchronization of the RTEMS time-of-day clock the routine
-returns 0. If an error occurs a message is printed and the routine returns -1
-with an error code in errno.
-There is no timeout -- if there is no response from an NTP server the
-routine will wait forever.
-
-
-
-
diff --git a/doc/networking/networkflow.eps b/doc/networking/networkflow.eps
deleted file mode 100644
index 8aba78d55f..0000000000
--- a/doc/networking/networkflow.eps
+++ /dev/null
@@ -1,1343 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title:
-%%Creator: Diagram
-%%CreationDate: Tue Aug 18 16:41:45 1998
-%%For: eric
-%%DocumentFonts: (atend)
-%%Pages: 0 0
-%%BoundingBox: 0 0 487 549
-%%NXNextStepVersion: 3.0
-%%EndComments
-
-%%BeginProcSet: /usr/lib/NextStep/printPackage.ps 3.0
-%!
-% NeXT Printing Package
-% Version: 3.1
-% Copyright: 1988, NeXT, Inc.
-
-/__NXdef{1 index where{pop pop pop}{def}ifelse}bind def
-/__NXbdef{1 index where{pop pop pop}{bind def}ifelse}bind def
-/UserObjects 10 array __NXdef
-/defineuserobject{
- exch dup 1 add dup UserObjects length gt{
- array dup 0 UserObjects putinterval
- /UserObjects exch def
- }{pop}ifelse UserObjects exch 3 -1 roll put
-}__NXbdef
-/undefineuserobject{UserObjects exch null put}__NXbdef
-/execuserobject{UserObjects exch get exec}__NXbdef
-/__NXRectPath{4 2 roll moveto 1 index 0 rlineto
-0 exch rlineto neg 0 rlineto closepath}__NXbdef
-/__NXProcessRectArgs{
- 1 index type /arraytype eq{
- exch 0 4 2 index length 1 sub{
- dup 3 add 1 exch{1 index exch get exch}for
- 5 1 roll 5 index exec
- }for pop pop
- }{exec}ifelse
-}__NXbdef
-/rectfill{gsave newpath {__NXRectPath fill} __NXProcessRectArgs grestore}__NXbdef
-/rectclip{newpath {__NXRectPath} __NXProcessRectArgs clip newpath}__NXbdef
-/rectstroke{
- gsave newpath dup type /arraytype eq{dup length 6 eq}{false}ifelse{
- {gsave __NXRectPath null concat stroke grestore}
- dup length array cvx copy dup 2 4 -1 roll put __NXProcessRectArgs
- }{{__NXRectPath stroke} __NXProcessRectArgs}ifelse grestore
-}__NXbdef
-/_NXLevel2 systemdict /languagelevel known {languagelevel 2 ge}{false}ifelse __NXdef
-/xyshow{
- 0 1 3 index length 1 sub{
- currentpoint 4 index 3 index 1 getinterval show
- 3 index 3 index 2 mul 1 add get add exch
- 3 index 3 index 2 mul get add exch moveto pop
- }for pop pop
-}__NXbdef
-/xshow{
- 0 1 3 index length 1 sub{
- currentpoint 4 index 3 index 1 getinterval show
- exch 3 index 3 index get add exch moveto pop
- }for pop pop
-}__NXbdef
-/yshow{
- 0 1 3 index length 1 sub{
- currentpoint 4 index 3 index 1 getinterval show
- 3 index 3 index get add moveto pop
- }for pop pop
-}__NXbdef
-/arct{arcto pop pop pop pop}__NXbdef
-/setbbox{pop pop pop pop}__NXbdef
-/ucache{}__NXbdef
-/ucachestatus{mark 0 0 0 0 0}__NXbdef
-/setucacheparams{cleartomark}__NXbdef
-/uappend{systemdict begin cvx exec end}__NXbdef
-/ueofill{gsave newpath uappend eofill grestore}__NXbdef
-/ufill{gsave newpath uappend fill grestore}__NXbdef
-/ustroke{
- gsave newpath dup length 6 eq
- {exch uappend concat}{uappend}ifelse
- stroke grestore
-}__NXbdef
-/__NXustrokepathMatrix dup where {pop pop}{matrix def}ifelse
-/ustrokepath{
- newpath dup length 6 eq{
- exch uappend __NXustrokepathMatrix currentmatrix exch concat
- strokepath setmatrix
- }{uappend strokepath}ifelse
-} __NXbdef
-/upath{
- [exch {/ucache cvx}if pathbbox /setbbox cvx
- {/moveto cvx}{/lineto cvx}{/curveto cvx}{/closepath cvx}pathforall]cvx
-} __NXbdef
-/setstrokeadjust{pop}__NXbdef
-/currentstrokeadjust{false}__NXbdef
-/selectfont{exch findfont exch
-dup type /arraytype eq {makefont}{scalefont}ifelse setfont}__NXbdef
-/_NXCombineArrays{
- counttomark dup 2 add index dup length 3 -1 roll {
- 2 index length sub dup 4 1 roll 1 index exch 4 -1 roll putinterval exch
- }repeat pop pop pop
-}__NXbdef
-/flushgraphics{}def
-/setwindowtype{pop pop}def
-/currentwindowtype{pop 0}def
-/setalpha{pop}def
-/currentalpha{1.0}def
-/hidecursor{}def
-/obscurecursor{}def
-/revealcursor{}def
-/setcursor{4 {pop}repeat}bind def
-/showcursor{}def
-/NextStepEncoding where not{
-/NextStepEncoding StandardEncoding 256 array copy def
-0 [129/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/Ccedilla/Egrave
-/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/Ugrave/Uacute
-/Ucircumflex/Udieresis/Yacute/Thorn/mu/multiply/divide/copyright
-176/registered 181/brokenbar 190/logicalnot 192/onesuperior 201/twosuperior
-204/threesuperior 209/plusminus/onequarter/onehalf/threequarters/agrave
-/aacute/acircumflex/atilde/adieresis/aring/ccedilla/egrave/eacute
-/ecircumflex/edieresis/igrave 226/iacute 228/icircumflex/idieresis/eth
-/ntilde 236/ograve/oacute/ocircumflex/otilde/odieresis 242/ugrave/uacute
-/ucircumflex 246/udieresis/yacute 252/thorn/ydieresis]
-{dup type /nametype eq
- {NextStepEncoding 2 index 2 index put pop 1 add}{exch pop}ifelse
-}forall pop
-/NextStepEncoding NextStepEncoding readonly def
-/_NXfstr 128 string dup 0 (_NX) putinterval def
-/_NXfindfont /findfont load def
-/findfont{
- % Because we can never let NextStepEncoding get into
- % SharedFontDirectory, we cannot reencode a font to NextStepEncoding
- % if we are in shared mode. So if currentshared is true,
- % we call the normal findfont and return that
- /currentshared where {pop currentshared} {false} ifelse
- {_NXfindfont}
- {dup _NXfstr 3 125 getinterval cvs length 3 add _NXfstr 0 3 -1 roll
- getinterval cvn exch FontDirectory 2 index known
- {pop FontDirectory exch get}
- {_NXfindfont dup /Encoding get StandardEncoding eq
- { dup length dict exch
- {1 index /FID ne {2 index 3 1 roll put}{pop pop}ifelse}forall
- dup /Encoding NextStepEncoding put definefont
- }{exch pop} ifelse
- }ifelse
- }ifelse
-}bind def
-}{pop}ifelse
-/_NXImageString {/__NXImageString where{pop}{/__NXImageString 4000 string __NXdef}ifelse __NXImageString}__NXbdef
-/_NXDoImageOp{
- 3 dict begin /parr 5 array def 1 index{dup}{1}ifelse /chans exch def
- chans 2 add 2 roll parr 0 chans getinterval astore pop
- 5 index 4 index mul 2 index{1 sub 8 idiv 1 add mul}{mul 1 sub 8 idiv 1 add}ifelse
- 4 index mul /totbytes exch def pop exch pop
- gsave matrix invertmatrix concat 0.5 setgray 0 0 4 2 roll rectfill grestore
- {0 1 chans 1 sub{parr exch get exec length totbytes exch sub /totbytes exch def}for totbytes 0 le{exit}if}loop end
-}__NXbdef
-/alphaimage{1 add _NXDoImageOp}def
-_NXLevel2{
- /NXCalibratedRGBColorSpace where{pop}{
- /NXCalibratedRGBColorSpace
- {mark /NXCalibratedRGB /ColorSpace findresource exch pop}stopped
- {cleartomark /NXCalibratedRGB[/CIEBasedABC 2 dict dup begin
- /MatrixLMN[.4124 .2126 .0193 .3576 .7152 .1192 .1805 .0722 .9505]def
- /WhitePoint[.9505 1 1.089] def end] /ColorSpace defineresource}if def}ifelse
- /nxsetrgbcolor{NXCalibratedRGBColorSpace setcolorspace setcolor}__NXbdef
- /nxsetgray{dup dup nxsetrgbcolor}__NXbdef
- /_NXCalibratedImage{exch{array astore dup length true}{false}ifelse
- 8 -1 roll{NXCalibratedRGBColorSpace setcolorspace}if
- 8 dict dup 9 1 roll begin /ImageType 1 def /MultipleDataSources exch def
- currentcolorspace 0 get /Indexed eq{pop /Decode[0 2 6 index exp 1 sub]def}
- {2 mul dup array /Decode exch def 1 sub 0 1 3 -1 roll{Decode exch dup 2 mod put}for}ifelse
- /DataSource exch def /ImageMatrix exch def
- /BitsPerComponent exch def /Height exch def /Width exch def end image}__NXbdef
-} {
- /setcmykcolor{
- 1.0 exch sub dup dup 6 -1 roll sub dup 0 lt{pop 0}if 5 1 roll
- 4 -1 roll sub dup 0 lt{pop 0}if 3 1 roll exch sub dup 0 lt{pop 0}if setrgbcolor}__NXbdef
- /currentcmykcolor{currentrgbcolor 3{1.0 exch sub 3 1 roll}repeat 0}__NXbdef
- /colorimage{2 copy 3 ne or{_NXDoImageOp}{4 index dup 8 ne exch 4 ne and{_NXDoImageOp}{
- pop pop save 6 1 roll 12 dict begin/Proc exch def/Res 0 string def
- /Alloc{2 index length mul 2 add dup 2 index load length gt{1.2 mul round cvi string def}{pop pop}ifelse}def
- 1 index 8 eq{/Unpack{.34 Alloc}def}{
- /Wid 4 index 3 mul def exch pop 8 exch/Str1 0 string def/Lim Wid def
- /Unpack{.67 Alloc/Str1 2 Alloc 0 exch Lim exch
- {dup -4 bitshift 17 mul Str1 exch 4 index exch put 15 and 17 mul Str1 exch 3 index 1 add exch put
- 2 sub dup 0 le{0 lt Wid exch{exch 1 sub exch}if}if exch 2 add exch
- }forall/Lim exch def Str1 exch 0 exch getinterval
- }def
- }ifelse
- /Ops[{.3 mul add 1}{.59 mul add 2}{.11 mul add round cvi Res exch 2 index exch put 1 add 0.0 0}]def/Val 0.0 def/Phase 0 def
- {0 Val Phase Proc/Res Unpack{exch Ops exch get exec}forall/Phase exch def/Val exch def Res exch 0 exch getinterval}
- image end restore}ifelse}ifelse
- }__NXbdef
- /nxsetrgbcolor{setrgbcolor}__NXbdef /nxsetgray{setgray}__NXbdef
- /setpattern{pop .5 setgray}__NXbdef
- /_NXCalibratedImage{dup 1 eq {pop pop image}{colorimage}ifelse pop}__NXbdef
-} ifelse
-/_NXSetCMYKOrRGB where{pop}{
- mark{systemdict /currentwindow get exec}stopped
- {{pop pop pop setcmykcolor}}{{nxsetrgbcolor pop pop pop pop}}ifelse /_NXSetCMYKOrRGB exch def cleartomark
-}ifelse
-%%EndProcSet
-
-gsave
- /__NXbasematrix matrix currentmatrix def
-grestore
-%%EndProlog
-%%BeginSetup
-%%EndSetup
-gsave
-0 0 488 549 rectclip
-[1 0 0 -1 -26.5 567] concat
-26.5 18 487 549 rectclip
-gsave
-36 306 306 261 rectclip
-0 nxsetgray
-1 setlinewidth
-[6] 1 setdash
-36.5 306.5 305 260 rectstroke
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-newpath
-systemdict
-begin
-58 418 166 472 setbbox
-68.800003 418 moveto
-155.200012 428.799988 10.8 -90 0 arc
-155.200012 461.199982 10.8 0 90 arc
-68.800003 461.199982 10.8 90 180 arc
-68.800003 428.799988 10.8 180 270 arc
-closepath
-end
-clip
-newpath
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-58 418 166 472 setbbox
-69.300003 418.5 moveto
-154.700012 429.299988 10.8 -90 0 arc
-154.700012 460.699982 10.8 0 90 arc
-69.300003 460.699982 10.8 90 180 arc
-69.300003 429.299988 10.8 180 270 arc
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-newpath
-systemdict
-begin
-58 418 166 472 setbbox
-69.300003 419 moveto
-154.700012 429.299988 10.3 -90 0 arc
-154.700012 460.699982 10.3 0 90 arc
-69.300003 460.699982 10.3 90 180 arc
-69.300003 429.299988 10.3 180 270 arc
-closepath
-end
-fill
-grestore
-1 nxsetgray
-gsave
-newpath
-systemdict
-begin
-54 414 162 468 setbbox
-65.300003 415 moveto
-150.700012 425.299988 10.3 -90 0 arc
-150.700012 456.699982 10.3 0 90 arc
-65.300003 456.699982 10.3 90 180 arc
-65.300003 425.299988 10.3 180 270 arc
-closepath
-end
-fill
-grestore
-gsave
-newpath
-systemdict
-begin
-54 414 162 468 setbbox
-64.800003 414 moveto
-151.200012 424.799988 10.8 -90 0 arc
-151.200012 457.199982 10.8 0 90 arc
-64.800003 457.199982 10.8 90 180 arc
-64.800003 424.799988 10.8 180 270 arc
-closepath
-end
-clip
-newpath
-0 nxsetgray
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-54 414 162 468 setbbox
-65.300003 414.5 moveto
-150.700012 425.299988 10.8 -90 0 arc
-150.700012 456.699982 10.8 0 90 arc
-65.300003 456.699982 10.8 90 180 arc
-65.300003 425.299988 10.8 180 270 arc
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-/Helvetica findfont 12 scalefont [1 0 0 -1 0 0] makefont
-8
-exch
-defineuserobject
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-84 430 moveto (Interface) show
-85 445 moveto (Receive) show
-84 460 moveto (Daemon) show
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-newpath
-systemdict
-begin
-193 418 301 472 setbbox
-203.800003 418 moveto
-290.200012 428.799988 10.8 -90 0 arc
-290.200012 461.199982 10.8 0 90 arc
-203.800003 461.199982 10.8 90 180 arc
-203.800003 428.799988 10.8 180 270 arc
-closepath
-end
-clip
-newpath
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-193 418 301 472 setbbox
-204.300003 418.5 moveto
-289.700012 429.299988 10.8 -90 0 arc
-289.700012 460.699982 10.8 0 90 arc
-204.300003 460.699982 10.8 90 180 arc
-204.300003 429.299988 10.8 180 270 arc
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-newpath
-systemdict
-begin
-193 418 301 472 setbbox
-204.300003 419 moveto
-289.700012 429.299988 10.3 -90 0 arc
-289.700012 460.699982 10.3 0 90 arc
-204.300003 460.699982 10.3 90 180 arc
-204.300003 429.299988 10.3 180 270 arc
-closepath
-end
-fill
-grestore
-1 nxsetgray
-gsave
-newpath
-systemdict
-begin
-189 414 297 468 setbbox
-200.300003 415 moveto
-285.700012 425.299988 10.3 -90 0 arc
-285.700012 456.699982 10.3 0 90 arc
-200.300003 456.699982 10.3 90 180 arc
-200.300003 425.299988 10.3 180 270 arc
-closepath
-end
-fill
-grestore
-gsave
-newpath
-systemdict
-begin
-189 414 297 468 setbbox
-199.800003 414 moveto
-286.200012 424.799988 10.8 -90 0 arc
-286.200012 457.199982 10.8 0 90 arc
-199.800003 457.199982 10.8 90 180 arc
-199.800003 424.799988 10.8 180 270 arc
-closepath
-end
-clip
-newpath
-0 nxsetgray
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-189 414 297 468 setbbox
-200.300003 414.5 moveto
-285.700012 425.299988 10.8 -90 0 arc
-285.700012 456.699982 10.8 0 90 arc
-200.300003 456.699982 10.8 90 180 arc
-200.300003 425.299988 10.8 180 270 arc
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-219 430 moveto (Interface) show
-219 445 moveto (Transmit) show
-219 460 moveto (Daemon) show
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-newpath
-systemdict
-begin
-184 328 310 382 setbbox
-184 328 moveto
-100.800003 0 rlineto
-25.200001 54 rlineto
--100.800003 0 rlineto
-closepath
-end
-clip
-newpath
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-184.5 328.5 309.5 381.5 setbbox
-184.5 328.5 moveto
-100 0 rlineto
-25 53 rlineto
--100 0 rlineto
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-newpath
-systemdict
-begin
-185 329 309 381 setbbox
-185 329 moveto
-99.199997 0 rlineto
-24.799999 52 rlineto
--99.199997 0 rlineto
-closepath
-end
-fill
-grestore
-1 nxsetgray
-gsave
-newpath
-systemdict
-begin
-181 325 305 377 setbbox
-181 325 moveto
-99.199997 0 rlineto
-24.799999 52 rlineto
--99.199997 0 rlineto
-closepath
-end
-fill
-grestore
-gsave
-newpath
-systemdict
-begin
-180 324 306 378 setbbox
-180 324 moveto
-100.800003 0 rlineto
-25.200001 54 rlineto
--100.800003 0 rlineto
-closepath
-end
-clip
-newpath
-0 nxsetgray
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-180.5 324.5 305.5 377.5 setbbox
-180.5 324.5 moveto
-100 0 rlineto
-25 53 rlineto
--100 0 rlineto
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-219 340.5 moveto (Interface) show
-224 355.5 moveto (Output) show
-224 370.5 moveto (Queue) show
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-193 184 108 54 rectclip
-1 setlinewidth
-193.5 184.5 107 53 rectstroke
-grestore
-194 185 106 52 rectfill
-1 nxsetgray
-190 181 106 52 rectfill
-gsave
-189 180 108 54 rectclip
-0 nxsetgray
-1 setlinewidth
-189.5 180.5 107 53 rectstroke
-grestore
-gsave
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-220 204 moveto (Network) show
-228 219 moveto (Code) show
-grestore
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-gsave
-newpath
-systemdict
-begin
-242.999969 234 243.000031 316.299988 setbbox
-243.000031 234 moveto
-242.999969 316.299988 lineto
-end
-stroke
-grestore
-0 setlinejoin
-gsave
-[0 1 -1 0 567 81.000031] concat
-gsave
-newpath
-systemdict
-begin
-233.799973 319.5 242.999969 328.5 setbbox
-242.999969 324 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-gsave
-newpath
-systemdict
-begin
-242.999985 378 243.000031 406.299988 setbbox
-243.000031 378 moveto
-242.999985 406.299988 lineto
-end
-stroke
-grestore
-0 setlinejoin
-gsave
-[0 1 -1 0 657 171.000031] concat
-gsave
-newpath
-systemdict
-begin
-233.799973 409.5 242.999969 418.5 setbbox
-242.999969 414 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-newpath
-systemdict
-begin
-193 22 301 76 setbbox
-203.800003 22 moveto
-290.200012 32.799999 10.8 -90 0 arc
-290.200012 65.199997 10.8 0 90 arc
-203.800003 65.199997 10.8 90 180 arc
-203.800003 32.799999 10.8 180 270 arc
-closepath
-end
-clip
-newpath
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-193 22 301 76 setbbox
-204.300003 22.5 moveto
-289.700012 33.299999 10.8 -90 0 arc
-289.700012 64.699997 10.8 0 90 arc
-204.300003 64.699997 10.8 90 180 arc
-204.300003 33.299999 10.8 180 270 arc
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-newpath
-systemdict
-begin
-193 22 301 76 setbbox
-204.300003 23 moveto
-289.700012 33.299999 10.3 -90 0 arc
-289.700012 64.699997 10.3 0 90 arc
-204.300003 64.699997 10.3 90 180 arc
-204.300003 33.299999 10.3 180 270 arc
-closepath
-end
-fill
-grestore
-1 nxsetgray
-gsave
-newpath
-systemdict
-begin
-189 18 297 72 setbbox
-200.300003 19 moveto
-285.700012 29.299999 10.3 -90 0 arc
-285.700012 60.699997 10.3 0 90 arc
-200.300003 60.699997 10.3 90 180 arc
-200.300003 29.299999 10.3 180 270 arc
-closepath
-end
-fill
-grestore
-gsave
-newpath
-systemdict
-begin
-189 18 297 72 setbbox
-199.800003 18 moveto
-286.200012 28.799999 10.8 -90 0 arc
-286.200012 61.200001 10.8 0 90 arc
-199.800003 61.200001 10.8 90 180 arc
-199.800003 28.799999 10.8 180 270 arc
-closepath
-end
-clip
-newpath
-0 nxsetgray
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-189 18 297 72 setbbox
-200.300003 18.5 moveto
-285.700012 29.299999 10.8 -90 0 arc
-285.700012 60.699997 10.8 0 90 arc
-200.300003 60.699997 10.8 90 180 arc
-200.300003 29.299999 10.8 180 270 arc
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-229 34 moveto (User) show
-213 49 moveto (Application) show
-229 64 moveto (Task) show
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-newpath
-systemdict
-begin
-346 121 472 175 setbbox
-346 121 moveto
-100.800003 0 rlineto
-25.200001 54 rlineto
--100.800003 0 rlineto
-closepath
-end
-clip
-newpath
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-346.5 121.5 471.5 174.5 setbbox
-346.5 121.5 moveto
-100 0 rlineto
-25 53 rlineto
--100 0 rlineto
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-newpath
-systemdict
-begin
-347 122 471 174 setbbox
-347 122 moveto
-99.199997 0 rlineto
-24.799999 52 rlineto
--99.199997 0 rlineto
-closepath
-end
-fill
-grestore
-1 nxsetgray
-gsave
-newpath
-systemdict
-begin
-343 118 467 170 setbbox
-343 118 moveto
-99.199997 0 rlineto
-24.799999 52 rlineto
--99.199997 0 rlineto
-closepath
-end
-fill
-grestore
-gsave
-newpath
-systemdict
-begin
-342 117 468 171 setbbox
-342 117 moveto
-100.800003 0 rlineto
-25.200001 54 rlineto
--100.800003 0 rlineto
-closepath
-end
-clip
-newpath
-0 nxsetgray
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-342.5 117.5 467.5 170.5 setbbox
-342.5 117.5 moveto
-100 0 rlineto
-25 53 rlineto
--100 0 rlineto
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-386 133.5 moveto (Socket) show
-382 148.5 moveto (Receive) show
-384 163.5 moveto ( Queue) show
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-newpath
-systemdict
-begin
-373 418 481 472 setbbox
-383.799988 418 moveto
-470.199982 428.799988 10.8 -90 0 arc
-470.199982 461.199982 10.8 0 90 arc
-383.799988 461.199982 10.8 90 180 arc
-383.799988 428.799988 10.8 180 270 arc
-closepath
-end
-clip
-newpath
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-373 418 481 472 setbbox
-384.299988 418.5 moveto
-469.699982 429.299988 10.8 -90 0 arc
-469.699982 460.699982 10.8 0 90 arc
-384.299988 460.699982 10.8 90 180 arc
-384.299988 429.299988 10.8 180 270 arc
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-newpath
-systemdict
-begin
-373 418 481 472 setbbox
-384.299988 419 moveto
-469.699982 429.299988 10.3 -90 0 arc
-469.699982 460.699982 10.3 0 90 arc
-384.299988 460.699982 10.3 90 180 arc
-384.299988 429.299988 10.3 180 270 arc
-closepath
-end
-fill
-grestore
-1 nxsetgray
-gsave
-newpath
-systemdict
-begin
-369 414 477 468 setbbox
-380.299988 415 moveto
-465.699982 425.299988 10.3 -90 0 arc
-465.699982 456.699982 10.3 0 90 arc
-380.299988 456.699982 10.3 90 180 arc
-380.299988 425.299988 10.3 180 270 arc
-closepath
-end
-fill
-grestore
-gsave
-newpath
-systemdict
-begin
-369 414 477 468 setbbox
-379.799988 414 moveto
-466.199982 424.799988 10.8 -90 0 arc
-466.199982 457.199982 10.8 0 90 arc
-379.799988 457.199982 10.8 90 180 arc
-379.799988 424.799988 10.8 180 270 arc
-closepath
-end
-clip
-newpath
-0 nxsetgray
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-369 414 477 468 setbbox
-380.299988 414.5 moveto
-465.699982 425.299988 10.8 -90 0 arc
-465.699982 456.699982 10.8 0 90 arc
-380.299988 456.699982 10.8 90 180 arc
-380.299988 425.299988 10.8 180 270 arc
-closepath
-end
-stroke
-grestore
-grestore
-gsave
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-400 437.5 moveto (Network) show
-399 452.5 moveto (Daemon) show
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-67 499 90 45 rectclip
-1 setlinewidth
-67.5 499.5 89 44 rectstroke
-grestore
-68 500 88 43 rectfill
-1 nxsetgray
-64 496 88 43 rectfill
-gsave
-63 495 90 45 rectclip
-0 nxsetgray
-1 setlinewidth
-63.5 495.5 89 44 rectstroke
-grestore
-gsave
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-86 508 moveto (Receive) show
-85 523 moveto (Interrupt) show
-gsave
-66 496 84 43 rectclip
-86 538 moveto (Handler) show
-grestore
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-202 499 90 45 rectclip
-1 setlinewidth
-202.5 499.5 89 44 rectstroke
-grestore
-203 500 88 43 rectfill
-1 nxsetgray
-199 496 88 43 rectfill
-gsave
-198 495 90 45 rectclip
-0 nxsetgray
-1 setlinewidth
-198.5 495.5 89 44 rectstroke
-grestore
-gsave
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-219 508 moveto (Transmit) show
-220 523 moveto (Interrupt) show
-gsave
-201 496 84 43 rectclip
-221 538 moveto (Handler) show
-grestore
-grestore
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-[1 6] 1 setdash
-gsave
-newpath
-systemdict
-begin
-108.000023 475.700012 108.000031 495 setbbox
-108.000023 495 moveto
-108.000031 475.700012 lineto
-end
-stroke
-grestore
-[] 0 setdash
-0 setlinejoin
-gsave
-[0 -1 1 0 -359.999969 576] concat
-gsave
-newpath
-systemdict
-begin
-98.800034 463.5 108.000031 472.5 setbbox
-108.000031 468 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-[1 6] 1 setdash
-gsave
-newpath
-systemdict
-begin
-243.000015 475.700012 243.000031 495 setbbox
-243.000015 495 moveto
-243.000031 475.700012 lineto
-end
-stroke
-grestore
-[] 0 setdash
-0 setlinejoin
-gsave
-[0 -1 1 0 -224.999969 711] concat
-gsave
-newpath
-systemdict
-begin
-233.800034 463.5 243.000031 472.5 setbbox
-243.000031 468 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-[6] 1 setdash
-gsave
-newpath
-systemdict
-begin
-27 90 513 90 setbbox
-27 90 moveto
-513 90 lineto
-end
-stroke
-grestore
-[] 0 setdash
-0 setlinejoin
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-gsave
-newpath
-systemdict
-begin
-304.700012 45 405.000031 117 setbbox
-405.000031 117 moveto
-405 45 lineto
-304.700012 45 lineto
-end
-stroke
-grestore
-0 setlinejoin
-gsave
-[-1 0 0 -1 594 90] concat
-gsave
-newpath
-systemdict
-begin
-287.799988 40.5 297 49.5 setbbox
-297 45 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-gsave
-newpath
-systemdict
-begin
-297 178.699997 405.000031 207 setbbox
-297 207 moveto
-315 207 lineto
-405 207 lineto
-405.000031 178.699997 lineto
-end
-stroke
-grestore
-0 setlinejoin
-gsave
-[0 -1 1 0 234.000031 576] concat
-gsave
-newpath
-systemdict
-begin
-395.800018 166.5 405.000031 175.5 setbbox
-405.000031 171 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-0.333338 nxsetgray
-gsave
-0.333338 nxsetgray
-newpath
-systemdict
-begin
-400 247 472 301 setbbox
-472 295.600006 moveto
-0 -43.200001 rlineto
-472 249.419205 455.872009 247 436 247 curveto
-416.127991 247 400 249.419205 400 252.399994 curveto
-0 43.200001 rlineto
-400 298.580811 416.127991 301 436 301 curveto
-455.872009 301 472 298.580811 472 295.600006 curveto
-closepath
-end
-clip
-newpath
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-400.5 247.5 471.5 300.5 setbbox
-471.5 295.200012 moveto
-0 -42.400002 rlineto
-471.5 249.874405 455.596008 247.5 436 247.5 curveto
-416.403992 247.5 400.5 249.874405 400.5 252.800003 curveto
-0 42.400002 rlineto
-400.5 298.12558 416.403992 300.5 436 300.5 curveto
-455.596008 300.5 471.5 298.12558 471.5 295.199982 curveto
-closepath
-end
-stroke
-grestore
-gsave
-newpath
-systemdict
-begin
-400.5 247.5 471.5 300.5 setbbox
-471.5 252.800003 moveto
-471.5 255.725601 455.596008 258.100006 436 258.100006 curveto
-416.403992 258.100006 400.5 255.725601 400.5 252.800003 curveto
-end
-stroke
-grestore
-grestore
-gsave
-newpath
-systemdict
-begin
-401 248 471 300 setbbox
-471 294.799988 moveto
-0 -41.599998 rlineto
-471 250.329605 455.320007 248 436 248 curveto
-416.679993 248 401 250.329605 401 253.199997 curveto
-0 41.599998 rlineto
-401 297.67041 416.679993 300 436 300 curveto
-455.320007 300 471 297.67041 471 294.800018 curveto
-closepath
-end
-fill
-grestore
-1 nxsetgray
-gsave
-newpath
-systemdict
-begin
-397 244 467 296 setbbox
-467 290.799988 moveto
-0 -41.599998 rlineto
-467 246.329605 451.320007 244 432 244 curveto
-412.679993 244 397 246.329605 397 249.199997 curveto
-0 41.599998 rlineto
-397 293.67041 412.679993 296 432 296 curveto
-451.320007 296 467 293.67041 467 290.800018 curveto
-closepath
-end
-fill
-grestore
-gsave
-newpath
-systemdict
-begin
-396 243 468 297 setbbox
-468 291.600006 moveto
-0 -43.200001 rlineto
-468 245.419205 451.872009 243 432 243 curveto
-412.127991 243 396 245.419205 396 248.399994 curveto
-0 43.200001 rlineto
-396 294.580811 412.127991 297 432 297 curveto
-451.872009 297 468 294.580811 468 291.600006 curveto
-closepath
-end
-clip
-newpath
-0 nxsetgray
-1 setlinewidth
-gsave
-newpath
-systemdict
-begin
-396.5 243.5 467.5 296.5 setbbox
-467.5 291.200012 moveto
-0 -42.400002 rlineto
-467.5 245.874405 451.596008 243.5 432 243.5 curveto
-412.403992 243.5 396.5 245.874405 396.5 248.800003 curveto
-0 42.400002 rlineto
-396.5 294.12558 412.403992 296.5 432 296.5 curveto
-451.596008 296.5 467.5 294.12558 467.5 291.199982 curveto
-closepath
-end
-stroke
-grestore
-gsave
-newpath
-systemdict
-begin
-396.5 243.5 467.5 296.5 setbbox
-467.5 248.800003 moveto
-467.5 251.725601 451.596008 254.100006 432 254.100006 curveto
-412.403992 254.100006 396.5 251.725601 396.5 248.800003 curveto
-end
-stroke
-grestore
-grestore
-gsave
-8 execuserobject setfont
-0 nxsetgray
-8 execuserobject setfont
-0 nxsetgray
-411 266 moveto (Routing) show
-416 281 moveto (Table) show
-grestore
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-gsave
-newpath
-systemdict
-begin
-304.304871 227.434952 388.695129 255.565048 setbbox
-304.304871 227.434952 moveto
-388.695129 255.565048 lineto
-end
-stroke
-grestore
-0 setlinejoin
-gsave
-[-0.948683 -0.316228 0.316228 -0.948683 507.607697 532.373413] concat
-gsave
-newpath
-systemdict
-begin
-287.799988 220.5 297 229.5 setbbox
-297 225 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-gsave
-[0.948683 0.316228 -0.316228 0.948683 101.908165 -111.986488] concat
-gsave
-newpath
-systemdict
-begin
-386.799988 253.5 396 262.5 setbbox
-396 258 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-gsave
-newpath
-systemdict
-begin
-242.999969 72 243.000031 172.300003 setbbox
-243.000031 72 moveto
-242.999969 172.300003 lineto
-end
-stroke
-grestore
-0 setlinejoin
-gsave
-[0 1 -1 0 422.999969 -62.999969] concat
-gsave
-newpath
-systemdict
-begin
-233.799973 175.5 242.999969 184.5 setbbox
-242.999969 180 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-0 nxsetgray
-1 setlinewidth
-2 setlinejoin
-gsave
-newpath
-systemdict
-begin
-108 207 181.300003 414 setbbox
-108.000031 414 moveto
-108 207 lineto
-181.300003 207 lineto
-end
-stroke
-grestore
-0 setlinejoin
-gsave
-[1 0 0 1 0 0] concat
-gsave
-newpath
-systemdict
-begin
-179.800003 202.5 189 211.5 setbbox
-189 207 moveto
--9.2 4.5 rlineto
-1.5 -4.5 rlineto
--1.5 -4.5 rlineto
-closepath
-end
-fill
-grestore
-grestore
-grestore
-%%Trailer
-%%DocumentFonts: Helvetica
diff --git a/doc/networking/networkflow.jpg b/doc/networking/networkflow.jpg
deleted file mode 100644
index fc63ec69e0..0000000000
--- a/doc/networking/networkflow.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/networking/networkflow.png b/doc/networking/networkflow.png
deleted file mode 100644
index fd8ce244fa..0000000000
--- a/doc/networking/networkflow.png
+++ /dev/null
Binary files differ
diff --git a/doc/networking/networkflow.txt b/doc/networking/networkflow.txt
deleted file mode 100644
index 86d8d720fb..0000000000
--- a/doc/networking/networkflow.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Figure: Network Task Structure and Data Flow
- (Not available in ASCII version of this document.)
diff --git a/doc/networking/networking.texi b/doc/networking/networking.texi
deleted file mode 100644
index 84fd23506d..0000000000
--- a/doc/networking/networking.texi
+++ /dev/null
@@ -1,97 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header
-@setfilename networking.info
-@setcontentsaftertitlepage
-@syncodeindex vr fn
-@synindex ky cp
-@paragraphindent 0
-@c %**end of header
-
-@c
-@c COPYRIGHT (c) 1989-2013.
-@c On-Line Applications Research Corporation (OAR).
-@c All rights reserved.
-
-@c
-@c Master file for the network Supplement
-@c
-
-@include version.texi
-@include common/setup.texi
-@include common/rtems.texi
-
-@ifset use-ascii
-@dircategory RTEMS On-Line Manual
-@direntry
-* RTEMS Network Supplement: (networking).
-@end direntry
-@end ifset
-
-@c
-@c Title Page Stuff
-@c
-
-@c
-@c I don't really like having a short title page. --joel
-@c
-@c @shorttitlepage RTEMS Network Supplement
-
-@setchapternewpage odd
-@settitle RTEMS Network Supplement
-@titlepage
-@finalout
-
-@title RTEMS Network Supplement
-@subtitle Edition @value{EDITION}, for RTEMS @value{VERSION}
-@sp 1
-@subtitle @value{UPDATED}
-@author On-Line Applications Research Corporation
-@page
-@include common/cpright.texi
-@end titlepage
-
-@c This prevents a black box from being printed on "overflow" lines.
-@c The alternative is to rework a sentence to avoid this problem.
-
-@contents
-
-@ifnottex
-@node Top, Preface, (dir), (dir)
-@top RTEMS TCP/IP Networking Supplement
-
-@menu
-* Preface::
-* Network Task Structure and Data Flow::
-* Networking Driver::
-* Using Networking in an RTEMS Application::
-* Testing the Driver::
-* Network Servers::
-* DEC 21140 Driver::
-* Command and Variable Index::
-* Concept Index::
-@end menu
-@end ifnottex
-
-@include preface.texi
-@include networktasks.texi
-@include driver.texi
-@include networkapp.texi
-@include testing.texi
-@include servers.texi
-@include decdriver.texi
-
-@node Command and Variable Index, Concept Index, List of Ethernet cards using the DEC chip, Top
-@unnumbered Command and Variable Index
-
-There are currently no Command and Variable Index entries.
-
-@c @printindex fn
-
-@node Concept Index, , Command and Variable Index, Top
-@unnumbered Concept Index
-
-There are currently no Concept Index entries.
-@c @printindex cp
-
-@bye
-
diff --git a/doc/networking/networktasks.t b/doc/networking/networktasks.t
deleted file mode 100644
index 4379646f63..0000000000
--- a/doc/networking/networktasks.t
+++ /dev/null
@@ -1,44 +0,0 @@
-@c
-@c Written by Eric Norum
-@c
-@c COPYRIGHT (c) 1988-2002.
-@c On-Line Applications Research Corporation (OAR).
-@c All rights reserved.
-
-@chapter Network Task Structure and Data Flow
-
-A schematic diagram of the tasks and message @b{mbuf} queues in a
-simple RTEMS networking application is shown in the following
-figure:
-
-@ifclear use-html
-@image{networkflow,5in,6in,"Network Task Structure and Data Flow"}
-@end ifclear
-
-@ifset use-html
-@html
-<IMG SRC="networkflow.jpg" ALIGN=CENTER
- ALT="Network Task Structure and Data Flow">
-@end html
-@end ifset
-
-
-The transmit task for each network interface is normally blocked waiting
-for a packet to arrive in the transmit queue. Once a packet arrives, the
-transmit task may block waiting for an event from the transmit interrupt
-handler. The transmit interrupt handler sends an RTEMS event to the transmit
-task to indicate that transmit hardware resources have become available.
-
-The receive task for each network interface is normally blocked waiting
-for an event from the receive interrupt handler. When this event is received
-the receive task reads the packet and forwards it to the network stack
-for subsequent processing by the network task.
-
-The network task processes incoming packets and takes care of
-timed operations such as handling TCP timeouts and
-aging and removing routing table entries.
-
-The `Network code' contains routines which may run in the context of
-the user application tasks, the interface receive task or the network task.
-A network semaphore ensures that
-the data structures manipulated by the network code remain consistent.
diff --git a/doc/networking/preface.texi b/doc/networking/preface.texi
deleted file mode 100644
index 87bf32df0b..0000000000
--- a/doc/networking/preface.texi
+++ /dev/null
@@ -1,53 +0,0 @@
-@c
-@c COPYRIGHT (c) 1989-2011.
-@c On-Line Applications Research Corporation (OAR).
-@c All rights reserved.
-
-@node Preface, Network Task Structure and Data Flow, Top, Top
-@unnumbered Preface
-
-This document describes the RTEMS specific parts of the FreeBSD TCP/IP
-stack. Much of this documentation was written by Eric Norum
-(@email{eric@@skatter.usask.ca})
-of the Saskatchewan Accelerator Laboratory
-who also ported the FreeBSD TCP/IP stack to RTEMS.
-
-The following is a list of resources which should be useful in trying
-to understand Ethernet:
-
-@itemize @bullet
-
-@item @cite{Charles Spurgeon's Ethernet Web Site}
-
-"This site provides extensive information about Ethernet
-(IEEE 802.3) local area network (LAN) technology. Including
-the original 10 Megabit per second (Mbps) system, the 100 Mbps
-Fast Ethernet system (802.3u), and the Gigabit Ethernet system (802.3z)."
-The URL is:
-@ifset use-html
-(@uref{http://www.ethermanage.com/ethernet/ethernet.html,http://www.ethermanage.com/ethernet/ethernet.html})
-@end ifset
-@ifclear use-html
-(http://www.ethermanage.com/ethernet/ethernet.html)
-@end ifclear
-
-@item @cite{TCP/IP Illustrated, Volume 1 : The Protocols} by
-by W. Richard Stevens (ISBN: 0201633469)
-
-This book provides detailed introduction to TCP/IP and includes diagnostic
-programs which are publicly available.
-
-@item @cite{TCP/IP Illustrated, Volume 2 : The Implementation} by W. Richard
-Stevens and Gary Wright (ISBN: 020163354X)
-
-This book focuses on implementation issues regarding TCP/IP. The
-treat for RTEMS users is that the implementation covered is the BSD
-stack with most of the source code described in detail.
-
-@item @cite{UNIX Network Programming, Volume 1 : 2nd Edition} by W. Richard
-Stevens (ISBN: 0-13-490012-X)
-
-This book describes how to write basic TCP/IP applications, again with primary
-focus on the BSD stack.
-
-@end itemize
diff --git a/doc/networking/recvbd.eps b/doc/networking/recvbd.eps
deleted file mode 100644
index 2719ed231a..0000000000
--- a/doc/networking/recvbd.eps
+++ /dev/null
@@ -1,181 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: recvbd.eps
-%%Creator: fig2dev Version 3.2 Patchlevel 1
-%%CreationDate: Mon Feb 8 14:02:16 1999
-%%For: raguet@genesis (Emmanuel Raguet)
-%%Orientation: Portrait
-%%BoundingBox: 0 0 252 173
-%%Pages: 0
-%%BeginSetup
-%%EndSetup
-%%Magnification: 1.0000
-%%EndComments
-/$F2psDict 200 dict def
-$F2psDict begin
-$F2psDict /mtrx matrix put
-/col-1 {0 setgray} bind def
-/col0 {0.000 0.000 0.000 srgb} bind def
-/col1 {0.000 0.000 1.000 srgb} bind def
-/col2 {0.000 1.000 0.000 srgb} bind def
-/col3 {0.000 1.000 1.000 srgb} bind def
-/col4 {1.000 0.000 0.000 srgb} bind def
-/col5 {1.000 0.000 1.000 srgb} bind def
-/col6 {1.000 1.000 0.000 srgb} bind def
-/col7 {1.000 1.000 1.000 srgb} bind def
-/col8 {0.000 0.000 0.560 srgb} bind def
-/col9 {0.000 0.000 0.690 srgb} bind def
-/col10 {0.000 0.000 0.820 srgb} bind def
-/col11 {0.530 0.810 1.000 srgb} bind def
-/col12 {0.000 0.560 0.000 srgb} bind def
-/col13 {0.000 0.690 0.000 srgb} bind def
-/col14 {0.000 0.820 0.000 srgb} bind def
-/col15 {0.000 0.560 0.560 srgb} bind def
-/col16 {0.000 0.690 0.690 srgb} bind def
-/col17 {0.000 0.820 0.820 srgb} bind def
-/col18 {0.560 0.000 0.000 srgb} bind def
-/col19 {0.690 0.000 0.000 srgb} bind def
-/col20 {0.820 0.000 0.000 srgb} bind def
-/col21 {0.560 0.000 0.560 srgb} bind def
-/col22 {0.690 0.000 0.690 srgb} bind def
-/col23 {0.820 0.000 0.820 srgb} bind def
-/col24 {0.500 0.190 0.000 srgb} bind def
-/col25 {0.630 0.250 0.000 srgb} bind def
-/col26 {0.750 0.380 0.000 srgb} bind def
-/col27 {1.000 0.500 0.500 srgb} bind def
-/col28 {1.000 0.630 0.630 srgb} bind def
-/col29 {1.000 0.750 0.750 srgb} bind def
-/col30 {1.000 0.880 0.880 srgb} bind def
-/col31 {1.000 0.840 0.000 srgb} bind def
-
-end
-save
--186.0 268.0 translate
-1 -1 scale
-
-/cp {closepath} bind def
-/ef {eofill} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth} bind def
-/tr {translate} bind def
-/tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
-/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
-/reencdict 12 dict def /ReEncode { reencdict begin
-/newcodesandnames exch def /newfontname exch def /basefontname exch def
-/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
-basefontdict { exch dup /FID ne { dup /Encoding eq
-{ exch dup length array copy newfont 3 1 roll put }
-{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
-newfont /FontName newfontname put newcodesandnames aload pop
-128 1 255 { newfont /Encoding get exch /.notdef put } for
-newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
-newfontname newfont definefont pop end } def
-/isovec [
-8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
-8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
-8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
-8#220 /dotlessi 8#230 /oe 8#231 /OE
-8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
-8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
-8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
-8#255 /endash 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
-8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
-8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
-8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
-8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
-8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
-8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
-8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
-8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
-8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
-8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
-8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
-8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
-8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
-8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
-8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
-8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
-8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
-8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
-/Times-Roman /Times-Roman-iso isovec ReEncode
-/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
-/$F2psEnd {$F2psEnteredState restore end} def
-%%EndProlog
-
-$F2psBegin
-10 setmiterlimit
-n -1000 5242 m -1000 -1000 l 7942 -1000 l 7942 5242 l cp clip
- 0.06299 0.06299 sc
-% Polyline
-7.500 slw
-n 2970 1530 m 6930 1530 l 6930 2205 l 2970 2205 l cp gs col0 s gr
-% Polyline
-n 2970 2205 m 6930 2205 l 6930 2880 l 2970 2880 l cp gs col0 s gr
-% Polyline
-n 2970 2880 m 6930 2880 l 6930 3555 l 2970 3555 l cp gs col0 s gr
-% Polyline
-n 2970 3555 m 6930 3555 l 6930 4230 l 2970 4230 l cp gs col0 s gr
-% Polyline
-n 3285 1530 m 3285 2205 l gs col0 s gr
-% Polyline
-n 4230 2205 m 4230 2880 l gs col0 s gr
-% Polyline
-n 5535 2205 m 5535 2880 l gs col0 s gr
-/Times-Roman-iso ff 270.00 scf sf
-3960 3375 m
-gs 1 -1 sc (Buffer address 1) col0 sh gr
-/Times-Roman-iso ff 270.00 scf sf
-3960 4005 m
-gs 1 -1 sc (Buffer address 2) col0 sh gr
-/Times-Roman-iso ff 210.00 scf sf
-3105 2610 m
-gs 1 -1 sc (Control bits) col0 sh gr
-/Times-Roman-iso ff 210.00 scf sf
-4860 2475 m
-gs 1 -1 sc (Byte-Count) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman-iso ff 210.00 scf sf
-4860 2730 m
-gs 1 -1 sc (Buffer 2) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman-iso ff 210.00 scf sf
-6210 2520 m
-gs 1 -1 sc (Byte-Count) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman-iso ff 210.00 scf sf
-6210 2775 m
-gs 1 -1 sc (Buffer 1) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman-iso ff 210.00 scf sf
-3150 1755 m
-gs 1 -1 sc (O) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman-iso ff 210.00 scf sf
-3150 2160 m
-gs 1 -1 sc (N) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman-iso ff 210.00 scf sf
-3150 1980 m
-gs 1 -1 sc (W) dup sw pop 2 div neg 0 rm col0 sh gr
-/Times-Roman-iso ff 270.00 scf sf
-4590 1935 m
-gs 1 -1 sc (Status) col0 sh gr
-$F2psEnd
-rs
diff --git a/doc/networking/recvbd.jpg b/doc/networking/recvbd.jpg
deleted file mode 100644
index b15b21b325..0000000000
--- a/doc/networking/recvbd.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/networking/recvbd.txt b/doc/networking/recvbd.txt
deleted file mode 100644
index ca60e7e826..0000000000
--- a/doc/networking/recvbd.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Figure: Buffer Descriptor
- (Not available in ASCII version of this document.)
diff --git a/doc/networking/servers.t b/doc/networking/servers.t
deleted file mode 100644
index 58e8019280..0000000000
--- a/doc/networking/servers.t
+++ /dev/null
@@ -1,115 +0,0 @@
-@c
-@c Text Written by Jake Janovetz
-@c
-@c COPYRIGHT (c) 1988-2002.
-@c On-Line Applications Research Corporation (OAR).
-@c All rights reserved.
-
-
-@chapter Network Servers
-
-@section RTEMS FTP Daemon
-
-The RTEMS FTPD is a complete file transfer protocol (FTP) daemon
-which can store, retrieve, and manipulate files on the local
-filesystem. In addition, the RTEMS FTPD provides ``hooks''
-which are actions performed on received data. Hooks are useful
-in situations where a destination file is not necessarily
-appropriate or in cases when a formal device driver has not yet
-been implemented.
-
-This server was implemented and documented by Jake Janovetz
-(janovetz@@tempest.ece.uiuc.edu).
-
-@subsection Configuration Parameters
-
-The configuration structure for FTPD is as follows:
-
-@example
-struct rtems_ftpd_configuration
-@{
- rtems_task_priority priority; /* FTPD task priority */
- unsigned long max_hook_filesize; /* Maximum buffersize */
- /* for hooks */
- int port; /* Well-known port */
- struct rtems_ftpd_hook *hooks; /* List of hooks */
-@};
-@end example
-
-The FTPD task priority is specified with @code{priority}. Because
-hooks are not saved as files, the received data is placed in an
-allocated buffer. @code{max_hook_filesize} specifies the maximum
-size of this buffer. Finally, @code{hooks} is a pointer to the
-configured hooks structure.
-
-@subsection Initializing FTPD (Starting the daemon)
-
-Starting FTPD is done with a call to @code{rtems_initialize_ftpd()}.
-The configuration structure must be provided in the application
-source code. Example hooks structure and configuration structure
-folllow.
-
-@example
-struct rtems_ftpd_hook ftp_hooks[] =
- @{
- @{"untar", Untar_FromMemory@},
- @{NULL, NULL@}
- @};
-
-struct rtems_ftpd_configuration rtems_ftpd_configuration =
- @{
- 40, /* FTPD task priority */
- 512*1024, /* Maximum hook 'file' size */
- 0, /* Use default port */
- ftp_hooks /* Local ftp hooks */
- @};
-@end example
-
-Specifying 0 for the well-known port causes FTPD to use the
-UNIX standard FTPD port (21).
-
-@subsection Using Hooks
-
-In the example above, one hook was installed. The hook causes
-FTPD to call the function @code{Untar_FromMemory} when the
-user sends data to the file @code{untar}. The prototype for
-the @code{untar} hook (and hooks, in general) is:
-
-@example
- int Untar_FromMemory(unsigned char *tar_buf, unsigned long size);
-@end example
-
-An example FTP transcript which exercises this hook is:
-
-@example
-220 RTEMS FTP server (Version 1.0-JWJ) ready.
-Name (dcomm0:janovetz): John Galt
-230 User logged in.
-Remote system type is RTEMS.
-ftp> bin
-200 Type set to I.
-ftp> dir
-200 PORT command successful.
-150 ASCII data connection for LIST.
-drwxrwx--x 0 0 268 dev
-drwxrwx--x 0 0 0 TFTP
-226 Transfer complete.
-ftp> put html.tar untar
-local: html.tar remote: untar
-200 PORT command successful.
-150 BINARY data connection.
-210 File transferred successfully.
-471040 bytes sent in 0.48 secs (9.6e+02 Kbytes/sec)
-ftp> dir
-200 PORT command successful.
-150 ASCII data connection for LIST.
-drwxrwx--x 0 0 268 dev
-drwxrwx--x 0 0 0 TFTP
-drwxrwx--x 0 0 3484 public_html
-226 Transfer complete.
-ftp> quit
-221 Goodbye.
-@end example
-
-
-
diff --git a/doc/networking/stamp-vti b/doc/networking/stamp-vti
deleted file mode 100644
index 5634951ec8..0000000000
--- a/doc/networking/stamp-vti
+++ /dev/null
@@ -1,4 +0,0 @@
-@set UPDATED 24 February 2013
-@set UPDATED-MONTH February 2013
-@set EDITION 4.10.99.0
-@set VERSION 4.10.99.0
diff --git a/doc/networking/testing.t b/doc/networking/testing.t
deleted file mode 100644
index f455709a47..0000000000
--- a/doc/networking/testing.t
+++ /dev/null
@@ -1,365 +0,0 @@
-@c
-@c Written by Eric Norum
-@c
-@c COPYRIGHT (c) 1988-2002.
-@c On-Line Applications Research Corporation (OAR).
-@c All rights reserved.
-
-
-@chapter Testing the Driver
-
-@section Preliminary Setup
-
-The network used to test the driver should include at least:
-
-@itemize @bullet
-
-@item The hardware on which the driver is to run.
-It makes testing much easier if you can run a debugger to control
-the operation of the target machine.
-
-@item An Ethernet network analyzer or a workstation with an
-`Ethernet snoop' program such as @code{ethersnoop} or
-@code{tcpdump}.
-
-@item A workstation.
-
-@end itemize
-
-During early debug, you should consider putting the target, workstation,
-and snooper on a small network by themselves. This offers a few
-advantages:
-
-@itemize @bullet
-
-@item There is less traffic to look at on the snooper and for the target
-to process while bringing the driver up.
-
-@item Any serious errors will impact only your small network not a building
-or campus network. You want to avoid causing any unnecessary problems.
-
-@item Test traffic is easier to repeatably generate.
-
-@item Performance measurements are not impacted by other systems on
-the network.
-
-@end itemize
-
-@section Debug Output
-
-There are a number of sources of debug output that can be enabled
-to aid in tracing the behavior of the network stack. The following
-is a list of them:
-
-@itemize @bullet
-
-@item mbuf activity
-
-There are commented out calls to @code{printf} in the file
-@code{sys/mbuf.h} in the network stack code. Uncommenting
-these lines results in output when mbuf's are allocated
-and freed. This is very useful for finding memory leaks.
-
-@item TX and RX queuing
-
-There are commented out calls to @code{printf} in the file
-@code{net/if.h} in the network stack code. Uncommenting
-these lines results in output when packets are placed
-on or removed from one of the transmit or receive packet
-queues. These queues can be viewed as the boundary line
-between a device driver and the network stack. If the
-network stack is enqueuing packets to be transmitted that
-the device driver is not dequeuing, then that is indicative
-of a problem in the transmit side of the device driver.
-Conversely, if the device driver is enqueueing packets
-as it receives them (via a call to @code{ether_input}) and
-they are not being dequeued by the network stack,
-then there is a problem. This situation would likely indicate
-that the network server task is not running.
-
-@item TCP state transitions
-
-In the unlikely event that one would actually want to see
-TCP state transitions, the @code{TCPDEBUG} macro can be defined
-in the file @code{opt_tcpdebug.h}. This results in the routine
-@code{tcp_trace()} being called by the network stack and
-the state transitions logged into the @code{tcp_debug} data
-structure. If the variable @code{tcpconsdebug} in the file
-@code{netinet/tcp_debug.c} is set to 1, then the state transitions
-will also be printed to the console.
-
-@end itemize
-
-@section Monitor Commands
-
-There are a number of command available in the shell / monitor
-to aid in tracing the behavior of the network stack. The following
-is a list of them:
-
-@itemize @bullet
-
-@item @code{inet}
-
-This command shows the current routing information for the TCP/IP stack. Following is an
-example showing the output of this command.
-
-@example
-Destination Gateway/Mask/Hw Flags Refs Use Expire Interface
-10.0.0.0 255.0.0.0 U 0 0 17 smc1
-127.0.0.1 127.0.0.1 UH 0 0 0 lo0
-@end example
-
-In this example, there is only one network interface with an IP address of 10.8.1.1. This
-link is currently not up.
-
-Two routes that are shown are the default routes for the Ethernet interface (10.0.0.0) and the
-loopback interface (127.0.0.1).
-
-Since the stack comes from BSD, this command is very similar to the netstat command. For more
-details on the network routing please look the following
-URL: (@url{http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-routing.html})
-
-For a quick reference to the flags, see the table below:
-
-@table @samp
-@item U
-Up: The route is active.
-@item H
-Host: The route destination is a single host.
-@item G
-Gateway: Send anything for this destination on to this remote system, which
-will figure out from there where to send it.
-@item S
-Static: This route was configured manually, not automatically generated by the
-system.
-@item C
-Clone: Generates a new route based upon this route for machines we connect
-to. This type of route is normally used for local networks.
-@item W
-WasCloned: Indicated a route that was auto-configured based upon a local area
-network (Clone) route.
-@item L
-Link: Route involves references to Ethernet hardware.
-@end table
-
-@item @code{mbuf}
-
-This command shows the current MBUF statistics. An example of the command is shown below:
-
-@example
-************ MBUF STATISTICS ************
-mbufs:4096 clusters: 256 free: 241
-drops: 0 waits: 0 drains: 0
- free:4080 data:16 header:0 socket:0
- pcb:0 rtable:0 htable:0 atable:0
- soname:0 soopts:0 ftable:0 rights:0
- ifaddr:0 control:0 oobdata:0
-@end example
-
-@item @code{if}
-
-This command shows the current statistics for your Ethernet driver as long as the ioctl hook
-@code{SIO_RTEMS_SHOW_STATS} has been implemented. Below is an example:
-
-@example
-************ INTERFACE STATISTICS ************
-***** smc1 *****
-Ethernet Address: 00:12:76:43:34:25
-Address:10.8.1.1 Broadcast Address:10.255.255.255 Net mask:255.0.0.0
-Flags: Up Broadcast Running Simplex
-Send queue limit:50 length:0 Dropped:0
-SMC91C111 RTEMS driver A0.01 11/03/2002 Ian Caddy (ianc@@microsol.iinet.net.au)
- Rx Interrupts:0 Not First:0 Not Last:0
- Giant:0 Runt:0 Non-octet:0
- Bad CRC:0 Overrun:0 Collision:0
- Tx Interrupts:2 Deferred:0 Missed Hearbeat:0
- No Carrier:0 Retransmit Limit:0 Late Collision:0
- Underrun:0 Raw output wait:0 Coalesced:0
- Coalesce failed:0 Retries:0
-***** lo0 *****
-Address:127.0.0.1 Net mask:255.0.0.0
-Flags: Up Loopback Running Multicast
-Send queue limit:50 length:0 Dropped:0
-@end example
-
-@item @code{ip}
-
-This command show the IP statistics for the currently configured interfaces.
-
-@item @code{icmp}
-
-This command show the ICMP statistics for the currently configured interfaces.
-
-@item @code{tcp}
-
-This command show the TCP statistics for the currently configured interfaces.
-
-@item @code{udp}
-
-This command show the UDP statistics for the currently configured interfaces.
-
-@end itemize
-
-
-@section Driver basic operation
-
-The network demonstration program @code{netdemo} may be used for these tests.
-
-@itemize @bullet
-
-@item Edit @code{networkconfig.h} to reflect the values for your network.
-
-@item Start with @code{RTEMS_USE_BOOTP} not defined.
-
-@item Edit @code{networkconfig.h} to configure the driver
-with an
-explicit Ethernet and Internet address and with reception of
-broadcast packets disabled:
-
-Verify that the program continues to run once the driver has been attached.
-
-@item Issue a @samp{u} command to send UDP
-packets to the `discard' port.
-Verify that the packets appear on the network.
-
-@item Issue a @samp{s} command to print the network and driver statistics.
-
-@item On a workstation, add a static route to the target system.
-
-@item On that same workstation try to `ping' the target system.
-Verify that the ICMP echo request and reply packets appear on the net.
-
-@item Remove the static route to the target system.
-Modify @code{networkconfig.h} to attach the driver
-with reception of broadcast packets enabled.
-Try to `ping' the target system again.
-Verify that ARP request/reply and ICMP echo request/reply packets appear
-on the net.
-
-@item Issue a @samp{t} command to send TCP
-packets to the `discard' port.
-Verify that the packets appear on the network.
-
-@item Issue a @samp{s} command to print the network and driver statistics.
-
-@item Verify that you can telnet to ports 24742
-and 24743 on the target system from one or more
-workstations on your network.
-
-@end itemize
-
-@section BOOTP/DHCP operation
-
-Set up a BOOTP/DHCP server on the network.
-Set define @code{RTEMS USE_BOOT} in @code{networkconfig.h}.
-Run the @code{netdemo} test program.
-Verify that the target system configures itself from the BOOTP/DHCP server and
-that all the above tests succeed.
-
-@section Stress Tests
-
-Once the driver passes the tests described in the previous section it should
-be subjected to conditions which exercise it more
-thoroughly and which test its error handling routines.
-
-@subsection Giant packets
-
-@itemize @bullet
-@item Recompile the driver with @code{MAXIMUM_FRAME_SIZE} set to
-a smaller value, say 514.
-
-@item `Ping' the driver from another workstation and verify
-that frames larger than 514 bytes are correctly rejected.
-
-@item Recompile the driver with @code{MAXIMUM_FRAME_SIZE} restored to 1518.
-@end itemize
-
-@subsection Resource Exhaustion
-
-@itemize @bullet
-@item Edit @code{networkconfig.h}
-so that the driver is configured with just two receive and transmit descriptors.
-
-@item Compile and run the @code{netdemo} program.
-
-@item Verify that the program operates properly and that you can
-still telnet to both the ports.
-
-@item Display the driver statistics (Console `@code{s}' command or telnet
-`control-G' character) and verify that:
-
-@enumerate
-
-@item The number of transmit interrupts is non-zero.
-This indicates that all transmit descriptors have been in use at some time.
-
-@item The number of missed packets is non-zero.
-This indicates that all receive descriptors have been in use at some time.
-
-@end enumerate
-
-@end itemize
-
-@subsection Cable Faults
-
-@itemize @bullet
-@item Run the @code{netdemo} program.
-
-@item Issue a `@code{u}' console command to make the target machine transmit
-a bunch of UDP packets.
-
-@item While the packets are being transmitted, disconnect and reconnect the
-network cable.
-
-@item Display the network statistics and verify that the driver has
-detected the loss of carrier.
-
-@item Verify that you can still telnet to both ports on the target machine.
-
-@end itemize
-
-@subsection Throughput
-
-Run the @code{ttcp} network benchmark program.
-Transfer large amounts of data (100's of megabytes) to and from the target
-system.
-
-The procedure for testing throughput from a host to an RTEMS target
-is as follows:
-
-@enumerate
-@item Download and start the ttcp program on the Target.
-
-@item In response to the @code{ttcp} prompt, enter @code{-s -r}. The
-meaning of these flags is described in the @code{ttcp.1} manual page
-found in the @code{ttcp_orig} subdirectory.
-
-@item On the host run @code{ttcp -s -t <<insert the hostname or IP address of
-the Target here>>}
-
-@end enumerate
-
-
-The procedure for testing throughput from an RTEMS target
-to a Host is as follows:
-
-@enumerate
-@item On the host run @code{ttcp -s -r}.
-
-@item Download and start the ttcp program on the Target.
-
-@item In response to the @code{ttcp} prompt, enter @code{-s -t <<insert
-the hostname or IP address of the Target here>>}. You need to type the
-IP address of the host unless your Target is talking to your Domain Name
-Server.
-
-@end enumerate
-
-To change the number of buffers, the buffer size, etc. you just add the
-extra flags to the @code{-t} machine as specified in the @code{ttcp.1}
-manual page found in the @code{ttcp_orig} subdirectory.
-
-
-
-
-
diff --git a/doc/networking/version.texi b/doc/networking/version.texi
deleted file mode 100644
index c0e4bbb7b6..0000000000
--- a/doc/networking/version.texi
+++ /dev/null
@@ -1,4 +0,0 @@
-@set UPDATED 17 July 2015
-@set UPDATED-MONTH July 2015
-@set EDITION 4.10.99.0
-@set VERSION 4.10.99.0