|
|
1.1 ! root 1: .\" Copyright (c) 1983 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)ik.4 6.2 (Berkeley) 6/30/87 ! 6: .\" ! 7: .TH IK 4 "November 21, 1986" ! 8: .UC 5 ! 9: .SH NAME ! 10: ik \- Evans and Sutherland Picture System 300 graphics device interface ! 11: .SH SYNOPSIS ! 12: .B "device ik0 at vba? csr 0xfffb100 vector ikintr" ! 13: .SH DESCRIPTION ! 14: The ! 15: .I ik ! 16: driver provides access ! 17: to an Evans and ! 18: Sutherland Picture System 300 through an Ikon DR-11W ! 19: interface card. ! 20: Each two minor device numbers are a different PS300; ! 21: within a pair of device numbers the odd valued ! 22: device is used for ``diagnostic'' purposes. That is, ! 23: for even numbered minor devices, opening the device results ! 24: in a PS300 ``attach'' request being performed while for ! 25: odd numbered minor devices the attach request is not performed. ! 26: .PP ! 27: All operations between the host and the PS300 utilize DMA. ! 28: The driver currently supports only ``physical i/o'' operations ! 29: when reading and writing; this makes the device useless with ! 30: standard Evans and Sutherland software. ! 31: .PP ! 32: The interface provided by the interface is as UNIX-like as possible. ! 33: When a device is opened a PS300 attach request is automatically ! 34: performed. When a device is closed a detach is performed. Reads ! 35: and writes result in physical i/o requests, but hide all the details ! 36: of the physical i/o protocol. This is programming style is completely ! 37: different from the VMS-oriented qio-style interface supplied by Evans ! 38: and Sutherland. ! 39: .PP ! 40: Reads and writes to the device result in a physical i/o request ! 41: to the PS300. If a ! 42: .IR readv (2) ! 43: or ! 44: .IR writev (2) ! 45: call is used, each i/o request results in a single physical i/o ! 46: request (i.e. the scatter-gather facilities are not supported). ! 47: In normal operation, the address used in a physical i/o request ! 48: is the current file offset as specified explicitly with ! 49: .IR lseek (2) ! 50: or implictly as a result of reading or writing the device. ! 51: To specify an address to be used with each physical i/o request, ! 52: the ! 53: .I ik ! 54: driver interprets the ! 55: .I iov ! 56: entries in a non-standard way. If ! 57: .I iov_len ! 58: is zero, then ! 59: .I iov_base ! 60: is interpreted as an address to be used in the physical i/o ! 61: request. If the address has the PSIO_SYNC flag or-d into it, ! 62: the physical i/o request is made as a ``write with sync''. ! 63: All addresses and data presented to the driver should be in ! 64: the byte order of the host; any byte swapping required to converse ! 65: with the PS300 is performed in the driver/controller. ! 66: .PP ! 67: In addition to reading and writing, the following ! 68: .I ioctl ! 69: requests are available: ! 70: .TP ! 71: PSIOLOOKUP ! 72: .br ! 73: Perform a ``name lookup'' request. The ! 74: .I pslookup ! 75: structure passed indicates the symbol name to be looked up ! 76: and contains the address returned by the PS300. A zero ! 77: address return indicates the symbol was undefined. ! 78: .TP ! 79: PSIOGETERROR ! 80: .br ! 81: In the event of an error, this request may be made to ! 82: return a more detailed and, sometimes PS300-specific, ! 83: error code. ! 84: .SH FILES ! 85: /dev/ik[0-7] auto-attach devices ! 86: .br ! 87: /dev/ik[0-7]d diagnostic interfaces to devices ! 88: .SH DIAGNOSTICS ! 89: \fBik%d: bad cmd %x\fP. ! 90: An unknown or unsupported command was received by the host. ! 91: .PP ! 92: \fBik%d: spurious interrupt, code %x\fP. ! 93: An unexpected interrupt was received from the PS300; the ! 94: attention code from the PS300 is printed. ! 95: .PP ! 96: \fBik%d: timeout\fP. ! 97: A command failed to elicit a response within a reasonable ! 98: time; the PS300 probably crashed. ! 99: .SH BUGS ! 100: An invalid access (e.g. illegal address) to the PS300 can ! 101: cause the PS300 to crash. It is not always possible to unwedge ! 102: the PS300 interface hardware hung by an i/o request.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.