MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Ioctl Requests                                             vt(7I)



NAME
     vt - Solaris virtual console interface

SYNOPSIS
     #include 


     #include 


DESCRIPTION
     The virtual console device driver - also  known  as  virtual
     terminal (VT) - is a layer of management functions that pro-
     vides 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  characteris-
     tics 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 previ-
     ous console in a circular  fashion. The  sequence  Alt  ]  ^
     (where  "^"  represents the up directional arrow) is for the
     last used console.



SunOS 5.11          Last change: 22 Sep 2008                    1






Ioctl Requests                                             vt(7I)



     Virtual  console  switching  can   be   done   automatically
     (VTAUTO) on receipt of a ``hot-key'' or by the process own-
     ing the VT (VTPROCES). 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  VTRELDISP  ioctl  from  the  process.  If  the process
     refuses to release the device (meaning the switch  does  not
     occur), it performs a VTRELDISP 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 regis-
     ters) and then performs a VTRELDISP 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  VTRELDISP  ioctl with an argument of VTACKACQ to
     complete the switching protocol.


     The  modify-operations   ioctls   (VTSETMODE,   VTRELDISP,
     VTWAITACTIVE, KDSETMODE) check if the VT is the controlling
     tty  of  the  calling  process.  If  not,  the   sysdevices
     privilege  is enforced. VTACTIVATE requires the sysdevices
     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:

     VTENABLED

         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,  other-
         wise it is 0.




SunOS 5.11          Last change: 22 Sep 2008                    2






Ioctl Requests                                             vt(7I)



     VTOPENQRY

         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.


     VTGETMODE

         Determines the VT's  current  mode,  either  VTAUTO  or
         VTPROCES. The argument is the address of the following
         structure, as defined in 

           struct vtmode {
                      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    VTAUTO        0 /* automatic VT switching   */
                    #define    VTPROCES     1 /* process controls switching */


                    The structure will be filled in with the current value
                    for each field.



     VTSETMODE

         Sets the VT mode. The argument is a pointer to a vtmode
         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).


     VTRELDISP

         Tells  the  VT  manager  if  the  process  releases  (or
         refuses  to release) the display. An argument of 1 indi-
         cates the VT is released. An  argument  of  0  indicates
         refusal  to release. The VTACKACQ argument indicates if
         acquisition of the VT has been completed.




SunOS 5.11          Last change: 22 Sep 2008                    3






Ioctl Requests                                             vt(7I)



     VTACTIVATE

         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.


     VTWAITACTIVE

         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.


     VTGETSTATE

         Obtains the active VT number and a list of open VTs. The
         argument is an address to the following structure:

           struct vtstat {
                    unsigned short  vactive, /* number of the active VT */
                               vsignal, /* not used */
                               vstate;  /* count of open VTs.  For every 1 in this
                                             field, there is an open VT */
                    }

         With VTGETSTATE, 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  vstate.
         Next, the VT manager transfers the information in struc-
         ture vtstat passed by the user process.


     KDGETMODE

         Obtains the text/graphics mode associated with the VT.

                       #define KDTEXT         0
                       #define KDGRAPHICS     1



     KDSETMODE

         Sets the text/graphics mode to the VT.

         KDTEXT indicates that console text is displayed on  the
         screen.  Normally  KDTEXT is combined with VTAUTO mode
         for text console terminals, so  that  the  console  text
         display  automatically  is saved and restored on the hot
         key screen switches.



SunOS 5.11          Last change: 22 Sep 2008                    4






Ioctl Requests                                             vt(7I)



         KDGRAPHICS indicates that the user/application (usually
         Xserver)  has  direct control of the display for this VT
         in graphics mode. Normally KDGRAPHICS is combined  with
         VTPROCES 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  KDTEXT
         to  KDGRAPHICS  or  a  VT  of  KDGRAPHICS mode is made
         active from a previous active VT of  KDTEXT  mode,  the
         virtual console manager initiates a KDSETMODE ioctl with
         KDGRAPHICS 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
         KDGRAPHICS  to  KDTEXT  or  a  VT  of  KDTEXT mode is
         actived from a previous active VT of  KDGRAPHICS  mode,
         the  virtual console manager initiates a KDSETMODE ioctl
         with KDTEXT 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  nor-
     mally  picks  up the first available virtual console), use [
     Ctrl ] ] Alt ] F7 .

              # svcs   grep login
              online         17:49:11 svc:/system/console-login:default
              online         17:49:11 svc:/system/console-login:vt2
              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.



SunOS 5.11          Last change: 22 Sep 2008                    5






Ioctl Requests                                             vt(7I)



              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

















































SunOS 5.11          Last change: 22 Sep 2008                    6



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™