.\" Copyright (c) 1983 Regents of the University of California.
.\" All rights reserved. The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\" @(#)ik.4 6.2 (Berkeley) 6/30/87
.TH IK 4 "November 21, 1986"
ik \- Evans and Sutherland Picture System 300 graphics device interface
.B "device ik0 at vba? csr 0xfffb100 vector ikintr"
Sutherland Picture System 300 through an Ikon DR-11W
Each two minor device numbers are a different PS300;
within a pair of device numbers the odd valued
device 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 software.
The interface provided by the interface is as UNIX-like as possible.
When a device is opened a PS300 attach request is automatically
performed. 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
Reads and writes to the device result in a physical i/o request
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
or implictly as a result of reading or writing the device.
To specify an address to be used with each physical i/o request,
entries in a non-standard way. If
is interpreted as an address to be used in the physical i/o
request. 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 driver/controller.
In addition to reading and writing, the following
Perform a ``name lookup'' request. The
structure passed indicates the symbol name to be looked up
and contains the address returned by the PS300. A zero
address return indicates the symbol was undefined.
In the event of an error, this request may be made to
return a more detailed and, sometimes PS300-specific,
/dev/ik[0-7] auto-attach devices
/dev/ik[0-7]d diagnostic interfaces to devices
An unknown or unsupported command was received by the host.
\fBik%d: spurious interrupt, code %x\fP.
An unexpected interrupt was received from the PS300; the
attention code from the PS300 is printed.
A command failed to elicit a response within a reasonable
time; the PS300 probably crashed.
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 hardware hung by an i/o request.