Print this page
10563 Convert vt(7I) to mandoc

Split Close
Expand all
Collapse all
          --- old/usr/src/man/man7i/vt.7i.man.txt
          +++ new/usr/src/man/man7i/vt.7i.man.txt
   1    1  VT(7I)                          Ioctl Requests                          VT(7I)
   2    2  
   3      -
   4      -
   5    3  NAME
   6      -       vt - Solaris virtual console interface
        4 +     vt - Solaris virtual console interface
   7    5  
   8    6  SYNOPSIS
   9      -       #include <sys/kd.h>
        7 +     #include <sys/kd.h>
        8 +     #include <sys/vt.h>
  10    9  
  11      -
  12      -       #include <sys/vt.h>
  13      -
  14      -
  15   10  DESCRIPTION
  16      -       The virtual console device driver -- also known as virtual terminal
  17      -       (VT) -- is a layer of management functions that provides facilities to
  18      -       support and switch between multiple screen faces on a single physical
  19      -       device.
       11 +     The virtual console device driver -- also known as virtual terminal (VT)
       12 +     -- is a layer of management functions that provides facilities to support
       13 +     and switch between multiple screen faces on a single physical device.
  20   14  
       15 +     VT's are accessed in the same way as other devices.  The open(2) system
       16 +     call is used to open the virtual console and read(2), write(2) and
       17 +     ioctl(2) are used in the normal way and support the functionality of the
       18 +     underlying device.  In addition, some virtual console-specific ioctls are
       19 +     provided and described below.
  21   20  
  22      -       VT's are accessed in the same way as other devices. The open(2) system
  23      -       call is used to open the virtual console and read(2), write(2) and
  24      -       ioctl(2) are used in the normal way and support the functionality of
  25      -       the underlying device.  In addition, some virtual console-specific
  26      -       ioctls are provided and described below.
       21 +     The VT provides a link between different screen faces and the device.
       22 +     The active virtual console corresponds to the currently visible screen
       23 +     face.  Device input is directed to the active console and any device-
       24 +     specific modes that change on a per virtual terminal basis are set to the
       25 +     characteristics associated with the active console.
  27   26  
       27 +     You manage VT's by intercepting keyboard sequences ("hot key").  To
       28 +     maintain consistency with Xserver, the virtual console device driver
       29 +     supports the Ctrl, Alt, F# and arrow keys.
  28   30  
  29      -       The VT provides a link between different screen faces and the device.
  30      -       The active virtual console corresponds to the currently visible screen
  31      -       face.  Device input is directed to the active console and any device-
  32      -       specific modes that change on a per virtual terminal basis are set to
  33      -       the characteristics associated with the active console.
       31 +     The sequence AltL + F# (where AltL represents the left Alt key and F#
       32 +     represents function keys 1 through 12) is used to select virtual console
       33 +     1-12.  The sequence AltGraph + F# (where AltGraph represents the right
       34 +     Alt key and F# represent function keys 1 through 12) is for virtual
       35 +     console 13-24.  Alt + F1 chooses the system console (also known as
       36 +     virtual console 1).  The sequence Alt + -> (where "->" represents the
       37 +     right directional arrow) selects the next VT in a circular ring fashion
       38 +     and Alt + <- (where "<-" represents the left directional arrow) changes
       39 +     to the previous console in a circular fashion.  The sequence Alt + ^
       40 +     (where "^" represents the up directional arrow) is for the last used
       41 +     console.
  34   42  
       43 +     Virtual console switching can be done automatically (VT_AUTO) on receipt
       44 +     of a "hot-key" or by the process owning the VT (VT_PROCESS).  When
       45 +     performed automatically, the process associated with the virtual console
       46 +     is unaware of the switch.  Saving and restoring the device are handled by
       47 +     the underlying device driver and the virtual console manager.  Note that
       48 +     automatic switching is the default mode.
  35   49  
  36      -       You manage VT's by intercepting keyboard sequences ("hot key"). To
  37      -       maintain consistency with Xserver, the virtual console device driver
  38      -       supports the Ctrl, Alt, F# and arrow keys.
       50 +     When a "hot-key" is sent when in process-controlled switch mode, the
       51 +     process owning the VT is sent a signal (relsig) it has specified to the
       52 +     virtual console manager (see signal(3C)) requesting the process to
       53 +     release the physical device.  At this point, the virtual console manager
       54 +     awaits the VT_RELDISP ioctl from the process.  If the process refuses to
       55 +     release the device (meaning the switch does not occur), it performs a
       56 +     VT_RELDISP ioctl with an argument of 0 (zero).  If the process desires to
       57 +     release the device, it saves the device state (keyboard, display, and I/O
       58 +     registers) and then performs a VT_RELDISP with an argument of 1 to
       59 +     complete the switch.
  39   60  
       61 +     A ring of VT's can contain intermixed auto mode and process control mode
       62 +     consoles.  When an auto mode process becomes active, the underlying
       63 +     device driver and the virtual console manager handle the restoring of the
       64 +     device.  Process control mode processes are sent a specified signal
       65 +     (acqsig) when they become the active console.  The process then restores
       66 +     the device state (keyboard, display, and I/O registers) and performs
       67 +     VT_RELDISP ioctl with an argument of VT_ACKACQ to complete the switching
       68 +     protocol.
  40   69  
  41      -       The sequence AltL + F# (where AltL represents the Alt key and F#
  42      -       represents function keys 1 through 12) is used to select virtual
  43      -       console 1-12.  The sequence AltGraph + F# (where AltGraph represents
  44      -       the right Alt key and F# represent function keys 1 through 12) is for
  45      -       virtual console 13-24.  Alt + F1 chooses the system console (also known
  46      -       as virtual console 1).  The sequence Alt + -> (where ">" represents the
  47      -       right directional arrow) selects the next  VT in a circular ring
  48      -       fashion and  Alt + <- ( where "<" represents the left directional
  49      -       arrow) changes to the previous console in a circular  fashion. The
  50      -       sequence Alt + ^ (where "^" represents the up directional arrow) is for
  51      -       the last used console.
       70 +     The modify-operations ioctls (VT_SETMODE, VT_RELDISP, VT_WAITACTIVE,
       71 +     KDSETMODE) check if the VT is the controlling tty of the calling process.
       72 +     If not, the sys_devices privilege is enforced.  VT_ACTIVATE requires the
       73 +     sys_devices privilege.  Note that there is no controlling tty and
       74 +     privilege check for query/view operations.
  52   75  
  53      -
  54      -       Virtual console switching can be done automatically (VT_AUTO) on
  55      -       receipt of a ``hot-key'' or by the process owning the VT (VT_PROCESS).
  56      -       When performed automatically, the process associated with the virtual
  57      -       console is unaware of the switch. Saving and restoring the device are
  58      -       handled by the underlying device driver and the virtual console
  59      -       manager.  Note that automatic switching is the default mode.
  60      -
  61      -
  62      -       When a ``hot-key'' is sent when in process-controlled switch mode, the
  63      -       process owning the VT is sent a signal (relsig) it has specified to the
  64      -       virtual console manager (see signal(3C)) requesting the process to
  65      -       release the physical device. At this point, the virtual console manager
  66      -       awaits the VT_RELDISP ioctl from the process. If the process refuses to
  67      -       release the device (meaning the switch does not occur), it performs a
  68      -       VT_RELDISP ioctl with an argument of 0 (zero).  If the process desires
  69      -       to release the device, it saves the device state (keyboard, display,
  70      -       and I/O registers) and then performs a VT_RELDISP with an argument of 1
  71      -       to complete the switch.
  72      -
  73      -
  74      -       A ring of VT's can contain intermixed auto mode and process control
  75      -       mode consoles.  When an auto mode process becomes active, the
  76      -       underlying device driver and the virtual console manager handle the
  77      -       restoring of the device.  Process control mode processes are sent a
  78      -       specified signal (acqsig) when they become the active console.  The
  79      -       process then restores the device state (keyboard, display, and I/O
  80      -       registers) and performs VT_RELDISP ioctl with an argument of VT_ACKACQ
  81      -       to complete the switching protocol.
  82      -
  83      -
  84      -       The modify-operations ioctls (VT_SETMODE, VT_RELDISP, VT_WAITACTIVE,
  85      -       KDSETMODE) check if the VT is the controlling tty of the calling
  86      -       process. If not, the sys_devices privilege is enforced.  VT_ACTIVATE
  87      -       requires the sys_devices privilege. Note that there is no controlling
  88      -       tty and privilege check for query/view operations.
  89      -
  90   76  IOCTLS
  91      -       The following ioctls apply to devices that support virtual consoles:
       77 +     The following ioctls apply to devices that support virtual consoles:
  92   78  
  93      -       VT_ENABLED
       79 +     VT_ENABLED  Queries to determine if VT functionality is available on the
       80 +                 system.  The argument is a pointer to an integer.  If VT
       81 +                 functionality is available, the integer is 1, otherwise it is
       82 +                 0.
  94   83  
  95      -           Queries to determine if VT functionality is available on the
  96      -           system. The argument is a pointer to an integer. If VT
  97      -           functionality is available, the integer is 1, otherwise it is 0.
       84 +     VT_OPENQRY  Finds an available VT.  The argument is a pointer to an
       85 +                 integer.  The integer is filled in with the number of the
       86 +                 first available console that no other process has open (and
       87 +                 hence, is available to be opened).  If there are no available
       88 +                 VT's, -1 is filled in.
  98   89  
       90 +     VT_GETMODE  Determines the VT's current mode, either VT_AUTO or
       91 +                 VT_PROCESS.  The argument is the address of the following
       92 +                 structure, as defined in <sys/vt.h>
  99   93  
 100      -       VT_OPENQRY
       94 +                   struct vt_mode {
       95 +                         char mode;     /* VT mode */
       96 +                         char waitv;    /* not used */
       97 +                         short relsig;  /* signal to use for release request */
       98 +                         short acqsig;  /* signal to use for display acquired */
       99 +                         short frsig;   /* not used */
      100 +                   }
 101  101  
 102      -           Finds an available VT. The argument is a pointer to an integer. The
 103      -           integer is filled in with the number of the first available console
 104      -           that no other process has open (and hence, is available to be
 105      -           opened).  If there are no available VT's, -1 is filled in.
      102 +                   /* Virtual console Modes */
      103 +                   #define VT_AUTO         0 /* automatic VT switching     */
      104 +                   #define VT_PROCESS      1 /* process controls switching */
 106  105  
      106 +                 The structure will be filled in with the current value for
      107 +                 each field.
 107  108  
 108      -       VT_GETMODE
      109 +     VT_SETMODE  Sets the VT mode.  The argument is a pointer to a vt_mode
      110 +                 structure as defined above.  The structure should be filled
      111 +                 in with the desired mode.  If process-control mode is
      112 +                 specified, the signals used to communicate with the process
      113 +                 should be specified.  If any signals are not specified (value
      114 +                 is zero), the signal default is SIGUSR1 (for relsig and
      115 +                 acqsig).
 109  116  
 110      -           Determines the VT's current mode, either VT_AUTO or VT_PROCESS. The
 111      -           argument is the address of the following structure, as defined in
 112      -           <sys/vt.h>
      117 +     VT_RELDISP  Tells the VT manager if the process releases (or refuses to
      118 +                 release) the display.  An argument of 1 indicates the VT is
      119 +                 released.  An argument of 0 indicates refusal to release.
      120 +                 The VT_ACKACQ argument indicates if acquisition of the VT has
      121 +                 been completed.
 113  122  
 114      -             struct vt_mode {
 115      -                        char mode;  /* VT  mode */
 116      -                        char waitv; /* not used */
 117      -                        short relsig;/* signal to use for release request */
 118      -                        short acqsig;/* signal to use for display acquired */
 119      -                        short frsig;/* not used */
 120      -                      }
      123 +     VT_ACTIVATE
      124 +                 Makes the VT specified in the argument the active VT (in the
      125 +                 same manner as if a hotkey initiated the switch).  If the
      126 +                 specified VT is not open or does not exist, the call fails
      127 +                 and errno is set to ENXIO.
 121  128  
 122      -                      /* Virtual console Modes */
 123      -                      #define    VT_AUTO        0 /* automatic VT switching   */
 124      -                      #define    VT_PROCESS     1 /* process controls switching */
      129 +     VT_WAITACTIVE
      130 +                 If the specified VT is currently active, this call returns
      131 +                 immediately.  Otherwise, it sleeps until the specified VT
      132 +                 becomes active, at which point it returns.
 125  133  
      134 +     VT_GETSTATE
      135 +                 Obtains the active VT number and a list of open VTs.  The
      136 +                 argument is an address to the following structure:
 126  137  
 127      -                      The structure will be filled in with the current value
 128      -                      for each field.
      138 +                   struct vt_stat {
      139 +                       unsigned short v_active, /* number of the active VT */
      140 +                                      v_signal, /* not used */
      141 +                                      /*
      142 +                                       * count of open VTs.  For every 1 in this
      143 +                                       * field, there is an open VT
      144 +                                       */
      145 +                                      v_state;
      146 +                   }
 129  147  
      148 +                 With VT_GETSTATE, the VT manager first gets the number of the
      149 +                 active VT, then determines the number of open VTs in the
      150 +                 system and sets a 1 for each open VT in v_state.  Next, the
      151 +                 VT manager transfers the information in structure vt_stat
      152 +                 passed by the user process.
 130  153  
      154 +     KDGETMODE   Obtains the text/graphics mode associated with the VT.
 131  155  
 132      -       VT_SETMODE
      156 +                   #define KD_TEXT         0
      157 +                   #define KD_GRAPHICS     1
 133  158  
 134      -           Sets the VT mode. The argument is a pointer to a vt_mode structure
 135      -           as defined above. The structure should be filled in with the
 136      -           desired mode.  If process-control mode is specified, the signals
 137      -           used to communicate with the process should be specified.  If any
 138      -           signals are not specified (value is zero), the signal default is
 139      -           SIGUSR1 (for relsig and acqsig).
      159 +     KDSETMODE   Sets the text/graphics mode to the VT.
 140  160  
      161 +     KD_TEXT     indicates that console text is displayed on the screen.
      162 +                 Normally KD_TEXT is combined with VT_AUTO mode for text
      163 +                 console terminals, so that the console text display
      164 +                 automatically is saved and restored on the hot key screen
      165 +                 switches.
 141  166  
 142      -       VT_RELDISP
      167 +                 KD_GRAPHICS indicates that the user/application (usually
      168 +                 Xserver) has direct control of the display for this VT in
      169 +                 graphics mode.  Normally KD_GRAPHICS is combined with
      170 +                 VT_PROCESS mode for this VT indicating direct control of the
      171 +                 display in graphics mode.  In this mode, all writes to the VT
      172 +                 using the write system call are ignored, and you must save
      173 +                 and restore the display on the hot key screen switches.
 143  174  
 144      -           Tells the VT manager if the process releases (or refuses to
 145      -           release) the display. An argument of 1 indicates the VT is
 146      -           released. An argument of 0 indicates refusal to release. The
 147      -           VT_ACKACQ argument indicates if acquisition of the VT has been
 148      -           completed.
      175 +                 When the mode of the active VT is changed from KD_TEXT to
      176 +                 KD_GRAPHICS or a VT of KD_GRAPHICS mode is made active from a
      177 +                 previous active VT of KD_TEXT mode, the virtual console
      178 +                 manager initiates a KDSETMODE ioctl with KD_GRAPHICS as the
      179 +                 argument to the underlying console frame buffer device
      180 +                 indicating that current display is running into graphics
      181 +                 mode.
 149  182  
      183 +                 When the mode of the active VT is changed from KD_GRAPHICS to
      184 +                 KD_TEXT or a VT of KD_TEXT mode is actived from a previous
      185 +                 active VT of KD_GRAPHICS mode, the virtual console manager
      186 +                 initiates a KDSETMODE ioctl with KD_TEXT as the argument to
      187 +                 the underlying console frame buffer device indicating that
      188 +                 current display is running into console text mode.
 150  189  
 151      -       VT_ACTIVATE
 152      -
 153      -           Makes the VT specified in the argument the active VT (in the same
 154      -           manner as if a hotkey initiated the switch).  If the specified VT
 155      -           is not open or does not exist, the call fails and errno is set to
 156      -           ENXIO.
 157      -
 158      -
 159      -       VT_WAITACTIVE
 160      -
 161      -           If the specified VT is currently active, this call returns
 162      -           immediately.  Otherwise, it sleeps until the specified VT becomes
 163      -           active, at which point it returns.
 164      -
 165      -
 166      -       VT_GETSTATE
 167      -
 168      -           Obtains the active VT number and a list of open VTs. The argument
 169      -           is an address to the following structure:
 170      -
 171      -             struct vt_stat {
 172      -                      unsigned short  v_active, /* number of the active VT */
 173      -                                 v_signal, /* not used */
 174      -                                 v_state;  /* count of open VTs.  For every 1 in this
 175      -                                               field, there is an open VT */
 176      -                      }
 177      -
 178      -           With VT_GETSTATE, the VT manager first gets the number of the
 179      -           active VT, then determines the number of open VTs in the system and
 180      -           sets a 1 for each open VT in v_state. Next, the VT manager
 181      -           transfers the information in structure vt_stat passed by the user
 182      -           process.
 183      -
 184      -
 185      -       KDGETMODE
 186      -
 187      -           Obtains the text/graphics mode associated with the VT.
 188      -
 189      -                         #define KD_TEXT         0
 190      -                         #define KD_GRAPHICS     1
 191      -
 192      -
 193      -
 194      -       KDSETMODE
 195      -
 196      -           Sets the text/graphics mode to the VT.
 197      -
 198      -           KD_TEXT indicates that console text is displayed on the screen.
 199      -           Normally KD_TEXT is combined with VT_AUTO mode for text console
 200      -           terminals, so that the console text display automatically is saved
 201      -           and restored on the hot key screen switches.
 202      -
 203      -           KD_GRAPHICS indicates that the user/application (usually Xserver)
 204      -           has direct control of the display for this VT in graphics mode.
 205      -           Normally KD_GRAPHICS is combined with VT_PROCESS mode for this VT
 206      -           indicating direct control of the display in graphics mode. In this
 207      -           mode, all writes to the VT using the write system call are ignored,
 208      -           and you must save and restore the display on the hot key screen
 209      -           switches.
 210      -
 211      -           When the mode of the active VT is changed from KD_TEXT to
 212      -           KD_GRAPHICS or a VT of KD_GRAPHICS mode is made active from a
 213      -           previous active VT of KD_TEXT mode, the virtual console manager
 214      -           initiates a KDSETMODE ioctl with KD_GRAPHICS as the argument to the
 215      -           underlying console frame buffer device indicating that current
 216      -           display is running into graphics mode.
 217      -
 218      -           When the mode of the active VT is changed from KD_GRAPHICS to
 219      -           KD_TEXT or a VT of KD_TEXT mode is actived from a previous active
 220      -           VT of KD_GRAPHICS mode, the virtual console manager initiates a
 221      -           KDSETMODE ioctl with KD_TEXT as the argument to the underlying
 222      -           console frame buffer device indicating that current display is
 223      -           running into console text mode.
 224      -
 225      -
 226  190  FILES
 227      -       /dev/vt/#
 228      -                     VT devices.
      191 +     /dev/vt/#  VT devices.
 229  192  
 230      -
 231  193  SEE ALSO
 232      -       ioctl(2), signal(3C), wscons(7D)
      194 +     ioctl(2), signal(3C), wscons(7D)
 233  195  
 234  196  NOTES
 235      -       By default, there are only five virtual console instance login prompts
 236      -       running on /dev/vt/# (where "#" represents 2 to 6) in addition to the
 237      -       system console running on /dev/console. Normally Xorg uses the seventh
 238      -       virtual console (/dev/vt/7.) To switch from consoles to Xserver (which
 239      -       normally picks up the first available virtual console), use [ Ctrl + ]
 240      -       Alt + F7 .
      197 +     By default, there are only five virtual console instance login prompts
      198 +     running on /dev/vt/# (where "#" represents 2 to 6) in addition to the
      199 +     system console running on /dev/console.  Normally Xorg uses the seventh
      200 +     virtual console (/dev/vt/7).  To switch from consoles to Xserver (which
      201 +     normally picks up the first available virtual console), use [ Ctrl + ]
      202 +     Alt + F7 .
 241  203  
 242      -                # svcs  | grep login
 243      -                online         17:49:11 svc:/system/console-login:default
 244      -                online         17:49:11 svc:/system/console-login:vt2
 245      -                online         17:49:11 svc:/system/console-login:vt3
 246      -                online         17:49:11 svc:/system/console-login:vt4
 247      -                online         17:49:11 svc:/system/console-login:vt5
 248      -                online         17:49:11 svc:/system/console-login:vt6
      204 +           # svcs  | grep login
      205 +           online         17:49:11 svc:/system/console-login:default
      206 +           online         17:49:11 svc:/system/console-login:vt2
      207 +           online         17:49:11 svc:/system/console-login:vt3
      208 +           online         17:49:11 svc:/system/console-login:vt4
      209 +           online         17:49:11 svc:/system/console-login:vt5
      210 +           online         17:49:11 svc:/system/console-login:vt6
 249  211  
 250      -                console-login:default is for the system console, others for
 251      -                virtual consoles.
      212 +     console-login:default is for the system console, others for virtual
      213 +     consoles.
 252  214  
 253      -                You can modify properties/disable/enable and remove/add
 254      -                virtual consoles using smf(5):
      215 +     You can modify properties/disable/enable and remove/add virtual consoles
      216 +     using smf(5):
 255  217  
 256      -                # svccfg -s console-login add vt8
 257      -                # svccfg -s console-login:vt8 setprop ttymon/device=astring: "/dev/vt/8"
 258      -                # svcadm enable console-login:vt8
      218 +           # svccfg -s console-login add vt8
      219 +           # svccfg -s console-login:vt8 setprop \
      220 +             ttymon/device=astring: "/dev/vt/8"
      221 +           # svcadm enable console-login:vt8
 259  222  
 260      -
 261      -
 262      -
 263      -                              September 22, 2008                        VT(7I)
      223 +illumos                        October 29, 2017                        illumos
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX