|
|
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.