Technical data
SunOS 5.5 Devices ipi(7D)
NAME ipi, id, is, pn, ipi3sc − IPI driver
SYNOPSIS pn@4d,0x1080000/ipi3sc@board-num,0/id@facility,0:partition
AVAILABILITY SPARC
Only available on Sun-4/370, Sun-4/400, and SPARCsystem 600MP series systems.
DESCRIPTION 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 associ-
ated 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 con-
siderably 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 certainIPI 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.
modified 8 Oct 1992 7D-149










