summaryrefslogtreecommitdiff
path: root/share/man/man4/wsdisplay.4
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man4/wsdisplay.4')
-rw-r--r--share/man/man4/wsdisplay.4305
1 files changed, 302 insertions, 3 deletions
diff --git a/share/man/man4/wsdisplay.4 b/share/man/man4/wsdisplay.4
index 42838c1c790..8c42013a333 100644
--- a/share/man/man4/wsdisplay.4
+++ b/share/man/man4/wsdisplay.4
@@ -1,7 +1,8 @@
-.\" $OpenBSD: wsdisplay.4,v 1.31 2005/01/04 19:22:17 jmc Exp $
+.\" $OpenBSD: wsdisplay.4,v 1.32 2005/05/14 16:36:07 miod Exp $
.\" $NetBSD: wsdisplay.4,v 1.5 2000/05/13 15:22:19 mycroft Exp $
.\"
.\" Copyright (c) 1999 Matthias Drochner.
+.\" Copyright (c) 2002 Ben Harris.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -106,6 +107,13 @@ device instance.
.Dq emulating
display devices are usable as console.)
.Pp
+The
+.Em mux
+locator in the configuration line refers to the
+.Xr wsmux 4
+that will be used to get keyboard events.
+If this locator is -1 no mux will be used.
+.Pp
The logical unit of an independent contents displayed on a display
(sometimes referred to as
.Dq virtual terminal )
@@ -117,8 +125,7 @@ be used on one display.
(As of this writing, only the
.Xr vga 4
and the
-.Tn VAX
-.Dq smg
+.Xr smg 4
display drivers provide this ability.)
Screens have different minor device numbers and separate tty instances.
One screen possesses the
@@ -171,6 +178,297 @@ for controlling variables.
.Pp
Consult the back-end drivers' documentation for which features are supported
for each particular hardware type.
+.Ss IOCTL INTERFACE
+The following
+.Xr ioctl 2
+calls are provided by the
+.Nm
+driver or by devices which use it.
+Their definition are found in
+.Aq Pa dev/wscons/wsconsio.h .
+.Bl -tag -width 4n
+.It Dv WSDISPLAYIO_GTYPE Pq Li u_int
+Retrieve the type of the display.
+The list of types is in
+.Aq Pa dev/wscons/wsconsio.h .
+.It Dv WSDISPLAYIO_GINFO Pq Li "struct wsdisplay_fbinfo"
+Retrieve basic information about a framebuffer display.
+The returned structure is as follows:
+.Bd -literal -offset indent
+struct wsdisplay_fbinfo {
+ u_int height;
+ u_int width;
+ u_int depth;
+ u_int cmsize;
+};
+.Ed
+.Pp
+The
+.Va height
+and
+.Va width
+members are counted in pixels.
+The
+.Va depth
+member indicates the number of bits per pixel, and
+.Va cmsize
+indicates the number of color map entries accessible through
+.Dv WSDISPLAYIO_GETCMAP
+and
+.Dv WSDISPLAYIO_PUTCMAP .
+This call is likely to be unavailable on text-only displays.
+.It Dv WSDISPLAYIO_GETCMAP Pq Li "struct wsdisplay_cmap"
+Retrieve the current color map from the display.
+This call needs the
+following structure set up beforehand:
+.Bd -literal -offset indent
+struct wsdisplay_cmap {
+ u_int index;
+ u_int count;
+ u_char *red;
+ u_char *green;
+ u_char *blue;
+};
+.Ed
+.Pp
+The
+.Va index
+and
+.Va count
+members specify the range of color map entries to retrieve.
+The
+.Va red ,
+.Va green ,
+and
+.Va blue
+members should each point to an array of
+.Va count
+.Li u_char Ns s .
+On return, these will be filled in with the appropriate entries from the
+color map.
+On all displays that support this call, values range from 0 for minimum
+intensity to 255 for maximum intensity, even if the display does not use
+eight bits internally to represent intensity.
+.It Dv WSDISPLAYIO_PUTCMAP Pq Li "struct wsdisplay_cmap"
+Change the display's color map.
+The argument structure is the same as for
+.Dv WSDISPLAYIO_GETCMAP ,
+but
+.Va red ,
+.Va green ,
+and
+.Va blue
+are taken as pointers to the values to use to set the color map.
+This call is not available on displays with fixed color maps.
+.It Dv WSDISPLAYIO_GVIDEO Pq Li u_int
+Get the current state of the display's video output.
+Possible values are:
+.Bl -tag -width 21n
+.It Dv WSDISPLAYIO_VIDEO_OFF
+The display is blanked.
+.It Dv WSDISPLAYIO_VIDEO_ON
+The display is enabled.
+.El
+.It Dv WSDISPLAYIO_SVIDEO Pq Li u_int
+Set the state of the display's video output.
+See
+.Dv WSDISPLAYIO_GVIDEO
+above for possible values.
+.It Dv WSDISPLAYIO_GCURPOS Pq Li "struct wsdisplay_curpos"
+Retrieve the current position of the hardware cursor.
+The returned structure
+is as follows:
+.Bd -literal -offset indent
+struct wsdisplay_curpos {
+ u_int x, y;
+};
+.Ed
+.Pp
+The
+.Va x
+and
+.Va y
+members count the number of pixels right and down, respectively, from
+the top-left corner of the display to the hot spot of the cursor.
+This call is not available on displays without a hardware cursor.
+.It Dv WSDISPLAYOP_SCURPOS Pq Li "struct wsdisplay_curpos"
+Set the current cursor position.
+The argument structure, and its semantics,
+are the same as for
+.Dv WSDISPLAYIO_GCURPOS .
+This call is not available on displays without a hardware cursor.
+.It Dv WSDISPLAYIO_GCURMAX Pq Li "struct wsdisplay_curpos"
+Retrieve the maximum size of cursor supported by the display.
+The
+.Va x
+and
+.Va y
+members of the returned structure indicate the maximum number of pixel rows
+and columns, respectively, in a hardware cursor on this display.
+This call is not available on displays without a hardware cursor.
+.It Dv WSDISPLAYIO_GCURSOR Pq Li "struct wsdisplay_cursor"
+Retrieve some or all of the hardware cursor's attributes.
+The argument structure is as follows:
+.Bd -literal -offset indent
+struct wsdisplay_cursor {
+ u_int which;
+ u_int enable;
+ struct wsdisplay_curpos pos;
+ struct wsdisplay_curpos hot;
+ struct wsdisplay_cmap cmap;
+ struct wsdisplay_curpos size;
+ u_char *image;
+ u_char *mask;
+};
+.Pp
+.Ed
+The
+.Va which
+member indicates which of the values the application requires to be returned.
+It should contain the logical OR of the following flags:
+.Bl -tag -width 4n
+.It Dv WSDISPLAYIO_CURSOR_DOCUR
+Get
+.Va enable ,
+which indicates whether the cursor is currently displayed (non-zero) or
+not (zero).
+.It Dv WSDISPLAYIO_CURSOR_DOPOS
+Get
+.Va pos ,
+which indicates the current position of the cursor on the display, as
+would be returned by
+.Dv WSDISPLAYIO_GCURPOS .
+.It Dv WSDISPLAYIO_CURSOR_DOHOT
+Get
+.Va hot ,
+which indicates the location of the
+.Dq hot spot
+within the cursor.
+This is the point on the cursor whose position on the display is treated
+as being the position of the cursor by other calls.
+Its location is counted in pixels from the top-left corner of the cursor.
+.It Dv WSDISPLAYIO_CURSOR_DOCMAP
+Get
+.Va cmap ,
+which indicates the current cursor color map.
+Unlike in a call to
+.Dv WSDISPLAYIO_GETCMAP ,
+.Va cmap
+here need not have its
+.Va index
+and
+.Va count
+members initialized.
+They will be set to 0 and 2 respectively by the call.
+This means that
+.Va cmap . Ns Va red ,
+.Va cmap . Ns Va green ,
+and
+.Va cmap . Ns Va blue
+must each point to at least enough space to hold two
+.Li u_char Ns s .
+.It Dv WSDISPLAYIO_CURSOR_DOSHAPE
+Get
+.Va size , image ,
+and
+.Va mask .
+These are, respectively, the dimensions of the cursor in pixels, the
+bitmap of set pixels in the cursor and the bitmap of opaque pixels in
+the cursor.
+The format in which these bitmaps are returned, and hence the amount of
+space that must be provided by the application, are device-dependent.
+.It Dv WSDISPLAYIO_CURSOR_DOALL
+Get all of the above.
+.El
+.Pp
+The device may elect to return information that was not requested by the user,
+so those elements of
+.Li "struct wsdisplay_cursor"
+which are pointers should be initialized to
+.Dv NULL
+if not otherwise used.
+This call is not available on displays without a hardware cursor.
+.It Dv WSDISPLAYIO_SCURSOR Pq Li "struct wsdisplay_cursor"
+Set some or all of the hardware cursor's attributes.
+The argument structure is the same as for
+.Dv WSDISPLAYIO_GCURSOR .
+The
+.Va which
+member specifies which attributes of the cursor are to be changed.
+It should contain the logical OR of the following flags:
+.Bl -tag -width 4n
+.It Dv WSDISPLAYIO_CURSOR_DOCUR
+If
+.Va enable
+is zero, hide the cursor.
+Otherwise, display it.
+.It Dv WSDISPLAYIO_CURSOR_DOPOS
+Set the cursor's position on the display to
+.Va pos ,
+the same as
+.Dv WSDISPLAYIO_SCURPOS .
+.It Dv WSDISPLAYIO_CURSOR_DOHOT
+Set the
+.Dq hot spot
+of the cursor, as defined above, to
+.Va hot .
+.It Dv WSDISPLAYIO_CURSOR_DOCMAP
+Set some or all of the cursor color map based on
+.Va cmap .
+The
+.Va index
+and
+.Va count
+elements of
+.Va cmap
+indicate which color map entries to set, and the entries themselves come from
+.Va cmap . Ns Va red ,
+.Va cmap . Ns Va green ,
+and
+.Va cmap . Ns Va blue .
+.It Dv WSDISPLAYIO_CURSOR_DOSHAPE
+Set the cursor shape from
+.Va size , image ,
+.Va mask .
+See above for their meanings.
+.It Dv WSDISPLAYIO_CURSOR_DOALL
+Do all of the above.
+.El
+.Pp
+This call is not available on displays without a hardware cursor.
+.It Dv WSDISPLAYIO_GMODE Pq Li u_int
+Get the current mode of the display.
+Possible results include:
+.Bl -tag -width 4n
+.It Dv WSDISPLAYIO_MODE_EMUL
+The display is in emulating (text) mode.
+.It Dv WSDISPLAYIO_MODE_MAPPED
+The display is in mapped (graphics) mode.
+.It Dv WSDISPLAYIO_MODE_DUMBFB
+The display is in mapped (frame buffer) mode.
+.El
+.It Dv WSDISPLAYIO_SMODE Pq Li u_int
+Set the current mode of the display.
+For possible arguments, see
+.Dv WSDISPLAYIO_GMODE .
+.\" WSDISPLAYIO_LDFONT
+.\" WSDISPLAYIO_LSFONT
+.\" WSDISPLAYIO_DELFONT
+.\" WSDISPLAYIO_USEFONT
+.\" WSDISPLAYIO_SBURNER
+.\" WSDISPLAYIO_GBURNER
+.\" WSDISPLAYIO_ADDSCREEN
+.\" WSDISPLAYIO_DELSCREEN
+.\" WSDISPLAYIO_GETSCREEN
+.\" WSDISPLAYIO_SETSCREEN
+.\" WSDISPLAYIO_WSMOUSED
+.\" WSDISPLAYIO_GETPARAM
+.\" WSDISPLAYIO_SETPARAM
+.It Dv WSDISPLAYIO_LINEBYTES Pq Li u_int
+Get the number of bytes per row when the device is in
+.Dv WSDISPLAYIO_MODE_DUMBFB
+mode.
+.El
.Sh FILES
.Bl -tag -width /usr/include/dev/wscons/wsconsio.h -compact
.It Pa /dev/tty[C-F]*
@@ -180,6 +478,7 @@ control device (per screen)
.It Pa /usr/include/dev/wscons/wsconsio.h
.El
.Sh SEE ALSO
+.Xr ioctl 2 ,
.Xr agten 4 ,
.Xr bwtwo 4 ,
.Xr cgeight 4 ,