Only available on Sun-4/370, Sun-4/400, and SPARCsystem 600MP series systems.
The driver for IPI disk devices consists of several components: an IPI controller driver (pn and ipi3sc), and a facility driver (id). Each of these driver modules may have an associated configuration file, which lives in the same directory as the driver module. See driver.conf(4) and vme(4) for the interpretation of the contents of these files.
The block files access the disk using the system’s normal buffering mechanism and may be read and written without regard to physical disk records. There is also a raw interface that provides for direct transmission between the disk and the user’s read or write buffer. A single read or write call usually results in one I/O operation; therefore, raw I/O is considerably more efficient when many words are transmitted. The physical names for the raw files conventionally have ‘,raw’ appended to them. The logical names for the raw files live in the /dev/rdsk directory, as usual.
In raw I/O, counts should be a multiple of 512 bytes (a disk sector). Likewise directory(3C) calls should specify a multiple of 512 bytes. Depending on the channel adaptor, the buffer for raw reads or writes may be required to be on a 2-byte or 4-byte boundary.
Partition 0 is normally used for the root file system on a disk, partition 1 as a paging area (for example, swap), and partition 2 for backing up the entire disk. Partition 2 normally maps the entire disk and may also be used as the mount point for secondary disks in the system. The rest of the disk is normally partition 6. For the primary disk, the user file system is located here.
The ioctl() interfaces described in dkio(7I) and hdio(7I) are supported by this driver. The HDKIOCSCMD ioctl can be used to issue certain IPI commands to the drive. The argument structure is:
struct hdk_cmd { u_short hdkc_cmd; /* command to be executed */ int hdkc_flags; /* execution flags */ daddr_t hdkc_blkno; /* disk address for command */ int hdkc_secnt; /* sector count for command */ caddr_t hdkc_bufaddr; /* user’s buffer address */ u_int hdkc_buflen; /* size of user’s buffer */ };
The lower 8-bits of the hdkc_cmd field indicate one of the supported commands
listed below. The upper 8-bits indicate the IPI
Opcode modifier. These commands
are defined in <sys/ipi3sc.h>. Block numbers are not remapped by the partition
map when these commands are used.
The supported commands are:
This driver handles all supported IPI drives by reading controller attributes and a label from sector 0 of the drive which describes the disk geometry and partitioning.
The pn.conf and ipi3sc.conf files are only required on Sun-4/370 and Sun-4/490 systems.