4.4BSD snapshot (revision 8.1); add 1993 to copyright
[unix-history] / usr / src / share / man / man4 / man4.vax / ps.4
CommitLineData
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 17The
9903e566 18.Nm ps
b91da237
KM
19driver provides access
20to an Evans and
21Sutherland Picture System 2 graphics device.
9903e566
CL
22Each minor device is a new
23.Tn PS2 .
b91da237
KM
24When the device is opened, its interface registers are mapped,
25via virtual memory, into a user process's address space.
26This allows the user process very high bandwidth to the device
27with no system call overhead.
9903e566
CL
28.Pp
29.Tn DMA
30to and from the
31.Tn PS2
32is not supported. All read and write
b91da237 33system calls will fail.
9903e566
CL
34All data is moved to and from the
35.Tn PS2
36via programmed
37.Tn I/O
38using
b91da237 39the device's interface registers.
9903e566
CL
40.Pp
41Commands 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
45Returns the virtual address through which the user process can access
46the device's interface registers.
9903e566 47.It Dv PSIOAUTOREFRESH
b91da237
KM
48Start auto refreshing the screen.
49The argument is an address in user space where the following data resides.
50The first longword is a
9903e566 51.Em count
b91da237
KM
52of the number of static refresh buffers.
53The next
9903e566 54.Em count
b91da237
KM
55longwords are the addresses in refresh memory where
56the refresh buffers lie.
8781d1b7 57The driver will cycle through these refresh buffers displaying them one by one
b91da237 58on the screen.
9903e566 59.It Dv PSIOAUTOMAP
8781d1b7 60Start automatically passing the display file through the matrix processor and
b91da237
KM
61into the refresh buffer.
62The argument is an address in user memory where the following data resides.
63The first longword is a
9903e566 64.Em count
b91da237
KM
65of the number of display files to operate on.
66The next
9903e566 67.Em count
b91da237
KM
68longwords are the address of these display files.
69The final longword is the address in refresh buffer memory where transformed
70coordinates are to be placed if the driver is not in double buffer mode (see
71below).
9903e566 72.It Dv PSIODOUBLEBUFFER
b91da237
KM
73Cause the driver to double buffer the output from the map that
74is going to the refresh buffer.
75The argument is again a user space address where the real arguments are stored.
76The first argument is the starting address of refresh memory where the two
77double buffers are located.
78The second argument is the length of each double buffer.
79The refresh mechanism displays the current double buffer, in addition
80to its static refresh lists, when in double buffer mode.
9903e566 81.It Dv PSIOSINGLEREFRESH
b91da237
KM
82Single step the refresh process. That is, the driver does not continually
83refresh the screen.
9903e566 84.It Dv PSIOSINGLEMAP
b91da237 85Single step the matrix process.
8781d1b7 86The driver does not automatically feed display files through the matrix unit.
9903e566 87.It Dv PSIOSINGLEBUFFER
b91da237 88Turn off double buffering.
9903e566 89.It Dv PSIOTIMEREFRESH
b91da237
KM
90The argument is a count of the number of refresh interrupts to take
91before turning off the screen. This is used to do time exposures.
9903e566 92.It Dv PSIOWAITREFRESH
b91da237 93Suspend the user process until a refresh interrupt has occurred.
9903e566
CL
94If in
95.Dv TIMEREFRESH
96mode, suspend until count refreshes have occurred.
97.It Dv PSIOSTOPREFRESH
b91da237 98Wait for the next refresh, stop all refreshes, and then return to user process.
9903e566 99.It Dv PSIOWAITMAP
b91da237 100Wait until a map done interrupt has occurred.
9903e566 101.It Dv PSIOSTOPMAP
b91da237
KM
102Wait for a map done interrupt, do not restart the map, and then
103return 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
113An interrupt was received from the device.
114This shouldn't happen,
115check your device configuration for overlapping interrupt vectors.
9903e566
CL
116.El
117.Sh HISTORY
118The
119.Nm
120driver appeared in
121.Bx 4.2 .
122.Sh BUGS
b91da237
KM
123An invalid access (e.g., longword) to a mapped interface register
124can cause the system to crash with a machine check.
125A user process could possibly cause infinite interrupts hence
126bringing things to a crawl.