# TIOCLINUX

## NAME



           TIOCLINUX - ioctls for console terminal and virtual consoles
    


## SYNOPSIS



           **#include <linux/tiocl.h>  **/* Definition of **TIOCL_*** constants */
           **#include <sys/ioctl.h>**
    
           **int ioctl(int** _fd_**, TIOCLINUX, void ***_argp_**);**
    


## DESCRIPTION



           The action of the following ioctls depends on the first byte in
           the struct pointed to by _argp_ , referred to here as the _subcode_.
           These are legal only for the superuser or the owner of the current
           terminal.
    
           **subcode** =**0**
                  Dump the screen.  Disappeared in Linux 1.1.92.  (With Linux
                  1.1.92 or later, read from _/dev/vcs_ N or _/dev/vcsa_ N
                  instead.)
    
           **subcode** =**1**
                  Get task information.  Disappeared in Linux 1.1.92.
    
           **subcode** =**TIOCL_SETSEL**
                  Set selection.  _argp_ points to a
    
                      struct {
                          char  subcode;
                          short xs, ys, xe, ye;
                          short sel_mode;
                      };
    
                  _xs_ and _ys_ are the starting column and row.  _xe_ and _ye_ are
                  the ending column and row.  (Upper left corner is
                  row=column=1.)  _sel_mode_ may be one of the following
                  operations:
    
                  **TIOCL_SELCHAR**
                         Select character-by-character.  The indicated screen
                         characters are highlighted and saved in a kernel
                         buffer.
    
                         Since Linux 6.7, using this selection mode requires
                         the **CAP_SYS_ADMIN** capability.
    
                  **TIOCL_SELWORD**
                         Select word-by-word, expanding the selection
                         outwards to align with word boundaries.  The
                         indicated screen characters are highlighted and
                         saved in a kernel buffer.
    
                         Since Linux 6.7, using this selection mode requires
                         the **CAP_SYS_ADMIN** capability.
    
                  **TIOCL_SELLINE**
                         Select line-by-line, expanding the selection
                         outwards to select full lines.  The indicated screen
                         characters are highlighted and saved in a kernel
                         buffer.
    
                         Since Linux 6.7, using this selection mode requires
                         the **CAP_SYS_ADMIN** capability.
    
                  **TIOCL_SELPOINTER**
                         Show the pointer at position (_xs_ , _ys_) or (_xe_ , _ye_),
                         whichever is later in text flow order.
    
                  **TIOCL_SELCLEAR**
                         Remove the current selection highlight, if any, from
                         the console holding the selection.
    
                         This does not affect the stored selected text.
    
                  **TIOCL_SELMOUSEREPORT**
                         Make the terminal report (_xs_ , _ys_) as the current
                         mouse location using the **xterm**(1) mouse tracking
                         protocol (see console_codes(4)).  The lower 4 bits
                         of _sel_mode_ (**TIOCL_SELBUTTONMASK**) indicate the
                         desired button press and modifier key information
                         for the mouse event.
    
                         If mouse reporting is not enabled for the terminal,
                         this operation yields an **EINVAL** error.
    
                         Since Linux 6.7, using this selection mode requires
                         the **CAP_SYS_ADMIN** capability.
    
           **subcode** =**TIOCL_PASTESEL**
                  Paste selection.  The characters in the selection buffer
                  are written to _fd_.
    
                  Since Linux 6.7, using this subcode requires the
                  **CAP_SYS_ADMIN** capability.
    
           **subcode** =**TIOCL_UNBLANKSCREEN**
                  Unblank the screen.
    
           **subcode** =**TIOCL_SELLOADLUT**
                  Sets contents of a 256-bit look up table defining
                  characters in a "word", for word-by-word selection.  (Since
                  Linux 1.1.32.)
    
                  Since Linux 6.7, using this subcode requires the
                  **CAP_SYS_ADMIN** capability.
    
           **subcode** =**TIOCL_GETSHIFTSTATE**
                  _argp_ points to a char which is set to the value of the
                  kernel variable _shift_state_.  (Since Linux 1.1.32.)
    
           **subcode** =**TIOCL_GETMOUSEREPORTING**
                  _argp_ points to a char which is set to the value of the
                  kernel variable _report_mouse_.  (Since Linux 1.1.33.)
    
           **subcode** =**8**
                  Dump screen width and height, cursor position, and all the
                  character-attribute pairs.  (Linux 1.1.67 through Linux
                  1.1.91 only.  With Linux 1.1.92 or later, read from
                  _/dev/vcsa*_ instead.)
    
           **subcode** =**9**
                  Restore screen width and height, cursor position, and all
                  the character-attribute pairs.  (Linux 1.1.67 through Linux
                  1.1.91 only.  With Linux 1.1.92 or later, write to
                  _/dev/vcsa*_ instead.)
    
           **subcode** =**TIOCL_SETVESABLANK**
                  Handles the Power Saving feature of the new generation of
                  monitors.  VESA screen blanking mode is set to _argp[1]_ ,
                  which governs what screen blanking does:
    
                  **0** Screen blanking is disabled.
    
                  **1** The current video adapter register settings are
                         saved, then the controller is programmed to turn off
                         the vertical synchronization pulses.  This puts the
                         monitor into "standby" mode.  If your monitor has an
                         Off_Mode timer, then it will eventually power down
                         by itself.
    
                  **2** The current settings are saved, then both the
                         vertical and horizontal synchronization pulses are
                         turned off.  This puts the monitor into "off" mode.
                         If your monitor has no Off_Mode timer, or if you
                         want your monitor to power down immediately when the
                         blank_timer times out, then you choose this option.
                         (_Caution:_ Powering down frequently will damage the
                         monitor.)  (Since Linux 1.1.76.)
    
           **subcode** =**TIOCL_SETKMSGREDIRECT**
                  Change target of kernel messages ("console"): by default,
                  and if this is set to **0** , messages are written to the
                  currently active VT.  The VT to write to is a single byte
                  following **subcode**.  (Since Linux 2.5.36.)
    
           **subcode** =**TIOCL_GETFGCONSOLE**
                  Returns the number of VT currently in foreground.  (Since
                  Linux 2.5.36.)
    
           **subcode** =**TIOCL_SCROLLCONSOLE**
                  Scroll the foreground VT by the specified amount of _lines_
                  down, or half the screen if **0**.  _lines_ is *(((int32_t
                  *)&subcode) + 1).  (Since Linux 2.5.67.)
    
           **subcode** =**TIOCL_BLANKSCREEN**
                  Blank the foreground VT, ignoring "pokes" (typing): can
                  only be unblanked explicitly (by switching VTs, to text
                  mode, etc.).  (Since Linux 2.5.71.)
    
           **subcode** =**TIOCL_BLANKEDSCREEN**
                  Returns the number of VT currently blanked, **0** if none.
                  (Since Linux 2.5.71.)
    
           **subcode** =**16**
                  Never used.
    
           **subcode** =**TIOCL_GETKMSGREDIRECT**
                  Returns target of kernel messages.  (Since Linux 2.6.17.)
    
           **subcode** =**TIOCL_GETBRACKETEDPASTE**
                  Returns **1** if the application advertised bracketed paste
                  compatibility to the terminal, **0** otherwise.  (Since Linux
                  6.16.)
    


## RETURN VALUE



           On success, 0 is returned (except where indicated).  On failure,
           -1 is returned, and _errno_ is set to indicate the error.
    


## ERRORS



           **EINVAL** _argp_ is invalid.
    
           **EPERM** Insufficient permission.
    


## STANDARDS



           Linux.
    


* * *