Commit | Line | Data |
---|---|---|
5ebe7d4b KB |
1 | .\" Copyright (c) 1983, 1991, 1993 |
2 | .\" The Regents of the University of California. All rights reserved. | |
b91da237 | 3 | .\" |
9903e566 | 4 | .\" %sccs.include.redist.man% |
b91da237 | 5 | .\" |
5ebe7d4b | 6 | .\" @(#)ps.4 8.1 (Berkeley) %G% |
9903e566 CL |
7 | .\" |
8 | .Dd | |
9 | .Dt PS 4 vax | |
10 | .Os BSD 4.2 | |
11 | .Sh NAME | |
12 | .Nm ps | |
13 | .Nd Evans and Sutherland Picture System 2 graphics device interface | |
14 | .Sh SYNOPSIS | |
15 | .Cd "device ps0 at uba? csr 0172460 vector psclockintr pssystemintr" | |
16 | .Sh DESCRIPTION | |
b91da237 | 17 | The |
9903e566 | 18 | .Nm ps |
b91da237 KM |
19 | driver provides access |
20 | to an Evans and | |
21 | Sutherland Picture System 2 graphics device. | |
9903e566 CL |
22 | Each minor device is a new |
23 | .Tn PS2 . | |
b91da237 KM |
24 | When the device is opened, its interface registers are mapped, |
25 | via virtual memory, into a user process's address space. | |
26 | This allows the user process very high bandwidth to the device | |
27 | with no system call overhead. | |
9903e566 CL |
28 | .Pp |
29 | .Tn DMA | |
30 | to and from the | |
31 | .Tn PS2 | |
32 | is not supported. All read and write | |
b91da237 | 33 | system calls will fail. |
9903e566 CL |
34 | All data is moved to and from the |
35 | .Tn PS2 | |
36 | via programmed | |
37 | .Tn I/O | |
38 | using | |
b91da237 | 39 | the device's interface registers. |
9903e566 CL |
40 | .Pp |
41 | Commands are fed to and from the driver using the following | |
42 | .Xr ioctl 2 Ns s : | |
43 | .Bl -tag -width PSIOSINGLEREFRESH | |
44 | .It Dv PSIOGETADDR | |
b91da237 KM |
45 | Returns the virtual address through which the user process can access |
46 | the device's interface registers. | |
9903e566 | 47 | .It Dv PSIOAUTOREFRESH |
b91da237 KM |
48 | Start auto refreshing the screen. |
49 | The argument is an address in user space where the following data resides. | |
50 | The first longword is a | |
9903e566 | 51 | .Em count |
b91da237 KM |
52 | of the number of static refresh buffers. |
53 | The next | |
9903e566 | 54 | .Em count |
b91da237 KM |
55 | longwords are the addresses in refresh memory where |
56 | the refresh buffers lie. | |
8781d1b7 | 57 | The driver will cycle through these refresh buffers displaying them one by one |
b91da237 | 58 | on the screen. |
9903e566 | 59 | .It Dv PSIOAUTOMAP |
8781d1b7 | 60 | Start automatically passing the display file through the matrix processor and |
b91da237 KM |
61 | into the refresh buffer. |
62 | The argument is an address in user memory where the following data resides. | |
63 | The first longword is a | |
9903e566 | 64 | .Em count |
b91da237 KM |
65 | of the number of display files to operate on. |
66 | The next | |
9903e566 | 67 | .Em count |
b91da237 KM |
68 | longwords are the address of these display files. |
69 | The final longword is the address in refresh buffer memory where transformed | |
70 | coordinates are to be placed if the driver is not in double buffer mode (see | |
71 | below). | |
9903e566 | 72 | .It Dv PSIODOUBLEBUFFER |
b91da237 KM |
73 | Cause the driver to double buffer the output from the map that |
74 | is going to the refresh buffer. | |
75 | The argument is again a user space address where the real arguments are stored. | |
76 | The first argument is the starting address of refresh memory where the two | |
77 | double buffers are located. | |
78 | The second argument is the length of each double buffer. | |
79 | The refresh mechanism displays the current double buffer, in addition | |
80 | to its static refresh lists, when in double buffer mode. | |
9903e566 | 81 | .It Dv PSIOSINGLEREFRESH |
b91da237 KM |
82 | Single step the refresh process. That is, the driver does not continually |
83 | refresh the screen. | |
9903e566 | 84 | .It Dv PSIOSINGLEMAP |
b91da237 | 85 | Single step the matrix process. |
8781d1b7 | 86 | The driver does not automatically feed display files through the matrix unit. |
9903e566 | 87 | .It Dv PSIOSINGLEBUFFER |
b91da237 | 88 | Turn off double buffering. |
9903e566 | 89 | .It Dv PSIOTIMEREFRESH |
b91da237 KM |
90 | The argument is a count of the number of refresh interrupts to take |
91 | before turning off the screen. This is used to do time exposures. | |
9903e566 | 92 | .It Dv PSIOWAITREFRESH |
b91da237 | 93 | Suspend the user process until a refresh interrupt has occurred. |
9903e566 CL |
94 | If in |
95 | .Dv TIMEREFRESH | |
96 | mode, suspend until count refreshes have occurred. | |
97 | .It Dv PSIOSTOPREFRESH | |
b91da237 | 98 | Wait for the next refresh, stop all refreshes, and then return to user process. |
9903e566 | 99 | .It Dv PSIOWAITMAP |
b91da237 | 100 | Wait until a map done interrupt has occurred. |
9903e566 | 101 | .It Dv PSIOSTOPMAP |
b91da237 KM |
102 | Wait for a map done interrupt, do not restart the map, and then |
103 | return to the user. | |
9903e566 CL |
104 | .El |
105 | .Sh FILES | |
106 | .Bl -tag -width /dev/psxx | |
107 | .It Pa /dev/ps | |
108 | .El | |
109 | .Sh DIAGNOSTICS | |
110 | .Bl -diag | |
111 | .It ps device intr. | |
112 | .It ps dma intr. | |
b91da237 KM |
113 | An interrupt was received from the device. |
114 | This shouldn't happen, | |
115 | check your device configuration for overlapping interrupt vectors. | |
9903e566 CL |
116 | .El |
117 | .Sh HISTORY | |
118 | The | |
119 | .Nm | |
120 | driver appeared in | |
121 | .Bx 4.2 . | |
122 | .Sh BUGS | |
b91da237 KM |
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. |