--- /dev/null
+CLNP(4) BSD Programmer's Manual CLNP(4)
+
+N\bNA\bAM\bME\bE
+ c\bcl\bln\bnp\bp - Connectionless-Mode Network Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bta\bar\brg\bgo\bo/\b/i\bis\bso\bo.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bta\bar\brg\bgo\bo/\b/c\bcl\bln\bnp\bp.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bA_\bF_\b__\bI_\bS_\bO, _\bS_\bO_\bC_\bK_\b__\bR_\bA_\bW, _\b0);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ CLNP is the connectionless-mode network protocol used by the connection-
+ less-mode network service. This protocol is specified in ISO 8473. It
+ may be accessed through a ``raw socket'' for debugging purposes only.
+ CLNP sockets are connectionless, and are normally used with the sendto
+ and recvfrom calls, though the connect(2) call may also be used to fix
+ the destination for future packets (in which case the read(2) or recv(2)
+ and write(2) or send(2) system calls may be used).
+
+ Outgoing packets automatically have a CLNP header prepended to them. In-
+ coming packets received by the user contain the full CLNP header. The
+ following setsockopt options apply to CLNP:
+
+ CLNPOPT_FLAGS Sets the flags which are passed to clnp when sending a
+ datagram. Valid flags are:
+
+ CLNP_NO_SEG Do not allow segmentation
+ CLNP_NO_ER Suppress ER pdus
+ CLNP_NO_CKSUM Do not generate the CLNP checksum
+
+ CLNPOPT_OPTS Sets CLNP options. The options must be formatted exactly
+ as specified by ISO 8473, section 7.5 ``Options Part.''
+ Once an option has been set, it will be sent on all pack-
+ ets until a different option is set.
+
+C\bCO\bON\bNG\bGE\bES\bST\bTI\bIO\bON\bN E\bEX\bXP\bPE\bER\bRI\bIE\bEN\bNC\bCE\bE B\bBI\bIT\bT
+ Whenever a packet is transmitted, the globally unique quality of service
+ option is added to the packet. The sequencing preferred bit and the low
+ transit delay bit are set in this option.
+
+ If a packet is forwarded containing the globally unique quality of ser-
+ vice option, and the interface through which the packet will be transmit-
+ ted has a queue length greater than _\bc_\bo_\bn_\bg_\be_\bs_\bt_\b__\bt_\bh_\br_\be_\bs_\bh_\bo_\bl_\bd, then the conges-
+ tion experienced bit is set in the quality of service option.
+
+ The threshold value stored in _\bc_\bo_\bn_\bg_\be_\bs_\bt_\b__\bt_\bh_\br_\be_\bs_\bh_\bo_\bl_\bd may be tuned.
+
+ When a packet is received with the globally unique quality of service op-
+ tion present, and the congestion experienced bit is set, then the trans-
+ port congestion control function is called.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ A socket operation may fail with one of the following errors returned:
+
+ [EISCONN] When trying to establish a connection on a socket which
+ already has one, or when trying to send a datagram with
+ the destination address specified and the socket is al-
+ ready connected;
+
+ [ENOTCONN] When trying to send a datagram, but no destination ad-
+ dress is specified, and the socket hasn't been connect-
+
+ ed;
+
+ [ENOBUFS] When the system runs out of memory for an internal data
+ structure;
+
+ [EADDRNOTAVAIL] When an attempt is made to create a socket with a net-
+ work address for which no network interface exists;
+
+ [EHOSTUNREACH] When trying to send a datagram, but no route to the des-
+ tination address exists.
+
+ [EINVAL] When specifying unsupported options.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ send(2), recv(2), intro(4), iso(4)
+
+B\bBU\bUG\bGS\bS
+ Packets are sent with the type code of 0x1d (technically an invalid pack-
+ et type) for lack of a better way to identify raw CLNP packets.
+
+ No more than MLEN bytes of options can be specified.
+
+4.4BSD June 9, 1993 2
--- /dev/null
+CLTP(4) BSD Programmer's Manual CLTP(4)
+
+N\bNA\bAM\bME\bE
+ c\bcl\blt\btp\bp - ISO Connectionless Transport Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bis\bso\bo/\b/i\bis\bso\bo.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bA_\bF_\b__\bI_\bS_\bO, _\bS_\bO_\bC_\bK_\b__\bD_\bG_\bR_\bA_\bM, _\b0);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ CLTP is a simple, unreliable datagram protocol which is accessed via the
+ SOCK_DGRAM abstraction for the ISO protocol family. CLTP sockets are
+ connectionless, and are normally used with the sendto and recvfrom calls,
+ though the connect(2) call may also be used to fix the destination for
+ future packets (in which case the recv(2) or read(2) and send(2) or
+ write(2) system calls may be used).
+
+ CLTP address formats are identical to those used by TP. In particular
+ CLTP provides a service selector in addition to the normal ISO NSAP. Note
+ that the CLTP selector space is separate from the TP selector space (i.e.
+ a CLTP selector may not be ``connected'' to a TP selector).
+
+ Options at the CLNP network level may be used with CLTP; see clnp(4).
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ A socket operation may fail with one of the following errors returned:
+
+ [EISCONN] when trying to establish a connection on a socket which
+ already has one, or when trying to send a datagram with
+ the destination address specified and the socket is al-
+ ready connected;
+
+ [ENOTCONN] when trying to send a datagram, but no destination ad-
+ dress is specified, and the socket hasn't been connect-
+ ed;
+
+ [ENOBUFS] when the system runs out of memory for an internal data
+ structure;
+
+ [EADDRINUSE] when an attempt is made to create a socket with a selec-
+ tor which has already been allocated;
+
+ [EADDRNOTAVAIL] when an attempt is made to create a socket with a net-
+ work address for which no network interface exists.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getsockopt(2), recv(2), send(2), socket(2), intro(4), iso(4),
+ clnp(4)
+
+4.4BSD June 9, 1993 1
--- /dev/null
+DRUM(4) BSD Programmer's Manual DRUM(4)
+
+N\bNA\bAM\bME\bE
+ d\bdr\bru\bum\bm - paging device
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This file refers to the paging device in use by the system. This may ac-
+ tually be a subdevice of one of the disk drivers, but in a system with
+ paging interleaved across multiple disk drives it provides an indirect
+ driver for the multiple drives.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/drum
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bdr\bru\bum\bm special file appeared in 3.0BSD.
+
+B\bBU\bUG\bGS\bS
+ Reads from the drum are not allowed across the interleaving boundaries.
+ Since these only occur every .5Mbytes or so, and since the system never
+ allocates blocks across the boundary, this is usually not a problem.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+ESIS(4) BSD Programmer's Manual ESIS(4)
+
+N\bNA\bAM\bME\bE
+ e\bes\bs-\b-i\bis\bs - End System to Intermediate System Routing Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ p\bps\bse\beu\bud\bdo\bo-\b-d\bde\bev\bvi\bic\bce\be
+ e\bet\bth\bhe\ber\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The E\bES\bS-\b-I\bIS\bS routing protocol is used to dynamically map between ISO NSAP
+ addresses and ISO SNPA addresses; to permit End and Intermediate Systems
+ to learn of each other's existence; and to allow Intermediate Systems to
+ inform End Systems of (potentially) better routes to use when forwarding
+ NPDUs to a particular destination.
+
+ The mapping between NSAP addresses and SNPA addresses is accomplished by
+ transmitting hello PDUs between the cooperating Systems. These PDUs are
+ transmitted whenever the _\bc_\bo_\bn_\bf_\bi_\bg_\bu_\br_\ba_\bt_\bi_\bo_\bn timer expires. When a hello PDU
+ is received, the SNPA address that it conveys is stored in the routing
+ table for as long as the _\bh_\bo_\bl_\bd_\bi_\bn_\bg _\bt_\bi_\bm_\be in the PDU suggests. The default
+ _\bh_\bo_\bl_\bd_\bi_\bn_\bg _\bt_\bi_\bm_\be (120 seconds) placed in the hello PDU, the configuration
+ timer value, and the system type (End System or Intermediate System) may
+ be changed by issuing an SIOCSSTYPE ioctl(2), which is defined in
+ _\b/_\bs_\by_\bs_\b/_\bn_\be_\bt_\bi_\bs_\bo_\b/_\bi_\bs_\bo_\b__\bs_\bn_\bp_\ba_\bc_\b._\bh_\b.
+
+ The protocol behaves differently depending on whether the System is con-
+ figured as an End System or an Intermediate System.
+
+E\bEN\bND\bD S\bSY\bYS\bST\bTE\bEM\bM O\bOP\bPE\bER\bRA\bAT\bTI\bIO\bON\bN
+ When an interface requests a mapping for an address not in the cache, the
+ SNPA of any known Intermediate System is returned. If an Intermediate
+ System is not known, then the _\ba_\bl_\bl _\be_\bn_\bd _\bs_\by_\bs_\bt_\be_\bm_\bs multicast address is re-
+ turned. It is assumed that the intended recipient of the NPDU will imme-
+ diately transmit a hello PDU back to the originator of the NPDU.
+
+ If an NPDU is forwarded by the End System, a redirect PDU will not be
+ generated. However, redirect PDUs received will be processed. This pro-
+ cessing consists of adding an entry in the routing table. If the redirect
+ is towards an Intermediate System, then an entry is made in the routing
+ table as well. The entry in the routing table will may mark the NSAP ad-
+ dress contained in the redirect PDU as the gateway for the destination
+ system (if an NET is supplied), or will create a route with the NSAP ad-
+ dress as the destination and the SNPA address (embodied as a link-level
+ sockaddr) as the gateway.
+
+ If the System is configured as an End System, it will report all the
+ NSAPs that have been configured using the ifconfig command, and no oth-
+ ers. It is possible to have more than one NSAP assigned to a given in-
+ terface, and it is also possible to have the same NSAP assigned to multi-
+ ple interfaces. However, any NSAP containing an NSEL that is consistent
+ with the nsellength option (default one) of any interface will be accept-
+ ed as an NSAP for this System.
+
+I\bIN\bNT\bTE\bER\bRM\bME\bED\bDI\bIA\bAT\bTE\bE S\bSY\bYS\bST\bTE\bEM\bM O\bOP\bPE\bER\bRA\bAT\bTI\bIO\bON\bN
+ When an interface requests a mapping for an address not in the routing
+ table, an error is returned.
+
+ When an NPDU is forwarded out on the same interface that the NPDU arrived
+ upon, a redirect PDU is generated.
+
+M\bMA\bAN\bNU\bUA\bAL\bL R\bRO\bOU\bUT\bTI\bIN\bNG\bG T\bTA\bAB\bBL\bLE\bE M\bMO\bOD\bDI\bIF\bFI\bIC\bCA\bAT\bTI\bIO\bON\bN
+ To facilitate communications with systems which do not use E\bES\bS-\b-I\bIS\bS,\b, one may
+ add a route whose destination is a sockaddr_iso containing the NSAP in
+ question, and the gateway being a link-level sockaddr, either by writing
+ a special purpose program, or using the route(8) command e.g.:
+
+ route add -iface -osi 49.0.4.8.0.2b.b.83.bf -link qe0:8.0.2b.b.83.bf
+
+ If the System is configured as an End System and has a single network in-
+ terface which does not support multicast reception, it is necessary to
+ manually configure the location of an IS, using the route command in a
+ similar way. There, the destination address should be ``default''
+ (spelled out literally as 7 ASCII characters), and the gateway should be
+ once again be a link-level sockaddr specifying the SNPA of the IS.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ un(4), iso(4), route(8), ifconfig(8)
+
+ _\bE_\bn_\bd _\bs_\by_\bs_\bt_\be_\bm _\bt_\bo _\bI_\bn_\bt_\be_\br_\bm_\be_\bd_\bi_\ba_\bt_\be _\bs_\by_\bs_\bt_\be_\bm _\br_\bo_\bu_\bt_\bi_\bn_\bg _\be_\bx_\bc_\bh_\ba_\bn_\bg_\be _\bp_\br_\bo_\bt_\bo_\bc_\bo_\bl _\bf_\bo_\br _\bu_\bs_\be _\bi_\bn
+ _\bc_\bo_\bn_\bj_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bw_\bi_\bt_\bh _\bt_\bh_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl _\bf_\bo_\br _\bp_\br_\bo_\bv_\bi_\bd_\bi_\bn_\bg _\bt_\bh_\be _\bc_\bo_\bn_\bn_\be_\bc_\bt_\bi_\bo_\bn_\bl_\be_\bs_\bs_\b-_\bm_\bo_\bd_\be
+ _\bn_\be_\bt_\bw_\bo_\br_\bk _\bs_\be_\br_\bv_\bi_\bc_\be, ISO, 9542.
+
+B\bBU\bUG\bGS\bS
+ Redirect PDUs do not contain options from the forwarded NPDU which gener-
+ ated the redirect. The multicast address used on the 802.3 network is
+ taken from the NBS December 1987 agreements. This multicast address is
+ not compatible with the 802.5 (Token Ring) multicast addresses format.
+ Therefore, broadcast addresses are used on the 802.5 subnetwork. Re-
+ searchers at the University of Wisconsin are constructing an implementa-
+ tion of the IS-IS routing protocol.
+
+4.4BSD June 9, 1993 2
--- /dev/null
+FD(4) BSD Programmer's Manual FD(4)
+
+N\bNA\bAM\bME\bE
+ f\bfd\bd, s\bst\btd\bdi\bin\bn, s\bst\btd\bdo\bou\but\bt, s\bst\btd\bde\ber\brr\br - file descriptor files
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The files _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\b0 through _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\b# refer to file descriptors which can
+ be accessed through the file system. If the file descriptor is open and
+ the mode the file is being opened with is a subset of the mode of the ex-
+ isting descriptor, the call:
+
+ fd = open("/dev/fd/0", mode);
+
+ and the call:
+
+ fd = fcntl(0, F_DUPFD, 0);
+
+ are equivalent.
+
+ Opening the files _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn, _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt and _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br is equivalent
+ to the following calls:
+
+ fd = fcntl(STDIN_FILENO, F_DUPFD, 0);
+ fd = fcntl(STDOUT_FILENO, F_DUPFD, 0);
+ fd = fcntl(STDERR_FILENO, F_DUPFD, 0);
+
+ Flags to the open(2) call other than O_RDONLY, O_WRONLY and O_RDWR are
+ ignored.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/fd/#
+ /dev/stdin
+ /dev/stdout
+ /dev/stderr
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+4.4BSD June 9, 1993 1
--- /dev/null
+AUTOCONF(4) BSD Programmer's Manual (HP300 Architecture) AUTOCONF(4)
+
+N\bNA\bAM\bME\bE
+ a\bau\but\bto\boc\bco\bon\bnf\bf - diagnostics from the autoconfiguration code
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ When UNIX bootstraps it probes the innards of the machine on which it is
+ running and locates controllers, drives, and other devices, printing out
+ what it finds on the console. This procedure is driven by a system con-
+ figuration table which is processed by config(8) and compiled into each
+ kernel.
+
+ Autoconfiguration on the HP300s is similar to that on the VAX, the prima-
+ ry difference is in the naming conventions. On the HP300, if devices ex-
+ ist which are not configured they will be ignored; if devices exist of
+ unsupported type they will be ignored.
+
+ Normally, the system uses the disk from which it was loaded as the root
+ filesystem. If that is not possible, a generic system will use `rd0' if
+ it exists. If such a system is booted with the RB_ASKNAME option (see
+ reboot(2)), then the name of the root device is read from the console
+ terminal at boot time, and any available device may be used.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ C\bCP\bPU\bU t\bty\byp\bpe\be n\bno\bot\bt c\bco\bon\bnf\bfi\big\bgu\bur\bre\bed\bd.\b. You tried to boot UNIX on a CPU type which it
+ doesn't (or at least this compiled version of UNIX doesn't) understand.
+
+ h\bhp\bpi\bib\bb%\b%d\bd a\bat\bt s\bsc\bc%\b%d\bd,\b, i\bip\bpl\bl %\b%d\bd.\b. An HP-IB was found at sc%d (the select code)
+ with ipl%d (interrupt priority level). UNIX will call it hpib%d.
+
+ %\b%s\bs%\b%d\bd:\b: %\b%s\bs.\b.
+ %\b%s\bs%\b%d\bd a\bat\bt h\bhp\bpi\bib\bb%\b%d\bd,\b, s\bsl\bla\bav\bve\be %\b%d\bd.\b. An HP-IB disk or tape controller was found.
+ For disks `%s%d' will look like `rd0', for tapes like `ct0'. The `%s' in
+ the first line will be a product type like ``7945A'' or ``9144''. The
+ slave number comes from the address select switches on the drive.
+
+ g\bgr\brf\bf0\b0 c\bcs\bsr\br 0\b0x\bx5\b56\b60\b00\b00\b00\b0
+ g\bgr\brf\bf%\b%d\bd a\bat\bt s\bsc\bc%\b%d\bd A bit mapped display was found either at the ``internal''
+ address (first case) or at some ``external'' select code (second case).
+ If it exists, the internal display will always be unit 0.
+
+ %\b%s\bs%\b%d\bd a\bat\bt s\bsc\bc%\b%d\bd,\b, i\bip\bpl\bl %\b%d\bd f\bfl\bla\bag\bgs\bs %\b%d\bd Another peripheral controller was found at
+ the indicated select code and with indicated interrupt priority level.
+ `%s' will be one of dca(4) (single-port serial interfaces), dcm(4) (four-
+ port serial interfaces), or le(4) (LAN cards). The slave number comes
+ from the address select switches on the interface card.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), boot(8), config(8)
+
+ _\b4_\b._\b3_\bB_\bS_\bD _\bf_\bo_\br _\bt_\bh_\be _\bH_\bP_\b3_\b0_\b0, in the distribution documentation package.
+
+4.4BSD June 9, 1993 1
--- /dev/null
+CONS(4) BSD Programmer's Manual (HP300 Architecture) CONS(4)
+
+N\bNA\bAM\bME\bE
+ c\bco\bon\bns\bs - HP300 console interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This release supports a ``virtual'' console device used for _\bk_\be_\br_\bn_\be_\bl _\bp_\br_\bi_\bn_\bt_\bf
+ messages and accessed in user mode via _\b/_\bd_\be_\bv_\b/_\bc_\bo_\bn_\bs_\bo_\bl_\be. It is virtual in the
+ sense that it is attached to a hardware interface at boot time. Current-
+ ly the choices are limited to: a bit-mapped display acting as an _\bi_\bn_\bt_\be_\br_\bn_\ba_\bl
+ _\bt_\be_\br_\bm_\bi_\bn_\ba_\bl _\be_\bm_\bu_\bl_\ba_\bt_\bo_\br ``ITE'', the builtin serial interface dca(4), or a
+ null(4) console in that order.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/console
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4), reboot(8)
+
+B\bBU\bUG\bGS\bS
+ You should be able to specify potential console devices at config(8)
+ time.
+
+4.4BSD June 9, 1993 1
--- /dev/null
+CT(4) BSD Programmer's Manual (HP300 Architecture) CT(4)
+
+N\bNA\bAM\bME\bE
+ c\bct\bt - CS/80 cartridge tape interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ t\bta\bap\bpe\be c\bct\bt0\b0 a\bat\bt h\bhp\bpi\bib\bb?\b? s\bsl\bla\bav\bve\be ?\b?
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The cartridge tape interface as found in the 7946 and 9144 products pro-
+ vides a standard tape drive interface as described in mtio(4) with the
+ following exceptions:
+
+ 1. There is only one density.
+
+ 2. Only the ``raw'' interface is supported.
+
+ 3. The MTIOCTOP ioctl(2) is limited. In particular, the command, MTFSR
+ is not supported.
+
+ 4. The MTIOCGET ioctl is not supported.
+
+ 5. The record size for read and write operations must be between 1K and
+ 64K inclusive.
+
+ Special files _\br_\bc_\bt_\b0 through _\br_\bc_\bt_\b3 refer to rewind on close interfaces to
+ drives 0 to 3. Files _\br_\bc_\bt_\b4 through _\br_\bc_\bt_\b7 refer to no-rewind interfaces.
+ Files _\br_\bc_\bt_\b8 through _\br_\bc_\bt_\b1_\b1 refer to streaming rewind on close interfaces.
+ (Only 9144 type devices can stream.) Lastly, _\br_\bc_\bt_\b1_\b2 through _\br_\bc_\bt_\b1_\b5 refer
+ to streaming no-rewind interfaces.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), tar(1), tp(1), mtio(4).
+
+B\bBU\bUG\bGS\bS
+ Read and writes of less than 1024 bytes will not behave as expected.
+
+4.4BSD June 9, 1993 1
--- /dev/null
+DCA(4) BSD Programmer's Manual (HP300 Architecture) DCA(4)
+
+N\bNA\bAM\bME\bE
+ d\bdc\bca\ba - HP 98644A communications interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdc\bca\ba0\b0 a\bat\bt s\bsc\bco\bod\bde\be9\b9 f\bfl\bla\bag\bgs\bs 0\b0x\bx1\b1
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The 98644A is a single port EIA RS-232C (CCITT V.28) communications in-
+ terface with a single character buffer. Such an interface is built-in to
+ all series 300 machines.
+
+ Input and output for each line may set to one of following baud rates;
+ 50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 4800, 9600 or 19200.
+
+ An optional argument _\bf_\bl_\ba_\bg_\bs may be set to 1 if the line should be treated
+ as hard-wired with carrier always present or 0 if modem control is de-
+ sired.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/tty0
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdc\bca\ba%\b%d\bd:\b: s\bsi\bil\blo\bo o\bov\bve\ber\brf\bfl\blo\bow\bw.\b. The single-character input ``silo'' has overflowed
+ and incoming data has been lost.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+B\bBU\bUG\bGS\bS
+ Data loss is possible on busy systems with baud rates greater than 300.
+ The d\bdc\bca\ba has never been tested with modem control enabled or on anything
+ but the built-in interface.
+
+4.4BSD June 9, 1993 1
--- /dev/null
+DCL(4) BSD Programmer's Manual (HP300 Architecture) DCL(4)
+
+N\bNA\bAM\bME\bE
+ d\bdc\bcl\bl - HP 98628A communications link
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdc\bcl\bl0\b0 a\bat\bt s\bsc\bco\bod\bde\be?\b? f\bfl\bla\bag\bgs\bs 0\b0x\bx1\b1
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The 98628A is a buffered EIA RS-232C (CCITT V.28) communications inter-
+ face. It has one port with full modem control.
+
+ Input and output for each line may set to one of following baud rates; 0,
+ 50, 75, 110, 134.5, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600,
+ 19200.
+
+ An optional argument _\bf_\bl_\ba_\bg_\bs may be set to 1 if the line should be treated
+ as hard-wired with carrier always present, or to 0 if modem control is
+ desired.
+
+ Use HP cable "98626 & 98628 opts.002, RS232-C DCE CABLE, 5061-4216" to
+ attach non-modem devices. Use HP cable "98626 & 98628 opts.001, RS232-C
+ DTE CABLE, 5061-4215" to attach modems.
+
+ The 98628A has a 256 byte input silo and a 256 output silo. Input inter-
+ rupts happen on a per character basis.
+
+ The high water and low water marks in the kernel tty routines are com-
+ pletely inappropriate for a device like this with a large input buffer.
+ Don't use tandem mode if possible. A fast system can handle input at
+ 19.2K baud without receive overflow.
+
+ For output to devices that make heavy use of XON/XOFF a write size of
+ less then 256 will improve performance marginally.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/ttyl[0-9]
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdc\bcl\bl%\b%d\bd:\b: e\ber\brr\bro\bor\br 0\b0x\bx%\b%x\bx R\bRE\bES\bSE\bET\bT C\bCA\bAR\bRD\bD.\b. Where the errors are encoded:
+
+ 0x06 card failure
+ 0x0d uart receive overflow
+ 0x0e receive overflow
+ 0x0f missing external clock
+ 0x10 cts false too long
+ 0x11 lost carrier
+ 0x12 activity timeout
+ 0x13 connection not established
+ 0x19 illegal databits/parity
+ 0x1a register address out of range
+ 0x1b register value out of range
+ 0x-- unknown error
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+B\bBU\bUG\bGS\bS
+ Breaks received at a faster rate then 1 break every second will be recog-
+ nized as a single break.
+
+ Console use is not supported.
+
+ The RS-422/423/499, MTS-DSN/DL modes of the card are not supported.
+
+4.4BSD June 9, 1993 1
--- /dev/null
+DCM(4) BSD Programmer's Manual (HP300 Architecture) DCM(4)
+
+N\bNA\bAM\bME\bE
+ d\bdc\bcm\bm - HP 98642A communications multiplexer
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdc\bcm\bm0\b0 a\bat\bt s\bsc\bco\bod\bde\be?\b? f\bfl\bla\bag\bgs\bs 0\b0x\bxe\be
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The 98642A is a four port EIA RS-232C (CCITT V.28) communications multi-
+ plexer. The 98642A has three direct-connect ports and one port with full
+ modem control.
+
+ Input and output for each line may set to one of following baud rates;
+ 50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200,
+ 38400.
+
+ _\bF_\bl_\ba_\bg_\bs is usually specified as 0xe since 3 of the 4 ports (1-3) do not
+ support modem control and should be treated as hard-wired with carrier
+ always present. If port 0 does not have the need for modem control then
+ flags can be specified as `0xf'.
+
+ Each port on the 98642A has a 128 byte input silo and a 16 byte output
+ silo. Interrupts happen on a per character basis unless the interrupt
+ rate for the card reaches 70 interrupts per second at which time the
+ driver changes to a 16.7ms (60 interrupts per second) polling scheme un-
+ til the interrupt rate drops.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/tty0[0-9a-f]
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdc\bcm\bm%\b%d\bd p\bpo\bor\brt\bt%\b%d\bd:\b: s\bsi\bil\blo\bo o\bov\bve\ber\brf\bfl\blo\bow\bw Input Silo has overflowed and incoming data
+ has been lost.
+
+ d\bdc\bcm\bm%\b%d\bd p\bpo\bor\brt\bt%\b%d\bd:\b: u\bua\bar\brt\bt o\bov\bve\ber\brf\bfl\blo\bow\bw The 3 character buffer in the uart has over-
+ flowed.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+B\bBU\bUG\bGS\bS
+ Total throughput per card, all ports together, is limited to 76800 bits
+ per second continuous input rate.
+
+4.4BSD June 9, 1993 1
--- /dev/null
+DV(4) BSD Programmer's Manual (HP300 Architecture) DV(4)
+
+N\bNA\bAM\bME\bE
+ d\bdv\bv - HP98730 ``DaVinci'' device interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This driver is for the HP98730 and 98731 graphics device, also known as
+ the DaVinci. This driver has not been tested with all possible combina-
+ tions of frame buffer boards and scan boards installed in the device.
+ The driver merely checks for the existence of the device and does minimal
+ set up.
+
+ The DaVinci can be configured at either the ``internal'' address (frame
+ buffer address 0x200000, control register space address 0x560000) or at
+ an external select code less than 32. At the internal address it will be
+ the ``preferred'' console device (see cons(4)). The hardware installa-
+ tion manual describes the procedure for setting these values.
+
+ A user process communicates to the device initially by means of ioctl(2)
+ calls. For the HP-UX ioctl calls supported, refer to HP-UX manuals. The
+ BSD calls supported are:
+
+ GRFIOCGINFO
+ Get Graphics Info
+
+ Get info about device, setting the entries in the _\bg_\br_\bf_\bi_\bn_\bf_\bo struc-
+ ture, as defined in <_\bh_\bp_\bd_\be_\bv_\b/_\bg_\br_\bf_\bi_\bo_\bc_\bt_\bl_\b._\bh>. For the standard 98730,
+ the number of planes should be 4. The number of colors would
+ therefore be 15, excluding black. If one 98732A frame buffer
+ board is installed, there will still be 4 planes, with the 4
+ planes on the colormap board becoming overlay planes. With each
+ additional 98732 frame buffer board 4 planes will be added up to
+ a maximum of 32 planes total.
+
+ GRFIOCON
+ Graphics On
+
+ Turn graphics on by enabling CRT output. The screen will come
+ on, displaying whatever is in the frame buffer, using whatever
+ colormap is in place.
+
+ GRFIOCOFF
+ Graphics Off
+
+ Turn graphics off by disabling output to the CRT. The frame
+ buffer contents are not affected.
+
+ GRFIOCMAP
+ Map Device to user space
+
+ Map in control registers and frame buffer space. Once the device
+ file is mapped, the frame buffer structure is accessible. The
+ structure describing the 98730 is defined in <_\bh_\bp_\bd_\be_\bv_\b/_\bg_\br_\bf_\b__\bd_\bv_\br_\be_\bg_\b._\bh>.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bE
+ This is a short segment of code showing how the device is opened and
+ mapped into user process address space assuming that it is `grf0':
+
+ struct dvboxfb *dvbox;
+ u_char *Addr, frame_buffer;
+ struct grfinfo gi;
+ int disp_fd;
+
+ disp_fd = open("/dev/grf0",1);
+
+ if (ioctl (disp_fd, GRFIOCGINFO, &gi) < 0) return -1;
+
+ (void) ioctl (disp_fd, GRFIOCON, 0);
+
+ Addr = (u_char *) 0;
+ if (ioctl (disp_fd, GRFIOCMAP, &Addr) < 0) {
+ (void) ioctl (disp_fd, GRFIOCOFF, 0);
+ return -1;
+ }
+ dvbox = (dvboxfb *) Addr; /* Control Registers */
+ frame_buffer=(u_char *)Addr+gi.gd_regsize; /* Frame buffer memory */
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/grf? BSD special file
+ /dev/crt98730
+ /dev/ocrt98730 HP-UX _\bs_\bt_\ba_\br_\bb_\ba_\bs_\be special files
+ /dev/MAKEDEV.hpux script for creating HP-UX special files
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None under BSD. HP-UX CE.utilities must be used.
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ [ENODEV] no such device.
+
+ [EBUSY] Another process has the device open.
+
+ [EINVAL] Invalid ioctl specification.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ioctl(2), grf(4).
+
+B\bBU\bUG\bGS\bS
+ Not tested for all configurations of scan board and frame buffer memory
+ boards.
+
+4.4BSD June 9, 1993 2
--- /dev/null
+GB(4) BSD Programmer's Manual (HP300 Architecture) GB(4)
+
+N\bNA\bAM\bME\bE
+ g\bgb\bb - HP98700 ``Gatorbox'' device interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This driver is for the HP98700 and 98710 graphics devices, also known as
+ the Gatorbox. The term ``Gator'' will often be used, and it is not to be
+ confused with ``Gator'' used in reference to an HP 9837 or 200/237 ma-
+ chine. Also, the term Gatorbox is used for the 98700 alone, with the
+ 98701 frame buffer memory or with the 98710 accelerator installed. This
+ driver merely checks for the existence of the device and does minimal set
+ up, as it is expected the applications will initialize the device to
+ their requirements.
+
+ The 98700 can be used as the only graphics device on a system, in which
+ case it will be used as the system console. It can also be installed as
+ a secondary display device. For the first case, the HP 98287A M.A.D. in-
+ terface card should be set to internal control space. This will put the
+ frame buffer at the DIO address 0x200000 and the control registers at
+ 0x560000. At this address it will be the ``preferred'' console device
+ (see cons(4)). For use as a secondary device, the 98287A should be set
+ to frame buffer address 0x300000, and to an external select code.
+
+ It should be noted that this configuration will conflict with the 98547
+ display card which has a 2 megabyte frame buffer starting at address
+ 0x200000. The 98700 should only be installed as a secondary device in a
+ machine with a 1 bit 98544 display card or 4 bit 98545 card. The _\b9_\b8_\b7_\b0_\b0_\bH
+ _\bI_\bn_\bs_\bt_\ba_\bl_\bl_\ba_\bt_\bi_\bo_\bn _\bG_\bu_\bi_\bd_\be contains further configuration information.
+
+ The ioctl(2) calls supported by the BSD system for the Gatorbox are:
+
+ GRFIOCGINFO
+ Get Graphics Info
+
+ Get info about device, setting the entries in the _\bg_\br_\bf_\bi_\bn_\bf_\bo struc-
+ ture, as defined in <_\bh_\bp_\bd_\be_\bv_\b/_\bg_\br_\bf_\bi_\bo_\bc_\bt_\bl_\b._\bh>. For the standard 98700,
+ the number of planes should be 4. The number of colors would
+ therefore be 15, excluding black. With the 98701 option in-
+ stalled there will be another 4 planes for a total of 8, giving
+ 255 colors.
+
+ GRFIOCON
+ Graphics On
+
+ Turn graphics on by enabling CRT output. The screen will come
+ on, displaying whatever is in the frame buffer, using whatever
+ colormap is in place.
+
+ GRFIOCOFF
+ Graphics Off
+
+ Turn graphics off by disabling output to the CRT. The frame
+ buffer contents are not affected.
+
+ GRFIOCMAP
+ Map Device to user space
+
+ Map in control registers and framebuffer space. Once the device
+ file is mapped, the frame buffer structure is accessible. The
+ frame buffer structure describing the 98700 is given in
+ <_\bh_\bp_\bd_\be_\bv_\b/_\bg_\br_\bf_\b__\bg_\bb_\br_\be_\bg_\b._\bh>.
+
+ GRFIOCUNMAP
+ Unmap Device
+
+ Unmap control registers and framebuffer space.
+
+ For further information about the use of ioctl see the man page.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bE
+ A small example of opening, mapping and using the device is given below.
+ For more examples of the details on the behavior of the device, see the
+ device dependent source files for the X Window System, in the
+ _\b/_\bu_\bs_\br_\b/_\bs_\br_\bc_\b/_\bn_\be_\bw_\b/_\bX_\b/_\bl_\bi_\bb_\bh_\bp_\b._\bf_\bb directory.
+
+ struct gboxfb *gbox;
+ u_char *Addr, frame_buffer;
+ struct grfinfo gi;
+ int disp_fd;
+
+ disp_fd = open("/dev/grf0",1);
+
+ if (ioctl (disp_fd, GRFIOCGINFO, &gi) < 0) return -1;
+
+ (void) ioctl (disp_fd, GRFIOCON, 0);
+
+ Addr = (u_char *) 0;
+ if (ioctl (disp_fd, GRFIOCMAP, &Addr) < 0) {
+ (void) ioctl (disp_fd, GRFIOCOFF, 0);
+ return -1;
+ }
+ gbox = (gboxfb *) Addr; /* Control Registers */
+ frame_buffer = (u_char *) Addr + gi.gd_regsize; /* Frame buffer memory */
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/grf? BSD special file
+ /dev/crt98700 HP-UX _\bs_\bt_\ba_\br_\bb_\ba_\bs_\be special file
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None under BSD. HP-UX The CE.utilities/Crtadjust programs must be used.
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ [ENODEV] no such device.
+
+ [EBUSY] Another process has the device open.
+
+ [EINVAL] Invalid ioctl specification.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ioctl(2), grf(4)
+
+4.4BSD June 9, 1993 2
--- /dev/null
+GRF(4) BSD Programmer's Manual (HP300 Architecture) GRF(4)
+
+N\bNA\bAM\bME\bE
+ g\bgr\brf\bf - HP graphics frame buffer device interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a generic description of the frame buffer device interface. The
+ devices to which this applies are the 98544, 98545 and 98547 Topcat dis-
+ play cards (also known as HP300H devices), the 98548, 98549 and 98550
+ Catseye display cards, the 98700 Gatorbox graphics box, the 98720 Renais-
+ sance graphics box, and the 98730 DaVinci graphics box.
+
+ Use of the devices can be effectively approached from two directions.
+ The first is through HP-UX _\bS_\bt_\ba_\br_\bb_\ba_\bs_\be routines, the second is by direct
+ control in the BSD environment. In order to use the Starbase libraries,
+ code must be compiled in an HP-UX environment, either by doing so on an
+ HP-UX machine and transferring the binaries to the BSD machine, or by
+ compilation with the use of the hpux(1) command. Applications using
+ Starbase libraries have been run successfully on BSD machines using both
+ of these compilation techniques.
+
+ Direct compilation, such as that used for the X Window System servers,
+ has also been successful. Examples of some frame buffer operations can
+ be found in the device dependent X Window system sources, for example the
+ _\b/_\bu_\bs_\br_\b/_\bs_\br_\bc_\b/_\bn_\be_\bw_\b/_\bX_\b/_\bl_\bi_\bb_\bh_\bp_\b._\bf_\bb directory. These files contain examples of de-
+ vice dependent color map initialization, frame buffer operations, bit
+ moving routines etc.
+
+ The basic programming of the g\bgr\brf\bf? devices involves opening the device
+ file, mapping the control registers and frame buffer addresses into user
+ space, and then manipulating the device as the application requires. The
+ address mapping is controlled by an ioctl(2) call to map the device into
+ user space, and an unmap call when finished. The ioctls supported by BSD
+ are:
+
+ GRFIOCGINFO
+ Get Graphics Info
+
+ Get info about device, setting the entries in the _\bg_\br_\bf_\bi_\bn_\bf_\bo struc-
+ ture, as defined in <hpdev/grfioctl.h>:
+
+ struct grfinfo {
+ int gd_id; /* HPUX identifier */
+ caddr_t gd_regaddr; /* control registers physaddr */
+ int gd_regsize; /* control registers size */
+ caddr_t gd_fbaddr; /* frame buffer physaddr */
+ int gd_fbsize; /* frame buffer size */
+ short gd_colors; /* number of colors */
+ short gd_planes; /* number of planes */
+ /* new stuff */
+ int gd_fbwidth; /* frame buffer width */
+ int gd_fbheight; /* frame buffer height */
+ int gd_dwidth; /* displayed part width */
+ int gd_dheight; /* displayed part height */
+ int gd_pad[6]; /* for future expansion */
+ };
+
+ GRFIOCON
+ Graphics On
+
+ Turn graphics on by enabling CRT output. The screen will come
+ on, displaying whatever is in the frame buffer, using whatever
+ colormap is in place.
+
+ GRFIOCOFF
+ Graphics Off
+
+ Turn graphics off by disabling output to the CRT. The frame
+ buffer contents are not affected.
+
+ GRFIOCMAP
+ Map Device to user space
+
+ Map in control registers and framebuffer space. Once the device
+ file is mapped, the frame buffer structure is accessible.
+
+ GRFIOCUNMAP
+ Unmap Device
+
+ Unmap control registers and framebuffer space.
+
+ For further information about the use of ioctl see the man page.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bE
+ This short code fragment is an example of opening some graphics device
+ and mapping in the control and frame buffer space:
+
+ #define GRF_DEV <some_graphics_device> /* /dev/grfN */
+ {
+ struct fbstruct *regs; /* fbstruct = gboxfb, rboxfb, etc. */
+ u_char *Addr, frame_buffer;
+ struct grfinfo gi;
+ int disp_fd;
+
+ disp_fd = open(GRF_DEV,1);
+ if (ioctl (disp_fd, GRFIOCGINFO, &gi) < 0) return -1;
+ (void) ioctl (disp_fd, GRFIOCON, 0);
+
+ Addr = (u_char *) 0;
+ if (ioctl (disp_fd, GRFIOCMAP, &Addr) < 0) {
+ (void) ioctl (disp_fd, GRFIOCOFF, 0);
+ return -1;
+ }
+ regs = (fbstruct *) Addr; /* Control Registers */
+ frame_buffer = (u_char *) Addr + gi.gd_regsize; /* Frame buffer mem */
+ }
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/grf? BSD interface special files
+ /dev/*crt* HP-UX _\bs_\bt_\ba_\br_\bb_\ba_\bs_\be interface special files
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None under BSD. HP-UX The CE.utilities/Crtadjust programs must be used
+ for each specific device.
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ [ENODEV] no such device.
+
+ [EBUSY] Another process has the device open.
+
+ [EINVAL] Invalid ioctl specification.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ioctl(2), dv(4), gb(4), rb(4), tc(4), hil(4)
+
+4.4BSD June 9, 1993 2
--- /dev/null
+HIL(4) BSD Programmer's Manual (HP300 Architecture) HIL(4)
+
+N\bNA\bAM\bME\bE
+ h\bhi\bil\bl - Human Interface Link device driver
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The Human Interface Link (HIL) is the interface used by the Series 300
+ computers to connect devices such as keyboards, mice, control knobs, and
+ ID modules to the machine.
+
+ Special files _\b/_\bd_\be_\bv_\b/_\bh_\bi_\bl_\b[_\b1_\b-_\b7_\b] refer to physical HIL devices 1 through 7.
+ _\b/_\bd_\be_\bv_\b/_\bh_\bi_\bl_\b0 refers to the ``loop'' pseudo-device and is used for the queue
+ allocation commands described below. In the current implementation,
+ there can only be one keyboard and it must be the first device (hil1).
+
+ The device file that corresponds to a particular HIL device is determined
+ by the order of the devices on the loop. For instance, if the ID module
+ is the second physical device on the loop, then _\b/_\bd_\be_\bv_\b/_\bh_\bi_\bl_\b2 is the special
+ file that should be used for communication with the module.
+
+ Communication with an HIL device is begun with an _\bo_\bp_\be_\bn system call. A
+ process may open a device already opened by another process unless the
+ process is operating in HP-UX compatibility mode in which case it re-
+ quires exclusive use of the device, or another process has the device
+ open and is using HP-UX style device access (see HILIOCHPUX below).
+
+ Input data from a device are obtained in one of two ways. Processes may
+ use an HP-UX style interface in which the read(2) system call is used to
+ get fixed-size input packets, or they can use a _\bs_\bh_\ba_\br_\be_\bd_\b-_\bq_\bu_\be_\bu_\be interface.
+ The shared-queue interface avoids the system call overhead associated
+ with the HP-UX read interface by sharing a region of memory between the
+ system and a user process. This region consists of a circular list of
+ 255 event packets, and a header containing the size of the queue, and its
+ head and tail indices. The system deposits event data at the tail of the
+ queue, a process extracts it from the head. Extracting an event is done
+ by copying it from the queue and then updating the head appropriately
+ (i.e. head = (head + 1) % qsize). It is up to the process to ensure that
+ packets are removed from the queue quickly enough to prevent the queue
+ from filling. The system, when it determines that the queue is full,
+ will ignore future packets from the device. Devices are _\bm_\ba_\bp_\bp_\be_\bd to queues
+ via an ioctl(2.) More than one device can be mapped to a single queue
+ and one device can be mapped to several queues. Queues are implicitly
+ unmapped by a fork(2) and thus, cannot be shared between processes.
+
+ Choosing the type of interface is done on a per device basis using an
+ ioctl, but each device can only have one interface at any given time.
+
+ _\bS_\be_\bl_\be_\bc_\bt may be used with either interface to detect when input data are
+ present. With the read interface, selecting indicates when there is in-
+ put for a given device. With the shared-queue interface, selecting on
+ the loop pseudo-device (hil0) indicates when data are present from any
+ device on any queue while selecting on an individual device indicates
+ when data are present for that device on any queue.
+
+ _\bC_\bl_\bo_\bs_\be shuts down the file descriptor associated with the HIL device. The
+ last close (system-wide) of any device removes that device from all
+ queues it was mapped to while the last close of the loop pseudo-device
+ unmaps all devices and deallocates all queues.
+
+ Ioctl(2) is used to control the HIL device. The ioctl commands (see
+ <_\bh_\bp_\bd_\be_\bv_\b/_\bh_\bi_\bl_\bi_\bo_\bc_\bt_\bl_\b._\bh>) listed below are separated into two groups. The
+ first are those which provide functions identical to HP-UX. Refer to
+ hil(7) in the HP-UX documentation for more complete descriptions of these
+ ioctls. The second set of ioctls are specific to this implementation and
+
+ are primarily related to the shared-queue interface.
+
+ HILIOCID Identify and Describe
+
+ The device will return up to 11 bytes of information describ-
+ ing the type and characteristics of the device. At the very
+ least, 2 bytes of information, the device ID, and the Describe
+ Record Header will be returned. Identical to the HP-UX HILID
+ ioctl.
+
+ HILIOCSC Report Security Code
+
+ Request the security code record from a device. The security
+ code can vary from 1 byte to 15, and is only supported by some
+ HIL devices. Identical to the HP-UX HILSC ioctl.
+
+ HILIOCRN Report Name
+
+ An ascii string of up to 15 bytes in length that describes the
+ device is returned. Identical to the HP-UX HILRN ioctl.
+
+ HILIOCRS Report Status
+
+ An ascii string of up to 15 bytes in length that describes the
+ current status of the device is returned. Identical to the
+ HP-UX HILRS ioctl.
+
+ HILIOCED Extended Describe
+
+ Additional information of up to 15 bytes is returned describ-
+ ing the device. This ioctl is similar to HILIOCID, which must
+ be used first to determine if the device supports extended de-
+ scribe. Identical to the HP-UX HILED ioctl.
+
+ HILIOCAROFF
+ Disable Auto Repeat
+
+ Turn off auto repeat on the keyboard while it is cooked mode.
+ Identical to the HP-UX HILDKR ioctl.
+
+ HILIOCAR1 Enable Auto Repeat
+
+ Turn on auto repeat on the keyboard while it is in raw mode.
+ The repeat rate is set to 1/30th of a second. Identical to
+ the HP-UX HILER1 ioctl.
+
+ HILIOCAR2 Enable Auto Repeat
+
+ Turn on auto repeat on the keyboard while it is in raw mode.
+ The repeat rate is set to 1/60th of a second. Identical to
+ the HP-UX HILER2 ioctl.
+
+ The following ioctls are specific to this implementation:
+
+ HILIOCBEEP
+ Beep
+
+ Generate a keyboard beep as defined by _\ba_\br_\bg. _\bA_\br_\bg is a pointer
+ to two bytes of information, the first is the duration of the
+ beep (microseconds), the second is the frequency of the beep.
+
+ HILIOCALLOCQ
+ Allocate Queue
+
+ Allocate and map into user space, an HILQ structure as defined
+ in <_\bh_\bp_\bd_\be_\bv_\b/_\bh_\bi_\bl_\bi_\bo_\bc_\bt_\bl_\b._\bh>. _\bA_\br_\bg is a pointer to a _\bh_\bi_\bl_\bq_\bi_\bn_\bf_\bo struc-
+ ture (also described in <_\bh_\bp_\bd_\be_\bv_\b/_\bh_\bi_\bl_\bi_\bo_\bc_\bt_\bl_\b._\bh>) consisting of a
+ _\bq_\bi_\bd and an _\ba_\bd_\bd_\br. If _\ba_\bd_\bd_\br is non-zero it specifies where in the
+ address space to map the queue. If zero, the system will se-
+ lect a convenient location and fill in _\ba_\bd_\bd_\br. _\bQ_\bi_\bd is filled in
+ by the system and is a small integer used to uniquely identify
+ this queue. This ioctl can only be issued to the loop pseudo-
+ device.
+
+ HILIOCFREEQ
+ Free Queue
+
+ Release a previously allocated HIL event queue, unmapping it
+ from the user's address space. _\bA_\br_\bg should point to a _\bh_\bi_\bl_\bq_\bi_\bn_\bf_\bo
+ structure which contains the _\bq_\bi_\bd of the queue to be released.
+ All devices that are currently mapped to the queue are un-
+ mapped. This ioctl can only be issued to the loop pseudo-
+ device.
+
+ HILIOCMAPQ
+ Map Device to Queue
+
+ Maps this device to a previously allocated HIL event queue.
+ _\bA_\br_\bg is a pointer to an integer containing the _\bq_\bi_\bd of the
+ queue. Once a device is mapped to a queue, all event informa-
+ tion generated by the device will be placed into the event
+ queue at the tail.
+
+ HILIOCUNMAPQ
+ Unmap Device from Queue
+
+ Unmap this device from a previously allocated HIL event queue.
+ _\bA_\br_\bg is a pointer to an integer containing the _\bq_\bi_\bd for the
+ queue. Future events from the device are no longer placed on
+ the event queue.
+
+ HILIOCHPUX
+ Use HP-UX Read Interface
+
+ Use HP-UX semantics for gathering data from this device. In-
+ stead of placing input events for the device on a queue, they
+ are placed, in HP-UX format, into a buffer from which they can
+ be obtained via read(2). This interface is provided for back-
+ wards compatibility. Refer to the HP-UX documentation for a
+ description of the event packet.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/hil0 HIL loop pseudo device.
+ /dev/hil1 HIL keyboard device.
+ /dev/hil[2-7] Individual HIL loop devices.
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ [ENODEV] no such HIL loop device.
+
+ [ENXIO] HIL loop is inoperative.
+
+ [EBUSY] Another HP-UX process has the device open, or another BSD pro-
+ cess has the device open, and is using it in HP-UX mode.
+
+ [EINVAL] Invalid ioctl specification.
+
+ [EMFILE] No more shared queues available.
+
+4.4BSD June 9, 1993 3
--- /dev/null
+INTRO(4) BSD Programmer's Manual (HP300 Architecture) INTRO(4)
+
+N\bNA\bAM\bME\bE
+ i\bin\bnt\btr\bro\bo - introduction to special files and hardware support
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section describes the special files, related driver functions, and
+ networking support available in the system. In this part of the manual,
+ the SYNOPSIS section of each configurable device gives a sample specifi-
+ cation for use in constructing a system description for the config(8)
+ program. The DIAGNOSTICS section lists messages which may appear on the
+ console and/or in the system error log _\b/_\bu_\bs_\br_\b/_\ba_\bd_\bm_\b/_\bm_\be_\bs_\bs_\ba_\bg_\be_\bs due to errors in
+ device operation; see syslogd(8) for more information.
+
+ This section contains both devices which may be configured into the sys-
+ tem and network related information. The networking support is intro-
+ duced in netintro(4).
+
+H\bHP\bP D\bDE\bEV\bVI\bIC\bCE\bE S\bSU\bUP\bPP\bPO\bOR\bRT\bT
+ This section describes the hardware supported on the HP 9000/300 series.
+ Software support for these devices comes in two forms. A hardware device
+ may be supported with a character or block _\bd_\be_\bv_\bi_\bc_\be _\bd_\br_\bi_\bv_\be_\br, or it may be
+ used within the networking subsystem and have a _\bn_\be_\bt_\bw_\bo_\br_\bk _\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\bd_\br_\bi_\bv_\be_\br.
+ Block and character devices are accessed through files in the file system
+ of a special type; see mknod(8). Network interfaces are indirectly ac-
+ cessed through the interprocess communication facilities provided by the
+ system; see socket(2).
+
+ A hardware device is identified to the system at configuration time and
+ the appropriate device or network interface driver is then compiled into
+ the system. When the resultant system is booted, the autoconfiguration
+ facilities in the system probe for the device and, if found, enable the
+ software support for it. If a device does not respond at autoconfigura-
+ tion time it is not accessible at any time afterwards. To enable a de-
+ vice which did not autoconfigure, the system will have to be rebooted.
+
+ The autoconfiguration system is described in autoconf(4). A list of the
+ supported devices is given below.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), intro(4), autoconf(4), config(8).
+
+ _\bB_\bu_\bi_\bl_\bd_\bi_\bn_\bg _\b4_\b._\b3 _\bB_\bS_\bD _\bU_\bN_\bI_\bX _\bS_\by_\bs_\bt_\be_\bm_\bs _\bw_\bi_\bt_\bh _\bC_\bo_\bn_\bf_\bi_\bg _\b(_\bS_\bM_\bM_\b:_\b2_\b).
+
+L\bLI\bIS\bST\bT O\bOF\bF D\bDE\bEV\bVI\bIC\bCE\bES\bS
+ The devices listed below are supported in this incarnation of the system.
+ Pseudo-devices are not listed. Devices are indicated by their functional
+ interface. Occasionally, new devices of a similar type may be added
+ simply by creating appropriate table entries in the driver; for example,
+ new CS/80 drives.
+
+ ct 7946/9144 CS/80 cartridge tape
+ dca 98644 built-in serial interface
+ dcl HP 98628A communications link
+ dcm HP 98642A communications multiplexer
+ dma 98620B DMA controller
+ dv HP98730 ``DaVinci'' device interface
+ gb HP98700 ``Gatorbox'' device interface
+ grf/ite Topcat/Gatorbox/Renaissance frame buffer
+ hil HIL interface
+ hpib Built-in and 98625 HP-IB interface
+ ite HP Internal Terminal Emulator
+ le 98643 Lance-based ethernet interface
+ mem main memory
+ ppi HP-IB printer/plotter interface
+ rb HP98720 ``Renaissance'' device interface
+ rd CS/80 disk interface
+ rmp HP Remote Maintenance Protocol family
+ st CCS SCSI tape drive
+ tc HP98544-98550 ``Topcat'' and ``Catseye'' device interface
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The HP300 i\bin\bnt\btr\bro\bo appeared in 4.3BSD-Reno.
+
+4.4BSD June 5, 1993 2
--- /dev/null
+ITE(4) BSD Programmer's Manual (HP300 Architecture) ITE(4)
+
+N\bNA\bAM\bME\bE
+ i\bit\bte\be - HP Internal Terminal Emulator
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ TTY special files of the form ``ttye?'' are interfaces to the HP ITE for
+ bit-mapped displays as implemented under BSD. An ITE is the main system
+ console on most HP300 workstations and is the mechanism through which a
+ user communicates with the machine. If more than one display exists on a
+ system, any or all can be used as ITEs with the limitation that only the
+ first one opened will have a keyboard (since only one keyboard is sup-
+ ported).
+
+ ITE devices use the HP-UX `300h' termcap(5) or terminfo(5) entries. How-
+ ever, as currently implemented, the ITE does not support the full range
+ of HP-UX capabilities for this device. Missing are multiple colors, un-
+ derlining, blinking, softkeys, programmable tabs, scrolling memory and
+ keyboard arrow keys. The keyboard does not have any of the international
+ character support of HP's NLS system. It does use the left and right
+ _\be_\bx_\bt_\be_\bn_\bd _\bc_\bh_\ba_\br keys as meta keys, in that it will set the eighth bit of the
+ character code.
+
+ Upon booting, the kernel will first look for an ITE device to use as the
+ system console (_\b/_\bd_\be_\bv_\b/_\bc_\bo_\bn_\bs_\bo_\bl_\be). If a display exists at any hardware ad-
+ dress, it will be the console. The kernel looks for, in order: a 98544,
+ 98545, or 98547 Topcat display, a 98700 Gatorbox at a supported address
+ (see gb(4)), or a 98720 Renaissance at a supported address (see rb(4)).
+ Currently there is no ITE support for the 98548, 98549, 98550 and 98556
+ boards.
+
+ When activated as an ITE (special file opened), all displays go through a
+ standard initialization sequence. The frame buffer is cleared, the ROM
+ fonts are unpacked and loaded into off-screen storage and a cursor ap-
+ pears. The ITE initialization routine also sets the colormap entry used
+ to white. Variable colors are not used, mainly for reasons of simplici-
+ ty. The font pixels are all set to 0xff and the colormap entry corre-
+ sponding to all planes is set to R=255, G=255 and B=255. The actual num-
+ ber of planes used to display the characters depends on the hardware in-
+ stalled. Finally, if the keyboard HIL device is not already assigned to
+ another ITE device, it is placed in ``cooked'' mode and assigned to this
+ ITE.
+
+ On most systems, a display is used both as an ITE (_\b/_\bd_\be_\bv_\b/_\bt_\bt_\by_\be_\b? aka
+ _\b/_\bd_\be_\bv_\b/_\bc_\bo_\bn_\bs_\bo_\bl_\be) and as a graphics device (/dev/grf?). In this environment,
+ there is some interaction between the two uses that should be noted. For
+ example, opening _\b/_\bd_\be_\bv_\b/_\bg_\br_\bf_\b0 will deactivate the ITE, that is, write over
+ whatever may be on the ITE display. When the graphics application is
+ finished and _\b/_\bd_\be_\bv_\b/_\bg_\br_\bf_\b0 closed, the ITE will be reinitialized with the
+ frame buffer cleared and the ITE colormap installed.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None under BSD.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ grf(4), hil(4), gb(4), rb(4), tc(4)
+
+4.4BSD June 9, 1993 1
--- /dev/null
+MEM(4) BSD Programmer's Manual (HP300 Architecture) MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm - main memory
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the computer.
+ Byte offsets in this file are interpreted as physical memory addresses.
+ Reading and writing this file is equivalent to reading and writing memory
+ itself. An error will be returned if an attempt is made to reference an
+ offset outside of /\b/d\bde\bev\bv/\b/m\bme\bem\bm.
+
+ Kernel virtual memory is accessed via the file /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the same man-
+ ner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently mapped
+ to memory are allowed.
+
+H\bHP\bP3\b30\b00\b0
+ On the HP300, the last byte of physical memory is always 0xFFFFFFFF.
+ Therefore, on an HP300 with 8Mb of memory, physical memory would start at
+ 0xFF800000. On the HP300, kernel virtual memory runs from 0 to about
+ 0x2400000.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The files m\bme\bem\bm and k\bkm\bme\bem\bm appeared in Version 6 AT&T UNIX.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+LE(4) BSD Programmer's Manual (HP300 Architecture) LE(4)
+
+N\bNA\bAM\bME\bE
+ l\ble\be - HP AMD 7990 LANCE Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be l\ble\be0\b0 a\bat\bt s\bsc\bco\bod\bde\be?\b?
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The l\ble\be interface provides access to a 10 Mb/s Ethernet network via the
+ AMD 7990 LANCE Ethernet chip set.
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl. The le interface employs the address resolution pro-
+ tocol described in arp(4) to dynamically map between Internet and Ether-
+ net addresses on the local network.
+
+ The use of ``trailer'' encapsulation to minimize copying data on input
+ and output is supported by the interface but offers no advantage due to
+ the large HP page size. The use of trailers is negotiated with ARP. This
+ negotiation may be disabled, on a per-interface basis, by setting the
+ IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ l\ble\be%\b%d\bd:\b: h\bha\bar\brd\bdw\bwa\bar\bre\be a\bad\bdd\bdr\bre\bes\bss\bs %\b%s\bs.\b. This is a normal autoconfiguration message
+ noting the 6 byte physical ethernet address of the adapter.
+
+ d\bde\be%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+ The following message indicate a possible hardware error performing the
+ indicated operation during autoconfiguration or initialization.
+
+ l\ble\be%\b%d\bd:\b: i\bin\bni\bit\bt t\bti\bim\bme\beo\bou\but\bt,\b, s\bst\bta\bat\bt =\b= 0\b0x\bx%\b%x\bx.\b. The hardware did not respond to an ini-
+ tialize command during reset. The reset procedure continues anyway.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), inet(4), arp(4)
+
+4.4BSD June 9, 1993 1
--- /dev/null
+MEM(4) BSD Programmer's Manual (HP300 Architecture) MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm - main memory
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the computer.
+ Byte offsets in this file are interpreted as physical memory addresses.
+ Reading and writing this file is equivalent to reading and writing memory
+ itself. An error will be returned if an attempt is made to reference an
+ offset outside of /\b/d\bde\bev\bv/\b/m\bme\bem\bm.
+
+ Kernel virtual memory is accessed via the file /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the same man-
+ ner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently mapped
+ to memory are allowed.
+
+H\bHP\bP3\b30\b00\b0
+ On the HP300, the last byte of physical memory is always 0xFFFFFFFF.
+ Therefore, on an HP300 with 8Mb of memory, physical memory would start at
+ 0xFF800000. On the HP300, kernel virtual memory runs from 0 to about
+ 0x2400000.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The files m\bme\bem\bm and k\bkm\bme\bem\bm appeared in Version 6 AT&T UNIX.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+PPI(4) BSD Programmer's Manual (HP300 Architecture) PPI(4)
+
+N\bNA\bAM\bME\bE
+ p\bpp\bpi\bi - HP-IB printer/plotter interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be p\bpp\bpi\bi0\b0 a\bat\bt h\bhp\bpi\bib\bb0\b0 s\bsl\bla\bav\bve\be 5\b5
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The p\bpp\bpi\bi interface provides a means of communication with HP-IB printers
+ and plotters.
+
+ Special files _\bp_\bp_\bi_\b0 through _\bp_\bp_\bi_\b7 are used to access the devices, with the
+ digit at the end of the filename referring to the bus address of the de-
+ vice. Current versions of the autoconf code can not probe for these de-
+ vices, so the device entry in the configuration file must be fully quali-
+ fied.
+
+ The device files appear as follows:
+
+ "crw-rw-rw- 1 root 11, 0 Dec 21 11:22 /dev/ppi"
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ hpib(4).
+
+B\bBU\bUG\bGS\bS
+ This driver is very primitive, it handshakes data out byte by byte. It
+ should use DMA if possible.
+
+4.4BSD June 9, 1993 1
--- /dev/null
+RB(4) BSD Programmer's Manual (HP300 Architecture) RB(4)
+
+N\bNA\bAM\bME\bE
+ r\brb\bb - HP98720 ``Renaissance'' device interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This driver is for the HP98720 and 98721 graphics device, also known as
+ the Renaissance. This driver has not been tested with all possible com-
+ binations of frame buffer boards and scan boards installed in the device.
+ The driver merely checks for the existence of the device and does minimal
+ set up.
+
+ The Renaissance can be configured at either the ``internal'' address
+ (frame buffer address 0x200000, control register space address 0x560000)
+ or at an external select code less than 32. At the internal address it
+ will be the ``preferred'' console device (see cons(4)). The hardware in-
+ stallation manual describes the procedure for setting these values.
+
+ A user process communicates to the device initially by means of ioctl(2)
+ calls. For the HP-UX ioctl(2) calls supported, refer to HP-UX manuals.
+ The BSD calls supported are:
+
+ GRFIOCGINFO
+ Get Graphics Info
+
+ Get info about device, setting the entries in the _\bg_\br_\bf_\bi_\bn_\bf_\bo struc-
+ ture, as defined in <_\bh_\bp_\bd_\be_\bv_\b/_\bg_\br_\bf_\bi_\bo_\bc_\bt_\bl_\b._\bh>. For the standard 98720,
+ the number of planes should be 4. The number of colors would
+ therefore be 15, excluding black. If one 98722A frame buffer
+ board is installed, there will still be 4 planes, with the 4
+ planes on the colormap board becoming overlay planes. With each
+ additional 98722 frame buffer board 4 planes will be added up to
+ a maximum of 32 planes total.
+
+ GRFIOCON
+ Graphics On
+
+ Turn graphics on by enabling CRT output. The screen will come
+ on, displaying whatever is in the frame buffer, using whatever
+ colormap is in place.
+
+ GRFIOCOFF
+ Graphics Off
+
+ Turn graphics off by disabling output to the CRT. The frame
+ buffer contents are not affected.
+
+ GRFIOCMAP
+ Map Device to user space
+
+ Map in control registers and framebuffer space. Once the device
+ file is mapped, the frame buffer structure is accessible. The
+ structure describing the 98720 is defined in _\bh_\bp_\bd_\be_\bv_\b/_\bg_\br_\bf_\b__\br_\bb_\br_\be_\bg_\b._\bh.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bE
+ This is a short segment of code showing how the device is opened and
+ mapped into user process address space assuming that it is grf0:
+
+ struct rboxfb *rbox;
+ u_char *Addr, frame_buffer;
+ struct grfinfo gi;
+ int disp_fd;
+
+ disp_fd = open("/dev/grf0",1);
+
+ if (ioctl (disp_fd, GRFIOCGINFO, &gi) < 0) return -1;
+
+ (void) ioctl (disp_fd, GRFIOCON, 0);
+
+ Addr = (u_char *) 0;
+ if (ioctl (disp_fd, GRFIOCMAP, &Addr) < 0) {
+ (void) ioctl (disp_fd, GRFIOCOFF, 0);
+ return -1;
+ }
+ rbox = (rboxfb *) Addr; /* Control Registers */
+ frame_buffer = (u_char *) Addr + gi.gd_regsize; /* Frame buffer memory */
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/grf? BSD special file
+ /dev/crt98720
+ /dev/ocrt98720 HP-UX _\bs_\bt_\ba_\br_\bb_\ba_\bs_\be special files
+ /dev/MAKEDEV.hpux script for creating HP-UX special files
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None under BSD. The HP-UX CE.utilities must be used.
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ [ENODEV] no such device.
+
+ [EBUSY] Another process has the device open.
+
+ [EINVAL] Invalid ioctl specification.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ioctl(2), grf(4).
+
+ For extensive code examples using the Renaissance, see the X device de-
+ pendent source.
+
+B\bBU\bUG\bGS\bS
+ Not tested for all configurations of scan board and frame buffer memory
+ boards.
+
+4.4BSD June 9, 1993 2
--- /dev/null
+RD(4) BSD Programmer's Manual (HP300 Architecture) RD(4)
+
+N\bNA\bAM\bME\bE
+ r\brd\bd - CS/80 disk interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ m\bma\bas\bst\bte\ber\br h\bhp\bpi\bib\bb?\b? a\bat\bt s\bsc\bco\bod\bde\be?\b?
+ d\bdi\bis\bsk\bk r\brd\bd?\b? a\bat\bt h\bhp\bpi\bib\bb?\b? s\bsl\bla\bav\bve\be?\b?
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a generic CS/80 disk driver. Only a small number of possible
+ CS/80 drives are supported, but others can easily be added by adding ta-
+ bles to the driver. It is a typical block-device driver; see physio(4).
+
+ The script MAKEDEV(8) should be used to create the r\brd\bd special files; con-
+ sult mknod(8) if a special file needs to be made manually.
+
+D\bDI\bIS\bSK\bK S\bSU\bUP\bPP\bPO\bOR\bRT\bT
+ The driver interrogates the controller to determine the type of drive at-
+ tached. The driver recognizes the following drives: 7912, 7914, 7933,
+ 7936, 7937, 7945, 757A/B, 7958A/B, 7959B, 7962, 7963, 9122, 9134, 7912,
+ 7936, and 9122, not all of which have been tested. Special file names
+ begin with `rd' and `rrd' for the block and character files respectively.
+ The second component of the name, a drive unit number in the range of ze-
+ ro to seven, is represented by a `?' in the disk layouts below. The last
+ component of the name is the file system partition and is designated by a
+ letter from `a' to `h' which also corresponds to a minor device number
+ sets: zero to seven, eight to 15, 16 to 23 and so forth for drive zero,
+ drive two and drive three respectively (see physio 4 ) . The location
+ and size (in sectors) of the partitions for these drives:
+
+ 7945/7946 partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 112 15904 1-142
+ rd?b 16016 20160 143-322
+ rd?c 0 108416 0-967
+ rd?d 16016 40320 143-502
+ rd?e undefined
+ rd?f undefined
+ rd?g 36176 72240 323-967
+ rd?h 56336 52080 503-967
+
+ 9134D partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 96 15936 1-166
+ rd?b 16032 13056 167-302
+ rd?c 0 29088 0-302
+ rd?d undefined
+ rd?e undefined
+ rd?f undefined
+ rd?g undefined
+ rd?h undefined
+
+ 9122S partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a undefined
+ rd?b undefined
+ rd?c 0 1232 0-76
+ rd?d undefined
+ rd?e undefined
+ rd?f undefined
+ rd?g undefined
+ rd?h undefined
+
+ 7912P partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 0 15904 0-70
+ rd?b 16128 22400 72-171
+ rd?c 0 128128 0-571
+ rd?d 16128 42560 72-261
+ rd?e undefined
+ rd?f undefined
+ rd?g 38528 89600 172-571
+ rd?h 58688 69440 262-571
+
+ 7914CT/P partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 224 15904 1-71
+ rd?b 16128 40320 72-251
+ rd?c 0 258048 0-1151
+ rd?d 16128 64960 72-361
+ rd?e 81088 98560 362-801
+ rd?f 179648 78400 802-1151
+ rd?g 56448 201600 252-1151
+ rd?h 81088 176960 362-1151
+
+ 7958A partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 252 16128 1-64
+ rd?b 16380 32256 65-192
+ rd?c 0 255276 0-1012
+ rd?d 16380 48384 65-256
+ rd?e 64764 100800 257-656
+ rd?f 165564 89712 657-1012
+ rd?g 48636 206640 193-1012
+ rd?h 64764 190512 257-1012
+
+ 7957A partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 154 16016 1-104
+ rd?b 16170 24640 105-264
+ rd?c 0 159544 0-1035
+ rd?d 16170 42350 105-379
+ rd?e 58520 54824 380-735
+ rd?f 113344 46200 736-1035
+ rd?g 40810 118734 265-1035
+ rd?h 58520 101024 380-1035
+
+ 7933H partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 598 16146 1-27
+ rd?b 16744 66976 28-139
+ rd?c 0 789958 0-1320
+ rd?d 83720 16146 140-166
+ rd?e 99866 165646 167-443
+ rd?f 265512 165646 444-720
+ rd?g 83720 706238 140-1320
+ rd?h 431158 358800 721-1320
+
+ 9134L partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 80 15920 1-199
+ rd?b 16000 20000 200-449
+ rd?c 0 77840 0-972
+ rd?d 16000 32000 200-599
+ rd?e undefined
+ rd?f undefined
+ rd?g 36000 41840 450-972
+ rd?h 48000 29840 600-972
+
+ 7936H partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 861 16359 1-19
+ rd?b 17220 67158 20-97
+ rd?c 0 600978 0-697
+ rd?d 84378 16359 98-116
+ rd?e 100737 120540 117-256
+ rd?f 220416 120540 256-395
+ rd?g 84378 516600 98-697
+ rd?h 341817 259161 397-697
+
+ 7937H partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 1599 15990 1-10
+ rd?b 17589 67158 11-52
+ rd?c 0 1116102 0-697
+ rd?d 84747 15990 53-62
+ rd?e 100737 246246 63-216
+ rd?f 346983 246246 217-370
+ rd?g 84747 1031355 53-697
+ rd?h 593229 522873 371-697
+
+ 7957B/7961B partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 126 16002 1-127
+ rd?b 16128 32760 128-387
+ rd?c 0 159894 0-1268
+ rd?d 16128 49140 128-517
+ rd?e 65268 50400 518-917
+ rd?f 115668 44226 918-1268
+ rd?g 48888 111006 388-1268
+ rd?h 65268 94626 518-1268
+
+ 7958B/7962B partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 378 16254 1-43
+ rd?b 16632 32886 44-130
+ rd?c 0 297108 0-785
+ rd?d 16632 49140 44-173
+ rd?e 65772 121716 174-495
+ rd?f 187488 109620 496-785
+ rd?g 49518 247590 131-785
+ rd?h 65772 231336 174-785
+
+ 7959B/7963B partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ rd?a 378 16254 1-43
+ rd?b 16632 49140 44-173
+ rd?c 0 594216 0-1571
+ rd?d 16632 65772 44-217
+ rd?e 82404 303912 218-1021
+ rd?f 386316 207900 1022-1571
+ rd?g 65772 528444 174-1571
+ rd?h 82404 511812 218-1571
+
+ The eight partitions as given support four basic, non-overlapping lay-
+ outs, though not all partitions exist on all drive types.
+
+ In the first layout there are three partitions and a ``bootblock'' area.
+ The bootblock area is at the beginning of the disk and holds the stan-
+ dalone disk boot program. The _\br_\bd_\b?_\ba partition is for the root file sys-
+ tem, _\br_\bd_\b?_\bb is a paging/swapping area, and _\br_\bd_\b?_\bg is for everything else.
+
+ The second layout is the same idea, but has a larger paging/swapping par-
+ tition (_\br_\bd_\b?_\bd) and a smaller ``everything else'' partition (_\br_\bd_\b?_\bh). This
+ layout is better for environments which run many large processes.
+
+
+ The third layout is a variation of the second, but breaks the _\br_\bd_\b?_\bh parti-
+ tion into two partitions, _\br_\bd_\b?_\be and _\br_\bd_\b?_\bf.
+
+ The final layout is intended for a large, single file system second disk.
+ It is also used when writing out the boot program since it is the only
+ partition mapping the bootblock area.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/rd[0-7][a-h] block files
+ /dev/rrd[0-7][a-h] raw files
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ r\brd\bd%\b%d\bd e\ber\brr\br:\b: v\bv%\b%d\bd u\bu%\b%d\bd,\b, R\bR0\b0x\bx%\b%x\bx F\bF0\b0x\bx%\b%x\bx A\bA0\b0x\bx%\b%x\bx I\bI0\b0x\bx%\b%x\bx,\b, b\bbl\blo\boc\bck\bk %\b%d\bd An unrecoverable
+ data error occurred during transfer of the specified block on the speci-
+ fied disk.
+
+B\bBU\bUG\bGS\bS
+ The current disk partitioning is totally bogus. CS/80 drives have 256
+ byte sectors which are mapped to 512 byte ``sectors'' by the driver.
+ Since some CS/80 drives have an odd number of sectors per cylinder, the
+ disk geometry used is not always accurate.
+
+ The partition tables for the file systems should be read off of each
+ pack, as they are never quite what any single installation would prefer,
+ and this would make packs more portable.
+
+ A program to analyze the logged error information (even in its present
+ reduced form) is needed.
+
+4.4BSD June 9, 1993 4
--- /dev/null
+TC(4) BSD Programmer's Manual (HP300 Architecture) TC(4)
+
+N\bNA\bAM\bME\bE
+ t\btc\bc - HP98544 98550 ``Topcat'' and ``Catseye'' device interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This driver is for the HP98544, 98545 and 98547 ``Topcat'' and HP98548,
+ 98549, and 98550 ``Catseye'' display cards. This driver merely checks
+ for the existence of the device and does minimal set up, as it is expect-
+ ed the applications will initialize the device to their requirements.
+ The Topcat and Catseye are nearly identical in common usage and only the
+ Topcat will be referred to from now on.
+
+ The Topcat display cards are not user configurable. If one is present on
+ a system, it will always have a frame buffer address of 0x200000 and a
+ control register address of 0x560000. These are the HP series 300 ITE
+ (Internal Terminal Emulator) defaults. The device can also be used as a
+ graphics output device.
+
+ The ioctl(2) calls supported by the BSD system for the Topcat are:
+
+ GRFIOCGINFO Get Graphics Info
+
+ Get info about device, setting the entries in the _\bg_\br_\bf_\bi_\bn_\bf_\bo
+ structure, as defined in <_\bh_\bp_\bd_\be_\bv_\b/_\bg_\br_\bf_\bi_\bo_\bc_\bt_\bl_\b._\bh>. For the 98544
+ or 98549, the number of planes should be 1, as they are
+ monochrome devices. The number of planes for a 98545 is 4,
+ translating to 15 colors, excluding black. The 98547 and
+ 98548 cards have 6 planes, yielding 63 colors and black.
+ The 98550 has 8 planes, yielding 255 colors and black. The
+ displayed frame buffer size for the 98549 and 98550 is 2048
+ x 1024, for the others it is 1024 x 768.
+
+ GRFIOCON Graphics On
+
+ Turn graphics on by enabling CRT output. The screen will
+ come on, displaying whatever is in the frame buffer, using
+ whatever colormap is in place.
+
+ GRFIOCOFF Graphics Off
+
+ Turn graphics off by disabling output to the CRT. The frame
+ buffer contents are not affected.
+
+ GRFIOCMAP Map Device to user space
+
+ Map in control registers and framebuffer space. Once the de-
+ vice file is mapped, the frame buffer structure is accessi-
+ ble. The frame buffer structure describing Topcat/Catseye
+ devices is defined in <_\bh_\bp_\bd_\be_\bv_\b/_\bg_\br_\bf_\b__\bt_\bc_\br_\be_\bg_\b._\bh>.
+
+ For further information about the use of ioctl see the man page.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bE
+ A small example of opening, mapping and using the device is given below.
+ For more examples of the details on the behavior of the device, see the
+ device dependent source files for the X Window System, in the
+ _\b/_\bu_\bs_\br_\b/_\bs_\br_\bc_\b/_\bn_\be_\bw_\b/_\bX_\b/_\bl_\bi_\bb_\bh_\bp directory.
+
+ struct tcboxfb *tc;
+ u_char *Addr, frame_buffer;
+ struct grfinfo gi;
+ int disp_fd;
+
+ disp_fd = open("/dev/grf0",1);
+
+ if (ioctl (disp_fd, GRFIOCGINFO, &gi) < 0) return -1;
+
+ (void) ioctl (disp_fd, GRFIOCON, 0);
+
+ Addr = (u_char *) 0;
+ if (ioctl (disp_fd, GRFIOCMAP, &Addr) < 0) {
+ (void) ioctl (disp_fd, GRFIOCOFF, 0);
+ return -1;
+ }
+ tc = (tcboxfb *) Addr; /* Control Registers */
+ frame_buffer = (u_char *) Addr + gi.gd_regsize; /* Frame buffer memory */
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/grf? BSD special file
+ /dev/crt9837
+ /dev/crt98550 HP-UX _\bs_\bt_\ba_\br_\bb_\ba_\bs_\be special files
+ /dev/MAKEDEV.hpux script for creating HP-UX special files
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None under BSD. HP-UX /usr/CE.utilities/Crtadjust programs must be used.
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ [ENODEV] no such device.
+
+ [EBUSY] Another process has the device open.
+
+ [EINVAL] Invalid ioctl specification.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ioctl(2), grf(4)
+
+4.4BSD June 9, 1993 2
--- /dev/null
+MEM(4) BSD Programmer's Manual MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm - memory files
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The special file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the
+ computer. Byte offsets in this file are interpreted as physical memory
+ addresses. Reading and writing this file is equivalent to reading and
+ writing memory itself. Only offsets within the bounds of /\b/d\bde\bev\bv/\b/m\bme\bem\bm are
+ allowed.
+
+ Kernel virtual memory is accessed through the interface /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the
+ same manner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently
+ mapped to memory are allowed.
+
+ On ISA the I/O memory space begins at physical address 0x000a0000 and
+ runs to 0x00100000. The per-process data size for the current process is
+ UPAGES long, and ends at virtual address 0xfe000000.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The m\bme\bem\bm, k\bkm\bme\bem\bm files appeared in Version 6 AT&T UNIX.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+MEM(4) BSD Programmer's Manual MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm - memory files
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The special file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the
+ computer. Byte offsets in this file are interpreted as physical memory
+ addresses. Reading and writing this file is equivalent to reading and
+ writing memory itself. Only offsets within the bounds of /\b/d\bde\bev\bv/\b/m\bme\bem\bm are
+ allowed.
+
+ Kernel virtual memory is accessed through the interface /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the
+ same manner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently
+ mapped to memory are allowed.
+
+ On ISA the I/O memory space begins at physical address 0x000a0000 and
+ runs to 0x00100000. The per-process data size for the current process is
+ UPAGES long, and ends at virtual address 0xfe000000.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The m\bme\bem\bm, k\bkm\bme\bem\bm files appeared in Version 6 AT&T UNIX.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+ICMP(4) BSD Programmer's Manual ICMP(4)
+
+N\bNA\bAM\bME\bE
+ i\bic\bcm\bmp\bp - Internet Control Message Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bin\bne\bet\bt/\b/i\bin\bn.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bA_\bF_\b__\bI_\bN_\bE_\bT, _\bS_\bO_\bC_\bK_\b__\bR_\bA_\bW, _\bp_\br_\bo_\bt_\bo);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ ICMP is the error and control message protocol used by IP and the Inter-
+ net protocol family. It may be accessed through a ``raw socket'' for
+ network monitoring and diagnostic functions. The _\bp_\br_\bo_\bt_\bo parameter to the
+ socket call to create an ICMP socket is obtained from getprotobyname(3).
+ ICMP sockets are connectionless, and are normally used with the sendto
+ and recvfrom calls, though the connect(2) call may also be used to fix
+ the destination for future packets (in which case the read(2) or recv(2)
+ and write(2) or send(2) system calls may be used).
+
+ Outgoing packets automatically have an IP header prepended to them (based
+ on the destination address). Incoming packets are received with the IP
+ header and options intact.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ A socket operation may fail with one of the following errors returned:
+
+ [EISCONN] when trying to establish a connection on a socket which
+ already has one, or when trying to send a datagram with
+ the destination address specified and the socket is al-
+ ready connected;
+
+ [ENOTCONN] when trying to send a datagram, but no destination ad-
+ dress is specified, and the socket hasn't been connect-
+ ed;
+
+ [ENOBUFS] when the system runs out of memory for an internal data
+ structure;
+
+ [EADDRNOTAVAIL] when an attempt is made to create a socket with a net-
+ work address for which no network interface exists.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ send(2), recv(2), intro(4), inet(4), ip(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The i\bic\bcm\bmp\bp protocol appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 1
--- /dev/null
+IDP(4) BSD Programmer's Manual IDP(4)
+
+N\bNA\bAM\bME\bE
+ i\bid\bdp\bp - Xerox Internet Datagram Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\btn\bns\bs/\b/n\bns\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\btn\bns\bs/\b/i\bid\bdp\bp.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bA_\bF_\b__\bN_\bS, _\bS_\bO_\bC_\bK_\b__\bD_\bG_\bR_\bA_\bM, _\b0);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ IDP is a simple, unreliable datagram protocol which is used to support
+ the SOCK_DGRAM abstraction for the Internet protocol family. IDP sockets
+ are connectionless, and are normally used with the sendto and recvfrom
+ calls, though the connect(2) call may also be used to fix the destination
+ for future packets (in which case the recv(2) or read(2) and send(2) or
+ write(2) system calls may be used).
+
+ Xerox protocols are built vertically on top of IDP. Thus, IDP address
+ formats are identical to those used by SPP. Note that the IDP port space
+ is the same as the SPP port space (i.e. a IDP port may be ``connected''
+ to a SPP port, with certain options enabled below). In addition broad-
+ cast packets may be sent (assuming the underlying network supports this)
+ by using a reserved ``broadcast address''; this address is network inter-
+ face dependent.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ A socket operation may fail with one of the following errors returned:
+
+ [EISCONN] when trying to establish a connection on a socket which
+ already has one, or when trying to send a datagram with
+ the destination address specified and the socket is al-
+ ready connected;
+
+ [ENOTCONN] when trying to send a datagram, but no destination ad-
+ dress is specified, and the socket hasn't been connect-
+ ed;
+
+ [ENOBUFS] when the system runs out of memory for an internal data
+ structure;
+
+ [EADDRINUSE] when an attempt is made to create a socket with a port
+ which has already been allocated;
+
+ [EADDRNOTAVAIL] when an attempt is made to create a socket with a net-
+ work address for which no network interface exists.
+
+S\bSO\bOC\bCK\bKE\bET\bT O\bOP\bPT\bTI\bIO\bON\bNS\bS
+ [SO_ALL_PACKETS] When set, this option defeats automatic process-
+ ing of Error packets, and Sequence Protocol pack-
+ ets.
+
+ [SO_DEFAULT_HEADERS] The user provides the kernel an IDP header, from
+ which it gleans the Packet Type. When requested,
+ the kernel will provide an IDP header, showing
+ the default packet type, and local and foreign
+ addresses, if connected.
+
+ [SO_HEADERS_ON_INPUT] When set, the first 30 bytes of any data returned
+ from a read or recv from will be the initial 30
+ bytes of the IDP packet, as described by
+
+ struct idp {
+ u_short idp_sum;
+ u_short idp_len;
+ u_char idp_tc;
+ u_char idp_pt;
+ struct ns_addr idp_dna;
+ struct ns_addr idp_sna;
+ };
+
+ This allows the user to determine the packet
+ type, and whether the packet was a multi-cast
+ packet or directed specifically at the local
+ host. When requested, gives the current state of
+ the option, (NSP_RAWIN or 0).
+
+ [SO_HEADERS_ON_OUTPUT] When set, the first 30 bytes of any data sent
+ will be the initial 30 bytes of the IDP packet.
+ This allows the user to determine the packet
+ type, and whether the packet should be multi-cast
+ packet or directed specifically at the local
+ host. You can also misrepresent the sender of
+ the packet. When requested, gives the current
+ state of the option. (NSP_RAWOUT or 0).
+
+ [SO_SEQNO] When requested, this returns a sequence number
+ which is not likely to be repeated until the ma-
+ chine crashes or a very long time has passed. It
+ is useful in constructing Packet Exchange Proto-
+ col packets.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ send(2), recv(2), intro(4), ns(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The i\bid\bdp\bp protocol appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 2
--- /dev/null
+INET(4) BSD Programmer's Manual INET(4)
+
+N\bNA\bAM\bME\bE
+ i\bin\bne\bet\bt - Internet protocol family
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bin\bne\bet\bt/\b/i\bin\bn.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The Internet protocol family is a collection of protocols layered atop
+ the _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl (IP) transport layer, and utilizing the Internet
+ address format. The Internet family provides protocol support for the
+ SOCK_STREAM, SOCK_DGRAM, and SOCK_RAW socket types; the SOCK_RAW inter-
+ face provides access to the IP protocol.
+
+A\bAD\bDD\bDR\bRE\bES\bSS\bSI\bIN\bNG\bG
+ Internet addresses are four byte quantities, stored in network standard
+ format (on the VAX these are word and byte reversed). The include file
+ <_\bn_\be_\bt_\bi_\bn_\be_\bt_\b/_\bi_\bn_\b._\bh> defines this address as a discriminated union.
+
+ Sockets bound to the Internet protocol family utilize the following ad-
+ dressing structure,
+
+ struct sockaddr_in {
+ short sin_family;
+ u_short sin_port;
+ struct in_addr sin_addr;
+ char sin_zero[8];
+ };
+
+ Sockets may be created with the local address INADDR_ANY to effect
+ ``wildcard'' matching on incoming messages. The address in a connect(2)
+ or sendto(2) call may be given as INADDR_ANY to mean ``this host''. The
+ distinguished address INADDR_BROADCAST is allowed as a shorthand for the
+ broadcast address on the primary network if the first network configured
+ supports broadcast.
+
+P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bLS\bS
+ The Internet protocol family is comprised of the IP transport protocol,
+ Internet Control Message Protocol (ICMP), Transmission Control Protocol
+ (TCP), and User Datagram Protocol (UDP). TCP is used to support the
+ SOCK_STREAM abstraction while UDP is used to support the SOCK_DGRAM ab-
+ straction. A raw interface to IP is available by creating an Internet
+ socket of type SOCK_RAW. The ICMP message protocol is accessible from a
+ raw socket.
+
+ The 32-bit Internet address contains both network and host parts. It is
+ frequency-encoded; the most-significant bit is clear in Class A address-
+ es, in which the high-order 8 bits are the network number. Class B ad-
+ dresses use the high-order 16 bits as the network field, and Class C ad-
+ dresses have a 24-bit network part. Sites with a cluster of local net-
+ works and a connection to the Internet may chose to use a single network
+ number for the cluster; this is done by using subnet addressing. The lo-
+ cal (host) portion of the address is further subdivided into subnet and
+ host parts. Within a subnet, each subnet appears to be an individual
+ network; externally, the entire cluster appears to be a single, uniform
+ network requiring only a single routing entry. Subnet addressing is en-
+ abled and examined by the following ioctl(2) commands on a datagram sock-
+ et in the Internet domain; they have the same form as the SIOCIFADDR com-
+ mand (see intro(4)).
+
+ SIOCSIFNETMASK Set interface network mask. The network mask defines the
+ network part of the address; if it contains more of the
+ address than the address type would indicate, then sub-
+
+ nets are in use.
+
+ SIOCGIFNETMASK Get interface network mask.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ioctl(2), socket(2), intro(4), tcp(4), udp(4), ip(4), icmp(4)
+
+ "An Introductory 4.3 BSD Interprocess Communication Tutorial", _\bP_\bS_\b1, 7.
+
+ "An Advanced 4.3 BSD Interprocess Communication Tutorial", _\bP_\bS_\b1, 8.
+
+C\bCA\bAV\bVE\bEA\bAT\bT
+ The Internet protocol support is subject to change as the Internet
+ protocols develop. Users should not depend on details of the current
+ implementation, but rather the services exported.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The i\bin\bne\bet\bt protocol interface appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+IP(4) BSD Programmer's Manual IP(4)
+
+N\bNA\bAM\bME\bE
+ i\bip\bp - Internet Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bin\bne\bet\bt/\b/i\bin\bn.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bA_\bF_\b__\bI_\bN_\bE_\bT, _\bS_\bO_\bC_\bK_\b__\bR_\bA_\bW, _\bp_\br_\bo_\bt_\bo);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ IP is the transport layer protocol used by the Internet protocol family.
+ Options may be set at the IP level when using higher-level protocols that
+ are based on IP (such as TCP and UDP). It may also be accessed through a
+ ``raw socket'' when developing new protocols, or special-purpose applica-
+ tions.
+
+ There are several IP -level setsockopt(2)/ getsockopt(2) options.
+ IP_OPTIONS may be used to provide IP options to be transmitted in the IP
+ header of each outgoing packet or to examine the header options on incom-
+ ing packets. IP options may be used with any socket type in the Internet
+ family. The format of IP options to be sent is that specified by the IP
+ protocol specification (RFC-791), with one exception: the list of ad-
+ dresses for Source Route options must include the first-hop gateway at
+ the beginning of the list of gateways. The first-hop gateway address
+ will be extracted from the option list and the size adjusted accordingly
+ before use. To disable previously specified options, use a zero-length
+ buffer:
+
+ setsockopt(s, IPPROTO_IP, IP_OPTIONS, NULL, 0);
+
+ IP_TOS and IP_TTL may be used to set the type-of-service and time-to-live
+ fields in the IP header for SOCK_STREAM and SOCK_DGRAM sockets. For exam-
+ ple,
+
+ int tos = IPTOS_LOWDELAY; /* see <netinet/in.h> */
+ setsockopt(s, IPPROTO_IP, IP_TOS, &tos, sizeof(tos));
+
+ int ttl = 60; /* max = 255 */
+ setsockopt(s, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl));
+
+ If the IP_RECVDSTADDR option is enabled on a SOCK_DGRAM socket, the
+ recvmsg call will return the destination IP address for a UDP datagram.
+ The msg_control field in the msghdr structure points to a buffer that
+ contains a cmsghdr structure followed by the IP address. The cmsghdr
+ fields have the following values:
+
+ cmsg_len = sizeof(struct in_addr)
+ cmsg_level = IPPROTO_IP
+ cmsg_type = IP_RECVDSTADDR
+
+ M\bMu\bul\blt\bti\bic\bca\bas\bst\bt O\bOp\bpt\bti\bio\bon\bns\bs
+
+ IP multicasting is supported only on AF_INET sockets of type SOCK_DGRAM
+ and SOCK_RAW, and only on networks where the interface driver supports
+ multicasting.
+
+ The IP_MULTICAST_TTL option changes the time-to-live (TTL) for outgoing
+ multicast datagrams in order to control the scope of the multicasts:
+
+ u_char ttl; /* range: 0 to 255, default = 1 */
+ setsockopt(s, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(ttl));
+
+ Datagrams with a TTL of 1 are not forwarded beyond the local network.
+ Multicast datagrams with a TTL of 0 will not be transmitted on any net-
+ work, but may be delivered locally if the sending host belongs to the
+ destination group and if multicast loopback has not been disabled on the
+ sending socket (see below). Multicast datagrams with TTL greater than 1
+ may be forwarded to other networks if a multicast router is attached to
+ the local network.
+
+ For hosts with multiple interfaces, each multicast transmission is sent
+ from the primary network interface. The IP_MULTICAST_IF option overrides
+ the default for subsequent transmissions from a given socket:
+
+ struct in_addr addr;
+ setsockopt(s, IPPROTO_IP, IP_MULTICAST_IF, &addr, sizeof(addr));
+
+ where "addr" is the local IP address of the desired interface or
+ INADDR_ANY to specify the default interface. An interface's local IP ad-
+ dress and multicast capability can be obtained via the SIOCGIFCONF and
+ SIOCGIFFLAGS ioctls. Normal applications should not need to use this op-
+ tion.
+
+ If a multicast datagram is sent to a group to which the sending host it-
+ self belongs (on the outgoing interface), a copy of the datagram is, by
+ default, looped back by the IP layer for local delivery. The
+ IP_MULTICAST_LOOP option gives the sender explicit control over whether
+ or not subsequent datagrams are looped back:
+
+ u_char loop; /* 0 = disable, 1 = enable (default) */
+ setsockopt(s, IPPROTO_IP, IP_MULTICAST_LOOP, &loop, sizeof(loop));
+
+ This option improves performance for applications that may have no more
+ than one instance on a single host (such as a router demon), by eliminat-
+ ing the overhead of receiving their own transmissions. It should gener-
+ ally not be used by applications for which there may be more than one in-
+ stance on a single host (such as a conferencing program) or for which the
+ sender does not belong to the destination group (such as a time querying
+ program).
+
+ A multicast datagram sent with an initial TTL greater than 1 may be de-
+ livered to the sending host on a different interface from that on which
+ it was sent, if the host belongs to the destination group on that other
+ interface. The loopback control option has no effect on such delivery.
+
+ A host must become a member of a multicast group before it can receive
+ datagrams sent to the group. To join a multicast group, use the
+ IP_ADD_MEMBERSHIP option:
+
+ struct ip_mreq mreq;
+ setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));
+
+ where _\bm_\br_\be_\bq is the following structure:
+
+ struct ip_mreq {
+ struct in_addr imr_multiaddr; /* multicast group to join */
+ struct in_addr imr_interface; /* interface to join on */
+ }
+
+ imr_interface should be INADDR_ANY to choose the default multicast inter-
+ face, or the IP address of a particular multicast-capable interface if
+ the host is multihomed. Membership is associated with a single inter-
+ face; programs running on multihomed hosts may need to to join the same
+ group on more than one interface. Up to IP_MAX_MEMBERSHIPS (currently
+ 20) memberships may be added on a single socket.
+
+ To drop a membership, use:
+
+ struct ip_mreq mreq;
+ setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq));
+
+ where _\bm_\br_\be_\bq contains the same values as used to add the membership. Mem-
+ berships are dropped when the socket is closed or the process exits.
+
+ R\bRa\baw\bw I\bIP\bP S\bSo\boc\bck\bke\bet\bts\bs
+
+ Raw IP sockets are connectionless, and are normally used with the sendto
+ and recvfrom calls, though the connect(2) call may also be used to fix
+ the destination for future packets (in which case the read(2) or recv(2)
+ and write(2) or send(2) system calls may be used).
+
+ If _\bp_\br_\bo_\bt_\bo is 0, the default protocol IPPROTO_RAW is used for outgoing
+ packets, and only incoming packets destined for that protocol are re-
+ ceived. If _\bp_\br_\bo_\bt_\bo is non-zero, that protocol number will be used on out-
+ going packets and to filter incoming packets.
+
+ Outgoing packets automatically have an IP header prepended to them (based
+ on the destination address and the protocol number the socket is created
+ with), unless the IP_HDRINCL option has been set. Incoming packets are
+ received with IP header and options intact.
+
+ IP_HDRINCL indicates the complete IP header is included with the data and
+ may be used only with the SOCK_RAW type.
+
+ #include <netinet/ip.h>
+
+ int hincl = 1; /* 1 = on, 0 = off */
+ setsockopt(s, IPPROTO_IP, IP_HDRINCL, &hincl, sizeof(hincl));
+
+ Unlike previous BSD releases, the program must set all the fields of the
+ IP header, including the following:
+
+ ip->ip_v = IPVERSION;
+ ip->ip_hl = hlen >> 2;
+ ip->ip_id = 0; /* 0 means kernel set appropriate value */
+ ip->ip_off = offset;
+ If the header source address is set to INADDR_ANY, the kernel will choose
+ an appropriate address.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ A socket operation may fail with one of the following errors returned:
+
+ [EISCONN] when trying to establish a connection on a socket which
+ already has one, or when trying to send a datagram with
+ the destination address specified and the socket is al-
+ ready connected;
+
+ [ENOTCONN] when trying to send a datagram, but no destination ad-
+ dress is specified, and the socket hasn't been connect-
+ ed;
+
+ [ENOBUFS] when the system runs out of memory for an internal data
+ structure;
+
+ [EADDRNOTAVAIL] when an attempt is made to create a socket with a net-
+ work address for which no network interface exists.
+
+ [EACESS] when an attempt is made to create a raw IP socket by a
+ non-privileged process.
+
+ The following errors specific to IP may occur when setting or getting IP
+ options:
+
+
+ [EINVAL] An unknown socket option name was given.
+
+ [EINVAL] The IP option field was improperly formed; an option
+ field was shorter than the minimum value or longer than
+ the option buffer provided.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getsockopt(2), send(2), recv(2), intro(4), icmp(4), inet(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The i\bip\bp protocol appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 4
--- /dev/null
+ISO(4) BSD Programmer's Manual ISO(4)
+
+N\bNA\bAM\bME\bE
+ i\bis\bso\bo - ISO protocol family
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bis\bso\bo/\b/i\bis\bso\bo.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The ISO protocol family is a collection of protocols that uses the ISO
+ address format. The ISO family provides protocol support for the
+ SOCK_SEQPACKET abstraction through the TP protocol (ISO 8073), for the
+ SOCK_DGRAM abstraction through the connectionless transport protocol (ISO
+ 8602), and for the SOCK_RAW abstraction by providing direct access (for
+ debugging) to the CLNP (ISO 8473) network layer protocol.
+
+A\bAD\bDD\bDR\bRE\bES\bSS\bSI\bIN\bNG\bG
+ ISO addresses are based upon ISO 8348/AD2, _\bA_\bd_\bd_\be_\bn_\bd_\bu_\bm _\bt_\bo _\bt_\bh_\be _\bN_\be_\bt_\bw_\bo_\br_\bk
+ _\bS_\be_\br_\bv_\bi_\bc_\be _\bD_\be_\bf_\bi_\bn_\bi_\bt_\bi_\bo_\bn _\bC_\bo_\bv_\be_\br_\bi_\bn_\bg _\bN_\be_\bt_\bw_\bo_\br_\bk _\bL_\ba_\by_\be_\br _\bA_\bd_\bd_\br_\be_\bs_\bs_\bi_\bn_\bg_\b.
+
+ Sockets bound to the OSI protocol family use the following address struc-
+ ture:
+
+ struct iso_addr {
+ u_char isoa_len; /* length, not including this byte */
+ char isoa_genaddr[20]; /* general opaque address */
+ };
+
+ struct sockaddr_iso {
+ u_char siso_len; /* size of this sockaddr */
+ u_char siso_family; /* addressing domain, AF_ISO */
+ u_char siso_plen; /* presentation selector length */
+ u_char siso_slen; /* session selector length */
+ u_char siso_tlen; /* transport selector length */
+ struct iso_addr siso_addr; /* network address */
+ u_char siso_pad[6]; /* space for gosip v2 SELs */
+ };
+ #define siso_nlen siso_addr.isoa_len
+ #define siso_data siso_addr.isoa_genaddr
+
+ The fields of this structure are:
+
+ _\bs_\bi_\bs_\bo_\b__\bl_\be_\bn_\b:
+ Length of the entire address structure, in bytes, which may grow
+ to be longer than the 32 bytes show above.
+
+ _\bs_\bi_\bs_\bo_\b__\bf_\ba_\bm_\bi_\bl_\by_\b:
+ Identifies the domain: AF_ISO.
+
+ _\bs_\bi_\bs_\bo_\b__\bt_\bl_\be_\bn_\b:
+ Length of the transport selector.
+
+ _\bs_\bi_\bs_\bo_\b__\bs_\bl_\be_\bn_\b:
+ Length of the session selector. This is not currently supported
+ by the kernel and is provided as a convenience for user level
+ programs.
+
+ _\bs_\bi_\bs_\bo_\b__\bp_\bl_\be_\bn_\b:
+ Length of the presentation selector. This is not currently sup-
+ ported by the kernel and is provided as a convenience for user
+ level programs.
+
+ _\bs_\bi_\bs_\bo_\b__\ba_\bd_\bd_\br_\b:
+ The network part of the address, described below.
+
+T\bTR\bRA\bAN\bNS\bSP\bPO\bOR\bRT\bT A\bAD\bDD\bDR\bRE\bES\bSS\bSI\bIN\bNG\bG
+ An ISO transport address is similar to an Internet address in that it
+ contains a network-address portion and a portion that the transport layer
+ uses to multiplex its services among clients. In the Internet domain,
+ this portion of the address is called a _\bp_\bo_\br_\bt. In the ISO domain, this is
+ called a _\bt_\br_\ba_\bn_\bs_\bp_\bo_\br_\bt _\bs_\be_\bl_\be_\bc_\bt_\bo_\br (also known at one time as a _\bt_\br_\ba_\bn_\bs_\bp_\bo_\br_\bt
+ _\bs_\bu_\bf_\bf_\bi_\bx). While ports are always 16 bits, transport selectors may be of
+ (almost) arbitrary size.
+
+ Since the C language does not provide conveninent variable length struc-
+ tures, we have separated the selector lengths from the data themselves.
+ The network address and various selectors are stored contiguously, with
+ the network address first, then the transport selector, and so on. Thus,
+ if you had a nework address of less then 20 bytes, the transport selector
+ would encroach on space normally reserved for the network address.
+
+N\bNE\bET\bTW\bWO\bOR\bRK\bK A\bAD\bDD\bDR\bRE\bES\bSS\bSI\bIN\bNG\bG.\b.
+ ISO network addresses are limited to 20 bytes in length. ISO network ad-
+ dresses can take any format.
+
+P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bLS\bS
+ The ARGO 1.0 implementation of the ISO protocol family comprises the Con-
+ nectionless-Mode Network Protocol (CLNP), and the Transport Protocol
+ (TP), classes 4 and 0, and X.25. TP is used to support the SOCK_SEQPACKET
+ abstraction. A raw interface to CLNP is available by creating an ISO
+ socket of type SOCK_RAW. This is used for CLNP debugging only.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tp(4), clnp(4), cltp(4)
+
+4.4BSD June 9, 1993 2
--- /dev/null
+LO(4) BSD Programmer's Manual LO(4)
+
+N\bNA\bAM\bME\bE
+ l\blo\bo - software loopback network interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ p\bps\bse\beu\bud\bdo\bo-\b-d\bde\bev\bvi\bic\bce\be
+ l\blo\boo\bop\bp
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The l\blo\boo\bop\bp interface is a software loopback mechanism which may be used for
+ performance analysis, software testing, and/or local communication. As
+ with other network interfaces, the loopback interface must have network
+ addresses assigned for each address family with which it is to be used.
+ These addresses may be set or changed with the SIOCSIFADDR ioctl(2). The
+ loopback interface should be the last interface configured, as protocols
+ may use the order of configuration as an indication of priority. The
+ loopback should _\bn_\be_\bv_\be_\br be configured first unless no hardware interfaces
+ exist.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ l\blo\bo%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), inet(4), ns(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The l\blo\bo device appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ Previous versions of the system enabled the loopback interface automati-
+ cally, using a nonstandard Internet address (127.1). Use of that address
+ is now discouraged; a reserved host address for the local network should
+ be used instead.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+NETINTRO(4) BSD Programmer's Manual NETINTRO(4)
+
+N\bNA\bAM\bME\bE
+ n\bne\bet\btw\bwo\bor\brk\bki\bin\bng\bg - introduction to networking facilities
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bt/\b/r\bro\bou\but\bte\be.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bt/\b/i\bif\bf.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section is a general introduction to the networking facilities
+ available in the system. Documentation in this part of section 4 is bro-
+ ken up into three areas: _\bp_\br_\bo_\bt_\bo_\bc_\bo_\bl _\bf_\ba_\bm_\bi_\bl_\bi_\be_\bs (domains), _\bp_\br_\bo_\bt_\bo_\bc_\bo_\bl_\bs, and
+ _\bn_\be_\bt_\bw_\bo_\br_\bk _\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be_\bs.
+
+ All network protocols are associated with a specific _\bp_\br_\bo_\bt_\bo_\bc_\bo_\bl _\bf_\ba_\bm_\bi_\bl_\by. A
+ protocol family provides basic services to the protocol implementation to
+ allow it to function within a specific network environment. These ser-
+ vices may include packet fragmentation and reassembly, routing, address-
+ ing, and basic transport. A protocol family may support multiple methods
+ of addressing, though the current protocol implementations do not. A
+ protocol family is normally comprised of a number of protocols, one per
+ socket(2) type. It is not required that a protocol family support all
+ socket types. A protocol family may contain multiple protocols support-
+ ing the same socket abstraction.
+
+ A protocol supports one of the socket abstractions detailed in socket(2).
+ A specific protocol may be accessed either by creating a socket of the
+ appropriate type and protocol family, or by requesting the protocol ex-
+ plicitly when creating a socket. Protocols normally accept only one type
+ of address format, usually determined by the addressing structure inher-
+ ent in the design of the protocol family/network architecture. Certain
+ semantics of the basic socket abstractions are protocol specific. All
+ protocols are expected to support the basic model for their particular
+ socket type, but may, in addition, provide non-standard facilities or ex-
+ tensions to a mechanism. For example, a protocol supporting the
+ SOCK_STREAM abstraction may allow more than one byte of out-of-band data
+ to be transmitted per out-of-band message.
+
+ A network interface is similar to a device interface. Network interfaces
+ comprise the lowest layer of the networking subsystem, interacting with
+ the actual transport hardware. An interface may support one or more pro-
+ tocol families and/or address formats. The SYNOPSIS section of each net-
+ work interface entry gives a sample specification of the related drivers
+ for use in providing a system description to the config(8) program. The
+ DIAGNOSTICS section lists messages which may appear on the console and/or
+ in the system error log, _\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bm_\be_\bs_\bs_\ba_\bg_\be_\bs (see syslogd(8)), due to er-
+ rors in device operation.
+
+P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bLS\bS
+ The system currently supports the Internet protocols, the Xerox Network
+ Systems(tm) protocols, and some of the ISO OSI protocols. Raw socket in-
+ terfaces are provided to the IP protocol layer of the Internet, and to
+ the IDP protocol of Xerox NS. Consult the appropriate manual pages in
+ this section for more information regarding the support for each protocol
+ family.
+
+A\bAD\bDD\bDR\bRE\bES\bSS\bSI\bIN\bNG\bG
+ Associated with each protocol family is an address format. All network
+ address adhere to a general structure, called a sockaddr, described be-
+ low. However, each protocol imposes finer and more specific structure,
+ generally renaming the variant, which is discussed in the protocol family
+ manual page alluded to above.
+
+ struct sockaddr {
+ u_char sa_len;
+ u_char sa_family;
+ char sa_data[14];
+ };
+
+ The field _\bs_\ba_\b__\bl_\be_\bn contains the total length of the of the structure, which
+ may exceed 16 bytes. The following address values for _\bs_\ba_\b__\bf_\ba_\bm_\bi_\bl_\by are
+ known to the system (and additional formats are defined for possible fu-
+ ture implementation):
+
+ #define AF_UNIX 1 /* local to host (pipes, portals) */
+ #define AF_INET 2 /* internetwork: UDP, TCP, etc. */
+ #define AF_NS 6 /* Xerox NS protocols */
+ #define AF_CCITT 10 /* CCITT protocols, X.25 etc */
+ #define AF_HYLINK 15 /* NSC Hyperchannel */
+ #define AF_ISO 18 /* ISO protocols */
+
+R\bRO\bOU\bUT\bTI\bIN\bNG\bG
+ UNIX provides some packet routing facilities. The kernel maintains a
+ routing information database, which is used in selecting the appropriate
+ network interface when transmitting packets.
+
+ A user process (or possibly multiple co-operating processes) maintains
+ this database by sending messages over a special kind of socket. This
+ supplants fixed size ioctl(2) used in earlier releases.
+
+ This facility is described in route(4).
+
+I\bIN\bNT\bTE\bER\bRF\bFA\bAC\bCE\bES\bS
+ Each network interface in a system corresponds to a path through which
+ messages may be sent and received. A network interface usually has a
+ hardware device associated with it, though certain interfaces such as the
+ loopback interface, lo(4), do not.
+
+ The following ioctl calls may be used to manipulate network interfaces.
+ The ioctl is made on a socket (typically of type SOCK_DGRAM) in the de-
+ sired domain. Most of the requests supported in earlier releases take an
+ _\bi_\bf_\br_\be_\bq structure as its parameter. This structure has the form
+
+ struct ifreq {
+ #define IFNAMSIZ 16
+ char ifr_name[IFNAMSIZE]; /* if name, e.g. "en0" */
+ union {
+ struct sockaddr ifru_addr;
+ struct sockaddr ifru_dstaddr;
+ struct sockaddr ifru_broadaddr;
+ short ifru_flags;
+ int ifru_metric;
+ caddr_t ifru_data;
+ } ifr_ifru;
+ #define ifr_addr ifr_ifru.ifru_addr /* address */
+ #define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */
+ #define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */
+ #define ifr_flags ifr_ifru.ifru_flags /* flags */
+ #define ifr_metric ifr_ifru.ifru_metric /* metric */
+ #define ifr_data ifr_ifru.ifru_data /* for use by interface */
+ };
+
+ Calls which are now deprecated are:
+
+ SIOCSIFADDR Set interface address for protocol family. Following the
+ address assignment, the ``initialization'' routine for
+ the interface is called.
+
+ SIOCSIFDSTADDR Set point to point address for protocol family and inter-
+
+ face.
+
+ SIOCSIFBRDADDR Set broadcast address for protocol family and interface.
+
+ Ioctl requests to obtain addresses and requests both to set and retreive
+ other data are still fully supported and use the _\bi_\bf_\br_\be_\bq structure:
+
+ SIOCGIFADDR Get interface address for protocol family.
+
+ SIOCGIFDSTADDR Get point to point address for protocol family and inter-
+ face.
+
+ SIOCGIFBRDADDR Get broadcast address for protocol family and interface.
+
+ SIOCSIFFLAGS Set interface flags field. If the interface is marked
+ down, any processes currently routing packets through the
+ interface are notified; some interfaces may be reset so
+ that incoming packets are no longer received. When
+ marked up again, the interface is reinitialized.
+
+ SIOCGIFFLAGS Get interface flags.
+
+ SIOCSIFMETRIC Set interface routing metric. The metric is used only by
+ user-level routers.
+
+ SIOCGIFMETRIC Get interface metric.
+
+ There are two requests that make use of a new structure:
+
+ SIOCAIFADDR An interface may have more than one address associated
+ with it in some protocols. This request provides a means
+ to add additional addresses (or modify characteristics of
+ the primary address if the default address for the ad-
+ dress family is specified). Rather than making separate
+ calls to set destination or broadcast addresses, or net-
+ work masks (now an integral feature of multiple proto-
+ cols) a separate structure is used to specify all three
+ facets simultaneously (see below). One would use a
+ slightly tailored version of this struct specific to each
+ family (replacing each sockaddr by one of the family-
+ specific type). Where the sockaddr itself is larger than
+ the default size, one needs to modify the ioctl identifi-
+ er itself to include the total size, as described in
+ ioctl.
+
+ SIOCDIFADDR This requests deletes the specified address from the list
+ associated with an interface. It also uses the
+ _\bi_\bf_\b__\ba_\bl_\bi_\ba_\bs_\br_\be_\bq structure to allow for the possibility of
+ protocols allowing multiple masks or destination address-
+ es, and also adopts the convention that specification of
+ the default address means to delete the first address for
+ the interface belonging to the address family in which
+ the original socket was opened.
+
+ SIOCGIFCONF Get interface configuration list. This request takes an
+ _\bi_\bf_\bc_\bo_\bn_\bf structure (see below) as a value-result parameter.
+ The _\bi_\bf_\bc_\b__\bl_\be_\bn field should be initially set to the size of
+ the buffer pointed to by _\bi_\bf_\bc_\b__\bb_\bu_\bf. On return it will con-
+ tain the length, in bytes, of the configuration list.
+
+ /*
+ * Structure used in SIOCAIFCONF request.
+ */
+ struct ifaliasreq {
+ char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */
+ struct sockaddr ifra_addr;
+ struct sockaddr ifra_broadaddr;
+ struct sockaddr ifra_mask;
+ };
+
+ /*
+ * Structure used in SIOCGIFCONF request.
+ * Used to retrieve interface configuration
+ * for machine (useful for programs which
+ * must know all networks accessible).
+ */
+ struct ifconf {
+ int ifc_len; /* size of associated buffer */
+ union {
+ caddr_t ifcu_buf;
+ struct ifreq *ifcu_req;
+ } ifc_ifcu;
+ #define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */
+ #define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */
+ };
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ socket(2), ioctl(2), intro(4), config(8), routed(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The n\bne\bet\bti\bin\bnt\btr\bro\bo manual appeared in 4.3BSD-Tahoe.
+
+4.2 Berkeley Distribution July 19, 1993 4
--- /dev/null
+NETINTRO(4) BSD Programmer's Manual NETINTRO(4)
+
+N\bNA\bAM\bME\bE
+ n\bne\bet\btw\bwo\bor\brk\bki\bin\bng\bg - introduction to networking facilities
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bt/\b/r\bro\bou\but\bte\be.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bt/\b/i\bif\bf.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section is a general introduction to the networking facilities
+ available in the system. Documentation in this part of section 4 is bro-
+ ken up into three areas: _\bp_\br_\bo_\bt_\bo_\bc_\bo_\bl _\bf_\ba_\bm_\bi_\bl_\bi_\be_\bs (domains), _\bp_\br_\bo_\bt_\bo_\bc_\bo_\bl_\bs, and
+ _\bn_\be_\bt_\bw_\bo_\br_\bk _\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be_\bs.
+
+ All network protocols are associated with a specific _\bp_\br_\bo_\bt_\bo_\bc_\bo_\bl _\bf_\ba_\bm_\bi_\bl_\by. A
+ protocol family provides basic services to the protocol implementation to
+ allow it to function within a specific network environment. These ser-
+ vices may include packet fragmentation and reassembly, routing, address-
+ ing, and basic transport. A protocol family may support multiple methods
+ of addressing, though the current protocol implementations do not. A
+ protocol family is normally comprised of a number of protocols, one per
+ socket(2) type. It is not required that a protocol family support all
+ socket types. A protocol family may contain multiple protocols support-
+ ing the same socket abstraction.
+
+ A protocol supports one of the socket abstractions detailed in socket(2).
+ A specific protocol may be accessed either by creating a socket of the
+ appropriate type and protocol family, or by requesting the protocol ex-
+ plicitly when creating a socket. Protocols normally accept only one type
+ of address format, usually determined by the addressing structure inher-
+ ent in the design of the protocol family/network architecture. Certain
+ semantics of the basic socket abstractions are protocol specific. All
+ protocols are expected to support the basic model for their particular
+ socket type, but may, in addition, provide non-standard facilities or ex-
+ tensions to a mechanism. For example, a protocol supporting the
+ SOCK_STREAM abstraction may allow more than one byte of out-of-band data
+ to be transmitted per out-of-band message.
+
+ A network interface is similar to a device interface. Network interfaces
+ comprise the lowest layer of the networking subsystem, interacting with
+ the actual transport hardware. An interface may support one or more pro-
+ tocol families and/or address formats. The SYNOPSIS section of each net-
+ work interface entry gives a sample specification of the related drivers
+ for use in providing a system description to the config(8) program. The
+ DIAGNOSTICS section lists messages which may appear on the console and/or
+ in the system error log, _\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bm_\be_\bs_\bs_\ba_\bg_\be_\bs (see syslogd(8)), due to er-
+ rors in device operation.
+
+P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bLS\bS
+ The system currently supports the Internet protocols, the Xerox Network
+ Systems(tm) protocols, and some of the ISO OSI protocols. Raw socket in-
+ terfaces are provided to the IP protocol layer of the Internet, and to
+ the IDP protocol of Xerox NS. Consult the appropriate manual pages in
+ this section for more information regarding the support for each protocol
+ family.
+
+A\bAD\bDD\bDR\bRE\bES\bSS\bSI\bIN\bNG\bG
+ Associated with each protocol family is an address format. All network
+ address adhere to a general structure, called a sockaddr, described be-
+ low. However, each protocol imposes finer and more specific structure,
+ generally renaming the variant, which is discussed in the protocol family
+ manual page alluded to above.
+
+ struct sockaddr {
+ u_char sa_len;
+ u_char sa_family;
+ char sa_data[14];
+ };
+
+ The field _\bs_\ba_\b__\bl_\be_\bn contains the total length of the of the structure, which
+ may exceed 16 bytes. The following address values for _\bs_\ba_\b__\bf_\ba_\bm_\bi_\bl_\by are
+ known to the system (and additional formats are defined for possible fu-
+ ture implementation):
+
+ #define AF_UNIX 1 /* local to host (pipes, portals) */
+ #define AF_INET 2 /* internetwork: UDP, TCP, etc. */
+ #define AF_NS 6 /* Xerox NS protocols */
+ #define AF_CCITT 10 /* CCITT protocols, X.25 etc */
+ #define AF_HYLINK 15 /* NSC Hyperchannel */
+ #define AF_ISO 18 /* ISO protocols */
+
+R\bRO\bOU\bUT\bTI\bIN\bNG\bG
+ UNIX provides some packet routing facilities. The kernel maintains a
+ routing information database, which is used in selecting the appropriate
+ network interface when transmitting packets.
+
+ A user process (or possibly multiple co-operating processes) maintains
+ this database by sending messages over a special kind of socket. This
+ supplants fixed size ioctl(2) used in earlier releases.
+
+ This facility is described in route(4).
+
+I\bIN\bNT\bTE\bER\bRF\bFA\bAC\bCE\bES\bS
+ Each network interface in a system corresponds to a path through which
+ messages may be sent and received. A network interface usually has a
+ hardware device associated with it, though certain interfaces such as the
+ loopback interface, lo(4), do not.
+
+ The following ioctl calls may be used to manipulate network interfaces.
+ The ioctl is made on a socket (typically of type SOCK_DGRAM) in the de-
+ sired domain. Most of the requests supported in earlier releases take an
+ _\bi_\bf_\br_\be_\bq structure as its parameter. This structure has the form
+
+ struct ifreq {
+ #define IFNAMSIZ 16
+ char ifr_name[IFNAMSIZE]; /* if name, e.g. "en0" */
+ union {
+ struct sockaddr ifru_addr;
+ struct sockaddr ifru_dstaddr;
+ struct sockaddr ifru_broadaddr;
+ short ifru_flags;
+ int ifru_metric;
+ caddr_t ifru_data;
+ } ifr_ifru;
+ #define ifr_addr ifr_ifru.ifru_addr /* address */
+ #define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */
+ #define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */
+ #define ifr_flags ifr_ifru.ifru_flags /* flags */
+ #define ifr_metric ifr_ifru.ifru_metric /* metric */
+ #define ifr_data ifr_ifru.ifru_data /* for use by interface */
+ };
+
+ Calls which are now deprecated are:
+
+ SIOCSIFADDR Set interface address for protocol family. Following the
+ address assignment, the ``initialization'' routine for
+ the interface is called.
+
+ SIOCSIFDSTADDR Set point to point address for protocol family and inter-
+
+ face.
+
+ SIOCSIFBRDADDR Set broadcast address for protocol family and interface.
+
+ Ioctl requests to obtain addresses and requests both to set and retreive
+ other data are still fully supported and use the _\bi_\bf_\br_\be_\bq structure:
+
+ SIOCGIFADDR Get interface address for protocol family.
+
+ SIOCGIFDSTADDR Get point to point address for protocol family and inter-
+ face.
+
+ SIOCGIFBRDADDR Get broadcast address for protocol family and interface.
+
+ SIOCSIFFLAGS Set interface flags field. If the interface is marked
+ down, any processes currently routing packets through the
+ interface are notified; some interfaces may be reset so
+ that incoming packets are no longer received. When
+ marked up again, the interface is reinitialized.
+
+ SIOCGIFFLAGS Get interface flags.
+
+ SIOCSIFMETRIC Set interface routing metric. The metric is used only by
+ user-level routers.
+
+ SIOCGIFMETRIC Get interface metric.
+
+ There are two requests that make use of a new structure:
+
+ SIOCAIFADDR An interface may have more than one address associated
+ with it in some protocols. This request provides a means
+ to add additional addresses (or modify characteristics of
+ the primary address if the default address for the ad-
+ dress family is specified). Rather than making separate
+ calls to set destination or broadcast addresses, or net-
+ work masks (now an integral feature of multiple proto-
+ cols) a separate structure is used to specify all three
+ facets simultaneously (see below). One would use a
+ slightly tailored version of this struct specific to each
+ family (replacing each sockaddr by one of the family-
+ specific type). Where the sockaddr itself is larger than
+ the default size, one needs to modify the ioctl identifi-
+ er itself to include the total size, as described in
+ ioctl.
+
+ SIOCDIFADDR This requests deletes the specified address from the list
+ associated with an interface. It also uses the
+ _\bi_\bf_\b__\ba_\bl_\bi_\ba_\bs_\br_\be_\bq structure to allow for the possibility of
+ protocols allowing multiple masks or destination address-
+ es, and also adopts the convention that specification of
+ the default address means to delete the first address for
+ the interface belonging to the address family in which
+ the original socket was opened.
+
+ SIOCGIFCONF Get interface configuration list. This request takes an
+ _\bi_\bf_\bc_\bo_\bn_\bf structure (see below) as a value-result parameter.
+ The _\bi_\bf_\bc_\b__\bl_\be_\bn field should be initially set to the size of
+ the buffer pointed to by _\bi_\bf_\bc_\b__\bb_\bu_\bf. On return it will con-
+ tain the length, in bytes, of the configuration list.
+
+ /*
+ * Structure used in SIOCAIFCONF request.
+ */
+ struct ifaliasreq {
+ char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */
+ struct sockaddr ifra_addr;
+ struct sockaddr ifra_broadaddr;
+ struct sockaddr ifra_mask;
+ };
+
+ /*
+ * Structure used in SIOCGIFCONF request.
+ * Used to retrieve interface configuration
+ * for machine (useful for programs which
+ * must know all networks accessible).
+ */
+ struct ifconf {
+ int ifc_len; /* size of associated buffer */
+ union {
+ caddr_t ifcu_buf;
+ struct ifreq *ifcu_req;
+ } ifc_ifcu;
+ #define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */
+ #define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */
+ };
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ socket(2), ioctl(2), intro(4), config(8), routed(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The n\bne\bet\bti\bin\bnt\btr\bro\bo manual appeared in 4.3BSD-Tahoe.
+
+4.2 Berkeley Distribution July 19, 1993 4
--- /dev/null
+NS(4) BSD Programmer's Manual NS(4)
+
+N\bNA\bAM\bME\bE
+ n\bns\bs - Xerox Network Systems(tm) protocol family
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ o\bop\bpt\bti\bio\bon\bns\bs N\bNS\bS
+ o\bop\bpt\bti\bio\bon\bns\bs N\bNS\bSI\bIP\bP
+ p\bps\bse\beu\bud\bdo\bo-\b-d\bde\bev\bvi\bic\bce\be n\bns\bs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The NS protocol family is a collection of protocols layered atop the
+ _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bD_\ba_\bt_\ba_\bg_\br_\ba_\bm _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl (IDP) transport layer, and using the Xerox NS
+ address formats. The NS family provides protocol support for the
+ SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, and SOCK_RAW socket types; the
+ SOCK_RAW interface is a debugging tool, allowing you to trace all packets
+ entering, (or with toggling kernel variable, additionally leaving) the
+ local host.
+
+A\bAD\bDD\bDR\bRE\bES\bSS\bSI\bIN\bNG\bG
+ NS addresses are 12 byte quantities, consisting of a 4 byte Network num-
+ ber, a 6 byte Host number and a 2 byte port number, all stored in network
+ standard format. (on the VAX these are word and byte reversed; on the
+ Sun they are not reversed). The include file <_\bn_\be_\bt_\bn_\bs_\b/_\bn_\bs_\b._\bh> defines the NS
+ address as a structure containing unions (for quicker comparisons).
+
+ Sockets in the Internet protocol family use the following addressing
+ structure:
+
+ struct sockaddr_ns {
+ short sns_family;
+ struct ns_addr sns_addr;
+ char sns_zero[2];
+ };
+
+ where an _\bn_\bs_\b__\ba_\bd_\bd_\br is composed as follows:
+
+ union ns_host {
+ u_char c_host[6];
+ u_short s_host[3];
+ };
+
+ union ns_net {
+ u_char c_net[4];
+ u_short s_net[2];
+ };
+
+ struct ns_addr {
+ union ns_net x_net;
+ union ns_host x_host;
+ u_short x_port;
+ };
+
+ Sockets may be created with an address of all zeroes to effect
+ ``wildcard'' matching on incoming messages. The local port address spec-
+ ified in a bind(2) call is restricted to be greater than NSPORT_RESERVED
+ (=3000, in <_\bn_\be_\bt_\bn_\bs_\b/_\bn_\bs_\b._\bh>) unless the creating process is running as the
+ super-user, providing a space of protected port numbers.
+
+P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bLS\bS
+ The NS protocol family supported by the operating system is comprised of
+ the Internet Datagram Protocol (IDP) idp(4), Error Protocol (available
+ through IDP), and Sequenced Packet Protocol (SPP) spp(4).
+
+
+ SPP is used to support the SOCK_STREAM and SOCK_SEQPACKET abstraction,
+ while IDP is used to support the SOCK_DGRAM abstraction. The Error pro-
+ tocol is responded to by the kernel to handle and report errors in proto-
+ col processing; it is, however, only accessible to user programs through
+ heroic actions.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(3), byteorder(3), gethostbyname(3), getnetent(3),
+ getprotoent(3), getservent(3), ns(3), intro(4), spp(4), idp(4),
+ nsip(4)
+
+ _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\br_\ba_\bn_\bs_\bp_\bo_\br_\bt _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl_\bs, Xerox Corporation document XSIS, 028112.
+
+ _\bA_\bn _\bA_\bd_\bv_\ba_\bn_\bc_\be_\bd _\b4_\b._\b3 _\bB_\bS_\bD _\bI_\bn_\bt_\be_\br_\bp_\br_\bo_\bc_\be_\bs_\bs _\bC_\bo_\bm_\bm_\bu_\bn_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bT_\bu_\bt_\bo_\br_\bi_\ba_\bl.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The n\bns\bs protocol family appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 2
--- /dev/null
+NSIP(4) BSD Programmer's Manual NSIP(4)
+
+N\bNA\bAM\bME\bE
+ n\bns\bsi\bip\bp - software network interface encapsulating NS packets in IP packets
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ o\bop\bpt\bti\bio\bon\bns\bs N\bNS\bSI\bIP\bP
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\btn\bns\bs/\b/n\bns\bs_\b_i\bif\bf.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The n\bns\bsi\bip\bp interface is a software mechanism which may be used to transmit
+ Xerox NS(tm) packets through otherwise uncooperative networks. It func-
+ tions by prepending an IP header, and resubmitting the packet through the
+ UNIX IP machinery.
+
+ The super-user can advise the operating system of a willing partner by
+ naming an IP address to be associated with an NS address. Presently, on-
+ ly specific hosts pairs are allowed, and for each host pair, an artifi-
+ cial point-to-point interface is constructed. At some future date, IP
+ broadcast addresses or hosts may be paired with NS networks or hosts.
+
+ Specifically, a socket option of SO_NSIP_ROUTE is set on a socket of fam-
+ ily AF_NS, type SOCK_DGRAM, passing the following structure:
+
+ struct nsip_req {
+ struct sockaddr rq_ns; /* must be ns format destination */
+ struct sockaddr rq_ip; /* must be ip format gateway */
+ short rq_flags;
+ };
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ n\bns\bsi\bip\bp%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), ns(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The n\bns\bsi\bip\bp interface appeared in 4.3BSD.
+
+B\bBU\bUG\bGS\bS
+ It is absurd to have a separate pseudo-device for each pt-to-pt link.
+ There is no way to change the IP address for an NS host once the the en-
+ capsulation interface is set up. The request should honor flags of
+ RTF_GATEWAY to indicate remote networks, and the absence of RTF_UP should
+ be a clue to remove that partner. This was intended to postpone the ne-
+ cessity of rewriting reverse ARP for the en(4) device, and to allow pass-
+ ing XNS packets through an Arpanet-Milnet gateway, to facilitate testing
+ between some co-operating universities.
+
+4.3 Berkeley Distribution June 5, 1993 1
--- /dev/null
+NULL(4) BSD Programmer's Manual NULL(4)
+
+N\bNA\bAM\bME\bE
+ n\bnu\bul\bll\bl - the null device
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The n\bnu\bul\bll\bl device accepts and reads data as any ordinary (and willing) file
+ - but throws it away. The length of the n\bnu\bul\bll\bl device is always zero.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/null
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A n\bnu\bul\bll\bl device appeared in Version 7 AT&T UNIX.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+PTY(4) BSD Programmer's Manual PTY(4)
+
+N\bNA\bAM\bME\bE
+ p\bpt\bty\by - pseudo terminal driver
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ p\bps\bse\beu\bud\bdo\bo-\b-d\bde\bev\bvi\bic\bce\be p\bpt\bty\by [_\bc_\bo_\bu_\bn_\bt]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The pty driver provides support for a device-pair termed a _\bp_\bs_\be_\bu_\bd_\bo
+ _\bt_\be_\br_\bm_\bi_\bn_\ba_\bl. A pseudo terminal is a pair of character devices, a _\bm_\ba_\bs_\bt_\be_\br de-
+ vice and a _\bs_\bl_\ba_\bv_\be device. The slave device provides processes an inter-
+ face identical to that described in tty(4). However, whereas all other
+ devices which provide the interface described in tty(4) have a hardware
+ device of some sort behind them, the slave device has, instead, another
+ process manipulating it through the master half of the pseudo terminal.
+ That is, anything written on the master device is given to the slave de-
+ vice as input and anything written on the slave device is presented as
+ input on the master device.
+
+ In configuring, if an optional _\bc_\bo_\bu_\bn_\bt is given in the specification, that
+ number of pseudo terminal pairs are configured; the default count is 32.
+
+ The following ioctl(2) calls apply only to pseudo terminals:
+
+ TIOCSTOP Stops output to a terminal (e.g. like typing `^S'). Takes no
+ parameter.
+
+ TIOCSTART Restarts output (stopped by TIOCSTOP or by typing `^S').
+ Takes no parameter.
+
+ TIOCPKT Enable/disable _\bp_\ba_\bc_\bk_\be_\bt mode. Packet mode is enabled by speci-
+ fying (by reference) a nonzero parameter and disabled by
+ specifying (by reference) a zero parameter. When applied to
+ the master side of a pseudo terminal, each subsequent read
+ from the terminal will return data written on the slave part
+ of the pseudo terminal preceded by a zero byte (symbolically
+ defined as TIOCPKT_DATA), or a single byte reflecting control
+ status information. In the latter case, the byte is an in-
+ clusive-or of zero or more of the bits:
+
+ TIOCPKT_FLUSHREAD whenever the read queue for the terminal
+ is flushed.
+
+ TIOCPKT_FLUSHWRITE whenever the write queue for the terminal
+ is flushed.
+
+ TIOCPKT_STOP whenever output to the terminal is
+ stopped a la `^S'.
+
+ TIOCPKT_START whenever output to the terminal is
+ restarted.
+
+ TIOCPKT_DOSTOP whenever _\bt_\b__\bs_\bt_\bo_\bp_\bc is `^S' and _\bt_\b__\bs_\bt_\ba_\br_\bt_\bc is
+ `^Q'.
+
+ TIOCPKT_NOSTOP whenever the start and stop characters
+ are not `^S/^Q'.
+
+ While this mode is in use, the presence
+ of control status information to be read
+ from the master side may be detected by a
+ select(2) for exceptional conditions.
+
+
+ This mode is used by rlogin(1) and
+ rlogind(8) to implement a remote-echoed,
+ locally `^S/^Q' flow-controlled remote
+ login with proper back-flushing of out-
+ put; it can be used by other similar pro-
+ grams.
+
+ TIOCUCNTL Enable/disable a mode that allows a small number of simple
+ user ioctl commands to be passed through the pseudo-terminal,
+ using a protocol similar to that of TIOCPKT. The TIOCUCNTL
+ and TIOCPKT modes are mutually exclusive. This mode is en-
+ abled from the master side of a pseudo terminal by specifying
+ (by reference) a nonzero parameter and disabled by specifying
+ (by reference) a zero parameter. Each subsequent read from
+ the master side will return data written on the slave part of
+ the pseudo terminal preceded by a zero byte, or a single byte
+ reflecting a user control operation on the slave side. A us-
+ er control command consists of a special ioctl operation with
+ no data; the command is given as UIOCCMD(n), where _\bn is a
+ number in the range 1-255. The operation value _\bn will be re-
+ ceived as a single byte on the next read from the master
+ side. The ioctl UIOCCMD(0) is a no-op that may be used to
+ probe for the existence of this facility. As with TIOCPKT
+ mode, command operations may be detected with a select for
+ exceptional conditions.
+
+ TIOCREMOTE A mode for the master half of a pseudo terminal, independent
+ of TIOCPKT. This mode causes input to the pseudo terminal to
+ be flow controlled and not input edited (regardless of the
+ terminal mode). Each write to the control terminal produces
+ a record boundary for the process reading the terminal. In
+ normal usage, a write of data is like the data typed as a
+ line on the terminal; a write of 0 bytes is like typing an
+ end-of-file character. TIOCREMOTE can be used when doing re-
+ mote line editing in a window manager, or whenever flow con-
+ trolled input is required.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/pty[p-r][0-9a-f] master pseudo terminals
+ /dev/tty[p-r][0-9a-f] slave pseudo terminals
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The p\bpt\bty\by driver appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+ROUTE(4) BSD Programmer's Manual ROUTE(4)
+
+N\bNA\bAM\bME\bE
+ r\bro\bou\but\bte\be - kernel packet forwarding database
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bt/\b/i\bif\bf.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bt/\b/r\bro\bou\but\bte\be.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bP_\bF_\b__\bR_\bO_\bU_\bT_\bE, _\bS_\bO_\bC_\bK_\b__\bR_\bA_\bW, _\bi_\bn_\bt _\bf_\ba_\bm_\bi_\bl_\by);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ UNIX provides some packet routing facilities. The kernel maintains a
+ routing information database, which is used in selecting the appropriate
+ network interface when transmitting packets.
+
+ A user process (or possibly multiple co-operating processes) maintains
+ this database by sending messages over a special kind of socket. This
+ supplants fixed size ioctl(2)'s used in earlier releases. Routing table
+ changes may only be carried out by the super user.
+
+ The operating system may spontaneously emit routing messages in response
+ to external events, such as recipt of a re-direct, or failure to locate a
+ suitable route for a request. The message types are described in greater
+ detail below.
+
+ Routing database entries come in two flavors: for a specific host, or for
+ all hosts on a generic subnetwork (as specified by a bit mask and value
+ under the mask. The effect of wildcard or default route may be achieved
+ by using a mask of all zeros, and there may be hierarchical routes.
+
+ When the system is booted and addresses are assigned to the network in-
+ terfaces, each protocol family installs a routing table entry for each
+ interface when it is ready for traffic. Normally the protocol specifies
+ the route through each interface as a ``direct'' connection to the desti-
+ nation host or network. If the route is direct, the transport layer of a
+ protocol family usually requests the packet be sent to the same host
+ specified in the packet. Otherwise, the interface is requested to ad-
+ dress the packet to the gateway listed in the routing entry (i.e. the
+ packet is forwarded).
+
+ When routing a packet, the kernel will first attempt to find a route to
+ the destination host. Failing that, a search is made for a route to the
+ network of the destination. Finally, any route to a default
+ (``wildcard'') gateway is chosen. If no entry is found, the destination
+ is declared to be unreachable, and a routing-miss message is generated if
+ there are any listers on the routing control socket described below.
+
+ A wildcard routing entry is specified with a zero destination address
+ value. Wildcard routes are used only when the system fails to find a
+ route to the destination host and network. The combination of wildcard
+ routes and routing redirects can provide an economical mechanism for
+ routing traffic.
+
+ One opens the channel for passing routing control messasges by using the
+ socket call shown in the synopsis above:
+
+ The _\bf_\ba_\bm_\bi_\bl_\by paramter may be AF_UNSPEC which will provide routing informa-
+ tion for all address families, or can be restricted to a specific address
+ family by specifying which one is desired. There can be more than one
+ routing socket open per system.
+
+
+ Messages are formed by a header followed by a small number of sockadders
+ (now variable length particularly in the ISO case), interpreted by posi-
+ tion, and delimited by the new length entry in the sockaddr. An example
+ of a message with four addresses might be an ISO redirect: Destination,
+ Netmask, Gateway, and Author of the redirect. The interpretation of
+ which address are present is given by a bit mask within the header, and
+ the sequence is least significant to most significant bit within the vec-
+ tor.
+
+ Any messages sent to the kernel are returned, and copies are sent to all
+ interested listeners. The kernel will provide the process id. for the
+ sender, and the sender may use an additional sequence field to distin-
+ guish between outstanding messages. However, message replies may be lost
+ when kernel buffers are exhausted.
+
+ The kernel may reject certain messages, and will indicate this by filling
+ in the _\br_\bt_\bm_\b__\be_\br_\br_\bn_\bo field. The routing code returns EEXIST if requested to
+ duplicate an existing entry, ESRCH if requested to delete a non-existent
+ entry, or ENOBUFS if insufficient resources were available to install a
+ new route. In the current implementation, all routing process run local-
+ ly, and the values for _\br_\bt_\bm_\b__\be_\br_\br_\bn_\bo are available through the normal _\be_\br_\br_\bn_\bo
+ mechanism, even if the routing reply message is lost.
+
+ A process may avoid the expense of reading replies to its own messages by
+ issuing a setsockopt(2) call indicating that the SO_USELOOPBACK option at
+ the SOL_SOCKET level is to be turned off. A process may ignore all mes-
+ sages from the routing socket by doing a shutdown(2) system call for fur-
+ ther input.
+
+ If a route is in use when it is deleted, the routing entry will be marked
+ down and removed from the routing table, but the resources associated
+ with it will not be reclaimed until all references to it are released.
+ User processes can obtain information about the routing entry to a spe-
+ cific destination by using a RTM_GET message, or by reading the _\b/_\bd_\be_\bv_\b/_\bk_\bm_\be_\bm
+ device, or by issuing a getkerninfo(2) system call.
+
+ Messages include:
+
+ #define RTM_ADD 0x1 /* Add Route */
+ #define RTM_DELETE 0x2 /* Delete Route */
+ #define RTM_CHANGE 0x3 /* Change Metrics, Flags, or Gateway */
+ #define RTM_GET 0x4 /* Report Information */
+ #define RTM_LOOSING 0x5 /* Kernel Suspects Partitioning */
+ #define RTM_REDIRECT 0x6 /* Told to use different route */
+ #define RTM_MISS 0x7 /* Lookup failed on this address */
+ #define RTM_RESOLVE 0xb /* request to resolve dst to LL addr */
+
+ A message header consists of:
+
+ struct rt_msghdr {
+ u_short rmt_msglen; /* to skip over non-understood messages */
+ u_char rtm_version; /* future binary compatability */
+ u_char rtm_type; /* message type */
+ u_short rmt_index; /* index for associated ifp */
+ pid_t rmt_pid; /* identify sender */
+ int rtm_addrs; /* bitmask identifying sockaddrs in msg */
+ int rtm_seq; /* for sender to identify action */
+ int rtm_errno; /* why failed */
+ int rtm_flags; /* flags, incl kern & message, e.g. DONE */
+ int rtm_use; /* from rtentry */
+ u_long rtm_inits; /* which values we are initializing */
+ struct rt_metrics rtm_rmx; /* metrics themselves */
+ };
+
+ where
+
+ struct rt_metrics {
+ u_long rmx_locks; /* Kernel must leave these values alone */
+ u_long rmx_mtu; /* MTU for this path */
+ u_long rmx_hopcount; /* max hops expected */
+ u_long rmx_expire; /* lifetime for route, e.g. redirect */
+ u_long rmx_recvpipe; /* inbound delay-bandwith product */
+ u_long rmx_sendpipe; /* outbound delay-bandwith product */
+ u_long rmx_ssthresh; /* outbound gateway buffer limit */
+ u_long rmx_rtt; /* estimated round trip time */
+ u_long rmx_rttvar; /* estimated rtt variance */
+ };
+
+ Flags include the values:
+
+ #define RTF_UP 0x1 /* route useable */
+ #define RTF_GATEWAY 0x2 /* destination is a gateway */
+ #define RTF_HOST 0x4 /* host entry (net otherwise) */
+ #define RTF_NORMAL 0x8 /* subnet mask is cannonical */
+ #define RTF_DYNAMIC 0x10 /* created dynamically (by redirect) */
+ #define RTF_MODIFIED 0x20 /* modified dynamically (by redirect) */
+ #define RTF_DONE 0x40 /* message confirmed */
+ #define RTF_MASK 0x80 /* subnet mask present */
+
+ Specfiers for metric values in rmx_locks and rtm_inits are:
+
+ #define RTV_SSTHRESH 0x1 /* init or lock _ssthresh */
+ #define RTV_RPIPE 0x2 /* init or lock _recvpipe */
+ #define RTV_SPIPE 0x4 /* init or lock _sendpipe */
+ #define RTV_HOPCOUNT 0x8 /* init or lock _hopcount */
+ #define RTV_RTT 0x10 /* init or lock _rtt */
+ #define RTV_RTTVAR 0x20 /* init or lock _rttvar */
+ #define RTV_MTU 0x40 /* init or lock _mtu */
+
+ Specifiers for which addresses are present in the messages are:
+
+ #define RTA_DST 0x1 /* destination sockaddr present */
+ #define RTA_GATEWAY 0x2 /* gateway sockaddr present */
+ #define RTA_NETMASK 0x4 /* netmask sockaddr present */
+ #define RTA_GENMASK 0x8 /* cloning mask sockaddr present */
+ #define RTA_IFP 0x10 /* interface name sockaddr present */
+ #define RTA_IFA 0x20 /* interface addr sockaddr present */
+ #define RTA_AUTHOR 0x40 /* sockaddr for author of redirect */
+
+4.4BSD June 9, 1993 3
--- /dev/null
+BWTWO(4) BSD Programmer's Manual (SPARC Architecture) BWTWO(4)
+
+N\bNA\bAM\bME\bE
+ b\bbw\bwt\btw\bwo\bo - monochromatic frame buffer
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ b\bbw\bwt\btw\bwo\bo*\b* a\bat\bt s\bsb\bbu\bus\bs?\b? s\bsl\blo\bot\bt ?\b? o\bof\bff\bfs\bse\bet\bt ?\b?
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The b\bbw\bwt\btw\bwo\bo is a memory based black and white frame buffer. It supports
+ the minimal ioctl's needed to run X11.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ cgthree(4)
+
+4.4BSD June 9, 1993 1
--- /dev/null
+CGTHREE(4) BSD Programmer's Manual (SPARC Architecture) CGTHREE(4)
+
+N\bNA\bAM\bME\bE
+ c\bcg\bgt\bth\bhr\bre\bee\be - 8-bit color frame buffer
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bcg\bgt\bth\bhr\bre\bee\be*\b* a\bat\bt s\bsb\bbu\bus\bs?\b? s\bsl\blo\bot\bt ?\b? o\bof\bff\bfs\bse\bet\bt ?\b?
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The c\bcg\bgt\bth\bhr\bre\bee\be is a memory based color frame buffer. It supports the mini-
+ mal ioctl's needed to run X11.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ bwtwo(4)
+
+4.4BSD June 9, 1993 1
--- /dev/null
+MEM(4) BSD Programmer's Manual (SPARC Architecture) MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm - main memory
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the computer.
+ Byte offsets in this file are interpreted as physical memory addresses.
+ Reading and writing this file is equivalent to reading and writing memory
+ itself. An error will be returned if an attempt is made to reference an
+ offset outside of /\b/d\bde\bev\bv/\b/m\bme\bem\bm.
+
+ Kernel virtual memory is accessed via the file /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the same man-
+ ner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently mapped
+ to memory are allowed.
+
+S\bSP\bPA\bAR\bRC\bC
+ On the SPARC, physical memory may be discontiguous; kernel virtual memory
+ begins at 0xf8000000.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The files m\bme\bem\bm and k\bkm\bme\bem\bm appeared in Version 6 AT&T UNIX.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+MEM(4) BSD Programmer's Manual (SPARC Architecture) MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm - main memory
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the computer.
+ Byte offsets in this file are interpreted as physical memory addresses.
+ Reading and writing this file is equivalent to reading and writing memory
+ itself. An error will be returned if an attempt is made to reference an
+ offset outside of /\b/d\bde\bev\bv/\b/m\bme\bem\bm.
+
+ Kernel virtual memory is accessed via the file /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the same man-
+ ner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently mapped
+ to memory are allowed.
+
+S\bSP\bPA\bAR\bRC\bC
+ On the SPARC, physical memory may be discontiguous; kernel virtual memory
+ begins at 0xf8000000.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The files m\bme\bem\bm and k\bkm\bme\bem\bm appeared in Version 6 AT&T UNIX.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+OPENPROM(4) BSD Programmer's Manual (SPARC Architecture) OPENPROM(4)
+
+N\bNA\bAM\bME\bE
+ o\bop\bpe\ben\bnp\bpr\bro\bom\bm - OPENPROM and EEPROM interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<m\bma\bac\bch\bhi\bin\bne\be/\b/o\bop\bpe\ben\bnp\bpr\bro\bom\bmi\bio\bo.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file /\b/d\bde\bev\bv/\b/o\bop\bpe\ben\bnp\bpr\bro\bom\bm is an interface to the SPARC OPENPROM, including
+ the EEPROM area. This interface is highly stylized; ioctls are used for
+ all operations. These ioctls refer to ``nodes'', which are simply
+ ``magic'' integer values describing data areas. Occasionally the number
+ 0 may be used or returned instead, as described below. A special distin-
+ guished ``options'' node holds the EEPROM settings.
+
+ The calls that take and/or return a node use a pointer to an int variable
+ for this purpose; others use a pointer to an struct opiocdesc descriptor,
+ which contains a node and two counted strings. The first string is com-
+ prised of the fields op_namelen (an int) and op_name (a char *), giving
+ the name of a field. The second string is comprised of the fields
+ op_buflen and op_buf, used analogously. These two counted strings work
+ in a ``value-result'' fashion. At entry to the ioctl, the counts are ex-
+ pected to reflect the buffer size; on return, the counts are updated to
+ reflect the buffer contents.
+
+ The following ioctls are supported:
+
+ OPIOCGETOPTNODE Takes nothing, and fills in the options node number.
+
+ OPIOCGETNEXT Takes a node number and returns the number of the fol-
+ lowing node. The node following the last node is number
+ 0; the node following number 0 is the first node.
+
+ OPIOCGETCHILD Takes a node number and returns the number of the first
+ ``child'' of that node. This child may have siblings;
+ these can be discovered by using OPIOCGETNEXT.
+
+ OPIOCGET Fills in the value of the named property for the given
+ node. If no such property is associated with that node,
+ the value length is set to -1. If the named property
+ exists but has no value, the value length is set to 0.
+
+ OPIOCSET Writes the given value under the given name. The OPEN-
+ PROM may refuse this operation; in this case EINVAL is
+ returned.
+
+ OPIOCNEXTPROP Finds the property whose name follows the given name in
+ OPENPROM internal order. The resulting name is returned
+ in the value field. If the named property is the last,
+ the ``next'' name is the empty string. As with
+ OPIOCGETNEXT, the next name after the empty string is
+ the first name.
+
+F\bFI\bIL\bLE\bES\bS
+ _\b/_\bd_\be_\bv_\b/_\bo_\bp_\be_\bn_\bp_\br_\bo_\bm
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ The following may result in rejection of an operation:
+
+ [EINVAL] The given node number is not zero and does not correspond
+ to any valid node, or is zero where zero is not allowed.
+
+ [EBADF] The requested operation requires permissions not specified
+
+ at the call to o\bop\bpe\ben\bn().
+
+ [ENAMETOOLONG]
+ The given name or value field exceeds the maximum allowed
+ length (8191 bytes).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ioctl(2)
+
+B\bBU\bUG\bGS\bS
+ Due to limitations within the OPENPROM itself, these functions run at el-
+ evated priority and may adversely affect system performance.
+
+4.4BSD June 5, 1993 2
--- /dev/null
+SPP(4) BSD Programmer's Manual SPP(4)
+
+N\bNA\bAM\bME\bE
+ s\bsp\bpp\bp - Xerox Sequenced Packet Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\btn\bns\bs/\b/n\bns\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\btn\bns\bs/\b/s\bsp\bp.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bA_\bF_\b__\bN_\bS, _\bS_\bO_\bC_\bK_\b__\bS_\bT_\bR_\bE_\bA_\bM, _\b0);
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bA_\bF_\b__\bN_\bS, _\bS_\bO_\bC_\bK_\b__\bS_\bE_\bQ_\bP_\bA_\bC_\bK_\bE_\bT, _\b0);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The SPP protocol provides reliable, flow-controlled, two-way transmission
+ of data. It is a byte-stream protocol used to support the SOCK_STREAM
+ abstraction. SPP uses the standard NS(tm) address formats.
+
+ Sockets utilizing the SPP protocol are either ``active'' or ``passive''.
+ Active sockets initiate connections to passive sockets. By default SPP
+ sockets are created active; to create a passive socket the listen(2) sys-
+ tem call must be used after binding the socket with the bind(2) system
+ call. Only passive sockets may use the accept(2) call to accept incoming
+ connections. Only active sockets may use the connect(2) call to initiate
+ connections.
+
+ Passive sockets may ``underspecify'' their location to match incoming
+ connection requests from multiple networks. This technique, termed
+ ``wildcard addressing'', allows a single server to provide service to
+ clients on multiple networks. To create a socket which listens on all
+ networks, the NS address of all zeroes must be bound. The SPP port may
+ still be specified at this time; if the port is not specified the system
+ will assign one. Once a connection has been established the socket's ad-
+ dress is fixed by the peer entity's location. The address assigned the
+ socket is the address associated with the network interface through which
+ packets are being transmitted and received. Normally this address corre-
+ sponds to the peer entity's network.
+
+ If the SOCK_SEQPACKET socket type is specified, each packet received has
+ the actual 12 byte sequenced packet header left for the user to inspect:
+
+ struct sphdr {
+ u_char sp_cc; /* connection control */
+ #define SP_EM 0x10 /* end of message */
+ u_char sp_dt; /* datastream type */
+ u_short sp_sid;
+ u_short sp_did;
+ u_short sp_seq;
+ u_short sp_ack;
+ u_short sp_alo;
+ };
+
+ This facilitates the implementation of higher level Xerox protocols which
+ make use of the data stream type field and the end of message bit. Con-
+ versely, the user is required to supply a 12 byte header, the only part
+ of which inspected is the data stream type and end of message fields.
+
+ For either socket type, packets received with the Attention bit sent are
+ interpreted as out of band data. Data sent with ``send(..., ..., ...,
+ MSG_OOB'') cause the attention bit to be set.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+
+ A socket operation may fail with one of the following errors returned:
+
+ [EISCONN] when trying to establish a connection on a socket which
+ already has one;
+
+ [ENOBUFS] when the system runs out of memory for an internal data
+ structure;
+
+ [ETIMEDOUT] when a connection was dropped due to excessive retrans-
+ missions;
+
+ [ECONNRESET] when the remote peer forces the connection to be closed;
+
+ [ECONNREFUSED] when the remote peer actively refuses connection estab-
+ lishment (usually because no process is listening to the
+ port);
+
+ [EADDRINUSE] when an attempt is made to create a socket with a port
+ which has already been allocated;
+
+ [EADDRNOTAVAIL] when an attempt is made to create a socket with a net-
+ work address for which no network interface exists.
+
+S\bSO\bOC\bCK\bKE\bET\bT O\bOP\bPT\bTI\bIO\bON\bNS\bS
+ SO_DEFAULT_HEADERS when set, this determines the data stream type and
+ whether the end of message bit is to be set on every
+ ensuing packet.
+
+ SO_MTU This specifies the maximum ammount of user data in a
+ single packet. The default is 576 bytes - size-
+ of(struct spidp). This quantity affects windowing -
+ increasing it without increasing the amount of
+ buffering in the socket will lower the number of un-
+ read packets accepted. Anything larger than the de-
+ fault will not be forwarded by a bona fide XEROX
+ product internetwork router. The data argument for
+ the setsockopt call must be an unsigned short.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), ns(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The s\bsp\bpp\bp protocol appeared in 4.3BSD.
+
+B\bBU\bUG\bGS\bS
+ There should be some way to reflect record boundaries in a stream. For
+ stream mode, there should be an option to get the data stream type of the
+ record the user process is about to receive.
+
+4.3 Berkeley Distribution June 5, 1993 2
--- /dev/null
+FD(4) BSD Programmer's Manual FD(4)
+
+N\bNA\bAM\bME\bE
+ f\bfd\bd, s\bst\btd\bdi\bin\bn, s\bst\btd\bdo\bou\but\bt, s\bst\btd\bde\ber\brr\br - file descriptor files
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The files _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\b0 through _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\b# refer to file descriptors which can
+ be accessed through the file system. If the file descriptor is open and
+ the mode the file is being opened with is a subset of the mode of the ex-
+ isting descriptor, the call:
+
+ fd = open("/dev/fd/0", mode);
+
+ and the call:
+
+ fd = fcntl(0, F_DUPFD, 0);
+
+ are equivalent.
+
+ Opening the files _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn, _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt and _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br is equivalent
+ to the following calls:
+
+ fd = fcntl(STDIN_FILENO, F_DUPFD, 0);
+ fd = fcntl(STDOUT_FILENO, F_DUPFD, 0);
+ fd = fcntl(STDERR_FILENO, F_DUPFD, 0);
+
+ Flags to the open(2) call other than O_RDONLY, O_WRONLY and O_RDWR are
+ ignored.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/fd/#
+ /dev/stdin
+ /dev/stdout
+ /dev/stderr
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+4.4BSD June 9, 1993 1
--- /dev/null
+FD(4) BSD Programmer's Manual FD(4)
+
+N\bNA\bAM\bME\bE
+ f\bfd\bd, s\bst\btd\bdi\bin\bn, s\bst\btd\bdo\bou\but\bt, s\bst\btd\bde\ber\brr\br - file descriptor files
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The files _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\b0 through _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\b# refer to file descriptors which can
+ be accessed through the file system. If the file descriptor is open and
+ the mode the file is being opened with is a subset of the mode of the ex-
+ isting descriptor, the call:
+
+ fd = open("/dev/fd/0", mode);
+
+ and the call:
+
+ fd = fcntl(0, F_DUPFD, 0);
+
+ are equivalent.
+
+ Opening the files _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn, _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt and _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br is equivalent
+ to the following calls:
+
+ fd = fcntl(STDIN_FILENO, F_DUPFD, 0);
+ fd = fcntl(STDOUT_FILENO, F_DUPFD, 0);
+ fd = fcntl(STDERR_FILENO, F_DUPFD, 0);
+
+ Flags to the open(2) call other than O_RDONLY, O_WRONLY and O_RDWR are
+ ignored.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/fd/#
+ /dev/stdin
+ /dev/stdout
+ /dev/stderr
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+4.4BSD June 9, 1993 1
--- /dev/null
+FD(4) BSD Programmer's Manual FD(4)
+
+N\bNA\bAM\bME\bE
+ f\bfd\bd, s\bst\btd\bdi\bin\bn, s\bst\btd\bdo\bou\but\bt, s\bst\btd\bde\ber\brr\br - file descriptor files
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The files _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\b0 through _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\b# refer to file descriptors which can
+ be accessed through the file system. If the file descriptor is open and
+ the mode the file is being opened with is a subset of the mode of the ex-
+ isting descriptor, the call:
+
+ fd = open("/dev/fd/0", mode);
+
+ and the call:
+
+ fd = fcntl(0, F_DUPFD, 0);
+
+ are equivalent.
+
+ Opening the files _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn, _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt and _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br is equivalent
+ to the following calls:
+
+ fd = fcntl(STDIN_FILENO, F_DUPFD, 0);
+ fd = fcntl(STDOUT_FILENO, F_DUPFD, 0);
+ fd = fcntl(STDERR_FILENO, F_DUPFD, 0);
+
+ Flags to the open(2) call other than O_RDONLY, O_WRONLY and O_RDWR are
+ ignored.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/fd/#
+ /dev/stdin
+ /dev/stdout
+ /dev/stderr
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+4.4BSD June 9, 1993 1
--- /dev/null
+ACE(4) BSD Programmer's Manual (Tahoe Architecture) ACE(4)
+
+N\bNA\bAM\bME\bE
+ a\bac\bce\be - ACC 10 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be a\bac\bce\be0\b0 a\bat\bt v\bvb\bba\ba?\b? c\bcs\bsr\br 0\b0x\bxf\bff\bff\bff\bf0\b00\b00\b00\b0 f\bfl\bla\bag\bgs\bs 0\b0x\bxf\bff\bff\bf8\b80\b00\b00\b00\b0 v\bve\bec\bct\bto\bor\br a\bac\bce\bec\bci\bin\bnt\bt
+ a\bac\bce\ber\bri\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The a\bac\bce\be interface provides access to a 10 Mb/s Ethernet network through
+ an ACC controller.
+
+ The hardware has 32 kilobytes of dual-ported memory on the VERSAbus. This
+ memory is used for internal buffering by the board, and the interface
+ code reads the buffer contents directly through the VERSAbus. The address
+ of this memory is given in the _\bf_\bl_\ba_\bg_\bs field in the configuration file.
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl(2). The a\bac\bce\be interface employs the address resolution
+ protocol described in arp(4) to dynamically map between Internet and Eth-
+ ernet addresses on the local network.
+
+ The interface normally tries to use a ``trailer'' encapsulation to mini-
+ mize copying data on input and output. The use of trailers is negotiated
+ with ARP. This negotiation may be disabled, on a per-interface basis, by
+ setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+ The device implements an exponential backoff algorithm when notified of a
+ collision on the cable. This algorithm utilizes a table of random num-
+ bers setup by the system at boot time. The delay is done in the con-
+ troller.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ a\bac\bce\be%\b%d\bd:\b: s\bst\btr\bra\bay\by x\bxm\bmi\bit\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt,\b, x\bxn\bnc\bct\bt %\b%d\bd.\b. An unexpected transmission com-
+ plete interrupt was received; the interrupt is ignored.
+
+ a\bac\bce\be%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), inet(4), arp(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The a\bac\bce\be driver appeared in 4.3BSD-Tahoe.
+
+B\bBU\bUG\bGS\bS
+ The hardware is not capable of talking to itself. The software imple-
+ ments local sending and broadcast by sending such packets to the loop in-
+ terface. This is a kludge.
+
+ The device doesn't autoconfigure its interrupt vector; it is set at 0x90
+ + eight times the unit number.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+AUTOCONF(4) BSD Programmer's Manual (Tahoe Architecture) AUTOCONF(4)
+
+N\bNA\bAM\bME\bE
+ a\bau\but\bto\boc\bco\bon\bnf\bf - diagnostics from autoconfiguration code
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ When UNIX bootstraps it probes the innards of the machine it is running
+ on and locates controllers, drives, and other devices, printing out what
+ it finds on the console. This procedure is driven by a system configura-
+ tion table which is processed by config(8) and compiled into each kernel.
+
+ VERSAbus devices are located by probing to see if their control-status
+ registers respond. If not, they are silently ignored. If the control
+ status register responds but the device cannot be made to interrupt, a
+ diagnostic warning will be printed on the console and the device will not
+ be available to the system.
+
+ A generic system may be built which picks its root device at boot time as
+ the ``best'' available device. If such a system is booted with the
+ RB_ASKNAME option of (see reboot(2)), then the name of the root device
+ is read from the console terminal at boot time, and any available device
+ may be used.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ v\bvb\bba\ba%\b%d\bd a\bat\bt %\b%x\bx.\b. A VERSAbus adapter was found and mapped into the address
+ space of the operating system starting at virtual address `%x'. UNIX will
+ call it `vba%d'.
+
+ %\b%s\bs%\b%d\bd a\bat\bt v\bvb\bba\ba%\b%d\bd d\bdr\bri\biv\bve\be %\b%d\bd.\b. A tape formatter or a disk was found on the
+ VERSAbus; for disks `%s%d' will look like `dk0', for tape formatters like
+ `yc1'. The drive number comes from the unit plug on the drive or in the
+ tape formatter (_\bn_\bo_\bt on the tape drive; see below).
+
+ %\b%s\bs%\b%d\bd a\bat\bt %\b%s\bs%\b%d\bd s\bsl\bla\bav\bve\be %\b%d\bd.\b. Which would look like `yc0 at cy0 slave 0%',
+ where _\by_\bc_\b0 is the name for the tape device and _\bc_\by_\b0 is the name for the
+ formatter. A tape slave was found on the tape formatter at the indicated
+ drive number (on the front of the tape drive). UNIX will call the de-
+ vice, e.g., cy0.
+
+ %\b%s\bs%\b%d\bd a\bat\bt v\bvb\bba\ba%\b%d\bd c\bcs\bsr\br %\b%x\bx v\bve\bec\bc %\b%x\bx i\bip\bpl\bl %\b%x\bx.\b. The device `%s%d', e.g. `vd0' was
+ found on `vba%d' at control-status register address `%x' and with device
+ vector `%x'. The device interrupted at priority level `%x'.
+
+ %\b%s\bs%\b%d\bd a\bat\bt v\bvb\bba\ba%\b%d\bd c\bcs\bsr\br %\b%x\bx n\bno\bo i\bin\bnt\bte\ber\brr\bru\bup\bpt\bts\bs.\b. The device was found on `vba%d' at
+ control-status register address `%x'; no interrupts were configured for
+ the device.
+
+ %\b%s\bs%\b%d\bd a\bat\bt v\bvb\bba\ba%\b%d\bd c\bcs\bsr\br %\b%x\bx d\bdi\bid\bdn\bn'\b't\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. The device did not interrupt,
+ likely because it is broken, hung, or not the kind of device it is adver-
+ tised to be. The csr address is interpreted as described above.
+
+ %\b%s\bs%\b%d\bd a\bat\bt %\b%s\bs%\b%d\bd s\bsl\bla\bav\bve\be %\b%d\bd.\b. Which would look like `dk0 at vd0 slave 0', where
+ _\bd_\bk_\b0 is the name of a disk drive and _\bv_\bd_\b0 is the name of the controller.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ config(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The a\bau\but\bto\boc\bco\bon\bnf\bf special file appeared in 4.3BSD-Tahoe.
+
+B\bBU\bUG\bGS\bS
+ Very few devices actually figure out their interrupt vector by forcing
+ the device to interrupt. Only the upper megabyte of the VERSAbus address
+ space is mapped into the system's virtual address space.
+
+4.3-Tahoe Berkeley Distribution June 5, 1993 1
--- /dev/null
+CONS(4) BSD Programmer's Manual (Tahoe Architecture) CONS(4)
+
+N\bNA\bAM\bME\bE
+ c\bco\bon\bns\bs, C\bCP\bP, r\bre\bem\bmo\bot\bte\be - Tahoe console interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The console is available to the processor through the console registers.
+ It acts like a normal terminal, except that a ``~\b~'' is used to transfer
+ commands to the console processor when the front panel key switch is in
+ the ``foo'' or ``bar'' position. When the console processor is in con-
+ trol, a `#>' prompt is displayed. To continue execution after halting
+ the machine with `~h', use `r'.
+
+ ~\b~h\bh Halt the machine.
+
+ ~\b~b\bb Force a reboot.
+
+ ~\b~r\br Continue execution after a ~\b~h\bh.
+
+ Refer to the Tahoe console processor handbook for the complete list of
+ facilities available through the console processor.
+
+ The C\bCP\bP device provides direct access to the console processor. The
+ r\bre\bem\bmo\bot\bte\be device is a secondary console terminal used for remote diagnosis;
+ it is normally connected to a modem.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/console
+ /dev/CP
+ /dev/remote
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ kdb(4), tty(4), reboot(8)
+
+ _\bC_\bo_\bn_\bs_\bo_\bl_\be _\bP_\br_\bo_\bc_\be_\bs_\bs_\bo_\br _\bH_\ba_\bn_\bd_\bb_\bo_\bo_\bk.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The c\bco\bon\bns\bs interface appeared in 4.3BSD-Tahoe.
+
+4.3-Tahoe Berkeley Distribution June 5, 1993 1
--- /dev/null
+CY(4) BSD Programmer's Manual (Tahoe Architecture) CY(4)
+
+N\bNA\bAM\bME\bE
+ c\bcy\by - Cipher/tapemaster magtape interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br c\bcy\by0\b0 a\bat\bt v\bvb\bba\ba?\b? c\bcs\bsr\br 0\b0x\bxf\bff\bff\bff\bf4\b40\b00\b00\b0 v\bve\bec\bct\bto\bor\br c\bcy\byi\bin\bnt\btr\br
+ d\bde\bev\bvi\bic\bce\be y\byc\bc0\b0 a\bat\bt c\bcy\by0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The Cipher F880, M990/ Tapemaster combination provides a standard tape
+ drive interface as described in mt(4). The Cipher F880 tape drive oper-
+ ates at 1600 or 3200 BPI - controlled by a switch on the drive. The Ci-
+ pher M990 operates at 1600, 3200 or 6250 BPI - controlled by switches on
+ the front of the drive.
+
+ The Tapemaster controller board is actually a Multibus controller ac-
+ cessed through a Halversa Multibus to VERSAbus converter card.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ c\bcy\by%\b%d\bd:\b: %\b%d\bdk\bkb\bb b\bbu\buf\bff\bfe\ber\br.\b. The formatter was found to have a `%d' kilobyte
+ buffer during autoconfiguration.
+
+ c\bcy\by%\b%d\bd:\b: t\bti\bim\bme\beo\bou\but\bt o\bor\br e\ber\brr\br d\bdu\bur\bri\bin\bng\bg i\bin\bni\bit\bt,\b, s\bst\bta\bat\btu\bus\bs=\b=%\b%b\bb.\b. The controller timed out or
+ an error occurred on a nop command during autoconfiguration; the con-
+ troller may be hung.
+
+ c\bcy\by%\b%d\bd:\b: c\bco\bon\bnf\bfi\big\bgu\bur\bra\bat\bti\bio\bon\bn f\bfa\bai\bil\blu\bur\bre\be,\b, s\bst\bta\bat\btu\bus\bs=\b=%\b%b\bb.\b. The controller timed out or an
+ error occurred on a configure command during autoconfiguration; the con-
+ troller may be hung.
+
+ y\byc\bc%\b%d\bd:\b: n\bno\bo w\bwr\bri\bit\bte\be r\bri\bin\bng\bg.\b. An attempt was made to write on the tape drive when
+ no write ring was present; this message is written on the terminal of the
+ user who tried to access the tape.
+
+ y\byc\bc%\b%d\bd:\b: n\bno\bot\bt o\bon\bnl\bli\bin\bne\be.\b. An attempt was made to access the tape while it was
+ offline; this message is written on the terminal of the user who tried to
+ access the tape.
+
+ c\bcy\by%\b%d\bd:\b: i\bi/\b/o\bo s\bsi\biz\bze\be t\bto\boo\bo l\bla\bar\brg\bge\be.\b. A read or a write request exceeded the maximum
+ transfer size for the controller - 32 kilobytes; this message is written
+ on the terminal of the user who made the read or write request.
+
+ y\byc\bc%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br b\bbn\bn%\b%d\bd s\bst\bta\bat\btu\bus\bs=\b=%\b%b\bb.\b. A tape error occurred at block _\bb_\bn; the
+ cy error register is printed in hexadecimal with the bits symbolically
+ decoded. Any error is fatal on non-raw tape; when possible the driver
+ will have retried the operation which failed several times before report-
+ ing the error. For known errors, the trailing `%s' is one of the follow-
+ ing:
+
+ t\bti\bim\bme\beo\bou\but\bt,\b, t\bti\bim\bme\beo\bou\but\bt1\b1,\b, t\bti\bim\bme\beo\bou\but\bt2\b2,\b, t\bti\bim\bme\beo\bou\but\bt3\b3,\b, t\bti\bim\bme\beo\bou\but\bt4\b4.\b. Time out errors; this
+ may be due to trying to read a blank tape or the controller failing to
+ interrupt or the drive dropping off-line.
+
+ n\bno\bon\bn-\b-e\bex\bxi\bis\bst\bte\ben\bnt\bt m\bme\bem\bmo\bor\bry\by.\b. A controller transfer to memory timed out.
+
+ b\bbl\bla\ban\bnk\bk t\bta\bap\bpe\be.\b. The controller detected a blank tape when data was expected.
+
+ m\bmi\bic\bcr\bro\bo-\b-d\bdi\bia\bag\bgn\bno\bos\bst\bti\bic\bc,\b, m\bmi\bis\bss\bsi\bin\bng\bg d\bdi\bia\bag\bgn\bno\bos\bst\bti\bic\bc j\bju\bum\bmp\bpe\ber\br.\b. An error occurred in the
+ micro-diagnostics or the diagnostic mode jumper was not installed while
+ attempting to execute a diagnostics command.
+
+ e\beo\bot\bt/\b/b\bbo\bot\bt d\bde\bet\bte\bec\bct\bte\bed\bd.\b. The controller unexpectedly encountered end-of-tape or
+
+
+ beginning-of-tape during an operation.
+
+ r\bre\bet\btr\bry\by u\bun\bns\bsu\buc\bcc\bce\bes\bss\bsf\bfu\bul\bl.\b. An error occurred which could not be recovered by
+ repeated retries.
+
+ f\bfi\bif\bfo\bo o\bov\bve\ber\br/\b/u\bun\bnd\bde\ber\br-\b-f\bfl\blo\bow\bw.\b. The controller was unable to transfer data to the
+ drive fast enough. This usually occurs because a transfer was performed
+ without using the controller's internal buffer.
+
+ d\bdr\bri\biv\bve\be t\bto\bo c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br p\bpa\bar\bri\bit\bty\by e\ber\brr\bro\bor\br.\b. A parity error was detected by the
+ controller in data transferred between the drive and the controller's in-
+ ternal buffer.
+
+ p\bpr\bro\bom\bm c\bch\bhe\bec\bck\bks\bsu\bum\bm.\b. The controller thinks its PROM is corrupted.
+
+ t\bti\bim\bme\be o\bou\but\bt t\bta\bap\bpe\be s\bst\btr\bro\bob\bbe\be (\b(r\bre\bec\bco\bor\brd\bd l\ble\ben\bng\bgt\bth\bh e\ber\brr\bro\bor\br)\b).\b. The controller timed out
+ while looking for an inter-record gap. This usually occurs because the
+ records on the tape are larger than expected (or can be handled).
+
+ t\bta\bap\bpe\be n\bno\bot\bt r\bre\bea\bad\bdy\by.\b. The drive does not respond; usually the power has been
+ turned off or a cable has come off.
+
+ w\bwr\bri\bit\bte\be p\bpr\bro\bot\bte\bec\bct\bte\bed\bd.\b. A write ring was present in the tape when a write was
+ attempted.
+
+ i\bin\bnv\bva\bal\bli\bid\bd l\bli\bin\bnk\bk p\bpo\boi\bin\bnt\bte\ber\br.\b. An invalid pointer was encountered in a tape pa-
+ rameter block.
+
+ u\bun\bne\bex\bxp\bpe\bec\bct\bte\bed\bd f\bfi\bil\ble\be m\bma\bar\brk\bk.\b. A tape file mark was encountered while trying to
+ read or space.
+
+ i\bin\bnv\bva\bal\bli\bid\bd b\bby\byt\bte\be c\bco\bou\bun\bnt\bt.\b. An invalid byte count parameter was encountered in a
+ tape parameter block.
+
+ u\bun\bni\bid\bde\ben\bnt\bti\bif\bfi\bie\bed\bd h\bha\bar\brd\bdw\bwa\bar\bre\be e\ber\brr\bro\bor\br.\b.
+ s\bst\btr\bre\bea\bam\bmi\bin\bng\bg t\bte\ber\brm\bmi\bin\bna\bat\bte\bed\bd.\b. These should not happen.
+
+ y\byc\bc%\b%d\bd:\b: l\blo\bos\bst\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. The controller failed to respond with an interrupt
+ signifying completion of the current command. The system will attempt to
+ abort the outstanding command and reset the controller.
+
+ c\bcy\by%\b%d\bd:\b: r\bre\bes\bse\bet\bt f\bfa\bai\bil\ble\bed\bd.\b. The system was unable to reset the controller. This
+ is normally preceded by another message from the driver.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), tar(1), mtio(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The c\bcy\by driver appeared in 4.3BSD-Tahoe.
+
+B\bBU\bUG\bGS\bS
+ The controller supports only 20-bit addresses. The only way the system
+ can insure the controller will be able to address data to be transferred
+ is to copy it into an intermediate buffer allocated in the first megabyte
+ of system memory.
+
+4.3-Tahoe Berkeley Distribution June 5, 1993 2
--- /dev/null
+DR(4) BSD Programmer's Manual (Tahoe Architecture) DR(4)
+
+N\bNA\bAM\bME\bE
+ d\bdr\br - Ikon DR-11W interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdr\br0\b0 a\bat\bt v\bvb\bba\ba?\b? c\bcs\bsr\br 0\b0x\bxf\bff\bff\bff\bf8\b80\b00\b00\b0 v\bve\bec\bct\bto\bor\br d\bdr\bri\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The d\bdr\br driver provides access to an Ikon DR-11W DMA controller. Each mi-
+ nor device is a different controller.
+
+ In addition to reading and writing, the following ioctl(2) requests are
+ available:
+
+ DRWAIT Wait for an attention interrupt from the associated de-
+ vice.
+
+ DRPIOW Write to the programmed I/O register.
+
+ DRPACL Write to the pulse register.
+
+ DRDACL Set the ``ac-low'' bit in the next command sent to the
+ DR-11W.
+
+ DRPCYL Set the ``cycle'' bit in the next command sent to the
+ DR-11W.
+
+ DRDFCN Hold the function bits until the next command is issused.
+
+ DRRATN Reset the attention flag.
+
+ DRRDMA Reset the DMA complete flag.
+
+ DRSFCN Set the function bits in the control status register and,
+ as a side effect, clear the interrupt enable flag.
+
+ DRRPER Reset the parity error flag.
+
+ DRSETRSTALL Set ``no stall'' mode for all subsequent reads. In no
+ stall mode the driver will abort read requests that fail
+ to complete before a user specified timeout expires.
+
+ DRSETNORSTALL Disable no stall mode for reads.
+
+ DRGETRSTALL Return true if in no stall mode for reads.
+
+ DRSETRTIMEOUT Set the value of the timeout used in no stall mode for
+ reads. The time is specified in tenths of seconds.
+
+ DRGETRTIMEOUT Return the time until (in tenths of seconds) before a read
+ is timed out when in no stall mode.
+
+ DRSETWSTALL Set ``no stall'' mode for all subsequent writes. In no
+ stall mode the driver will abort write requests that fail
+ to complete before a user specified timeout expires.
+
+ DRSETNOWSTALL Disable no stall mode for writes.
+
+ DRGETWSTALL Return true if in no stall mode for writes.
+
+ DRSETWTIMEOUT Set the value of the timeout used in no stall mode for
+ writes. The time is specified in tenths of seconds.
+
+ DRGETRTIMEOUT Return the time until (in tenths of seconds) before a
+
+ write is timed out when in no stall mode.
+
+ DRWRITEREADY Return 1 if the device can accept data, 0 otherwise (this
+ is really the DR-11W A status bit).
+
+ DRREADREADY Return 1 if the device has data for the host to read, 0
+ otherwise (this is really the DR-11W B status bit).
+
+ DRBUSY Return 1 if the device is busy, 0 otherwise.
+
+ DRRESET Reset the DR-11W.
+
+ DR11STAT Return the driver status and the contents of the DR-11W
+ I/O registers. The eight words returned are, in order, the
+ driver status flags, the contents of the control status
+ register, the contents of the status register at the time
+ of the last interrupt from the device, the contents of the
+ programmed I/O data register, a combination of the address
+ modifier used by the device in performing VERSAbus trans-
+ fers and the interrupt vector used by the device, the con-
+ tents of the range register, the contents of the rahi reg-
+ ister, and the contents of the ralo register.
+
+ DR11LOOP Perform loopback testing (the loopback cable must be in
+ place for this to work).
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/dr[0-7] standard devices
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ Lots of them, none of them meaningful.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bdr\br driver appeared in 4.3BSD-Tahoe.
+
+B\bBU\bUG\bGS\bS
+ This driver needs to be rewritten.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+ENP(4) BSD Programmer's Manual (Tahoe Architecture) ENP(4)
+
+N\bNA\bAM\bME\bE
+ e\ben\bnp\bp - CMC 10 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be e\ben\bnp\bp0\b0 a\bat\bt v\bvb\bba\ba?\b? c\bcs\bsr\br 0\b0x\bxf\bff\bff\bf4\b40\b00\b00\b00\b0 v\bve\bec\bct\bto\bor\br e\ben\bnp\bpi\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The e\ben\bnp\bp interface provides access to a 10 Mb/s Ethernet network through a
+ CMC ENP-20 controller.
+
+ The hardware has 128 kilobytes of dual-ported memory on the VERSAbus.
+ This memory is used for internal buffering by the board, and the inter-
+ face code reads the buffer contents directly through the VERSAbus. The
+ address of this memory is derived from the address specified in the con-
+ figuration file.
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl(2). The e\ben\bnp\bp interface employs the address resolution
+ protocol described in arp(4) to dynamically map between Internet and Eth-
+ ernet addresses on the local network.
+
+ The interface normally tries to use a ``trailer'' encapsulation to mini-
+ mize copying data on input and output. The use of trailers is negotiated
+ with ARP. This negotiation may be disabled, on a per-interface basis, by
+ setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+ Associated with each interface is a character device which is used to
+ dowload, start, and reset the firmware in the controller. Reading or
+ writing the ``ram device'' reads or writes the writable control store in
+ the controller. Two ioctl(2) calls, ENPIOGO and ENPIORESET, are used to
+ start and reset the firmware.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ e\ben\bnp\bp%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), inet(4), arp(4), enpload(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The e\ben\bnp\bp driver appeared in 4.3BSD-Tahoe.
+
+B\bBU\bUG\bGS\bS
+ The hardware is not capable of talking to itself. The software imple-
+ ments local sending and broadcast by sending such packets to the loop in-
+ terface. This is a kludge.
+
+ The link level firmware does not support setting the board's Ethernet ad-
+ dress.
+
+4.3-Tahoe Berkeley Distribution June 5, 1993 1
--- /dev/null
+IK(4) BSD Programmer's Manual IK(4)
+
+N\bNA\bAM\bME\bE
+ i\bik\bk - Evans and Sutherland Picture System 300 graphics device interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be i\bik\bk0\b0 a\bat\bt v\bvb\bba\ba?\b? c\bcs\bsr\br 0\b0x\bxf\bff\bff\bfb\bb1\b10\b00\b0 v\bve\bec\bct\bto\bor\br i\bik\bki\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The i\bik\bk driver provides access to an Evans and Sutherland Picture System
+ 300 through an Ikon DR-11W interface card. Each two minor device numbers
+ are a different PS300; within a pair of device numbers the odd valued de-
+ vice is used for ``diagnostic'' purposes. That is, for even numbered
+ minor devices, opening the device results in a PS300 ``attach'' request
+ being performed while for odd numbered minor devices the attach request
+ is not performed.
+
+ All operations between the host and the PS300 utilize DMA. The driver
+ currently supports only physical I/O operations when reading and writing;
+ this makes the device useless with standard Evans and Sutherland soft-
+ ware.
+
+ The interface provided by the interface is as UNIX-like as possible.
+ When a device is opened a PS300 attach request is automatically per-
+ formed. When a device is closed a detach is performed. Reads and writes
+ result in physical I/O requests, but hide all the details of the physical
+ I/O protocol. This is programming style is completely different from the
+ VMS-oriented qio-style interface supplied by Evans and Sutherland.
+
+ Reads and writes to the device result in a physical I/O request to the
+ PS300. If a readv(2) or writev(2) call is used, each I/O request results
+ in a single physical I/O request (i.e. the scatter-gather facilities are
+ not supported). In normal operation, the address used in a physical I/O
+ request is the current file offset as specified explicitly with lseek(2)
+ or implictly as a result of reading or writing the device. To specify an
+ address to be used with each physical I/O request, the i\bik\bk driver inter-
+ prets the _\bi_\bo_\bv entries in a non-standard way. If _\bi_\bo_\bv_\b__\bl_\be_\bn is zero, then
+ _\bi_\bo_\bv_\b__\bb_\ba_\bs_\be is interpreted as an address to be used in the physical I/O re-
+ quest. If the address has the PSIO_SYNC flag or-d into it, the physical
+ I/O request is made as a ``write with sync''. All addresses and data
+ presented to the driver should be in the byte order of the host; any byte
+ swapping required to converse with the PS300 is performed in the driv-
+ er/controller.
+
+ In addition to reading and writing, the following ioctl requests are
+ available:
+
+ PSIOLOOKUP Perform a ``name lookup'' request. The _\bp_\bs_\bl_\bo_\bo_\bk_\bu_\bp structure
+ passed indicates the symbol name to be looked up and con-
+ tains the address returned by the PS300. A zero address re-
+ turn indicates the symbol was undefined.
+
+ PSIOGETERROR In the event of an error, this request may be made to re-
+ turn a more detailed and, sometimes PS300-specific, error
+ code.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/ik[0-7] auto-attach devices
+ /dev/ik[0-7]d diagnostic interfaces to devices
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ i\bik\bk%\b%d\bd:\b: b\bba\bad\bd c\bcm\bmd\bd %\b%x\bx.\b. An unknown or unsupported command was received by the
+ host.
+
+
+ i\bik\bk%\b%d\bd:\b: s\bsp\bpu\bur\bri\bio\bou\bus\bs i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt,\b, c\bco\bod\bde\be %\b%x\bx.\b. An unexpected interrupt was received
+ from the PS300; the attention code from the PS300 is printed.
+
+ i\bik\bk%\b%d\bd:\b: t\bti\bim\bme\beo\bou\but\bt.\b. A command failed to elicit a response within a reasonable
+ time; the PS300 probably crashed.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The Tahoe Version i\bik\bk driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ An invalid access (e.g. illegal address) to the PS300 can cause the PS300
+ to crash. It is not always possible to unwedge the PS300 interface hard-
+ ware hung by an I/O request.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+INTRO(4) BSD Programmer's Manual (Tahoe Architecture) INTRO(4)
+
+N\bNA\bAM\bME\bE
+ i\bin\bnt\btr\bro\bo - introduction to special files and hardware support
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section describes the special files, related driver functions, and
+ networking support available in the system. In this part of the manual,
+ the SYNOPSIS section of each configurable device gives a sample specifi-
+ cation for use in constructing a system description for the config(8)
+ program. The DIAGNOSTICS section lists messages which may appear on the
+ console and in the system error log _\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bm_\be_\bs_\bs_\ba_\bg_\be_\bs due to errors in
+ device operation.
+
+C\bCC\bCI\bI D\bDE\bEV\bVI\bIC\bCE\bE S\bSU\bUP\bPP\bPO\bOR\bRT\bT
+ Software support for these devices comes in two forms. A hardware device
+ may be supported with a character or block _\bd_\be_\bv_\bi_\bc_\be _\bd_\br_\bi_\bv_\be_\br, or it may be
+ used within the networking subsystem and have a _\bn_\be_\bt_\bw_\bo_\br_\bk _\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\bd_\br_\bi_\bv_\be_\br.
+ Block and character devices are accessed through files in the file system
+ of a special type; see physio(4) and mknod(8). Network interfaces are
+ indirectly accessed through the interprocess communication facilities
+ provided by the system; see socket(2).
+
+ A hardware device is identified to the system at configuration time and
+ the appropriate device or network interface driver is then compiled into
+ the system. When the resultant system is booted, the autoconfiguration
+ facilities in the system probe for the device on the VERSAbus and, if
+ found, enable the software support for it. If a VERSAbus device does not
+ respond at autoconfiguration time it is not accessible at any time after-
+ wards. To enable a VERSAbus device which did not autoconfigure, the sys-
+ tem will have to be rebooted.
+
+ The autoconfiguration system is described in autoconf(4).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ autoconf(4), netintro(4), config(8)
+
+L\bLI\bIS\bST\bT O\bOF\bF D\bDE\bEV\bVI\bIC\bCE\bES\bS
+ The devices listed below are supported in this incarnation of the system.
+ Devices are indicated by their functional interface. If second vendor
+ products provide functionally identical interfaces they should be usable
+ with the supplied software. (\b(B\bBe\bew\bwa\bar\bre\be h\bho\bow\bwe\bev\bve\ber\br t\bth\bha\bat\bt w\bwe\be p\bpr\bro\bom\bmi\bis\bse\be t\bth\bhe\be s\bso\bof\bft\btw\bwa\bar\bre\be
+ w\bwo\bor\brk\bks\bs O\bON\bNL\bLY\bY w\bwi\bit\bth\bh t\bth\bhe\be h\bha\bar\brd\bdw\bwa\bar\bre\be i\bin\bnd\bdi\bic\bca\bat\bte\bed\bd o\bon\bn t\bth\bhe\be a\bap\bpp\bpr\bro\bop\bpr\bri\bia\bat\bte\be m\bma\ban\bnu\bua\bal\bl p\bpa\bag\bge\be.\b.)\b)
+
+ ace ACC 10 Mb/s Ethernet controller
+ cons Tahoe console interface
+ cy Cypher tape drive interface
+ dr Ikon DR-11W controller
+ enp 3Com 10 Mb/s Ethernet controller
+ ik Evans and Sutherland PS300 interface through an Ikon DR-11W
+ controller
+ vd CCI vd mass storage disk controller
+ vx CCI vioc terminal multiplexor
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The section 4 i\bin\bnt\btr\bro\bo appeared in 4.2BSD.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+MEM(4) BSD Programmer's Manual (Tahoe Architecture) MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm, v\bvm\bme\bem\bm - main memory
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The special file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the
+ computer. Byte offsets in this file are interpreted as physical memory
+ addresses. Reading and writing this file is equivalent to reading and
+ writing memory itself. Only offsets within the bounds of /\b/d\bde\bev\bv/\b/m\bme\bem\bm are
+ allowed.
+
+ Kernel virtual memory is accessed through the interface /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the
+ same manner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently
+ mapped to memory are allowed.
+
+ The file /\b/d\bde\bev\bv/\b/v\bvm\bme\bem\bm allows access to the mapped portion of the VERSAbus
+ I/O space. On the Tahoe the upper megabyte of the physical address space
+ is accessible through this file (0xfff00000 through 0xffffffff). Access-
+ es to the upper 64 kilobytes of the I/O space result in VERSAbus trans-
+ fers with a 16-bit address (the offset in this region) and a ``non-
+ privileged short I/O'' VERSAbus address modifier. Accesses to the re-
+ mainder of the mapped region, result in VERSAbus transfers with a 24-bit
+ address and a ``non-privileged standard'' VERSAbus address modifier.
+ This region is actually part of the region between 0xfeff0000 and
+ 0xffff0000 which generates VERSAbus transfers with a 24-bit address. Ac-
+ cesses to the remainder of the one gigabyte I/O space generate transfers
+ that utilize a 32-bit address with a ``non-privileged extended'' address
+ modifier. Any 32-bit address generated by a cpu access to this part of
+ the I/O space have the upper two bits zero; thus, for example, an access
+ to physical address 0xfe000000 causes the address 0x3e000000 to be sup-
+ plied in the resultant VERSAbus read/write cycle.
+
+ On the Tahoe, the base address for the per-process data of the current
+ process is virtual address 0xbffff000.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+ /dev/vmm
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The m\bme\bem\bm, k\bkm\bme\bem\bm files appeared in Version 6 AT&T UNIX. The file v\bvm\bme\bem\bm ap-
+ peared in 4.3BSD-Tahoe.
+
+B\bBU\bUG\bGS\bS
+ Memory files are accessed one byte at a time, an inappropiate method for
+ some device registers.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+LP(4) BSD Programmer's Manual (Tahoe Architecture) LP(4)
+
+N\bNA\bAM\bME\bE
+ l\blp\bp - line printer
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ device lp on the VIOC-P
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The l\blp\bp driver provides an interface to 4 serial printer lines.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/lp
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ lpr(1), vioc(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The l\blp\bp driver appeared in 4.3BSD-Tahoe.
+
+4.3-Tahoe Berkeley Distribution June 5, 1993 1
--- /dev/null
+MEM(4) BSD Programmer's Manual (Tahoe Architecture) MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm, v\bvm\bme\bem\bm - main memory
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The special file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the
+ computer. Byte offsets in this file are interpreted as physical memory
+ addresses. Reading and writing this file is equivalent to reading and
+ writing memory itself. Only offsets within the bounds of /\b/d\bde\bev\bv/\b/m\bme\bem\bm are
+ allowed.
+
+ Kernel virtual memory is accessed through the interface /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the
+ same manner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently
+ mapped to memory are allowed.
+
+ The file /\b/d\bde\bev\bv/\b/v\bvm\bme\bem\bm allows access to the mapped portion of the VERSAbus
+ I/O space. On the Tahoe the upper megabyte of the physical address space
+ is accessible through this file (0xfff00000 through 0xffffffff). Access-
+ es to the upper 64 kilobytes of the I/O space result in VERSAbus trans-
+ fers with a 16-bit address (the offset in this region) and a ``non-
+ privileged short I/O'' VERSAbus address modifier. Accesses to the re-
+ mainder of the mapped region, result in VERSAbus transfers with a 24-bit
+ address and a ``non-privileged standard'' VERSAbus address modifier.
+ This region is actually part of the region between 0xfeff0000 and
+ 0xffff0000 which generates VERSAbus transfers with a 24-bit address. Ac-
+ cesses to the remainder of the one gigabyte I/O space generate transfers
+ that utilize a 32-bit address with a ``non-privileged extended'' address
+ modifier. Any 32-bit address generated by a cpu access to this part of
+ the I/O space have the upper two bits zero; thus, for example, an access
+ to physical address 0xfe000000 causes the address 0x3e000000 to be sup-
+ plied in the resultant VERSAbus read/write cycle.
+
+ On the Tahoe, the base address for the per-process data of the current
+ process is virtual address 0xbffff000.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+ /dev/vmm
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The m\bme\bem\bm, k\bkm\bme\bem\bm files appeared in Version 6 AT&T UNIX. The file v\bvm\bme\bem\bm ap-
+ peared in 4.3BSD-Tahoe.
+
+B\bBU\bUG\bGS\bS
+ Memory files are accessed one byte at a time, an inappropiate method for
+ some device registers.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+MTIO(4) BSD Programmer's Manual MTIO(4)
+
+N\bNA\bAM\bME\bE
+ m\bmt\bti\bio\bo - UNIX magtape interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The special files named _\b/_\bd_\be_\bv_\b/_\bc_\by_\b0_\bs, _\b/_\bd_\be_\bv_\b/_\bc_\by_\b1_\b5_\bs are interfaces to the UNIX
+ magtape drivers. For the Tahoe, these interfaces may be on the VERSABUS
+ via a CIPHER tapemaster formatter cy(4). The files _\bc_\by_\b0_\bs, _\bc_\by_\b1_\b5_\bs are
+ read/written in 25 IPS, The density (1600 BPI or 3200 BPI) is selected by
+ a switch on the drive. The following table of device names applies to
+ any of the transport/controller pairs.
+
+ _\bR_\be_\bw_\bi_\bn_\bd _\bN_\bo_\b-_\br_\be_\bw_\bi_\bn_\bd _\bR_\be_\bw_\bi_\bn_\bd _\bN_\bo_\b-_\br_\be_\bw_\bi_\bn_\bd
+ cy0s/rcy0s ncy0s/nrcy0s cy8s/rcy8s ncy8s/nrcy8s
+ cy1s/rcy1s ncy1s/nrcy1s cy9s/rcy9s ncy9s/nrcy9s
+ cy2s/rcy2s ncy2s/nrcy2s cy10s/rcy10s ncy10s/nrcy10s
+ cy3s/rcy3s ncy3s/nrcy3s cy11s/rcy11s ncy11s/nrcy11s
+ cy4s/rcy4s ncy4s/nrcy4s cy12s/rcy12s ncy12s/nrcy12s
+ cy5s/rcy5s ncy5s/nrcy5s cy13s/rcy13s ncy13s/nrcy13s
+ cy6s/rcy6s ncy6s/nrcy6s cy14s/rcy14s ncy14s/nrcy14s
+ cy7s/rcy7s ncy7s/nrcy7s cy15s/rcy15s ncy15s/nrcy15s
+
+ The rewind devices automatically rewind when the last requested read,
+ write or seek has finished, or the end of the tape has been reached. The
+ letter `n' is usually prepended to the name of the no-rewind devices.
+
+ For compatibility with customary UNIX tape device names ``_\bm_\bt_\b*'', the
+ [_\bn]_\bc_\by_\b*_\bs files are linked to appropriate [_\bn]_\bm_\bt_\b* files.
+
+ Unix tapes are written in multiples of 1024 byte block records. Two end-
+ of-file markers mark the end of a tape, and one end-of-file marker marks
+ the end of a tape file. If the tape is not to be rewound it is posi-
+ tioned with the head in between the two tape marks, where the next write
+ will over write the second end-of-file marker.
+
+ All of the magtape devices may be manipulated with the mt(1) command.
+
+ A number of other ioctl(2) operations are available on raw magnetic tape.
+ The following definitions are from <_\bs_\by_\bs_\b/_\bm_\bt_\bi_\bo_\b._\bh>:
+
+ /*
+ * Structures and definitions for mag tape io control commands
+ */
+
+ /* structure for MTIOCTOP - mag tape op command */
+ struct mtop {
+ short mt_op; /* operations defined below */
+ daddr_t mt_count; /* how many of them */
+ };
+
+ /* operations */
+ #define MTWEOF 0 /* write an end-of-file record */
+ #define MTFSF 1 /* forward space file */
+ #define MTBSF 2 /* backward space file */
+ #define MTFSR 3 /* forward space record */
+ #define MTBSR 4 /* backward space record */
+ #define MTREW 5 /* rewind */
+ #define MTOFFL 6 /* rewind and put the drive offline */
+ #define MTNOP 7 /* no operation, sets status only */
+ #define MTCACHE 8 /* enable controller cache */
+ #define MTNOCACHE 9 /* disable controller cache */
+
+ /* structure for MTIOCGET - mag tape get status command */
+
+ struct mtget {
+ short mt_type; /* type of magtape device */
+ /* the following two registers are grossly device dependent */
+ short mt_dsreg; /* ``drive status'' register */
+ short mt_erreg; /* ``error'' register */
+ /* end device-dependent registers */
+ short mt_resid; /* residual count */
+ /* the following two are not yet implemented */
+ daddr_t mt_fileno; /* file number of current position */
+ daddr_t mt_blkno; /* block number of current position */
+ /* end not yet implemented */
+ };
+
+ /*
+ * Constants for mt_type byte. These are the same
+ * for controllers compatible with the types listed.
+ */
+ #define MT_ISTS 0x01 /* TS-11 */
+ #define MT_ISHT 0x02 /* TM03 Massbus: TE16, TU45, TU77 */
+ #define MT_ISTM 0x03 /* TM11/TE10 Unibus */
+ #define MT_ISMT 0x04 /* TM78/TU78 Massbus */
+ #define MT_ISUT 0x05 /* SI TU-45 emulation on Unibus */
+ #define MT_ISCPC 0x06 /* SUN */
+ #define MT_ISAR 0x07 /* SUN */
+ #define MT_ISTMSCP 0x08 /* DEC TMSCP protocol (TU81, TK50) */
+ #define MT_ISCY 0x09 /* CCI Cipher */
+ #define MT_ISCT 0x0a /* HP 1/4 tape */
+ #define MT_ISFHP 0x0b /* HP 7980 1/2 tape */
+ #define MT_ISEXABYTE 0x0c /* Exabyte */
+ #define MT_ISEXA8200 0x0c /* Exabyte EXB-8200 */
+ #define MT_ISEXA8500 0x0d /* Exabyte EXB-8500 */
+ #define MT_ISVIPER1 0x0e /* Archive Viper-150 */
+ #define MT_ISPYTHON 0x0f /* Archive Python (DAT) */
+ #define MT_ISHPDAT 0x10 /* HP 35450A DAT drive */
+
+ /* mag tape io control commands */
+ #define MTIOCTOP _IOW('m', 1, struct mtop) /* do a mag tape op */
+ #define MTIOCGET _IOR('m', 2, struct mtget) /* get tape status */
+ #define MTIOCIEOT _IO('m', 3) /* ignore EOT error */
+ #define MTIOCEEOT _IO('m', 4) /* enable EOT error */
+
+ #ifndef KERNEL
+ #define DEFTAPE "/dev/rmt12"
+ #endif
+
+ #ifdef KERNEL
+ /*
+ * minor device number
+ */
+
+ #define T_UNIT 003 /* unit selection */
+ #define T_NOREWIND 004 /* no rewind on close */
+ #define T_DENSEL 030 /* density select */
+ #define T_800BPI 000 /* select 800 bpi */
+ #define T_1600BPI 010 /* select 1600 bpi */
+ #define T_6250BPI 020 /* select 6250 bpi */
+ #define T_BADBPI 030 /* undefined selection */
+ #endif
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/cy?,
+ /dev/rcy? Rewind devices.
+ /dev/ncy?,
+ /dev/nrcy? No-rewind devices.
+ /dev/[n]mt?,
+
+ /dev/[n]rmt?
+ Linked device names.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), tar(1), cy(4)
+
+4.4BSD June 5, 1993 3
--- /dev/null
+VD(4) BSD Programmer's Manual (Tahoe Architecture) VD(4)
+
+N\bNA\bAM\bME\bE
+ v\bvd\bd - VERSAbus storage module controller/drives
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br v\bvd\bd0\b0 a\bat\bt v\bvb\bba\ba?\b? c\bcs\bsr\br 0\b0x\bxf\bff\bff\bff\bf2\b20\b00\b00\b0 v\bve\bec\bct\bto\bor\br v\bvd\bdi\bin\bnt\btr\br
+ d\bdi\bis\bsk\bk d\bdk\bk0\b0 a\bat\bt v\bvd\bd0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a generic VERSAbus storage module disk driver for the Computer
+ Consoles SMD (VDDC) and SMD-E disk controllers.
+
+ The v\bvd\bd driver is a fairly typical block I/O device, except raw block I/O
+ counts must be a multiple of 1024 bytes, whether the actual sector size
+ is 512 or 1024 bytes. Likewise, seek calls should specify a multiple of
+ 1024 bytes. See physio(4).
+
+ The first sector of each disk contains a disk label containing geometry
+ information and partition layouts (see disklabel(5)). This sector is
+ normally write-protected, and disk-to-disk copies should avoid copying
+ this sector. The label may be updated with disklabel(8), which can also
+ be used to write-enable and write-disable the sector.
+
+D\bDI\bIS\bSK\bK S\bSU\bUP\bPP\bPO\bOR\bRT\bT
+ During autoconfiguration, as well as when a drive is opened after all
+ partitions are closed, the first sector of the drive is examined for a
+ disk label. If a label is found, the geometry of the drive and the par-
+ tition tables are taken from it. If no label is found, The driver checks
+ for a disk label on sector 0 of each drive during autoconfiguration. If
+ no label is found, the driver tries to access the last track on each
+ drive to determine the type of drive attached. The driver has default
+ partition tables for seven different drives: CDC FSD (160 MB), CDC 9766
+ (300 MB), CDC XFSD (340 MB), CDC 515 MB, Fujitsu 360 MB, Fujitsu Eagle
+ (440 MB), and Maxtor 340 MB. If the drive is not recognized, a single
+ small partition is created to allow a label to be written.
+
+ The partition tables in the disk label and the _\bd_\bi_\bs_\bk_\bt_\ba_\bb file specify par-
+ tition offsets and sizes in sectors, which are 512 bytes on SMD drives
+ and 1024 bytes on 5 1/4" ESDI drives. By convention, the ?a partition is
+ normally used for the root file system or other small file system, and
+ the ?b partition is used as a paging area. The ?c partition maps the
+ rest of the pack, except the last 5 cylinders which are reserved for bad
+ sector forwarding, and diagnostic use.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/dk[0-7][a-f] dk block files
+ /dev/rdk[0-7][a-f] dk raw files
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ v\bvd\bd%\b%d\bd:\b: %\b%s\bs c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br.\b. This message is printed during autoconfiguration to
+ identify the type of controller, either VDDC or SMDE.
+
+ v\bvd\bd%\b%d\bd:\b: i\bin\bni\bit\bt e\ber\brr\bro\bor\br.\b. During autoconfiguration the controller failed to re-
+ spond to an initialize command.
+
+ v\bvd\bd%\b%d\bd:\b: d\bdi\bia\bag\bgn\bno\bos\bst\bti\bic\bc e\ber\brr\bro\bor\br.\b. During autoconfiguration the controller failed
+ to respond to a diagnostic command.
+
+ d\bdk\bk%\b%d\bd:\b: u\bun\bnk\bkn\bno\bow\bwn\bn d\bdr\bri\biv\bve\be t\bty\byp\bpe\be.\b. The system was unable to identify the speci-
+ fied drive as one of the drives described above; the drive will not be
+ configured.
+
+
+
+
+ v\bvd\bd%\b%d\bd:\b: d\bdr\bri\biv\bve\be %\b%d\bd:\b: c\bco\bon\bnf\bfi\big\bg e\ber\brr\bro\bor\br.\b. The system encountered a hard error when
+ it tried to configure a drive during autoconfiguration.
+
+ v\bvd\bd%\b%d\bd:\b: s\bst\bta\bar\brt\bti\bin\bng\bg d\bdr\bri\biv\bve\bes\bs,\b, w\bwa\bai\bit\bt .\b..\b..\b. .\b. This message indicates the system is
+ about to tell the controller to ``start'' the drives attached to it.
+
+ d\bdk\bk%\b%d\bd:\b: %\b%s\bs <\b<n\bnt\btr\bra\bak\bk %\b%d\bd,\b, n\bnc\bcy\byl\bl %\b%d\bd,\b, n\bns\bse\bec\bc %\b%d\bd>\b>.\b. For each drive recognized during
+ autoconfiguration the system prints a message of this form. The drive
+ type is displayed as well as the geometry: tracks/cylinder, cylinders,
+ and sectors/track.
+
+ v\bvd\bd%\b%d\bd:\b: l\blo\bos\bst\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. The system failed to receive an interrupt from the
+ controller after submitting a request. The system attempts to abort the
+ current request and simulate an interrupt to unwedge the controller.
+ During processing of the simulated interrupt, a controller error will be
+ reported as described below.
+
+ v\bvd\bd%\b%d\bd:\b: s\bst\btr\bra\bay\by i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. The system received an unexpected interrupt; it
+ is ignored.
+
+ d\bdk\bk%\b%d\bd%\b%c\bc:\b: w\bwr\bri\bit\bte\be l\blo\boc\bck\bke\bed\bd.\b. An attempt was made to write to a drive that is
+ physically write-protected.
+
+ d\bdk\bk%\b%d\bd%\b%c\bc:\b: c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br e\ber\brr\br %\b%s\bsi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd [\b[o\bof\bf %\b%d\bd-\b-%\b%d\bd]\b] (\b(d\bdk\bk%\b%d\bd b\bbn\bn %\b%d\bd c\bcn\bn %\b%d\bd t\btn\bn %\b%d\bd
+ s\bsn\bn %\b%d\bd)\b) s\bst\bta\bat\btu\bus\bs %\b%b\bb e\bec\bco\bod\bde\be %\b%x\bx;\b; r\bre\bes\bse\bet\btt\bti\bin\bng\bg c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br.\b..\b..\b. r\bre\bet\btr\bry\byi\bin\bng\bg.\b.
+
+ d\bdk\bk%\b%d\bd%\b%c\bc:\b: d\bdr\bri\biv\bve\be e\ber\brr\br %\b%s\bsi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd [\b[o\bof\bf %\b%d\bd-\b-%\b%d\bd]\b] (\b(d\bdk\bk%\b%d\bd b\bbn\bn %\b%d\bd c\bcn\bn %\b%d\bd t\btn\bn %\b%d\bd s\bsn\bn %\b%d\bd)\b)
+ s\bst\bta\bat\btu\bus\bs %\b%b\bb e\bec\bco\bod\bde\be %\b%x\bx;\b; r\bre\bes\bse\bet\btt\bti\bin\bng\bg d\bdr\bri\biv\bve\be.\b..\b..\b. r\bre\bet\btr\bry\byi\bin\bng\bg.\b. An attempted transfer
+ resulted in a controller or drive error. The controller or drive is re-
+ set, and the transfer is attempted a second time.
+
+ d\bdk\bk%\b%d\bd%\b%c\bc:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br %\b%s\bsi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd [\b[o\bof\bf %\b%d\bd-\b-%\b%d\bd]\b] (\b(d\bdk\bk%\b%d\bd b\bbn\bn %\b%d\bd c\bcn\bn %\b%d\bd t\btn\bn %\b%d\bd s\bsn\bn
+ %\b%d\bd)\b) s\bst\bta\bat\btu\bus\bs %\b%b\bb e\bec\bco\bod\bde\be %\b%x\bx.\b. An unrecoverable error was encountered. The
+ filesystem block number reported is a logical sector number on the indi-
+ cated partition; it is expressed using 1024-byte sectors. If the trans-
+ fer involved multiple blocks, the block range is printed as well. The
+ parenthesized fields list the actual disk sector number relative to the
+ beginning of the drive (in 512- or 1024-byte blocks, as appropriate), as
+ well as the cylinder, track and sector number of the block. The error
+ status field of the device control block is printed in hexadecimal fol-
+ lowed by a symbolic description. If this is an SMDE controller, the er-
+ ror code is also displayed.
+
+ d\bdk\bk%\b%d\bd%\b%c\bc:\b: s\bso\bof\bft\bt e\ber\brr\bro\bor\br %\b%s\bsi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd [\b[o\bof\bf %\b%d\bd-\b-%\b%d\bd]\b] (\b(d\bdk\bk%\b%d\bd b\bbn\bn %\b%d\bd c\bcn\bn %\b%d\bd t\btn\bn %\b%d\bd s\bsn\bn
+ %\b%d\bd)\b) s\bst\bta\bat\btu\bus\bs %\b%b\bb e\bec\bco\bod\bde\be %\b%x\bx.\b. A recoverable error was detected by the con-
+ troller. The fields are interpreted in the same way as those for hard
+ errors.
+
+ d\bdk\bk%\b%d\bd%\b%c\bc:\b: s\bso\bof\bft\bt e\bec\bcc\bc %\b%s\bsi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd [\b[o\bof\bf %\b%d\bd-\b-%\b%d\bd]\b] (\b(d\bdk\bk%\b%d\bd b\bbn\bn %\b%d\bd c\bcn\bn %\b%d\bd t\btn\bn %\b%d\bd s\bsn\bn
+ %\b%d\bd)\b).\b. A recoverable ECC error was detected and corrected by the con-
+ troller during the indicated transfer.
+
+ v\bvd\bd%\b%d\bd:\b: d\bdr\bri\biv\bve\be %\b%d\bd:\b: c\bco\bou\bul\bld\bdn\bn'\b't\bt r\bre\bes\bse\bet\bt.\b. The system was unable to reconfigure a
+ drive during a controller reset.
+
+ v\bvd\bd%\b%d\bd:\b: c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br t\bti\bim\bme\beo\bou\but\bt.\b. The controller failed to complete an operation
+ within a reasonable time. This message is usually followed by another
+ message indicating what operation timed out; e.g. ``during config'' for a
+ configuration command.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ disklabel(5), disklabel(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The v\bvd\bd driver appeared in 4.3BSD-Tahoe.
+
+B\bBU\bUG\bGS\bS
+ Writes scribble on the tail of incomplete blocks.
+
+ The system should use real disk sector numbers internally, instead of as-
+ suming 1024-byte sectors; errors should report filesystem block numbers
+ using the actual sector size. Raw I/O should be permitted on any sector
+ boundary.
+
+4.4BSD June 5, 1993 3
--- /dev/null
+VX(4) BSD Programmer's Manual (Tahoe Architecture) VX(4)
+
+N\bNA\bAM\bME\bE
+ v\bvx\bx - communications multiplexor
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be v\bvx\bx0\b0 a\bat\bt v\bvb\bba\ba?\b? c\bcs\bsr\br 0\b0x\bxf\bff\bff\bfe\be0\b00\b00\b00\b0 v\bve\bec\bct\bto\bor\br v\bva\bac\bck\bki\bin\bnt\bt v\bvc\bcm\bmd\bdr\brs\bsp\bp v\bvu\bun\bns\bso\bol\bl
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A VIOC-X provides 16 communication lines with partial modem control, ade-
+ quate for UNIX dialup use. and may be set to run at any of 16 speeds;
+ see tty(4).
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/tty[0-9][0-9]
+ /dev/ttyd[0-9a-f] dialups
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ v\bvx\bx%\b%d\bd:\b: v\bvc\bc p\bpr\bro\boc\bc e\ber\brr\br,\b, u\bus\bst\bta\bat\bt %\b%x\bx.\b.
+
+ v\bvx\bx%\b%d\bd:\b: v\bvc\bc u\buq\bqu\bua\bal\bl e\ber\brr\br,\b, u\buq\bqu\bua\bal\bl %\b%x\bx.\b.
+
+ v\bvx\bx%\b%d\bd:\b: %\b%d\bd e\bex\bxc\bce\bee\bed\bds\bs s\bsi\bil\blo\bo s\bsi\biz\bze\be.\b.
+
+ v\bvx\bx%\b%d\bd:\b: r\bre\bec\bce\bei\biv\bve\ber\br o\bov\bve\ber\brr\bru\bun\bn.\b.
+
+ V\bVI\bIO\bOC\bC-\b-B\bBO\bOP\bP n\bno\bo.\b. %\b%d\bd a\bat\bt %\b%x\bx.\b. The system identified a vioc supporting the bit
+ oriented protocol. The number _\b%_\bd is the board number assigned by the
+ system while the address _\b%_\bx is the address of the command control block
+ for the vioc.
+
+ v\bvx\bx%\b%d\bd:\b: u\bun\bnk\bkn\bno\bow\bwn\bn t\bty\byp\bpe\be %\b%x\bx.\b. The system encountered a vioc of unknown type
+ during autoconfiguration.
+
+ v\bvx\bx%\b%d\bd:\b: d\bdi\bid\bdn\bn'\b't\bt r\bre\bes\bsp\bpo\bon\bnd\bd t\bto\bo L\bLI\bID\bDE\bEN\bNT\bT.\b. The device did not respond to the con-
+ figuration command that sets the interrupt vectors and port configura-
+ tion.
+
+ v\bvx\bx%\b%d\bd:\b: %\b%s\bs%\b%s\bs,\b, p\bpo\bor\brt\bts\bs %\b%d\bd-\b-%\b%d\bd.\b. This is informatory message printed during au-
+ toconfiguration indicating the type of hardware present the port configu-
+ ration.
+
+ v\bvx\bx%\b%d\bd:\b: n\bno\bo b\bbu\buf\bff\bfe\ber\brs\bs.\b. All the command buffers were in use; this indicates
+ the device is constipated for some reason.
+
+ v\bvx\bx%\b%d\bd:\b: s\bse\bet\btq\bq o\bov\bve\ber\brf\bfl\blo\bow\bw.\b. An attempt to append a command to an existing com-
+ mand buffer failed because the buffer was full or the hardware doesn't
+ support this facility.
+
+ v\bvx\bx%\b%d\bd:\b: c\bcm\bmd\bd q\bq o\bov\bve\ber\brf\bfl\blo\bow\bw.\b. An attempt to place a new command on the command
+ queue failed because it was full. The device is either overloaded or
+ hung up for some reason. If this happens, the system tries to reset the
+ device to unwedge it.
+
+ v\bvx\bx%\b%d\bd I\bIN\bNT\bTR\bR E\bER\bRR\bR t\bty\byp\bpe\be %\b%x\bx v\bv_\b_d\bdc\bcd\bd %\b%x\bx.\b. An error was returned by the device in
+ response to some command. The command identifier and data carrier detect
+ mask are printed followed by the contents of the command buffer in error.
+
+ v\bvx\bx%\b%d\bd:\b: v\bvc\bcm\bmd\bdr\brs\bsp\bp i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. A command response interrupt was received from
+ a bop (bit oriented protocol) vioc. This should not happen.
+
+ v\bvx\bx%\b%d\bd:\b: c\bcm\bmd\bdr\bre\bes\bsp\bp d\bde\beb\bbu\bug\bg.\b.
+
+
+
+
+ v\bvx\bx%\b%d\bd:\b: v\bvu\bun\bns\bso\bol\bl f\bfr\bro\bom\bm BOP. An unsolicited interrupt was received from a bop
+ vioc. This should not happen.
+
+ v\bvx\bx%\b%d\bd:\b: i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt q\bq o\bov\bve\ber\brf\bfl\blo\bow\bw.\b. The queue of pending interrupts to be deliv-
+ ered to the vioc is full. This is probably due to the vioc being wedged.
+ The system resets the vioc if this occurs.
+
+ v\bvx\bx%\b%d\bd:\b: r\bre\bes\bse\bet\bt.\b..\b..\b..\b. The system attempted to reset the vioc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The v\bvx\bx special file appeared in 4.3BSD-Tahoe.
+
+4.4BSD June 5, 1993 2
--- /dev/null
+TCP(4) BSD Programmer's Manual TCP(4)
+
+N\bNA\bAM\bME\bE
+ t\btc\bcp\bp - Internet Transmission Control Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bin\bne\bet\bt/\b/i\bin\bn.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bA_\bF_\b__\bI_\bN_\bE_\bT, _\bS_\bO_\bC_\bK_\b__\bS_\bT_\bR_\bE_\bA_\bM, _\b0);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The TCP protocol provides reliable, flow-controlled, two-way transmission
+ of data. It is a byte-stream protocol used to support the SOCK_STREAM
+ abstraction. TCP uses the standard Internet address format and, in addi-
+ tion, provides a per-host collection of ``port addresses''. Thus, each
+ address is composed of an Internet address specifying the host and net-
+ work, with a specific TCP port on the host identifying the peer entity.
+
+ Sockets utilizing the tcp protocol are either ``active'' or ``passive''.
+ Active sockets initiate connections to passive sockets. By default TCP
+ sockets are created active; to create a passive socket the listen(2) sys-
+ tem call must be used after binding the socket with the bind(2) system
+ call. Only passive sockets may use the accept(2) call to accept incoming
+ connections. Only active sockets may use the connect(2) call to initiate
+ connections.
+
+ Passive sockets may ``underspecify'' their location to match incoming
+ connection requests from multiple networks. This technique, termed
+ ``wildcard addressing'', allows a single server to provide service to
+ clients on multiple networks. To create a socket which listens on all
+ networks, the Internet address INADDR_ANY must be bound. The TCP port
+ may still be specified at this time; if the port is not specified the
+ system will assign one. Once a connection has been established the sock-
+ et's address is fixed by the peer entity's location. The address as-
+ signed the socket is the address associated with the network interface
+ through which packets are being transmitted and received. Normally this
+ address corresponds to the peer entity's network.
+
+ TCP supports one socket option which is set with setsockopt(2) and tested
+ with getsockopt(2). Under most circumstances, TCP sends data when it is
+ presented; when outstanding data has not yet been acknowledged, it gath-
+ ers small amounts of output to be sent in a single packet once an ac-
+ knowledgement is received. For a small number of clients, such as window
+ systems that send a stream of mouse events which receive no replies, this
+ packetization may cause significant delays. Therefore, TCP provides a
+ boolean option, TCP_NODELAY (from <_\bn_\be_\bt_\bi_\bn_\be_\bt_\b/_\bt_\bc_\bp_\b._\bh>, to defeat this algo-
+ rithm. The option level for the setsockopt call is the protocol number
+ for TCP, available from getprotobyname(3).
+
+ Options at the IP transport level may be used with TCP; see ip(4). In-
+ coming connection requests that are source-routed are noted, and the re-
+ verse source route is used in responding.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ A socket operation may fail with one of the following errors returned:
+
+ [EISCONN] when trying to establish a connection on a socket which
+ already has one;
+
+ [ENOBUFS] when the system runs out of memory for an internal data
+ structure;
+
+ [ETIMEDOUT] when a connection was dropped due to excessive retrans-
+
+ missions;
+
+ [ECONNRESET] when the remote peer forces the connection to be closed;
+
+ [ECONNREFUSED] when the remote peer actively refuses connection estab-
+ lishment (usually because no process is listening to the
+ port);
+
+ [EADDRINUSE] when an attempt is made to create a socket with a port
+ which has already been allocated;
+
+ [EADDRNOTAVAIL] when an attempt is made to create a socket with a net-
+ work address for which no network interface exists.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getsockopt(2), socket(2), intro(4), inet(4), ip(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The t\btc\bcp\bp protocol stack appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+TERMIOS(4) BSD Programmer's Manual TERMIOS(4)
+
+N\bNA\bAM\bME\bE
+ t\bte\ber\brm\bmi\bio\bos\bs - general terminal line discipline
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<t\bte\ber\brm\bmi\bio\bos\bs.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This describes a general terminal line discipline that is supported on
+ tty asynchronous communication ports.
+
+ O\bOp\bpe\ben\bni\bin\bng\bg a\ba T\bTe\ber\brm\bmi\bin\bna\bal\bl D\bDe\bev\bvi\bic\bce\be F\bFi\bil\ble\be
+ When a terminal file is opened, it normally causes the process to wait
+ until a connection is established. For most hardware, the presence of a
+ connection is indicated by the assertion of the hardware CARRIER line. If
+ the termios structure associated with the terminal file has the CLOCAL
+ flag set in the cflag, or if the O_NONBLOCK flag is set in the open(2)
+ call, then the open will succeed even without a connection being present.
+ In practice, applications seldom open these files; they are opened by
+ special programs, such as getty(2) or rlogind(2), and become an applica-
+ tion's standard input, output, and error files.
+
+ J\bJo\bob\bb C\bCo\bon\bnt\btr\bro\bol\bl i\bin\bn a\ba N\bNu\but\bts\bsh\bhe\bel\bll\bl
+ Every process is associated with a particular process group and session.
+ The grouping is hierarchical: every member of a particular process group
+ is a member of the same session. This structuring is used in managing
+ groups of related processes for purposes of _\bj_\bo_\bb _\bc_\bo_\bn_\bt_\br_\bo_\bl; that is, the
+ ability from the keyboard (or from program control) to simultaneously
+ stop or restart a complex command (a command composed of one or more re-
+ lated processes). The grouping into process groups allows delivering of
+ signals that stop or start the group as a whole, along with arbitrating
+ which process group has access to the single controlling terminal. The
+ grouping at a higher layer into sessions is to restrict the job control
+ related signals and system calls to within processes resulting from a
+ particular instance of a "login". Typically, a session is created when a
+ user logs in, and the login terminal is setup to be the controlling ter-
+ minal; all processes spawned from that login shell are in the same ses-
+ sion, and inherit the controlling terminal. A job control shell operat-
+ ing interactively (that is, reading commands from a terminal) normally
+ groups related processes together by placing them into the same process
+ group. A set of processes in the same process group is collectively ref-
+ ered to as a "job". When the foreground process group of the terminal is
+ the same as the process group of a particular job, that job is said to be
+ in the "foreground". When the process group of the terminal is different
+ than the process group of a job (but is still the controlling terminal),
+ that job is said to be in the "background". Normally the shell reads a
+ command and starts the job that implements that command. If the command
+ is to be started in the foreground (typical), it sets the process group
+ of the terminal to the process group of the started job, waits for the
+ job to complete, and then sets the process group of the terminal back to
+ its own process group (it puts itself into the foreground). If the job
+ is to be started in the background (as denoted by the shell operator
+ "&"), it never changes the process group of the terminal and doesn't wait
+ for the job to complete (that is, it immediately attempts to read the
+ next command). If the job is started in the foreground, the user may
+ type a key (ususally `^Z') which generates the terminal stop signal
+ (SIGTSTP) and has the affect of stopping the entire job. The shell will
+ notice that the job stopped, and will resume running after placing itself
+ in the foreground. The shell also has commands for placing stopped jobs
+ in the background, and for placing stopped or background jobs into to the
+ foreground.
+
+ O\bOr\brp\bph\bha\ban\bne\bed\bd P\bPr\bro\boc\bce\bes\bss\bs G\bGr\bro\bou\bup\bps\bs
+ An orphaned process group is a process group that has no process whose
+ parent is in a different process group, yet is in the same session. Con-
+ ceptually it means a process group that doesn't have a parent that could
+ do anything if it were to be stopped. For example, the initial login
+ shell is typically in an orphaned process group. Orphaned process groups
+ are immune to keyboard generated stop signals and job control signals re-
+ sulting from reads or writes to the controlling terminal.
+
+ T\bTh\bhe\be C\bCo\bon\bnt\btr\bro\bol\bll\bli\bin\bng\bg T\bTe\ber\brm\bmi\bin\bna\bal\bl
+ A terminal may belong to a process as its controlling terminal. Each
+ process of a session that has a controlling terminal has the same con-
+ trolling terminal. A terminal may be the controlling terminal for at
+ most one session. The controlling terminal for a session is allocated by
+ the session leader by issuing the TIOCSCTTY ioctl. A controlling termi-
+ nal is never acquired by mereley opening a terminal device file. When a
+ controlling terminal becomes associated with a session, its foreground
+ process group is set to the process group of the session leader.
+
+ The controlling terminal is inherited by a child process during a fork(2)
+ function call. A process relinquishes its controlling terminal when it
+ creates a new session with the function; other processes remaining in the
+ old session that had this terminal as their controlling terminal continue
+ to have it. A process does not relinquish its controlling terminal sim-
+ ply by closing all of its file descriptors associated with the control-
+ ling terminal if other processes continue to have it open.
+
+ When a controlling process terminates, the controlling terminal is disas-
+ sociated from the current session, allowing it to be acquired by a new
+ session leader. Subsequent access to the terminal by other processes in
+ the earlier session will be denied, with attempts to access the terminal
+ treated as if modem disconnect had been sensed.
+
+ T\bTe\ber\brm\bmi\bin\bna\bal\bl A\bAc\bcc\bce\bes\bss\bs C\bCo\bon\bnt\btr\bro\bol\bl
+ If a process is in the foreground process group of its controlling termi-
+ nal, read operations are allowed. Any attempts by a process in a back-
+ ground process group to read from its controlling terminal causes a
+ SIGTTIN signal to be sent to the process's group unless one of the fol-
+ lowing special cases apply: If the reading process is ignoring or block-
+ ing the SIGTTIN signal, or if the process group of the process is or-
+ phaned, the read(2) returns -1 with _\be_\br_\br_\bn_\bo _\bs_\be_\bt _\bt_\bo EIO and no signal is
+ sent. The default action of the SIGTTIN signal is to stop the process to
+ which it is sent.
+
+ If a process is in the foreground process group of its controlling termi-
+ nal, write operations are allowed. Attempts by a process in a background
+ process group to write to its controlling terminal will cause the process
+ group to be sent a SIGTTOU signal unless one of the following special
+ cases apply: If TOSTOP is not set, or if TOSTOP is set and the process
+ is ignoring or blocking the SIGTTOU signal, the process is allowed to
+ write to the terminal and the SIGTTOU signal is not sent. If TOSTOP is
+ set, and the process group of the writing process is orphaned, and the
+ writing process is not ignoring or blocking SIGTTOU, the write returns -1
+ with errno set to EIO and no signal is sent.
+
+ Certain calls that set terminal parameters are treated in the same fash-
+ ion as write, except that TOSTOP is ignored; that is, the effect is iden-
+ tical to that of terminal writes when TOSTOP is set.
+
+ I\bIn\bnp\bpu\but\bt P\bPr\bro\boc\bce\bes\bss\bsi\bin\bng\bg a\ban\bnd\bd R\bRe\bea\bad\bdi\bin\bng\bg D\bDa\bat\bta\ba
+ A terminal device associated with a terminal device file may operate in
+ full-duplex mode, so that data may arrive even while output is occurring.
+ Each terminal device file has associated with it an input queue, into
+ which incoming data is stored by the system before being read by a pro-
+ cess. The system imposes a limit, {MAX_INPUT}, on the number of bytes
+ that may be stored in the input queue. The behavior of the system when
+ this limit is exceeded depends on the setting of the IMAXBEL flag in the
+ termios _\bc_\b__\bi_\bf_\bl_\ba_\bg. If this flag is set, the terminal is a sent an ASCII BEL
+ character each time a character is recieved while the input queue is
+ full. Otherwise, the input queue is flushed upon receiving the charac-
+ ter.
+
+ Two general kinds of input processing are available, determined by
+ whether the terminal device file is in canonical mode or noncanonical
+ mode. Additionally, input characters are processed according to the
+ _\bc_\b__\bi_\bf_\bl_\ba_\bg and _\bc_\b__\bl_\bf_\bl_\ba_\bg fields. Such processing can include echoing, which
+ in general means transmitting input characters immediately back to the
+ terminal when they are received from the terminal. This is useful for
+ terminals that can operate in full-duplex mode.
+
+ The manner in which data is provided to a process reading from a terminal
+ device file is dependent on whether the terminal device file is in canon-
+ ical or noncanonical mode.
+
+ Another dependency is whether the O_NONBLOCK flag is set by open() or
+ fcntl(). If the O_NONBLOCK flag is clear, then the read request is
+ blocked until data is available or a signal has been received. If the
+ O_NONBLOCK flag is set, then the read request is completed, without
+ blocking, in one of three ways:
+
+ 1. If there is enough data available to satisfy the entire re-
+ quest, and the read completes successfully the number of bytes
+ read is returned.
+
+ 2. If there is not enough data available to satisfy the entire
+ request, and the read completes successfully, having read as
+ much data as possible, the number of bytes read is returned.
+
+ 3. If there is no data available, the read returns -1, with errno
+ set to
+
+ When data is available depends on whether the input processing mode is
+ canonical or noncanonical.
+
+ C\bCa\ban\bno\bon\bni\bic\bca\bal\bl M\bMo\bod\bde\be I\bIn\bnp\bpu\but\bt P\bPr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+ In canonical mode input processing, terminal input is processed in units
+ of lines. A line is delimited by a newline `\n' character, an end-of-
+ file (EOF) character, or an end-of-line (EOL) character. See the _\bS_\bp_\be_\bc_\bi_\ba_\bl
+ _\bC_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs section for more information on EOF and EOL. This means that a
+ read request will not return until an entire line has been typed, or a
+ signal has been received. Also, no matter how many bytes are requested
+ in the read call, at most one line is returned. It is not, however, nec-
+ essary to read a whole line at once; any number of bytes, even one, may
+ be requested in a read without losing information.
+
+ {MAX_CANON} is a limit on the number of bytes in a line. The behavior of
+ the system when this limit is exceeded is the same as when the input
+ queue limit {MAX_INPUT}, is exceeded.
+
+ Erase and kill processing occur when either of two special characters,
+ the ERASE and KILL characters (see the _\bS_\bp_\be_\bc_\bi_\ba_\bl _\bC_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs _\bs_\be_\bc_\bt_\bi_\bo_\bn), is
+ received. This processing affects data in the input queue that has not
+ yet been delimited by a newline NL, EOF, or EOL character. This un-
+ delimited data makes up the current line. The ERASE character deletes
+ the last character in the current line, if there is any. The KILL char-
+ acter deletes all data in the current line, if there is any. The ERASE
+ and KILL characters have no effect if there is no data in the current
+ line. The ERASE and KILL characters themselves are not placed in the in-
+ put queue.
+
+ N\bNo\bon\bnc\bca\ban\bno\bon\bni\bic\bca\bal\bl M\bMo\bod\bde\be I\bIn\bnp\bpu\but\bt P\bPr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+ In noncanonical mode input processing, input bytes are not assembled into
+ lines, and erase and kill processing does not occur. The values of the
+ MIN and TIME members of the _\bc_\b__\bc_\bc array are used to determine how to pro-
+ cess the bytes received.
+
+ MIN represents the minimum number of bytes that should be received when
+ the read function successfully returns. TIME is a timer of 0.1 second
+ granularity that is used to time out bursty and short term data transmis-
+ sions. If MIN is greater than { MAX_INPUT}, the response to the request
+ is undefined. The four possible values for MIN and TIME and their inter-
+ actions are described below.
+
+ C\bCa\bas\bse\be A\bA:\b: M\bMI\bIN\bN >\b> 0\b0,\b, T\bTI\bIM\bME\bE >\b> 0\b0
+ In this case TIME serves as an inter-byte timer and is activated after
+ the first byte is received. Since it is an inter-byte timer, it is reset
+ after a byte is received. The interaction between MIN and TIME is as
+ follows: as soon as one byte is received, the inter-byte timer is start-
+ ed. If MIN bytes are received before the inter-byte timer expires (re-
+ member that the timer is reset upon receipt of each byte), the read is
+ satisfied. If the timer expires before MIN bytes are received, the char-
+ acters received to that point are returned to the user. Note that if
+ TIME expires at least one byte is returned because the timer would not
+ have been enabled unless a byte was received. In this case (MIN > 0,
+ TIME > 0) the read blocks until the MIN and TIME mechanisms are activated
+ by the receipt of the first byte, or a signal is received. If data is in
+ the buffer at the time of the read(), the result is as if data had been
+ received immediately after the read().
+
+ C\bCa\bas\bse\be B\bB:\b: M\bMI\bIN\bN >\b> 0\b0,\b, T\bTI\bIM\bME\bE =\b= 0\b0
+ In this case, since the value of TIME is zero, the timer plays no role
+ and only MIN is significant. A pending read is not satisfied until MIN
+ bytes are received (i.e., the pending read blocks until MIN bytes are re-
+ ceived), or a signal is received. A program that uses this case to read
+ record-based terminal I/O may block indefinitely in the read operation.
+
+ C\bCa\bas\bse\be C\bC:\b: M\bMI\bIN\bN =\b= 0\b0,\b, T\bTI\bIM\bME\bE >\b> 0\b0
+ In this case, since MIN = 0, TIME no longer represents an inter-byte
+ timer. It now serves as a read timer that is activated as soon as the
+ read function is processed. A read is satisfied as soon as a single byte
+ is received or the read timer expires. Note that in this case if the
+ timer expires, no bytes are returned. If the timer does not expire, the
+ only way the read can be satisfied is if a byte is received. In this
+ case the read will not block indefinitely waiting for a byte; if no byte
+ is received within TIME*0.1 seconds after the read is initiated, the read
+ returns a value of zero, having read no data. If data is in the buffer
+ at the time of the read, the timer is started as if data had been re-
+ ceived immediately after the read.
+
+ C\bCa\bas\bse\be D\bD:\b: M\bMI\bIN\bN =\b= 0\b0,\b, T\bTI\bIM\bME\bE =\b= 0\b0
+ The minimum of either the number of bytes requested or the number of
+ bytes currently available is returned without waiting for more bytes to
+ be input. If no characters are available, read returns a value of zero,
+ having read no data.
+
+ W\bWr\bri\bit\bti\bin\bng\bg D\bDa\bat\bta\ba a\ban\bnd\bd O\bOu\but\btp\bpu\but\bt P\bPr\bro\boc\bce\bes\bss\bsi\bin\bng\bg
+ When a process writes one or more bytes to a terminal device file, they
+ are processed according to the _\bc_\b__\bo_\bf_\bl_\ba_\bg field (see the _\bO_\bu_\bt_\bp_\bu_\bt _\bM_\bo_\bd_\be_\bs sec-
+ tion). The implementation may provide a buffering mechanism; as such,
+ when a call to write() completes, all of the bytes written have been
+ scheduled for transmission to the device, but the transmission will not
+ necessarily have completed.
+
+ S\bSp\bpe\bec\bci\bia\bal\bl C\bCh\bha\bar\bra\bac\bct\bte\ber\brs\bs
+ Certain characters have special functions on input or output or both.
+ These functions are summarized as follows:
+
+ INTR Special character on input and is recognized if the ISIG flag
+ (see the _\bL_\bo_\bc_\ba_\bl _\bM_\bo_\bd_\be_\bs section) is enabled. Generates a SIGINT
+ signal which is sent to all processes in the foreground process
+ group for which the terminal is the controlling terminal. If
+ ISIG is set, the INTR character is discarded when processed.
+
+ QUIT Special character on input and is recognized if the ISIG flag is
+ enabled. Generates a SIGQUIT signal which is sent to all pro-
+ cesses in the foreground process group for which the terminal is
+ the controlling terminal. If ISIG is set, the QUIT character is
+ discarded when processed.
+
+ ERASE Special character on input and is recognized if the ICANON flag
+ is set. Erases the last character in the current line; see
+ _\bC_\ba_\bn_\bo_\bn_\bi_\bc_\ba_\bl _\bM_\bo_\bd_\be _\bI_\bn_\bp_\bu_\bt _\bP_\br_\bo_\bc_\be_\bs_\bs_\bi_\bn_\bg. It does not erase beyond the
+ start of a line, as delimited by an NL, EOF, or EOL character.
+ If ICANON is set, the ERASE character is discarded when pro-
+ cessed.
+
+ KILL Special character on input and is recognized if the ICANON flag
+ is set. Deletes the entire line, as delimited by a NL, EOF, or
+ EOL character. If ICANON is set, the KILL character is discarded
+ when processed.
+
+ EOF Special character on input and is recognized if the ICANON flag
+ is set. When received, all the bytes waiting to be read are im-
+ mediately passed to the process, without waiting for a newline,
+ and the EOF is discarded. Thus, if there are no bytes waiting
+ (that is, the EOF occurred at the beginning of a line), a byte
+ count of zero is returned from the read(), representing an end-
+ of-file indication. If ICANON is set, the EOF character is dis-
+ carded when processed. NL Special character on input and is rec-
+ ognized if the ICANON flag is set. It is the line delimiter
+ `\n'.
+
+ EOL Special character on input and is recognized if the ICANON flag
+ is set. Is an additional line delimiter, like NL.
+
+ SUSP If the ISIG flag is enabled, receipt of the SUSP character causes
+ a SIGTSTP signal to be sent to all processes in the foreground
+ process group for which the terminal is the controlling terminal,
+ and the SUSP character is discarded when processed.
+
+ STOP Special character on both input and output and is recognized if
+ the IXON (output control) or IXOFF (input control) flag is set.
+ Can be used to temporarily suspend output. It is useful with
+ fast terminals to prevent output from disappearing before it can
+ be read. If IXON is set, the STOP character is discarded when
+ processed.
+
+ START Special character on both input and output and is recognized if
+ the IXON (output control) or IXOFF (input control) flag is set.
+ Can be used to resume output that has been suspended by a STOP
+ character. If IXON is set, the START character is discarded when
+ processed. CR Special character on input and is recognized if
+ the ICANON flag is set; it is the `\r', as denoted in the C Stan-
+ dard {2}. When ICANON and ICRNL are set and IGNCR is not set,
+ this character is translated into a NL, and has the same effect
+ as a NL character.
+
+ The following special characters are extensions defined by this system
+ and are not a part of 1003.1 termios.
+
+ EOL2 Secondary EOL character. Same function as EOL.
+
+ WERASE Special character on input and is recognized if the ICANON flag
+ is set. Erases the last word in the current line according to
+ one of two algorithms. If the ALTWERASE flag is not set, first
+ any preceding whitespace is erased, and then the maximal sequence
+ of non-whitespace characters. If ALTWERASE is set, first any
+ preceding whitespace is erased, and then the maximal sequence of
+ alphabetic/underscores or non alphabetic/underscores. As a spe-
+ cial case in this second algorithm, the first previous non-
+ whitespace character is skippied in determining whether the pre-
+ ceding word is a sequence of alphabetic/undercores. This sounds
+ confusing but turns out to be quite practical.
+
+ REPRINT
+ Special character on input and is recognized if the ICANON flag
+ is set. Causes the current input edit line to be retyped.
+
+ DSUSP Has similar actions to the SUSP character, except that the
+ SIGTSTP signal is delivered when one of the processes in the
+ foreground process group issues a read() to the controlling ter-
+ minal.
+
+ LNEXT Special character on input and is recognized if the IEXTEN flag
+ is set. Receipt of this character causes the next character to
+ be taken literally.
+
+ DISCARD
+ Special character on input and is recognized if the IEXTEN flag
+ is set. Receipt of this character toggles the flushing of termi-
+ nal output.
+
+ STATUS Special character on input and is recognized if the ICANON flag
+ is set. Receipt of this character causes a SIGINFO signal to be
+ sent to the forground process group of the terminal. Also, if
+ the NOKERNINFO flag is not set, it causes the kernel to write a
+ status message to the terminal that displays the current load av-
+ erage, the name of the command in the foreground, its process ID,
+ the symbolic wait channel, the number of user and system seconds
+ used, the percentage of cpu the process is getting, and the resi-
+ dent set size of the process.
+
+ The NL and CR characters cannot be changed. The values for all the re-
+ maining characters can be set and are described later in the document un-
+ der Special Control Characters.
+
+ Special character functions associated with changeable special control
+ characters can be disabled individually by setting their value to
+ {_POSIX_VDISABLE}; see _\bS_\bp_\be_\bc_\bi_\ba_\bl _\bC_\bo_\bn_\bt_\br_\bo_\bl _\bC_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs.
+
+ If two or more special characters have the same value, the function per-
+ formed when that character is received is undefined.
+
+ M\bMo\bod\bde\bem\bm D\bDi\bis\bsc\bco\bon\bnn\bne\bec\bct\bt
+ If a modem disconnect is detected by the terminal interface for a con-
+ trolling terminal, and if CLOCAL is not set in the _\bc_\b__\bc_\bf_\bl_\ba_\bg field for the
+ terminal, the SIGHUP signal is sent to the controlling process associated
+ with the terminal. Unless other arrangements have been made, this causes
+ the controlling process to terminate. Any subsequent call to the read()
+ function return the value zero, indicating end of file. Thus, processes
+ that read a terminal file and test for end-of-file can terminate appro-
+ priately after a disconnect. Any subsequent write() to the terminal de-
+ vice returns -1, with _\be_\br_\br_\bn_\bo set to EIO, until the device is closed.
+
+G\bGe\ben\bne\ber\bra\bal\bl T\bTe\ber\brm\bmi\bin\bna\bal\bl I\bIn\bnt\bte\ber\brf\bfa\bac\bce\be
+ C\bCl\blo\bos\bsi\bin\bng\bg a\ba T\bTe\ber\brm\bmi\bin\bna\bal\bl D\bDe\bev\bvi\bic\bce\be F\bFi\bil\ble\be
+ The last process to close a terminal device file causes any output to be
+ sent to the device and any input to be discarded. Then, if HUPCL is set
+ in the control modes, and the communications port supports a disconnect
+ function, the terminal device performs a disconnect.
+
+
+ P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs T\bTh\bha\bat\bt C\bCa\ban\bn B\bBe\be S\bSe\bet\bt
+ Routines that need to control certain terminal I/O characteristics do so
+ by using the termios structure as defined in the header <_\bt_\be_\br_\bm_\bi_\bo_\bs_\b._\bh>. This
+ structure contains minimally four scalar elements of bit flags and one
+ array of special characters. The scalar flag elements are named:
+ _\bc_\b__\bi_\bf_\bl_\ba_\bg, _\bc_\b__\bo_\bf_\bl_\ba_\bg, _\bc_\b__\bc_\bf_\bl_\ba_\bg, and _\bc_\b__\bl_\bf_\bl_\ba_\bg. _\bT_\bh_\be _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br _\ba_\br_\br_\ba_\by is named
+ _\bc_\b__\bc_\bc, and its maximum index is NCCS.
+
+ I\bIn\bnp\bpu\but\bt M\bMo\bod\bde\bes\bs
+ Values of the _\bc_\b__\bi_\bf_\bl_\ba_\bg field describe the basic terminal input control,
+ and are composed of following masks:
+
+ IGNBRK /* ignore BREAK condition */
+ BRKINT /* map BREAK to SIGINTR */
+ IGNPAR /* ignore (discard) parity errors */
+ PARMRK /* mark parity and framing errors */
+ INPCK /* enable checking of parity errors */
+ ISTRIP /* strip 8th bit off chars */
+ INLCR /* map NL into CR */
+ IGNCR /* ignore CR */
+ ICRNL /* map CR to NL (ala CRMOD) */
+ IXON /* enable output flow control */
+ IXOFF /* enable input flow control */
+ IXANY /* any char will restart after stop */
+ IMAXBEL /* ring bell on input queue full */
+
+ In the context of asynchronous serial data transmission, a break condi-
+ tion is defined as a sequence of zero-valued bits that continues for more
+ than the time to send one byte. The entire sequence of zero-valued bits
+ is interpreted as a single break condition, even if it continues for a
+ time equivalent to more than one byte. In contexts other than asyn-
+ chronous serial data transmission the definition of a break condition is
+ implementation defined.
+
+ If IGNBRK is set, a break condition detected on input is ignored, that
+ is, not put on the input queue and therefore not read by any process. If
+ IGNBRK is not set and BRKINT is set, the break condition flushes the in-
+ put and output queues and if the terminal is the controlling terminal of
+ a foreground process group, the break condition generates a single SIGINT
+ signal to that foreground process group. If neither IGNBRK nor BRKINT is
+ set, a break condition is read as a single `\0', or if PARMRK is set, as
+ `\377', `\0', `\0'.
+
+ If IGNPAR is set, a byte with a framing or parity error (other than
+ break) is ignored.
+
+ If PARMRK is set, and IGNPAR is not set, a byte with a framing or parity
+ error (other than break) is given to the application as the three- char-
+ acter sequence `\377', `\0', X, where `\377', `\0' is a two-character
+ flag preceding each sequence and X is the data of the character received
+ in error. To avoid ambiguity in this case, if ISTRIP is not set, a valid
+ character of `\377' is given to the application as `\377', `\377'. If
+ neither PARMRK nor IGNPAR is set, a framing or parity error (other than
+ break) is given to the application as a single character `\0'.
+
+ If INPCK is set, input parity checking is enabled. If INPCK is not set,
+ input parity checking is disabled, allowing output parity generation
+ without input parity errors. Note that whether input parity checking is
+ enabled or disabled is independent of whether parity detection is enabled
+ or disabled (see _\bC_\bo_\bn_\bt_\br_\bo_\bl _\bM_\bo_\bd_\be_\bs). If parity detection is enabled but input
+ parity checking is disabled, the hardware to which the terminal is con-
+ nected recognizes the parity bit, but the terminal special file does not
+ check whether this bit is set correctly or not.
+
+ If ISTRIP is set, valid input bytes are first stripped to seven bits,
+ otherwise all eight bits are processed.
+
+ If INLCR is set, a received NL character is translated into a CR charac-
+ ter. If IGNCR is set, a received CR character is ignored (not read). If
+ IGNCR is not set and ICRNL is set, a received CR character is translated
+ into a NL character.
+
+ If IXON is set, start/stop output control is enabled. A received STOP
+ character suspends output and a received START character restarts output.
+ If IXANY is also set, then any character may restart output. When IXON is
+ set, START and STOP characters are not read, but merely perform flow con-
+ trol functions. When IXON is not set, the START and STOP characters are
+ read.
+
+ If IXOFF is set, start/stop input control is enabled. The system shall
+ transmit one or more STOP characters, which are intended to cause the
+ terminal device to stop transmitting data, as needed to prevent the input
+ queue from overflowing and causing the undefined behavior described in
+ _\bI_\bn_\bp_\bu_\bt _\bP_\br_\bo_\bc_\be_\bs_\bs_\bi_\bn_\bg _\ba_\bn_\bd _\bR_\be_\ba_\bd_\bi_\bn_\bg _\bD_\ba_\bt_\ba, and shall transmit one or more START
+ characters, which are intended to cause the terminal device to resume
+ transmitting data, as soon as the device can continue transmitting data
+ without risk of overflowing the input queue. The precise conditions un-
+ der which STOP and START characters are transmitted are implementation
+ defined.
+
+ If IMAXBEL is set and the input queue is full, subsequent input shall
+ causes an ASCII BEL character to be transmitted to the the output queue.
+
+ The initial input control value after open() is implementation defined.
+
+ O\bOu\but\btp\bpu\but\bt M\bMo\bod\bde\bes\bs
+ Values of the _\bc_\b__\bo_\bf_\bl_\ba_\bg field describe the basic terminal output control,
+ and are composed of the following masks:
+
+ OPOST /* enable following output processing */
+ ONLCR /* map NL to CR-NL (ala CRMOD) */
+ OXTABS /* expand tabs to spaces */
+ ONOEOT /* discard EOT's `^D' on output) */
+
+ If OPOST is set, the remaining flag masks are interpreted as follows;
+ otherwise characters are transmitted without change.
+
+ If ONLCR is set, newlines are translated to carriage return, linefeeds.
+
+ If OXTABS is set, tabs are expanded to the appropiate number of spaces
+ (assuming 8 column tab stops).
+
+ If ONOEOT is set, ASCII EOT NS 's are discarded on output.
+
+ C\bCo\bon\bnt\btr\bro\bol\bl M\bMo\bod\bde\bes\bs
+ Values of the _\bc_\b__\bc_\bf_\bl_\ba_\bg field describe the basic terminal hardware control,
+ and are composed of the the following masks. Not all values specified
+ are supported by all hardware.
+
+ CSIZE /* character size mask */
+ CS5 /* 5 bits (pseudo) */
+ CS6 /* 6 bits */
+ CS7 /* 7 bits */
+ CS8 /* 8 bits */
+ CSTOPB /* send 2 stop bits */
+ CREAD /* enable receiver */
+ PARENB /* parity enable */
+ PARODD /* odd parity, else even */
+ HUPCL /* hang up on last close */
+ CLOCAL /* ignore modem status lines */
+
+
+ CCTS_OFLOW /* CTS flow control of output */
+ CRTSCTS /* same as CCTS_OFLOW */
+ CRTS_IFLOW /* RTS flow control of input */
+ MDMBUF /* flow control output via Carrier */
+
+ The CSIZE bits specify the byte size in bits for both transmission and
+ reception. The _\bc_\b__\bc_\bf_\bl_\ba_\bg is masked with CSIZE and compared with the values
+ CS5, CS6, CS7, or CS8. This size does not include the parity bit, if any.
+ If CSTOPB is set, two stop bits are used, otherwise one stop bit. For
+ example, at 110 baud, two stop bits are normally used.
+
+ If CREAD is set, the receiver is enabled. Otherwise, no characters shall
+ be received. Not all hardware supports this bit. In fact, this flag is
+ pretty silly and if it were not part of the t\bte\ber\brm\bmi\bio\bos\bs specification it
+ would be ommitted.
+
+ If PARENB is set, parity generation and detection is enabled and a parity
+ bit is added to each character. If parity is enabled, PARODD specifies
+ odd parity if set, otherwise even parity is used.
+
+ If HUPCL is set, the modem control lines for the port shall be lowered
+ when the last process with the port open closes the port or the process
+ terminates. The modem connection shall be broken.
+
+ If CLOCAL is set, a connection does not depend on the state of the modem
+ status lines. If CLOCAL is clear, the modem status lines shall be moni-
+ tored.
+
+ Under normal circumstances, a call to the open() function shall wait for
+ the modem connection to complete. However, if the O_NONBLOCK flag is set
+ or if CLOCAL has been set, the open() function shall return immediately
+ without waiting for the connection.
+
+ The CCTS_OFLOW (CRTSCTS) flag is currently unused.
+
+ If MDMBUF is set then output flow control is controlled by the state of
+ Carrier Detect.
+
+ If the object for which the control modes are set is not an asynchronous
+ serial connection, some of the modes may be ignored; for example, if an
+ attempt is made to set the baud rate on a network connection to a termi-
+ nal on another host, the baud rate may or may not be set on the connec-
+ tion between that terminal and the machine it is directly connected to.
+
+ L\bLo\boc\bca\bal\bl M\bMo\bod\bde\bes\bs
+ Values of the c_lflag field describe the control of various functions,
+ and are composed of the following masks.
+
+ ECHOKE /* visual erase for line kill */
+ ECHOE /* visually erase chars */
+ ECHO /* enable echoing */
+ ECHONL /* echo NL even if ECHO is off */
+ ECHOPRT /* visual erase mode for hardcopy */
+ ECHOCTL /* echo control chars as ^(Char) */
+ ISIG /* enable signals INTR, QUIT, [D]SUSP */
+ ICANON /* canonicalize input lines */
+ ALTWERASE /* use alternate WERASE algorithm */
+ IEXTEN /* enable DISCARD and LNEXT */
+ EXTPROC /* external processing */
+ TOSTOP /* stop background jobs from output */
+ FLUSHO /* output being flushed (state) */
+ NOKERNINFO /* no kernel output from VSTATUS */
+ PENDIN /* XXX retype pending input (state) */
+ NOFLSH /* don't flush after interrupt */
+
+
+ If ECHO is set, input characters are echoed back to the terminal. If
+ ECHO is not set, input characters are not echoed.
+
+ If ECHOE and ICANON are set, the ERASE character shall cause the terminal
+ to erase the last character in the current line from the display, if pos-
+ sible. If there is no character to erase, an implementation may echo an
+ indication that this was the case or do nothing.
+
+ If ECHOK and ICANON are set, the KILL character shall cause the current
+ line to be discarded and the system shall echo the `\n' character after
+ the KILL character.
+
+ If ECHOKE and ICANON are set, the KILL character shall cause the current
+ line to be discarded and the system shall cause the terminal to erase the
+ line from the display.
+
+ If ECHOPRT and ICANON are set, the system shall assume that the display
+ is a printing device and shall print a backslash and the erased charac-
+ ters when processing ERASE characters, followed by a forward slash.
+
+ If ECHOCTL is set, the system shall echo control characters in a visible
+ fashion using a carrot followed by the control character.
+
+ If ALTWERASE is set, the system will use an alternative algorithm for de-
+ termining what constitutes a word when processing WERASE characters (see
+ WERASE).
+
+ If ECHONL and ICANON are set, the `\n' character shall be echoed even if
+ ECHO is not set.
+
+ If ICANON is set, canonical processing is enabled. This enables the
+ erase and kill edit functions, and the assembly of input characters into
+ lines delimited by NL, EOF, and EOL, as described in _\bC_\ba_\bn_\bo_\bn_\bi_\bc_\ba_\bl _\bM_\bo_\bd_\be _\bI_\bn_\bp_\bu_\bt
+ _\bP_\br_\bo_\bc_\be_\bs_\bs_\bi_\bn_\bg.
+
+ If ICANON is not set, read requests are satisfied directly from the input
+ queue. A read shall not be satisfied until at least MIN bytes have been
+ received or the timeout value TIME expired between bytes. The time value
+ represents tenths of seconds. See _\bN_\bo_\bn_\bc_\ba_\bn_\bo_\bn_\bi_\bc_\ba_\bl _\bM_\bo_\bd_\be _\bI_\bn_\bp_\bu_\bt _\bP_\br_\bo_\bc_\be_\bs_\bs_\bi_\bn_\bg for
+ more details.
+
+ If ISIG is set, each input character is checked against the special con-
+ trol characters INTR, QUIT, and SUSP (job control only). If an input
+ character matches one of these control characters, the function associat-
+ ed with that character is performed. If ISIG is not set, no checking is
+ done. Thus these special input functions are possible only if ISIG is
+ set.
+
+ If IEXTEN is set, implementation-defined functions shall be recognized
+ from the input data. It is implementation defined how IEXTEN being set
+ interacts with ICANON, ISIG, IXON, or IXOFF. If IEXTEN is not set, then
+ implementation-defined functions shall not be recognized, and the corre-
+ sponding input characters shall be processed as described for ICANON,
+ ISIG, IXON, and IXOFF.
+
+ If NOFLSH is set, the normal flush of the input and output queues associ-
+ ated with the INTR, QUIT, and SUSP characters shall not be done.
+
+ If TOSTOP is set, the signal SIGTTOU is sent to the process group of a
+ process that tries to write to its controlling terminal if it is not in
+ the foreground process group for that terminal. This signal, by default,
+ stops the members of the process group. Otherwise, the output generated
+ by that process is output to the current output stream. Processes that
+ are blocking or ignoring SIGTTOU signals are excepted and allowed to pro-
+ duce output and the SIGTTOU signal is not sent.
+
+
+ If NOKERNINFO is set, the kernel shall not produce a status message when
+ processing STATUS characters (see STATUS).
+
+ S\bSp\bpe\bec\bci\bia\bal\bl C\bCo\bon\bnt\btr\bro\bol\bl C\bCh\bha\bar\bra\bac\bct\bte\ber\brs\bs
+ The special control characters values are defined by the array c_cc.
+ This table lists the array index, the corresponding special character,
+ and the system default value. For an accurate list of the system de-
+ faults, consult the header file <_\bt_\bt_\by_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bs_\b._\bh>.
+
+ _\bI_\bn_\bd_\be_\bx _\bN_\ba_\bm_\be _\bS_\bp_\be_\bc_\bi_\ba_\bl _\bC_\bh_\ba_\br_\ba_\bc_\bt_\be_\br _\bD_\be_\bf_\ba_\bu_\bl_\bt _\bV_\ba_\bl_\bu_\be
+ VEOF EOF ^D
+ VEOL EOL _POSIX_VDISABLE
+ VEOL2 EOL2 _POSIX_VDISABLE
+ VERASE ERASE ^? `\177'
+ VWERASE WERASE ^W
+ VKILL KILL ^U
+ VREPRINT REPRINT ^R
+ VINTR INTR ^C
+ VQUIT QUIT ^\\ `\34'
+ VSUSP SUSP ^Z
+ VDSUSP DSUSP ^Y
+ VSTART START ^Q
+ VSTOP STOP ^S
+ VLNEXT LNEXT ^V
+ VDISCARD DISCARD ^O
+ VMIN --- 1
+ VTIME --- 0
+ VSTATUS STATUS ^T
+
+ If the value of one of the changeable special control characters (see
+ _\bS_\bp_\be_\bc_\bi_\ba_\bl _\bC_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs) is {_POSIX_VDISABLE}, that function shall be dis-
+ abled; that is, no input data shall be recognized as the disabled special
+ character. If ICANON is not set, the value of {_POSIX_VDISABLE} has no
+ special meaning for the VMIN and VTIME entries of the _\bc_\b__\bc_\bc array.
+
+ The initial values of the flags and control characters after open() is
+ set according to the values in the header <_\bs_\by_\bs_\b/_\bt_\bt_\by_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bs_\b._\bh>.
+
+4th Berkeley Distribution June 5, 1993 11
--- /dev/null
+TP(4) BSD Programmer's Manual TP(4)
+
+N\bNA\bAM\bME\bE
+ T\bTP\bP - ISO Transport Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bis\bso\bo/\b/i\bis\bso\bo_\b_e\ber\brr\brn\bno\bo.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bis\bso\bo/\b/t\btp\bp_\b_p\bpa\bar\bra\bam\bm.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bis\bso\bo/\b/t\btp\bp_\b_u\bus\bse\ber\br.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\b[_\bA_\bF_\b__\bI_\bN_\bE_\bT_\b, _\bA_\bF_\b__\bI_\bS_\bO_\b], _\bS_\bO_\bC_\bK_\b__\bS_\bE_\bQ_\bP_\bA_\bC_\bK_\bE_\bT, _\b0);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The TP protocol provides reliable, flow-controlled, two-way transmission
+ of data and record boundaries. It is a byte-stream protocol and is ac-
+ cessed according to the SOCK_SEQPACKET abstraction. The TP protocol
+ makes use of a standard ISO address format, including a Network Service
+ Access Point, and a Transport Service Entity Selector. Subclass 4 may
+ make use of the internet Internet address format.
+
+ Sockets utilizing the tp protocol are either ``active'' or ``passive''.
+ Active sockets initiate connections to passive sockets. By default TCP
+ sockets are created active; to create a passive socket the listen(2) sys-
+ tem call must be used after binding the socket with the bind(2) system
+ call. Only passive sockets may use the accept(2) call to accept incoming
+ connections. Only active sockets may use the connect(2) call to initiate
+ connections.
+
+ Passive sockets may ``underspecify'' their location to match incoming
+ connection requests from multiple networks. This technique, termed
+ ``wildcard addressing'', allows a single server to provide service to
+ clients on multiple networks. To create a socket which listens on all
+ networks, the NSAP portion of the bound address must be void (of length
+ zero). The Transport Selector may still be specified at this time; if
+ the port is not specified the system will assign one. Once a connection
+ has been established the socket's address is fixed by the peer entity's
+ location. The address assigned the socket is the address associated
+ with the network interface through which packets are being transmitted
+ and received.
+
+ The ISO Transport Protocol implemented for AOS R2 at the University of
+ Wisconsin - Madison, and modified for inclusion in the Berkeley Software
+ Distribution, includes classes 0 and 4 of the ISO transport protocols as
+ specified in the June 1986 version of IS 8073. Class 4 of the protocol
+ provides reliable, sequenced, flow-controlled, two-way transmission of
+ data packets with an alternate stop-and-wait data path called the "expe-
+ dited data" service. Class 0 is essentially a null transport protocol,
+ which is used when the underlying network service provides reliable, se-
+ quenced, flow-controlled, two-way data transmission. Class 0 does not
+ provide the expedited data service. The protocols are implemented as a
+ single transport layer entity that coexists with the Internet protocol
+ suite. Class 0 may be used only in the ISO domain. Class 4 may be used
+ in the Internet domain as well as in the ISO domain.
+
+ Two system calls were modified from the previous release of the Berkeley
+ Software Distribution to permit the support the end-of-transport-service-
+ data-unit (EOTSDU) indication, and for the receipt and transmission of
+ user connect, confirm, and disconnect data. See sendmsg(2) and
+ recmsgv(2), and further discussion below for the formats of the data in
+ the ancillary data buffer. If the EOTSDU is not needed, the normal
+ read(2), and write(2) system calls may be used.
+
+
+ Through the getsockopt and setsockopt system calls, TP supports several
+ options to control such things as negotiable options in the protocol and
+ protocol strategies. The options are defined in <_\bn_\be_\bt_\bi_\bs_\bo_\b/_\bt_\bp_\b__\bu_\bs_\be_\br_\b._\bh>, and
+ are described below.
+
+ In the tables below, the options marked with a pound sign `#' may be used
+ with setsockopt after a connection is established. Others must be used
+ before the connection is established, in other words, before calling con-
+ nect or accept. All options may be used with getsockopt before or after
+ a connection is established.
+
+ TPOPT_CONN_DATA (char *) [none]
+ Data to send on connect. The passive user may issue a
+ getsockopt call to retrieve a connection request's us-
+ er data, after having done the accept system call
+ without implying confirmation of the connection.
+
+ The data may also be retrieved by issuing a recvmsg
+ request for ancillary data only, without implying con-
+ firmation of the connection. The returned _\bc_\bm_\bs_\bg_\bh_\bd_\br
+ will contain SOL_TRANSPORT for the _\bc_\bs_\bm_\bg_\b__\bl_\be_\bv_\be_\bl and
+ TPOPT_CONN_DATA for _\bc_\bm_\bs_\bg_\b__\bt_\by_\bp_\be_\b.
+
+ TPOPT_DISC_DATA # (char *) [none]
+ Data to send on close. Disconnect data may be sent by
+ the side initiating the close but not by the passive
+ side ("passive" with respect to the closing of the
+ connection), so there is no need to read disconnect
+ data after calling close. This may be sent by a set-
+ sockopt system call, or by issuing a sendmsg request
+ specifying ancillary data only. The user-provided
+ _\bc_\bm_\bs_\bg_\bh_\bd_\br must contain SOL_TRANSPORT for _\bc_\bs_\bm_\bg_\b__\bl_\be_\bv_\be_\bl and
+ TPOPT_DISC_DATA for _\bc_\bm_\bs_\bg_\b__\bt_\by_\bp_\be. Sending of disconnect
+ data will in of itself tear down (or reject) the con-
+ nection.
+
+ TPOPT_CFRM_DATA # (char *) [none]
+ Data to send when confirming a connection. This may
+ aslo be sent by a setsockopt system call, or by issu-
+ ing a sendmsg request, as above. Sending of connect
+ confirm data will cause the connection to be confirmed
+ rather than rejected.
+
+ TPOPT_PERF_MEAS # Boolean.
+ When true, performance measurements will be kept for
+ this connection. When set before a connection is es-
+ tablished, the active side will use a locally defined
+ parameter on the connect request packet; if the peer
+ is another ARGO implementation, this will cause per-
+ formance measurement to be turned on on the passive
+ side as well. See tpperf(8).
+
+ TPOPT_PSTATISTICS No associated value on input. On output, _\bs_\bt_\br_\bu_\bc_\bt
+ _\bt_\bp_\b__\bp_\bm_\be_\ba_\bs.
+
+ This command is used to read the performance statis-
+ tics accumulated during a connection's lifetime. It
+ can only be used with getsockopt. The structure it
+ returns is described in <_\bn_\be_\bt_\bi_\bs_\bo_\b/_\bt_\bp_\b__\bs_\bt_\ba_\bt_\b._\bh>. See
+ tpperf(8).
+
+ TPOPT_FLAGS unsigned integer. [0x0]
+ This command can only be used with getsockopt. See
+ the description of the flags below.
+
+ TPOPT_PARAMS _\bs_\bt_\br_\bu_\bc_\bt _\bt_\bp_\b__\bc_\bo_\bn_\bn_\b__\bp_\ba_\br_\ba_\bm
+ Used to get or set a group parameters for a connec-
+ tion. The _\bs_\bt_\br_\bu_\bc_\bt _\bt_\bp_\b__\bc_\bo_\bn_\bn_\b__\bp_\ba_\br_\ba_\bm is the argument used
+ with the getsockopt or setsockopt system call. It is
+ described in <_\bn_\be_\bt_\bi_\bs_\bo_\b/_\bt_\bp_\b__\bu_\bs_\be_\br_\b._\bh>.
+
+ The fields of the _\bt_\bp_\b__\bc_\bo_\bn_\bn_\b__\bp_\ba_\br_\ba_\bm structure are de-
+ scribed below.
+
+ _\bV_\ba_\bl_\bu_\be_\bs _\bf_\bo_\br _\bT_\bP_\bO_\bP_\bT_\b__\bP_\bA_\bR_\bA_\bM_\bS_\b:
+
+ _\bp_\b__\bN_\br_\be_\bt_\br_\ba_\bn_\bs nonzero short integer [1]
+ Number of times a TPDU will be retransmitted before the
+ local TP entity closes a connection.
+
+ _\bp_\b__\bd_\br_\b__\bt_\bi_\bc_\bk_\bs nonzero short integer [various]
+ Number of clock ticks between retransmissions of discon-
+ nect request TPDUs.
+
+ _\bp_\b__\bd_\bt_\b__\bt_\bi_\bc_\bk_\bs nonzero short integer [various]
+ Number of clock ticks between retransmissions of data
+ TPDUs. This parameter applies only to class 4.
+
+ _\bp_\b__\bc_\br_\b__\bt_\bi_\bc_\bk_\bs nonzero short integer [various]
+ Number of clock ticks between retransmissions of connec-
+ tion request TPDUs.
+
+ _\bp_\b__\bc_\bc_\b__\bt_\bi_\bc_\bk_\bs nonzero short integer [various]
+ Number of clock ticks between retransmissions of connec-
+ tion confirm TPDUs. This parameter applies only to
+ class 4.
+
+ _\bp_\b__\bx_\b__\bt_\bi_\bc_\bk_\bs nonzero short integer [various]
+ Number of clock ticks between retransmissions of expe-
+ dited data TPDUs. This parameter applies only to class
+ 4.
+
+ _\bp_\b__\bs_\be_\bn_\bd_\ba_\bc_\bk_\b__\bt_\bi_\bc_\bk_\bs nonzero short integer [various]
+ Number of clock ticks that the local TP entity will wait
+ before sending an acknowledgment for normal data (not
+ applicable if the acknowlegement strategy is
+ TPACK_EACH). This parameter applies only to class 4.
+
+ _\bp_\b__\br_\be_\bf_\b__\bt_\bi_\bc_\bk_\bs nonzero short integer [various]
+ Number of clock ticks for which a reference will be con-
+ sidered frozen after the connection to which it applied
+ is closed. This parameter applies to classes 4 and 0 in
+ the ARGO implementation, despite the fact that the
+ frozen reference function is required only for class 4.
+
+ _\bp_\b__\bi_\bn_\ba_\bc_\bt_\b__\bt_\bi_\bc_\bk_\bs nonzero short integer [various]
+ Number of clock ticks without an incoming packet from
+ the peer after which TP close the connection. This pa-
+ rameter applies only to class 4.
+
+ _\bp_\b__\bk_\be_\be_\bp_\ba_\bl_\bi_\bv_\be_\b__\bt_\bi_\bc_\bk_\bs
+ nonzero short integer [various]
+ Number of clock ticks between acknowledgments that are
+ sent to keep an inactive connection open (to prevent the
+ peer's inactivity control function from closing the con-
+ nection). This parameter applies only to class 4.
+
+ _\bp_\b__\bw_\bi_\bn_\bs_\bi_\bz_\be short integer between 128 and 16384. [4096 bytes]
+ The buffer space limits in bytes for incoming and outgo-
+ ing data. There is no way to specify different limits
+ for incoming and outgoing paths. The actual window size
+ at any time during the lifetime of a connection is a
+ function of the buffer size limit, the negotiated maxi-
+ mum TPDU size, and the rate at which the user program
+ receives data. This parameter applies only to class 4.
+
+ _\bp_\b__\bt_\bp_\bd_\bu_\bs_\bi_\bz_\be unsigned char between 0x7 and 0xd. [0xc for class 4]
+ [0xb for class 0]
+ Log 2 of the maximum TPDU size to be negotiated. The TP
+ standard (ISO 8473) gives an upper bound of 0xd for
+ class 4 and 0xb for class 0. The ARGO implementation
+ places upper bounds of 0xc on class 4 and 0xb on class
+ 0.
+
+ _\bp_\b__\ba_\bc_\bk_\b__\bs_\bt_\br_\ba_\bt TPACK_EACH or TPACK_WINDOW. [TPACK_WINDOW]
+ This parameter applies only to class 4. Two acknowledg-
+ ment strategies are supported:
+
+ TPACK_EACH means that each data TPDU is acknowledged
+ with an AK TPDU.
+
+ TPACK_WINDOW means that upon receipt of the packet that
+ represents the high edge of the last window advertised,
+ and AK TPDU is generated.
+
+ _\bp_\b__\br_\bx_\b__\bs_\bt_\br_\ba_\bt 4 bit mask [TPRX_USE_CW | TPRX_FASTSTART] over connec-
+ tionless network protocols] [TPRX_USE_CW over connec-
+ tion-oriented network protocols]
+ This parameter applies only to class 4. The bit mask
+ may include the following values:
+
+ TPRX_EACH: When a retransmission timer expires, retrans-
+ mit each packet in the send window rather than just the
+ first unacknowledged packet.
+
+ TPRX_USE_CW: Use a "congestion window" strategy borrowed
+ from Van Jacobson's congestion window strategy for TCP.
+ The congestion window size is set to one whenever a re-
+ transmission occurs.
+
+ TPRX_FASTSTART: Begin sending the maximum amount of data
+ permitted by the peer (subject to availability). The
+ alternative is to start sending slowly by pretending the
+ peer's window is smaller than it is, and letting it
+ slowly grow up to the real peer's window size. This is
+ to smooth the effect of new connections on a congested
+ network by preventing a transport connection from sud-
+ denly overloading the network with a burst of packets.
+ This strategy is also due to Van Jacobson.
+
+ _\bp_\b__\bc_\bl_\ba_\bs_\bs 5 bit mask [TP_CLASS_4 | TP_CLASS_0]
+ Bit mask including one or both of the values TP_CLASS_4
+ and TP_CLASS_0. The higher class indicated is the pre-
+ ferred class. If only one class is indicated, negotia-
+ tion will not occur during connection establishment.
+
+ _\bp_\b__\bx_\bt_\bd_\b__\bf_\bo_\br_\bm_\ba_\bt Boolean. [false]
+ Boolean indicating that extended format shall be negoti-
+ ated. This parameter applies only to class 4.
+
+ _\bp_\b__\bx_\bp_\bd_\b__\bs_\be_\br_\bv_\bi_\bc_\be Boolean. [true]
+ Boolean indicating that the expedited data transport
+ service will be negotiated. This parameter applies only
+ to class 4.
+
+ _\bp_\b__\bu_\bs_\be_\b__\bc_\bh_\be_\bc_\bk_\bs_\bu_\bm Boolean. [true]
+ Boolean indicating the the use of checksums will be ne-
+
+ gotiated. This parameter applies only to class 4.
+
+ _\bp_\b__\bu_\bs_\be_\b__\bn_\bx_\bp_\bd Reserved for future use.
+
+ _\bp_\b__\bu_\bs_\be_\b__\br_\bc_\bc Reserved for future use.
+
+ _\bp_\b__\bu_\bs_\be_\b__\be_\bf_\bc Reserved for future use.
+
+ _\bp_\b__\bn_\bo_\b__\bd_\bi_\bs_\bc_\b__\bi_\bn_\bd_\bi_\bc_\ba_\bt_\bi_\bo_\bn_\bs
+ Boolean. [false]
+
+ Boolean indicating that the local TP entity shall not
+ issue indications (signals) when a TP connection is dis-
+ connected.
+
+ _\bp_\b__\bd_\bo_\bn_\bt_\b__\bc_\bh_\ba_\bn_\bg_\be_\b__\bp_\ba_\br_\ba_\bm_\bs
+ Boolean. [false]
+ If _\bt_\br_\bu_\be the TP entity will not override any of the other
+ values given in this structure. If the values cannot be
+ used, the TP entity will drop, disconnect, or refuse to
+ establish the connection to which this structure per-
+ tains.
+
+ _\bp_\b__\bn_\be_\bt_\bs_\be_\br_\bv_\bi_\bc_\be One of { ISO_CLNS, ISO_CONS, ISO_COSNS, IN_CLNS }.
+ [ISO_CLNS]
+ Indicates which network service is to be used.
+
+ ISO_CLNS indicates the connectionless network service
+ provided by CLNP (ISO 8473).
+
+ ISO_CONS indicates the connection-oriented network ser-
+ vice provided by X.25 (ISO 8208) and ISO 8878.
+
+ ISO_COSNS indicates the connectionless network service
+ running over a connection-oriented subnetwork service:
+ CLNP (ISO 8473) over X.25 (ISO 8208).
+
+ IN_CLNS indicates the DARPA Internet connectionless net-
+ work service provided by IP (RFC 791).
+
+ _\bp_\b__\bd_\bu_\bm_\bm_\by Reserved for future use.
+
+ The TPOPT_FLAGS option is used for obtaining various boolean-valued op-
+ tions. Its meaning is as follows. The bit numbering used is that of the
+ RT PC, which means that bit 0 is the most significant bit, while bit 8 is
+ the least significant bit.
+
+ _\bV_\ba_\bl_\bu_\be_\bs _\bf_\bo_\br _\bT_\bP_\bO_\bP_\bT_\b__\bF_\bL_\bA_\bG_\bS_\b:
+
+ B\bBi\bit\bts\bs D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn [\b[D\bDe\bef\bfa\bau\bul\blt\bt]\b]
+
+ 0 TPFLAG_NLQOS_PDN: set when the quality of the network service is
+ similar to that of a public data network.
+
+ 1 TPFLAG_PEER_ON_SAMENET: set when the peer TP entity is considered
+ to be on the same network as the local TP entity.
+
+ 2 Not used.
+
+ 3 TPFLAG_XPD_PRES: set when expedited data are present [0]
+
+ 4..7 Reserved.
+
+E\bER\bRR\bRO\bOR\bR V\bVA\bAL\bLU\bUE\bES\bS
+ The TP entity returns _\be_\br_\br_\bn_\bo error values as defined in <_\bs_\by_\bs_\b/_\be_\br_\br_\bn_\bo_\b._\bh> and
+ <_\bn_\be_\bt_\bi_\bs_\bo_\b/_\bi_\bs_\bo_\b__\be_\br_\br_\bn_\bo_\b._\bh>. User programs may print messages associated with
+ these value by using an expanded version of perror found in the ISO li-
+ brary, _\bl_\bi_\bb_\bi_\bs_\bo_\bd_\bi_\br_\b._\ba.
+
+ If the TP entity encounters asynchronous events that will cause a trans-
+ port connection to be closed, such as timing out while retransmitting a
+ connect request TPDU, or receiving a DR TPDU, the TP entity issues a
+ SIGURG signal, indicating that disconnection has occurred. If the signal
+ is issued during a a system call, the system call may be interrupted, in
+ which case the _\be_\br_\br_\bn_\bo value upon return from the system call is EINTR. If
+ the signal SIGURG is being handled by reading from the socket, and it was
+ a accept(2) that timed out, the read may result in ENOTSOCK, because the
+ accept call had not yet returned a legitimate socket descriptor when the
+ signal was handled. ETIMEDOUT (or a some other errno value appropriate
+ to the type of error) is returned if SIGURG is blocked for the duration
+ of the system call. A user program should take one of the following ap-
+ proaches:
+
+ Block SIGURG
+ If the program is servicing only one connection, it can block or
+ ignore SIGURG during connection establishment. The advantage of
+ this is that the _\be_\br_\br_\bn_\bo value returned is somewhat meaningful.
+ The disadvantage of this is that if ignored, disconnection and
+ expedited data indications could be missed. For some programs
+ this is not a problem.
+
+ Handle SIGURG
+ If the program is servicing more than one connection at a time or
+ expedited data may arrive or both, the program may elect to ser-
+ vice SIGURG. It can use the g\bge\bet\bts\bso\boc\bck\bko\bop\bpt\bt(_\b._\b._\b._\bT_\bP_\bO_\bP_\bT_\b__\bF_\bL_\bA_\bG_\bS_\b._\b._\b.) system
+ call to see if the signal was due to the arrival of expedited da-
+ ta or due to a disconnection. In the latter case, getsockopt
+ will return ENOTCONN.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tcp(4), netstat(1), iso(4), clnp(4), cltp(4), ifconfig(8).
+
+B\bBU\bUG\bGS\bS
+ The protocol definition of expedited data is slightly problematic, in a
+ way that renders expedited data almost useless, if two or more packets of
+ expedited data are send within time e, where e depends on the applica-
+ tion. The problem is not of major significance since most applications
+ do not use transport expedited data. The problem is this: the expedited
+ data acknowledgment TPDU has no field for conveying credit, thus it is
+ not possible for a TP entity to inform its peer that "I received your ex-
+ pedited data but have no room to receive more." The TP entity has the
+ choice of acknowledging receipt of the XPD TPDU:
+
+ when the user receives the XPD TSDU
+ which may be a fairly long time, which may cause the sending TP
+ entity to retransmit the packet, and possibly to close the con-
+ nection after retransmission, or
+
+ when the TP entity receives it
+ so the sending entity does not retransmit or close the connec-
+ tion. If the sending user then tries to send more expedited data
+ ``soon'', the expedited data will not be acknowledged (until the
+ receiving user receives the first XPD TSDU).
+
+ The ARGO implementation acknowledges XPD TPDUs immediately, in the hope
+ that most users will not use expedited data requently enough for this to
+ be a problem.
+
+4.4BSD June 9, 1993 6
--- /dev/null
+TTY(4) BSD Programmer's Manual TTY(4)
+
+N\bNA\bAM\bME\bE
+ t\btt\bty\by - general terminal interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/i\bio\boc\bct\btl\bl.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section describes the interface to the terminal drivers in the sys-
+ tem.
+
+ T\bTe\ber\brm\bmi\bin\bna\bal\bl S\bSp\bpe\bec\bci\bia\bal\bl F\bFi\bil\ble\bes\bs
+ Each hardware terminal port on the system usually has a terminal special
+ device file associated with it in the directory ``/dev/'' (for example,
+ ``/dev/tty03''). When a user logs into the system on one of these hard-
+ ware terminal ports, the system has already opened the associated device
+ and prepared the line for normal interactive use (see getty(8).) There
+ is also a special case of a terminal file that connects not to a hardware
+ terminal port, but to another program on the other side. These special
+ terminal devices are called _\bp_\bt_\by_\bs and provide the mechanism necessary to
+ give users the same interface to the system when logging in over a net-
+ work (using rlogin(1), or telnet(1) for example.) Even in these cases
+ the details of how the terminal file was opened and set up is already
+ handled by special software in the system. Thus, users do not normally
+ need to worry about the details of how these lines are opened or used.
+ Also, these lines are often used for dialing out of a system (through an
+ out-calling modem), but again the system provides programs that hide the
+ details of accessing these terminal special files (see tip(2).)
+
+ When an interactive user logs in, the system prepares the line to behave
+ in a certain way (called a _\bl_\bi_\bn_\be _\bd_\bi_\bs_\bc_\bi_\bp_\bl_\bi_\bn_\be _\b)_\b, the particular details of
+ which is described in stty(1) at the command level, and in termios(4) at
+ the programming level. A user may be concerned with changing settings
+ associated with his particular login terminal and should refer to the
+ preceding man pages for the common cases. The remainder of this man page
+ is concerned with describing details of using and controlling terminal
+ devices at a low level, such as that possibly required by a program wish-
+ ing to provide features similar to those provided by the system.
+
+ L\bLi\bin\bne\be d\bdi\bis\bsc\bci\bip\bpl\bli\bin\bne\bes\bs
+ A terminal file is used like any other file in the system in that it can
+ be opened, read, and written to using standard system calls. For each
+ existing terminal file, a software processing module called a _\bl_\bi_\bn_\be
+ _\bd_\bi_\bs_\bc_\bi_\bp_\bl_\bi_\bn_\be is associated with it. The _\bl_\bi_\bn_\be _\bd_\bi_\bs_\bc_\bi_\bp_\bl_\bi_\bn_\be essentially glues
+ the low level device driver code with the high level generic interface
+ routines (such as read(2) and write(2)), and is responsible for imple-
+ menting the semantics associated with the device. When a terminal file
+ is first opened by a program, the default _\bl_\bi_\bn_\be _\bd_\bi_\bs_\bc_\bi_\bp_\bl_\bi_\bn_\be called the
+ termios line discipline is associated with the file. This is the primary
+ line discipline that is used in most cases and provides the semantics
+ that users normally associate with a terminal. When the termios line
+ discipline is in effect, the terminal file behaves and is operated ac-
+ cording to the rules described in termios(4). Please refer to that man
+ page for a full description of the terminal semantics. The operations
+ described here generally represent features common across all _\bl_\bi_\bn_\be
+ _\bd_\bi_\bs_\bc_\bi_\bp_\bl_\bi_\bn_\be_\bs however, some of these calls may not make sense in conjunc-
+ tion with a line discipline other than termios, and some may not be sup-
+ ported by the underlying hardware or (lack thereof, as in the case of
+ ptys).
+
+ T\bTe\ber\brm\bmi\bin\bna\bal\bl F\bFi\bil\ble\be O\bOp\bpe\ber\bra\bat\bti\bio\bon\bns\bs
+ All of the following operations are invoked using the ioctl(2) system
+ call. Refer to that man page for a description of the _\br_\be_\bq_\bu_\be_\bs_\bt and _\ba_\br_\bg_\bp
+ parameter. In addition to the ioctl _\br_\be_\bq_\bu_\be_\bs_\bt_\bs defined here, the specific
+ line discipline in effect will define other _\br_\be_\bq_\bu_\be_\bs_\bt_\bs specific to it (ac-
+ tually termios(4) defines them as function calls, not ioctl _\br_\be_\bq_\bu_\be_\bs_\bt_\bs _\b._\b)
+ The following section lists the available ioctl requests. The name of
+ the request and the typed _\ba_\br_\bg_\bp parameter (if any) is listed along with a
+ description of its purpose. For example, the first entry says
+
+ _\bT_\bI_\bO_\bC_\bS_\bE_\bT_\bD _\bi_\bn_\bt _\b*_\bl_\bd_\bi_\bs_\bc
+
+ and would be called on the terminal associated with file discriptor zero
+ by the following code fragment:
+
+ int ldisc;
+
+ ldisc = TTYDISC;
+ ioctl(0, TIOCSETD, &ldisc);
+
+ T\bTe\ber\brm\bmi\bin\bna\bal\bl F\bFi\bil\ble\be R\bRe\beq\bqu\bue\bes\bst\bt D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bns\bs
+
+ TIOCSETD _\bi_\bn_\bt _\b*_\bl_\bd_\bi_\bs_\bc
+ Change to the new line discipline pointed to by _\bl_\bd_\bi_\bs_\bc. The
+ available line disciplines are listed in <sys/termios.h> and
+ currently are:
+
+ TTYDISC Termios interactive line discipline.
+ TABLDISC Tablet line discipline.
+ SLIPDISC Serial IP line discipline.
+
+ TIOCGETD _\bi_\bn_\bt _\b*_\bl_\bd_\bi_\bs_\bc
+ Return the current line discipline in the integer pointed to
+ by _\bl_\bd_\bi_\bs_\bc.
+
+ TIOCSBRK _\bv_\bo_\bi_\bd
+ Set the terminal hardware into BREAK condition.
+
+ TIOCCBRK _\bv_\bo_\bi_\bd
+ Clear the terminal hardware BREAK condition.
+
+ TIOCSDTR _\bv_\bo_\bi_\bd
+ Assert data terminal ready (DTR).
+
+ TIOCCDTR _\bv_\bo_\bi_\bd
+ Clear data terminal ready (DTR).
+
+ TIOCGPGRP _\bi_\bn_\bt _\b*_\bt_\bp_\bg_\br_\bp
+ Return the current process group the terminal is associated
+ with in the integer pointed to by _\bt_\bp_\bg_\br_\bp. This is the underly-
+ ing call that implements the termios(4) t\btc\bcg\bge\bet\bta\bat\btt\btr\br() call.
+
+ TIOCSPGRP _\bi_\bn_\bt _\b*_\bt_\bp_\bg_\br_\bp
+ Associate the terminal with the process group (as an integer)
+ pointed to by _\bt_\bp_\bg_\br_\bp. This is the underlying call that imple-
+ ments the termios(4) t\btc\bcs\bse\bet\bta\bat\btt\btr\br() call.
+
+ TIOCGETA _\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt_\be_\br_\bm
+ Place the current value of the termios state associated with
+ the device in the termios structure pointed to by _\bt_\be_\br_\bm. This
+ is the underlying call that implements the termios(4)
+ t\btc\bcg\bge\bet\bta\bat\btt\btr\br() call.
+
+ TIOCSETA _\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt_\be_\br_\bm
+ Set the termios state associated with the device immediatly.
+ This is the underlying call that implements the termios(4)
+ t\btc\bcs\bse\bet\bta\bat\btt\btr\br() call with the TCSANOW option.
+
+ TIOCSETAW _\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt_\be_\br_\bm
+ First wait for any output to complete, then set the termios
+ state associated with the device. This is the underlying
+ call that implements the termios(4) t\btc\bcs\bse\bet\bta\bat\btt\btr\br() call with the
+ TCSADRAIN option.
+
+ TIOCSETAF _\bs_\bt_\br_\bu_\bc_\bt _\bt_\be_\br_\bm_\bi_\bo_\bs _\b*_\bt_\be_\br_\bm
+ First wait for any output to complete, clear any pending in-
+ put, then set the termios state associated with the device.
+ This is the underlying call that implements the termios(4)
+ t\btc\bcs\bse\bet\bta\bat\btt\btr\br() call with the TCSAFLUSH option.
+
+ TIOCOUTQ _\bi_\bn_\bt _\b*_\bn_\bu_\bm
+ Place the current number of characters in the output queue in
+ the integer pointed to by _\bn_\bu_\bm.
+
+ TIOCSTI _\bc_\bh_\ba_\br _\b*_\bc_\bp
+ Simulate typed input. Pretend as if the terminal recieved
+ the character pointed to by _\bc_\bp.
+
+ TIOCNOTTY _\bv_\bo_\bi_\bd
+ This call is obsolete but left for compatability. In the
+ past, when a process that didn't have a controlling terminal
+ (see _\bT_\bh_\be _\bC_\bo_\bn_\bt_\br_\bo_\bl_\bl_\bi_\bn_\bg _\bT_\be_\br_\bm_\bi_\bn_\ba_\bl in termios(4)) first opened a
+ terminal device, it acquired that terminal as its controlling
+ terminal. For some programs this was a hazard as they didn't
+ want a controlling terminal in the first place, and this pro-
+ vided a mechanism to disassociate the controlling terminal
+ from the calling process. It _\bm_\bu_\bs_\bt be called by opening the
+ file _\b/_\bd_\be_\bv_\b/_\bt_\bt_\by and calling TIOCNOTTY on that file descriptor.
+
+ The current system does not allocate a controlling terminal
+ to a process on an o\bop\bpe\ben\bn() call: there is a specific ioctl
+ called TIOSCTTY to make a terminal the controlling terminal.
+ In addition, a program can f\bfo\bor\brk\bk() and call the s\bse\bet\bts\bsi\bid\bd() sys-
+ tem call which will place the process into its own session -
+ which has the effect of disassociating it from the control-
+ ling terminal. This is the new and prefered method for pro-
+ grams to lose their controlling terminal.
+
+ TIOCSTOP _\bv_\bo_\bi_\bd
+ Stop output on the terminal (like typing ^S at the keyboard).
+
+ TIOCSTART _\bv_\bo_\bi_\bd
+ Start output on the terminal (like typing ^Q at the kay-
+ board).
+
+ TIOCSCTTY _\bv_\bo_\bi_\bd
+ Make the terminal the controlling terminal for the process
+ (the process must not currently have a controlling terminal).
+
+ TIOCDRAIN _\bv_\bo_\bi_\bd
+ Wait until all output is drained.
+
+ TIOCEXCL _\bv_\bo_\bi_\bd
+ Set exclusive use on the terminal. No further opens are per-
+ mitted except by root. Of course, this means that programs
+ that are run by root (or setuid) will not obey the exclusive
+ setting - which limits the usefullness of this feature.
+
+ TIOCNXCL _\bv_\bo_\bi_\bd
+ Clear exclusive use of the terminal. Further opens are per-
+ mitted.
+
+ TIOCFLUSH _\bi_\bn_\bt _\b*_\bw_\bh_\ba_\bt
+ If the value of the int pointed to by _\bw_\bh_\ba_\bt contains the FREAD
+ bit as defined in <sys/file.h>, then all characters in the
+ input queue are cleared. If it contains the FWRITE bit, then
+ all characters in the output queue are cleared. If the value
+ of the integer is zero, then it behaves as if both the FREAD
+ and FWRITE bits were set (i.e. clears both queues).
+
+ TIOCGWINSZ _\bs_\bt_\br_\bu_\bc_\bt _\bw_\bi_\bn_\bs_\bi_\bz_\be _\b*_\bw_\bs
+ Put the window size information associated with the terminal
+ in the _\bw_\bi_\bn_\bs_\bi_\bz_\be structure pointed to by _\bw_\bs. The window size
+ structure contains the number of rows and columns (and pixels
+ if appropiate) of the devices attached to the terminal. It
+ is set by user software and is the means by which most full-
+ screen oriented programs determine the screen size. The
+ _\bw_\bi_\bn_\bs_\bi_\bz_\be structure is defined in <sys/ioctl.h>.
+
+ TIOCSWINSZ _\bs_\bt_\br_\bu_\bc_\bt _\bw_\bi_\bn_\bs_\bi_\bz_\be _\b*_\bw_\bs
+ Set the window size associated with the terminal to be the
+ value in the _\bw_\bi_\bn_\bs_\bi_\bz_\be structure pointed to by _\bw_\bs (see above).
+
+ TIOCCONS _\bi_\bn_\bt _\b*_\bo_\bn
+ If _\bo_\bn points to a non-zero integer, redirect kernel console
+ output (kernel printf's) to this terminal. If _\bo_\bn points to a
+ zero integer, redirect kernel console output back to the nor-
+ mal console. This is usually used on workstations to redi-
+ rect kernel messages to a particular window.
+
+ TIOCMSET _\bi_\bn_\bt _\b*_\bs_\bt_\ba_\bt_\be
+ The integer pointed to by _\bs_\bt_\ba_\bt_\be contains bits that correspond
+ to modem state. Following is a list of defined variables and
+ the modem state they represent:
+
+ TIOCM_LE Line Enable.
+ TIOCM_DTR Data Terminal Ready.
+ TIOCM_RTS Request To Send.
+ TIOCM_ST Secondary Transmit.
+ TIOCM_SR Secondary Recieve.
+ TIOCM_CTS Clear To Send.
+ TIOCM_CAR Carrier Detect.
+ TIOCM_CD Carier Detect (synonym).
+ TIOCM_RNG Ring Indication.
+ TIOCM_RI Ring Indication (synonym).
+ TIOCM_DSR Data Set Ready.
+
+ This call sets the terminal modem state to that represented
+ by _\bs_\bt_\ba_\bt_\be. Not all terminals may support this.
+
+ TIOCMGET _\bi_\bn_\bt _\b*_\bs_\bt_\ba_\bt_\be
+ Return the current state of the terminal modem lines as rep-
+ resented above in the integer pointed to by _\bs_\bt_\ba_\bt_\be.
+
+ TIOCMBIS _\bi_\bn_\bt _\b*_\bs_\bt_\ba_\bt_\be
+ The bits in the integer pointed to by _\bs_\bt_\ba_\bt_\be represent modem
+ state as described above, however the state is OR-ed in with
+ the current state.
+
+ TIOCMBIC _\bi_\bn_\bt _\b*_\bs_\bt_\ba_\bt_\be
+ The bits in the integer pointed to by _\bs_\bt_\ba_\bt_\be represent modem
+ state as described above, however each bit which is on in
+ _\bs_\bt_\ba_\bt_\be is cleared in the terminal.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getty(8), ioctl(2), pty(4), stty(1), termios(4)
+
+4th Berkeley Distribution August 14, 1992 4
--- /dev/null
+UDP(4) BSD Programmer's Manual UDP(4)
+
+N\bNA\bAM\bME\bE
+ u\bud\bdp\bp - Internet User Datagram Protocol
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/s\bso\boc\bck\bke\bet\bt.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bin\bne\bet\bt/\b/i\bin\bn.\b.h\bh>\b>
+
+ _\bi_\bn_\bt
+ s\bso\boc\bck\bke\bet\bt(_\bA_\bF_\b__\bI_\bN_\bE_\bT, _\bS_\bO_\bC_\bK_\b__\bD_\bG_\bR_\bA_\bM, _\b0);
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ UDP is a simple, unreliable datagram protocol which is used to support
+ the SOCK_DGRAM abstraction for the Internet protocol family. UDP sockets
+ are connectionless, and are normally used with the sendto and recvfrom
+ calls, though the connect(2) call may also be used to fix the destination
+ for future packets (in which case the recv(2) or read(2) and send(2) or
+ write(2) system calls may be used).
+
+ UDP address formats are identical to those used by TCP. In particular UDP
+ provides a port identifier in addition to the normal Internet address
+ format. Note that the UDP port space is separate from the TCP port space
+ (i.e. a UDP port may not be ``connected'' to a TCP port). In addition
+ broadcast packets may be sent (assuming the underlying network supports
+ this) by using a reserved ``broadcast address''; this address is network
+ interface dependent.
+
+ Options at the IP transport level may be used with UDP; see ip(4).
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ A socket operation may fail with one of the following errors returned:
+
+ [EISCONN] when trying to establish a connection on a socket which
+ already has one, or when trying to send a datagram with
+ the destination address specified and the socket is al-
+ ready connected;
+
+ [ENOTCONN] when trying to send a datagram, but no destination ad-
+ dress is specified, and the socket hasn't been connect-
+ ed;
+
+ [ENOBUFS] when the system runs out of memory for an internal data
+ structure;
+
+ [EADDRINUSE] when an attempt is made to create a socket with a port
+ which has already been allocated;
+
+ [EADDRNOTAVAIL] when an attempt is made to create a socket with a net-
+ work address for which no network interface exists.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getsockopt(2), recv(2), send(2), socket(2), intro(4), inet(4),
+ ip(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The u\bud\bdp\bp protocol appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+UNIX(4) BSD Programmer's Manual UNIX(4)
+
+N\bNA\bAM\bME\bE
+ u\bun\bni\bix\bx - UNIX-domain protocol family
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/u\bun\bn.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The UNIX-domain protocol family is a collection of protocols that pro-
+ vides local (on-machine) interprocess communication through the normal
+ socket(2) mechanisms. The UNIX-domain family supports the SOCK_STREAM
+ and SOCK_DGRAM socket types and uses filesystem pathnames for addressing.
+
+A\bAD\bDD\bDR\bRE\bES\bSS\bSI\bIN\bNG\bG
+ UNIX-domain addresses are variable-length filesystem pathnames of at most
+ 104 characters. The include file <_\bs_\by_\bs_\b/_\bu_\bn_\b._\bh> defines this address:
+
+ struct sockaddr_un {
+ u_char sun_len;
+ u_char sun_family;
+ char sun_path[104];
+ };
+
+ Binding a name to a UNIX-domain socket with bind(2) causes a socket file
+ to be created in the filesystem. This file is _\bn_\bo_\bt removed when the sock-
+ et is closed--unlink(2) must be used to remove the file.
+
+ The UNIX-domain protocol family does not support broadcast addressing or
+ any form of ``wildcard'' matching on incoming messages. All addresses
+ are absolute- or relative-pathnames of other UNIX-domain sockets. Normal
+ filesystem access-control mechanisms are also applied when referencing
+ pathnames; e.g., the destination of a connect(2) or sendto(2) must be
+ writable.
+
+P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bLS\bS
+ The UNIX-domain protocol family is comprised of simple transport proto-
+ cols that support the SOCK_STREAM and SOCK_DGRAM abstractions.
+ SOCK_STREAM sockets also support the communication of UNIX file descrip-
+ tors through the use of the _\bm_\bs_\bg_\b__\bc_\bo_\bn_\bt_\br_\bo_\bl field in the _\bm_\bs_\bg argument to
+ sendmsg(2) and recvmsg(2).
+
+ Any valid descriptor may be sent in a message. The file descriptor(s) to
+ be passed are described using a _\bs_\bt_\br_\bu_\bc_\bt _\bc_\bm_\bs_\bg_\bh_\bd_\br that is defined in the in-
+ clude file <_\bs_\by_\bs_\b/_\bs_\bo_\bc_\bk_\be_\bt_\b._\bh>. The type of the message is SCM_RIGHTS, and the
+ data portion of the messages is an array of integers representing the
+ file descriptors to be passed. The number of descriptors being passed is
+ defined by the length field of the message; the length field is the sum
+ of the size of the header plus the size of the array of file descriptors.
+
+ The received descriptor is a _\bd_\bu_\bp_\bl_\bi_\bc_\ba_\bt_\be of the sender's descriptor, as if
+ it were created with a call to dup(2). Per-process descriptor flags, set
+ with fcntl(2), are _\bn_\bo_\bt passed to a receiver. Descriptors that are
+ awaiting delivery, or that are purposely not received, are automatically
+ closed by the system when the destination socket is closed.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ socket(2), intro(4)
+
+ "An Introductory 4.3 BSD Interprocess Communication Tutorial", _\bP_\bS_\b1, 7.
+
+ "An Advanced 4.3 BSD Interprocess Communication Tutorial", _\bP_\bS_\b1, 8.
+
+4.4BSD June 9, 1993 1
--- /dev/null
+ACC(4) BSD Programmer's Manual (VAX Architecture) ACC(4)
+
+N\bNA\bAM\bME\bE
+ a\bac\bcc\bc - ACC LH/DH IMP interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ p\bps\bse\beu\bud\bdo\bo-\b-d\bde\bev\bvi\bic\bce\be i\bim\bmp\bp d\bde\bev\bvi\bic\bce\be a\bac\bcc\bc0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b67\b76\b60\b00\b0 v\bve\bec\bct\bto\bor\br a\bac\bcc\bcr\bri\bin\bnt\bt a\bac\bcc\bcx\bxi\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The a\bac\bcc\bc device provides a Local Host/Distant Host interface to an IMP. It
+ is normally used when participating in the DARPA Internet. The con-
+ troller itself is not accessible to users, but instead provides the hard-
+ ware support to the IMP interface described in imp(4). The configuration
+ entry for the imp must also include the _\bp_\bs_\be_\bu_\bd_\bo_\b-_\bd_\be_\bv_\bi_\bc_\be as shown above.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ a\bac\bcc\bc%\b%d\bd:\b: n\bno\bot\bt a\bal\bli\biv\bve\be.\b. The initialization routine was entered even though the
+ device did not autoconfigure. This indicates a system problem.
+
+ a\bac\bcc\bc%\b%d\bd:\b: c\bca\ban\bn'\b't\bt i\bin\bni\bit\bti\bia\bal\bli\biz\bze\be.\b. Insufficient UNIBUS resources existed to ini-
+ tialize the device. This is likely to occur when the device is run on a
+ buffered data path on an 11/750 and other network interfaces are also
+ configured to use buffered data paths, or when it is configured to use
+ buffered data paths on an 11/730 (which has none).
+
+ a\bac\bcc\bc%\b%d\bd:\b: i\bim\bmp\bp d\bdo\boe\bes\bsn\bn'\b't\bt r\bre\bes\bsp\bpo\bon\bnd\bd,\b, i\bic\bcs\bsr\br=\b=%\b%b\bb.\b. The driver attempted to initialize
+ the device, but the IMP failed to respond after 500 tries. Check the ca-
+ bling.
+
+ a\bac\bcc\bc%\b%d\bd:\b: s\bst\btr\bra\bay\by x\bxm\bmi\bit\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt,\b, c\bcs\bsr\br=\b=%\b%b\bb.\b. An interrupt occurred when no out-
+ put had previously been started.
+
+ a\bac\bcc\bc%\b%d\bd:\b: o\bou\but\btp\bpu\but\bt e\ber\brr\bro\bor\br,\b, o\boc\bcs\bsr\br=\b=%\b%b\bb,\b, i\bic\bcs\bsr\br=\b=%\b%b\bb.\b. The device indicated a problem
+ sending data on output.
+
+ a\bac\bcc\bc%\b%d\bd:\b: i\bin\bnp\bpu\but\bt e\ber\brr\bro\bor\br,\b, c\bcs\bsr\br=\b=%\b%b\bb.\b. The device indicated a problem receiving da-
+ ta on input.
+
+ a\bac\bcc\bc%\b%d\bd:\b: b\bba\bad\bd l\ble\ben\bng\bgt\bth\bh=\b=%\b%d\bd.\b. An input operation resulted in a data transfer of
+ less than 0 or more than 1008 bytes of data into memory (according to the
+ word count register). This should never happen as the maximum size of a
+ host-IMP message is 1008 bytes.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The a\bac\bcc\bc interface appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+AD(4) BSD Programmer's Manual (VAX Architecture) AD(4)
+
+N\bNA\bAM\bME\bE
+ a\bad\bd - Data Translation A/D converter
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be a\bad\bd0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b70\b04\b40\b00\b0 v\bve\bec\bct\bto\bor\br a\bad\bdi\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The a\bad\bd driver provides an interface to the Data Translation A/D convert-
+ er. This is _\bn_\bo_\bt a real-time driver, but merely allows the user process
+ to sample the board's channels one at a time. Each minor device selects
+ a different A/D board.
+
+ The driver communicates to a user process by means of ioctl(2)s. The
+ AD_CHAN ioctl selects which channel of the board to read. For example,
+
+ chan = 5;
+ ioctl(fd, AD_CHAN, &chan);
+
+ selects channel 5. The AD_READ ioctl(2) actually reads the data and re-
+ turns it to the user process. An example is
+
+ ioctl(fd, AD_READ, &data);
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/ad
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The a\bad\bd driver appeared in 4.1BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+AUTOCONF(4) BSD Programmer's Manual AUTOCONF(4)
+
+N\bNA\bAM\bME\bE
+ a\bau\but\bto\boc\bco\bon\bnf\bf - diagnostics from the autoconfiguration code
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ When UNIX bootstraps it probes the innards of the machine on which it is
+ running and locates controllers, drives, and other devices. Each item
+ found is recorded on the console. This procedure is driven by a system
+ configuration table which is processed by config(8) and compiled into
+ each kernel.
+
+ On the VAX, devices in NEXUS slots are normally noted, thus memory con-
+ trollers, UNIBUS and MASSBUS adaptors. Devices which are not supported
+ which are found in NEXUS slots are noted also. The Q-bus on the MICROVAX
+ is configured in the same way as the UNIBUS.
+
+ MASSBUS devices are located by a very deterministic procedure since
+ MASSBUS space is completely probe-able. If devices exist which are not
+ configured they will be silently ignored; if devices exist of unsupported
+ type they will be noted.
+
+ UNIBUS devices are located by probing to see if their control-status reg-
+ isters respond. If not, they are silently ignored. If the control sta-
+ tus register responds but the device cannot be made to interrupt, a diag-
+ nostic warning will be printed on the console and the device will not be
+ available to the system.
+
+ Normally, the system uses the disk from which it was loaded as the root
+ filesystem. If that is not possible, a generic system will pick its root
+ device as the ``best'' available device (MASSBUS disks are better than
+ SMD UNIBUS disks are better than RK07s; the device must be drive 0 to be
+ considered). If such a system is booted with the RB_ASKNAME option (see
+ reboot(2)), then the name of the root device is read from the console
+ terminal at boot time, and any available device may be used.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ c\bcp\bpu\bu t\bty\byp\bpe\be %\b%d\bd n\bno\bot\bt c\bco\bon\bnf\bfi\big\bgu\bur\bre\bed\bd.\b. You tried to boot UNIX on a CPU type which
+ it doesn't (or at least this compiled version of UNIX doesn't) under-
+ stand.
+
+ m\bmb\bba\ba%\b%d\bd a\bat\bt t\btr\br%\b%d\bd.\b. A MASSBUS adapter was found in `tr%d' (the NEXUS slot
+ number). UNIX will call it `mba%d'.
+
+ %\b%d\bd m\bmb\bba\ba'\b's\bs n\bno\bot\bt c\bco\bon\bnf\bfi\big\bgu\bur\bre\bed\bd.\b. More MASSBUS adapters were found on the machine
+ than were declared in the machine configuration; the excess MASSBUS
+ adapters will not be accessible.
+
+ u\bub\bba\ba%\b%d\bd a\bat\bt t\btr\br%\b%d\bd.\b. A UNIBUS adapter was found in `tr%d' (the NEXUS slot num-
+ ber). UNIX will call it `uba%d'.
+
+ d\bdr\br3\b32\b2 u\bun\bns\bsu\bup\bpp\bpo\bor\brt\bte\bed\bd (\b(a\bat\bt t\btr\br %\b%d\bd)\b).\b. A DR32 interface was found in a NEXUS, for
+ which UNIX does not have a driver.
+
+ c\bci\bi u\bun\bns\bsu\bup\bpp\bpo\bor\brt\bte\bed\bd (\b(a\bat\bt t\btr\br %\b%d\bd)\b).\b. A CI interface was found in a NEXUS, for
+ which UNIX does not have a driver.
+
+ m\bmc\bcr\br%\b%d\bd a\bat\bt t\btr\br%\b%d\bd.\b. A memory controller was found in `tr%d' (the NEXUS slot
+ number). UNIX will call it `mcr%d'.
+
+ 5\b5 m\bmc\bcr\br'\b's\bs u\bun\bns\bsu\bup\bpp\bpo\bor\brt\bte\bed\bd.\b. UNIX supports only 4 memory controllers per CPU.
+
+ m\bmp\bpm\bm u\bun\bns\bsu\bup\bpp\bpo\bor\brt\bte\bed\bd (\b(a\bat\bt t\btr\br%\b%d\bd)\b).\b. Multi-port memory is unsupported in the sense
+ that UNIX does not know how to poll it for ECC errors.
+
+
+ %\b%s\bs%\b%d\bd a\bat\bt m\bmb\bba\ba%\b%d\bd d\bdr\bri\biv\bve\be %\b%d\bd.\b. A tape formatter or a disk was found on the
+ MASSBUS; for disks `%s%d' will look like ``hp0'', for tape formatters
+ like ``ht1''. The drive number comes from the unit plug on the drive or
+ in the TM formatter (_\bn_\bo_\bt on the tape drive; see below).
+
+ %\b%s\bs%\b%d\bd a\bat\bt %\b%s\bs%\b%d\bd s\bsl\bla\bav\bve\be %\b%d\bd.\b. (For MASSBUS devices). Which would look like
+ ``tu0 at ht0 slave 0'', where ``tu0'' is the name for the tape device and
+ ``ht0'' is the name for the formatter. A tape slave was found on the
+ tape formatter at the indicated drive number (on the front of the tape
+ drive). UNIX will call the device, e.g., ``tu0''.
+
+ %\b%s\bs%\b%d\bd a\bat\bt u\bub\bba\ba%\b%d\bd c\bcs\bsr\br %\b%o\bo v\bve\bec\bc %\b%o\bo i\bip\bpl\bl %\b%x\bx.\b. The device `%s%d', e.g. ``dz0'' was
+ found on `uba%d' at control-status register address `%o' and with device
+ vector `%o'. The device interrupted at priority level `%x'.
+
+ %\b%s\bs%\b%d\bd a\bat\bt u\bub\bba\ba%\b%d\bd c\bcs\bsr\br %\b%o\bo z\bze\ber\bro\bo v\bve\bec\bct\bto\bor\br.\b. The device did not present a valid in-
+ terrupt vector, rather presented 0 (a passive release condition) to the
+ adapter.
+
+ %\b%s\bs%\b%d\bd a\bat\bt u\bub\bba\ba%\b%d\bd c\bcs\bsr\br %\b%o\bo d\bdi\bid\bdn\bn'\b't\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. The device did not interrupt,
+ likely because it is broken, hung, or not the kind of device it is adver-
+ tised to be.
+
+ %\b%s\bs%\b%d\bd a\bat\bt %\b%s\bs%\b%d\bd s\bsl\bla\bav\bve\be %\b%d\bd.\b. (For UNIBUS devices). Which would look like
+ ``up0 at sc0 slave 0'', where ``up0'' is the name of a disk drive and
+ ``sc0'' is the name of the controller. Analogous to MASSBUS case.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), boot(8), config(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The a\bau\but\bto\boc\bco\bon\bnf\bf feature appeared in 4.1BSD.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+CONS(4) BSD Programmer's Manual (VAX Architecture) CONS(4)
+
+N\bNA\bAM\bME\bE
+ c\bco\bon\bns\bs - VAX-11 console interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The console is available to the processor through the console registers.
+ It acts like a normal terminal, except that when the local functions are
+ not disabled, ^\b^P\bP (control-P) puts the console in local console mode
+ (where the prompt is `>>>'). The operation of the console in this mode
+ varies slightly per-processor.
+
+ T\bTn\bn V\bVA\bAX\bX N\bNo\bo 1\b11\b1/\b/7\b78\b80\b0 o\bor\br 7\b78\b85\b5
+ On either the VAX 11/780 or 785 the following commands may be used after
+ placing the console in local mode with ^\b^P\bP.
+
+ c\bc
+ c\bco\bon\bnt\bti\bin\bnu\bue\be Re-enter conversational mode if the processor was halted.
+
+ h\bh
+ h\bha\bal\blt\bt Halt the CPU. On an 11/780 or 785 the processor is not
+ stopped by entering local console mode.
+
+ s\bse\bet\bt t\bt p\bp (set terminal program) Re-enter conversational mode if the
+ processor is still running.
+
+ P\bP (proceed) Get out of ODT mode.
+
+ <\b<b\bbr\bre\bea\bak\bk>\b> If you hit the break key on the console, then the console
+ LSI-11 will go into ODT (console debugger mode).
+
+ T\bTn\bn V\bVA\bAX\bX N\bNo\bo 1\b11\b1/\b/7\b75\b50\b0 o\bor\br 1\b11\b1/\b/7\b73\b30\b0
+ On an 11/750 or an 11/730 the processor is halted whenever the console is
+ not in conversational mode.
+
+ C\bC Return to conversational mode.
+
+ r\bre\bet\bt Return from remote diagnosis mode to local console mode.
+
+ ^\b^D\bD (11/750 only) When in console mode on an 11/750 which has a
+ remote diagnosis module, a ^\b^D\bD will put you in remote diag-
+ nosis mode, where the prompt will be
+
+ T\bTn\bn V\bVA\bAX\bX N\bNo\bo 8\b86\b60\b00\b0 o\bor\br 8\b86\b65\b50\b0
+ The VAX 8600 (8650) console normally works in the same way as the 11/750,
+ except that there are many additional modes and commands.
+
+ c\bc
+ c\bco\bon\bnt\bti\bin\bnu\bue\be Return to conversational mode.
+
+ h\bha\bal\blt\bt Halt the processor if HEX debug enabled.
+
+ p\bp Halt the processor if in normal mode.
+
+ With the above proviso's the console works like any other UNIX terminal.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/console
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4), reboot(8)
+
+ _\bV_\bA_\bX _\bH_\ba_\br_\bd_\bw_\ba_\br_\be _\bH_\ba_\bn_\bd_\bb_\bo_\bo_\bk.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The c\bco\bon\bns\bs interface appeared in 4.0BSD.
--- /dev/null
+CRL(4) BSD Programmer's Manual (VAX Architecture) CRL(4)
+
+N\bNA\bAM\bME\bE
+ c\bcr\brl\bl - VAX 8600 console RL02 interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a simple interface to the DEC RL02 disk unit which is part of the
+ console subsystem on the VAX 8600 and 8650. Access is given to the en-
+ tire RL02 disk; the pack format is the same as that of RL02 disks on oth-
+ er controllers. As on other VAX console media, transfers are done a word
+ at a time using privileged registers (i.e., slowly).
+
+ All I/O is raw; the seek addresses in raw transfers should be a multiple
+ of 512 bytes and a multiple of 512 bytes should be transferred, as in
+ other ``raw'' disk interfaces. (Although the sector size is actually 256
+ bytes, the driver allows operations only on 512-byte boundaries.)
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/crl
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ arff(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The c\bcr\brl\bl driver appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 1
--- /dev/null
+CSS(4) BSD Programmer's Manual (VAX Architecture) CSS(4)
+
+N\bNA\bAM\bME\bE
+ c\bcs\bss\bs - DEC IMP-11A LH/DH IMP interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ p\bps\bse\beu\bud\bdo\bo-\b-d\bde\bev\bvi\bic\bce\be i\bim\bmp\bp d\bde\bev\bvi\bic\bce\be c\bcs\bss\bs0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b67\b76\b60\b00\b0 f\bfl\bla\bag\bgs\bs 1\b10\b0 v\bve\bec\bct\bto\bor\br c\bcs\bss\bsr\bri\bin\bnt\bt
+ c\bcs\bss\bsx\bxi\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The c\bcs\bss\bs device provides a Local Host/Distant Host interface to an IMP. It
+ is normally used when participating in the DARPA Internet. The con-
+ troller itself is not accessible to users, but instead provides the hard-
+ ware support to the IMP interface described in imp(4). The configuration
+ entry for the imp must also include the _\bp_\bs_\be_\bu_\bd_\bo_\b-_\bd_\be_\bv_\bi_\bc_\be as shown above.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ c\bcs\bss\bs%\b%d\bd:\b: n\bno\bot\bt a\bal\bli\biv\bve\be.\b. The initialization routine was entered even though the
+ device did not autoconfigure. This is indicates a system problem.
+
+ c\bcs\bss\bs%\b%d\bd:\b: c\bca\ban\bn'\b't\bt i\bin\bni\bit\bti\bia\bal\bli\biz\bze\be.\b. Insufficient UNIBUS resources existed to ini-
+ tialize the device. This is likely to occur when the device is run on a
+ buffered data path on an 11/750 and other network interfaces are also
+ configured to use buffered data paths, or when it is configured to use
+ buffered data paths on an 11/730 (which has none).
+
+ c\bcs\bss\bs%\b%d\bd:\b: i\bim\bmp\bp d\bdo\boe\bes\bsn\bn'\b't\bt r\bre\bes\bsp\bpo\bon\bnd\bd,\b, i\bic\bcs\bsr\br=\b=%\b%b\bb.\b. The driver attempted to initialize
+ the device, but the IMP failed to respond after 500 tries. Check the ca-
+ bling.
+
+ c\bcs\bss\bs%\b%d\bd:\b: s\bst\btr\bra\bay\by o\bou\but\btp\bpu\but\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt c\bcs\bsr\br=\b=%\b%b\bb.\b. An interrupt occurred when no out-
+ put had previously been started.
+
+ c\bcs\bss\bs%\b%d\bd:\b: o\bou\but\btp\bpu\but\bt e\ber\brr\bro\bor\br,\b, o\boc\bcs\bsr\br=\b=%\b%b\bb i\bic\bcs\bsr\br=\b=%\b%b\bb.\b. The device indicated a problem
+ sending data on output.
+
+ c\bcs\bss\bs%\b%d\bd:\b: r\bre\bec\bcv\bv e\ber\brr\bro\bor\br,\b, c\bcs\bsr\br=\b=%\b%b\bb.\b. The device indicated a problem receiving data
+ on input.
+
+ c\bcs\bss\bs%\b%d\bd:\b: b\bba\bad\bd l\ble\ben\bng\bgt\bth\bh=\b=%\b%d\bd.\b. An input operation resulted in a data transfer of
+ less than 0 or more than 1008 bytes of data into memory (according to the
+ word count register). This should never happen as the maximum size of a
+ host-IMP message is 1008 bytes.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The c\bcs\bss\bs interface appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+CT(4) BSD Programmer's Manual (VAX Architecture) CT(4)
+
+N\bNA\bAM\bME\bE
+ c\bct\bt - C/A/T phototypesetter interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be c\bct\bt0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b16\b67\b77\b76\b60\b0 v\bve\bec\bct\bto\bor\br c\bct\bti\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is an interface to either a Graphic Systems C/A/T phototypesetter or
+ an Autologic APS-Micro5 using a DR-11 C interface.
+
+ The c\bct\bt is a write only device.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/cat
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ troff(1)
+
+ _\bP_\bh_\bo_\bt_\bo_\bt_\by_\bp_\be_\bs_\be_\bt_\bt_\be_\br _\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\bs_\bp_\be_\bc_\bi_\bf_\bi_\bc_\ba_\bt_\bi_\bo_\bn.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The c\bct\bt driver appeared in 4.1BSD.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+DDN(4) BSD Programmer's Manual (VAX Architecture) DDN(4)
+
+N\bNA\bAM\bME\bE
+ d\bdd\bdn\bn - DDN Standard Mode X.25 IMP interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdd\bdn\bn0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b66\b67\b74\b40\b0 v\bve\bec\bct\bto\bor\br d\bdd\bdn\bni\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The d\bdd\bdn\bn device provides a DDN Standard Mode X.25 interface to an IMP us-
+ ing the ACC ACP625 X.25 board. It is normally used for connecting to the
+ Defense Data Network (DDN). The controller itself is not accessible to
+ users, but instead provides a network interface for the Internet Protocol
+ described in ip(4).
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdd\bdn\bn%\b%d\bd:\b: n\bno\bot\bt a\bal\bli\biv\bve\be.\b. The initialization routine was entered even though the
+ device did not autoconfigure. This indicates a system problem.
+
+ d\bdd\bdn\bn%\b%d\bd:\b: f\bfa\bai\bil\ble\bed\bd g\bge\bet\btt\bti\bin\bng\bg U\bUB\bBA\bA r\bre\bes\bso\bou\bur\brc\bce\bes\bs f\bfo\bor\br l\blc\bcn\bn %\b%d\bd.\b."\b" Insufficient UNIBUS re-
+ sources existed to initialize the device. This is likely to be a short-
+ age of UNIBUS mapping registers.
+
+ d\bdd\bdn\bn%\b%d\bd:\b: c\bco\bou\bul\bld\bdn\bn'\b't\bt g\bge\bet\bt X\bX2\b25\b5 i\bin\bni\bit\bt b\bbu\buf\bff\bfe\ber\br.\b. This indicates that an _\bm_\bb_\bu_\bf could
+ not be allocated for sending the initialization message to the ACP625.
+
+ D\bDD\bDN\bN:\b: i\bil\bll\ble\beg\bga\bal\bl X\bX2\b25\b5 a\bad\bdd\bdr\bre\bes\bss\bs l\ble\ben\bng\bgt\bth\bh!\b!
+ D\bDD\bDN\bN:\b: i\bil\bll\ble\beg\bga\bal\bl X\bX2\b25\b5 a\bad\bdd\bdr\bre\bes\bss\bs f\bfo\bor\brm\bma\bat\bt!\b! These errors indicate a problem with
+ the called X.25 address received from the IMP on an incoming call.
+
+ X\bX2\b25\b5 R\bRE\bES\bSE\bET\bT o\bon\bn l\blc\bcn\bn =\b= %\b%d\bd.\b. This indicates that an unexpected X.25 RESET was
+ received on the indicated LCN.
+
+ X\bX2\b25\b5 I\bIN\bNT\bTE\bER\bRR\bRU\bUP\bPT\bT o\bon\bn l\blc\bcn\bn =\b= %\b%d\bd,\b, c\bco\bod\bde\be =\b= %\b%d\bd.\b. This indicates that an unexpected
+ X.25 INTERRUPT Packet was received on the indicated LCN.
+
+ d\bdd\bdn\bn%\b%d\bd:\b: f\bfa\bai\bil\ble\bed\bd t\bto\bo g\bge\bet\bt s\bsu\bup\bpr\br m\bms\bsg\bg b\bbf\bfr\br!\b! This indicates that an _\bm_\bb_\bu_\bf could not
+ be allocated for sending a supervisor message to the ACP625.
+
+ Any other error message from `ddn%d:' indicates a serious error detected
+ by either the driver or the ACP625 firmware.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), ip(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bdd\bdn\bn interface appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 1
--- /dev/null
+DE(4) BSD Programmer's Manual (VAX Architecture) DE(4)
+
+N\bNA\bAM\bME\bE
+ d\bde\be - DEC DEUNA 10 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bde\be0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b17\b74\b45\b51\b10\b0 v\bve\bec\bct\bto\bor\br d\bde\bei\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The d\bde\be interface provides access to a 10 Mb/s Ethernet network through a
+ Digital Equipment UNIBUS Network Adapter (DEUNA).
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl(2). The d\bde\be interface employs the address resolution
+ protocol described in arp(4) to dynamically map between Internet and Eth-
+ ernet addresses on the local network.
+
+ The interface normally tries to use a ``trailer'' encapsulation to mini-
+ mize copying data on input and output. The use of trailers is negotiated
+ with ARP. This negotiation may be disabled, on a per-interface basis, by
+ setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bde\be%\b%d\bd:\b: h\bha\bar\brd\bdw\bwa\bar\bre\be a\bad\bdd\bdr\bre\bes\bss\bs %\b%s\bs.\b. This is a normal autoconfiguration message
+ noting the 6 byte physical ethernet address of the adapter.
+
+ d\bde\be%\b%d\bd:\b: o\boe\ber\brr\bro\bor\br,\b, f\bfl\bla\bag\bgs\bs=\b=%\b%b\bb t\btd\bdr\bre\ber\brr\br=\b=%\b%b\bb (\b(l\ble\ben\bn=\b=%\b%d\bd)\b).\b. The hardware indicated an er-
+ ror in transmitting a packet to the cable. The status and error flags
+ are reported.
+
+ d\bde\be%\b%d\bd:\b: i\bie\ber\brr\bro\bor\br,\b, f\bfl\bla\bag\bgs\bs=\b=%\b%b\bb l\ble\ben\bne\ber\brr\br=\b=%\b%b\bb (\b(l\ble\ben\bn=\b=%\b%d\bd)\b).\b. The hardware indicated an er-
+ ror in reading a packet from the cable. The status and error flags are
+ reported.
+
+ d\bde\be%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+ d\bde\be%\b%d\bd:\b: b\bbu\buf\bff\bfe\ber\br u\bun\bna\bav\bva\bai\bil\bla\bab\bbl\ble\be.\b. The interface received more packets than it
+ had buffers allocated to receive them.
+
+ d\bde\be%\b%d\bd:\b: a\bad\bdd\bdr\bre\bes\bss\bs c\bch\bha\ban\bng\bge\be f\bfa\bai\bil\ble\bed\bd,\b, c\bcs\bsr\br0\b0=\b=%\b%b\bb c\bcs\bsr\br1\b1=\b=%\b%b\bb.\b. The interface was unable
+ to reprogram its physical ethernet address. This may happen with very
+ early models of the interface. This facility is used only when the con-
+ troller is not the first network interface configured for XNS.
+
+ The following messages indicate a probable hardware error performing the
+ indicated operation during autoconfiguration or initialization. The two
+ control and status registers should indicate the nature of the failure.
+ See the hardware manual for details.
+
+ d\bde\be%\b%d\bd:\b: r\bre\bes\bse\bet\bt f\bfa\bai\bil\ble\bed\bd,\b, c\bcs\bsr\br0\b0=\b=%\b%b\bb c\bcs\bsr\br1\b1=\b=%\b%b\bb.\b.
+ d\bde\be%\b%d\bd:\b: p\bpp\bpc\bcb\bb f\bfa\bai\bil\ble\bed\bd,\b, c\bcs\bsr\br0\b0=\b=%\b%b\bb c\bcs\bsr\br1\b1=\b=%\b%b\bb.\b.
+ d\bde\be%\b%d\bd:\b: r\bre\bea\bad\bd a\bad\bdd\bdr\br f\bfa\bai\bil\ble\bed\bd,\b, c\bcs\bsr\br0\b0=\b=%\b%b\bb c\bcs\bsr\br1\b1=\b=%\b%b\bb.\b.
+ d\bde\be%\b%d\bd:\b: w\bwt\btr\bri\bin\bng\bg f\bfa\bai\bil\ble\bed\bd,\b, c\bcs\bsr\br0\b0=\b=%\b%b\bb c\bcs\bsr\br1\b1=\b=%\b%b\bb.\b.
+ d\bde\be%\b%d\bd:\b: w\bwt\btm\bmo\bod\bde\be f\bfa\bai\bil\ble\bed\bd,\b, c\bcs\bsr\br0\b0=\b=%\b%b\bb c\bcs\bsr\br1\b1=\b=%\b%b\bb.\b.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4), arp(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bde\be driver appeared in 4.3BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+DH(4) BSD Programmer's Manual (VAX Architecture) DH(4)
+
+N\bNA\bAM\bME\bE
+ d\bdh\bh - DH-11/ DM-11 multiplexer device interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdh\bh0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b16\b60\b00\b02\b20\b0 v\bve\bec\bct\bto\bor\br d\bdh\bhr\bri\bin\bnt\bt d\bdh\bhx\bxi\bin\bnt\bt [_\bf_\bl_\ba_\bg_\bs]
+ d\bde\bev\bvi\bic\bce\be d\bdm\bm0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b70\b05\b50\b00\b0 v\bve\bec\bct\bto\bor\br d\bdm\bmi\bin\bnt\btr\br [_\bf_\bl_\ba_\bg_\bs]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A DH-11 provides 16 serial communication lines; DM-11s may optionally be
+ paired with DH-11s to provide modem control for the lines.
+
+ An optional argument _\bf_\bl_\ba_\bg_\bs may be supplied with the device specification
+ in the config(8) file indicating that the line corresponding to bit num-
+ ber _\bi is not properly connected, and should be treated as hard-wired with
+ carrier always present. Thus specifying `flags 0x0004' for dh0 would
+ cause line _\bt_\bt_\by_\bh_\b2 to be treated in this way.
+
+ Normal I/O control parameters for individual lines are managed by
+ ioctl(2) calls. Line speeds may be initiated via getty(8) and stty(1) or
+ may be communicated by other programs which utilize ioctl such as
+ ifcongif(8), see tty(4).
+
+ The d\bdh\bh driver monitors the rate of input on each board, and switches be-
+ tween the use of character-at-a-time interrupts and input silos. While
+ the silo is enabled during periods of high-speed input, the driver polls
+ for input 30 times per second.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/tty[h-o][0-9a-f]
+ /dev/ttyd[0-9a-f]
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdh\bh%\b%d\bd:\b: N\bNX\bXM\bM.\b. No response from UNIBUS on a dma transfer within a timeout
+ period. This is often followed by a UNIBUS adapter error. This occurs
+ most frequently when the UNIBUS is heavily loaded and when devices which
+ hog the bus (such as RK07s) are present. It is not serious.
+
+ d\bdh\bh%\b%d\bd:\b: s\bsi\bil\blo\bo o\bov\bve\ber\brf\bfl\blo\bow\bw.\b. The character input silo overflowed before it could
+ be serviced. This can happen if a hard error occurs when the CPU is run-
+ ning with elevated priority, as the system will then print a message on
+ the console with interrupts disabled. It is not serious.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A d\bdh\bh driver appeared in Version 6 AT&T UNIX.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+DHU(4) BSD Programmer's Manual (VAX Architecture) DHU(4)
+
+N\bNA\bAM\bME\bE
+ d\bdh\bhu\bu - DHU-11 communications multiplexer
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdh\bhu\bu0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b16\b60\b04\b44\b40\b0 v\bve\bec\bct\bto\bor\br d\bdh\bhu\bur\bri\bin\bnt\bt d\bdh\bhu\bux\bxi\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A DHU-11 provides 16 communication lines.
+
+ An optional argument _\bf_\bl_\ba_\bg_\bs may be supplied with the device specification
+ in the config file indicating that the line corresponding to bit number _\bi
+ is not properly connected, and should be treated as hard-wired with car-
+ rier always present. Thus specifying `flags 0x0004' for dhu0 would cause
+ line _\bt_\bt_\by_\bS_\b2 to be treated in this way.
+
+ Normal I/O control parameters for individual lines are managed by
+ ioctl(2) calls. Individual DHU-11 lines may be configured to run at any
+ of 13 speeds (50, 200 and 38400 baud are not available); the speed may be
+ set via getty(8) or stty(1) or may be communicated by other programs
+ which utilize ioctl such as ifcongif(8), see tty(4).
+
+ The DHU-11 driver normally uses input silos and delays receiver inter-
+ rupts by 20 milliseconds rather than taking an interrupt on each input
+ character.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/tty[S-Z][0-9a-f]
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdh\bhu\bu(\b(%\b%d\bd,\b,%\b%d\bd)\b):\b: N\bNX\bXM\bM f\bfa\bau\bul\blt\bt.\b. No response from UNIBUS on a DMA transfer within
+ a timeout period. This is often followed by a UNIBUS adapter error.
+ This occurs most frequently when the UNIBUS is heavily loaded and when
+ devices which hog the bus (such as RK07s) are present. It is not seri-
+ ous.
+
+ d\bdh\bhu\bu%\b%d\bd:\b: s\bsi\bil\blo\bo o\bov\bve\ber\brf\bfl\blo\bow\bw.\b. The character input silo overflowed before it
+ could be serviced. This can happen if a hard error occurs when the CPU
+ is running with elevated priority, as the system may then print a message
+ on the console with interrupts disabled.
+
+N\bNO\bOT\bTE\bES\bS
+ The driver currently does not make full use of the hardware capabilities
+ of the DHU-11, for dealing with XON/XOFF flow-control or hard-wired lines
+ for example.
+
+ Although the devices are not the same, a DHU-11 can convince the DH-11
+ autoconfiguration code that it is a DH-11.
+
+ The 4 40-way cables are a pain.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bdh\bhu\bu driver appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 1
--- /dev/null
+DMC(4) BSD Programmer's Manual (VAX Architecture) DMC(4)
+
+N\bNA\bAM\bME\bE
+ d\bdm\bmc\bc - DEC DMC-11/ DMR-11 point-to-point communications device
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdm\bmc\bc0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b67\b76\b60\b00\b0 v\bve\bec\bct\bto\bor\br d\bdm\bmc\bcr\bri\bin\bnt\bt d\bdm\bmc\bcx\bxi\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The d\bdm\bmc\bc interface provides access to a point-to-point communications de-
+ vice which runs at either 1 Mb/s or 56 Kb/s. DMC-11s communicate using
+ the DEC DDCMP link layer protocol.
+
+ The d\bdm\bmc\bc interface driver also supports a DEC DMR-11 providing point-to-
+ point communication running at data rates from 2.4 Kb/s to 1 Mb/s.
+ DMR-11s are a more recent design and thus are preferred over DMC-11s. The
+ NXMT and NRCV constants in the driver may be increased in this case, as
+ the DMR can accept up to 64 transmit and receive buffers, as opposed to 7
+ for the DMC.
+
+ The configuration flags specify how to set up the device,
+
+ 0 full duplex DDCMP (normal mode)
+ 1 DDCMP Maintence mode (generally useless)
+ 2 DDCMP Half Duplex, primary station
+ 3 DDCMP Half Duplex, secondary station
+
+ Several device error counters are available via adb(1), for more infor-
+ mation see the adb script _\b/_\bu_\bs_\br_\b/_\bl_\bi_\bb_\b/_\ba_\bd_\bb_\b/_\bd_\bm_\bc_\bs_\bt_\ba_\bt_\bs, or the DMC-11 technical
+ manual.
+
+ The host's address must be specified with an SIOCSIFADDR ioctl(2), and
+ the destination address specified with a SIOCSIFDSTADDR ioctl, before
+ the interface will transmit or receive any packets.
+
+R\bRO\bOU\bUT\bTI\bIN\bNG\bG
+ The driver places a HOST entry in the kernel routing tables for the ad-
+ dress given in the SIOCSIFDSTADDR ioctl. To use the DMC as a link be-
+ tween local nets, the route to the remote net must be added manually with
+ the route(8) command, or by the use of the routing process routed(8) on
+ each end of the link.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdm\bmc\bc%\b%d\bd:\b: b\bba\bad\bd c\bco\bon\bnt\btr\bro\bol\bl %\b%o\bo.\b. A bad parameter was passed to the _\bd_\bm_\bc_\bl_\bo_\ba_\bd rou-
+ tine.
+
+ d\bdm\bmc\bc%\b%d\bd:\b: u\bun\bnk\bkn\bno\bow\bwn\bn a\bad\bdd\bdr\bre\bes\bss\bs t\bty\byp\bpe\be %\b%d\bd.\b. An input packet was received which con-
+ tained a type of address unknown to the driver.
+
+ D\bDM\bMC\bC f\bfa\bat\bta\bal\bl e\ber\brr\bro\bor\br 0\b0%\b%o\bo.\b. A fatal error in DDMCP occurred, causing the device
+ to be restarted.
+
+ D\bDM\bMC\bC s\bso\bof\bft\bt e\ber\brr\bro\bor\br 0\b0%\b%o\bo.\b. A non-fatal error in DDMCP has occurred.
+
+ d\bdm\bmc\bc%\b%d\bd:\b: a\baf\bf%\b%d\bd n\bno\bot\bt s\bsu\bup\bpp\bpo\bor\brt\bte\bed\bd.\b. The interface was handed a message which has
+ addresses formatted in an unsuitable address family.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), inet(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bdm\bmc\bc driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ The current version of the driver uses a link-level encapsulation so that
+ multiple protocol types may be used. It is thus incompatible with earli-
+ er drivers, including the 4.2BSD version.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+DMF(4) BSD Programmer's Manual (VAX Architecture) DMF(4)
+
+N\bNA\bAM\bME\bE
+ d\bdm\bmf\bf - DMF-32 terminal multiplexor
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdm\bmf\bf0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b16\b60\b03\b34\b40\b0 v\bve\bec\bct\bto\bor\br d\bdm\bmf\bfs\bsr\bri\bin\bnt\bt d\bdm\bmf\bfs\bsx\bxi\bin\bnt\bt d\bdm\bmf\bfd\bda\bai\bin\bnt\bt
+ d\bdm\bmf\bfd\bdb\bbi\bin\bnt\bt d\bdm\bmf\bfr\bri\bin\bnt\bt d\bdm\bmf\bfx\bxi\bin\bnt\bt d\bdm\bmf\bfl\bli\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The d\bdm\bmf\bf device provides 8 lines of asynchronous serial line support. The
+ first two of these have full modem control. The device also provides a
+ line printer port similar to the LP-11. Other features of the DMF-32 are
+ not supported. During autoconfiguration, the driver examines the config-
+ uration of each DMF-32 and adjusts the interrupt vectors so that fewer
+ vector locations are used if possible.
+
+ An optional argument _\bf_\bl_\ba_\bg_\bs may be supplied with the device specification
+ in the config file indicating that the line corresponding to bit number _\bi
+ is not properly connected, and should be treated as hard-wired with car-
+ rier always present. Thus specifying `flags 0x04' for dmf0 would cause
+ line _\bt_\bt_\by_\bA_\b2 to be treated in this way. Flags should be set for all lines
+ without hardware support for modem control.
+
+ Normal I/O control parameters for individual lines are managed by
+ ioctl(2) calls. Line speeds may be initiated via getty(8) and stty(1) or
+ may be communicated by other programs which utilize ioctl such as
+ ifcongif(8), see tty(4).
+
+ The serial line part of the d\bdm\bmf\bf driver normally enables the input silos
+ with a short timeout (30 milliseconds); this allows multiple characters
+ to be received per interrupt during periods of high-speed input.
+
+ A line printer port on a d\bdm\bmf\bf is designated by a minor device number of
+ the form 128+_\bn. See MAKEDEV(8). Column and lines per page may be changed
+ from the default 132 columns and 66 lines by encoding the number of
+ columns in bits 8-15 of flags and the number of lines in bits 16-23.
+ This device does not provide the fancy output canonicalization features
+ of the lp(4) driver.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/tty[A-CE-I][0-7]
+ /dev/ttyd[0-7]
+ /dev/lp
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdm\bmf\bf%\b%d\bd:\b: N\bNX\bXM\bM l\bli\bin\bne\be %\b%d\bd.\b. No response from UNIBUS on a DMA transfer within a
+ timeout period. This is often followed by a UNIBUS adapter error. This
+ occurs most frequently when the UNIBUS is heavily loaded and when devices
+ which hog the bus (such as RK07s) are present. It is not serious.
+
+ d\bdm\bmf\bf%\b%d\bd:\b: s\bsi\bil\blo\bo o\bov\bve\ber\brf\bfl\blo\bow\bw.\b. The character input silo overflowed before it
+ could be serviced. This can happen if a hard error occurs when the CPU
+ is running with elevated priority, as the system will then print a mes-
+ sage on the console with interrupts disabled. It is not serious.
+
+ d\bdm\bmf\bfs\bsr\bri\bin\bnt\bt,\b, d\bdm\bmf\bfs\bsx\bxi\bin\bnt\bt,\b, d\bdm\bmf\bfd\bda\bai\bin\bnt\bt,\b, d\bdm\bmf\bfd\bdb\bbi\bin\bnt\bt.\b. One of the unsupported parts of
+ the dmf interrupted; something is amiss, check your interrupt vectors for
+ a conflict with another device.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bdm\bmf\bf driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ It should be possible to set the silo timeout with a configuration file
+ option, as the value is a trade-off between efficiency and response time
+ for flow control and character echo.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+DMZ(4) BSD Programmer's Manual (VAX Architecture) DMZ(4)
+
+N\bNA\bAM\bME\bE
+ d\bdm\bmz\bz - DMZ-32 terminal multiplexor
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdm\bmz\bz0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b16\b60\b05\b54\b40\b0 v\bve\bec\bct\bto\bor\br d\bdm\bmz\bzr\bri\bin\bnt\bta\ba d\bdm\bmz\bzx\bxi\bin\bnt\bta\ba d\bdm\bmz\bzr\bri\bin\bnt\btb\bb
+ d\bdm\bmz\bzx\bxi\bin\bnt\btb\bb d\bdm\bmz\bzr\bri\bin\bnt\btc\bc d\bdm\bmz\bzx\bxi\bin\bnt\btc\bc
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The d\bdm\bmz\bz device provides 24 lines of asynchronous serial line support.
+ Modem control on all ports is available as an option for the H3014 dis-
+ tribution panel.
+
+ An optional argument _\bf_\bl_\ba_\bg_\bs may be supplied with the device specification
+ for d\bdm\bmz\bz in the config file indicating that the line corresponding to bit
+ number _\bi is not properly connected, and should be treated as hard-wired
+ with carrier always present. Thus specifying `flags 0x000004' for dmz0
+ would cause line _\bt_\bt_\by_\ba_\b2 to be treated in this way.
+
+ Normal I/O control parameters for individual lines are managed by
+ ioctl(2) calls. Line speeds (there are 16 choices for the DMZ) may be
+ initiated via getty(8) and stty(1) or may be communicated by other pro-
+ grams which utilize ioctl such as ifcongif(8), see tty(4).
+
+ The d\bdm\bmz\bz driver normally enables the input silos with a short timeout (30
+ milliseconds); this allows multiple characters to be received per inter-
+ rupt during periods of high-speed input.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/tty[abcefg][0-9a-n]
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdm\bmz\bz%\b%d\bd:\b: N\bNX\bXM\bM l\bli\bin\bne\be %\b%d\bd.\b. No response from the UNIBUS on a DMA transfer within
+ a timeout period. This is often followed by a UNIBUS adapter error.
+ This occurs most frequently when the UNIBUS is heavily loaded and when
+ devices which hog the bus (such as RK07s) are present. It is not seri-
+ ous.
+
+ d\bdm\bmz\bz%\b%d\bd:\b: s\bsi\bil\blo\bo o\bov\bve\ber\brf\bfl\blo\bow\bw.\b. The character input silo overflowed before it
+ could be serviced. This can happen if a hard error occurs when the CPU
+ is running with elevated priority, as the system will then print a mes-
+ sage on the console with interrupts disabled. It is not serious.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bdm\bmz\bz driver appeared in 4.3BSD.
+
+B\bBU\bUG\bGS\bS
+ It should be possible to set the silo timeout with a configuration file
+ option, as the value is a trade-off between efficiency and response time
+ for flow control and character echo.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+DN(4) BSD Programmer's Manual (VAX Architecture) DN(4)
+
+N\bNA\bAM\bME\bE
+ d\bdn\bn - DN-11 autocall unit interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdn\bn0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b16\b60\b00\b02\b20\b0 v\bve\bec\bct\bto\bor\br d\bdn\bni\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The d\bdn\bn device provides an interface through a DEC DN-11 (or equivalent
+ such as the Able Quadracall) to an auto-call unit (ACU). To place an out-
+ going call one forks a sub-process which opens the appropriate call unit
+ file, _\b/_\bd_\be_\bv_\b/_\bc_\bu_\ba_\b? and writes the phone number on it. The parent process
+ then opens the corresponding modem line _\b/_\bd_\be_\bv_\b/_\bc_\bu_\bl_\b?. When the connection
+ has been established, the open on the modem line _\b/_\bd_\be_\bv_\b/_\bc_\bu_\bl_\b? will return
+ and the process will be connected. A timer is normally used to timeout
+ the opening of the modem line.
+
+ The codes for the phone numbers are:
+
+ 0-9 number to be dialed
+ * dial * (`:' is a synonym)
+ # dial # (`;' is a synonym)
+ - delay 20 milliseconds
+ < end of phone number (`e' is a synonym)
+ = delay for a second dial tone (`w' is a synonym)
+ f force a hangup of any existing connection
+
+ The phone number to be dialed must be presented as one contiguous string.
+
+ By convention, even numbered call units are for 300 baud modem lines,
+ while odd numbered units are for 1200 baud lines. For example, _\b/_\bd_\be_\bv_\b/_\bc_\bu_\ba_\b0
+ is associated with a 300 baud modem line, _\b/_\bd_\be_\bv_\b/_\bc_\bu_\bl_\b0, while _\b/_\bd_\be_\bv_\b/_\bc_\bu_\ba_\b1 is
+ associated with a 1200 baud modem line, _\b/_\bd_\be_\bv_\b/_\bc_\bu_\bl_\b1. For devices such as
+ the Quadracall which simulate multiple DN-11 units, the minor device in-
+ dicates which outgoing modem to use.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/cua? call units
+ /dev/cul? associated modem lines
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ Two error numbers are of interest at open time.
+
+ [EBUSY] The dialer is in use.
+
+ [ENXIO] The device doesn't exist, or there's no power to it.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tip(1)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A d\bdn\bn driver appeared in Version 6 AT&T UNIX.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+DZ(4) BSD Programmer's Manual (VAX Architecture) DZ(4)
+
+N\bNA\bAM\bME\bE
+ d\bdz\bz - DZ-11 multiplexer device interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be d\bdz\bz0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b16\b60\b01\b10\b00\b0 v\bve\bec\bct\bto\bor\br d\bdz\bzr\bri\bin\bnt\bt d\bdz\bzx\bxi\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A DZ-11 provides 8 communication lines with partial modem control, ade-
+ quate for UNIX dialup use.
+
+ An optional argument _\bf_\bl_\ba_\bg_\bs may be supplied with the device specification
+ in the config file indicating that the line corresponding to bit number _\bi
+ is not properly connected, and should be treated as hard-wired with car-
+ rier always present. Thus specifying `flags 0x04' for dz0 would cause
+ line _\bt_\bt_\by_\b0_\b2 to be treated in this way.
+
+ Normal I/O control parameters for individual lines are managed by
+ ioctl(2) calls. Line speeds may be initiated via the ttys(5) file,
+ stty(1) or ifconfig(8) to name a few, see tty(4).
+
+ The d\bdz\bz driver monitors the rate of input on each board, and switches be-
+ tween the use of character-at-a-time interrupts and input silos. While
+ the silo is enabled during periods of high-speed input, the driver polls
+ for input 30 times per second.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/tty[0-9][0-9]
+ /dev/ttyd[0-9a-f] dialups
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ d\bdz\bz%\b%d\bd:\b: s\bsi\bil\blo\bo o\bov\bve\ber\brf\bfl\blo\bow\bw .\b. The 64 character input silo overflowed before it
+ could be serviced. This can happen if a hard error occurs when the CPU
+ is running with elevated priority, as the system will then print a mes-
+ sage on the console with interrupts disabled. It is not serious.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ stty(1), tty(4), ttys(5), getty(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A d\bdz\bz driver appeared in Version 32V AT&T UNIX.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+EC(4) BSD Programmer's Manual (VAX Architecture) EC(4)
+
+N\bNA\bAM\bME\bE
+ e\bec\bc - 3Com 10 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be e\bec\bc0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b61\b10\b00\b00\b0 v\bve\bec\bct\bto\bor\br e\bec\bcr\bri\bin\bnt\bt e\bec\bcc\bco\bol\bll\bli\bid\bde\be e\bec\bcx\bxi\bin\bnt\bt f\bfl\bla\bag\bgs\bs 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The e\bec\bc interface provides access to a 10 Mb/s Ethernet network through a
+ 3com controller.
+
+ The hardware has 32 kilobytes of dual-ported memory on the UNIBUS. This
+ memory is used for internal buffering by the board, and the interface
+ code reads the buffer contents directly through the UNIBUS. The address
+ of this memory is given in the _\bf_\bl_\ba_\bg_\bs field in the configuration file.
+ The first interface normally has its memory at Unibus address 0.
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl(2). The e\bec\bc interface employs the address resolution
+ protocol described in arp(4) to dynamically map between Internet and Eth-
+ ernet addresses on the local network.
+
+ The interface normally tries to use a ``trailer'' encapsulation to mini-
+ mize copying data on input and output. The use of trailers is negotiated
+ with ARP. This negotiation may be disabled, on a per-interface basis, by
+ setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+ The interface software implements an exponential backoff algorithm when
+ notified of a collision on the cable. This algorithm utilizes a 16-bit
+ mask and the VAX-11's interval timer in calculating a series of random
+ backoff values. The algorithm is as follows:
+
+ 1. Initialize the mask to be all 1's.
+
+ 2. If the mask is zero, 16 retries have been made and we give up.
+
+ 3. Shift the mask left one bit and formulate a backoff by masking
+ the interval timer with the smaller of the complement of this
+ mask and a 5-bit mask, resulting in a pseudo-random number be-
+ tween 0 and 31. This produces the number of slot times to de-
+ lay, where a slot is 51 microseconds.
+
+ 4. Use the value calculated in step 3 to delay before retransmit-
+ ting the packet. The delay is done in a software busy loop.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ e\bec\bc%\b%d\bd:\b: s\bse\ben\bnd\bd e\ber\brr\bro\bor\br.\b. After 16 retransmissions using the exponential backoff
+ algorithm described above, the packet was dropped.
+
+ e\bec\bc%\b%d\bd:\b: i\bin\bnp\bpu\but\bt e\ber\brr\bro\bor\br (\b(o\bof\bff\bfs\bse\bet\bt=\b=%\b%d\bd)\b).\b. The hardware indicated an error in read-
+ ing a packet off the cable or an illegally sized packet. The buffer off-
+ set value is printed for debugging purposes.
+
+ e\bec\bc%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4), arp(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The e\bec\bc driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ The hardware is not capable of talking to itself. The software imple-
+ ments local sending and broadcast by sending such packets to the loop in-
+ terface. This is a kludge.
+
+ Backoff delays are done in a software busy loop. This can degrade the
+ system if the network experiences frequent collisions.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+EN(4) BSD Programmer's Manual (VAX Architecture) EN(4)
+
+N\bNA\bAM\bME\bE
+ e\ben\bn - Xerox 3 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be e\ben\bn0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b61\b10\b00\b00\b0 v\bve\bec\bct\bto\bor\br e\ben\bnr\bri\bin\bnt\bt e\ben\bnx\bxi\bin\bnt\bt e\ben\bnc\bco\bol\bll\bli\bid\bde\be
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The e\ben\bn interface provides access to a 3 Mb/s Ethernet network. Due to
+ limitations in the hardware, DMA transfers to and from the network must
+ take place in the lower 64K bytes of the UNIBUS address space, and thus
+ this must be among the first UNIBUS devices enabled after boot.
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl(2). The station address is discovered by probing the
+ on-board Ethernet address register, and is used to verify the protocol
+ addresses. No packets will be sent or accepted until a network address
+ is supplied.
+
+ The interface software implements an exponential backoff algorithm when
+ notified of a collision on the cable. This algorithm utilizes a 16-bit
+ mask and the VAX-11's interval timer in calculating a series of random
+ backoff values. The algorithm is as follows:
+
+ 1. Initialize the mask to be all 1's.
+
+ 2. If the mask is zero, 16 retries have been made and we give up.
+
+ 3. Shift the mask left one bit and formulate a backoff by masking
+ the interval timer with the mask (this is actually the two's
+ complement of the value).
+
+ 4. Use the value calculated in step 3 to delay before retransmit-
+ ting the packet.
+
+ The interface handles both Internet and NS protocol families. It normal-
+ ly tries to use a ``trailer'' encapsulation to minimize copying data on
+ input and output. The use of trailers is negotiated with ARP. This nego-
+ tiation may be disabled, on a per-interface basis, by setting the
+ IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ e\ben\bn%\b%d\bd:\b: o\bou\but\btp\bpu\but\bt e\ber\brr\bro\bor\br.\b. The hardware indicated an error on the previous
+ transmission.
+
+ e\ben\bn%\b%d\bd:\b: s\bse\ben\bnd\bd e\ber\brr\bro\bor\br.\b. After 16 retransmissions using the exponential backoff
+ algorithm described above, the packet was dropped.
+
+ e\ben\bn%\b%d\bd:\b: i\bin\bnp\bpu\but\bt e\ber\brr\bro\bor\br.\b. The hardware indicated an error in reading a packet
+ off the cable.
+
+ e\ben\bn%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The e\ben\bn driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ The device has insufficient buffering to handle back to back packets.
+ This makes use in a production environment painful.
+
+ The hardware does word at a time DMA without byte swapping. To compen-
+ sate, byte swapping of user data must either be done by the user or by
+ the system. A kludge to byte swap only IP packets is provided if the
+ ENF_SWABIPS flag is defined in the driver and set at boot time with an
+ SIOCSIFFLAGS ioctl.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+EX(4) BSD Programmer's Manual (VAX Architecture) EX(4)
+
+N\bNA\bAM\bME\bE
+ e\bex\bx - Excelan 10 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be e\bex\bx0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b64\b40\b00\b00\b0 v\bve\bec\bct\bto\bor\br e\bex\bxc\bcd\bdi\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The e\bex\bx interface provides access to a 10 Mb/s Ethernet network through an
+ Excelan controller used as a link-layer interface.
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl(2). The e\bex\bx interface employs the address resolution
+ protocol described in arp(4) to dynamically map between Internet and Eth-
+ ernet addresses on the local network.
+
+ The interface normally tries to use a ``trailer'' encapsulation to mini-
+ mize copying data on input and output. The use of trailers is negotiated
+ with ARP. This negotiation may be disabled, on a per-interface basis, by
+ setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ e\bex\bx%\b%d\bd:\b: H\bHW\bW %\b%c\bc.\b.%\b%c\bc,\b, N\bNX\bX %\b%c\bc.\b.%\b%c\bc,\b, h\bha\bar\brd\bdw\bwa\bar\bre\be a\bad\bdd\bdr\bre\bes\bss\bs %\b%s\bs.\b. This provides firmware
+ revisions levels, and is expected during autoconfiguration.
+
+ e\bex\bx%\b%d\bd:\b: c\bca\ban\bn'\b't\bt i\bin\bni\bit\bti\bia\bal\bli\biz\bze\be.\b. There was a failure in allocating unibus re-
+ sources for the device.
+
+ e\bex\bx%\b%d\bd:\b: c\bco\bon\bnf\bfi\big\bgu\bur\bra\bat\bti\bio\bon\bn f\bfa\bai\bil\ble\bed\bd;\b; c\bcc\bc =\b= %\b%x\bx.\b. The hardware indicated an error
+ when trying to initalize itself. The error code returned is described at
+ length in the device Reference Manual.
+
+ e\bex\bx%\b%d\bd:\b: r\bre\bec\bce\bei\biv\bve\be e\ber\brr\bro\bor\br %\b%b\bb.\b. The hardware indicated an error in reading a
+ packet from the cable. Specific Error bits are provided
+
+ e\bex\bx%\b%d\bd:\b: t\btr\bra\ban\bns\bsm\bmi\bit\bt e\ber\brr\bro\bor\br %\b%b\bb.\b. The hardware indicated an error in transmitting
+ a packet to the cable or an illegally sized packet. Specific Error bits
+ are provided
+
+ e\bex\bx%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4), arp(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The e\bex\bx driver appeared in 4.3BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+FL(4) BSD Programmer's Manual (VAX Architecture) FL(4)
+
+N\bNA\bAM\bME\bE
+ f\bfl\bl - console floppy interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a simple interface to the DEC RX01 floppy disk unit, which is
+ part of the console LSI-11 subsystem for VAX-11/780s. Access is given to
+ the entire floppy consisting of 77 tracks of 26 sectors of 128 bytes.
+
+ All I/O is raw; the seek addresses in raw transfers should be a multiple
+ of 128 bytes and a multiple of 128 bytes should be transferred, as in
+ other ``raw'' disk interfaces.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/floppy
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ arff(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The f\bfl\bl driver appeared in 4.0BSD.
+
+B\bBU\bUG\bGS\bS
+ Multiple console floppies are not supported.
+
+ If a write is given with a count not a multiple of 128 bytes then the
+ trailing portion of the last sector will be zeroed.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+HDH(4) BSD Programmer's Manual (VAX Architecture) HDH(4)
+
+N\bNA\bAM\bME\bE
+ h\bhd\bdh\bh - ACC IF-11/HDH IMP interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ p\bps\bse\beu\bud\bdo\bo-\b-d\bde\bev\bvi\bic\bce\be i\bim\bmp\bp
+ d\bde\bev\bvi\bic\bce\be h\bhd\bdh\bh0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b66\b67\b74\b40\b0 v\bve\bec\bct\bto\bor\br h\bhd\bdh\bhi\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The h\bhd\bdh\bh device provides an HDLC Host (HDH) interface to an IMP. It is
+ normally used when participating in the DARPA Internet. The controller
+ itself is not accessible to users, but instead provides the hardware sup-
+ port to the IMP interface described in imp(4). The configuration entry
+ for the IMP must also include the _\bp_\bs_\be_\bu_\bd_\bo_\b-_\bd_\be_\bv_\bi_\bc_\be as shown above in the
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ h\bhd\bdh\bh%\b%d\bd:\b: n\bno\bot\bt a\bal\bli\biv\bve\be.\b. The initialization routine was entered even though the
+ device did not autoconfigure. This indicates a system problem.
+
+ h\bhd\bdh\bh%\b%d\bd:\b: c\bca\ban\bnn\bno\bot\bt g\bge\bet\bt c\bch\bha\ban\bn %\b%d\bd u\bub\bba\ba r\bre\bes\bso\bou\bur\brc\bce\bes\bs.\b. Insufficient UNIBUS resources
+ existed to initialize the device. This is likely to be a shortage of
+ UNIBUS mapping registers.
+
+ h\bhd\bdh\bh%\b%d\bd:\b: L\bLI\bIN\bNE\bE U\bUP\bP.\b. This indicates that both the HDLC and HDH protocols have
+ declared the link to the IMP alive.
+
+ h\bhd\bdh\bh%\b%d\bd:\b: L\bLI\bIN\bNE\bE D\bDO\bOW\bWN\bN.\b. This indicates that the link to the IMP has died.
+
+ h\bhd\bdh\bh%\b%d\bd:\b: T\bTI\bIM\bME\bEO\bOU\bUT\bT.\b.
+ h\bhd\bdh\bh%\b%d\bd:\b: H\bHO\bOS\bST\bT D\bDA\bAT\bTA\bA E\bER\bRR\bRO\bOR\bR.\b.
+ h\bhd\bdh\bh%\b%d\bd:\b: I\bIM\bMP\bP S\bSE\bEQ\bQU\bUE\bEN\bNC\bCE\bE E\bER\bRR\bRO\bOR\bR.\b.
+ h\bhd\bdh\bh%\b%d\bd:\b: H\bHO\bOS\bST\bT S\bSE\bEQ\bQU\bUE\bEN\bNC\bCE\bE E\bER\bRR\bRO\bOR\bR.\b. These errors indicate that an HDH protocol
+ error has been detected.
+
+ h\bhd\bdh\bh%\b%d\bd:\b: c\bca\ban\bnn\bno\bot\bt g\bge\bet\bt s\bsu\bup\bpe\ber\brv\bvi\bis\bso\bor\br c\bcm\bmn\bnd\bd b\bbu\buf\bff\bfe\ber\br.\b. This error indicates that an
+ _\bm_\bb_\bu_\bf could not be allocated to send a command to the IF-11/HDH.
+
+ Any other error message from hdh%d: indicates a serious error detected by
+ either the driver or the IF-11/HDH firmware.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The h\bhd\bdh\bh driver appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 1
--- /dev/null
+HK(4) BSD Programmer's Manual HK(4)
+
+N\bNA\bAM\bME\bE
+ h\bhk\bk - RK6-11/ RK06 and RK07 disk interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br h\bhk\bk0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b17\b77\b74\b44\b40\b0 v\bve\bec\bct\bto\bor\br r\brk\bki\bin\bnt\btr\br
+ d\bdi\bis\bsk\bk r\brk\bk0\b0 a\bat\bt h\bhk\bk0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The h\bhk\bk driver is a typical block-device disk driver; block device I/O is
+ described in physio(4).
+
+ The script MAKEDEV(8) should be used to create the special files; if a
+ special file needs to be created by hand consult mknod(8).
+
+D\bDI\bIS\bSK\bK S\bSU\bUP\bPP\bPO\bOR\bRT\bT
+ Special file names begin with `hk' and `rhk' for the block and character
+ files respectively. The second component of the name, a drive unit number
+ in the range of zero to seven, is represented by a `?' in the disk lay-
+ outs below. The last component is the file system partition which is des-
+ ignated by a letter from `a' to `h'. and corresponds to a minor device
+ number set: zero to seven, eight to 15, 16 to 23 and so forth for drive
+ zero, drive two and drive three respectively. The location and size (in
+ sectors) of the partitions for the RK06 and RK07 drives are as follows:
+
+ RK07 partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bl
+ hk?a 0 15884 0-240
+ hk?b 15906 10032 241-392
+ hk?c 0 53790 0-814
+ hk?d 25938 15884 393-633
+ hk?f 41844 11792 634-814
+ hk?g 25938 27786 393-813
+
+ RK06 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bl
+ hk?a 0 15884 0-240
+ hk?b 15906 11154 241-409
+ hk?c 0 27126 0-410
+
+ On a dual RK-07 system partition hk?a is used for the root for one drive
+ and partition hk?g for the /usr file system. If large jobs are to be run
+ using hk?b on both drives as swap area provides a 10Mbyte paging area.
+ Otherwise partition hk?c on the other drive is used as a single large
+ file system.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/hk[0-7][a-h] block files
+ /dev/rhk[0-7][a-h] raw files
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ h\bhk\bk%\b%d\bd%\b%c\bc:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br %\b%s\bsi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd[\b[-\b-%\b%d\bd]\b] c\bcs\bs2\b2=\b=%\b%b\bb d\bds\bs=\b=%\b%b\bb e\ber\br=\b=%\b%b\bb.\b. An unrecover-
+ able error occurred during transfer of the specified filesystem block
+ number(s), which are logical block numbers on the indicated partition.
+ The contents of the cs2, ds and er registers are printed in octal and
+ symbolically with bits decoded. The error was either unrecoverable, or a
+ large number of retry attempts (including offset positioning and drive
+ recalibration) could not recover the error.
+
+ r\brk\bk%\b%d\bd:\b: w\bwr\bri\bit\bte\be l\blo\boc\bck\bke\bed\bd.\b. The write protect switch was set on the drive when a
+ write was attempted. The write operation is not recoverable.
+
+
+
+
+ r\brk\bk%\b%d\bd:\b: n\bno\bot\bt r\bre\bea\bad\bdy\by.\b. The drive was spun down or off line when it was ac-
+ cessed. The i/o operation is not recoverable.
+
+ r\brk\bk%\b%d\bd:\b: n\bno\bot\bt r\bre\bea\bad\bdy\by (\b(c\bca\bam\bme\be b\bba\bac\bck\bk!\b!)\b).\b. The drive was not ready, but after print-
+ ing the message about being not ready (which takes a fraction of a sec-
+ ond) was ready. The operation is recovered if no further errors occur.
+
+ r\brk\bk%\b%d\bd%\b%c\bc:\b: s\bso\bof\bft\bt e\bec\bcc\bc r\bre\bea\bad\bdi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd[\b[-\b-%\b%d\bd]\b].\b. A recoverable ECC error occurred
+ on the specified sector(s) in the specified disk partition. This happens
+ normally a few times a week. If it happens more frequently than this the
+ sectors where the errors are occurring should be checked to see if cer-
+ tain cylinders on the pack, spots on the carriage of the drive or heads
+ are indicated.
+
+ h\bhk\bk%\b%d\bd:\b: l\blo\bos\bst\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. A timer watching the controller detected no inter-
+ rupt for an extended period while an operation was outstanding. This in-
+ dicates a hardware or software failure. There is currently a hard-
+ ware/software problem with spinning down drives while they are being ac-
+ cessed which causes this error to occur. The error causes a UNIBUS re-
+ set, and retry of the pending operations. If the controller continues to
+ lose interrupts, this error will recur a few seconds later.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ hp(4), uda(4), up(4), syslogd(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The h\bhk\bk driver appeared in 4.1BSD.
+
+B\bBU\bUG\bGS\bS
+ The write function scribbles on the tail of incomplete blocks.
+
+ DEC-standard error logging should be supported.
+
+ A program to analyze the logged error information (even in its present
+ reduced form) is needed.
+
+ The partition tables for the file systems should be read off of each
+ pack, as they are never quite what any single installation would prefer,
+ and this would make packs more portable.
+
+ The RK07 g partition size in rk.c disagrees with that in _\b/_\be_\bt_\bc_\b/_\bd_\bi_\bs_\bk_\bt_\ba_\bb_\b.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+HP(4) BSD Programmer's Manual (VAX Architecture) HP(4)
+
+N\bNA\bAM\bME\bE
+ h\bhp\bp - MASSBUS disk interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bdi\bis\bsk\bk h\bhp\bp0\b0 a\bat\bt m\bmb\bba\ba0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The h\bhp\bp driver is a generic Massbus disk driver which handles both the
+ standard DEC controllers and the Emulex SC750 and SC780 controllers. It
+ is typical of a block-device disk driver; block I/O is described in
+ physio(4).
+
+ The script MAKEDEV(8) should be used to create the special files; if a
+ special file needs to be created by hand consult mknod(8). It is recom-
+ mended as a security precaution to not create special files for devices
+ which may never be installed.
+
+ The first sector of each disk contains both a first-stage bootstrap pro-
+ gram and a disk label containing geometry information and partition lay-
+ outs (see disklabel(5). This sector is normally write-protected, and
+ disk-to-disk copies should avoid copying this sector. The label may be
+ updated with disklabel(8), which can also be used to write-enable and
+ write-disable the sector. The next 15 sectors contain a second-stage
+ bootstrap program.
+
+D\bDI\bIS\bSK\bK S\bSU\bUP\bPP\bPO\bOR\bRT\bT
+ This driver handles both standard DEC controllers and Emulex SC750 and
+ SC780 controllers. During autoconfiguration or whenever a drive comes on
+ line for the first time, or when a drive is opened after all partitions
+ are closed, the first sector of the drive is examined for a disk label.
+ If a label is found, the geometry of the drive and the partition tables
+ are taken from it. If no label is found, standard DEC drive types are
+ recognized according to the MASSBUS drive type register, and default par-
+ titions are used. For the Emulex controller the drive type register
+ should be configured to indicate the drive is an RM02. When this is en-
+ countered, the driver checks the holding register to find out the disk
+ geometry and, based on this information, decides what the drive type is.
+
+ Special file names begin with `hp' and `rhp' for the block and character
+ files respectively. The second component of the name, a drive unit number
+ in the range of zero to seven, is represented by a `?' in the disk lay-
+ outs below. The last component is the file system partition designated
+ by a letter from `a' to `h' and also corresponds to a minor device number
+ set: zero to seven, eight to 15, 16 to 23 and so forth for drive zero,
+ drive two and drive three respectively. The following disks are support-
+ ed: RM03, RM05, RP06, RM80, RP05, RP07, ML11A, ML11B, CDC 9775, CDC 9730,
+ AMPEX Capricorn (32 sectors/track), FUJITSU Eagle (48 sectors/track),
+ FUJITSU 2361, and AMPEX 9300. The default layout and size (in sectors)
+ of the partitions for these drives:
+
+ RM03 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-99
+ hp?b 16000 33440 100-309
+ hp?c 0 131680 0-822
+ hp?d 49600 15884 309-408
+ hp?e 65440 55936 409-758
+ hp?f 121440 10080 759-822
+ hp?g 49600 82080 309-822
+
+ RM05 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-26
+ hp?b 16416 33440 27-81
+ hp?c 0 500384 0-822
+ hp?d 341696 15884 562-588
+ hp?e 358112 55936 589-680
+ hp?f 414048 86176 681-822
+ hp?g 341696 158528 562-822
+ hp?h 49856 291346 82-561
+
+ RP06 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-37
+ hp?b 15884 33440 38-117
+ hp?c 0 340670 0-814
+ hp?d 49324 15884 118-155
+ hp?e 65208 55936 156-289
+ hp?f 121220 219296 290-814
+ hp?g 49324 291192 118-814
+
+ RM80 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-36
+ hp?b 16058 33440 37-114
+ hp?c 0 242606 0-558
+ hp?d 49910 15884 115-151
+ hp?e 68096 55936 152-280
+ hp?f 125888 120466 281-558
+ hp?g 49910 192510 115-558
+
+ RP05 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-37
+ hp?b 15884 33440 38-117
+ hp?c 0 171798 0-410
+ hp?d 2242 15884 118-155
+ hp?e 65208 55936 156-289
+ hp?f 121220 50424 290-410
+ hp?g 2242 122320 118-410
+
+ RP07 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-9
+ hp?b 16000 66880 10-51
+ hp?c 0 1008000 0-629
+ hp?d 376000 15884 235-244
+ hp?e 392000 307200 245-436
+ hp?f 699200 308600 437-629
+ hp?g 376000 631800 235-629
+ hp?h 83200 291346 52-234
+
+ CDC 9775 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-12
+ hp?b 16640 66880 13-65
+ hp?c 0 1077760 0-841
+ hp?d 376320 15884 294-306
+ hp?e 392960 307200 307-546
+ hp?f 700160 377440 547-841
+ hp?g 376320 701280 294-841
+ hp?h 84480 291346 66-293
+
+ CDC 9730 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-49
+ hp?b 16000 33440 50-154
+ hp?c 0 263360 0-822
+ hp?d 49600 15884 155-204
+ hp?e 65600 55936 205-379
+ hp?f 121600 141600 380-822
+ hp?g 49600 213600 155-822
+
+ AMPEX Capricorn partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-31
+ hp?b 16384 33440 32-97
+ hp?c 0 524288 0-1023
+ hp?d 342016 15884 668-699
+ hp?e 358400 55936 700-809
+ hp?f 414720 109408 810-1023
+ hp?g 342016 182112 668-1023
+ hp?h 50176 291346 98-667
+
+ FUJITSU Eagle partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-16
+ hp?b 16320 66880 17-86
+ hp?c 0 808320 0-841
+ hp?d 375360 15884 391-407
+ hp?e 391680 55936 408-727
+ hp?f 698880 109248 728-841
+ hp?g 375360 432768 391-841
+ hp?h 83520 291346 87-390
+
+ FUJITSU 2361 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-12
+ hp?b 16640 66880 13-65
+ hp?c 0 1077760 0-841
+ hp?d 376320 15884 294-306
+ hp?e 392960 307200 307-546
+ hp?f 700160 377408 547-841
+ hp?g 363520 701248 294-841
+ hp?h 84480 291346 66-293
+
+ AMPEX 9300 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bl
+ hp?a 0 15884 0-26
+ hp?b 16416 33440 27-81
+ hp?c 0 495520 0-814
+ hp?d 341696 15884 562-588
+ hp?e 358112 55936 589-680
+ hp?f 414048 81312 681-814
+ hp?g 341696 153664 562-814
+ hp?h 49856 291346 82-561
+
+ The hp?a partition is normally used for the root file system, the hp?b
+ partition as a paging area, and the hp?c partition for pack-pack copying
+ (it maps the entire disk). On disks larger than about 205 Megabytes, the
+ hp?h partition is inserted prior to the hp?d or hp?g partition; the hp?g
+ partition then maps the remainder of the pack. All disk partition tables
+ are calculated using the diskpart(8) program.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/hp[0-7][a-h] block files
+ /dev/rhp[0-7][a-h] raw files
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ h\bhp\bp%\b%d\bd%\b%c\bc:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br %\b%s\bsi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd [\b[o\bof\bf %\b%d\bd-\b-%\b%d\bd]\b] (\b(h\bhp\bp%\b%d\bd b\bbn\bn %\b%d\bd c\bcn\bn %\b%d\bd t\btn\bn %\b%d\bd s\bsn\bn
+ %\b%d\bd)\b) m\bmb\bbs\bsr\br=\b=%\b%b\bb e\ber\br1\b1=\b=%\b%b\bb e\ber\br2\b2=\b=%\b%b\bb.\b. An unrecoverable error occurred during trans-
+ fer of the specified filesystem block number, which is a logical block
+ number on the indicated partition. If the transfer involved multiple
+ blocks, the block range is printed as well. The parenthesized fields
+ list the actual disk sector number relative to the beginning of the
+ drive, as well as the cylinder, track and sector number of the block.
+ The MASSBUS status register is printed in hexadecimal and with the error
+ bits decoded if any error bits other than MBEXC and DTABT are set. In
+ any case the contents of the two error registers are also printed in oc-
+ tal and symbolically with bits decoded. (Note that er2 is what old RP06
+ manuals would call RPER3; the terminology is that of the RM disks). The
+ error was either unrecoverable, or a large number of retry attempts (in-
+ cluding offset positioning and drive recalibration) could not recover the
+ error.
+
+ h\bhp\bp%\b%d\bd:\b: w\bwr\bri\bit\bte\be l\blo\boc\bck\bke\bed\bd.\b. The write protect switch was set on the drive when a
+ write was attempted. The write operation is not recoverable.
+
+ h\bhp\bp%\b%d\bd:\b: n\bno\bot\bt r\bre\bea\bad\bdy\by .\b. The drive was spun down or off line when it was ac-
+ cessed. The I/O operation is not recoverable.
+
+ h\bhp\bp%\b%d\bd%\b%c\bc:\b: s\bso\bof\bft\bt e\bec\bcc\bc r\bre\bea\bad\bdi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd [\b[o\bof\bf %\b%d\bd-\b-%\b%d\bd]\b] (\b(h\bhp\bp%\b%d\bd b\bbn\bn %\b%d\bd c\bcn\bn %\b%d\bd t\btn\bn %\b%d\bd s\bsn\bn
+ %\b%d\bd)\b).\b. A recoverable ECC error occurred on the specified sector of the
+ specified disk partition. If the transfer involved multiple blocks, the
+ block range is printed as well. The parenthesized fields list the actual
+ disk sector number relative to the beginning of the drive, as well as the
+ cylinder, track and sector number of the block. This happens normally a
+ few times a week. If it happens more frequently than this the sectors
+ where the errors are occurring should be checked to see if certain cylin-
+ ders on the pack, spots on the carriage of the drive or heads are indi-
+ cated.
+
+ h\bhp\bp%\b%d\bd:\b: 9\b97\b77\b75\b5 (\b(d\bdi\bir\bre\bec\bct\bt)\b).\b.
+ h\bhp\bp%\b%d\bd:\b: 9\b97\b73\b30\b0 (\b(d\bdi\bir\bre\bec\bct\bt)\b).\b.
+ h\bhp\bp%\b%d\bd:\b: 9\b93\b30\b00\b0.\b.
+ h\bhp\bp%\b%d\bd:\b: 9\b97\b76\b62\b2.\b.
+ h\bhp\bp%\b%d\bd:\b: c\bca\bap\bpr\bri\bic\bco\bor\brn\bn.\b.
+ h\bhp\bp%\b%d\bd:\b: e\bea\bag\bgl\ble\be.\b.
+ h\bhp\bp%\b%d\bd:\b: 2\b23\b36\b61\b1.\b.
+ h\bhp\bp%\b%d\bd:\b: n\bnt\btr\bra\bac\bck\bks\bs %\b%d\bd,\b, n\bns\bse\bec\bct\bto\bor\brs\bs %\b%d\bd:\b: u\bun\bnk\bkn\bno\bow\bwn\bn d\bde\bev\bvi\bic\bce\be.\b. During autoconfiguration
+ one of the above messages may appear on the console indicating the appro-
+ priate drive type was recognized. The last message indicates the drive
+ is of a unknown type. In this case, the correct geometry is set, and one
+ partition is created that contains the entire drive.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ physio(4), up(4), disklabel(5), MAKEDEV(8) disklabel(8) mknod(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The h\bhp\bp driver appeared in 4.0BSD.
+
+B\bBU\bUG\bGS\bS
+ DEC-standard error logging should be supported.
+
+ A program to analyze the logged error information (even in its present
+ reduced form) is needed.
+
+4th Berkeley Distribution June 5, 1993 4
--- /dev/null
+HT(4) BSD Programmer's Manual (VAX Architecture) HT(4)
+
+N\bNA\bAM\bME\bE
+ h\bht\bt - TM-03/ TE-16, TU-45, TU-77 MASSBUS magtape device interface:
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ m\bma\bas\bst\bte\ber\br h\bht\bt0\b0 a\bat\bt m\bmb\bba\ba?\b? d\bdr\bri\biv\bve\be ?\b?
+ t\bta\bap\bpe\be t\btu\bu0\b0 a\bat\bt h\bht\bt0\b0 s\bsl\bla\bav\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The TM-03 transport combination provides a standard tape drive interface
+ as described in mtio(4). All drives provide both 800 and 1600 BPI; the
+ TE-16 runs at 45 IPS, the TU-45 at 75 IPS, while the TU-77 runs at 125
+ IPS and autoloads tapes.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ t\btu\bu%\b%d\bd:\b: n\bno\bo w\bwr\bri\bit\bte\be r\bri\bin\bng\bg.\b. An attempt was made to write on the tape drive when
+ no write ring was present; this message is written on the terminal of the
+ user who tried to access the tape.
+
+ t\btu\bu%\b%d\bd:\b: n\bno\bot\bt o\bon\bnl\bli\bin\bne\be.\b. An attempt was made to access the tape while it was
+ offline; this message is written on the terminal of the user who tried to
+ access the tape.
+
+ t\btu\bu%\b%d\bd:\b: c\bca\ban\bn'\b't\bt c\bch\bha\ban\bng\bge\be d\bde\ben\bns\bsi\bit\bty\by i\bin\bn m\bmi\bid\bd-\b-t\bta\bap\bpe\be.\b. An attempt was made to write on
+ a tape at a different density than is already recorded on the tape. This
+ message is written on the terminal of the user who tried to switch the
+ density.
+
+ t\btu\bu%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br b\bbn\bn%\b%d\bd m\bmb\bbs\bsr\br=\b=%\b%b\bb e\ber\br=\b=%\b%b\bb d\bds\bs=\b=%\b%b\bb.\b. A tape error occurred at
+ block _\bb_\bn; the ht error register and drive status register are printed in
+ octal with the bits symbolically decoded. Any error is fatal on non-raw
+ tape; when possible the driver will have retried the operation which
+ failed several times before reporting the error.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), tar(1), tp(1), mtio(4), mt(4), physio(4), tm(4), ts(4),
+ ut(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ An h\bht\bt driver appeared in Version 6 AT&T UNIX.
+
+B\bBU\bUG\bGS\bS
+ May hang if physical (non-data) errors occur.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+HY(4) BSD Programmer's Manual (VAX Architecture) HY(4)
+
+N\bNA\bAM\bME\bE
+ h\bhy\by - Network Systems Hyperchannel interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be h\bhy\by0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b72\b24\b41\b10\b0 v\bve\bec\bct\bto\bor\br h\bhy\byi\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The h\bhy\by interface provides access to a Network Systems Corporation Hyper-
+ channel Adapter.
+
+ The network to which the interface is attached is specified at boot time
+ with an SIOCSIFADDR ioctl(2). The host's address is discovered by read-
+ ing the adapter status register. The interface will not transmit or re-
+ ceive packets until the network number is known.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ h\bhy\by%\b%d\bd:\b: u\bun\bni\bit\bt n\bnu\bum\bmb\bbe\ber\br 0\b0x\bx%\b%x\bx p\bpo\bor\brt\bt %\b%d\bd t\bty\byp\bpe\be %\b%x\bx m\bmi\bic\bcr\bro\boc\bco\bod\bde\be l\ble\bev\bve\bel\bl 0\b0x\bx%\b%x\bx.\b. Identifies
+ the device during autoconfiguration.
+
+ h\bhy\by%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+ h\bhy\by%\b%d\bd:\b: c\bca\ban\bn'\b't\bt i\bin\bni\bit\bti\bia\bal\bli\biz\bze\be.\b. The interface was unable to allocate UNIBUS re-
+ sources. This is usually due to having too many network devices on an
+ 11/750 where there are only 3 buffered data paths.
+
+ h\bhy\by%\b%d\bd:\b: N\bNE\bEX\bX -\b- N\bNo\bon\bn E\bEx\bxi\bis\bst\bte\ben\bnt\bt M\bMe\bem\bmo\bor\bry\by.\b. Non existent memory error returned from
+ hardware.
+
+ h\bhy\by%\b%d\bd:\b: B\bBA\bAR\bR o\bov\bve\ber\brf\bfl\blo\bow\bw.\b. Bus address register overflow error returned from
+ hardware.
+
+ h\bhy\by%\b%d\bd:\b: P\bPo\bow\bwe\ber\br O\bOf\bff\bf b\bbi\bit\bt s\bse\bet\bt,\b, t\btr\bry\byi\bin\bng\bg t\bto\bo r\bre\bes\bse\bet\bt.\b. Adapter has lost power, driver
+ will reset the bit and see if power is still out in the adapter.
+
+ h\bhy\by%\b%d\bd:\b: P\bPo\bow\bwe\ber\br O\bOf\bff\bf E\bEr\brr\bro\bor\br,\b, n\bne\bet\btw\bwo\bor\brk\bk s\bsh\bhu\but\btd\bdo\bow\bwn\bn.\b. Power was really off in the
+ adapter, network connections are dropped. Software does not shut down
+ the network unless power has been off for a while.
+
+ h\bhy\by%\b%d\bd:\b: R\bRE\bEC\bCV\bVD\bD M\bMP\bP >\b> M\bMP\bPS\bSI\bIZ\bZE\bE (\b(%\b%d\bd)\b).\b. A message proper was received that is too
+ big. Probable a driver bug. Shouldn't happen.
+
+ h\bhy\by%\b%d\bd:\b: x\bxm\bmi\bit\bt e\ber\brr\bro\bor\br -\b- l\ble\ben\bn >\b> h\bhy\by_\b_o\bol\ble\ben\bn [\b[%\b%d\bd >\b> %\b%d\bd]\b].\b. Probable driver error.
+ Shouldn't happen.
+
+ h\bhy\by%\b%d\bd:\b: D\bDR\bRI\bIV\bVE\bER\bR B\bBU\bUG\bG -\b- I\bIN\bNV\bVA\bAL\bLI\bID\bD S\bST\bTA\bAT\bTE\bE %\b%d\bd.\b. The driver state machine reached a
+ non-existent state. Definite driver bug.
+
+ h\bhy\by%\b%d\bd:\b: w\bwa\bat\btc\bch\bhd\bdo\bog\bg t\bti\bim\bme\ber\br e\bex\bxp\bpi\bir\bre\bed\bd.\b. A command in the adapter has taken too
+ long to complete. Driver will abort and retry the command.
+
+ h\bhy\by%\b%d\bd:\b: a\bad\bda\bap\bpt\bte\ber\br p\bpo\bow\bwe\ber\br r\bre\bes\bst\bto\bor\bre\bed\bd.\b. Software was able to reset the power off
+ bit, indicating that the power has been restored.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The h\bhy\by interface appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ If the adapter does not respond to the status command issued during auto-
+ configure, the adapter is assumed down. A reboot is required to recog-
+ nize it.
+
+ The adapter power fail interrupt seems to occur sporadically when power
+ has, in fact, not failed. The driver will believe that power has failed
+ only if it can not reset the power fail latch after a ``reasonable'' time
+ interval. These seem to appear about 2-4 times a day on some machines.
+ There seems to be no correlation with adapter rev level, number of ports
+ used etc. and whether a machine will get these ``bogus powerfails''. They
+ don't seem to cause any real problems so they have been ignored.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+IK(4) BSD Programmer's Manual (VAX Architecture) IK(4)
+
+N\bNA\bAM\bME\bE
+ i\bik\bk - Ikonas frame buffer, graphics device interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be i\bik\bk0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b17\b72\b24\b46\b60\b0 v\bve\bec\bct\bto\bor\br i\bik\bki\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The i\bik\bk driver provides an interface to an Ikonas frame buffer graphics
+ device. Each minor device is a different frame buffer interface board.
+ When the device is opened, its interface registers are mapped, via virtu-
+ al memory, into the user processes address space. This allows the user
+ process very high bandwidth to the frame buffer with no system call over-
+ head.
+
+ Bytes written or read from the device are DMA'ed from or to the inter-
+ face. The frame buffer XY address, its addressing mode, etc. must be set
+ up by the user process before calling write or read.
+
+ Other communication with the driver is via ioctls. The IK_GETADDR
+ ioctl(2) returns the virtual address where the user process can find the
+ interface registers. The IK_WAITINT ioctl suspends the user process un-
+ til the ikonas device has interrupted (for whatever reason -- the user
+ process has to set the interrupt enables).
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/ik
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The i\bik\bk driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ An invalid access (e.g., longword) to a mapped interface register can
+ cause the system to crash with a machine check. A user process could
+ possibly cause infinite interrupts hence bringing things to a crawl.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+IL(4) BSD Programmer's Manual (VAX Architecture) IL(4)
+
+N\bNA\bAM\bME\bE
+ i\bil\bl - Interlan NI1010 10 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be i\bil\bl0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b64\b40\b00\b00\b0 v\bve\bec\bct\bto\bor\br i\bil\blr\bri\bin\bnt\bt i\bil\blc\bci\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The i\bil\bl interface provides access to a 10 Mb/s Ethernet network through an
+ Interlan 1010 or 1010A controller.
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl(2). The i\bil\bl interface employs the address resolution
+ protocol described in arp(4) to dynamically map between Internet and Eth-
+ ernet addresses on the local network.
+
+ The interface normally tries to use a ``trailer'' encapsulation to mini-
+ mize copying data on input and output. The use of trailers is negotiated
+ with ARP. This negotiation may be disabled, on a per-interface basis, by
+ setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ i\bil\bl%\b%d\bd:\b: i\bin\bnp\bpu\but\bt e\ber\brr\bro\bor\br.\b. The hardware indicated an error in reading a packet
+ off the cable or an illegally sized packet.
+
+ i\bil\bl%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+ i\bil\bl%\b%d\bd:\b: s\bse\bet\bta\bad\bdd\bdr\br d\bdi\bid\bdn\bn'\b't\bt w\bwo\bor\brk\bk.\b. The interface was unable to reprogram its
+ physical ethernet address. This may happen with very early models of the
+ interface. This facility is used only when the controller is not the
+ first network interface configured for XNS. The oldest interface tested
+ (2.7.1.0.1.45) has never failed in this way.
+
+ i\bil\bl%\b%d\bd:\b: r\bre\bes\bse\bet\bt f\bfa\bai\bil\ble\bed\bd,\b, c\bcs\bsr\br=\b=%\b%b\bb.\b.
+ i\bil\bl%\b%d\bd:\b: s\bst\bta\bat\btu\bus\bs f\bfa\bai\bil\ble\bed\bd,\b, c\bcs\bsr\br=\b=%\b%b\bb.\b.
+ i\bil\bl%\b%d\bd:\b: h\bha\bar\brd\bdw\bwa\bar\bre\be d\bdi\bia\bag\bg f\bfa\bai\bil\ble\bed\bd,\b, c\bcs\bsr\br=\b=%\b%b\bb.\b.
+ i\bil\bl%\b%d\bd:\b: v\bve\ber\bri\bif\bfy\byi\bin\bng\bg s\bse\bet\bta\bad\bdd\bdr\br,\b, c\bcs\bsr\br=\b=%\b%b\bb.\b.
+ i\bil\bl%\b%d\bd:\b: s\bst\btr\bra\bay\by x\bxm\bmi\bit\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt,\b, c\bcs\bsr\br=\b=%\b%b\bb.\b.
+ i\bil\bl%\b%d\bd:\b: c\bca\ban\bn'\b't\bt i\bin\bni\bit\bti\bia\bal\bli\biz\bze\be.\b. The above messages indicate a probable hardware
+ error performing the indicated operation during autoconfiguration or ini-
+ tialization. The status field in the control and status register (the
+ low-order four bits) should indicate the nature of the failure. See the
+ hardware manual for details.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4), arp(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The i\bil\bl interface appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+INTRO(4) BSD Programmer's Manual (VAX Architecture) INTRO(4)
+
+N\bNA\bAM\bME\bE
+ i\bin\bnt\btr\bro\bo - introduction to special files and hardware support
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section describes the special files, related driver functions, and
+ networking support available in the system. In this part of the manual,
+ the SYNOPSIS section of each configurable device gives a sample specifi-
+ cation for use in constructing a system description for the config(8)
+ program. The DIAGNOSTICS section lists messages which may appear on the
+ console and/or in the system error log _\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bm_\be_\bs_\bs_\ba_\bg_\be_\bs due to errors in
+ device operation; see syslogd(8) for more information.
+
+V\bVA\bAX\bX D\bDE\bEV\bVI\bIC\bCE\bE S\bSU\bUP\bPP\bPO\bOR\bRT\bT
+ This section describes the hardware supported on the DEC VAX-11. Software
+ support for these devices comes in two forms. A hardware device may be
+ supported with a character or block _\bd_\be_\bv_\bi_\bc_\be _\bd_\br_\bi_\bv_\be_\br, or it may be used
+ within the networking subsystem and have a _\bn_\be_\bt_\bw_\bo_\br_\bk _\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\bd_\br_\bi_\bv_\be_\br.
+ Block and character devices are accessed through files in the file system
+ of a special type; see physio(4) and mknod(8). Network interfaces are
+ indirectly accessed through the interprocess communication facilities
+ provided by the system; see socket(2).
+
+ A hardware device is identified to the system at configuration time and
+ the appropriate device or network interface driver is then compiled into
+ the system. When the resultant system is booted, the autoconfiguration
+ facilities in the system probe for the device on either the UNIBUS (or Q-
+ bus) or MASSBUS and, if found, enable the software support for it. If a
+ UNIBUS device does not respond at autoconfiguration time it is not acces-
+ sible at any time afterwards. To enable a UNIBUS device which did not
+ autoconfigure, the system will have to be rebooted. If a MASSBUS device
+ comes ``on-line'' after the autoconfiguration sequence it will be dynami-
+ cally autoconfigured into the running system.
+
+ The autoconfiguration system is described in autoconf(4). A list of the
+ supported devices is given below.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), netintro(4), autoconf(4), config(8).
+
+ "Building 4.3 BSD UNIX Systems with Config", _\bS_\bM_\bM, 2.
+
+L\bLI\bIS\bST\bT O\bOF\bF D\bDE\bEV\bVI\bIC\bCE\bES\bS
+ The devices listed below are supported in this incarnation of the system.
+ Pseudo-devices are not listed. Devices are indicated by their functional
+ interface. If second vendor products provide functionally identical
+ interfaces they should be usable with the supplied software. B\bBe\bew\bwa\bar\bre\be,\b,
+ h\bho\bow\bwe\bev\bve\ber\br,\b, t\bth\bha\bat\bt w\bwe\be p\bpr\bro\bom\bmi\bis\bse\be t\bth\bhe\be s\bso\bof\bft\btw\bwa\bar\bre\be w\bwo\bor\brk\bks\bs O\bON\bNL\bLY\bY w\bwi\bit\bth\bh t\bth\bhe\be h\bha\bar\brd\bdw\bwa\bar\bre\be
+ i\bin\bnd\bdi\bic\bca\bat\bte\bed\bd o\bon\bn t\bth\bhe\be a\bap\bpp\bpr\bro\bop\bpr\bri\bia\bat\bte\be m\bma\ban\bnu\bua\bal\bl p\bpa\bag\bge\be.\b. Occasionally, new devices of
+ a similar type may be added simply by creating appropriate table entries
+ in the driver.
+
+ acc ACC LH/DH IMP communications interface
+ ad Data translation A/D interface
+ css DEC IMP-11A communications interface
+ crl VAX 8600, 8650 console RL02 disk
+ ct C/A/T or APS phototypesetter
+ ddn ACC ACP625 DDN Standard Mode X.25 IMP interface
+ de DEC DEUNA 10Mb/s Ethernet controller
+ dh DH-11 emulators, terminal multiplexor
+ dhu DHU-11 terminal multiplexor
+ dmc DEC DMC-11/DMR-11 point-to-point communications device
+ dmf DEC DMF-32 terminal multiplexor and parallel printer interface
+ dmz DEC DMZ-32 terminal multiplexor
+ dn DEC DN-11 autodialer interface
+ dz DZ-11 terminal multiplexor
+ ec 3Com 10Mb/s Ethernet controller
+ en Xerox 3Mb/s Ethernet controller (obsolete)
+ ex Excelan 10Mb/s Ethernet controller
+ fl VAX-11/780 console floppy interface
+ hdh ACC IF-11/HDH IMP interface
+ hk RK6-11/RK06 and RK07 moving head disk
+ hp MASSBUS disk interface (with RP06, RM03, RM05, etc.)
+ ht TM03 MASSBUS tape drive interface (with TE-16, TU-45, TU-77)
+ hy DR-11B or GI-13 interface to an NSC Hyperchannel
+ ik Ikonas frame buffer graphics device interface
+ il Interlan 1010, 1010A 10Mb/s Ethernet controller
+ ix Interlan NP-100 10Mb/s Ethernet controller
+ kg KL-11/DL-11W line clock
+ lp LP-11 parallel line printer interface
+ mt TM78 MASSBUS tape drive interface
+ np Interlan NP-100 10Mb/s Ethernet controller (intelligent mode)
+ pcl DEC PCL-11 communications interface
+ ps Evans and Sutherland Picture System 2 graphics interface
+ qe DEC DEQNA Q-bus 10 Mb/s Ethernet interface
+ rx DEC RX02 floppy interface
+ tm TM-11/TE-10 tape drive interface
+ tmscp TMSCP-compatible tape controllers (e.g., TU81, TK50)
+ ts TS-11 tape drive interface
+ tu VAX-11/730 TU58 console cassette interface
+ uda DEC UDA-50 disk controller
+ un DR-11W interface to Ungermann-Bass
+ up Emulex SC-21V, SC-31 UNIBUS disk controller
+ ut UNIBUS TU-45 tape drive interface
+ uu TU58 dual cassette drive interface (DL11)
+ va Benson-Varian printer/plotter interface
+ vp Versatec printer/plotter interface
+ vv Proteon proNET 10Mb/s and 80Mb/s ring network interface
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The section 4 i\bin\bnt\btr\bro\bo appeared in 4.1BSD.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+IX(4) BSD Programmer's Manual (VAX Architecture) IX(4)
+
+N\bNA\bAM\bME\bE
+ i\bix\bx - Interlan Np100 10 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be n\bnp\bp0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b66\b60\b00\b00\b0 v\bve\bec\bct\bto\bor\br n\bnp\bpi\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The i\bix\bx interface provides access to a 10 Mb/s Ethernet network through an
+ Interlan Np100 controller used as a link-layer interface.
+
+ This interface is unusual in that it requires loading firmware into the
+ controller before it may be used as a network interface. This is accom-
+ plished by opening a character special device, and writing data to it. A
+ program to load the image is provided in _\b/_\bu_\bs_\br_\b/_\bs_\br_\bc_\b/_\bn_\be_\bw_\b/_\bn_\bp_\b1_\b0_\b0. The sequence
+ of commands would be:
+
+ # ./npload np.image [/dev/np<board #> if other than np00]
+ # sleep 10
+ # ifconfig ix0 ...
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl(2). The i\bix\bx interface employs the address resolution
+ protocol described in arp(4) to dynamically map between Internet and Eth-
+ ernet addresses on the local network.
+
+ The interface normally tries to use a ``trailer'' encapsulation to mini-
+ mize copying data on input and output. The use of trailers is negotiated
+ with ARP. This negotiation may be disabled, on a per-interface basis, by
+ setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ i\bix\bx%\b%d\bd:\b: R\bRe\beq\bq f\bfa\bai\bil\ble\bed\bd,\b, c\bcm\bmd\bd %\b%x\bx,\b, s\bst\bta\bat\bt %\b%x\bx,\b, u\bus\bst\bt e\ber\brr\bro\bor\br %\b%x\bx,\b,%\b%x\bx.\b. The firmware in the
+ controller refused to honor a request from UNIX in initializing packet
+ level communications. The board may need to be reset and reloaded. Or,
+ you may not have allowed enough time between loading the board and issu-
+ ing the request to begin unix network operation.
+
+ i\bix\bx%\b%d\bd:\b: c\bca\ban\bn'\b't\bt i\bin\bni\bit\bti\bia\bal\bli\biz\bze\be.\b. The interface was unable to obtain unibus re-
+ sources required for operation.
+
+ i\bix\bx%\b%d\bd:\b: f\bfa\bai\bil\ble\bed\bd t\bto\bo r\bre\bei\bin\bni\bit\bti\bia\bal\bli\biz\bze\be D\bDL\bLA\bA m\bmo\bod\bdu\bul\ble\be.\b. The interface got sick after
+ attempting to reprogram its physical ethernet address. Try reloading the
+ firmware. The attempt is made only when this interfaces is not the first
+ one configured for XNS.
+
+ i\bix\bx%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+ i\bix\bx%\b%d\bd:\b: s\bst\btr\bra\bay\by x\bxm\bmi\bit\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt,\b, n\bnp\bpr\bre\beq\bq=\b=%\b%x\bx.\b. This may happen if the board is
+ reloaded while network processes are still running.
+
+ i\bix\bxr\bri\bin\bnt\bt:\b: c\bcq\bqe\be e\ber\brr\bro\bor\br %\b%x\bx,\b, %\b%x\bx,\b, %\b%x\bx.\b. This will result if an ifconfig(8) request
+ is made at an inopportune time, such as not allowing enough time after
+ loading the firmware. After 100 such errors are logged, the unix network
+ driver will shut itself down, saying:
+
+ i\bix\bxr\bri\bin\bnt\bt:\b: s\bsh\bhu\but\btt\bti\bin\bng\bg d\bdo\bow\bwn\bn u\bun\bni\bix\bx d\bdl\bla\ba.\b. The recourse is to reload the firmware
+ and allow more time.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4), arp(4), np(4).
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The i\bix\bx driver appeared in 4.3BSD.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+KG(4) BSD Programmer's Manual (VAX Architecture) KG(4)
+
+N\bNA\bAM\bME\bE
+ k\bkg\bg - KL-11/ DL-11W line clock
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be k\bkg\bg0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b76\b65\b50\b00\b0 v\bve\bec\bct\bto\bor\br k\bkg\bgl\blo\boc\bck\bk
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A KL-11 or DL-11W can be used as an alternate real time clock source.
+ When configured, certain system statistics and, optionally, system pro-
+ filing work will be collected each time the clock interrupts. For opti-
+ mum accuracy in profiling, the DL-11W should be configured to interrupt
+ at the highest possible priority level. The k\bkg\bg device driver automati-
+ cally calibrates itself to the line clock frequency.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ kgmon(8), config(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The k\bkg\bg driver appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+MEM(4) BSD Programmer's Manual (VAX Architecture) MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm, k\bkU\bUm\bme\bem\bm - memory files
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The special file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the
+ computer. Byte offsets in this file are interpreted as physical memory
+ addresses. Reading and writing this file is equivalent to reading and
+ writing memory itself. Only offsets within the bounds of /\b/d\bde\bev\bv/\b/m\bme\bem\bm are
+ allowed.
+
+ Kernel virtual memory is accessed through the interface /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the
+ same manner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently
+ mapped to memory are allowed.
+
+ The file /\b/d\bde\bev\bv/\b/k\bkU\bUm\bme\bem\bm also refers to kernel virtual memory, but may be used
+ to access areas mapped to UNIBUS address space and other I/O areas. It
+ forces all accesses to use word (short integer) accesses.
+
+ On the VAX 11/780, the I/O space base address is 20000000(16); on an
+ 11/750 the I/O space addresses are of the form fxxxxx(16). On all VAX'en
+ the per-process data size for the current process is UPAGES long and ends
+ at the virtual address 80000000(16).
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+ /dev/kUmem
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The m\bme\bem\bm, k\bkm\bme\bem\bm files appeared in Version 6 AT&T UNIX. The file k\bkU\bUm\bme\bem\bm ap-
+ peared in 3.0BSD.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+LP(4) BSD Programmer's Manual (VAX Architecture) LP(4)
+
+N\bNA\bAM\bME\bE
+ l\blp\bp - line printer
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be l\blp\bp0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b77\b75\b51\b14\b4 v\bve\bec\bct\bto\bor\br l\blp\bpi\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The l\blp\bp device supports DEC and DEC compatible printers on the LP-11 par-
+ allel interface.
+
+ The unit number of the printer is specified by the minor device after re-
+ moving the low 3 bits, which act as per-device parameters. Currently on-
+ ly the lowest of the low three bits is interpreted: if it is set, the de-
+ vice is assumed to have a 64-character set or half-ASCII mode, rather
+ than a full 96-character set.
+
+ If the 64-character set is assumed, any lower case characters are mapped
+ to upper case; left curly and right curly braces are mapped to left and
+ right parentheses over laid with a hyphen; grave accents are mapped to
+ acute accents with overlaid with a hyphen; the pipe bar character is
+ mapped to an exclamation sign overlaid with a hyphen; and the tilde char-
+ acter is mapped to a carat overlaid with a hyphen.
+
+ The default page width is 132 columns; longer lines are truncated. This
+ may be overridden by specifying, for example, `flags 256'.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/lp
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ lpr(1)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A l\blp\bp driver appeared in Version 6 AT&T UNIX.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+MEM(4) BSD Programmer's Manual (VAX Architecture) MEM(4)
+
+N\bNA\bAM\bME\bE
+ m\bme\bem\bm, k\bkm\bme\bem\bm, k\bkU\bUm\bme\bem\bm - memory files
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The special file /\b/d\bde\bev\bv/\b/m\bme\bem\bm is an interface to the physical memory of the
+ computer. Byte offsets in this file are interpreted as physical memory
+ addresses. Reading and writing this file is equivalent to reading and
+ writing memory itself. Only offsets within the bounds of /\b/d\bde\bev\bv/\b/m\bme\bem\bm are
+ allowed.
+
+ Kernel virtual memory is accessed through the interface /\b/d\bde\bev\bv/\b/k\bkm\bme\bem\bm in the
+ same manner as /\b/d\bde\bev\bv/\b/m\bme\bem\bm. Only kernel virtual addresses that are currently
+ mapped to memory are allowed.
+
+ The file /\b/d\bde\bev\bv/\b/k\bkU\bUm\bme\bem\bm also refers to kernel virtual memory, but may be used
+ to access areas mapped to UNIBUS address space and other I/O areas. It
+ forces all accesses to use word (short integer) accesses.
+
+ On the VAX 11/780, the I/O space base address is 20000000(16); on an
+ 11/750 the I/O space addresses are of the form fxxxxx(16). On all VAX'en
+ the per-process data size for the current process is UPAGES long and ends
+ at the virtual address 80000000(16).
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mem
+ /dev/kmem
+ /dev/kUmem
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The m\bme\bem\bm, k\bkm\bme\bem\bm files appeared in Version 6 AT&T UNIX. The file k\bkU\bUm\bme\bem\bm ap-
+ peared in 3.0BSD.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+MT(4) BSD Programmer's Manual (VAX Architecture) MT(4)
+
+N\bNA\bAM\bME\bE
+ m\bmt\bt - TM78/ TU-78 MASSBUS magtape interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ m\bma\bas\bst\bte\ber\br m\bmt\bt0\b0 a\bat\bt m\bmb\bba\ba?\b? d\bdr\bri\biv\bve\be ?\b? t\bta\bap\bpe\be m\bmu\bu0\b0 a\bat\bt m\bmt\bt0\b0 s\bsl\bla\bav\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The TM78/ TU-78 combination provides a standard tape drive interface as
+ described in mtio(4). Only 1600 and 6250 BPI are supported; the TU-78
+ runs at 125 IPS and autoloads tapes.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ m\bmu\bu%\b%d\bd:\b: n\bno\bo w\bwr\bri\bit\bte\be r\bri\bin\bng\bg.\b. An attempt was made to write on the tape drive when
+ no write ring was present; this message is written on the terminal of the
+ user who tried to access the tape.
+
+ m\bmu\bu%\b%d\bd:\b: n\bno\bot\bt o\bon\bnl\bli\bin\bne\be.\b. An attempt was made to access the tape while it was
+ offline; this message is written on the terminal of the user who tried to
+ access the tape.
+
+ m\bmu\bu%\b%d\bd:\b: c\bca\ban\bn'\b't\bt c\bch\bha\ban\bng\bge\be d\bde\ben\bns\bsi\bit\bty\by i\bin\bn m\bmi\bid\bd-\b-t\bta\bap\bpe\be.\b. An attempt was made to write on
+ a tape at a different density than is already recorded on the tape. This
+ message is written on the terminal of the user who tried to switch the
+ density.
+
+ m\bmu\bu%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br b\bbn\bn%\b%d\bd m\bmb\bbs\bsr\br=\b=%\b%b\bb e\ber\br=\b=%\b%x\bx d\bds\bs=\b=%\b%b\bb.\b. A tape error occurred at
+ block _\bb_\bn; the mt error register and drive status register are printed in
+ octal with the bits symbolically decoded. Any error is fatal on non-raw
+ tape; when possible the driver will have retried the operation which
+ failed several times before reporting the error.
+
+ m\bmu\bu%\b%d\bd:\b: b\bbl\bla\ban\bnk\bk t\bta\bap\bpe\be.\b. An attempt was made to read a blank tape (a tape with-
+ out even end-of-file marks).
+
+ m\bmu\bu%\b%d\bd:\b: o\bof\bff\bfl\bli\bin\bne\be.\b. During an i/o operation the device was set offline. If a
+ non-raw tape was used in the access it is closed.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), tar(1), tp(1), mtio(4), tm(4), ts(4), ut(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The m\bmt\bt driver appeared in 4.1BSD.
+
+B\bBU\bUG\bGS\bS
+ If a physical error (non-data) occurs, m\bmt\bt may hang ungracefully.
+
+ Because 800 BPI tapes are not supported, the numbering of minor devices
+ is inconsistent with triple-density tape units. Unit 0 is drive 0, 1600
+ BPI.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+MTIO(4) BSD Programmer's Manual (VAX Architecture) MTIO(4)
+
+N\bNA\bAM\bME\bE
+ m\bmt\bti\bio\bo - UNIX magtape interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The special files named _\b/_\bd_\be_\bv_\b/_\bm_\bt_\b0 and _\b/_\bd_\be_\bv_\b/_\br_\bm_\bt_\b0 through _\b/_\bd_\be_\bv_\b/_\bm_\bt_\b2_\b3 and
+ _\b/_\bd_\be_\bv_\b/_\br_\bm_\bt_\b2_\b3 refer to UNIX magtape drives, which may be on the MASSBUS us-
+ ing the TM03 formatter ht(4), or TM78 formatter, mt(4), or on the
+ UNIBUS using either the TM11 or TS11 formatters tm(4), TU45 compatible
+ formatters, ut(4), or ts(4). These devices are typical tape block de-
+ vices, see physio(4).
+
+ The following table of the converntional device names is applicable to
+ any of the transport/controller pairs. (But note that only 1600 BPI is
+ available with the TS11.)
+
+ 800 BPI 1600 BPI 6500 BPI
+ _\bo_\br _\bl_\bo_\bw_\be_\bs_\bt _\bd_\be_\bn_\bs_\bi_\bt_\by _\bo_\br _\bs_\be_\bc_\bo_\bn_\bd _\bd_\be_\bn_\bs_\bi_\bt_\by _\bo_\br _\bt_\bh_\bi_\br_\bd _\bd_\be_\bn_\bs_\bi_\bt_\by
+
+ Rewind mt0/rmt0 mt8/rmt8 mt16/rmt16
+ Rewind mt1/rmt1 mt9/rmt9 mt17/rmt17
+ Rewind mt2/rmt2 mt10/rmt10 mt18/rmt18
+ Rewind mt3/rmt3 mt11/rmt11 mt19/rmt19
+ No-rewind nmt4/nrmt4 nmt12/nrmt12 nmt20/nrmt20
+ No-rewind nmt5/nrmt5 nmt13/nrmt13 nmt21/nrmt21
+ No-rewind nmt6/nrmt6 nmt14/nrmt14 nmt22/nrmt22
+ No-rewind nmt7/nrmt7 nmt15/nrmt15 nmt23/nrmt32
+
+ The rewind devices automatically rewind when the last requested read,
+ write or seek has finished, or the end of the tape has been reached. The
+ letter `n' is usually prepended to the name of the no-rewind devices.
+
+ Unix tapes are written in multiples of 1024 byte block records. Two end-
+ of-file markers mark the end of a tape, and one end-of-file marker marks
+ the end of a tape file. If the tape is not to be rewound it is posi-
+ tioned with the head in between the two tape marks, where the next write
+ will over write the second end-of-file marker.
+
+ All of the magtape devices may be manipulated with the mt(1) command.
+
+ A number of ioctl(2) operations are available on raw magnetic tape. The
+ following definitions are from <_\bs_\by_\bs_\b/_\bm_\bt_\bi_\bo_\b._\bh>:
+
+ /*
+ * Structures and definitions for mag tape io control commands
+ */
+
+ /* structure for MTIOCTOP - mag tape op command */
+ struct mtop {
+ short mt_op; /* operations defined below */
+ daddr_t mt_count; /* how many of them */
+ };
+
+ /* operations */
+ #define MTWEOF 0 /* write an end-of-file record */
+ #define MTFSF 1 /* forward space file */
+ #define MTBSF 2 /* backward space file */
+ #define MTFSR 3 /* forward space record */
+ #define MTBSR 4 /* backward space record */
+ #define MTREW 5 /* rewind */
+ #define MTOFFL 6 /* rewind and put the drive offline */
+ #define MTNOP 7 /* no operation, sets status only */
+ #define MTCACHE 8 /* enable controller cache */
+ #define MTNOCACHE 9 /* disable controller cache */
+
+ /* structure for MTIOCGET - mag tape get status command */
+
+ struct mtget {
+ short mt_type; /* type of magtape device */
+ /* the following two registers are grossly device dependent */
+ short mt_dsreg; /* ``drive status'' register */
+ short mt_erreg; /* ``error'' register */
+ /* end device-dependent registers */
+ short mt_resid; /* residual count */
+ /* the following two are not yet implemented */
+ daddr_t mt_fileno; /* file number of current position */
+ daddr_t mt_blkno; /* block number of current position */
+ /* end not yet implemented */
+ };
+
+ /*
+ * Constants for mt_type byte. These are the same
+ * for controllers compatible with the types listed.
+ */
+ #define MT_ISTS 0x01 /* TS-11 */
+ #define MT_ISHT 0x02 /* TM03 Massbus: TE16, TU45, TU77 */
+ #define MT_ISTM 0x03 /* TM11/TE10 Unibus */
+ #define MT_ISMT 0x04 /* TM78/TU78 Massbus */
+ #define MT_ISUT 0x05 /* SI TU-45 emulation on Unibus */
+ #define MT_ISCPC 0x06 /* SUN */
+ #define MT_ISAR 0x07 /* SUN */
+ #define MT_ISTMSCP 0x08 /* DEC TMSCP protocol (TU81, TK50) */
+ #define MT_ISCY 0x09 /* CCI Cipher */
+ #define MT_ISCT 0x0a /* HP 1/4 tape */
+ #define MT_ISFHP 0x0b /* HP 7980 1/2 tape */
+ #define MT_ISEXABYTE 0x0c /* Exabyte */
+ #define MT_ISEXA8200 0x0c /* Exabyte EXB-8200 */
+ #define MT_ISEXA8500 0x0d /* Exabyte EXB-8500 */
+ #define MT_ISVIPER1 0x0e /* Archive Viper-150 */
+ #define MT_ISPYTHON 0x0f /* Archive Python (DAT) */
+ #define MT_ISHPDAT 0x10 /* HP 35450A DAT drive */
+
+ /* mag tape io control commands */
+ #define MTIOCTOP _IOW('m', 1, struct mtop) /* do a mag tape op */
+ #define MTIOCGET _IOR('m', 2, struct mtget) /* get tape status */
+ #define MTIOCIEOT _IO('m', 3) /* ignore EOT error */
+ #define MTIOCEEOT _IO('m', 4) /* enable EOT error */
+
+ #ifndef KERNEL
+ #define DEFTAPE "/dev/rmt12"
+ #endif
+
+ #ifdef KERNEL
+ /*
+ * minor device number
+ */
+
+ #define T_UNIT 003 /* unit selection */
+ #define T_NOREWIND 004 /* no rewind on close */
+ #define T_DENSEL 030 /* density select */
+ #define T_800BPI 000 /* select 800 bpi */
+ #define T_1600BPI 010 /* select 1600 bpi */
+ #define T_6250BPI 020 /* select 6250 bpi */
+ #define T_BADBPI 030 /* undefined selection */
+ #endif
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/mt?
+ /dev/rmt?
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), tar(1), tp(1), ht(4), tm(4), ts(4), mt(4), ut(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The m\bmt\bti\bio\bo manual appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ The status should be returned in a device independent format.
+
+ The special file naming should be redone in a more consistent and under-
+ standable manner.
+
+4.2 Berkeley Distribution June 5, 1993 3
--- /dev/null
+NP(4) BSD Programmer's Manual (VAX Architecture) NP(4)
+
+N\bNA\bAM\bME\bE
+ n\bnp\bp - Interlan Np100 10 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be n\bnp\bp0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 1\b16\b66\b60\b00\b00\b0 v\bve\bec\bct\bto\bor\br n\bnp\bpi\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The n\bnp\bp device provides access to an Interlan Np100 Ethernet interface for
+ control functions.
+
+ This interface is unusual in that it requires loading firmware into the
+ controller before it may be used as a network link-level interface. This
+ is accomplished by opening a character special device, and writing data
+ to it. It is also possible to do post-mortem debugging of firmware fail-
+ ures by reading the local memory of the device.
+
+ Multiple control processes are allowed by opening separate minor devices;
+ secondary interfaces are specified by shifting the interface number by 4
+ bits.
+
+ The device also responds to commands passed through the driver by the
+ following ioctl(2)s:
+
+ NPRESET kills off all active network processes.
+
+ NPSTART begins execution of the board at the specified address (usual-
+ ly 0x400).
+
+ NPNETBOOT downloads the image from a server on the network. [Contact
+ MICOM-INTERLAN for details.]
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ n\bnp\bp%\b%d\bd:\b: B\bBa\bad\bd M\bMa\bai\bin\bnt\bte\ben\bna\ban\bnc\bce\be c\bco\bom\bmm\bma\ban\bnd\bd:\b: %\b%x\bx!\b! An invalid ioctl was passed to the np
+ driver.
+
+ n\bnp\bp%\b%d\bd:\b: P\bPa\ban\bni\bic\bc N\bNP\bP1\b10\b00\b0 b\bba\bad\bd b\bbu\buf\bff\bfe\ber\br c\bch\bha\bai\bin\bn.\b. An error occurred in an read or
+ write operation causing it to run out of buffers before it finished the
+ operation. This indicates a kernel failure rather than a device failure.
+
+ N\bNP\bP1\b10\b00\b0 u\bun\bni\bit\bt %\b%d\bd n\bno\bot\bt f\bfo\bou\bun\bnd\bd!\b! A failure occurred during initialization, such
+ that the unibus address expected for the board was found to be bad.
+ Probably indicates hardware problems with the board, as do the following:
+
+ N\bNP\bP1\b10\b00\b0 U\bUn\bni\bit\bt %\b%d\bd t\bti\bim\bme\bed\bd o\bou\but\bt!\b!
+ N\bNP\bP1\b10\b00\b0 U\bUn\bni\bit\bt %\b%d\bd F\bFa\bai\bil\ble\bed\bd d\bdi\bia\bag\bgn\bno\bos\bst\bti\bic\bcs\bs!\b!
+ S\bSt\bta\bat\btu\bus\bs f\bfr\bro\bom\bm C\bCS\bSR\bR0\b0:\b: %\b%x\bx.\b.
+
+ P\bPa\ban\bni\bic\bc f\bfr\bro\bom\bm N\bNP\bP1\b10\b00\b0 u\bun\bni\bit\bt %\b%d\bd!\b!
+ P\bPa\ban\bni\bic\bc M\bMe\bes\bss\bsa\bag\bge\be:\b: %\b%s\bs.\b. An occurrence on the board was deemed serious enough
+ to have the vax print it out.
+
+ N\bNP\bP1\b10\b00\b0 u\bun\bni\bit\bt #\b#%\b%d\bd a\bav\bva\bai\bil\bla\bab\bbl\ble\be!\b! The board was successfully loaded and started.
+
+ n\bnp\bp%\b%d\bd:\b: B\bBa\bad\bd R\bRe\beq\bq:\b: %\b%x\bx.\b. The board made a maintenance request to the vax that
+ it did not understand.
+
+ n\bnp\bp%\b%d\bd:\b: N\bNo\bo m\bmo\bor\bre\be r\bro\boo\bom\bm o\bon\bn C\bCo\bom\bmm\bma\ban\bnd\bd Q\bQu\bue\beu\bue\be!\b! The np driver allowed an internal
+ resource to be exhausted. This should never happen.
+
+ There are 110 other diagnostic messages that can be enabled by setting
+ bits in a debugging mask. Consult the driver for details.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4), arp(4), ix(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The n\bnp\bp driver appeared in 4.3BSD.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+PCL(4) BSD Programmer's Manual (VAX Architecture) PCL(4)
+
+N\bNA\bAM\bME\bE
+ p\bpc\bcl\bl - DEC CSS PCL-11 B Network Interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be p\bpc\bcl\bl0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 1\b16\b64\b42\b20\b00\b0 v\bve\bec\bct\bto\bor\br p\bpc\bcl\blx\bxi\bin\bnt\bt p\bpc\bcl\blr\bri\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The p\bpc\bcl\bl device provides an IP-only interface to the DEC CSS PCL-11 time
+ division multiplexed network bus. The controller itself is not accessi-
+ ble to users.
+
+ The hosts's address is specified with the SIOCSIFADDR ioctl(2). The in-
+ terface will not transmit or receive any data before its address is de-
+ fined.
+
+ As the PCL-11 hardware is only capable of having 15 interfaces per net-
+ work, a single-byte host-on-network number is used, with range [1..15] to
+ match the TDM bus addresses of the interfaces.
+
+ The interface currently only supports the Internet protocol family and
+ only provides ``natural'' (header) encapsulation.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ p\bpc\bcl\bl%\b%d\bd:\b: c\bca\ban\bn'\b't\bt i\bin\bni\bit\bt.\b. Insufficient UNIBUS resources existed to initialize
+ the device. This is likely to occur when the device is run on a buffered
+ data path on an 11/750 and other network interfaces are also configured
+ to use buffered data paths, or when it is configured to use buffered data
+ paths on an 11/730 (which has none).
+
+ p\bpc\bcl\bl%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+ p\bpc\bcl\bl%\b%d\bd:\b: s\bst\btr\bra\bay\by x\bxm\bmi\bit\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. An interrupt occurred when no output had
+ previously been started.
+
+ p\bpc\bcl\bl%\b%d\bd:\b: m\bma\bas\bst\bte\ber\br.\b. The TDM bus had no station providing ``bus master'' tim-
+ ing signals, so this interface has assumed the ``master'' role. This
+ message should only appear at most once per UNIBUS INIT on a single sys-
+ tem. Unless there is a hardware failure, only one station may be master
+ at at time.
+
+ p\bpc\bcl\bl%\b%d\bd:\b: s\bse\ben\bnd\bd e\ber\brr\bro\bor\br,\b, t\btc\bcr\br=\b=%\b%b\bb,\b, t\bts\bsr\br=\b=%\b%b\bb.\b. The device indicated a problem send-
+ ing data on output. If a ``receiver offline'' error is detected, it is
+ not normally logged unless the option PCL_TESTING has been selected, as
+ this causes a lot of console chatter when sending to a down machine.
+ However, this option is quite useful when debugging problems with the PCL
+ interfaces.
+
+ p\bpc\bcl\bl%\b%d\bd:\b: r\brc\bcv\bv e\ber\brr\bro\bor\br,\b, r\brc\bcr\br=\b=%\b%b\bb r\brs\bsr\br=\b=%\b%b\bb.\b. The device indicated a problem receiv-
+ ing data on input.
+
+ p\bpc\bcl\bl%\b%d\bd:\b: b\bba\bad\bd l\ble\ben\bn=\b=%\b%d\bd.\b. An input operation resulted in a data transfer of
+ less than 0 or more than 1008 bytes of data into memory (according to the
+ word count register). This should never happen as the maximum size of a
+ PCL message has been agreed upon to be 1008 bytes (same as ArpaNet mes-
+ sage).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ intro(4), inet(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The p\bpc\bcl\bl interface appeared in 4.2BSD.
+
--- /dev/null
+PS(4) BSD Programmer's Manual (VAX Architecture) PS(4)
+
+N\bNA\bAM\bME\bE
+ p\bps\bs - Evans and Sutherland Picture System 2 graphics device interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be p\bps\bs0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b17\b72\b24\b46\b60\b0 v\bve\bec\bct\bto\bor\br p\bps\bsc\bcl\blo\boc\bck\bki\bin\bnt\btr\br p\bps\bss\bsy\bys\bst\bte\bem\bmi\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The p\bps\bs driver provides access to an Evans and Sutherland Picture System 2
+ graphics device. Each minor device is a new PS2. When the device is
+ opened, its interface registers are mapped, via virtual memory, into a
+ user process's address space. This allows the user process very high
+ bandwidth to the device with no system call overhead.
+
+ DMA to and from the PS2 is not supported. All read and write system calls
+ will fail. All data is moved to and from the PS2 via programmed I/O us-
+ ing the device's interface registers.
+
+ Commands are fed to and from the driver using the following ioctl(2)s:
+
+ PSIOGETADDR Returns the virtual address through which the user
+ process can access the device's interface registers.
+
+ PSIOAUTOREFRESH Start auto refreshing the screen. The argument is an
+ address in user space where the following data re-
+ sides. The first longword is a _\bc_\bo_\bu_\bn_\bt of the number of
+ static refresh buffers. The next _\bc_\bo_\bu_\bn_\bt longwords are
+ the addresses in refresh memory where the refresh
+ buffers lie. The driver will cycle through these re-
+ fresh buffers displaying them one by one on the
+ screen.
+
+ PSIOAUTOMAP Start automatically passing the display file through
+ the matrix processor and into the refresh buffer. The
+ argument is an address in user memory where the fol-
+ lowing data resides. The first longword is a _\bc_\bo_\bu_\bn_\bt of
+ the number of display files to operate on. The next
+ _\bc_\bo_\bu_\bn_\bt longwords are the address of these display
+ files. The final longword is the address in refresh
+ buffer memory where transformed coordinates are to be
+ placed if the driver is not in double buffer mode (see
+ below).
+
+ PSIODOUBLEBUFFER Cause the driver to double buffer the output from the
+ map that is going to the refresh buffer. The argument
+ is again a user space address where the real arguments
+ are stored. The first argument is the starting ad-
+ dress of refresh memory where the two double buffers
+ are located. The second argument is the length of
+ each double buffer. The refresh mechanism displays
+ the current double buffer, in addition to its static
+ refresh lists, when in double buffer mode.
+
+ PSIOSINGLEREFRESH Single step the refresh process. That is, the driver
+ does not continually refresh the screen.
+
+ PSIOSINGLEMAP Single step the matrix process. The driver does not
+ automatically feed display files through the matrix
+ unit.
+
+ PSIOSINGLEBUFFER Turn off double buffering.
+
+ PSIOTIMEREFRESH The argument is a count of the number of refresh in-
+ terrupts to take before turning off the screen. This
+
+ is used to do time exposures.
+
+ PSIOWAITREFRESH Suspend the user process until a refresh interrupt has
+ occurred. If in TIMEREFRESH mode, suspend until count
+ refreshes have occurred.
+
+ PSIOSTOPREFRESH Wait for the next refresh, stop all refreshes, and
+ then return to user process.
+
+ PSIOWAITMAP Wait until a map done interrupt has occurred.
+
+ PSIOSTOPMAP Wait for a map done interrupt, do not restart the map,
+ and then return to the user.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/ps
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ p\bps\bs d\bde\bev\bvi\bic\bce\be i\bin\bnt\btr\br.\b.
+ p\bps\bs d\bdm\bma\ba i\bin\bnt\btr\br.\b. An interrupt was received from the device. This shouldn't
+ happen, check your device configuration for overlapping interrupt vec-
+ tors.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The p\bps\bs driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ An invalid access (e.g., longword) to a mapped interface register can
+ cause the system to crash with a machine check. A user process could
+ possibly cause infinite interrupts hence bringing things to a crawl.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+QE(4) BSD Programmer's Manual (VAX Architecture) QE(4)
+
+N\bNA\bAM\bME\bE
+ q\bqe\be - DEC DEQNA Q-bus 10 Mb/s Ethernet interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be q\bqe\be0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 1\b17\b74\b44\b44\b40\b0 v\bve\bec\bct\bto\bor\br q\bqe\bei\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The q\bqe\be interface provides access to a 10 Mb/s Ethernet network through
+ the DEC DEQNA Q-bus controller.
+
+ Each of the host's network addresses is specified at boot time with an
+ SIOCSIFADDR ioctl(2). The q\bqe\be interface employs the address resolution
+ protocol described in arp(4) to map dynamically between Internet and
+ Ethernet addresses on the local network.
+
+ The interface normally tries to use a ``trailer'' encapsulation to mini-
+ mize copying data on input and output. The use of trailers is negotiated
+ with ARP. This negotiation may be disabled, on a per-interface basis, by
+ setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4), arp(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The q\bqe\be driver appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 1
--- /dev/null
+RX(4) BSD Programmer's Manual (VAX Architecture) RX(4)
+
+N\bNA\bAM\bME\bE
+ r\brx\bx - DEC RX02 floppy disk interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br f\bfx\bx0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b77\b71\b17\b70\b0 v\bve\bec\bct\bto\bor\br r\brx\bxi\bin\bnt\btr\br
+ d\bdi\bis\bsk\bk r\brx\bx0\b0 a\bat\bt f\bfx\bx0\b0 d\bdr\bri\biv\bve\be 0\b0
+ d\bdi\bis\bsk\bk r\brx\bx1\b1 a\bat\bt f\bfx\bx0\b0 d\bdr\bri\biv\bve\be 1\b1
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The r\brx\bx device provides access to a DEC RX02 floppy disk unit with M8256
+ interface module (RX211 configuration). The RX02 uses 8-inch, single-
+ sided, soft-sectored floppy disks (with pre-formatted industry-standard
+ headers) in either single or double density.
+
+ Floppy disks handled by the RX02 contain 77 tracks, each with 26 sectors
+ (for a total of 2,002 sectors). The sector size is 128 bytes for single
+ density, 256 bytes for double density. Single density disks are compati-
+ ble with the RX01 floppy disk unit and with IBM 3740 Series Diskette 1
+ systems.
+
+ In addition to normal (`block' and `raw') I/O, the driver supports for-
+ matting of disks for either density and the ability to invoke a 2 for 1
+ interleaved sector mapping compatible with the DEC operating system
+ RT-11.
+
+ The minor device number is interpreted as follows:
+
+ B\bBi\bit\bt D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn
+ 0 Sector interleaving (1 disables interleaving)
+ 1 Logical sector 1 is on track 1 (0 no, 1 yes)
+ 2 Not used, reserved
+ Other Drive number
+
+ The two drives in a single RX02 unit are treated as two disks attached to
+ a single controller. Thus, if there are two RX02's on a system, the
+ drives on the first RX02 are ``rx0'' and ``rx1'', while the drives on the
+ second are ``rx2'' and ``rx3''.
+
+ When the device is opened, the density of the disk currently in the drive
+ is automatically determined. If there is no floppy in the device, open
+ will fail.
+
+ The interleaving parameters are represented in raw device names by the
+ letters `a' through `d'. Thus, unit 0, drive 0 is called by one of the
+ following names:
+
+ M\bMa\bap\bpp\bpi\bin\bng\bg D\bDe\bev\bvi\bic\bce\be n\bna\bam\bme\be S\bSt\bta\bar\brt\bti\bin\bng\bg t\btr\bra\bac\bck\bk
+ interleaved /dev/rrx0a 0
+ direct /dev/rrx0b 0
+ interleaved /dev/rrx0c 1
+ direct /dev/rrx0d 1
+
+ The mapping used on the `c' device is compatible with the DEC operating
+ system RT-11. The `b' device accesses the sectors of the disk in strictly
+ sequential order. The `a' device is the most efficient for disk-to-disk
+ copying. This mapping is always used by the block device.
+
+ I/O requests must start on a sector boundary, involve an integral number
+ of complete sectors, and not go off the end of the disk.
+
+N\bNO\bOT\bTE\bES\bS
+ Even though the storage capacity on a floppy disk is quite small, it is
+ possible to make filesystems on double density disks. For example, the
+ command
+
+ % mkfs /dev/rx0 1001 13 1 4096 512 32 0 4
+
+ makes a file system on the double density disk in rx0 with 436 kbytes
+ available for file storage. Using tar(1) gives a more efficient utiliza-
+ tion of the available space for file storage. Single density diskettes
+ do not provide sufficient storage capacity to hold file systems.
+
+ A number of ioctl(2) calls apply to the rx devices, and have the form
+
+ #include <vaxuba/rxreg.h>
+ ioctl(fildes, code, arg)
+ int *arg;
+
+ The applicable codes are:
+
+ RXIOC_FORMAT Format the diskette. The density to use is specified by
+ the _\ba_\br_\bg argument, zero gives single density while non-zero
+ gives double density.
+
+ RXIOC_GETDENS Return the density of the diskette (zero or non-zero as
+ above).
+
+ RXIOC_WDDMK On the next write, include a _\bd_\be_\bl_\be_\bt_\be_\bd _\bd_\ba_\bt_\ba _\ba_\bd_\bd_\br_\be_\bs_\bs _\bm_\ba_\br_\bk in
+ the header of the first sector.
+
+ RXIOC_RDDMK Return non-zero if the last sector read contained a
+ _\bd_\be_\bl_\be_\bt_\be_\bd _\bd_\ba_\bt_\ba _\ba_\bd_\bd_\br_\be_\bs_\bs _\bm_\ba_\br_\bk in its header, otherwise return
+ 0.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/rx?
+ /dev/rrx?[a-d]
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ r\brx\bx%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br,\b, t\btr\brk\bk %\b%d\bd p\bps\bse\bec\bc %\b%d\bd c\bcs\bs=\b=%\b%b\bb,\b, d\bdb\bb=\b=%\b%b\bb,\b, e\ber\brr\br=\b=%\b%x\bx,\b, %\b%x\bx,\b, %\b%x\bx,\b, %\b%x\bx.\b. An
+ unrecoverable error was encountered. The track and physical sector num-
+ bers, the device registers and the extended error status are displayed.
+
+ r\brx\bx%\b%d\bd:\b: s\bst\bta\bat\bte\be %\b%d\bd (\b(r\bre\bes\bse\bet\bt)\b).\b. The driver entered a bogus state. This should
+ not happen.
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ The following errors may be returned by the driver:
+
+ [ENODEV] Drive not ready; usually because no disk is in the drive or the
+ drive door is open.
+
+ [ENXIO] Nonexistent drive (on open); offset is too large or not on a
+ sector boundary or byte count is not a multiple of the sector
+ size (on read or write); or bad (undefined) ioctl code.
+
+ [EIO] A physical error other than ``not ready'', probably bad media
+ or unknown format.
+
+ [EBUSY] Drive has been opened for exclusive access.
+
+ [EBADF] No write access (on format), or wrong density; the latter can
+ only happen if the disk is changed without _\bc_\bl_\bo_\bs_\bi_\bn_\bg the device
+ (i.e., calling close(2)).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ rxformat(8), newfs(8), mkfs(8), tar(1), arff(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The r\brx\bx driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ A floppy may not be formatted if the header info on sector 1, track 0 has
+ been damaged. Hence, it is not possible to format completely degaussed
+ disks or disks with other formats than the two known by the hardware.
+
+ If the drive subsystem is powered down when the machine is booted, the
+ controller won't interrupt.
+
+4.2 Berkeley Distribution June 5, 1993 3
--- /dev/null
+TB(4) BSD Programmer's Manual (VAX Architecture) TB(4)
+
+N\bNA\bAM\bME\bE
+ t\btb\bb - line discipline for digitizing devices
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ p\bps\bse\beu\bud\bdo\bo-\b-d\bde\bev\bvi\bic\bce\be t\btb\bb
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This line discipline provides a polled interface to many common digitiz-
+ ing devices which are connected to a host through a serial line. When
+ these devices stream data at high speed, the use of the line discipline
+ is critical in minimizing the number of samples that would otherwise be
+ lost due to buffer exhaustion in the tty(4) handler.
+
+ The line discipline is enabled by a sequence:
+
+ #include <sys/tablet.h>
+ int ldisc = TBLDISC, fildes; ...
+ ioctl(fildes, TIOCSETD, &ldisc);
+
+ A typical application program then polls the digitizing device by reading
+ a binary data structure which contains: the current X and Y positions (in
+ the device coordinate space), up-down status of the buttons or pen sty-
+ lus, proximity information (when available), and a count of the number of
+ samples received from the input device since it was opened. In addition,
+ devices such as the GTCO append tilt and pressure information to the end
+ of the aforementioned structure. For the Polhemus 3-D digitizer the
+ structure read is completely different. Refer to the include file for a
+ complete description.
+
+ While in tablet mode, normal teletype input and output functions take
+ place. Thus, if an 8 bit output data path is desired, it is necessary to
+ prepare the output line by putting it into RAW mode using ioctl(2). This
+ must be done _\bb_\be_\bf_\bo_\br_\be changing the discipline with TIOCSETD, as most
+ ioctl(2) calls are disabled while in tablet line-discipline mode.
+
+ The line discipline supports ioctl(2) requests to get/set the operating
+ mode, and to get/set the tablet type and operating mode by _\bo_\br-ing the two
+ values together.
+
+ The line discipline supports digitizing devices which are compatible with
+ Hitachi, GTCO, or Polhemus protocol formats. For Hitachi there are sev-
+ eral formats with that used in the newer model HDG-1111B the most common.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ None.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tty(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The t\btb\bb interface appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 1
--- /dev/null
+TM(4) BSD Programmer's Manual (VAX Architecture) TM(4)
+
+N\bNA\bAM\bME\bE
+ t\btm\bm - TM-11/ TE-10 magtape device interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br t\btm\bm0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b17\b72\b25\b52\b20\b0 v\bve\bec\bct\bto\bor\br t\btm\bmi\bin\bnt\btr\br t\bta\bap\bpe\be t\bte\be0\b0 a\bat\bt t\btm\bm0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The TM-11/ TE-10 combination provides a standard tape drive interface as
+ described in mtio(4). Hardware implementing this on the VAX is typified
+ by the Emulex TC-11 controller operating with a Kennedy model 9300 tape
+ transport, providing 800 and 1600 BPI operation at 125 IPS.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ t\bte\be%\b%d\bd:\b: n\bno\bo w\bwr\bri\bit\bte\be r\bri\bin\bng\bg.\b. An attempt was made to write on the tape drive when
+ no write ring was present; this message is written on the terminal of the
+ user who tried to access the tape.
+
+ t\bte\be%\b%d\bd:\b: n\bno\bot\bt o\bon\bnl\bli\bin\bne\be.\b. An attempt was made to access the tape while it was
+ offline; this message is written on the terminal of the user who tried to
+ access the tape.
+
+ t\bte\be%\b%d\bd:\b: c\bca\ban\bn'\b't\bt c\bch\bha\ban\bng\bge\be d\bde\ben\bns\bsi\bit\bty\by i\bin\bn m\bmi\bid\bd-\b-t\bta\bap\bpe\be.\b. An attempt was made to write on
+ a tape at a different density than is already recorded on the tape. This
+ message is written on the terminal of the user who tried to switch the
+ density.
+
+ t\bte\be%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br b\bbn\bn%\b%d\bd e\ber\br=\b=%\b%b\bb.\b. A tape error occurred at block _\bb_\bn; the tm
+ error register is printed in octal with the bits symbolically decoded.
+ Any error is fatal on non-raw tape; when possible the driver will have
+ retried the operation which failed several times before reporting the er-
+ ror.
+
+ t\bte\be%\b%d\bd:\b: l\blo\bos\bst\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. A tape operation did not complete within a reason-
+ able time, most likely because the tape was taken off-line during rewind
+ or lost vacuum. The controller should, but does not, give an interrupt
+ in these cases. The device will be made available again after this mes-
+ sage, but any current open reference to the device will return an error
+ as the operation in progress aborts.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), tar(1), tp(1), mt(4), mtio(4), ht(4), ts(4), ut(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A t\btm\bm driver appeared in Version 6 AT&T UNIX.
+
+B\bBU\bUG\bGS\bS
+ May hang if a physical (non-data) error occurs.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+TMSCP(4) BSD Programmer's Manual (VAX Architecture) TMSCP(4)
+
+N\bNA\bAM\bME\bE
+ t\btm\bms\bsc\bcp\bp - DEC TMSCP magtape interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br t\btm\bms\bsc\bcp\bp0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b17\b74\b45\b50\b00\b0 v\bve\bec\bct\bto\bor\br t\btm\bms\bsc\bcp\bpi\bin\bnt\btr\br
+ t\bta\bap\bpe\be t\btm\bms\bs0\b0 a\bat\bt t\btm\bms\bsc\bcp\bp0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Tape controllers compatible with the DEC Tape Mass Storage Control Proto-
+ col (TMSCP) architecture such as the TU81 and the TK50 provide a standard
+ tape drive interface as described in mtio(4). The controller communi-
+ cates with the host through a packet oriented protocol. Consult the file
+ <_\bv_\ba_\bx_\b/_\bt_\bm_\bs_\bc_\bp_\b._\bh> for a detailed description of this protocol.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ t\btm\bms\bsc\bcp\bp c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br f\bfa\bai\bil\ble\bed\bd t\bto\bo i\bin\bni\bit\bt.\b. The controller initialization procedure
+ failed. This probably indicates a hardware problem.
+
+ t\btm\bms\bsc\bcp\bp%\b%d\bd:\b: s\bsa\ba 0\b0%\b%o\bo,\b, s\bst\bta\bat\bte\be %\b%d\bd.\b. (Additional status information given after a
+ hard I/O error.) The values of the controller status register and the
+ internal driver state are printed.
+
+ t\btm\bms\bsc\bcp\bp%\b%d\bd:\b: r\bra\ban\bnd\bdo\bom\bm i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt i\big\bgn\bno\bor\bre\bed\bd.\b. An unexpected interrupt was received
+ (e.g. when no I/O was pending). The interrupt is ignored.
+
+ t\btm\bms\bsc\bcp\bp%\b%d\bd:\b: i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt i\bin\bn u\bun\bnk\bkn\bno\bow\bwn\bn s\bst\bta\bat\bte\be %\b%d\bd i\big\bgn\bno\bor\bre\bed\bd.\b. An interrupt was re-
+ ceived when the driver was in an unknown internal state. Indicates a
+ hardware problem or a driver bug.
+
+ t\btm\bms\bsc\bcp\bp%\b%d\bd:\b: f\bfa\bat\bta\bal\bl e\ber\brr\bro\bor\br (\b(0\b0%\b%o\bo)\b).\b. The controller detected a ``fatal error'' in
+ the status returned to the host. The contents of the status register are
+ displayed.
+
+ O\bOF\bFF\bFL\bLI\bIN\bNE\bE.\b. (Additional status information given after a hard I/O error.)
+ A hard I/O error occurred because the drive was not on-line.
+
+ t\btm\bms\bsc\bcp\bp%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br
+ t\btm\bms\bsc\bcp\bp%\b%d\bd:\b: s\bso\bof\bft\bt e\ber\brr\bro\bor\br.\b. These errors precede an interpretation of a TMSCP
+ error message returned by the controller to the host. TMSCP errors may
+ be:
+
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br e\ber\brr\bro\bor\br,\b, e\bev\bve\ben\bnt\bt 0\b0%\b%o\bo.\b.
+ h\bho\bos\bst\bt m\bme\bem\bmo\bor\bry\by a\bac\bcc\bce\bes\bss\bs e\ber\brr\bro\bor\br,\b, e\bev\bve\ben\bnt\bt 0\b0%\b%o\bo,\b, a\bad\bdd\bdr\br 0\b0%\b%o\bo.\b.
+ t\bta\bap\bpe\be t\btr\bra\ban\bns\bsf\bfe\ber\br e\ber\brr\bro\bor\br,\b, u\bun\bni\bit\bt %\b%d\bd,\b, g\bgr\brp\bp 0\b0x\bx%\b%x\bx,\b, e\bev\bve\ben\bnt\bt 0\b0%\b%o\bo.\b.
+ S\bST\bTI\bI e\ber\brr\bro\bor\br,\b, u\bun\bni\bit\bt %\b%d\bd,\b, e\bev\bve\ben\bnt\bt 0\b0%\b%o\bo.\b.
+ S\bST\bTI\bI D\bDr\bri\biv\bve\be E\bEr\brr\bro\bor\br L\bLo\bog\bg,\b, u\bun\bni\bit\bt %\b%d\bd,\b, e\bev\bve\ben\bnt\bt 0\b0%\b%o\bo.\b.
+ S\bST\bTI\bI F\bFo\bor\brm\bma\bat\btt\bte\ber\br E\bEr\brr\bro\bor\br L\bLo\bog\bg,\b, u\bun\bni\bit\bt %\b%d\bd,\b, e\bev\bve\ben\bnt\bt 0\b0%\b%o\bo.\b.
+ u\bun\bnk\bkn\bno\bow\bwn\bn e\ber\brr\bro\bor\br,\b, u\bun\bni\bit\bt %\b%d\bd,\b, f\bfo\bor\brm\bma\bat\bt 0\b0%\b%o\bo,\b, e\bev\bve\ben\bnt\bt 0\b0%\b%o\bo.\b.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), tar(1), tp(1), mtio(4), tm(4), ts(4), ut(4), dmesg(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The t\btm\bms\bsc\bcp\bp driver appeared in 4.3BSD.
+
+4.3 Berkeley Distribution June 5, 1993 1
--- /dev/null
+TS(4) BSD Programmer's Manual (VAX Architecture) TS(4)
+
+N\bNA\bAM\bME\bE
+ t\bts\bs - TS-11 magtape interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br z\bzs\bs0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b17\b72\b25\b52\b20\b0 v\bve\bec\bct\bto\bor\br t\bts\bsi\bin\bnt\btr\br
+ t\bta\bap\bpe\be t\bts\bs0\b0 a\bat\bt z\bzs\bs0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The TS-11 combination provides a standard tape drive interface as de-
+ scribed in mtio(4). The TS-11 operates only at 1600 BPI, and only one
+ transport is possible per controller.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ t\bts\bs%\b%d\bd:\b: n\bno\bo w\bwr\bri\bit\bte\be r\bri\bin\bng\bg.\b. An attempt was made to write on the tape drive when
+ no write ring was present; this message is written on the terminal of the
+ user who tried to access the tape.
+
+ t\bts\bs%\b%d\bd:\b: n\bno\bot\bt o\bon\bnl\bli\bin\bne\be.\b. An attempt was made to access the tape while it was
+ offline; this message is written on the terminal of the user who tried to
+ access the tape.
+
+ t\bts\bs%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br b\bbn\bn%\b%d\bd x\bxs\bs0\b0=\b=%\b%b\bb.\b. A hard error occurred on the tape at block
+ _\bb_\bn; status register 0 is printed in octal and symbolically decoded as
+ bits.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), tar(1), tp(1), mtio(4), ht(4), tm(4), mt(4), ut(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The t\bts\bs driver appeared in 4.1BSD.
+
+B\bBU\bUG\bGS\bS
+ May hang ungracefully if a physical error (non-data) occurs.
+
+ The device lives at the same address as a TM-11 (tm(4)); as it is very
+ difficult to get this device to interrupt, a generic system assumes that
+ a t\bts\bs is present whenever no TM-11 exists but the CSR responds and a TS-11
+ is configured. This does no harm as long as a non-existent TS-11 is not
+ accessed.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+TU(4) BSD Programmer's Manual (VAX Architecture) TU(4)
+
+N\bNA\bAM\bME\bE
+ t\btu\bu - VAX-11/730 and VAX-11/750 TU58 console cassette interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ o\bop\bpt\bti\bio\bon\bns\bs M\bMR\bRS\bSP\bP
+ (for VAX-11/750's with an MRSP prom)
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The t\btu\bu interface provides access to the VAX 11/730 and 11/750 TU58 con-
+ sole cassette drive(s).
+
+ The interface supports only block I/O to the TU58 cassettes. The devices
+ are normally manipulated with the arff(8) program using the ``f'' and
+ ``m'' options.
+
+ The device driver is automatically included when a system is configured
+ to run on an 11/730 or 11/750.
+
+ The TU58 on an 11/750 uses the Radial Serial Protocol (RSP) to communi-
+ cate with the cpu over a serial line. This protocol is inherently unre-
+ liable as it has no flow control measures built in. On an 11/730 the
+ Modified Radial Serial Protocol is used. This protocol incorporates flow
+ control measures which insure reliable data transfer between the cpu and
+ the device. Certain 11/750's have been modified to use the MRSP prom
+ used in the 11/730. To reliably use the console TU58 on an 11/750 under
+ UNIX, the MRSP prom is required. For those 11/750's without an MRSP
+ prom, an unreliable but often useable interface has been developed. This
+ interface uses an assembly language ``pseudo-dma'' routine to minimize
+ the receiver interrupt service latency. To include this code in the sys-
+ tem, the configuration must _\bn_\bo_\bt specify the system will run on an 11/730
+ or use an MRSP prom. This unfortunately makes it impossible to configure
+ a single system which will properly handle TU58's on both an 11/750 and
+ an 11/730 (unless both machines have MRSP proms).
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/tu0
+ /dev/tu1 (only on a VAX-11/730)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ t\btu\bu%\b%d\bd:\b: n\bno\bo b\bbp\bp,\b, a\bac\bct\bti\biv\bve\be %\b%d\bd.\b. A transmission complete interrupt was received
+ with no outstanding I/O request. This indicates a hardware problem.
+
+ t\btu\bu%\b%d\bd p\bpr\bro\bot\bto\boc\bco\bol\bl e\ber\brr\bro\bor\br,\b, s\bst\bta\bat\bte\be=\b=%\b%s\bs,\b, o\bop\bp=\b=%\b%x\bx,\b, c\bcn\bnt\bt=\b=%\b%d\bd,\b, b\bbl\blo\boc\bck\bk=\b=%\b%d\bd.\b. The driver en-
+ tered an illegal state. The information printed indicates the illegal
+ state, operation currently being executed, the I/O count, and the block
+ number on the cassette.
+
+ t\btu\bu%\b%d\bd r\bre\bec\bce\bei\biv\bve\be s\bst\bta\bat\bte\be e\ber\brr\bro\bor\br,\b, s\bst\bta\bat\bte\be=\b=%\b%s\bs,\b, b\bby\byt\bte\be=\b=%\b%x\bx.\b. The driver entered an ille-
+ gal state in the receiver finite state machine. The state is shown along
+ with the control byte of the received packet.
+
+ t\btu\bu%\b%d\bd:\b: r\bre\bea\bad\bd s\bst\bta\bal\bll\ble\bed\bd.\b. A timer watching the controller detected no inter-
+ rupt for an extended period while an operation was outstanding. This
+ usually indicates that one or more receiver interrupts were lost and the
+ transfer is restarted (11/750 only).
+
+ t\btu\bu%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br b\bbn\bn%\b%d\bd,\b, p\bpk\bk_\b_m\bmo\bod\bd %\b%o\bo.\b. The device returned a status code in-
+ dicating a hard error. The actual error code is shown in octal. No re-
+ tries are attempted by the driver.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ arff(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The t\btu\bu driver appeared in 4.1BSD.
+
+B\bBU\bUG\bGS\bS
+ The VAX-11/750 console interface without MRSP prom is unuseable while the
+ system is multi-user; it should be used only with the system running sin-
+ gle-user and, even then, with caution.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+UDA(4) BSD Programmer's Manual (VAX Architecture) UDA(4)
+
+N\bNA\bAM\bME\bE
+ u\bud\bda\ba - UDA50 disk controller interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br u\bud\bda\ba0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b72\b21\b15\b50\b0 v\bve\bec\bct\bto\bor\br u\bud\bda\bai\bin\bnt\btr\br
+ d\bdi\bis\bsk\bk r\bra\ba0\b0 a\bat\bt u\bud\bda\ba0\b0 d\bdr\bri\biv\bve\be 0\b0
+ o\bop\bpt\bti\bio\bon\bns\bs M\bMS\bSC\bCP\bP_\b_P\bPA\bAR\bRA\bAN\bNO\bOI\bIA\bA
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a driver for the DEC UDA50 disk controller and other compatible
+ controllers. The UDA50 communicates with the host through a packet pro-
+ tocol known as the Mass Storage Control Protocol (MSCP). Consult the file
+ <_\bv_\ba_\bx_\b/_\bm_\bs_\bc_\bp_\b._\bh> for a detailed description of this protocol.
+
+ The u\bud\bda\ba driver is a typical block-device disk driver; see physio(4) for a
+ description of block I/O. The script MAKEDEV(8) should be used to create
+ the u\bud\bda\ba special files; should a special file need to be created by hand,
+ consult mknod(8).
+
+ The MSCP_PARANOIA option enables runtime checking on all transfer comple-
+ tion responses from the controller. This increases disk I/O overhead and
+ may be undesirable on slow machines, but is otherwise recommended.
+
+ The first sector of each disk contains both a first-stage bootstrap pro-
+ gram and a disk label containing geometry information and partition lay-
+ outs (see disklabel(5)). This sector is normally write-protected, and
+ disk-to-disk copies should avoid copying this sector. The label may be
+ updated with disklabel(8), which can also be used to write-enable and
+ write-disable the sector. The next 15 sectors contain a second-stage
+ bootstrap program.
+
+D\bDI\bIS\bSK\bK S\bSU\bUP\bPP\bPO\bOR\bRT\bT
+ During autoconfiguration, as well as when a drive is opened after all
+ partitions are closed, the first sector of the drive is examined for a
+ disk label. If a label is found, the geometry of the drive and the par-
+ tition tables are taken from it. If no label is found, the driver con-
+ figures the type of each drive when it is first encountered. A default
+ partition table in the driver is used for each type of disk when a pack
+ is not labelled. The origin and size (in sectors) of the default pseudo-
+ disks on each drive are shown below. Not all partitions begin on cylin-
+ der boundaries, as on other drives, because previous drivers used one
+ partition table for all drive types. Variants of the partition tables
+ are common; check the driver and the file _\b/_\be_\bt_\bc_\b/_\bd_\bi_\bs_\bk_\bt_\ba_\bb (disktab(5)) for
+ other possibilities.
+
+ Special file names begin with `ra' and `rra' for the block and character
+ files respectively. The second component of the name, a drive unit number
+ in the range of zero to seven, is represented by a `?' in the disk lay-
+ outs below. The last component of the name is the file system partition
+ designated by a letter from `a' to `h' and which corresponds to a minor
+ device number set: zero to seven, eight to 15, 16 to 23 and so forth for
+ drive zero, drive two and drive three respectively, (see physio(4)). The
+ location and size (in sectors) of the partitions:
+
+ RA60 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh
+ ra?a 0 15884
+ ra?b 15884 33440
+ ra?c 0 400176
+ ra?d 49324 82080 same as 4.2BSD ra?g
+ ra?e 131404 268772 same as 4.2BSD ra?h
+ ra?f 49324 350852
+ ra?g 242606 157570
+ ra?h 49324 193282
+
+ RA70 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh
+ ra?a 0 15884
+ ra?b 15972 33440
+ ra?c 0 547041
+ ra?d 34122 15884
+ ra?e 357192 55936
+ ra?f 413457 133584
+ ra?g 341220 205821
+ ra?h 49731 29136
+
+ RA80 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh
+ ra?a 0 15884
+ ra?b 15884 33440
+ ra?c 0 242606
+ ra?e 49324 193282 same as old Berkeley ra?g
+ ra?f 49324 82080 same as 4.2BSD ra?g
+ ra?g 49910 192696
+ ra?h 131404 111202 same as 4.2BSD
+
+ RA81 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh
+ ra?a 0 15884
+ ra?b 16422 66880
+ ra?c 0 891072
+ ra?d 375564 15884
+ ra?e 391986 307200
+ ra?f 699720 191352
+ ra?g 375564 515508
+ ra?h 83538 291346
+
+ RA81 partitions with 4.2BSD-compatible partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh
+ ra?a 0 15884
+ ra?b 16422 66880
+ ra?c 0 891072
+ ra?d 49324 82080 same as 4.2BSD ra?g
+ ra?e 131404 759668 same as 4.2BSD ra?h
+ ra?f 412490 478582 same as 4.2BSD ra?f
+ ra?g 375564 515508
+ ra?h 83538 291346
+
+ RA82 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh
+ ra?a 0 15884
+ ra?b 16245 66880
+ ra?c 0 1135554
+ ra?d 375345 15884
+ ra?e 391590 307200
+ ra?f 669390 466164
+ ra?g 375345 760209
+ ra?h 83790 291346
+
+ The ra?a partition is normally used for the root file system, the ra?b
+ partition as a paging area, and the ra?c partition for pack-pack copying
+ (it maps the entire disk).
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/ra[0-9][a-f]
+ /dev/rra[0-9][a-f]
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+
+
+ p\bpa\ban\bni\bic\bc:\b: u\bud\bda\bas\bsl\bla\bav\bve\be No command packets were available while the driver was
+ looking for disk drives. The controller is not extending enough credits
+ to use the drives.
+
+ u\bud\bda\ba%\b%d\bd:\b: n\bno\bo r\bre\bes\bsp\bpo\bon\bns\bse\be t\bto\bo G\bGe\bet\bt U\bUn\bni\bit\bt S\bSt\bta\bat\btu\bus\bs r\bre\beq\bqu\bue\bes\bst\bt A disk drive was found,
+ but did not respond to a status request. This is either a hardware prob-
+ lem or someone pulling unit number plugs very fast.
+
+ u\bud\bda\ba%\b%d\bd:\b: u\bun\bni\bit\bt %\b%d\bd o\bof\bff\bf l\bli\bin\bne\be While searching for drives, the controller found
+ one that seems to be manually disabled. It is ignored.
+
+ u\bud\bda\ba%\b%d\bd:\b: u\bun\bna\bab\bbl\ble\be t\bto\bo g\bge\bet\bt u\bun\bni\bit\bt s\bst\bta\bat\btu\bus\bs Something went wrong while trying to
+ determine the status of a disk drive. This is followed by an error de-
+ tail.
+
+ u\bud\bda\ba%\b%d\bd:\b: u\bun\bni\bit\bt %\b%d\bd,\b, n\bne\bex\bxt\bt %\b%d\bd This probably never happens, but I wanted to
+ know if it did. I have no idea what one should do about it.
+
+ u\bud\bda\ba%\b%d\bd:\b: c\bca\ban\bnn\bno\bot\bt h\bha\ban\bnd\bdl\ble\be u\bun\bni\bit\bt n\bnu\bum\bmb\bbe\ber\br %\b%d\bd (\b(m\bma\bax\bx i\bis\bs %\b%d\bd)\b) The controller found a
+ drive whose unit number is too large. Valid unit numbers are those in
+ the range [0..7].
+
+ r\bra\ba%\b%d\bd:\b: d\bdo\bon\bn'\b't\bt h\bha\bav\bve\be a\ba p\bpa\bar\brt\bti\bit\bti\bio\bon\bn t\bta\bab\bbl\ble\be f\bfo\bor\br %\b%s\bs;\b; u\bus\bsi\bin\bng\bg (\b(s\bs,\b,t\bt,\b,c\bc)\b)=\b=(\b(%\b%d\bd,\b,%\b%d\bd,\b,%\b%d\bd)\b) The
+ controller found a drive whose media identifier (e.g. `RA 25') does not
+ have a default partition table. A temporary partition table containing
+ only an `a' partition has been created covering the entire disk, which
+ has the indicated numbers of sectors per track (s), tracks per cylinder
+ (t), and total cylinders (c). Give the pack a label with the disklabel
+ utility.
+
+ u\bud\bda\ba%\b%d\bd:\b: u\bub\bba\bal\bll\blo\boc\bc m\bma\bap\bp f\bfa\bai\bil\ble\bed\bd Unibus resource map allocation failed during
+ initialisation. This can only happen if you have 496 devices on a
+ Unibus.
+
+ u\bud\bda\ba%\b%d\bd:\b: t\bti\bim\bme\beo\bou\but\bt d\bdu\bur\bri\bin\bng\bg i\bin\bni\bit\bt The controller did not initialise within ten
+ seconds. A hardware problem, but it sometimes goes away if you try
+ again.
+
+ u\bud\bda\ba%\b%d\bd:\b: i\bin\bni\bit\bt f\bfa\bai\bil\ble\bed\bd,\b, s\bsa\ba=\b=%\b%b\bb The controller refused to initalise.
+
+ u\bud\bda\ba%\b%d\bd:\b: c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br h\bhu\bun\bng\bg The controller never finished initialisation.
+ Retrying may sometimes fix it.
+
+ r\bra\ba%\b%d\bd:\b: d\bdr\bri\biv\bve\be w\bwi\bil\bll\bl n\bno\bot\bt c\bco\bom\bme\be o\bon\bn l\bli\bin\bne\be The drive will not come on line, prob-
+ ably because it is spun down. This should be preceded by a message giv-
+ ing details as to why the drive stayed off line.
+
+ u\bud\bda\ba%\b%d\bd:\b: s\bst\bti\bil\bll\bl h\bhu\bun\bng\bg When the controller hangs, the driver occasionally
+ tries to reinitialise it. This means it just tried, without success.
+
+ p\bpa\ban\bni\bic\bc:\b: u\bud\bda\bas\bst\bta\bar\brt\bt:\b: b\bbp\bp=\b==\b=N\bNU\bUL\bLL\bL A bug in the driver has put an empty drive
+ queue on a controller queue.
+
+ u\bud\bda\ba%\b%d\bd:\b: c\bco\bom\bmm\bma\ban\bnd\bd r\bri\bin\bng\bg t\bto\boo\bo s\bsm\bma\bal\bll\bl If you increase NCMDL2, you may see a per-
+ formance improvement. (See _\b/_\bs_\by_\bs_\b/_\bv_\ba_\bx_\bu_\bb_\ba_\b/_\bu_\bd_\ba_\b._\bc.)
+
+ p\bpa\ban\bni\bic\bc:\b: u\bud\bda\bas\bst\bta\bar\brt\bt A drive was found marked for status or on-line functions
+ while performing status or on-line functions. This indicates a bug in
+ the driver.
+
+ u\bud\bda\ba%\b%d\bd:\b: c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br e\ber\brr\bro\bor\br,\b, s\bsa\ba=\b=0\b0%\b%o\bo (\b(%\b%s\bs)\b) The controller reported an error.
+ The error code is printed in octal, along with a short description if the
+ code is known (see the _\bU_\bD_\bA_\b5_\b0 _\bM_\ba_\bi_\bn_\bt_\be_\bn_\ba_\bn_\bc_\be _\bG_\bu_\bi_\bd_\be, DEC part number AA-M185B-
+ TC, pp. 18-22). If this occurs during normal operation, the driver will
+ reset it and retry pending I/O. If it occurs during configuration, the
+ controller may be ignored.
+
+ u\bud\bda\ba%\b%d\bd:\b: s\bst\btr\bra\bay\by i\bin\bnt\btr\br The controller interrupted when it should have stayed
+ quiet. The interrupt has been ignored.
+
+ u\bud\bda\ba%\b%d\bd:\b: i\bin\bni\bit\bt s\bst\bte\bep\bp %\b%d\bd f\bfa\bai\bil\ble\bed\bd,\b, s\bsa\ba=\b=%\b%b\bb The controller reported an error dur-
+ ing the named initialisation step. The driver will retry initialisation
+ later.
+
+ u\bud\bda\ba%\b%d\bd:\b: v\bve\ber\brs\bsi\bio\bon\bn %\b%d\bd m\bmo\bod\bde\bel\bl %\b%d\bd An informational message giving the revision
+ level of the controller.
+
+ u\bud\bda\ba%\b%d\bd:\b: D\bDM\bMA\bA b\bbu\bur\brs\bst\bt s\bsi\biz\bze\be s\bse\bet\bt t\bto\bo %\b%d\bd An informational message showing the DMA
+ burst size, in words.
+
+ p\bpa\ban\bni\bic\bc:\b: u\bud\bda\bai\bin\bnt\btr\br Indicates a bug in the generic MSCP code.
+
+ u\bud\bda\ba%\b%d\bd:\b: d\bdr\bri\biv\bve\ber\br b\bbu\bug\bg,\b, s\bst\bta\bat\bte\be %\b%d\bd The driver has a bogus value for the con-
+ troller state. Something is quite wrong. This is immediately followed
+ by a `panic: udastate'.
+
+ u\bud\bda\ba%\b%d\bd:\b: p\bpu\bur\brg\bge\be b\bbd\bdp\bp %\b%d\bd A benign message tracing BDP purges. I have been
+ trying to figure out what BDP purges are for. You might want to comment
+ out this call to log() in /sys/vaxuba/uda.c.
+
+ u\bud\bda\ba%\b%d\bd:\b: S\bSE\bET\bTC\bCT\bTL\bLR\bRC\bC f\bfa\bai\bil\ble\bed\bd:\b: `\b`d\bde\bet\bta\bai\bil\bl'\b' The Set Controller Characteristics com-
+ mand (the last part of the controller initialisation sequence) failed.
+ The _\bd_\be_\bt_\ba_\bi_\bl message tells why.
+
+ u\bud\bda\ba%\b%d\bd:\b: a\bat\btt\bte\bem\bmp\bpt\bt t\bto\bo b\bbr\bri\bin\bng\bg r\bra\ba%\b%d\bd o\bon\bn l\bli\bin\bne\be f\bfa\bai\bil\ble\bed\bd:\b: `\b`d\bde\bet\bta\bai\bil\bl'\b' The drive could
+ not be brought on line. The _\bd_\be_\bt_\ba_\bi_\bl message tells why.
+
+ u\bud\bda\ba%\b%d\bd:\b: r\bra\ba%\b%d\bd:\b: u\bun\bnk\bkn\bno\bow\bwn\bn t\bty\byp\bpe\be %\b%d\bd The type index of the named drive is not
+ known to the driver, so the drive will be ignored.
+
+ r\bra\ba%\b%d\bd:\b: c\bch\bha\ban\bng\bge\bed\bd t\bty\byp\bpe\bes\bs!\b! w\bwa\bas\bs %\b%d\bd n\bno\bow\bw %\b%d\bd A drive somehow changed from one kind
+ to another, e.g., from an RA80 to an RA60. The numbers printed are the
+ encoded media identifiers (see <_\bv_\ba_\bx_\b/_\bm_\bs_\bc_\bp_\b._\bh> for the encoding). The driv-
+ er believes the new type.
+
+ r\bra\ba%\b%d\bd:\b: u\bud\bda\ba%\b%d\bd,\b, u\bun\bni\bit\bt %\b%d\bd,\b, s\bsi\biz\bze\be =\b= %\b%d\bd s\bse\bec\bct\bto\bor\brs\bs The named drive is on the indi-
+ cated controller as the given unit, and has that many sectors of user-
+ file area. This is printed during configuration.
+
+ u\bud\bda\ba%\b%d\bd:\b: a\bat\btt\bte\bem\bmp\bpt\bt t\bto\bo g\bge\bet\bt s\bst\bta\bat\btu\bus\bs f\bfo\bor\br r\bra\ba%\b%d\bd f\bfa\bai\bil\ble\bed\bd:\b: `\b`d\bde\bet\bta\bai\bil\bl'\b' A status request
+ failed. The _\bd_\be_\bt_\ba_\bi_\bl message should tell why.
+
+ r\bra\ba%\b%d\bd:\b: b\bba\bad\bd b\bbl\blo\boc\bck\bk r\bre\bep\bpo\bor\brt\bt:\b: %\b%d\bd The drive has reported the given block as
+ bad. If there are multiple bad blocks, the drive will report only the
+ first; in this case this message will be followed by `+ others'. Get DEC
+ to forward the block with EVRLK.
+
+ r\bra\ba%\b%d\bd:\b: s\bse\ber\bri\bio\bou\bus\bs e\bex\bxc\bce\bep\bpt\bti\bio\bon\bn r\bre\bep\bpo\bor\brt\bte\bed\bd I have no idea what this really means.
+
+ p\bpa\ban\bni\bic\bc:\b: u\bud\bda\bar\bre\bep\bpl\bla\bac\bce\be The controller reported completion of a REPLACE opera-
+ tion. The driver never issues any REPLACEs, so something is wrong.
+
+ p\bpa\ban\bni\bic\bc:\b: u\bud\bda\bab\bbb\bb The controller reported completion of bad block related
+ I/O. The driver never issues any such, so something is wrong.
+
+ u\bud\bda\ba%\b%d\bd:\b: l\blo\bos\bst\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt The controller has gone out to lunch, and is being
+ reset to try to bring it back.
+
+ p\bpa\ban\bni\bic\bc:\b: m\bms\bsc\bcp\bp_\b_g\bgo\bo:\b: A\bAE\bEB\bB_\b_M\bMA\bAX\bX_\b_B\bBP\bP t\bto\boo\bo s\bsm\bma\bal\bll\bl You defined AVOID_EMULEX_BUG and
+ increased NCMDL2 and Emulex has new firmware. Raise AEB_MAX_BP or turn
+ off AVOID_EMULEX_BUG.
+
+ u\bud\bda\ba%\b%d\bd:\b: u\bun\bni\bit\bt %\b%d\bd:\b: u\bun\bnk\bkn\bno\bow\bwn\bn m\bme\bes\bss\bsa\bag\bge\be t\bty\byp\bpe\be 0\b0x\bx%\b%x\bx i\big\bgn\bno\bor\bre\bed\bd The controller re-
+ sponded with a mysterious message type. See _\b/_\bs_\by_\bs_\b/_\bv_\ba_\bx_\b/_\bm_\bs_\bc_\bp_\b._\bh for a list of
+ known message types. This is probably a controller hardware problem.
+
+ u\bud\bda\ba%\b%d\bd:\b: u\bun\bni\bit\bt %\b%d\bd o\bou\but\bt o\bof\bf r\bra\ban\bng\bge\be The disk drive unit number (the unit plug)
+ is higher than the maximum number the driver allows (currently 7).
+
+ u\bud\bda\ba%\b%d\bd:\b: u\bun\bni\bit\bt %\b%d\bd n\bno\bot\bt c\bco\bon\bnf\bfi\big\bgu\bur\bre\bed\bd,\b, m\bme\bes\bss\bsa\bag\bge\be i\big\bgn\bno\bor\bre\bed\bd The named disk drive has
+ announced its presence to the controller, but was not, or cannot now be,
+ configured into the running system. _\bM_\be_\bs_\bs_\ba_\bg_\be is one of `available atten-
+ tion' (an `I am here' message) or `stray response op 0x%x status 0x%x'
+ (anything else).
+
+ r\bra\ba%\b%d\bd:\b: b\bba\bad\bd l\blb\bbn\bn (\b(%\b%d\bd)\b)?\b? The drive has reported an invalid command error,
+ probably due to an invalid block number. If the lbn value is very much
+ greater than the size reported by the drive, this is the problem. It is
+ probably due to an improperly configured partition table. Other invalid
+ commands indicate a bug in the driver, or hardware trouble.
+
+ r\bra\ba%\b%d\bd:\b: d\bdu\bup\bpl\bli\bic\bca\bat\bte\be O\bON\bNL\bLI\bIN\bNE\bE i\big\bgn\bno\bor\bre\bed\bd The drive has come on-line while already
+ on-line. This condition can probably be ignored (and has been).
+
+ r\bra\ba%\b%d\bd:\b: i\bio\bo d\bdo\bon\bne\be,\b, b\bbu\but\bt n\bno\bo b\bbu\buf\bff\bfe\ber\br?\b? Hardware trouble, or a bug; the drive has
+ finished an I/O request, but the response has an invalid (zero) command
+ reference number.
+
+ E\bEm\bmu\bul\ble\bex\bx S\bSC\bC4\b41\b1/\b/M\bMS\bS s\bsc\bcr\bre\bew\bwu\bup\bp:\b: u\bud\bda\ba%\b%d\bd,\b, g\bgo\bot\bt %\b%d\bd c\bco\bor\brr\bre\bec\bct\bt,\b, t\bth\bhe\ben\bn c\bch\bha\ban\bng\bge\bed\bd 0\b0x\bx%\b%x\bx t\bto\bo
+ 0\b0x\bx%\b%x\bx You turned on AVOID_EMULEX_BUG, and the driver successfully avoided
+ the bug. The number of correctly-handled requests is reported, along
+ with the expected and actual values relating to the bug being avoided.
+
+ p\bpa\ban\bni\bic\bc:\b: u\bun\bnr\bre\bec\bco\bov\bve\ber\bra\bab\bbl\ble\be E\bEm\bmu\bul\ble\bex\bx s\bsc\bcr\bre\bew\bwu\bup\bp You turned on AVOID_EMULEX_BUG, but
+ Emulex was too clever and avoided the avoidance. Try turning on
+ MSCP_PARANOIA instead.
+
+ u\bud\bda\ba%\b%d\bd:\b: b\bba\bad\bd r\bre\bes\bsp\bpo\bon\bns\bse\be p\bpa\bac\bck\bke\bet\bt i\big\bgn\bno\bor\bre\bed\bd You turned on MSCP_PARANOIA, and the
+ driver caught the controller in a lie. The lie has been ignored, and the
+ controller will soon be reset (after a `lost' interrupt). This is fol-
+ lowed by a hex dump of the offending packet.
+
+ r\bra\ba%\b%d\bd:\b: b\bbo\bog\bgu\bus\bs R\bRE\bEP\bPL\bLA\bAC\bCE\bE e\ben\bnd\bd The drive has reported finishing a bad sector
+ replacement, but the driver never issues bad sector replacement commands.
+ The report is ignored. This is likely a hardware problem.
+
+ r\bra\ba%\b%d\bd:\b: u\bun\bnk\bkn\bno\bow\bwn\bn o\bop\bpc\bco\bod\bde\be 0\b0x\bx%\b%x\bx s\bst\bta\bat\btu\bus\bs 0\b0x\bx%\b%x\bx i\big\bgn\bno\bor\bre\bed\bd The drive has reported
+ something that the driver cannot understand. Perhaps DEC has been inven-
+ tive, or perhaps your hardware is ill. This is followed by a hex dump of
+ the offending packet.
+
+ r\bra\ba%\b%d\bd%\b%c\bc:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br %\b%s\bsi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd [\b[o\bof\bf %\b%d\bd-\b-%\b%d\bd]\b] (\b(r\bra\ba%\b%d\bd b\bbn\bn %\b%d\bd c\bcn\bn %\b%d\bd t\btn\bn %\b%d\bd s\bsn\bn
+ %\b%d\bd)\b).\b. An unrecoverable error occurred during transfer of the specified
+ filesystem block number(s), which are logical block numbers on the indi-
+ cated partition. If the transfer involved multiple blocks, the block
+ range is printed as well. The parenthesized fields list the actual disk
+ sector number relative to the beginning of the drive, as well as the
+ cylinder, track and sector number of the block.
+
+ u\bud\bda\ba%\b%d\bd:\b: %\b%s\bs e\ber\brr\bro\bor\br d\bda\bat\bta\bag\bgr\bra\bam\bm The controller has reported some kind of error,
+ either `hard' (unrecoverable) or `soft' (recoverable). If the controller
+ is going on (attempting to fix the problem), this message includes the
+ remark `(continuing)'. Emulex controllers wrongly claim that all soft
+ errors are hard errors. This message may be followed by one of the fol-
+ lowing 5 messages, depending on its type, and will always be followed by
+ a failure detail message (also listed below).
+
+
+
+ m\bme\bem\bmo\bor\bry\by a\bad\bdd\bdr\br 0\b0x\bx%\b%x\bx A host memory access error; this is the address
+ that could not be read.
+
+ u\bun\bni\bit\bt %\b%d\bd:\b: l\ble\bev\bve\bel\bl %\b%d\bd r\bre\bet\btr\bry\by %\b%d\bd,\b, %\b%s\bs %\b%d\bd A typical disk error; the retry
+ count and error recovery levels are printed, along with the block
+ type (`lbn', or logical block; or `rbn', or replacement block) and
+ number. If the string is something else, DEC has been clever, or
+ your hardware has gone to Australia for vacation (unless you live
+ there; then it might be in New Zealand, or Brazil).
+
+ u\bun\bni\bit\bt %\b%d\bd:\b: %\b%s\bs %\b%d\bd Also a disk error, but an `SDI' error, whatever
+ that is. (I doubt it has anything to do with Ronald Reagan.) This
+ lists the block type (`lbn' or `rbn') and number. This is followed
+ by a second message indicating a microprocessor error code and a
+ front panel code. These latter codes are drive-specific, and are
+ intended to be used by field service as an aid in locating failing
+ hardware. The codes for RA81s can be found in the _\bR_\bA_\b8_\b1 _\bM_\ba_\bi_\bn_\bt_\be_\bn_\ba_\bn_\bc_\be
+ _\bG_\bu_\bi_\bd_\be, DEC order number AA-M879A-TC, in appendices E and F.
+
+ u\bun\bni\bit\bt %\b%d\bd:\b: s\bsm\bma\bal\bll\bl d\bdi\bis\bsk\bk e\ber\brr\bro\bor\br,\b, c\bcy\byl\bl %\b%d\bd Yet another kind of disk error,
+ but for small disks. (`That's what it says, guv'nor. Dunnask me
+ what it means.')
+
+ u\bun\bni\bit\bt %\b%d\bd:\b: u\bun\bnk\bkn\bno\bow\bwn\bn e\ber\brr\bro\bor\br,\b, f\bfo\bor\brm\bma\bat\bt 0\b0x\bx%\b%x\bx A mysterious error: the given
+ format code is not known.
+
+ The detail messages are as follows:
+
+
+ s\bsu\buc\bcc\bce\bes\bss\bs (\b(%\b%s\bs)\b) (\b(c\bco\bod\bde\be 0\b0,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) Everything worked, but the con-
+ troller thought it would let you know that something went wrong.
+ No matter what subcode, this can probably be ignored.
+
+ i\bin\bnv\bva\bal\bli\bid\bd c\bco\bom\bmm\bma\ban\bnd\bd (\b(%\b%s\bs)\b) (\b(c\bco\bod\bde\be 1\b1,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) This probably cannot oc-
+ cur unless the hardware is out; %s should be `invalid msg length',
+ meaning some command was too short or too long.
+
+ c\bco\bom\bmm\bma\ban\bnd\bd a\bab\bbo\bor\brt\bte\bed\bd (\b(u\bun\bnk\bkn\bno\bow\bwn\bn s\bsu\bub\bbc\bco\bod\bde\be)\b) (\b(c\bco\bod\bde\be 2\b2,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) This should
+ never occur, as the driver never aborts commands.
+
+ u\bun\bni\bit\bt o\bof\bff\bfl\bli\bin\bne\be (\b(%\b%s\bs)\b) (\b(c\bco\bod\bde\be 3\b3,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) The drive is offline, ei-
+ ther because it is not around (`unknown drive'), stopped (`not
+ mounted'), out of order (`inoperative'), has the same unit number
+ as some other drive (`duplicate'), or has been disabled for diag-
+ nostics (`in diagnosis').
+
+ u\bun\bni\bit\bt a\bav\bva\bai\bil\bla\bab\bbl\ble\be (\b(u\bun\bnk\bkn\bno\bow\bwn\bn s\bsu\bub\bbc\bco\bod\bde\be)\b) (\b(c\bco\bod\bde\be 4\b4,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) The con-
+ troller has decided to report a perfectly normal event as an error.
+ (Why?)
+
+ m\bme\bed\bdi\bia\ba f\bfo\bor\brm\bma\bat\bt e\ber\brr\bro\bor\br (\b(%\b%s\bs)\b) (\b(c\bco\bod\bde\be 5\b5,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) The drive cannot be
+ used without reformatting. The Format Control Table cannot be read
+ (`fct unread - edc'), there is a bad sector header (`invalid sector
+ header'), the drive is not set for 512-byte sectors (`not 512 sec-
+ tors'), the drive is not formatted (`not formatted'), or the FCT
+ has an uncorrectable ECC error (`fct ecc').
+
+ w\bwr\bri\bit\bte\be p\bpr\bro\bot\bte\bec\bct\bte\bed\bd (\b(%\b%s\bs)\b) (\b(c\bco\bod\bde\be 6\b6,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) The drive is write pro-
+ tected, either by the front panel switch (`hardware') or via the
+ driver (`software'). The driver never sets software write protect.
+
+ c\bco\bom\bmp\bpa\bar\bre\be e\ber\brr\bro\bor\br (\b(u\bun\bnk\bkn\bno\bow\bwn\bn s\bsu\bub\bbc\bco\bod\bde\be)\b) (\b(c\bco\bod\bde\be 7\b7,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) A compare op-
+ eration showed some sort of difference. The driver never uses com-
+ pare operations.
+
+ d\bda\bat\bta\ba e\ber\brr\bro\bor\br (\b(%\b%s\bs)\b) (\b(c\bco\bod\bde\be 7\b7,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) Something went wrong reading
+ or writing a data sector. A `forced error' is a software-asserted
+ error used to mark a sector that contains suspect data. Rewriting
+ the sector will clear the forced error. This is normally set only
+ during bad block replacment, and the driver does no bad block re-
+ placement, so these should not occur. A `header compare' error
+ probably means the block is shot. A `sync timeout' presumably has
+ something to do with sector synchronisation. An `uncorrectable
+ ecc' error is an ordinary data error that cannot be fixed via ECC
+ logic. A `%d symbol ecc' error is a data error that can be (and
+ presumably has been) corrected by the ECC logic. It might indicate
+ a sector that is imperfect but usable, or that is starting to go
+ bad. If any of these errors recur, the sector may need to be re-
+ placed.
+
+ h\bho\bos\bst\bt b\bbu\buf\bff\bfe\ber\br a\bac\bcc\bce\bes\bss\bs e\ber\brr\bro\bor\br (\b(%\b%s\bs)\b) (\b(c\bco\bod\bde\be %\b%d\bd,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) Something went
+ wrong while trying to copy data to or from the host (Vax). The
+ subcode is one of `odd xfer addr', `odd xfer count', `non-exist.
+ memory', or `memory parity'. The first two could be a software
+ glitch; the last two indicate hardware problems.
+
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br e\ber\brr\bro\bor\br (\b(%\b%s\bs)\b) (\b(c\bco\bod\bde\be %\b%d\bd,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) The controller has de-
+ tected a hardware error in itself. A `serdes overrun' is a seri-
+ aliser / deserialiser overrun; `edc' probably stands for `error de-
+ tection code'; and `inconsistent internal data struct' is obvious.
+
+ d\bdr\bri\biv\bve\be e\ber\brr\bro\bor\br (\b(%\b%s\bs)\b) (\b(c\bco\bod\bde\be %\b%d\bd,\b, s\bsu\bub\bbc\bco\bod\bde\be %\b%d\bd)\b) Either the controller or
+ the drive has detected a hardware error in the drive. I am not
+ sure what an `sdi command timeout' is, but these seem to occur be-
+ nignly on occasion. A `ctlr detected protocol' error means that
+ the controller and drive do not agree on a protocol; this could be
+ a cabling problem, or a version mismatch. A `positioner' error
+ means the drive seek hardware is ailing; `lost rd/wr ready' means
+ the drive read/write logic is sick; and `drive clock dropout' means
+ that the drive clock logic is bad, or the media is hopelessly
+ scrambled. I have no idea what `lost recvr ready' means. A `drive
+ detected error' is a catch-all for drive hardware trouble; `ctlr
+ detected pulse or parity' errors are often caused by cabling prob-
+ lems.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ disklabel(5), disklabel(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The u\bud\bda\ba driver appeared in 4.2BSD.
+
+4th Berkeley Distribution June 5, 1993 7
--- /dev/null
+UP(4) BSD Programmer's Manual (VAX Architecture) UP(4)
+
+N\bNA\bAM\bME\bE
+ u\bup\bp - unibus storage module controller/drives
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br s\bsc\bc0\b0 a\bat\bt u\bub\bba\ba?\b? c\bcs\bsr\br 0\b01\b17\b76\b67\b70\b00\b0 v\bve\bec\bct\bto\bor\br u\bup\bpi\bin\bnt\btr\br
+ d\bdi\bis\bsk\bk u\bup\bp0\b0 a\bat\bt s\bsc\bc0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This is a generic UNIBUS storage module disk driver. It is specifically
+ designed to work with the Emulex SC-21 and SC-31 controllers. It can be
+ easily adapted to other controllers (although bootstrapping will not nec-
+ essarily be directly possible.)
+
+ The script MAKEDEV(8) should be used to create the u\bup\bp special files; con-
+ sult mknod(8) if a special file needs to be made manually. It is recom-
+ mended as a security precaution to not create special files for devices
+ which may never be installed.
+
+D\bDI\bIS\bSK\bK S\bSU\bUP\bPP\bPO\bOR\bRT\bT
+ The driver interrogates the controller's holding register to determine
+ the type of drive attached. The driver recognizes seven different
+ drives: CDC 9762, CDC 9766, AMPEX DM980, AMPEX 9300, AMPEX Capricorn,
+ FUJITSU 160, and FUJITSU Eagle (the Eagle is not supported by the SC-21).
+
+ Special file names begin with `up' and `rup' for the block and character
+ files respectively. The second component of the name, a drive unit number
+ in the range of zero to seven, is represented by a `?' in the disk lay-
+ outs below. The last component of the name, the file system partition, is
+ designated by a letter from `a' to `h' which also corresponds to a minor
+ device number set: zero to seven, eight to 15, 16 to 23 and so forth for
+ drive zero, drive two and drive three respectively (see physio(4)). The
+ location and size (in 512 byte sectors) of the partitions for the above
+ drives:
+
+ CDC 9762 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-99
+ hp?b 16000 33440 100-309
+ hp?c 0 131680 0-822
+ hp?d 49600 15884 309-408
+ hp?e 65440 55936 409-758
+ hp?f 121440 10080 759-822
+ hp?g 49600 82080 309-822
+
+ CDC 9766 300M drive partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bl
+ up?a 0 15884 0-26
+ up?b 16416 33440 27-81
+ up?c 0 500384 0-822
+ up?d 341696 15884 562-588
+ up?e 358112 55936 589-680
+ up?f 414048 861760 681-822
+ up?g 341696 158528 562-822
+ up?h 49856 291346 82-561
+
+ AMPEX DM980 partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-99
+ hp?b 16000 33440 100-309
+ hp?c 0 131680 0-822
+ hp?d 49600 15884 309-408
+ hp?e 65440 55936 409-758
+ hp?f 121440 10080 759-822
+ hp?g 49600 82080 309-822
+
+ AMPEX 9300 300M drive partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bl
+ up?a 0 15884 0-26
+ up?b 16416 33440 27-81
+ up?c 0 495520 0-814
+ up?d 341696 15884 562-588
+ up?e 358112 55936 589-680
+ up?f 414048 81312 681-814
+ up?g 341696 153664 562-814
+ up?h 49856 291346 82-561
+
+ AMPEX Capricorn 330M drive partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bl
+ hp?a 0 15884 0-31
+ hp?b 16384 33440 32-97
+ hp?c 0 524288 0-1023
+ hp?d 342016 15884 668-699
+ hp?e 358400 55936 700-809
+ hp?f 414720 109408 810-1023
+ hp?g 342016 182112 668-1023
+ hp?h 50176 291346 98-667
+
+ FUJITSU 160M drive partitions:
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bl
+ up?a 0 15884 0-49
+ up?b 16000 33440 50-154
+ up?c 0 263360 0-822
+ up?d 49600 15884 155-204
+ up?e 65600 55936 205-379
+ up?f 121600 141600 380-822
+ up?g 49600 213600 155-822
+
+ FUJITSU Eagle partitions
+ d\bdi\bis\bsk\bk s\bst\bta\bar\brt\bt l\ble\ben\bng\bgt\bth\bh c\bcy\byl\bls\bs
+ hp?a 0 15884 0-16
+ hp?b 16320 66880 17-86
+ hp?c 0 808320 0-841
+ hp?d 375360 15884 391-407
+ hp?e 391680 55936 408-727
+ hp?f 698880 109248 728-841
+ hp?g 375360 432768 391-841
+ hp?h 83520 291346 87-390
+
+ The up?a partition is normally used for the root file system, the up?b
+ partition as a paging area, and the up?c partition for pack-pack copying
+ (it maps the entire disk). On 160M drives the up?g partition maps the
+ rest of the pack. On other drives both up?g and up?h are used to map the
+ remaining cylinders.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/up[0-7][a-h] block files
+ /dev/rup[0-7][a-h] raw files
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ u\bup\bp%\b%d\bd%\b%c\bc:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br %\b%s\bsi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd[\b[-\b-%\b%d\bd]\b] c\bcs\bs2\b2=\b=%\b%b\bb e\ber\br1\b1=\b=%\b%b\bb e\ber\br2\b2=\b=%\b%b\bb.\b. An unrecov-
+ erable error occurred during transfer of the specified filesystem block
+ number(s), which are logical block numbers on the indicated partition.
+ The contents of the cs2, er1 and er2 registers are printed in octal and
+ symbolically with bits decoded. The error was either unrecoverable, or a
+ large number of retry attempts (including offset positioning and drive
+ recalibration) could not recover the error.
+
+
+
+
+ u\bup\bp%\b%d\bd:\b: w\bwr\bri\bit\bte\be l\blo\boc\bck\bke\bed\bd.\b. The write protect switch was set on the drive when a
+ write was attempted. The write operation is not recoverable.
+
+ u\bup\bp%\b%d\bd:\b: n\bno\bot\bt r\bre\bea\bad\bdy\by.\b. The drive was spun down or off line when it was ac-
+ cessed. The i/o operation is not recoverable.
+
+ u\bup\bp%\b%d\bd:\b: n\bno\bot\bt r\bre\bea\bad\bdy\by (\b(f\bfl\bla\bak\bke\bey\by)\b).\b. The drive was not ready, but after printing
+ the message about being not ready (which takes a fraction of a second)
+ was ready. The operation is recovered if no further errors occur.
+
+ u\bup\bp%\b%d\bd%\b%c\bc:\b: s\bso\bof\bft\bt e\bec\bcc\bc r\bre\bea\bad\bdi\bin\bng\bg f\bfs\bsb\bbn\bn %\b%d\bd[\b[-\b-%\b%d\bd]\b].\b. A recoverable ECC error occurred
+ on the specified sector of the specified disk partition. This happens
+ normally a few times a week. If it happens more frequently than this the
+ sectors where the errors are occurring should be checked to see if cer-
+ tain cylinders on the pack, spots on the carriage of the drive or heads
+ are indicated.
+
+ s\bsc\bc%\b%d\bd:\b: l\blo\bos\bst\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. A timer watching the controller detecting no in-
+ terrupt for an extended period while an operation was outstanding. This
+ indicates a hardware or software failure. There is currently a hard-
+ ware/software problem with spinning down drives while they are being ac-
+ cessed which causes this error to occur. The error causes a UNIBUS re-
+ set, and retry of the pending operations. If the controller continues to
+ lose interrupts, this error will recur a few seconds later.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ hk(4), hp(4), uda(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The u\bup\bp driver appeared in 4.0BSD.
+
+B\bBU\bUG\bGS\bS
+ A program to analyze the logged error information (even in its present
+ reduced form) is needed.
+
+ The partition tables for the file systems should be read off of each
+ pack, as they are never quite what any single installation would prefer,
+ and this would make packs more portable.
+
+4th Berkeley Distribution June 5, 1993 3
--- /dev/null
+UT(4) BSD Programmer's Manual (VAX Architecture) UT(4)
+
+N\bNA\bAM\bME\bE
+ u\but\bt - UNIBUS TU45 tri-density tape drive interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br u\but\bt0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b72\b24\b44\b40\b0 v\bve\bec\bct\bto\bor\br u\but\bti\bin\bnt\btr\br
+ t\bta\bap\bpe\be t\btj\bj0\b0 a\bat\bt u\but\bt0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The u\but\bt interface provides access to a standard tape drive interface as
+ describe in mtio(4). Hardware implementing this on the VAX is typified
+ by the System Industries SI 9700 tape subsystem. Tapes may be read or
+ written at 800, 1600, and 6250 BPI.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ t\btj\bj%\b%d\bd:\b: n\bno\bo w\bwr\bri\bit\bte\be r\bri\bin\bng\bg.\b. An attempt was made to write on the tape drive when
+ no write ring was present; this message is written on the terminal of the
+ user who tried to access the tape.
+
+ t\btj\bj%\b%d\bd:\b: n\bno\bot\bt o\bon\bnl\bli\bin\bne\be.\b. An attempt was made to access the tape while it was
+ offline; this message is written on the terminal of the user who tried to
+ access the tape.
+
+ t\btj\bj%\b%d\bd:\b: c\bca\ban\bn'\b't\bt c\bch\bha\ban\bng\bge\be d\bde\ben\bns\bsi\bit\bty\by i\bin\bn m\bmi\bid\bd-\b-t\bta\bap\bpe\be.\b. An attempt was made to write on
+ a tape at a different density than is already recorded on the tape. This
+ message is written on the terminal of the user who tried to switch the
+ density.
+
+ u\but\bt%\b%d\bd:\b: s\bso\bof\bft\bt e\ber\brr\bro\bor\br b\bbn\bn%\b%d\bd c\bcs\bs1\b1=\b=%\b%b\bb e\ber\br=\b=%\b%b\bb c\bcs\bs2\b2=\b=%\b%b\bb d\bds\bs=\b=%\b%b\bb.\b. The formatter indicated
+ a corrected error at a density other than 800bpi. The data transferred
+ is assumed to be correct.
+
+ u\but\bt%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br b\bbn\bn%\b%d\bd c\bcs\bs1\b1=\b=%\b%b\bb e\ber\br=\b=%\b%b\bb c\bcs\bs2\b2=\b=%\b%b\bb d\bds\bs=\b=%\b%b\bb.\b. A tape error occurred
+ at block
+
+ b\bbn\bn.\b. Any error is fatal on non-raw tape; when possible the driver will
+ have retried the operation which failed several times before reporting
+ the error.
+
+ t\btj\bj%\b%d\bd:\b: l\blo\bos\bst\bt i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt.\b. A tape operation did not complete within a reason-
+ able time, most likely because the tape was taken off-line during rewind
+ or lost vacuum. The controller should, but does not, give an interrupt
+ in these cases. The device will be made available again after this mes-
+ sage, but any current open reference to the device will return an error
+ as the operation in progress aborts.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mt(1), mtio(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The u\but\bt driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ May hang if a physical error (non-data) occurs.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+UU(4) BSD Programmer's Manual (VAX Architecture) UU(4)
+
+N\bNA\bAM\bME\bE
+ u\buu\bu - TU58/ DECtape II UNIBUS cassette interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ o\bop\bpt\bti\bio\bon\bns\bs U\bUU\bUD\bDM\bMA\bA
+ d\bde\bev\bvi\bic\bce\be u\buu\bu0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b76\b65\b50\b00\b0 v\bve\bec\bct\bto\bor\br u\buu\bur\bri\bin\bnt\btr\br u\buu\bux\bxi\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The u\buu\bu device provides access to dual DEC TU58 tape cartridge drives con-
+ nected to the UNIBUS via a DL11-W interface module.
+
+ The interface supports only block I/O to the TU58 cassettes (see
+ physio(4)). The drives are normally manipulated with the arff(8) program
+ using the ``m'' and ``f'' options.
+
+ The driver provides for an optional write and verify (read after write)
+ mode that is activated by specifying the ``a'' device.
+
+ The TU58 is treated as a single device by the system even though it has
+ two separate drives, `uu0' and `uu1'. If there is more than one TU58 unit
+ on a system, the extra drives are named `uu2', `uu3' etc.
+
+N\bNO\bOT\bTE\bES\bS
+ Assembly language code to assist the driver in handling the receipt of
+ data (using a pseudo-dma approach) should be included when using this
+ driver; specify `options UUDMA' in the configuration file.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/uu?
+ /dev/uu?a
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ u\buu\bu%\b%d\bd:\b: n\bno\bo b\bbp\bp,\b, a\bac\bct\bti\biv\bve\be %\b%d\bd.\b. A transmission complete interrupt was received
+ with no outstanding I/O request. This indicates a hardware problem.
+
+ u\buu\bu%\b%d\bd p\bpr\bro\bot\bto\boc\bco\bol\bl e\ber\brr\bro\bor\br,\b, s\bst\bta\bat\bte\be=\b=%\b%s\bs,\b, o\bop\bp=\b=%\b%x\bx,\b, c\bcn\bnt\bt=\b=%\b%d\bd,\b, b\bbl\blo\boc\bck\bk=\b=%\b%d\bd.\b. The driver en-
+ tered an illegal state. The information printed indicates the illegal
+ state, the operation currently being executed, the I/O count, and the
+ block number on the cassette.
+
+ u\buu\bu%\b%d\bd:\b: b\bbr\bre\bea\bak\bk r\bre\bec\bce\bei\biv\bve\bed\bd,\b, t\btr\bra\ban\bns\bsf\bfe\ber\br r\bre\bes\bst\bta\bar\brt\bte\bed\bd.\b. The TU58 was sending a contin-
+ uous break signal and had to be reset. This may indicate a hardware prob-
+ lem, but the driver will attempt to recover from the error.
+
+ u\buu\bu%\b%d\bd r\bre\bec\bce\bei\biv\bve\be s\bst\bta\bat\bte\be e\ber\brr\bro\bor\br,\b, s\bst\bta\bat\bte\be=\b=%\b%s\bs,\b, b\bby\byt\bte\be=\b=%\b%x\bx.\b. The driver entered an ille-
+ gal state in the receiver finite state machine. The state is shown along
+ with the control byte of the received packet.
+
+ u\buu\bu%\b%d\bd:\b: r\bre\bea\bad\bd s\bst\bta\bal\bll\ble\bed\bd.\b. A timer watching the controller detected no inter-
+ rupt for an extended period while an operation was outstanding. This
+ usually indicates that one or more receiver interrupts were lost and the
+ transfer is restarted.
+
+ u\buu\bu%\b%d\bd:\b: h\bha\bar\brd\bd e\ber\brr\bro\bor\br b\bbn\bn%\b%d\bd,\b, p\bpk\bk_\b_m\bmo\bod\bd %\b%o\bo.\b. The device returned a status code in-
+ dicating a hard error. The actual error code is shown in octal. No re-
+ tries are attempted by the driver.
+
+E\bER\bRR\bRO\bOR\bRS\bS
+ The following errors may be returned:
+
+ [ENXIO] Nonexistent drive (on open); offset is too large or bad (unde-
+
+
+ fined) ioctl(2) code.
+
+ [EIO] Open failed, the device could not be reset.
+
+ [EBUSY] Drive in use.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tu(4), arff(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The u\buu\bu driver appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+VA(4) BSD Programmer's Manual (VAX Architecture) VA(4)
+
+N\bNA\bAM\bME\bE
+ v\bva\ba - Benson-Varian interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ c\bco\bon\bnt\btr\bro\bol\bll\ble\ber\br v\bva\ba0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b16\b64\b40\b00\b00\b0 v\bve\bec\bct\bto\bor\br v\bva\bai\bin\bnt\btr\br
+ d\bdi\bis\bsk\bk v\bvz\bz0\b0 a\bat\bt v\bva\ba0\b0 d\bdr\bri\biv\bve\be 0\b0
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ (\b(N\bNO\bOT\bTE\bE:\b: t\bth\bhe\be c\bco\bon\bnf\bfi\big\bgu\bur\bra\bat\bti\bio\bon\bn d\bde\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn,\b, w\bwh\bhi\bil\ble\be c\bco\bou\bun\bnt\bte\ber\br-\b-i\bin\bnt\btu\bui\bit\bti\biv\bve\be,\b, i\bis\bs a\bac\bct\btu\bua\bal\bl-\b-
+ l\bly\by a\bas\bs s\bsh\bho\bow\bwn\bn a\bab\bbo\bov\bve\be.\b.)\b)
+
+ The Benson-Varian printer/plotter in normally used with the line printer
+ system. This description is designed for those who wish to drive the
+ Benson-Varian directly.
+
+ In print mode, the Benson-Varian uses a modified ASCII character set.
+ Most control characters print various non- ASCII graphics such as dag-
+ gers, sigmas, copyright symbols, etc. Only LF and FF are used as format
+ effectors. LF acts as a newline, advancing to the beginning of the next
+ line, and FF advances to the top of the next page.
+
+ In plot mode, the Benson-Varian prints one raster line at a time. An en-
+ tire raster line of bits (2112 bits = 264 bytes) is sent, and then the
+ Benson-Varian advances to the next raster line.
+
+ _\bN_\bo_\bt_\be: The Benson-Varian must be sent an even number of bytes. If an odd
+ number is sent, the last byte will be lost. Nulls can be used in print
+ mode to pad to an even number of bytes.
+
+ To use the Benson-Varian yourself, you must realize that you cannot open
+ the device, _\b/_\bd_\be_\bv_\b/_\bv_\ba_\b0 if there is an daemon active. You can see if there
+ is an active daemon by doing a lpq(1) and seeing if there are any files
+ being printed. Printing should be turned off using lpc(8).
+
+ To set the Benson-Varian into plot mode include the file <_\bs_\by_\bs_\b/_\bv_\bc_\bm_\bd_\b._\bh> and
+ use the following ioctl(2) call
+
+ ioctl(fileno(va), VSETSTATE, plotmd);
+
+ where _\bp_\bl_\bo_\bt_\bm_\bd is defined to be
+
+ int plotmd[] = { VPLOT, 0, 0 };
+
+ and _\bv_\ba is the result of a call to fopen on stdio. When you finish using
+ the Benson-Varian in plot mode you should advance to a new page by send-
+ ing it a FF after putting it back into print mode, i.e. by
+
+ int prtmd[] = { VPRINT, 0, 0 };
+ ...
+ fflush(va);
+ ioctl(fileno(va), VSETSTATE, prtmd);
+ write(fileno(va), "\f\0", 2);
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/va0
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ The following error numbers are significant at the time the device is
+ opened.
+
+ [ENXIO] The device is already in use.
+
+ [EIO] The device is offline.
+
+ The following message may be printed on the console.
+
+ v\bva\ba%\b%d\bd:\b: n\bnp\bpr\br t\bti\bim\bme\beo\bou\but\bt.\b. The device was not able to get data from the UNIBUS
+ within the timeout period, most likely because some other device was hog-
+ ging the bus. (But see _\bB_\bU_\bG_\bS below).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ vfont(5), lpr(1), lpd(8), vp(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The v\bva\ba driver appeared in 4.0BSD.
+
+B\bBU\bUG\bGS\bS
+ The 1's (one's) and l's (lower-case el's) in the Benson-Varian's standard
+ character set look very similar; caution is advised.
+
+ The interface hardware is rumored to have problems which can play havoc
+ with the UNIBUS. We have intermittent minor problems on the UNIBUS where
+ our va lives, but haven't ever been able to pin them down completely.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+VP(4) BSD Programmer's Manual (VAX Architecture) VP(4)
+
+N\bNA\bAM\bME\bE
+ v\bvp\bp - Versatec interface
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be v\bvp\bp0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b17\b77\b75\b51\b10\b0 v\bve\bec\bct\bto\bor\br v\bvp\bpi\bin\bnt\btr\br v\bvp\bpi\bin\bnt\btr\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The Versatec printer/plotter is normally used with the line printer sys-
+ tem. This description is designed for those who wish to drive the Ver-
+ satec directly.
+
+ To use the Versatec yourself, you must realize that you cannot open the
+ device, _\b/_\bd_\be_\bv_\b/_\bv_\bp_\b0 if there is a daemon active. You can see if there is a
+ daemon active by doing a lpq(1), and seeing if there are any files being
+ sent. Printing should be turned off using lpc(8).
+
+ To set the Versatec into plot mode you should include <_\bs_\by_\bs_\b/_\bv_\bc_\bm_\bd_\b._\bh> and
+ use the ioctl(2) call
+
+ ioctl(fileno(vp), VSETSTATE, plotmd);
+
+ where _\bp_\bl_\bo_\bt_\bm_\bd is defined to be
+
+ int plotmd[] = { VPLOT, 0, 0 };
+
+ and _\bv_\bp is the result of a call to fopen on stdio. When you finish using
+ the Versatec in plot mode you should eject paper by sending it a EOT af-
+ ter putting it back into print mode, i.e. by
+
+ int prtmd[] = { VPRINT, 0, 0 };
+ ...
+ fflush(vp);
+ ioctl(fileno(vp), VSETSTATE, prtmd);
+ write(fileno(vp), "\04", 1);
+
+F\bFI\bIL\bLE\bES\bS
+ /dev/vp0
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ The following error numbers are significant at the time the device is
+ opened.
+
+ [ENXIO] The device is already in use.
+
+ [EIO] The device is offline.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ lpr(1), vtroff(1), va(4) font(5), lpd(8),
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A v\bvp\bp driver appeared in Version 7 AT&T UNIX.
+
+B\bBU\bUG\bGS\bS
+ The configuration part of the driver assumes that the device is set up to
+ vector print mode through 0174 and plot mode through 0200. As the con-
+ figuration program can't be sure which vector interrupted at boot time,
+ we specify that it has two interrupt vectors, and if an interrupt comes
+ through 0200 it is reset to 0174. This is safe for devices with one or
+ two vectors at these two addresses. Other configurations with 2 vectors
+ may require changes in the driver.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+VV(4) BSD Programmer's Manual (VAX Architecture) VV(4)
+
+N\bNA\bAM\bME\bE
+ v\bvv\bv - Proteon proNET 10 Megabit ring
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ d\bde\bev\bvi\bic\bce\be v\bvv\bv0\b0 a\bat\bt u\bub\bba\ba0\b0 c\bcs\bsr\br 0\b01\b16\b61\b10\b00\b00\b0 v\bve\bec\bct\bto\bor\br v\bvv\bvr\bri\bin\bnt\bt v\bvv\bvx\bxi\bin\bnt\bt
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The v\bvv\bv interface provides access to a 10 Mb/s Proteon proNET ring net-
+ work.
+
+ The network address of the interface must be specified with an an
+ SIOCSIFADDR ioctl(2) before data can be transmitted or received. It is
+ only permissible to change the network address while the interface is
+ marked ``down''.
+
+ The host's hardware address is discovered by putting the interface in
+ digital loopback mode (not joining the ring) and sending a broadcast
+ packet from which the hardware address is extracted.
+
+ Transmit timeouts are detected through use of a watchdog routine. Lost
+ input interrupts are checked for when packets are sent out.
+
+ If the installation is running CTL boards which use the old broadcast ad-
+ dress of `0' instead of the new address of `0xff', the define
+ OLD_BROADCAST should be specified in the driver.
+
+ The driver can use ``trailer'' encapsulation to minimize copying data on
+ input and output. This may be disabled, on a per-interface basis, by
+ setting the IFF_NOTRAILERS flag with an SIOCSIFFLAGS ioctl.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ v\bvv\bv%\b%d\bd:\b: h\bho\bos\bst\bt %\b%d\bd.\b. The software announces the host address discovered during
+ autoconfiguration.
+
+ v\bvv\bv%\b%d\bd:\b: c\bca\ban\bn'\b't\bt i\bin\bni\bit\bti\bia\bal\bli\biz\bze\be.\b. The software was unable to discover the address
+ of this interface, so it deemed "dead" will not be enabled.
+
+ v\bvv\bv%\b%d\bd:\b: e\ber\brr\bro\bor\br v\bvv\bvo\boc\bcs\bsr\br=\b=%\b%b\bb.\b. The hardware indicated an error on the previous
+ transmission.
+
+ v\bvv\bv%\b%d\bd:\b: o\bou\but\btp\bpu\but\bt t\bti\bim\bme\beo\bou\but\bt.\b. The token timer has fired and the token will be
+ recreated.
+
+ v\bvv\bv%\b%d\bd:\b: e\ber\brr\bro\bor\br v\bvv\bvi\bic\bcs\bsr\br=\b=%\b%b\bb.\b. The hardware indicated an error in reading a
+ packet off the ring.
+
+ e\ben\bn%\b%d\bd:\b: c\bca\ban\bn'\b't\bt h\bha\ban\bnd\bdl\ble\be a\baf\bf%\b%d\bd.\b. The interface was handed a message with ad-
+ dresses formatted in an unsuitable address family; the packet was
+ dropped.
+
+ v\bvv\bv%\b%d\bd:\b: v\bvs\bs_\b_o\bol\ble\ben\bn=\b=%\b%d\bd.\b. The ring output routine has been handed a message with
+ a preposterous length. This results in an immediate _\bp_\ba_\bn_\bi_\bc_\b: _\bv_\bs_\b__\bo_\bl_\be_\bn.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ netintro(4), inet(4)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The v\bvv\bv driver appeared in 4.2BSD.
+
+B\bBU\bUG\bGS\bS
+ The encapsulation of trailer packets in the 4.2BSD version of this driver
+ was incorrect (the packet type was in VAX byte order). As a result, the
+ trailer encapsulation in this version is not compatible with the 4.2BSD
+ VAX version.
--- /dev/null
+A.OUT(5) BSD Programmer's Manual A.OUT(5)
+
+N\bNA\bAM\bME\bE
+ a\ba.\b.o\bou\but\bt - format of executable binary files
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<a\ba.\b.o\bou\but\bt.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The include file <_\ba_\b._\bo_\bu_\bt_\b._\bh> declares three structures and several macros.
+ The structures describe the format of executable machine code files
+ (`binaries') on the system.
+
+ A binary file consists of up to 7 sections. In order, these sections
+ are:
+
+ exec header Contains parameters used by the kernel to load a binary
+ file into memory and execute it, and by the link editor
+ ld(1) to combine a binary file with other binary files.
+ This section is the only mandatory one.
+
+ text segment Contains machine code and related data that are loaded
+ into memory when a program executes. May be loaded
+ read-only.
+
+ data segment Contains initialized data; always loaded into writable
+ memory.
+
+ text relocations Contains records used by the link editor to update
+ pointers in the text segment when combining binary
+ files.
+
+ data relocations Like the text relocation section, but for data segment
+ pointers.
+
+ symbol table Contains records used by the link editor to cross ref-
+ erence the addresses of named variables and functions
+ (`symbols') between binary files.
+
+ string table Contains the character strings corresponding to the
+ symbol names.
+
+ Every binary file begins with an _\be_\bx_\be_\bc structure:
+
+ struct exec {
+ unsigned short a_mid;
+ unsigned short a_magic;
+ unsigned long a_text;
+ unsigned long a_data;
+ unsigned long a_bss;
+ unsigned long a_syms;
+ unsigned long a_entry;
+ unsigned long a_trsize;
+ unsigned long a_drsize;
+ };
+
+ The fields have the following functions:
+
+ _\ba_\b__\bm_\bi_\bd Contains a bit pattern that identifies binaries that were built
+ for certain sub-classes of an architecture (`machine IDs') or
+ variants of the operating system on a given architecture. The
+ kernel may not support all machine IDs on a given architecture.
+ The _\ba_\b__\bm_\bi_\bd field is not present on some architectures; in this
+
+
+ case, the _\ba_\b__\bm_\ba_\bg_\bi_\bc field has type _\bu_\bn_\bs_\bi_\bg_\bn_\be_\bd _\bl_\bo_\bn_\bg.
+
+ _\ba_\b__\bm_\ba_\bg_\bi_\bc Contains a bit pattern (`magic number') that uniquely identi-
+ fies binary files and distinguishes different loading conven-
+ tions. The field must contain one of the following values:
+
+ OMAGIC The text and data segments immediately follow the head-
+ er and are contiguous. The kernel loads both text and
+ data segments into writable memory.
+
+ NMAGIC As with OMAGIC, text and data segments immediately fol-
+ low the header and are contiguous. However, the kernel
+ loads the text into read-only memory and loads the data
+ into writable memory at the next page boundary after
+ the text.
+
+ ZMAGIC The kernel loads individual pages on demand from the
+ binary. The header, text segment and data segment are
+ all padded by the link editor to a multiple of the page
+ size. Pages that the kernel loads from the text seg-
+ ment are read-only, while pages from the data segment
+ are writable.
+
+ _\ba_\b__\bt_\be_\bx_\bt Contains the size of the text segment in bytes.
+
+ _\ba_\b__\bd_\ba_\bt_\ba Contains the size of the data segment in bytes.
+
+ _\ba_\b__\bb_\bs_\bs Contains the number of bytes in the `bss segment' and is used
+ by the kernel to set the initial break (brk(2)) after the data
+ segment. The kernel loads the program so that this amount of
+ writable memory appears to follow the data segment and initial-
+ ly reads as zeroes.
+
+ _\ba_\b__\bs_\by_\bm_\bs Contains the size in bytes of the symbol table section.
+
+ _\ba_\b__\be_\bn_\bt_\br_\by Contains the address in memory of the entry point of the pro-
+ gram after the kernel has loaded it; the kernel starts the exe-
+ cution of the program from the machine instruction at this ad-
+ dress.
+
+ _\ba_\b__\bt_\br_\bs_\bi_\bz_\be Contains the size in bytes of the text relocation table.
+
+ _\ba_\b__\bd_\br_\bs_\bi_\bz_\be Contains the size in bytes of the data relocation table.
+
+ The _\ba_\b._\bo_\bu_\bt_\b._\bh include file defines several macros which use an _\be_\bx_\be_\bc struc-
+ ture to test consistency or to locate section offsets in the binary file.
+
+ N\bN_\b_B\bBA\bAD\bDM\bMA\bAG\bG(_\be_\bx_\be_\bc) Nonzero if the _\ba_\b__\bm_\ba_\bg_\bi_\bc field does not contain a recog-
+ nized value.
+
+ N\bN_\b_T\bTX\bXT\bTO\bOF\bFF\bF(_\be_\bx_\be_\bc) The byte offset in the binary file of the beginning of
+ the text segment.
+
+ N\bN_\b_S\bSY\bYM\bMO\bOF\bFF\bF(_\be_\bx_\be_\bc) The byte offset of the beginning of the symbol table.
+
+ N\bN_\b_S\bST\bTR\bRO\bOF\bFF\bF(_\be_\bx_\be_\bc) The byte offset of the beginning of the string table.
+
+ Relocation records have a standard format which is described by the
+ _\br_\be_\bl_\bo_\bc_\ba_\bt_\bi_\bo_\bn_\b__\bi_\bn_\bf_\bo structure:
+
+ struct relocation_info {
+ int r_address;
+ unsigned int r_symbolnum : 24,
+ r_pcrel : 1,
+ r_length : 2,
+ r_extern : 1,
+ : 4;
+ };
+
+ The _\br_\be_\bl_\bo_\bc_\ba_\bt_\bi_\bo_\bn_\b__\bi_\bn_\bf_\bo fields are used as follows:
+
+ _\br_\b__\ba_\bd_\bd_\br_\be_\bs_\bs Contains the byte offset of a pointer that needs to be link-
+ edited. Text relocation offsets are reckoned from the start
+ of the text segment, and data relocation offsets from the
+ start of the data segment. The link editor adds the value
+ that is already stored at this offset into the new value
+ that it computes using this relocation record.
+
+ _\br_\b__\bs_\by_\bm_\bb_\bo_\bl_\bn_\bu_\bm Contains the ordinal number of a symbol structure in the
+ symbol table (it is _\bn_\bo_\bt a byte offset). After the link edi-
+ tor resolves the absolute address for this symbol, it adds
+ that address to the pointer that is undergoing relocation.
+ (If the _\br_\b__\be_\bx_\bt_\be_\br_\bn bit is clear, the situation is different;
+ see below.)
+
+ _\br_\b__\bp_\bc_\br_\be_\bl If this is set, the link editor assumes that it is updating
+ a pointer that is part of a machine code instruction using
+ pc-relative addressing. The address of the relocated point-
+ er is implicitly added to its value when the running program
+ uses it.
+
+ _\br_\b__\bl_\be_\bn_\bg_\bt_\bh Contains the log base 2 of the length of the pointer in
+ bytes; 0 for 1-byte displacements, 1 for 2-byte displace-
+ ments, 2 for 4-byte displacements.
+
+ _\br_\b__\be_\bx_\bt_\be_\br_\bn Set if this relocation requires an external reference; the
+ link editor must use a symbol address to update the pointer.
+ When the _\br_\b__\be_\bx_\bt_\be_\br_\bn bit is clear, the relocation is `local';
+ the link editor updates the pointer to reflect changes in
+ the load addresses of the various segments, rather than
+ changes in the value of a symbol. In this case, the content
+ of the _\br_\b__\bs_\by_\bm_\bb_\bo_\bl_\bn_\bu_\bm field is an _\bn_\b__\bt_\by_\bp_\be value (see below);
+ this type field tells the link editor what segment the relo-
+ cated pointer points into.
+
+ Symbols map names to addresses (or more generally, strings to values).
+ Since the link-editor adjusts addresses, a symbol's name must be used to
+ stand for its address until an absolute value has been assigned. Symbols
+ consist of a fixed-length record in the symbol table and a variable-
+ length name in the string table. The symbol table is an array of _\bn_\bl_\bi_\bs_\bt
+ structures:
+
+ struct nlist {
+ union {
+ char *n_name;
+ long n_strx;
+ } n_un;
+ unsigned char n_type;
+ char n_other;
+ short n_desc;
+ unsigned long n_value;
+ };
+
+ The fields are used as follows:
+
+ _\bn_\b__\bu_\bn_\b._\bn_\b__\bs_\bt_\br_\bx Contains a byte offset into the string table for the name of
+ this symbol. When a program accesses a symbol table with
+ the nlist(3) function, this field is replaced with the
+ _\bn_\b__\bu_\bn_\b._\bn_\b__\bn_\ba_\bm_\be field, which is a pointer to the string in memo-
+ ry.
+
+ _\bn_\b__\bt_\by_\bp_\be Used by the link editor to determine how to update the sym-
+ bol's value. The _\bn_\b__\bt_\by_\bp_\be field is broken down into three
+ sub-fields using bitmasks. The link editor treats symbols
+ with the N_EXT type bit set as `external' symbols and per-
+ mits references to them from other binary files. The N_TYPE
+ mask selects bits of interest to the link editor:
+
+ N_UNDF An undefined symbol. The link editor must locate an
+ external symbol with the same name in another binary
+ file to determine the absolute value of this symbol.
+ As a special case, if the _\bn_\b__\bv_\ba_\bl_\bu_\be field is nonzero
+ and no binary file in the link-edit defines this
+ symbol, the link-editor will resolve this symbol to
+ an address in the bss segment, reserving an amount
+ of bytes equal to _\bn_\b__\bv_\ba_\bl_\bu_\be. If this symbol is unde-
+ fined in more than one binary file and the binary
+ files do not agree on the size, the link editor
+ chooses the greatest size found across all binaries.
+
+ N_ABS An absolute symbol. The link editor does not update
+ an absolute symbol.
+
+ N_TEXT A text symbol. This symbol's value is a text ad-
+ dress and the link editor will update it when it
+ merges binary files.
+
+ N_DATA A data symbol; similar to N_TEXT but for data ad-
+ dresses. The values for text and data symbols are
+ not file offsets but addresses; to recover the file
+ offsets, it is necessary to identify the loaded ad-
+ dress of the beginning of the corresponding section
+ and subtract it, then add the offset of the section.
+
+ N_BSS A bss symbol; like text or data symbols but has no
+ corresponding offset in the binary file.
+
+ N_FN A filename symbol. The link editor inserts this
+ symbol before the other symbols from a binary file
+ when merging binary files. The name of the symbol
+ is the filename given to the link editor, and its
+ value is the first text address from that binary
+ file. Filename symbols are not needed for link-
+ editing or loading, but are useful for debuggers.
+
+ The N_STAB mask selects bits of interest to symbolic debug-
+ gers such as gdb(1); the values are described in stab(5).
+
+ _\bn_\b__\bo_\bt_\bh_\be_\br This field is currently unused.
+
+ _\bn_\b__\bd_\be_\bs_\bc Reserved for use by debuggers; passed untouched by the link
+ editor. Different debuggers use this field for different
+ purposes.
+
+ _\bn_\b__\bv_\ba_\bl_\bu_\be Contains the value of the symbol. For text, data and bss
+ symbols, this is an address; for other symbols (such as de-
+ bugger symbols), the value may be arbitrary.
+
+ The string table consists of an _\bu_\bn_\bs_\bi_\bg_\bn_\be_\bd _\bl_\bo_\bn_\bg length followed by null-
+ terminated symbol strings. The length represents the size of the entire
+ table in bytes, so its minimum value (or the offset of the first string)
+ is always 4 on 32-bit machines.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ld(1), execve(2), nlist(3), core(5), dbx(5), stab(5)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The _\ba_\b._\bo_\bu_\bt_\b._\bh include file appeared in Version 7 AT&T UNIX.
+
+B\bBU\bUG\bGS\bS
+ Since not all of the supported architectures use the _\ba_\b__\bm_\bi_\bd field, it can
+ be difficult to determine what architecture a binary will execute on
+ without examining its actual machine code. Even with a machine identifi-
+ er, the byte order of the _\be_\bx_\be_\bc header is machine-dependent.
+
+ Nobody seems to agree on what _\bb_\bs_\bs stands for.
+
+ New binary file formats may be supported in the future, and they probably
+ will not be compatible at any level with this ancient format.
+
+4.4BSD June 5, 1993 5
--- /dev/null
+ACCT(5) BSD Programmer's Manual ACCT(5)
+
+N\bNA\bAM\bME\bE
+ a\bac\bcc\bct\bt - execution accounting file
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/a\bac\bcc\bct\bt.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The kernel maintains the following _\ba_\bc_\bc_\bt information structure for all
+ processes. If a process terminates, and accounting is enabled, the kernel
+ calls the acct(2) function call to prepare and append the record to the
+ accounting file.
+
+ /*
+ * Accounting structures; these use a comp_t type which is a 3 bits base 8
+ * exponent, 13 bit fraction ``floating point'' number. Units are 1/AHZ
+ * seconds.
+ */
+ typedef u_short comp_t;
+
+ struct acct {
+ char ac_comm[10]; /* name of command */
+ comp_t ac_utime; /* user time */
+ comp_t ac_stime; /* system time */
+ comp_t ac_etime; /* elapsed time */
+ time_t ac_btime; /* starting time */
+ uid_t ac_uid; /* user id */
+ gid_t ac_gid; /* group id */
+ short ac_mem; /* memory usage average */
+ comp_t ac_io; /* count of IO blocks */
+ dev_t ac_tty; /* controlling tty */
+ #define AFORK 0x01 /* forked but not execed */
+ #define ASU 0x02 /* used super-user permissions */
+ #define ACOMPAT 0x04 /* used compatibility mode */
+ #define ACORE 0x08 /* dumped core */
+ #define AXSIG 0x10 /* killed by a signal */
+ char ac_flag; /* accounting flags */
+ };
+
+ /*
+ * 1/AHZ is the granularity of the data encoded in the comp_t fields.
+ * This is not necessarily equal to hz.
+ */
+ #define AHZ 64
+
+ #ifdef KERNEL
+ struct vnode *acctp;
+ #endif
+
+ If a terminated process was created by an execve(2), the name of the ex-
+ ecuted file (at most ten characters of it) is saved in the field _\ba_\bc_\b__\bc_\bo_\bm_\bm
+ and its status is saved by setting one of more of the following flags in
+ _\ba_\bc_\b__\bf_\bl_\ba_\bg_\b: AFORK, ASU, ACOMPAT, ACORE and ASIG.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ acct(2), execve(2), sa(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A a\bac\bcc\bct\bt file format appeared in Version 7 AT&T UNIX.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+CORE(5) BSD Programmer's Manual CORE(5)
+
+N\bNA\bAM\bME\bE
+ c\bco\bor\bre\be - memory image file format
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/p\bpa\bar\bra\bam\bm.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A small number of signals which cause abnormal termination of a process
+ also cause a record of the process's in-core state to be written to disk
+ for later examination by one of the aviailable debuggers. (See
+ sigaction(2).) This memory image is written to a file named c\bco\bor\bre\be in the
+ working directory; provided the terminated process had write permission
+ in the directory, and provided the abnormality did not caused a system
+ crash. (In this event, the decision to save the core file is arbitrary,
+ see savecore(8).)
+
+ The maximum size of a c\bco\bor\bre\be file is limited by setrlimit(2). Files which
+ would be larger than the limit are not created.
+
+ The c\bco\bor\bre\be file consists of the _\bu. area, whose size (in pages) is defined
+ by the UPAGES manifest in the <_\bs_\by_\bs_\b/_\bp_\ba_\br_\ba_\bm_\b._\bh> file. The _\bu. area starts
+ with a _\bu_\bs_\be_\br structure as given in <_\bs_\by_\bs_\b/_\bu_\bs_\be_\br_\b._\bh>. The remainder of the c\bco\bor\bre\be
+ file consists of the data pages followed by the stack pages of the pro-
+ cess image. The amount of data space image in the c\bco\bor\bre\be file is given (in
+ pages) by the variable _\bu_\b__\bd_\bs_\bi_\bz_\be in the _\bu. area. The amount of stack image
+ in the core file is given (in pages) by the variable _\bu_\b__\bs_\bs_\bi_\bz_\be in the _\bu.
+ area. The size of a ``page'' is given by the constant NBPG (also from
+ <_\bs_\by_\bs_\b/_\bp_\ba_\br_\ba_\bm_\b._\bh>).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ adb(1), dbx(1), gdb(1), kgdb(1), sigaction(2), setrlimit(2)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A c\bco\bor\bre\be file format appeared in Version 6 AT&T UNIX.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+DIR(5) BSD Programmer's Manual DIR(5)
+
+N\bNA\bAM\bME\bE
+ d\bdi\bir\br, d\bdi\bir\bre\ben\bnt\bt - directory file format
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/d\bdi\bir\br.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Directories provide a convienent hierarchical method of grouping files
+ while obscuring the underlying details of the storage medium. A directo-
+ ry file is differentiated from a plain file by a flag in its inode(5) en-
+ try. It consists of records (directory entries) each of which contain
+ information about a file and a pointer to the file itself. Directory en-
+ tries may contain other directories as well as plain files; such nested
+ directories are refered to as subdirectories. A hierarchy of directories
+ and files is formed in this manner and is called a file system (or ref-
+ ered to as a file system tree).
+
+ Each directory file contains two special directory entries; one is a
+ pointer to the directory itself called dot `.' and the other a pointer to
+ its parent directory called dot-dot `..'. Dot and dot-dot are valid path-
+ names, however, the system root directory `/', has no parent and dot-dot
+ points to itself like dot.
+
+ File system nodes are ordinary directory files on which has been grafted
+ a file system object, such as a physical disk or a partitioned area of
+ such a disk. (See mount(1) and mount(8).)
+
+ The directory entry format is defined in the file <dirent.h>:
+
+ #ifndef _DIRENT_H_
+ #define _DIRENT_H_
+
+ /*
+ * A directory entry has a struct dirent at the front of it, containing its
+ * inode number, the length of the entry, and the length of the name
+ * contained in the entry. These are followed by the name padded to a 4
+ * byte boundary with null bytes. All names are guaranteed null terminated.
+ * The maximum length of a name in a directory is MAXNAMLEN.
+ */
+
+ struct dirent {
+ u_long d_fileno; /* file number of entry */
+ u_short d_reclen; /* length of this record */
+ u_short d_namlen; /* length of string in d_name */
+ #ifdef _POSIX_SOURCE
+ char d_name[MAXNAMLEN + 1]; /* maximum name length */
+ #else
+ #define MAXNAMLEN 255
+ char d_name[MAXNAMLEN + 1]; /* maximum name length */
+ #endif
+
+ };
+
+ #ifdef _POSIX_SOURCE
+ typedef void * DIR;
+ #else
+
+ #define d_ino d_fileno /* backward compatibility */
+
+ /* definitions for library routines operating on directories. */
+ #define DIRBLKSIZ 1024
+
+ /* structure describing an open directory. */
+ typedef struct _dirdesc {
+ int dd_fd; /* file descriptor associated with directory */
+ long dd_loc; /* offset in current buffer */
+ long dd_size; /* amount of data returned by getdirentries */
+ char *dd_buf; /* data buffer */
+ int dd_len; /* size of data buffer */
+ long dd_seek; /* magic cookie returned by getdirentries */
+ } DIR;
+
+ #define dirfd(dirp) ((dirp)->dd_fd)
+
+ #ifndef NULL
+ #define NULL 0
+ #endif
+
+ #endif /* _POSIX_SOURCE */
+
+ #ifndef KERNEL
+
+ #include <sys/cdefs.h>
+
+ #endif /* !KERNEL */
+
+ #endif /* !_DIRENT_H_ */
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ fs(5) inode(5)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A d\bdi\bir\br file format appeared in Version 7 AT&T UNIX.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+DISKTAB(5) BSD Programmer's Manual DISKTAB(5)
+
+N\bNA\bAM\bME\bE
+ d\bdi\bis\bsk\bkt\bta\bab\bb - disk description file
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<d\bdi\bis\bsk\bkt\bta\bab\bb.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ D\bDi\bis\bsk\bkt\bta\bab\bb is a simple database which describes disk geometries and disk
+ partition characteristics. It is used to initialize the disk label on
+ the disk. The format is patterned after the termcap(5) terminal data
+ base. Entries in d\bdi\bis\bsk\bkt\bta\bab\bb consist of a number of `:' separated fields.
+ The first entry for each disk gives the names which are known for the
+ disk, separated by `|' characters. The last name given should be a long
+ name fully identifying the disk.
+
+ The following list indicates the normal values stored for each disk en-
+ try.
+
+ N\bNa\bam\bme\be T\bTy\byp\bpe\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn
+ ty str Type of disk (e.g. removable, winchester)
+ dt str Type of controller (e.g. SMD, ESDI, floppy)
+ ns num Number of sectors per track
+ nt num Number of tracks per cylinder
+ nc num Total number of cylinders on the disk
+ sc num Number of sectors per cylinder, nc*nt default
+ su num Number of sectors per unit, sc*nc default
+ se num Sector size in bytes, DEV_BSIZE default
+ sf bool Controller supports bad144-style bad sector forwarding
+ rm num Rotation speed, rpm, 3600 default
+ sk num Sector skew per track, default 0
+ cs num Sector skew per cylinder, default 0
+ hs num Headswitch time, usec, default 0
+ ts num One-cylinder seek time, usec, default 0
+ il num Sector interleave (n:1), 1 default
+ d[0-4] num Drive-type-dependent parameters
+ bs num Boot block size, default BBSIZE
+ sb num Superblock size, default SBSIZE
+ ba num Block size for partition `a' (bytes)
+ bd num Block size for partition `d' (bytes)
+ be num Block size for partition `e' (bytes)
+ bf num Block size for partition `f' (bytes)
+ bg num Block size for partition `g' (bytes)
+ bh num Block size for partition `h' (bytes)
+ fa num Fragment size for partition `a' (bytes)
+ fd num Fragment size for partition `d' (bytes)
+ fe num Fragment size or partition `e' (bytes)
+ ff num Fragment size for partition `f' (bytes)
+ fg num Fragment size for partition `g' (bytes)
+ fh num Fragment size for partition `h' (bytes)
+ oa num Offset of partition `a' in sectors
+ ob num Offset of partition `b' in sectors
+ oc num Offset of partition `c' in sectors
+ od num Offset of partition `d' in sectors
+ oe num Offset of partition `e' in sectors
+ of num Offset of partition `f' in sectors
+ og num Offset of partition `g' in sectors
+ oh num Offset of partition `h' in sectors
+ pa num Size of partition `a' in sectors
+ pb num Size of partition `b' in sectors
+ pc num Size of partition `c' in sectors
+ pd num Size of partition `d' in sectors
+
+
+ pe num Size of partition `e' in sectors
+ pf num Size of partition `f' in sectors
+ pg num Size of partition `g' in sectors
+ ph num Size of partition `h' in sectors
+ ta str Partition type of partition `a' (Bx 4.2 filesystem,
+ swap, etc)
+ tb str Partition type of partition `b'
+ tc str Partition type of partition `c'
+ td str Partition type of partition `d'
+ te str Partition type of partition `e'
+ tf str Partition type of partition `f'
+ tg str Partition type of partition `g'
+ th str Partition type of partition `h'
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/disktab
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getdiskbyname(3), disklabel(5), disklabel(8), newfs(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bdi\bis\bsk\bkt\bta\bab\bb description file appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+
+
+
+DUMP(5) BSD Programmer's Manual DUMP(5)
+
+
+N\bNA\bAM\bME\bE
+ dump, dumpdates - incremental dump format
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/i\bin\bno\bod\bde\be.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<p\bpr\bro\bot\bto\boc\bco\bol\bls\bs/\b/d\bdu\bum\bmp\bpr\bre\bes\bst\bto\bor\bre\be.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Tapes used by _\bd_\bu_\bm_\bp and _\br_\be_\bs_\bt_\bo_\br_\be(8) contain:
+
+ a header record
+ two groups of bit map records
+ a group of records describing directories
+ a group of records describing files
+
+ The format of the header record and of the first record of
+ each description as given in the include file _\b<_\bp_\br_\bo_\bt_\bo_\b-
+ _\bc_\bo_\bl_\bs_\b/_\bd_\bu_\bm_\bp_\br_\be_\bs_\bt_\bo_\br_\be_\b._\bh_\b> is:
+
+ #define NTREC 10
+ #define MLEN 16
+ #define MSIZ 4096
+
+ #define TS_TAPE 1
+ #define TS_INODE 2
+ #define TS_BITS 3
+ #define TS_ADDR 4
+ #define TS_END 5
+ #define TS_CLRI 6
+ #define MAGIC (int) 60011
+ #define CHECKSUM (int) 84446
+
+ struct spcl {
+ int c_type;
+ time_t c_date;
+ time_t c_ddate;
+ int c_volume;
+ daddr_t c_tapea;
+ ino_t c_inumber;
+ int c_magic;
+ int c_checksum;
+ struct dinode c_dinode;
+ int c_count;
+ char c_addr[BSIZE];
+ } spcl;
+
+ struct idates {
+ char id_name[16];
+ char id_incno;
+ time_t id_ddate;
+
+
+
+4th Berkeley Distribution June 5, 1993 1
+
+
+
+
+
+
+
+
+DUMP(5) BSD Programmer's Manual DUMP(5)
+
+
+ };
+
+ #define DUMPOUTFMT "%-16s %c %s" /* for printf */
+ /* name, incno, ctime(date) */
+ #define DUMPINFMT "%16s %c %[^\n]\n" /* inverse for scanf */
+
+ NTREC is the number of 1024 byte records in a physical
+ tape block. MLEN is the number of bits in a bit map word.
+ MSIZ is the number of bit map words.
+
+ The TS_ entries are used in the _\bc_\b__\bt_\by_\bp_\be field to indicate
+ what sort of header this is. The types and their meanings
+ are as follows:
+
+ TS_TAPE Tape volume label
+ TS_INODE A file or directory follows. The _\bc_\b__\bd_\bi_\bn_\bo_\bd_\be
+ field is a copy of the disk inode and con-
+ tains bits telling what sort of file this is.
+ TS_BITS A bit map follows. This bit map has a one
+ bit for each inode that was dumped.
+ TS_ADDR A subrecord of a file description. See
+ _\bc_\b__\ba_\bd_\bd_\br below.
+ TS_END End of tape record.
+ TS_CLRI A bit map follows. This bit map contains a
+ zero bit for all inodes that were empty on
+ the file system when dumped.
+ MAGIC All header records have this number in
+ _\bc_\b__\bm_\ba_\bg_\bi_\bc_\b.
+ CHECKSUM Header records checksum to this value.
+
+ The fields of the header structure are as follows:
+
+ c_type The type of the header.
+ c_date The date the dump was taken.
+ c_ddate The date the file system was dumped from.
+ c_volume The current volume number of the dump.
+ c_tapea The current number of this (1024-byte)
+ record.
+ c_inumber The number of the inode being dumped if this
+ is of type TS_INODE.
+ c_magic This contains the value MAGIC above, trun-
+ cated as needed.
+ c_checksum This contains whatever value is needed to
+ make the record sum to CHECKSUM.
+ c_dinode This is a copy of the inode as it appears on
+ the file system; see _\bf_\bs(5).
+ c_count The count of characters in _\bc_\b__\ba_\bd_\bd_\br_\b.
+ c_addr An array of characters describing the blocks
+ of the dumped file. A character is zero if
+ the block associated with that character was
+ not present on the file system, otherwise the
+
+
+
+4th Berkeley Distribution June 5, 1993 2
+
+
+
+
+
+
+
+
+DUMP(5) BSD Programmer's Manual DUMP(5)
+
+
+ character is non-zero. If the block was not
+ present on the file system, no block was
+ dumped; the block will be restored as a hole
+ in the file. If there is not sufficient
+ space in this record to describe all of the
+ blocks in a file, TS_ADDR records will be
+ scattered through the file, each one picking
+ up where the last left off.
+
+ Each volume except the last ends with a tapemark (read as
+ an end of file). The last volume ends with a TS_END
+ record and then the tapemark.
+
+ The structure _\bi_\bd_\ba_\bt_\be_\bs describes an entry in the file
+ _\b/_\be_\bt_\bc_\b/_\bd_\bu_\bm_\bp_\bd_\ba_\bt_\be_\bs where dump history is kept. The fields of
+ the structure are:
+
+ id_name The dumped filesystem is `/dev/_\bi_\bd_\b__\bn_\ba_\bm_\b'_\b.
+ id_incno The level number of the dump tape; see _\bd_\bu_\bm_\bp(8).
+ id_ddate The date of the incremental dump in system format
+ see _\bt_\by_\bp_\be_\bs(5).
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/dumpdates
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ dump(8), restore(8), fs(5), types(5)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4th Berkeley Distribution June 5, 1993 3
+
+
+
+
+
--- /dev/null
+
+
+
+DUMP(5) BSD Programmer's Manual DUMP(5)
+
+
+N\bNA\bAM\bME\bE
+ dump, dumpdates - incremental dump format
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/i\bin\bno\bod\bde\be.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<p\bpr\bro\bot\bto\boc\bco\bol\bls\bs/\b/d\bdu\bum\bmp\bpr\bre\bes\bst\bto\bor\bre\be.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Tapes used by _\bd_\bu_\bm_\bp and _\br_\be_\bs_\bt_\bo_\br_\be(8) contain:
+
+ a header record
+ two groups of bit map records
+ a group of records describing directories
+ a group of records describing files
+
+ The format of the header record and of the first record of
+ each description as given in the include file _\b<_\bp_\br_\bo_\bt_\bo_\b-
+ _\bc_\bo_\bl_\bs_\b/_\bd_\bu_\bm_\bp_\br_\be_\bs_\bt_\bo_\br_\be_\b._\bh_\b> is:
+
+ #define NTREC 10
+ #define MLEN 16
+ #define MSIZ 4096
+
+ #define TS_TAPE 1
+ #define TS_INODE 2
+ #define TS_BITS 3
+ #define TS_ADDR 4
+ #define TS_END 5
+ #define TS_CLRI 6
+ #define MAGIC (int) 60011
+ #define CHECKSUM (int) 84446
+
+ struct spcl {
+ int c_type;
+ time_t c_date;
+ time_t c_ddate;
+ int c_volume;
+ daddr_t c_tapea;
+ ino_t c_inumber;
+ int c_magic;
+ int c_checksum;
+ struct dinode c_dinode;
+ int c_count;
+ char c_addr[BSIZE];
+ } spcl;
+
+ struct idates {
+ char id_name[16];
+ char id_incno;
+ time_t id_ddate;
+
+
+
+4th Berkeley Distribution June 5, 1993 1
+
+
+
+
+
+
+
+
+DUMP(5) BSD Programmer's Manual DUMP(5)
+
+
+ };
+
+ #define DUMPOUTFMT "%-16s %c %s" /* for printf */
+ /* name, incno, ctime(date) */
+ #define DUMPINFMT "%16s %c %[^\n]\n" /* inverse for scanf */
+
+ NTREC is the number of 1024 byte records in a physical
+ tape block. MLEN is the number of bits in a bit map word.
+ MSIZ is the number of bit map words.
+
+ The TS_ entries are used in the _\bc_\b__\bt_\by_\bp_\be field to indicate
+ what sort of header this is. The types and their meanings
+ are as follows:
+
+ TS_TAPE Tape volume label
+ TS_INODE A file or directory follows. The _\bc_\b__\bd_\bi_\bn_\bo_\bd_\be
+ field is a copy of the disk inode and con-
+ tains bits telling what sort of file this is.
+ TS_BITS A bit map follows. This bit map has a one
+ bit for each inode that was dumped.
+ TS_ADDR A subrecord of a file description. See
+ _\bc_\b__\ba_\bd_\bd_\br below.
+ TS_END End of tape record.
+ TS_CLRI A bit map follows. This bit map contains a
+ zero bit for all inodes that were empty on
+ the file system when dumped.
+ MAGIC All header records have this number in
+ _\bc_\b__\bm_\ba_\bg_\bi_\bc_\b.
+ CHECKSUM Header records checksum to this value.
+
+ The fields of the header structure are as follows:
+
+ c_type The type of the header.
+ c_date The date the dump was taken.
+ c_ddate The date the file system was dumped from.
+ c_volume The current volume number of the dump.
+ c_tapea The current number of this (1024-byte)
+ record.
+ c_inumber The number of the inode being dumped if this
+ is of type TS_INODE.
+ c_magic This contains the value MAGIC above, trun-
+ cated as needed.
+ c_checksum This contains whatever value is needed to
+ make the record sum to CHECKSUM.
+ c_dinode This is a copy of the inode as it appears on
+ the file system; see _\bf_\bs(5).
+ c_count The count of characters in _\bc_\b__\ba_\bd_\bd_\br_\b.
+ c_addr An array of characters describing the blocks
+ of the dumped file. A character is zero if
+ the block associated with that character was
+ not present on the file system, otherwise the
+
+
+
+4th Berkeley Distribution June 5, 1993 2
+
+
+
+
+
+
+
+
+DUMP(5) BSD Programmer's Manual DUMP(5)
+
+
+ character is non-zero. If the block was not
+ present on the file system, no block was
+ dumped; the block will be restored as a hole
+ in the file. If there is not sufficient
+ space in this record to describe all of the
+ blocks in a file, TS_ADDR records will be
+ scattered through the file, each one picking
+ up where the last left off.
+
+ Each volume except the last ends with a tapemark (read as
+ an end of file). The last volume ends with a TS_END
+ record and then the tapemark.
+
+ The structure _\bi_\bd_\ba_\bt_\be_\bs describes an entry in the file
+ _\b/_\be_\bt_\bc_\b/_\bd_\bu_\bm_\bp_\bd_\ba_\bt_\be_\bs where dump history is kept. The fields of
+ the structure are:
+
+ id_name The dumped filesystem is `/dev/_\bi_\bd_\b__\bn_\ba_\bm_\b'_\b.
+ id_incno The level number of the dump tape; see _\bd_\bu_\bm_\bp(8).
+ id_ddate The date of the incremental dump in system format
+ see _\bt_\by_\bp_\be_\bs(5).
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/dumpdates
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ dump(8), restore(8), fs(5), types(5)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4th Berkeley Distribution June 5, 1993 3
+
+
+
+
+
--- /dev/null
+FS(5) BSD Programmer's Manual FS(5)
+
+N\bNA\bAM\bME\bE
+ f\bfs\bs, i\bin\bno\bod\bde\be - format of file system volume
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<u\buf\bfs\bs/\b/f\bfs\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<u\buf\bfs\bs/\b/i\bin\bno\bod\bde\be.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The files <_\bf_\bs_\b._\bh> and <_\bi_\bn_\bo_\bd_\be_\b._\bh> declare several structures, defined vari-
+ ables and macros which are used to create and manage the underlying for-
+ mat of file system objects on random access devices (disks).
+
+ The block size and number of blocks which comprise a file system are pa-
+ rameters of the file system. Sectors beginning at BBLOCK and continuing
+ for BBSIZE are used for a disklabel and for some hardware primary and
+ secondary bootstrapping programs.
+
+ The actual file system begins at sector SBLOCK with the _\bs_\bu_\bp_\be_\br_\b-_\bb_\bl_\bo_\bc_\bk that
+ is of size SBSIZE. The following structure described the super-block and
+ is from the file <_\bu_\bf_\bs_\b/_\bf_\bs_\b._\bh>:
+
+ #define FS_MAGIC 0x011954
+ struct fs {
+ struct fs *fs_link; /* linked list of file systems */
+ struct fs *fs_rlink; /* used for incore super blocks */
+ daddr_t fs_sblkno; /* addr of super-block in filesys */
+ daddr_t fs_cblkno; /* offset of cyl-block in filesys */
+ daddr_t fs_iblkno; /* offset of inode-blocks in filesys */
+ daddr_t fs_dblkno; /* offset of first data after cg */
+ long fs_cgoffset; /* cylinder group offset in cylinder */
+ long fs_cgmask; /* used to calc mod fs_ntrak */
+ time_t fs_time; /* last time written */
+ long fs_size; /* number of blocks in fs */
+ long fs_dsize; /* number of data blocks in fs */
+ long fs_ncg; /* number of cylinder groups */
+ long fs_bsize; /* size of basic blocks in fs */
+ long fs_fsize; /* size of frag blocks in fs */
+ long fs_frag; /* number of frags in a block in fs */
+ /* these are configuration parameters */
+ long fs_minfree; /* minimum percentage of free blocks */
+ long fs_rotdelay; /* num of ms for optimal next block */
+ long fs_rps; /* disk revolutions per second */
+ /* these fields can be computed from the others */
+ long fs_bmask; /* ``blkoff'' calc of blk offsets */
+ long fs_fmask; /* ``fragoff'' calc of frag offsets */
+ long fs_bshift; /* ``lblkno'' calc of logical blkno */
+ long fs_fshift; /* ``numfrags'' calc number of frags */
+ /* these are configuration parameters */
+ long fs_maxcontig; /* max number of contiguous blks */
+ long fs_maxbpg; /* max number of blks per cyl group */
+ /* these fields can be computed from the others */
+ long fs_fragshift; /* block to frag shift */
+ long fs_fsbtodb; /* fsbtodb and dbtofsb shift constant */
+ long fs_sbsize; /* actual size of super block */
+ long fs_csmask; /* csum block offset */
+ long fs_csshift; /* csum block number */
+ long fs_nindir; /* value of NINDIR */
+ long fs_inopb; /* value of INOPB */
+ long fs_nspf; /* value of NSPF */
+ /* yet another configuration parameter */
+ long fs_optim; /* optimization preference, see below */
+ /* these fields are derived from the hardware */
+ long fs_npsect; /* # sectors/track including spares */
+ long fs_interleave; /* hardware sector interleave */
+ long fs_trackskew; /* sector 0 skew, per track */
+ long fs_headswitch; /* head switch time, usec */
+ long fs_trkseek; /* track-to-track seek, usec */
+ /* sizes determined by number of cylinder groups and their sizes */
+ daddr_t fs_csaddr; /* blk addr of cyl grp summary area */
+ long fs_cssize; /* size of cyl grp summary area */
+ long fs_cgsize; /* cylinder group size */
+ /* these fields are derived from the hardware */
+ long fs_ntrak; /* tracks per cylinder */
+ long fs_nsect; /* sectors per track */
+ long fs_spc; /* sectors per cylinder */
+ /* this comes from the disk driver partitioning */
+ long fs_ncyl; /* cylinders in file system */
+ /* these fields can be computed from the others */
+ long fs_cpg; /* cylinders per group */
+ long fs_ipg; /* inodes per group */
+ long fs_fpg; /* blocks per group * fs_frag */
+ /* this data must be re-computed after crashes */
+ struct csum fs_cstotal; /* cylinder summary information */
+ /* these fields are cleared at mount time */
+ char fs_fmod; /* super block modified flag */
+ char fs_clean; /* file system is clean flag */
+ char fs_ronly; /* mounted read-only flag */
+ char fs_flags; /* currently unused flag */
+ char fs_fsmnt[MAXMNTLEN]; /* name mounted on */
+ /* these fields retain the current block allocation info */
+ long fs_cgrotor; /* last cg searched */
+ struct csum *fs_csp[MAXCSBUFS]; /* list of fs_cs info buffers */
+ long fs_cpc; /* cyl per cycle in postbl */
+ short fs_opostbl[16][8]; /* old rotation block list head */
+ long fs_sparecon[56]; /* reserved for future constants */
+ quad fs_qbmask; /* ~fs_bmask - for use with quad size */
+ quad fs_qfmask; /* ~fs_fmask - for use with quad size */
+ long fs_postblformat; /* format of positional layout tables */
+ long fs_nrpos; /* number of rotaional positions */
+ long fs_postbloff; /* (short) rotation block list head */
+ long fs_rotbloff; /* (u_char) blocks for each rotation */
+ long fs_magic; /* magic number */
+ u_char fs_space[1]; /* list of blocks for each rotation */
+ /* actually longer */
+ };
+
+ Each disk drive contains some number of file systems. A file system con-
+ sists of a number of cylinder groups. Each cylinder group has inodes and
+ data.
+
+ A file system is described by its super-block, which in turn describes
+ the cylinder groups. The super-block is critical data and is replicated
+ in each cylinder group to protect against catastrophic loss. This is
+ done at file system creation time and the critical super-block data does
+ not change, so the copies need not be referenced further unless disaster
+ strikes.
+
+ Addresses stored in inodes are capable of addressing fragments of
+ `blocks'. File system blocks of at most size MAXBSIZE can be optionally
+ broken into 2, 4, or 8 pieces, each of which is addressable; these pieces
+ may be DEV_BSIZE, or some multiple of a DEV_BSIZE unit.
+
+ Large files consist of exclusively large data blocks. To avoid undue
+ wasted disk space, the last data block of a small file is allocated as
+ only as many fragments of a large block as are necessary. The file sys-
+ tem format retains only a single pointer to such a fragment, which is a
+ piece of a single large block that has been divided. The size of such a
+ fragment is determinable from information in the inode, using the
+ b\bbl\blk\bks\bsi\biz\bze\be(_\bf_\bs, _\bi_\bp, _\bl_\bb_\bn) macro.
+
+ The file system records space availability at the fragment level; to de-
+ termine block availability, aligned fragments are examined.
+
+ The root inode is the root of the file system. Inode 0 can't be used for
+ normal purposes and historically bad blocks were linked to inode 1, thus
+ the root inode is 2 (inode 1 is no longer used for this purpose, however
+ numerous dump tapes make this assumption, so we are stuck with it).
+
+ The _\bf_\bs_\b__\bm_\bi_\bn_\bf_\br_\be_\be element gives the minimum acceptable percentage of file
+ system blocks that may be free. If the freelist drops below this level
+ only the super-user may continue to allocate blocks. The _\bf_\bs_\b__\bm_\bi_\bn_\bf_\br_\be_\be ele-
+ ment may be set to 0 if no reserve of free blocks is deemed necessary,
+ however severe performance degradations will be observed if the file sys-
+ tem is run at greater than 90% full; thus the default value of _\bf_\bs_\b__\bm_\bi_\bn_\bf_\br_\be_\be
+ is 10%.
+
+ Empirically the best trade-off between block fragmentation and overall
+ disk utilization at a loading of 90% comes with a fragmentation of 8,
+ thus the default fragment size is an eighth of the block size.
+
+ The element _\bf_\bs_\b__\bo_\bp_\bt_\bi_\bm specifies whether the file system should try to min-
+ imize the time spent allocating blocks, or if it should attempt to mini-
+ mize the space fragmentation on the disk. If the value of fs_minfree
+ (see above) is less than 10%, then the file system defaults to optimizing
+ for space to avoid running out of full sized blocks. If the value of
+ minfree is greater than or equal to 10%, fragmentation is unlikely to be
+ problematical, and the file system defaults to optimizing for time.
+
+ _\bC_\by_\bl_\bi_\bn_\bd_\be_\br _\bg_\br_\bo_\bu_\bp _\br_\be_\bl_\ba_\bt_\be_\bd _\bl_\bi_\bm_\bi_\bt_\bs: Each cylinder keeps track of the avail-
+ ability of blocks at different rotational positions, so that sequential
+ blocks can be laid out with minimum rotational latency. With the default
+ of 8 distinguished rotational positions, the resolution of the summary
+ information is 2ms for a typical 3600 rpm drive.
+
+ The element _\bf_\bs_\b__\br_\bo_\bt_\bd_\be_\bl_\ba_\by gives the minimum number of milliseconds to ini-
+ tiate another disk transfer on the same cylinder. It is used in deter-
+ mining the rotationally optimal layout for disk blocks within a file; the
+ default value for _\bf_\bs_\b__\br_\bo_\bt_\bd_\be_\bl_\ba_\by is 2ms.
+
+ Each file system has a statically allocated number of inodes. An inode
+ is allocated for each NBPI bytes of disk space. The inode allocation
+ strategy is extremely conservative.
+
+ MINBSIZE is the smallest allowable block size. With a MINBSIZE of 4096
+ it is possible to create files of size 2^32 with only two levels of indi-
+ rection. MINBSIZE must be big enough to hold a cylinder group block,
+ thus changes to (_\bs_\bt_\br_\bu_\bc_\bt _\bc_\bg) must keep its size within MINBSIZE. Note that
+ super-blocks are never more than size SBSIZE.
+
+ The path name on which the file system is mounted is maintained in
+ _\bf_\bs_\b__\bf_\bs_\bm_\bn_\bt. MAXMNTLEN defines the amount of space allocated in the super-
+ block for this name. The limit on the amount of summary information per
+ file system is defined by MAXCSBUFS. For a 4096 byte block size, it is
+ currently parameterized for a maximum of two million cylinders.
+
+ Per cylinder group information is summarized in blocks allocated from the
+ first cylinder group's data blocks. These blocks are read in from
+ _\bf_\bs_\b__\bc_\bs_\ba_\bd_\bd_\br (size _\bf_\bs_\b__\bc_\bs_\bs_\bi_\bz_\be) in addition to the super-block.
+
+ N\bN.\b.B\bB.\b.:\b: sizeof(_\bs_\bt_\br_\bu_\bc_\bt _\bc_\bs_\bu_\bm) must be a power of two in order for the
+ f\bfs\bs_\b_c\bcs\bs() macro to work.
+
+ The _\bS_\bu_\bp_\be_\br_\b-_\bb_\bl_\bo_\bc_\bk _\bf_\bo_\br _\ba _\bf_\bi_\bl_\be _\bs_\by_\bs_\bt_\be_\bm: The size of the rotational layout ta-
+ bles is limited by the fact that the super-block is of size SBSIZE. The
+ size of these tables is _\bi_\bn_\bv_\be_\br_\bs_\be_\bl_\by proportional to the block size of the
+ file system. The size of the tables is increased when sector sizes are
+ not powers of two, as this increases the number of cylinders included be-
+ fore the rotational pattern repeats (_\bf_\bs_\b__\bc_\bp_\bc). The size of the rotational
+ layout tables is derived from the number of bytes remaining in (_\bs_\bt_\br_\bu_\bc_\bt
+ _\bf_\bs).
+
+ The number of blocks of data per cylinder group is limited because cylin-
+ der groups are at most one block. The inode and free block tables must
+ fit into a single block after deducting space for the cylinder group
+ structure (_\bs_\bt_\br_\bu_\bc_\bt _\bc_\bg).
+
+ The _\bI_\bn_\bo_\bd_\be: The inode is the focus of all file activity in the UNIX file
+ system. There is a unique inode allocated for each active file, each
+ current directory, each mounted-on file, text file, and the root. An in-
+ ode is `named' by its device/i-number pair. For further information, see
+ the include file <_\bs_\by_\bs_\b/_\bi_\bn_\bo_\bd_\be_\b._\bh>.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A super-block structure named filsys appeared in Version 6 AT&T UNIX.
+ The file system described in this manual appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 4
--- /dev/null
+FSTAB(5) BSD Programmer's Manual FSTAB(5)
+
+N\bNA\bAM\bME\bE
+ f\bfs\bst\bta\bab\bb - static information about the filesystems
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<f\bfs\bst\bta\bab\bb.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file f\bfs\bst\bta\bab\bb contains descriptive information about the various file
+ systems. f\bfs\bst\bta\bab\bb is only read by programs, and not written; it is the duty
+ of the system administrator to properly create and maintain this file.
+ Each filesystem is described on a separate line; fields on each line are
+ separated by tabs or spaces. The order of records in f\bfs\bst\bta\bab\bb is important
+ because fsck(8), mount(8), and umount(8) sequentially iterate through
+ f\bfs\bst\bta\bab\bb doing their thing.
+
+ The first field, (_\bf_\bs_\b__\bs_\bp_\be_\bc), describes the block special device or remote
+ filesystem to be mounted. For filesystems of type _\bu_\bf_\bs, the special file
+ name is the block special file name, and not the character special file
+ name. If a program needs the character special file name, the program
+ must create it by appending a ``r'' after the last ``/'' in the special
+ file name.
+
+ The second field, (_\bf_\bs_\b__\bf_\bi_\bl_\be), describes the mount point for the filesys-
+ tem. For swap partitions, this field should be specified as ``none''.
+
+ The third field, (_\bf_\bs_\b__\bv_\bf_\bs_\bt_\by_\bp_\be), describes the type of the filesystem. The
+ system currently supports four types of filesystems:
+
+ _\bu_\bf_\bs a local UNIX filesystem
+
+ _\bm_\bf_\bs a local memory-based UNIX filesystem
+
+ _\bn_\bf_\bs a Sun Microsystems compatible ``Network File System''
+
+ _\bs_\bw_\ba_\bp a disk partition to be used for swapping
+
+ The fourth field, (_\bf_\bs_\b__\bm_\bn_\bt_\bo_\bp_\bs), describes the mount options associated
+ with the filesystem. It is formatted as a comma separated list of op-
+ tions. It contains at least the type of mount (see _\bf_\bs_\b__\bt_\by_\bp_\be below) plus
+ any additional options appropriate to the filesystem type.
+
+ If the options ``userquota'' and/or ``groupquota'' are specified, the
+ filesystem is automatically processed by the quotacheck(8) command, and
+ user and/or group disk quotas are enabled with quotaon(8). By default,
+ filesystem quotas are maintained in files named _\bq_\bu_\bo_\bt_\ba_\b._\bu_\bs_\be_\br and
+ _\bq_\bu_\bo_\bt_\ba_\b._\bg_\br_\bo_\bu_\bp which are located at the root of the associated filesystem.
+ These defaults may be overridden by putting an equal sign and an alterna-
+ tive absolute pathname following the quota option. Thus, if the user
+ quota file for _\b/_\bt_\bm_\bp is stored in _\b/_\bv_\ba_\br_\b/_\bq_\bu_\bo_\bt_\ba_\bs_\b/_\bt_\bm_\bp_\b._\bu_\bs_\be_\br, this location can
+ be specified as:
+
+ userquota=/var/quotas/tmp.user
+
+ The type of the mount is extracted from the _\bf_\bs_\b__\bm_\bn_\bt_\bo_\bp_\bs field and stored
+ separately in the _\bf_\bs_\b__\bt_\by_\bp_\be field (it is not deleted from the _\bf_\bs_\b__\bm_\bn_\bt_\bo_\bp_\bs
+ field). If _\bf_\bs_\b__\bt_\by_\bp_\be is ``rw'' or ``ro'' then the filesystem whose name is
+ given in the _\bf_\bs_\b__\bf_\bi_\bl_\be field is normally mounted read-write or read-only on
+ the specified special file. If _\bf_\bs_\b__\bt_\by_\bp_\be is ``sw'' then the special file
+ is made available as a piece of swap space by the swapon(8) command at
+ the end of the system reboot procedure. The fields other than _\bf_\bs_\b__\bs_\bp_\be_\bc
+ and _\bf_\bs_\b__\bt_\by_\bp_\be are unused. If _\bf_\bs_\b__\bt_\by_\bp_\be is specified as ``xx'' the entry is
+ ignored. This is useful to show disk partitions which are currently un-
+ used.
+
+ The fifth field, (_\bf_\bs_\b__\bf_\br_\be_\bq), is used for these filesystems by the dump(8)
+ command to determine which filesystems need to be dumped. If the fifth
+ field is not present, a value of zero is returned and dump will assume
+ that the filesystem does not need to be dumped.
+
+ The sixth field, (_\bf_\bs_\b__\bp_\ba_\bs_\bs_\bn_\bo), is used by the fsck(8) program to determine
+ the order in which filesystem checks are done at reboot time. The root
+ filesystem should be specified with a _\bf_\bs_\b__\bp_\ba_\bs_\bs_\bn_\bo of 1, and other filesys-
+ tems should have a _\bf_\bs_\b__\bp_\ba_\bs_\bs_\bn_\bo of 2. Filesystems within a drive will be
+ checked sequentially, but filesystems on different drives will be checked
+ at the same time to utilize parallelism available in the hardware. If
+ the sixth field is not present or zero, a value of zero is returned and
+ fsck will assume that the filesystem does not need to be checked.
+
+ #define FSTAB_RW "rw" /* read-write device */
+ #define FSTAB_RO "ro" /* read-only device */
+ #define FSTAB_SW "sw" /* swap device */
+ #define FSTAB_XX "xx" /* ignore totally */
+
+ struct fstab {
+ char *fs_spec; /* block special device name */
+ char *fs_file; /* filesystem path prefix */
+ char *fs_vfstype; /* type of filesystem */
+ char *fs_mntops; /* comma separated mount options */
+ char *fs_type; /* rw, ro, sw, or xx */
+ int fs_freq; /* dump frequency, in days */
+ int fs_passno; /* pass number on parallel dump */
+ };
+
+ The proper way to read records from _\bf_\bs_\bt_\ba_\bb is to use the routines
+ getfsent(3), getfsspec(3), getfstype(3), and getfsfile(3).
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/fstab The file f\bfs\bst\bta\bab\bb resides in _\b/_\be_\bt_\bc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getfsent(3)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The f\bfs\bst\bta\bab\bb file format appeared in 4.0BSD.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+GROUP(5) BSD Programmer's Manual GROUP(5)
+
+N\bNA\bAM\bME\bE
+ g\bgr\bro\bou\bup\bp - format of the group permissions file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file <_\b/_\be_\bt_\bc_\b/_\bg_\br_\bo_\bu_\bp> consists of newline separated ASCII records, one
+ per group, containing four colon `:' separated fields. These fields are
+ as follows:
+ group Name of the group.
+ passwd Group's _\be_\bn_\bc_\br_\by_\bp_\bt_\be_\bd password.
+ gid The group's decimal ID.
+ member Group members.
+
+ The _\bg_\br_\bo_\bu_\bp field is the group name used for granting file access to users
+ who are members of the group. The _\bg_\bi_\bd field is the number associated
+ with the group name. They should both be unique across the system (and
+ often across a group of systems) since they control file access. The
+ _\bp_\ba_\bs_\bs_\bw_\bd field is an optional _\be_\bn_\bc_\br_\by_\bp_\bt_\be_\bd password. This field is rarely
+ used and an asterisk is normally placed in it rather than leaving it
+ blank. The _\bm_\be_\bm_\bb_\be_\br field contains the names of users granted the priv-
+ iledges of _\bg_\br_\bo_\bu_\bp. The member names are separated by commas with out
+ spaces or newlines. A user is automatically in a group if that group was
+ specified in their _\b/_\be_\bt_\bc_\b/_\bp_\ba_\bs_\bs_\bw_\bd entry and does not need to be added to
+ that group in the _\b/_\be_\bt_\bc_\b/_\bg_\br_\bo_\bu_\bp _\bf_\bi_\bl_\be_\b.
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/group
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ setgroups(2), initgroups(3), crypt(3), passwd(1), passwd(5)
+
+B\bBU\bUG\bGS\bS
+ The passwd(1) command does not change the g\bgr\bro\bou\bup\bp passwords.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A g\bgr\bro\bou\bup\bp file format appeared in Version 6 AT&T UNIX.
+
+4.4BSD June 5, 1993 1
--- /dev/null
+HOSTS(5) BSD Programmer's Manual HOSTS(5)
+
+N\bNA\bAM\bME\bE
+ h\bho\bos\bst\bts\bs - host name data base
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The h\bho\bos\bst\bts\bs file contains information regarding the known hosts on the net-
+ work. For each host a single line should be present with the following
+ information:
+
+ official host name
+ Internet address
+ aliases
+
+ Items are separated by any number of blanks and/or tab characters. A
+ ``#'' indicates the beginning of a comment; characters up to the end of
+ the line are not interpreted by routines which search the file.
+
+ When using the name server named(8), this file provides a backup when
+ the name server is not running. For the name server, it is suggested
+ that only a few addresses be included in this file. These include ad-
+ dress for the local interfaces that ifconfig(8) needs at boot time and a
+ few machines on the local network.
+
+ This file may be created from the official host data base maintained at
+ the Network Information Control Center (NIC), though local changes may be
+ required to bring it up to date regarding unofficial aliases and/or un-
+ known hosts. As the data base maintained at NIC is incomplete, use of
+ the name server is recommend for sites on the DARPA Internet.
+
+ Network addresses are specified in the conventional ``.'' (dot) notation
+ using the inet_addr(3) routine from the Internet address manipulation li-
+ brary, inet(3). Host names may contain any printable character other
+ than a field delimiter, newline, or comment character.
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/hosts The h\bho\bos\bst\bts\bs file resides in _\b/_\be_\bt_\bc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ gethostbyname(3), ifconfig(8), named(8)
+
+ _\bN_\ba_\bm_\be _\bS_\be_\br_\bv_\be_\br _\bO_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn_\bs _\bG_\bu_\bi_\bd_\be _\bf_\bo_\br _\bB_\bI_\bN_\bD.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The h\bho\bos\bst\bts\bs file format appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+FS(5) BSD Programmer's Manual FS(5)
+
+N\bNA\bAM\bME\bE
+ f\bfs\bs, i\bin\bno\bod\bde\be - format of file system volume
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<u\buf\bfs\bs/\b/f\bfs\bs.\b.h\bh>\b>
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<u\buf\bfs\bs/\b/i\bin\bno\bod\bde\be.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The files <_\bf_\bs_\b._\bh> and <_\bi_\bn_\bo_\bd_\be_\b._\bh> declare several structures, defined vari-
+ ables and macros which are used to create and manage the underlying for-
+ mat of file system objects on random access devices (disks).
+
+ The block size and number of blocks which comprise a file system are pa-
+ rameters of the file system. Sectors beginning at BBLOCK and continuing
+ for BBSIZE are used for a disklabel and for some hardware primary and
+ secondary bootstrapping programs.
+
+ The actual file system begins at sector SBLOCK with the _\bs_\bu_\bp_\be_\br_\b-_\bb_\bl_\bo_\bc_\bk that
+ is of size SBSIZE. The following structure described the super-block and
+ is from the file <_\bu_\bf_\bs_\b/_\bf_\bs_\b._\bh>:
+
+ #define FS_MAGIC 0x011954
+ struct fs {
+ struct fs *fs_link; /* linked list of file systems */
+ struct fs *fs_rlink; /* used for incore super blocks */
+ daddr_t fs_sblkno; /* addr of super-block in filesys */
+ daddr_t fs_cblkno; /* offset of cyl-block in filesys */
+ daddr_t fs_iblkno; /* offset of inode-blocks in filesys */
+ daddr_t fs_dblkno; /* offset of first data after cg */
+ long fs_cgoffset; /* cylinder group offset in cylinder */
+ long fs_cgmask; /* used to calc mod fs_ntrak */
+ time_t fs_time; /* last time written */
+ long fs_size; /* number of blocks in fs */
+ long fs_dsize; /* number of data blocks in fs */
+ long fs_ncg; /* number of cylinder groups */
+ long fs_bsize; /* size of basic blocks in fs */
+ long fs_fsize; /* size of frag blocks in fs */
+ long fs_frag; /* number of frags in a block in fs */
+ /* these are configuration parameters */
+ long fs_minfree; /* minimum percentage of free blocks */
+ long fs_rotdelay; /* num of ms for optimal next block */
+ long fs_rps; /* disk revolutions per second */
+ /* these fields can be computed from the others */
+ long fs_bmask; /* ``blkoff'' calc of blk offsets */
+ long fs_fmask; /* ``fragoff'' calc of frag offsets */
+ long fs_bshift; /* ``lblkno'' calc of logical blkno */
+ long fs_fshift; /* ``numfrags'' calc number of frags */
+ /* these are configuration parameters */
+ long fs_maxcontig; /* max number of contiguous blks */
+ long fs_maxbpg; /* max number of blks per cyl group */
+ /* these fields can be computed from the others */
+ long fs_fragshift; /* block to frag shift */
+ long fs_fsbtodb; /* fsbtodb and dbtofsb shift constant */
+ long fs_sbsize; /* actual size of super block */
+ long fs_csmask; /* csum block offset */
+ long fs_csshift; /* csum block number */
+ long fs_nindir; /* value of NINDIR */
+ long fs_inopb; /* value of INOPB */
+ long fs_nspf; /* value of NSPF */
+ /* yet another configuration parameter */
+ long fs_optim; /* optimization preference, see below */
+ /* these fields are derived from the hardware */
+ long fs_npsect; /* # sectors/track including spares */
+ long fs_interleave; /* hardware sector interleave */
+ long fs_trackskew; /* sector 0 skew, per track */
+ long fs_headswitch; /* head switch time, usec */
+ long fs_trkseek; /* track-to-track seek, usec */
+ /* sizes determined by number of cylinder groups and their sizes */
+ daddr_t fs_csaddr; /* blk addr of cyl grp summary area */
+ long fs_cssize; /* size of cyl grp summary area */
+ long fs_cgsize; /* cylinder group size */
+ /* these fields are derived from the hardware */
+ long fs_ntrak; /* tracks per cylinder */
+ long fs_nsect; /* sectors per track */
+ long fs_spc; /* sectors per cylinder */
+ /* this comes from the disk driver partitioning */
+ long fs_ncyl; /* cylinders in file system */
+ /* these fields can be computed from the others */
+ long fs_cpg; /* cylinders per group */
+ long fs_ipg; /* inodes per group */
+ long fs_fpg; /* blocks per group * fs_frag */
+ /* this data must be re-computed after crashes */
+ struct csum fs_cstotal; /* cylinder summary information */
+ /* these fields are cleared at mount time */
+ char fs_fmod; /* super block modified flag */
+ char fs_clean; /* file system is clean flag */
+ char fs_ronly; /* mounted read-only flag */
+ char fs_flags; /* currently unused flag */
+ char fs_fsmnt[MAXMNTLEN]; /* name mounted on */
+ /* these fields retain the current block allocation info */
+ long fs_cgrotor; /* last cg searched */
+ struct csum *fs_csp[MAXCSBUFS]; /* list of fs_cs info buffers */
+ long fs_cpc; /* cyl per cycle in postbl */
+ short fs_opostbl[16][8]; /* old rotation block list head */
+ long fs_sparecon[56]; /* reserved for future constants */
+ quad fs_qbmask; /* ~fs_bmask - for use with quad size */
+ quad fs_qfmask; /* ~fs_fmask - for use with quad size */
+ long fs_postblformat; /* format of positional layout tables */
+ long fs_nrpos; /* number of rotaional positions */
+ long fs_postbloff; /* (short) rotation block list head */
+ long fs_rotbloff; /* (u_char) blocks for each rotation */
+ long fs_magic; /* magic number */
+ u_char fs_space[1]; /* list of blocks for each rotation */
+ /* actually longer */
+ };
+
+ Each disk drive contains some number of file systems. A file system con-
+ sists of a number of cylinder groups. Each cylinder group has inodes and
+ data.
+
+ A file system is described by its super-block, which in turn describes
+ the cylinder groups. The super-block is critical data and is replicated
+ in each cylinder group to protect against catastrophic loss. This is
+ done at file system creation time and the critical super-block data does
+ not change, so the copies need not be referenced further unless disaster
+ strikes.
+
+ Addresses stored in inodes are capable of addressing fragments of
+ `blocks'. File system blocks of at most size MAXBSIZE can be optionally
+ broken into 2, 4, or 8 pieces, each of which is addressable; these pieces
+ may be DEV_BSIZE, or some multiple of a DEV_BSIZE unit.
+
+ Large files consist of exclusively large data blocks. To avoid undue
+ wasted disk space, the last data block of a small file is allocated as
+ only as many fragments of a large block as are necessary. The file sys-
+ tem format retains only a single pointer to such a fragment, which is a
+ piece of a single large block that has been divided. The size of such a
+ fragment is determinable from information in the inode, using the
+ b\bbl\blk\bks\bsi\biz\bze\be(_\bf_\bs, _\bi_\bp, _\bl_\bb_\bn) macro.
+
+ The file system records space availability at the fragment level; to de-
+ termine block availability, aligned fragments are examined.
+
+ The root inode is the root of the file system. Inode 0 can't be used for
+ normal purposes and historically bad blocks were linked to inode 1, thus
+ the root inode is 2 (inode 1 is no longer used for this purpose, however
+ numerous dump tapes make this assumption, so we are stuck with it).
+
+ The _\bf_\bs_\b__\bm_\bi_\bn_\bf_\br_\be_\be element gives the minimum acceptable percentage of file
+ system blocks that may be free. If the freelist drops below this level
+ only the super-user may continue to allocate blocks. The _\bf_\bs_\b__\bm_\bi_\bn_\bf_\br_\be_\be ele-
+ ment may be set to 0 if no reserve of free blocks is deemed necessary,
+ however severe performance degradations will be observed if the file sys-
+ tem is run at greater than 90% full; thus the default value of _\bf_\bs_\b__\bm_\bi_\bn_\bf_\br_\be_\be
+ is 10%.
+
+ Empirically the best trade-off between block fragmentation and overall
+ disk utilization at a loading of 90% comes with a fragmentation of 8,
+ thus the default fragment size is an eighth of the block size.
+
+ The element _\bf_\bs_\b__\bo_\bp_\bt_\bi_\bm specifies whether the file system should try to min-
+ imize the time spent allocating blocks, or if it should attempt to mini-
+ mize the space fragmentation on the disk. If the value of fs_minfree
+ (see above) is less than 10%, then the file system defaults to optimizing
+ for space to avoid running out of full sized blocks. If the value of
+ minfree is greater than or equal to 10%, fragmentation is unlikely to be
+ problematical, and the file system defaults to optimizing for time.
+
+ _\bC_\by_\bl_\bi_\bn_\bd_\be_\br _\bg_\br_\bo_\bu_\bp _\br_\be_\bl_\ba_\bt_\be_\bd _\bl_\bi_\bm_\bi_\bt_\bs: Each cylinder keeps track of the avail-
+ ability of blocks at different rotational positions, so that sequential
+ blocks can be laid out with minimum rotational latency. With the default
+ of 8 distinguished rotational positions, the resolution of the summary
+ information is 2ms for a typical 3600 rpm drive.
+
+ The element _\bf_\bs_\b__\br_\bo_\bt_\bd_\be_\bl_\ba_\by gives the minimum number of milliseconds to ini-
+ tiate another disk transfer on the same cylinder. It is used in deter-
+ mining the rotationally optimal layout for disk blocks within a file; the
+ default value for _\bf_\bs_\b__\br_\bo_\bt_\bd_\be_\bl_\ba_\by is 2ms.
+
+ Each file system has a statically allocated number of inodes. An inode
+ is allocated for each NBPI bytes of disk space. The inode allocation
+ strategy is extremely conservative.
+
+ MINBSIZE is the smallest allowable block size. With a MINBSIZE of 4096
+ it is possible to create files of size 2^32 with only two levels of indi-
+ rection. MINBSIZE must be big enough to hold a cylinder group block,
+ thus changes to (_\bs_\bt_\br_\bu_\bc_\bt _\bc_\bg) must keep its size within MINBSIZE. Note that
+ super-blocks are never more than size SBSIZE.
+
+ The path name on which the file system is mounted is maintained in
+ _\bf_\bs_\b__\bf_\bs_\bm_\bn_\bt. MAXMNTLEN defines the amount of space allocated in the super-
+ block for this name. The limit on the amount of summary information per
+ file system is defined by MAXCSBUFS. For a 4096 byte block size, it is
+ currently parameterized for a maximum of two million cylinders.
+
+ Per cylinder group information is summarized in blocks allocated from the
+ first cylinder group's data blocks. These blocks are read in from
+ _\bf_\bs_\b__\bc_\bs_\ba_\bd_\bd_\br (size _\bf_\bs_\b__\bc_\bs_\bs_\bi_\bz_\be) in addition to the super-block.
+
+ N\bN.\b.B\bB.\b.:\b: sizeof(_\bs_\bt_\br_\bu_\bc_\bt _\bc_\bs_\bu_\bm) must be a power of two in order for the
+ f\bfs\bs_\b_c\bcs\bs() macro to work.
+
+ The _\bS_\bu_\bp_\be_\br_\b-_\bb_\bl_\bo_\bc_\bk _\bf_\bo_\br _\ba _\bf_\bi_\bl_\be _\bs_\by_\bs_\bt_\be_\bm: The size of the rotational layout ta-
+ bles is limited by the fact that the super-block is of size SBSIZE. The
+ size of these tables is _\bi_\bn_\bv_\be_\br_\bs_\be_\bl_\by proportional to the block size of the
+ file system. The size of the tables is increased when sector sizes are
+ not powers of two, as this increases the number of cylinders included be-
+ fore the rotational pattern repeats (_\bf_\bs_\b__\bc_\bp_\bc). The size of the rotational
+ layout tables is derived from the number of bytes remaining in (_\bs_\bt_\br_\bu_\bc_\bt
+ _\bf_\bs).
+
+ The number of blocks of data per cylinder group is limited because cylin-
+ der groups are at most one block. The inode and free block tables must
+ fit into a single block after deducting space for the cylinder group
+ structure (_\bs_\bt_\br_\bu_\bc_\bt _\bc_\bg).
+
+ The _\bI_\bn_\bo_\bd_\be: The inode is the focus of all file activity in the UNIX file
+ system. There is a unique inode allocated for each active file, each
+ current directory, each mounted-on file, text file, and the root. An in-
+ ode is `named' by its device/i-number pair. For further information, see
+ the include file <_\bs_\by_\bs_\b/_\bi_\bn_\bo_\bd_\be_\b._\bh>.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A super-block structure named filsys appeared in Version 6 AT&T UNIX.
+ The file system described in this manual appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 4
--- /dev/null
+NETWORKS(5) BSD Programmer's Manual NETWORKS(5)
+
+N\bNA\bAM\bME\bE
+ n\bne\bet\btw\bwo\bor\brk\bks\bs - network name data base
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The networks file contains information regarding the known networks which
+ comprise the DARPA Internet. For each network a single line should be
+ present with the following information:
+
+ official network name
+ network number
+ aliases
+
+ Items are separated by any number of blanks and/or tab characters. A
+ ``#'' indicates the beginning of a comment; characters up to the end of
+ the line are not interpreted by routines which search the file. This
+ file is normally created from the official network data base maintained
+ at the Network Information Control Center (NIC), though local changes may
+ be required to bring it up to date regarding unofficial aliases and/or
+ unknown networks.
+
+ Network number may be specified in the conventional ``.'' (dot) notation
+ using the inet_network(3) routine from the Internet address manipulation
+ library, inet(3). Network names may contain any printable character oth-
+ er than a field delimiter, newline, or comment character.
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/networks The n\bne\bet\btw\bwo\bor\brk\bks\bs file resides in _\b/_\be_\bt_\bc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getnetent(3)
+
+B\bBU\bUG\bGS\bS
+ A name server should be used instead of a static file.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The n\bne\bet\btw\bwo\bor\brk\bks\bs file format appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+PASSWD(5) BSD Programmer's Manual PASSWD(5)
+
+N\bNA\bAM\bME\bE
+ p\bpa\bas\bss\bsw\bwd\bd - format of the password file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The p\bpa\bas\bss\bsw\bwd\bd files are files consisting of newline separated records, one
+ per user, containing ten colon (``:'') separated fields. These fields
+ are as follows:
+
+ name User's login name.
+
+ password User's _\be_\bn_\bc_\br_\by_\bp_\bt_\be_\bd password.
+
+ uid User's id.
+
+ gid User's login group id.
+
+ class User's general classification (unused).
+
+ change Password change time.
+
+ expire Account expiration time.
+
+ gecos General information about the user.
+
+ home_dir User's home directory.
+
+ shell User's login shell.
+
+ The _\bn_\ba_\bm_\be field is the login used to access the computer account, and the
+ _\bu_\bi_\bd field is the number associated with it. They should both be unique
+ across the system (and often across a group of systems) since they con-
+ trol file access.
+
+ While it is possible to have multiple entries with identical login names
+ and/or identical user id's, it is usually a mistake to do so. Routines
+ that manipulate these files will often return only one of the multiple
+ entries, and that one by random selection.
+
+ The login name must never begin with a hyphen (``-''); also, it is
+ strongly suggested that neither upper-case characters or dots (``.'') be
+ part of the name, as this tends to confuse mailers. No field may contain
+ a colon (``:'') as this has been used historically to separate the fields
+ in the user database.
+
+ The password field is the _\be_\bn_\bc_\br_\by_\bp_\bt_\be_\bd form of the password. If the
+ _\bp_\ba_\bs_\bs_\bw_\bo_\br_\bd field is empty, no password will be required to gain access to
+ the machine. This is almost invariably a mistake. Because these files
+ contain the encrypted user passwords, they should not be readable by any-
+ one without appropriate privileges.
+
+ The group field is the group that the user will be placed in upon login.
+ Since this system supports multiple groups (see groups(1)) this field
+ currently has little special meaning.
+
+ The _\bc_\bl_\ba_\bs_\bs field is currently unused. In the near future it will be a key
+ to a termcap(5) style database of user attributes.
+
+ The _\bc_\bh_\ba_\bn_\bg_\be field is the number in seconds, GMT, from the epoch, until the
+ password for the account must be changed. This field may be left empty
+ to turn off the password aging feature.
+
+ The _\be_\bx_\bp_\bi_\br_\be field is the number in seconds, GMT, from the epoch, until the
+ account expires. This field may be left empty to turn off the account
+ aging feature.
+
+ The _\bg_\be_\bc_\bo_\bs field normally contains comma (``,'') separated subfields as
+ follows:
+
+ name user's full name
+ office user's office number
+ wphone user's work phone number
+ hphone user's home phone number
+
+ This information is used by the finger(1) program.
+
+ The user's home directory is the full UNIX path name where the user will
+ be placed on login.
+
+ The shell field is the command interpreter the user prefers. If there is
+ nothing in the _\bs_\bh_\be_\bl_\bl field, the Bourne shell (_\b/_\bb_\bi_\bn_\b/_\bs_\bh) is assumed.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ chpass(1), login(1), passwd(1), getpwent(3), adduser(8),
+ pwd_mkdb(8), vipw(8)
+
+B\bBU\bUG\bGS\bS
+ User information should (and eventually will) be stored elsewhere.
+
+C\bCO\bOM\bMP\bPA\bAT\bTI\bIB\bBI\bIL\bLI\bIT\bTY\bY
+ The password file format has changed since 4.3BSD. The following awk
+ script can be used to convert your old-style password file into a new
+ style password file. The additional fields ``class'', ``change'' and
+ ``expire'' are added, but are turned off by default. Class is currently
+ not implemented, but change and expire are; to set them, use the current
+ day in seconds from the epoch + whatever number of seconds of offset you
+ want.
+
+ BEGIN { FS = ":"}
+ { print $1 ":" $2 ":" $3 ":" $4 "::0:0:" $5 ":" $6 ":" $7 }
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A p\bpa\bas\bss\bsw\bwd\bd file format appeared in Version 6 AT&T UNIX.
+
+4.4BSD June 5, 1993 2
--- /dev/null
+PHONES(5) BSD Programmer's Manual PHONES(5)
+
+N\bNA\bAM\bME\bE
+ p\bph\bho\bon\bne\bes\bs - remote host phone number data base
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file _\b/_\be_\bt_\bc_\b/_\bp_\bh_\bo_\bn_\be_\bs contains the system-wide private phone numbers for
+ the tip(1) program. This file is normally unreadable, and so may contain
+ privileged information. The format of the file is a series of lines of
+ the form: <system-name>[ \t]*<phone-number>. The system name is one of
+ those defined in the remote(5) file and the phone number is constructed
+ from any sequence of characters terminated only by ``,'' or the end of
+ the line. The ``='' and ``*'' characters are indicators to the auto call
+ units to pause and wait for a second dial tone (when going through an ex-
+ change). The ``='' is required by the DF02-AC and the ``*'' is required
+ by the BIZCOMP 1030.
+
+ Only one phone number per line is permitted. However, if more than one
+ line in the file contains the same system name tip(1) will attempt to di-
+ al each one in turn, until it establishes a connection.
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/phones
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tip(1), remote(5)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The p\bph\bho\bon\bne\bes\bs file appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+
+
+
+PLOT(5) BSD Programmer's Manual PLOT(5)
+
+
+N\bNA\bAM\bME\bE
+ plot - graphics interface
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Files of this format are produced by routines described in
+ _\bp_\bl_\bo_\bt(3X) and _\bp_\bl_\bo_\bt(3F), and are interpreted for various
+ devices by commands described in _\bp_\bl_\bo_\bt(1G). A graphics
+ file is a stream of plotting instructions. Each instruc-
+ tion consists of an ASCII letter usually followed by bytes
+ of binary information. The instructions are executed in
+ order. A point is designated by four bytes representing
+ the x and y values; each value is a signed integer. The
+ last designated point in an l\bl,\b, m\bm,\b, n\bn,\b, a\ba,\b, or p\bp instruction
+ becomes the `current point' for the next instruction. The
+ a\ba and c\bc instructions change the current point in a manner
+ dependent upon the specific device.
+
+ Each of the following descriptions begins with the name of
+ the corresponding routine in _\bp_\bl_\bo_\bt(3X).
+
+ m\bm move: The next four bytes give a new current point.
+
+ n\bn cont: Draw a line from the current point to the point
+ given by the next four bytes.
+
+ p\bp point: Plot the point given by the next four bytes.
+
+ l\bl line: Draw a line from the point given by the next four
+ bytes to the point given by the following four bytes.
+
+ t\bt label: Place the following ASCII string so that its
+ first character falls on the current point. The string
+ is terminated by a newline.
+
+ a\ba arc: The first four bytes give the center, the next
+ four give the starting point, and the last four give
+ the end point of a circular arc. The least significant
+ coordinate of the end point is used only to determine
+ the quadrant. The arc is drawn counter-clockwise.
+
+ c\bc circle: The first four bytes give the center of the
+ circle, the next two the radius.
+
+ e\be erase: Start another frame of output.
+
+ f\bf linemod: Take the following string, up to a newline, as
+ the style for drawing further lines. The styles are
+ `dotted,' `solid,' `longdashed,' `shortdashed,' and
+ `dotdashed.' Effective only in _\bp_\bl_\bo_\bt _\b4_\b0_\b1_\b4 and _\bp_\bl_\bo_\bt _\bv_\be_\br_\b.
+
+ s\bs space: The next four bytes give the lower left corner
+
+
+
+7th Edition April 29, 1991 1
+
+
+
+
+
+
+
+
+PLOT(5) BSD Programmer's Manual PLOT(5)
+
+
+ of the plotting area; the following four give the upper
+ right corner. The plot will be magnified or reduced to
+ fit the device as closely as possible.
+
+ Space settings that exactly fill the plotting area with
+ unity scaling appear below for devices supported by the
+ filters of _\bp_\bl_\bo_\bt(1G). The upper limit is just outside
+ the plotting area. In every case the plotting area is
+ taken to be square; points outside may be displayable
+ on devices whose face isn't square.
+
+ 4013 space(0, 0, 780, 780);
+ 4014 space(0, 0, 3120, 3120);
+ ver space(0, 0, 2048, 2048);
+ 300, 300s space(0, 0, 4096, 4096);
+ 450 space(0, 0, 4096, 4096);
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ plot(1G), plot(3X), plot(3F), graph(1G)
+
+B\bBU\bUG\bGS\bS
+ A _\bl_\ba_\bb_\be_\bl instruction immediately followed by a _\bc_\bo_\bn_\bt
+ instruction does the wrong thing on a 4014.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7th Edition April 29, 1991 2
+
+
+
+
+
--- /dev/null
+PRINTCAP(5) BSD Programmer's Manual PRINTCAP(5)
+
+N\bNA\bAM\bME\bE
+ p\bpr\bri\bin\bnt\btc\bca\bap\bp - printer capability data base
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ p\bpr\bri\bin\bnt\btc\bca\bap\bp
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The P\bPr\bri\bin\bnt\btc\bca\bap\bp function is a simplified version of the termcap(5) data base
+ used to describe line printers. The spooling system accesses the
+ p\bpr\bri\bin\bnt\btc\bca\bap\bp file every time it is used, allowing dynamic addition and dele-
+ tion of printers. Each entry in the data base is used to describe one
+ printer. This data base may not be substituted for, as is possible for
+ termcap, because it may allow accounting to be bypassed.
+
+ The default printer is normally _\bl_\bp, though the environment variable
+ PRINTER may be used to override this. Each spooling utility supports an
+ option, -\b-P\bP _\bp_\br_\bi_\bn_\bt_\be_\br, to allow explicit naming of a destination printer.
+
+ Refer to the _\b4_\b._\b3 _\bB_\bS_\bD _\bL_\bi_\bn_\be _\bP_\br_\bi_\bn_\bt_\be_\br _\bS_\bp_\bo_\bo_\bl_\be_\br _\bM_\ba_\bn_\bu_\ba_\bl for a complete discus-
+ sion on how setup the database for a given printer.
+
+C\bCA\bAP\bPA\bAB\bBI\bIL\bLI\bIT\bTI\bIE\bES\bS
+ Refer to termcap(5) for a description of the file layout.
+
+ N\bNa\bam\bme\be T\bTy\byp\bpe\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn
+ af str NULL name of accounting file
+ br num none if lp is a tty, set the baud
+ rate (ioctl(2) call)
+ cf str NULL cifplot data filter
+ df str NULL tex data filter (DVI format)
+ fc num 0 if lp is a tty, clear flag
+ bits (_\bs_\bg_\bt_\bt_\by_\b._\bh)
+ ff str `\f' string to send for a form
+ feed
+ fo bool false print a form feed when device
+ is opened
+ fs num 0 like `fc' but set bits
+ gf str NULL graph data filter (plot(3)
+ format
+ hl bool false print the burst header page
+ last
+ ic bool false driver supports (non
+ standard) ioctl to indent
+ printout
+ if str NULL name of text filter which
+ does accounting
+ lf str _\b/_\bd_\be_\bv_\b/_\bc_\bo_\bn_\bs_\bo_\bl_\be error logging file name
+ lo str _\bl_\bo_\bc_\bk name of lock file
+ lp str _\b/_\bd_\be_\bv_\b/_\bl_\bp device name to open for
+ output
+ mx num 1000 maximum file size (in BUFSIZ
+ blocks), zero = unlimited
+ nd str NULL next directory for list of
+ queues (unimplemented)
+ nf str NULL ditroff data filter (device
+ independent troff)
+ of str NULL name of output filtering
+ program
+ pc num 200 price per foot or page in
+ hundredths of cents
+ pl num 66 page length (in lines)
+
+
+ pw num 132 page width (in characters)
+ px num 0 page width in pixels
+ (horizontal)
+ py num 0 page length in pixels
+ (vertical)
+ rf str NULL filter for printing FORTRAN
+ style text files
+ rg str NULL restricted group. Only
+ members of group allowed
+ access
+ rm str NULL machine name for remote
+ printer
+ rp str ``lp'' remote printer name argument
+ rs bool false restrict remote users to
+ those with local accounts
+ rw bool false open the printer device for
+ reading and writing
+ sb bool false short banner (one line only)
+ sc bool false suppress multiple copies
+ sd str _\b/_\bv_\ba_\br_\b/_\bs_\bp_\bo_\bo_\bl_\b/_\bl_\bp_\bd spool directory
+ sf bool false suppress form feeds
+ sh bool false suppress printing of burst
+ page header
+ st str _\bs_\bt_\ba_\bt_\bu_\bs status file name
+ tf str NULL troff data filter (cat
+ phototypesetter)
+ tr str NULL trailer string to print when
+ queue empties
+ vf str NULL raster image filter
+ xc num 0 if lp is a tty, clear local
+ mode bits (tty(4))
+ xs num 0 like `xc' but set bits
+
+ If the local line printer driver supports indentation, the daemon must
+ understand how to invoke it.
+
+F\bFI\bIL\bLT\bTE\bER\bRS\bS
+ The lpd(8) daemon creates a pipeline of _\bf_\bi_\bl_\bt_\be_\br_\bs to process files for var-
+ ious printer types. The filters selected depend on the flags passed to
+ lpr(1). The pipeline set up is:
+
+ p pr | if regular text + pr(1)
+ none if regular text
+ c cf cifplot
+ d df DVI (tex)
+ g gf plot(3)
+ n nf ditroff
+ f rf Fortran
+ t tf troff
+ v vf raster image
+
+ The i\bif\bf filter is invoked with arguments:
+
+ i\bif\bf [-\b-c\bc] -\b-w\bw_\bw_\bi_\bd_\bt_\bh -\b-l\bl_\bl_\be_\bn_\bg_\bt_\bh -\b-i\bi_\bi_\bn_\bd_\be_\bn_\bt -\b-n\bn _\bl_\bo_\bg_\bi_\bn -\b-h\bh _\bh_\bo_\bs_\bt _\ba_\bc_\bc_\bt_\b-_\bf_\bi_\bl_\be
+
+ The -\b-c\bc flag is passed only if the -\b-l\bl flag (pass control characters liter-
+ ally) is specified to lpr. The _\bW_\bi_\bd_\bt_\bh function and _\bl_\be_\bn_\bg_\bt_\bh specify the
+ page width and length (from p\bpw\bw and p\bpl\bl respectively) in characters. The
+ -\b-n\bn and -\b-h\bh parameters specify the login name and host name of the owner of
+ the job respectively. The _\bA_\bc_\bc_\bt_\b-_\bf_\bi_\bl_\be function is passed from the a\baf\bf
+ p\bpr\bri\bin\bnt\btc\bca\bap\bp entry.
+
+ If no i\bif\bf is specified, o\bof\bf is used instead, with the distinction that o\bof\bf
+ is opened only once, while i\bif\bf is opened for every individual job. Thus,
+ i\bif\bf is better suited to performing accounting. The o\bof\bf is only given the
+ _\bw_\bi_\bd_\bt_\bh and _\bl_\be_\bn_\bg_\bt_\bh flags.
+
+ All other filters are called as:
+
+ f\bfi\bil\blt\bte\ber\br -\b-x\bx_\bw_\bi_\bd_\bt_\bh -\b-y\by_\bl_\be_\bn_\bg_\bt_\bh -\b-n\bn _\bl_\bo_\bg_\bi_\bn -\b-h\bh _\bh_\bo_\bs_\bt _\ba_\bc_\bc_\bt_\b-_\bf_\bi_\bl_\be
+
+ where _\bw_\bi_\bd_\bt_\bh and _\bl_\be_\bn_\bg_\bt_\bh are represented in pixels, specified by the p\bpx\bx and
+ p\bpy\by entries respectively.
+
+ All filters take _\bs_\bt_\bd_\bi_\bn as the file, _\bs_\bt_\bd_\bo_\bu_\bt as the printer, may log either
+ to _\bs_\bt_\bd_\be_\br_\br or using syslog(3), and must not ignore SIGINT.
+
+L\bLO\bOG\bGG\bGI\bIN\bNG\bG
+ Error messages generated by the line printer programs themselves (that
+ is, the lp* programs) are logged by syslog(3) using the LPR facility.
+ Messages printed on _\bs_\bt_\bd_\be_\br_\br of one of the filters are sent to the corre-
+ sponding l\blf\bf file. The filters may, of course, use syslog themselves.
+
+ Error messages sent to the console have a carriage return and a line feed
+ appended to them, rather than just a line feed.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ termcap(5), lpc(8), lpd(8), pac(8), lpr(1), lpq(1), lprm(1)
+
+ _\b4_\b._\b3 _\bB_\bS_\bD _\bL_\bi_\bn_\be _\bP_\br_\bi_\bn_\bt_\be_\br _\bS_\bp_\bo_\bo_\bl_\be_\br _\bM_\ba_\bn_\bu_\ba_\bl.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The p\bpr\bri\bin\bnt\btc\bca\bap\bp file format appeared in 4.2BSD..
+
+4.2 Berkeley Distribution June 5, 1993 3
--- /dev/null
+PROTOCOLS(5) BSD Programmer's Manual PROTOCOLS(5)
+
+N\bNA\bAM\bME\bE
+ p\bpr\bro\bot\bto\boc\bco\bol\bls\bs - protocol name data base
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The p\bpr\bro\bot\bto\boc\bco\bol\bls\bs file contains information regarding the known protocols
+ used in the DARPA Internet. For each protocol a single line should be
+ present with the following information:
+
+ official protocol name
+ protocol number
+ aliases
+
+ Items are separated by any number of blanks and/or tab characters. A
+ ``#'' indicates the beginning of a comment; characters up to the end of
+ the line are not interpreted by routines which search the file.
+
+ Protocol names may contain any printable character other than a field de-
+ limiter, newline, or comment character.
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/protocols The p\bpr\bro\bot\bto\boc\bco\bol\bls\bs file resides in _\b/_\be_\bt_\bc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getprotoent(3)
+
+B\bBU\bUG\bGS\bS
+ A name server should be used instead of a static file.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The p\bpr\bro\bot\bto\boc\bco\bol\bls\bs file format appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+REMOTE(5) BSD Programmer's Manual REMOTE(5)
+
+N\bNA\bAM\bME\bE
+ r\bre\bem\bmo\bot\bte\be - remote host description file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The systems known by tip(1) and their attributes are stored in an ASCII
+ file which is structured somewhat like the termcap(5) file. Each line in
+ the file provides a description for a single system. Fields are separat-
+ ed by a colon (``:''). Lines ending in a \ character with an immediately
+ following newline are continued on the next line.
+
+ The first entry is the name(s) of the host system. If there is more than
+ one name for a system, the names are separated by vertical bars. After
+ the name of the system comes the fields of the description. A field name
+ followed by an `=' sign indicates a string value follows. A field name
+ followed by a `#' sign indicates a following numeric value.
+
+ Entries named ``tip*'' and ``cu*'' are used as default entries by tip,
+ and the cu interface to tip, as follows. When tip is invoked with only
+ a phone number, it looks for an entry of the form ``tip300'', where 300
+ is the baud rate with which the connection is to be made. When the cu
+ interface is used, entries of the form ``cu300'' are used.
+
+C\bCA\bAP\bPA\bAB\bBI\bIL\bLI\bIT\bTI\bIE\bES\bS
+ Capabilities are either strings (str), numbers (num), or boolean flags
+ (bool). A string capability is specified by _\bc_\ba_\bp_\ba_\bb_\bi_\bl_\bi_\bt_\by_\b=_\bv_\ba_\bl_\bu_\be; for exam-
+ ple, ``dv=/dev/harris''. A numeric capability is specified by
+ _\bc_\ba_\bp_\ba_\bb_\bi_\bl_\bi_\bt_\by_\b#_\bv_\ba_\bl_\bu_\be; for example, ``xa#99''. A boolean capability is speci-
+ fied by simply listing the capability.
+
+ a\bat\bt (str) Auto call unit type.
+
+ b\bbr\br (num) The baud rate used in establishing a connection to the re-
+ mote host. This is a decimal number. The default baud rate is
+ 300 baud.
+
+ c\bcm\bm (str) An initial connection message to be sent to the remote
+ host. For example, if a host is reached through port selector,
+ this might be set to the appropriate sequence required to switch
+ to the host.
+
+ c\bcu\bu (str) Call unit if making a phone call. Default is the same as
+ the `dv' field.
+
+ d\bdi\bi (str) Disconnect message sent to the host when a disconnect is
+ requested by the user.
+
+ d\bdu\bu (bool) This host is on a dial-up line.
+
+ d\bdv\bv (str) UNIX device(s) to open to establish a connection. If this
+ file refers to a terminal line, tip(1) attempts to perform an ex-
+ clusive open on the device to insure only one user at a time has
+ access to the port.
+
+ e\bel\bl (str) Characters marking an end-of-line. The default is NULL.
+ `~' escapes are only recognized by tip after one of the charac-
+ ters in `el', or after a carriage-return.
+
+ f\bfs\bs (str) Frame size for transfers. The default frame size is equal
+ to BUFSIZ.
+
+ h\bhd\bd (bool) The host uses half-duplex communication, local echo should
+
+
+ be performed.
+
+ i\bie\be (str) Input end-of-file marks. The default is NULL.
+
+ o\boe\be (str) Output end-of-file string. The default is NULL. When tip
+ is transferring a file, this string is sent at end-of-file.
+
+ p\bpa\ba (str) The type of parity to use when sending data to the host.
+ This may be one of ``even'', ``odd'', ``none'', ``zero'' (always
+ set bit 8 to zero), ``one'' (always set bit 8 to 1). The default
+ is even parity.
+
+ p\bpn\bn (str) Telephone number(s) for this host. If the telephone number
+ field contains an @ sign, tip searches the file _\b/_\be_\bt_\bc_\b/_\bp_\bh_\bo_\bn_\be_\bs file
+ for a list of telephone numbers; (See phones(5).)
+
+ t\btc\bc (str) Indicates that the list of capabilities is continued in the
+ named description. This is used primarily to share common capa-
+ bility information.
+
+ Here is a short example showing the use of the capability continuation
+ feature:
+
+ UNIX-1200:\
+ :dv=/dev/cau0:el=^D^U^C^S^Q^O@:du:at=ventel:ie=#$%:oe=^D:br#1200:
+ arpavax|ax:\
+ :pn=7654321%:tc=UNIX-1200
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/remote The r\bre\bem\bmo\bot\bte\be host description file resides in _\b/_\be_\bt_\bc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ tip(1), phones(5)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The r\bre\bem\bmo\bot\bte\be file format appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+RESOLVER(5) BSD Programmer's Manual RESOLVER(5)
+
+N\bNA\bAM\bME\bE
+ r\bre\bes\bso\bol\blv\bve\ber\br - resolver configuration file
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ r\bre\bes\bso\bol\blv\bv.\b.c\bco\bon\bnf\bf
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The resolver(3) is a set of routines in the C library which provide ac-
+ cess to the Internet Domain Name System. The resolver configuration file
+ contains information that is read by the resolver routines the first time
+ they are invoked by a process. The file is designed to be human readable
+ and contains a list of keywords with values that provide various types of
+ resolver information.
+
+ On a normally configured system this file should not be necessary. The
+ only name server to be queried will be on the local machine, the domain
+ name is determined from the host name, and the domain search path is con-
+ structed from the domain name.
+
+ The different configuration options are:
+
+ n\bna\bam\bme\bes\bse\ber\brv\bve\ber\br Internet address (in dot notation) of a name server that the
+ resolver should query. Up to MAXNS (currently 3) name
+ servers may be listed, one per keyword. If there are multi-
+ ple servers, the resolver library queries them in the order
+ listed. If no n\bna\bam\bme\bes\bse\ber\brv\bve\ber\br entries are present, the default is
+ to use the name server on the local machine. (The algorithm
+ used is to try a name server, and if the query times out, try
+ the next, until out of name servers, then repeat trying all
+ the name servers until a maximum number of retries are made).
+
+ d\bdo\bom\bma\bai\bin\bn Local domain name. Most queries for names within this domain
+ can use short names relative to the local domain. If no
+ d\bdo\bom\bma\bai\bin\bn entry is present, the domain is determined from the
+ local host name returned by gethostname(2); the domain part
+ is taken to be everything after the first `.'. Finally, if
+ the host name does not contain a domain part, the root domain
+ is assumed.
+
+ s\bse\bea\bar\brc\bch\bh Search list for host-name lookup. The search list is normal-
+ ly determined from the local domain name; by default, it be-
+ gins with the local domain name, then successive parent do-
+ mains that have at least two components in their names. This
+ may be changed by listing the desired domain search path fol-
+ lowing the s\bse\bea\bar\brc\bch\bh keyword with spaces or tabs separating the
+ names. Most resolver queries will be attempted using each
+ component of the search path in turn until a match is found.
+ Note that this process may be slow and will generate a lot of
+ network traffic if the servers for the listed domains are not
+ local, and that queries will time out if no server is avail-
+ able for one of the domains.
+
+ The search list is currently limited to six domains with a
+ total of 256 characters.
+
+ The d\bdo\bom\bma\bai\bin\bn and s\bse\bea\bar\brc\bch\bh keywords are mutually exclusive. If more than one
+ instance of these keywords is present, the last instance will override.
+
+ The keyword and value must appear on a single line, and the keyword (e.g.
+ n\bna\bam\bme\bes\bse\ber\brv\bve\ber\br) must start the line. The value follows the keyword, separat-
+ ed by white space.
+
+F\bFI\bIL\bLE\bES\bS
+
+ /etc/resolv.conf The file r\bre\bes\bso\bol\blv\bv.\b.c\bco\bon\bnf\bf resides in _\b/_\be_\bt_\bc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ gethostbyname(3), resolver(3), hostname(7), named(8)
+
+ _\bN_\ba_\bm_\be _\bS_\be_\br_\bv_\be_\br _\bO_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn_\bs _\bG_\bu_\bi_\bd_\be _\bf_\bo_\br _\bB_\bI_\bN_\bD.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The r\bre\bes\bso\bol\blv\bv.\b.c\bco\bon\bnf\bf file format appeared in 4.3BSD.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+SERVICES(5) BSD Programmer's Manual SERVICES(5)
+
+N\bNA\bAM\bME\bE
+ s\bse\ber\brv\bvi\bic\bce\bes\bs - service name data base
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The s\bse\ber\brv\bvi\bic\bce\bes\bs file contains information regarding the known services
+ available in the DARPA Internet. For each service a single line should
+ be present with the following information:
+
+ official service name
+ port number
+ protocol name
+ aliases
+
+ Items are separated by any number of blanks and/or tab characters. The
+ port number and protocol name are considered a single _\bi_\bt_\be_\bm; a ``/'' is
+ used to separate the port and protocol (e.g. ``512/tcp''). A ``#'' indi-
+ cates the beginning of a comment; subsequent characters up to the end of
+ the line are not interpreted by the routines which search the file.
+
+ Service names may contain any printable character other than a field de-
+ limiter, newline, or comment character.
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/services The s\bse\ber\brv\bvi\bic\bce\bes\bs file resides in _\b/_\be_\bt_\bc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getservent(3)
+
+B\bBU\bUG\bGS\bS
+ A name server should be used instead of a static file.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The s\bse\ber\brv\bvi\bic\bce\bes\bs file format appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+SHELLS(5) BSD Programmer's Manual SHELLS(5)
+
+N\bNA\bAM\bME\bE
+ s\bsh\bhe\bel\bll\bls\bs - shell database
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The s\bsh\bhe\bel\bll\bls\bs file contains a list of the shells on the system. For each
+ shell a single line should be present, consisting of the shell's path,
+ relative to root.
+
+ A hash mark (``#'') indicates the beginning of a comment; subsequent
+ characters up to the end of the line are not interpreted by the routines
+ which search the file. Blank lines are also ignored.
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/shells The s\bsh\bhe\bel\bll\bls\bs file resides in _\b/_\be_\bt_\bc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ getusershell(3)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The s\bsh\bhe\bel\bll\bls\bs file format appeared in 4.3BSD-Tahoe.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+STAB(5) BSD Programmer's Manual STAB(5)
+
+N\bNA\bAM\bME\bE
+ s\bst\bta\bab\bb - symbol table types
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bst\bta\bab\bb.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file <_\bs_\bt_\ba_\bb_\b._\bh> defines some of the symbol table _\bn_\b__\bt_\by_\bp_\be field values
+ for a.out files. These are the types for permanent symbols (i.e. not lo-
+ cal labels, etc.) used by the old debugger _\bs_\bd_\bb and the Berkeley Pascal
+ compiler pc(1). Symbol table entries can be produced by the _\b._\bs_\bt_\ba_\bb_\bs as-
+ sembler directive. This allows one to specify a double-quote delimited
+ name, a symbol type, one char and one short of information about the sym-
+ bol, and an unsigned long (usually an address). To avoid having to pro-
+ duce an explicit label for the address field, the _\b._\bs_\bt_\ba_\bb_\bd directive can be
+ used to implicitly address the current location. If no name is needed,
+ symbol table entries can be generated using the _\b._\bs_\bt_\ba_\bb_\bn directive. The
+ loader promises to preserve the order of symbol table entries produced by
+ _\b._\bs_\bt_\ba_\bb directives. As described in a.out(5), an element of the symbol
+ table consists of the following structure:
+
+ /*
+ * Format of a symbol table entry.
+ */
+
+ struct nlist {
+ union {
+ char *n_name; /* for use when in-core */
+ long n_strx; /* index into file string table */
+ } n_un;
+ unsigned char n_type; /* type flag */
+ char n_other; /* unused */
+ short n_desc; /* see struct desc, below */
+ unsigned n_value; /* address or offset or line */
+ };
+
+ The low bits of the _\bn_\b__\bt_\by_\bp_\be field are used to place a symbol into at most
+ one segment, according to the following masks, defined in <_\ba_\b._\bo_\bu_\bt_\b._\bh>. A
+ symbol can be in none of these segments by having none of these segment
+ bits set.
+
+ /*
+ * Simple values for n_type.
+ */
+
+ #define N_UNDF 0x0 /* undefined */
+ #define N_ABS 0x2 /* absolute */
+ #define N_TEXT 0x4 /* text */
+ #define N_DATA 0x6 /* data */
+ #define N_BSS 0x8 /* bss */
+
+ #define N_EXT 01 /* external bit, or'ed in */
+
+ The _\bn_\b__\bv_\ba_\bl_\bu_\be field of a symbol is relocated by the linker, ld(1) as an ad-
+ dress within the appropriate segment. _\bN_\b__\bv_\ba_\bl_\bu_\be fields of symbols not in
+ any segment are unchanged by the linker. In addition, the linker will
+ discard certain symbols, according to rules of its own, unless the _\bn_\b__\bt_\by_\bp_\be
+ field has one of the following bits set:
+
+ /*
+ * Other permanent symbol table entries have some of the N_STAB bits set.
+ * These are given in <stab.h>
+ */
+
+ #define N_STAB 0xe0 /* if any of these bits set, don't discard */
+
+ This allows up to 112 (7 * 16) symbol types, split between the various
+ segments. Some of these have already been claimed. The old symbolic de-
+ bugger, _\bs_\bd_\bb, uses the following n_type values:
+
+ #define N_GSYM 0x20 /* global symbol: name,,0,type,0 */
+ #define N_FNAME 0x22 /* procedure name (f77 kludge): name,,0 */
+ #define N_FUN 0x24 /* procedure: name,,0,linenumber,address */
+ #define N_STSYM 0x26 /* static symbol: name,,0,type,address */
+ #define N_LCSYM 0x28 /* .lcomm symbol: name,,0,type,address */
+ #define N_RSYM 0x40 /* register sym: name,,0,type,register */
+ #define N_SLINE 0x44 /* src line: 0,,0,linenumber,address */
+ #define N_SSYM 0x60 /* structure elt: name,,0,type,struct_offset */
+ #define N_SO 0x64 /* source file name: name,,0,0,address */
+ #define N_LSYM 0x80 /* local sym: name,,0,type,offset */
+ #define N_SOL 0x84 /* #included file name: name,,0,0,address */
+ #define N_PSYM 0xa0 /* parameter: name,,0,type,offset */
+ #define N_ENTRY 0xa4 /* alternate entry: name,linenumber,address */
+ #define N_LBRAC 0xc0 /* left bracket: 0,,0,nesting level,address */
+ #define N_RBRAC 0xe0 /* right bracket: 0,,0,nesting level,address */
+ #define N_BCOMM 0xe2 /* begin common: name,, */
+ #define N_ECOMM 0xe4 /* end common: name,, */
+ #define N_ECOML 0xe8 /* end common (local name): ,,address */
+ #define N_LENG 0xfe /* second stab entry with length information */
+
+ where the comments give _\bs_\bd_\bb conventional use for _\b._\bs_\bt_\ba_\bb _\bs and the _\bn_\b__\bn_\ba_\bm_\be,
+ _\bn_\b__\bo_\bt_\bh_\be_\br, _\bn_\b__\bd_\be_\bs_\bc, and _\bn_\b__\bv_\ba_\bl_\bu_\be fields of the given _\bn_\b__\bt_\by_\bp_\be. _\bS_\bd_\bb uses the
+ _\bn_\b__\bd_\be_\bs_\bc field to hold a type specifier in the form used by the Portable C
+ Compiler, cc(1); see the header file _\bp_\bc_\bc_\b._\bh for details on the format of
+ these type values.
+
+ The Berkeley Pascal compiler, pc(1), uses the following _\bn_\b__\bt_\by_\bp_\be value:
+
+ #define N_PC 0x30 /* global pascal symbol: name,,0,subtype,line */
+
+ and uses the following subtypes to do type checking across separately
+ compiled files:
+
+ 1 source file name
+ 2 included file name
+ 3 global label
+ 4 global constant
+ 5 global type
+ 6 global variable
+ 7 global function
+ 8 global procedure
+ 9 external function
+ 10 external procedure
+ 11 library variable
+ 12 library routine
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ as(1), ld(1), dbx(1), a.out(5)
+
+B\bBU\bUG\bGS\bS
+ More basic types are needed.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The s\bst\bta\bab\bb file appeared in 4.0BSD.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+TERMCAP(5) BSD Programmer's Manual TERMCAP(5)
+
+N\bNA\bAM\bME\bE
+ t\bte\ber\brm\bmc\bca\bap\bp - terminal capability data base
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ t\bte\ber\brm\bmc\bca\bap\bp
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The T\bTe\ber\brm\bmc\bca\bap\bp file is a data base describing terminals, used, for example,
+ by vi(1) and curses(3). Terminals are described in t\bte\ber\brm\bmc\bca\bap\bp by giving a
+ set of capabilities that they have and by describing how operations are
+ performed. Padding requirements and initialization sequences are includ-
+ ed in t\bte\ber\brm\bmc\bca\bap\bp.
+
+ Entries in t\bte\ber\brm\bmc\bca\bap\bp consist of a number of `:'-separated fields. The
+ first entry for each terminal gives the names that are known for the ter-
+ minal, separated by `|' characters. The first name given is the most
+ common abbreviation for the terminal. The last name given should be a
+ long name fully identifying the terminal, and all others are understood
+ as synonyms for the terminal name. All names but the last should be in
+ lower case and contain no blanks; the last name may well contain upper
+ case characters and blanks for readability.
+
+ Terminal names (except for the last, verbose entry) should be chosen us-
+ ing the following conventions. The particular piece of hardware making
+ up the terminal should have a root name chosen, thus ``hp2621'' This name
+ should not contain hyphens. Modes that the hardware can be in or user
+ preferences should be indicated by appending a hyphen and an indicator of
+ the mode. Therefore, a ``vt100'' in 132-column mode would be
+ ``vt100-w''. The following suffixes should be used where possible:
+
+ S\bSu\buf\bff\bfi\bix\bx M\bMe\bea\ban\bni\bin\bng\bg E\bEx\bxa\bam\bmp\bpl\ble\be
+ -w Wide mode (more than 80 columns) vt100-w
+ -am With automatic margins (usually default) vt100-am
+ -nam Without automatic margins vt100-nam
+ -_\bn Number of lines on the
+ -na No arrow keys (leave them in local) concept100-na
+ -_\bn_\bp Number of pages of memory concept100-4p
+ -rv Reverse video concept100-rv
+
+C\bCA\bAP\bPA\bAB\bBI\bIL\bLI\bIT\bTI\bIE\bES\bS
+ The characters in the The _\bN_\bo_\bt_\be_\bs function field in the table have the fol-
+ lowing meanings (more than one may apply to a capability):
+
+ N indicates numeric parameter(s)
+ P indicates that padding may be specified
+ * indicates that padding may be based on the number of lines affected
+ o indicates capability is obsolete
+
+ ``Obsolete'' capabilities have no _\bt_\be_\br_\bm_\bi_\bn_\bf_\bo equivalents, since they were
+ considered useless, or are subsumed by other capabilities. New software
+ should not rely on them at all.
+
+ N\bNa\bam\bme\be T\bTy\byp\bpe\be N\bNo\bot\bte\bes\bs D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn
+ functions
+ ae str (P) End alternate character set.
+ AL str (NP*) Add" _\bn new blank lines
+ al str (P*) Add new blank line.
+ am bool Terminal has automatic margins.
+ as str (P) Start alternate character set.
+ bc str (o) Backspace if not. ^\b^H\bH.
+ bl str (P) Audible signal (bell).
+
+
+ bs bool (o) Terminal can backspace with ^\b^H\bH.
+ bt str (P) Back tab.
+ bw bool l\ble\be (backspace) wraps from column 0 to last
+ column.
+ CC str Terminal settable command character in
+ prototype.
+ cd str (P*) Clear to end of display.
+ ce str (P) Clear to end of line.
+ ch str (NP) Set cursor column (horizontal position).
+ cl str (P*) Clear screen and home cursor.
+ CM str (NP) Memory-relative cursor addressing.
+ cm str (NP) Screen-relative cursor motion.
+ co num Number of columns in a line (See _\bB_\bU_\bG_\bS sec-
+ tion below).
+ cr str (P) Carriage return.
+ cs str (NP) Change scrolling region (VT100).
+ ct str (P) Clear all tab stops.
+ cv str (NP) Set cursor row (vertical position).
+ da bool Display may be retained above the screen.
+ dB num (o) Milliseconds of b\bbs\bs delay needed (default
+ 0).
+ db bool Display may be retained below the screen.
+ DC str (NP*) Delete _\bn characters.
+ dC num (o) Milliseconds of c\bcr\br delay needed (default
+ 0).
+ dc str (P*) Delete character.
+ dF num (o) Milliseconds of f\bff\bf delay needed (default
+ 0).
+ DL str (NP*) Delete _\bn lines.
+ dl str (P*) Delete line.
+ dm str Enter delete mode.
+ dN num (o) Milliseconds of n\bnl\bl delay needed (default
+ 0).
+ DO str (NP*) Move cursor down: _\bn lines.
+ do str Down one line.
+ ds str Disable status line.
+ dT num (o) Milliseconds of horizontal tab delay needed
+ (default 0).
+ dV num (o) Milliseconds of vertical tab delay needed
+ (default 0).
+ ec str (NP) Erase _\bn characters.
+ ed str End delete mode.
+ ei str End insert mode.
+ eo bool Can erase overstrikes with a blank.
+ EP bool (o) Even parity.
+ es bool Escape can be used on the status line.
+ ff str (P*) Hardcopy terminal page eject.
+ fs str Return from status line.
+ gn bool Generic line type, for example dialup,
+ switch).
+ hc bool Hardcopy terminal.
+ HD bool (o) Half-duplex.
+ hd str Half-line down (forward 1/2 linefeed).
+ ho str (P) Home cursor.
+ hs bool Has extra ``status line''.
+ hu str Half-line up (reverse 1/2 linefeed).
+ hz bool Cannot print ``~'' (Hazeltine).
+ i1-i3 str Terminal initialization strings (terminfo
+ only)
+ IC str (NP*) Insert _\bn blank characters.
+ ic str (P*) Insert character.
+ if str Name of file containing initialization
+ string.
+ im str Enter insert mode.
+
+
+ in bool Insert mode distinguishes nulls.
+ iP str Pathname of program for initialization
+ (terminfo only).
+ ip str (P*) Insert pad after character inserted.
+ is str Terminal initialization string (t\bte\ber\brm\bmc\bca\bap\bp on-
+ ly).
+ it num Tabs initially every _\bn positions.
+ K1 str Sent by keypad upper left.
+ K2 str Sent by keypad upper right.
+ K3 str Sent by keypad center.
+ K4 str Sent by keypad lower left.
+ K5 str Sent by keypad lower right.
+ k0-k9 str Sent by function keys 0-9.
+ kA str Sent by insert-line key.
+ ka str Sent by clear-all-tabs key.
+ kb str Sent by backspace key.
+ kC str Sent by clear-screen or erase key.
+ kD str Sent by delete-character key.
+ kd str Sent by down-arrow key.
+ kE str Sent by clear-to-end-of-line key.
+ ke str Out of ``keypad transmit'' mode.
+ kF str Sent by scroll-forward/down key.
+ kH str Sent by home-down key.
+ kh str Sent by home key.
+ kI str Sent by insert-character or enter-insert-
+ mode key.
+ kL str Sent by delete-line key.
+ kl str Sent by left-arrow key.
+ kM str Sent by insert key while in insert mode.
+ km bool Has a ``meta'' key (shift, sets parity
+ bit).
+ kN str Sent by next-page key.
+ kn num (o) Number of function (k\bk0\b0- k\bk9\b9) keys (default
+ 0).
+ ko str (o) Termcap entries for other non-function
+ keys.
+ kP str Sent by previous-page key.
+ kR str Sent by scroll-backward/up key.
+ kr str Sent by right-arrow key.
+ kS str Sent by clear-to-end-of-screen key.
+ ks str Put terminal in ``keypad transmit'' mode.
+ kT str Sent by set-tab key.
+ kt str Sent by clear-tab key.
+ ku str Sent by up-arrow key.
+ l0-l9 str Labels on function keys if not ``f_\bn''.
+ LC bool (o) Lower-case only.
+ LE str (NP) Move cursor left _\bn positions.
+ le str (P) Move cursor left one position.
+ li num Number of lines on screen or page (See _\bB_\bU_\bG_\bS
+ section below)
+ ll str Last line, first column
+ lm num Lines of memory if > l\bli\bi (0 means varies).
+ ma str (o) Arrow key map (used by vi version 2 only).
+ mb str Turn on blinking attribute.
+ md str Turn on bold (extra bright) attribute.
+ me str Turn off all attributes.
+ mh str Turn on half-bright attribute.
+ mi bool Safe to move while in insert mode.
+ mk str Turn on blank attribute (characters
+ invisible).
+ ml str (o) Memory lock on above cursor.
+ mm str Turn on ``meta mode'' (8th bit).
+ mo str Turn off ``meta mode''.
+ mp str Turn on protected attribute.
+
+
+ mr str Turn on reverse-video attibute.
+ ms bool Safe to move in standout modes.
+ mu str (o) Memory unlock (turn off memory lock).
+ nc bool (o) No correctly-working c\bcr\br (Datamedia 2500,
+ Hazeltine 2000).
+ nd str Non-destructive space (cursor right).
+ NL bool (o) \\b\n\bn is newline, not line feed.
+ nl str (o) Newline character if not \\b\n\bn.
+ ns bool (o) Terminal is a CRT but doesn't scroll.
+ nw str (P) Newline (behaves like c\bcr\br followed by d\bdo\bo )\b).\b.
+ OP bool (o) Odd parity.
+ os bool Terminal overstrikes.
+ pb num Lowest baud where delays are required.
+ pc str Pad character (default NUL ).
+ pf str Turn off the printer.
+ pk str Program function key _\bn to type string _\bs
+ (terminfo only).
+ pl str Program function key _\bn to execute string _\bs
+ (terminfo only).
+ pO str (N) Turn on the printer for _\bn bytes.
+ po str Turn on the printer.
+ ps str Print contents of the screen.
+ pt bool (o) Has hardware tabs (may need to be set with
+ i\bis\bs )\b).\b.
+ px str Program function key _\bn to transmit string _\bs
+ (terminfo only).
+ r1-r3 str Reset terminal completely to sane modes
+ (terminfo only).
+ rc str (P) Restore cursor to position of last s\bsc\bc.
+ rf str Name of file containing reset codes.
+ RI str (NP) Move cursor right _\bn positions.
+ rp str (NP*) Repeat character _\bc _\bn times.
+ rs str Reset terminal completely to sane modes
+ (t\bte\ber\brm\bmc\bca\bap\bp only).
+ sa str (NP) Define the video attributes.
+ sc str (P) Save cursor position.
+ se str End standout mode.
+ SF str (NP*) Scroll forward _\bn lines.
+ sf str (P) Scroll text up.
+ sg num Number of garbage chars left by s\bso\bo or s\bse\be
+ (default 0).
+ so str Begin standout mode.
+ SR str (NP*) Scroll backward _\bn lines.
+ sr str (P) Scroll text down.
+ st str Set a tab in all rows, current column.
+ ta str (P) Tab to next 8-position hardware tab stop.
+ tc str Entry of similar terminal - must be last.
+ te str String to end programs that use t\bte\ber\brm\bmc\bca\bap\bp.
+ ti str String to begin programs that use t\bte\ber\brm\bmc\bca\bap\bp.
+ ts str (N) Go to status line, column _\bn.
+ UC bool (o) Upper-case only.
+ uc str Underscore one character and move past it.
+ ue str End underscore mode.
+ ug num Number of garbage chars left by u\bus\bs or u\bue\be
+ (default 0).
+ ul bool Underline character overstrikes.
+ UP str (NP*) Move cursor up _\bn lines.
+ up str Upline (cursor up).
+ us str Start underscore mode.
+ vb str Visible bell (must not move cursor).
+ ve str Make cursor appear normal (undo v\bvs\bs/ v\bvi\bi).
+ vi str Make cursor invisible.
+ vs str Make cursor very visible.
+ vt num Virtual terminal number (not supported on
+
+
+ all systems).
+ wi str (N) Set current window.
+ ws num Number of columns in status line.
+ xb bool Beehive (f1= ESC, f2=^\b^C\bC).
+ xn bool Newline ignored after 80 cols (Concept).
+ xo bool Terminal uses xoff/xon (DC3/DC1) handshak-
+ ing.
+ xr bool (o) Return acts like c\bce\be c\bcr\br n\bnl\bl (Delta Data).
+ xs bool Standout not erased by overwriting
+ (Hewlett-Packard).
+ xt bool Tabs ruin, magic char (Teleray 1061).
+ xx bool (o) Tektronix 4025 insert-line.
+
+ A\bA S\bSa\bam\bmp\bpl\ble\be E\bEn\bnt\btr\bry\by
+ The following entry, which describes the Concept-100, is among the more
+ complex entries in the t\bte\ber\brm\bmc\bca\bap\bp file as of this writing.
+
+ ca|concept100|c100|concept|c104|concept100-4p|HDS Concept-100:\
+ :al=3*\E^R:am:bl=^G:cd=16*\E^C:ce=16\E^U:cl=2*^L:cm=\Ea%+ %+ :\
+ :co#80:.cr=9^M:db:dc=16\E^A:dl=3*\E^B:do=^J:ei=\E\200:eo:im=\E^P:in:\
+ :ip=16*:is=\EU\Ef\E7\E5\E8\El\ENH\EK\E\200\Eo&\200\Eo\47\E:k1=\E5:\
+ :k2=\E6:k3=\E7:kb=^h:kd=\E<:ke=\Ex:kh=\E?:kl=\E>:kr=\E=:ks=\EX:\
+ :ku=\E;:le=^H:li#24:mb=\EC:me=\EN\200:mh=\EE:mi:mk=\EH:mp=\EI:\
+ :mr=\ED:nd=\E=:pb#9600:rp=0.2*\Er%.%+ :se=\Ed\Ee:sf=^J:so=\EE\ED:\
+ :.ta=8\t:te=\Ev \200\200\200\200\200\200\Ep\r\n:\
+ :ti=\EU\Ev 8p\Ep\r:ue=\Eg:ul:up=\E;:us=\EG:\
+ :vb=\Ek\200\200\200\200\200\200\200\200\200\200\200\200\200\200\EK:\
+ :ve=\Ew:vs=\EW:vt#8:xn:\
+ :bs:cr=^M:dC#9:dT#8:nl=^J:ta=^I:pt:
+
+ Entries may continue onto multiple lines by giving a \ as the last char-
+ acter of a line, and empty fields may be included for readability (here
+ between the last field on a line and the first field on the next). Com-
+ ments may be included on lines beginning with ``#''.
+
+ T\bTy\byp\bpe\bes\bs o\bof\bf C\bCa\bap\bpa\bab\bbi\bil\bli\bit\bti\bie\bes\bs
+ Capabilities in t\bte\ber\brm\bmc\bca\bap\bp are of three types: Boolean capabilities, which
+ indicate particular features that the terminal has; numeric capabilities,
+ giving the size of the display or the size of other attributes; and
+ string capabilities, which give character sequences that can be used to
+ perform particular terminal operations. All capabilities have two-letter
+ codes. For instance, the fact that the Concept has _\ba_\bu_\bt_\bo_\bm_\ba_\bt_\bi_\bc _\bm_\ba_\br_\bg_\bi_\bn_\bs (an
+ automatic return and linefeed when the end of a line is reached) is indi-
+ cated by the Boolean capability a\bam\bm. Hence the description of the Concept
+ includes a\bam\bm.
+
+ Numeric capabilities are followed by the character `#' then the value.
+ In the example above c\bco\bo, which indicates the number of columns the dis-
+ play has, gives the value `80' for the Concept.
+
+ Finally, string-valued capabilities, such as c\bce\be (clear-to-end-of-line se-
+ quence) are given by the two-letter code, an `=', then a string ending at
+ the next following `:'. A delay in milliseconds may appear after the `='
+ in such a capability, which causes padding characters to be supplied by
+ tputs after the remainder of the string is sent to provide this delay.
+ The delay can be either a number, such as `20', or a number followed by
+ an `*', such as `3*'. An `*' indicates that the padding required is pro-
+ portional to the number of lines affected by the operation, and the
+ amount given is the per-affected-line padding required. (In the case of
+ insert-character, the factor is still the number of _\bl_\bi_\bn_\be_\bs affected; this
+ is always 1 unless the terminal has i\bin\bn and the software uses it.) When
+ an `*' is specified, it is sometimes useful to give a delay of the form
+ `3.5' to specify a delay per line to tenths of milliseconds. (Only one
+ decimal place is allowed.)
+
+
+ A number of escape sequences are provided in the string-valued capabili-
+ ties for easy encoding of control characters there. \\b\E\bE maps to an ESC
+ character, ^\b^X\bX maps to a control-X for any appropriate X, and the se-
+ quences \\b\n\bn \\b\r\br \\b\t\bt \\b\b\bb \\b\f\bf map to linefeed, return, tab, backspace, and form-
+ feed, respectively. Finally, characters may be given as three octal dig-
+ its after a \\b\, and the characters ^\b^ and \\b\ may be given as \\b\^\b^ and \\b\\\b\. If
+ it is necessary to place a :\b: in a capability it must be escaped in octal
+ as \\b\0\b07\b72\b2. If it is necessary to place a NUL character in a string capabil-
+ ity it must be encoded as \\b\2\b20\b00\b0. (The routines that deal with t\bte\ber\brm\bmc\bca\bap\bp use
+ C strings and strip the high bits of the output very late, so that a \\b\2\b20\b00\b0
+ comes out as a \\b\0\b00\b00\b0 would.)
+
+ Sometimes individual capabilities must be commented out. To do this, put
+ a period before the capability name. For example, see the first c\bcr\br and
+ t\bta\ba in the example above.
+
+ P\bPr\bre\bep\bpa\bar\bri\bin\bng\bg D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bns\bs
+ The most effective way to prepare a terminal description is by imitating
+ the description of a similar terminal in t\bte\ber\brm\bmc\bca\bap\bp and to build up a de-
+ scription gradually, using partial descriptions with vi to check that
+ they are correct. Be aware that a very unusual terminal may expose defi-
+ ciencies in the ability of the t\bte\ber\brm\bmc\bca\bap\bp file to describe it or bugs in vi.
+ To easily test a new terminal description you are working on you can put
+ it in your home directory in a file called _\b._\bt_\be_\br_\bm_\bc_\ba_\bp and programs will
+ look there before looking in _\b/_\bu_\bs_\br_\b/_\bs_\bh_\ba_\br_\be_\b/_\bm_\bi_\bs_\bc_\b/_\bt_\be_\br_\bm_\bc_\ba_\bp. You can also set
+ the environment variable TERMPATH to a list of absolute file pathnames
+ (separated by spaces or colons), one of which contains the description
+ you are working on, and programs will search them in the order listed,
+ and nowhere else. See termcap(3). The TERMCAP environment variable is
+ usually set to the t\bte\ber\brm\bmc\bca\bap\bp entry itself to avoid reading files when
+ starting up a program.
+
+ To get the padding for insert-line right (if the terminal manufacturer
+ did not document it), a severe test is to use vi to edit _\b/_\be_\bt_\bc_\b/_\bp_\ba_\bs_\bs_\bw_\bd at
+ 9600 baud, delete roughly 16 lines from the middle of the screen, then
+ hit the `u' key several times quickly. If the display messes up, more
+ padding is usually needed. A similar test can be used for insert-
+ character.
+
+ B\bBa\bas\bsi\bic\bc C\bCa\bap\bpa\bab\bbi\bil\bli\bit\bti\bie\bes\bs
+ The number of columns on each line of the display is given by the c\bco\bo nu-
+ meric capability. If the display is a CRT, then the number of lines on
+ the screen is given by the l\bli\bi capability. If the display wraps around to
+ the beginning of the next line when the cursor reaches the right margin,
+ then it should have the a\bam\bm capability. If the terminal can clear its
+ screen, the code to do this is given by the c\bcl\bl string capability. If the
+ terminal overstrikes (rather than clearing the position when a character
+ is overwritten), it should have the o\bos\bs capability. If the terminal is a
+ printing terminal, with no soft copy unit, give it both h\bhc\bc and o\bos\bs. (o\bos\bs
+ applies to storage scope terminals, such as the Tektronix 4010 series, as
+ well as to hard copy and APL terminals.) If there is a code to move the
+ cursor to the left edge of the current row, give this as c\bcr\br. (Normally
+ this will be carriage-return, ^\b^M\bM.) If there is a code to produce an audi-
+ ble signal (bell, beep, etc. ) , give this as b\bbl\bl.
+
+ If there is a code (such as backspace) to move the cursor one position to
+ the left, that capability should be given as l\ble\be. Similarly, codes to move
+ to the right, up, and down should be given as n\bnd\bd, u\bup\bp, and d\bdo\bo, respective-
+ ly. These _\bl_\bo_\bc_\ba_\bl _\bc_\bu_\br_\bs_\bo_\br _\bm_\bo_\bt_\bi_\bo_\bn_\bs should not alter the text they pass over;
+ for example, you would not normally use ``nd= '' unless the terminal has
+ the o\bos\bs capability, because the space would erase the character moved
+ over.
+
+ A very important point here is that the local cursor motions encoded in
+ t\bte\ber\brm\bmc\bca\bap\bp have undefined behavior at the left and top edges of a CRT dis-
+ play. Programs should never attempt to backspace around the left edge,
+ unless b\bbw\bw is given, and never attempt to go up off the top using local
+ cursor motions.
+
+ In order to scroll text up, a program goes to the bottom left corner of
+ the screen and sends the s\bsf\bf (index) string. To scroll text down, a pro-
+ gram goes to the top left corner of the screen and sends the s\bsr\br (reverse
+ index) string. The strings s\bsf\bf and s\bsr\br have undefined behavior when not on
+ their respective corners of the screen. Parameterized versions of the
+ scrolling sequences are S\bSF\bF and S\bSR\bR, which have the same semantics as s\bsf\bf
+ and s\bsr\br except that they take one parameter and scroll that many lines.
+ They also have undefined behavior except at the appropriate corner of the
+ screen.
+
+ The a\bam\bm capability tells whether the cursor sticks at the right edge of
+ the screen when text is output there, but this does not necessarily apply
+ to n\bnd\bd from the last column. Leftward local motion is defined from the
+ left edge only when b\bbw\bw is given; then an l\ble\be from the left edge will move
+ to the right edge of the previous row. This is useful for drawing a box
+ around the edge of the screen, for example. If the terminal has switch-
+ selectable automatic margins, the t\bte\ber\brm\bmc\bca\bap\bp description usually assumes
+ that this feature is on, _\bi_\b._\be., a\bam\bm. If the terminal has a command that
+ moves to the first column of the next line, that command can be given as
+ n\bnw\bw (newline). It is permissible for this to clear the remainder of the
+ current line, so if the terminal has no correctly-working CR and LF it
+ may still be possible to craft a working n\bnw\bw out of one or both of them.
+
+ These capabilities suffice to describe hardcopy and ``glass-tty'' termi-
+ nals. Thus the Teletype model 33 is described as
+
+ T3|tty33|33|tty|Teletype model 33:\
+ :bl=^G:co#72:cr=^M:do=^J:hc:os:
+
+ and the Lear Siegler ADM-3 is described as
+
+ l3|adm3|3|LSI ADM-3:\
+ :am:bl=^G:cl=^Z:co#80:cr=^M:do=^J:le=^H:li#24:sf=^J:
+
+ P\bPa\bar\bra\bam\bme\bet\bte\ber\bri\biz\bze\bed\bd S\bSt\btr\bri\bin\bng\bgs\bs
+ Cursor addressing and other strings requiring parameters are described by
+ a parameterized string capability, with printf(3)-like escapes %\b%x\bx in it,
+ while other characters are passed through unchanged. For example, to ad-
+ dress the cursor the c\bcm\bm capability is given, using two parameters: the
+ row and column to move to. (Rows and columns are numbered from zero and
+ refer to the physical screen visible to the user, not to any unseen memo-
+ ry. If the terminal has memory-relative cursor addressing, that can be
+ indicated by an analogous C\bCM\bM capability.)
+
+ The %\b% encodings have the following meanings:
+
+ %% output `%'
+ %d output value as in printf %d
+ %2 output value as in printf %2d
+ %3 output value as in printf %3d
+ %. output value as in printf %c
+ %+_\bx add _\bx to value, then do %.
+ %>_\bx_\by if value > _\bx then add _\by, no output
+ %r reverse order of two parameters, no output
+ %i increment by one, no output
+ %n exclusive-or all parameters with 0140 (Datamedia 2500)
+ %B BCD (16*(value/10)) + (value%10), no output
+ %D Reverse coding (value - 2*(value%16)), no output (Delta Data).
+
+ Consider the Hewlett-Packard 2645, which, to get to row 3 and column 12,
+ needs to be sent ``\E&a12c03Y'' padded for 6 milliseconds. Note that the
+ order of the row and column coordinates is reversed here and that the row
+ and column are sent as two-digit integers. Thus its c\bcm\bm capability is
+ ``cm=6\E&%r%2c%2Y''.
+
+ The Datamedia 2500 needs the current row and column sent encoded in bina-
+ ry using ``%.''. Terminals that use ``%.'' need to be able to backspace
+ the cursor (l\ble\be) and to move the cursor up one line on the screen (u\bup\bp).
+ This is necessary because it is not always safe to transmit \\b\n\bn, ^\b^D\bD, and
+ \\b\r\br, as the system may change or discard them. (Programs using t\bte\ber\brm\bmc\bca\bap\bp
+ must set terminal modes so that tabs are not expanded, so \\b\t\bt is safe to
+ send. This turns out to be essential for the Ann Arbor 4080.)
+
+ A final example is the Lear Siegler ADM-3a, which offsets row and column
+ by a blank character, thus ``cm=\E=%+ %+ ''.
+
+ Row or column absolute cursor addressing can be given as single parameter
+ capabilities c\bch\bh (horizontal position absolute) and c\bcv\bv (vertical position
+ absolute). Sometimes these are shorter than the more general two-
+ parameter sequence (as with the Hewlett-Packard 2645) and can be used in
+ preference to c\bcm\bm. If there are parameterized local motions (_\be_\b._\bg., move _\bn
+ positions to the right) these can be given as D\bDO\bO, L\bLE\bE, R\bRI\bI, and U\bUP\bP with a
+ single parameter indicating how many positions to move. These are pri-
+ marily useful if the terminal does not have c\bcm\bm, such as the Tektronix
+ 4025.
+
+ C\bCu\bur\brs\bso\bor\br M\bMo\bot\bti\bio\bon\bns\bs
+
+ If the terminal has a fast way to home the cursor (to the very upper left
+ corner of the screen), this can be given as h\bho\bo. Similarly, a fast way of
+ getting to the lower left-hand corner can be given as l\bll\bl; this may in-
+ volve going up with u\bup\bp from the home position, but a program should never
+ do this itself (unless l\bll\bl does), because it can make no assumption about
+ the effect of moving up from the home position. Note that the home posi-
+ tion is the same as cursor address (0,0): to the top left corner of the
+ screen, not of memory. (Therefore, the ``\EH'' sequence on Hewlett-
+ Packard terminals cannot be used for h\bho\bo.)
+
+ A\bAr\bre\bea\ba C\bCl\ble\bea\bar\brs\bs
+ If the terminal can clear from the current position to the end of the
+ line, leaving the cursor where it is, this should be given as c\bce\be. If the
+ terminal can clear from the current position to the end of the display,
+ this should be given as c\bcd\bd. c\bcd\bd must only be invoked from the first column
+ of a line. (Therefore, it can be simulated by a request to delete a
+ large number of lines, if a true c\bcd\bd is not available.)
+
+ I\bIn\bns\bse\ber\brt\bt/\b/D\bDe\bel\ble\bet\bte\be L\bLi\bin\bne\be
+ If the terminal can open a new blank line before the line containing the
+ cursor, this should be given as a\bal\bl; this must be invoked only from the
+ first position of a line. The cursor must then appear at the left of the
+ newly blank line. If the terminal can delete the line that the cursor is
+ on, this should be given as d\bdl\bl; this must only be used from the first po-
+ sition on the line to be deleted. Versions of a\bal\bl and d\bdl\bl which take a
+ single parameter and insert or delete that many lines can be given as A\bAL\bL
+ and D\bDL\bL. If the terminal has a settable scrolling region (like the VT100),
+ the command to set this can be described with the c\bcs\bs capability, which
+ takes two parameters: the top and bottom lines of the scrolling region.
+ The cursor position is, alas, undefined after using this command. It is
+ possible to get the effect of insert or delete line using this command --
+ the s\bsc\bc and r\brc\bc (save and restore cursor) commands are also useful. In-
+ serting lines at the top or bottom of the screen can also be done using
+ s\bsr\br or s\bsf\bf on many terminals without a true insert/delete line, and is of-
+ ten faster even on terminals with those features.
+
+ If the terminal has the ability to define a window as part of memory
+ which all commands affect, it should be given as the parameterized string
+ w\bwi\bi. The four parameters are the starting and ending lines in memory and
+ the starting and ending columns in memory, in that order. (This terminfo
+ capability is described for completeness. It is unlikely that any
+ t\bte\ber\brm\bmc\bca\bap\bp- using program will support it.)
+
+ If the terminal can retain display memory above the screen, then the d\bda\ba
+ capability should be given; if display memory can be retained below, then
+ d\bdb\bb should be given. These indicate that deleting a line or scrolling may
+ bring non-blank lines up from below or that scrolling back with s\bsr\br may
+ bring down non-blank lines.
+
+ I\bIn\bns\bse\ber\brt\bt/\b/D\bDe\bel\ble\bet\bte\be C\bCh\bha\bar\bra\bac\bct\bte\ber\br
+ There are two basic kinds of intelligent terminals with respect to in-
+ sert/delete character that can be described using t\bte\ber\brm\bmc\bca\bap\bp. The most com-
+ mon insert/delete character operations affect only the characters on the
+ current line and shift characters off the end of the line rigidly. Other
+ terminals, such as the Concept-100 and the Perkin Elmer Owl, make a dis-
+ tinction between typed and untyped blanks on the screen, shifting upon an
+ insert or delete only to an untyped blank on the screen which is either
+ eliminated or expanded to two untyped blanks. You can determine the kind
+ of terminal you have by clearing the screen then typing text separated by
+ cursor motions. Type ``abc def'' using local cursor motions (not
+ spaces) between the ``abc'' and the ``def''. Then position the cursor be-
+ fore the ``abc'' and put the terminal in insert mode. If typing charac-
+ ters causes the rest of the line to shift rigidly and characters to fall
+ off the end, then your terminal does not distinguish between blanks and
+ untyped positions. If the ``abc'' shifts over to the ``def'' which then
+ move together around the end of the current line and onto the next as you
+ insert, then you have the second type of terminal and should give the ca-
+ pability i\bin\bn, which stands for ``insert null''. While these are two logi-
+ cally separate attributes (one line _\bv_\bs. multi-line insert mode, and spe-
+ cial treatment of untyped spaces), we have seen no terminals whose insert
+ mode cannot be described with the single attribute.
+
+ T\bTe\ber\brm\bmc\bca\bap\bp can describe both terminals that have an insert mode and termi-
+ nals that send a simple sequence to open a blank position on the current
+ line. Give as i\bim\bm the sequence to get into insert mode. Give as e\bei\bi the
+ sequence to leave insert mode. Now give as i\bic\bc any sequence that needs to
+ be sent just before each character to be inserted. Most terminals with a
+ true insert mode will not give i\bic\bc; terminals that use a sequence to open
+ a screen position should give it here. (If your terminal has both, in-
+ sert mode is usually preferable to i\bic\bc. Do not give both unless the termi-
+ nal actually requires both to be used in combination.) If post-insert
+ padding is needed, give this as a number of milliseconds in i\bip\bp (a string
+ option). Any other sequence that may need to be sent after insertion of
+ a single character can also be given in i\bip\bp. If your terminal needs to be
+ placed into an `insert mode' and needs a special code preceding each in-
+ serted character, then both i\bim\bm/ e\bei\bi and i\bic\bc can be given, and both will be
+ used. The I\bIC\bC capability, with one parameter _\bn, will repeat the effects
+ of i\bic\bc _\bn times.
+
+ It is occasionally necessary to move around while in insert mode to
+ delete characters on the same line (_\be_\b._\bg., if there is a tab after the in-
+ sertion position). If your terminal allows motion while in insert mode,
+ you can give the capability m\bmi\bi to speed up inserting in this case. Omit-
+ ting m\bmi\bi will affect only speed. Some terminals (notably Datamedia's)
+ must not have m\bmi\bi because of the way their insert mode works.
+
+ Finally, you can specify d\bdc\bc to delete a single character, D\bDC\bC with one pa-
+ rameter _\bn to delete _\bn characters, and delete mode by giving d\bdm\bm and e\bed\bd to
+ enter and exit delete mode (which is any mode the terminal needs to be
+ placed in for d\bdc\bc to work).
+
+ H\bHi\big\bgh\bhl\bli\big\bgh\bht\bti\bin\bng\bg,\b, U\bUn\bnd\bde\ber\brl\bli\bin\bni\bin\bng\bg,\b, a\ban\bnd\bd V\bVi\bis\bsi\bib\bbl\ble\be B\bBe\bel\bll\bls\bs
+ If your terminal has one or more kinds of display attributes, these can
+ be represented in a number of different ways. You should choose one dis-
+ play form as _\bs_\bt_\ba_\bn_\bd_\bo_\bu_\bt _\bm_\bo_\bd_\be, representing a good high-contrast, easy-on-
+ the-eyes format for highlighting error messages and other attention get-
+ ters. (If you have a choice, reverse video plus half-bright is good, or
+ reverse video alone.) The sequences to enter and exit standout mode are
+ given as s\bso\bo and s\bse\be, respectively. If the code to change into or out of
+ standout mode leaves one or even two blank spaces or garbage characters
+ on the screen, as the TVI 912 and Teleray 1061 do, then s\bsg\bg should be giv-
+ en to tell how many characters are left.
+
+ Codes to begin underlining and end underlining can be given as u\bus\bs and u\bue\be,
+ respectively. Underline mode change garbage is specified by u\bug\bg, similar
+ to s\bsg\bg. If the terminal has a code to underline the current character and
+ move the cursor one position to the right, such as the Microterm Mime,
+ this can be given as u\buc\bc.
+
+ Other capabilities to enter various highlighting modes include m\bmb\bb (blink-
+ ing), m\bmd\bd (bold or extra bright), m\bmh\bh (dim or half-bright), m\bmk\bk (blanking or
+ invisible text), m\bmp\bp (protected), m\bmr\br (reverse video), m\bme\be (turn off _\ba_\bl_\bl at-
+ tribute modes), a\bas\bs (enter alternate character set mode), and a\bae\be (exit al-
+ ternate character set mode). Turning on any of these modes singly may or
+ may not turn off other modes.
+
+ If there is a sequence to set arbitrary combinations of mode, this should
+ be given as s\bsa\ba (set attributes), taking 9 parameters. Each parameter is
+ either 0 or 1, as the corresponding attributes is on or off. The 9 pa-
+ rameters are, in order: standout, underline, reverse, blink, dim, bold,
+ blank, protect, and alternate character set. Not all modes need be sup-
+ ported by s\bsa\ba, only those for which corresponding attribute commands ex-
+ ist. (It is unlikely that a t\bte\ber\brm\bmc\bca\bap\bp-using program will support this ca-
+ pability, which is defined for compatibility with terminfo.)
+
+ Terminals with the ``magic cookie'' glitches (s\bsg\bg and u\bug\bg), rather than
+ maintaining extra attribute bits for each character cell, instead deposit
+ special ``cookies'', or ``garbage characters ,,'' when they receive mode-
+ setting sequences, which affect the display algorithm.
+
+ Some terminals, such as the Hewlett-Packard 2621, automatically leave
+ standout mode when they move to a new line or when the cursor is ad-
+ dressed. Programs using standout mode should exit standout mode on such
+ terminals before moving the cursor or sending a newline. On terminals
+ where this is not a problem, the m\bms\bs capability should be present to say
+ that this overhead is unnecessary.
+
+ If the terminal has a way of flashing the screen to indicate an error
+ quietly (a bell replacement), this can be given as v\bvb\bb; it must not move
+ the cursor.
+
+ If the cursor needs to be made more visible than normal when it is not on
+ the bottom line (to change, for example, a non-blinking underline into an
+ easier-to-find block or blinking underline), give this sequence as v\bvs\bs. If
+ there is a way to make the cursor completely invisible, give that as v\bvi\bi.
+ The capability v\bve\be, which undoes the effects of both of these modes,
+ should also be given.
+
+ If your terminal correctly displays underlined characters (with no spe-
+ cial codes needed) even though it does not overstrike, then you should
+ give the capability u\bul\bl. If overstrikes are erasable with a blank, this
+ should be indicated by giving e\beo\bo.
+
+ K\bKe\bey\byp\bpa\bad\bd
+ If the terminal has a keypad that transmits codes when the keys are
+ pressed, this information can be given. Note that it is not possible to
+ handle terminals where the keypad only works in local mode (this applies,
+ for example, to the unshifted Hewlett-Packard 2621 keys). If the keypad
+ can be set to transmit or not transmit, give these codes as k\bks\bs and k\bke\be.
+ Otherwise the keypad is assumed to always transmit. The codes sent by
+ the left-arrow, right-arrow, up-arrow, down-arrow, and home keys can be
+ given as k\bkl\bl, k\bkr\br, k\bku\bu, k\bkd\bd, and k\bkh\bh, respectively. If there are function
+ keys such as f0, f1, ..., f9, the codes they send can be given as k\bk0\b0, k\bk1\b1,
+ k\bk9\b9. If these keys have labels other than the default f0 through f9, the
+ labels can be given as l\bl0\b0, l\bl1\b1, l\bl9\b9. The codes transmitted by certain other
+ special keys can be given: k\bkH\bH (home down), k\bkb\bb (backspace), k\bka\ba (clear all
+ tabs), k\bkt\bt (clear the tab stop in this column), k\bkC\bC (clear screen or
+ erase), k\bkD\bD (delete character), k\bkL\bL (delete line), k\bkM\bM (exit insert mode),
+ k\bkE\bE (clear to end of line), k\bkS\bS (clear to end of screen), k\bkI\bI (insert char-
+ acter or enter insert mode), k\bkA\bA (insert line), k\bkN\bN (next page), k\bkP\bP (previ-
+ ous page), k\bkF\bF (scroll forward/down), k\bkR\bR (scroll backward/up), and k\bkT\bT (set
+ a tab stop in this column). In addition, if the keypad has a 3 by 3 ar-
+ ray of keys including the four arrow keys, then the other five keys can
+ be given as K\bK1\b1, K\bK2\b2, K\bK3\b3, K\bK4\b4, and K\bK5\b5. These keys are useful when the ef-
+ fects of a 3 by 3 directional pad are needed. The obsolete k\bko\bo capability
+ formerly used to describe ``other'' function keys has been completely
+ supplanted by the above capabilities.
+
+ The m\bma\ba entry is also used to indicate arrow keys on terminals that have
+ single-character arrow keys. It is obsolete but still in use in version
+ 2 of v\bvi\bi which must be run on some minicomputers due to memory limita-
+ tions. This field is redundant with k\bkl\bl, k\bkr\br, k\bku\bu, k\bkd\bd, and k\bkh\bh. It consists
+ of groups of two characters. In each group, the first character is what
+ an arrow key sends, and the second character is the corresponding v\bvi\bi com-
+ mand. These commands are _\bh for k\bkl\bl, _\bj for k\bkd\bd, _\bk for k\bku\bu, _\bl for k\bkr\br, and _\bH
+ for k\bkh\bh. For example, the Mime would have ``ma=^Hh^Kj^Zk^Xl'' indicating
+ arrow keys left (^H), down (^K), up (^Z), and right (^X). (There is no
+ home key on the Mime.)
+
+ T\bTa\bab\bbs\bs a\ban\bnd\bd I\bIn\bni\bit\bti\bia\bal\bli\biz\bza\bat\bti\bio\bon\bn
+ If the terminal needs to be in a special mode when running a program that
+ uses these capabilities, the codes to enter and exit this mode can be
+ given as t\bti\bi and t\bte\be. This arises, for example, from terminals like the
+ Concept with more than one page of memory. If the terminal has only mem-
+ ory-relative cursor addressing and not screen-relative cursor addressing,
+ a screen-sized window must be fixed into the display for cursor address-
+ ing to work properly. This is also used for the Tektronix 4025, where t\bti\bi
+ sets the command character to be the one used by t\bte\ber\brm\bmc\bca\bap\bp.
+
+ Other capabilities include i\bis\bs, an initialization string for the terminal,
+ and i\bif\bf, the name of a file containing long initialization strings. These
+ strings are expected to set the terminal into modes consistent with the
+ rest of the t\bte\ber\brm\bmc\bca\bap\bp description. They are normally sent to the terminal
+ by the tset program each time the user logs in. They will be printed in
+ the following order: i\bis\bs; setting tabs using c\bct\bt and s\bst\bt; and finally i\bif\bf.
+ (Terminfo uses i\bi1\b1-\b-i\bi2\b2 instead of i\bis\bs and runs the program i\biP\bP and prints i\bi3\b3
+ after the other initializations.) A pair of sequences that does a harder
+ reset from a totally unknown state can be analogously given as r\brs\bs and i\bif\bf.
+ These strings are output by the reset program, which is used when the
+ terminal gets into a wedged state. (Terminfo uses r\br1\b1-\b-r\br3\b3 instead of r\brs\bs.)
+ Commands are normally placed in r\brs\bs and r\brf\bf only if they produce annoying
+ effects on the screen and are not necessary when logging in. For exam-
+ ple, the command to set the VT100 into 80-column mode would normally be
+ part of i\bis\bs, but it causes an annoying glitch of the screen and is not
+ normally needed since the terminal is usually already in 80-column mode.
+
+ If the terminal has hardware tabs, the command to advance to the next tab
+ stop can be given as t\bta\ba (usually ^\b^I\bI). A ``backtab'' command which moves
+ leftward to the previous tab stop can be given as b\bbt\bt. By convention, if
+ the terminal driver modes indicate that tab stops are being expanded by
+ the computer rather than being sent to the terminal, programs should not
+ use t\bta\ba or b\bbt\bt even if they are present, since the user may not have the
+ tab stops properly set. If the terminal has hardware tabs that are ini-
+ tially set every _\bn positions when the terminal is powered up, then the
+ numeric parameter i\bit\bt is given, showing the number of positions between
+ tab stops. This is normally used by the tset command to determine
+ whether to set the driver mode for hardware tab expansion, and whether to
+ set the tab stops. If the terminal has tab stops that can be saved in
+ nonvolatile memory, the t\bte\ber\brm\bmc\bca\bap\bp description can assume that they are
+ properly set.
+
+ If there are commands to set and clear tab stops, they can be given as c\bct\bt
+ (clear all tab stops) and s\bst\bt (set a tab stop in the current column of ev-
+ ery row). If a more complex sequence is needed to set the tabs than can
+ be described by this, the sequence can be placed in i\bis\bs or i\bif\bf.
+
+ D\bDe\bel\bla\bay\bys\bs
+ Certain capabilities control padding in the terminal driver. These are
+ primarily needed by hardcopy terminals and are used by the tset program
+ to set terminal driver modes appropriately. Delays embedded in the capa-
+ bilities c\bcr\br, s\bsf\bf, l\ble\be, f\bff\bf, and t\bta\ba will cause the appropriate delay bits to
+ be set in the terminal driver. If p\bpb\bb (padding baud rate) is given, these
+ values can be ignored at baud rates below the value of p\bpb\bb. For 4.2BSD
+ tset, the delays are given as numeric capabilities d\bdC\bC, d\bdN\bN, d\bdB\bB, d\bdF\bF, and
+ d\bdT\bT instead.
+
+ M\bMi\bis\bsc\bce\bel\bll\bla\ban\bne\beo\bou\bus\bs
+ If the terminal requires other than a NUL (zero) character as a pad, this
+ can be given as p\bpc\bc. Only the first character of the p\bpc\bc string is used.
+
+ If the terminal has commands to save and restore the position of the cur-
+ sor, give them as s\bsc\bc and r\brc\bc.
+
+ If the terminal has an extra ``status line'' that is not normally used by
+ software, this fact can be indicated. If the status line is viewed as an
+ extra line below the bottom line, then the capability h\bhs\bs should be given.
+ Special strings to go to a position in the status line and to return from
+ the status line can be given as t\bts\bs and f\bfs\bs. (fs must leave the cursor po-
+ sition in the same place that it was before t\bts\bs. If necessary, the s\bsc\bc and
+ r\brc\bc strings can be included in t\bts\bs and f\bfs\bs to get this effect.) The capa-
+ bility t\bts\bs takes one parameter, which is the column number of the status
+ line to which the cursor is to be moved. If escape sequences and other
+ special commands such as tab work while in the status line, the flag e\bes\bs
+ can be given. A string that turns off the status line (or otherwise
+ erases its contents) should be given as d\bds\bs. The status line is normally
+ assumed to be the same width as the rest of the screen, _\bi_\b._\be., c\bco\bo. If the
+ status line is a different width (possibly because the terminal does not
+ allow an entire line to be loaded), then its width in columns can be in-
+ dicated with the numeric parameter w\bws\bs.
+
+ If the terminal can move up or down half a line, this can be indicated
+ with h\bhu\bu (half-line up) and h\bhd\bd (half-line down). This is primarily useful
+ for superscripts and subscripts on hardcopy terminals. If a hardcopy
+ terminal can eject to the next page (form feed), give this as f\bff\bf (usually
+ ^\b^L\bL).
+
+ If there is a command to repeat a given character a given number of times
+ (to save time transmitting a large number of identical characters), this
+ can be indicated with the parameterized string r\brp\bp. The first parameter is
+ the character to be repeated and the second is the number of times to re-
+ peat it. (This is a terminfo feature that is unlikely to be supported by
+ a program that uses t\bte\ber\brm\bmc\bca\bap\bp.)
+
+ If the terminal has a settable command character, such as the Tektronix
+ 4025, this can be indicated with C\bCC\bC. A prototype command character is
+ chosen which is used in all capabilities. This character is given in the
+ C\bCC\bC capability to identify it. The following convention is supported on
+ some UNIX systems: The environment is to be searched for a CC variable,
+ and if found, all occurrences of the prototype character are replaced by
+ the character in the environment variable. This use of the CC environ-
+ ment variable is a very bad idea, as it conflicts with make(1).
+
+ Terminal descriptions that do not represent a specific kind of known ter-
+ minal, such as _\bs_\bw_\bi_\bt_\bc_\bh, _\bd_\bi_\ba_\bl_\bu_\bp, _\bp_\ba_\bt_\bc_\bh, and network, should include the g\bgn\bn
+ (generic) capability so that programs can complain that they do not know
+ how to talk to the terminal. (This capability does not apply to _\bv_\bi_\br_\bt_\bu_\ba_\bl
+ terminal descriptions for which the escape sequences are known.)
+
+ If the terminal uses xoff/xon (DC3/DC1) handshaking for flow control,
+ give x\bxo\bo. Padding information should still be included so that routines
+ can make better decisions about costs, but actual pad characters will not
+ be transmitted.
+
+ If the terminal has a ``meta key'' which acts as a shift key, setting the
+ 8th bit of any character transmitted, then this fact can be indicated
+ with k\bkm\bm. Otherwise, software will assume that the 8th bit is parity and
+ it will usually be cleared. If strings exist to turn this ``meta mode''
+ on and off, they can be given as m\bmm\bm and m\bmo\bo.
+
+ If the terminal has more lines of memory than will fit on the screen at
+ once, the number of lines of memory can be indicated with l\blm\bm. An explicit
+ value of 0 indicates that the number of lines is not fixed, but that
+ there is still more memory than fits on the screen.
+
+ If the terminal is one of those supported by the UNIX system virtual ter-
+ minal protocol, the terminal number can be given as v\bvt\bt.
+
+ Media copy strings which control an auxiliary printer connected to the
+ terminal can be given as p\bps\bs: print the contents of the screen; p\bpf\bf: turn
+ off the printer; and p\bpo\bo: turn on the printer. When the printer is on,
+ all text sent to the terminal will be sent to the printer. It is unde-
+ fined whether the text is also displayed on the terminal screen when the
+ printer is on. A variation p\bpO\bO takes one parameter and leaves the printer
+ on for as many characters as the value of the parameter, then turns the
+ printer off. The parameter should not exceed 255. All text, including
+ p\bpf\bf, is transparently passed to the printer while p\bpO\bO is in effect.
+
+ Strings to program function keys can be given as p\bpk\bk, p\bpl\bl, and p\bpx\bx. Each of
+ these strings takes two parameters: the function key number to program
+ (from 0 to 9) and the string to program it with. Function key numbers
+ out of this range may program undefined keys in a terminal-dependent man-
+ ner. The differences among the capabilities are that p\bpk\bk causes pressing
+ the given key to be the same as the user typing the given string; p\bpl\bl
+ causes the string to be executed by the terminal in local mode; and p\bpx\bx
+ causes the string to be transmitted to the computer. Unfortunately, due
+ to lack of a definition for string parameters in t\bte\ber\brm\bmc\bca\bap\bp, only terminfo
+ supports these capabilities.
+
+ G\bGl\bli\bit\btc\bch\bhe\bes\bs a\ban\bnd\bd B\bBr\bra\bai\bin\bnd\bda\bam\bma\bag\bge\be
+ Hazeltine terminals, which do not allow `~' characters to be displayed,
+ should indicate h\bhz\bz.
+
+ The n\bnc\bc capability, now obsolete, formerly indicated Datamedia terminals,
+ which echo \\b\r\br \\b\n\bn for carriage return then ignore a following linefeed.
+
+ Terminals that ignore a linefeed immediately after an a\bam\bm wrap, such as
+ the Concept, should indicate x\bxn\bn.
+
+ If c\bce\be is required to get rid of standout (instead of merely writing nor-
+ mal text on top of it), x\bxs\bs should be given.
+
+ Teleray terminals, where tabs turn all characters moved over to blanks,
+ should indicate x\bxt\bt (destructive tabs). This glitch is also taken to mean
+ that it is not possible to position the cursor on top of a magic cookie,
+ and that to erase standout mode it is necessary to use delete and insert
+ line.
+
+ The Beehive Superbee, which is unable to correctly transmit the ESC or ^\b^C\bC
+ characters, has x\bxb\bb, indicating that the ``f1'' key is used for ESC and
+ ``f2'' for ^C. (Only certain Superbees have this problem, depending on
+ the ROM.)
+
+ Other specific terminal problems may be corrected by adding more capabil-
+ ities of the form x\bx _\bx.
+
+ S\bSi\bim\bmi\bil\bla\bar\br T\bTe\ber\brm\bmi\bin\bna\bal\bls\bs
+ If there are two very similar terminals, one can be defined as being just
+ like the other with certain exceptions. The string capability t\btc\bc can be
+ given with the name of the similar terminal. This capability must be
+ _\bl_\ba_\bs_\bt, and the combined length of the entries must not exceed 1024. The
+ capabilities given before t\btc\bc override those in the terminal type invoked
+ by t\btc\bc. A capability can be canceled by placing x\bxx\bx@\b@ to the left of the t\btc\bc
+ invocation, where x\bxx\bx is the capability. For example, the entry
+
+ hn|2621-nl:ks@:ke@:tc=2621:
+
+ defines a ``2621-nl'' that does not have the k\bks\bs or k\bke\be capabilities, hence
+ does not turn on the function key labels when in visual mode. This is
+ useful for different modes for a terminal, or for different user prefer-
+ ences.
+
+F\bFI\bIL\bLE\bES\bS
+ /usr/share/misc/termcap File containing terminal descriptions.
+ /usr/share/misc/termcap.db Hash database file containing terminal de-
+ scriptions (see cap_mkdb(1)).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ex(1), cap_mkdb(1), more(1), tset(1), ul(1), vi(1), curses(3),
+ printf(3), termcap(3), term(7)
+
+C\bCA\bAV\bVE\bEA\bAT\bTS\bS A\bAN\bND\bD B\bBU\bUG\bGS\bS
+ The _\bN_\bo_\bt_\be: t\bte\ber\brm\bmc\bca\bap\bp functions were replaced by terminfo in AT&T System V
+ UNIX Release 2.0. The transition will be relatively painless if capabil-
+ ities flagged as ``obsolete'' are avoided.
+
+ Lines and columns are now stored by the kernel as well as in the termcap
+ entry. Most programs now use the kernel information primarily; the in-
+ formation in this file is used only if the kernel does not have any in-
+ formation.
+
+ Vi allows only 256 characters for string capabilities, and the routines
+ in termlib(3) do not check for overflow of this buffer. The total length
+ of a single entry (excluding only escaped newlines) may not exceed 1024.
+
+ Not all programs support all entries.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The t\bte\ber\brm\bmc\bca\bap\bp file format appeared in 3BSD.
+
+3rd Berkeley Distribution June 8, 1993 14
--- /dev/null
+TYPES(5) BSD Programmer's Manual TYPES(5)
+
+N\bNA\bAM\bME\bE
+ t\bty\byp\bpe\bes\bs - system data types
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<s\bsy\bys\bs/\b/t\bty\byp\bpe\bes\bs.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file _\bs_\by_\bs_\b/_\bt_\by_\bp_\be_\bs_\b._\bh contains the defined data types used in the kernel
+ (most are used through out the system).
+
+ #ifndef _TYPES_H_
+ #define _TYPES_H_
+
+ typedef short dev_t;
+ #ifndef _POSIX_SOURCE
+ /* major part of a device */
+ #define major(x) ((int)(((unsigned)(x)>>8)&0377))
+ /* minor part of a device */
+ #define minor(x) ((int)((x)&0377))
+ /* make a device number */
+ #define makedev(x,y) ((dev_t)(((x)<<8) | (y)))
+ #endif
+
+ typedef unsigned char u_char;
+ typedef unsigned short u_short;
+ typedef unsigned int u_int;
+ typedef unsigned long u_long;
+ typedef unsigned short ushort; /* Sys V compatibility */
+
+ #include <machine/ansi.h>
+ #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
+ #include <machine/types.h>
+ #endif
+
+ #ifdef _CLOCK_T_
+ typedef _CLOCK_T_ clock_t;
+ #undef _CLOCK_T_
+ #endif
+
+ #ifdef _SIZE_T_
+ typedef _SIZE_T_ size_t;
+ #undef _SIZE_T_
+ #endif
+
+ #ifdef _TIME_T_
+ typedef _TIME_T_ time_t;
+ #undef _TIME_T_
+ #endif
+
+ #ifndef _POSIX_SOURCE
+ typedef struct _uquad { unsigned long val[2]; } u_quad;
+ typedef struct _quad { long val[2]; } quad;
+ #endif
+ typedef long * qaddr_t; /* should be typedef quad * qaddr_t; */
+
+ typedef long daddr_t;
+ typedef char * caddr_t;
+ typedef u_long ino_t;
+ typedef long swblk_t;
+ typedef long segsz_t;
+ typedef long off_t;
+ typedef u_short uid_t;
+ typedef u_short gid_t;
+ typedef short pid_t;
+ typedef u_short nlink_t;
+ typedef u_short mode_t;
+ typedef u_long fixpt_t;
+
+ #ifndef _POSIX_SOURCE
+ #define NBBY 8 /* number of bits in a byte */
+
+ /*
+ * Select uses bit masks of file descriptors in longs. These macros
+ * manipulate such bit fields (the filesystem macros use chars).
+ * FD_SETSIZE may be defined by the user, but the default here should
+ * be >= NOFILE (param.h).
+ */
+ #ifndef FD_SETSIZE
+ #define FD_SETSIZE 256
+ #endif
+
+ typedef long fd_mask;
+ #define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */
+
+ #ifndef howmany
+ #define howmany(x, y) (((x)+((y)-1))/(y))
+ #endif
+
+ typedef struct fd_set {
+ fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
+ } fd_set;
+
+ #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
+ #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
+ #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
+ #define FD_ZERO(p) bzero((char *)(p), sizeof(*(p)))
+
+ #endif /* !_POSIX_SOURCE */
+ #endif /* !_TYPES_H_ */
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ fs(5), time(3), lseek(2), adb(1)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A t\bty\byp\bpe\bes\bs file appeared in Version 7 AT&T UNIX.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+TZFILE(5) BSD Programmer's Manual TZFILE(5)
+
+N\bNA\bAM\bME\bE
+ t\btz\bzf\bfi\bil\ble\be - time zone information
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<t\btz\bzf\bfi\bil\ble\be.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The time zone information files used by tzset(3) begin with bytes re-
+ served for future use, followed by four four-byte values of type _\bl_\bo_\bn_\bg,
+ written in a ``standard'' byte order (the high-order byte of the value is
+ written first). These values are, in order:
+
+ _\bt_\bz_\bh_\b__\bt_\bt_\bi_\bs_\bs_\bt_\bd_\bc_\bn_\bt The number of standard/wall indicators stored in the
+ file.
+
+ _\bt_\bz_\bh_\b__\bl_\be_\ba_\bp_\bc_\bn_\bt The number of leap seconds for which data is stored in
+ the file.
+
+ _\bt_\bz_\bh_\b__\bt_\bi_\bm_\be_\bc_\bn_\bt The number of "transition times" for which data is stored
+ in the file.
+
+ _\bt_\bz_\bh_\b__\bt_\by_\bp_\be_\bc_\bn_\bt The number of "local time types" for which data is stored
+ in the file (must not be zero).
+
+ _\bt_\bz_\bh_\b__\bc_\bh_\ba_\br_\bc_\bn_\bt The number of characters of "time zone abbreviation
+ strings" stored in the file.
+
+ The above header is followed by _\bt_\bz_\bh_\b__\bt_\bi_\bm_\be_\bc_\bn_\bt four-byte values of type
+ _\bl_\bo_\bn_\bg, sorted in ascending order. These values are written in ``stan-
+ dard'' byte order. Each is used as a transition time (as returned by
+ time(2)) at which the rules for computing local time change. Next come
+ _\bt_\bz_\bh_\b__\bt_\bi_\bm_\be_\bc_\bn_\bt one-byte values of type _\bu_\bn_\bs_\bi_\bg_\bn_\be_\bd _\bc_\bh_\ba_\br; each one tells which
+ of the different types of ``local time'' types described in the file is
+ associated with the same-indexed transition time. These values serve as
+ indices into an array of _\bt_\bt_\bi_\bn_\bf_\bo structures that appears next in the file;
+ these structures are defined as follows:
+
+ struct ttinfo {
+ long tt_gmtoff;
+ int tt_isdst;
+ unsigned int tt_abbrind;
+ };
+
+ Each structure is written as a four-byte value for _\bt_\bt_\b__\bg_\bm_\bt_\bo_\bf_\bf of type
+ _\bl_\bo_\bn_\bg, in a standard byte order, followed by a one-byte value for _\bt_\bt_\b__\bi_\bs_\bd_\bs_\bt
+ and a one-byte value for _\bt_\bt_\b__\ba_\bb_\bb_\br_\bi_\bn_\bd. In each structure, _\bt_\bt_\b__\bg_\bm_\bt_\bo_\bf_\bf gives
+ the number of seconds to be added to GMT, _\bt_\bt_\b__\bi_\bs_\bd_\bs_\bt tells whether _\bt_\bm_\b__\bi_\bs_\bd_\bs_\bt
+ should be set by localtime(3) and _\bt_\bt_\b__\ba_\bb_\bb_\br_\bi_\bn_\bd serves as an index into the
+ array of time zone abbreviation characters that follow the _\bt_\bt_\bi_\bn_\bf_\bo struc-
+ ture(s) in the file.
+
+ Then there are _\bt_\bz_\bh_\b__\bl_\be_\ba_\bp_\bc_\bn_\bt pairs of four-byte values, written in standard
+ byte order; the first value of each pair gives the time (as returned by
+ time(2)) at which a leap second occurs; the second gives the _\bt_\bo_\bt_\ba_\bl num-
+ ber of leap seconds to be applied after the given time. The pairs of
+ values are sorted in ascending order by time.
+
+ Finally there are _\bt_\bz_\bh_\b__\bt_\bt_\bi_\bs_\bs_\bt_\bd_\bc_\bn_\bt standard/wall indicators, each stored as
+ a one-byte value; they tell whether the transition times associated with
+ local time types were specified as standard time or wall clock time, and
+ are used when a time zone file is used in handling POSIX-style time zone
+ environment variables.
+
+
+ _\bL_\bo_\bc_\ba_\bl_\bt_\bi_\bm_\be uses the first standard-time _\bt_\bt_\bi_\bn_\bf_\bo structure in the file (or
+ simply the first _\bt_\bt_\bi_\bn_\bf_\bo structure in the absence of a standard-time
+ structure) if either _\bt_\bz_\bh_\b__\bt_\bi_\bm_\be_\bc_\bn_\bt is zero or the time argument is less
+ than the first transition time recorded in the file.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ctime(3)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The t\btz\bzf\bfi\bil\ble\be file format appeared in 4.3BSDtahoe.
+
+4.4BSD June 8, 1993 2
--- /dev/null
+UTMP(5) BSD Programmer's Manual UTMP(5)
+
+N\bNA\bAM\bME\bE
+ u\but\btm\bmp\bp, w\bwt\btm\bmp\bp, l\bla\bas\bst\btl\blo\bog\bg - login records
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<u\but\btm\bmp\bp.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file <_\bu_\bt_\bm_\bp_\b._\bh> declares the structures used to record information
+ about current users in the file u\but\btm\bmp\bp, logins and logouts in the file
+ w\bwt\btm\bmp\bp, and last logins in the file l\bla\bas\bst\btl\blo\bog\bg. The time stamps of date
+ changes, shutdowns and reboots are also logged in the w\bwt\btm\bmp\bp file.
+
+ These files can grow rapidly on busy systems, daily or weekly rotation is
+ recommended. If any of these files do not exist, it is not created.
+ These files must be created manually and are normally maintained in ei-
+ ther the script _\b/_\be_\bt_\bc_\b/_\bd_\ba_\bi_\bl_\by or the script _\b/_\be_\bt_\bc_\b/_\bw_\be_\be_\bk_\bl_\by. (See cron(8).)
+
+ #define _PATH_UTMP "/var/run/utmp"
+ #define _PATH_WTMP "/var/log/wtmp"
+ #define _PATH_LASTLOG "/var/log/lastlog"
+
+ #define UT_NAMESIZE 8
+ #define UT_LINESIZE 8
+ #define UT_HOSTSIZE 16
+
+ struct lastlog {
+ time_t ll_time;
+ char ll_line[UT_LINESIZE];
+ char ll_host[UT_HOSTSIZE];
+ };
+
+ struct utmp {
+ char ut_line[UT_LINESIZE];
+ char ut_name[UT_NAMESIZE];
+ char ut_host[UT_HOSTSIZE];
+ long ut_time;
+ };
+
+ Each time a user logs in, the login program looks up the user's UID in
+ the file l\bla\bas\bst\btl\blo\bog\bg.\b. If it is found, the timestamp of the last time the user
+ logged in, the terminal line and the hostname are written to the standard
+ output. (Providing the login is not _\bq_\bu_\bi_\be_\bt, see login(1).) The login pro-
+ gram then records the new login time in the file l\bla\bas\bst\btl\blo\bog\bg.
+
+ After the new _\bl_\ba_\bs_\bt_\bl_\bo_\bg record is written , the file u\but\btm\bmp\bp is opened and the
+ _\bu_\bt_\bm_\bp record for the user inserted. This record remains there until the
+ user logs out at which time it is deleted. The u\but\btm\bmp\bp file is used by the
+ programs rwho(1), users(1), w(1), and who(1).
+
+ Next, the login program opens the file w\bwt\btm\bmp\bp, and appends the user's _\bu_\bt_\bm_\bp
+ record. The same _\bu_\bt_\bm_\bp record, with an updated time stamp is later ap-
+ pended to the file when the user logs out. (See init(8).) The w\bwt\btm\bmp\bp file
+ is used by the programs last(1) and ac(8).
+
+ In the event of a date change, a shutdown or reboot, the following items
+ are logged in the w\bwt\btm\bmp\bp file.
+
+ reboot
+ shutdown A system reboot or shutdown has been initiated. The charac-
+ ter `~' is placed in the field _\bu_\bt_\b__\bl_\bi_\bn_\be, and reboot or
+ shutdown in the field _\bu_\bt_\b__\bn_\ba_\bm_\be. (See shutdown(8) and
+ reboot(8).)
+
+
+ date The system time has been manually or automatically updated.
+ (See date(1).) The command name date is recorded in the
+ field _\bu_\bt_\b__\bn_\ba_\bm_\be. In the field _\bu_\bt_\b__\bl_\bi_\bn_\be, the character `{' indi-
+ cates the time prior to the change, and the character `|' in-
+ dicates the new time.
+
+F\bFI\bIL\bLE\bES\bS
+ /var/run/utmp The u\but\btm\bmp\bp f\bfi\bil\ble\be.\b.
+ /var/log/wtmp The w\bwt\btm\bmp\bp f\bfi\bil\ble\be.\b.
+ /var/log/lastlog The l\bla\bas\bst\btl\blo\bog\bg f\bfi\bil\ble\be.\b.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ last(1), login(1), who(1), ac(8), init(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A u\but\btm\bmp\bp and w\bwt\btm\bmp\bp file format appeared in Version 6 AT&T UNIX. The l\bla\bas\bst\btl\blo\bog\bg
+ file format appeared in 3.0BSD.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+UTMP(5) BSD Programmer's Manual UTMP(5)
+
+N\bNA\bAM\bME\bE
+ u\but\btm\bmp\bp, w\bwt\btm\bmp\bp, l\bla\bas\bst\btl\blo\bog\bg - login records
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<u\but\btm\bmp\bp.\b.h\bh>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The file <_\bu_\bt_\bm_\bp_\b._\bh> declares the structures used to record information
+ about current users in the file u\but\btm\bmp\bp, logins and logouts in the file
+ w\bwt\btm\bmp\bp, and last logins in the file l\bla\bas\bst\btl\blo\bog\bg. The time stamps of date
+ changes, shutdowns and reboots are also logged in the w\bwt\btm\bmp\bp file.
+
+ These files can grow rapidly on busy systems, daily or weekly rotation is
+ recommended. If any of these files do not exist, it is not created.
+ These files must be created manually and are normally maintained in ei-
+ ther the script _\b/_\be_\bt_\bc_\b/_\bd_\ba_\bi_\bl_\by or the script _\b/_\be_\bt_\bc_\b/_\bw_\be_\be_\bk_\bl_\by. (See cron(8).)
+
+ #define _PATH_UTMP "/var/run/utmp"
+ #define _PATH_WTMP "/var/log/wtmp"
+ #define _PATH_LASTLOG "/var/log/lastlog"
+
+ #define UT_NAMESIZE 8
+ #define UT_LINESIZE 8
+ #define UT_HOSTSIZE 16
+
+ struct lastlog {
+ time_t ll_time;
+ char ll_line[UT_LINESIZE];
+ char ll_host[UT_HOSTSIZE];
+ };
+
+ struct utmp {
+ char ut_line[UT_LINESIZE];
+ char ut_name[UT_NAMESIZE];
+ char ut_host[UT_HOSTSIZE];
+ long ut_time;
+ };
+
+ Each time a user logs in, the login program looks up the user's UID in
+ the file l\bla\bas\bst\btl\blo\bog\bg.\b. If it is found, the timestamp of the last time the user
+ logged in, the terminal line and the hostname are written to the standard
+ output. (Providing the login is not _\bq_\bu_\bi_\be_\bt, see login(1).) The login pro-
+ gram then records the new login time in the file l\bla\bas\bst\btl\blo\bog\bg.
+
+ After the new _\bl_\ba_\bs_\bt_\bl_\bo_\bg record is written , the file u\but\btm\bmp\bp is opened and the
+ _\bu_\bt_\bm_\bp record for the user inserted. This record remains there until the
+ user logs out at which time it is deleted. The u\but\btm\bmp\bp file is used by the
+ programs rwho(1), users(1), w(1), and who(1).
+
+ Next, the login program opens the file w\bwt\btm\bmp\bp, and appends the user's _\bu_\bt_\bm_\bp
+ record. The same _\bu_\bt_\bm_\bp record, with an updated time stamp is later ap-
+ pended to the file when the user logs out. (See init(8).) The w\bwt\btm\bmp\bp file
+ is used by the programs last(1) and ac(8).
+
+ In the event of a date change, a shutdown or reboot, the following items
+ are logged in the w\bwt\btm\bmp\bp file.
+
+ reboot
+ shutdown A system reboot or shutdown has been initiated. The charac-
+ ter `~' is placed in the field _\bu_\bt_\b__\bl_\bi_\bn_\be, and reboot or
+ shutdown in the field _\bu_\bt_\b__\bn_\ba_\bm_\be. (See shutdown(8) and
+ reboot(8).)
+
+
+ date The system time has been manually or automatically updated.
+ (See date(1).) The command name date is recorded in the
+ field _\bu_\bt_\b__\bn_\ba_\bm_\be. In the field _\bu_\bt_\b__\bl_\bi_\bn_\be, the character `{' indi-
+ cates the time prior to the change, and the character `|' in-
+ dicates the new time.
+
+F\bFI\bIL\bLE\bES\bS
+ /var/run/utmp The u\but\btm\bmp\bp f\bfi\bil\ble\be.\b.
+ /var/log/wtmp The w\bwt\btm\bmp\bp f\bfi\bil\ble\be.\b.
+ /var/log/lastlog The l\bla\bas\bst\btl\blo\bog\bg f\bfi\bil\ble\be.\b.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ last(1), login(1), who(1), ac(8), init(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A u\but\btm\bmp\bp and w\bwt\btm\bmp\bp file format appeared in Version 6 AT&T UNIX. The l\bla\bas\bst\btl\blo\bog\bg
+ file format appeared in 3.0BSD.
+
+4th Berkeley Distribution June 5, 1993 2
--- /dev/null
+ASCII(7) BSD Reference Manual ASCII(7)
+
+N\bNA\bAM\bME\bE
+ a\bas\bsc\bci\bii\bi - octal, hexadecimal and decimal ASCII character sets
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The o\boc\bct\bta\bal\bl set:
+
+ 000 nul 001 soh 002 stx 003 etx 004 eot 005 enq 006 ack 007 bel
+ 010 bs 011 ht 012 nl 013 vt 014 np 015 cr 016 so 017 si
+ 020 dle 021 dc1 022 dc2 023 dc3 024 dc4 025 nak 026 syn 027 etb
+ 030 can 031 em 032 sub 033 esc 034 fs 035 gs 036 rs 037 us
+ 040 sp 041 ! 042 " 043 # 044 $ 045 % 046 & 047 '
+ 050 ( 051 ) 052 * 053 + 054 , 055 - 056 . 057 /
+ 060 0 061 1 062 2 063 3 064 4 065 5 066 6 067 7
+ 070 8 071 9 072 : 073 ; 074 < 075 = 076 > 077 ?
+ 100 @ 101 A 102 B 103 C 104 D 105 E 106 F 107 G
+ 110 H 111 I 112 J 113 K 114 L 115 M 116 N 117 O
+ 120 P 121 Q 122 R 123 S 124 T 125 U 126 V 127 W
+ 130 X 131 Y 132 Z 133 [ 134 \ 135 ] 136 ^ 137 _
+ 140 ` 141 a 142 b 143 c 144 d 145 e 146 f 147 g
+ 150 h 151 i 152 j 153 k 154 l 155 m 156 n 157 o
+ 160 p 161 q 162 r 163 s 164 t 165 u 166 v 167 w
+ 170 x 171 y 172 z 173 { 174 | 175 } 176 ~ 177 del
+
+ The h\bhe\bex\bxa\bad\bde\bec\bci\bim\bma\bal\bl set:
+
+ 00 nul 01 soh 02 stx 03 etx 04 eot 05 enq 06 ack 07 bel
+ 08 bs 09 ht 0a nl 0b vt 0c np 0d cr 0e so 0f si
+ 10 dle 11 dc1 12 dc2 13 dc3 14 dc4 15 nak 16 syn 17 etb
+ 18 can 19 em 1a sub 1b esc 1c fs 1d gs 1e rs 1f us
+ 20 sp 21 ! 22 " 23 # 24 $ 25 % 26 & 27 '
+ 28 ( 29 ) 2a * 2b + 2c , 2d - 2e . 2f /
+ 30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7
+ 38 8 39 9 3a : 3b ; 3c < 3d = 3e > 3f ?
+ 40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G
+ 48 H 49 I 4a J 4b K 4c L 4d M 4e N 4f O
+ 50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W
+ 58 X 59 Y 5a Z 5b [ 5c \ 5d ] 5e ^ 5f _
+ 60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g
+ 68 h 69 i 6a j 6b k 6c l 6d m 6e n 6f o
+ 70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w
+ 78 x 79 y 7a z 7b { 7c | 7d } 7e ~ 7f del
+
+ The d\bde\bec\bci\bim\bma\bal\bl set:
+
+ 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel
+ 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si
+ 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb
+ 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us
+ 32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 '
+ 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 /
+ 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7
+ 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ?
+ 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G
+ 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O
+ 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W
+ 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _
+ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g
+ 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o
+ 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w
+ 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del
+
+F\bFI\bIL\bLE\bES\bS
+
+ /usr/share/misc/ascii
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ An a\bas\bsc\bci\bii\bi manual page appeared in Version 7 AT&T UNIX.
+
+4.4BSD June 5, 1993 2
--- /dev/null
+ENVIRON(7) BSD Reference Manual ENVIRON(7)
+
+N\bNA\bAM\bME\bE
+ e\ben\bnv\bvi\bir\bro\bon\bn - user environment
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ _\be_\bx_\bt_\be_\br_\bn _\bc_\bh_\ba_\br _\b*_\b*_\be_\bn_\bv_\bi_\br_\bo_\bn;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ An array of strings called the _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt is made available by execve(2)
+ when a process begins. By convention these strings have the form
+ ``_\bn_\ba_\bm_\be_\b=_\bv_\ba_\bl_\bu_\be''. The following names are used by various commands:
+
+ BLOCKSIZE The size of the block units used by several commands, most no-
+ tably df(1), du(1) and ls(1). BLOCKSIZE may be specified in
+ units of a byte by specifying a number, in units of a kilobyte
+ by specifying a number followed by ``K'' or ``k'', in units of
+ a megabyte by specifying a number followed by ``M'' or ``m''
+ and in units of a gigabyte by specifying a number followed by
+ ``G'' or ``g''. Sizes less than 512 bytes or greater than a
+ gigabyte are ignored.
+
+ EXINIT A startup list of commands read by ex(1), edit(1), and
+ vi(1).
+
+ HOME A user's login directory, set by login(1) from the password
+ file passwd(5).
+
+ PATH The sequence of directories, separated by colons, searched by
+ csh(1), sh(1), system(3), execvp(3), etc, when looking for
+ an executable file. PATH is set to
+ ``:/usr/ucb:/bin:/usr/bin'' initially by login(1).
+
+ PRINTER The name of the default printer to be used by lpr(1), lpq(1),
+ and lprm(1).
+
+ SHELL The full pathname of the user's login shell.
+
+ TERM The kind of terminal for which output is to be prepared. This
+ information is used by commands, such as nroff(1) or plot(1)
+ which may exploit special terminal capabilities. See
+ _\b/_\bu_\bs_\br_\b/_\bs_\bh_\ba_\br_\be_\b/_\bm_\bi_\bs_\bc_\b/_\bt_\be_\br_\bm_\bc_\ba_\bp (tmercap(5)) for a list of terminal
+ types.
+
+ TERMCAP The string describing the terminal in TERM, or, if it begins
+ with a '/', the name of the termcap file. See TERMPATH below,
+ termcap(5), and termcap.
+
+ TERMPATH A sequence of pathnames of termcap files, separated by colons
+ or spaces, which are searched for terminal descriptions in the
+ order listed. Having no TERMPATH is equivalent to a TERMPATH
+ of ``_\b$_\bH_\bO_\bM_\bE_\b/_\b._\bt_\be_\br_\bm_\bc_\ba_\bp_\b:_\b/_\be_\bt_\bc_\b/_\bt_\be_\br_\bm_\bc_\ba_\bp''. TERMPATH is ignored if
+ TERMCAP contains a full pathname.
+
+ TMPDIR The directory in which to store temporary files. Most appli-
+ cations use either ``/tmp'' or ``/var/tmp''. Setting this
+ variable will make them use another directory.
+
+ USER The login name of the user.
+
+ Further names may be placed in the environment by the export command and
+ _\bn_\ba_\bm_\be_\b=_\bv_\ba_\bl_\bu_\be arguments in sh(1), or by the setenv command if you use
+ csh(1). It is unwise to change certain sh(1) variables that are fre-
+ quently exported by _\b._\bp_\br_\bo_\bf_\bi_\bl_\be files, such as MAIL, PS1, PS2, and IFS, un-
+ less you know what you are doing.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ csh(1), ex(1), login(1), sh(1), execve(2), execle(3), system(3),
+ termcap(3), termcap(5)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The e\ben\bnv\bvi\bir\bro\bon\bn manual page appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 2
--- /dev/null
+
+
+
+EQNCHAR(7) BSD Reference Manual EQNCHAR(7)
+
+
+tdefine ciplus % "+\bO" % ndefine ciplus % O\b+ % tdefine citimes % "x\bO"
+% ndefine citimes % O\bx % tdefine =wig % "=\b~\b~" % ndefine =wig % =\b"~" %
+tdefine bigstar % "+\bx" % ndefine bigstar % X\b|\b- % tdefine =dot % "=\b."
+% ndefine =dot % = dot % tdefine orsign % "\\b\/\b/" % ndefine orsign %
+\/ % tdefine andsign % "/\b/\\b\" % ndefine andsign % /\ % tdefine =del
+% "=\b_\b/_\b\" % ndefine =del % = to DELTA % tdefine oppA % "\\b\/\b/\b-\b-\b-\b-\b" % ndefine
+oppA % V\b- % tdefine oppE %"-\b-\b--\b-\b-\b|\b|\b" % ndefine oppE % E\b/ % tdefine incl %
+"|\b-\b-\b--\b-\b-" % ndefine incl % C\b_ % tdefine nomem % "E\b/" % ndefine nomem % C\b-\b/
+% tdefine angstrom % "A\bo" % ndefine angstrom % A to o % tdefine
+star %{ roman "*"}% ndefine star % * % tdefine || % || % tdefine
+<wig % "<\b~" % ndefine <wig %{ < from "~" }% tdef\b/ine >wig % ">\b~" %
+ndefine >wig %{ > from "~" }\b\% tdefine langle % "\" % ndefine lan-
+gle %<% tdefine rangle % "/" % ndefine rangle %>% tdefine hbar %
+"h\b_" % ndefine hbar % h\b- % ndefine ppd % _\b| % tdefine ppd % "_\b|" %
+tdefine <-> % "<\b--\b>" % ndefine <-> % "<-->" % tdefine <=> % "<\b==\b>" %
+ndefine <=> % "<=>" % tdefine |< % "<\b|" % ndefine |< % <\b| % tdefine
+|> % ">\b|" % ndefine |> % |\b> % tdefine ang % "/\b_" % ndefine ang % /\b_ %
+tdefine rang % "|\b_" % ndefine rang % L % tdefine 3dot % ".\b.\b." % nde-
+fine 3dot % .\b.\b. % tdefine thf % "..." % ndefine thf % ..\b. % tdefine
+quarter % roman 1/4 % ndefine quarter % 1/4 % tdefine 3quarter %
+roman 3/4 % ndefine 3quarter % 3/4 % tdefine degree % o % ndefine
+degree % nothing sup o % tdefine square % [] % ndefine square %
+[] % tdefine circle % O % ndefine circle % O % tdefine blot %
+"[\b[]\b]" % ndefine blot % H\bI\bX % tdefine bullet % +\bo % ndefine bullet % o\bx\be
+% tdefine -wig % "~=" % ndefine -wig % - to "~" % tdefine wig % ~
+% ndefine wig % "~" % tdefine prop % oc % ndefine prop % oc %
+tdefine empty % {} % ndefine empty % O\b/ % tdefine member % E %
+ndefine member % C\b- % tdefine cup % U % ndefine cup % U % define
+cap % (^) % define subset % (= % define supset % =) % define
+!subset % (=\b_ % define !supset % =\b_) %
+
+N\bNA\bAM\bME\bE
+ eqnchar - special character definitions for eqn
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ e\beq\bqn\bn /\b/u\bus\bsr\br/\b/s\bsh\bha\bar\bre\be/\b/m\bmi\bis\bsc\bc/\b/e\beq\bqn\bnc\bch\bha\bar\br [ files ] |\b| t\btr\bro\bof\bff\bf [ options ]
+
+ n\bne\beq\bqn\bn /\b/u\bus\bsr\br/\b/p\bpu\bub\bb/\b/e\beq\bqn\bnc\bch\bha\bar\br [ files ] |\b| n\bnr\bro\bof\bff\bf [ options ]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ _\bE_\bq_\bn_\bc_\bh_\ba_\br contains _\bt_\br_\bo_\bf_\bf and _\bn_\br_\bo_\bf_\bf character definitions for
+ constructing characters that are not available on the
+ Graphic Systems typesetter. These definitions are primar-
+ ily intended for use with _\be_\bq_\bn and _\bn_\be_\bq_\bn. It contains defi-
+ nitions for the following characters
+
+ "ciplus" ciplus "||" || "square" square
+ "citimes" citimes "langle" langle "circle" circle
+ "wig" wig "rangle" rangle "blot" blot
+ "-wig" -wig "hbar" hbar "bullet" bullet
+ ">wig" >wig "ppd" ppd "prop" prop
+
+
+
+3rd Berkeley Distribution May 20, 1985 1
+
+
+
+
+
+
+
+
+EQNCHAR(7) BSD Reference Manual EQNCHAR(7)
+
+
+ "<wig" <wig "<->" <-> "empty" empty
+ "=wig" =wig "<=>" <=> "member" member
+ "star" star "|<" |< "nomem" nomem
+ "bigstar" bigstar "|>" |> "cup" cup
+ "=dot" =dot "ang" ang "cap" cap
+ "orsign" orsign "rang" rang "incl" incl
+ "andsign" andsign "3dot" 3dot "subset" subset
+ "=del" =del "thf" thf "supset" supset
+ "oppA" oppA "quarter" quarter "!subset" !subset
+ "oppE" oppE "3quarter" 3quarter "!supset"!supset
+ "angstrom" angstrom "degree" degree
+
+F\bFI\bIL\bLE\bES\bS
+ /usr/pub/eqnchar
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ troff(1), eqn(1)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3rd Berkeley Distribution May 20, 1985 2
+
+
+
+
+
--- /dev/null
+HIER(7) BSD Reference Manual HIER(7)
+
+N\bNA\bAM\bME\bE
+ h\bhi\bie\ber\br - layout of filesystems
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A sketch of the filesystem hierarchy.
+
+ / root directory of the filesystem
+
+ /bin/ user utilities fundamental to both single-user and multi-user
+ environments
+
+ /dev/ block and character device files
+
+ MAKEDEV script for creating device files; see makedev(8)
+ fd/ file descriptor files; see fd(4)
+
+ /etc/ system configuration files and scripts
+
+ localtime local timezone information; see ctime(3)
+ disklabels/ backup disklabels; see disklabel(8)
+ kerberosIV/ configuration files for the kerberos version IV;
+ see kerberos(1)
+ mtree/ mtree configuration files; see mtree(1)
+ namedb/ named configuration files; see named(8)
+
+ /mnt/ empty directory commonly used by system administrators as a tem-
+ porary mount point
+
+ /sbin/ system programs and administration utilities fundamental to both
+ single-user and multi-user environments
+
+ /stand/ programs used in a standalone environment
+
+ /tmp/ temporary files, usually a mfs(8) memory-based filesystem (the
+ contents of /tmp are usually NOT preserved across a system re-
+ boot)
+
+ /usr/ contains the majority of user utilities and applications
+
+ bin/ common utilities, programming tools, and applications
+ contrib/ large packages contributed to Berkeley by outside par-
+ ties
+ games/ useful and semi-frivolous programs
+ include/ standard C include files
+
+ X11/ C include files for X11 window system
+ arpa/ C include files for Internet service pro-
+ tocols
+ kerberosIV/ C include files for kerberos authentica-
+ tion package; see kerberos(1)
+ machine/ machine specific C include files
+ net/ misc network C include files
+ netimp/ C include files for IMP protocols; see
+ imp(4)
+ netinet/ C include files for Internet standard
+ protocols; see inet(4)
+ netiso/ C include files for ISO standard proto-
+ cols; see iso(4)
+ netns/ C include files for XNS standard proto-
+ cols; see ns(4)
+ nfs/ C include files for NFS (Network File
+
+
+ System)
+ pascal/ include files for pc 1
+ protocols/ C include files for Berkeley service pro-
+ tocols
+ sys/ system C include files (kernel data
+ structures)
+ ufs/ C include files for UFS (The U-word File
+ System)
+
+ lib/ archive libraries
+
+ uucp/ UUCP configuration files (historically
+ placed; to be moved)
+ libdata/ misc. utility data files
+ libexec/ system daemons & system utilities (executed by other
+ programs)
+ local/ local executables, libraries, etc.
+ obj/ architecture-specific target tree produced by building
+ the /usr/src tree
+ old/ programs from past lives of BSD which may disappear in
+ future releases
+ sbin/ system daemons & system utilities (executed by users)
+ share/ architecture-independent ascii text files
+
+ calendar/ a variety of pre-fab calendar files; see
+ calendar(1)
+ dict/ word lists; see look(1)
+
+ words common words
+ web2 words from Webster's 2nd Inter-
+ national
+ papers/ reference databases; see re-
+ fer(1)
+ special/ custom word lists; see spell(1)
+
+ doc/ misc documentation; src for most of the
+ printed BSDBSD manuals (available from the
+ USENIX association)
+ games/ ascii text files used by various games
+ man/ manual pages
+ me/ macros for use with the me macro package
+ misc/ misc system-wide ascii text files
+ termcap terminal characteristics
+ database; see termcap(5)
+ mk/ templates for make; see make(1)
+ ms/ macros for use with the ms macro package
+ skel/ example . (dot) files for new accounts
+ tabset/ tab description files for a variety of ter-
+ minals; used in the termcap file; see term-
+ cap(5)
+ tmac/ text processing macros; see nroff(1) and
+ troff(1)
+ zoneinfo/ timezone configuration information; see tz-
+ file(5)
+
+ src/ BSD and/or local source files
+
+ bin/ src for files in /bin
+ contrib/ src for files in /usr/contrib
+ etc/ src for files in /etc
+ games/ src for files in /usr/games
+ include/ src for files in /usr/include
+ kerberosIV/ src for kerberos version IV
+ lib/ src for files in /usr/lib
+
+
+ libexec/ src for files in /usr/libexec
+ local/ src for files in /usr/local
+ old/ src for files in /usr/old
+ pgrm/ src for programming tools in /usr/bin
+ sbin/ src for files in /sbin
+ share/ src for files in /usr/share
+ sys/ kernel src files
+ usr.bin/ src for files in /usr/bin
+ usr.sbin/ src for files in /usr/sbin
+
+ /var/ multi-purpose log, temporary, transient, and spool files
+
+ account/ system accounting files
+
+ acct execution accounting file; see acct(5)
+
+ at/ timed command scheduling files; see at(1)
+ backups/ misc. backup files
+ db/ misc. automatically generated system-specific
+ database files
+ games/ misc. game status and log files
+ log/ misc. system log files
+
+ wtmp login/logout log; see wtmp(5)
+
+ mail/ user mailbox files
+ preserve/ temporary home of files preserved after an accidental
+ death of an editor; see ex(1)
+ quotas/ filesystem quota information files
+ run/ system information files describing various info
+ about system since it was booted
+
+ utmp database of current users; see utmp(5)
+
+ rwho/ rwho data files; see rwhod(8), rwho(1), and rup-
+ time(1)
+ spool/ misc. printer and mail system spooling directories
+
+ ftp/ commonly ~ftp; the anonymous ftp root di-
+ rectory
+ mqueue/ undelivered mail queue; see sendmail(8)
+ output/ line printer spooling directories
+ secretmail/
+ secretmail spool directory; see xget(1)
+ uucp/ uucp spool directory
+ uucppublic/
+ commonly ~uucp; public uucp temporary di-
+ rectory
+
+ tmp/ temporary files that are kept between system reboots
+
+ /vmunix pure kernel executable (the operating system loaded into memory
+ at boot time).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ ls(1), apropos(1), whatis(1), whereis(1), finger(1), which(1),
+ find(1), grep(1), fsck(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A h\bhi\bie\ber\br manual page appeared in Version 7 AT&T UNIX.
+
+4.4BSD June 5, 1993 3
--- /dev/null
+HOSTNAME(7) BSD Reference Manual HOSTNAME(7)
+
+N\bNA\bAM\bME\bE
+ h\bho\bos\bst\btn\bna\bam\bme\be - host name resolution description
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Hostnames are domains, where a domain is a hierarchical, dot-separated
+ list of subdomains; for example, the machine monet, in the Berkeley sub-
+ domain of the EDU subdomain of the Internet would be represented as
+
+ monet.Berkeley.EDU
+
+ (with no trailing dot).
+
+ Hostnames are often used with network client and server programs, which
+ must generally translate the name to an address for use. (This function
+ is generally performed by the library routine gethostbyname(3).) Host-
+ names are resolved by the Internet name resolver in the following fash-
+ ion.
+
+ If the name consists of a single component, i.e. contains no dot, and if
+ the environment variable ``HOSTALIASES'' is set to the name of a file,
+ that file is searched for an string matching the input hostname. The
+ file should consist of lines made up of two white-space separated
+ strings, the first of which is the hostname alias, and the second of
+ which is the complete hostname to be substituted for that alias. If a
+ case-insensitive match is found between the hostname to be resolved and
+ the first field of a line in the file, the substituted name is looked up
+ with no further processing.
+
+ If the input name ends with a trailing dot, the trailing dot is removed,
+ and the remaining name is looked up with no further processing.
+
+ If the input name does not end with a trailing dot, it is looked up by
+ searching through a list of domains until a match is found. The default
+ search list includes first the local domain, then its parent domains with
+ at least 2 name components (longest first). For example, in the domain
+ CS.Berkeley.EDU, the name lithium.CChem will be checked first as lithi-
+ um.CChem.CS.Berkeley.EDU and then as lithium.CChem.Berkeley.EDU. Lithi-
+ um.CChem.EDU will not be tried, as the there is only one component re-
+ maining from the local domain. The search path can be changed from the
+ default by a system-wide configuration file (see resolver(5)).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ gethostbyname(3), resolver(5), mailaddr(7), named(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ H\bHo\bos\bst\btn\bna\bam\bme\be appeared in 4.2 BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+INTRO(7) BSD Reference Manual INTRO(7)
+
+N\bNA\bAM\bME\bE
+ i\bin\bnt\btr\bro\bo - miscellaneous information pages
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section contains miscellaneous documentation, mostly in the area of
+ text processing macro packages for troff(1).
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ i\bin\bnt\btr\bro\bo appeared in 4.2 BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+MAILADDR(7) BSD Reference Manual MAILADDR(7)
+
+N\bNA\bAM\bME\bE
+ m\bma\bai\bil\bla\bad\bdd\bdr\br - mail addressing description
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Mail addresses are based on the Internet protocol listed at the end of
+ this manual page. These addresses are in the general format
+
+ user@domain
+
+ where a domain is a hierarchical dot separated list of subdomains. For
+ example, a valid address is:
+
+ eric@CS.Berkeley.EDU
+
+ Unlike some other forms of addressing, domains do not imply any routing.
+ Thus, although this address is specified as an Internet address, it might
+ travel by an alternate route if that were more convenient or efficient.
+ For example, at Berkeley, the associated message would probably go di-
+ rectly to CS over the Ethernet rather than going via the Berkeley Inter-
+ net gateway.
+
+ A\bAb\bbb\bbr\bre\bev\bvi\bia\bat\bti\bio\bon\bn.\b.
+ Under certain circumstances it may not be necessary to type the entire
+ domain name. In general, anything following the first dot may be omitted
+ if it is the same as the domain from which you are sending the message.
+ For example, a user on ``calder.berkeley.edu'' could send to ``eric@CS''
+ without adding the ``berkeley.edu'' since it is the same on both sending
+ and receiving hosts.
+
+ C\bCo\bom\bmp\bpa\bat\bti\bib\bbi\bil\bli\bit\bty\by.\b.
+
+ Certain old address formats are converted to the new format to provide
+ compatibility with the previous mail system. In particular,
+
+ user@host
+
+ and
+ user@host.domain
+
+ are allowed;
+
+ host.domain!user
+
+ is converted to
+
+ user@host.domain
+
+ and
+
+ host!user
+
+ is converted to
+
+ user@host.UUCP
+
+ This is normally converted back to the ``host!user'' form before being
+ sent on for compatibility with older UUCP hosts.
+
+ C\bCa\bas\bse\be D\bDi\bis\bst\bti\bin\bnc\bct\bti\bio\bon\bns\bs.\b.
+
+ Domain names (i.e., anything after the ``@'' sign) may be given in any
+ mixture of upper and lower case with the exception of UUCP hostnames.
+ Most hosts accept any combination of case in user names, with the notable
+ exception of MULTICS sites.
+
+ R\bRo\bou\but\bte\be-\b-a\bad\bdd\bdr\brs\bs.\b.
+
+ Under some circumstances it may be necessary to route a message through
+ several hosts to get it to the final destination. Normally this routing
+ is done automatically, but sometimes it is desirable to route the message
+ manually. Addresses which show these relays are termed ``route-addrs.''
+ These use the syntax:
+
+ <@hosta,@hostb:user@hostc>
+
+ This specifies that the message should be sent to hosta, from there to
+ hostb, and finally to hostc. This path is forced even if there is a more
+ efficient path to hostc.
+
+ Route-addrs occur frequently on return addresses, since these are gener-
+ ally augmented by the software at each host. It is generally possible to
+ ignore all but the ``user@hostc'' part of the address to determine the
+ actual sender.
+
+ [Note: the route-addr syntax is officially deprecated in RFC 1123 and
+ should not be used.]
+
+ Many sites also support the ``percent hack'' for simplistic routing:
+
+ user%hostc%hostb@hosta
+
+ is routed as indicated in the previous example.
+
+ P\bPo\bos\bst\btm\bma\bas\bst\bte\ber\br.\b.
+
+ Every site is required to have a user or user alias designated ``postmas-
+ ter'' to which problems with the mail system may be addressed.
+
+ O\bOt\bth\bhe\ber\br N\bNe\bet\btw\bwo\bor\brk\bks\bs.\b.
+
+ Some other networks can be reached by giving the name of the network as
+ the last component of the domain. _\bT_\bh_\bi_\bs _\bi_\bs _\bn_\bo_\bt _\ba _\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\be_\ba_\bt_\bu_\br_\be and may
+ not be supported at all sites. For example, messages to CSNET or BITNET
+ sites can often be sent to ``user@host.CSNET'' or ``user@host.BITNET''
+ respectively.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mail(1), sendmail(8);
+ Crocker, D. H., _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bt_\bh_\be _\bF_\bo_\br_\bm_\ba_\bt _\bo_\bf _\bA_\br_\bp_\ba _\bI_\bn_\bt_\be_\br_\bn_\be_\bt _\bT_\be_\bx_\bt _\bM_\be_\bs_\bs_\ba_\bg_\be_\bs_\b,
+ RFC822.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ M\bMa\bai\bil\bla\bad\bdd\bdr\br appeared in 4.2 BSD.
+
+B\bBU\bUG\bGS\bS
+ The RFC822 group syntax (``group:user1,user2,user3;'') is not supported
+ except in the special case of ``group:;'' because of a conflict with old
+ berknet-style addresses.
+
+ Route-Address syntax is grotty.
+
+ UUCP- and Internet-style addresses do not coexist politely.
+
+4.2 Berkeley Distribution June 16, 1993 2
--- /dev/null
+
+
+
+MAN(7) BSD Reference Manual MAN(7)
+
+
+N\bNA\bAM\bME\bE
+ man - (deprecated) macros to typeset manual
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ n\bnr\bro\bof\bff\bf -\b-m\bma\ban\bn file ...
+
+ t\btr\bro\bof\bff\bf -\b-m\bma\ban\bn file ...
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ These macros were used in the past to lay out pages of
+ this manual. A skeleton page may be found in the file
+ /usr/share/misc/man.template. The new macros are in
+
+ Any text argument _\bt may be zero to six words. Quotes may
+ be used to include blanks in a `word'. If _\bt_\be_\bx_\bt is empty,
+ special treatment is applied to the next input line with
+ text to be printed. In this way .\b.I may be used to itali-
+ cize a whole line, or .\b.SM may be followed by .\b.B to make
+ small bold letters.
+
+ A prevailing indent distance is remembered between succes-
+ sive indented paragraphs, and is reset to default value
+ upon reaching a non-indented paragraph. Default units for
+ indents _\bi are ens.
+
+ Type font and size are reset to default values before each
+ paragraph, and after processing font and size setting
+ macros.
+
+ These strings are predefined by -\b-m\bma\ban\bn:
+
+ \*R `(Reg)', trademark symbol in _\bt_\br_\bo_\bf_\bf_\b.
+
+ \*S Change to default type size.
+
+F\bFI\bIL\bLE\bES\bS
+ /usr/share/tmac/tmac.an
+ /usr/man/man.template
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ man(1), troff(1)
+
+B\bBU\bUG\bGS\bS
+ Relative indents don't nest.
+
+R\bRE\bEQ\bQU\bUE\bES\bST\bTS\bS
+Request Cause If no Explanation
+ Break Argument
+.B _\bt no _\bt=n.t.l.*Text _\bt is bold.
+.BI _\bt no _\bt=n.t.l. Join words of _\bt alternating bold and
+ italic.
+
+
+
+7th Edition June 5, 1993 1
+
+
+
+
+
+
+
+
+MAN(7) BSD Reference Manual MAN(7)
+
+
+.BR _\bt no _\bt=n.t.l. Join words of _\bt alternating bold and
+ Roman.
+.DT no .5i 1i...Restore default tabs.
+.HP _\bi yes _\bi=p.i.* Set prevailing indent to _\bi_\b. Begin
+ paragraph with hanging indent.
+.I _\bt no _\bt=n.t.l. Text _\bt is italic.
+.IB _\bt no _\bt=n.t.l. Join words of _\bt alternating italic
+ and bold.
+.IP _\bx _\bi yes _\bx="" Same as .TP with tag _\bx_\b.
+.IR _\bt no _\bt=n.t.l. Join words of _\bt alternating italic
+ and Roman.
+.LP yes - Same as .PP.
+.PD _\bd no _\bd=.4v Interparagraph distance is _\bd_\b.
+.PP yes - Begin paragraph. Set prevailing
+ indent to .5i.
+.RE yes - End of relative indent. Set prevail-
+ ing indent to amount of starting .RS.
+.RB _\bt no _\bt=n.t.l. Join words of _\bt alternating Roman and
+ bold.
+.RI _\bt no _\bt=n.t.l. Join words of _\bt alternating Roman and
+ italic.
+.RS _\bi yes _\bi=p.i. Start relative indent, move left mar-
+ gin in distance _\bi_\b. Set prevailing
+ indent to .5i for nested indents.
+.SH _\bt yes _\bt=n.t.l. Subhead.
+.SM _\bt no _\bt=n.t.l. Text _\bt is small.
+.TH _\bn _\bc _\bx _\bv _\bm yes -Begin page named _\bn of chapter _\bc_\b; _\bx
+ is extra commentary, e.g. `local',
+ for page foot center; _\bv alters page
+ foot left, e.g. `4th Berkeley Distri-
+ bution'; _\bm alters page head center,
+ e.g. `Brand X Programmer's Manual'.
+ Set prevailing indent and tabs to
+ .5i.
+.TP _\bi yes _\bi=p.i. Set prevailing indent to _\bi_\b. Begin
+ indented paragraph with hanging tag
+ given by next text line. If tag
+ doesn't fit, place it on separate
+ line.
+
+* n.t.l. = next text line; p.i. = prevailing indent
+
+
+
+
+
+
+
+
+
+
+
+
+
+7th Edition June 5, 1993 2
+
+
+
+
+
--- /dev/null
+MDOC(7) BSD Reference Manual MDOC(7)
+
+N\bNA\bAM\bME\bE
+ m\bmd\bdo\boc\bc - quick reference guide for the -\b-m\bmd\bdo\boc\bc macro package
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ g\bgr\bro\bof\bff\bf -\b-m\bm_\bd_\bo_\bc _\bf_\bi_\bl_\be_\bs _\b._\b._\b.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The -\b-m\bmd\bdo\boc\bc package is a set of content-based and domain-based macros used
+ to format the BSD man pages. The macro names and their meanings are
+ listed below for quick reference; for a detailed explanation on using the
+ package, see the tutorial sampler mdoc.samples(7).
+
+ The macros are described in two groups, the first includes the structural
+ and physical page layout macros. The second contains the manual and gen-
+ eral text domain macros which differentiate the -\b-m\bmd\bdo\boc\bc package from other
+ troff formatting packages.
+
+P\bPA\bAG\bGE\bE S\bST\bTR\bRU\bUC\bCT\bTU\bUR\bRE\bE D\bDO\bOM\bMA\bAI\bIN\bN
+ T\bTi\bit\btl\ble\be M\bMa\bac\bcr\bro\bos\bs
+ To create a valid manual page, these three macros, in this order, are re-
+ quired:
+ .Dd _\bM_\bo_\bn_\bt_\bh _\bd_\ba_\by_\b, _\by_\be_\ba_\br Document date.
+ .Dt _\bD_\bO_\bC_\bU_\bM_\bE_\bN_\bT_\b__\bT_\bI_\bT_\bL_\bE _\b[_\bs_\be_\bc_\bt_\bi_\bo_\bn_\b] _\b[_\bv_\bo_\bl_\bu_\bm_\be_\b] Title, in upper case.
+ .Os _\bO_\bP_\bE_\bR_\bA_\bT_\bI_\bN_\bG_\b__\bS_\bY_\bS_\bT_\bE_\bM _\b[_\bv_\be_\br_\bs_\bi_\bo_\bn_\b/_\br_\be_\bl_\be_\ba_\bs_\be_\b] Operating system (BSD).
+
+ P\bPa\bag\bge\be L\bLa\bay\byo\bou\but\bt M\bMa\bac\bcr\bro\bos\bs
+ Section headers, paragraph breaks, lists and displays.
+ .Sh Section Headers. Valid headers, in the order of presentation:
+ _\bN_\bA_\bM_\bE Name section, should include the `.Nm' or `.Fn' and
+ the `.Nd' macros.
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS Usage.
+ _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN General description, should include options and pa-
+ rameters.
+ _\bR_\bE_\bT_\bU_\bR_\bN _\bV_\bA_\bL_\bU_\bE_\bS Sections two and three function calls.
+ _\bE_\bN_\bV_\bI_\bR_\bO_\bN_\bM_\bE_\bN_\bT Describe environment variables.
+ _\bF_\bI_\bL_\bE_\bS Files associated with the subject.
+ _\bE_\bX_\bA_\bM_\bP_\bL_\bE_\bS Examples and suggestions.
+ _\bD_\bI_\bA_\bG_\bN_\bO_\bS_\bT_\bI_\bC_\bS Normally used for section four device interface di-
+ agnostics.
+ _\bE_\bR_\bR_\bO_\bR_\bS Sections two and three error and signal handling.
+ _\bS_\bE_\bE _\bA_\bL_\bS_\bO Cross references and citations.
+ _\bS_\bT_\bA_\bN_\bD_\bA_\bR_\bD_\bS Conformance to standards if applicable.
+ _\bH_\bI_\bS_\bT_\bO_\bR_\bY If a standard is not applicable, the history of the
+ subject should be given.
+ _\bB_\bU_\bG_\bS Gotchas and caveats.
+ _\bo_\bt_\bh_\be_\br Customized headers may be added at the authors dis-
+ cretion.
+ .Ss Subsection Headers.
+ .Pp Paragraph Break. Vertical space (one line).
+ .D1 (D-one) Display-one Indent and display one text line.
+ .Dl (D-ell) Display-one literal. Indent and display one line of liter-
+ al text.
+ .Bd Begin-display block. Display options:
+ -\b-r\bra\bag\bgg\bge\bed\bd Unjustified (ragged edges).
+ -\b-f\bfi\bil\bll\ble\bed\bd Justified.
+ -\b-l\bli\bit\bte\ber\bra\bal\bl Literal text or code.
+ -\b-f\bfi\bil\ble\be _\bn_\ba_\bm_\be Read in named _\bf_\bi_\bl_\be and display.
+ -\b-o\bof\bff\bfs\bse\bet\bt _\bs_\bt_\br_\bi_\bn_\bg Offset display. Acceptable _\bs_\bt_\br_\bi_\bn_\bg values:
+ _\bl_\be_\bf_\bt Align block on left (default).
+ _\bc_\be_\bn_\bt_\be_\br Approximate center margin.
+ _\bi_\bn_\bd_\be_\bn_\bt Six constant width spaces (a tab).
+
+
+ _\bi_\bn_\bd_\be_\bn_\bt_\b-_\bt_\bw_\bo Two tabs.
+ _\br_\bi_\bg_\bh_\bt Left aligns block 2 inches from right.
+ _\bx_\bxn\bn Where _\bx_\bx is a number from 4n\bn to 99n\bn.
+ _\bA_\ba Where _\bA_\ba is a callable macro name.
+ _\bs_\bt_\br_\bi_\bn_\bg The width of _\bs_\bt_\br_\bi_\bn_\bg is used.
+ .Ed End-display (matches .Bd).
+ .Bl Begin-list. Create lists or columns. Options:
+ _\bL_\bi_\bs_\bt_\b-_\bt_\by_\bp_\be_\bs
+ -\b-b\bbu\bul\bll\ble\bet\bt Bullet Item List
+ -\b-i\bit\bte\bem\bm Unlabeled List
+ -\b-e\ben\bnu\bum\bm Enumerated List
+ -\b-t\bta\bag\bg Tag Labeled List
+ -\b-d\bdi\bia\bag\bg Diagnostic List
+ -\b-h\bha\ban\bng\bg Hanging Labeled List
+ -\b-o\boh\bha\ban\bng\bg Overhanging Labeled List
+ -\b-i\bin\bns\bse\bet\bt Inset or Run-on Labeled List
+ List-parameters
+ -\b-o\bof\bff\bfs\bse\bet\bt (All lists.) See `.Bd' begin-display above.
+ -\b-w\bwi\bid\bdt\bth\bh (-\b-t\bta\bag\bg and -\b-h\bha\ban\bng\bg lists only.) See `.Bd'.
+ -\b-c\bco\bom\bmp\bpa\bac\bct\bt (All lists.) Suppresses blank lines.
+ .El End-list.
+ .It List item.
+
+M\bMA\bAN\bNU\bUA\bAL\bL A\bAN\bND\bD G\bGE\bEN\bNE\bER\bRA\bAL\bL T\bTE\bEX\bXT\bT D\bDO\bOM\bMA\bAI\bIN\bN M\bMA\bAC\bCR\bRO\bOS\bS
+ The manual and general text domain macros are special in that most of
+ them are parsed for callable macros for example:
+
+ .Op Fl s Ar file Produces [-\b-s\bs _\bf_\bi_\bl_\be]
+
+ In this example, the option enclosure macro `.Op' is parsed, and calls
+ the callable content macro `Fl' which operates on the argument `s' and
+ then calls the callable content macro `Ar' which operates on the argument
+ `file'. Some macros may be callable, but are not parsed and vice versa.
+ These macros are indicated in the _\bp_\ba_\br_\bs_\be_\bd and _\bc_\ba_\bl_\bl_\ba_\bb_\bl_\be columns below.
+
+ Unless stated, manual domain macros share a common syntax:
+
+ .Va argument [ . , ; : ( ) [ ] argument ... ]
+
+ N\bNo\bot\bte\be: Opening and closing punctuation characters are only recognized as
+ such if they are presented one at a time. The string `),' is not recog-
+ nized as punctuation and will be output with a leading white space and in
+ what ever font the calling macro uses. The the argument list `] ) ,' is
+ recognized as three sequential closing punctuation characters and a lead-
+ ing white space is not output between the characters and the previous ar-
+ gument (if any). The special meaning of a punctuation character may be
+ escaped with the string `\&'. For example the following string,
+
+ .Ar file1 , file2 , file3 ) . Produces _\bf_\bi_\bl_\be_\b1, _\bf_\bi_\bl_\be_\b2, _\bf_\bi_\bl_\be_\b3).
+
+ M\bMa\ban\bnu\bua\bal\bl D\bDo\bom\bma\bai\bin\bn M\bMa\bac\bcr\bro\bos\bs
+ _\bN_\ba_\bm_\be _\bP_\ba_\br_\bs_\be_\bd _\bC_\ba_\bl_\bl_\ba_\bb_\bl_\be _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ Ad Yes Yes Address. (This macro may be deprecated.)
+ Ar Yes Yes Command line argument.
+ Cd No No Configuration declaration (section four
+ only).
+ Cm Yes Yes Command line argument modifier.
+ Dv Yes Yes Defined variable (source code).
+ Er Yes Yes Error number (source code).
+ Ev Yes Yes Environment variable.
+ Fa Yes Yes Function argument.
+ Fd Yes Yes Function declaration.
+ Fn Yes Yes Function call (also .Fo and .Fc).
+ Ic Yes Yes Interactive command.
+
+
+ Li Yes Yes Literal text.
+ Nm Yes Yes Command name.
+ Op Yes Yes Option (also .Oo and .Oc).
+ Ot Yes Yes Old style function type (Fortran only).
+ Pa Yes Yes Pathname or file name.
+ St Yes Yes Standards (-p1003.2, -p1003.1 or -ansiC)
+ Va Yes Yes Variable name.
+ Vt Yes Yes Variable type (Fortran only).
+ Xr Yes Yes Manual Page Cross Reference.
+
+ G\bGe\ben\bne\ber\bra\bal\bl T\bTe\bex\bxt\bt D\bDo\bom\bma\bai\bin\bn M\bMa\bac\bcr\bro\bos\bs
+ _\bN_\ba_\bm_\be _\bP_\ba_\br_\bs_\be_\bd _\bC_\ba_\bl_\bl_\ba_\bb_\bl_\be _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+ %A Yes No Reference author.
+ %B Yes Yes Reference book title.
+ %C No No Reference place of publishing (city).
+ %D No No Reference date.
+ %J Yes Yes Reference journal title.
+ %N No No Reference issue number.
+ %O No No Reference optional information.
+ %P No No Reference page number(s).
+ %R No No Reference report Name.
+ %T Yes Yes Reference article title.
+ %V No No Reference volume.
+ Ac Yes Yes Angle close quote.
+ Ao Yes Yes Angle open quote.
+ Aq Yes Yes Angle quote.
+ At No No AT&T UNIX
+ Bc Yes Yes Bracket close quote.
+ Bf No No Begin font mode.
+ Bo Yes Yes Bracket open quote.
+ Bq Yes Yes Bracket quote.
+ Bx Yes Yes Bx.
+ Db No No Debug (default is "off")
+ Dc Yes Yes Double close quote.
+ Do Yes Yes Double open quote.
+ Dq Yes Yes Double quote.
+ Ec Yes Yes Enclose string close quote.
+ Ef No No End font mode.
+ Em Yes Yes Emphasis (traditional English).
+ Eo Yes Yes Enclose string open quote.
+ No Yes Yes Normal text (no-op).
+ Ns Yes Yes No space.
+ Pc Yes Yes Parenthesis close quote.
+ Pf Yes No Prefix string.
+ Po Yes Yes Parenthesis open quote.
+ Pq Yes Yes Parentheses quote.
+ Qc Yes Yes Strait Double close quote.
+ Ql Yes Yes Quoted literal.
+ Qo Yes Yes Strait Double open quote.
+ Qq Yes Yes Strait Double quote.
+ Re No No Reference start.
+ Rs No No Reference start.
+ Sc Yes Yes Single close quote.
+ So Yes Yes Single open quote.
+ Sq Yes Yes Single quote.
+ Sm No No Space mode (default is "on")
+ Sx Yes Yes Section Cross Reference.
+ Sy Yes Yes Symbolic (traditional English).
+ Tn Yes Yes Trade or type name (small Caps).
+ Ux Yes Yes Ux
+ Xc Yes Yes Extend argument list close.
+ Xo Yes Yes Extend argument list close.
+
+ Macro names ending in `q' quote remaining items on the argument list.
+ Macro names ending in `o' begin a quote which may span more than one line
+ of input and are close quoted with the matching macro name ending in `c'.
+ Enclosure macros may be nested and are limited to eight arguments.
+
+ Note: the extended argument list macros (`.Xo', `.Xc') and the function
+ enclosure macros (`.Fo', `.Fc') are irregular. The extended list macros
+ are used when the number of macro arguments would exceed the troff limi-
+ tation of nine arguments.
+
+C\bCO\bON\bNF\bFI\bIG\bGU\bUR\bRA\bAT\bTI\bIO\bON\bN
+ For site specific configuration of the macro package, see the file
+ _\b/_\bu_\bs_\br_\b/_\bs_\br_\bc_\b/_\bs_\bh_\ba_\br_\be_\b/_\bt_\bm_\ba_\bc_\b/_\bR_\bE_\bA_\bD_\bM_\bE.
+
+F\bFI\bIL\bLE\bES\bS
+ tmac.doc Manual and general text domain macros.
+ tmac.doc-common Common structural macros and definitions.
+ tmac.doc-nroff Site dependent nroff style file.
+ tmac.doc-ditroff Site dependent troff style file.
+ tmac.doc-syms Special defines (such as the standards macro).
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mdoc.samples(7)
+
+4.4BSD June 9, 1993 4
--- /dev/null
+MDOC.SAMPLES(7) BSD Reference Manual MDOC.SAMPLES(7)
+
+N\bNA\bAM\bME\bE
+ m\bmd\bdo\boc\bc.\b.s\bsa\bam\bmp\bpl\ble\bes\bs - tutorial sampler for writing BSD manuals with -\b-m\bmd\bdo\boc\bc
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ m\bma\ban\bn m\bmd\bdo\boc\bc.\b.s\bsa\bam\bmp\bpl\ble\bes\bs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A tutorial sampler for writing BSD manual pages with the -\b-m\bmd\bdo\boc\bc macro
+ package, a _\bc_\bo_\bn_\bt_\be_\bn_\bt-based and _\bd_\bo_\bm_\ba_\bi_\bn-based formatting package for
+ troff(1). Its predecessor, the -man(7) package, addressed page layout
+ leaving the manipulation of fonts and other typesetting details to the
+ individual author. In -\b-m\bmd\bdo\boc\bc, page layout macros make up the _\bp_\ba_\bg_\be
+ _\bs_\bt_\br_\bu_\bc_\bt_\bu_\br_\be _\bd_\bo_\bm_\ba_\bi_\bn which consists of macros for titles, section headers,
+ displays and lists. Essentially items which affect the physical position
+ of text on a formatted page. In addition to the page structure domain,
+ there are two more domains, the manual domain and the general text do-
+ main. The general text domain is defined as macros which perform tasks
+ such as quoting or emphasizing pieces of text. The manual domain is de-
+ fined as macros that are a subset of the day to day informal language
+ used to describe commands, routines and related BSD files. Macros in the
+ manual domain handle command names, command line arguments and options,
+ function names, function parameters, pathnames, variables, cross refer-
+ ences to other manual pages, and so on. These domain items have value
+ for both the author and the future user of the manual page. It is hoped
+ the consistency gained across the manual set will provide easier transla-
+ tion to future documentation tools.
+
+ Through out the UNIX manual pages, a manual entry is simply referred to
+ as a man page, regardless of actual length and without sexist intention.
+
+G\bGE\bET\bTT\bTI\bIN\bNG\bG S\bST\bTA\bAR\bRT\bTE\bED\bD
+ Since a tutorial document is normally read when a person desires to use
+ the material immediately, the assumption has been made that the user of
+ this document may be impatient. The material presented in the remained
+ of this document is outlined as follows:
+
+ 1. TROFF IDIOSYNCRASIES
+ Macro Usage.
+ Passing Space Characters in an Argument.
+ Trailing Blank Space Characters (a warning).
+ Escaping Special Characters.
+
+ 2. THE ANATOMY OF A MAN PAGE
+ A manual page template.
+
+ 3. INTRODUCTION OF TITLE MACROS.
+
+ 4. INTRODUCTION OF MANUAL AND GENERAL TEXT DOMAINS.
+ What's in a name....
+ General Syntax.
+
+ 5. MANUAL DOMAIN
+ Addresses.
+ Arguments.
+ Configuration Declarations (section four only).
+ Command Modifier .
+ Defined Variables.
+ Errno's (Section two only).
+ Environment Variables.
+ Function Argument.
+ Function Declaration.
+
+
+ Flags.
+ Functions (library routines).
+ Function Types.
+ Interactive Commands.
+ Literals.
+ Names.
+ Options.
+ Pathnames.
+ Variables.
+ Cross References.
+
+ 6. GENERAL TEXT DOMAIN
+ AT&T Macro.
+ BSD Macro.
+ UNIX Macro.
+ Emphasis Macro.
+ Enclosure/Quoting Macros
+ Angle Bracket Quote/Enclosure.
+ Bracket Quotes/Enclosure.
+ Double Quote macro/Enclosure.
+ Parenthesis Quote/Enclosure.
+ Single Quotes/Enclosure.
+ Prefix Macro.
+ Extended Arguments.
+ No-Op or Normal Text Macro.
+ No Space Macro.
+ Section Cross References.
+ Symbolic Macro.
+ References and Citations.
+ Trade Names (Acronyms and Type Names).
+
+ 7. PAGE STRUCTURE DOMAIN
+ Section Headers.
+ Paragraphs and Line Spacing.
+ Keeps.
+ Displays.
+ Lists and Columns.
+
+ 8. PREDEFINED STRINGS
+
+ 9. DIAGNOSTICS
+
+ 10. FORMATTING WITH GROFF, TROFF AND NROFF
+
+ 11. BUGS
+
+T\bTR\bRO\bOF\bFF\bF I\bID\bDI\bIO\bOS\bSY\bYN\bNC\bCR\bRA\bAS\bSI\bIE\bES\bS
+ The -\b-m\bmd\bdo\boc\bc package attempts to simplify the process of writing a man page.
+ Theoretically, one should not have to learn the dirty details of troff(1)
+ to use -\b-m\bmd\bdo\boc\bc; however, there are a few limitations which are unavoidable
+ and best gotten out of the way. And, too, be forewarned, this package is
+ _\bn_\bo_\bt fast.
+
+ M\bMa\bac\bcr\bro\bo U\bUs\bsa\bag\bge\be
+ As in troff(1), a macro is called by placing a `.' (dot character) at
+ the beginning of a line followed by the two character name for the macro.
+ Arguments may follow the macro separated by spaces. It is the dot char-
+ acter at the beginning of the line which causes troff(1) to interpret the
+ next two characters as a macro name. To place a `.' (dot character) at
+ the beginning of a line in some context other than a macro invocation,
+ precede the `.' (dot) with the `\&' escape sequence. The `\&' translates
+ literally to a zero width space, and is never displayed in the output.
+
+ In general, troff(1) macros accept up to nine arguments, any extra argu-
+ ments are ignored. Most macros in -\b-m\bmd\bdo\boc\bc accept nine arguments and, in
+ limited cases, arguments may be continued or extended on the next line
+ (See _\bE_\bx_\bt_\be_\bn_\bs_\bi_\bo_\bn_\bs). A few macros handle quoted arguments (see _\bP_\ba_\bs_\bs_\bi_\bn_\bg _\bS_\bp_\ba_\bc_\be
+ _\bC_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs _\bi_\bn _\ba_\bn _\bA_\br_\bg_\bu_\bm_\be_\bn_\bt below).
+
+ Most of the -\b-m\bmd\bdo\boc\bc general text domain and manual domain macros are spe-
+ cial in that their argument lists are _\bp_\ba_\br_\bs_\be_\bd for callable macro names.
+ This means an argument on the argument list which matches a general text
+ or manual domain macro name and is determined to be callable will be exe-
+ cuted or called when it is processed. In this case the argument, al-
+ though the name of a macro, is not preceded by a `.' (dot). It is in
+ this manner that many macros are nested; for example the option macro,
+ `.Op', may _\bc_\ba_\bl_\bl the flag and argument macros, `Fl' and `Ar', to specify
+ an optional flag with an argument:
+
+ [-\b-s\bs _\bb_\by_\bt_\be_\bs] is produced by .Op Fl s Ar bytes
+
+ To prevent a two character string from being interpreted as a macro name,
+ precede the string with the escape sequence `\&':
+
+ [Fl s Ar bytes] is produced by .Op \&Fl s \&Ar bytes
+
+ Here the strings `Fl' and `Ar' are not interpreted as macros. Macros
+ whose argument lists are parsed for callable arguments are referred to as
+ parsed and macros which may be called from an argument list are referred
+ to as callable through out this document and in the companion quick ref-
+ erence manual mdoc(7). This is a technical _\bf_\ba_\bu_\bx _\bp_\ba_\bs as almost all of the
+ macros in -\b-m\bmd\bdo\boc\bc are parsed, but as it was cumbersome to constantly refer
+ to macros as being callable and being able to call other macros, the term
+ parsed has been used.
+
+ P\bPa\bas\bss\bsi\bin\bng\bg S\bSp\bpa\bac\bce\be C\bCh\bha\bar\bra\bac\bct\bte\ber\brs\bs i\bin\bn a\ban\bn A\bAr\brg\bgu\bum\bme\ben\bnt\bt
+ Sometimes it is desirable to give as one argument a string containing one
+ or more blank space characters. This may be necessary to defeat the nine
+ argument limit or to specify arguments to macros which expect particular
+ arrangement of items in the argument list. For example, the function
+ macro `.Fn' expects the first argument to be the name of a function and
+ any remaining arguments to be function parameters. As ANSI C stipulates
+ the declaration of function parameters in the parenthesized parameter
+ list, each parameter is guaranteed to be at minimum a two word string.
+ For example, _\bi_\bn_\bt _\bf_\bo_\bo.
+
+ There are two possible ways to pass an argument which contains an embed-
+ ded space. _\bI_\bm_\bp_\bl_\be_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn _\bn_\bo_\bt_\be: Unfortunately, the most convenient way
+ of passing spaces in between quotes by reassigning individual arguments
+ before parsing was fairly expensive speed wise and space wise to imple-
+ ment in all the macros for AT&T troff. It is not expensive for groff but
+ for the sake of portability, has been limited to the following macros
+ which need it the most:
+
+ Cd Configuration declaration (section 4 _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS)
+ Bl Begin list (for the width specifier).
+ Em Emphasized text.
+ Fn Functions (sections two and four).
+ It List items.
+ Li Literal text.
+ Sy Symbolic text.
+ %B Book titles.
+ %J Journal names.
+ %O Optional notes for a reference.
+ %R Report title (in a reference).
+ %T Title of article in a book or journal.
+
+ One way of passing a string containing blank spaces is to use the hard or
+ unpaddable space character `\ ', that is, a blank space preceded by the
+ escape character `\'. This method may be used with any macro but has the
+ side effect of interfering with the adjustment of text over the length of
+ a line. Troff sees the hard space as if it were any other printable
+ character and cannot split the string into blank or newline separated
+ pieces as one would expect. The method is useful for strings which are
+ not expected to overlap a line boundary. For example:
+
+ f\bfe\bet\btc\bch\bh(_\bc_\bh_\ba_\br _\b*_\bs_\bt_\br) is created by `.Fn fetch char\ *str'
+
+ f\bfe\bet\btc\bch\bh(_\bc_\bh_\ba_\br _\b*_\bs_\bt_\br) can also be created by `.Fn fetch "*char *str"'
+
+ If the `\' or quotes were omitted, `.Fn' would see three arguments and
+ the result would be:
+
+ f\bfe\bet\btc\bch\bh(_\bc_\bh_\ba_\br, _\b*_\bs_\bt_\br)
+
+ For an example of what happens when the parameter list overlaps a newline
+ boundary, see the _\bB_\bU_\bG_\bS section.
+
+ T\bTr\bra\bai\bil\bli\bin\bng\bg B\bBl\bla\ban\bnk\bk S\bSp\bpa\bac\bce\be C\bCh\bha\bar\bra\bac\bct\bte\ber\brs\bs
+ Troff can be confused by blank space characters at the end of a line. It
+ is a wise preventive measure to globally remove all blank spaces from
+ <blank-space><end-of-line> character sequences. Should the need arise to
+ force a blank character at the end of a line, it may be forced with an
+ unpaddable space and the `\&' escape character. For example,
+ `string\ \&'.
+
+ E\bEs\bsc\bca\bap\bpi\bin\bng\bg S\bSp\bpe\bec\bci\bia\bal\bl C\bCh\bha\bar\bra\bac\bct\bte\ber\brs\bs
+ Special characters like the newline character `\n', are handled by re-
+ placing the `\' with `\e' (e.g. `\en') to preserve the backslash.
+
+T\bTH\bHE\bE A\bAN\bNA\bAT\bTO\bOM\bMY\bY O\bOF\bF A\bA M\bMA\bAN\bN P\bPA\bAG\bGE\bE
+ The body of a man page is easily constructed from a basic template found
+ in the file:
+
+ .\" /usr/share/misc/man.template:
+ .\" The following six lines are required.
+ .Dd Month day, year
+ .Os OPERATING_SYSTEM [version/release]
+ .Dt DOCUMENT_TITLE [section number] [volume]
+ .Sh NAME
+ .Sh SYNOPSIS
+ .Sh DESCRIPTION
+ .\" The following requests should be uncommented and
+ .\" used where appropriate. This next request is
+ .\" for sections 2 and 3 function return values only.
+ .\" .Sh RETURN VALUES
+ .\" This next request is for sections 1, 6, 7 & 8 only
+ .\" .Sh ENVIRONMENT
+ .\" .Sh FILES
+ .\" .Sh EXAMPLES
+ .\" This next request is for sections 1, 6, 7 & 8 only
+ .\" (command return values (to shell) and
+ .\" fprintf/stderr type diagnostics)
+ .\" .Sh DIAGNOSTICS
+ .\" The next request is for sections 2 and 3 error
+ .\" and signal handling only.
+ .\" .Sh ERRORS
+ .\" .Sh SEE ALSO
+ .\" .Sh STANDARDS
+ .\" .Sh HISTORY
+ .\" .Sh AUTHORS
+ .\" .Sh BUGS
+
+ The first items in the template are the macros (.Dd, .Os, .Dt); the docu-
+ ment date, the operating system the man page or subject source is devel-
+ oped or modified for, and the man page title (_\bi_\bn _\bu_\bp_\bp_\be_\br _\bc_\ba_\bs_\be) along with
+ the section of the manual the page belongs in. These macros identify the
+ page, and are discussed below in _\bT_\bI_\bT_\bL_\bE _\bM_\bA_\bC_\bR_\bO_\bS.
+
+ The remaining items in the template are section headers (.Sh); of which
+ _\bN_\bA_\bM_\bE, _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS and _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN are mandatory. The headers are discussed
+ in _\bP_\bA_\bG_\bE _\bS_\bT_\bR_\bU_\bC_\bT_\bU_\bR_\bE _\bD_\bO_\bM_\bA_\bI_\bN, after presentation of _\bM_\bA_\bN_\bU_\bA_\bL _\bD_\bO_\bM_\bA_\bI_\bN. Several
+ content macros are used to demonstrate page layout macros; reading about
+ content macros before page layout macros is recommended.
+
+T\bTI\bIT\bTL\bLE\bE M\bMA\bAC\bCR\bRO\bOS\bS
+ The title macros are the first portion of the page structure domain, but
+ are presented first and separate for someone who wishes to start writing
+ a man page yesterday. Three header macros designate the document title
+ or manual page title, the operating system, and the date of authorship.
+ These macros are one called once at the very beginning of the document
+ and are used to construct the headers and footers only.
+
+ .Dt DOCUMENT_TITLE section# [volume]
+ The document title is the subject of the man page and must be in
+ CAPITALS due to troff limitations. The section number may be
+ 1, ..., 8, and if it is specified, the volume title may be omit-
+ ted. A volume title may be arbitrary or one of the following:
+
+ AMD UNIX Ancestral Manual Documents
+ SMM UNIX System Manager's Manual
+ URM UNIX Reference Manual
+ PRM UNIX Programmer's Manual
+
+ The default volume labeling is URM for sections 1, 6, and 7; SMM
+ for section 8; PRM for sections 2, 3, 4, and 5.
+
+ .Os operating_system release#
+ The name of the operating system should be the common acronym,
+ e.g. BSD or ATT. The release should be the standard release
+ nomenclature for the system specified, e.g. 4.3, 4.3+Tahoe, V.3,
+ V.4. Unrecognized arguments are displayed as given in the page
+ footer. For instance, a typical footer might be:
+
+ .Os BSD 4.3
+
+ or for a locally produced set
+
+ .Os CS Department
+
+ The Berkeley default, `.Os' without an argument, has been defined
+ as BSD Experimental in the site specific file
+ _\b/_\bu_\bs_\br_\b/_\bs_\br_\bc_\b/_\bs_\bh_\ba_\br_\be_\b/_\bt_\bm_\ba_\bc_\b/_\bd_\bo_\bc_\b-_\bc_\bo_\bm_\bm_\bo_\bn. It really should default to
+ LOCAL. Note, if the `.Os' macro is not present, the bottom left
+ corner of the page will be ugly.
+
+ .Dd month day, year
+ The date should be written formally:
+
+ January 25, 1989
+
+M\bMA\bAN\bNU\bUA\bAL\bL D\bDO\bOM\bMA\bAI\bIN\bN
+ W\bWh\bha\bat\bt'\b's\bs i\bin\bn a\ba n\bna\bam\bme\be.\b..\b..\b.
+ The manual domain macro names are derived from the day to day informal
+ language used to describe commands, subroutines and related files.
+ Slightly different variations of this language are used to describe the
+ three different aspects of writing a man page. First, there is the de-
+ scription of -\b-m\bmd\bdo\boc\bc macro request usage. Second is the description of a
+ UNIX command _\bw_\bi_\bt_\bh -\b-m\bmd\bdo\boc\bc macros and third, the description a command to a
+ user in the verbal sense; that is, discussion of a command in the text of
+ a man page.
+
+ In the first case, troff(1) macros are themselves a type of command; the
+ general syntax for a troff command is:
+
+ .Va argument1 argument2 ... argument9
+
+ The `.Va' is a macro command or request, and anything following it is an
+ argument to be processed. In the second case, the description of a UNIX
+ command using the content macros is a bit more involved; a typical
+ _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS command line might be displayed as:
+
+ f\bfi\bil\blt\bte\ber\br [-\b-f\bfl\bla\bag\bg] _\bi_\bn_\bf_\bi_\bl_\be _\bo_\bu_\bt_\bf_\bi_\bl_\be
+
+ Here, f\bfi\bil\blt\bte\ber\br is the command name and the bracketed string -\b-f\bfl\bla\bag\bg is a _\bf_\bl_\ba_\bg
+ argument designated as optional by the option brackets. In -\b-m\bmd\bdo\boc\bc terms,
+ _\bi_\bn_\bf_\bi_\bl_\be and _\bo_\bu_\bt_\bf_\bi_\bl_\be are called _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs. The macros which formatted the
+ above example:
+
+ .Nm filter
+ .Op Fl flag
+ .Ar infile outfile
+
+ In the third case, discussion of commands and command syntax includes
+ both examples above, but may add more detail. The arguments _\bi_\bn_\bf_\bi_\bl_\be and
+ _\bo_\bu_\bt_\bf_\bi_\bl_\be from the example above might be referred to as _\bo_\bp_\be_\br_\ba_\bn_\bd_\bs or _\bf_\bi_\bl_\be
+ _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs. Some command line argument lists are quite long:
+
+ m\bma\bak\bke\be [-\b-e\bei\bik\bkn\bnq\bqr\brs\bst\btv\bv] [-\b-D\bD _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be] [-\b-d\bd _\bf_\bl_\ba_\bg_\bs] [-\b-f\bf _\bm_\ba_\bk_\be_\bf_\bi_\bl_\be]
+ [-\b-I\bI _\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by] [-\b-j\bj _\bm_\ba_\bx_\b__\bj_\bo_\bb_\bs] [_\bv_\ba_\br_\bi_\ba_\bb_\bl_\be_\b=_\bv_\ba_\bl_\bu_\be] [_\bt_\ba_\br_\bg_\be_\bt _\b._\b._\b.]
+
+ Here one might talk about the command m\bma\bak\bke\be and qualify the argument
+ _\bm_\ba_\bk_\be_\bf_\bi_\bl_\be, as an argument to the flag, -\b-f\bf, or discuss the optional file
+ operand _\bt_\ba_\br_\bg_\be_\bt. In the verbal context, such detail can prevent confusion,
+ however the -\b-m\bmd\bdo\boc\bc package does not have a macro for an argument _\bt_\bo a
+ flag. Instead the `Ar' argument macro is used for an operand or file ar-
+ gument like _\bt_\ba_\br_\bg_\be_\bt as well as an argument to a flag like _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be. The
+ make command line was produced from:
+
+ .Nm make
+ .Op Fl eiknqrstv
+ .Op Fl D Ar variable
+ .Op Fl d Ar flags
+ .Op Fl f Ar makefile
+ .Op Fl I Ar directory
+ .Op Fl j Ar max_jobs
+ .Op Ar variable=value
+ .Bk -words
+ .Op Ar target ...
+ .Ek
+
+ The `.Bk' and `.Ek' macros are explained in _\bK_\be_\be_\bp_\bs.
+
+ G\bGe\ben\bne\ber\bra\bal\bl S\bSy\byn\bnt\bta\bax\bx
+ The manual domain and general text domain macros share a similar syntax
+ with a few minor deviations: `.Ar', `.Fl', `.Nm', and `.Pa' differ only
+ when called without arguments; `.Fn' and `.Xr' impose an order on their
+ argument lists and the `.Op' and `.Fn' macros have nesting limitations.
+ All content macros are capable of recognizing and properly handling punc-
+ tuation, provided each punctuation character is separated by a leading
+ space. If an request is given:
+
+ .Li sptr, ptr),
+
+ The result is:
+
+ sptr, ptr),
+
+ The punctuation is not recognized and all is output in the literal font.
+ If the punctuation is separated by a leading white space:
+
+ .Li sptr , ptr ) ,
+
+ The result is:
+
+ sptr, ptr),
+
+ The punctuation is now recognized and is output in the default font dis-
+ tinguishing it from the strings in literal font.
+
+ To remove the special meaning from a punctuation character escape it with
+ `\&'. Troff is limited as a macro language, and has difficulty when pre-
+ sented with a string containing a member of the mathematical, logical or
+ quotation set:
+
+ {+,-,/,*,%,<,>,<=,>=,=,==,&,`,',"}
+
+ The problem is that troff may assume it is supposed to actually perform
+ the operation or evaluation suggested by the characters. To prevent the
+ accidental evaluation of these characters, escape them with `\&'. Typical
+ syntax is shown in the first content macro displayed below, `.Ad'.
+
+ A\bAd\bdd\bdr\bre\bes\bss\bs M\bMa\bac\bcr\bro\bo
+ The address macro identifies an address construct of the form ad-
+ dr1[,addr2[,addr3]].
+
+ Usage: .Ad address ... { . , ; : ( ) [ ]}
+ .Ad addr1 _\ba_\bd_\bd_\br_\b1
+ .Ad addr1 . _\ba_\bd_\bd_\br_\b1.
+ .Ad addr1 , file2 _\ba_\bd_\bd_\br_\b1, _\bf_\bi_\bl_\be_\b2
+ .Ad f1 , f2 , f3 : _\bf_\b1, _\bf_\b2, _\bf_\b3:
+ .Ad addr ) ) , _\ba_\bd_\bd_\br)),
+
+ It is an error to call .Ad without arguments. .Ad is callable by other
+ macros and is parsed.
+
+ A\bAr\brg\bgu\bum\bme\ben\bnt\bt M\bMa\bac\bcr\bro\bo
+ The .Ar argument macro may be used whenever a command line argument is
+ referenced.
+
+ Usage: .Ar argument ... { . , ; : ( ) [ ]}
+ .Ar _\bf_\bi_\bl_\be _\b._\b._\b.
+ .Ar file1 _\bf_\bi_\bl_\be_\b1
+ .Ar file1 . _\bf_\bi_\bl_\be_\b1.
+ .Ar file1 file2 _\bf_\bi_\bl_\be_\b1 _\bf_\bi_\bl_\be_\b2
+ .Ar f1 f2 f3 : _\bf_\b1 _\bf_\b2 _\bf_\b3:
+ .Ar file ) ) , _\bf_\bi_\bl_\be)),
+
+ If .Ar is called without arguments `_\bf_\bi_\bl_\be _\b._\b._\b.' is assumed. The .Ar macro
+ is parsed and is callable.
+
+ C\bCo\bon\bnf\bfi\big\bgu\bur\bra\bat\bti\bio\bon\bn D\bDe\bec\bcl\bla\bar\bra\bat\bti\bio\bon\bn (\b(s\bse\bec\bct\bti\bio\bon\bn f\bfo\bou\bur\br o\bon\bnl\bly\by)\b)
+ The `.Cd' macro is used to demonstrate a config(8) declaration for a de-
+ vice interface in a section four manual. This macro accepts quoted argu-
+ ments (double quotes only).
+
+ d\bde\bev\bvi\bic\bce\be l\ble\be0\b0 a\bat\bt s\bsc\bco\bod\bde\be?\b? produced by: `.Cd device le0 at scode?'.
+
+ C\bCo\bom\bmm\bma\ban\bnd\bd M\bMo\bod\bdi\bif\bfi\bie\ber\br
+ The command modifier is identical to the `.Fl' (flag) command with the
+ exception the `.Cm' macro does not assert a dash in front of every argu-
+ ment. Traditionally flags are marked by the preceding dash, some com-
+ mands or subsets of commands do not use them. Command modifiers may also
+ be specified in conjunction with interactive commands such as editor com-
+ mands. See _\bF_\bl_\ba_\bg_\bs.
+
+
+ D\bDe\bef\bfi\bin\bne\bed\bd V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
+ A variable which is defined in an include file is specified by the macro
+ `.Dv'.
+
+ Usage: .Dv defined_variable ... { . , ; : ( ) [ ]}
+ .Dv MAXHOSTNAMELEN MAXHOSTNAMELEN
+ .Dv TIOCGPGRP ) TIOCGPGRP)
+
+ It is an error to call `.Dv' without arguments. `.Dv' is parsed and is
+ callable.
+
+ E\bEr\brr\brn\bno\bo'\b's\bs (\b(S\bSe\bec\bct\bti\bio\bon\bn t\btw\bwo\bo o\bon\bnl\bly\by)\b)
+ The `.Er' errno macro specifies the error return value for section two
+ library routines. The second example below shows `.Er' used with the
+ `.Bq' general text domain macro, as it would be used in a section two
+ manual page.
+
+ Usage: .Er ERRNOTYPE ... { . , ; : ( ) [ ]}
+ .Er ENOENT ENOENT
+ .Er ENOENT ) ; ENOENT);
+ .Bq Er ENOTDIR [ENOTDIR]
+
+ It is an error to call `.Er' without arguments. The `.Er' macro is
+ parsed and is callable.
+
+ E\bEn\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
+ The `.Ev' macro specifies a environment variable.
+
+ Usage: .Ev argument ... { . , ; : ( ) [ ]}
+ .Ev DISPLAY DISPLAY
+ .Ev PATH . PATH.
+ .Ev PRINTER ) ) , PRINTER)),
+
+ It is an error to call `.Ev' without arguments. The `.Ev' macro is
+ parsed and is callable.
+
+ F\bFu\bun\bnc\bct\bti\bio\bon\bn A\bAr\brg\bgu\bum\bme\ben\bnt\bt
+ The `.Fa' macro is used to refer to function arguments (parameters) out-
+ side of the _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS section of the manual or inside the _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS section
+ should a parameter list be too long for the `.Fn' macro and the enclosure
+ macros `.Fo' and `.Fc' must be used. `.Fa' may also be used to refer to
+ structure members.
+
+ Usage: .Fa function_argument ... { . , ; : ( ) [ ]}
+ .Fa d_namlen ) ) , _\bd_\b__\bn_\ba_\bm_\bl_\be_\bn)),
+ .Fa iov_len _\bi_\bo_\bv_\b__\bl_\be_\bn
+
+ It is an error to call `.Fa' without arguments. `.Fa' is parsed and is
+ callable.
+
+ F\bFu\bun\bnc\bct\bti\bio\bon\bn D\bDe\bec\bcl\bla\bar\bra\bat\bti\bio\bon\bn
+ The `.Fd' macro is used in the _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS section with section two or three
+ functions. The `.Fd' macro does not call other macros and is not
+ callable by other macros.
+
+ Usage: .Fd include_file (or defined variable)
+
+ In the _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS section a `.Fd' request causes a line break if a function
+ has already been presented and a break has not occurred. This leaves a
+ nice vertical space in between the previous function call and the decla-
+ ration for the next function.
+
+ F\bFl\bla\bag\bgs\bs
+ The `.Fl' macro handles command line flags. It prepends a dash, `-', to
+ the flag. For interactive command flags, which are not prepended with a
+ dash, the `.Cm' (command modifier) macro is identical, but with out the
+ dash.
+
+ Usage: .Fl argument ... { . , ; : ( ) [ ]}
+ .Fl -\b-
+ .Fl cfv -\b-c\bcf\bfv\bv
+ .Fl cfv . -\b-c\bcf\bfv\bv.
+ .Fl s v t -\b-s\bs -\b-v\bv -\b-t\bt
+ .Fl - , -\b--\b-,
+ .Fl xyz ) , -\b-x\bxy\byz\bz),
+
+ The `.Fl' macro without any arguments results in a dash representing
+ stdin/stdout. Note that giving `.Fl' a single dash, will result in two
+ dashes. The `.Fl' macro is parsed and is callable.
+
+ F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs (\b(l\bli\bib\bbr\bra\bar\bry\by r\bro\bou\but\bti\bin\bne\bes\bs)\b)
+ The .Fn macro is modeled on ANSI C conventions.
+
+ Usage: .Fn [type] function [[type] parameters ... { . , ; : ( ) [ ]}]
+ .Fn getchar g\bge\bet\btc\bch\bha\bar\br()
+ .Fn strlen ) , s\bst\btr\brl\ble\ben\bn()),
+ .Fn "int align" "const * char *sptrs", i\bin\bnt\bt a\bal\bli\big\bgn\bn(_\bc_\bo_\bn_\bs_\bt _\b* _\bc_\bh_\ba_\br _\b*_\bs_\bp_\bt_\br_\bs),
+
+ It is an error to call `.Fn' without any arguments. The `.Fn' macro is
+ parsed and is callable, note that any call to another macro signals the
+ end of the `.Fn' call (it will close-parenthesis at that point).
+
+ For functions that have more than eight parameters (and this is rare),
+ the macros `.Fo' (function open) and `.Fc' (function close) may be used
+ with `.Fa' (function argument) to get around the limitation. For example:
+
+ .Fo "int res_mkquery"
+ .Fa "int op"
+ .Fa "char *dname"
+ .Fa "int class"
+ .Fa "int type"
+ .Fa "char *data"
+ .Fa "int datalen"
+ .Fa "struct rrec *newrr"
+ .Fa "char *buf"
+ .Fa "int buflen"
+ .Fc
+
+ Produces:
+
+ i\bin\bnt\bt r\bre\bes\bs_\b_m\bmk\bkq\bqu\bue\ber\bry\by(_\bi_\bn_\bt _\bo_\bp, _\bc_\bh_\ba_\br _\b*_\bd_\bn_\ba_\bm_\be, _\bi_\bn_\bt _\bc_\bl_\ba_\bs_\bs, _\bi_\bn_\bt _\bt_\by_\bp_\be,
+ _\bc_\bh_\ba_\br _\b*_\bd_\ba_\bt_\ba, _\bi_\bn_\bt _\bd_\ba_\bt_\ba_\bl_\be_\bn, _\bs_\bt_\br_\bu_\bc_\bt _\br_\br_\be_\bc _\b*_\bn_\be_\bw_\br_\br, _\bc_\bh_\ba_\br _\b*_\bb_\bu_\bf, _\bi_\bn_\bt _\bb_\bu_\bf_\bl_\be_\bn)
+
+ The `.Fo' and `.Fc' macros are parsed and are callable. In the _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
+ section, the function will always begin at the beginning of line. If
+ there is more than one function presented in the _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS section and a
+ function type has not been given, a line break will occur, leaving a nice
+ vertical space between the current function name and the one prior. At
+ the moment, `.Fn' does not check its word boundaries against troff line
+ lengths and may split across a newline ungracefully. This will be fixed
+ in the near future.
+
+ F\bFu\bun\bnc\bct\bti\bio\bon\bn T\bTy\byp\bpe\be
+ This macro is intended for the _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS section. It may be used anywhere
+ else in the man page without problems, but its main purpose is to present
+ the function type in kernel normal form for the _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS of sections two
+ and three (it causes a page break allowing the function name to appear on
+ the next line).
+
+ Usage: .Ft type ... { . , ; : ( ) [ ]}
+
+ .Ft struct stat _\bs_\bt_\br_\bu_\bc_\bt _\bs_\bt_\ba_\bt
+
+ The `.Ft' request is not callable by other macros.
+
+ I\bIn\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be C\bCo\bom\bmm\bma\ban\bnd\bds\bs
+ The `.Ic' macro designates an interactive or internal command.
+
+ Usage: .Li argument ... { . , ; : ( ) [ ]}
+ .Ic :wq :\b:w\bwq\bq
+ .Ic do while {...} d\bdo\bo w\bwh\bhi\bil\ble\be {\b{.\b..\b..\b.}\b}
+ .Ic setenv , unsetenv s\bse\bet\bte\ben\bnv\bv, u\bun\bns\bse\bet\bte\ben\bnv\bv
+
+ It is an error to call `.Ic' without arguments. The `.Ic' macro is
+ parsed and is callable.
+
+ L\bLi\bit\bte\ber\bra\bal\bls\bs
+ The `.Li' literal macro may be used for special characters, variable con-
+ stants, anything which should be displayed as it would be typed.
+
+ Usage: .Li argument ... { . , ; : ( ) [ ]}
+ .Li \en \n
+ .Li M1 M2 M3 ; M1 M2 M3;
+ .Li cntrl-D ) , cntrl-D),
+ .Li 1024 ... 1024 ...
+
+ The `.Li' macro is parsed and is callable.
+
+ N\bNa\bam\bme\be M\bMa\bac\bcr\bro\bo
+ The `.Nm' macro is used for the document title or subject name. It has
+ the peculiarity of remembering the first argument it was called with,
+ which should always be the subject name of the page. When called without
+ arguments, `.Nm' regurgitates this initial name for the sole purpose of
+ making less work for the author. Note: a section two or three document
+ function name is addressed with the `.Nm' in the _\bN_\bA_\bM_\bE section, and with
+ `.Fn' in the _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS and remaining sections. For interactive commands,
+ such as the `while' command keyword in csh(1), the `.Ic' macro should be
+ used. While the `.Ic' is nearly identical to `.Nm', it can not recall
+ the first argument it was invoked with.
+
+ Usage: .Nm argument ... { . , ; : ( ) [ ]}
+ .Nm mdoc.sample m\bmd\bdo\boc\bc.\b.s\bsa\bam\bmp\bpl\ble\be
+ .Nm \-mdoc -\b-m\bmd\bdo\boc\bc.
+ .Nm foo ) ) , f\bfo\boo\bo)),
+ .Nm m\bmd\bdo\boc\bc.\b.s\bsa\bam\bmp\bpl\ble\bes\bs
+
+ The `.Nm' macro is parsed and is callable.
+
+ O\bOp\bpt\bti\bio\bon\bns\bs
+ The `.Op' macro places option brackets around the any remaining arguments
+ on the command line, and places any trailing punctuation outside the
+ brackets. The macros `.Oc' and `.Oo' may be used across one or more
+ lines.
+
+ Usage: .Op options ... { . , ; : ( ) [ ]}
+ .Op []
+ .Op Fl k [-\b-k\bk]
+ .Op Fl k ) . [-\b-k\bk]).
+ .Op Fl k Ar kookfile [-\b-k\bk _\bk_\bo_\bo_\bk_\bf_\bi_\bl_\be]
+ .Op Fl k Ar kookfile , [-\b-k\bk _\bk_\bo_\bo_\bk_\bf_\bi_\bl_\be],
+ .Op Ar objfil Op Ar corfil [_\bo_\bb_\bj_\bf_\bi_\bl [_\bc_\bo_\br_\bf_\bi_\bl]]
+ .Op Fl c Ar objfil Op Ar corfil , [-\b-c\bc _\bo_\bb_\bj_\bf_\bi_\bl [_\bc_\bo_\br_\bf_\bi_\bl]],
+ .Op word1 word2 [word1 word2]
+
+ The `.Oc' and `.Oo' macros:
+
+ .Oo
+ .Op Fl k Ar kilobytes
+ .Op Fl i Ar interval
+ .Op Fl c Ar count
+ .Oc
+
+ Produce: [[-\b-k\bk _\bk_\bi_\bl_\bo_\bb_\by_\bt_\be_\bs] [-\b-i\bi _\bi_\bn_\bt_\be_\br_\bv_\ba_\bl] [-\b-c\bc _\bc_\bo_\bu_\bn_\bt]]
+
+ The macros `.Op', `.Oc' and `.Oo' are parsed and are callable.
+
+ P\bPa\bat\bth\bhn\bna\bam\bme\bes\bs
+ The `.Pa' macro formats path or file names.
+
+ Usage: .Pa pathname { . , ; : ( ) [ ]}
+ .Pa /usr/share _\b/_\bu_\bs_\br_\b/_\bs_\bh_\ba_\br_\be
+ .Pa /tmp/fooXXXXX ) . _\b/_\bt_\bm_\bp_\b/_\bf_\bo_\bo_\bX_\bX_\bX_\bX_\bX).
+
+ The `.Pa' macro is parsed and is callable.
+
+ V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
+ Generic variable reference:
+
+ Usage: .Va variable ... { . , ; : ( ) [ ]}
+ .Va count _\bc_\bo_\bu_\bn_\bt
+ .Va settimer, _\bs_\be_\bt_\bt_\bi_\bm_\be_\br,
+ .Va int *prt ) : _\bi_\bn_\bt _\b*_\bp_\br_\bt):
+ .Va char s ] ) ) , _\bc_\bh_\ba_\br _\bs])),
+
+ It is an error to call `.Va' without any arguments. The `.Va' macro is
+ parsed and is callable.
+
+ M\bMa\ban\bnu\bua\bal\bl P\bPa\bag\bge\be C\bCr\bro\bos\bss\bs R\bRe\bef\bfe\ber\bre\ben\bnc\bce\bes\bs
+ The `.Xr' macro expects the first argument to be a manual page name, and
+ the second argument, if it exists, to be either a section page number or
+ punctuation. Any remaining arguments are assumed to be punctuation.
+
+ Usage: .Xr man_page [1,...,8] { . , ; : ( ) [ ]}
+ .Xr mdoc mdoc
+ .Xr mdoc , mdoc,
+ .Xr mdoc 7 mdoc(7)
+ .Xr mdoc 7 ) ) , mdoc(7))),
+
+ The `.Xr' macro is parsed and is callable. It is an error to call `.Xr'
+ without any arguments.
+
+G\bGE\bEN\bNE\bER\bRA\bAL\bL T\bTE\bEX\bXT\bT D\bDO\bOM\bMA\bAI\bIN\bN
+ A\bAT\bT&\b&T\bT M\bMa\bac\bcr\bro\bo
+ Usage: .At [v6 | v7 | 32v | V.1 | V.4] ... { . , ; : ( ) [ ]}
+ .At AT&T UNIX
+ .At v6 . Version 6 AT&T UNIX.
+
+ The `.At' macro is _\bn_\bo_\bt parsed and _\bn_\bo_\bt callable. It accepts at most two
+ arguments.
+
+ B\bBS\bSD\bD M\bMa\bac\bcr\bro\bo
+ Usage: .Bx [Version/release] ... { . , ; : ( ) [ ]}
+ .Bx BSD
+ .Bx 4.3 . 4.3BSD.
+
+ The `.Bx' macro is parsed and is callable.
+
+ U\bUN\bNI\bIX\bX M\bMa\bac\bcr\bro\bo
+ Usage: .Ux ... { . , ; : ( ) [ ]}
+ .Ux UNIX
+
+ The `.Ux' macro is parsed and is callable.
+
+
+ E\bEm\bmp\bph\bha\bas\bsi\bis\bs M\bMa\bac\bcr\bro\bo
+ Text may be stressed or emphasized with the `.Em' macro. The usual font
+ for emphasis is italic.
+
+ Usage: .Em argument ... { . , ; : ( ) [ ]}
+ .Em does not _\bd_\bo_\be_\bs _\bn_\bo_\bt
+ .Em exceed 1024 . _\be_\bx_\bc_\be_\be_\bd _\b1_\b0_\b2_\b4.
+ .Em vide infra ) ) , _\bv_\bi_\bd_\be _\bi_\bn_\bf_\br_\ba)),
+
+ The `.Em' macro is parsed and is callable. It is an error to call `.Em'
+ without arguments.
+
+ E\bEn\bnc\bcl\blo\bos\bsu\bur\bre\be a\ban\bnd\bd Q\bQu\buo\bot\bti\bin\bng\bg M\bMa\bac\bcr\bro\bos\bs
+ The concept of enclosure is similar to quoting. The object being to en-
+ close one or more strings between a pair of characters like quotes or
+ parentheses. The terms quoting and enclosure are used interchangeably
+ throughout this document. Most of the one line enclosure macros end end
+ in small letter `q' to give a hint of quoting, but there are a few irreg-
+ ularities. For each enclosure macro there is also a pair of open and
+ close macros which end in small letters `o' and `c' respectively. These
+ can be used across one or more lines of text and while they have nesting
+ limitations, the one line quote macros can be used inside of them.
+
+ _\bQ_\bu_\bo_\bt_\be _\bC_\bl_\bo_\bs_\be _\bO_\bp_\be_\bn _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn _\bR_\be_\bs_\bu_\bl_\bt
+ .Aq .Ac .Ao Angle Bracket Enclosure <string>
+ .Bq .Bc .Bo Bracket Enclosure [string]
+ .Dq .Dc .Do Double Quote ``string''
+ .Ec .Eo Enclose String (in XX) XXstringXX
+ .Pq .Pc .Po Parenthesis Enclosure (string)
+ .Ql Quoted Literal `st' or string
+ .Qq .Qc .Qo Straight Double Quote "string"
+ .Sq .Sc .So Single Quote `string'
+
+ Except for the irregular macros noted below, all of the quoting macros
+ are parsed and callable. All handle punctuation properly, as long as it
+ is presented one character at a time and separated by spaces. The quot-
+ ing macros examine opening and closing punctuation to determine whether
+ it comes before or after the enclosing string. This makes some nesting
+ possible.
+
+ .Ec, .Eo These macros expect the first argument to be the opening and
+ closing strings respectively.
+
+ .Ql The quoted literal macro behaves differently for troff than
+ nroff. If formatted with nroff, a quoted literal is always
+ quoted. If formatted with troff, an item is only quoted if the
+ width of the item is less than three constant width characters.
+ This is to make short strings more visible where the font
+ change to literal (constant width) is less noticeable.
+
+ .Pf The prefix macro is not callable, but it is parsed:
+
+ .Pf ( Fa name2
+ becomes (_\bn_\ba_\bm_\be_\b2.
+
+ The `.Ns' (no space) macro performs the analogous suffix func-
+ tion.
+
+ Examples of quoting:
+ .Aq <>
+ .Aq Ar ctype.h ) , <_\bc_\bt_\by_\bp_\be_\b._\bh>),
+ .Bq []
+ .Bq Em Greek , French . [_\bG_\br_\be_\be_\bk, _\bF_\br_\be_\bn_\bc_\bh].
+
+
+ .Dq ``''
+ .Dq string abc . ``string abc''.
+ .Dq '^[A-Z]' ``'^[A-Z]'''
+ .Ql man mdoc `man mdoc'
+ .Qq ""
+ .Qq string ) , "string"),
+ .Qq string Ns ), "string),"
+ .Sq `'
+ .Sq string `string'
+
+ For a good example of nested enclosure macros, see the `.Op' option
+ macro. It was created from the same underlying enclosure macros as those
+ presented in the list above. The `.Xo' and `.Xc' extended argument list
+ macros were also built from the same underlying routines and are a good
+ example of -\b-m\bmd\bdo\boc\bc macro usage at its worst.
+
+ N\bNo\bo-\b-O\bOp\bp o\bor\br N\bNo\bor\brm\bma\bal\bl T\bTe\bex\bxt\bt M\bMa\bac\bcr\bro\bo
+ The macro .No is a hack for words in a macro command line which should
+ _\bn_\bo_\bt be formatted and follows the conventional syntax for content macros.
+
+ N\bNo\bo S\bSp\bpa\bac\bce\be M\bMa\bac\bcr\bro\bo
+ The `.Ns' macro eliminates unwanted spaces in between macro requests. It
+ is useful for old style argument lists where there is no space between
+ the flag and argument:
+
+ .Op Fl I Ns Ar directory produces [-\b-I\bI_\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by]
+
+ Note: the `.Ns' macro always invokes the `.No' macro after eliminating
+ the space unless another macro name follows it. The macro `.Ns' is
+ parsed and is callable.
+
+ S\bSe\bec\bct\bti\bio\bon\bn C\bCr\bro\bos\bss\bs R\bRe\bef\bfe\ber\bre\ben\bnc\bce\bes\bs
+ The `.Sx' macro designates a reference to a section header within the
+ same document. It is parsed and is callable.
+
+ .Sx FILES _\bF_\bI_\bL_\bE_\bS
+
+ S\bSy\bym\bmb\bbo\bol\bli\bic\bc
+ The symbolic emphasis macro is generally a boldface macro in either the
+ symbolic sense or the traditional English usage.
+
+ Usage: .Sy symbol ... { . , ; : ( ) [ ]}
+ .Sy Important Notice I\bIm\bmp\bpo\bor\brt\bta\ban\bnt\bt N\bNo\bot\bti\bic\bce\be
+
+ The `.Sy' macro is parsed and is callable. Arguments to `.Sy' may be
+ quoted.
+
+ R\bRe\bef\bfe\ber\bre\ben\bnc\bce\bes\bs a\ban\bnd\bd C\bCi\bit\bta\bat\bti\bio\bon\bns\bs
+ The following macros make a modest attempt to handle references. At
+ best, the macros make it convenient to manually drop in a subset of refer
+ style references.
+
+ .Rs Reference Start. Causes a line break and begins collection
+ of reference information until the reference end macro is
+ read.
+ .Re Reference End. The reference is printed.
+ .%A Reference author name, one name per invocation.
+ .%B Book title.
+ .%C City/place.
+ .%D Date.
+ .%J Journal name.
+ .%N Issue number.
+ .%O Optional information.
+ .%P Page number.
+
+
+ .%R Report name.
+ .%T Title of article.
+ .%V Volume(s).
+
+ The macros beginning with `%' are not callable, and are parsed only for
+ the trade name macro which returns to its caller. (And not very pre-
+ dictably at the moment either.) The purpose is to allow trade names to
+ be pretty printed in troff/ditroff output.
+
+ T\bTr\bra\bad\bde\be N\bNa\bam\bme\bes\bs (\b(o\bor\br A\bAc\bcr\bro\bon\bny\bym\bms\bs a\ban\bnd\bd T\bTy\byp\bpe\be N\bNa\bam\bme\bes\bs)\b)
+ The trade name macro is generally a small caps macro for all upper case
+ words longer than two characters.
+
+ Usage: .Tn symbol ... { . , ; : ( ) [ ]}
+ .Tn DEC DEC
+ .Tn ASCII ASCII
+
+ The `.Tn' macro is parsed and is callable by other macros.
+
+ E\bEx\bxt\bte\ben\bnd\bde\bed\bd A\bAr\brg\bgu\bum\bme\ben\bnt\bts\bs
+ The .Xo and .Xc macros allow one to extend an argument list on a macro
+ boundary. Argument lists cannot be extended within a macro which expects
+ all of its arguments on one line such as `.Op'.
+
+ Here is an example of `.Xo' using the space mode macro to turn spacing
+ off:
+
+ .Sm off
+ .It Xo Sy I Ar operation
+ .No \en Ar count No \en
+ .Xc
+ .Sm on
+
+ Produces
+
+ I\bI_\bo_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn\n_\bc_\bo_\bu_\bn_\bt\n
+
+ Another one:
+
+ .Sm off
+ .It Cm S No / Ar old_pattern Xo
+ .No / Ar new_pattern
+ .No / Op Cm g
+ .Xc
+ .Sm on
+
+ Produces
+
+ S\bS/_\bo_\bl_\bd_\b__\bp_\ba_\bt_\bt_\be_\br_\bn/_\bn_\be_\bw_\b__\bp_\ba_\bt_\bt_\be_\br_\bn/[g\bg]
+
+ Another example of `.Xo' and using enclosure macros: Test the value of an
+ variable.
+
+ .It Xo
+ .Ic .ifndef
+ .Oo \&! Oc Ns Ar variable
+ .Op Ar operator variable ...
+ .Xc
+
+ Produces
+
+ .\b.i\bif\bfn\bnd\bde\bef\bf [!]_\bv_\ba_\br_\bi_\ba_\bb_\bl_\be [_\bo_\bp_\be_\br_\ba_\bt_\bo_\br _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be _\b._\b._\b.]
+
+ All of the above examples have used the `.Xo' macro on the argument list
+ of the `.It' (list-item) macro. The extend macros are not used very of-
+ ten, and when they are it is usually to extend the list-item argument
+ list. Unfortunately, this is also where the extend macros are the most
+ finicky. In the first two examples, spacing was turned off; in the
+ third, spacing was desired in part of the output but not all of it. To
+ make these macros work in this situation make sure the `.Xo' and `.Xc'
+ macros are placed as shown in the third example. If the `.Xo' macro is
+ not alone on the `.It' argument list, spacing will be unpredictable. The
+ `.Ns' (no space macro) must not occur as the first or last macro on a
+ line in this situation. Out of 900 manual pages (about 1500 actual
+ pages) currently released with BSD only fifteen use the `.Xo' macro.
+
+P\bPA\bAG\bGE\bE S\bST\bTR\bRU\bUC\bCT\bTU\bUR\bRE\bE D\bDO\bOM\bMA\bAI\bIN\bN
+ S\bSe\bec\bct\bti\bio\bon\bn H\bHe\bea\bad\bde\ber\brs\bs
+ The first three `.Sh' section header macros list below are required in
+ every man page. The remaining section headers are recommended at the
+ discretion of the author writing the manual page. The `.Sh' macro can
+ take up to nine arguments. It is parsed and but is not callable.
+
+ .Sh NAME The `.Sh NAME' macro is mandatory. If not specified, the
+ headers, footers and page layout defaults will not be set
+ and things will be rather unpleasant. The _\bN_\bA_\bM_\bE section
+ consists of at least three items. The first is the `.Nm'
+ name macro naming the subject of the man page. The second
+ is the Name Description macro, `.Nd', which separates the
+ subject name from the third item, which is the description.
+ The description should be the most terse and lucid possi-
+ ble, as the space available is small.
+
+ .Sh SYNOPSIS The _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS section describes the typical usage of the
+ subject of a man page. The macros required are either
+ `.Nm', `.Cd', `.Fn', (and possibly `.Fo', `.Fc', `.Fd',
+ `.Ft' macros). The function name macro `.Fn' is required
+ for manual page sections 2 and 3, the command and general
+ name macro `.Nm' is required for sections 1, 5, 6, 7, 8.
+ Section 4 manuals require a `.Nm, .Fd' or a `.Cd' configu-
+ ration device usage macro. Several other macros may be
+ necessary to produce the synopsis line as shown below:
+
+ c\bca\bat\bt [-\b-b\bbe\ben\bns\bst\btu\buv\bv] [-\b-] _\bf_\bi_\bl_\be _\b._\b._\b.
+
+ The following macros were used:
+
+ .Nm cat
+ .Op Fl benstuv
+ .Op Fl
+ .Ar
+
+ N\bNo\bot\bte\be: The macros `.Op', `.Fl', and `.Ar' recognize the pipe
+ bar character `|', so a command line such as:
+
+ .Op Fl a | Fl b
+
+ will not go orbital. Troff normally interprets a | as a
+ special operator. See _\bP_\bR_\bE_\bD_\bE_\bF_\bI_\bN_\bE_\bD _\bS_\bT_\bR_\bI_\bN_\bG_\bS for a usable |
+ character in other situations.
+
+ .Sh DESCRIPTION
+ In most cases the first text in the _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN section is
+ a brief paragraph on the command, function or file, fol-
+ lowed by a lexical list of options and respective explana-
+ tions. To create such a list, the `.Bl' begin-list, `.It'
+ list-item and `.El' end-list macros are used (see _\bL_\bi_\bs_\bt_\bs _\ba_\bn_\bd
+ _\bC_\bo_\bl_\bu_\bm_\bn_\bs below).
+
+ The following `.Sh' section headers are part of the preferred manual page
+ layout and must be used appropriately to maintain consistency. They are
+
+ listed in the order in which they would be used.
+
+ .Sh ENVIRONMENT
+ The _\bE_\bN_\bV_\bI_\bR_\bO_\bN_\bM_\bE_\bN_\bT section should reveal any related environment
+ variables and clues to their behavior and/or usage.
+
+ .Sh EXAMPLES
+ There are several ways to create examples. See the _\bE_\bX_\bA_\bM_\bP_\bL_\bE_\bS
+ section below for details.
+
+ .Sh FILES
+ Files which are used or created by the man page subject should
+ be listed via the `.Pa' macro in the _\bF_\bI_\bL_\bE_\bS section.
+
+ .Sh SEE ALSO
+ References to other material on the man page topic and cross
+ references to other relevant man pages should be placed in the
+ _\bS_\bE_\bE _\bA_\bL_\bS_\bO section. Cross references are specified using the
+ `.Xr' macro. At this time refer(1) style references are not
+ accommodated.
+
+ .Sh STANDARDS
+ If the command, library function or file adheres to a specific
+ implementation such as IEEE Std1003.2 (``POSIX'') or ANSI C
+ X3.159-1989 (``ANSI C '') this should be noted here. If the
+ command does not adhere to any standard, its history should be
+ noted in the _\bH_\bI_\bS_\bT_\bO_\bR_\bY section.
+
+ .Sh HISTORY
+ Any command which does not adhere to any specific standards
+ should be outlined historically in this section.
+
+ .Sh AUTHORS
+ Credits, if need be, should be placed here.
+
+ .Sh DIAGNOSTICS
+ Diagnostics from a command should be placed in this section.
+
+ .Sh ERRORS
+ Specific error handling, especially from library functions (man
+ page sections 2 and 3) should go here. The `.Er' macro is used
+ to specify an errno.
+
+ .Sh BUGS Blatant problems with the topic go here...
+
+ User specified `.Sh' sections may be added, for example, this section was
+ set with:
+
+ .Sh PAGE LAYOUT MACROS
+
+ P\bPa\bar\bra\bag\bgr\bra\bap\bph\bhs\bs a\ban\bnd\bd L\bLi\bin\bne\be S\bSp\bpa\bac\bci\bin\bng\bg.\b.
+
+ .Pp The .Pp paragraph command may be used to specify a line space
+ where necessary. The macro is not necessary after a `.Sh' or
+ `.Ss' macro or before a `.Bl' macro. (The `.Bl' macro asserts a
+ vertical distance unless the -compact flag is given).
+
+ K\bKe\bee\bep\bps\bs
+ The only keep that is implemented at this time is for words. The macros
+ are `.Bk' (begin-keep) and `.Ek' (end-keep). The only option that `.Bl'
+ accepts is -\b-w\bwo\bor\brd\bds\bs and is useful for preventing line breaks in the middle
+ of options. In the example for the make command line arguments (see
+ _\bW_\bh_\ba_\bt_\b'_\bs _\bi_\bn _\ba _\bn_\ba_\bm_\be), the keep prevented nroff from placing up the flag and
+ the argument on separate lines. (Actually, the option macro used to pre-
+ vent this from occurring, but was dropped when the decision (religious)
+ was made to force right justified margins in troff as options in general
+ look atrocious when spread across a sparse line. More work needs to be
+ done with the keep macros, a -\b-l\bli\bin\bne\be option needs to be added.)
+
+ E\bEx\bxa\bam\bmp\bpl\ble\bes\bs a\ban\bnd\bd D\bDi\bis\bsp\bpl\bla\bay\bys\bs
+ There are five types of displays, a quickie one line indented display
+ `.D1', a quickie one line literal display `.Dl', and a block literal,
+ block filled and block ragged which use the `.Bd' begin-display and `.Ed'
+ end-display macros.
+
+ .D1 (D-one) Display one line of indented text. This macro is parsed,
+ but it is not callable.
+
+ -\b-l\bld\bdg\bgh\bhf\bfs\bst\btr\bru\bu
+
+ The above was produced by: .Dl -\b-l\bld\bdg\bgh\bhf\bfs\bst\btr\bru\bu.
+
+ .Dl (D-ell) Display one line of indented _\bl_\bi_\bt_\be_\br_\ba_\bl text. The `.Dl' ex-
+ ample macro has been used throughout this file. It allows the in-
+ dent (display) of one line of text. Its default font is set to
+ constant width (literal) however it is parsed and will recognized
+ other macros. It is not callable however.
+
+ % ls -ldg /usr/local/bin
+
+ The above was produced by .Dl % ls -ldg /usr/local/bin.
+
+ .Bd Begin-display. The `.Bd' display must be ended with the `.Ed'
+ macro. Displays may be nested within displays and lists. `.Bd'
+ has the following syntax:
+
+ .Bd display-type [-offset offset_value] [-compact]
+
+ The display-type must be one of the following four types and may
+ have an offset specifier for indentation: `.Bd'.
+
+ -\b-r\bra\bag\bgg\bge\bed\bd Display a block of text as typed, right (and
+ left) margin edges are left ragged.
+ -\b-f\bfi\bil\bll\ble\bed\bd Display a filled (formatted) block. The block
+ of text is formatted (the edges are filled - not
+ left unjustified).
+ -\b-l\bli\bit\bte\ber\bra\bal\bl Display a literal block, useful for source code
+ or simple tabbed or spaced text.
+ -\b-f\bfi\bil\ble\be _\bf_\bi_\bl_\be_\b__\bn_\ba_\bm_\be The file name following the -\b-f\bfi\bil\ble\be flag is read
+ and displayed. Literal mode is asserted and
+ tabs are set at 8 constant width character in-
+ tervals, however any troff/-\b-m\bmd\bdo\boc\bc commands in
+ file will be processed.
+ -\b-o\bof\bff\bfs\bse\bet\bt _\bs_\bt_\br_\bi_\bn_\bg If -\b-o\bof\bff\bfs\bse\bet\bt is specified with one of the follow-
+ ing strings, the string is interpreted to indi-
+ cate the level of indentation for the forthcom-
+ ing block of text:
+
+ _\bl_\be_\bf_\bt Align block on the current left mar-
+ gin, this is the default mode of
+ `.Bd'.
+ _\bc_\be_\bn_\bt_\be_\br Supposedly center the block. At
+ this time unfortunately, the block
+ merely gets left aligned about an
+ imaginary center margin.
+ _\bi_\bn_\bd_\be_\bn_\bt Indents by one default indent value
+ or tab. The default indent value is
+ also used for the `.D1' display so
+ one is guaranteed the two types of
+ displays will line up. This indent
+ is normally set to 6n or about two
+ thirds of an inch (six constant
+
+ width characters).
+ _\bi_\bn_\bd_\be_\bn_\bt_\b-_\bt_\bw_\bo Indents two times the default indent
+ value.
+ _\br_\bi_\bg_\bh_\bt This _\bl_\be_\bf_\bt aligns the block about two
+ inches from the right side of the
+ page. This macro needs work and
+ perhaps may never do the right thing
+ by troff.
+
+ .Ed End-display.
+
+ T\bTa\bag\bgg\bge\bed\bd L\bLi\bis\bst\bts\bs a\ban\bnd\bd C\bCo\bol\blu\bum\bmn\bns\bs
+ There are several types of lists which may be initiated with the `.Bl'
+ begin-list macro. Items within the list are specified with the `.It'
+ item macro and each list must end with the `.El' macro. Lists may be
+ nested within themselves and within displays. Columns may be used inside
+ of lists, but lists are unproven inside of columns.
+
+ In addition, several list attributes may be specified such as the width
+ of a tag, the list offset, and compactness (blank lines between items al-
+ lowed or disallowed). Most of this document has been formatted with a
+ tag style list (-\b-t\bta\bag\bg). For a change of pace, the list-type used to pre-
+ sent the list-types is an over-hanging list (-\b-o\boh\bha\ban\bng\bg). This type of list
+ is quite popular with TeX users, but might look a bit funny after having
+ read many pages of tagged lists. The following list types are accepted
+ by `.Bl':
+
+ -\b-b\bbu\bul\bll\ble\bet\bt
+ -\b-i\bit\bte\bem\bm
+ -\b-e\ben\bnu\bum\bm
+ These three are the simplest types of lists. Once the `.Bl' macro has
+ been given, items in the list are merely indicated by a line consisting
+ solely of the `.It' macro. For example, the source text for a simple
+ enumerated list would look like:
+
+ .Bl -enum -compact
+ .It
+ Item one goes here.
+ .It
+ And item two here.
+ .It
+ Lastly item three goes here.
+ .El
+
+ The results:
+
+ 1. Item one goes here.
+ 2. And item two here.
+ 3. Lastly item three goes here.
+
+ A simple bullet list construction:
+
+ .Bl -bullet -compact
+ .It
+ Bullet one goes here.
+ .It
+ Bullet two here.
+ .El
+
+ Produces:
+ +\b+\bo\bo Bullet one goes here.
+ +\b+\bo\bo Bullet two here.
+
+
+
+ -\b-t\bta\bag\bg
+ -\b-d\bdi\bia\bag\bg
+ -\b-h\bha\ban\bng\bg
+ -\b-o\boh\bha\ban\bng\bg
+ -\b-i\bin\bns\bse\bet\bt
+ These list-types collect arguments specified with the `.It' macro and
+ create a label which may be _\bi_\bn_\bs_\be_\bt into the forth coming text, _\bh_\ba_\bn_\bg_\be_\bd from
+ the forth coming text, _\bo_\bv_\be_\br_\bh_\ba_\bn_\bg_\be_\bd from above and not indented or _\bt_\ba_\bg_\bg_\be_\bd.
+ This list was constructed with the `-\b-o\boh\bha\ban\bng\bg' list-type. The `.It' macro
+ is parsed only for the inset, hang and tag list-types and is not
+ callable. Here is an example of inset labels:
+
+ _\bT_\ba_\bg The tagged list (also called a tagged paragraph) is the most
+ common type of list used in the Berkeley manuals.
+
+ _\bD_\bi_\ba_\bg Diag lists create section four diagnostic lists and are simi-
+ lar to inset lists except callable macros are ignored.
+
+ _\bH_\ba_\bn_\bg Hanged labels are a matter of taste.
+
+ _\bO_\bh_\ba_\bn_\bg Over hanging labels are nice when space is constrained.
+
+ _\bI_\bn_\bs_\be_\bt Inset labels are useful for controlling blocks of paragraphs
+ and are valuable for converting -\b-m\bmd\bdo\boc\bc manuals to other formats.
+
+ Here is the source text which produced the above example:
+
+ .Bl -inset -offset indent
+ .It Em Tag
+ The tagged list (also called a tagged paragraph) is the
+ most common type of list used in the Berkeley manuals.
+ .It Em Diag
+ Diag lists create section four diagnostic lists
+ and are similar to inset lists except callable
+ macros are ignored.
+ .It Em Hang
+ Hanged labels are a matter of taste.
+ .It Em Ohang
+ Over hanging labels are nice when space is constrained.
+ .It Em Inset
+ Inset labels are useful for controlling blocks of
+ paragraphs and are valuable for converting
+ .Nm -mdoc
+ manuals to other formats.
+ .El
+
+ Here is a hanged list with just one item:
+
+ _\bH_\ba_\bn_\bg_\be_\bd labels appear similar to tagged lists when the label is
+ smaller than the label width.
+
+ _\bL_\bo_\bn_\bg_\be_\br _\bh_\ba_\bn_\bg_\be_\bd _\bl_\bi_\bs_\bt _\bl_\ba_\bb_\be_\bl_\bs blend in to the paragraph unlike tagged
+ paragraph labels.
+
+ And the unformatted text which created it:
+
+ .Bl -hang -offset indent
+ .It Em Hanged
+ labels appear similar to tagged lists when the
+ label is smaller than the label width.
+ .It Em Longer hanged list labels
+ blend in to the paragraph unlike
+ tagged paragraph labels.
+ .El
+
+
+ The tagged list which follows uses an optional width specifier to control
+ the width of the tag.
+
+ SL sleep time of the process (seconds blocked)
+ PAGEIN number of disk I/O's resulting from references by the pro-
+ cess to pages not loaded in core.
+ UID numerical user-id of process owner
+ PPID numerical id of parent of process process priority (non-
+ positive when in non-interruptible wait)
+
+ The raw text:
+
+ .Bl -tag -width "PAGEIN" -compact -offset indent
+ .It SL
+ sleep time of the process (seconds blocked)
+ .It PAGEIN
+ number of disk
+ .Tn I/O Ns 's
+ resulting from references
+ by the process to pages not loaded in core.
+ .It UID
+ numerical user-id of process owner
+ .It PPID
+ numerical id of parent of process process priority
+ (non-positive when in non-interruptible wait)
+ .El
+
+ Acceptable width specifiers:
+
+ -\b-w\bwi\bid\bdt\bth\bh _\bF_\bl sets the width to the default width for a flag. All
+ callable macros have a default width value. The
+ `.Fl', value is presently set to ten constant width
+ characters or about five sixth of an inch.
+
+ -\b-w\bwi\bid\bdt\bth\bh _\b2_\b4_\bn sets the width to 24 constant width characters or
+ about two inches. The `n' is absolutely necessary
+ for the scaling to work correctly.
+
+ -\b-w\bwi\bid\bdt\bth\bh _\bE_\bN_\bA_\bM_\bE_\bT_\bO_\bO_\bL_\bO_\bN_\bG
+ sets width to the constant width length of the string
+ given.
+
+ -\b-w\bwi\bid\bdt\bth\bh _\b"_\bi_\bn_\bt _\bm_\bk_\bf_\bi_\bf_\bo_\b"
+ again, the width is set to the constant width of the
+ string given.
+
+ If a width is not specified for the tag list type, the first time `.It'
+ is invoked, an attempt is made to determine an appropriate width. If the
+ first argument to `.It' is a callable macro, the default width for that
+ macro will be used as if the macro name had been supplied as the width.
+ However, if another item in the list is given with a different callable
+ macro name, a new and nested list is assumed.
+
+P\bPR\bRE\bED\bDE\bEF\bFI\bIN\bNE\bED\bD S\bST\bTR\bRI\bIN\bNG\bGS\bS
+ The following strings are predefined as may be used by preceding with the
+ troff string interpreting sequence `\*(xx' where _\bx_\bx is the name of the
+ defined string or as `\*x' where _\bx is the name of the string. The inter-
+ preting sequence may be used any where in the text.
+
+ S\bSt\btr\bri\bin\bng\bg N\bNr\bro\bof\bff\bf T\bTr\bro\bof\bff\bf
+ <= <= <=
+ >= >= >=
+ Rq '' ''
+ Lq `` ``
+
+
+ ua ^ ^
+ aa '
+ ga ` `
+ q " "
+ Pi pi pi
+ Ne != !=
+ Le <= <=
+ Ge >= >=
+ Lt < >
+ Gt > <
+ Pm +- +-
+ If infinity infinity
+ Na _\bN_\ba_\bN _\bN_\ba_\bN
+ Ba | |
+
+ N\bNo\bot\bte\be: The string named `q' should be written as `\*q' since it is only
+ one char.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ The debugging facilities for -\b-m\bmd\bdo\boc\bc are limited, but can help detect sub-
+ tle errors such as the collision of an argument name with an internal
+ register or macro name. (A what?) A register is an arithmetic storage
+ class for troff with a one or two character name. All registers internal
+ to -\b-m\bmd\bdo\boc\bc for troff and ditroff are two characters and of the form <up-
+ per_case><lower_case> such as `Ar', <lower_case><upper_case> as `aR' or
+ <upper or lower letter><digit> as `C1'. And adding to the muddle, troff
+ has its own internal registers all of which are either two lower case
+ characters or a dot plus a letter or meta-character character. In one of
+ the introduction examples, it was shown how to prevent the interpretation
+ of a macro name with the escape sequence `\&'. This is sufficient for the
+ internal register names also.
+
+ If a non-escaped register name is given in the argument list of a request
+ unpredictable behavior will occur. In general, any time huge portions of
+ text do not appear where expected in the output, or small strings such as
+ list tags disappear, chances are there is a misunderstanding about an ar-
+ gument type in the argument list. Your mother never intended for you to
+ remember this evil stuff - so here is a way to find out whether or not
+ your arguments are valid: The `.Db' (debug) macro displays the interpre-
+ tation of the argument list for most macros. Macros such as the `.Pp'
+ (paragraph) macro do not contain debugging information. All of the
+ callable macros do, and it is strongly advised whenever in doubt, turn on
+ the `.Db' macro.
+
+ Usage: .Db [on | off]
+
+ An example of a portion of text with the debug macro placed above and be-
+ low an artificially created problem (a flag argument `aC' which should be
+ `\&aC' in order to work):
+
+ .Db on
+ .Op Fl aC Ar file )
+ .Db off
+
+ The resulting output:
+
+ DEBUGGING ON
+ DEBUG(argv) MACRO: `.Op' Line #: 2
+ Argc: 1 Argv: `Fl' Length: 2
+ Space: `' Class: Executable
+ Argc: 2 Argv: `aC' Length: 2
+ Space: `' Class: Executable
+ Argc: 3 Argv: `Ar' Length: 2
+ Space: `' Class: Executable
+ Argc: 4 Argv: `file' Length: 4
+ Space: ` ' Class: String
+ Argc: 5 Argv: `)' Length: 1
+ Space: ` ' Class: Closing Punctuation or suffix
+ MACRO REQUEST: .Op Fl aC Ar file )
+ DEBUGGING OFF
+
+ The first line of information tells the name of the calling macro, here
+ `.Op', and the line number it appears on. If one or more files are in-
+ volved (especially if text from another file is included) the line number
+ may be bogus. If there is only one file, it should be accurate. The
+ second line gives the argument count, the argument (`Fl') and its length.
+ If the length of an argument is two characters, the argument is tested to
+ see if it is executable (unfortunately, any register which contains a
+ non-zero value appears executable). The third line gives the space al-
+ lotted for a class, and the class type. The problem here is the argument
+ aC should not be executable. The four types of classes are string, exe-
+ cutable, closing punctuation and opening punctuation. The last line
+ shows the entire argument list as it was read. In this next example, the
+ offending `aC' is escaped:
+
+ .Db on
+ .Em An escaped \&aC
+ .Db off
+
+ DEBUGGING ON
+ DEBUG(fargv) MACRO: `.Em' Line #: 2
+ Argc: 1 Argv: `An' Length: 2
+ Space: ` ' Class: String
+ Argc: 2 Argv: `escaped' Length: 7
+ Space: ` ' Class: String
+ Argc: 3 Argv: `aC' Length: 2
+ Space: ` ' Class: String
+ MACRO REQUEST: .Em An escaped &aC
+ DEBUGGING OFF
+
+ The argument `\&aC' shows up with the same length of 2 as the `\&' se-
+ quence produces a zero width, but a register named `\&aC' was not found
+ and the type classified as string.
+
+ Other diagnostics consist of usage statements and are self explanatory.
+
+G\bGR\bRO\bOF\bFF\bF,\b, T\bTR\bRO\bOF\bFF\bF A\bAN\bND\bD N\bNR\bRO\bOF\bFF\bF
+ The -\b-m\bmd\bdo\boc\bc package does not need compatibility mode with groff.
+
+ The package inhibits page breaks, and the headers and footers which nor-
+ mally occur at those breaks with nroff, to make the manual more effi-
+ cient for viewing on-line. At the moment, groff with -\b-T\bT_\ba_\bs_\bc_\bi_\bi does eject
+ the imaginary remainder of the page at end of file. The inhibiting of
+ the page breaks makes nroff'd files unsuitable for hardcopy. There is a
+ register named `cR' which can be set to zero in the site dependent style
+ file _\b/_\bu_\bs_\br_\b/_\bs_\br_\bc_\b/_\bs_\bh_\ba_\br_\be_\b/_\bt_\bm_\ba_\bc_\b/_\bd_\bo_\bc_\b-_\bn_\br_\bo_\bf_\bf to restore the old style behavior.
+
+F\bFI\bIL\bLE\bES\bS
+ /usr/share/tmac/tmac.doc manual macro package
+ /usr/share/man0/template.doc template for writing a man page
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mdoc(7), man(1), troff(1)
+
+B\bBU\bUG\bGS\bS
+ Undesirable hyphenation on the dash of a flag argument is not yet re-
+ solved, and causes occasional mishaps in the _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN section. (line
+ break on the hyphen).
+
+ Predefined strings are not declared in documentation.
+
+
+ Section 3f has not been added to the header routines.
+
+ `.Nm' font should be changed in _\bN_\bA_\bM_\bE section.
+
+ `.Fn' needs to have a check to prevent splitting up if the line length is
+ too short. Occasionally it separates the last parenthesis, and sometimes
+ looks ridiculous if a line is in fill mode.
+
+ The method used to prevent header and footer page breaks (other than the
+ initial header and footer) when using nroff occasionally places an un-
+ sightly partially filled line (blank) at the would be bottom of the page.
+
+ The list and display macros to not do any keeps and certainly should be
+ able to.
+
+4.4BSD June 9, 1993 23
--- /dev/null
+
+
+
+ME(7) BSD Reference Manual ME(7)
+
+
+N\bNA\bAM\bME\bE
+ me - macros for formatting papers
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ n\bnr\bro\bof\bff\bf -\b-m\bme\be [ options ] file ...
+ t\btr\bro\bof\bff\bf -\b-m\bme\be [ options ] file ...
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This package of _\bn_\br_\bo_\bf_\bf and _\bt_\br_\bo_\bf_\bf macro definitions provides
+ a canned formatting facility for technical papers in vari-
+ ous formats. When producing 2-column output on a termi-
+ nal, filter the output through _\bc_\bo_\bl(1).
+
+ The macro requests are defined below. Many _\bn_\br_\bo_\bf_\bf and
+ _\bt_\br_\bo_\bf_\bf requests are unsafe in conjunction with this pack-
+ age, however, these requests may be used with impunity
+ after the first .pp:
+
+ .bp begin new page
+ .br break output line here
+ .sp n insert n spacing lines
+ .ls n (line spacing) n=1 single, n=2 double space
+ .na no alignment of right margin
+ .ce n center next n lines
+ .ul n underline next n lines
+ .sz +n add n to point size
+
+ Output of the _\be_\bq_\bn_\b, _\bn_\be_\bq_\bn_\b, _\br_\be_\bf_\be_\br_\b, and _\bt_\bb_\bl(1) preprocessors
+ for equations and tables is acceptable as input.
+
+F\bFI\bIL\bLE\bES\bS
+ /usr/lib/tmac/tmac.e
+ /usr/lib/me/*
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ eqn(1), troff(1), refer(1), tbl(1)
+ -me Reference Manual, Eric P. Allman
+ Writing Papers with Nroff Using -me
+
+R\bRE\bEQ\bQU\bUE\bES\bST\bTS\bS
+ In the following list, "initialization" refers to the
+ first .pp, .lp, .ip, .np, .sh, or .uh macro. This list is
+ incomplete; see _\bT_\bh_\be _\b-_\bm_\be _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bM_\ba_\bn_\bu_\ba_\bl for interesting
+ details.
+
+Request Initial Cause Explanation
+ Value Break
+.(c - yes Begin centered block
+.(d - no Begin delayed text
+.(f - no Begin footnote
+.(l - yes Begin list
+
+
+
+3rd Berkeley Distribution June 5, 1993 1
+
+
+
+
+
+
+
+
+ME(7) BSD Reference Manual ME(7)
+
+
+.(q - yes Begin major quote
+.(x _\bx - no Begin indexed item in index _\bx
+.(z - no Begin floating keep
+.)c - yes End centered block
+.)d - yes End delayed text
+.)f - yes End footnote
+.)l - yes End list
+.)q - yes End major quote
+.)x - yes End index item
+.)z - yes End floating keep
+.++ _\bm _\bH - no Define paper section. _\bm defines the
+ part of the paper, and can be C\bC (chap-
+ ter), A\bA (appendix), P\bP (preliminary,
+ e.g., abstract, table of contents,
+ etc.), B\bB (bibliography), R\bRC\bC (chapters
+ renumbered from page one each chap-
+ ter), or R\bRA\bA (appendix renumbered from
+ page one).
+.+c _\bT - yes Begin chapter (or appendix, etc., as
+ set by .++). _\bT is the chapter title.
+.1c 1 yes One column format on a new page.
+.2c 1 yes Two column format.
+.EN - yes Space after equation produced by _\be_\bq_\bn
+ or _\bn_\be_\bq_\bn.
+.EQ _\bx _\by - yes Precede equation; break out and add
+ space. Equation number is _\by. The
+ optional argument _\bx may be _\bI to indent
+ equation (default), _\bL to left-adjust
+ the equation, or _\bC to center the equa-
+ tion.
+.GE - yes End _\bg_\br_\be_\bm_\bl_\bi_\bn picture.
+.GS - yes Begin _\bg_\br_\be_\bm_\bl_\bi_\bn picture.
+.PE - yes End _\bp_\bi_\bc picture.
+.PS - yes Begin _\bp_\bi_\bc picture.
+.TE - yes End table.
+.TH - yes End heading section of table.
+.TS _\bx - yes Begin table; if _\bx is _\bH table has
+ repeated heading.
+.ac _\bA _\bN - no Set up for ACM style output. _\bA is the
+ Author's name(s), _\bN is the total num-
+ ber of pages. Must be given before
+ the first initialization.
+.b _\bx no no Print _\bx in boldface; if no argument
+ switch to boldface.
+.ba _\b+_\bn 0 yes Augments the base indent by _\bn_\b. This
+ indent is used to set the indent on
+ regular text (like paragraphs).
+.bc no yes Begin new column
+.bi _\bx no no Print _\bx in bold italics (nofill only)
+.bu - yes Begin bulleted paragraph
+.bx _\bx no no Print _\bx in a box (nofill only).
+
+
+
+3rd Berkeley Distribution June 5, 1993 2
+
+
+
+
+
+
+
+
+ME(7) BSD Reference Manual ME(7)
+
+
+.ef _\b'_\bx_\b'_\by_\b'_\bz_\b' '''' no Set even footer to x y z
+.eh _\b'_\bx_\b'_\by_\b'_\bz_\b' '''' no Set even header to x y z
+.fo _\b'_\bx_\b'_\by_\b'_\bz_\b' '''' no Set footer to x y z
+.hx - no Suppress headers and footers on next
+ page.
+.he _\b'_\bx_\b'_\by_\b'_\bz_\b' '''' no Set header to x y z
+.hl - yes Draw a horizontal line
+.i _\bx no no Italicize _\bx_\b; if _\bx missing, italic text
+ follows.
+.ip _\bx _\by no yes Start indented paragraph, with hanging
+ tag _\bx. Indentation is _\by ens (default
+ 5).
+.lp yes yes Start left-blocked paragraph.
+.lo - no Read in a file of local macros of the
+ form .\b.*\b*_\bx_\b. Must be given before ini-
+ tialization.
+.np 1 yes Start numbered paragraph.
+.of _\b'_\bx_\b'_\by_\b'_\bz_\b' '''' no Set odd footer to x y z
+.oh _\b'_\bx_\b'_\by_\b'_\bz_\b' '''' no Set odd header to x y z
+.pd - yes Print delayed text.
+.pp no yes Begin paragraph. First line indented.
+.r yes no Roman text follows.
+.re - no Reset tabs to default values.
+.sc no no Read in a file of special characters
+ and diacritical marks. Must be given
+ before initialization.
+.sh _\bn _\bx - yes Section head follows, font automati-
+ cally bold. _\bn is level of section, _\bx
+ is title of section.
+.sk no no Leave the next page blank. Only one
+ page is remembered ahead.
+.sm _\bx - no Set _\bx in a smaller pointsize.
+.sz _\b+_\bn 10p no Augment the point size by _\bn points.
+.th no no Produce the paper in thesis format.
+ Must be given before initialization.
+.tp no yes Begin title page.
+.u _\bx - no Underline argument (even in _\bt_\br_\bo_\bf_\bf).
+ (Nofill only).
+.uh - yes Like .sh but unnumbered.
+.xp _\bx - no Print index _\bx_\b.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3rd Berkeley Distribution June 5, 1993 3
+
+
+
+
+
--- /dev/null
+INTRO(7) BSD Reference Manual INTRO(7)
+
+N\bNA\bAM\bME\bE
+ i\bin\bnt\btr\bro\bo - miscellaneous information pages
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section contains miscellaneous documentation, mostly in the area of
+ text processing macro packages for troff(1).
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ i\bin\bnt\btr\bro\bo appeared in 4.2 BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+
+
+
+MS(7) BSD Reference Manual MS(7)
+
+
+N\bNA\bAM\bME\bE
+ ms - text formatting macros
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ n\bnr\bro\bof\bff\bf -\b-m\bms\bs [ options ] file ...
+ t\btr\bro\bof\bff\bf -\b-m\bms\bs [ options ] file ...
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This package of _\bn_\br_\bo_\bf_\bf and _\bt_\br_\bo_\bf_\bf macro definitions provides
+ a formatting facility for various styles of articles, the-
+ ses, and books. When producing 2-column output on a ter-
+ minal or lineprinter, or when reverse line motions are
+ needed, filter the output through _\bc_\bo_\bl(1). All external
+ -ms macros are defined below. Many _\bn_\br_\bo_\bf_\bf and _\bt_\br_\bo_\bf_\bf
+ requests are unsafe in conjunction with this package.
+ However, the first four requests below may be used with
+ impunity after initialization, and the last two may be
+ used even before initialization:
+ .bp begin new page
+ .br break output line
+ .sp n insert n spacing lines
+ .ce n center next n lines
+ .ls n line spacing: n=1 single, n=2 double space
+ .na no alignment of right margin
+ Font and point size changes with \f and \s are also
+ allowed; for example, ``\fIword\fR'' will italicize _\bw_\bo_\br_\bd_\b.
+ Output of the _\bt_\bb_\bl_\b, _\be_\bq_\bn_\b, and _\br_\be_\bf_\be_\br(1) preprocessors for
+ equations, tables, and references is acceptable as input.
+
+F\bFI\bIL\bLE\bES\bS
+ /usr/share/tmac/tmac.x
+ /usr/share/ms/x.???
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ eqn(1), refer(1), tbl(1), troff(1)
+
+R\bRE\bEQ\bQU\bUE\bES\bST\bTS\bS
+Macro Initial Break? Explanation
+Name Value Reset?
+.AB _\bx - y begin abstract; if _\bx=no don't label abstract
+.AE - y end abstract
+.AI - y author's institution
+.AM - n better accent mark definitions
+.AU - y author's name
+.B _\bx - n embolden _\bx; if no _\bx, switch to boldface
+.B1 - y begin text to be enclosed in a box
+.B2 - y end boxed text and print it
+.BT date n bottom title, printed at foot of page
+.BX _\bx - n print word _\bx in a box
+.CM if t n cut mark between pages
+.CT - y,y chapter title: page number moved to CF (TM only)
+
+
+
+4th Berkeley Distribution June 5, 1993 1
+
+
+
+
+
+
+
+
+MS(7) BSD Reference Manual MS(7)
+
+
+.DA _\bx if n n force date _\bx at bottom of page; today if no _\bx
+.DE - y end display (unfilled text) of any kind
+.DS _\bx _\by I y begin display with keep; _\bx=I,L,C,B; _\by=indent
+.ID _\by 8n,.5i y indented display with no keep; _\by=indent
+.LD - y left display with no keep
+.CD - y centered display with no keep
+.BD - y block display; center entire block
+.EF _\bx - n even page footer _\bx (3 part as for .tl)
+.EH _\bx - n even page header _\bx (3 part as for .tl)
+.EN - y end displayed equation produced by _\be_\bq_\bn
+.EQ _\bx _\by - y break out equation; _\bx=L,I,C; _\by=equation number
+.FE - n end footnote to be placed at bottom of page
+.FP - n numbered footnote paragraph; may be redefined
+.FS _\bx - n start footnote; _\bx is optional footnote label
+.HD undef n optional page header below header margin
+.I _\bx - n italicize _\bx; if no _\bx, switch to italics
+.IP _\bx _\by - y,y indented paragraph, with hanging tag _\bx; _\by=indent
+.IX _\bx _\by - y index words _\bx _\by and so on (up to 5 levels)
+.KE - n end keep of any kind
+.KF - n begin floating keep; text fills remainder of page
+.KS - y begin keep; unit kept together on a single page
+.LG - n larger; increase point size by 2
+.LP - y,y left (block) paragraph.
+.MC _\bx - y,y multiple columns; _\bx=column width
+.ND _\bx if t n no date in page footer; _\bx is date on cover
+.NH _\bx _\by - y,y numbered header; _\bx=level, _\bx=0 resets, _\bx=S sets to _\by
+.NL 10p n set point size back to normal
+.OF _\bx - n odd page footer _\bx (3 part as for .tl)
+.OH _\bx - n odd page header _\bx (3 part as for .tl)
+.P1 if TM n print header on 1st page
+.PP - y,y paragraph with first line indented
+.PT - % - n page title, printed at head of page
+.PX _\bx - y print index (table of contents); _\bx=no suppresses title
+.QP - y,y quote paragraph (indented and shorter)
+.R on n return to Roman font
+.RE 5n y,y retreat: end level of relative indentation
+.RP _\bx - n released paper format; _\bx=no stops title on 1st page
+.RS 5n y,y right shift: start level of relative indentation
+.SH - y,y section header, in boldface
+.SM - n smaller; decrease point size by 2
+.TA 8n,5n n set tabs to 8n 16n ... (nroff) 5n 10n ... (troff)
+.TC _\bx - y print table of contents at end; _\bx=no suppresses title
+.TE - y end of table processed by _\bt_\bb_\bl
+.TH - y end multi-page header of table
+.TL - y title in boldface and two points larger
+.TM off n UC Berkeley thesis mode
+.TS _\bx - y,y begin table; if _\bx=H table has multi-page header
+.UL _\bx - n underline _\bx, even in _\bt_\br_\bo_\bf_\bf
+.UX _\bx - n UNIX; trademark message first time; _\bx appended
+.XA _\bx _\by - y another index entry; _\bx=page or no for none; _\by=indent
+.XE - y end index entry (or series of .IX entries)
+
+
+
+4th Berkeley Distribution June 5, 1993 2
+
+
+
+
+
+
+
+
+MS(7) BSD Reference Manual MS(7)
+
+
+.XP - y,y paragraph with first line exdented, others indented
+.XS _\bx _\by - y begin index entry; _\bx=page or no for none; _\by=indent
+.1C on y,y one column format, on a new page
+.2C - y,y begin two column format
+.]- - n beginning of _\br_\be_\bf_\be_\br reference
+.[0 - n end of unclassifiable type of reference
+.[N - n N= 1:journal-article, 2:book, 3:book-article, 4:report
+
+R\bRE\bEG\bGI\bIS\bST\bTE\bER\bRS\bS
+ Formatting distances can be controlled in -ms by means of
+ built-in number registers. For example, this sets the
+ line length to 6.5 inches:
+ .nr LL 6.5i
+ Here is a table of number registers and their default val-
+ ues:
+ Name Register Controls Takes Effect Default
+ PS point size paragraph 10
+ VS vertical spacing paragraph 12
+ LL line length paragraph 6i
+ LT title length next page same as LL
+ FL footnote length next .FS 5.5i
+ PD paragraph distance paragraph 1v (if n), .3v (if t)
+ DD display distance displays 1v (if n), .5v (if t)
+ PI paragraph indent paragraph 5n
+ QI quote indent next .QP 5n
+ FI footnote indent next .FS 2n
+ PO page offset next page 0 (if n), ~1i (if t)
+ HM header margin next page 1i
+ FM footer margin next page 1i
+ FF footnote format next .FS 0 (1, 2, 3 available)
+ When resetting these values, make sure to specify the
+ appropriate units. Setting the line length to 7, for
+ example, will result in output with one character per
+ line. Setting FF to 1 suppresses footnote superscripting;
+ setting it to 2 also suppresses indentation of the first
+ line; and setting it to 3 produces an .IP-like footnote
+ paragraph.
+
+ Here is a list of string registers available in -ms; they
+ may be used anywhere in the text:
+ Name String's Function
+ \*Q quote (" in _\bn_\br_\bo_\bf_\bf_\b, `` in _\bt_\br_\bo_\bf_\bf )
+ \*U unquote (" in _\bn_\br_\bo_\bf_\bf_\b, '' in _\bt_\br_\bo_\bf_\bf )
+ \*- dash (-- in _\bn_\br_\bo_\bf_\bf_\b, -- in _\bt_\br_\bo_\bf_\bf )
+ \*(MO month (month of the year)
+ \*(DY day (current date)
+ \** automatically numbered footnote
+ \*[ opening footnote string delimiter
+ \*] closing footnote string delimiter
+ \*([. opening reference tag delimiter
+ \*(.] closing reference tag delimiter
+
+
+
+4th Berkeley Distribution June 5, 1993 3
+
+
+
+
+
+
+
+
+MS(7) BSD Reference Manual MS(7)
+
+
+ \*' acute accent (before letter)
+ \*` grave accent (before letter)
+ \*^ circumflex (before letter)
+ \*, cedilla (before letter)
+ \*: umlaut (before letter)
+ \*~ tilde (before letter)
+ The opening and closing delimiters for footnote numbers
+ and reference tags may be changed by resetting the appro-
+ priate string. Both opening delimiters change to italics
+ and superscript in _\bt_\br_\bo_\bf_\bf, reverting to the previous font
+ and the baseline at the closing delimiter. In _\bn_\br_\bo_\bf_\bf,
+ square brackets are used as delimiters, with footnote num-
+ bers in italics.
+
+ When using the extended accent mark definitions available
+ with .AM, these strings should come after, rather than
+ before, the letter to be accented.
+
+B\bBU\bUG\bGS\bS
+ Floating keeps and regular keeps are diverted to the same
+ space, so they cannot be mixed together with predictable
+ results.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4th Berkeley Distribution June 5, 1993 4
+
+
+
+
+
--- /dev/null
+OPERATOR(7) BSD Reference Manual OPERATOR(7)
+
+N\bNA\bAM\bME\bE
+ o\bop\bpe\ber\bra\bat\bto\bor\br - C operator precedence and order of evaluation
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Operator Associativity
+ -------- -------------
+ () [] -> . left to right
+ ! ~ ++ -- - (type) * & sizeof right to left
+ * / % left to right
+ + - left to right
+ << >> left to right
+ < <= > >= left to right
+ == != left to right
+ & left to right
+ ^ left to right
+ | left to right
+ && left to right
+ || left to right
+ ?: right to left
+ = += -= etc. right to left
+ , left to right
+
+F\bFI\bIL\bLE\bES\bS
+ /usr/share/misc/operator
+
+4.4BSD June 9, 1993 1
--- /dev/null
+TERM(7) BSD Reference Manual TERM(7)
+
+N\bNA\bAM\bME\bE
+ t\bte\ber\brm\bm - conventional names for terminals
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Certain commands use these terminal names. They are maintained as part of
+ the shell environment (see sh(1), environ(7)).
+
+ The list goes on and on. Consult _\b/_\bu_\bs_\br_\b/_\bs_\bh_\ba_\br_\be_\b/_\bm_\bi_\bs_\bc_\b/_\bt_\be_\br_\bm_\bc_\ba_\bp _\b(_\bs_\be_\be
+ termcap(5)) for an up-to-date and locally correct list.
+
+ Commands whose behavior may depend on the terminal either consult TERM in
+ the environment, or accept arguments of the form -\b-T\bTt\bte\ber\brm\bm, where t\bte\ber\brm\bm is
+ one of the names given above.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ stty(1), tabs(1), plot(1) sh(1), environ(7) ex(1), clear(1),
+ more(1), ul(1), tset(1), termcap(5), termcap(3), ttys(5) troff(1)
+
+B\bBU\bUG\bGS\bS
+ The programs that ought to adhere to this nomenclature do so only fitful-
+ ly.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ T\bTe\ber\brm\bm appeared in Version 32 AT&T UNIX.
+
+AT&T June 5, 1993 1
--- /dev/null
+ADDUSER(8) BSD System Manager's Manual ADDUSER(8)
+
+N\bNA\bAM\bME\bE
+ a\bad\bdd\bdu\bus\bse\ber\br - procedure for adding new users
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A new user must choose a login name, which must not already appear in
+ _\b/_\be_\bt_\bc_\b/_\bp_\ba_\bs_\bs_\bw_\bd or _\b/_\be_\bt_\bc_\b/_\ba_\bl_\bi_\ba_\bs_\be_\bs. It must also not begin with the hyphen `-\b-'
+ character. It is strongly recommended that it be all lower-case, and not
+ contain the dot `.' character, as that tends to confuse mailers. An ac-
+ count can be added by editing a line into the passwd file; this must be
+ done with the password file locked e.g. by using chpass(1) or vipw(8).
+
+ A new user is given a group and user id. Login and user id's should be
+ unique across the system, and often across a group of systems, since they
+ are used to control file access. Typically, users working on similar
+ projects will be put in the same groups. At the University of Califor-
+ nia, Berkeley, we have groups for system staff, faculty, graduate stu-
+ dents, and special groups for large projects.
+
+ A skeletal account for a new user ernie might look like:
+
+ ernie::25:30::0:0:Ernie Kovacs,508 Evans Hall,x7925,
+ 642-8202:/a/users/ernie:/bin/csh
+
+ For a description of each of these fields, see passwd(5).
+
+ It is useful to give new users some help in getting started, supplying
+ them with a few skeletal files such as _\b._\bp_\br_\bo_\bf_\bi_\bl_\be if they use _\b/_\bb_\bi_\bn_\b/_\bs_\bh, or
+ _\b._\bc_\bs_\bh_\br_\bc and _\b._\bl_\bo_\bg_\bi_\bn if they use _\b/_\bb_\bi_\bn_\b/_\bc_\bs_\bh. The directory _\b/_\bu_\bs_\br_\b/_\bs_\bh_\ba_\br_\be_\b/_\bs_\bk_\be_\bl
+ contains skeletal definitions of such files. New users should be given
+ copies of these files which, for instance, use tset(1) automatically at
+ each login.
+
+F\bFI\bIL\bLE\bES\bS
+ /etc/master.passwd user database
+ /usr/share/skel skeletal login directory
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ chpass(1), finger(1), passwd(1), aliases(5), passwd(5), pwd_mkdb(8),
+ vipw(8)
+
+B\bBU\bUG\bGS\bS
+ User information should (and eventually will) be stored elsewhere.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The a\bad\bdd\bdu\bus\bse\ber\br command appeared in 3.0BSD.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+MAKEDEV(8) BSD System Manager's Manual MAKEDEV(8)
+
+N\bNA\bAM\bME\bE
+ M\bMA\bAK\bKE\bED\bDE\bEV\bV - create system and device special files
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ M\bMA\bAK\bKE\bED\bDE\bEV\bV _\bd_\be_\bv_\bi_\bc_\be_\b__\bn_\ba_\bm_\be _\b._\b._\b.
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The shell script M\bMA\bAK\bKE\bED\bDE\bEV\bV, found in the _\b/_\bd_\be_\bv directory, is used to create
+ the common special files. See special(8) for a more complete discussion
+ of special files.
+
+ M\bMA\bAK\bKE\bED\bDE\bEV\bV takes any number of device names as arguments, where the names
+ are the common abbreviation for the device. There are two special de-
+ vices, _\bs_\bt_\bd and _\bl_\bo_\bc_\ba_\bl. The former creates the standard devices for the ar-
+ chitecture. The latter is for devices specific to the local site, and
+ executes the shell file _\bM_\bA_\bK_\bE_\bD_\bE_\bV_\b._\bl_\bo_\bc_\ba_\bl.
+
+ The HP300 supports the following devices. Where a device name is fol-
+ lowed by a hash sign `#', the hash sign must be replaced by a unit num-
+ ber.
+ _\bs_\bt_\bd the standard devices (_\bc_\bo_\bn_\bs_\bo_\bl_\be, _\bd_\br_\bu_\bm, _\bf_\bd_\b/_\b*, _\bk_\bl_\bo_\bg, _\bk_\bm_\be_\bm, _\bm_\be_\bm, _\bn_\bu_\bl_\bl,
+ _\bs_\bt_\bd_\be_\br_\br, _\bs_\bt_\bd_\bi_\bn, _\bs_\bt_\bd_\bo_\bu_\bt, _\bt_\bt_\by).
+ _\bl_\bo_\bc_\ba_\bl configuration specific devices.
+ _\bc_\bt_\b# HP300 HP-IB cartridge tape.
+ _\bc_\bd_\b# ``concatenated'' pseudo-disks.
+ _\br_\bd_\b# HP300 HP-IB disks
+ _\bs_\bd_\b# HP300 SCSI disks.
+ _\bv_\bn_\bd_\b# ``file'' pseudo-disks.
+ _\bd_\bc_\ba_\b# HP200/300 single port serial interface.
+ _\bd_\bc_\bm_\b# HP200/300 4 port serial mux interface.
+ _\bp_\bt_\by_\b# set of 16 master and slave pseudo terminals.
+ _\bf_\bl_\bo_\bg_\b# kernel logging device.
+ _\bg_\br_\bf_\b# raw interface to HP300 graphics devices.
+ _\bi_\bt_\be_\b# terminal emulator interface to HP300 graphics devices.
+ _\bh_\bi_\bl HP300 HIL input devices.
+
+F\bFI\bIL\bLE\bES\bS
+ /dev The special file directory.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ mknod(1), intro(4), config(8), special(8)
+
+ 4.3 June 5, 1993 1
--- /dev/null
+CRASH(8) BSD System Manager's Manual CRASH(8)
+
+N\bNA\bAM\bME\bE
+ c\bcr\bra\bas\bsh\bh - UNIX system failures
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section explains a bit about system crashes and (very briefly) how
+ to analyze crash dumps.
+
+ When the system crashes voluntarily it prints a message of the form
+
+ panic: why i gave up the ghost
+
+ on the console, takes a dump on a mass storage peripheral, and then in-
+ vokes an automatic reboot procedure as described in reboot(8). Unless
+ some unexpected inconsistency is encountered in the state of the file
+ systems due to hardware or software failure, the system will then resume
+ multi-user operations.
+
+ The system has a large number of internal consistency checks; if one of
+ these fails, then it will panic with a very short message indicating
+ which one failed. In many instances, this will be the name of the rou-
+ tine which detected the error, or a two-word description of the inconsis-
+ tency. A full understanding of most panic messages requires perusal of
+ the source code for the system.
+
+ The most common cause of system failures is hardware failure, which can
+ reflect itself in different ways. Here are the messages which are most
+ likely, with some hints as to causes. Left unstated in all cases is the
+ possibility that hardware or software error produced the message in some
+ unexpected way.
+
+ i\bii\bin\bni\bit\bt This cryptic panic message results from a failure to mount the
+ root filesystem during the bootstrap process. Either the root
+ filesystem has been corrupted, or the system is attempting to use
+ the wrong device as root filesystem. Usually, an alternate copy
+ of the system binary or an alternate root filesystem can be used
+ to bring up the system to investigate.
+
+ C\bCa\ban\bn'\b't\bt e\bex\bxe\bec\bc /\b/e\bet\btc\bc/\b/i\bin\bni\bit\bt
+ This is not a panic message, as reboots are likely to be futile.
+ Late in the bootstrap procedure, the system was unable to locate
+ and execute the initialization process, init(8). The root
+ filesystem is incorrect or has been corrupted, or the mode or
+ type of _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bi_\bt forbids execution.
+
+ I\bIO\bO e\ber\brr\br i\bin\bn p\bpu\bus\bsh\bh
+ h\bha\bar\brd\bd I\bIO\bO e\ber\brr\br i\bin\bn s\bsw\bwa\bap\bp
+ The system encountered an error trying to write to the paging de-
+ vice or an error in reading critical information from a disk
+ drive. The offending disk should be fixed if it is broken or un-
+ reliable.
+
+ r\bre\bea\bal\bll\blo\boc\bcc\bcg\bg:\b: b\bba\bad\bd o\bop\bpt\bti\bim\bm
+ i\bia\bal\bll\blo\boc\bc:\b: d\bdu\bup\bp a\bal\bll\blo\boc\bc
+ a\bal\bll\blo\boc\bcc\bcg\bgb\bbl\blk\bk:\b:c\bcy\byl\bl g\bgr\bro\bou\bup\bps\bs c\bco\bor\brr\bru\bup\bpt\bte\bed\bd
+ i\bia\bal\bll\blo\boc\bcc\bcg\bg:\b: m\bma\bap\bp c\bco\bor\brr\bru\bup\bpt\bte\bed\bd
+ f\bfr\bre\bee\be:\b: f\bfr\bre\bee\bei\bin\bng\bg f\bfr\bre\bee\be b\bbl\blo\boc\bck\bk
+ f\bfr\bre\bee\be:\b: f\bfr\bre\bee\bei\bin\bng\bg f\bfr\bre\bee\be f\bfr\bra\bag\bg
+ i\bif\bfr\bre\bee\be:\b: f\bfr\bre\bee\bei\bin\bng\bg f\bfr\bre\bee\be i\bin\bno\bod\bde\be
+ a\bal\bll\blo\boc\bcc\bcg\bg:\b: m\bma\bap\bp c\bco\bor\brr\bru\bup\bpt\bte\bed\bd
+ These panic messages are among those that may be produced when
+ filesystem inconsistencies are detected. The problem generally
+ results from a failure to repair damaged filesystems after a
+ crash, hardware failures, or other condition that should not nor-
+ mally occur. A filesystem check will normally correct the prob-
+ lem.
+
+ t\bti\bim\bme\beo\bou\but\bt t\bta\bab\bbl\ble\be o\bov\bve\ber\brf\bfl\blo\bow\bw
+ This really shouldn't be a panic, but until the data structure
+ involved is made to be extensible, running out of entries causes
+ a crash. If this happens, make the timeout table bigger.
+
+ t\btr\bra\bap\bp t\bty\byp\bpe\be %\b%d\bd,\b, c\bco\bod\bde\be =\b= %\b%x\bx,\b, v\bv =\b= %\b%x\bx
+ An unexpected trap has occurred within the system; the trap types
+ are:
+
+ 0 bus error
+ 1 address error
+ 2 illegal instruction
+ 3 divide by zero
+ 4 _\bc_\bh_\bk instruction
+ 5 _\bt_\br_\ba_\bp_\bv instruction
+ 6 privileged instruction
+ 7 trace trap
+ 8 MMU fault
+ 9 simulated software interrupt
+ 10 format error
+ 11 FP coprocessor fault
+ 12 coprocessor fault
+ 13 simulated AST
+
+ The favorite trap type in system crashes is trap type 8, indicat-
+ ing a wild reference. ``code'' (hex) is the concatenation of the
+ MMU status register (see <hp300/cpu.h>) in the high 16 bits and
+ the 68020 special status word (see the 68020 manual, page 6-17)
+ in the low 16. ``v'' (hex) is the virtual address which caused
+ the fault. Additionally, the kernel will dump about a screenful
+ of semi-useful information. ``pid'' (decimal) is the process id
+ of the process running at the time of the exception. Note that
+ if we panic in an interrupt routine, this process may not be re-
+ lated to the panic. ``ps'' (hex) is the 68020 processor status
+ register ``ps''. ``pc'' (hex) is the value of the program
+ counter saved on the hardware exception frame. It may _\bn_\bo_\bt be the
+ PC of the instruction causing the fault. ``sfc'' and ``dfc''
+ (hex) are the 68020 source/destination function codes. They
+ should always be one. ``p0'' and ``p1'' are the VAX-like region
+ registers. They are of the form:
+
+ <length> '@' <kernel VA>
+
+ where both are in hex. Following these values are a dump of the
+ processor registers (hex). Finally, is a dump of the stack (us-
+ er/kernel) at the time of the offense.
+
+ i\bin\bni\bit\bt d\bdi\bie\bed\bd
+ The system initialization process has exited. This is bad news,
+ as no new users will then be able to log in. Rebooting is the
+ only fix, so the system just does it right away.
+
+ o\bou\but\bt o\bof\bf m\bmb\bbu\buf\bfs\bs:\b: m\bma\bap\bp f\bfu\bul\bll\bl
+ The network has exhausted its private page map for network
+ buffers. This usually indicates that buffers are being lost, and
+ rather than allow the system to slowly degrade, it reboots imme-
+ diately. The map may be made larger if necessary.
+
+ That completes the list of panic types you are likely to see.
+
+ When the system crashes it writes (or at least attempts to write) an im-
+ age of memory into the back end of the dump device, usually the same as
+ the primary swap area. After the system is rebooted, the program
+ savecore(8) runs and preserves a copy of this core image and the current
+ system in a specified directory for later perusal. See savecore(8) for
+ details.
+
+ To analyze a dump you should begin by running adb(1) with the -\b-k\bk flag on
+ the system load image and core dump. If the core image is the result of
+ a panic, the panic message is printed. Normally the command ``$c'' will
+ provide a stack trace from the point of the crash and this will provide a
+ clue as to what went wrong. For more details consult _\bU_\bs_\bi_\bn_\bg _\bA_\bD_\bB _\bt_\bo _\bD_\be_\bb_\bu_\bg
+ _\bt_\bh_\be _\bU_\bN_\bI_\bX _\bK_\be_\br_\bn_\be_\bl.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ adb(1), reboot(8)
+
+ _\bM_\bC_\b6_\b8_\b0_\b2_\b0 _\b3_\b2_\b-_\bb_\bi_\bt _\bM_\bi_\bc_\br_\bo_\bp_\br_\bo_\bc_\be_\bs_\bs_\bo_\br _\bU_\bs_\be_\br_\b'_\bs _\bM_\ba_\bn_\bu_\ba_\bl.
+
+ _\bU_\bs_\bi_\bn_\bg _\bA_\bD_\bB _\bt_\bo _\bD_\be_\bb_\bu_\bg _\bt_\bh_\be _\bU_\bN_\bI_\bX _\bK_\be_\br_\bn_\be_\bl.
+
+ _\b4_\b._\b3_\bB_\bS_\bD _\bf_\bo_\br _\bt_\bh_\be _\bH_\bP_\b3_\b0_\b0.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A c\bcr\bra\bas\bsh\bh man page appeared in Version 6 AT&T UNIX.
+
+4.4BSD June 5, 1993 3
--- /dev/null
+FORMAT(8) BSD System Manager's Manual FORMAT(8)
+
+N\bNA\bAM\bME\bE
+ f\bfo\bor\brm\bma\bat\bt - how to format disks and tapes
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Currently, there are no ``native'' BSD media formatting utilities. For-
+ matting of both disks and cartridge tapes must be done either standalone
+ or under HP-UX using the _\bm_\be_\bd_\bi_\ba_\bi_\bn_\bi_\bt utility distributed by HP. Note that
+ HP-brand cartridge tapes come pre-formatted, and HP disks are supposed
+ to.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The f\bfo\bor\brm\bma\bat\bt utility first appeared in 4.4BSD.
+
+4.4BSD June 9, 1993 1
--- /dev/null
+
+
+
+MAKEDEV(8) BSD System Manager's Manual MAKEDEV(8)
+
+
+N\bNA\bAM\bME\bE
+ MAKEDEV - create system and device special files
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ MAKEDEV name ...
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The shell script _\bM_\bA_\bK_\bE_\bD_\bE_\bV, found in the ``/dev'' directory,
+ is used to create the common special files. See _\bs_\bp_\be_\b-
+ _\bc_\bi_\ba_\bl(8) for a more complete discussion of special files.
+
+ _\bM_\bA_\bK_\bE_\bD_\bE_\bV takes any number of device names as arguments,
+ where the names are the common abbreviation for the
+ device. There are two special devices, ``std'' and
+ ``local''. The former creates the standard devices for
+ the architecture. The latter is for devices specific to
+ the local site, and executes the shell file
+ ``MAKEDEV.local''.
+
+ The i386 supports the following devices. Where a device
+ name is followed by a hash sign (``#''), the hash sign
+ must be replaced by a unit number.
+
+ std the standard devices (console, drum, fd/*, klog,
+ kmem, mem, null, stderr, stdin, stdout, tty)
+ local configuration specific devices
+ com# standard PC COM ports
+ fd# ``floppy'' disk drives (3 1/2, 5 1/4)
+ flog# kernel logging device
+ pty# set of 16 master and slave pseudo terminals
+ wd# ``winchester'' disk drives (ST506, IDE, ESDI,
+ RLL etc.)
+ wt# QIC-interfaced (e.g. not SCSI) 3M cartridge tape
+
+F\bFI\bIL\bLE\bES\bS
+ /dev The special file directory.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ _\bm_\bk_\bn_\bo_\bd(1), _\bi_\bn_\bt_\br_\bo(4), _\bc_\bo_\bn_\bf_\bi_\bg(8), _\bs_\bp_\be_\bc_\bi_\ba_\bl(8)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4.4 Berkeley Distribution June 5, 1993 1
+
+
+
+
+
--- /dev/null
+INTRO(8) BSD System Manager's Manual INTRO(8)
+
+N\bNA\bAM\bME\bE
+ i\bin\bnt\btr\bro\bo - introduction to system maintenance and operation commands
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section contains information related to system operation and mainte-
+ nance. It describes commands used to create new file systems, `newfs',
+ verify the integrity of the file systems, `fsck', control disk usage,
+ `edquota', maintain system backups, `dump', and recover files when
+ disks die an untimely death, `restore'. The manual `format' should be
+ consulted when formatting disk packs respective to the architecture the
+ system is running on. Network related services like `inetd' and `ftpd'
+ are also described. The section `crash' should be consulted in under-
+ standing how to interpret system crash dumps.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The i\bin\bnt\btr\bro\bo section manual page appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+RC(8) BSD System Manager's Manual RC(8)
+
+N\bNA\bAM\bME\bE
+ r\brc\bc - command script for auto-reboot and daemons
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ r\brc\bc
+ r\brc\bc.\b.l\blo\boc\bca\bal\bl
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ R\bRc\bc is the command script which controls the automatic reboot and r\brc\bc.\b.l\blo\boc\bca\bal\bl
+ is the script holding commands which are pertinent only to a specific
+ site.
+
+ When an automatic reboot is in progress, r\brc\bc is invoked with the argument
+ _\ba_\bu_\bt_\bo_\bb_\bo_\bo_\bt. The first portion of r\brc\bc runs an fsck(8) with option -\b-p\bp to
+ ``preen'' all the disks of minor inconsistencies resulting from the last
+ system shutdown and to check for serious inconsistencies caused by hard-
+ ware or software failure. If this auto-check and repair succeeds, then
+ the second part of r\brc\bc is run.
+
+ The second part of r\brc\bc, which is run after a auto-reboot succeeds and also
+ if r\brc\bc is invoked when a single user shell terminates (see init(8)),
+ starts all the daemons on the system, preserves editor files and clears
+ the scratch directory _\b/_\bt_\bm_\bp.
+
+ R\bRc\bc.\b.l\blo\boc\bca\bal\bl is executed immediately before any other commands after a suc-
+ cessful fsck. Normally, the first commands placed in the r\brc\bc.\b.l\blo\boc\bca\bal\bl file
+ define the machine's name, using hostname(1), and save any possible core
+ image that might have been generated as a result of a system crash, with
+ savecore(8). The latter command is included in the r\brc\bc.\b.l\blo\boc\bca\bal\bl file because
+ the directory in which core dumps are saved is usually site specific.
+
+ Following tradition, the startup files r\brc\bc and r\brc\bc.\b.l\blo\boc\bca\bal\bl reside in _\b/_\be_\bt_\bc.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ init(8), reboot(8), savecore(8)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The r\brc\bc command appeared in 4.0BSD.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+STICKY(8) BSD System Manager's Manual STICKY(8)
+
+N\bNA\bAM\bME\bE
+ s\bst\bti\bic\bck\bky\by - sticky text and append-only directories
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A special file mode, called the _\bs_\bt_\bi_\bc_\bk_\by _\bb_\bi_\bt (mode S_ISVTX), is used to in-
+ dicate special treatment for shareable executable files and directories.
+ See chmod(2) or the file _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bs_\by_\bs_\b/_\bs_\bt_\ba_\bt_\b._\bh for an explanation of
+ file modes.
+
+S\bST\bTI\bIC\bCK\bKY\bY T\bTE\bEX\bXT\bT E\bEX\bXE\bEC\bCU\bUT\bTA\bAB\bBL\bLE\bE F\bFI\bIL\bLE\bES\bS
+ An executable shareable file whose sticky bit is set will not be immedi-
+ ately discarded from swap space after execution. The kernel will hoard
+ the text segment of the file for future reuse and avoid having to reload
+ the program. Shareable text segments are normally placed in a least-
+ frequently-used cache after use, and thus the `sticky bit' has little ef-
+ fect on commonly-used text images.
+
+ Sharable executable files are created with the -\b-n\bn and -\b-z\bz options of the
+ loader ld(1).
+
+ Only the super-user can set the sticky bit on a sharable executable file.
+
+S\bST\bTI\bIC\bCK\bKY\bY D\bDI\bIR\bRE\bEC\bCT\bTO\bOR\bRI\bIE\bES\bS
+ A directory whose `sticky bit' is set becomes an append-only directory,
+ or, more accurately, a directory in which the deletion of files is re-
+ stricted. A file in a sticky directory may only be removed or renamed by
+ a user if the user has write permission for the directory and the user is
+ the owner of the file, the owner of the directory, or the super-user.
+ This feature is usefully applied to directories such as _\b/_\bt_\bm_\bp which must
+ be publicly writable but should deny users the license to arbitrarily
+ delete or rename each others' files.
+
+ Any user may create a sticky directory. See chmod(1) for details about
+ modifying file modes.
+
+B\bBU\bUG\bGS\bS
+ Since the text areas of sticky text executables are stashed in the swap
+ area, abuse of the feature can cause a system to run out of swap.
+
+ Neither open(2) nor mkdir(2) will create a file with the sticky bit set.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ A s\bst\bti\bic\bck\bky\by command appeared in Version 32V AT&T UNIX.
+
+4th Berkeley Distribution June 5, 1993 1
--- /dev/null
+
+
+
+MAKEDEV(8) BSD System Manager's Manual MAKEDEV(8)
+
+
+N\bNA\bAM\bME\bE
+ MAKEDEV - create system and device special files
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ MAKEDEV name ...
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The shell script _\bM_\bA_\bK_\bE_\bD_\bE_\bV, found in the ``/dev'' directory,
+ is used to create the common special files. See _\bs_\bp_\be_\b-
+ _\bc_\bi_\ba_\bl(8) for a more complete discussion of special files.
+
+ _\bM_\bA_\bK_\bE_\bD_\bE_\bV takes any number of device names as arguments,
+ where the names are the common abbreviation for the
+ device. There are two special devices, ``std'' and
+ ``local''. The former creates the standard devices for
+ the architecture. The latter is for devices specific to
+ the local site, and executes the shell file
+ ``MAKEDEV.local''.
+
+ The Tahoe supports the following devices. Where a device
+ name is followed by a hash sign (``#''), the hash sign
+ must be replaced by a unit number.
+
+ std the standard devices (CP, console, drum, fd/*,
+ klog, kmem, mem, null, remote, stderr, stdin,
+ stdout, tty, vmem)
+ local configuration specific devices
+ cy# Cipher
+ dk# VDDC or SMDE disk on Versabus
+ dr# IKON DR-11W
+ enp# CMC Ethernet interface for loading RAM
+ hd# VDDC or SMDE disk on VME
+ ik# IKON DR-11W w/ E&S PS300
+ mp# MPCC
+ pty# set of 32 master and slave pseudo terminals
+ vx# VIOC
+
+F\bFI\bIL\bLE\bES\bS
+ /dev The special file directory.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ _\bm_\bk_\bn_\bo_\bd(1), _\bi_\bn_\bt_\br_\bo(4), _\bc_\bo_\bn_\bf_\bi_\bg(8), _\bs_\bp_\be_\bc_\bi_\ba_\bl(8)
+
+
+
+
+
+
+
+
+
+
+
+
+4.4 Berkeley Distribution June 5, 1993 1
+
+
+
+
+
--- /dev/null
+
+
+
+MAKEDEV(8) BSD System Manager's Manual MAKEDEV(8)
+
+
+N\bNA\bAM\bME\bE
+ MAKEDEV - create system and device special files
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ MAKEDEV name ...
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The shell script _\bM_\bA_\bK_\bE_\bD_\bE_\bV, found in the ``/dev'' directory,
+ is used to create the common special files. See _\bs_\bp_\be_\b-
+ _\bc_\bi_\ba_\bl(8) for a more complete discussion of special files.
+
+ _\bM_\bA_\bK_\bE_\bD_\bE_\bV takes any number of device names as arguments,
+ where the names are the common abbreviation for the
+ device. There are two special devices, ``std'' and
+ ``local''. The former creates the standard devices for
+ the architecture. The latter is for devices specific to
+ the local site, and executes the shell file
+ ``MAKEDEV.local''.
+
+ The VAX supports the following devices. Where a device
+ name is followed by a hash sign (``#''), the hash sign
+ must be replaced by a unit number.
+
+ std the standard devices (console, crl, csa1, csa2,
+ drum, fd/*, floppy, kUmem, klog, kmem, mem,
+ null, stderr, stdin, stdout, tty, tu0, tu1)
+ local configuration specific devices
+ ad# unibus interface to data translation a/d con-
+ verter
+ ct# unibus parallel interface to CAT typesetter
+ dh# unibus dh11 and emulations (e.g. Able dmax,
+ Emulex cs-11)
+ dhu# unibus dhu11
+ dmf# unibus dmf32
+ dmz# unibus dmz32
+ dn# unibus dn11 and emulations (e.g. Able Quadra-
+ call)
+ dz# unibus dz11 and dz32
+ hk# unibus rk06 and rk07
+ hp# massbus rm??
+ ht# massbus tm03 & tu??
+ ik# unibus interface to ikonas frame buffer
+ kra# bi kdb50 w/ ra??
+ lp# unibus lp11 parallel interface
+ mt# massbus tu78
+ np# unibus ethernet co-processor interface, for
+ downloading.
+ ps# unibus interface to e&s picture system 2
+ pty# set of 16 master and slave pseudo terminals
+ qv# qvss (microvax) display
+ ra# unibus uda50 w/ ra??
+
+
+
+4.4 Berkeley Distribution June 5, 1993 1
+
+
+
+
+
+
+
+
+MAKEDEV(8) BSD System Manager's Manual MAKEDEV(8)
+
+
+ rb# 730 idc w/ rb80 and/or rb02
+ rl# unibus rl02
+ rx# unibus rx211 floppy disk
+ tm# unibus tm11 & te10 emulations (e.g. Emulex
+ tc-11)
+ tms# unibus/qbus TMSCP (e.g. TU81, TK50)
+ ts# unibus ts11
+ ttyv0 qvss (microvax) display reserved pty
+ up# other unibus devices (e.g. on Emulex sc-21v con-
+ troller)
+ ut# unibus tu45 emulations (e.g.si 9700)
+ uu# tu58 cassettes on dl11 controller
+ va# unibus varian parallel interface
+ vp# unibus versatec parallel interface
+
+F\bFI\bIL\bLE\bES\bS
+ /dev The special file directory.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ _\bm_\bk_\bn_\bo_\bd(1), _\bi_\bn_\bt_\br_\bo(4), _\bc_\bo_\bn_\bf_\bi_\bg(8), _\bs_\bp_\be_\bc_\bi_\ba_\bl(8)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4.4 Berkeley Distribution June 5, 1993 2
+
+
+
+
+
--- /dev/null
+
+
+
+CRASH(8) BSD System Manager's Manual CRASH(8)
+
+
+N\bNA\bAM\bME\bE
+ crash - UNIX system failures
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ This section explains what happens when the system crashes
+ and (very briefly) how to analyze crash dumps.
+
+ When the system crashes voluntarily it prints a message of
+ the form
+
+ panic: why i gave up the ghost
+
+ on the console, takes a dump on a mass storage peripheral,
+ and then invokes an automatic reboot procedure as
+ described in _\br_\be_\bb_\bo_\bo_\bt(8). (If auto-reboot is disabled on
+ the front panel of the machine the system will simply halt
+ at this point.) Unless some unexpected inconsistency is
+ encountered in the state of the file systems due to hard-
+ ware or software failure, the system will then resume
+ multi-user operations.
+
+ The system has a large number of internal consistency
+ checks; if one of these fails, then it will panic with a
+ very short message indicating which one failed. In many
+ instances, this will be the name of the routine which
+ detected the error, or a two-word description of the
+ inconsistency. A full understanding of most panic mes-
+ sages requires perusal of the source code for the system.
+
+ The most common cause of system failures is hardware fail-
+ ure, which can reflect itself in different ways. Here are
+ the messages which are most likely, with some hints as to
+ causes. Left unstated in all cases is the possibility
+ that hardware or software error produced the message in
+ some unexpected way.
+
+ i\bii\bin\bni\bit\bt This cryptic panic message results from a failure
+ to mount the root filesystem during the bootstrap
+ process. Either the root filesystem has been cor-
+ rupted, or the system is attempting to use the
+ wrong device as root filesystem. Usually, an
+ alternate copy of the system binary or an alternate
+ root filesystem can be used to bring up the system
+ to investigate.
+
+ C\bCa\ban\bn'\b't\bt e\bex\bxe\bec\bc /\b/s\bsb\bbi\bin\bn/\b/i\bin\bni\bit\bt
+ This is not a panic message, as reboots are likely
+ to be futile. Late in the bootstrap procedure, the
+ system was unable to locate and execute the ini-
+ tialization process, _\bi_\bn_\bi_\bt(8). The root filesystem
+ is incorrect or has been corrupted, or the mode or
+
+
+
+4th Berkeley Distribution June 5, 1993 1
+
+
+
+
+
+
+
+
+CRASH(8) BSD System Manager's Manual CRASH(8)
+
+
+ type of /sbin/init forbids execution.
+
+ I\bIO\bO e\ber\brr\br i\bin\bn p\bpu\bus\bsh\bh
+ h\bha\bar\brd\bd I\bIO\bO e\ber\brr\br i\bin\bn s\bsw\bwa\bap\bp
+ The system encountered an error trying to write to
+ the paging device or an error in reading critical
+ information from a disk drive. The offending disk
+ should be fixed if it is broken or unreliable.
+
+ r\bre\bea\bal\bll\blo\boc\bcc\bcg\bg:\b: b\bba\bad\bd o\bop\bpt\bti\bim\bm
+ i\bia\bal\bll\blo\boc\bc:\b: d\bdu\bup\bp a\bal\bll\blo\boc\bc
+ a\bal\bll\blo\boc\bcc\bcg\bgb\bbl\blk\bk:\b: c\bcy\byl\bl g\bgr\bro\bou\bup\bps\bs c\bco\bor\brr\bru\bup\bpt\bte\bed\bd
+ i\bia\bal\bll\blo\boc\bcc\bcg\bg:\b: m\bma\bap\bp c\bco\bor\brr\bru\bup\bpt\bte\bed\bd
+ f\bfr\bre\bee\be:\b: f\bfr\bre\bee\bei\bin\bng\bg f\bfr\bre\bee\be b\bbl\blo\boc\bck\bk
+ f\bfr\bre\bee\be:\b: f\bfr\bre\bee\bei\bin\bng\bg f\bfr\bre\bee\be f\bfr\bra\bag\bg
+ i\bif\bfr\bre\bee\be:\b: f\bfr\bre\bee\bei\bin\bng\bg f\bfr\bre\bee\be i\bin\bno\bod\bde\be
+ a\bal\bll\blo\boc\bcc\bcg\bg:\b: m\bma\bap\bp c\bco\bor\brr\bru\bup\bpt\bte\bed\bd
+ These panic messages are among those that may be
+ produced when filesystem inconsistencies are
+ detected. The problem generally results from a
+ failure to repair damaged filesystems after a
+ crash, hardware failures, or other condition that
+ should not normally occur. A filesystem check will
+ normally correct the problem.
+
+ t\bti\bim\bme\beo\bou\but\bt t\bta\bab\bbl\ble\be o\bov\bve\ber\brf\bfl\blo\bow\bw
+ This really shouldn't be a panic, but until the
+ data structure involved is made to be extensible,
+ running out of entries causes a crash. If this
+ happens, make the timeout table bigger.
+
+ K\bKS\bSP\bP n\bno\bot\bt v\bva\bal\bli\bid\bd
+ S\bSB\bBI\bI f\bfa\bau\bul\blt\bt
+ C\bCH\bHM\bM?\b? i\bin\bn k\bke\ber\brn\bne\bel\bl
+ These indicate either a serious bug in the system
+ or, more often, a glitch or failing hardware. If
+ SBI faults recur, check out the hardware or call
+ field service. If the other faults recur, there is
+ likely a bug somewhere in the system, although
+ these can be caused by a flakey processor. Run
+ processor microdiagnostics.
+
+ m\bma\bac\bch\bhi\bin\bne\be c\bch\bhe\bec\bck\bk %\b%x\bx:\b:
+ _\bd_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
+
+ _\bm_\ba_\bc_\bh_\bi_\bn_\be _\bd_\be_\bp_\be_\bn_\bd_\be_\bn_\bt _\bm_\ba_\bc_\bh_\bi_\bn_\be_\b-_\bc_\bh_\be_\bc_\bk _\bi_\bn_\bf_\bo_\br_\bm_\ba_\bt_\bi_\bo_\bn
+ Machine checks are different on each type of CPU.
+ Most of the internal processor registers are saved
+ at the time of the fault and are printed on the
+ console. For most processors, there is one line
+ that summarizes the type of machine check. Often,
+
+
+
+4th Berkeley Distribution June 5, 1993 2
+
+
+
+
+
+
+
+
+CRASH(8) BSD System Manager's Manual CRASH(8)
+
+
+ the nature of the problem is apparent from this
+ messaage and/or the contents of key registers. The
+ VAX Hardware Handbook should be consulted, and, if
+ necessary, your friendly field service people
+ should be informed of the problem.
+
+ t\btr\bra\bap\bp t\bty\byp\bpe\be %\b%d\bd,\b, c\bco\bod\bde\be=\b=%\b%x\bx,\b, p\bpc\bc=\b=%\b%x\bx
+ A unexpected trap has occurred within the system;
+ the trap types are:
+
+ 0 reserved addressing fault
+ 1 privileged instruction fault
+ 2 reserved operand fault
+ 3 bpt instruction fault
+ 4 xfc instruction fault
+ 5 system call trap
+ 6 arithmetic trap
+ 7 ast delivery trap
+ 8 segmentation fault
+ 9 protection fault
+ 10 trace trap
+ 11 compatibility mode fault
+ 12 page fault
+ 13 page table fault
+
+ The favorite trap types in system crashes are trap
+ types 8 and 9, indicating a wild reference. The
+ code is the referenced address, and the pc at the
+ time of the fault is printed. These problems tend
+ to be easy to track down if they are kernel bugs
+ since the processor stops cold, but random flaki-
+ ness seems to cause this sometimes. The debugger
+ can be used to locate the instruction and subrou-
+ tine corresponding to the PC value. If that is
+ insufficient to suggest the nature of the problem,
+ more detailed examination of the system status at
+ the time of the trap usually can produce an expla-
+ nation.
+
+ i\bin\bni\bit\bt d\bdi\bie\bed\bd
+ The system initialization process has exited. This
+ is bad news, as no new users will then be able to
+ log in. Rebooting is the only fix, so the system
+ just does it right away.
+
+ o\bou\but\bt o\bof\bf m\bmb\bbu\buf\bfs\bs:\b: m\bma\bap\bp f\bfu\bul\bll\bl
+ The network has exhausted its private page map for
+ network buffers. This usually indicates that
+ buffers are being lost, and rather than allow the
+ system to slowly degrade, it reboots immediately.
+ The map may be made larger if necessary.
+
+
+
+4th Berkeley Distribution June 5, 1993 3
+
+
+
+
+
+
+
+
+CRASH(8) BSD System Manager's Manual CRASH(8)
+
+
+ That completes the list of panic types you are likely to
+ see.
+
+ When the system crashes it writes (or at least attempts to
+ write) an image of memory into the back end of the dump
+ device, usually the same as the primary swap area. After
+ the system is rebooted, the program _\bs_\ba_\bv_\be_\bc_\bo_\br_\be(8) runs and
+ preserves a copy of this core image and the current system
+ in a specified directory for later perusal. See
+ _\bs_\ba_\bv_\be_\bc_\bo_\br_\be(8) for details.
+
+ To analyze a dump you should begin by running _\ba_\bd_\bb(1) with
+ the -\b-k\bk flag on the system load image and core dump. If
+ the core image is the result of a panic, the panic message
+ is printed. Normally the command ``$c'' will provide a
+ stack trace from the point of the crash and this will pro-
+ vide a clue as to what went wrong. For more detail see
+ ``Using ADB to Debug the UNIX Kernel''.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ adb(1), reboot(8)
+ _\bV_\bA_\bX _\b1_\b1_\b/_\b7_\b8_\b0 _\bS_\by_\bs_\bt_\be_\bm _\bM_\ba_\bi_\bn_\bt_\be_\bn_\ba_\bn_\bc_\be _\bG_\bu_\bi_\bd_\be and _\bV_\bA_\bX _\bH_\ba_\br_\bd_\bw_\ba_\br_\be _\bH_\ba_\bn_\bd_\b-
+ _\bb_\bo_\bo_\bk for more information about machine checks.
+ _\bU_\bs_\bi_\bn_\bg _\bA_\bD_\bB _\bt_\bo _\bD_\be_\bb_\bu_\bg _\bt_\bh_\be _\bU_\bN_\bI_\bX _\bK_\be_\br_\bn_\be_\bl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4th Berkeley Distribution June 5, 1993 4
+
+
+
+
+
--- /dev/null
+DRTEST(8) BSD System Manager's Manual DRTEST(8)
+
+N\bNA\bAM\bME\bE
+ d\bdr\brt\bte\bes\bst\bt - standalone disk test program
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ D\bDr\brt\bte\bes\bst\bt is a standalone program used to read a disk track by track. It
+ was primarily intended as a test program for new standalone drivers, but
+ has shown useful in other contexts as well, such as verifying disks and
+ running speed tests. For example, when a disk has been formatted (by
+ format(8)), you can check that hard errors has been taken care of by
+ running d\bdr\brt\bte\bes\bst\bt. No hard errors should be found, but in many cases quite a
+ few soft ECC errors will be reported.
+
+ While d\bdr\brt\bte\bes\bst\bt is running, the cylinder number is printed on the console
+ for every 10th cylinder read.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bE
+ A sample run of drtest is shown below. In this example (using a 750),
+ d\bdr\brt\bte\bes\bst\bt is loaded from the root file system; usually it will be loaded
+ from the machine's console storage device. Boldface means user input.
+ As usual, ``#'' and ``@'' may be used to edit input.
+
+ >>>B\bB/\b/3\b3
+ %%
+ loading hk(0,0)boot
+ Boot
+ : h\bhk\bk(\b(0\b0,\b,0\b0)\b)d\bdr\brt\bte\bes\bst\bt
+ Test program for stand-alone up and hp driver
+
+ Debugging level (1=bse, 2=ecc, 3=bse+ecc)?
+ Enter disk name [type(adapter,unit), e.g. hp(1,3)]? h\bhp\bp(\b(0\b0,\b,0\b0)\b)
+ Device data: #cylinders=1024, #tracks=16, #sectors=32
+ Testing hp(0,0), chunk size is 16384 bytes.
+ _\b(_\bc_\bh_\bu_\bn_\bk _\bs_\bi_\bz_\be _\bi_\bs _\bt_\bh_\be _\bn_\bu_\bm_\bb_\be_\br _\bo_\bf _\bb_\by_\bt_\be_\bs _\br_\be_\ba_\bd _\bp_\be_\br _\bd_\bi_\bs_\bk _\ba_\bc_\bc_\be_\bs_\bs_\b)
+ Start ...Make sure hp(0,0) is online
+ ...
+ _\b(_\be_\br_\br_\bo_\br_\bs _\ba_\br_\be _\br_\be_\bp_\bo_\br_\bt_\be_\bd _\ba_\bs _\bt_\bh_\be_\by _\bo_\bc_\bc_\bu_\br_\b)
+ ...
+ _\b(_\b._\b._\b._\bp_\br_\bo_\bg_\br_\ba_\bm _\br_\be_\bs_\bt_\ba_\br_\bt_\bs _\bt_\bo _\ba_\bl_\bl_\bo_\bw _\bc_\bh_\be_\bc_\bk_\bi_\bn_\bg _\bo_\bt_\bh_\be_\br _\bd_\bi_\bs_\bk_\bs_\b)
+ _\b(_\b._\b._\b._\bt_\bo _\ba_\bb_\bo_\br_\bt _\bh_\ba_\bl_\bt _\bm_\ba_\bc_\bh_\bi_\bn_\be _\bw_\bi_\bt_\bh _\b^_\bP_\b)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ The diagnostics are intended to be self explanatory. Note, however, that
+ the device number in the diagnostic messages is identified as _\bt_\by_\bp_\be_\bX in-
+ stead of _\bt_\by_\bp_\be_\b(_\ba_\b,_\bu_\b) where _\bX = a*8+u, e.g., hp(1,3) becomes hp11.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ format(8), bad144(8)
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+ Helge Skrivervik
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The d\bdr\brt\bte\bes\bst\bt command appeared in 4.2BSD.
+
+4.2 Berkeley Distribution June 5, 1993 1
--- /dev/null
+
+
+
+FORMAT(8) BSD System Manager's Manual FORMAT(8)
+
+
+N\bNA\bAM\bME\bE
+ format - how to format disk packs
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ There are two ways to format disk packs. The simplest is
+ to use the _\bf_\bo_\br_\bm_\ba_\bt program. The alternative is to use the
+ DEC standard formatting software which operates under the
+ DEC diagnostic supervisor. This manual page describes the
+ operation of _\bf_\bo_\br_\bm_\ba_\bt, then concludes with some remarks
+ about using the DEC formatter.
+
+ _\bF_\bo_\br_\bm_\ba_\bt is a standalone program used to format and check
+ disks prior to constructing file systems. In addition to
+ the formatting operation, _\bf_\bo_\br_\bm_\ba_\bt records any bad sectors
+ encountered according to DEC standard 144. Formatting is
+ performed one track at a time by writing the appropriate
+ headers and a test pattern and then checking the sector by
+ reading and verifying the pattern, using the controller's
+ ECC for error detection. A sector is marked bad if an
+ unrecoverable media error is detected, or if a correctable
+ ECC error too many bits in length is detected (such errors
+ are indicated as ``ECC'' in the summary printed upon com-
+ pleting the format operation). After the entire disk has
+ been formatted and checked, the total number of errors are
+ reported, any bad sectors and skip sectors are marked, and
+ a bad sector forwarding table is written to the disk in
+ the first five even numbered sectors of the last track.
+ It is also possible to reformat sections of the disk in
+ units of tracks. _\bF_\bo_\br_\bm_\ba_\bt may be used on any UNIBUS or
+ MASSBUS drive supported by the _\bu_\bp and _\bh_\bp device drivers
+ which uses 4-byte headers (everything except RP's).
+
+ The test pattern used during the media check may be
+ selected from one of: 0xf00f (RH750 worst case), 0xec6d
+ (media worst case), and 0xa5a5 (alternating 1's and 0's).
+ Normally the media worst case pattern is used.
+
+ _\bF_\bo_\br_\bm_\ba_\bt also has an option to perform an extended "severe
+ burn-in," which makes a number of passes using different
+ patterns. The number of passes can be selected at run
+ time, up to a maximum of 48, with provision for additional
+ passes or termination after the preselected number of
+ passes. This test runs for many hours, depending on the
+ disk and processor.
+
+ Each time _\bf_\bo_\br_\bm_\ba_\bt is run to format an entire disk, a com-
+ pletely new bad sector table is generated based on errors
+ encountered while formatting. The device driver, however,
+ will always attempt to read any existing bad sector table
+ when the device is first opened. Thus, if a disk pack has
+ never previously been formatted, or has been formatted
+
+
+
+4th Berkeley Distribution June 5, 1993 1
+
+
+
+
+
+
+
+
+FORMAT(8) BSD System Manager's Manual FORMAT(8)
+
+
+ with different sectoring, five error messages will be
+ printed when the driver attempts to read the bad sector
+ table; these diagnostics should be ignored.
+
+ Formatting a 400 megabyte disk on a MASSBUS disk con-
+ troller usually takes about 20 minutes. Formatting on a
+ UNIBUS disk controller takes significantly longer. For
+ every hundredth cylinder formatted _\bf_\bo_\br_\bm_\ba_\bt prints a message
+ indicating the current cylinder being formatted. (This
+ message is just to reassure people that nothing is is
+ amiss.)
+
+ _\bF_\bo_\br_\bm_\ba_\bt uses the standard notation of the standalone I/O
+ library in identifying a drive to be formatted. A drive
+ is specified as _\bz_\bz(_\bx,_\by), where _\bz_\bz refers to the controller
+ type (either _\bh_\bp or _\bu_\bp), _\bx is the unit number of the drive;
+ 8 times the UNIBUS or MASSBUS adaptor number plus the
+ MASSBUS drive number or UNIBUS drive unit number; and _\by is
+ the file system partition on drive _\bx (this should always
+ be 0). For example, ``hp(1,0)'' indicates that drive 1 on
+ MASSBUS adaptor 0 should be formatted; while ``up(10,0)''
+ indicates that UNIBUS drive 2 on UNIBUS adaptor 1 should
+ be formatted.
+
+ Before each formatting attempt, _\bf_\bo_\br_\bm_\ba_\bt prompts the user in
+ case debugging should be enabled in the appropriate device
+ driver. A carriage return disables debugging information.
+
+ _\bF_\bo_\br_\bm_\ba_\bt should be used prior to building file systems (with
+ _\bn_\be_\bw_\bf_\bs(8)) to insure that all sectors with uncorrectable
+ media errors are remapped. If a drive develops uncor-
+ rectable defects after formatting, either _\bb_\ba_\bd_\b1_\b4_\b4(8) or
+ _\bb_\ba_\bd_\bs_\be_\bc_\bt(8) should be able to avoid the bad sectors.
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bE
+ A sample run of _\bf_\bo_\br_\bm_\ba_\bt is shown below. In this example
+ (using a VAX-11/780), _\bf_\bo_\br_\bm_\ba_\bt is loaded from the console
+ floppy; on an 11/750 _\bf_\bo_\br_\bm_\ba_\bt will be loaded from the root
+ file system with _\bb_\bo_\bo_\bt(8) following a "B/3" command. Bold-
+ face means user input. As usual, ``#'' and ``@'' may be
+ used to edit input.
+
+ >>>L\bL F\bFO\bOR\bRM\bMA\bAT\bT
+ LOAD DONE, 00004400 BYTES LOADED
+ >>>S\bS 2\b2
+ Disk format/check utility
+
+ Enable debugging (0=none, 1=bse, 2=ecc, 3=bse+ecc)? 0\b0
+ Device to format? h\bhp\bp(\b(8\b8,\b,0\b0)\b)
+ (_\be_\br_\br_\bo_\br _\bm_\be_\bs_\bs_\ba_\bg_\be_\bs _\bm_\ba_\by _\bo_\bc_\bc_\bu_\br _\ba_\bs _\bo_\bl_\bd _\bb_\ba_\bd _\bs_\be_\bc_\bt_\bo_\br _\bt_\ba_\bb_\bl_\be _\bi_\bs _\br_\be_\ba_\bd)
+ Formatting drive hp0 on adaptor 1: verify (yes/no)? y\bye\bes\bs
+
+
+
+4th Berkeley Distribution June 5, 1993 2
+
+
+
+
+
+
+
+
+FORMAT(8) BSD System Manager's Manual FORMAT(8)
+
+
+ Device data: #cylinders=842, #tracks=20, #sectors=48
+ Starting cylinder (0):
+ Starting track (0):
+ Ending cylinder (841):
+ Ending track (19):
+ Available test patterns are:
+ 1 - (f00f) RH750 worst case
+ 2 - (ec6d) media worst case
+ 3 - (a5a5) alternating 1's and 0's
+ 4 - (ffff) Severe burnin (up to 48 passes)
+ Pattern (one of the above, other to restart)? 2\b2
+ Maximum number of bit errors to allow for soft ECC (3):
+ Start formatting...make sure the drive is online
+ ...
+ (_\bs_\bo_\bf_\bt _\be_\bc_\bc_\b'_\bs _\ba_\bn_\bd _\bo_\bt_\bh_\be_\br _\be_\br_\br_\bo_\br_\bs _\ba_\br_\be _\br_\be_\bp_\bo_\br_\bt_\be_\bd _\ba_\bs _\bt_\bh_\be_\by _\bo_\bc_\bc_\bu_\br)
+ ...
+ (_\bi_\bf _\b4 _\bw_\br_\bi_\bt_\be _\bc_\bh_\be_\bc_\bk _\be_\br_\br_\bo_\br_\bs _\bw_\be_\br_\be _\bf_\bo_\bu_\bn_\bd_\b, _\bt_\bh_\be _\bp_\br_\bo_\bg_\br_\ba_\bm _\bt_\be_\br_\bm_\bi_\bn_\ba_\bt_\be_\bs _\bl_\bi_\bk_\be _\bt_\bh_\bi_\bs_\b._\b._\b.)
+ ...
+ Errors:
+ Bad sector: 0
+ Write check: 4
+ Hard ECC: 0
+ Other hard: 0
+ Marked bad: 0
+ Skipped: 0
+ Total of 4 hard errors revectored.
+ Writing bad sector table at block 808272
+ (_\b8_\b0_\b8_\b2_\b7_\b2 _\bi_\bs _\bt_\bh_\be _\bb_\bl_\bo_\bc_\bk _\b# _\bo_\bf _\bt_\bh_\be _\bf_\bi_\br_\bs_\bt _\bb_\bl_\bo_\bc_\bk _\bi_\bn _\bt_\bh_\be _\bb_\ba_\bd _\bs_\be_\bc_\bt_\bo_\br _\bt_\ba_\bb_\bl_\be)
+ Done
+ (_\b._\b._\b._\bp_\br_\bo_\bg_\br_\ba_\bm _\br_\be_\bs_\bt_\ba_\br_\bt_\bs _\bt_\bo _\ba_\bl_\bl_\bo_\bw _\bf_\bo_\br_\bm_\ba_\bt_\bt_\bi_\bn_\bg _\bo_\bt_\bh_\be_\br _\bd_\bi_\bs_\bk_\bs)
+ (_\b._\b._\b._\bt_\bo _\ba_\bb_\bo_\br_\bt _\bh_\ba_\bl_\bt _\bm_\ba_\bc_\bh_\bi_\bn_\be _\bw_\bi_\bt_\bh _\b^_\bP)
+
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+ The diagnostics are intended to be self explanatory.
+
+U\bUS\bSI\bIN\bNG\bG D\bDE\bEC\bC S\bSO\bOF\bFT\bTW\bWA\bAR\bRE\bE T\bTO\bO F\bFO\bOR\bRM\bMA\bAT\bT
+ W\bWa\bar\brn\bni\bin\bng\bg:\b: T\bTh\bhe\bes\bse\be i\bin\bns\bst\btr\bru\buc\bct\bti\bio\bon\bns\bs a\bar\bre\be f\bfo\bor\br p\bpe\beo\bop\bpl\ble\be w\bwi\bit\bth\bh 1\b11\b1/\b/7\b78\b80\b0
+ C\bCP\bPU\bU'\b's\bs.\b. The steps needed for 11/750 or 11/730 cpu's are
+ similar, but not covered in detail here.
+
+ The formatting procedures are different for each type of
+ disk. Listed here are the formatting procedures for
+ RK07's, RP0X, and RM0X disks.
+
+ You should shut down UNIX and halt the machine to do any
+ disk formatting. Make certain you put in the pack you
+ want formatted. It is also a good idea to spin down or
+ write protect the disks you don't want to format, just in
+ case.
+
+
+
+
+4th Berkeley Distribution June 5, 1993 3
+
+
+
+
+
+
+
+
+FORMAT(8) BSD System Manager's Manual FORMAT(8)
+
+
+ F\bFo\bor\brm\bma\bat\btt\bti\bin\bng\bg a\ban\bn R\bRK\bK0\b07\b7.\b. Load the console floppy labeled,
+ "RX11 VAX DSK LD DEV #1" in the console disk drive, and
+ type the following commands:
+ >>>BOOT
+ DIAGNOSTIC SUPERVISOR. ZZ-ESSAA-X5.0-119 23-JAN-1980 12:44:40.03
+ DS>ATTACH DW780 SBI DW0 3 5
+ DS>ATTACH RK611 DMA
+ DS>ATTACH RK07 DW0 DMA0
+ DS>SELECT DMA0
+ DS>LOAD EVRAC
+ DS>START/SEC:PACKINIT
+
+ F\bFo\bor\brm\bma\bat\btt\bti\bin\bng\bg a\ban\bn R\bRP\bP0\b0X\bX.\b. Follow the above procedures except
+ that the ATTACH and SELECT lines should read:
+ DS>ATTACH RH780 SBI RH0 8 5
+ DS>ATTACH RP0X RH0 DBA0(RP0X is, e.g. RP06)
+ DS>SELECT DBA0
+
+ This is for drive 0 on mba0; use 9 instead of 8 for mba1,
+ etc.
+
+ F\bFo\bor\brm\bma\bat\btt\bti\bin\bng\bg a\ban\bn R\bRM\bM0\b0X\bX.\b. Follow the above procedures except
+ that the ATTACH and SELECT lines should read:
+ DS>ATTACH RH780 SBI RH0 8 5
+ DS>ATTACH RM0X RH0 DRA0
+ DS>SELECT DRA0
+
+ Don't forget to put your UNIX console floppy back in the
+ floppy disk drive.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ bad144(8), badsect(8), newfs(8)
+
+B\bBU\bUG\bGS\bS
+ An equivalent facility should be available which operates
+ under a running UNIX system.
+
+ It should be possible to reformat or verify part or all of
+ a disk, then update the existing bad sector table.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4th Berkeley Distribution June 5, 1993 4
+
+
+
+
+
--- /dev/null
+INSTALLBOOT(8) BSD System Manager's Manual INSTALLBOOT(8)
+
+N\bNA\bAM\bME\bE
+ i\bin\bns\bst\bta\bal\bll\blb\bbo\boo\bot\bt - installs a boot program in a file system
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ i\bin\bns\bst\bta\bal\bll\blb\bbo\boo\bot\bt _\bb_\bo_\bo_\bt_\bb_\bl_\bo_\bc_\bk _\bb_\bo_\bo_\bt_\bp_\br_\bo_\bg _\bs_\bp_\be_\bc_\bi_\ba_\bl
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ Installboot concatentates _\bb_\bo_\bo_\bt_\bb_\bl_\bo_\bc_\bk and _\bb_\bo_\bo_\bt_\bp_\br_\bo_\bg and writes at most
+ BBSIZE bytes (from <_\bs_\by_\bs_\b/_\bf_\bs_\b._\bh>) of them on the first bytes of _\bs_\bp_\be_\bc_\bi_\ba_\bl.
+
+F\bFI\bIL\bLE\bES\bS
+ /usr/mdec/??boot boot blocks
+ /usr/mdec/boot?? boot programs
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ newfs(8), dd(1)
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
+ cd /usr/mdec
+ installboot raboot bootra /dev/ra0a
+
+B\bBU\bUG\bGS\bS
+ There is no convenient way to determine the names of the boot blocks and
+ boot programs without _\ba _\bp_\br_\bi_\bo_\br_\bi knowledge of one's make of disk.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ The i\bin\bns\bst\bta\bal\bll\blb\bbo\boo\bot\bt command appeared in 4.3BSD-Tahoe. This manual page was
+ written by Geoff Collyer.
+
+4.3-Tahoe Berkeley Distribution June 5, 1993 1
--- /dev/null
+2.28 12 May 86
+-- Fix footnotes if no -rv flag specified
+
+2.27 17 Apr 86
+-- Assume non-C/A/T typesetters -- use -rv2 to get old function
+
+2.26 27 Mar 86
+-- Always go into fill mode in .sh; necessary to get output format
+ correct.
+
+2.25 3 Mar 86
+-- Drop basic unit scaling on .sz and .ps requests; this confuses some
+ versions of troff.
+
+2.24 7 Jan 86
+-- Merge ditroff and troff versions.
+-- Add support for pic, gremlin, and ideal.
+-- Add .lh macro to print a letterhead.
+-- Adjust .bi (bold italics) to be more device resolution independent.
+
+2.23 23 Jun 85
+-- Allow .]< to initialize refer macros (as well as .]-).
+
+2.22 27 Apr 85
+-- Fix incorrect comment strip in $p macro.
+-- Drop into fill mode in .TS so that text boxes will work properly.
+
+2.21 4 Mar 85
+-- Change \*- macro from \- to \(em in troff.
+-- Change block indent (\n(bi) from 4n to 4m to look better in troff.
+
+2.20 18 Feb 85
+-- Don't reset ii register in .bu or .np
+
+2.19 14 Feb 85
+-- add .bu and .sm macros (bullet and smaller).
+-- have .np take a fixed .ip width.
+
+2.18 14 Feb 85
+-- Avoid cut marks on laser printers.
+
+2.17 14 Feb 85
+-- Some bug fixes as reported from many places.
+
+2.16 11 Oct 84
+-- Improve some tracing.
+-- Minor improvements from rrh.
+
+2.15 10 Apr 83
+-- Fix a name conflict between .sh and floating keeps (as suggested
+ by Hy Murviet).
+
+2.14 28 Dec 81
+-- Integrate the refer macros into -me. This is basically a cheap
+ and dirty modification of the -ms version, and is probably not
+ terribly compatible with the usual -me standards. This can be
+ tuned later if needed.
+
+2.13 22 Dec 81
+-- Allow the -rb<x> flag to set the font you want for bold font --
+ set it to font <x>. Default 2 (italic) in nroff, 3 (bold) in
+ troff.
+
+2.12 20 Mar 81
+-- Remove silly "." at top of page on dumb terminals -- lpr is smarter
+ now.
+
+2.11 19 Mar 81
+-- Fixed indexes to indent on second line.
+
+2.10 26 Feb 81
+-- Improvement to nested index solution, now works for ()b & ()z.
+
+2.9 10 Dec 80
+-- More stuff to make indices inside keeps work correctly.
+
+2.8 10 Nov 80
+-- Had .)c do a .br to insure that the final line is forced out.
+
+2.7 24 Sep 80
+-- Fixed bug in 2.6
+
+2.6 23 Sep 80
+-- Fixed problem introduced by 2.2 which occured in footnotes and
+ index entries in filled keeps
+
+2.5 29 Aug 80
+-- Changed umlaut to not be so tricky -- it seems to backfire.
+
+2.4 25 Aug 80
+-- Fixed bug in indices caused by 2.2.
+
+2.3 20 Aug 80
+-- Fixed bug in footnotes caused by 2.2.
+-- Changed temp file names that macros that do dynamic loading rename
+ themselves to. For example, if you say '.TS ... .(f' when both of
+ them have been used for the first time, the @T macro got used twice.
+
+2.2 18 Aug 80
+-- Suspended footnote & index processing until final output
+ (so that they will work properly in keeps).
+
+2.1 18 Aug 80
+-- Release 2. No changes.
+
+Mod 28 18 Aug 80
+-- If \nv is set on entry, handle .po differently (for vtroff).
+-- Allow ".nr fi 0".
+
+Mod 27 30 Jun 80
+-- Put in a cludge to try to make multi-columned output work
+ with wide floating keeps. Moves all wide keeps to the top
+ of the next real page.
+
+Mod 26 9 Nov 79
+-- Fixed footnote bug that caused the first line of footnotes
+ that were broken across a page to be indented.
+
+Mod 25 1 Oct 79
+-- Fixed footnote bug that caused footnotes invoked at the
+ top of pages to come out in bold font.
+-- Fixed equation bug that caused equations at the top of
+ page to be improperly centered.
+
+Mod 24 27 Sep 79
+-- Changed delimiter in all \w's to " from ', to allow for
+ apostrophes in labels.
+-- Increased footnote fudge factor.
+-- Changed \x factor in \*[ & \*< to be one half previous value.
+
+Mod 23 24 Aug 79
+-- Changed .ip to start new line if the tag is too long for
+ the space provided.
+
+Mod 22 11 Jul 79
+-- Changed .ac to handle new paper (with second parameter
+ == "*").
+
+Mod 21 24 Apr 79
+-- Changed \*[ and \*< to use \x -- to avoid line overlap.
+
+Mod 20 6 Apr 79
+-- Changed 12-pitch DTC terminals to still space 1/6 inch (instead
+ of 1/8 inch), unless the 'x' register is non-zero -- do-able with
+ the -rx1 option on the nroff command line.
+
+Mod 19 28 Mar 79
+-- Had .ep do a .rs, to avoid occasional problems (like with
+ .+c (again).
+-- Added the 'X' register: if non-zero on startup on a 12-pitch
+ terminal, it outputs 6 LPI instead of 8 LPI.
+
+Mod 18 26 Mar 79
+-- Had .+c reset indent, to solve problems of prelim material
+ after a .ip (as with references)
+
+Mod 17 19 Mar 79
+-- Fixed a bug in .++ which caused it to renumber pages incorrectly,
+ the result of nroff starting a new page immediately upon reaching
+ the end of the previous page (damn!).
+
+Mod 16 8 Mar 79
+-- Fixed a bug in .++ which caused it to change page number formats
+ before forcing out the page.
+-- Changed tmac.e so that extra '.so's to the package will next to
+ 'null.me'.
+-- Changed .sh so that a title of "_" will cause section depth change
+ side-effects only (base indent will remain the same, and no output
+ will occur).
+
+Mod 15a 7 Mar 79
+-- Fixed a bug in Mod 15 which caused .ip's to fail.
+
+Mod 15 2 Mar 79
+-- Changed .@p to do paragraph indents normally in keeps, which
+ will override the indent parameter in keeps with paragraph
+ forms in them (use .ba to fix this).
+
+Mod 14 23 Feb 79
+-- Fixed .ip so it would hyphenate correctly.
+
+Mod 13 16 Feb 79
+-- Added .rs before eqn title output to fix vertical centering
+ problem.
+
+Mod 12 15 Feb 79
+-- Changed NROFF bold font to be regular .ul (.cu is a pain).
+-- Changed .sh to output regular spaces instead of unpaddable
+ spaces.
+-- Fixed bug in .1c with bad line length (didn't reset \n($l).
+
+Mod 11 13 Feb 79
+-- Added hook to .$c to call .$C (for index entries or whatever).
+
+Mod 10 12 Feb 79
+-- Had .xp print in current environment and not reset to single
+ spacing, to allow more control over output format.
+
+Mod 9 26 Dec 78
+-- Fixed yet another problem with equation spacing.
+
+Mod 8 18 Dec 78
+-- Fixed .@q to solve a problem with \n(dn getting lost on
+ equations at top of page.
+
+Mod 7 11 Dec 78
+-- Had .@q (equation output) move to end of equation after
+ equation output (eqn doesn't seem to space quite right).
+
+Mod 6 27 Nov 78
+-- Fixed the umlaut on DTC output to be prettier.
+
+Mod 5 5 Nov 78
+-- Fixed a bug with the second parameter to .ip.
+
+Mod 4 2 Nov 78
+-- Added .uh command (unnumbered heading).
+-- Changed .$p and .sh accordingly.
+
+Mod 3 2 Oct 78
+-- Fixed .ne command in .$p (print section headings).
+
+Mod 2 25 Sep 78
+-- Changed .np to use () instead of [].
+
+Mod 1 12 Sep 78
+-- Fixed footnote fudge factor (curse NROFF!!)
+-- Put "needs" on .(z, .)z.
+
+Mod 0 11 Sep 78
--- /dev/null
+|000 nul|001 soh|002 stx|003 etx|004 eot|005 enq|006 ack|007 bel|
+|010 bs |011 ht |012 nl |013 vt |014 np |015 cr |016 so |017 si |
+|020 dle|021 dc1|022 dc2|023 dc3|024 dc4|025 nak|026 syn|027 etb|
+|030 can|031 em |032 sub|033 esc|034 fs |035 gs |036 rs |037 us |
+|040 sp |041 ! |042 " |043 # |044 $ |045 % |046 & |047 ' |
+|050 ( |051 ) |052 * |053 + |054 , |055 - |056 . |057 / |
+|060 0 |061 1 |062 2 |063 3 |064 4 |065 5 |066 6 |067 7 |
+|070 8 |071 9 |072 : |073 ; |074 < |075 = |076 > |077 ? |
+|100 @ |101 A |102 B |103 C |104 D |105 E |106 F |107 G |
+|110 H |111 I |112 J |113 K |114 L |115 M |116 N |117 O |
+|120 P |121 Q |122 R |123 S |124 T |125 U |126 V |127 W |
+|130 X |131 Y |132 Z |133 [ |134 \ |135 ] |136 ^ |137 _ |
+|140 ` |141 a |142 b |143 c |144 d |145 e |146 f |147 g |
+|150 h |151 i |152 j |153 k |154 l |155 m |156 n |157 o |
+|160 p |161 q |162 r |163 s |164 t |165 u |166 v |167 w |
+|170 x |171 y |172 z |173 { |174 | |175 } |176 ~ |177 del|
+
+| 00 nul| 01 soh| 02 stx| 03 etx| 04 eot| 05 enq| 06 ack| 07 bel|
+| 08 bs | 09 ht | 0a nl | 0b vt | 0c np | 0d cr | 0e so | 0f si |
+| 10 dle| 11 dc1| 12 dc2| 13 dc3| 14 dc4| 15 nak| 16 syn| 17 etb|
+| 18 can| 19 em | 1a sub| 1b esc| 1c fs | 1d gs | 1e rs | 1f us |
+| 20 sp | 21 ! | 22 " | 23 # | 24 $ | 25 % | 26 & | 27 ' |
+| 28 ( | 29 ) | 2a * | 2b + | 2c , | 2d - | 2e . | 2f / |
+| 30 0 | 31 1 | 32 2 | 33 3 | 34 4 | 35 5 | 36 6 | 37 7 |
+| 38 8 | 39 9 | 3a : | 3b ; | 3c < | 3d = | 3e > | 3f ? |
+| 40 @ | 41 A | 42 B | 43 C | 44 D | 45 E | 46 F | 47 G |
+| 48 H | 49 I | 4a J | 4b K | 4c L | 4d M | 4e N | 4f O |
+| 50 P | 51 Q | 52 R | 53 S | 54 T | 55 U | 56 V | 57 W |
+| 58 X | 59 Y | 5a Z | 5b [ | 5c \ | 5d ] | 5e ^ | 5f _ |
+| 60 ` | 61 a | 62 b | 63 c | 64 d | 65 e | 66 f | 67 g |
+| 68 h | 69 i | 6a j | 6b k | 6c l | 6d m | 6e n | 6f o |
+| 70 p | 71 q | 72 r | 73 s | 74 t | 75 u | 76 v | 77 w |
+| 78 x | 79 y | 7a z | 7b { | 7c | | 7d } | 7e ~ | 7f del|
+
+| 0 nul| 1 soh| 2 stx| 3 etx| 4 eot| 5 enq| 6 ack| 7 bel|
+| 8 bs | 9 ht | 10 nl | 11 vt | 12 np | 13 cr | 14 so | 15 si |
+| 16 dle| 17 dc1| 18 dc2| 19 dc3| 20 dc4| 21 nak| 22 syn| 23 etb|
+| 24 can| 25 em | 26 sub| 27 esc| 28 fs | 29 gs | 30 rs | 31 us |
+| 32 sp | 33 ! | 34 " | 35 # | 36 $ | 37 % | 38 & | 39 ' |
+| 40 ( | 41 ) | 42 * | 43 + | 44 , | 45 - | 46 . | 47 / |
+| 48 0 | 49 1 | 50 2 | 51 3 | 52 4 | 53 5 | 54 6 | 55 7 |
+| 56 8 | 57 9 | 58 : | 59 ; | 60 < | 61 = | 62 > | 63 ? |
+| 64 @ | 65 A | 66 B | 67 C | 68 D | 69 E | 70 F | 71 G |
+| 72 H | 73 I | 74 J | 75 K | 76 L | 77 M | 78 N | 79 O |
+| 80 P | 81 Q | 82 R | 83 S | 84 T | 85 U | 86 V | 87 W |
+| 88 X | 89 Y | 90 Z | 91 [ | 92 \ | 93 ] | 94 ^ | 95 _ |
+| 96 ` | 97 a | 98 b | 99 c |100 d |101 e |102 f |103 g |
+|104 h |105 i |106 j |107 k |108 l |109 m |110 n |111 o |
+|112 p |113 q |114 r |115 s |116 t |117 u |118 v |119 w |
+|120 x |121 y |122 z |123 { |124 | |125 } |126 ~ |127 del|
--- /dev/null
+.EQ
+tdefine ciplus % "\o'\(pl\(ci'" %
+ndefine ciplus % O\b+ %
+tdefine citimes % "\o'\(mu\(ci'" %
+ndefine citimes % O\bx %
+tdefine =wig % "\(eq\h'-\w'\(eq'u-\w'\s-2\(ap'u/2u'\v'-.4m'\s-2\z\(ap\(ap\s+2\v'.4m'\h'\w'\(eq'u-\w'\s-2\(ap'u/2u'" %
+ndefine =wig % =\b"~" %
+tdefine bigstar % "\o'\(pl\(mu'" %
+ndefine bigstar % X\b|\b- %
+tdefine =dot % "\z\(eq\v'-.6m'\h'.2m'\s+2.\s-2\v'.6m'\h'.1m'" %
+ndefine =dot % = dot %
+tdefine orsign % "\s-2\v'-.15m'\z\e\e\h'-.05m'\z\(sl\(sl\v'.15m'\s+2" %
+ndefine orsign % \e/ %
+tdefine andsign % "\s-2\v'-.15m'\z\(sl\(sl\h'-.05m'\z\e\e\v'.15m'\s+2" %
+ndefine andsign % /\e %
+tdefine =del % "\v'.3m'\z=\v'-.6m'\h'.3m'\s-1\(*D\s+1\v'.3m'" %
+ndefine =del % = to DELTA %
+tdefine oppA % "\s-2\v'-.15m'\z\e\e\h'-.05m'\z\(sl\(sl\v'-.15m'\h'-.75m'\z-\z-\h'.2m'\z-\z-\v'.3m'\h'.4m'\s+2" %
+ndefine oppA % V\b- %
+tdefine oppE %"\s-3\v'.2m'\z\(em\v'-.5m'\z\(em\v'-.5m'\z\(em\v'.55m'\h'.9m'\z\(br\z\(br\v'.25m'\s+3" %
+ndefine oppE % E\b/ %
+tdefine incl % "\s-1\z\(or\h'-.1m'\v'-.45m'\z\(em\v'.7m'\z\(em\v'.2m'\(em\v'-.45m'\s+1" %
+ndefine incl % C\b_ %
+tdefine nomem % "\o'\(mo\(sl'" %
+ndefine nomem % C\b-\b/ %
+tdefine angstrom % "\fR\zA\v'-.3m'\h'.2m'\(de\v'.3m'\fP\h'.2m'" %
+ndefine angstrom % A to o %
+tdefine star %{ roman "\v'.5m'\s+3*\s-3\v'-.5m'"}%
+ndefine star % * %
+tdefine || % \(or\(or %
+tdefine <wig % "\z<\v'.4m'\(ap\v'-.4m'" %
+ndefine <wig %{ < from "~" }%
+tdefine >wig % "\z>\v'.4m'\(ap\v'-.4m'" %
+ndefine >wig %{ > from "~" }%
+tdefine langle % "\s-3\b'\(sl\e'\s0" %
+ndefine langle %<%
+tdefine rangle % "\s-3\b'\e\(sl'\s0" %
+ndefine rangle %>%
+tdefine hbar % "\zh\v'-.6m'\h'.05m'\(ru\v'.6m'" %
+ndefine hbar % h\b\u-\d %
+ndefine ppd % _\b| %
+tdefine ppd % "\o'\(ru\s-2\(or\s+2'" %
+tdefine <-> % "\o'\(<-\(->'" %
+ndefine <-> % "<-->" %
+tdefine <=> % "\s-2\z<\v'.05m'\h'.2m'\z=\h'.55m'=\h'-.6m'\v'-.05m'>\s+2" %
+ndefine <=> % "<=>" %
+tdefine |< % "\o'<\(or'" %
+ndefine |< % <\b| %
+tdefine |> % "\o'>\(or'" %
+ndefine |> % |\b> %
+tdefine ang % "\v'-.15m'\z\s-2\(sl\s+2\v'.15m'\(ru" %
+ndefine ang % /\b_ %
+tdefine rang % "\z\(or\h'.15m'\(ru" %
+ndefine rang % L %
+tdefine 3dot % "\v'-.8m'\z.\v'.5m'\z.\v'.5m'.\v'-.2m'" %
+ndefine 3dot % .\b\u.\b\u.\d\d %
+tdefine thf % ".\v'-.5m'.\v'.5m'." %
+ndefine thf % ..\b\u.\d %
+tdefine quarter % roman \(14 %
+ndefine quarter % 1/4 %
+tdefine 3quarter % roman \(34 %
+ndefine 3quarter % 3/4 %
+tdefine degree % \(de %
+ndefine degree % nothing sup o %
+tdefine square % \(sq %
+ndefine square % [] %
+tdefine circle % \(ci %
+ndefine circle % O %
+tdefine blot % "\fB\(sq\fP" %
+ndefine blot % H\bI\bX %
+tdefine bullet % \(bu %
+ndefine bullet % o\bx\be %
+tdefine -wig % "\(~=" %
+ndefine -wig % - to "~" %
+tdefine wig % \(ap %
+ndefine wig % "~" %
+tdefine prop % \(pt %
+ndefine prop % oc %
+tdefine empty % \(es %
+ndefine empty % O\b/ %
+tdefine member % \(mo %
+ndefine member % C\b- %
+tdefine cup % \(cu %
+ndefine cup % U %
+define cap % \(ca %
+define subset % \(sb %
+define supset % \(sp %
+define !subset % \(ib %
+define !supset % \(ip %
+.EN
--- /dev/null
+.TH NAME SECTION local
+.SH NAME
+.SH SYNOPSIS
+.SH DESCRIPTION
+.SH FILES
+.SH SEE ALSO
+.SH DIAGNOSTICS
+.SH BUGS
--- /dev/null
+.\" The following requests are required for all man pages.
+.Dd DATE
+.Os
+.Dt DOCUMENT_TITLE
+.Sh NAME
+.Sh SYNOPSIS
+.Sh DESCRIPTION
+.\" The following requests should be uncommented and used where appropriate.
+.\" This next request is for sections 2 and 3 function return values only.
+.\" .Sh RETURN VALUES
+.\" This next request is for sections 1, 6, 7 & 8 only
+.\" .Sh ENVIRONMENT
+.\" .Sh FILES
+.\" .Sh EXAMPLES
+.\" This next request is for sections 1, 6, 7 & 8 only
+.\" (command return values (to shell) and fprintf/stderr type diagnostics)
+.\" .Sh DIAGNOSTICS
+.\" The next request is for sections 2 and 3 error and signal handling only.
+.\" .Sh ERRORS
+.\" .Sh SEE ALSO
+.\" .Sh STANDARDS
+.\" .Sh HISTORY
+.\" .Sh AUTHORS
+.\" .Sh BUGS
--- /dev/null
+Operator Associativity
+-----------------------------------------------
+() [] -> . left to right
+! ~ ++ -- - (type) * & sizeof right to left
+* / % left to right
++ - left to right
+<< >> left to right
+< <= > >= left to right
+== != left to right
+& left to right
+^ left to right
+| left to right
+&& left to right
+|| left to right
+?: right to left
+= += -= etc. right to left
+, left to right
--- /dev/null
+# .cshrc initialization
+
+alias df df -k
+alias du du -k
+alias f finger
+alias h 'history -r | more'
+alias j jobs -l
+alias la ls -a
+alias lf ls -FA
+alias ll ls -lgsA
+alias su su -m
+alias tset 'set noglob histchars=""; eval `\tset -s \!*`; unset noglob histchars'
+alias x exit
+alias z suspend
+
+set path = (~/bin /bin /usr/{bin,new,games,local,old} .)
+
+if ($?prompt) then
+ # An interactive shell -- set some stuff up
+ set filec
+ set history = 1000
+ set ignoreeof
+ set mail = (/var/mail/$USER)
+ set mch = `hostname -s`
+ set prompt = "$mch:q:$cwd:t {\!} "
+ umask 2
+endif
--- /dev/null
+#csh login file
+
+if ( ! $?TERMCAP ) then
+ tset -Q '-mdialup:?vt100' $TERM
+endif
+
+stty newcrt crterase
+
+set savehist=100
+set ignoreeof
+
+setenv EXINIT 'set ai sm noeb'
+setenv HOSTALIASES $HOME/.hostaliases
+
+/usr/games/fortune
--- /dev/null
+set ask
+ignore message-id received date fcc status resent-date resent-message-id resent-from in-reply-to
--- /dev/null
+PATH=/bin:/usr/bin:/usr/new:/usr/local:/usr/games:/usr/old:.
+export PATH HOME TERM
--- /dev/null
+OtherMachine
+OtherMachine myFriend
--- /dev/null
+\eH \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0
--- /dev/null
+\e3\r \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1\r
\ No newline at end of file
--- /dev/null
+\1c\10\10 \1d\101 \1d\101 \1d\101 \1d\101 \1d\101 \1d\101 \1d\101 \1d\101 \1d\101 \1d\10\10
--- /dev/null
+\EG1MMM.`40K0001202080K8001????00^L\EC80L80{80^L\EK010100????K0601??0000c818100\EG1HHH.\07210000019A27FD006A280D002A200A52429FE8524861086118612861360N031B4C3F3F1800N041B0C1B4C38301800N001B3B313030301800N011B3B313030341800N021B3B313030381800N050800N061B3B313335301800\07211000015A58E8D5011A58F8D5111A5908D5211A5918D531160\07212000015AD5011858EAD5111858FAD52118590AD5311859160\0721300004B2071C5858E0A18658E0A0A858EA900858F268FA5278590A50A29018591A9F51865908590A90165918591A59038E58E8590A591E58F290185912071C5180A0A0A0901858EA900858F268F60\0721350000BA9472031DEA9502031DE60\E\E\E\EG1MMM.^A
--- /dev/null
+\e \ 1\e9
+\e2\e \e1\e \11\e1\e \19\e1\e !\e1\e )\e1\e 1\e1\e 9\e1\e A\e1\e I\e1\e Q\e1\e Y\e1\e a\e1\e i\e1\e q\e1\e y\e1
+ \e9
--- /dev/null
+\r\e \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1\r
\ No newline at end of file
--- /dev/null
+\eH \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0\r
\ No newline at end of file
--- /dev/null
+\r\e3\r \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1
--- /dev/null
+\r\e3\r \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1\r
\ No newline at end of file
--- /dev/null
+\e3\r\e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1
--- /dev/null
+\eG\eY9(\eF\eY90\eF\eY98\eF\eY9@\eF\eY9H\eF\eY9P\eF\eY9X\eF\eY9`\eF\eY9h\eF\r
\ No newline at end of file
--- /dev/null
+\r\e[3g\r\eH \eH \eH \eH \eH \eH \eH \eH \eH \eH\r
\ No newline at end of file
--- /dev/null
+\r\e[3g\r\eH \eH \eH \eH \eH \eH \eH \eH \eH \eH \eH \eH \eH \eH \eH \eH \eH\r
\ No newline at end of file
--- /dev/null
+Setting tabs...\r\e2 \e2 \e2 \e2 \e2 \e2 \e2 \e2 \e1 \e2 \e2 \e2 \e2 \e2 \e2 \e2 \e1 \e2 \e2 \e2 \e2 \e2 \e2 \e2 \e1 \e2 \e2 \e2 \e2 \e2 \e2 \e2 \e1 \e2 \e2 \e2 \e2 \e2 \e2 \e2 \e1 \e2 \e2 \e2 \e2 \e2 \e2 \e2 \e1 \e2 \e2 \e2 \e2 \e2 \e2 \e2 \e1 \e2 \e2 \e2 \e2 \e2 \e2 \e2 \e1 \e2 \e2 \e2 \e2 \e2 \e2 \e2 \e1 \e2 \e2 \e2 \e2 \e2 \e2 \e2
+
+\r
--- /dev/null
+\e2 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1 \e1\r
\ No newline at end of file
--- /dev/null
+\e[3g\r\eH \eH \eH \eH \eH \eH \eH \eH \eH \eH