4BSD/usr/man/man4/hp.4

Compare this file to the similar file:
Show the results in this format:

.TH HP 4 
.UC 4
.SH NAME
hp \- RP06, RM03, RM-05 moving-head disk
.SH DESCRIPTION
Files with minor device numbers 0 through 7 refer to various portions
of drive 0;
minor devices 8 through 15 refer to drive 1, etc.
.PP
The origin and size of the pseudo-disks on each drive are
as follows:
.PP
.nf
.ta .5i +\w'000000    'u +\w'000000    'u
RP03 partitions
	disk	start	length
	0	0	15884
	1	15884	33440
	2	40964	8360
	3	0	0
	4	0	0
	5	0	0
	6	49324	291346
	7	0	0
.PP
.nf
RM03 partitions
	disk	start	length
	0	0	15884
	1	16000	33440
	2	0	0
	3	0	0
	4	0	0
	5	0	0
	6	49600	82080
	7	0	0
.PP
.nf
RM05 partitions
	disk	start	length
	0	0	15884
	1	16416	33440
	2	0	500992
	3	341696	15884
	4	358112	55936
	5	414048	36944
	6	341696	159296
	7	49856	291346
.fi
.DT
.PP
It is unwise for all of these files to be present in one installation,
since there is overlap in addresses and protection becomes
a sticky matter.
Ordinarily devices 0 and 6
on rp06 and rm03 drives,
and 0, 7, and either 6 or 5, 6, and 7 on rm05 drives.
Note that the file system sizes are chosen to allow the partitions
to be copied between the rp06's and rm05's.
This is done so that systems with mixed drives
will be able to rearrange file systems easily
(see also
.IR up (4)).
Device 2 is the entire pack,
and is used in pack-to-pack copying.
.PP
The
block
files
access the disk via the system's normal
buffering mechanism
and may be read and written without regard to
physical disk records.
There is also a `raw' interface
which provides for direct transmission between the disk
and the user's read or write buffer.
A single read or write call results in exactly one I/O operation
and therefore raw I/O is considerably more efficient when
many words are transmitted.
The names of the raw files
conventionally
begin with
an extra `r.'
.SH FILES
.ta 2i
/dev/rp[0-3][a-h]	block files
.br
/dev/rrp[0-3][a-h]	raw files
.SH SEE ALSO
rp(4)
.SH BUGS
In raw I/O
.I read
and
.IR write (2)
truncate file offsets to 512-byte block boundaries,
and
.I write
scribbles on the tail of incomplete blocks.
Thus,
in programs that are likely to access raw devices,
.I read, write
and
.IR lseek (2)
should always deal in 512-byte multiples.