Added more missing manual pages from 1.1.5.

This commit is contained in:
David Greenman 1995-01-25 09:18:56 +00:00
parent 798bb3d232
commit db35f309d1
11 changed files with 1947 additions and 3 deletions

View File

@ -1,8 +1,9 @@
# @(#)Makefile 8.1 (Berkeley) 6/18/93
MAN4= apm.4 bpf.4 clnp.4 cltp.4 drum.4 esis.4 fd.4 icmp.4 idp.4 inet.4 ip.4 \
iso.4 lkm.4 lo.4 netintro.4 ns.4 nsip.4 null.4 pty.4 route.4 \
spp.4 tcp.4 termios.4 tp.4 tty.4 udp.4 unix.4 yp.4
MAN4= apm.4 bpf.4 cd.4 ch.4 clnp.4 cltp.4 ddb.4 drum.4 esis.4 fd.4 \
icmp.4 idp.4 inet.4 ip.4 iso.4 lkm.4 lo.4 netintro.4 ns.4 nsip.4 \
null.4 pty.4 route.4 scsi.4 sd.4 spp.4 st.4 su.4 tcp.4 termios.4 \
tp.4 tty.4 udp.4 uk.4 unix.4 yp.4
MLINKS+=fd.4 stderr.4 fd.4 stdin.4 fd.4 stdout.4
MLINKS+=netintro.4 networking.4
# XXX NOT IMPORTED: man4.hp300 man4.sparc man4.tahoe man4.vax

179
share/man/man4/cd.4 Normal file
View File

@ -0,0 +1,179 @@
.Dd August 27, 1993
.Dt CD 4
.Os FreeBSD
.Sh NAME
.Nm cd
.Nd scsi cdrom driver
.Sh SYNOPSIS
.Nm device-driver cd
.Op Ar count
.Sh DESCRIPTION
The
.Xr cd
driver provides support for a
.Em scsi
cdrom. It allows the cdrom
to be divided up into a set of pseudo devices called
.Em partitions.
In an attempt to look like regular disks the
.Nm
driver synthesises a partition table, with one partition covering the entire
cdrom. A user might (for some amazing reason) add another partition to the
cdrom by using disklabel, but it will last only until the cdrom is unmounted.
A Partition can have both a
.Em raw
interface
and a
.Em Block mode
interface.
In general the interfaces are similar to those described by
.Xr wd 4
or
.Xr sd 4 .
.Pp
Where the
.Xr wd 4
device has a fairly low level interface to the system,
.Em SCSI
devices have a much higher level interface and talk to the system via
a
.Em SCSI Adapter
and a
.Em Scsi Adapter driver
e.g.
.Xr AHA1542 .
A scsi adapter must also be separatly configured into the system
before a scsi cdrom can be configured.
.Pp
As the scsi adapter is probed during boot, the
.Em SCSI
bus is scanned for devices. Any devices found which answer as 'Readonly'
type devices will be 'attached' to the
.Nm
driver. The first found will be attached as
.Em cd0
and the next,
.Em cd1
etc.
.Pp
The system utility
.Xr disklabel 1
may be used to read the synthesized
.Xr disklabel 5
structure, which will contain correct figures for the size of the cdrom
should that information be required.
.Pp
.Sh KERNEL CONFIGURATION
Any number of cdroms may be attached to the system regardless of system
configuration as all resources are dynamically allocated.
.Pp
.Sh IOCTLS
The following
.Xr ioctl 2
calls apply to scsi cdroms
in the header files
.Em sys/cdio.h.
and
.Em sys/disklabel.h
.Bl -tag -width CDIOCPLAYAUDIO____
.It Dv DIOCGDINFO
Read, from the kernel, the in-core copy of the disklabel for the
drive. This will be a ficticious disklabel it will contain information
read from the scsi inquiry commands, and should be the same as
the information printed at boot.
.It Dv DIOCSDINFO
Give the driver a new disklabel to use. The driver will NOT try write the new
disklabel to the disk. (ok?)
.It CDIOCPLAYTRACKS
Start Audio playback given a track address and length.
.It CDIOCPLAYBLOCKS
Start Audio playback given a block address and length.
.It CDIOCPLAYMSF
Start Audio playback given a 'Minutes/ seconds/ frames' address and length.
.It CDIOCREADSUBCHANNEL
Read information from the subchannel at the location specified.
.It CDIOREADTOCHEADER
Return summary information about the table of contents for the mounted cdrom.
.It CDIOREADTOCENTRYS
Return information from the table of contents entries mentionned.
.It CDIOCSETPATCH
Attach various audio channels to various output channels.
.It CDIOCGETVOL
Get information about the volume settings of the output channels.
.It CDIOCSETVOL
Change the volume settings of the output channels.
.It CDIOCSETMONO
Patch all out[put channels to all source channels.
.It CDIOCSETSTERIO
Patch left source channel to the left output channel and the right
source channel to the right output channel.
.It CDIOCSETMUTE
Mute output without changing the volume settings.
.It CDIOCSETLEFT
Attach both output channels to the left source channel.
.It CDIOCSETRIGHT
Attach both output channels to the right source channel.
.It CDIOCSETDEBUG
Turn on debugging for the appropriate device.
.It CDIOCCLRDEBUG
Turn off debugging for the appropriate device.
.It CDIOCPAUSE
Pause audio play, do not reset the location of the read-head.
.It CDIOCRESUME
Resume audio play, Start at the location of the pause.
.It CDIOCRESET
Reset the drive.
.It CDIOCSTART
Tell the drive to spin-up the cdrom.
.It CDIOCSTOP
Tell the drive to spin-down the cdrom.
.It CDIOCEJECT
Eject the cdrom.
.El
.Pp
In addition the general
.Xr scsi 4
ioctls may be used with the
.Nm
driver, if used against the fourth (raw/whole disk) partiton. (e.g. rcd0d)
.Sh NOTES
When a cdrom is changed in a drive controlled by the
.Nm
driver, then the act of changing the media will invalidate the
disklabel and information held within the kernel. To stop corruption,
All accesses to the device will be discarded until there are no more
open file descriptors referencing the device. During this period, all
new open attempts will be rejected. When No more open file descriptors
reference the device, the first next open will load a new set of
figures (including disklabel) for the drive.
The Audio code in the
.Nm
driver only support SCSI2 standard audio commands. As there are many cdrom
manufacturers who have not followed the standard well, there are many
cdroms for which audio will not work. Some work is planned to support
some of the more common 'broken' cdrom drives however this is not yet
under way.
.Sh FILES
.Bl -tag -width /dev/rcd[0-9][a-h] -compact
.It Pa /dev/cd[0-9][a-h]
block mode scsi disks
.It Pa /dev/rcd[0-9][a-h]
raw scsi disks
.El
.Sh DIAGNOSTICS
None.
.Sh SEE ALSO
.Xr disklabel 1
.Xr disklabel 5
.Xr wd 4
.Xr sd 4
.Sh HISTORY
This
.Nm
driver appeared in 386BSD 0.1.

80
share/man/man4/ch.4 Normal file
View File

@ -0,0 +1,80 @@
.Dd August 27, 1993
.Dt CH 4
.Os FreeBSD
.Sh NAME
.Nm ch
.Nd scsi media-changer (juke box) driver
.Sh SYNOPSIS
.Nm device-driver ch
.Op Ar count
.Sh DESCRIPTION
The
.Xr ch
driver provides support for a
.Em scsi
juke box. It allows many slots of media to be multiplexed between a number
of drives.
.Pp
A scsi adapter must also be separatly configured into the system
before a scsi changer can be configured.
.Pp
As the scsi adapter is probed during boot, the
.Em SCSI
bus is scanned for devices. Any devices found which answer as 'Changer'
type devices will be 'attached' to the
.Nm
driver. The first found will be attached as
.Em ch0
and the next,
.Em ch1
etc.
.Pp
.Sh KERNEL CONFIGURATION
In configuring, if an optional
.Ar count
is given in the specification, that number of scsi media changers
are configured; Most storage for them is allocated only when found
so a large number of configured devices is cheap. (once the first
has included the driver).
.Pp
.Sh IOCTLS
The following
.Xr ioctl 2
call applies to the changer. It is defined in
in the header file
.Em sys/chio.h.
.Bl -tag -width DIOCSDINFO
CHIOOP
This appears to be a 'do-everything' call.
.El
.Sh NOTES
The
.Nm
driver was added to the system by
Stefan Grefen (grefen@goofy.zdv.uni-mainz.de)
who apparently had such a device
however It appears as though no-one I have heard of has ever used this
driver. If you use it please let me know so I can test changes.
Stefan appears to have suffered net.death (or at least net.disconnection).
I (julian) have never used this device. If you do please re-write this
man page and send it to me..
.Sh FILES
.Bl -tag -width /dev/ch[0-9] -compact
.It Pa /dev/ch[0-9]
device entries
.El
.Sh DIAGNOSTICS
None.
.Sh SEE ALSO
.Xr sd 4
.Xr st 4
.Xr cd 4
.Sh HISTORY
The
.Nm
driver appeared in 386BSD 0.1

216
share/man/man4/da.4 Normal file
View File

@ -0,0 +1,216 @@
.Dd August 27, 1993
.Dt SD 4
.Os FreeBSD
.Sh NAME
.Nm sd
.Nd scsi disk driver
.Sh SYNOPSIS
.Nm device-driver sd
.Op Ar count
.Sh DESCRIPTION
The
.Xr sd
driver provides support for a
.Em scsi
disk. It allows the disk
to be divided up into a set of pseudo devices called
.Em partitions.
A Partition can have both a
.Em raw
interface
and a
.Em Block mode
interface.
In general the interfaces are similar to those described by
.Xr wd 4
or
.Xr dk 4 .
.Pp
Where the
.Xr wd 4
device has a fairly low level interface to the system,
.Em SCSI
devices have a much higher level interface and talk to the system via
a
.Em SCSI Adapter
and a
.Em Scsi Adapter driver
e.g.
.Xr AHA1542 .
A scsi adapter must also be separatly configured into the system
before a scsi disk can be configured.
.Pp
As the scsi adapter is probed during boot, the
.Em SCSI
bus is scanned for devices. Any devices found which answer as 'Direct'
type devices will be 'attached' to the
.Nm
driver. The first found will be attached as
.Em sd0
and the next,
.Em sd1
etc.
.Pp
.Sh PARTITIONING
The
.Nm
driver allows the disk to have two levels of partitioning.
One which allows it to have
partitions for different Operating systems, (one of which is BSD unix),
(see also for the 386 port,
.Xr fdisk 1
), and within a BSD partition, further partitions which are individually
addressable as separate entries in the
.Em /dev
directory. The second level of partitioning is controlled by the program
.Xr disklabel 1
and is common in format across most BSD operating systems. In most of
the original BSD ports, what is the
BSD part here, is the entire disk, and the outer layer of partitionning
does not exist.
.Nm
will also run in this manner if
.Xr disklabel 1
is run with a blank disk, without first partitioning it
with
.Xr fdisk 1
(or similar).
.Pp
Apologies for the two conflicting usages of the word Partition, but
it's a historical artifact, and the meaning must be judged from context
in each case. The next paragraph will discuss partitions exclusively
in the context of WITHIN a BSD partition on the disk.
.Pp
The first few blocks of the BSD section (maybe all) of the disk contain
some boot code, and a structure, known as the
.Xr disklabel 5
which describes the disk's characteristics and partitioning for BSD.
It is set up by the
.Xr disklabel 1
program, and read in by the kernel when the device is first initialised
during boot. It describes how the drive is further divided. The
.Xr disklabel 5
structure contains room for 8 (usually) partitions. Usually these
partitions are calculated so as to fall evenly on cylinder boundaries,
however on a
.Em SCSI
disk this is sometimes not possible. The reason for doing this is historically
to get better performance, however modern
.Em SCSI
disks often have a variable format, so that it is hard to know at any point
in the disk, where the cylinder or track boundaries are. Added to this, the
fact that
.Em SCSI
disk blocks are addressed soley by their 'block number' and not by
any geometry, leads to the common occurance on
.Em SCSI
disks, of laying out partitions on arbitrary boundaries. Because
modern disks often have large track caches, this often leads to only small
degadations of performance, and is in fact sometimes unavoidable. The
boot messages will suggest a geometry similar in heads and cylinders
to the real geometry, but the disklable need not agree with this for the
system to be able to successfully work with the disk.
.Pp
During booting
with an uninitialised disk, the
.Nm
driver will initialise the 'in-core' copy of the disklabel to the suggested
values, however they are not written to the disk.
.Pp
The fourth partition is special. No matter what the disklabel
says, the fourth partition (partition d) reflectls the entire disk, including
those areas OUTSIDE the BSD partitions. At some times it is suggested that
the c partition might be used to represent the entire BSD partition, so these
two partitions should be avoided when laying out filesystems. The fourth
partition must be used for general
.Xr scsi 4
ioctls.
.Pp
While partitions are only theoretically valid within the BSD partition, they
are specified in terms of absolute block numbers, so it is possible to
specify a partition that lies outside of the BSD partition. This is useful
if one wants to have a /dev entry that points to a partition belonging
to another OS (e.g. DOS).
.Pp
.Sh KERNEL CONFIGURATION
In configuring, if an optional
.Ar count
is given in
the specification, that number of scsi disks are configured;
Most storage for them is allocated only when found so a large number
of configured devices is cheap. (once the first has included the driver).
.Pp
.Sh IOCTLS
The following
.Xr ioctl 2
calls apply to scsi disks as well as to other disks. They are defined
in the header file
.Em disklabel.h.
.Bl -tag -width DIOCSDINFO
.It Dv DIOCSBAD
Usually used to set up a bad-block mapping system on the disk. Scsi
drive incorporate their own bad-block mapping so this is not implimented,
however it MAY be implimented in the future as a 'kludged' interface to the
scsi bad-block mapping.
.It Dv DIOCGDINFO
Read, from the kernel, the in-core copy of the disklabel for the
drive. This may be a ficticious disklabel if the drive has never
been initialised, in which case it will contain information read
from the scsi inquiry commands, and should be the same as
the information printed at boot.
.It Dv DIOCSDINFO
Give the driver a new disklabel to use. The driver will NOT try write the new
disklabel to the disk.
.It Dv DIOCWLABEL
Enable or Disable the driver's software
write protect of the disklabel on the disk.
.It Dv DIOCWDINFO
Give the driver a new disklabel to use. The driver WILL try write the new
disklabel to the disk.
.El
.Pp
In addition, the
.Xr scsi 4
general ioctls may be used with the
.Nm
driver, but only against the fourth (whole disk) partition.
.Sh NOTES
If a removable device is attached to the
.Nm
driver, then the act of changing the media will invalidate the
disklabel and information held within the kernel. To stop corruption,
All accesses to the device will be discarded until there are no more
open file descriptors referencing the device. During this period, all
new open attempts will be rejected. When No more open file descriptors
reference the device, the first next open will load a new set of
figures (including disklabel) for the drive.
An ioctl to map out a bad block is planned. (the code is already present
in the driver).
.Sh FILES
.Bl -tag -width /dev/rsd[0-9][a-h] -compact
.It Pa /dev/sd[0-9][a-h]
block mode scsi disks
.It Pa /dev/rsd[0-9][a-h]
raw scsi disks
.El
.Sh DIAGNOSTICS
None.
.Sh SEE ALSO
.Xr disklabel 1
.Xr disklabel 5
.Xr fdisk 1
.Xr wd 4
.Xr dk 4
(on other systems)
.Sh HISTORY
The
.Nm
driver appeared in MACH 2.5 .

402
share/man/man4/ddb.4 Normal file
View File

@ -0,0 +1,402 @@
.\"
.\" Mach Operating System
.\" Copyright (c) 1991,1990 Carnegie Mellon University
.\" All Rights Reserved.
.\"
.\" Permission to use, copy, modify and distribute this software and its
.\" documentation is hereby granted, provided that both the copyright
.\" notice and this permission notice appear in all copies of the
.\" software, derivative works or modified versions, and any portions
.\" thereof, and that both notices appear in supporting documentation.
.\"
.\" CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
.\" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
.\" ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
.\"
.\" Carnegie Mellon requests users of this software to return to
.\"
.\" Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
.\" School of Computer Science
.\" Carnegie Mellon University
.\" Pittsburgh PA 15213-3890
.\"
.\" any improvements or extensions that they make and grant Carnegie Mellon
.\" the rights to redistribute these changes.
.\"
.\" changed a \# to #, since groff choked on it.
.\"
.\" HISTORY
.\" ddb.4,v
.\" Revision 1.1 1993/07/15 18:41:02 brezak
.\" Man page for DDB
.\"
.\" Revision 2.6 92/04/08 08:52:57 rpd
.\" Changes from OSF.
.\" [92/01/17 14:19:22 jsb]
.\" Changes for OSF debugger modifications.
.\" [91/12/12 tak]
.\"
.\" Revision 2.5 91/06/25 13:50:22 rpd
.\" Added some watchpoint explanation.
.\" [91/06/25 rpd]
.\"
.\" Revision 2.4 91/06/17 15:47:31 jsb
.\" Added documentation for continue/c, match, search, and watchpoints.
.\" I've not actually explained what a watchpoint is; maybe Rich can
.\" do that (hint, hint).
.\" [91/06/17 10:58:08 jsb]
.\"
.\" Revision 2.3 91/05/14 17:04:23 mrt
.\" Correcting copyright
.\"
.\" Revision 2.2 91/02/14 14:10:06 mrt
.\" Changed to new Mach copyright
.\" [91/02/12 18:10:12 mrt]
.\"
.\" Revision 2.2 90/08/30 14:23:15 dbg
.\" Created.
.\" [90/08/30 dbg]
.\"
.TH ddb 4
.SH NAME
ddb \- kernel debugger
.de XX
.sp
.ti -4n
\\$1
.br
.sp
..
.de XS
.nr )R +\\$1
..
.de XE
.nr )R -\\$1
..
.SH DESCRIPTION
.br
.sp
The kernel debugger has most of the features of the old kdb,
but with a more rational (gdb-like) syntax.
.sp
The current location is called 'dot'. The 'dot' is displayed with
a hexadecimal format at a prompt.
Examine and write commands update 'dot' to the address of the last line
examined or the last location modified, and set 'next' to the address of
the next location to be examined or changed.
Other commands don't change 'dot', and set 'next' to be the same as 'dot'.
.sp
The general command syntax is:
.sp
.ti +4n
\fIcommand[/modifier] address [,count]\fR
.sp
A blank line repeats from the address 'next' with count 1 and no modifiers.
Specifying 'address' sets 'dot' to the address.
Omitting 'address' uses 'dot'.
A missing 'count' is taken to be 1 for printing commands or infinity
for stack traces.
.sp
"\fBddb\fR" has a feature like a command "\fBmore\fR"
for the output. If an output line exceeds the number set in the $lines
variable, it displays "\fI--db_more--\fR"
and waits for a response.
The valid responses for it are:
.XS 4n
.IP \fI\<space>\fR 10n
one more page
.IP \fI\<return>\fR 10n
one more line
.IP \fB\q\fR 10n
abort the current command, and return to the command input mode.
.LP
.sp
.XE 4n
.LP
.B COMMANDS
.sp
.XS 4n
.LP
.XX "\fBexamine(x) \fI[/<modifier>] <addr>[,<count>]\fR"
Display the addressed locations according to the formats in the modifier.
Multiple modifier formats display multiple locations.
If no format is specified, the last formats specified for this command
is used.
.br
The format characters are
.sp
.LP
.XS 2n
.IP b 5n
look at by bytes(8 bits)
.IP h 5n
look at by half words(16 bits)
.IP l 5n
look at by long words(32 bits)
.IP a 5n
print the location being displayed
.IP A 5n
print the location with a line number if possible
.IP x 5n
display in unsigned hex
.IP z 5n
display in signed hex
.IP o 5n
display in unsigned octal
.IP d 5n
display in signed decimal
.IP u 5n
display in unsigned decimal
.IP r 5n
display in current radix, signed
.IP c 5n
display low 8 bits as a character.
Non-printing characters are displayed as an octal escape code (e.g. '\\000').
.IP s 5n
display the null-terminated string at the location.
Non-printing characters are displayed as octal escapes.
.IP m 5n
display in unsigned hex with character dump at the end of each line.
The location is also displayed in hex at the beginning of each line.
.IP i 5n
display as an instruction
.IP I 5n
display as an instruction with possible alternate formats depending on the
machine:
.XE 2n
.LP
.XS 5n
.LP
.IP vax 6n
don't assume that each external label is a procedure entry mask
.IP i386 6n
don't round to the next long word boundary
.IP mips 6n
print register contents
.LP
.XE 5n
.LP
.XX xf
Examine forward.
It executes an examine command with the last specified parameters to it
except that the next address displayed by it is used as the start address.
.XX xb
Examine backward.
It executes an examine command with the last specified parameters to it
except that the last start address subtracted by the size displayed by it
is used as the start address.
.XX "\fBprint[/axzodurc] \fI<addr1> [ <addr2> ... ]\fR"
Print 'addr's according to the modifier character.
Valid formats are: a x z o d u r c.
If no modifier is specified, the last one specified to it is used. 'addr'
can be a string, and it is printed as it is. For example,
.br
.sp
.ti +4n
print/x "eax = " $eax "\\necx = " $ecx "\\n"
.br
.sp
will print like
.sp
.in +4n
eax = xxxxxx
.br
ecx = yyyyyy
.in -4n
.sp
.br
.XX "\fBwrite[/bhl] \fI<addr> <expr1> [ <expr2> ... ]\fR"
Write the expressions at succeeding locations.
The write unit size can be specified in the modifier with a letter
b (byte), h (half word) or l(long word) respectively. If omitted,
long word is assumed.
.br
Warning: since there is no delimiter between expressions, strange
things may happen.
It's best to enclose each expression in parentheses.
.XX "\fBset \fI$<variable> [=] <expr>\fR"
Set the named variable or register with the value of 'expr'.
Valid variable names are described below.
.XX "\fBbreak[/u] \fI<addr>[,<count>]\fR"
Set a break point at 'addr'.
If count is supplied, continues (count-1) times before stopping at the
break point. If the break point is set, a break point number is
printed with '#'. This number can be used in deleting the break point
or adding conditions to it.
.LP
.XS 2n
.IP u 5n
Set a break point in user space address. Without 'u' option,
the address is considered in the kernel space, and wrong space address
is rejected with an error message.
This option can be used only if it is supported by machine dependent
routines.
.LP
.XE 2n
Warning: if a user text is shadowed by a normal user space debugger,
user space break points may not work correctly. Setting a break
point at the low-level code paths may also cause strange behavior.
.XX "\fBdelete \fI<addr>|#<number>\fR"
Delete the break point. The target break point can be specified by a
break point number with '#', or by 'addr' like specified in 'break'
command.
.XX "\fBstep[/p] \fI[,<count>]\fR"
Single step 'count' times.
If 'p' option is specified, print each instruction at each step.
Otherwise, only print the last instruction.
.br
.sp
Warning: depending on machine type, it may not be possible to
single-step through some low-level code paths or user space code.
On machines with software-emulated single-stepping (e.g., pmax),
stepping through code executed by interrupt handlers will probably
do the wrong thing.
.XX "\fBcontinue[/c]\fR"
Continue execution until a breakpoint or watchpoint.
If /c, count instructions while executing.
Some machines (e.g., pmax) also count loads and stores.
.br
.sp
Warning: when counting, the debugger is really silently single-stepping.
This means that single-stepping on low-level code may cause strange
behavior.
.XX "\fBuntil[/p]\fR"
Stop at the next call or return instruction.
If 'p' option is specified, print the call nesting depth and the
cumulative instruction count at each call or return. Otherwise,
only print when the matching return is hit.
.XX "\fBnext[/p]\fR"
Stop at the matching return instruction.
If 'p' option is specified, print the call nesting depth and the
cumulative instruction count at each call or return. Otherwise,
only print when the matching return is hit.
.XX "\fBmatch[/p]\fR"
A synonym for 'next'.
.XX "\fBtrace[/u] \fI[ <frame_addr> ][,<count>]\fR"
Stack trace. 'u' option traces user space; if omitted, only traces
kernel space. 'count' is the number of frames to be traced.
If the 'count' is omitted, all frames are printed.
.br
.sp
Warning: User space stack trace is valid
only if the machine dependent code supports it.
.XX "\fBsearch[/bhl] \fI<addr> <value> [<mask>] [,<count>]\fR"
Search memory for a value. This command might fail in interesting
ways if it doesn't find the searched-for value. This is because
ddb doesn't always recover from touching bad memory. The optional
count argument limits the search.
.XX "\fBshow all procs[/m]\fR"
Display all process information.
This version of "\fBddb\fR"
prints more information than previous one.
It shows process information like "ps".
The process information may not be shown if it is not
supported in the machine, or the bottom of the stack of the
target process is not in the main memory at that time.
The 'm' options will alter the 'ps' display to show vm_map
addresses for the process and not show other info.
.br
.XX "\fBps[/m]\fR"
A synonym for 'show all procs'.
.XX "\fBshow registers\fR"
Display the register set.
If 'u' option is specified, it displays user registers instead of
kernel or currently saved one.
.br
.sp
Warning: The support of 'u' option depends on the machine. If
not supported, incorrect information will be displayed.
.XX "\fBshow map[/f] \fI<addr>\fR"
Prints the vm_map at 'addr'. If the 'f' option is specified the
complete map is printed.
.XX "\fBshow object[/f] \fI<addr>\fR"
Prints the vm_object at 'addr'. If the 'f' option is specified the
complete object is printed.
.XX "\fBshow watches\fR"
Displays all watchpoints.
.XX "\fBwatch \fI<addr>,<size>\fR"
Set a watchpoint for a region. Execution stops
when an attempt to modify the region occurs.
The 'size' argument defaults to 4.
.br
If you specify a wrong space address, the request is rejected
with an error message.
.br
.sp
Warning: Attempts to watch wired kernel memory
may cause unrecoverable error in some systems such as i386.
Watchpoints on user addresses work best.
.br
.LP
.XE 4n
.LP
.sp
.B VARIABLES
.sp
The debugger accesses registers and variables as
.I $<name>.
Register names are as in the "\fBshow registers\fR"
command.
Some variables are suffixed with numbers, and may have some modifier
following a colon immediately after the variable name.
For example, register variables can have 'u' modifier to indicate
user register (e.g. $eax:u).
.br
.sp
Built-in variables currently supported are:
.sp
.IP radix 12n
Input and output radix
.IP maxoff 12n
Addresses are printed as 'symbol'+offset unless offset is greater than maxoff.
.IP maxwidth 12n
The width of the displayed line.
.IP lines 12n
The number of lines. It is used by "more" feature.
.IP tabstops 12n
Tab stop width.
.IP work\fIxx\fR
Work variable.
.I 'xx'
can be 0 to 31.
.LP
.LP
.sp
.B EXPRESSIONS
.sp
Almost all expression operators in C are supported except '~', '^',
and unary '&'.
Special rules in "\fBddb\fR"
are:
.br
.IP "<identifier>" 15n
name of a symbol. It is translated to the address(or value) of it. '.'
and ':' can be used in the identifier. If supported by an object format
dependent routine,
[\fI<file_name>\fR:]\fI<func>\fR[:\fI<line_number>\fR]
[\fI<file_name>\fR:]\fI<variable>\fR, and
\fI<file_name>\fR[:\fI<line_number>\fR]
can be accepted as a symbol.
The symbol may be prefixed with '\fI<symbol_table_name>\fR::'
like 'emulator::mach_msg_trap' to specify other than kernel symbols.
.IP "<number>" 15n
radix is determined by the first two letters:
0x: hex, 0o: octal, 0t: decimal, otherwise, follow current radix.
.IP \. 15n
\'dot'
.IP \+ 15n
\'next'
.IP \.. 15n
address of the start of the last line examined.
Unlike 'dot' or 'next', this is only changed by "examine" or
"write" command.
.IP \' 15n
last address explicitly specified.
.IP "$<variable>" 15n
register name or variable. It is translated to the value of it.
It may be followed by a ':' and modifiers as described above.
.IP # 15n
a binary operator which rounds up the left hand side to the next
multiple of right hand side.
.IP "*<expr>" 15n
indirection. It may be followed by a ':' and modifiers as described above.

308
share/man/man4/sa.4 Normal file
View File

@ -0,0 +1,308 @@
.Dd August 27, 1993
.Dt ST 4
.Os FreeBSD
.Sh NAME
.Nm st
.Nd scsi tape driver
.Sh SYNOPSIS
.Nm device-driver st
.Op Ar count
.Sh DESCRIPTION
The
.Xr st
driver provides support for a
.Em scsi
tape. It allows the tape
to be run in upto four different modes depending on minor numbers
and supports several different 'sub modes'.
The device can have both a
.Em raw
interface
and a
.Em Block mode
interface however only the raw interface is usually used (or recommended).
In general the interfaces are similar to those described by
.Xr wt 4
or
.Xr mt 4 .
.Pp
Where the
.Xr wt 4
device has a fairly low level interface to the system,
.Em SCSI
devices have a much higher level interface and talk to the system via
a
.Em SCSI Adapter
and a
.Em Scsi Adapter driver
e.g.
.Xr AHA1542 .
A scsi adapter must also be separatly configured into the system
before a scsi tape can be configured.
.Pp
As the scsi adapter is probed during boot, the
.Em SCSI
bus is scanned for devices. Any devices found which answer as 'Sequential'
type devices will be attached to the
.Nm
driver. The first found will be attached as
.Em st0
and the next,
.Em st1
etc.
.Pp
.Sh MOUNT SESSIONS
The
.Nm
driver is based around the concept of a
.Em Mount Session
, which is defined as the period between the time that a tape is mounted,
and the time when it is unmounted. Any parameters set during a
.Em Mount Session
remain in effect for the remainder of the session or until replaced. The
Tape can be unmounted, bringing the session to a close in several ways.
These include:
.Bl -tag -width ABOUT_THIS_BIG_BUT_REALLY_BIGGER
.It Pa closing an 'unmount device'
This is referred to as sub-mode 00 (see below). An example is /dev/rst0.
.It Pa an MTOFFL ioctl
Reachable throught the 'offline' command of
.Xr st 1
.It Pa Openning another mode.
Openning a different mode will implicitly unmount the tape, thereby closing
off the mode that was previously mounted. All parameters will be loaded
freshly from the new mode. (see below for more on 'modes').
.El
.Pp
Parameters that are required to last across the unmounting of a tape,
should be set on the control device. This is submode 3 (see below) and is
reached through a file with a name of the form /dev/st{y}ctl.{x}, where
{y} is the drive number and {x} is the mode number.
.Pp
.Sh MODES AND SUB MODES
There are four Operation modes. These are controlled by bits 2
and 3 of the minor number and are designed to allow people to easily
read and write different formats of tape on devices that allow
multiple formats. The parameters for each mode can be set individually
by hand with the
.Xr st 1
variant of the
.Xr mt 1
command. When a device corresponding to a particular mode is first mounted,
The operating parameters for that
.Em Mount Session
Are copied from that mode. Further changes to the parameters during the
session will change those in effect for the session but not those set
in the Operating Mode. To change the parameters for an Operating Mode,
One must either assign the parameters to the control device, or compile
them into the 'Rogues Gallery' table within the driver.
.Pp
In addition to the four Operation Modes mentionned above,
bits 0 and 1 of the minor number are interpretted as being 'sub-modes'.
The following sub-modes are supported
.Bl -tag -width ABOUT_THIS_BIG
.It Pa 00
A close will rewind the device. If the tape has been
written, then a Filemark will be written before the rewind is requested.
The device is UNMOUNTED.
.It Pa 01
A close will leave the tape MOUNTED.
If the tape was written to a filemark will be written.
No other head positioning takes place.
Any further reads or writes will occur directly after the
last read, or the written filemark.
.It Pa 10
A close will rewind the device. If the tape has been
written, then a Filemark will be written before the rewind is requested.
On completion of the rewind an UNLOAD command will be issued.
The device is UNMOUNTED.
.It Pa 11
This is a special mode.
It is known as the
.Em CONTROL DEVICE
for the mode. Parameters set for the mode while in this sub
mode will be remembered from one mount to the next. This allows the
system administrator to set different characteristics (e.g. density,
blocksize, (and eventually compression)) on each mode, and have the
different modes keep those parameters independent of any parameter
changes a user may invoke during a single mount session. At the
completion of the user's mount session, drive parameters will revert
to those set by the administrator. IO operations cannot be performed
on this device/submode. General
.Xr scsi 4
ioctls
.Em MUST
be performed against the control device.
.El
.Sh BLOCKING MODES
Scsi Tapes may run in either 'variable' or 'fixed block' modes.
Most QIC type devices run in Fixed block mode, where most 'reel to reel' tapes and
many new cartridge formats, allow variable blocksize. The difference between
the two is as follows:
.Bl -tag -width variable-blocksize
.It Pa Variable Blocksize
Each write made to the device results in a single logical record
written to the tape. You can never read or write PART of a record
from tape, (though you may request a larger block and read a smaller
record). You cannot read multiple blocks either. Data from a single
write is therefore read by a single read. The block size used may
be any value supported by the device, the scsi adapter and the
system. (often variable between 1 byte and 64k (sometimes more)).
.Pp
When reading a variable record/block from the tape, the head is
logically considered to be immediately after the last item read,
and before the next item after that. If the next item is a Filemark,
but you never read it because you have all the data, then the next
process to read will immediately read the filemark and return EOF.
(assuming you were in non-rewind mode).
.It Pa fixed Blocksize
Data written by the user is passed to the tape as a succession of
fixed size blocks. It may be contiguouse in ram and read in a single
DMA pass, however it is considered to be a series of independent
blocks. You may never write an amount of data that is not an exact
multiple of the blocksize. You may read and write the same data
as a different set of records, In other words, blocks that were
written together may be read separatly, and visa versa.
.Pp
If you ask for more blocks than there are left in the file, then
the drive will encounter the filemark. Because there is some data
to return to you (unless there were no records before the filemark)
the driver will return the data to you (less than you requested),
but hide from you the discovery of the Filemark. The NEXT read
will be returned immediately with an EOF. If you never Make the next
read, but close the device, the next process to read will immediately
read the filemark and return EOF. (assuming you were in non-rewind
mode).
.El
.Sh FILEMARK HANDLING
The handling of filemarks on write is pretty much automatic. If you
have written to the tape, and not done a read since, then a filemark will
be written to the tape when you close the device. If a rewind is requested
after a write, then the driver assumes that you have written the last file
on the tape and ensures that there are two filemarks written to the tape.
It takes into account any filemarks already written (whether by close
or by explicit ioctl). The exception to this is that there seems to be
a standard (which we follow, but don't understand why) that certain
types of tape do not actually write two filemarks to tape,
but when read, report a 'phantom' filemark when the last file is read.
These devices include the QIC family of devices. It might be that this
set of devices is the same set as that of fixed block devices. This has not
been detirmined yet, and they are treated as separate behaviors by the
driver at this time.
.Pp
.SH KERNEL CONFIGURATION
In configuring, if an optional
.Ar count
is given in
the specification, that number of scsi tapes are configured;
Most storage for them is allocated only when found so a large number
of configured devices is cheap. (once the first has included the driver).
.Pp
Because different tape drives behave differently, there is a mechanism
within the source to st, to quickly and conveniently recognise and deal
with brands and models of drive that have special requirements.
.Pp
There is a table (called the rogues gallery) in which the indentification
strings of known errant drives can be stored. Along with each is
a set of flags that allows the setting of densities and blocksizes for each
of the 4 modes, along with a set of 'QUIRK' flags that can be
used to enable or disable sections of code within the driver if a particular
drive is recognised.
.Pp
.Sh IOCTLS
The following
.Xr ioctl 2
calls apply to scsi tapes. Some also apply to other tapes. They are defined
in the header file
.Em /sys/mtio.h.
.Bl -tag -width MTIOCEEOT
.It Pa MTIOCGET
Get the mt control structure filled out by the driver, showing
all the present settings.
.It Pa MTIOCTOP
Perform one of the following operations. These operations all have a
single argument, which is either a boolean, or a signed integer, depending
on the operation.
.Bl -tag -width MTSELDNSTY
.It Pa MTWEOF
Write N end of file marks at the present head position.
.It Pa MTFSF
Skip over N Filemarks. Leave the head on the EOM side of the last skipped
Filemark.
.It Pa MTBSF
Skip BACKWARDS over N Filemarks. Leave the head on the BOM (beginning of media)
side of the last skipped Filemark.
.It Pa MTFSR
Skip forwards over N records.
.It Pa MTBSR
Skip backwards over N records.
.It Pa MTREW
Rewind the device to the beginning of the media.
.It Pa MTOFFL
Rewind the media (and if possible eject). Even if the device cannot
eject the media it will often no longer respond to normal requests.
.It Pa MTNOP
No Op, set status only..
.It Pa MTCACHE
Enable controller Buffering.
.It Pa MTNOCACHE
Disable controller Buffering.
.It Pa MTSETBSIZ
Set the blocksize to use for the device/mode. If the device is capable of
variable blocksize operation, and the blocksize is set to 0, then the drive
will be driven in variable mode. This parameter is in effect for the present
mount session only, unless set on the control device.
.It Pa MTSETDNSTY
Set the Density value (see
.Xr st 1
) to use when running in the mode openned (minor bits 2,3).
This parameter is in effect for the present
mount session only, unless set on the control device.
.El
.It Pa MTIOCIEOT
?Set END of TAPE processing... not yet supported.
.It Pa MTIOCEEOT
?Set END of TAPE processing... not yet supported.
.El
.Pp
In addition, The
.Nm
driver will allow the use of any of the general
.Xr scsi 4
ioctls, as long as the control device is used.
.Sh FILES
.Bl -tag -width /dev/[n][e]rst[0-9].[0-3] -compact
.It Pa /dev/[n][e]rst[0-9].[0-3]
general form:
.It Pa /dev/rst0.0
Mode 0, rewind on close
.It Pa /dev/nrst0.2
Mode 2, No rewind on close
.It Pa /dev/erst0.3
Mode 3, Eject on close (if capable)
.It Pa /dev/rst0
Another name for rst0.0
.It Pa /dev/nrst0
Another name for nrst0.0
.It Pa /dev/st0ctl.0
Parameters set to this device become the default parameters for [en]rst0.0
.It Pa /dev/st0ctl.1
Parameters set to this device become the default parameters for [en]rst0.1
.It Pa /dev/st0ctl.2
Parameters set to this device become the default parameters for [en]rst0.2
.It Pa /dev/st0ctl.3
Parameters set to this device become the default parameters for [en]rst0.3
.El
.Sh DIAGNOSTICS
None.
.Sh SEE ALSO
.Xr mt 1
.Xr st 1
.Sh HISTORY
This
.Nm
driver appeared in MACH 2.5 .

117
share/man/man4/scsi.4 Normal file
View File

@ -0,0 +1,117 @@
.Dd August 27, 1993
.Dt SD 4
.Os FreeBSD
.Sh NAME
.Nm scsi
.Nd scsi system
.Sh SYNOPSIS
.Nm device-driver scbus
.Sh DESCRIPTION
The
.Em scsi
system provides a uniform and modular system for the implimentation
of drivers to control various scsi devices, and to utilise different
scsi adapters through adapter drivers. When the system probes the
.Em SCSI
busses, it attaches any devices it finds to the appropriate
drivers. If no driver seems appropriate, then at attaches the device to the
uk (unknown) driver (if configured), so that user level scsi ioctls may
still be performed against the device.
.Sh KERNEL CONFIGURATION
Continuously changing. check your nearest bsd mailing list.
The option SCSIDEBUG enables the debug ioctl.
.Sh IOCTLS
There are a number of ioctls that will (when the next stage is complete)
work on any
.Em SCSI
device. They are defined in
.Em sys/scsiio.h
and can be applied against any scsi device that allows both read and write,
though for devices such as tape, it must be applied against the control
device. See the manual page for each device type for more information about
how generic scsi ioctls may be applied to a specific device.
.Bl -tag -width DIOCSDINFO____
.It Dv SCIOCRESET*
reset a device.
.It Dv SCIOCDEBUG
Turn on debugging.. All scsi operations originating from this device's driver
will be traced to the console, along with other information. Debugging is
controlled by four bits, described in the header file. If no debugging is
configured into the kernel, debugging will have no effect.
.Em SCSI
debugging is controlled by the configuration option
.Em SCSIDEBUG.
.It Dv SCIOCCOMMAND
Take a scsi command and data from a user process and apply them to the scsi
device. Return all status information and return data to the process. The
ioctl will return a successful status even if the device rejected the
command. As all status is returned to the user, it is up to the user
process to examine this information to decide the success of the command.
.It Dv SCIOCREPROBE
Ask the system to probe the scsi busses for any new devices. If it finds
any, they will be attached to the appropriate drivers. The search can be
narrowed to a specific bus, target or lun. The new device may or may not
be related to the device on which the ioctl was performed.
.It Dv SCIOCIDENTIFY
Ask the driver what it's bus, target and lun are.
.It Dv SCIOCDECONFIG
Ask the device to dissappear. This may not happen if the device is in use.
.El
.Sh NOTES
the generic scsi part of the system is still being mapped out.
Watch this space for changes.
.Pp
A device by the name of su (scsi_user)
(e.g su0-0-0) will map bus, target and lun to minor numbers. I have not
yet decided yet whether this device will be able to open a device that is
already controlled by an explicit driver.
.Sh ADAPTERS
The system allows common device drivers to work through many different
types of adapters. The adapters take requests from the upper layers and do
all IO between the
.Em SCSI
bus and the system. The maximum size of a transfer is governed by the
adapter. Most adapters can transfer 64KB in a single operation, however
many can transfer larger amounts.
.Sh TARGET MODE
Some adapters support
.Em Target mode
in which the system is capable of operating as a device, responding to
operations initioated by another system. Target mode will be supported for
some adapters, but is not yet complete for this version of the scsi system.
.Sh FILES
see other scsi device entries.
.Sh DIAGNOSTICS
When the kernel is compiled with option SCSIDEBUG, the SCIOCDEBUG ioctl
can be used to enable various amounts of tracing information on any
specific device. Devices not being traced will not produce trace information.
The four bits that make up the debug level, each control certain types
of debugging information.
.Bl -tag -width THIS_WIDE_PLEASE
.It Dv Bit 0
Bit 0 shows all scsi bus operations including scsi commands,
error information and the first 48 bytes of any data transferred.
.It Dv Bit 1
Bit 1 shows routines called.
.It Dv Bit 2
Bit 2 shows information about what branches are taken and often some
of the return values of functions.
.It Dv Bit 3
Bit 3 shows more detailed information including DMA scatter-gather logs.
.El
.Sh SEE ALSO
.Xr ch 4
.Xr cd 4
.Xr sd 4
.Xr st 4
.Xr uk 4
.Xr su 4
.Xr aha 4
.Xr ahb 4
.Xr bt 4
.Xr uha 4
.Sh HISTORY
This
.Nm
system appeared in MACH 2.5 at TRW.

216
share/man/man4/sd.4 Normal file
View File

@ -0,0 +1,216 @@
.Dd August 27, 1993
.Dt SD 4
.Os FreeBSD
.Sh NAME
.Nm sd
.Nd scsi disk driver
.Sh SYNOPSIS
.Nm device-driver sd
.Op Ar count
.Sh DESCRIPTION
The
.Xr sd
driver provides support for a
.Em scsi
disk. It allows the disk
to be divided up into a set of pseudo devices called
.Em partitions.
A Partition can have both a
.Em raw
interface
and a
.Em Block mode
interface.
In general the interfaces are similar to those described by
.Xr wd 4
or
.Xr dk 4 .
.Pp
Where the
.Xr wd 4
device has a fairly low level interface to the system,
.Em SCSI
devices have a much higher level interface and talk to the system via
a
.Em SCSI Adapter
and a
.Em Scsi Adapter driver
e.g.
.Xr AHA1542 .
A scsi adapter must also be separatly configured into the system
before a scsi disk can be configured.
.Pp
As the scsi adapter is probed during boot, the
.Em SCSI
bus is scanned for devices. Any devices found which answer as 'Direct'
type devices will be 'attached' to the
.Nm
driver. The first found will be attached as
.Em sd0
and the next,
.Em sd1
etc.
.Pp
.Sh PARTITIONING
The
.Nm
driver allows the disk to have two levels of partitioning.
One which allows it to have
partitions for different Operating systems, (one of which is BSD unix),
(see also for the 386 port,
.Xr fdisk 1
), and within a BSD partition, further partitions which are individually
addressable as separate entries in the
.Em /dev
directory. The second level of partitioning is controlled by the program
.Xr disklabel 1
and is common in format across most BSD operating systems. In most of
the original BSD ports, what is the
BSD part here, is the entire disk, and the outer layer of partitionning
does not exist.
.Nm
will also run in this manner if
.Xr disklabel 1
is run with a blank disk, without first partitioning it
with
.Xr fdisk 1
(or similar).
.Pp
Apologies for the two conflicting usages of the word Partition, but
it's a historical artifact, and the meaning must be judged from context
in each case. The next paragraph will discuss partitions exclusively
in the context of WITHIN a BSD partition on the disk.
.Pp
The first few blocks of the BSD section (maybe all) of the disk contain
some boot code, and a structure, known as the
.Xr disklabel 5
which describes the disk's characteristics and partitioning for BSD.
It is set up by the
.Xr disklabel 1
program, and read in by the kernel when the device is first initialised
during boot. It describes how the drive is further divided. The
.Xr disklabel 5
structure contains room for 8 (usually) partitions. Usually these
partitions are calculated so as to fall evenly on cylinder boundaries,
however on a
.Em SCSI
disk this is sometimes not possible. The reason for doing this is historically
to get better performance, however modern
.Em SCSI
disks often have a variable format, so that it is hard to know at any point
in the disk, where the cylinder or track boundaries are. Added to this, the
fact that
.Em SCSI
disk blocks are addressed soley by their 'block number' and not by
any geometry, leads to the common occurance on
.Em SCSI
disks, of laying out partitions on arbitrary boundaries. Because
modern disks often have large track caches, this often leads to only small
degadations of performance, and is in fact sometimes unavoidable. The
boot messages will suggest a geometry similar in heads and cylinders
to the real geometry, but the disklable need not agree with this for the
system to be able to successfully work with the disk.
.Pp
During booting
with an uninitialised disk, the
.Nm
driver will initialise the 'in-core' copy of the disklabel to the suggested
values, however they are not written to the disk.
.Pp
The fourth partition is special. No matter what the disklabel
says, the fourth partition (partition d) reflectls the entire disk, including
those areas OUTSIDE the BSD partitions. At some times it is suggested that
the c partition might be used to represent the entire BSD partition, so these
two partitions should be avoided when laying out filesystems. The fourth
partition must be used for general
.Xr scsi 4
ioctls.
.Pp
While partitions are only theoretically valid within the BSD partition, they
are specified in terms of absolute block numbers, so it is possible to
specify a partition that lies outside of the BSD partition. This is useful
if one wants to have a /dev entry that points to a partition belonging
to another OS (e.g. DOS).
.Pp
.Sh KERNEL CONFIGURATION
In configuring, if an optional
.Ar count
is given in
the specification, that number of scsi disks are configured;
Most storage for them is allocated only when found so a large number
of configured devices is cheap. (once the first has included the driver).
.Pp
.Sh IOCTLS
The following
.Xr ioctl 2
calls apply to scsi disks as well as to other disks. They are defined
in the header file
.Em disklabel.h.
.Bl -tag -width DIOCSDINFO
.It Dv DIOCSBAD
Usually used to set up a bad-block mapping system on the disk. Scsi
drive incorporate their own bad-block mapping so this is not implimented,
however it MAY be implimented in the future as a 'kludged' interface to the
scsi bad-block mapping.
.It Dv DIOCGDINFO
Read, from the kernel, the in-core copy of the disklabel for the
drive. This may be a ficticious disklabel if the drive has never
been initialised, in which case it will contain information read
from the scsi inquiry commands, and should be the same as
the information printed at boot.
.It Dv DIOCSDINFO
Give the driver a new disklabel to use. The driver will NOT try write the new
disklabel to the disk.
.It Dv DIOCWLABEL
Enable or Disable the driver's software
write protect of the disklabel on the disk.
.It Dv DIOCWDINFO
Give the driver a new disklabel to use. The driver WILL try write the new
disklabel to the disk.
.El
.Pp
In addition, the
.Xr scsi 4
general ioctls may be used with the
.Nm
driver, but only against the fourth (whole disk) partition.
.Sh NOTES
If a removable device is attached to the
.Nm
driver, then the act of changing the media will invalidate the
disklabel and information held within the kernel. To stop corruption,
All accesses to the device will be discarded until there are no more
open file descriptors referencing the device. During this period, all
new open attempts will be rejected. When No more open file descriptors
reference the device, the first next open will load a new set of
figures (including disklabel) for the drive.
An ioctl to map out a bad block is planned. (the code is already present
in the driver).
.Sh FILES
.Bl -tag -width /dev/rsd[0-9][a-h] -compact
.It Pa /dev/sd[0-9][a-h]
block mode scsi disks
.It Pa /dev/rsd[0-9][a-h]
raw scsi disks
.El
.Sh DIAGNOSTICS
None.
.Sh SEE ALSO
.Xr disklabel 1
.Xr disklabel 5
.Xr fdisk 1
.Xr wd 4
.Xr dk 4
(on other systems)
.Sh HISTORY
The
.Nm
driver appeared in MACH 2.5 .

308
share/man/man4/st.4 Normal file
View File

@ -0,0 +1,308 @@
.Dd August 27, 1993
.Dt ST 4
.Os FreeBSD
.Sh NAME
.Nm st
.Nd scsi tape driver
.Sh SYNOPSIS
.Nm device-driver st
.Op Ar count
.Sh DESCRIPTION
The
.Xr st
driver provides support for a
.Em scsi
tape. It allows the tape
to be run in upto four different modes depending on minor numbers
and supports several different 'sub modes'.
The device can have both a
.Em raw
interface
and a
.Em Block mode
interface however only the raw interface is usually used (or recommended).
In general the interfaces are similar to those described by
.Xr wt 4
or
.Xr mt 4 .
.Pp
Where the
.Xr wt 4
device has a fairly low level interface to the system,
.Em SCSI
devices have a much higher level interface and talk to the system via
a
.Em SCSI Adapter
and a
.Em Scsi Adapter driver
e.g.
.Xr AHA1542 .
A scsi adapter must also be separatly configured into the system
before a scsi tape can be configured.
.Pp
As the scsi adapter is probed during boot, the
.Em SCSI
bus is scanned for devices. Any devices found which answer as 'Sequential'
type devices will be attached to the
.Nm
driver. The first found will be attached as
.Em st0
and the next,
.Em st1
etc.
.Pp
.Sh MOUNT SESSIONS
The
.Nm
driver is based around the concept of a
.Em Mount Session
, which is defined as the period between the time that a tape is mounted,
and the time when it is unmounted. Any parameters set during a
.Em Mount Session
remain in effect for the remainder of the session or until replaced. The
Tape can be unmounted, bringing the session to a close in several ways.
These include:
.Bl -tag -width ABOUT_THIS_BIG_BUT_REALLY_BIGGER
.It Pa closing an 'unmount device'
This is referred to as sub-mode 00 (see below). An example is /dev/rst0.
.It Pa an MTOFFL ioctl
Reachable throught the 'offline' command of
.Xr st 1
.It Pa Openning another mode.
Openning a different mode will implicitly unmount the tape, thereby closing
off the mode that was previously mounted. All parameters will be loaded
freshly from the new mode. (see below for more on 'modes').
.El
.Pp
Parameters that are required to last across the unmounting of a tape,
should be set on the control device. This is submode 3 (see below) and is
reached through a file with a name of the form /dev/st{y}ctl.{x}, where
{y} is the drive number and {x} is the mode number.
.Pp
.Sh MODES AND SUB MODES
There are four Operation modes. These are controlled by bits 2
and 3 of the minor number and are designed to allow people to easily
read and write different formats of tape on devices that allow
multiple formats. The parameters for each mode can be set individually
by hand with the
.Xr st 1
variant of the
.Xr mt 1
command. When a device corresponding to a particular mode is first mounted,
The operating parameters for that
.Em Mount Session
Are copied from that mode. Further changes to the parameters during the
session will change those in effect for the session but not those set
in the Operating Mode. To change the parameters for an Operating Mode,
One must either assign the parameters to the control device, or compile
them into the 'Rogues Gallery' table within the driver.
.Pp
In addition to the four Operation Modes mentionned above,
bits 0 and 1 of the minor number are interpretted as being 'sub-modes'.
The following sub-modes are supported
.Bl -tag -width ABOUT_THIS_BIG
.It Pa 00
A close will rewind the device. If the tape has been
written, then a Filemark will be written before the rewind is requested.
The device is UNMOUNTED.
.It Pa 01
A close will leave the tape MOUNTED.
If the tape was written to a filemark will be written.
No other head positioning takes place.
Any further reads or writes will occur directly after the
last read, or the written filemark.
.It Pa 10
A close will rewind the device. If the tape has been
written, then a Filemark will be written before the rewind is requested.
On completion of the rewind an UNLOAD command will be issued.
The device is UNMOUNTED.
.It Pa 11
This is a special mode.
It is known as the
.Em CONTROL DEVICE
for the mode. Parameters set for the mode while in this sub
mode will be remembered from one mount to the next. This allows the
system administrator to set different characteristics (e.g. density,
blocksize, (and eventually compression)) on each mode, and have the
different modes keep those parameters independent of any parameter
changes a user may invoke during a single mount session. At the
completion of the user's mount session, drive parameters will revert
to those set by the administrator. IO operations cannot be performed
on this device/submode. General
.Xr scsi 4
ioctls
.Em MUST
be performed against the control device.
.El
.Sh BLOCKING MODES
Scsi Tapes may run in either 'variable' or 'fixed block' modes.
Most QIC type devices run in Fixed block mode, where most 'reel to reel' tapes and
many new cartridge formats, allow variable blocksize. The difference between
the two is as follows:
.Bl -tag -width variable-blocksize
.It Pa Variable Blocksize
Each write made to the device results in a single logical record
written to the tape. You can never read or write PART of a record
from tape, (though you may request a larger block and read a smaller
record). You cannot read multiple blocks either. Data from a single
write is therefore read by a single read. The block size used may
be any value supported by the device, the scsi adapter and the
system. (often variable between 1 byte and 64k (sometimes more)).
.Pp
When reading a variable record/block from the tape, the head is
logically considered to be immediately after the last item read,
and before the next item after that. If the next item is a Filemark,
but you never read it because you have all the data, then the next
process to read will immediately read the filemark and return EOF.
(assuming you were in non-rewind mode).
.It Pa fixed Blocksize
Data written by the user is passed to the tape as a succession of
fixed size blocks. It may be contiguouse in ram and read in a single
DMA pass, however it is considered to be a series of independent
blocks. You may never write an amount of data that is not an exact
multiple of the blocksize. You may read and write the same data
as a different set of records, In other words, blocks that were
written together may be read separatly, and visa versa.
.Pp
If you ask for more blocks than there are left in the file, then
the drive will encounter the filemark. Because there is some data
to return to you (unless there were no records before the filemark)
the driver will return the data to you (less than you requested),
but hide from you the discovery of the Filemark. The NEXT read
will be returned immediately with an EOF. If you never Make the next
read, but close the device, the next process to read will immediately
read the filemark and return EOF. (assuming you were in non-rewind
mode).
.El
.Sh FILEMARK HANDLING
The handling of filemarks on write is pretty much automatic. If you
have written to the tape, and not done a read since, then a filemark will
be written to the tape when you close the device. If a rewind is requested
after a write, then the driver assumes that you have written the last file
on the tape and ensures that there are two filemarks written to the tape.
It takes into account any filemarks already written (whether by close
or by explicit ioctl). The exception to this is that there seems to be
a standard (which we follow, but don't understand why) that certain
types of tape do not actually write two filemarks to tape,
but when read, report a 'phantom' filemark when the last file is read.
These devices include the QIC family of devices. It might be that this
set of devices is the same set as that of fixed block devices. This has not
been detirmined yet, and they are treated as separate behaviors by the
driver at this time.
.Pp
.SH KERNEL CONFIGURATION
In configuring, if an optional
.Ar count
is given in
the specification, that number of scsi tapes are configured;
Most storage for them is allocated only when found so a large number
of configured devices is cheap. (once the first has included the driver).
.Pp
Because different tape drives behave differently, there is a mechanism
within the source to st, to quickly and conveniently recognise and deal
with brands and models of drive that have special requirements.
.Pp
There is a table (called the rogues gallery) in which the indentification
strings of known errant drives can be stored. Along with each is
a set of flags that allows the setting of densities and blocksizes for each
of the 4 modes, along with a set of 'QUIRK' flags that can be
used to enable or disable sections of code within the driver if a particular
drive is recognised.
.Pp
.Sh IOCTLS
The following
.Xr ioctl 2
calls apply to scsi tapes. Some also apply to other tapes. They are defined
in the header file
.Em /sys/mtio.h.
.Bl -tag -width MTIOCEEOT
.It Pa MTIOCGET
Get the mt control structure filled out by the driver, showing
all the present settings.
.It Pa MTIOCTOP
Perform one of the following operations. These operations all have a
single argument, which is either a boolean, or a signed integer, depending
on the operation.
.Bl -tag -width MTSELDNSTY
.It Pa MTWEOF
Write N end of file marks at the present head position.
.It Pa MTFSF
Skip over N Filemarks. Leave the head on the EOM side of the last skipped
Filemark.
.It Pa MTBSF
Skip BACKWARDS over N Filemarks. Leave the head on the BOM (beginning of media)
side of the last skipped Filemark.
.It Pa MTFSR
Skip forwards over N records.
.It Pa MTBSR
Skip backwards over N records.
.It Pa MTREW
Rewind the device to the beginning of the media.
.It Pa MTOFFL
Rewind the media (and if possible eject). Even if the device cannot
eject the media it will often no longer respond to normal requests.
.It Pa MTNOP
No Op, set status only..
.It Pa MTCACHE
Enable controller Buffering.
.It Pa MTNOCACHE
Disable controller Buffering.
.It Pa MTSETBSIZ
Set the blocksize to use for the device/mode. If the device is capable of
variable blocksize operation, and the blocksize is set to 0, then the drive
will be driven in variable mode. This parameter is in effect for the present
mount session only, unless set on the control device.
.It Pa MTSETDNSTY
Set the Density value (see
.Xr st 1
) to use when running in the mode openned (minor bits 2,3).
This parameter is in effect for the present
mount session only, unless set on the control device.
.El
.It Pa MTIOCIEOT
?Set END of TAPE processing... not yet supported.
.It Pa MTIOCEEOT
?Set END of TAPE processing... not yet supported.
.El
.Pp
In addition, The
.Nm
driver will allow the use of any of the general
.Xr scsi 4
ioctls, as long as the control device is used.
.Sh FILES
.Bl -tag -width /dev/[n][e]rst[0-9].[0-3] -compact
.It Pa /dev/[n][e]rst[0-9].[0-3]
general form:
.It Pa /dev/rst0.0
Mode 0, rewind on close
.It Pa /dev/nrst0.2
Mode 2, No rewind on close
.It Pa /dev/erst0.3
Mode 3, Eject on close (if capable)
.It Pa /dev/rst0
Another name for rst0.0
.It Pa /dev/nrst0
Another name for nrst0.0
.It Pa /dev/st0ctl.0
Parameters set to this device become the default parameters for [en]rst0.0
.It Pa /dev/st0ctl.1
Parameters set to this device become the default parameters for [en]rst0.1
.It Pa /dev/st0ctl.2
Parameters set to this device become the default parameters for [en]rst0.2
.It Pa /dev/st0ctl.3
Parameters set to this device become the default parameters for [en]rst0.3
.El
.Sh DIAGNOSTICS
None.
.Sh SEE ALSO
.Xr mt 1
.Xr st 1
.Sh HISTORY
This
.Nm
driver appeared in MACH 2.5 .

57
share/man/man4/su.4 Normal file
View File

@ -0,0 +1,57 @@
.Dd August 27, 1993
.Dt SU 4
.Os FreeBSD
.Sh NAME
.Nm su
.Nd scsi user-level driver
.Sh SYNOPSIS
.Nm device-driver su
.Sh DESCRIPTION
The
.Xr su
driver provides support for a
process to address arbitrary locations on the scsi bus. Minor
numbers are mapped 1:1 to bus:target:lun. The lowest three bits being LUN
and the next three bits being TARGET. Remaining bits are the bus number.
.Pp
A scsi adapter must also be separatly configured into the system
before this driver makes sense.
.Pp
.Sh THE SU DEVICE IS NOT COMPLETED YET
.Sh KERNEL CONFIGURATION
There are no configuration parameters for the su option. It'e either there
or it's not.
.Pp
.Sh IOCTLS
The
.Nm
driver has no ioctls of it's own but rather acts as a medium for the
generic
.Xr scsi 4
ioctls. These are described in
.Em sys/scsiio.h.
.Sh FILES
.Bl -tag -width /dev/su0-0-0XXXXXXXXXXX -compact
.It Pa /dev/su[0-9]-[0-7]-[0-7]
su{x}-{y}-{z} is the su device for the device at bus x, target y, lun z
.El
.Sh DIAGNOSTICS
All
.Xr scsi 4
debug ioclts work on
.Nm
devices.
.Sh SEE ALSO
.Xr sd 4
.Xr st 4
.Xr cd 4
.Xr uk 4
.Xr scsi 4
.Sh HISTORY
The
.Nm
driver appeared in 386BSD 0.1

60
share/man/man4/uk.4 Normal file
View File

@ -0,0 +1,60 @@
.Dd October 11, 1993
.Dt UK 4
.Os FreeBSD
.Sh NAME
.Nm uk
.Nd scsi user-level driver
.Sh SYNOPSIS
.Nm device-driver uk
.Sh DESCRIPTION
The
.Xr uk
driver provides support for a
process to address devices on the scsi bus for which there is no configured
driver.
.Nm
devices are numbered in the order they are found.
.Pp
A scsi adapter must also be separatly configured into the system
before this driver makes sense.
.Pp
.Sh KERNEL CONFIGURATION
If an count is given that number of
.Nm
devices will be configured into the kernel.
.Pp
.Sh IOCTLS
The
.Nm
driver has no ioctls of it's own but rather acts as a medium for the
generic
.Xr scsi 4
ioctls. These are described in
.Em sys/scsiio.h.
.Sh FILES
.Bl -tag -width /dev/uk0XXX -compact
.It Pa /dev/uk[0-255]
uk{x} is the 'xth'unknown device found.
.El
.Sh DIAGNOSTICS
All
.Xr scsi 4
debug ioclts work on
.Nm
devices.
.Sh SEE ALSO
.Xr sd 4
.Xr st 4
.Xr cd 4
.Xr ch 4
.Xr su 4
.Xr scsi 4
.Sh HISTORY
The
.Nm
driver appeared in 386BSD 0.1