wscons(4d) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

wscons(4d)

Device Drivers & /dev files                                         wscons(4D)



NAME
       wscons - workstation console

SYNOPSIS
       #include <sys/strredir.h>


       ioctl(fd, SRIOCSREDIR, target);


       ioctl(fd, SRIOCISREDIR, target);

DESCRIPTION
       The  wscons  workstation console consists of a workstation keyboard and
       frame buffer that  act  together  to  emulate  an  ASCII  terminal.  It
       includes  a redirection facility that allows I/O issued to the worksta‐
       tion console to be diverted to a STREAMS device, enabling  window  sys‐
       tems  to  redirect  output  that would otherwise appear directly on the
       frame buffer in corrupted form.

   Redirection
       The wscons redirection facility maintains a list of  devices  that  are
       designated   as  redirection  targets  through  the  SRIOCSREDIR  ioctl
       described below. Only the current entry  is  active;  when  the  active
       entry  is  closed,  the most recent remaining entry becomes active. The
       active entry acts as a proxy for the device being redirected  and  han‐
       dles  all read(2), write(2), ioctl(2), and poll(2) calls issued against
       the redirectee.


       The ioctls described below control the redirection  facility.  In  both
       cases,  fd is a descriptor for the device being redirected (or worksta‐
       tion console) and target is a descriptor for a STREAMS device.

       SRIOCSREDIR     Designates target as the source and destination of  I/O
                       ostensibly directed to the device denoted by fd.


       SRIOCISREDIR    Returns  1  if target names the device currently acting
                       as proxy for the device denoted by fd, and 0 if  it  is
                       not.


   ANSI Standard Terminal Emulation
       The Solaris kernel terminal emulator provides ANSI X3.64 emulation both
       on SPARC and x86 systems.


       On SPARC systems, the PROM monitor is used to  emulate  an  ANSI  X3.64
       terminal  if  the  kernel terminal emulator is not available for emula‐
       tion. See visual_io(4I) for more details.


       Note: The VT100 adheres the ANSI X3.64 standard. However,  because  the
       VT100 features nonstandard extensions to ANSI X3.64, it is incompatible
       with Sun terminal emulators.


       The SPARC console displays 34 lines of 80 ASCII  characters  per  line.
       The  x86  console  displays  25  lines of 80 ASCII characters per line.
       Devices with smaller text capacities may display less.  On  SPARC  sys‐
       tems,  the  screen-#rows  screen-#columns  should  be  set  to 34 or 80
       respectively or text capacities will vary from those  described  above.
       On  SPARC  systems,  the  screen-#rows  and  screen-#columns fields are
       stored in NVRAM/EEPROM. See eeprom(8) for more information. Both  SPARC
       and  x86 consoles offer scrolling, (x, y) cursor addressing ability and
       a number of other control functions.


       The console cursor marks the current line and character position on the
       screen. ASCII characters between 0x20(space) and 0x7E (tilde) inclusive
       are printing characters. When a print character is written to the  con‐
       sole  (and  is  not part of an escape sequence), it is displayed at the
       current cursor position and the cursor moves one position to the  right
       on the current line.


       On  SPARC  based  systems, later PROM revisions have the full 8-bit ISO
       Latin-1 (ISO 8859-1) character  set.  Earlier  PROM  revisions  display
       characters in the range 0xA0 through 0xFE as spaces.


       When  the  cursor  is  at the right edge of the screen, it moves to the
       first character position on the next line. When the cursor  is  at  the
       screen's  right-bottom  edge,  the line-feed function is performed (see
       CTRL-J below). The line-feed function scrolls the screen up by  one  or
       more  lines before moving the cursor to the first character position on
       the next line.

   Control Sequence Syntax
       The wscons console defines a number of control sequences that may occur
       during  input.  When  a  control sequence is written to the console, it
       affects one of the control functions described below. Control sequences
       are not displayed on screen.


       A  number  of control sequences (or control character functions) are of
       the form:


       CTRL-x


       where x represents a single character, such as CNTRL-J for a line feed.


       Other ANSI control sequences are of the form:

         ESC [ params char


       Note -



         Spaces are included only for readability; these characters must occur
         in the given sequence without the intervening spaces.


       ESC       ASCII escape character (ESC, CTRL-[, 0x1B).


       [         Left square bracket '[' (0x5B).


       params    Sequence  of  zero  or more decimal numbers made up of digits
                 between 0 and 9, separated by semicolons. Parameters are rep‐
                 resented  by n in the syntax descriptions for escape sequence
                 functions.


       char      Function character,  which  is  different  for  each  control
                 sequence  and  it represented by x in the syntax descriptions
                 for control character functions.



       In the following examples of syntactically valid escape sequences,  ESC
       represent the single ASCII character, Escape:

       ESC[m                 Select graphic rendition with default parameter


       ESC[7m                Select graphic rendition with reverse image


       ESC[33;54H            Set cursor position


       ESC[123;456;0;;3;B    Move cursor down



       Syntactically  valid  control characters and ANSI escape sequences that
       are not currently interpreted by the console are ignored.


       Each control function requires a specified  number  of  parameters.  If
       fewer  parameters  are supplied, the remaining parameters (with certain
       exceptions noted below) default to 1. If more parameters are  supplied,
       the  first  n  parameters are used by kernel terminal emulator. In con‐
       trast, only the last n parameters are  used  by  PROM  based  emulator,
       where n is the number required by that particular command character.


       Parameters which are omitted or set to 0 are reset to the default value
       of 1 (with certain exceptions). For example, the  command  character  M
       requires  one  parameter. ESC[;M, ESC[0M, ESC[M and ESC[23;15;32;1M are
       all equivalent to ESC[1M and provide a parameter value of 1. Note  that
       ESC[;5M  (interpreted as 'ESC[5M') is not equivalent to ESC[5;M (inter‐
       preted as 'ESC[5;1M') which is ultimately interpreted as 'ESC[1M').

   ANSI Control Functions
       The following paragraphs specify the ANSI control functions implemented
       by the console. Each description provides:

           o      Control sequence syntax


           o      Hexadecimal  equivalent of control characters where applica‐
                  ble


           o      Control function name and ANSI or Sun abbreviation (if any).


           o      Description of parameters required, if any


           o      Description of the control function


           o      Initial setting of the mode for functions that set  a  mode.
                  To  restore  the  initial  settings, use the SUNRESET escape
                  sequence.


   Control Character Functions
       The wscons control character functions are:

       Bell (BEL),           Used for consoles that are not equipped  with  an
       CTRL-G                audible bell. Current Sun workstation models also
       0x7                   flash the screen if the keyboard is not the  con‐
                             sole input device.




       Backspace (BS),       The  cursor moves one position to the left on the
       CTRL-H,               current line. If it is already at the  left  edge
       0x8                   of the screen, no change takes place.




       Tab (TAB),            The cursor moves right on the current line to the
       CTRL-I,               next tab stop. The tab stops are fixed  at  every
       0x9                   multiple  of  eight  columns.  If  the  cursor is
                             already at the right edge of the screen,  nothing
                             change  takes  place. Otherwise, the cursor moves
                             right a minimum of one and  a  maximum  of  eight
                             character positions.




       Line-feed (LF),       The cursor, while remaining at the same character
       CTRL-J,               position on the line, moves down one line. If the
       0xA                   cursor  is  at the bottom line, the screen either
                             scrolls up or wraps around depending on the  set‐
                             ting  of  an  internal variable n (initially 1) .
                             The internal variable can be  changed  using  the
                             ESC[r  control  sequence.  If  n  is greater than
                             zero, the entire screen (including the cursor) is
                             scrolled up by n lines before executing the line-
                             feed. The top n lines scroll off the  screen  and
                             are  lost. New blank lines n scroll onto the bot‐
                             tom of the screen. After scrolling, move the cur‐
                             sor down one line to execute the line feed.

                             If  n  is  zero, wrap-around mode is entered. The
                             ESC [ 1 r exits back to scroll mode. If  a  line-
                             feed  occurs on the bottom line in wrap mode, the
                             cursor goes to the same character position in the
                             top  line  of  the screen. During line-feeds, the
                             line that the cursor moves to is cleared  and  no
                             scrolling  occurs. Wrap-around mode is not imple‐
                             mented in the window system.

                             On SPARC based systems, the speed  at  which  the
                             screen scrolls is dependent on the amount of data
                             waiting to be printed. Whenever a  scroll  occurs
                             and the console is in normal scroll mode (ESC [ 1
                             r), it scans the rest of the data awaiting print‐
                             ing  to see how many line-feeds occur in it. This
                             scan stops when the console finds a control char‐
                             acter  from  the  set  {VT, FF, SO, SI, DLE, DC1,
                             DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB,  ESC,
                             FS,  GS,  RS,  US} . At that point, the screen is
                             scrolled by n lines (n ≥ 1) and  processing  con‐
                             tinues.  The  scanned  text is processed normally
                             and fills in the newly created lines. As long  as
                             escape  codes or other control characters are not
                             intermixed with the text, this results in  faster
                             scrolling




       Reverse Line-feed,    With kernel terminal emulator (while remaining at
       CTRL-K,               the same character position  on  the  line),  the
       0xB                   cursor  moves  down  one line. However, with PROM
                             based emulator (while remaining at the same char‐
                             acter  position on the line), the cursor moves up
                             one line. If the cursor is  already  at  the  top
                             line, no change takes place.




       Form-feed (FF)        The  cursor  is  positioned  to the home position
       CTRL-L,               (upper-left corner)  and  the  entire  screen  is
       0xC                   cleared.




       Return (CR),          The  cursor moves to the leftmost character posi‐
       CTRL-M,               tion on the current line.
       0xD



   Escape Sequence Functions
       The wscons escape sequence functions are:

       Escape (ESC),
       CTRL-[,
       0x1B

           The escape character. Escape initiates  a  multi-character  control
           sequence.




       Insert Character (ICH)
       ESC[#@

           Takes one parameter, n (default 1). Inserts n spaces at the current
           cursor position. The current line, starting at the  current  cursor
           position  inclusive,  is  shifted to the right by n character posi‐
           tions to make room for the spaces. The rightmost n character  posi‐
           tions  shift  off the line and are lost. The position of the cursor
           is unchanged.



       Cursor Up (CUU),
       ESC[#A

           Takes one parameter, n (default 1). Moves the cursor up n lines. If
           the  cursor is fewer than n lines from the top of the screen, moves
           the cursor to the topmost line on the screen. The  character  posi‐
           tion of the cursor on the line is unchanged.



       Cursor Down (CUD),
       ESC[#B

           Takes one parameter, (default 1). Moves the cursor down n lines. If
           the cursor is fewer than n lines from the  bottom  of  the  screen,
           move the cursor to the last line on the screen. The character posi‐
           tion of the cursor on the line is unchanged.



       Cursor Forward (CUF),
       ESC[#C

           Takes one parameter, n (default 1). Moves the cursor to  the  right
           by  n  character  positions  on  the current line. If the cursor is
           fewer than n positions from the right edge of the screen, moves the
           cursor to the rightmost position on the current line.



       Cursor Backward (CUB),
       ESC[#D

           Takes one parameter, n (default 1). Moves the cursor to the left by
           n character positions on the current line. If the cursor  is  fewer
           than n positions from the left edge of the screen, moves the cursor
           to the leftmost position on the current line.



       Cursor Next Line (CNL),
       ESC[#E

           Takes one parameter, n (default 1). Positions  the  cursor  at  the
           leftmost  character  position  on  the  n-th line below the current
           line. If the current line is less than n lines from the  bottom  of
           the screen, positions the cursor at the leftmost character position
           on the bottom line.



       Horizontal and Vertical Position (HVP),
       ESC[#1;#2f

           or



       Cursor Position (CUP),
       ESC[#1;#2H

           Takes two parameters, n1 and n2 (default 1, 1). Moves the cursor to
           the n2-th character position on the n1-th line. Character positions
           are numbered from 1 at the left edge of the screen; line  positions
           are numbered from 1 at the top of the screen. Hence, if both param‐
           eters are omitted, the default action moves the cursor to the  home
           position  (upper  left  corner). If only one parameter is supplied,
           the cursor moves to column 1 of the specified line.



       Erase in Display (ED),
       ESC[J

           Takes no parameters. Erases from the current cursor position inclu‐
           sive  to  the end of the screen, that is, to the end of the current
           line and all lines below the current line. The cursor  position  is
           unchanged.



       Erase in Line (EL),
       ESC[K

           Takes no parameters. Erases from the current cursor position inclu‐
           sive to the end  of  the  current  line.  The  cursor  position  is
           unchanged.



       Insert Line (IL),
       ESC[#L

           Takes  one  parameter,  n  (default  1). Makes room for n new lines
           starting at the current line by scrolling down by n lines the  por‐
           tion  of  the screen from the current line inclusive to the bottom.
           The n new lines at the cursor are filled with spaces; the bottom  n
           lines shift off the bottom of the screen and are lost. The position
           of the cursor on the screen is unchanged.



       Delete Line (DL),
       ESC[#M

           Takes one parameter, n (default 1). Deletes n lines beginning  with
           the  current  line. The portion of the screen from the current line
           inclusive to the bottom is scrolled upward by n lines.  The  n  new
           lines  scrolling onto the bottom of the screen are filled with spa‐
           ces; the n old lines beginning at the cursor line are deleted.  The
           position of the cursor on the screen is unchanged.



       Delete Character (DCH),
       ESC[#P

           Takes  one  parameter, n (default 1). Deletes n characters starting
           with the current cursor position. Shifts the tail  of  the  current
           line  to  the left by n character positions from the current cursor
           position, inclusive, to the end of the  line.  Blanks  are  shifted
           into  the rightmost n character positions. The position of the cur‐
           sor on the screen is unchanged.



       Select Graphic Rendition (SGR),
       ESC[#m

           Takes one parameter, n (default 0). Note that  unlike  most  escape
           sequences,  the  parameter defaults to zero if omitted. Invokes the
           graphic rendition specified by the parameter. All following  print‐
           ing  characters  in  the  data stream are rendered according to the
           parameter until the next occurrence of this escape sequence in  the
           data  stream. With PROM-based emulator, only two graphic renditions
           are defined:


           0    Normal rendition


           7    Negative (reverse) image

           Negative image displays characters as white-on-black if the  screen
           mode  is  currently  black-on  white,  and vice-versa. Any non-zero
           value of n is currently equivalent to 7 and  selects  the  negative
           image rendition.

           In  addition  to  the two renditions mentioned above, the following
           ISO 6429-1983 graphic rendition values support color text with ker‐
           nel terminal emulator:

           30    black foreground


           31    red foreground


           32    green foreground


           33    brown foreground


           34    blue foreground


           35    magenta foreground


           36    cyan foreground


           37    white foreground


           40    black background


           41    red background


           42    green background


           43    brown background


           44    blue background


           45    magenta background


           46    cyan background


           47    white background




       Black On White (SUNBOW),
       ESC[p

           Takes  no  parameters.  On SPARC, sets the screen mode to black-on-
           white. If the screen mode is already black-on-white, has no effect.
           In  this  mode,  spaces display as solid white, other characters as
           black-on-white. The cursor is a solid black block. Characters  dis‐
           played  in negative image rendition (see 'Select Graphic Rendition'
           above) are white-on-black. This comprises the  initial  setting  of
           the  screen  mode on reset. On x86 systems, use ESC[q to set black-
           on-white.



       White On Black (SUNWOB),
       ESC[q

           Takes no parameters. On SPARC, sets the screen  mode  to  white-on-
           black. If the screen mode is already white-on-black, has no effect.
           In this mode spaces display as solid  black,  other  characters  as
           white-on-black.  The cursor is a solid white block. Characters dis‐
           played in negative image rendition (see 'Select Graphic  Rendition'
           above)  are  black-on-white.  Initial setting of the screen mode on
           reset is black on white. On x86 systems, use ESC[p to set white-on-
           black.



       ESC[#r
       Set Scrolling (SUNSCRL)

           Takes  one parameter, n (default 0). Sets to n an internal register
           which determines how many lines the screen scrolls up when a  line-
           feed  function  is  performed with the cursor on the bottom line. A
           parameter of 2 or 3 introduces a small amount of jump when a scroll
           occurs.  A parameter of 34 clears the screen rather than scrolling.
           The initial setting is 1 on reset.

           A parameter of zero initiates wrap mode instead of scrolling. If  a
           linefeed  occurs  on  the  bottom line during wrap mode, the cursor
           goes to the same character position in the top line of the  screen.
           When  a  line  feed  occurs,  the  line that the cursor moves to is
           cleared and no scrolling occurs. ESC [ 1 r  exits  back  to  scroll
           mode.

           For more information, see the description of the Line-feed (CTRL-J)
           control function above.



       ESC[s
       Reset terminal emulator (SUNRESET)

           Takes no parameters. Resets all modes to default, restores  current
           font from PROM. Screen and cursor position are unchanged.



RETURN VALUES
       When  there are no errors, the redirection ioctls have return values as
       described above. Otherwise, they return −1 and set  errno  to  indicate
       the  error.  If  the  target  stream is in an error state, errno is set
       accordingly.


       If the target stream is in an error state, errno is set accordingly.

ERRORS
       EBADF     target does not denote an open file.


       ENOSTR    target does not denote a STREAMS device.


FILES
       /dev/wscons     Workstation  console,  accessed  via  the   redirection
                       facility


       /dev/systty     Devices  that  must  be  opened for the SRIOCSREDIR and
                       SRIOCISREDIR ioctls.


       /dev/syscon     Access system console


       /dev/console    Access system console


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted


SEE ALSO
       ioctl(2),  poll(2), read(2), write(2), console(4D), visual_io(4I), eep‐
       rom(8)

WARNINGS
       The redirection ioctls block while there  is  I/O  outstanding  on  the
       device  instance  being redirected. If you try to redirect the worksta‐
       tion console while there is a outstanding read, the workstation console
       will hang until the read completes.



Oracle Solaris 11.4               13 Nov 2020                       wscons(4D)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3