Print this page
10563 Convert vt(7I) to mandoc
*** 1,243 ****
VT(7I) Ioctl Requests VT(7I)
-
-
NAME
vt - Solaris virtual console interface
SYNOPSIS
#include <sys/kd.h>
-
-
#include <sys/vt.h>
-
DESCRIPTION
! The virtual console device driver -- also known as virtual terminal
! (VT) -- is a layer of management functions that provides facilities to
! support and switch between multiple screen faces on a single physical
! device.
-
VT's are accessed in the same way as other devices. The open(2) system
call is used to open the virtual console and read(2), write(2) and
! ioctl(2) are used in the normal way and support the functionality of
! the underlying device. In addition, some virtual console-specific
! ioctls are provided and described below.
-
The VT provides a link between different screen faces and the device.
The active virtual console corresponds to the currently visible screen
face. Device input is directed to the active console and any device-
! specific modes that change on a per virtual terminal basis are set to
! the characteristics associated with the active console.
-
You manage VT's by intercepting keyboard sequences ("hot key"). To
maintain consistency with Xserver, the virtual console device driver
supports the Ctrl, Alt, F# and arrow keys.
! The sequence AltL + F# (where AltL represents the Alt key and F#
! represents function keys 1 through 12) is used to select virtual
! console 1-12. The sequence AltGraph + F# (where AltGraph represents
! the right Alt key and F# represent function keys 1 through 12) is for
! virtual console 13-24. Alt + F1 chooses the system console (also known
! as virtual console 1). The sequence Alt + -> (where ">" represents the
! right directional arrow) selects the next VT in a circular ring
! fashion and Alt + <- ( where "<" represents the left directional
! arrow) changes to the previous console in a circular fashion. The
! sequence Alt + ^ (where "^" represents the up directional arrow) is for
! the last used console.
!
! Virtual console switching can be done automatically (VT_AUTO) on
! receipt of a ``hot-key'' or by the process owning the VT (VT_PROCESS).
! When performed automatically, the process associated with the virtual
! console is unaware of the switch. Saving and restoring the device are
! handled by the underlying device driver and the virtual console
! manager. Note that automatic switching is the default mode.
!
!
! When a ``hot-key'' is sent when in process-controlled switch mode, the
process owning the VT is sent a signal (relsig) it has specified to the
virtual console manager (see signal(3C)) requesting the process to
release the physical device. At this point, the virtual console manager
awaits the VT_RELDISP ioctl from the process. If the process refuses to
release the device (meaning the switch does not occur), it performs a
! VT_RELDISP ioctl with an argument of 0 (zero). If the process desires
! to release the device, it saves the device state (keyboard, display,
! and I/O registers) and then performs a VT_RELDISP with an argument of 1
! to complete the switch.
- A ring of VT's can contain intermixed auto mode and process control
- mode consoles. When an auto mode process becomes active, the
- underlying device driver and the virtual console manager handle the
- restoring of the device. Process control mode processes are sent a
- specified signal (acqsig) when they become the active console. The
- process then restores the device state (keyboard, display, and I/O
- registers) and performs VT_RELDISP ioctl with an argument of VT_ACKACQ
- to complete the switching protocol.
-
-
The modify-operations ioctls (VT_SETMODE, VT_RELDISP, VT_WAITACTIVE,
! KDSETMODE) check if the VT is the controlling tty of the calling
! process. If not, the sys_devices privilege is enforced. VT_ACTIVATE
! requires the sys_devices privilege. Note that there is no controlling
! tty and privilege check for query/view operations.
IOCTLS
The following ioctls apply to devices that support virtual consoles:
! VT_ENABLED
!
! Queries to determine if VT functionality is available on the
system. The argument is a pointer to an integer. If VT
! functionality is available, the integer is 1, otherwise it is 0.
! VT_OPENQRY
- Finds an available VT. The argument is a pointer to an integer. The
- integer is filled in with the number of the first available console
- that no other process has open (and hence, is available to be
- opened). If there are no available VT's, -1 is filled in.
-
-
- VT_GETMODE
-
- Determines the VT's current mode, either VT_AUTO or VT_PROCESS. The
- argument is the address of the following structure, as defined in
- <sys/vt.h>
-
struct vt_mode {
char mode; /* VT mode */
char waitv; /* not used */
! short relsig;/* signal to use for release request */
! short acqsig;/* signal to use for display acquired */
! short frsig;/* not used */
}
/* Virtual console Modes */
#define VT_AUTO 0 /* automatic VT switching */
#define VT_PROCESS 1 /* process controls switching */
! The structure will be filled in with the current value
! for each field.
!
!
! VT_SETMODE
!
! Sets the VT mode. The argument is a pointer to a vt_mode structure
! as defined above. The structure should be filled in with the
! desired mode. If process-control mode is specified, the signals
! used to communicate with the process should be specified. If any
! signals are not specified (value is zero), the signal default is
! SIGUSR1 (for relsig and acqsig).
!
!
! VT_RELDISP
!
! Tells the VT manager if the process releases (or refuses to
release) the display. An argument of 1 indicates the VT is
! released. An argument of 0 indicates refusal to release. The
! VT_ACKACQ argument indicates if acquisition of the VT has been
! completed.
-
VT_ACTIVATE
- Makes the VT specified in the argument the active VT (in the same
- manner as if a hotkey initiated the switch). If the specified VT
- is not open or does not exist, the call fails and errno is set to
- ENXIO.
-
-
VT_WAITACTIVE
-
If the specified VT is currently active, this call returns
! immediately. Otherwise, it sleeps until the specified VT becomes
! active, at which point it returns.
-
VT_GETSTATE
- Obtains the active VT number and a list of open VTs. The argument
- is an address to the following structure:
-
struct vt_stat {
unsigned short v_active, /* number of the active VT */
v_signal, /* not used */
! v_state; /* count of open VTs. For every 1 in this
! field, there is an open VT */
}
With VT_GETSTATE, the VT manager first gets the number of the
! active VT, then determines the number of open VTs in the system and
! sets a 1 for each open VT in v_state. Next, the VT manager
! transfers the information in structure vt_stat passed by the user
! process.
- KDGETMODE
-
- Obtains the text/graphics mode associated with the VT.
-
#define KD_TEXT 0
#define KD_GRAPHICS 1
-
- KDSETMODE
-
- Sets the text/graphics mode to the VT.
-
KD_TEXT indicates that console text is displayed on the screen.
! Normally KD_TEXT is combined with VT_AUTO mode for text console
! terminals, so that the console text display automatically is saved
! and restored on the hot key screen switches.
!
! KD_GRAPHICS indicates that the user/application (usually Xserver)
! has direct control of the display for this VT in graphics mode.
! Normally KD_GRAPHICS is combined with VT_PROCESS mode for this VT
! indicating direct control of the display in graphics mode. In this
! mode, all writes to the VT using the write system call are ignored,
! and you must save and restore the display on the hot key screen
switches.
When the mode of the active VT is changed from KD_TEXT to
KD_GRAPHICS or a VT of KD_GRAPHICS mode is made active from a
! previous active VT of KD_TEXT mode, the virtual console manager
! initiates a KDSETMODE ioctl with KD_GRAPHICS as the argument to the
! underlying console frame buffer device indicating that current
! display is running into graphics mode.
When the mode of the active VT is changed from KD_GRAPHICS to
! KD_TEXT or a VT of KD_TEXT mode is actived from a previous active
! VT of KD_GRAPHICS mode, the virtual console manager initiates a
! KDSETMODE ioctl with KD_TEXT as the argument to the underlying
! console frame buffer device indicating that current display is
! running into console text mode.
-
FILES
! /dev/vt/#
! VT devices.
-
SEE ALSO
ioctl(2), signal(3C), wscons(7D)
NOTES
By default, there are only five virtual console instance login prompts
running on /dev/vt/# (where "#" represents 2 to 6) in addition to the
system console running on /dev/console. Normally Xorg uses the seventh
! virtual console (/dev/vt/7.) To switch from consoles to Xserver (which
normally picks up the first available virtual console), use [ Ctrl + ]
Alt + F7 .
# svcs | grep login
online 17:49:11 svc:/system/console-login:default
--- 1,205 ----
VT(7I) Ioctl Requests VT(7I)
NAME
vt - Solaris virtual console interface
SYNOPSIS
#include <sys/kd.h>
#include <sys/vt.h>
DESCRIPTION
! The virtual console device driver -- also known as virtual terminal (VT)
! -- is a layer of management functions that provides facilities to support
! and switch between multiple screen faces on a single physical device.
VT's are accessed in the same way as other devices. The open(2) system
call is used to open the virtual console and read(2), write(2) and
! ioctl(2) are used in the normal way and support the functionality of the
! underlying device. In addition, some virtual console-specific ioctls are
! provided and described below.
The VT provides a link between different screen faces and the device.
The active virtual console corresponds to the currently visible screen
face. Device input is directed to the active console and any device-
! specific modes that change on a per virtual terminal basis are set to the
! characteristics associated with the active console.
You manage VT's by intercepting keyboard sequences ("hot key"). To
maintain consistency with Xserver, the virtual console device driver
supports the Ctrl, Alt, F# and arrow keys.
+ The sequence AltL + F# (where AltL represents the left Alt key and F#
+ represents function keys 1 through 12) is used to select virtual console
+ 1-12. The sequence AltGraph + F# (where AltGraph represents the right
+ Alt key and F# represent function keys 1 through 12) is for virtual
+ console 13-24. Alt + F1 chooses the system console (also known as
+ virtual console 1). The sequence Alt + -> (where "->" represents the
+ right directional arrow) selects the next VT in a circular ring fashion
+ and Alt + <- (where "<-" represents the left directional arrow) changes
+ to the previous console in a circular fashion. The sequence Alt + ^
+ (where "^" represents the up directional arrow) is for the last used
+ console.
! Virtual console switching can be done automatically (VT_AUTO) on receipt
! of a "hot-key" or by the process owning the VT (VT_PROCESS). When
! performed automatically, the process associated with the virtual console
! is unaware of the switch. Saving and restoring the device are handled by
! the underlying device driver and the virtual console manager. Note that
! automatic switching is the default mode.
! When a "hot-key" is sent when in process-controlled switch mode, the
process owning the VT is sent a signal (relsig) it has specified to the
virtual console manager (see signal(3C)) requesting the process to
release the physical device. At this point, the virtual console manager
awaits the VT_RELDISP ioctl from the process. If the process refuses to
release the device (meaning the switch does not occur), it performs a
! VT_RELDISP ioctl with an argument of 0 (zero). If the process desires to
! release the device, it saves the device state (keyboard, display, and I/O
! registers) and then performs a VT_RELDISP with an argument of 1 to
! complete the switch.
+ A ring of VT's can contain intermixed auto mode and process control mode
+ consoles. When an auto mode process becomes active, the underlying
+ device driver and the virtual console manager handle the restoring of the
+ device. Process control mode processes are sent a specified signal
+ (acqsig) when they become the active console. The process then restores
+ the device state (keyboard, display, and I/O registers) and performs
+ VT_RELDISP ioctl with an argument of VT_ACKACQ to complete the switching
+ protocol.
The modify-operations ioctls (VT_SETMODE, VT_RELDISP, VT_WAITACTIVE,
! KDSETMODE) check if the VT is the controlling tty of the calling process.
! If not, the sys_devices privilege is enforced. VT_ACTIVATE requires the
! sys_devices privilege. Note that there is no controlling tty and
! privilege check for query/view operations.
IOCTLS
The following ioctls apply to devices that support virtual consoles:
! VT_ENABLED Queries to determine if VT functionality is available on the
system. The argument is a pointer to an integer. If VT
! functionality is available, the integer is 1, otherwise it is
! 0.
+ VT_OPENQRY Finds an available VT. The argument is a pointer to an
+ integer. The integer is filled in with the number of the
+ first available console that no other process has open (and
+ hence, is available to be opened). If there are no available
+ VT's, -1 is filled in.
! VT_GETMODE Determines the VT's current mode, either VT_AUTO or
! VT_PROCESS. The argument is the address of the following
! structure, as defined in <sys/vt.h>
struct vt_mode {
char mode; /* VT mode */
char waitv; /* not used */
! short relsig; /* signal to use for release request */
! short acqsig; /* signal to use for display acquired */
! short frsig; /* not used */
}
/* Virtual console Modes */
#define VT_AUTO 0 /* automatic VT switching */
#define VT_PROCESS 1 /* process controls switching */
+ The structure will be filled in with the current value for
+ each field.
! VT_SETMODE Sets the VT mode. The argument is a pointer to a vt_mode
! structure as defined above. The structure should be filled
! in with the desired mode. If process-control mode is
! specified, the signals used to communicate with the process
! should be specified. If any signals are not specified (value
! is zero), the signal default is SIGUSR1 (for relsig and
! acqsig).
! VT_RELDISP Tells the VT manager if the process releases (or refuses to
release) the display. An argument of 1 indicates the VT is
! released. An argument of 0 indicates refusal to release.
! The VT_ACKACQ argument indicates if acquisition of the VT has
! been completed.
VT_ACTIVATE
+ Makes the VT specified in the argument the active VT (in the
+ same manner as if a hotkey initiated the switch). If the
+ specified VT is not open or does not exist, the call fails
+ and errno is set to ENXIO.
VT_WAITACTIVE
If the specified VT is currently active, this call returns
! immediately. Otherwise, it sleeps until the specified VT
! becomes active, at which point it returns.
VT_GETSTATE
+ Obtains the active VT number and a list of open VTs. The
+ argument is an address to the following structure:
struct vt_stat {
unsigned short v_active, /* number of the active VT */
v_signal, /* not used */
! /*
! * count of open VTs. For every 1 in this
! * field, there is an open VT
! */
! v_state;
}
With VT_GETSTATE, the VT manager first gets the number of the
! active VT, then determines the number of open VTs in the
! system and sets a 1 for each open VT in v_state. Next, the
! VT manager transfers the information in structure vt_stat
! passed by the user process.
+ KDGETMODE Obtains the text/graphics mode associated with the VT.
#define KD_TEXT 0
#define KD_GRAPHICS 1
+ KDSETMODE Sets the text/graphics mode to the VT.
KD_TEXT indicates that console text is displayed on the screen.
! Normally KD_TEXT is combined with VT_AUTO mode for text
! console terminals, so that the console text display
! automatically is saved and restored on the hot key screen
switches.
+ KD_GRAPHICS indicates that the user/application (usually
+ Xserver) has direct control of the display for this VT in
+ graphics mode. Normally KD_GRAPHICS is combined with
+ VT_PROCESS mode for this VT indicating direct control of the
+ display in graphics mode. In this mode, all writes to the VT
+ using the write system call are ignored, and you must save
+ and restore the display on the hot key screen switches.
+
When the mode of the active VT is changed from KD_TEXT to
KD_GRAPHICS or a VT of KD_GRAPHICS mode is made active from a
! previous active VT of KD_TEXT mode, the virtual console
! manager initiates a KDSETMODE ioctl with KD_GRAPHICS as the
! argument to the underlying console frame buffer device
! indicating that current display is running into graphics
! mode.
When the mode of the active VT is changed from KD_GRAPHICS to
! KD_TEXT or a VT of KD_TEXT mode is actived from a previous
! active VT of KD_GRAPHICS mode, the virtual console manager
! initiates a KDSETMODE ioctl with KD_TEXT as the argument to
! the underlying console frame buffer device indicating that
! current display is running into console text mode.
FILES
! /dev/vt/# VT devices.
SEE ALSO
ioctl(2), signal(3C), wscons(7D)
NOTES
By default, there are only five virtual console instance login prompts
running on /dev/vt/# (where "#" represents 2 to 6) in addition to the
system console running on /dev/console. Normally Xorg uses the seventh
! virtual console (/dev/vt/7). To switch from consoles to Xserver (which
normally picks up the first available virtual console), use [ Ctrl + ]
Alt + F7 .
# svcs | grep login
online 17:49:11 svc:/system/console-login:default
*** 245,263 ****
online 17:49:11 svc:/system/console-login:vt3
online 17:49:11 svc:/system/console-login:vt4
online 17:49:11 svc:/system/console-login:vt5
online 17:49:11 svc:/system/console-login:vt6
! console-login:default is for the system console, others for
! virtual consoles.
! You can modify properties/disable/enable and remove/add
! virtual consoles using smf(5):
# svccfg -s console-login add vt8
! # svccfg -s console-login:vt8 setprop ttymon/device=astring: "/dev/vt/8"
# svcadm enable console-login:vt8
!
!
!
! September 22, 2008 VT(7I)
--- 207,223 ----
online 17:49:11 svc:/system/console-login:vt3
online 17:49:11 svc:/system/console-login:vt4
online 17:49:11 svc:/system/console-login:vt5
online 17:49:11 svc:/system/console-login:vt6
! console-login:default is for the system console, others for virtual
! consoles.
! You can modify properties/disable/enable and remove/add virtual consoles
! using smf(5):
# svccfg -s console-login add vt8
! # svccfg -s console-login:vt8 setprop \
! ttymon/device=astring: "/dev/vt/8"
# svcadm enable console-login:vt8
! illumos October 29, 2017 illumos