xref: /netbsd-src/share/man/man9/wsdisplay.9 (revision 05859157e6397edc63b68f9cbff294ac7b3790e4)
1*05859157Swiz.\"     $NetBSD: wsdisplay.9,v 1.23 2010/12/02 12:54:13 wiz Exp $
23609682aSgmcgarry.\"
3a8f1cb84Sjmmv.\" Copyright (c) 2001, 2004 The NetBSD Foundation, Inc.
43609682aSgmcgarry.\" All rights reserved.
53609682aSgmcgarry.\"
63609682aSgmcgarry.\" This code is derived from software contributed to The NetBSD Foundation
73609682aSgmcgarry.\" by Gregory McGarry.
83609682aSgmcgarry.\"
93609682aSgmcgarry.\" Redistribution and use in source and binary forms, with or without
103609682aSgmcgarry.\" modification, are permitted provided that the following conditions
113609682aSgmcgarry.\" are met:
123609682aSgmcgarry.\" 1. Redistributions of source code must retain the above copyright
133609682aSgmcgarry.\"    notice, this list of conditions and the following disclaimer.
143609682aSgmcgarry.\" 2. Redistributions in binary form must reproduce the above copyright
153609682aSgmcgarry.\"    notice, this list of conditions and the following disclaimer in the
163609682aSgmcgarry.\"    documentation and/or other materials provided with the distribution.
173609682aSgmcgarry.\"
183609682aSgmcgarry.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
193609682aSgmcgarry.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
203609682aSgmcgarry.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
213609682aSgmcgarry.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
223609682aSgmcgarry.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
233609682aSgmcgarry.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
243609682aSgmcgarry.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
253609682aSgmcgarry.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
263609682aSgmcgarry.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
273609682aSgmcgarry.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
283609682aSgmcgarry.\" POSSIBILITY OF SUCH DAMAGE.
293609682aSgmcgarry.\"
30766ab885Sjmmv.Dd April 15, 2006
313609682aSgmcgarry.Dt WSDISPLAY 9
323609682aSgmcgarry.Os
333609682aSgmcgarry.Sh NAME
343609682aSgmcgarry.Nm wsdisplay ,
353609682aSgmcgarry.Nm wsdisplay_switchtoconsole ,
363609682aSgmcgarry.Nm wsdisplay_cnattach ,
373609682aSgmcgarry.Nm wsdisplaydevprint ,
383609682aSgmcgarry.Nm wsemuldisplaydevprint
393609682aSgmcgarry.Nd wscons display support
403609682aSgmcgarry.Sh SYNOPSIS
41472351e1Swiz.In dev/wscons/wsconsio.h
42472351e1Swiz.In dev/wscons/wsdisplayvar.h
43472351e1Swiz.In dev/wscons/wsemulvar.h
44472351e1Swiz.In dev/wscons/wsemul_vt100var.h
453609682aSgmcgarry.Ft void
463609682aSgmcgarry.Fn wsdisplay_switchtoconsole ""
473609682aSgmcgarry.Ft void
483609682aSgmcgarry.Fn wsdisplay_cnattach "const struct wsscreen_descr *type" "void *cookie" \
493609682aSgmcgarry"int ccol" "int crow" "long defattr"
503609682aSgmcgarry.Ft void
513609682aSgmcgarry.Fn wsemul_xxx_cnattach "const struct wsscreen_descr *type" "void *cookie" \
523609682aSgmcgarry"int ccol" "int crow" "long defattr"
533609682aSgmcgarry.Ft int
543609682aSgmcgarry.Fn wsdisplaydevprint "void *aux" "const char *pnp"
553609682aSgmcgarry.Ft int
563609682aSgmcgarry.Fn wsemuldisplaydevprint "void * aux" "const char *pnp"
573609682aSgmcgarry.Sh DESCRIPTION
583609682aSgmcgarryThe
593609682aSgmcgarry.Nm
603609682aSgmcgarrymodule is a component of the
613609682aSgmcgarry.Xr wscons 9
62770eef21Swizframework to provide machine-independent display support.
63770eef21SwizMost of the support is provided by the
643609682aSgmcgarry.Xr wsdisplay 4
653609682aSgmcgarrydevice driver, which must be a child of the hardware device driver.
663609682aSgmcgarry.Pp
673609682aSgmcgarryThe wscons display interface is complicated by the fact that there are
68770eef21Swiztwo different interfaces.
69770eef21SwizThe first interface corresponds to the simple bit-mapped display which
70770eef21Swizdoesn't provide terminal-emulation and console facilities.
71770eef21SwizThe second interface provides machine-independent terminal emulation
72770eef21Swizfor displays that can support glass-tty terminal emulations.
73770eef21SwizThese are character-oriented displays, with row and column numbers
74770eef21Swizstarting at zero in the upper left hand corner of the screen.
75770eef21SwizDisplay drivers which cannot emulate terminals use the first interface.
76770eef21SwizIn most cases, the low-level hardware driver can use the
773609682aSgmcgarry.Xr rasops 9
783609682aSgmcgarryinterface to provide enough support to allow glass-tty terminal
79770eef21Swizemulation.
80770eef21SwizIf the display is not the console, terminal emulation does not make
81770eef21Swizsense and the display operates using the bit-mapped interface.
823609682aSgmcgarry.Pp
83770eef21SwizThe wscons framework allows concurrent displays to be active.
84770eef21SwizIt also provides support for multiple screens for each display and
85770eef21Swiztherefore allows a virtual terminal on each screen.
86770eef21SwizMultiple terminal emulations and fonts can be active at the same
87770eef21Swiztime allowing different emulations and fonts for each screen.
883609682aSgmcgarry.Pp
893609682aSgmcgarryFont manipulation facilities for the terminal emulation interface are
903609682aSgmcgarryavailable through the
913609682aSgmcgarry.Xr wsfont 9
923609682aSgmcgarrymodule.
933609682aSgmcgarry.Sh DATA TYPES
943609682aSgmcgarryDisplay drivers providing support for wscons displays will make use
953609682aSgmcgarryof the following data types:
963609682aSgmcgarry.Bl -tag -width compact
973609682aSgmcgarry.It Fa struct wsdisplay_accessops
983609682aSgmcgarryA structure used to specify the display access functions invoked by
99770eef21Swizuserland program which require direct device access, such as X11.
100770eef21SwizAll displays must provide this structure and pass it to the
1013609682aSgmcgarry.Xr wsdisplay 4
102770eef21Swizchild device.
103770eef21SwizIt has the following members:
1043609682aSgmcgarry.Bd -literal
10538d8c6bfSjmmv	int	(*ioctl)(void *v, void *vs, u_long cmd,
106c1a14b53Sdogcow			void *data, int flag, struct lwp *l);
10738d8c6bfSjmmv	paddr_t	(*mmap)(void *v, void *vs, off_t off, int prot);
1083609682aSgmcgarry	int	(*alloc_screen)(void *,
1093609682aSgmcgarry			const struct wsscreen_descr *, void **,
1103609682aSgmcgarry			int *, int *, long *);
1113609682aSgmcgarry	void	(*free_screen)(void *, void *);
1123609682aSgmcgarry	int	(*show_screen)(void *, void *, int,
1133609682aSgmcgarry			void (*)(), void *);
1143609682aSgmcgarry	int	(*load_font)(void *, void *,
1153609682aSgmcgarry			struct wsdisplay_font *);
1163609682aSgmcgarry	void	(*pollc)(void *, int);
11783d61f40Swiz	void	(*scroll)(void *, void *, int);
1183609682aSgmcgarry.Ed
1193609682aSgmcgarry.Pp
1203609682aSgmcgarryThe
1213609682aSgmcgarry.Fa ioctl
1223609682aSgmcgarrymember defines the function to be called to perform display-specific
123770eef21Swizioctl calls.
124770eef21SwizThe
1253609682aSgmcgarry.Fa mmap
1263609682aSgmcgarrymember defines the function for mapping a part of the display device
127770eef21Swizinto user address space.
128770eef21SwizThe
1293609682aSgmcgarry.Fa alloc_screen
1303609682aSgmcgarrymember defines a function for allocating a new screen which can be
131770eef21Swizused as a virtual terminal.
132770eef21SwizThe
1333609682aSgmcgarry.Fa free_screen
134770eef21Swizmember defines a function for de-allocating a screen.
135770eef21SwizThe
1363609682aSgmcgarry.Fa show_screen
1373609682aSgmcgarrymember defines a function for mapping a screen onto the physical
138770eef21Swizdisplay.
1391a30d8a5SsnjThis function is used for switching between screens.
140770eef21SwizThe
1413609682aSgmcgarry.Fa load_font
1423609682aSgmcgarrymember defines a function for loading a new font into the display.
1433609682aSgmcgarryThe
1443609682aSgmcgarry.Fa pollc
1453609682aSgmcgarrymember defines a function for polling the console.
146a8f1cb84SjmmvThe
147a8f1cb84Sjmmv.Fa scroll
148a8f1cb84Sjmmvmember defines a function for scrolling the contents of the display.
1493609682aSgmcgarry.Pp
1503609682aSgmcgarryThere is a
1513609682aSgmcgarry.Fa void *
1523609682aSgmcgarrycookie provided by the display driver associated with these
1533609682aSgmcgarryfunctions, which is passed to them when they are invoked.
15438d8c6bfSjmmv.Pp
15538d8c6bfSjmmvThe
15638d8c6bfSjmmv.Fa void *vs
15738d8c6bfSjmmvcookie, passed to
15838d8c6bfSjmmv.Fn ioctl
15938d8c6bfSjmmvand
16038d8c6bfSjmmv.Fn mmap ,
16138d8c6bfSjmmvpoints to the virtual screen on which these operations were executed.
1623609682aSgmcgarry.It Fa struct wsdisplaydev_attach_args
1633609682aSgmcgarryA structure used to attach the
1643609682aSgmcgarry.Xr wsdisplay 4
165770eef21Swizchild device for the simple bit-mapped interface.
166770eef21SwizIt has the following members:
1673609682aSgmcgarry.Bd -literal
1683609682aSgmcgarry	const struct wsdisplay_accessops *accessops;
1693609682aSgmcgarry	void *accesscookie;
1703609682aSgmcgarry.Ed
1711a30d8a5SsnjIf the full terminal-emulation interface is to be used, then
1721a30d8a5Ssnj.Em struct wsemuldisplaydev_attach_args
1731a30d8a5Ssnjshould be used instead.
1743609682aSgmcgarry.It Fa struct wsemuldisplaydev_attach_args
1753609682aSgmcgarryA structure used to attach the
1763609682aSgmcgarry.Xr wsdisplay 4
177770eef21Swizchild device for the full terminal emulation interface.
178770eef21SwizIt has the following members:
1793609682aSgmcgarry.Bd -literal
1803609682aSgmcgarry	int console;
1813609682aSgmcgarry	const struct wsscreen_list *scrdata;
1823609682aSgmcgarry	const struct wsdisplay_accessops *accessops;
1833609682aSgmcgarry	void *accesscookie;
1843609682aSgmcgarry.Ed
1851a30d8a5SsnjIf the simple bit-mapped interface is to be used, then
1861a30d8a5Ssnj.Em struct wsdisplaydev_attach_args
1871a30d8a5Ssnjshould be used instead.
1883609682aSgmcgarry.It Fa struct wsdisplay_emulops
189770eef21SwizA structure used to specify the display emulation functions.
190770eef21SwizAll displays intending to provide terminal emulation must provide
1913609682aSgmcgarrythis structure and pass it to the
1923609682aSgmcgarry.Xr wsdisplay 4
193770eef21Swizchild device.
194770eef21SwizIt has the following members:
1953609682aSgmcgarry.Bd -literal
1963609682aSgmcgarry	void	(*cursor)(void *c, int on, int row, int col);
1973609682aSgmcgarry	int	(*mapchar)(void *, int, unsigned int *);
1983609682aSgmcgarry	void	(*putchar)(void *c, int row, int col,
1993609682aSgmcgarry			u_int uc, long attr);
2003609682aSgmcgarry	void	(*copycols)(void *c, int row, int srccol,
2013609682aSgmcgarry			int dstcol, int ncols);
2023609682aSgmcgarry	void	(*erasecols)(void *c, int row, int startcol,
2033609682aSgmcgarry			int ncols, long);
2043609682aSgmcgarry	void	(*copyrows)(void *c, int srcrow, int dstrow,
2053609682aSgmcgarry			int nrows);
2063609682aSgmcgarry	void	(*eraserows)(void *c, int row, int nrows, long);
20772b72236Sjunyoung	int	(*allocattr)(void *c, int fg, int bg, int flags,
2083609682aSgmcgarry			long *);
209a8f1cb84Sjmmv	void	(*replaceattr)(void *c, long oldattr,
210a8f1cb84Sjmmv			long newattr);
2113609682aSgmcgarry.Ed
2123609682aSgmcgarry.Pp
213a8f1cb84SjmmvThe
214a8f1cb84Sjmmv.Fa cursor
215a8f1cb84Sjmmvmember defines a function for painting (or unpainting, depending on the
216a8f1cb84Sjmmv.Va on
217a8f1cb84Sjmmvparameter) the cursor at the specified position.
218a8f1cb84SjmmvThe
219a8f1cb84Sjmmv.Fa mapchar
220a8f1cb84Sjmmvmember defines a function for changing the character mapped at a given
221a8f1cb84Sjmmvposition in the character table.
222a8f1cb84SjmmvThe
223a8f1cb84Sjmmv.Fa putchar
22483d61f40Swizmember defines a function for writing a character on the screen, given
225a8f1cb84Sjmmvits position and attribute.
226a8f1cb84SjmmvThe
227a8f1cb84Sjmmv.Fa copycols
228a8f1cb84Sjmmvmember defines a function for copying a set of columns within the same
229a8f1cb84Sjmmvline.
230a8f1cb84SjmmvThe
231a8f1cb84Sjmmv.Fa erasecols
232a8f1cb84Sjmmvmember defines a function for clearing a set of columns in a line,
233a8f1cb84Sjmmvfilling the space with the given attribute.
234a8f1cb84SjmmvThe
235a8f1cb84Sjmmv.Fa copyrows
236a8f1cb84Sjmmvmember defines a function for copying a set of complete rows.
237a8f1cb84SjmmvThe
238a8f1cb84Sjmmv.Fa eraserows
239a8f1cb84Sjmmvmember defines a function for clearing a set of complete rows,
240a8f1cb84Sjmmvfilling the space with the given attribute.
241a8f1cb84SjmmvThe
242a8f1cb84Sjmmv.Fa allocattr
243a8f1cb84Sjmmvmember defines a function for converting an attribute specification
244a8f1cb84Sjmmvgiven by its foreground color, background color and flags, to the
245a8f1cb84Sjmmvinternal representation used by the underlying graphics driver.
246a8f1cb84SjmmvThe
247a8f1cb84Sjmmv.Fa replaceattr
248a8f1cb84Sjmmvmember defines a function for replacing an attribute by another one
249a8f1cb84Sjmmvacross the whole visible part of the screen; this function is optional.
250a8f1cb84Sjmmv.Pp
2513609682aSgmcgarryThere is a
2523609682aSgmcgarry.Fa void *
2533609682aSgmcgarrycookie provided by the display driver associated with these
2543609682aSgmcgarryfunctions, which is passed to them when they are invoked.
2553609682aSgmcgarry.It Fa struct wsscreen_descr
256e32fc00eSuweA structure passed to wscons by the display driver to describe a
257770eef21Swizscreen.
258770eef21SwizAll displays which can operate as a console must provide this structure
259770eef21Swizand pass it to the
2603609682aSgmcgarry.Xr wsdisplay 4
261770eef21Swizchild device.
262770eef21SwizIt contains the following members:
2633609682aSgmcgarry.Bd -literal
2643609682aSgmcgarry        char *name;
2653609682aSgmcgarry        int ncols, nrows;
2663609682aSgmcgarry        const struct wsdisplay_emulops *textops;
2673609682aSgmcgarry        int fontwidth, fontheight;
2683609682aSgmcgarry        int capabilities;
2693609682aSgmcgarry.Ed
2703609682aSgmcgarry.Pp
2713609682aSgmcgarryThe
2723609682aSgmcgarry.Em capabilities
273770eef21Swizmember is a set of flags describing the screen capabilities.
274770eef21SwizIt can contain the following flags:
2753609682aSgmcgarry.Pp
2763609682aSgmcgarry.Bl -tag -offset indent -width WSSCREEN_UNDERLINE -compact
2773609682aSgmcgarry.It WSSCREEN_WSCOLORS
2783609682aSgmcgarryminimal color capability
2793609682aSgmcgarry.It WSSCREEN_REVERSE
2803609682aSgmcgarrycan display reversed
2813609682aSgmcgarry.It WSSCREEN_HILIT
2823609682aSgmcgarrycan highlight (however)
2833609682aSgmcgarry.It WSSCREEN_BLINK
2843609682aSgmcgarrycan blink
2853609682aSgmcgarry.It WSSCREEN_UNDERLINE
2863609682aSgmcgarrycan underline
2873609682aSgmcgarry.El
2883609682aSgmcgarry.It Fa struct wsscreen_list
2893609682aSgmcgarryA structure passed to wscons by the display driver to tell about its
290770eef21Swizcapabilities.
291770eef21SwizIt contains the following members:
2923609682aSgmcgarry.Bd -literal
2933609682aSgmcgarry	int nscreens;
2943609682aSgmcgarry	const struct wsscreen_descr **screens;
2953609682aSgmcgarry.Ed
2963609682aSgmcgarry.It Fa struct wscons_syncops
297e32fc00eSuweA structure passed to wscons by the display driver describing the
2982f9d07f1Swizinterface for external screen switching/process synchronization.
2993609682aSgmcgarryThis structure is optional and only required by displays operating
300770eef21Swizwith terminal emulation and intending to support multiple screens.
301770eef21SwizIt contains the following members:
3023609682aSgmcgarry.Bd -literal
3033609682aSgmcgarry	int	(*detach)(void *, int, void (*)(), void *);
3043609682aSgmcgarry	int	(*attach)(void *, int, void (*)(), void *);
3053609682aSgmcgarry	int	(*check)(void *);
3063609682aSgmcgarry	void	(*destroy)(void *);
3073609682aSgmcgarry.Ed
3083609682aSgmcgarry.El
3093609682aSgmcgarry.Sh FUNCTIONS
3103609682aSgmcgarry.Bl -tag -width compact
3113609682aSgmcgarry.It Fn wsdisplay_switchtoconsole ""
3123609682aSgmcgarrySwitch the console display to its first screen.
3133609682aSgmcgarry.It Fn wsdisplay_cnattach "type" "cookie" "ccol" "crow" "defattr"
3143609682aSgmcgarryAttach this display as the console input by specifying the number of
3153609682aSgmcgarrycolumns
3163609682aSgmcgarry.Fa ccol
3173609682aSgmcgarryand number of rows
3183609682aSgmcgarry.Fa crows .
3193609682aSgmcgarryThe argument
3203609682aSgmcgarry.Fa defattr
3212f9d07f1Swizspecifies the default attribute (color) for the console.
3223609682aSgmcgarry.It Fn wsemul_xxx_cnattach "type" "cookie" "ccol" "crow" "defattr"
3233609682aSgmcgarryAttach this display as the console with terminal emulation described
3243609682aSgmcgarryby the
3253609682aSgmcgarry.Em xxx
3263609682aSgmcgarryand specifying the number of columns
3273609682aSgmcgarry.Fa ccol
3283609682aSgmcgarryand number of rows
3293609682aSgmcgarry.Fa crows .
3303609682aSgmcgarryThe argument
3313609682aSgmcgarry.Fa defattr
332770eef21Swizspecifies the default attribute (color) for the console.
333770eef21SwizDifferent terminal emulations can be active at the same time on one display.
3343609682aSgmcgarry.It Fn wsdisplaydevprint "aux" "pnp"
3353609682aSgmcgarryThe default wsdisplay printing routine used by
3363609682aSgmcgarry.Fn config_found .
3373609682aSgmcgarry(see
3383609682aSgmcgarry.Xr autoconf 9 ) .
3393609682aSgmcgarry.It Fn wsemuldisplaydevprint "aux" "pnp"
3403609682aSgmcgarryThe default wsemul printing routine used by
3413609682aSgmcgarry.Fn config_found .
3423609682aSgmcgarry(see
3433609682aSgmcgarry.Xr autoconf 9 ) .
3443609682aSgmcgarry.El
3453609682aSgmcgarry.Sh AUTOCONFIGURATION
34643e0efbdSperryDisplay drivers which want to use the wsdisplay module must be a
3473609682aSgmcgarryparent to the
3483609682aSgmcgarry.Xr wsdisplay 4
349770eef21Swizdevice and provide an attachment interface.
350770eef21SwizTo attach the
3513609682aSgmcgarry.Xr wsdisplay 4
3523609682aSgmcgarrydevice, the display driver must allocate and populate a
3533609682aSgmcgarry.Fa wsdisplaydev_attach_args
3543609682aSgmcgarrystructure with the supported operations and callbacks and call
3553609682aSgmcgarry.Fn config_found
3563609682aSgmcgarryto perform the attach (see
3573609682aSgmcgarry.Xr autoconf 9 ) .
3583609682aSgmcgarry.Pp
35943e0efbdSperryDisplay drivers which want to use the wscons terminal emulation
3603609682aSgmcgarrymodule must be a parent to the
3613609682aSgmcgarry.Xr wsdisplay 4
3623609682aSgmcgarrydevice and provide a
3633609682aSgmcgarry.Fa wsemuldisplaydev_attach_args
3643609682aSgmcgarrystructure instead of the standard
365a59447b7Sjunyoung.Fa wsdisplaydev_attach_args
3663609682aSgmcgarryto
3673609682aSgmcgarry.Fn config_found
368770eef21Swizto perform the attach.
369770eef21SwizIf the display is not the console the attachment is the same
370770eef21Swizas wsdisplaydev_attach_args.
3713609682aSgmcgarry.Sh OPERATION
3722f9d07f1SwizIf the display belongs to the system console, it must describe the
3733609682aSgmcgarrydefault screen by invoking
374a59447b7Sjunyoung.Fn wsdisplay_cnattach
3753609682aSgmcgarryat console attach time.
3763609682aSgmcgarry.Pp
3773609682aSgmcgarryAll display manipulation is performed by the wscons interface by using
3783609682aSgmcgarrythe callbacks defined in the
3793609682aSgmcgarry.Em wsdisplay_accessops
380770eef21Swizstructure.
381770eef21SwizThe
3823609682aSgmcgarry.Fn ioctl
3833609682aSgmcgarryfunction is called by the wscons interface to perform display-specific
3843609682aSgmcgarryioctl operations (see
3853609682aSgmcgarry.Xr ioctl 2 ) .
3863609682aSgmcgarryThe argument
3872f6c7b64Sbjh21.Fa cmd
3882f6c7b64Sbjh21to the
3893609682aSgmcgarry.Fn ioctl
3903609682aSgmcgarryfunction specifies the specific command to perform using the data
39127b327f0Suebayasi.Fa data .
39227b327f0SuebayasiValid commands are listed in
3932f6c7b64Sbjh21.Pa sys/dev/wscons/wsconsio.h
3942f6c7b64Sbjh21and documented in
3952f6c7b64Sbjh21.Xr wsdisplay 4 .
3963609682aSgmcgarryOperations for terminal emulation are performed using the callbacks
3973609682aSgmcgarrydefined in the
3983609682aSgmcgarry.Em wsdisplay_emulops
3993609682aSgmcgarrystructure.
4003609682aSgmcgarry.Sh CODE REFERENCES
4013609682aSgmcgarryThe wscons subsystem is implemented within the directory
4023609682aSgmcgarry.Pa sys/dev/wscons .
4033609682aSgmcgarryThe
4043609682aSgmcgarry.Nm
405a59447b7Sjunyoungmodule itself is implemented within the file
4063609682aSgmcgarry.Pa sys/dev/wscons/wsdisplay.c .
4073609682aSgmcgarryThe terminal emulation support
408a59447b7Sjunyoungis implemented within the files
4093609682aSgmcgarry.Pa sys/dev/wscons/wsemul_* .
4103609682aSgmcgarry.Xr ioctl 2
4113609682aSgmcgarryoperations are listed in
4123609682aSgmcgarry.Pa sys/dev/wscons/wsconsio.h .
4133609682aSgmcgarry.Sh SEE ALSO
4143609682aSgmcgarry.Xr ioctl 2 ,
4152f6c7b64Sbjh21.Xr wsdisplay 4 ,
4163609682aSgmcgarry.Xr autoconf 9 ,
4173609682aSgmcgarry.Xr driver 9 ,
4183609682aSgmcgarry.Xr intro 9 ,
4193609682aSgmcgarry.Xr rasops 9 ,
4203609682aSgmcgarry.Xr wsfont 9 ,
4213609682aSgmcgarry.Xr wskbd 9 ,
4223609682aSgmcgarry.Xr wsmouse 9
423