Add IOCTLS section and do some minor cleanup.
authorSascha Wildner <swildner@dragonflybsd.org>
Fri, 28 Jan 2005 19:12:11 +0000 (19:12 +0000)
committerSascha Wildner <swildner@dragonflybsd.org>
Fri, 28 Jan 2005 19:12:11 +0000 (19:12 +0000)
share/man/man4/syscons.4

index 2f67f86..6677a9a 100644 (file)
@@ -25,9 +25,9 @@
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/share/man/man4/syscons.4,v 1.10.2.14 2003/04/25 21:21:36 brueffer Exp $
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
 .\" $FreeBSD: src/share/man/man4/syscons.4,v 1.10.2.14 2003/04/25 21:21:36 brueffer Exp $
-.\" $DragonFly: src/share/man/man4/syscons.4,v 1.2 2003/06/17 04:36:59 dillon Exp $
+.\" $DragonFly: src/share/man/man4/syscons.4,v 1.3 2005/01/28 19:12:11 swildner Exp $
 .\"
 .\"
-.Dd June 30, 1999
+.Dd January 28, 2005
 .Dt SYSCONS 4
 .Os
 .Sh NAME
 .Dt SYSCONS 4
 .Os
 .Sh NAME
@@ -295,7 +295,8 @@ A good candidate is 0x03.
 .It Dv SC_PIXEL_MODE
 Adds support for pixel (raster) mode console.
 This mode is useful on some laptop computers, but less so on
 .It Dv SC_PIXEL_MODE
 Adds support for pixel (raster) mode console.
 This mode is useful on some laptop computers, but less so on
-most other systems, and it adds substantial amount of code to syscons.
+most other systems, and it adds substantial amount of code to
+.Nm .
 If this option is NOT defined, you can reduce the kernel size a lot.
 See the
 .Dv VESA800X600
 If this option is NOT defined, you can reduce the kernel size a lot.
 See the
 .Dv VESA800X600
@@ -403,10 +404,379 @@ option explained above.
 .\"Note also that the ``copy-and-paste'' function is not currently supported
 .\"in this mode and the mouse pointer will not be displayed.
 .It 0x0100 (AUTODETECT_KBD)
 .\"Note also that the ``copy-and-paste'' function is not currently supported
 .\"in this mode and the mouse pointer will not be displayed.
 .It 0x0100 (AUTODETECT_KBD)
-This option instructs the syscons driver to periodically scan
+This option instructs the
+.Nm
+driver to periodically scan
 for a keyboard device if it is not currently attached to one.
 Otherwise, the driver only probes for a keyboard once during bootup.
 .El
 for a keyboard device if it is not currently attached to one.
 Otherwise, the driver only probes for a keyboard once during bootup.
 .El
+.Sh IOCTLS
+The following
+.Xr ioctl 2
+commands are defined for the
+.Nm
+driver in
+.Aq Pa sys/consio.h .
+.Pp
+.Bl -tag -width CONS -compact
+.It Dv KDGETMODE Ar int *mode
+.It Dv KDSETMODE Ar int *mode
+Get or set the mode of the current (virtual) console. The
+.Dv mode
+can be one of:
+.Pp
+.Bl -tag -width KD_GRAPHICS -compact
+.It Dv KD_TEXT
+same as
+.Dv KD_TEXT0
+.It Dv KD_TEXT0
+Text mode, restore fonts and palette
+.It Dv KD_GRAPHICS
+Graphics mode
+.It Dv KD_TEXT1
+Text mode, don't restore fonts and palette
+.It Dv KD_PIXEL
+Raster (pixel) text mode
+.El
+.Pp
+.It Dv KDSBORDER Ar int *color
+Set the border color of the current (virtual) console.
+.Pp
+.It Dv KDRASTER Ar scr_size_t *sizes
+Set raster (pixel) text mode and adjust the current (virtual) console's
+geometry and font size. The
+.Dv scr_size_t
+argument structure is as follows:
+.Bd -literal
+struct _scr_size {
+       int     scr_size[3];
+};
+.Ed
+.Pp
+.It Dv GIO_SCRNMAP Ar scrmap_t *map
+.It Dv PIO_SCRNMAP Ar scrmap_t *map
+Get or set the screen map for the current (virtual) console. The
+.Dv scrmap_t
+argument structure is defined as follows:
+.Bd -literal
+struct _scrmap {
+       char    scrmap[256];
+};
+.Ed
+.Pp
+.It Dv GIO_ATTR Ar int *attr
+Get the current text attribute.
+.Pp
+.It Dv GIO_COLOR Ar int *color
+Get the current text color.
+.Pp
+.It Dv CONS_CURRENT Ar int *type
+Get the adapter type. This is equivalent to
+.Dv FBIO_ADPTYPE .
+.Pp
+.It Dv CONS_GET Ar int *mode
+Get the current video mode. This is equivalent to
+.Dv FBIO_GETMODE .
+.Pp
+.It Dv CONS_BLANKTIME Ar int *time
+Set the screen saver blank interval (in seconds).
+.Pp
+.It Dv CONS_CURSORTYPE Ar int *type
+Set the text cursor shape. The argument
+.Dv type
+can be one or more of the following:
+.Pp
+.Bl -tag -width CONS_BLINK_CURSOR -compact
+.It Dv CONS_BLINK_CURSOR
+Set for a blinking cursor, unset for a non-blinking cursor.
+.It Dv CONS_CHAR_CURSOR
+Set for an underscore-shaped cursor, unset for a rectangle.
+.El
+.Pp
+.It Dv CONS_BELLTYPE Ar int *type
+Set the bell type. The argument
+.Dv type
+is one or more of:
+.Pp
+.Bl -tag -width CONS_VISUAL_BELL -compact
+.It Dv CONS_VISUAL_BELL
+Set for a visual bell, unset for an audible bell.
+.It Dv CONS_QUIET_BELL
+Set to enable the bell, unset to disable it.
+.El
+.Pp
+.It Dv CONS_HISTORY Ar int *size
+Set the history (scroll back) buffer size (in lines).
+.Pp
+.It Dv CONS_CLRHIST
+Clear the history (scroll back) buffer.
+.Pp
+.It Dv CONS_IDLE Ar int *idle
+Check if the (virtual) console has been idle.
+.Pp
+.It Dv CONS_SAVERMODE Ar int *mode
+Set the screen saver mode. The argument
+.Dv mode
+can be one of:
+.Pp
+.Bl -tag -width CONS_LKM_SAVER -compact
+.It Dv CONS_NO_SAVER
+Disable screen saver
+.It Dv CONS_USR_SAVER
+Enable screen saver
+.It Dv CONS_LKM_SAVER
+Add a new screen saver
+.El
+.Pp
+.It Dv CONS_SAVERSTART Ar int *start
+Start or stop the screen saver.
+.Pp
+.It Dv PIO_FONT8x8 Ar fnt8_t *font
+.It Dv GIO_FONT8x8 Ar fnt8_t *font
+Get or set the 8x8 font. The
+.Dv fnt8_t
+argument structure is defined as follows:
+.Bd -literal
+struct fnt8 {
+       char    fnt8x8[8*256];
+};
+.Ed
+.Pp
+.It Dv PIO_FONT8x14 Ar fnt14_t *font
+.It Dv GIO_FONT8x14 Ar fnt14_t *font
+Get or set the 8x14 font. The
+.Dv fnt14_t
+argument structure is defined as follows:
+.Bd -literal
+struct fnt14 {
+       char    fnt8x14[14*256];
+};
+.Ed
+.Pp
+.It Dv PIO_FONT8x16 Ar fnt16_t *font
+.It Dv GIO_FONT8x16 Ar fnt16_t *font
+Get or set the 8x16 font. The
+.Dv fnt16_t
+argument structure is defined as follows:
+.Bd -literal
+struct fnt16 {
+       char    fnt8x16[16*256];
+};
+.Ed
+.Pp
+.It Dv CONS_GETINFO Ar vid_info_t *info
+Get information about the current video mode. The
+.Dv vid_info_t
+structure is defined as follows:
+.Bd -literal
+struct vid_info {
+       short           size;
+       short           m_num;
+       u_short         font_size;
+       u_short         mv_row, mv_col;
+       u_short         mv_rsz, mv_csz;
+       struct colors   mv_norm,
+                       mv_rev,
+                       mv_grfc;
+       u_char          mv_ovscan;
+       u_char          mk_keylock;
+};
+.Ed
+.Pp
+.It Dv CONS_GETVERS Ar int *version
+Get the version of the driver.
+.Pp
+.It Dv CONS_CURRENTADP Ar int *adapter
+Get the video adapter index. This is equivalent to
+.Dv FBIO_ADAPTER .
+.Pp
+.It Dv CONS_ADPINFO Ar video_adapter_info_t *info
+Get the video adapter information. This is equivalent to
+.Dv FBIO_ADPINFO .
+.Pp
+.It Dv CONS_MODEINFO Ar video_info_t *info
+Get the video mode information. This is equivalent to
+.Dv FBIO_MODEINFO .
+.Pp
+.It Dv CONS_FINDMODE Ar video_info_t *info
+Find a video mode. This is equivalent to
+.Dv FBIO_FINDMODE .
+.Pp
+.It Dv CONS_SETWINORG Ar u_int *origin
+Set the frame buffer window origin. This is equivalent to
+.Dv FBIO_SETWINORG .
+.Pp
+.It Dv CONS_SETKBD Ar int *kbd
+Set a new keyboard.
+.Pp
+.It Dv CONS_RELKBD
+Release the current keyboard.
+.Pp
+.It Dv CONS_SCRSHOT Ar scrshot_t *data
+Make a snapshot of the current video buffer. The
+.Dv scrshot_t
+structure is defined as:
+.Bd -literal
+struct scrshot {
+       int             xsize;
+       int             ysize;
+       u_int16_t*      buf;
+};
+.Ed
+.Pp
+.It Dv CONS_GETTERM Ar term_info_t *info
+.It Dv CONS_SETTERM Ar term_info_t *info
+Get or set terminal characteristics. The
+.Dv term_info_t
+structure is defined as:
+.Bd -literal
+struct term_info {
+       int             ti_index;
+       int             ti_flags;
+       u_char          ti_name[TI_NAME_LEN];
+       u_char          ti_desc[TI_DESC_LEN];
+};
+.Ed
+.Pp
+.It Dv VT_OPENQRY Ar int *term
+Get the next available terminal.
+.Pp
+.It Dv VT_SETMODE Ar vtmode_t *mode
+.It Dv VT_GETMODE Ar vtmode_t *mode
+Get or set the terminal switching mode. The
+.Dv vtmode_t
+argument structure is defined as follows:
+.Bd -literal
+struct vt_mode {
+       char            mode;
+       char            waitv;
+       short           relsig;
+       short           acqsig;
+       short           frsig;
+};
+.Ed
+.Pp
+.It Dv VT_RELDISP Ar int *ack
+Acknowledge the release or acquisition of a terminal. The
+.Dv ack
+argument can be one of:
+.Pp
+.Bl -tag -width VT_ACKACQ -compact
+.It Dv VT_FALSE
+The user refuses to release the screen, abort
+.It Dv VT_TRUE
+The user has released the screen, go on
+.It Dv VT_ACKACQ
+Acquisition of the screen acknowledged, switch completed
+.El
+.Pp
+.It Dv VT_ACTIVATE Ar int *term
+Activate the specified terminal.
+.Pp
+.It Dv VT_WAITACTIVE Ar int *term
+Wait until the specified terminal is active.
+.Pp
+.It Dv VT_GETACTIVE Ar int *term
+Get the currently active terminal.
+.Pp
+.It Dv VT_GETINDEX Ar int *index
+Get the index of the terminal.
+.Pp
+.It Dv VT_LOCKSWITCH Ar int *lock
+Prevent or permit terminal switching.
+.El
+.Ss Commands for video mode switching
+The following
+.Xr ioctl 2
+commands are defined for switching video modes. See
+.Aq Pa sys/fbio.h
+for defined mode numbers (commands for higher mode numbers have to be
+supplied by the programmer):
+.Dv SW_B40x25 ,
+.Dv SW_B80x25 ,
+.Dv SW_C80x25 ,
+.Dv SW_BG320 ,
+.Dv SW_CG320 ,
+.Dv SW_BG640 ,
+.Dv SW_EGAMONO80x25 ,
+.Dv SW_CG320_D ,
+.Dv SW_CG640_E ,
+.Dv SW_EGAMONOAPA ,
+.Dv SW_CG640x350 ,
+.Dv SW_ENH_MONOAPA2 ,
+.Dv SW_ENH_CG640 ,
+.Dv SW_ENH_B40x25 ,
+.Dv SW_ENH_C40x25 ,
+.Dv SW_ENH_B80x25 ,
+.Dv SW_ENH_C80x25 ,
+.Dv SW_ENH_B80x43 ,
+.Dv SW_ENH_C80x43 ,
+.Dv SW_MCAMODE ,
+.Dv SW_VGA_C40x25 ,
+.Dv SW_VGA_C80x25 ,
+.Dv SW_VGA_C80x30 ,
+.Dv SW_VGA_C80x50 ,
+.Dv SW_VGA_C80x60 ,
+.Dv SW_VGA_M80x25 ,
+.Dv SW_VGA_M80x30 ,
+.Dv SW_VGA_M80x50 ,
+.Dv SW_VGA_M80x60 ,
+.Dv SW_VGA11 ,
+.Dv SW_BG640x480 ,
+.Dv SW_VGA12 ,
+.Dv SW_CG640x480 ,
+.Dv SW_VGA13 ,
+.Dv SW_VGA_CG320 ,
+.Dv SW_VGA_CG640 ,
+.Dv SW_VGA_MODEX ,
+.Dv SW_VGA_C90x25 ,
+.Dv SW_VGA_M90x25 ,
+.Dv SW_VGA_C90x30 ,
+.Dv SW_VGA_M90x30 ,
+.Dv SW_VGA_C90x43 ,
+.Dv SW_VGA_M90x43 ,
+.Dv SW_VGA_C90x50 ,
+.Dv SW_VGA_M90x50 ,
+.Dv SW_VGA_C90x60 ,
+.Dv SW_VGA_M90x60 ,
+.Dv SW_TEXT_80x25 ,
+.Dv SW_TEXT_80x30 ,
+.Dv SW_TEXT_80x43 ,
+.Dv SW_TEXT_80x50 ,
+.Dv SW_TEXT_80x60 ,
+.Dv SW_TEXT_132x25 ,
+.Dv SW_TEXT_132x30 ,
+.Dv SW_TEXT_132x43 ,
+.Dv SW_TEXT_132x50 ,
+.Dv SW_TEXT_132x60 ,
+.Dv SW_VESA_CG640x400 ,
+.Dv SW_VESA_CG640x480 ,
+.Dv SW_VESA_800x600 ,
+.Dv SW_VESA_CG800x600 ,
+.Dv SW_VESA_1024x768 ,
+.Dv SW_VESA_CG1024x768 ,
+.Dv SW_VESA_1280x1024 ,
+.Dv SW_VESA_CG1280x1024 ,
+.Dv SW_VESA_C80x60 ,
+.Dv SW_VESA_C132x25 ,
+.Dv SW_VESA_C132x43 ,
+.Dv SW_VESA_C132x50 ,
+.Dv SW_VESA_C132x60 ,
+.Dv SW_VESA_32K_320 ,
+.Dv SW_VESA_64K_320 ,
+.Dv SW_VESA_FULL_320 ,
+.Dv SW_VESA_32K_640 ,
+.Dv SW_VESA_64K_640 ,
+.Dv SW_VESA_FULL_640 ,
+.Dv SW_VESA_32K_800 ,
+.Dv SW_VESA_64K_800 ,
+.Dv SW_VESA_FULL_800 ,
+.Dv SW_VESA_32K_1024 ,
+.Dv SW_VESA_64K_1024 ,
+.Dv SW_VESA_FULL_1024 ,
+.Dv SW_VESA_32K_1280 ,
+.Dv SW_VESA_64K_1280 ,
+.Dv SW_VESA_FULL_1280
 .Sh FILES
 .Bl -tag -width /usr/share/syscons/xxxxyyyyzzz -compact
 .It Pa /dev/console
 .Sh FILES
 .Bl -tag -width /usr/share/syscons/xxxxyyyyzzz -compact
 .It Pa /dev/console
@@ -427,7 +797,6 @@ As the
 .Nm
 driver requires the keyboard driver and the video card driver,
 the kernel configuration file should contain the following lines.
 .Nm
 driver requires the keyboard driver and the video card driver,
 the kernel configuration file should contain the following lines.
-.Pp
 .Bd -literal -offset indent
 device atkbdc0 at isa? port IO_KBD
 device atkbd0 at atkbdc? irq 1
 .Bd -literal -offset indent
 device atkbdc0 at isa? port IO_KBD
 device atkbd0 at atkbdc? irq 1
@@ -475,7 +844,7 @@ to the kernel.
 .Pp
 .\".Sh DIAGNOSTICS
 .Sh CAVEATS
 .Pp
 .\".Sh DIAGNOSTICS
 .Sh CAVEATS
-The Amount of data that is possible to insert from the cut buffer is limited
+The amount of data that is possible to insert from the cut buffer is limited
 by the
 .Brq Dv MAX_INPUT ,
 a system limit on the number of bytes that may be stored in the terminal
 by the
 .Brq Dv MAX_INPUT ,
 a system limit on the number of bytes that may be stored in the terminal
@@ -483,7 +852,7 @@ input queue - usually 1024 bytes
 (see
 .Xr termios 4 ) .
 .Sh BUGS
 (see
 .Xr termios 4 ) .
 .Sh BUGS
-This manual page is incomplete and urgently needs revision.
+This manual page is incomplete and needs revision.
 .Sh SEE ALSO
 .Xr kbdcontrol 1 ,
 .Xr login 1 ,
 .Sh SEE ALSO
 .Xr kbdcontrol 1 ,
 .Xr login 1 ,
@@ -493,6 +862,7 @@ This manual page is incomplete and urgently needs revision.
 .Xr keyboard 4 ,
 .Xr screen 4 ,
 .Xr splash 4 ,
 .Xr keyboard 4 ,
 .Xr screen 4 ,
 .Xr splash 4 ,
+.Xr sysmouse 4 ,
 .Xr ukbd 4 ,
 .Xr vga 4 ,
 .Xr kbdmap 5 ,
 .Xr ukbd 4 ,
 .Xr vga 4 ,
 .Xr kbdmap 5 ,
@@ -514,4 +884,6 @@ The
 driver was written by
 .An S\(/oren Schmidt Aq sos@FreeBSD.org .
 This manual page was written by
 driver was written by
 .An S\(/oren Schmidt Aq sos@FreeBSD.org .
 This manual page was written by
-.An Kazutaka Yokota Aq yokota@FreeBSD.org .
+.An Kazutaka Yokota Aq yokota@FreeBSD.org
+and
+.An Sascha Wildner .