DISKINFO(5)

NAME
diskinfo - disk device characteristic database

SYNOPSIS
/etc/diskinfo/*

DESCRIPTION
diskinfo is a database which describes characteristics of disk devices; that is, those devices which need to be formatted. The directory /etc/diskinfo is populated with text files that describe different classes of disk characteristics.

Each type of disk is assigned a symbolic name which is usually the model number of the particular disk - for example, m2333k for the Fujitsu Swallow 3. Each file in /etc/diskinfo has a prefix which is the name of a disk type. The suffix of the filename defines the class of disk information present on this particular disk model. For example, m2333k.geom contains the geometry information for all model M2333K disks.

Lines in diskinfo files are patterned after the terminfo(4) database. Below is a general description of lines in these files.

diskinfo files consist of usually one device description entry. Each entry consists of a header (beginning in column 1) and one or more lines that list the features for that particular device. Each line in a diskinfo file, except the header, must be indented with one or more white spaces (either spaces or tabs).

Entries consist of a number of fields separated by colons. The following example shows the format of a diskinfo source file:
    	alias1 | alias2 | ... | aliasN | longname:
    		name1#value1:name2#value2: ...

The first line, commonly referred to as the header line, must begin in column one and must contain one or more aliases, separated by vertical bars. The last field in the header line may be the long name of the device and may contain any string except |: . Alias names must be unique within files of a given suffix in the diskinfo database, and must conform to operating system file-naming conventions; for example they cannot contain white space or slashes.

GEOMETRY INFORMATION
Files in /etc/diskinfo with the suffix .geom contain disk geometry information, such as the sizes of tracks, cylinders, and the disks themselves. This information is usually common to all disks, and is used by the system to optimize access to data by grouping related disk blocks relatively close together. The information is also used by system maintenance utilities (such as formatters) so that they can agree on reserved disk areas.

The following list indicates the normal values stored for each disk entry.

Name | Type | Description
cy | num | Number of sectors per cylinder
dc | num | Capacity of disk in sectors
ns | num | Number of sectors per track
nt | num | Number of tracks per cylinder
nc | num | Total number of cylinders on the disk
rm | num | Number of revolutions per minute
se | num | Sector size in bytes (512 by default)
xc | num | Minimum disk capacity in sectors

Note that even though the number of sectors per track and tracks per cylinder are given, the number of sectors per cylinder is not necessarily equal to the ns and nt values multiplied together. Also, the capacity of the whole disk may not be derivable from the other parameters. This is due to the construction of disks that have a variable number of sectors per track depending on the cylinder number, and disks that have extra sectors on each cylinder.

The xc parameter describes the guaranteed minimum number of sectors on the disk. This is needed for disk devices which vary their reported size based on the number of bad blocks revectored on the disk. The xc parameter is used by programs that need to verify the disk type by seeking to the last known sector of the disk. The xc parameter is normally not present for most disk types.

The information in the .geom files can be retrieved in a program using the getgeombyname(3) interface.

SCSI INFORMATION
Files in /etc/diskinfo with the suffix .scsi contain information specific to CCS (common command set) SCSI disks, which is used by the online format program. This data should correspond to fields in the drive_table entries in /sys/stand/conf_scsi.c.

The following list defines the two character keys used to identify each field within the file. Each of these fields is required by the online formatter to be in the file.

Name | Type | Description
vn | string | Vendor (this must be padded to 8 chars)
pr | string | Product number (this must be padded to 16 chars)
iq | num | Inquiry command format
re | num | Size in bytes of REASSIGN_BLOCK data
fm | num | Format code for the FORMAT command

Note that the vendor and product number must match the strings returned by the SCSI INQUIRY command.

The information in the .scsi files can be retrieved in a program using the getscsimatch(3) interface, which requires the vendor and products strings to be passed in as arguments, and then finds the matching .scsi file.

ZD INFORMATION
Files in /etc/diskinfo with the suffix .zd contain information specific to ZDC disks, which is used by the online format program. This data should correspond to fields in the zdinfo table entries in /sys/stand/conf_zd.c and should not be changed, because it used to construct channel configuration information used by the ZDC controller board.

The following list defines the two character keys used to identify each field within the file. Each of these fields is required to be in the file. Compare with the zdcdd structure defined in <sys/zdc.h>.

Name | Type | Description
mg | num | magic number for sanity
ec | num | number of bytes of ECC
sp | num | spares per track
se | num | sectors per track (formatted)
tr | num | tracks per cylinder
cy | num | number of cylinders
dt | num | soft drive type (type it was formatted as).
xf | num | drive transfer rate in MHz
ru | num | number of bytes in runt sector
ch | num | channel delay
hs | num | head switch delay
hr | num | header postamble byte cnt (read)
hf | num | header postamble byte cnt (fmt)
ck | num | format skew between cylinders
tk | num | format skew between tracks
hb | num | header byte cnt (inc head scatter)
sb | num | sector byte cnt (inc header & gap)
si | num | bytes at sector start where defects can be ignored
ei | num | bytes at sector end where defects can be ignored
ds | num | RO status register
de | num | RO error register
p0 | num | polynomial preset byte 0
p1 | num | polynomial preset byte 1
p2 | num | polynomial preset byte 2
p3 | num | polynomial preset byte 3
p4 | num | polynomial preset byte 4
p5 | num | polynomial preset byte 5
t0 | num | polynomial tap byte 0
t1 | num | polynomial tap byte 1
t2 | num | polynomial tap byte 2
t3 | num | polynomial tap byte 3
t4 | num | polynomial tap byte 4
t5 | num | polynomial tap byte 5
er | num | ECC/CRC control
hc | num | header byte count
dc | num | drive command register
oc | num | operation command register
sc | num | sector count
ns | num | number of sector operations
h0 | num | header byte 0 pattern
h1 | num | header byte 1 pattern
h2 | num | header byte 2 pattern
h3 | num | header byte 3 pattern
h4 | num | header byte 4 pattern
h5 | num | header byte 5 pattern
rd | num | remote data byte count
dm | num | DMA address
do | num | data postamble byte count
rh | num | header preamble byte count
s1 | num | header synch #1 byte count
s2 | num | header synch #2 byte count
c0 | num | header byte 0 control
c1 | num | header byte 1 control
c2 | num | header byte 2 control
c3 | num | header byte 3 control
c4 | num | header byte 4 control
c5 | num | header byte 5 control
xd | num | external data ECC byte count
xh | num | external header ECC byte count
po | num | header postamble byte count (write)
pr | num | data preamble byte count (write)
d1 | num | data synch #1 byte count
d2 | num | data synch #2 byte count
op | num | data postamble pattern
or | num | header preamble pattern
a1 | num | header synch #1 pattern
a2 | num | header synch #2 pattern
gp | num | gap byte count
df | num | disk format register
lt | num | local transfer register
rt | num | remote transfer register
et | num | sector byte count
gt | num | gap pattern
fd | num | data format pattern
ah | num | header postamble pattern
ad | num | data preamble pattern
r1 | num | data synch #1 pattern
r2 | num | data synch #2 pattern

The information in the .zd files can be retrieved in a program using the getzdinfobyname(3) interface.

FILES
/etc/diskinfo/* /sys/stand/conf_scsi.c /sys/stand/conf_zd.c

SEE ALSO
getgeombyname (3), getscsimatch (3), getzdinfobyname (3), format (8)