1*61589Sbostic.\" Copyright (c) 1983, 1991, 1993 2*61589Sbostic.\" The Regents of the University of California. All rights reserved. 330225Ssam.\" 447673Scael.\" %sccs.include.redist.man% 530225Ssam.\" 6*61589Sbostic.\" @(#)ik.4 8.1 (Berkeley) 06/05/93 747673Scael.\" 847673Scael.Dd 947673Scael.Dt IK 4 1047673Scael.Os BSD 4.2 1147673Scael.Sh NAME 1247673Scael.Nm ik 1347673Scael.Nd Evans and Sutherland Picture System 300 graphics device interface 1447673Scael.Sh SYNOPSIS 1547673Scael.Cd "device ik0 at vba? csr 0xfffb100 vector ikintr" 1647673Scael.Sh DESCRIPTION 1730225SsamThe 1847673Scael.Nm ik 1930225Ssamdriver provides access 2030225Ssamto an Evans and 2147673ScaelSutherland Picture System 300 through an Ikon 2247673Scael.Tn DR-11W 2330225Ssaminterface card. 2447673ScaelEach two minor device numbers are a different 2547673Scael.Tn PS300 ; 2630225Ssamwithin a pair of device numbers the odd valued 2730225Ssamdevice is used for ``diagnostic'' purposes. That is, 2830225Ssamfor even numbered minor devices, opening the device results 2947673Scaelin a 3047673Scael.Tn PS300 3147673Scael``attach'' request being performed while for 3230225Ssamodd numbered minor devices the attach request is not performed. 3347673Scael.Pp 3447673ScaelAll operations between the host and the 3547673Scael.Tn PS300 3647673Scaelutilize 3747673Scael.Tn DMA . 3847673ScaelThe driver currently supports only physical 3947673Scael.Tn I/O operations 4030225Ssamwhen reading and writing; this makes the device useless with 4130225Ssamstandard Evans and Sutherland software. 4247673Scael.Pp 4347673ScaelThe interface provided by the interface is as 4447673Scael.Ux Ns -like 4547673Scaelas possible. 4647673ScaelWhen a device is opened a 4747673Scael.Tn PS300 4847673Scaelattach request is automatically 4930225Ssamperformed. When a device is closed a detach is performed. Reads 5047673Scaeland writes result in physical 5147673Scael.Tn I/O 5247673Scaelrequests, but hide all the details 5347673Scaelof the physical 5447673Scael.Tn I/O 5547673Scaelprotocol. This is programming style is completely 5647673Scaeldifferent from the 5747673Scael.Tn VMS Ns -oriented 5847673Scaelqio-style interface supplied by Evans 5930225Ssamand Sutherland. 6047673Scael.Pp 6147673ScaelReads and writes to the device result in a physical 6247673Scael.Tn I/O 6347673Scaelrequest 6447673Scaelto the 6547673Scael.Tn PS300 . 6647673ScaelIf a 6747673Scael.Xr readv 2 6830225Ssamor 6947673Scael.Xr writev 2 7047673Scaelcall is used, each 7147673Scael.Tn I/O 7247673Scaelrequest results in a single physical 7347673Scael.Tn I/O 7430225Ssamrequest (i.e. the scatter-gather facilities are not supported). 7547673ScaelIn normal operation, the address used in a physical 7647673Scael.Tn I/O 7747673Scaelrequest 7830225Ssamis the current file offset as specified explicitly with 7947673Scael.Xr lseek 2 8030225Ssamor implictly as a result of reading or writing the device. 8147673ScaelTo specify an address to be used with each physical 8247673Scael.Tn I/O 8347673Scaelrequest, 8430225Ssamthe 8547673Scael.Nm ik 8630225Ssamdriver interprets the 8747673Scael.Ar iov 8830225Ssamentries in a non-standard way. If 8947673Scael.Ar iov_len 9030225Ssamis zero, then 9147673Scael.Ar iov_base 9247673Scaelis interpreted as an address to be used in the physical 9347673Scael.Tn I/O 9447673Scaelrequest. If the address has the 9547673Scael.Dv PSIO_SYNC 9647673Scaelflag or-d into it, 9747673Scaelthe physical 9847673Scael.Tn I/O 9947673Scaelrequest is made as a ``write with sync''. 10030225SsamAll addresses and data presented to the driver should be in 10130225Ssamthe byte order of the host; any byte swapping required to converse 10247673Scaelwith the 10347673Scael.Tn PS300 10447673Scaelis performed in the driver/controller. 10547673Scael.Pp 10630225SsamIn addition to reading and writing, the following 10747673Scael.Xr ioctl 10830225Ssamrequests are available: 10947673Scael.Bl -tag -width PSIOGETERROR 11047673Scael.It Dv PSIOLOOKUP 11130225SsamPerform a ``name lookup'' request. The 11247673Scael.Ar pslookup 11330225Ssamstructure passed indicates the symbol name to be looked up 11447673Scaeland contains the address returned by the 11547673Scael.Tn PS300 . 11647673ScaelA zero 11730225Ssamaddress return indicates the symbol was undefined. 11847673Scael.It Dv PSIOGETERROR 11930225SsamIn the event of an error, this request may be made to 12047673Scaelreturn a more detailed and, sometimes 12147673Scael.Tn PS300 Ns -specific , 12230225Ssamerror code. 12347673Scael.Sh FILES 12447673Scael.Bl -tag -width /dec/ik[0-7]xx -compact 12547673Scael.It Pa /dev/ik[0-7] 12647673Scaelauto-attach devices 12747673Scael.It Pa /dev/ik[0-7]d 12847673Scaeldiagnostic interfaces to devices 12947673Scael.El 13047673Scael.Sh DIAGNOSTICS 13147673Scael.Bl -diag 13247673Scael.It ik%d: bad cmd %x. 13330225SsamAn unknown or unsupported command was received by the host. 13447673Scael.It ik%d: spurious interrupt, code %x. 13547673ScaelAn unexpected interrupt was received from the 13647673Scael.Tn PS300 ; 13747673Scaelthe 13847673Scaelattention code from the 13947673Scael.Tn PS300 14047673Scaelis printed. 14147673Scael.It ik%d: timeout. 14230225SsamA command failed to elicit a response within a reasonable 14347673Scaeltime; the 14447673Scael.Tn PS300 14547673Scaelprobably crashed. 14647673Scael.El 14747673Scael.Sh HISTORY 14847673ScaelThe 14947673ScaelTahoe Version 15047673Scael.Nm 15147673Scaeldriver appeared in 15247673Scael.Bx 4.2 . 15347673Scael.Sh BUGS 15447673ScaelAn invalid access (e.g. illegal address) to the 15547673Scael.Tn PS300 15647673Scaelcan 15747673Scaelcause the 15847673Scael.Tn PS300 15947673Scaelto crash. It is not always possible to unwedge 16047673Scaelthe 16147673Scael.Tn PS300 16247673Scaelinterface hardware hung by an 16347673Scael.Tn I/O 16447673Scaelrequest. 165