BSD 4_4 development
[unix-history] / usr / share / man / cat4 / tahoe / ik.0
IK(4) BSD Programmer's Manual IK(4)
N\bNA\bAM\bME\bE
i\bik\bk - Evans and Sutherland Picture System 300 graphics device interface
S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
d\bde\bev\bvi\bic\bce\be i\bik\bk0\b0 a\bat\bt v\bvb\bba\ba?\b? c\bcs\bsr\br 0\b0x\bxf\bff\bff\bfb\bb1\b10\b00\b0 v\bve\bec\bct\bto\bor\br i\bik\bki\bin\bnt\btr\br
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
The i\bik\bk driver provides access to an Evans and Sutherland Picture System
300 through an Ikon DR-11W interface card. Each two minor device numbers
are a different PS300; within a pair of device numbers the odd valued de-
vice is used for ``diagnostic'' purposes. That is, for even numbered
minor devices, opening the device results in a PS300 ``attach'' request
being performed while for odd numbered minor devices the attach request
is not performed.
All operations between the host and the PS300 utilize DMA. The driver
currently supports only physical I/O operations when reading and writing;
this makes the device useless with standard Evans and Sutherland soft-
ware.
The interface provided by the interface is as UNIX-like as possible.
When a device is opened a PS300 attach request is automatically per-
formed. When a device is closed a detach is performed. Reads and writes
result in physical I/O requests, but hide all the details of the physical
I/O protocol. This is programming style is completely different from the
VMS-oriented qio-style interface supplied by Evans and Sutherland.
Reads and writes to the device result in a physical I/O request to the
PS300. If a readv(2) or writev(2) call is used, each I/O request results
in a single physical I/O request (i.e. the scatter-gather facilities are
not supported). In normal operation, the address used in a physical I/O
request is the current file offset as specified explicitly with lseek(2)
or implictly as a result of reading or writing the device. To specify an
address to be used with each physical I/O request, the i\bik\bk driver inter-
prets the _\bi_\bo_\bv entries in a non-standard way. If _\bi_\bo_\bv_\b__\bl_\be_\bn is zero, then
_\bi_\bo_\bv_\b__\bb_\ba_\bs_\be is interpreted as an address to be used in the physical I/O re-
quest. If the address has the PSIO_SYNC flag or-d into it, the physical
I/O request is made as a ``write with sync''. All addresses and data
presented to the driver should be in the byte order of the host; any byte
swapping required to converse with the PS300 is performed in the driv-
er/controller.
In addition to reading and writing, the following ioctl requests are
available:
PSIOLOOKUP Perform a ``name lookup'' request. The _\bp_\bs_\bl_\bo_\bo_\bk_\bu_\bp structure
passed indicates the symbol name to be looked up and con-
tains the address returned by the PS300. A zero address re-
turn indicates the symbol was undefined.
PSIOGETERROR In the event of an error, this request may be made to re-
turn a more detailed and, sometimes PS300-specific, error
code.
F\bFI\bIL\bLE\bES\bS
/dev/ik[0-7] auto-attach devices
/dev/ik[0-7]d diagnostic interfaces to devices
D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
i\bik\bk%\b%d\bd:\b: b\bba\bad\bd c\bcm\bmd\bd %\b%x\bx.\b. An unknown or unsupported command was received by the
host.
i\bik\bk%\b%d\bd:\b: s\bsp\bpu\bur\bri\bio\bou\bus\bs i\bin\bnt\bte\ber\brr\bru\bup\bpt\bt,\b, c\bco\bod\bde\be %\b%x\bx.\b. An unexpected interrupt was received
from the PS300; the attention code from the PS300 is printed.
i\bik\bk%\b%d\bd:\b: t\bti\bim\bme\beo\bou\but\bt.\b. A command failed to elicit a response within a reasonable
time; the PS300 probably crashed.
H\bHI\bIS\bST\bTO\bOR\bRY\bY
The Tahoe Version i\bik\bk driver appeared in 4.2BSD.
B\bBU\bUG\bGS\bS
An invalid access (e.g. illegal address) to the PS300 can cause the PS300
to crash. It is not always possible to unwedge the PS300 interface hard-
ware hung by an I/O request.
4.2 Berkeley Distribution June 5, 1993 2