|
|
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: .\" @(#)ps.4 6.3 (Berkeley) 5/21/86 ! 6: .\" ! 7: .TH PS 4 "May 21, 1986" ! 8: .UC 5 ! 9: .SH NAME ! 10: ps \- Evans and Sutherland Picture System 2 graphics device interface ! 11: .SH SYNOPSIS ! 12: .B "device ps0 at uba? csr 0172460 vector psclockintr pssystemintr" ! 13: .SH DESCRIPTION ! 14: The ! 15: .I ps ! 16: driver provides access ! 17: to an Evans and ! 18: Sutherland Picture System 2 graphics device. ! 19: Each minor device is a new PS2. ! 20: When the device is opened, its interface registers are mapped, ! 21: via virtual memory, into a user process's address space. ! 22: This allows the user process very high bandwidth to the device ! 23: with no system call overhead. ! 24: .PP ! 25: DMA to and from the PS2 is not supported. All read and write ! 26: system calls will fail. ! 27: All data is moved to and from the PS2 via programmed I/O using ! 28: the device's interface registers. ! 29: .PP ! 30: Commands are fed to and from the driver using the following ioctls: ! 31: .TP ! 32: PSIOGETADDR ! 33: .br ! 34: Returns the virtual address through which the user process can access ! 35: the device's interface registers. ! 36: .TP ! 37: PSIOAUTOREFRESH ! 38: .br ! 39: Start auto refreshing the screen. ! 40: The argument is an address in user space where the following data resides. ! 41: The first longword is a ! 42: .I count ! 43: of the number of static refresh buffers. ! 44: The next ! 45: .I count ! 46: longwords are the addresses in refresh memory where ! 47: the refresh buffers lie. ! 48: The driver will cycle through these refresh buffers displaying them one by one ! 49: on the screen. ! 50: .TP ! 51: PSIOAUTOMAP ! 52: .br ! 53: Start automatically passing the display file through the matrix processor and ! 54: into the refresh buffer. ! 55: The argument is an address in user memory where the following data resides. ! 56: The first longword is a ! 57: .I count ! 58: of the number of display files to operate on. ! 59: The next ! 60: .I count ! 61: longwords are the address of these display files. ! 62: The final longword is the address in refresh buffer memory where transformed ! 63: coordinates are to be placed if the driver is not in double buffer mode (see ! 64: below). ! 65: .TP ! 66: PSIODOUBLEBUFFER ! 67: .br ! 68: Cause the driver to double buffer the output from the map that ! 69: is going to the refresh buffer. ! 70: The argument is again a user space address where the real arguments are stored. ! 71: The first argument is the starting address of refresh memory where the two ! 72: double buffers are located. ! 73: The second argument is the length of each double buffer. ! 74: The refresh mechanism displays the current double buffer, in addition ! 75: to its static refresh lists, when in double buffer mode. ! 76: .TP ! 77: PSIOSINGLEREFRESH ! 78: .br ! 79: Single step the refresh process. That is, the driver does not continually ! 80: refresh the screen. ! 81: .TP ! 82: PSIOSINGLEMAP ! 83: .br ! 84: Single step the matrix process. ! 85: The driver does not automatically feed display files through the matrix unit. ! 86: .TP ! 87: PSIOSINGLEBUFFER ! 88: .br ! 89: Turn off double buffering. ! 90: .TP ! 91: PSIOTIMEREFRESH ! 92: .br ! 93: The argument is a count of the number of refresh interrupts to take ! 94: before turning off the screen. This is used to do time exposures. ! 95: .TP ! 96: PSIOWAITREFRESH ! 97: .br ! 98: Suspend the user process until a refresh interrupt has occurred. ! 99: If in TIMEREFRESH mode, suspend until count refreshes have occurred. ! 100: .TP ! 101: PSIOSTOPREFRESH ! 102: .br ! 103: Wait for the next refresh, stop all refreshes, and then return to user process. ! 104: .TP ! 105: PSIOWAITMAP ! 106: .br ! 107: Wait until a map done interrupt has occurred. ! 108: .TP ! 109: PSIOSTOPMAP ! 110: .br ! 111: Wait for a map done interrupt, do not restart the map, and then ! 112: return to the user. ! 113: .SH FILES ! 114: /dev/ps ! 115: .SH DIAGNOSTICS ! 116: .BR "ps device intr" . ! 117: .br ! 118: .BR "ps dma intr" . ! 119: An interrupt was received from the device. ! 120: This shouldn't happen, ! 121: check your device configuration for overlapping interrupt vectors. ! 122: .SH BUGS ! 123: An invalid access (e.g., longword) to a mapped interface register ! 124: can cause the system to crash with a machine check. ! 125: A user process could possibly cause infinite interrupts hence ! 126: bringing things to a crawl.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.