DKSD(4spp)
NAME
dksd − sable disk emulation device
SYNOPSIS
{
"dksd",_sdinit,_sdopen,
_sdstrategy,_nulldev,_sdioctl,
DTTYPE_BLOCK,
DTFS_AUTO,"sable disk"
}
DESCRIPTION
Dksd is the interface to the sable disk emulation. Sable responds to block requests on the dksd device by transferring blocks from the file RootDev in the directory where sable was run. Dksd supports a single controller and unit. Partitions on the dksd device are defined by the disk volume header in the file RootDev. Raw transfers to the dksd device must be in multiples of 512 bytes.
REGISTERS
Sable supports a single disk emulation "controller" with control registers at 0x1f001000 in physical space.
IOCTLS
Dksd supports the following ioctls:
ioctl(fd, DIOCGETVH, vhp)
Gets the disk volume header for the dksd device open on fd and copies it to the struct volume_header pointed to by vhp.
ioctl(fd, DIOCSETVH, vhp)
Sets the volume header information used by the dksd driver to that pointed to by vhp. DIOCSETVH only changes the information used by the disk driver software, it does NOT change the information on the disk itself.
ioctl(fd, DIOCGETCTLR, cip)
Gets the controller information for the device associated with descriptor fd and copies it to the struct ctlr_info pointed to by cip.
DIAGNOSTICS
The following diagnostics are printed by the dksd driver:
sd bad unit
A unit number other than 0 was specified
sd bad controller number
A controller number other than 0 was specified
no sable controller at 0x%x
Sable did not respond to references to the control registers at the address shown
can’t read volume header
A volume header was not present on RootDev or was incorrectly formatted or a volume header checksum error was detected
sd bad partition
A partition number outside the range of 0 to 15 was specified
sd null partition
A partition was selected that was not
read beyond end of partition
A read or write was attempted to a disk block beyond the end of the partition
sable disk error
Sable was unable to read the requested block from RootDev